domma-js 0.3.0-a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2314 @@
1
+ /*!
2
+ * Domma Core CSS v0.3.0a
3
+ * Dynamic Object Manipulation & Modeling API
4
+ * (c) 2025 Darryl Waterhouse & DCBW-IT
5
+ * Built: 2025-12-30T10:50:46.785Z
6
+ * Commit: 8a467f0
7
+ */
8
+
9
+ /**
10
+ * Domma CSS - Base Styles & Utilities
11
+ *
12
+ * This file contains base styles, typography, utility classes,
13
+ * and the core light and dark themes.
14
+ * It is themed to resemble the Tailwind CSS default look and feel.
15
+ *
16
+ * Load order:
17
+ * 1. domma.css (this file)
18
+ * 2. grid.css (grid system)
19
+ * 3. elements.css (UI components - buttons, cards, modals, etc.)
20
+ */
21
+
22
+ /* Google Fonts - Roboto */
23
+ @import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,500;0,700;0,900;1,300;1,400;1,500;1,700&display=swap');
24
+
25
+ :root {
26
+ /* ================================================
27
+ TAILWIND-BASED COLOR PALETTE
28
+ Using Slate for grays and standard colors.
29
+ ================================================ */
30
+
31
+ /* Slate */
32
+ --dm-slate-50: #f8fafc;
33
+ --dm-slate-100: #f1f5f9;
34
+ --dm-slate-200: #e2e8f0;
35
+ --dm-slate-300: #cbd5e1;
36
+ --dm-slate-400: #94a3b8;
37
+ --dm-slate-500: #64748b;
38
+ --dm-slate-600: #475569;
39
+ --dm-slate-700: #334155;
40
+ --dm-slate-800: #1e293b;
41
+ --dm-slate-900: #0f172a;
42
+ --dm-slate-950: #020617;
43
+
44
+ /* Blue */
45
+ --dm-blue-50: #eff6ff;
46
+ --dm-blue-100: #dbeafe;
47
+ --dm-blue-200: #bfdbfe;
48
+ --dm-blue-300: #93c5fd;
49
+ --dm-blue-400: #60a5fa;
50
+ --dm-blue-500: #3b82f6;
51
+ --dm-blue-600: #2563eb;
52
+ --dm-blue-700: #1d4ed8;
53
+ --dm-blue-800: #1e40af;
54
+ --dm-blue-900: #1e3a8a;
55
+ --dm-blue-950: #172554;
56
+
57
+ /* Green */
58
+ --dm-green-50: #f0fdf4;
59
+ --dm-green-100: #dcfce7;
60
+ --dm-green-200: #bbf7d0;
61
+ --dm-green-300: #86efac;
62
+ --dm-green-400: #4ade80;
63
+ --dm-green-500: #22c55e;
64
+ --dm-green-600: #16a34a;
65
+ --dm-green-700: #15803d;
66
+ --dm-green-800: #166534;
67
+ --dm-green-900: #14532d;
68
+ --dm-green-950: #052e16;
69
+
70
+ /* Red */
71
+ --dm-red-50: #fef2f2;
72
+ --dm-red-100: #fee2e2;
73
+ --dm-red-200: #fecaca;
74
+ --dm-red-300: #fca5a5;
75
+ --dm-red-400: #f87171;
76
+ --dm-red-500: #ef4444;
77
+ --dm-red-600: #dc2626;
78
+ --dm-red-700: #b91c1c;
79
+ --dm-red-800: #991b1b;
80
+ --dm-red-900: #7f1d1d;
81
+ --dm-red-950: #450a0a;
82
+
83
+ /* Amber (for Warning) */
84
+ --dm-amber-50: #fffbeb;
85
+ --dm-amber-100: #fef3c7;
86
+ --dm-amber-200: #fde68a;
87
+ --dm-amber-300: #fcd34d;
88
+ --dm-amber-400: #fbbf24;
89
+ --dm-amber-500: #f59e0b;
90
+ --dm-amber-600: #d97706;
91
+ --dm-amber-700: #b45309;
92
+ --dm-amber-800: #92400e;
93
+ --dm-amber-900: #78350f;
94
+ --dm-amber-950: #451a03;
95
+
96
+ /* Sky (for Info) */
97
+ --dm-sky-50: #f0f9ff;
98
+ --dm-sky-100: #e0f2fe;
99
+ --dm-sky-200: #bae6fd;
100
+ --dm-sky-300: #7dd3fc;
101
+ --dm-sky-400: #38bdf8;
102
+ --dm-sky-500: #0ea5e9;
103
+ --dm-sky-600: #0284c7;
104
+ --dm-sky-700: #0369a1;
105
+ --dm-sky-800: #075985;
106
+ --dm-sky-900: #0c4a6e;
107
+ --dm-sky-950: #082f49;
108
+
109
+ /* ================================================
110
+ SEMANTIC COLORS (Light Theme Defaults)
111
+ ================================================ */
112
+
113
+ /* Backgrounds */
114
+ --dm-background: var(--dm-slate-100);
115
+ --dm-background-alt: var(--dm-slate-200);
116
+ --dm-surface: var(--dm-white);
117
+ --dm-surface-raised: var(--dm-slate-50);
118
+ --dm-surface-overlay: var(--dm-white);
119
+
120
+ /* Text */
121
+ --dm-text: var(--dm-slate-800);
122
+ --dm-text-secondary: var(--dm-slate-600);
123
+ --dm-text-muted: var(--dm-slate-500);
124
+ --dm-text-disabled: var(--dm-slate-400);
125
+ --dm-text-inverse: var(--dm-white);
126
+ --dm-text-xs: 0.75rem;
127
+ --dm-text-sm: 0.875rem;
128
+ --dm-text-base: 1rem;
129
+ --dm-text-lg: 1.125rem;
130
+ --dm-text-xl: 1.25rem;
131
+
132
+ /* Borders */
133
+ --dm-border: var(--dm-slate-300);
134
+ --dm-border-light: var(--dm-slate-200);
135
+ --dm-border-dark: var(--dm-slate-400);
136
+ --dm-border-focus: var(--dm-blue-500);
137
+ --dm-focus-ring: rgba(59, 130, 246, 0.25);
138
+ --dm-focus-ring-danger: rgba(239, 68, 68, 0.25);
139
+
140
+ /* Interactive States */
141
+ --dm-hover-bg: var(--dm-slate-100);
142
+ --dm-active-bg: var(--dm-slate-200);
143
+ --dm-selected-bg: var(--dm-blue-100);
144
+ --dm-disabled-opacity: 0.5;
145
+
146
+ /* ================================================
147
+ BRAND COLORS
148
+ ================================================ */
149
+ --dm-primary: var(--dm-blue-600);
150
+ --dm-primary-dark: var(--dm-blue-800);
151
+ --dm-primary-light: var(--dm-blue-200);
152
+ --dm-primary-hover: var(--dm-blue-700);
153
+ --dm-primary-active: var(--dm-blue-800);
154
+
155
+ --dm-secondary: var(--dm-slate-600);
156
+ --dm-secondary-hover: var(--dm-slate-700);
157
+ --dm-secondary-active: var(--dm-slate-800);
158
+
159
+ /* ================================================
160
+ STATUS COLORS
161
+ ================================================ */
162
+ --dm-success: var(--dm-green-600);
163
+ --dm-success-hover: var(--dm-green-700);
164
+ --dm-success-active: var(--dm-green-800);
165
+ --dm-success-light: var(--dm-green-100);
166
+ --dm-success-dark: var(--dm-green-800);
167
+
168
+ --dm-danger: var(--dm-red-600);
169
+ --dm-danger-hover: var(--dm-red-700);
170
+ --dm-danger-active: var(--dm-red-800);
171
+ --dm-danger-light: var(--dm-red-100);
172
+ --dm-danger-dark: var(--dm-red-800);
173
+
174
+ --dm-warning: var(--dm-amber-500);
175
+ --dm-warning-hover: var(--dm-amber-600);
176
+ --dm-warning-active: var(--dm-amber-700);
177
+ --dm-warning-text: var(--dm-amber-900);
178
+ --dm-warning-light: var(--dm-amber-100);
179
+ --dm-warning-dark: var(--dm-amber-800);
180
+
181
+ --dm-info: var(--dm-sky-500);
182
+ --dm-info-hover: var(--dm-sky-600);
183
+ --dm-info-active: var(--dm-sky-700);
184
+ --dm-info-light: var(--dm-sky-100);
185
+ --dm-info-dark: var(--dm-sky-800);
186
+
187
+ /* ================================================
188
+ BACKGROUND TINTS (Lighter versions for backgrounds)
189
+ ================================================ */
190
+ --dm-primary-bg: var(--dm-blue-100);
191
+ --dm-secondary-bg: var(--dm-slate-100);
192
+ --dm-success-bg: var(--dm-green-100);
193
+ --dm-danger-bg: var(--dm-red-100);
194
+ --dm-warning-bg: var(--dm-amber-100);
195
+ --dm-info-bg: var(--dm-sky-100);
196
+
197
+ /* ================================================
198
+ SEMANTIC SURFACE COLORS (For components)
199
+ ================================================ */
200
+ --dm-surface-secondary: var(--dm-slate-50);
201
+ --dm-card-bg: var(--dm-white);
202
+ --dm-card-border: var(--dm-slate-200);
203
+
204
+ /* Legacy color names (kept for backwards compatibility) */
205
+ --dm-light: var(--dm-slate-100);
206
+ --dm-dark: var(--dm-slate-800);
207
+ --dm-white: #ffffff;
208
+ --dm-black: #000000;
209
+
210
+ /* Grays (mapped to Slate) */
211
+ --dm-gray-50: var(--dm-slate-50);
212
+ --dm-gray-100: var(--dm-slate-100);
213
+ --dm-gray-200: var(--dm-slate-200);
214
+ --dm-gray-300: var(--dm-slate-300);
215
+ --dm-gray-400: var(--dm-slate-400);
216
+ --dm-gray-500: var(--dm-slate-500);
217
+ --dm-gray-600: var(--dm-slate-600);
218
+ --dm-gray-700: var(--dm-slate-700);
219
+ --dm-gray-800: var(--dm-slate-800);
220
+ --dm-gray-900: var(--dm-slate-900);
221
+ --dm-gray-950: var(--dm-slate-950);
222
+
223
+ /* Typography */
224
+ --dm-font-sans: Roboto, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
225
+ --dm-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
226
+ --dm-font-size-xs: 0.75rem; /* 12px */
227
+ --dm-font-size-sm: 0.875rem; /* 14px */
228
+ --dm-font-size-base: 1rem; /* 16px */
229
+ --dm-font-size-lg: 1.125rem; /* 18px */
230
+ --dm-font-size-xl: 1.25rem; /* 20px */
231
+ --dm-font-size-2xl: 1.5rem; /* 24px */
232
+ --dm-font-size-3xl: 1.875rem; /* 30px */
233
+ --dm-font-size-4xl: 2.25rem; /* 36px */
234
+ --dm-font-size-5xl: 3rem; /* 48px */
235
+
236
+ /* Spacing */
237
+ --dm-space-0: 0;
238
+ --dm-space-1: 0.25rem;
239
+ --dm-space-2: 0.5rem;
240
+ --dm-space-3: 0.75rem;
241
+ --dm-space-4: 1rem;
242
+ --dm-space-5: 1.25rem;
243
+ --dm-space-6: 1.5rem;
244
+ --dm-space-8: 2rem;
245
+ --dm-space-10: 2.5rem;
246
+ --dm-space-12: 3rem;
247
+ --dm-space-16: 4rem;
248
+
249
+ /* Border Radius */
250
+ --dm-radius-none: 0;
251
+ --dm-radius-sm: 0.125rem;
252
+ --dm-radius: 0.25rem;
253
+ --dm-radius-md: 0.375rem;
254
+ --dm-radius-lg: 0.5rem;
255
+ --dm-radius-xl: 0.75rem;
256
+ --dm-radius-2xl: 1rem;
257
+ --dm-radius-full: 9999px;
258
+
259
+ /* Shadows */
260
+ --dm-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
261
+ --dm-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
262
+ --dm-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
263
+ --dm-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
264
+ --dm-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
265
+ --dm-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
266
+ --dm-shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
267
+
268
+ /* ================================================
269
+ TRANSPARENCY & OPACITY
270
+ ================================================ */
271
+ --dm-white-t10: rgba(255, 255, 255, 0.1);
272
+ --dm-white-t15: rgba(255, 255, 255, 0.15);
273
+ --dm-white-t20: rgba(255, 255, 255, 0.2);
274
+ --dm-white-t25: rgba(255, 255, 255, 0.25);
275
+ --dm-white-t30: rgba(255, 255, 255, 0.3);
276
+ --dm-white-t40: rgba(255, 255, 255, 0.4);
277
+ --dm-white-t70: rgba(255, 255, 255, 0.7);
278
+ --dm-white-t85: rgba(255, 255, 255, 0.85);
279
+ --dm-white-t90: rgba(255, 255, 255, 0.9);
280
+ --dm-white-t95: rgba(255, 255, 255, 0.95);
281
+
282
+ --dm-black-t1: rgba(1, 1, 1, 0.0125);
283
+ --dm-black-t20: rgba(0, 0, 0, 0.2);
284
+ --dm-black-t30: rgba(0, 0, 0, 0.3);
285
+ --dm-black-t50: rgba(0, 0, 0, 0.5);
286
+ --dm-black-t70: rgba(0, 0, 0, 0.7);
287
+
288
+
289
+ /* ================================================
290
+ COMPONENT-SPECIFIC VARIABLES
291
+ ================================================ */
292
+
293
+ /* Cards */
294
+ --dm-card-bg: var(--dm-surface);
295
+ --dm-card-border: var(--dm-border);
296
+ --dm-card-shadow: var(--dm-shadow);
297
+
298
+ /* Inputs */
299
+ --dm-input-bg: var(--dm-surface);
300
+ --dm-input-border: var(--dm-border-dark);
301
+ --dm-input-text: var(--dm-text);
302
+ --dm-input-placeholder: var(--dm-text-muted);
303
+ --dm-input-focus-border: var(--dm-primary);
304
+ --dm-input-disabled-bg: var(--dm-slate-100);
305
+
306
+ /* Tables */
307
+ --dm-table-border: var(--dm-border);
308
+ --dm-table-hover-bg: var(--dm-hover-bg);
309
+ --dm-table-stripe-bg: var(--dm-slate-50);
310
+
311
+ /* Navbar */
312
+ --dm-navbar-bg: var(--dm-surface);
313
+ --dm-navbar-text: var(--dm-text);
314
+ --dm-navbar-border: var(--dm-border);
315
+
316
+ /* Dropdown */
317
+ --dm-dropdown-bg: var(--dm-surface);
318
+ --dm-dropdown-border: var(--dm-border);
319
+ --dm-dropdown-item-hover: var(--dm-hover-bg);
320
+ --dm-dropdown-item-active: var(--dm-selected-bg);
321
+
322
+ /* Sidebar */
323
+ --dm-sidebar-bg: var(--dm-surface);
324
+ --dm-sidebar-border: var(--dm-border);
325
+ --dm-sidebar-item-hover: var(--dm-hover-bg);
326
+ --dm-sidebar-item-active: var(--dm-selected-bg);
327
+
328
+ /* Autocomplete */
329
+ --dm-autocomplete-bg: var(--dm-surface);
330
+ --dm-autocomplete-border: var(--dm-border);
331
+ --dm-autocomplete-shadow: var(--dm-shadow-md);
332
+ --dm-autocomplete-item-hover: var(--dm-hover-bg);
333
+ --dm-autocomplete-item-active: var(--dm-selected-bg);
334
+ --dm-autocomplete-highlight: var(--dm-primary-light);
335
+
336
+ /* Pillbox */
337
+ --dm-pillbox-bg: var(--dm-surface);
338
+ --dm-pillbox-border: var(--dm-border);
339
+ --dm-pill-bg: var(--dm-gray-200);
340
+ --dm-pill-color: var(--dm-text);
341
+ --dm-pill-hover-bg: var(--dm-gray-300);
342
+
343
+ /* Tabs */
344
+ --dm-tab-border: var(--dm-border);
345
+ --dm-tab-hover-bg: var(--dm-hover-bg);
346
+ --dm-tab-active-border: var(--dm-primary);
347
+ --dm-tab-active-text: var(--dm-primary);
348
+
349
+ /* Accordion */
350
+ --dm-accordion-border: var(--dm-border);
351
+ --dm-accordion-header-hover: var(--dm-hover-bg);
352
+
353
+ /* Transitions */
354
+ --dm-transition-fast: 150ms ease;
355
+ --dm-transition-normal: 250ms ease;
356
+ --dm-transition-slow: 350ms ease;
357
+ }
358
+
359
+ /* ============================================
360
+ Reset / Base Styles
361
+ ============================================ */
362
+ *, *::before, *::after {
363
+ box-sizing: border-box;
364
+ }
365
+
366
+ body {
367
+ margin: 0;
368
+ font-family: var(--dm-font-sans, sans-serif), sans-serif;
369
+ font-size: var(--dm-font-size-base);
370
+ line-height: 1.5;
371
+ color: var(--dm-text);
372
+ background-color: var(--dm-background);
373
+ -webkit-font-smoothing: antialiased;
374
+ -moz-osx-font-smoothing: grayscale;
375
+ }
376
+
377
+ a {
378
+ color: var(--dm-primary);
379
+ text-decoration: none;
380
+ }
381
+
382
+ a:hover {
383
+ color: var(--dm-primary-hover);
384
+ text-decoration: underline;
385
+ }
386
+
387
+ code, pre {
388
+ font-family: var(--dm-font-mono, monospace), serif;
389
+ }
390
+
391
+ /* ============================================
392
+ LAYOUT UTILITIES
393
+ ============================================ */
394
+
395
+ /* Container */
396
+ .container {
397
+ width: 100%;
398
+ max-width: 1200px;
399
+ margin-left: auto;
400
+ margin-right: auto;
401
+ padding-left: var(--dm-space-4);
402
+ padding-right: var(--dm-space-4);
403
+ }
404
+
405
+ .container-sm {
406
+ max-width: 640px;
407
+ }
408
+
409
+ .container-md {
410
+ max-width: 768px;
411
+ }
412
+
413
+ .container-lg {
414
+ max-width: 1024px;
415
+ }
416
+
417
+ .container-xl {
418
+ max-width: 1280px;
419
+ }
420
+
421
+ .container-fluid {
422
+ width: 100%;
423
+ padding-left: var(--dm-space-4);
424
+ padding-right: var(--dm-space-4);
425
+ }
426
+
427
+ /* Display */
428
+ .block {
429
+ display: block;
430
+ }
431
+
432
+ .inline-block {
433
+ display: inline-block;
434
+ }
435
+
436
+ .inline {
437
+ display: inline;
438
+ }
439
+
440
+ .hidden {
441
+ display: none;
442
+ }
443
+
444
+ /* Flexbox */
445
+ .flex {
446
+ display: flex;
447
+ }
448
+
449
+ .inline-flex {
450
+ display: inline-flex;
451
+ }
452
+
453
+ .flex-row {
454
+ flex-direction: row;
455
+ }
456
+
457
+ .flex-col {
458
+ flex-direction: column;
459
+ }
460
+
461
+ .flex-wrap {
462
+ flex-wrap: wrap;
463
+ }
464
+
465
+ .flex-nowrap {
466
+ flex-wrap: nowrap;
467
+ }
468
+
469
+ .flex-1 {
470
+ flex: 1 1 0;
471
+ }
472
+
473
+ .flex-auto {
474
+ flex: 1 1 auto;
475
+ }
476
+
477
+ .flex-none {
478
+ flex: none;
479
+ }
480
+
481
+ .grow {
482
+ flex-grow: 1;
483
+ }
484
+
485
+ .grow-0 {
486
+ flex-grow: 0;
487
+ }
488
+
489
+ .shrink {
490
+ flex-shrink: 1;
491
+ }
492
+
493
+ .shrink-0 {
494
+ flex-shrink: 0;
495
+ }
496
+
497
+ /* Justify Content */
498
+ .justify-start {
499
+ justify-content: flex-start;
500
+ }
501
+
502
+ .justify-end {
503
+ justify-content: flex-end;
504
+ }
505
+
506
+ .justify-center {
507
+ justify-content: center;
508
+ }
509
+
510
+ .justify-between {
511
+ justify-content: space-between;
512
+ }
513
+
514
+ .justify-around {
515
+ justify-content: space-around;
516
+ }
517
+
518
+ .justify-evenly {
519
+ justify-content: space-evenly;
520
+ }
521
+
522
+ /* Align Items */
523
+ .items-start {
524
+ align-items: flex-start;
525
+ }
526
+
527
+ .items-end {
528
+ align-items: flex-end;
529
+ }
530
+
531
+ .items-center {
532
+ align-items: center;
533
+ }
534
+
535
+ .items-baseline {
536
+ align-items: baseline;
537
+ }
538
+
539
+ .items-stretch {
540
+ align-items: stretch;
541
+ }
542
+
543
+ /* Gap */
544
+ .gap-0 {
545
+ gap: var(--dm-space-0);
546
+ }
547
+
548
+ .gap-1 {
549
+ gap: var(--dm-space-1);
550
+ }
551
+
552
+ .gap-2 {
553
+ gap: var(--dm-space-2);
554
+ }
555
+
556
+ .gap-3 {
557
+ gap: var(--dm-space-3);
558
+ }
559
+
560
+ .gap-4 {
561
+ gap: var(--dm-space-4);
562
+ }
563
+
564
+ .gap-5 {
565
+ gap: var(--dm-space-5);
566
+ }
567
+
568
+ .gap-6 {
569
+ gap: var(--dm-space-6);
570
+ }
571
+
572
+ .gap-8 {
573
+ gap: var(--dm-space-8);
574
+ }
575
+
576
+ /* Grid */
577
+ .grid {
578
+ display: grid;
579
+ }
580
+
581
+ .grid-cols-1 {
582
+ grid-template-columns: repeat(1, minmax(0, 1fr));
583
+ }
584
+
585
+ .grid-cols-2 {
586
+ grid-template-columns: repeat(2, minmax(0, 1fr));
587
+ }
588
+
589
+ .grid-cols-3 {
590
+ grid-template-columns: repeat(3, minmax(0, 1fr));
591
+ }
592
+
593
+ .grid-cols-4 {
594
+ grid-template-columns: repeat(4, minmax(0, 1fr));
595
+ }
596
+
597
+ .grid-cols-6 {
598
+ grid-template-columns: repeat(6, minmax(0, 1fr));
599
+ }
600
+
601
+ .grid-cols-12 {
602
+ grid-template-columns: repeat(12, minmax(0, 1fr));
603
+ }
604
+
605
+ .col-span-1 {
606
+ grid-column: span 1 / span 1;
607
+ }
608
+
609
+ .col-span-2 {
610
+ grid-column: span 2 / span 2;
611
+ }
612
+
613
+ .col-span-3 {
614
+ grid-column: span 3 / span 3;
615
+ }
616
+
617
+ .col-span-4 {
618
+ grid-column: span 4 / span 4;
619
+ }
620
+
621
+ .col-span-6 {
622
+ grid-column: span 6 / span 6;
623
+ }
624
+
625
+ .col-span-full {
626
+ grid-column: 1 / -1;
627
+ }
628
+
629
+ /* ============================================
630
+ SPACING UTILITIES
631
+ ============================================ */
632
+
633
+ /* Margin */
634
+ .m-0 {
635
+ margin: var(--dm-space-0);
636
+ }
637
+
638
+ .m-1 {
639
+ margin: var(--dm-space-1);
640
+ }
641
+
642
+ .m-2 {
643
+ margin: var(--dm-space-2);
644
+ }
645
+
646
+ .m-3 {
647
+ margin: var(--dm-space-3);
648
+ }
649
+
650
+ .m-4 {
651
+ margin: var(--dm-space-4);
652
+ }
653
+
654
+ .m-5 {
655
+ margin: var(--dm-space-5);
656
+ }
657
+
658
+ .m-6 {
659
+ margin: var(--dm-space-6);
660
+ }
661
+
662
+ .m-8 {
663
+ margin: var(--dm-space-8);
664
+ }
665
+
666
+ .m-auto {
667
+ margin: auto;
668
+ }
669
+
670
+ .mx-0 {
671
+ margin-left: var(--dm-space-0);
672
+ margin-right: var(--dm-space-0);
673
+ }
674
+
675
+ .mx-1 {
676
+ margin-left: var(--dm-space-1);
677
+ margin-right: var(--dm-space-1);
678
+ }
679
+
680
+ .mx-2 {
681
+ margin-left: var(--dm-space-2);
682
+ margin-right: var(--dm-space-2);
683
+ }
684
+
685
+ .mx-3 {
686
+ margin-left: var(--dm-space-3);
687
+ margin-right: var(--dm-space-3);
688
+ }
689
+
690
+ .mx-4 {
691
+ margin-left: var(--dm-space-4);
692
+ margin-right: var(--dm-space-4);
693
+ }
694
+
695
+ .mx-auto {
696
+ margin-left: auto;
697
+ margin-right: auto;
698
+ }
699
+
700
+ .my-0 {
701
+ margin-top: var(--dm-space-0);
702
+ margin-bottom: var(--dm-space-0);
703
+ }
704
+
705
+ .my-1 {
706
+ margin-top: var(--dm-space-1);
707
+ margin-bottom: var(--dm-space-1);
708
+ }
709
+
710
+ .my-2 {
711
+ margin-top: var(--dm-space-2);
712
+ margin-bottom: var(--dm-space-2);
713
+ }
714
+
715
+ .my-3 {
716
+ margin-top: var(--dm-space-3);
717
+ margin-bottom: var(--dm-space-3);
718
+ }
719
+
720
+ .my-4 {
721
+ margin-top: var(--dm-space-4);
722
+ margin-bottom: var(--dm-space-4);
723
+ }
724
+
725
+ .my-6 {
726
+ margin-top: var(--dm-space-6);
727
+ margin-bottom: var(--dm-space-6);
728
+ }
729
+
730
+ .my-8 {
731
+ margin-top: var(--dm-space-8);
732
+ margin-bottom: var(--dm-space-8);
733
+ }
734
+
735
+ .mt-0 {
736
+ margin-top: var(--dm-space-0);
737
+ }
738
+
739
+ .mt-1 {
740
+ margin-top: var(--dm-space-1);
741
+ }
742
+
743
+ .mt-2 {
744
+ margin-top: var(--dm-space-2);
745
+ }
746
+
747
+ .mt-3 {
748
+ margin-top: var(--dm-space-3);
749
+ }
750
+
751
+ .mt-4 {
752
+ margin-top: var(--dm-space-4);
753
+ }
754
+
755
+ .mt-6 {
756
+ margin-top: var(--dm-space-6);
757
+ }
758
+
759
+ .mt-8 {
760
+ margin-top: var(--dm-space-8);
761
+ }
762
+
763
+ .mb-0 {
764
+ margin-bottom: var(--dm-space-0);
765
+ }
766
+
767
+ .mb-1 {
768
+ margin-bottom: var(--dm-space-1);
769
+ }
770
+
771
+ .mb-2 {
772
+ margin-bottom: var(--dm-space-2);
773
+ }
774
+
775
+ .mb-3 {
776
+ margin-bottom: var(--dm-space-3);
777
+ }
778
+
779
+ .mb-4 {
780
+ margin-bottom: var(--dm-space-4);
781
+ }
782
+
783
+ .mb-6 {
784
+ margin-bottom: var(--dm-space-6);
785
+ }
786
+
787
+ .mb-8 {
788
+ margin-bottom: var(--dm-space-8);
789
+ }
790
+
791
+ .ml-0 {
792
+ margin-left: var(--dm-space-0);
793
+ }
794
+
795
+ .ml-1 {
796
+ margin-left: var(--dm-space-1);
797
+ }
798
+
799
+ .ml-2 {
800
+ margin-left: var(--dm-space-2);
801
+ }
802
+
803
+ .ml-3 {
804
+ margin-left: var(--dm-space-3);
805
+ }
806
+
807
+ .ml-4 {
808
+ margin-left: var(--dm-space-4);
809
+ }
810
+
811
+ .ml-auto {
812
+ margin-left: auto;
813
+ }
814
+
815
+ .mr-0 {
816
+ margin-right: var(--dm-space-0);
817
+ }
818
+
819
+ .mr-1 {
820
+ margin-right: var(--dm-space-1);
821
+ }
822
+
823
+ .mr-2 {
824
+ margin-right: var(--dm-space-2);
825
+ }
826
+
827
+ .mr-3 {
828
+ margin-right: var(--dm-space-3);
829
+ }
830
+
831
+ .mr-4 {
832
+ margin-right: var(--dm-space-4);
833
+ }
834
+
835
+ .mr-auto {
836
+ margin-right: auto;
837
+ }
838
+
839
+ /* Padding */
840
+ .p-0 {
841
+ padding: var(--dm-space-0);
842
+ }
843
+
844
+ .p-1 {
845
+ padding: var(--dm-space-1);
846
+ }
847
+
848
+ .p-2 {
849
+ padding: var(--dm-space-2);
850
+ }
851
+
852
+ .p-3 {
853
+ padding: var(--dm-space-3);
854
+ }
855
+
856
+ .p-4 {
857
+ padding: var(--dm-space-4);
858
+ }
859
+
860
+ .p-5 {
861
+ padding: var(--dm-space-5);
862
+ }
863
+
864
+ .p-6 {
865
+ padding: var(--dm-space-6);
866
+ }
867
+
868
+ .p-8 {
869
+ padding: var(--dm-space-8);
870
+ }
871
+
872
+ .px-0 {
873
+ padding-left: var(--dm-space-0);
874
+ padding-right: var(--dm-space-0);
875
+ }
876
+
877
+ .px-1 {
878
+ padding-left: var(--dm-space-1);
879
+ padding-right: var(--dm-space-1);
880
+ }
881
+
882
+ .px-2 {
883
+ padding-left: var(--dm-space-2);
884
+ padding-right: var(--dm-space-2);
885
+ }
886
+
887
+ .px-3 {
888
+ padding-left: var(--dm-space-3);
889
+ padding-right: var(--dm-space-3);
890
+ }
891
+
892
+ .px-4 {
893
+ padding-left: var(--dm-space-4);
894
+ padding-right: var(--dm-space-4);
895
+ }
896
+
897
+ .px-6 {
898
+ padding-left: var(--dm-space-6);
899
+ padding-right: var(--dm-space-6);
900
+ }
901
+
902
+ .px-8 {
903
+ padding-left: var(--dm-space-8);
904
+ padding-right: var(--dm-space-8);
905
+ }
906
+
907
+ .py-0 {
908
+ padding-top: var(--dm-space-0);
909
+ padding-bottom: var(--dm-space-0);
910
+ }
911
+
912
+ .py-1 {
913
+ padding-top: var(--dm-space-1);
914
+ padding-bottom: var(--dm-space-1);
915
+ }
916
+
917
+ .py-2 {
918
+ padding-top: var(--dm-space-2);
919
+ padding-bottom: var(--dm-space-2);
920
+ }
921
+
922
+ .py-3 {
923
+ padding-top: var(--dm-space-3);
924
+ padding-bottom: var(--dm-space-3);
925
+ }
926
+
927
+ .py-4 {
928
+ padding-top: var(--dm-space-4);
929
+ padding-bottom: var(--dm-space-4);
930
+ }
931
+
932
+ .py-6 {
933
+ padding-top: var(--dm-space-6);
934
+ padding-bottom: var(--dm-space-6);
935
+ }
936
+
937
+ .py-8 {
938
+ padding-top: var(--dm-space-8);
939
+ padding-bottom: var(--dm-space-8);
940
+ }
941
+
942
+ .pt-0 {
943
+ padding-top: var(--dm-space-0);
944
+ }
945
+
946
+ .pt-1 {
947
+ padding-top: var(--dm-space-1);
948
+ }
949
+
950
+ .pt-2 {
951
+ padding-top: var(--dm-space-2);
952
+ }
953
+
954
+ .pt-3 {
955
+ padding-top: var(--dm-space-3);
956
+ }
957
+
958
+ .pt-4 {
959
+ padding-top: var(--dm-space-4);
960
+ }
961
+
962
+ .pt-6 {
963
+ padding-top: var(--dm-space-6);
964
+ }
965
+
966
+ .pt-8 {
967
+ padding-top: var(--dm-space-8);
968
+ }
969
+
970
+ .pb-0 {
971
+ padding-bottom: var(--dm-space-0);
972
+ }
973
+
974
+ .pb-1 {
975
+ padding-bottom: var(--dm-space-1);
976
+ }
977
+
978
+ .pb-2 {
979
+ padding-bottom: var(--dm-space-2);
980
+ }
981
+
982
+ .pb-3 {
983
+ padding-bottom: var(--dm-space-3);
984
+ }
985
+
986
+ .pb-4 {
987
+ padding-bottom: var(--dm-space-4);
988
+ }
989
+
990
+ .pb-6 {
991
+ padding-bottom: var(--dm-space-6);
992
+ }
993
+
994
+ .pb-8 {
995
+ padding-bottom: var(--dm-space-8);
996
+ }
997
+
998
+ .pl-0 {
999
+ padding-left: var(--dm-space-0);
1000
+ }
1001
+
1002
+ .pl-1 {
1003
+ padding-left: var(--dm-space-1);
1004
+ }
1005
+
1006
+ .pl-2 {
1007
+ padding-left: var(--dm-space-2);
1008
+ }
1009
+
1010
+ .pl-3 {
1011
+ padding-left: var(--dm-space-3);
1012
+ }
1013
+
1014
+ .pl-4 {
1015
+ padding-left: var(--dm-space-4);
1016
+ }
1017
+
1018
+ .pr-0 {
1019
+ padding-right: var(--dm-space-0);
1020
+ }
1021
+
1022
+ .pr-1 {
1023
+ padding-right: var(--dm-space-1);
1024
+ }
1025
+
1026
+ .pr-2 {
1027
+ padding-right: var(--dm-space-2);
1028
+ }
1029
+
1030
+ .pr-3 {
1031
+ padding-right: var(--dm-space-3);
1032
+ }
1033
+
1034
+ .pr-4 {
1035
+ padding-right: var(--dm-space-4);
1036
+ }
1037
+
1038
+ /* ============================================
1039
+ TYPOGRAPHY UTILITIES
1040
+ ============================================ */
1041
+
1042
+ /* Font Size */
1043
+ .text-xs {
1044
+ font-size: var(--dm-font-size-xs);
1045
+ }
1046
+
1047
+ .text-sm {
1048
+ font-size: var(--dm-font-size-sm);
1049
+ }
1050
+
1051
+ .text-base {
1052
+ font-size: var(--dm-font-size-base);
1053
+ }
1054
+
1055
+ .text-lg {
1056
+ font-size: var(--dm-font-size-lg);
1057
+ }
1058
+
1059
+ .text-xl {
1060
+ font-size: var(--dm-font-size-xl);
1061
+ }
1062
+
1063
+ .text-2xl {
1064
+ font-size: var(--dm-font-size-2xl);
1065
+ }
1066
+
1067
+ .text-3xl {
1068
+ font-size: var(--dm-font-size-3xl);
1069
+ }
1070
+
1071
+ .text-4xl {
1072
+ font-size: var(--dm-font-size-4xl);
1073
+ }
1074
+
1075
+ /* Font Weight */
1076
+ .font-normal {
1077
+ font-weight: 400;
1078
+ }
1079
+
1080
+ .font-medium {
1081
+ font-weight: 500;
1082
+ }
1083
+
1084
+ .font-semibold {
1085
+ font-weight: 600;
1086
+ }
1087
+
1088
+ .font-bold {
1089
+ font-weight: 700;
1090
+ }
1091
+
1092
+ /* Text Alignment */
1093
+ .text-left {
1094
+ text-align: left;
1095
+ }
1096
+
1097
+ .text-center {
1098
+ text-align: center;
1099
+ }
1100
+
1101
+ .text-right {
1102
+ text-align: right;
1103
+ }
1104
+
1105
+ /* Text Transform */
1106
+ .uppercase {
1107
+ text-transform: uppercase;
1108
+ }
1109
+
1110
+ .lowercase {
1111
+ text-transform: lowercase;
1112
+ }
1113
+
1114
+ .capitalize {
1115
+ text-transform: capitalize;
1116
+ }
1117
+
1118
+ /* Line Height */
1119
+ .leading-none {
1120
+ line-height: 1;
1121
+ }
1122
+
1123
+ .leading-tight {
1124
+ line-height: 1.25;
1125
+ }
1126
+
1127
+ .leading-normal {
1128
+ line-height: 1.5;
1129
+ }
1130
+
1131
+ .leading-relaxed {
1132
+ line-height: 1.625;
1133
+ }
1134
+
1135
+ .leading-loose {
1136
+ line-height: 2;
1137
+ }
1138
+
1139
+ /* Letter Spacing */
1140
+ .tracking-tight {
1141
+ letter-spacing: -0.025em;
1142
+ }
1143
+
1144
+ .tracking-normal {
1145
+ letter-spacing: 0;
1146
+ }
1147
+
1148
+ .tracking-wide {
1149
+ letter-spacing: 0.025em;
1150
+ }
1151
+
1152
+ /* Truncate */
1153
+ .truncate {
1154
+ overflow: hidden;
1155
+ text-overflow: ellipsis;
1156
+ white-space: nowrap;
1157
+ }
1158
+
1159
+ /* ============================================
1160
+ COLOR UTILITIES
1161
+ ============================================ */
1162
+
1163
+ /* Text Colors */
1164
+ .text-primary {
1165
+ color: var(--dm-primary);
1166
+ }
1167
+
1168
+ .text-secondary {
1169
+ color: var(--dm-secondary);
1170
+ }
1171
+
1172
+ .text-success {
1173
+ color: var(--dm-success);
1174
+ }
1175
+
1176
+ .text-danger {
1177
+ color: var(--dm-danger);
1178
+ }
1179
+
1180
+ .text-warning {
1181
+ color: var(--dm-warning);
1182
+ }
1183
+
1184
+ .text-info {
1185
+ color: var(--dm-info);
1186
+ }
1187
+
1188
+ .text-white {
1189
+ color: var(--dm-white);
1190
+ }
1191
+
1192
+ .text-black {
1193
+ color: var(--dm-black);
1194
+ }
1195
+
1196
+ .text-muted {
1197
+ color: var(--dm-gray-600);
1198
+ }
1199
+
1200
+ .text-gray-500 {
1201
+ color: var(--dm-gray-500);
1202
+ }
1203
+
1204
+ .text-gray-600 {
1205
+ color: var(--dm-gray-600);
1206
+ }
1207
+
1208
+ .text-gray-700 {
1209
+ color: var(--dm-gray-700);
1210
+ }
1211
+
1212
+ .text-gray-800 {
1213
+ color: var(--dm-gray-800);
1214
+ }
1215
+
1216
+ .text-gray-900 {
1217
+ color: var(--dm-gray-900);
1218
+ }
1219
+
1220
+ /* Background Colors */
1221
+ .bg-primary {
1222
+ background-color: var(--dm-primary);
1223
+ }
1224
+
1225
+ .bg-primary-dark {
1226
+ background-color: var(--dm-primary-dark);
1227
+ }
1228
+
1229
+ .bg-primary-light {
1230
+ background-color: var(--dm-primary-light);
1231
+ }
1232
+
1233
+ .bg-secondary {
1234
+ background-color: var(--dm-secondary);
1235
+ }
1236
+
1237
+ .bg-success {
1238
+ background-color: var(--dm-success);
1239
+ }
1240
+
1241
+ .bg-danger {
1242
+ background-color: var(--dm-danger);
1243
+ }
1244
+
1245
+ .bg-warning {
1246
+ background-color: var(--dm-warning);
1247
+ }
1248
+
1249
+ .bg-info {
1250
+ background-color: var(--dm-info);
1251
+ }
1252
+
1253
+ .bg-light {
1254
+ background-color: var(--dm-light);
1255
+ }
1256
+
1257
+ .bg-dark {
1258
+ background-color: var(--dm-dark);
1259
+ }
1260
+
1261
+ .bg-white {
1262
+ background-color: var(--dm-white);
1263
+ }
1264
+
1265
+ .bg-gray-100 {
1266
+ background-color: var(--dm-gray-100);
1267
+ }
1268
+
1269
+ .bg-gray-200 {
1270
+ background-color: var(--dm-gray-200);
1271
+ }
1272
+
1273
+ .bg-gray-300 {
1274
+ background-color: var(--dm-gray-300);
1275
+ }
1276
+
1277
+ .bg-transparent {
1278
+ background-color: transparent;
1279
+ }
1280
+
1281
+ /* ============================================
1282
+ BORDER UTILITIES
1283
+ ============================================ */
1284
+
1285
+ .border {
1286
+ border: 1px solid var(--dm-gray-300);
1287
+ }
1288
+
1289
+ .border-0 {
1290
+ border: 0;
1291
+ }
1292
+
1293
+ .border-t {
1294
+ border-top: 1px solid var(--dm-gray-300);
1295
+ }
1296
+
1297
+ .border-b {
1298
+ border-bottom: 1px solid var(--dm-gray-300);
1299
+ }
1300
+
1301
+ .border-l {
1302
+ border-left: 1px solid var(--dm-gray-300);
1303
+ }
1304
+
1305
+ .border-r {
1306
+ border-right: 1px solid var(--dm-gray-300);
1307
+ }
1308
+
1309
+ .border-primary {
1310
+ border-color: var(--dm-primary);
1311
+ }
1312
+
1313
+ .border-secondary {
1314
+ border-color: var(--dm-secondary);
1315
+ }
1316
+
1317
+ .border-success {
1318
+ border-color: var(--dm-success);
1319
+ }
1320
+
1321
+ .border-danger {
1322
+ border-color: var(--dm-danger);
1323
+ }
1324
+
1325
+ .border-gray-200 {
1326
+ border-color: var(--dm-gray-200);
1327
+ }
1328
+
1329
+ .border-gray-300 {
1330
+ border-color: var(--dm-gray-300);
1331
+ }
1332
+
1333
+ .rounded-none {
1334
+ border-radius: var(--dm-radius-none);
1335
+ }
1336
+
1337
+ .rounded-sm {
1338
+ border-radius: var(--dm-radius-sm);
1339
+ }
1340
+
1341
+ .rounded {
1342
+ border-radius: var(--dm-radius-md);
1343
+ }
1344
+
1345
+ .rounded-md {
1346
+ border-radius: var(--dm-radius-md);
1347
+ }
1348
+
1349
+ .rounded-lg {
1350
+ border-radius: var(--dm-radius-lg);
1351
+ }
1352
+
1353
+ .rounded-xl {
1354
+ border-radius: var(--dm-radius-xl);
1355
+ }
1356
+
1357
+ .rounded-2xl {
1358
+ border-radius: var(--dm-radius-2xl);
1359
+ }
1360
+
1361
+ .rounded-full {
1362
+ border-radius: var(--dm-radius-full);
1363
+ }
1364
+
1365
+ /* ============================================
1366
+ SHADOW UTILITIES
1367
+ ============================================ */
1368
+
1369
+ .shadow-none {
1370
+ box-shadow: none;
1371
+ }
1372
+
1373
+ .shadow-sm {
1374
+ box-shadow: var(--dm-shadow-sm);
1375
+ }
1376
+
1377
+ .shadow {
1378
+ box-shadow: var(--dm-shadow-md);
1379
+ }
1380
+
1381
+ .shadow-md {
1382
+ box-shadow: var(--dm-shadow-md);
1383
+ }
1384
+
1385
+ .shadow-lg {
1386
+ box-shadow: var(--dm-shadow-lg);
1387
+ }
1388
+
1389
+ .shadow-xl {
1390
+ box-shadow: var(--dm-shadow-xl);
1391
+ }
1392
+
1393
+ /* ============================================
1394
+ SIZE UTILITIES
1395
+ ============================================ */
1396
+
1397
+ .w-full {
1398
+ width: 100%;
1399
+ }
1400
+
1401
+ .w-auto {
1402
+ width: auto;
1403
+ }
1404
+
1405
+ .w-1\/2 {
1406
+ width: 50%;
1407
+ }
1408
+
1409
+ .w-1\/3 {
1410
+ width: 33.333333%;
1411
+ }
1412
+
1413
+ .w-2\/3 {
1414
+ width: 66.666667%;
1415
+ }
1416
+
1417
+ .w-1\/4 {
1418
+ width: 25%;
1419
+ }
1420
+
1421
+ .w-3\/4 {
1422
+ width: 75%;
1423
+ }
1424
+
1425
+ .h-full {
1426
+ height: 100%;
1427
+ }
1428
+
1429
+ .h-auto {
1430
+ height: auto;
1431
+ }
1432
+
1433
+ .h-screen {
1434
+ height: 100vh;
1435
+ }
1436
+
1437
+ .min-h-screen {
1438
+ min-height: 100vh;
1439
+ }
1440
+
1441
+ /* ============================================
1442
+ POSITION UTILITIES
1443
+ ============================================ */
1444
+
1445
+ .relative {
1446
+ position: relative;
1447
+ }
1448
+
1449
+ .absolute {
1450
+ position: absolute;
1451
+ }
1452
+
1453
+ .fixed {
1454
+ position: fixed;
1455
+ }
1456
+
1457
+ .sticky {
1458
+ position: sticky;
1459
+ }
1460
+
1461
+ .inset-0 {
1462
+ top: 0;
1463
+ right: 0;
1464
+ bottom: 0;
1465
+ left: 0;
1466
+ }
1467
+
1468
+ .top-0 {
1469
+ top: 0;
1470
+ }
1471
+
1472
+ .right-0 {
1473
+ right: 0;
1474
+ }
1475
+
1476
+ .bottom-0 {
1477
+ bottom: 0;
1478
+ }
1479
+
1480
+ .left-0 {
1481
+ left: 0;
1482
+ }
1483
+
1484
+ .z-0 {
1485
+ z-index: 0;
1486
+ }
1487
+
1488
+ .z-10 {
1489
+ z-index: 10;
1490
+ }
1491
+
1492
+ .z-20 {
1493
+ z-index: 20;
1494
+ }
1495
+
1496
+ .z-30 {
1497
+ z-index: 30;
1498
+ }
1499
+
1500
+ .z-40 {
1501
+ z-index: 40;
1502
+ }
1503
+
1504
+ .z-50 {
1505
+ z-index: 50;
1506
+ }
1507
+
1508
+ /* ============================================
1509
+ MISC UTILITIES
1510
+ ============================================ */
1511
+
1512
+ .overflow-hidden {
1513
+ overflow: hidden;
1514
+ }
1515
+
1516
+ .overflow-auto {
1517
+ overflow: auto;
1518
+ }
1519
+
1520
+ .overflow-scroll {
1521
+ overflow: scroll;
1522
+ }
1523
+
1524
+ .cursor-pointer {
1525
+ cursor: pointer;
1526
+ }
1527
+
1528
+ .cursor-default {
1529
+ cursor: default;
1530
+ }
1531
+
1532
+ .cursor-not-allowed {
1533
+ cursor: not-allowed;
1534
+ }
1535
+
1536
+ .select-none {
1537
+ user-select: none;
1538
+ }
1539
+
1540
+ .select-text {
1541
+ user-select: text;
1542
+ }
1543
+
1544
+ .opacity-0 {
1545
+ opacity: 0;
1546
+ }
1547
+
1548
+ .opacity-50 {
1549
+ opacity: 0.5;
1550
+ }
1551
+
1552
+ .opacity-75 {
1553
+ opacity: 0.75;
1554
+ }
1555
+
1556
+ .opacity-100 {
1557
+ opacity: 1;
1558
+ }
1559
+
1560
+ .transition {
1561
+ transition: all var(--dm-transition-normal);
1562
+ }
1563
+
1564
+ .transition-fast {
1565
+ transition: all var(--dm-transition-fast);
1566
+ }
1567
+
1568
+ .transition-slow {
1569
+ transition: all var(--dm-transition-slow);
1570
+ }
1571
+
1572
+ .transition-none {
1573
+ transition: none;
1574
+ }
1575
+
1576
+ .pointer-events-none {
1577
+ pointer-events: none;
1578
+ }
1579
+
1580
+ .pointer-events-auto {
1581
+ pointer-events: auto;
1582
+ }
1583
+
1584
+ /* ============================================
1585
+ COMPONENT: Buttons
1586
+ ============================================ */
1587
+
1588
+
1589
+ /* ============================================
1590
+ COMPONENT: Cards
1591
+ ============================================ */
1592
+
1593
+ /* ============================================
1594
+ COMPONENT: Modal
1595
+ ============================================ */
1596
+
1597
+ .modal-backdrop {
1598
+ position: fixed;
1599
+ inset: 0;
1600
+ background-color: rgba(0, 0, 0, 0.5);
1601
+ z-index: 40;
1602
+ opacity: 0;
1603
+ transition: opacity var(--dm-transition-normal);
1604
+ pointer-events: none;
1605
+ }
1606
+
1607
+ .modal-backdrop.active {
1608
+ opacity: 1;
1609
+ pointer-events: auto;
1610
+ }
1611
+
1612
+ /* ============================================
1613
+ COMPONENT: Tabs
1614
+ ============================================ */
1615
+
1616
+ /* ============================================
1617
+ COMPONENT: Accordion
1618
+ ============================================ */
1619
+
1620
+ /* ============================================
1621
+ COMPONENT: Tooltip
1622
+ ============================================ */
1623
+
1624
+ /* ============================================
1625
+ COMPONENT: Table
1626
+ ============================================ */
1627
+
1628
+
1629
+ /* Toggle Switch */
1630
+ .form-switch {
1631
+ display: inline-flex;
1632
+ align-items: center;
1633
+ gap: var(--dm-space-2);
1634
+ cursor: pointer;
1635
+ }
1636
+
1637
+ .form-switch-input {
1638
+ appearance: none;
1639
+ -webkit-appearance: none;
1640
+ width: 2.5rem;
1641
+ height: 1.375rem;
1642
+ background-color: var(--dm-gray-300);
1643
+ border-radius: var(--dm-radius-full);
1644
+ position: relative;
1645
+ cursor: pointer;
1646
+ transition: background-color 0.2s ease;
1647
+ flex-shrink: 0;
1648
+ }
1649
+
1650
+ .form-switch-input::after {
1651
+ content: '';
1652
+ position: absolute;
1653
+ left: 2px;
1654
+ top: 2px;
1655
+ width: 1.125rem;
1656
+ height: 1.125rem;
1657
+ background-color: var(--dm-white);
1658
+ border-radius: 50%;
1659
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
1660
+ transition: transform 0.2s ease;
1661
+ }
1662
+
1663
+ .form-switch-input:checked {
1664
+ background-color: var(--dm-primary);
1665
+ }
1666
+
1667
+ .form-switch-input:checked::after {
1668
+ transform: translateX(1.125rem);
1669
+ }
1670
+
1671
+ .form-switch-input:focus {
1672
+ outline: none;
1673
+ box-shadow: 0 0 0 3px var(--dm-focus-ring);
1674
+ }
1675
+
1676
+ .form-switch-input:disabled {
1677
+ opacity: 0.5;
1678
+ cursor: not-allowed;
1679
+ }
1680
+
1681
+ .form-switch-input:disabled + .form-switch-label {
1682
+ opacity: 0.5;
1683
+ cursor: not-allowed;
1684
+ }
1685
+
1686
+ .form-switch-label {
1687
+ cursor: pointer;
1688
+ color: var(--dm-text, var(--dm-gray-900));
1689
+ }
1690
+
1691
+ .dm-theme-dark .form-switch-input {
1692
+ background-color: var(--dm-gray-600);
1693
+ }
1694
+
1695
+ /* Validation States - Success & Warning */
1696
+ .form-input.success,
1697
+ .form-select.success,
1698
+ .form-textarea.success {
1699
+ border-color: var(--dm-success);
1700
+ }
1701
+
1702
+ .form-input.success:focus,
1703
+ .form-select.success:focus,
1704
+ .form-textarea.success:focus {
1705
+ box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.2);
1706
+ }
1707
+
1708
+ .form-input.warning,
1709
+ .form-select.warning,
1710
+ .form-textarea.warning {
1711
+ border-color: var(--dm-warning);
1712
+ }
1713
+
1714
+ .form-input.warning:focus,
1715
+ .form-select.warning:focus,
1716
+ .form-textarea.warning:focus {
1717
+ box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.2);
1718
+ }
1719
+
1720
+ .form-success {
1721
+ margin-top: var(--dm-space-1);
1722
+ font-size: var(--dm-font-size-sm);
1723
+ color: var(--dm-success);
1724
+ }
1725
+
1726
+ .form-warning {
1727
+ margin-top: var(--dm-space-1);
1728
+ font-size: var(--dm-font-size-sm);
1729
+ color: var(--dm-warning);
1730
+ }
1731
+
1732
+ /* Input Sizes */
1733
+ .form-input-sm,
1734
+ .form-select-sm,
1735
+ .form-textarea-sm {
1736
+ padding: var(--dm-space-1) var(--dm-space-2);
1737
+ font-size: var(--dm-font-size-sm);
1738
+ }
1739
+
1740
+ .form-input-lg,
1741
+ .form-select-lg,
1742
+ .form-textarea-lg {
1743
+ padding: var(--dm-space-3) var(--dm-space-4);
1744
+ font-size: var(--dm-font-size-lg);
1745
+ }
1746
+
1747
+ /* Input Groups */
1748
+ .input-group {
1749
+ display: flex;
1750
+ width: 100%;
1751
+ }
1752
+
1753
+ .input-group .form-input,
1754
+ .input-group .form-select {
1755
+ flex: 1;
1756
+ border-radius: 0;
1757
+ }
1758
+
1759
+ .input-group .form-input:first-child,
1760
+ .input-group .form-select:first-child {
1761
+ border-top-left-radius: var(--dm-radius-md);
1762
+ border-bottom-left-radius: var(--dm-radius-md);
1763
+ }
1764
+
1765
+ .input-group .form-input:last-child,
1766
+ .input-group .form-select:last-child {
1767
+ border-top-right-radius: var(--dm-radius-md);
1768
+ border-bottom-right-radius: var(--dm-radius-md);
1769
+ }
1770
+
1771
+ .input-group-text {
1772
+ display: flex;
1773
+ align-items: center;
1774
+ padding: var(--dm-space-2) var(--dm-space-3);
1775
+ font-size: var(--dm-font-size-base);
1776
+ color: var(--dm-text-muted, var(--dm-gray-600));
1777
+ background-color: var(--dm-gray-100);
1778
+ border: 1px solid var(--dm-border, var(--dm-gray-300));
1779
+ white-space: nowrap;
1780
+ }
1781
+
1782
+ .input-group-text:first-child {
1783
+ border-right: none;
1784
+ border-top-left-radius: var(--dm-radius-md);
1785
+ border-bottom-left-radius: var(--dm-radius-md);
1786
+ }
1787
+
1788
+ .input-group-text:last-child {
1789
+ border-left: none;
1790
+ border-top-right-radius: var(--dm-radius-md);
1791
+ border-bottom-right-radius: var(--dm-radius-md);
1792
+ }
1793
+
1794
+ .dm-theme-dark .input-group-text {
1795
+ background-color: var(--dm-gray-700);
1796
+ color: var(--dm-gray-300);
1797
+ }
1798
+
1799
+ .input-group .btn {
1800
+ border-radius: 0;
1801
+ }
1802
+
1803
+ .input-group .btn:first-child {
1804
+ border-top-left-radius: var(--dm-radius-md);
1805
+ border-bottom-left-radius: var(--dm-radius-md);
1806
+ }
1807
+
1808
+ .input-group .btn:last-child {
1809
+ border-top-right-radius: var(--dm-radius-md);
1810
+ border-bottom-right-radius: var(--dm-radius-md);
1811
+ }
1812
+
1813
+ /* Button Groups */
1814
+ .btn-group {
1815
+ display: inline-flex;
1816
+ vertical-align: middle;
1817
+ }
1818
+
1819
+ .btn-group > .btn {
1820
+ border-radius: 0;
1821
+ position: relative;
1822
+ }
1823
+
1824
+ .btn-group > .btn:not(:last-child) {
1825
+ border-right-width: 0;
1826
+ }
1827
+
1828
+ .btn-group > .btn:first-child {
1829
+ border-top-left-radius: var(--dm-radius-md);
1830
+ border-bottom-left-radius: var(--dm-radius-md);
1831
+ }
1832
+
1833
+ .btn-group > .btn:last-child {
1834
+ border-top-right-radius: var(--dm-radius-md);
1835
+ border-bottom-right-radius: var(--dm-radius-md);
1836
+ border-right-width: 1px;
1837
+ }
1838
+
1839
+ .btn-group > .btn:hover,
1840
+ .btn-group > .btn:focus {
1841
+ z-index: 1;
1842
+ }
1843
+
1844
+ .btn-group > .btn.active {
1845
+ z-index: 2;
1846
+ }
1847
+
1848
+ /* Active states for outline buttons in groups */
1849
+ .btn-group > .btn-outline.active {
1850
+ background-color: var(--dm-primary);
1851
+ border-color: var(--dm-primary);
1852
+ color: var(--dm-white);
1853
+ }
1854
+
1855
+ .btn-group > .btn-secondary.active {
1856
+ background-color: var(--dm-gray-700);
1857
+ border-color: var(--dm-gray-700);
1858
+ }
1859
+
1860
+ /* Vertical Button Group */
1861
+ .btn-group-vertical {
1862
+ display: inline-flex;
1863
+ flex-direction: column;
1864
+ vertical-align: middle;
1865
+ }
1866
+
1867
+ .btn-group-vertical > .btn {
1868
+ border-radius: 0;
1869
+ position: relative;
1870
+ width: 100%;
1871
+ }
1872
+
1873
+ .btn-group-vertical > .btn:not(:last-child) {
1874
+ border-bottom-width: 0;
1875
+ }
1876
+
1877
+ .btn-group-vertical > .btn:first-child {
1878
+ border-top-left-radius: var(--dm-radius-md);
1879
+ border-top-right-radius: var(--dm-radius-md);
1880
+ }
1881
+
1882
+ .btn-group-vertical > .btn:last-child {
1883
+ border-bottom-left-radius: var(--dm-radius-md);
1884
+ border-bottom-right-radius: var(--dm-radius-md);
1885
+ border-bottom-width: 1px;
1886
+ }
1887
+
1888
+ .btn-group-vertical > .btn:hover,
1889
+ .btn-group-vertical > .btn:focus {
1890
+ z-index: 1;
1891
+ }
1892
+
1893
+ .btn-group-vertical > .btn.active {
1894
+ z-index: 2;
1895
+ }
1896
+
1897
+ /* Range Slider */
1898
+ .form-range {
1899
+ appearance: none;
1900
+ -webkit-appearance: none;
1901
+ width: 100%;
1902
+ height: 0.5rem;
1903
+ background: var(--dm-gray-200);
1904
+ border-radius: var(--dm-radius-full);
1905
+ cursor: pointer;
1906
+ }
1907
+
1908
+ .form-range:focus {
1909
+ outline: none;
1910
+ }
1911
+
1912
+ .form-range::-webkit-slider-thumb {
1913
+ appearance: none;
1914
+ -webkit-appearance: none;
1915
+ width: 1.25rem;
1916
+ height: 1.25rem;
1917
+ background: var(--dm-primary);
1918
+ border-radius: 50%;
1919
+ cursor: pointer;
1920
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
1921
+ transition: transform 0.15s ease, box-shadow 0.15s ease;
1922
+ }
1923
+
1924
+ .form-range::-webkit-slider-thumb:hover {
1925
+ transform: scale(1.1);
1926
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
1927
+ }
1928
+
1929
+ .form-range::-moz-range-thumb {
1930
+ width: 1.25rem;
1931
+ height: 1.25rem;
1932
+ background: var(--dm-primary);
1933
+ border: none;
1934
+ border-radius: 50%;
1935
+ cursor: pointer;
1936
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
1937
+ }
1938
+
1939
+ .form-range::-moz-range-track {
1940
+ background: var(--dm-gray-200);
1941
+ border-radius: var(--dm-radius-full);
1942
+ height: 0.5rem;
1943
+ }
1944
+
1945
+ .dm-theme-dark .form-range {
1946
+ background: var(--dm-gray-600);
1947
+ }
1948
+
1949
+ .dm-theme-dark .form-range::-moz-range-track {
1950
+ background: var(--dm-gray-600);
1951
+ }
1952
+
1953
+ /* File Input */
1954
+ .form-file {
1955
+ position: relative;
1956
+ display: inline-block;
1957
+ }
1958
+
1959
+ .form-file-input {
1960
+ position: absolute;
1961
+ width: 100%;
1962
+ height: 100%;
1963
+ opacity: 0;
1964
+ cursor: pointer;
1965
+ }
1966
+
1967
+ .form-file-label {
1968
+ display: inline-flex;
1969
+ align-items: center;
1970
+ gap: var(--dm-space-2);
1971
+ padding: var(--dm-space-2) var(--dm-space-4);
1972
+ font-size: var(--dm-font-size-base);
1973
+ color: var(--dm-text, var(--dm-gray-700));
1974
+ background-color: var(--dm-surface, var(--dm-white));
1975
+ border: 1px solid var(--dm-border, var(--dm-gray-300));
1976
+ border-radius: var(--dm-radius-md);
1977
+ cursor: pointer;
1978
+ transition: background-color 0.15s ease, border-color 0.15s ease;
1979
+ }
1980
+
1981
+ .form-file-label:hover {
1982
+ background-color: var(--dm-gray-50);
1983
+ border-color: var(--dm-primary);
1984
+ }
1985
+
1986
+ .dm-theme-dark .form-file-label:hover {
1987
+ background-color: var(--dm-gray-700);
1988
+ }
1989
+
1990
+ /* Color Input */
1991
+ .form-color {
1992
+ appearance: none;
1993
+ -webkit-appearance: none;
1994
+ width: 3rem;
1995
+ height: 2.25rem;
1996
+ padding: 0.25rem;
1997
+ background-color: var(--dm-surface, var(--dm-white));
1998
+ border: 1px solid var(--dm-border, var(--dm-gray-300));
1999
+ border-radius: var(--dm-radius-md);
2000
+ cursor: pointer;
2001
+ }
2002
+
2003
+ .form-color::-webkit-color-swatch-wrapper {
2004
+ padding: 0;
2005
+ }
2006
+
2007
+ .form-color::-webkit-color-swatch {
2008
+ border: none;
2009
+ border-radius: var(--dm-radius-sm);
2010
+ }
2011
+
2012
+ .form-color::-moz-color-swatch {
2013
+ border: none;
2014
+ border-radius: var(--dm-radius-sm);
2015
+ }
2016
+
2017
+ /* Search Input */
2018
+ .form-search {
2019
+ padding-left: var(--dm-space-10);
2020
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");
2021
+ background-repeat: no-repeat;
2022
+ background-position: var(--dm-space-3) center;
2023
+ background-size: 16px;
2024
+ }
2025
+
2026
+ .dm-theme-dark .form-search {
2027
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");
2028
+ }
2029
+
2030
+ /* Date/Time Inputs */
2031
+ .form-input[type="date"],
2032
+ .form-input[type="time"],
2033
+ .form-input[type="datetime-local"],
2034
+ .form-input[type="month"],
2035
+ .form-input[type="week"] {
2036
+ padding-right: var(--dm-space-2);
2037
+ }
2038
+
2039
+ .form-input[type="date"]::-webkit-calendar-picker-indicator,
2040
+ .form-input[type="time"]::-webkit-calendar-picker-indicator,
2041
+ .form-input[type="datetime-local"]::-webkit-calendar-picker-indicator,
2042
+ .form-input[type="month"]::-webkit-calendar-picker-indicator,
2043
+ .form-input[type="week"]::-webkit-calendar-picker-indicator {
2044
+ cursor: pointer;
2045
+ opacity: 0.6;
2046
+ transition: opacity 0.15s ease;
2047
+ }
2048
+
2049
+ .form-input[type="date"]::-webkit-calendar-picker-indicator:hover,
2050
+ .form-input[type="time"]::-webkit-calendar-picker-indicator:hover,
2051
+ .form-input[type="datetime-local"]::-webkit-calendar-picker-indicator:hover,
2052
+ .form-input[type="month"]::-webkit-calendar-picker-indicator:hover,
2053
+ .form-input[type="week"]::-webkit-calendar-picker-indicator:hover {
2054
+ opacity: 1;
2055
+ }
2056
+
2057
+ .dm-theme-dark .form-input[type="date"]::-webkit-calendar-picker-indicator,
2058
+ .dm-theme-dark .form-input[type="time"]::-webkit-calendar-picker-indicator,
2059
+ .dm-theme-dark .form-input[type="datetime-local"]::-webkit-calendar-picker-indicator,
2060
+ .dm-theme-dark .form-input[type="month"]::-webkit-calendar-picker-indicator,
2061
+ .dm-theme-dark .form-input[type="week"]::-webkit-calendar-picker-indicator {
2062
+ filter: invert(1);
2063
+ }
2064
+
2065
+ /* Floating Labels */
2066
+ .form-floating {
2067
+ position: relative;
2068
+ }
2069
+
2070
+ .form-floating .form-input,
2071
+ .form-floating .form-select,
2072
+ .form-floating .form-textarea {
2073
+ padding-top: 1.625rem;
2074
+ padding-bottom: 0.625rem;
2075
+ }
2076
+
2077
+ .form-floating .form-label {
2078
+ position: absolute;
2079
+ top: 0;
2080
+ left: 0;
2081
+ padding: var(--dm-space-2) var(--dm-space-3);
2082
+ pointer-events: none;
2083
+ transform-origin: left top;
2084
+ transition: transform 0.15s ease, color 0.15s ease;
2085
+ color: var(--dm-text-muted, var(--dm-gray-500));
2086
+ margin-bottom: 0;
2087
+ }
2088
+
2089
+ .form-floating .form-input:focus ~ .form-label,
2090
+ .form-floating .form-input:not(:placeholder-shown) ~ .form-label,
2091
+ .form-floating .form-select:focus ~ .form-label,
2092
+ .form-floating .form-select:not([value=""]) ~ .form-label,
2093
+ .form-floating .form-textarea:focus ~ .form-label,
2094
+ .form-floating .form-textarea:not(:placeholder-shown) ~ .form-label {
2095
+ transform: scale(0.75) translateY(-0.5rem);
2096
+ color: var(--dm-primary);
2097
+ }
2098
+
2099
+ /* Number Input Spinner */
2100
+ .form-input[type="number"] {
2101
+ -moz-appearance: textfield;
2102
+ }
2103
+
2104
+ .form-input[type="number"]::-webkit-inner-spin-button,
2105
+ .form-input[type="number"]::-webkit-outer-spin-button {
2106
+ opacity: 1;
2107
+ cursor: pointer;
2108
+ }
2109
+
2110
+ /* ============================================
2111
+ COMPONENT: Badge
2112
+ ============================================ */
2113
+
2114
+ /* ============================================
2115
+ COMPONENT: Pill
2116
+ ============================================ */
2117
+
2118
+ /* ============================================
2119
+ COMPONENT: Alert
2120
+ ============================================ */
2121
+
2122
+ /* ============================================
2123
+ SYNTAX HIGHLIGHTING TOKENS
2124
+ ============================================ */
2125
+
2126
+ /* Dark theme (default) - Material Palenight inspired */
2127
+ .code-block .syntax-keyword {
2128
+ color: #c792ea;
2129
+ font-weight: 500;
2130
+ }
2131
+
2132
+ .code-block .syntax-string,
2133
+ .code-block .syntax-template-string {
2134
+ color: #c3e88d;
2135
+ }
2136
+
2137
+ .code-block .syntax-function {
2138
+ color: #82aaff;
2139
+ }
2140
+
2141
+ /**
2142
+ * Domma Dark Theme - Tailwind Version
2143
+ * Dark color scheme with a Tailwind CSS 'slate' palette.
2144
+ */
2145
+
2146
+ .dm-theme-dark {
2147
+ color-scheme: dark;
2148
+
2149
+ /* ================================================
2150
+ SEMANTIC COLORS (Dark Theme Overrides)
2151
+ ================================================ */
2152
+
2153
+ /* Backgrounds */
2154
+ --dm-background: var(--dm-slate-900);
2155
+ --dm-background-alt: var(--dm-slate-800);
2156
+ --dm-surface: var(--dm-slate-800);
2157
+ --dm-surface-raised: var(--dm-slate-700);
2158
+ --dm-surface-overlay: var(--dm-slate-700);
2159
+
2160
+ /* Text */
2161
+ --dm-text: var(--dm-slate-200);
2162
+ --dm-text-secondary: var(--dm-slate-400);
2163
+ --dm-text-muted: var(--dm-slate-500);
2164
+ --dm-text-disabled: var(--dm-slate-600);
2165
+ --dm-text-inverse: var(--dm-slate-900);
2166
+
2167
+ /* Borders */
2168
+ --dm-border: var(--dm-slate-700);
2169
+ --dm-border-light: var(--dm-slate-800);
2170
+ --dm-border-dark: var(--dm-slate-600);
2171
+ --dm-border-focus: var(--dm-blue-500);
2172
+ --dm-focus-ring: rgba(96, 165, 250, 0.3); /* blue-400 at 30% */
2173
+ --dm-focus-ring-danger: rgba(248, 113, 113, 0.3); /* red-400 at 30% */
2174
+
2175
+ /* ================================================
2176
+ BRAND COLORS (Lightened for dark mode)
2177
+ ================================================ */
2178
+ --dm-primary: var(--dm-blue-500);
2179
+ --dm-primary-hover: var(--dm-blue-400);
2180
+ --dm-primary-active: var(--dm-blue-300);
2181
+ --dm-primary-light: rgba(96, 165, 250, 0.15); /* blue-400 */
2182
+ --dm-primary-dark: var(--dm-blue-600);
2183
+
2184
+ --dm-secondary: var(--dm-slate-400);
2185
+ --dm-secondary-hover: var(--dm-slate-300);
2186
+ --dm-secondary-active: var(--dm-slate-200);
2187
+
2188
+ /* ================================================
2189
+ STATUS COLORS (Adjusted for dark mode)
2190
+ ================================================ */
2191
+ --dm-success: var(--dm-green-500);
2192
+ --dm-success-hover: var(--dm-green-400);
2193
+ --dm-success-active: var(--dm-green-300);
2194
+ --dm-success-light: rgba(74, 222, 128, 0.15); /* green-400 */
2195
+ --dm-success-dark: var(--dm-green-600);
2196
+
2197
+ --dm-danger: var(--dm-red-500);
2198
+ --dm-danger-hover: var(--dm-red-400);
2199
+ --dm-danger-active: var(--dm-red-300);
2200
+ --dm-danger-light: rgba(248, 113, 113, 0.15); /* red-400 */
2201
+ --dm-danger-dark: var(--dm-red-600);
2202
+
2203
+ --dm-warning: var(--dm-amber-400);
2204
+ --dm-warning-hover: var(--dm-amber-300);
2205
+ --dm-warning-active: var(--dm-amber-200);
2206
+ --dm-warning-text: var(--dm-amber-950);
2207
+ --dm-warning-light: rgba(251, 191, 36, 0.15); /* amber-400 */
2208
+ --dm-warning-dark: var(--dm-amber-500);
2209
+
2210
+ --dm-info: var(--dm-sky-400);
2211
+ --dm-info-hover: var(--dm-sky-300);
2212
+ --dm-info-active: var(--dm-sky-200);
2213
+ --dm-info-light: rgba(56, 189, 248, 0.15); /* sky-400 */
2214
+ --dm-info-dark: var(--dm-sky-500);
2215
+
2216
+ /* ================================================
2217
+ BACKGROUND TINTS (Dark theme versions)
2218
+ ================================================ */
2219
+ --dm-primary-bg: rgba(96, 165, 250, 0.15); /* blue-400 */
2220
+ --dm-secondary-bg: rgba(148, 163, 184, 0.15); /* slate-400 */
2221
+ --dm-success-bg: rgba(74, 222, 128, 0.15); /* green-400 */
2222
+ --dm-danger-bg: rgba(248, 113, 113, 0.15); /* red-400 */
2223
+ --dm-warning-bg: rgba(251, 191, 36, 0.15); /* amber-400 */
2224
+ --dm-info-bg: rgba(56, 189, 248, 0.15); /* sky-400 */
2225
+
2226
+ /* ================================================
2227
+ SEMANTIC SURFACE COLORS (Dark theme versions)
2228
+ ================================================ */
2229
+ --dm-surface-secondary: var(--dm-slate-900);
2230
+ --dm-card-bg: var(--dm-slate-800);
2231
+ --dm-card-border: var(--dm-slate-700);
2232
+
2233
+ /* ================================================
2234
+ INTERACTIVE STATES
2235
+ ================================================ */
2236
+ --dm-hover-bg: rgba(255, 255, 255, 0.07);
2237
+ --dm-active-bg: rgba(255, 255, 255, 0.1);
2238
+ --dm-selected-bg: var(--dm-blue-500);
2239
+ --dm-disabled-opacity: 0.4;
2240
+
2241
+ /* ================================================
2242
+ COMPONENT-SPECIFIC
2243
+ ================================================ */
2244
+
2245
+ /* Cards */
2246
+ --dm-card-bg: var(--dm-surface);
2247
+ --dm-card-border: var(--dm-border);
2248
+ --dm-card-shadow: var(--dm-shadow-md);
2249
+
2250
+ /* Inputs */
2251
+ --dm-input-bg: var(--dm-surface);
2252
+ --dm-input-border: var(--dm-border-dark);
2253
+ --dm-input-text: var(--dm-text);
2254
+ --dm-input-placeholder: var(--dm-text-muted);
2255
+ --dm-input-focus-border: var(--dm-primary);
2256
+ --dm-input-disabled-bg: var(--dm-slate-800);
2257
+
2258
+ /* Tables */
2259
+ --dm-table-border: var(--dm-border);
2260
+ --dm-table-hover-bg: var(--dm-hover-bg);
2261
+ --dm-table-stripe-bg: rgba(255, 255, 255, 0.03);
2262
+
2263
+ /* Navbar */
2264
+ --dm-navbar-bg: var(--dm-surface);
2265
+ --dm-navbar-text: var(--dm-text);
2266
+ --dm-navbar-border: var(--dm-border);
2267
+
2268
+ /* Dropdown */
2269
+ --dm-dropdown-bg: var(--dm-surface-raised);
2270
+ --dm-dropdown-border: var(--dm-border);
2271
+ --dm-dropdown-item-hover: var(--dm-hover-bg);
2272
+ --dm-dropdown-item-active: var(--dm-selected-bg);
2273
+
2274
+ /* Sidebar */
2275
+ --dm-sidebar-bg: var(--dm-surface);
2276
+ --dm-sidebar-border: var(--dm-border);
2277
+ --dm-sidebar-item-hover: var(--dm-hover-bg);
2278
+ --dm-sidebar-item-active: var(--dm-selected-bg);
2279
+
2280
+ /* Code */
2281
+ --dm-code-bg: var(--dm-slate-900);
2282
+ --dm-code-text: var(--dm-red-300);
2283
+
2284
+ /* ================================================
2285
+ SHADOWS (Tailwind Shadows for Dark Mode)
2286
+ ================================================ */
2287
+ --dm-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
2288
+ --dm-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
2289
+ --dm-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
2290
+ --dm-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
2291
+ --dm-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
2292
+ --dm-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
2293
+ --dm-shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
2294
+
2295
+ /* ================================================
2296
+ TRANSPARENCY & OPACITY
2297
+ ================================================ */
2298
+ --dm-white-t10: rgba(255, 255, 255, 0.1);
2299
+ --dm-white-t15: rgba(255, 255, 255, 0.15);
2300
+ --dm-white-t20: rgba(255, 255, 255, 0.2);
2301
+ --dm-white-t25: rgba(255, 255, 255, 0.25);
2302
+ --dm-white-t30: rgba(255, 255, 255, 0.3);
2303
+ --dm-white-t40: rgba(255, 255, 255, 0.4);
2304
+ --dm-white-t70: rgba(255, 255, 255, 0.7);
2305
+ --dm-white-t85: rgba(255, 255, 255, 0.85);
2306
+ --dm-white-t90: rgba(255, 255, 255, 0.9);
2307
+ --dm-white-t95: rgba(255, 255, 255, 0.95);
2308
+
2309
+ --dm-black-t1: rgba(1, 1, 1, 0.0125);
2310
+ --dm-black-t20: rgba(0, 0, 0, 0.2);
2311
+ --dm-black-t30: rgba(0, 0, 0, 0.3);
2312
+ --dm-black-t50: rgba(0, 0, 0, 0.5);
2313
+ --dm-black-t70: rgba(0, 0, 0, 0.7);
2314
+ }