@jjlmoya/utils-diy 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/package.json +5 -3
  2. package/scripts/postinstall.mjs +27 -0
  3. package/src/tool/balusterCalculator/baluster-calculator.css +320 -0
  4. package/src/tool/balusterCalculator/component.astro +0 -322
  5. package/src/tool/clayCalculator/clay-shrinkage-calculator.css +530 -0
  6. package/src/tool/clayCalculator/component.astro +0 -532
  7. package/src/tool/concreteCalculator/component.astro +0 -705
  8. package/src/tool/concreteCalculator/concrete-mortar-calculator.css +703 -0
  9. package/src/tool/cutOptimizer/component.astro +0 -477
  10. package/src/tool/cutOptimizer/cut-optimizer.css +475 -0
  11. package/src/tool/drillCalculator/component.astro +0 -815
  12. package/src/tool/drillCalculator/drill-rpm-calculator.css +813 -0
  13. package/src/tool/drillSharpener/component.astro +0 -393
  14. package/src/tool/drillSharpener/drill-sharpening-master.css +391 -0
  15. package/src/tool/epoxyCalculator/component.astro +0 -571
  16. package/src/tool/epoxyCalculator/epoxy-resin-calculator.css +569 -0
  17. package/src/tool/furnitureFit/component.astro +0 -345
  18. package/src/tool/furnitureFit/furniture-fit-calculator.css +343 -0
  19. package/src/tool/mortarCalculator/component.astro +0 -620
  20. package/src/tool/mortarCalculator/lime-mortar-calculator.css +618 -0
  21. package/src/tool/passepartoutCalculator/component.astro +0 -518
  22. package/src/tool/passepartoutCalculator/passepartout-calculator.css +516 -0
  23. package/src/tool/stairCalculator/component.astro +0 -480
  24. package/src/tool/stairCalculator/stair-calculator.css +478 -0
  25. package/src/tool/thermalExpansionCalculator/component.astro +0 -490
  26. package/src/tool/thermalExpansionCalculator/thermal-expansion-calculator.css +488 -0
  27. package/src/tool/voltageDropCalculator/component.astro +0 -729
  28. package/src/tool/voltageDropCalculator/voltage-drop-calculator.css +727 -0
