teraprox-ui-kit 0.1.8 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css ADDED
@@ -0,0 +1,898 @@
1
+ /* src/styles/BonusButton.css */
2
+ .bonus-button {
3
+ background-color: #28a745;
4
+ color: #fff;
5
+ padding: 12px 24px;
6
+ font-size: 1.1rem;
7
+ font-weight: bold;
8
+ border: none;
9
+ border-radius: 8px;
10
+ cursor: pointer;
11
+ outline: none;
12
+ position: relative;
13
+ overflow: hidden;
14
+ z-index: 1;
15
+ transition: transform 0.3s ease;
16
+ }
17
+ .bonus-button:hover {
18
+ transform: scale(1.05);
19
+ }
20
+ .bonus-button::before {
21
+ content: "";
22
+ position: absolute;
23
+ top: 0;
24
+ left: 0;
25
+ width: 100%;
26
+ height: 100%;
27
+ border-radius: 8px;
28
+ background: rgba(0, 255, 0, 0.5);
29
+ opacity: 0.7;
30
+ filter: blur(12px);
31
+ z-index: -1;
32
+ animation: glow 1s infinite;
33
+ }
34
+ @keyframes glow {
35
+ 0% {
36
+ transform: scale(1);
37
+ opacity: 0.5;
38
+ }
39
+ 50% {
40
+ transform: scale(1.2);
41
+ opacity: 1;
42
+ }
43
+ 100% {
44
+ transform: scale(1);
45
+ opacity: 0.5;
46
+ }
47
+ }
48
+
49
+ /* src/styles/LoadingButton.css */
50
+ .loading-button {
51
+ display: flex;
52
+ align-items: center;
53
+ justify-content: center;
54
+ gap: 0.5rem;
55
+ }
56
+ .align-items-center {
57
+ display: flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+ }
61
+
62
+ /* src/styles/SwitchOnClick.css */
63
+ .switch-on-click-container {
64
+ position: relative;
65
+ }
66
+ .close-icon {
67
+ position: absolute;
68
+ top: 0;
69
+ right: 0;
70
+ padding: 5px;
71
+ font-size: 1.2rem;
72
+ color: #999;
73
+ cursor: pointer;
74
+ opacity: 0.7;
75
+ transition: opacity 0.2s;
76
+ z-index: 10;
77
+ }
78
+ .close-icon:hover {
79
+ opacity: 1;
80
+ }
81
+ .zoom-container {
82
+ transition: transform 0.2s;
83
+ }
84
+ .zoom-container:hover {
85
+ transform: scale(1.1);
86
+ }
87
+
88
+ /* src/styles/ExpandableCard.css */
89
+ .expandable-card {
90
+ border-radius: 8px;
91
+ overflow: hidden;
92
+ }
93
+ .expandable-card .card-header {
94
+ cursor: pointer;
95
+ display: flex;
96
+ align-items: center;
97
+ justify-content: space-between;
98
+ }
99
+ .expandable-card .chevron-icon {
100
+ transition: transform 0.2s ease;
101
+ }
102
+ .expandable-card .chevron-icon.rotated {
103
+ transform: rotate(180deg);
104
+ }
105
+
106
+ /* src/styles/StatusIndicator.css */
107
+ .status-flag {
108
+ border-radius: 8px;
109
+ padding: 16px;
110
+ color: white;
111
+ text-align: center;
112
+ margin-bottom: 16px;
113
+ font-weight: bold;
114
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
115
+ transition: transform 0.2s ease;
116
+ }
117
+ .status-flag:hover {
118
+ transform: scale(1.03);
119
+ }
120
+ .status-label {
121
+ font-size: 14px;
122
+ margin-bottom: 8px;
123
+ text-transform: uppercase;
124
+ }
125
+ .status-count {
126
+ font-size: 24px;
127
+ }
128
+ .status-flag.pendente {
129
+ background-color: #fbc02d;
130
+ color: #333;
131
+ }
132
+ .status-flag.executando {
133
+ background-color: #43a047;
134
+ }
135
+ .status-flag.concluido {
136
+ background-color: #9e9e9e;
137
+ }
138
+ .status-flag.canceled {
139
+ background-color: #e53935;
140
+ }
141
+ .status-flag.naoAtribuida {
142
+ background-color: #35cbe5;
143
+ }
144
+
145
+ /* src/styles/timerDisplay.css */
146
+ .timer-display-container {
147
+ border-radius: 8px;
148
+ border: 1px solid #d3d3d3;
149
+ padding: 8px;
150
+ display: flex;
151
+ align-items: center;
152
+ justify-content: center;
153
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
154
+ min-width: 150px;
155
+ max-width: 260px;
156
+ margin: auto;
157
+ transition: all 0.3s ease;
158
+ background-color: #fff;
159
+ }
160
+ .timer-display-container:hover {
161
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
162
+ }
163
+ .timer-display-content {
164
+ display: flex;
165
+ align-items: center;
166
+ gap: 8px;
167
+ }
168
+ .timer-icon {
169
+ color: #555;
170
+ }
171
+ .timer-icon-action {
172
+ cursor: pointer;
173
+ transition: transform 0.2s ease, color 0.2s ease;
174
+ }
175
+ .timer-icon-action:hover {
176
+ transform: scale(1.2);
177
+ color: #007bff;
178
+ }
179
+ .timer-display-time {
180
+ font-weight: bold;
181
+ font-size: 1.2em;
182
+ color: #333;
183
+ }
184
+ .timer-display-message {
185
+ font-size: 0.9rem;
186
+ color: #777;
187
+ font-style: italic;
188
+ }
189
+
190
+ /* src/styles/StatusPills.css */
191
+ .status-pills-container {
192
+ display: flex;
193
+ flex-wrap: wrap;
194
+ gap: 8px;
195
+ padding: 4px 0;
196
+ }
197
+ .status-pill {
198
+ display: flex;
199
+ align-items: center;
200
+ gap: 6px;
201
+ padding: 4px 12px;
202
+ border-radius: 50px;
203
+ border: 1px solid #dee2e6;
204
+ background-color: #fff;
205
+ cursor: pointer;
206
+ transition: all 0.2s ease;
207
+ font-size: 0.85rem;
208
+ font-weight: 500;
209
+ color: #495057;
210
+ user-select: none;
211
+ }
212
+ .status-pill:hover {
213
+ border-color: var(--status-color, #adb5bd);
214
+ background-color: #f8f9fa;
215
+ transform: translateY(-1px);
216
+ }
217
+ .status-pill.active {
218
+ background-color: var(--status-color, #007bff);
219
+ border-color: var(--status-color, #007bff);
220
+ color: white;
221
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
222
+ }
223
+ .status-pill__swatch {
224
+ width: 10px;
225
+ height: 10px;
226
+ border-radius: 50%;
227
+ background-color: var(--status-color, #adb5bd);
228
+ transition: background-color 0.2s ease;
229
+ }
230
+ .status-pill.active .status-pill__swatch {
231
+ background-color: #fff;
232
+ }
233
+ .status-pill__count {
234
+ font-size: 0.75rem;
235
+ background-color: #e9ecef;
236
+ color: #495057;
237
+ padding: 0 6px;
238
+ border-radius: 10px;
239
+ min-width: 20px;
240
+ text-align: center;
241
+ }
242
+ .status-pill.active .status-pill__count {
243
+ background-color: rgba(255, 255, 255, 0.2);
244
+ color: white;
245
+ }
246
+
247
+ /* src/styles/PeriodSelector.css */
248
+ .period-selector-card {
249
+ border-radius: 8px;
250
+ border: 1px solid #dee2e6;
251
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
252
+ transition: all 0.3s ease;
253
+ background-color: #fff;
254
+ width: 100%;
255
+ }
256
+ .period-selector-card.expanded {
257
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
258
+ border-color: #007bff;
259
+ }
260
+ .compact-row {
261
+ display: flex;
262
+ align-items: center;
263
+ justify-content: space-between;
264
+ padding: 8px 12px;
265
+ cursor: pointer;
266
+ }
267
+ .date-range-text {
268
+ font-size: 0.95rem;
269
+ font-weight: 500;
270
+ color: #212529;
271
+ }
272
+ .period-icon-btn {
273
+ color: #007bff;
274
+ transition: transform 0.2s ease;
275
+ }
276
+ .compact-row:hover .period-icon-btn {
277
+ transform: scale(1.1);
278
+ }
279
+ .expanded-content {
280
+ padding: 16px;
281
+ border-top: 1px solid #f8f9fa;
282
+ animation: slideDown 0.2s ease-out;
283
+ }
284
+ .presets-container {
285
+ display: flex;
286
+ flex-wrap: wrap;
287
+ gap: 6px;
288
+ margin-bottom: 16px;
289
+ }
290
+ .preset-btn {
291
+ padding: 2px 10px;
292
+ font-size: 0.8rem;
293
+ border-radius: 12px;
294
+ }
295
+ .date-inputs-grid {
296
+ display: grid;
297
+ grid-template-columns: 1fr 1fr;
298
+ gap: 12px;
299
+ }
300
+ @keyframes slideDown {
301
+ from {
302
+ opacity: 0;
303
+ transform: translateY(-10px);
304
+ }
305
+ to {
306
+ opacity: 1;
307
+ transform: translateY(0);
308
+ }
309
+ }
310
+ @media (max-width: 576px) {
311
+ .date-inputs-grid {
312
+ grid-template-columns: 1fr;
313
+ }
314
+ }
315
+
316
+ /* src/styles/AdvancedFilterBar.css */
317
+ .advanced-filter-bar {
318
+ background-color: #fcfcfc;
319
+ border: 1px solid #eee;
320
+ border-radius: 12px;
321
+ overflow: hidden;
322
+ margin-bottom: 1rem;
323
+ transition: all 0.3s ease;
324
+ }
325
+ .filter-bar-header {
326
+ display: flex;
327
+ align-items: center;
328
+ justify-content: space-between;
329
+ padding: 12px 20px;
330
+ cursor: pointer;
331
+ background-color: #fff;
332
+ }
333
+ .filter-bar-header:hover {
334
+ background-color: #fafafa;
335
+ }
336
+ .filter-title-group {
337
+ display: flex;
338
+ align-items: center;
339
+ gap: 12px;
340
+ }
341
+ .filter-title {
342
+ font-size: 1rem;
343
+ font-weight: 600;
344
+ color: #333;
345
+ margin: 0;
346
+ }
347
+ .filter-count-badge {
348
+ background-color: #e3f2fd;
349
+ color: #0d6efd;
350
+ font-size: 0.75rem;
351
+ padding: 2px 8px;
352
+ border-radius: 10px;
353
+ font-weight: bold;
354
+ }
355
+ .filter-bar-content {
356
+ padding: 20px;
357
+ border-top: 1px solid #f0f0f0;
358
+ background-color: #fcfcfc;
359
+ }
360
+ .filter-grid {
361
+ display: grid;
362
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
363
+ gap: 20px;
364
+ }
365
+ .filter-section {
366
+ display: flex;
367
+ flex-direction: column;
368
+ gap: 8px;
369
+ }
370
+ .filter-section-label {
371
+ font-size: 0.75rem;
372
+ text-transform: uppercase;
373
+ color: #6c757d;
374
+ font-weight: bold;
375
+ letter-spacing: 0.5px;
376
+ }
377
+ .filter-actions {
378
+ display: flex;
379
+ justify-content: flex-end;
380
+ gap: 12px;
381
+ margin-top: 20px;
382
+ padding-top: 15px;
383
+ border-top: 1px dashed #dee2e6;
384
+ }
385
+
386
+ /* src/styles/UnifiedPeriodSelector.css */
387
+ .ups-card {
388
+ border-radius: 10px;
389
+ border: 1px solid #dee2e6;
390
+ background: #fff;
391
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
392
+ transition: box-shadow 0.2s ease;
393
+ }
394
+ .ups-card:hover {
395
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
396
+ }
397
+ .ups-card--compact {
398
+ cursor: pointer;
399
+ }
400
+ .ups-compact-row {
401
+ display: flex;
402
+ align-items: center;
403
+ padding: 8px 14px;
404
+ gap: 4px;
405
+ }
406
+ .ups-edit-hint {
407
+ margin-left: auto;
408
+ }
409
+ .ups-body {
410
+ padding: 12px 16px !important;
411
+ display: flex;
412
+ flex-direction: column;
413
+ gap: 10px;
414
+ }
415
+ .ups-header {
416
+ display: flex;
417
+ align-items: center;
418
+ justify-content: space-between;
419
+ gap: 8px;
420
+ }
421
+ .ups-display-label {
422
+ font-weight: 600;
423
+ font-size: 0.95rem;
424
+ color: #212529;
425
+ }
426
+ .ups-tabs {
427
+ display: flex;
428
+ gap: 4px;
429
+ border-bottom: 2px solid #f0f0f0;
430
+ padding-bottom: 2px;
431
+ }
432
+ .ups-tab {
433
+ display: inline-flex;
434
+ align-items: center;
435
+ gap: 5px;
436
+ padding: 5px 12px;
437
+ border: none;
438
+ background: none;
439
+ font-size: 0.82rem;
440
+ font-weight: 500;
441
+ color: #6c757d;
442
+ border-radius: 6px 6px 0 0;
443
+ cursor: pointer;
444
+ position: relative;
445
+ transition: color 0.15s, background 0.15s;
446
+ }
447
+ .ups-tab:hover {
448
+ color: #0d6efd;
449
+ background: #f0f4ff;
450
+ }
451
+ .ups-tab--active {
452
+ color: #0d6efd;
453
+ font-weight: 600;
454
+ }
455
+ .ups-tab--active::after {
456
+ content: "";
457
+ position: absolute;
458
+ bottom: -2px;
459
+ left: 0;
460
+ right: 0;
461
+ height: 2px;
462
+ background: #0d6efd;
463
+ border-radius: 2px 2px 0 0;
464
+ }
465
+ .ups-tab:disabled {
466
+ opacity: 0.5;
467
+ cursor: not-allowed;
468
+ }
469
+ .ups-content {
470
+ min-height: 60px;
471
+ }
472
+ .ups-quick-grid {
473
+ display: flex;
474
+ flex-wrap: wrap;
475
+ gap: 8px;
476
+ }
477
+ .ups-quick-btn {
478
+ border-radius: 20px;
479
+ padding: 4px 16px;
480
+ font-size: 0.82rem;
481
+ font-weight: 500;
482
+ transition: all 0.15s ease;
483
+ }
484
+ .ups-quick-month {
485
+ margin-top: 10px;
486
+ padding-top: 10px;
487
+ border-top: 1px dashed #e9ecef;
488
+ }
489
+ .ups-quick-month .form-select-sm {
490
+ font-size: 0.82rem;
491
+ border-radius: 8px;
492
+ }
493
+ .ups-month-section {
494
+ display: flex;
495
+ flex-direction: column;
496
+ gap: 8px;
497
+ }
498
+ .ups-year-nav {
499
+ display: flex;
500
+ align-items: center;
501
+ justify-content: center;
502
+ gap: 14px;
503
+ }
504
+ .ups-year-btn {
505
+ width: 30px;
506
+ height: 30px;
507
+ padding: 0;
508
+ display: flex;
509
+ align-items: center;
510
+ justify-content: center;
511
+ border-radius: 50%;
512
+ }
513
+ .ups-year-label {
514
+ font-size: 1.1rem;
515
+ font-weight: 700;
516
+ color: #343a40;
517
+ min-width: 50px;
518
+ text-align: center;
519
+ }
520
+ .ups-month-grid {
521
+ display: grid;
522
+ grid-template-columns: repeat(6, 1fr);
523
+ gap: 6px;
524
+ }
525
+ .ups-month-cell {
526
+ padding: 6px 2px;
527
+ font-size: 0.82rem;
528
+ font-weight: 500;
529
+ text-align: center;
530
+ border: 1px solid #dee2e6;
531
+ border-radius: 6px;
532
+ background: #fff;
533
+ color: #495057;
534
+ cursor: pointer;
535
+ transition: all 0.15s ease;
536
+ }
537
+ .ups-month-cell:hover {
538
+ background: #e7f1ff;
539
+ border-color: #0d6efd;
540
+ color: #0d6efd;
541
+ }
542
+ .ups-month-cell--selected {
543
+ background: #0d6efd;
544
+ border-color: #0d6efd;
545
+ color: #fff;
546
+ font-weight: 600;
547
+ }
548
+ .ups-month-cell--selected:hover {
549
+ background: #0b5ed7;
550
+ color: #fff;
551
+ }
552
+ .ups-month-cell--current {
553
+ border-color: #0d6efd;
554
+ color: #0d6efd;
555
+ font-weight: 700;
556
+ }
557
+ .ups-month-cell:disabled {
558
+ opacity: 0.4;
559
+ cursor: not-allowed;
560
+ }
561
+ .ups-month-hint {
562
+ font-size: 0.72rem;
563
+ text-align: center;
564
+ margin: 0;
565
+ }
566
+ .ups-custom-section {
567
+ }
568
+ @media (max-width: 576px) {
569
+ .ups-month-grid {
570
+ grid-template-columns: repeat(4, 1fr);
571
+ }
572
+ .ups-tabs {
573
+ overflow-x: auto;
574
+ }
575
+ .ups-quick-grid {
576
+ gap: 6px;
577
+ }
578
+ .ups-quick-btn {
579
+ padding: 3px 12px;
580
+ font-size: 0.78rem;
581
+ }
582
+ }
583
+
584
+ /* src/styles/UploadArea.css */
585
+ .upload-area {
586
+ border: 3px dashed #ccc;
587
+ border-radius: 8px;
588
+ padding: 20px;
589
+ text-align: center;
590
+ cursor: pointer;
591
+ transition: border-color 0.3s ease, background-color 0.3s ease;
592
+ background-color: #fafafa;
593
+ }
594
+ .upload-area:hover {
595
+ border-color: #339af0;
596
+ }
597
+ .upload-area.drag-active {
598
+ border-color: #339af0;
599
+ background-color: #e7f5ff;
600
+ }
601
+ .upload-area.upload-has-file {
602
+ border-color: #51cf66;
603
+ background-color: #ebfbee;
604
+ }
605
+ .upload-content {
606
+ display: flex;
607
+ flex-direction: column;
608
+ align-items: center;
609
+ justify-content: center;
610
+ gap: 8px;
611
+ }
612
+ .upload-icon {
613
+ color: #339af0;
614
+ }
615
+ .upload-area.upload-has-file .upload-icon {
616
+ color: #51cf66;
617
+ }
618
+ .upload-link {
619
+ color: #339af0;
620
+ text-decoration: underline;
621
+ cursor: pointer;
622
+ }
623
+ .upload-area.upload-has-file .upload-link {
624
+ color: #51cf66;
625
+ text-decoration: none;
626
+ }
627
+ .upload-info {
628
+ color: #666;
629
+ font-size: 0.9rem;
630
+ }
631
+
632
+ /* src/styles/SectorSelector.css */
633
+ .sector-selector-floating {
634
+ position: relative;
635
+ }
636
+ .custom-select-container {
637
+ position: relative;
638
+ display: flex;
639
+ align-items: center;
640
+ cursor: pointer;
641
+ border: none;
642
+ border-bottom: 1px solid #000;
643
+ background-color: transparent;
644
+ padding: 0.375rem 0;
645
+ width: 100%;
646
+ transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
647
+ }
648
+ .custom-select-container:focus-within {
649
+ border-color: #ced4da;
650
+ }
651
+ .selected-sector-label {
652
+ line-height: 1.2;
653
+ font-size: 1rem;
654
+ color: #495057;
655
+ width: 100%;
656
+ padding-left: 0.375rem;
657
+ }
658
+ .custom-dropdown-menu {
659
+ position: absolute;
660
+ width: 100%;
661
+ z-index: 1000;
662
+ background-color: #fff;
663
+ border-bottom: 1px solid #000;
664
+ border-radius: 0;
665
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
666
+ margin-top: 0.5rem;
667
+ max-height: 300px;
668
+ overflow-y: auto;
669
+ }
670
+ .dropdown-option {
671
+ padding: 0.375rem 0;
672
+ cursor: pointer;
673
+ transition: background-color 0.2s ease-in-out;
674
+ padding: 8px 12px;
675
+ }
676
+ .dropdown-option:hover {
677
+ background-color: #f8f9fa;
678
+ }
679
+ .selected-option {
680
+ font-weight: bold;
681
+ background-color: #d8e3ff;
682
+ }
683
+ .sector-selector-floating label {
684
+ position: absolute;
685
+ top: -0.75rem;
686
+ left: 0;
687
+ font-size: 0.85rem;
688
+ color: #6c757d;
689
+ transition: all 0.2s ease-in-out;
690
+ pointer-events: none;
691
+ }
692
+
693
+ /* src/styles/IconLabelList.css */
694
+ .icon-label-list {
695
+ display: flex;
696
+ flex-direction: row;
697
+ flex-wrap: wrap;
698
+ gap: 1.5rem;
699
+ padding: 1rem;
700
+ }
701
+ .icon-label-item {
702
+ display: flex;
703
+ flex-direction: column;
704
+ align-items: center;
705
+ justify-content: center;
706
+ width: 80px;
707
+ cursor: pointer;
708
+ transition: opacity 0.2s;
709
+ }
710
+ .icon-label-item:hover {
711
+ opacity: 0.8;
712
+ }
713
+ .icon-label-item .icon-label {
714
+ margin-top: 0.5rem;
715
+ font-size: 0.85rem;
716
+ color: #495057;
717
+ text-align: center;
718
+ }
719
+
720
+ /* src/styles/NotificationItem.css */
721
+ .notification-item-modern {
722
+ display: flex;
723
+ align-items: flex-start;
724
+ padding: 16px 20px;
725
+ margin: 0;
726
+ cursor: pointer;
727
+ transition: all 0.2s ease;
728
+ border-bottom: 1px solid #f0f0f0;
729
+ background: white;
730
+ position: relative;
731
+ }
732
+ .notification-item-modern:hover {
733
+ background: #f8f9fa;
734
+ transform: translateX(4px);
735
+ }
736
+ .notification-item-modern:active {
737
+ transform: translateX(2px);
738
+ background: #e9ecef;
739
+ }
740
+ .notification-item-modern.unread {
741
+ background:
742
+ linear-gradient(
743
+ 90deg,
744
+ rgba(0, 123, 255, 0.02) 0%,
745
+ rgba(255, 255, 255, 1) 8%);
746
+ border-left: 3px solid #007bff;
747
+ }
748
+ .notification-item-modern.unread:hover {
749
+ background:
750
+ linear-gradient(
751
+ 90deg,
752
+ rgba(0, 123, 255, 0.05) 0%,
753
+ rgba(248, 249, 250, 1) 8%);
754
+ }
755
+ .notification-status-indicator {
756
+ flex-shrink: 0;
757
+ width: 24px;
758
+ height: 24px;
759
+ border-radius: 50%;
760
+ display: flex;
761
+ align-items: center;
762
+ justify-content: center;
763
+ margin-right: 12px;
764
+ margin-top: 2px;
765
+ }
766
+ .notification-status-indicator.unread {
767
+ background: #e3f2fd;
768
+ color: #1976d2;
769
+ }
770
+ .notification-status-indicator.read {
771
+ background: #e8f5e8;
772
+ color: #2e7d32;
773
+ }
774
+ .notification-main-content {
775
+ flex: 1;
776
+ min-width: 0;
777
+ }
778
+ .notification-header-row {
779
+ display: flex;
780
+ align-items: flex-start;
781
+ justify-content: space-between;
782
+ margin-bottom: 8px;
783
+ }
784
+ .notification-title-modern {
785
+ display: flex;
786
+ align-items: center;
787
+ gap: 6px;
788
+ flex: 1;
789
+ min-width: 0;
790
+ }
791
+ .notification-context {
792
+ font-size: 14px;
793
+ font-weight: 600;
794
+ color: #212529;
795
+ white-space: nowrap;
796
+ overflow: hidden;
797
+ text-overflow: ellipsis;
798
+ }
799
+ .notification-separator {
800
+ color: #6c757d;
801
+ font-weight: normal;
802
+ }
803
+ .notification-context-id {
804
+ font-size: 14px;
805
+ font-weight: 500;
806
+ color: #495057;
807
+ white-space: nowrap;
808
+ overflow: hidden;
809
+ text-overflow: ellipsis;
810
+ }
811
+ .notification-preview {
812
+ margin-bottom: 8px;
813
+ }
814
+ .notification-content-preview {
815
+ font-size: 13px;
816
+ line-height: 1.4;
817
+ color: #6c757d;
818
+ margin: 0;
819
+ display: -webkit-box;
820
+ -webkit-line-clamp: 2;
821
+ -webkit-box-orient: vertical;
822
+ overflow: hidden;
823
+ }
824
+ .notification-meta {
825
+ display: flex;
826
+ align-items: center;
827
+ gap: 12px;
828
+ flex-wrap: wrap;
829
+ }
830
+ .notification-timestamp {
831
+ display: flex;
832
+ align-items: center;
833
+ color: #868e96;
834
+ font-size: 11px;
835
+ }
836
+ .notification-read-time {
837
+ display: flex;
838
+ align-items: center;
839
+ color: #28a745;
840
+ font-size: 11px;
841
+ }
842
+ .notification-quick-actions {
843
+ display: flex;
844
+ flex-direction: column;
845
+ gap: 4px;
846
+ margin-left: 8px;
847
+ opacity: 0;
848
+ transition: opacity 0.2s ease;
849
+ }
850
+ .notification-item-modern:hover .notification-quick-actions {
851
+ opacity: 1;
852
+ }
853
+ .notification-action-btn {
854
+ width: 28px;
855
+ height: 28px;
856
+ border: none;
857
+ border-radius: 50%;
858
+ display: flex;
859
+ align-items: center;
860
+ justify-content: center;
861
+ transition: all 0.2s ease;
862
+ cursor: pointer;
863
+ }
864
+ .notification-dismiss-btn {
865
+ background: #fff5f5;
866
+ color: #e53e3e;
867
+ }
868
+ .notification-dismiss-btn:hover {
869
+ background: #fed7d7;
870
+ color: #c53030;
871
+ transform: scale(1.1);
872
+ }
873
+ .notification-modal .modal-content {
874
+ border-radius: 12px;
875
+ border: none;
876
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
877
+ }
878
+ .notification-modal-header {
879
+ background:
880
+ linear-gradient(
881
+ 135deg,
882
+ #f8f9fa 0%,
883
+ #e9ecef 100%);
884
+ border-bottom: 1px solid #dee2e6;
885
+ border-radius: 12px 12px 0 0;
886
+ padding: 20px;
887
+ }
888
+ .notification-modal-message {
889
+ background: #f8f9fa;
890
+ padding: 16px;
891
+ border-radius: 8px;
892
+ border-left: 4px solid #007bff;
893
+ }
894
+ @media (max-width: 576px) {
895
+ .notification-item-modern {
896
+ padding: 12px 16px;
897
+ }
898
+ }