@truconsent/consent-notice 0.0.2 → 0.0.4

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,1253 @@
1
+ .mcm-overlay {
2
+ position: fixed !important;
3
+ top: 0 !important;
4
+ left: 0 !important;
5
+ width: 100% !important;
6
+ width: 100% !important;
7
+ height: 100% !important;
8
+ background: var(--banner-overlay);
9
+ display: flex !important;
10
+ align-items: center !important;
11
+ justify-content: center !important;
12
+ z-index: 10000 !important;
13
+ }
14
+
15
+ .mcm-wrapper {
16
+ position: relative;
17
+ width: 90%;
18
+ max-width: 550px;
19
+ font-family: inherit;
20
+ font-size: inherit;
21
+ }
22
+
23
+ .mcm-wrapper.general-split-pane {
24
+ max-width: 1100px !important;
25
+ width: 90vw !important;
26
+ margin: 0 auto !important;
27
+ }
28
+
29
+ .mcm-wrapper.general-split-pane .mcm-container {
30
+ max-height: 85vh !important;
31
+ width: 100% !important;
32
+ margin: 0 !important;
33
+ border-radius: 12px !important;
34
+ overflow: hidden !important;
35
+ }
36
+
37
+ .mcm-wrapper.general-split-pane .mcm-close-btn {
38
+ display: flex !important;
39
+ }
40
+
41
+ .mcm-wrapper.general-compact-list {
42
+ max-width: 640px !important;
43
+ width: 90vw !important;
44
+ margin: 0 auto !important;
45
+ }
46
+
47
+ .mcm-wrapper.general-compact-list .mcm-container {
48
+ max-height: 85vh !important;
49
+ width: 100% !important;
50
+ margin: 0 !important;
51
+ border-radius: 12px !important;
52
+ overflow: hidden !important;
53
+ }
54
+
55
+ .mcm-wrapper.inline-single-row {
56
+ max-width: 1100px !important;
57
+ width: 90vw !important;
58
+ margin: 0 auto !important;
59
+ }
60
+
61
+ .mcm-wrapper.inline-single-row .mcm-container {
62
+ max-height: 85vh !important;
63
+ width: 100% !important;
64
+ margin: 0 !important;
65
+ border-radius: 12px !important;
66
+ overflow: hidden !important;
67
+ }
68
+
69
+ .mcm-wrapper button,
70
+ .mcm-wrapper input,
71
+ .mcm-wrapper select,
72
+ .mcm-wrapper textarea {
73
+ font-family: inherit;
74
+ font-size: inherit;
75
+ }
76
+
77
+ .mcm-container {
78
+ background: var(--banner-bg);
79
+ border-radius: 16px;
80
+ width: 100%;
81
+ max-height: 85vh;
82
+ display: flex !important;
83
+ flex-direction: column !important;
84
+ overflow: hidden !important;
85
+ position: relative;
86
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
87
+ border: 1px solid var(--banner-border);
88
+ }
89
+
90
+ /* Close button - repositioned to float on the corner of the white box */
91
+ .mcm-close-btn {
92
+ position: absolute;
93
+ top: -12px;
94
+ right: -12px;
95
+ right: -12px;
96
+ width: 32px;
97
+ height: 32px;
98
+ background: var(--banner-bg);
99
+ border: 1px solid var(--banner-border);
100
+ border-radius: 50%;
101
+ display: flex !important;
102
+ align-items: center;
103
+ justify-content: center;
104
+ cursor: pointer;
105
+ font-size: 22px;
106
+ line-height: 1;
107
+ color: var(--banner-text-muted);
108
+ z-index: 10005;
109
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
110
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
111
+ }
112
+
113
+ .mcm-close-btn:hover {
114
+ background: var(--banner-card-bg);
115
+ color: var(--banner-text);
116
+ transform: scale(1.1) rotate(90deg);
117
+ border-color: var(--banner-text-muted);
118
+ }
119
+
120
+ .mcm-header {
121
+ display: flex;
122
+ align-items: center;
123
+ margin-bottom: 15px;
124
+ }
125
+
126
+ .mcm-logo {
127
+ width: 48px;
128
+ height: 48px;
129
+ margin-right: 10px;
130
+ }
131
+
132
+ .mcm-header-text h1 {
133
+ margin: 0;
134
+ font-size: 1.25rem;
135
+ color: var(--banner-text);
136
+ }
137
+
138
+ .mcm-header-text p {
139
+ margin: 0;
140
+ font-size: 0.9rem;
141
+ color: var(--banner-text-muted);
142
+ }
143
+
144
+ .mcm-separator {
145
+ height: 1px;
146
+ background: var(--banner-border);
147
+ margin: 10px 0;
148
+ }
149
+
150
+ .mcm-body {
151
+ display: grid;
152
+ grid-template-columns: 1fr;
153
+ gap: 10px;
154
+ }
155
+
156
+ .mcm-card {
157
+ border: 1px solid var(--banner-border);
158
+ border-radius: 4px;
159
+ padding: 10px;
160
+ }
161
+
162
+ .mcm-card-header {
163
+ display: flex;
164
+ justify-content: space-between;
165
+ align-items: center;
166
+ }
167
+
168
+ .mcm-purpose-desc {
169
+ font-size: 0.9rem;
170
+ color: var(--banner-text-muted);
171
+ }
172
+
173
+ .badge {
174
+ display: inline-block;
175
+ padding: 2px 8px;
176
+ font-size: 0.75rem;
177
+ font-weight: 600;
178
+ border-radius: 4px;
179
+ background: var(--banner-hover-bg);
180
+ color: var(--banner-text-muted);
181
+ margin-right: 5px;
182
+ border: 1px solid var(--banner-border);
183
+ }
184
+
185
+ .badge.legitimate {
186
+ background: var(--banner-info-bg);
187
+ color: var(--banner-primary-color);
188
+ border-color: var(--banner-info-border);
189
+ }
190
+
191
+ .badge.mandatory {
192
+ background: var(--banner-danger-bg);
193
+ color: var(--banner-danger-text);
194
+ }
195
+
196
+ .badge.expiry {
197
+ background: var(--banner-info-bg);
198
+ color: var(--banner-primary-color);
199
+ }
200
+
201
+ .switch {
202
+ position: relative;
203
+ display: inline-block;
204
+ width: 40px;
205
+ height: 20px;
206
+ margin: 0 5px;
207
+ }
208
+
209
+ .switch input {
210
+ opacity: 0;
211
+ width: 0;
212
+ height: 0;
213
+ }
214
+
215
+ .track {
216
+ position: absolute;
217
+ cursor: pointer;
218
+ top: 0;
219
+ left: 0;
220
+ right: 0;
221
+ bottom: 0;
222
+ background: var(--banner-border);
223
+ border-radius: 20px;
224
+ }
225
+
226
+ .thumb {
227
+ position: absolute;
228
+ content: "";
229
+ height: 16px;
230
+ width: 16px;
231
+ left: 2px;
232
+ bottom: 2px;
233
+ background: var(--banner-bg);
234
+ border-radius: 50%;
235
+ transition: .2s;
236
+ }
237
+
238
+ input:checked+.track {
239
+ background: var(--banner-success-text);
240
+ }
241
+
242
+ input:checked+.track+.thumb {
243
+ transform: translateX(20px);
244
+ }
245
+
246
+ .toggle-label {
247
+ font-size: 0.9rem;
248
+ }
249
+
250
+ .accordion-btn {
251
+ width: 100%;
252
+ background: none;
253
+ border: none;
254
+ color: var(--banner-text);
255
+ text-align: left;
256
+ padding: 8px 0;
257
+ font-size: 1rem;
258
+ cursor: pointer;
259
+ display: flex;
260
+ justify-content: space-between;
261
+ align-items: center;
262
+ }
263
+
264
+ .panel {
265
+ padding: 5px 0 10px 0;
266
+ }
267
+
268
+ .pill {
269
+ display: inline-block;
270
+ padding: 4px 8px;
271
+ background: var(--banner-info-bg);
272
+ color: var(--banner-primary-color);
273
+ border-radius: 12px;
274
+ margin: 2px;
275
+ font-size: 0.8rem;
276
+ }
277
+
278
+ .chevron {
279
+ transition: transform .3s;
280
+ }
281
+
282
+ .chevron.open {
283
+ transform: rotate(180deg);
284
+ }
285
+
286
+ .mcm-btn {
287
+ padding: 8px 16px;
288
+ border: none;
289
+ border-radius: 4px;
290
+ cursor: pointer;
291
+ font-size: 1rem;
292
+ }
293
+
294
+ .mcm-btn.reject {
295
+ background: var(--banner-danger-btn);
296
+ color: var(--banner-bg);
297
+ margin-right: 10px;
298
+ }
299
+
300
+ .mcm-btn.consent {
301
+ background: var(--banner-primary-color);
302
+ color: var(--banner-bg);
303
+ }
304
+
305
+ .mcm-spinner {
306
+ border: 4px solid var(--banner-border);
307
+ border-top-color: var(--banner-primary-color);
308
+ border-radius: 50%;
309
+ width: 48px;
310
+ height: 48px;
311
+ animation: mcm-spin 1s linear infinite;
312
+ position: fixed;
313
+ top: 50%;
314
+ left: 50%;
315
+ transform: translate(-50%, -50%);
316
+ }
317
+
318
+ @keyframes mcm-spin {
319
+ to {
320
+ transform: rotate(360deg);
321
+ }
322
+ }
323
+
324
+ /* Floating Card Template */
325
+ .mcm-overlay.floating-card {
326
+ background: transparent !important;
327
+ pointer-events: none !important;
328
+ align-items: flex-end !important;
329
+ justify-content: flex-end !important;
330
+ padding: 24px !important;
331
+ }
332
+
333
+ .mcm-wrapper.floating-card {
334
+ pointer-events: auto !important;
335
+ width: 100%;
336
+ max-width: 400px;
337
+ margin: 0 !important;
338
+ }
339
+
340
+ .mcm-wrapper.floating-card .mcm-container {
341
+ max-height: 90vh;
342
+ box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.2);
343
+ }
344
+
345
+ .mcm-wrapper.floating-card .mcm-close-btn {
346
+ display: none !important;
347
+ }
348
+
349
+ /* Mobile adjustments for floating card */
350
+ @media (max-width: 480px) {
351
+ .mcm-overlay.floating-card {
352
+ padding: 12px !important;
353
+ }
354
+
355
+ .mcm-wrapper.floating-card {
356
+ max-width: calc(100% - 24px);
357
+ }
358
+ }
359
+
360
+ /* Bottom Bar Template */
361
+ .mcm-overlay.bottom-bar {
362
+ background: transparent !important;
363
+ pointer-events: none !important;
364
+ align-items: flex-end !important;
365
+ justify-content: center !important;
366
+ padding: 0 !important;
367
+ }
368
+
369
+ .mcm-wrapper.bottom-bar {
370
+ pointer-events: auto !important;
371
+ width: 100% !important;
372
+ max-width: 100% !important;
373
+ margin: 0 !important;
374
+ }
375
+
376
+ .mcm-wrapper.bottom-bar .mcm-container {
377
+ border-radius: 0 !important;
378
+ border-top: 1px solid var(--banner-border);
379
+ max-height: 50vh;
380
+ box-shadow: 0 -10px 15px -3px rgba(0, 0, 0, 0.1);
381
+ }
382
+
383
+ .mcm-wrapper.bottom-bar .mcm-close-btn {
384
+ display: none !important;
385
+ }
386
+
387
+ /* Mobile adjustments for bottom bar */
388
+ @media (max-width: 480px) {
389
+ .mcm-wrapper.bottom-bar .mcm-container {
390
+ max-height: 80vh;
391
+ }
392
+ }
393
+
394
+ .mcm-overlay.center-modal {
395
+ align-items: center !important;
396
+ justify-content: center !important;
397
+ background: var(--banner-overlay) !important;
398
+ }
399
+
400
+ .mcm-wrapper.center-modal {
401
+ width: 90%;
402
+ max-width: 550px;
403
+ }
404
+
405
+ .mcm-overlay.side-panel {
406
+ align-items: stretch !important;
407
+ justify-content: flex-end !important;
408
+ background: var(--banner-overlay) !important;
409
+ }
410
+
411
+ .mcm-wrapper.side-panel {
412
+ width: 100%;
413
+ max-width: 450px;
414
+ height: 100vh;
415
+ }
416
+
417
+ .mcm-wrapper.side-panel .mcm-container {
418
+ height: 100vh;
419
+ max-height: 100vh;
420
+ border-radius: 0;
421
+ border-left: 1px solid var(--banner-border);
422
+ }
423
+
424
+ /* Mobile adjustments for side panel */
425
+ @media (max-width: 480px) {
426
+ .mcm-wrapper.side-panel {
427
+ max-width: 100%;
428
+ }
429
+ }
430
+
431
+ /* Cookie Summary View Styles (Phase 1 & 2 redesign) */
432
+ .mcm-cookie-summary {
433
+ padding: 1rem 1.25rem 0.75rem 1.25rem;
434
+ display: flex;
435
+ flex-direction: column;
436
+ gap: 0.5rem;
437
+ }
438
+
439
+ .mcm-cookie-summary-title {
440
+ font-size: 1rem;
441
+ font-weight: 600;
442
+ color: var(--banner-text);
443
+ margin: 0;
444
+ }
445
+
446
+ .mcm-cookie-summary-text {
447
+ font-size: 0.8125rem;
448
+ line-height: 1.4;
449
+ color: var(--banner-text-muted);
450
+ margin: 0;
451
+ }
452
+
453
+ .mcm-cookie-summary-footer-links {
454
+ display: block;
455
+ font-size: 0.725rem;
456
+ color: var(--banner-text-muted);
457
+ margin-top: 0.25rem;
458
+ line-height: 1.4;
459
+ width: 100%;
460
+ }
461
+
462
+ .mcm-cookie-summary-footer-links.dynamic {
463
+ text-align: left;
464
+ }
465
+
466
+ .mcm-cookie-summary-footer-links .mcm-link {
467
+ color: var(--banner-text-muted);
468
+ text-decoration: underline;
469
+ cursor: pointer;
470
+ }
471
+
472
+ .mcm-cookie-summary-footer-links .mcm-link:hover {
473
+ color: var(--banner-text);
474
+ }
475
+
476
+ .mcm-separator-pipe {
477
+ color: var(--banner-border);
478
+ opacity: 0.5;
479
+ margin: 0 0.25rem;
480
+ display: inline-block;
481
+ }
482
+
483
+ .mcm-powered-by {
484
+ font-size: 0.625rem;
485
+ color: var(--banner-text-muted);
486
+ text-align: center;
487
+ padding: 0.375rem;
488
+ background-color: var(--banner-card-bg);
489
+ border-top: 1px solid var(--banner-border);
490
+ width: calc(100% + 2.5rem);
491
+ /* Negate parent padding */
492
+ margin-left: -1.25rem;
493
+ margin-bottom: -0.75rem;
494
+ border-bottom-left-radius: 1rem;
495
+ border-bottom-right-radius: 1rem;
496
+ }
497
+
498
+ .mcm-brand {
499
+ font-weight: 600;
500
+ color: var(--banner-text);
501
+ }
502
+
503
+ .mcm-cookie-summary-actions {
504
+ display: flex;
505
+ flex-direction: column;
506
+ gap: 0.375rem;
507
+ margin-top: 0.25rem;
508
+ }
509
+
510
+ .mcm-summary-btn {
511
+ width: 100%;
512
+ padding: 0.5rem 0.65rem;
513
+ border-radius: 0.5rem;
514
+ font-weight: 500;
515
+ font-size: 0.8125rem;
516
+ cursor: pointer;
517
+ transition: all 0.2s ease;
518
+ border: 1px solid transparent;
519
+ }
520
+
521
+ .mcm-summary-btn.text {
522
+ background: transparent;
523
+ color: var(--banner-primary-color);
524
+ border: 1px solid var(--banner-border);
525
+ padding: 0.5rem 0.65rem;
526
+ font-size: 0.8125rem;
527
+ margin-top: 0;
528
+ }
529
+
530
+ .mcm-cookie-summary hr {
531
+ border: 0;
532
+ border-top: 1px solid var(--banner-border);
533
+ margin: 0;
534
+ width: 100%;
535
+ }
536
+
537
+
538
+
539
+ .mcm-summary-btn.primary {
540
+ color: white;
541
+ }
542
+
543
+ .mcm-summary-btn.secondary {
544
+ background-color: var(--banner-card-bg);
545
+ color: var(--banner-text);
546
+ border-color: var(--banner-border);
547
+ }
548
+
549
+
550
+
551
+ /* Template Adjustments for Summary */
552
+
553
+ /* Floating Card Summary (Redacto style) */
554
+ .mcm-wrapper.floating-card .mcm-cookie-summary {
555
+ background: var(--banner-bg);
556
+ border-radius: 1rem;
557
+ }
558
+
559
+ /* Bottom Bar Summary (Refined Row-based Light theme) */
560
+ .mcm-wrapper.bottom-bar .mcm-container {
561
+ background: var(--banner-bg);
562
+ border-top: 1px solid var(--banner-border);
563
+ padding-bottom: 32px;
564
+ /* Increased to lift bar up */
565
+ position: relative;
566
+ box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.05);
567
+ }
568
+
569
+ .mcm-wrapper.bottom-bar .mcm-cookie-summary {
570
+ flex-direction: row;
571
+ flex-wrap: wrap;
572
+ align-items: center;
573
+ justify-content: space-between;
574
+ padding: 1rem 3rem 0 3rem;
575
+ /* Zero bottom padding */
576
+ max-width: 100%;
577
+ margin: 0 auto;
578
+ gap: 0.25rem 3rem;
579
+ /* Minimal row gap */
580
+ display: flex !important;
581
+ }
582
+
583
+ .mcm-wrapper.bottom-bar .mcm-cookie-summary-content {
584
+ flex: 1 1 auto;
585
+ min-width: 400px;
586
+ text-align: left;
587
+ }
588
+
589
+ .mcm-wrapper.bottom-bar .mcm-cookie-summary-title {
590
+ color: var(--banner-text);
591
+ font-size: 1.125rem;
592
+ font-weight: 800;
593
+ margin-bottom: 0.25rem;
594
+ line-height: 1.2;
595
+ }
596
+
597
+ .mcm-wrapper.bottom-bar .mcm-cookie-summary-text {
598
+ color: var(--banner-text-muted);
599
+ font-size: 0.875rem;
600
+ line-height: 1.5;
601
+ }
602
+
603
+ .mcm-wrapper.bottom-bar .mcm-cookie-summary-actions {
604
+ flex: 0 0 auto;
605
+ flex-direction: row;
606
+ align-items: center;
607
+ justify-content: flex-end;
608
+ gap: 1rem;
609
+ margin-top: 0;
610
+ display: flex !important;
611
+ }
612
+
613
+ .mcm-wrapper.bottom-bar .mcm-summary-btn {
614
+ width: auto;
615
+ min-width: 140px;
616
+ padding: 0.75rem 1.5rem;
617
+ white-space: nowrap;
618
+ font-size: 0.875rem;
619
+ }
620
+
621
+ .mcm-wrapper.bottom-bar .mcm-cookie-summary-footer-links {
622
+ flex: 1 1 100%;
623
+ color: var(--banner-text-muted);
624
+ font-size: 0.8125rem;
625
+ line-height: 1.6;
626
+ margin-top: 0;
627
+ text-align: left;
628
+ display: block !important;
629
+ border-top: 1px solid var(--banner-border);
630
+ padding-top: 0.375rem;
631
+ /* Reduced from 0.5rem */
632
+ }
633
+
634
+ .mcm-wrapper.bottom-bar .mcm-cookie-summary-footer-links .mcm-link {
635
+ color: var(--banner-text);
636
+ text-decoration: underline;
637
+ text-underline-offset: 2px;
638
+ transition: all 0.2s ease;
639
+ }
640
+
641
+ .mcm-wrapper.bottom-bar .mcm-summary-btn.secondary {
642
+ background: var(--banner-card-bg);
643
+ color: var(--banner-text);
644
+ border-color: var(--banner-border);
645
+ }
646
+
647
+ .mcm-wrapper.bottom-bar .mcm-summary-btn.text {
648
+ color: var(--banner-primary-color);
649
+ border: 1px solid var(--banner-border);
650
+ background: var(--banner-bg);
651
+ border-radius: 0.5rem;
652
+ }
653
+
654
+ .mcm-wrapper.bottom-bar .mcm-powered-by {
655
+ position: absolute;
656
+ bottom: 8px;
657
+ /* Lifted up */
658
+ left: 0;
659
+ right: 0;
660
+ background-color: var(--banner-card-bg);
661
+ border-top: 1px solid var(--banner-border);
662
+ color: var(--banner-text-muted);
663
+ padding: 0.25rem;
664
+ gap: 4px;
665
+ /* Added space */
666
+ font-size: 0.65rem;
667
+ text-align: center;
668
+ width: 100%;
669
+ z-index: 10;
670
+ height: 24px;
671
+ /* Restored height */
672
+ display: flex;
673
+ align-items: center;
674
+ justify-content: center;
675
+ }
676
+
677
+ /* Hide hr separators in bottom-bar layout */
678
+ .mcm-wrapper.bottom-bar .mcm-cookie-summary hr {
679
+ display: none !important;
680
+ }
681
+
682
+ /* Desktop override for floating card to keep it more compact */
683
+ @media (min-width: 768px) {
684
+ .mcm-wrapper.floating-card {
685
+ max-width: 380px;
686
+ bottom: 24px;
687
+ right: 24px;
688
+ }
689
+ }
690
+
691
+ /* Side Panel (Drawer) Template */
692
+ .mcm-overlay.side-panel {
693
+ justify-content: flex-end !important;
694
+ align-items: stretch !important;
695
+ }
696
+
697
+ .mcm-wrapper.side-panel {
698
+ width: 100%;
699
+ max-width: 450px;
700
+ height: 100%;
701
+ max-height: 100vh;
702
+ margin: 0;
703
+ animation: mcm-drawer-slide-in 0.4s cubic-bezier(0.16, 1, 0.3, 1);
704
+ }
705
+
706
+ .mcm-wrapper.side-panel .mcm-container {
707
+ height: 100%;
708
+ max-height: 100vh;
709
+ border-radius: 0 !important;
710
+ border-left: 1px solid var(--banner-border) !important;
711
+ }
712
+
713
+ .mcm-wrapper.side-panel .mcm-close-btn {
714
+ top: 0px !important;
715
+ left: -16px !important;
716
+ /* Half-inside, half-outside */
717
+ background: var(--banner-bg) !important;
718
+ border: 1px solid var(--banner-border) !important;
719
+ }
720
+
721
+ @keyframes mcm-drawer-slide-in {
722
+ from {
723
+ transform: translateX(100%);
724
+ }
725
+
726
+ to {
727
+ transform: translateX(0);
728
+ }
729
+ }
730
+
731
+ /* Responsive Side Panel */
732
+ @media (max-width: 640px) {
733
+ .mcm-wrapper.side-panel {
734
+ max-width: 100% !important;
735
+ }
736
+ }
737
+
738
+ /* Modern Modal Template */
739
+ .mcm-wrapper.modern-modal {
740
+ max-width: 750px !important;
741
+ }
742
+
743
+ .mcm-wrapper.modern-modal .mcm-container {
744
+ border-radius: 12px !important;
745
+ max-height: 90vh !important;
746
+ }
747
+
748
+ .mcm-wrapper.modern-modal .mcm-header {
749
+ padding: 24px 24px 16px !important;
750
+ border-bottom: 1px solid var(--banner-border) !important;
751
+ margin-bottom: 0 !important;
752
+ }
753
+
754
+ .mcm-wrapper.modern-modal .mcm-header-text h1 {
755
+ font-size: 1.5rem !important;
756
+ font-weight: 700 !important;
757
+ color: var(--banner-text) !important;
758
+ }
759
+
760
+ .mcm-wrapper.modern-modal .mcm-body {
761
+ padding: 24px !important;
762
+ gap: 16px !important;
763
+ }
764
+
765
+ /* Modern Card Styling */
766
+ .mcm-wrapper.modern-modal .mcm-card {
767
+ border: 1px solid var(--banner-border) !important;
768
+ border-radius: 10px !important;
769
+ padding: 20px !important;
770
+ background: var(--banner-bg) !important;
771
+ box-shadow: none !important;
772
+ transition: border-color 0.2s ease !important;
773
+ }
774
+
775
+ .mcm-wrapper.modern-modal .mcm-card:hover {
776
+ border-color: var(--banner-text-muted) !important;
777
+ }
778
+
779
+ .mcm-wrapper.modern-modal .mcm-card h3 {
780
+ font-size: 1.1rem !important;
781
+ font-weight: 700 !important;
782
+ color: var(--banner-text) !important;
783
+ }
784
+
785
+ .mcm-wrapper.modern-modal .mcm-purpose-desc {
786
+ font-size: 0.95rem !important;
787
+ color: var(--banner-text-muted) !important;
788
+ line-height: 1.6 !important;
789
+ margin-top: 8px !important;
790
+ }
791
+
792
+ /* Modern Badge Styling */
793
+ .mcm-wrapper.modern-modal .badge.mandatory {
794
+ background: var(--banner-danger-bg) !important;
795
+ color: var(--banner-danger-text) !important;
796
+ padding: 4px 16px !important;
797
+ font-size: 0.75rem !important;
798
+ font-weight: 700 !important;
799
+ text-transform: capitalize !important;
800
+ border-radius: 9999px !important;
801
+ border: none !important;
802
+ }
803
+
804
+ /* Modern Button Footer */
805
+ .mcm-wrapper.modern-modal .mcm-action-buttons {
806
+ display: flex !important;
807
+ justify-content: space-between !important;
808
+ align-items: center !important;
809
+ padding: 20px 24px !important;
810
+ background: var(--banner-bg) !important;
811
+ border-top: 1px solid var(--banner-border) !important;
812
+ }
813
+
814
+ .mcm-wrapper.modern-modal .mcm-summary-btn {
815
+ border-radius: 6px !important;
816
+ font-weight: 600 !important;
817
+ padding: 10px 24px !important;
818
+ font-size: 0.95rem !important;
819
+ }
820
+
821
+ .mcm-wrapper.modern-modal .mcm-summary-btn.secondary {
822
+ /* Only Essential */
823
+ background: transparent !important;
824
+ color: var(--banner-text) !important;
825
+ border: 1px solid var(--banner-border) !important;
826
+ margin-right: auto !important;
827
+ }
828
+
829
+ .mcm-wrapper.modern-modal .mcm-summary-btn.primary {
830
+ /* Accept All */
831
+ background: var(--banner-primary-color) !important;
832
+ color: var(--banner-bg) !important;
833
+ border: none !important;
834
+ }
835
+
836
+ .mcm-wrapper.modern-modal .mcm-summary-btn.save-preferences {
837
+ /* Save Preferences */
838
+ background: var(--banner-primary-color) !important;
839
+ color: white !important;
840
+ border: none !important;
841
+ }
842
+
843
+ /* Preferences Modal Container */
844
+ .preferences-modal-content {
845
+ display: flex;
846
+ flex-direction: column;
847
+ height: 100%;
848
+ max-height: 85vh;
849
+ background: var(--banner-bg);
850
+ font-family: inherit;
851
+ font-size: inherit;
852
+ }
853
+
854
+ /* Header */
855
+ .preferences-header {
856
+ padding: 1.5rem 1.5rem 1rem;
857
+ border-bottom: 1px solid var(--banner-border);
858
+ display: flex;
859
+ justify-content: space-between;
860
+ align-items: center;
861
+ }
862
+
863
+ .preferences-title {
864
+ margin: 0;
865
+ font-size: 1.5rem;
866
+ font-weight: 700;
867
+ color: var(--banner-text);
868
+ }
869
+
870
+ .preferences-close-btn {
871
+ background: transparent;
872
+ border: none;
873
+ color: var(--banner-text-muted);
874
+ cursor: pointer;
875
+ padding: 6px;
876
+ display: flex;
877
+ align-items: center;
878
+ justify-content: center;
879
+ border-radius: 50%;
880
+ transition: all 0.2s;
881
+ }
882
+
883
+ .preferences-close-btn:hover {
884
+ color: var(--banner-text);
885
+ background: var(--banner-hover-bg);
886
+ }
887
+
888
+ /* Hide the global close button for this layout */
889
+ .mcm-wrapper.preferences-modal>.mcm-close-btn {
890
+ display: none !important;
891
+ }
892
+
893
+ /* Intro Text */
894
+ .preferences-intro {
895
+ padding: 1.25rem 1.5rem;
896
+ color: var(--banner-text-muted);
897
+ font-size: 0.95rem;
898
+ line-height: 1.6;
899
+ }
900
+
901
+ /* Purpose List */
902
+ .preferences-purpose-list {
903
+ flex: 1;
904
+ overflow-y: auto;
905
+ padding: 0 1.5rem 1.5rem;
906
+ display: flex;
907
+ flex-direction: column;
908
+ gap: 1rem;
909
+ }
910
+
911
+ /* Purpose Card */
912
+ .preferences-purpose-card {
913
+ border: 1px solid var(--banner-border);
914
+ border-left: 4px solid var(--banner-text);
915
+ /* Left accent border */
916
+ border-radius: 8px;
917
+ padding: 1.25rem;
918
+ background: var(--banner-bg);
919
+ transition: box-shadow 0.2s ease;
920
+ }
921
+
922
+ .preferences-purpose-card:hover {
923
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
924
+ }
925
+
926
+ .preferences-purpose-header {
927
+ display: flex;
928
+ justify-content: space-between;
929
+ align-items: center;
930
+ margin-bottom: 0.75rem;
931
+ }
932
+
933
+ .preferences-purpose-info {
934
+ flex: 1;
935
+ display: flex;
936
+ align-items: center;
937
+ gap: 0.75rem;
938
+ }
939
+
940
+ .preferences-purpose-name {
941
+ margin: 0;
942
+ font-size: 1.125rem;
943
+ font-weight: 700;
944
+ color: var(--banner-text);
945
+ }
946
+
947
+ /* Mandatory Badge */
948
+ .preferences-badge-mandatory {
949
+ display: inline-block;
950
+ padding: 0.25rem 0.75rem;
951
+ background: var(--banner-danger-bg);
952
+ /* Gray pill in image */
953
+ color: var(--banner-danger-text);
954
+ font-size: 0.75rem;
955
+ font-weight: 600;
956
+ border-radius: 9999px;
957
+ text-transform: capitalize;
958
+ }
959
+
960
+ /* Purpose Description */
961
+ .preferences-purpose-description {
962
+ color: var(--banner-text-muted);
963
+ font-size: 0.9rem;
964
+ line-height: 1.5;
965
+ margin-bottom: 0.75rem;
966
+ }
967
+
968
+ /* Services Used / Details Section */
969
+ .preferences-details {
970
+ margin-top: 0.5rem;
971
+ border-top: 1px solid var(--banner-border);
972
+ padding-top: 0.5rem;
973
+ }
974
+
975
+ .preferences-details .mcm-collapsible-btn {
976
+ color: var(--banner-danger-btn) !important;
977
+ /* Red text for details in image */
978
+ font-size: 0.8125rem !important;
979
+ font-weight: 600 !important;
980
+ padding: 4px 0 !important;
981
+ }
982
+
983
+ /* Action Buttons */
984
+ .preferences-actions {
985
+ display: flex;
986
+ gap: 1rem;
987
+ padding: 1.25rem 1.5rem;
988
+ border-top: 1px solid var(--banner-border);
989
+ background: var(--banner-bg);
990
+ }
991
+
992
+ .preferences-btn {
993
+ flex: 1;
994
+ padding: 0.625rem 1.25rem;
995
+ font-size: 0.875rem;
996
+ font-weight: 600;
997
+ border-radius: 6px;
998
+ cursor: pointer;
999
+ transition: all 0.2s ease;
1000
+ text-align: center;
1001
+ }
1002
+
1003
+ /* Only Essential Button */
1004
+ .preferences-btn-essential {
1005
+ background: transparent;
1006
+ color: var(--banner-text-muted);
1007
+ border: 1px solid var(--banner-border);
1008
+ }
1009
+
1010
+ .preferences-btn-essential:hover {
1011
+ background: var(--banner-hover-bg);
1012
+ border-color: var(--banner-text);
1013
+ }
1014
+
1015
+ /* Save Preferences Button */
1016
+ .preferences-btn-save {
1017
+ background: var(--banner-info-bg);
1018
+ /* Coral from image */
1019
+ color: var(--banner-primary-color);
1020
+ border: none;
1021
+ }
1022
+
1023
+ .preferences-btn-save:hover {
1024
+ background: var(--banner-info-bg);
1025
+ }
1026
+
1027
+ /* Accept All Button */
1028
+ .preferences-btn-accept {
1029
+ background: var(--banner-primary-color);
1030
+ /* Green from image */
1031
+ color: var(--banner-bg);
1032
+ border: none;
1033
+ }
1034
+
1035
+ .preferences-btn-accept:hover {
1036
+ background: var(--banner-primary-color);
1037
+ }
1038
+
1039
+ /* Specific Wrapper Refinements */
1040
+ .mcm-wrapper.preferences-modal {
1041
+ max-width: 650px !important;
1042
+ width: 90% !important;
1043
+ }
1044
+
1045
+ .mcm-wrapper.preferences-modal .mcm-container {
1046
+ border-radius: 12px !important;
1047
+ }
1048
+
1049
+ /* Toggle Switch */
1050
+ .preferences-toggle {
1051
+ position: relative;
1052
+ display: inline-block;
1053
+ width: 44px;
1054
+ height: 24px;
1055
+ flex-shrink: 0;
1056
+ }
1057
+
1058
+ .preferences-toggle input {
1059
+ opacity: 0;
1060
+ width: 0;
1061
+ height: 0;
1062
+ }
1063
+
1064
+ .preferences-toggle-slider {
1065
+ position: absolute;
1066
+ cursor: pointer;
1067
+ top: 0;
1068
+ left: 0;
1069
+ right: 0;
1070
+ bottom: 0;
1071
+ background-color: var(--banner-border);
1072
+ transition: 0.3s;
1073
+ border-radius: 24px;
1074
+ }
1075
+
1076
+ .preferences-toggle-slider:before {
1077
+ position: absolute;
1078
+ content: "";
1079
+ height: 18px;
1080
+ width: 18px;
1081
+ left: 3px;
1082
+ bottom: 3px;
1083
+ background-color: var(--banner-bg);
1084
+ transition: 0.3s;
1085
+ border-radius: 50%;
1086
+ }
1087
+
1088
+ .preferences-toggle input:checked+.preferences-toggle-slider {
1089
+ background-color: var(--banner-success-text);
1090
+ }
1091
+
1092
+ .preferences-toggle input:checked+.preferences-toggle-slider:before {
1093
+ transform: translateX(20px);
1094
+ }
1095
+
1096
+ /* Responsive */
1097
+ @media (max-width: 640px) {
1098
+ .preferences-actions {
1099
+ flex-direction: column;
1100
+ }
1101
+
1102
+ .preferences-purpose-header {
1103
+ flex-direction: column;
1104
+ gap: 0.75rem;
1105
+ align-items: flex-start;
1106
+ }
1107
+
1108
+ .preferences-toggle {
1109
+ align-self: flex-start;
1110
+ }
1111
+ }
1112
+
1113
+ /* Preferences Modal Footer & Actions Container */
1114
+ .preferences-footer-container {
1115
+ padding: 1rem 1.5rem;
1116
+ border-top: 1px solid var(--banner-border);
1117
+ background: var(--banner-bg);
1118
+ display: flex;
1119
+ flex-direction: column;
1120
+ gap: 0.5rem;
1121
+ }
1122
+
1123
+ .preferences-footer-text {
1124
+ margin-bottom: 0.5rem;
1125
+ }
1126
+
1127
+ .preferences-footer-container .preferences-actions {
1128
+ padding: 0 !important;
1129
+ border-top: none !important;
1130
+ }
1131
+
1132
+ /* Preferences Modal - Unified Card Component Overrides */
1133
+ .preferences-purpose-card-wrapper {
1134
+ margin-bottom: 0.75rem;
1135
+ }
1136
+
1137
+ .preferences-purpose-card-wrapper>div {
1138
+ border-left: 4px solid var(--banner-text) !important;
1139
+ border-radius: 8px !important;
1140
+ padding: 1.25rem !important;
1141
+ border: 1px solid var(--banner-border) !important;
1142
+ transition: box-shadow 0.2s ease !important;
1143
+ }
1144
+
1145
+ .preferences-purpose-card-wrapper>div:hover {
1146
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03) !important;
1147
+ }
1148
+
1149
+ /* Mandatory Badge Overrides */
1150
+ .preferences-purpose-card-wrapper .mandatory-badge {
1151
+ background: var(--banner-danger-bg) !important;
1152
+ color: var(--banner-danger-text) !important;
1153
+ border: none !important;
1154
+ text-transform: capitalize !important;
1155
+ padding: 0.125rem 0.625rem !important;
1156
+ font-size: 0.725rem !important;
1157
+ }
1158
+
1159
+ /* Red Collapsible Links */
1160
+ .preferences-purpose-card-wrapper .mcm-collapsible-btn {
1161
+ color: var(--banner-danger-btn) !important;
1162
+ font-size: 0.8125rem !important;
1163
+ font-weight: 600 !important;
1164
+ text-decoration: none !important;
1165
+ }
1166
+
1167
+ .preferences-purpose-card-wrapper .mcm-collapsible-btn:hover {
1168
+ text-decoration: underline !important;
1169
+ }
1170
+
1171
+ /* Split Button Alignment */
1172
+ .preferences-actions {
1173
+ justify-content: space-between !important;
1174
+ align-items: center !important;
1175
+ }
1176
+
1177
+ .preferences-actions-right {
1178
+ display: flex;
1179
+ gap: 1rem;
1180
+ flex: 1;
1181
+ justify-content: flex-end;
1182
+ }
1183
+
1184
+ .preferences-btn-essential {
1185
+ flex: 0 1 auto !important;
1186
+ min-width: 140px;
1187
+ }
1188
+
1189
+ .preferences-btn-save {
1190
+ flex: 0 1 auto !important;
1191
+ min-width: 140px;
1192
+ max-width: 180px;
1193
+ }
1194
+
1195
+ .preferences-btn-accept {
1196
+ flex: 0 1 auto !important;
1197
+ min-width: 110px;
1198
+ max-width: 150px;
1199
+ }
1200
+
1201
+ @media (max-width: 640px) {
1202
+ .preferences-actions {
1203
+ flex-direction: column !important;
1204
+ gap: 0.75rem !important;
1205
+ }
1206
+
1207
+ .preferences-actions-right {
1208
+ width: 100%;
1209
+ flex-direction: column;
1210
+ }
1211
+
1212
+ .preferences-btn-essential,
1213
+ .preferences-btn-save,
1214
+ .preferences-btn-accept {
1215
+ width: 100% !important;
1216
+ max-width: none !important;
1217
+ }
1218
+ }
1219
+
1220
+ /* Preferences Modal Logo */
1221
+ .preferences-title-wrapper {
1222
+ display: flex;
1223
+ align-items: center;
1224
+ gap: 0.75rem;
1225
+ }
1226
+
1227
+ .preferences-logo {
1228
+ height: 24px;
1229
+ width: auto;
1230
+ object-fit: contain;
1231
+ }
1232
+
1233
+ /* Inline Layout Wrapper */
1234
+ .mcm-inline-wrapper {
1235
+ position: relative;
1236
+ width: 100%;
1237
+ margin: 0 auto;
1238
+ font-family: var(--font-type, inherit);
1239
+ font-size: var(--font-size, inherit);
1240
+ display: flex;
1241
+ flex-direction: column;
1242
+ }
1243
+
1244
+ .mcm-inline-wrapper .mcm-container {
1245
+ max-height: 85vh;
1246
+ width: 100%;
1247
+ margin: 0;
1248
+ border-radius: 12px;
1249
+ overflow: hidden;
1250
+ position: relative;
1251
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
1252
+ border: 1px solid var(--banner-border);
1253
+ }