@diniz/webcomponents 1.1.2 → 1.1.3

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.
package/dist/style.css ADDED
@@ -0,0 +1,893 @@
1
+ :root {
2
+ --color-primary: #24ec71;
3
+ --color-primary-contrast: #ffffff;
4
+ --color-ink: #0f172a;
5
+ --color-muted: #f1f5f9;
6
+ --color-header: #f8fafc;
7
+ --color-border: #e2e8f0;
8
+ --color-border-strong: #cbd5f5;
9
+ --color-nav-bg: #222222;
10
+ --color-nav-text: #ffffff;
11
+ --shadow-primary: 0 8px 18px rgba(31, 111, 235, 0.25);
12
+ --focus-ring: #9ec5ff;
13
+ --radius-pill: 999px;
14
+ --radius-md: 12px;
15
+ --color-page-bg: #ffffff;
16
+ --color-page-text: #0f172a;
17
+ }
18
+
19
+ body {
20
+ background: var(--color-page-bg);
21
+ color: var(--color-page-text);
22
+ margin: 0;
23
+ font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
24
+ }
25
+
26
+ :host([data-ui="button"]) {
27
+ display: inline-block;
28
+ }
29
+
30
+ :host([data-ui="table"]) {
31
+ display: block;
32
+ }
33
+
34
+ :host([data-ui="layout"]) {
35
+ display: block;
36
+ }
37
+
38
+ :host([data-ui="sidebar"]) {
39
+ display: block;
40
+ }
41
+
42
+ .btn {
43
+ align-items: center;
44
+ border: 1px solid transparent;
45
+ border-radius: var(--radius-pill);
46
+ cursor: pointer;
47
+ display: inline-flex;
48
+ font-family: inherit;
49
+ font-size: 0.95rem;
50
+ font-weight: 600;
51
+ gap: 0.5rem;
52
+ line-height: 1;
53
+ padding: 0.65rem 1.2rem;
54
+ transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
55
+ }
56
+
57
+ .btn:focus-visible {
58
+ outline: 3px solid var(--focus-ring);
59
+ outline-offset: 2px;
60
+ }
61
+
62
+ .btn:active:not(:disabled) {
63
+ transform: translateY(1px);
64
+ }
65
+
66
+ .btn:disabled {
67
+ cursor: not-allowed;
68
+ opacity: 0.6;
69
+ }
70
+
71
+ .btn.primary {
72
+ background: var(--color-primary);
73
+ color: var(--color-primary-contrast);
74
+ box-shadow: var(--shadow-primary);
75
+ }
76
+
77
+ .btn.secondary {
78
+ background: var(--color-muted);
79
+ color: var(--color-ink);
80
+ border-color: var(--color-border-strong);
81
+ }
82
+
83
+ .btn.ghost {
84
+ background: transparent;
85
+ color: var(--color-primary);
86
+ border-color: var(--color-border-strong);
87
+ }
88
+ .btn.danger {
89
+ background: #ef4444;
90
+ color: white;
91
+ border-color: #ef4444;
92
+ }
93
+ .btn-danger:hover {
94
+ background: #6626dc;
95
+ border-color: #dc2626;
96
+ }
97
+ .btn.has-icon {
98
+ line-height: 1.2;
99
+ }
100
+
101
+ .btn .btn-icon {
102
+ width: 18px;
103
+ height: 18px;
104
+ flex-shrink: 0;
105
+ }
106
+
107
+ .btn .btn-icon svg {
108
+ width: 100%;
109
+ height: 100%;
110
+ }
111
+
112
+ .btn.icon-only {
113
+ padding: 0.65rem;
114
+ aspect-ratio: 1;
115
+ }
116
+
117
+ .btn.icon-only.sm {
118
+ padding: 0.45rem;
119
+ }
120
+
121
+ .btn.icon-only.lg {
122
+ padding: 0.8rem;
123
+ }
124
+
125
+ .btn.sm .btn-icon {
126
+ width: 14px;
127
+ height: 14px;
128
+ }
129
+
130
+ .btn.lg .btn-icon {
131
+ width: 22px;
132
+ height: 22px;
133
+ }
134
+
135
+ .btn.sm {
136
+ font-size: 0.85rem;
137
+ padding: 0.45rem 0.9rem;
138
+ box-shadow: 0 4px 12px rgba(167, 18, 68, 0.15);
139
+ }
140
+
141
+ .btn.md {
142
+ font-size: 0.95rem;
143
+ padding: 0.65rem 1.2rem;
144
+ }
145
+
146
+ .btn.lg {
147
+ font-size: 1.05rem;
148
+ padding: 0.8rem 1.5rem;
149
+ }
150
+
151
+ .table-wrap {
152
+ border: 1px solid var(--color-border);
153
+ border-radius: var(--radius-md);
154
+ overflow: hidden;
155
+ }
156
+
157
+ table {
158
+ border-collapse: collapse;
159
+ width: 100%;
160
+ }
161
+
162
+ thead {
163
+ background: var(--color-header);
164
+ }
165
+
166
+ th,
167
+ td {
168
+ padding: 0.75rem 1rem;
169
+ text-align: left;
170
+ border-bottom: 1px solid var(--color-border);
171
+ font-size: 0.95rem;
172
+ border-right: 1px solid var(--color-border);
173
+ }
174
+
175
+ tr:last-child td {
176
+ border-bottom: none;
177
+ }
178
+
179
+ .align-left {
180
+ text-align: left;
181
+ }
182
+
183
+ .align-center {
184
+ text-align: center;
185
+ }
186
+
187
+ .align-right {
188
+ text-align: right;
189
+ }
190
+
191
+ .actions-cell {
192
+ display: flex;
193
+ gap: 0.5rem;
194
+ justify-content: center;
195
+ }
196
+
197
+ .app-nav {
198
+ padding: 1rem;
199
+ background: var(--color-nav-bg);
200
+ color: var(--color-nav-text);
201
+ }
202
+
203
+ .app-link {
204
+ color: var(--color-nav-text);
205
+ margin-right: 1rem;
206
+ text-decoration: none;
207
+ }
208
+
209
+ .signal-demo {
210
+ margin-top: 16px;
211
+ display: flex;
212
+ align-items: center;
213
+ gap: 12px;
214
+ }
215
+
216
+ .theme-toggle {
217
+ margin-top: 16px;
218
+ display: flex;
219
+ align-items: center;
220
+ gap: 12px;
221
+ }
222
+
223
+ .data-table {
224
+ margin-top: 15px;
225
+ }
226
+
227
+ .dashboard-layout {
228
+ display: grid;
229
+ grid-template-columns: 220px minmax(0, 1fr);
230
+ gap: 24px;
231
+ padding: 24px;
232
+ }
233
+
234
+ .dashboard-sidebar {
235
+ background: var(--color-muted);
236
+ border: 1px solid var(--color-border);
237
+ border-radius: var(--radius-md);
238
+ padding: 18px;
239
+ }
240
+
241
+ .sidebar-title {
242
+ margin: 0 0 12px;
243
+ font-size: 1rem;
244
+ }
245
+
246
+ .sidebar-nav {
247
+ display: flex;
248
+ flex-direction: column;
249
+ gap: 10px;
250
+ }
251
+
252
+ .sidebar-link {
253
+ color: var(--color-ink);
254
+ text-decoration: none;
255
+ font-weight: 600;
256
+ }
257
+
258
+ .dashboard-main {
259
+ display: flex;
260
+ flex-direction: column;
261
+ gap: 12px;
262
+ }
263
+
264
+ .dashboard-actions {
265
+ display: flex;
266
+ flex-wrap: wrap;
267
+ gap: 12px;
268
+ }
269
+
270
+ @media (max-width: 900px) {
271
+ .dashboard-layout {
272
+ grid-template-columns: 1fr;
273
+ }
274
+ }
275
+
276
+ :host([data-ui="input"]) {
277
+ display: block;
278
+ }
279
+
280
+ .input-wrapper {
281
+ display: flex;
282
+ flex-direction: column;
283
+ gap: 0.35rem;
284
+ }
285
+
286
+ .input-label {
287
+ font-size: 0.9rem;
288
+ font-weight: 600;
289
+ color: var(--color-ink);
290
+ }
291
+
292
+ .input-field {
293
+ padding: 0.6rem 0.85rem;
294
+ font-size: 0.95rem;
295
+ font-family: inherit;
296
+ border: 1.5px solid var(--color-border);
297
+ border-radius: 6px;
298
+ background: var(--color-page-bg);
299
+ color: var(--color-page-text);
300
+ transition: border-color 150ms ease, box-shadow 150ms ease;
301
+ outline: none;
302
+ }
303
+
304
+ .input-field::placeholder {
305
+ color: #94a3b8;
306
+ }
307
+
308
+ .input-field:focus {
309
+ border-color: var(--color-primary);
310
+ box-shadow: 0 0 0 3px rgba(36, 236, 113, 0.15);
311
+ }
312
+
313
+ .input-field:disabled {
314
+ background: var(--color-muted);
315
+ cursor: not-allowed;
316
+ opacity: 0.7;
317
+ }
318
+
319
+ .input-wrapper.invalid .input-field {
320
+ border-color: #ef4444;
321
+ }
322
+
323
+ .input-wrapper.invalid .input-field:focus {
324
+ box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15);
325
+ }
326
+
327
+ .input-error {
328
+ font-size: 0.8rem;
329
+ color: #ef4444;
330
+ display: flex;
331
+ align-items: center;
332
+ gap: 0.25rem;
333
+ }
334
+
335
+ .input-error.hidden {
336
+ display: none;
337
+ }
338
+ /* ============================================
339
+ CHECKBOX COMPONENT STYLES
340
+ ============================================ */
341
+
342
+ :host([data-ui="checkbox"]) {
343
+ display: inline-flex;
344
+ align-items: center;
345
+ cursor: pointer;
346
+ user-select: none;
347
+ }
348
+
349
+ :host([data-ui="checkbox"][disabled]) {
350
+ cursor: not-allowed;
351
+ opacity: 0.6;
352
+ }
353
+
354
+ .checkbox-container {
355
+ display: inline-flex;
356
+ align-items: center;
357
+ gap: 0.75rem;
358
+ }
359
+
360
+ .checkbox-box {
361
+ position: relative;
362
+ display: inline-flex;
363
+ align-items: center;
364
+ justify-content: center;
365
+ border: 2px solid var(--color-border, #cbd5e1);
366
+ border-radius: var(--radius-sm, 4px);
367
+ background: white;
368
+ transition: all 0.2s;
369
+ flex-shrink: 0;
370
+ box-sizing: border-box;
371
+ }
372
+
373
+ .checkbox-box.size-sm {
374
+ min-width: 16px;
375
+ max-width: 16px;
376
+ min-height: 16px;
377
+ max-height: 16px;
378
+ }
379
+
380
+ .checkbox-box.size-md {
381
+ min-width: 18px;
382
+ max-width: 18px;
383
+ min-height: 18px;
384
+ max-height: 18px;
385
+ }
386
+
387
+ .checkbox-box.size-lg {
388
+ min-width: 20px;
389
+ max-width: 20px;
390
+ min-height: 20px;
391
+ max-height: 20px;
392
+ }
393
+
394
+ .checkbox-box:hover:not(.disabled) {
395
+ border-color: var(--color-primary, #24ec71);
396
+ }
397
+
398
+ .checkbox-box.checked,
399
+ .checkbox-box.indeterminate {
400
+ background: var(--color-primary, #24ec71);
401
+ border-color: var(--color-primary, #24ec71);
402
+ }
403
+
404
+ .checkbox-box.disabled {
405
+ background: var(--color-muted, #f1f5f9);
406
+ cursor: not-allowed;
407
+ }
408
+
409
+ .checkbox-icon {
410
+ display: none;
411
+ color: white;
412
+ position: absolute;
413
+ }
414
+
415
+ .checkbox-box.checked .checkbox-icon.check,
416
+ .checkbox-box.indeterminate .checkbox-icon.minus {
417
+ display: block;
418
+ }
419
+
420
+ .checkbox-icon.check {
421
+ width: 12px;
422
+ height: 12px;
423
+ }
424
+
425
+ .checkbox-icon.minus {
426
+ width: 10px;
427
+ height: 10px;
428
+ }
429
+
430
+ .checkbox-label {
431
+ font-size: 0.95rem;
432
+ color: var(--color-ink, #0f172a);
433
+ line-height: 1.5;
434
+ }
435
+
436
+ .checkbox-container.size-sm .checkbox-label {
437
+ font-size: 0.875rem;
438
+ }
439
+
440
+ .checkbox-container.size-lg .checkbox-label {
441
+ font-size: 1rem;
442
+ }
443
+
444
+ input[type="checkbox"] {
445
+ position: absolute;
446
+ opacity: 0;
447
+ pointer-events: none;
448
+ }
449
+
450
+ /* ============================================
451
+ MODAL COMPONENT STYLES
452
+ ============================================ */
453
+
454
+ .modal-backdrop {
455
+ display: none;
456
+ position: fixed;
457
+ inset: 0;
458
+ background: rgba(0, 0, 0, 0.5);
459
+ backdrop-filter: blur(4px);
460
+ z-index: 9999;
461
+ animation: fadeIn 0.2s ease-out;
462
+ }
463
+
464
+ .modal-backdrop.open {
465
+ display: flex;
466
+ align-items: center;
467
+ justify-content: center;
468
+ padding: 1rem;
469
+ }
470
+
471
+ .modal-content {
472
+ background: var(--color-surface, white);
473
+ border-radius: var(--radius-lg, 16px);
474
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
475
+ max-height: 90vh;
476
+ display: flex;
477
+ flex-direction: column;
478
+ width: 100%;
479
+ animation: slideUp 0.2s ease-out;
480
+ }
481
+
482
+ .modal-content.sm { max-width: 400px; }
483
+ .modal-content.md { max-width: 600px; }
484
+ .modal-content.lg { max-width: 800px; }
485
+ .modal-content.xl { max-width: 1200px; }
486
+ .modal-content.full { max-width: 95vw; }
487
+
488
+ .modal-header {
489
+ padding: 1.5rem;
490
+ border-bottom: 1px solid var(--color-border, #e2e8f0);
491
+ display: flex;
492
+ align-items: center;
493
+ justify-content: space-between;
494
+ }
495
+
496
+ .modal-title {
497
+ font-size: 1.25rem;
498
+ font-weight: 600;
499
+ color: var(--color-ink, #0f172a);
500
+ margin: 0;
501
+ }
502
+
503
+ .modal-close {
504
+ background: none;
505
+ border: none;
506
+ cursor: pointer;
507
+ padding: 0.5rem;
508
+ display: flex;
509
+ align-items: center;
510
+ justify-content: center;
511
+ border-radius: var(--radius-md, 8px);
512
+ color: var(--color-text-muted, #64748b);
513
+ transition: all 0.2s;
514
+ }
515
+
516
+ .modal-close:hover {
517
+ background: var(--color-muted, #f1f5f9);
518
+ color: var(--color-ink, #0f172a);
519
+ }
520
+
521
+ .modal-body {
522
+ padding: 1.5rem;
523
+ overflow-y: auto;
524
+ flex: 1;
525
+ }
526
+
527
+ .modal-footer {
528
+ padding: 1.5rem;
529
+ border-top: 1px solid var(--color-border, #e2e8f0);
530
+ display: flex;
531
+ gap: 0.75rem;
532
+ justify-content: flex-end;
533
+ }
534
+
535
+ @keyframes fadeIn {
536
+ from { opacity: 0; }
537
+ to { opacity: 1; }
538
+ }
539
+
540
+ @keyframes slideUp {
541
+ from {
542
+ opacity: 0;
543
+ transform: translateY(20px);
544
+ }
545
+ to {
546
+ opacity: 1;
547
+ transform: translateY(0);
548
+ }
549
+ }
550
+
551
+ /* ============================================
552
+ SELECT COMPONENT STYLES
553
+ ============================================ */
554
+
555
+ :host([data-ui="select"]) {
556
+ display: block;
557
+ width: 90%;
558
+ }
559
+
560
+ .select-container {
561
+ position: relative;
562
+ width: 100%;
563
+ }
564
+
565
+ .select-label {
566
+ display: block;
567
+ margin-bottom: 0.5rem;
568
+ font-size: 0.875rem;
569
+ font-weight: 500;
570
+ color: var(--color-ink, #0f172a);
571
+ }
572
+
573
+ .select-trigger {
574
+ width: 100%;
575
+ padding: 0.625rem 1rem;
576
+ background: white;
577
+ border: 1px solid var(--color-border, #e2e8f0);
578
+ border-radius: var(--radius-md, 8px);
579
+ display: flex;
580
+ align-items: center;
581
+ justify-content: space-between;
582
+ cursor: pointer;
583
+ transition: all 0.2s;
584
+ font-size: 0.95rem;
585
+ color: var(--color-ink, #0f172a);
586
+ }
587
+
588
+ .select-trigger:hover:not(:disabled) {
589
+ border-color: var(--color-primary, #24ec71);
590
+ }
591
+
592
+ .select-trigger:focus {
593
+ outline: none;
594
+ border-color: var(--color-primary, #24ec71);
595
+ box-shadow: 0 0 0 3px rgba(36, 236, 113, 0.1);
596
+ }
597
+
598
+ .select-trigger:disabled {
599
+ background: var(--color-muted, #f1f5f9);
600
+ cursor: not-allowed;
601
+ opacity: 0.6;
602
+ }
603
+
604
+ .select-trigger.open {
605
+ border-color: var(--color-primary, #24ec71);
606
+ }
607
+
608
+ .select-placeholder {
609
+ color: var(--color-text-muted, #94a3b8);
610
+ flex: 1;
611
+ text-align: left;
612
+ }
613
+
614
+ .select-placeholder.has-selection {
615
+ color: var(--color-ink, #0f172a);
616
+ }
617
+
618
+ .select-arrow {
619
+ display: flex;
620
+ transition: transform 0.2s;
621
+ color: var(--color-text-muted, #64748b);
622
+ }
623
+
624
+ .select-arrow.open {
625
+ transform: rotate(180deg);
626
+ }
627
+
628
+ .select-dropdown {
629
+ position: absolute;
630
+ top: calc(100% + 0.25rem);
631
+ left: 0;
632
+ right: 0;
633
+ background: white;
634
+ border: 1px solid var(--color-border, #e2e8f0);
635
+ border-radius: var(--radius-md, 8px);
636
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
637
+ max-height: 300px;
638
+ overflow-y: auto;
639
+ z-index: 1000;
640
+ display: none;
641
+ animation: slideDown 0.15s ease-out;
642
+ }
643
+
644
+ .select-dropdown.open {
645
+ display: block;
646
+ }
647
+
648
+ .select-search {
649
+ width: 100%;
650
+ padding: 0.625rem 1rem;
651
+ border: none;
652
+ border-bottom: 1px solid var(--color-border, #e2e8f0);
653
+ font-size: 0.95rem;
654
+ outline: none;
655
+ }
656
+
657
+ .select-search:focus {
658
+ background: var(--color-muted, #f1f5f9);
659
+ }
660
+
661
+ .select-option {
662
+ padding: 0.625rem 1rem;
663
+ cursor: pointer;
664
+ transition: background 0.15s;
665
+ color: var(--color-ink, #0f172a);
666
+ font-size: 0.95rem;
667
+ }
668
+
669
+ .select-option:hover:not(.disabled) {
670
+ background: var(--color-muted, #f1f5f9);
671
+ }
672
+
673
+ .select-option.selected {
674
+ background: rgba(36, 236, 113, 0.1);
675
+ color: var(--color-primary, #24ec71);
676
+ font-weight: 500;
677
+ }
678
+
679
+ .select-option.disabled {
680
+ opacity: 0.5;
681
+ cursor: not-allowed;
682
+ }
683
+
684
+ .select-empty {
685
+ padding: 1rem;
686
+ text-align: center;
687
+ color: var(--color-text-muted, #94a3b8);
688
+ font-size: 0.875rem;
689
+ }
690
+
691
+ @keyframes slideDown {
692
+ from {
693
+ opacity: 0;
694
+ transform: translateY(-8px);
695
+ }
696
+ to {
697
+ opacity: 1;
698
+ transform: translateY(0);
699
+ }
700
+ }
701
+
702
+ /* ============================================
703
+ PAGINATION COMPONENT STYLES
704
+ ============================================ */
705
+
706
+ :host([data-ui="pagination"]) {
707
+ display: block;
708
+ }
709
+
710
+ .pagination-container {
711
+ display: flex;
712
+ align-items: center;
713
+ justify-content: space-between;
714
+ gap: 1rem;
715
+ flex-wrap: wrap;
716
+ }
717
+
718
+ .pagination-info {
719
+ font-size: 0.9rem;
720
+ color: var(--color-ink);
721
+ opacity: 0.7;
722
+ }
723
+
724
+ .pagination {
725
+ display: flex;
726
+ align-items: center;
727
+ gap: 0.25rem;
728
+ }
729
+
730
+ .page-btn {
731
+ min-width: 2.5rem;
732
+ height: 2.5rem;
733
+ padding: 0.5rem;
734
+ border: 1px solid var(--color-border);
735
+ background: white;
736
+ color: var(--color-ink);
737
+ font-size: 0.9rem;
738
+ font-weight: 500;
739
+ border-radius: 6px;
740
+ cursor: pointer;
741
+ transition: all 0.2s ease;
742
+ display: flex;
743
+ align-items: center;
744
+ justify-content: center;
745
+ }
746
+
747
+ .page-btn:hover:not(:disabled):not(.active) {
748
+ background: var(--color-muted);
749
+ border-color: var(--color-border-strong);
750
+ }
751
+
752
+ .page-btn:disabled {
753
+ opacity: 0.4;
754
+ cursor: not-allowed;
755
+ }
756
+
757
+ .page-btn.active {
758
+ background: var(--color-primary);
759
+ color: var(--color-primary-contrast);
760
+ border-color: var(--color-primary);
761
+ font-weight: 600;
762
+ }
763
+
764
+ .page-btn.ellipsis {
765
+ border: none;
766
+ background: transparent;
767
+ cursor: default;
768
+ pointer-events: none;
769
+ }
770
+
771
+ .nav-btn {
772
+ padding: 0.5rem 0.75rem;
773
+ }
774
+
775
+ .nav-btn svg {
776
+ width: 16px;
777
+ height: 16px;
778
+ }
779
+
780
+ /* ============================================
781
+ DATE PICKER COMPONENT STYLES
782
+ ============================================ */
783
+
784
+ :host([data-ui="date-picker"]) {
785
+ display: inline-block;
786
+ width: 100%;
787
+ max-width: 300px;
788
+ }
789
+
790
+ .date-picker-container {
791
+ position: relative;
792
+ display: flex;
793
+ flex-direction: column;
794
+ gap: 0.5rem;
795
+ }
796
+
797
+ .date-input-wrapper {
798
+ position: relative;
799
+ display: flex;
800
+ align-items: center;
801
+ border: 1px solid var(--color-border);
802
+ border-radius: var(--radius-md);
803
+ background: white;
804
+ transition: all 0.2s ease;
805
+ }
806
+
807
+ .date-input-wrapper:hover:not(.disabled) {
808
+ border-color: var(--color-border-strong);
809
+ }
810
+
811
+ .date-input-wrapper:focus-within {
812
+ border-color: var(--color-primary);
813
+ box-shadow: 0 0 0 3px rgba(36, 236, 113, 0.1);
814
+ outline: none;
815
+ }
816
+
817
+ .date-input-wrapper.disabled {
818
+ background: var(--color-muted);
819
+ cursor: not-allowed;
820
+ opacity: 0.6;
821
+ }
822
+
823
+ .formatted-input {
824
+ flex: 1;
825
+ border: none;
826
+ padding: 0.75rem 1rem;
827
+ font-size: 0.95rem;
828
+ font-family: inherit;
829
+ background: transparent;
830
+ color: var(--color-ink);
831
+ outline: none;
832
+ }
833
+
834
+ .formatted-input:disabled {
835
+ cursor: not-allowed;
836
+ color: var(--color-ink);
837
+ opacity: 0.7;
838
+ }
839
+
840
+ .formatted-input::placeholder {
841
+ color: #94a3b8;
842
+ opacity: 0.7;
843
+ }
844
+
845
+ .formatted-input.invalid {
846
+ color: #dc2626;
847
+ }
848
+
849
+ .hidden-date-input {
850
+ position: absolute;
851
+ opacity: 0;
852
+ pointer-events: none;
853
+ width: 0;
854
+ height: 0;
855
+ }
856
+
857
+ .calendar-btn {
858
+ padding: 0.5rem;
859
+ margin-right: 0.5rem;
860
+ border: none;
861
+ background: transparent;
862
+ cursor: pointer;
863
+ display: flex;
864
+ align-items: center;
865
+ justify-content: center;
866
+ color: var(--color-ink);
867
+ opacity: 0.6;
868
+ transition: all 0.2s ease;
869
+ border-radius: 6px;
870
+ }
871
+
872
+ .calendar-btn:hover:not(:disabled) {
873
+ background: var(--color-muted);
874
+ opacity: 1;
875
+ }
876
+
877
+ .calendar-btn:disabled {
878
+ cursor: not-allowed;
879
+ opacity: 0.3;
880
+ }
881
+
882
+ .calendar-icon {
883
+ width: 20px;
884
+ height: 20px;
885
+ }
886
+
887
+ .format-label {
888
+ font-size: 0.75rem;
889
+ color: var(--color-ink);
890
+ opacity: 0.6;
891
+ padding: 0 0.25rem;
892
+ font-weight: 500;
893
+ }