@@ -0,0 +1,813 @@
1
+ :root {
2
+ --dc-primary: #6366f1;
3
+ --dc-primary-dark: #4f46e5;
4
+ --dc-primary-light: #818cf8;
5
+ --dc-accent: #f59e0b;
6
+ --dc-accent-dark: #d97706;
7
+ --dc-accent-light: #fbbf24;
8
+ --dc-danger: #ef4444;
9
+ --dc-success: #10b981;
10
+ --dc-neutral: #374151;
11
+ --dc-border: #e5e7eb;
12
+ }
13
+
14
+ :global(.theme-dark) {
15
+ --dc-primary: #818cf8;
16
+ --dc-primary-dark: #6366f1;
17
+ --dc-accent: #fbbf24;
18
+ --dc-border: rgba(255, 255, 255, 0.1);
19
+ }
20
+
21
+
22
+
23
+ .dc-root {
24
+ width: 100%;
25
+ max-width: 1200px;
26
+ margin: 0 auto;
27
+ }
28
+
29
+ .dc-card {
30
+ border: 1px solid var(--dc-border);
31
+ border-radius: 32px;
32
+ overflow: hidden;
33
+ background: rgba(255, 255, 255, 0.3);
34
+ }
35
+
36
+ :global(.theme-dark) .dc-card {
37
+ background: rgba(255, 255, 255, 0.01);
38
+ }
39
+
40
+ .dc-grid {
41
+ display: grid;
42
+ grid-template-columns: 1.4fr 1fr;
43
+ min-height: 600px;
44
+ }
45
+
46
+ .dc-sidebar {
47
+ padding: 3rem;
48
+ background: rgba(255, 255, 255, 0.6);
49
+ border-right: 1px solid var(--dc-border);
50
+ display: flex;
51
+ flex-direction: column;
52
+ gap: 2.5rem;
53
+ }
54
+
55
+ :global(.theme-dark) .dc-sidebar {
56
+ background: rgba(255, 255, 255, 0.02);
57
+ }
58
+
59
+ .dc-main {
60
+ padding: 3rem;
61
+ display: flex;
62
+ flex-direction: column;
63
+ gap: 2.5rem;
64
+ background: rgba(255, 255, 255, 0.2);
65
+ }
66
+
67
+ :global(.theme-dark) .dc-main {
68
+ background: rgba(255, 255, 255, 0.005);
69
+ }
70
+
71
+ .dc-field {
72
+ display: flex;
73
+ flex-direction: column;
74
+ gap: 0.6rem;
75
+ }
76
+
77
+ .dc-field-label {
78
+ font-size: 0.85rem;
79
+ font-weight: 700;
80
+ text-transform: uppercase;
81
+ letter-spacing: 0.1em;
82
+ color: #6b7280;
83
+ }
84
+
85
+ :global(.theme-dark) .dc-field-label {
86
+ color: #9ca3af;
87
+ }
88
+
89
+ .dc-mat-list {
90
+ display: grid;
91
+ grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
92
+ gap: 1rem;
93
+ }
94
+
95
+ .dc-mat-chip {
96
+ padding: 1rem;
97
+ border: 2px solid var(--dc-border);
98
+ border-radius: 12px;
99
+ background: white;
100
+ cursor: pointer;
101
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
102
+ font-size: 0.75rem;
103
+ font-weight: 700;
104
+ color: var(--dc-neutral);
105
+ display: flex;
106
+ flex-direction: column;
107
+ align-items: center;
108
+ gap: 0.75rem;
109
+ position: relative;
110
+ }
111
+
112
+ .dc-mat-icon {
113
+ width: 64px;
114
+ height: 64px;
115
+ color: var(--dc-primary);
116
+ flex-shrink: 0;
117
+ display: flex;
118
+ align-items: center;
119
+ justify-content: center;
120
+ font-size: 2.5rem;
121
+ }
122
+
123
+ .dc-mat-chip:hover {
124
+ border-color: var(--dc-primary);
125
+ }
126
+
127
+ :global(.dc-mat-chip.active) {
128
+ background: white;
129
+ border-color: var(--dc-accent);
130
+ transform: rotate(5deg) scale(1.05);
131
+ box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.1);
132
+ }
133
+
134
+ :global(.theme-dark) .dc-mat-chip {
135
+ background: rgba(255, 255, 255, 0.05);
136
+ border-color: rgba(255, 255, 255, 0.1);
137
+ color: #e5e7eb;
138
+ }
139
+
140
+ :global(.theme-dark .dc-mat-chip.active) {
141
+ background: rgba(255, 255, 255, 0.1);
142
+ border-color: var(--dc-accent);
143
+ }
144
+
145
+ .dc-toggle-group {
146
+ display: grid;
147
+ grid-template-columns: 1fr 1fr;
148
+ gap: 0.5rem;
149
+ }
150
+
151
+ .dc-toggle-btn {
152
+ padding: 0.8rem 1rem;
153
+ border: 1px solid var(--dc-border);
154
+ border-radius: 8px;
155
+ background: white;
156
+ color: var(--dc-neutral);
157
+ font-weight: 700;
158
+ font-size: 0.75rem;
159
+ cursor: pointer;
160
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
161
+ }
162
+
163
+ .dc-toggle-btn:hover {
164
+ border-color: var(--dc-primary);
165
+ }
166
+
167
+ :global(.dc-toggle-btn.active) {
168
+ background: var(--dc-primary);
169
+ border-color: var(--dc-primary);
170
+ color: white;
171
+ }
172
+
173
+ :global(.theme-dark) .dc-toggle-btn {
174
+ background: rgba(255, 255, 255, 0.05);
175
+ border-color: rgba(255, 255, 255, 0.1);
176
+ color: #e5e7eb;
177
+ }
178
+
179
+ :global(.theme-dark .dc-toggle-btn.active) {
180
+ background: var(--dc-primary);
181
+ border-color: var(--dc-primary);
182
+ color: white;
183
+ box-shadow: 0 0 12px rgba(129, 140, 248, 0.4);
184
+ }
185
+
186
+ .dc-diameter-header {
187
+ display: flex;
188
+ justify-content: space-between;
189
+ align-items: center;
190
+ margin-bottom: 0.5rem;
191
+ }
192
+
193
+ .dc-unit-toggle {
194
+ display: grid;
195
+ grid-template-columns: 1fr 1fr;
196
+ gap: 0.4rem;
197
+ }
198
+
199
+ .dc-unit-btn {
200
+ padding: 0.5rem 0.75rem;
201
+ border: 1px solid var(--dc-border);
202
+ border-radius: 6px;
203
+ background: white;
204
+ color: var(--dc-neutral);
205
+ font-weight: 700;
206
+ font-size: 0.7rem;
207
+ cursor: pointer;
208
+ transition: all 0.2s;
209
+ }
210
+
211
+ :global(.dc-unit-btn.active) {
212
+ background: white;
213
+ border-color: var(--dc-primary);
214
+ color: var(--dc-primary);
215
+ box-shadow: 0 2px 8px rgba(99, 102, 241, 0.15);
216
+ }
217
+
218
+ :global(.theme-dark) .dc-unit-btn {
219
+ background: rgba(255, 255, 255, 0.05);
220
+ border-color: rgba(255, 255, 255, 0.1);
221
+ color: #e5e7eb;
222
+ }
223
+
224
+ .dc-diameter-display {
225
+ font-size: 1.3rem;
226
+ font-weight: 900;
227
+ color: var(--dc-primary);
228
+ margin-bottom: 0.5rem;
229
+ }
230
+
231
+ :global(.theme-dark) .dc-diameter-display {
232
+ color: var(--dc-primary-light);
233
+ }
234
+
235
+ .dc-slider-box {
236
+ width: 100%;
237
+ }
238
+
239
+ .dc-slider {
240
+ width: 100%;
241
+ height: 8px;
242
+ border-radius: 4px;
243
+ background: var(--dc-border);
244
+ outline: none;
245
+ appearance: none;
246
+ -webkit-appearance: none;
247
+ }
248
+
249
+ .dc-slider::-webkit-slider-thumb {
250
+ appearance: none;
251
+ -webkit-appearance: none;
252
+ width: 24px;
253
+ height: 24px;
254
+ border-radius: 50%;
255
+ background: var(--dc-primary);
256
+ cursor: pointer;
257
+ box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);
258
+ }
259
+
260
+ .dc-slider::-moz-range-thumb {
261
+ width: 24px;
262
+ height: 24px;
263
+ border-radius: 50%;
264
+ background: var(--dc-primary);
265
+ cursor: pointer;
266
+ border: none;
267
+ box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);
268
+ }
269
+
270
+ .dc-mode-badge {
271
+ display: flex;
272
+ justify-content: space-between;
273
+ align-items: center;
274
+ background: rgba(99, 102, 241, 0.1);
275
+ border: 1px solid rgba(99, 102, 241, 0.2);
276
+ border-radius: 12px;
277
+ padding: 1rem;
278
+ }
279
+
280
+ :global(.theme-dark) .dc-mode-badge {
281
+ background: rgba(99, 102, 241, 0.15);
282
+ border-color: rgba(99, 102, 241, 0.3);
283
+ }
284
+
285
+ .dc-mode-label {
286
+ font-size: 0.75rem;
287
+ font-weight: 800;
288
+ color: var(--dc-primary);
289
+ text-transform: uppercase;
290
+ letter-spacing: 0.05em;
291
+ }
292
+
293
+ :global(.theme-dark) .dc-mode-label {
294
+ color: var(--dc-primary-light);
295
+ }
296
+
297
+ .dc-toggle-switch {
298
+ width: 48px;
299
+ height: 24px;
300
+ border-radius: 12px;
301
+ background: var(--dc-border);
302
+ cursor: pointer;
303
+ transition: background 0.3s cubic-bezier(0.4, 0, 0.2, 1);
304
+ position: relative;
305
+ }
306
+
307
+ :global(.dc-toggle-switch.active) {
308
+ background: var(--dc-primary);
309
+ }
310
+
311
+ .dc-toggle-switch::after {
312
+ content: '';
313
+ position: absolute;
314
+ width: 20px;
315
+ height: 20px;
316
+ border-radius: 50%;
317
+ background: white;
318
+ top: 2px;
319
+ left: 2px;
320
+ transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
321
+ }
322
+
323
+ :global(.dc-toggle-switch.active::after) {
324
+ left: 26px;
325
+ }
326
+
327
+ .dc-advanced {
328
+ margin-top: auto;
329
+ }
330
+ .dc-advanced-trigger {
331
+ width: 100%;
332
+ padding: 0.75rem 1rem;
333
+ background: white;
334
+ border: 2px dashed var(--dc-border);
335
+ border-radius: 12px;
336
+ display: flex;
337
+ justify-content: space-between;
338
+ align-items: center;
339
+ cursor: pointer;
340
+ font-weight: 700;
341
+ color: var(--dc-primary);
342
+ font-size: 0.8rem;
343
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
344
+ }
345
+ .dc-advanced-trigger:hover {
346
+ border-style: solid;
347
+ background: rgba(99, 102, 241, 0.05);
348
+ }
349
+ :global(.theme-dark) .dc-advanced-trigger {
350
+ background: rgba(255, 255, 255, 0.05);
351
+ border-color: rgba(99, 102, 241, 0.3);
352
+ color: var(--dc-primary-light);
353
+ }
354
+
355
+ .dc-chevron {
356
+ width: 16px;
357
+ height: 16px;
358
+ color: inherit;
359
+ transition: transform 0.2s;
360
+ }
361
+
362
+ :global(.dc-chevron.rotate) {
363
+ transform: rotate(180deg);
364
+ }
365
+
366
+ .dc-advanced-body {
367
+ max-height: 0;
368
+ overflow: hidden;
369
+ transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
370
+ margin-top: 0;
371
+ }
372
+ :global(.dc-advanced-body.visible) {
373
+ max-height: 500px;
374
+ margin-top: 1rem;
375
+ }
376
+ .dc-adv-grid {
377
+ display: grid;
378
+ grid-template-columns: 1fr 1fr;
379
+ gap: 1rem;
380
+ }
381
+
382
+ .dc-input {
383
+ width: 100%;
384
+ padding: 1rem;
385
+ border: 1px solid var(--dc-border);
386
+ border-radius: 8px;
387
+ font-weight: 700;
388
+ background: white;
389
+ color: var(--dc-neutral);
390
+ transition: border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
391
+ }
392
+
393
+ .dc-input:focus {
394
+ outline: none;
395
+ border-color: var(--dc-primary);
396
+ }
397
+
398
+ :global(.theme-dark) .dc-input {
399
+ background: rgba(0, 0, 0, 0.25);
400
+ border-color: rgba(255, 255, 255, 0.1);
401
+ color: #f9fafb;
402
+ }
403
+
404
+ .dc-hero {
405
+ text-align: center;
406
+ padding: 3rem;
407
+ background: linear-gradient(135deg, rgba(99, 102, 241, 0.08), rgba(245, 158, 11, 0.05));
408
+ border-radius: 16px;
409
+ }
410
+
411
+ .dc-hero-label {
412
+ font-size: 0.7rem;
413
+ font-weight: 800;
414
+ text-transform: uppercase;
415
+ letter-spacing: 0.15em;
416
+ color: var(--dc-primary);
417
+ }
418
+
419
+ :global(.theme-dark) .dc-hero-label {
420
+ color: var(--dc-primary-light);
421
+ }
422
+
423
+ .dc-rpm-number {
424
+ font-size: 6rem;
425
+ font-weight: 900;
426
+ color: var(--dc-primary);
427
+ line-height: 1;
428
+ margin: 1rem 0;
429
+ }
430
+ :global(.dc-rpm-number.limited) { color: var(--dc-danger); }
431
+ :global(.dc-rpm-number.slow) { color: var(--dc-accent); }
432
+ :global(.dc-rpm-number.optimal) { color: var(--dc-success); }
433
+ :global(.theme-dark .dc-rpm-number) { color: var(--dc-primary-light); }
434
+ :global(.theme-dark .dc-rpm-number.slow) { color: var(--dc-accent-light); }
435
+
436
+ .dc-hero-unit {
437
+ font-size: 0.85rem;
438
+ font-weight: 800;
439
+ color: #6b7280;
440
+ text-transform: uppercase;
441
+ letter-spacing: 0.05em;
442
+ }
443
+
444
+ .dc-rotation-visual {
445
+ width: 80px;
446
+ height: 80px;
447
+ border-radius: 50%;
448
+ border: 4px solid;
449
+ border-top-color: var(--dc-primary);
450
+ border-right-color: var(--dc-accent);
451
+ border-bottom-color: var(--dc-primary);
452
+ border-left-color: var(--dc-accent);
453
+ margin: 1rem auto;
454
+ animation: dc-spin 2s linear infinite;
455
+ animation-play-state: paused;
456
+ }
457
+
458
+ @keyframes dc-spin {
459
+ from {
460
+ transform: rotate(0deg);
461
+ }
462
+ to {
463
+ transform: rotate(360deg);
464
+ }
465
+ }
466
+
467
+ .dc-status-row {
468
+ min-height: 32px;
469
+ display: flex;
470
+ justify-content: center;
471
+ margin-top: 0.5rem;
472
+ gap: 0.5rem;
473
+ }
474
+
475
+ :global(.dc-badge) {
476
+ display: inline-flex;
477
+ align-items: center;
478
+ gap: 0.5rem;
479
+ padding: 0.5rem 1rem;
480
+ border-radius: 20px;
481
+ font-size: 0.7rem;
482
+ font-weight: 700;
483
+ }
484
+
485
+ :global(.dc-badge-warning) {
486
+ background: rgba(99, 102, 241, 0.15);
487
+ color: var(--dc-primary);
488
+ }
489
+
490
+ :global(.theme-dark .dc-badge-warning) {
491
+ background: rgba(99, 102, 241, 0.25);
492
+ }
493
+
494
+ :global(.dc-badge-alert) {
495
+ background: rgba(239, 68, 68, 0.15);
496
+ color: var(--dc-danger);
497
+ }
498
+
499
+ :global(.theme-dark .dc-badge-alert) {
500
+ background: rgba(239, 68, 68, 0.25);
501
+ }
502
+
503
+ :global(.dc-badge-icon) {
504
+ width: 16px;
505
+ height: 16px;
506
+ display: flex;
507
+ align-items: center;
508
+ justify-content: center;
509
+ flex-shrink: 0;
510
+ color: inherit;
511
+ }
512
+
513
+ :global(.dc-badge-icon svg) {
514
+ width: 100%;
515
+ height: 100%;
516
+ stroke: currentcolor;
517
+ fill: currentcolor;
518
+ }
519
+
520
+ :global(.dc-badge-icon path) {
521
+ stroke: currentcolor;
522
+ fill: currentcolor;
523
+ }
524
+
525
+ .dc-tiles {
526
+ display: grid;
527
+ grid-template-columns: 1fr;
528
+ gap: 1rem;
529
+ }
530
+
531
+ .dc-tile {
532
+ padding: 1.5rem;
533
+ background: rgba(255, 255, 255, 0.5);
534
+ border: 1px solid rgba(255, 255, 255, 0.7);
535
+ border-radius: 12px;
536
+ display: flex;
537
+ flex-direction: row;
538
+ align-items: flex-start;
539
+ gap: 1rem;
540
+ transition: all 0.2s;
541
+ }
542
+
543
+ .dc-tile:hover {
544
+ background: rgba(255, 255, 255, 0.7);
545
+ border-color: var(--dc-border);
546
+ }
547
+
548
+ :global(.theme-dark) .dc-tile {
549
+ background: rgba(255, 255, 255, 0.04);
550
+ border-color: rgba(255, 255, 255, 0.06);
551
+ }
552
+
553
+ .dc-tile-icon {
554
+ width: 56px;
555
+ height: 56px;
556
+ color: var(--dc-primary);
557
+ flex-shrink: 0;
558
+ display: flex;
559
+ align-items: center;
560
+ justify-content: center;
561
+ font-size: 2rem;
562
+ }
563
+
564
+ :global(.theme-dark) .dc-tile-icon {
565
+ color: var(--dc-primary-light);
566
+ }
567
+
568
+ .dc-tile-content {
569
+ display: flex;
570
+ flex-direction: column;
571
+ gap: 0.4rem;
572
+ }
573
+
574
+ .dc-tile-label {
575
+ font-size: 0.7rem;
576
+ font-weight: 700;
577
+ text-transform: uppercase;
578
+ color: #6b7280;
579
+ letter-spacing: 0.05em;
580
+ }
581
+
582
+ :global(.theme-dark) .dc-tile-label {
583
+ color: #9ca3af;
584
+ }
585
+
586
+ .dc-tile-value {
587
+ font-size: 1.3rem;
588
+ font-weight: 900;
589
+ color: var(--dc-primary);
590
+ }
591
+
592
+ :global(.theme-dark) .dc-tile-value {
593
+ color: var(--dc-primary-light);
594
+ }
595
+
596
+ .dc-machine-card {
597
+ background: rgba(255, 255, 255, 0.4);
598
+ border: 1px solid rgba(255, 255, 255, 0.6);
599
+ border-radius: 12px;
600
+ padding: 1.5rem;
601
+ display: flex;
602
+ flex-direction: column;
603
+ gap: 1rem;
604
+ }
605
+
606
+ :global(.theme-dark) .dc-machine-card {
607
+ background: rgba(255, 255, 255, 0.03);
608
+ border-color: rgba(255, 255, 255, 0.06);
609
+ }
610
+
611
+ .dc-presets {
612
+ display: grid;
613
+ grid-template-columns: 1fr 1fr;
614
+ gap: 0;
615
+ border-radius: 16px 16px 0 0;
616
+ overflow: hidden;
617
+ border: 1px solid var(--dc-border);
618
+ }
619
+ .dc-preset-btn {
620
+ padding: 0.8rem 1rem;
621
+ border: none;
622
+ border-right: 1px solid var(--dc-border);
623
+ background: white;
624
+ color: var(--dc-neutral);
625
+ font-weight: 700;
626
+ font-size: 0.75rem;
627
+ cursor: pointer;
628
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
629
+ }
630
+ :global(.dc-preset-btn:last-child) {
631
+ border-right: none;
632
+ }
633
+
634
+ .dc-preset-btn:hover {
635
+ background: rgba(99, 102, 241, 0.05);
636
+ }
637
+
638
+ :global(.dc-preset-btn.active) {
639
+ background: var(--dc-primary);
640
+ color: white;
641
+ }
642
+
643
+ :global(.theme-dark) .dc-preset-btn {
644
+ background: rgba(255, 255, 255, 0.05);
645
+ border-right-color: rgba(255, 255, 255, 0.1);
646
+ color: #e5e7eb;
647
+ }
648
+
649
+ .dc-manual-input {
650
+ display: flex;
651
+ gap: 0;
652
+ border: 1px solid var(--dc-border);
653
+ border-radius: 8px;
654
+ overflow: hidden;
655
+ background: white;
656
+ margin-top: 0.75rem;
657
+ }
658
+ .dc-manual-input .dc-input {
659
+ flex: 1;
660
+ border: none;
661
+ border-radius: 0;
662
+ padding: 0.8rem 1rem;
663
+ font-size: 0.9rem;
664
+ }
665
+
666
+ .dc-input::placeholder {
667
+ color: #9ca3af;
668
+ }
669
+
670
+ .dc-manual-input .dc-input:focus {
671
+ background: rgba(99, 102, 241, 0.02);
672
+ }
673
+
674
+ :global(.theme-dark) .dc-manual-input .dc-input {
675
+ background: rgba(255, 255, 255, 0.08);
676
+ color: #f9fafb;
677
+ border-color: rgba(255, 255, 255, 0.1);
678
+ }
679
+ .dc-add-btn {
680
+ padding: 0.8rem 1.2rem;
681
+ background: var(--dc-primary);
682
+ color: white;
683
+ border: none;
684
+ font-weight: 900;
685
+ cursor: pointer;
686
+ transition: all 0.2s;
687
+ display: flex;
688
+ align-items: center;
689
+ justify-content: center;
690
+ font-size: 1.2rem;
691
+ }
692
+ .dc-add-btn:hover {
693
+ background: var(--dc-primary-dark);
694
+ }
695
+
696
+ :global(.dc-chips-area) {
697
+ display: flex;
698
+ flex-wrap: wrap;
699
+ gap: 0.5rem;
700
+ min-height: 0;
701
+ }
702
+ :global(.dc-chip) {
703
+ display: inline-flex;
704
+ align-items: center;
705
+ gap: 0.5rem;
706
+ background: rgba(99, 102, 241, 0.1);
707
+ color: var(--dc-primary);
708
+ padding: 0.5rem 0.8rem;
709
+ border-radius: 16px;
710
+ font-size: 0.75rem;
711
+ font-weight: 700;
712
+ }
713
+ :global(.theme-dark .dc-chip) {
714
+ background: rgba(99, 102, 241, 0.15);
715
+ color: var(--dc-primary-light);
716
+ }
717
+ :global(.dc-chip button) {
718
+ background: none;
719
+ border: none;
720
+ color: inherit;
721
+ cursor: pointer;
722
+ font-weight: 900;
723
+ padding: 0;
724
+ width: 16px;
725
+ height: 16px;
726
+ display: flex;
727
+ align-items: center;
728
+ justify-content: center;
729
+ transition: color 0.2s;
730
+ }
731
+ :global(.dc-chip button:hover) { color: var(--dc-danger); }
732
+
733
+ :global(.dc-match-box) {
734
+ background: rgba(99, 102, 241, 0.08);
735
+ border: 1px solid rgba(99, 102, 241, 0.2);
736
+ border-radius: 12px;
737
+ padding: 1.2rem;
738
+ text-align: center;
739
+ animation: slide-in-up 0.4s cubic-bezier(0.4, 0, 0.2, 1);
740
+ }
741
+
742
+ @keyframes slide-in-up {
743
+ from {
744
+ opacity: 0;
745
+ transform: translateY(20px);
746
+ }
747
+ to {
748
+ opacity: 1;
749
+ transform: translateY(0);
750
+ }
751
+ }
752
+ :global(.dc-match-header) {
753
+ font-size: 0.75rem;
754
+ font-weight: 800;
755
+ text-transform: uppercase;
756
+ color: var(--dc-primary);
757
+ margin-bottom: 0.6rem;
758
+ letter-spacing: 0.05em;
759
+ }
760
+
761
+ :global(.theme-dark .dc-match-header) {
762
+ color: var(--dc-primary-light);
763
+ }
764
+
765
+ :global(.dc-match-value) {
766
+ font-size: 1.5rem;
767
+ font-weight: 900;
768
+ color: var(--dc-primary);
769
+ }
770
+
771
+ :global(.theme-dark .dc-match-value) {
772
+ color: var(--dc-primary-light);
773
+ }
774
+
775
+ :global(.dc-match-hint) {
776
+ font-size: 0.65rem;
777
+ color: #6b7280;
778
+ margin: 0.6rem 0 0;
779
+ }
780
+
781
+ @media (max-width: 900px) {
782
+ .dc-grid {
783
+ grid-template-columns: 1fr;
784
+ }
785
+
786
+ .dc-sidebar {
787
+ border-right: none;
788
+ border-bottom: 1px solid var(--dc-border);
789
+ padding: 2rem;
790
+ gap: 2rem;
791
+ }
792
+
793
+ .dc-main {
794
+ padding: 2rem;
795
+ gap: 2rem;
796
+ }
797
+
798
+ .dc-tiles {
799
+ grid-template-columns: 1fr;
800
+ }
801
+
802
+ .dc-mat-list {
803
+ grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
804
+ }
805
+
806
+ .dc-rpm-number {
807
+ font-size: 3.5rem;
808
+ }
809
+ }
810
+
811
+ :global(.hidden) {
812
+ display: none;
813
+ }