@truconsent/consent-notice 0.0.7 → 0.0.8

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