elpaypg 2.0.4 → 2.0.6

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,3054 @@
1
+ :root {
2
+ --ypg-blue: #0b63e5;
3
+ --ypg-blue-dark: #0957cb;
4
+ --ypg-navy: #0b1526;
5
+ --ypg-header-gradient: linear-gradient(180deg, #0b63e5 0%, #0957cb 100%);
6
+ --ypg-bg: #f8fafc;
7
+ --ypg-card: #ffffff;
8
+ --ypg-text-dark: #0f172a;
9
+ --ypg-text-muted: #64748b;
10
+ --ypg-border: #e2e8f0;
11
+ --ypg-border-light: #eef2f6;
12
+ --ypg-green: #0d9f67;
13
+ --ypg-green-bg: #e6f9f0;
14
+ --ypg-offer-bg: #eff6ff;
15
+ --ypg-offer-border: #dbeafe;
16
+ --ypg-danger: #ef4444;
17
+ --ypg-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
18
+ }
19
+
20
+ * {
21
+ box-sizing: border-box;
22
+ margin: 0;
23
+ padding: 0;
24
+ font-family: var(--ypg-font);
25
+ -webkit-tap-highlight-color: transparent;
26
+ }
27
+
28
+ [hidden],
29
+ #paymentGatewayInterface[hidden],
30
+ #preGatewayAuthView[hidden] {
31
+ display: none !important;
32
+ }
33
+
34
+ html,
35
+ body {
36
+ touch-action: pan-y;
37
+ -webkit-overflow-scrolling: touch;
38
+ height: 100%;
39
+ height: 100dvh;
40
+ margin: 0;
41
+ padding: 0;
42
+ }
43
+
44
+ body {
45
+ background-color: #0b0f19;
46
+ color: var(--ypg-text-dark);
47
+ min-height: 100vh;
48
+ min-height: 100dvh;
49
+ display: flex;
50
+ align-items: center;
51
+ justify-content: center;
52
+ padding: 0;
53
+ margin: 0;
54
+ overflow-x: hidden;
55
+ font-size: 14px;
56
+ }
57
+
58
+ body.is-embedded {
59
+ background: transparent;
60
+ padding: 0;
61
+ margin: 0;
62
+ width: 100%;
63
+ height: 100%;
64
+ height: 100dvh;
65
+ min-height: 100%;
66
+ overflow: hidden;
67
+ }
68
+
69
+ /* --- ELPAY PG CARD / DRAWER CONTAINER --- */
70
+ .ypg-wrapper {
71
+ width: 100%;
72
+ max-width: 440px;
73
+ min-height: 100vh;
74
+ background: #ffffff;
75
+ display: flex;
76
+ flex-direction: column;
77
+ box-shadow: 0 25px 65px rgba(0, 0, 0, 0.45);
78
+ position: relative;
79
+ overflow: hidden;
80
+ }
81
+
82
+ @media (min-width: 601px) {
83
+ body:not(.is-embedded) {
84
+ padding: 24px;
85
+ }
86
+
87
+ body:not(.is-embedded) .ypg-wrapper {
88
+ min-height: 640px;
89
+ max-height: 92vh;
90
+ border-radius: 16px;
91
+ }
92
+
93
+ body.is-embedded .ypg-wrapper {
94
+ min-height: 100vh;
95
+ height: 100%;
96
+ max-width: 100%;
97
+ border-radius: 0;
98
+ }
99
+ }
100
+
101
+ @media (max-width: 600px) {
102
+ .ypg-wrapper {
103
+ max-width: 100vw;
104
+ border-top-left-radius: 20px;
105
+ border-top-right-radius: 20px;
106
+ }
107
+ }
108
+
109
+ /* --- MOBILE TOP DRAG HANDLE --- */
110
+ .ypg-drag-handle-bar {
111
+ display: none;
112
+ width: 36px;
113
+ height: 4px;
114
+ background: rgba(255, 255, 255, 0.45);
115
+ border-radius: 9999px;
116
+ margin: 8px auto 6px auto;
117
+ }
118
+
119
+ @media (max-width: 600px) {
120
+ .ypg-drag-handle-bar {
121
+ display: block;
122
+ }
123
+ }
124
+
125
+ /* --- 1. INITIAL LOADING SPLASH SCREEN (ELPAY PG EMBLEM) --- */
126
+ .ypg-splash-screen {
127
+ position: absolute;
128
+ top: 0;
129
+ left: 0;
130
+ width: 100%;
131
+ height: 100%;
132
+ background: #f4f5f7;
133
+ z-index: 100;
134
+ display: flex;
135
+ flex-direction: column;
136
+ align-items: center;
137
+ justify-content: center;
138
+ transition: opacity 0.4s ease, visibility 0.4s ease;
139
+ }
140
+
141
+ .ypg-splash-screen.fade-out {
142
+ opacity: 0;
143
+ visibility: hidden;
144
+ pointer-events: none;
145
+ }
146
+
147
+ .ypg-splash-center {
148
+ position: relative;
149
+ display: flex;
150
+ flex-direction: column;
151
+ align-items: center;
152
+ justify-content: center;
153
+ margin-bottom: 70px;
154
+ }
155
+
156
+ .ypg-shield-orbit-box {
157
+ position: relative;
158
+ width: 110px;
159
+ height: 110px;
160
+ display: flex;
161
+ align-items: center;
162
+ justify-content: center;
163
+ }
164
+
165
+ .ypg-shield-icon-svg {
166
+ width: 82px;
167
+ height: 94px;
168
+ filter: drop-shadow(0 8px 18px rgba(11, 99, 229, 0.3));
169
+ animation: ypgPulseShield 2s infinite ease-in-out;
170
+ }
171
+
172
+ @keyframes ypgPulseShield {
173
+
174
+ 0%,
175
+ 100% {
176
+ transform: scale(1);
177
+ }
178
+
179
+ 50% {
180
+ transform: scale(1.04);
181
+ }
182
+ }
183
+
184
+ .ypg-orbit-dot {
185
+ position: absolute;
186
+ width: 12px;
187
+ height: 12px;
188
+ background: #0b63e5;
189
+ border: 2px solid #ffffff;
190
+ border-radius: 50%;
191
+ top: 8px;
192
+ left: 20px;
193
+ box-shadow: 0 0 8px rgba(11, 99, 229, 0.6);
194
+ animation: ypgOrbitAnimation 1.5s infinite linear;
195
+ }
196
+
197
+ @keyframes ypgOrbitAnimation {
198
+ 0% {
199
+ transform: rotate(0deg) translateX(46px) rotate(0deg);
200
+ }
201
+
202
+ 100% {
203
+ transform: rotate(360deg) translateX(46px) rotate(-360deg);
204
+ }
205
+ }
206
+
207
+ .ypg-splash-footer {
208
+ position: absolute;
209
+ bottom: 24px;
210
+ display: flex;
211
+ align-items: center;
212
+ gap: 6px;
213
+ font-size: 13px;
214
+ font-weight: 700;
215
+ color: #64748b;
216
+ }
217
+
218
+ /* --- 2. AUTHENTIC ELPAY PG HEADER --- */
219
+ .ypg-header {
220
+ background: var(--ypg-header-gradient);
221
+ color: #ffffff;
222
+ position: relative;
223
+ display: flex;
224
+ flex-direction: column;
225
+ flex-shrink: 0;
226
+ }
227
+
228
+ .ypg-header-main-row {
229
+ padding: 12px 16px 10px 16px;
230
+ display: flex;
231
+ align-items: center;
232
+ justify-content: space-between;
233
+ gap: 10px;
234
+ }
235
+
236
+ body.is-embedded .ypg-header-main-row {
237
+ padding-right: 56px;
238
+ /* Avoid collision with parent modal close button at top-right 14px */
239
+ }
240
+
241
+ .ypg-header-left-group {
242
+ display: flex;
243
+ align-items: center;
244
+ gap: 12px;
245
+ flex: 1;
246
+ overflow: hidden;
247
+ }
248
+
249
+ .ypg-btn-back {
250
+ background: none;
251
+ border: none;
252
+ color: #ffffff;
253
+ cursor: pointer;
254
+ display: flex;
255
+ align-items: center;
256
+ justify-content: center;
257
+ padding: 4px;
258
+ border-radius: 6px;
259
+ transition: background 0.15s;
260
+ }
261
+
262
+ .ypg-btn-back:hover {
263
+ background: rgba(255, 255, 255, 0.15);
264
+ }
265
+
266
+ /* Teal Merchant Avatar with Initial */
267
+ .ypg-merchant-avatar {
268
+ width: 38px;
269
+ height: 38px;
270
+ border-radius: 10px;
271
+ background: #14b8a6;
272
+ border: 1.5px solid rgba(255, 255, 255, 0.85);
273
+ color: #ffffff;
274
+ font-size: 19px;
275
+ font-weight: 800;
276
+ display: flex;
277
+ align-items: center;
278
+ justify-content: center;
279
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
280
+ flex-shrink: 0;
281
+ overflow: hidden;
282
+ }
283
+
284
+ .ypg-merchant-avatar img {
285
+ width: 100%;
286
+ height: 100%;
287
+ object-fit: cover;
288
+ }
289
+
290
+ .ypg-merchant-text-group {
291
+ display: flex;
292
+ flex-direction: column;
293
+ overflow: hidden;
294
+ }
295
+
296
+ .ypg-merchant-name {
297
+ font-size: 16px;
298
+ font-weight: 700;
299
+ color: #ffffff;
300
+ white-space: nowrap;
301
+ overflow: hidden;
302
+ text-overflow: ellipsis;
303
+ line-height: 1.25;
304
+ }
305
+
306
+ /* ELPAY PG Verified Business Badge */
307
+ .ypg-trusted-badge {
308
+ display: flex;
309
+ align-items: center;
310
+ gap: 4px;
311
+ font-size: 11.5px;
312
+ font-weight: 600;
313
+ color: rgba(255, 255, 255, 0.95);
314
+ margin-top: 1px;
315
+ }
316
+
317
+ .ypg-green-shield {
318
+ width: 13px;
319
+ height: 13px;
320
+ flex-shrink: 0;
321
+ }
322
+
323
+ /* Profile Account Icon */
324
+ .ypg-btn-profile {
325
+ width: 34px;
326
+ height: 34px;
327
+ border-radius: 50%;
328
+ background: rgba(255, 255, 255, 0.2);
329
+ border: none;
330
+ color: #ffffff;
331
+ cursor: pointer;
332
+ display: flex;
333
+ align-items: center;
334
+ justify-content: center;
335
+ transition: background 0.15s;
336
+ flex-shrink: 0;
337
+ }
338
+
339
+ .ypg-btn-profile:hover {
340
+ background: rgba(255, 255, 255, 0.35);
341
+ }
342
+
343
+ /* Sub-banner */
344
+ .ypg-header-subbanner {
345
+ background: rgba(0, 0, 0, 0.12);
346
+ padding: 6px 16px;
347
+ display: flex;
348
+ align-items: center;
349
+ gap: 6px;
350
+ font-size: 11.5px;
351
+ font-weight: 500;
352
+ color: #ffffff;
353
+ }
354
+
355
+ .ypg-header-subbanner svg {
356
+ width: 14px;
357
+ height: 14px;
358
+ flex-shrink: 0;
359
+ }
360
+
361
+ /* Profile Dropdown Popover */
362
+ .ypg-account-popover {
363
+ position: absolute;
364
+ top: 54px;
365
+ right: 16px;
366
+ background: #ffffff;
367
+ color: var(--ypg-text-dark);
368
+ border-radius: 10px;
369
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
370
+ border: 1px solid var(--ypg-border);
371
+ padding: 8px;
372
+ z-index: 50;
373
+ min-width: 190px;
374
+ animation: ypgFadeInDown 0.15s ease-out;
375
+ }
376
+
377
+ @keyframes ypgFadeInDown {
378
+ from {
379
+ opacity: 0;
380
+ transform: translateY(-6px);
381
+ }
382
+
383
+ to {
384
+ opacity: 1;
385
+ transform: translateY(0);
386
+ }
387
+ }
388
+
389
+ .ypg-popover-item {
390
+ width: 100%;
391
+ text-align: left;
392
+ padding: 8px 12px;
393
+ background: none;
394
+ border: none;
395
+ font-size: 12px;
396
+ font-weight: 600;
397
+ color: var(--ypg-text-dark);
398
+ border-radius: 6px;
399
+ cursor: pointer;
400
+ display: flex;
401
+ align-items: center;
402
+ gap: 8px;
403
+ }
404
+
405
+ .ypg-popover-item:hover {
406
+ background: var(--ypg-bg);
407
+ }
408
+
409
+ /* --- 3. SCROLLABLE BODY (WHITE SURFACE) --- */
410
+ .ypg-body {
411
+ flex: 1;
412
+ overflow-y: auto;
413
+ background: #ffffff;
414
+ padding: 16px 16px 20px 16px;
415
+ display: flex;
416
+ flex-direction: column;
417
+ position: relative;
418
+ }
419
+
420
+ .ypg-page-title {
421
+ font-size: 18px;
422
+ font-weight: 700;
423
+ color: var(--ypg-text-dark);
424
+ margin-bottom: 12px;
425
+ letter-spacing: -0.01em;
426
+ }
427
+
428
+ /* Available Offers Pill */
429
+ .ypg-offers-pill {
430
+ background: var(--ypg-offer-bg);
431
+ border: 1px solid var(--ypg-offer-border);
432
+ border-radius: 9999px;
433
+ padding: 6px 14px;
434
+ display: flex;
435
+ align-items: center;
436
+ justify-content: space-between;
437
+ margin-bottom: 18px;
438
+ cursor: pointer;
439
+ transition: background 0.15s;
440
+ }
441
+
442
+ .ypg-offers-pill:hover {
443
+ background: #e2eeff;
444
+ }
445
+
446
+ .ypg-offers-left {
447
+ display: flex;
448
+ align-items: center;
449
+ gap: 8px;
450
+ font-size: 12px;
451
+ font-weight: 600;
452
+ color: #1e3a8a;
453
+ overflow: hidden;
454
+ white-space: nowrap;
455
+ text-overflow: ellipsis;
456
+ }
457
+
458
+ .ypg-offer-icon-badge {
459
+ width: 20px;
460
+ height: 20px;
461
+ border-radius: 50%;
462
+ background: #fee2e2;
463
+ color: #b91c1c;
464
+ display: flex;
465
+ align-items: center;
466
+ justify-content: center;
467
+ font-size: 11px;
468
+ font-weight: 800;
469
+ flex-shrink: 0;
470
+ }
471
+
472
+ .ypg-offers-right {
473
+ display: flex;
474
+ align-items: center;
475
+ gap: 6px;
476
+ font-size: 12px;
477
+ font-weight: 600;
478
+ color: var(--ypg-blue);
479
+ flex-shrink: 0;
480
+ }
481
+
482
+ /* Section Label Row */
483
+ .ypg-section-label-row {
484
+ display: flex;
485
+ align-items: center;
486
+ justify-content: space-between;
487
+ margin-bottom: 8px;
488
+ }
489
+
490
+ .ypg-section-heading {
491
+ font-size: 13.5px;
492
+ font-weight: 600;
493
+ color: #334155;
494
+ }
495
+
496
+ .ypg-countdown-pill {
497
+ background: #f1f5f9;
498
+ border: 1px solid #e2e8f0;
499
+ border-radius: 9999px;
500
+ padding: 2px 9px;
501
+ font-size: 11.5px;
502
+ font-weight: 600;
503
+ color: #475569;
504
+ display: inline-flex;
505
+ align-items: center;
506
+ gap: 4px;
507
+ }
508
+
509
+ /* --- 4. CORE UPI QR CARD (STRICTLY UPI ONLY) --- */
510
+ .ypg-qr-card-container {
511
+ background: #f8fafc;
512
+ border: 1px solid var(--ypg-border-light);
513
+ border-radius: 16px;
514
+ padding: 16px;
515
+ display: flex;
516
+ gap: 16px;
517
+ align-items: center;
518
+ margin-bottom: 18px;
519
+ }
520
+
521
+ .ypg-qr-image-box {
522
+ width: 130px;
523
+ height: 130px;
524
+ background: #ffffff;
525
+ border: 1px solid #e2e8f0;
526
+ border-radius: 12px;
527
+ padding: 6px;
528
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
529
+ display: flex;
530
+ align-items: center;
531
+ justify-content: center;
532
+ flex-shrink: 0;
533
+ position: relative;
534
+ }
535
+
536
+ .ypg-qr-image-box svg {
537
+ width: 100%;
538
+ height: 100%;
539
+ }
540
+
541
+ .ypg-qr-details-col {
542
+ display: flex;
543
+ flex-direction: column;
544
+ gap: 8px;
545
+ flex: 1;
546
+ overflow: hidden;
547
+ }
548
+
549
+ .ypg-qr-prompt-title {
550
+ font-size: 14px;
551
+ font-weight: 600;
552
+ color: var(--ypg-text-dark);
553
+ line-height: 1.3;
554
+ }
555
+
556
+ /* UPI Brand Logos */
557
+ .ypg-upi-logos-row {
558
+ display: flex;
559
+ align-items: center;
560
+ gap: 5px;
561
+ flex-wrap: wrap;
562
+ }
563
+
564
+ .ypg-app-icon {
565
+ width: 22px;
566
+ height: 22px;
567
+ border-radius: 50%;
568
+ display: flex;
569
+ align-items: center;
570
+ justify-content: center;
571
+ flex-shrink: 0;
572
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
573
+ }
574
+
575
+ .ypg-app-icon img,
576
+ .ypg-app-icon svg {
577
+ width: 100%;
578
+ height: 100%;
579
+ border-radius: 50%;
580
+ }
581
+
582
+ .ypg-green-pill-badge {
583
+ background: var(--ypg-green-bg);
584
+ color: var(--ypg-green);
585
+ font-size: 11px;
586
+ font-weight: 600;
587
+ padding: 2.5px 8px;
588
+ border-radius: 9999px;
589
+ align-self: flex-start;
590
+ display: inline-flex;
591
+ align-items: center;
592
+ gap: 4px;
593
+ }
594
+
595
+ /* Payee VPA & Copy Button */
596
+ .ypg-vpa-copy-row {
597
+ display: flex;
598
+ align-items: center;
599
+ gap: 6px;
600
+ margin-top: 2px;
601
+ }
602
+
603
+ .ypg-vpa-badge {
604
+ font-size: 11px;
605
+ font-weight: 600;
606
+ color: #475569;
607
+ background: #edf2f7;
608
+ padding: 2px 7px;
609
+ border-radius: 6px;
610
+ max-width: 140px;
611
+ overflow: hidden;
612
+ text-overflow: ellipsis;
613
+ white-space: nowrap;
614
+ }
615
+
616
+ .ypg-btn-mini-copy {
617
+ background: none;
618
+ border: 1px solid #cbd5e1;
619
+ border-radius: 5px;
620
+ font-size: 10px;
621
+ font-weight: 700;
622
+ color: #334155;
623
+ padding: 2px 6px;
624
+ cursor: pointer;
625
+ display: inline-flex;
626
+ align-items: center;
627
+ gap: 3px;
628
+ transition: all 0.15s;
629
+ }
630
+
631
+ .ypg-btn-mini-copy:hover {
632
+ border-color: var(--ypg-blue);
633
+ color: var(--ypg-blue);
634
+ }
635
+
636
+ .ypg-btn-mini-copy.copied {
637
+ background: #10b981;
638
+ border-color: #10b981;
639
+ color: #ffffff;
640
+ }
641
+
642
+ /* Live Observer Radar Strip */
643
+ .ypg-live-observer-strip {
644
+ background: #f0fdf4;
645
+ border: 1px solid #bbf7d0;
646
+ border-radius: 10px;
647
+ padding: 10px 14px;
648
+ display: flex;
649
+ align-items: center;
650
+ gap: 8px;
651
+ font-size: 12px;
652
+ font-weight: 600;
653
+ color: #166534;
654
+ margin-bottom: 14px;
655
+ }
656
+
657
+ .ypg-radar-dot {
658
+ width: 8px;
659
+ height: 8px;
660
+ border-radius: 50%;
661
+ background: #16a34a;
662
+ box-shadow: 0 0 0 0 rgba(22, 163, 74, 0.7);
663
+ animation: ypgPulseDot 1.8s infinite;
664
+ flex-shrink: 0;
665
+ }
666
+
667
+ @keyframes ypgPulseDot {
668
+ 0% {
669
+ transform: scale(0.95);
670
+ box-shadow: 0 0 0 0 rgba(22, 163, 74, 0.7);
671
+ }
672
+
673
+ 70% {
674
+ transform: scale(1);
675
+ box-shadow: 0 0 0 6px rgba(22, 163, 74, 0);
676
+ }
677
+
678
+ 100% {
679
+ transform: scale(0.95);
680
+ box-shadow: 0 0 0 0 rgba(22, 163, 74, 0);
681
+ }
682
+ }
683
+
684
+ /* UPI Instructions Card */
685
+ .ypg-instructions-card {
686
+ background: #ffffff;
687
+ border: 1px solid var(--ypg-border);
688
+ border-radius: 12px;
689
+ padding: 14px 16px;
690
+ margin-bottom: 16px;
691
+ }
692
+
693
+ .ypg-instruction-step {
694
+ display: flex;
695
+ align-items: flex-start;
696
+ gap: 10px;
697
+ margin-bottom: 8px;
698
+ font-size: 12.5px;
699
+ color: #334155;
700
+ }
701
+
702
+ .ypg-instruction-step:last-child {
703
+ margin-bottom: 0;
704
+ }
705
+
706
+ .ypg-step-num {
707
+ width: 18px;
708
+ height: 18px;
709
+ border-radius: 50%;
710
+ background: #eff6ff;
711
+ color: var(--ypg-blue);
712
+ font-size: 11px;
713
+ font-weight: 800;
714
+ display: flex;
715
+ align-items: center;
716
+ justify-content: center;
717
+ flex-shrink: 0;
718
+ margin-top: 1px;
719
+ }
720
+
721
+ /* Payment Method Selector Bar (Online / Offline Modalities) */
722
+ .ypg-method-selector-bar {
723
+ display: flex;
724
+ gap: 6px;
725
+ background: #f1f5f9;
726
+ padding: 4px;
727
+ border-radius: 10px;
728
+ margin-bottom: 14px;
729
+ border: 1px solid var(--ypg-border);
730
+ }
731
+
732
+ .ypg-method-tab {
733
+ flex: 1;
734
+ text-align: center;
735
+ padding: 7px 10px;
736
+ border-radius: 8px;
737
+ font-size: 11.5px;
738
+ font-weight: 700;
739
+ cursor: pointer;
740
+ border: none;
741
+ background: transparent;
742
+ color: #64748b;
743
+ transition: all 0.15s ease;
744
+ display: inline-flex;
745
+ align-items: center;
746
+ justify-content: center;
747
+ gap: 5px;
748
+ }
749
+
750
+ .ypg-method-tab:hover {
751
+ color: var(--ypg-navy);
752
+ }
753
+
754
+ .ypg-method-tab.active {
755
+ background: #ffffff;
756
+ color: var(--ypg-blue);
757
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
758
+ }
759
+
760
+ .ypg-tab-icon {
761
+ height: 14px;
762
+ width: auto;
763
+ object-fit: contain;
764
+ display: inline-block;
765
+ vertical-align: middle;
766
+ flex-shrink: 0;
767
+ }
768
+
769
+ .ypg-tab-icon-svg {
770
+ width: 14px;
771
+ height: 14px;
772
+ display: inline-block;
773
+ vertical-align: middle;
774
+ flex-shrink: 0;
775
+ }
776
+
777
+ .ypg-card-logos-combo {
778
+ display: inline-flex;
779
+ align-items: center;
780
+ gap: 3px;
781
+ vertical-align: middle;
782
+ flex-shrink: 0;
783
+ }
784
+
785
+ .ypg-card-logos-combo img {
786
+ height: 13px;
787
+ width: auto;
788
+ object-fit: contain;
789
+ display: inline-block;
790
+ }
791
+
792
+ /* --- 5. PRE-GATEWAY AUTH VIEW --- */
793
+ .ypg-auth-box {
794
+ background: #ffffff;
795
+ display: flex;
796
+ flex-direction: column;
797
+ gap: 14px;
798
+ margin-top: 4px;
799
+ }
800
+
801
+ .ypg-auth-sub-desc {
802
+ font-size: 12.5px;
803
+ color: var(--ypg-text-muted);
804
+ margin-bottom: 8px;
805
+ }
806
+
807
+ .ypg-auth-tab-row {
808
+ display: flex;
809
+ background: #f1f5f9;
810
+ border-radius: 8px;
811
+ padding: 3px;
812
+ }
813
+
814
+ .ypg-auth-tab-btn {
815
+ flex: 1;
816
+ padding: 8px 12px;
817
+ font-size: 12.5px;
818
+ font-weight: 700;
819
+ border: none;
820
+ border-radius: 6px;
821
+ background: transparent;
822
+ color: var(--ypg-text-muted);
823
+ cursor: pointer;
824
+ transition: all 0.15s;
825
+ }
826
+
827
+ .ypg-auth-tab-btn.active {
828
+ background: #ffffff;
829
+ color: var(--ypg-navy);
830
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
831
+ }
832
+
833
+ .ypg-input-group {
834
+ margin-bottom: 12px;
835
+ }
836
+
837
+ .ypg-input-label {
838
+ display: block;
839
+ font-size: 11px;
840
+ font-weight: 700;
841
+ color: var(--ypg-text-dark);
842
+ margin-bottom: 4px;
843
+ text-transform: uppercase;
844
+ letter-spacing: 0.3px;
845
+ }
846
+
847
+ .ypg-input-control {
848
+ width: 100%;
849
+ padding: 10px 12px;
850
+ border: 1px solid #cbd5e1;
851
+ border-radius: 8px;
852
+ font-size: 13.5px;
853
+ color: var(--ypg-text-dark);
854
+ outline: none;
855
+ transition: border-color 0.15s;
856
+ }
857
+
858
+ .ypg-input-control:focus {
859
+ border-color: var(--ypg-blue);
860
+ box-shadow: 0 0 0 3px rgba(11, 99, 229, 0.15);
861
+ }
862
+
863
+ .ypg-btn-auth-action {
864
+ width: 100%;
865
+ padding: 12px;
866
+ background: var(--ypg-navy);
867
+ color: #ffffff;
868
+ border: none;
869
+ border-radius: 8px;
870
+ font-size: 13.5px;
871
+ font-weight: 700;
872
+ cursor: pointer;
873
+ display: flex;
874
+ align-items: center;
875
+ justify-content: center;
876
+ gap: 6px;
877
+ transition: background 0.15s;
878
+ }
879
+
880
+ .ypg-btn-auth-action:hover {
881
+ background: #1e293b;
882
+ }
883
+
884
+ .ypg-btn-auth-action:disabled {
885
+ opacity: 0.65;
886
+ cursor: not-allowed;
887
+ }
888
+
889
+ .ypg-phone-input-wrap {
890
+ display: flex;
891
+ align-items: center;
892
+ border: 1px solid #cbd5e1;
893
+ border-radius: 8px;
894
+ overflow: hidden;
895
+ background: #ffffff;
896
+ transition: border-color 0.15s, box-shadow 0.15s;
897
+ }
898
+
899
+ .ypg-phone-input-wrap:focus-within {
900
+ border-color: var(--ypg-blue);
901
+ box-shadow: 0 0 0 3px rgba(11, 99, 229, 0.15);
902
+ }
903
+
904
+ .ypg-phone-prefix {
905
+ padding: 10px 12px;
906
+ background: #f8fafc;
907
+ border-right: 1px solid #e2e8f0;
908
+ font-size: 13.5px;
909
+ font-weight: 700;
910
+ color: var(--ypg-navy);
911
+ display: flex;
912
+ align-items: center;
913
+ gap: 6px;
914
+ user-select: none;
915
+ }
916
+
917
+ .ypg-phone-control {
918
+ border: none !important;
919
+ box-shadow: none !important;
920
+ padding: 10px 12px;
921
+ font-size: 14.5px;
922
+ font-weight: 600;
923
+ letter-spacing: 0.5px;
924
+ flex: 1;
925
+ }
926
+
927
+ .ypg-auth-badge-banner {
928
+ display: flex;
929
+ align-items: center;
930
+ justify-content: space-between;
931
+ background: #f0fdf4;
932
+ border: 1px solid #bbf7d0;
933
+ border-radius: 8px;
934
+ padding: 10px 12px;
935
+ margin-bottom: 12px;
936
+ font-size: 12.5px;
937
+ color: #166534;
938
+ }
939
+
940
+ .ypg-btn-link {
941
+ background: none;
942
+ border: none;
943
+ color: var(--ypg-blue);
944
+ font-weight: 700;
945
+ cursor: pointer;
946
+ font-size: 12px;
947
+ padding: 0;
948
+ text-decoration: underline;
949
+ }
950
+
951
+ .ypg-otp-control {
952
+ text-align: center;
953
+ font-size: 24px !important;
954
+ font-weight: 800 !important;
955
+ letter-spacing: 12px !important;
956
+ font-family: monospace;
957
+ padding: 12px !important;
958
+ }
959
+
960
+ .ypg-autootp-status-box {
961
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
962
+ border-radius: 8px;
963
+ }
964
+
965
+ @keyframes ypg-pulse {
966
+ 0%, 100% { opacity: 1; transform: scale(1); }
967
+ 50% { opacity: 0.55; transform: scale(1.12); }
968
+ }
969
+
970
+ .ypg-pulse {
971
+ animation: ypg-pulse 1.8s infinite ease-in-out;
972
+ }
973
+
974
+ /* Saved Accounts Carousel */
975
+ .ypg-saved-accs-wrapper {
976
+ background: #f8fafc;
977
+ border: 1px solid var(--ypg-border);
978
+ border-radius: 10px;
979
+ padding: 12px;
980
+ }
981
+
982
+ .saved-account-row {
983
+ background: #ffffff;
984
+ border: 1px solid var(--ypg-border);
985
+ border-radius: 8px;
986
+ padding: 10px 12px;
987
+ display: flex;
988
+ align-items: center;
989
+ justify-content: space-between;
990
+ margin-bottom: 8px;
991
+ cursor: pointer;
992
+ transition: all 0.15s;
993
+ }
994
+
995
+ .saved-account-row:hover {
996
+ border-color: var(--ypg-blue);
997
+ box-shadow: 0 2px 8px rgba(11, 99, 229, 0.12);
998
+ }
999
+
1000
+ /* --- 6. QUEUE SYSTEM VIEW --- */
1001
+ .ypg-queue-container {
1002
+ background: #eff6ff;
1003
+ border: 1px solid #bfdbfe;
1004
+ border-radius: 14px;
1005
+ padding: 28px 18px;
1006
+ text-align: center;
1007
+ margin: auto 0;
1008
+ }
1009
+
1010
+ .ypg-queue-number {
1011
+ font-size: 36px;
1012
+ font-weight: 900;
1013
+ color: #1d4ed8;
1014
+ margin: 8px 0;
1015
+ }
1016
+
1017
+ /* --- 7. PROCESSING / VERIFYING VIEW --- */
1018
+ .ypg-processing-box {
1019
+ text-align: center;
1020
+ padding: 40px 18px;
1021
+ margin: auto 0;
1022
+ display: flex;
1023
+ flex-direction: column;
1024
+ align-items: center;
1025
+ }
1026
+
1027
+ .ypg-double-spinner-box {
1028
+ position: relative;
1029
+ width: 72px;
1030
+ height: 72px;
1031
+ margin-bottom: 20px;
1032
+ }
1033
+
1034
+ .ypg-spin-ring-outer {
1035
+ position: absolute;
1036
+ top: 0;
1037
+ left: 0;
1038
+ width: 100%;
1039
+ height: 100%;
1040
+ border: 4px solid rgba(11, 99, 229, 0.15);
1041
+ border-radius: 50%;
1042
+ }
1043
+
1044
+ .ypg-spin-ring-inner {
1045
+ position: absolute;
1046
+ top: 0;
1047
+ left: 0;
1048
+ width: 100%;
1049
+ height: 100%;
1050
+ border: 4px solid transparent;
1051
+ border-top-color: var(--ypg-blue);
1052
+ border-radius: 50%;
1053
+ animation: ypgRotateRing 0.85s linear infinite;
1054
+ }
1055
+
1056
+ @keyframes ypgRotateRing {
1057
+ 0% {
1058
+ transform: rotate(0deg);
1059
+ }
1060
+
1061
+ 100% {
1062
+ transform: rotate(360deg);
1063
+ }
1064
+ }
1065
+
1066
+ .ypg-spin-center-icon {
1067
+ position: absolute;
1068
+ top: 50%;
1069
+ left: 50%;
1070
+ transform: translate(-50%, -50%);
1071
+ width: 28px;
1072
+ height: 28px;
1073
+ color: var(--ypg-blue);
1074
+ animation: ypgPulseCenter 1.5s ease-in-out infinite;
1075
+ }
1076
+
1077
+ @keyframes ypgPulseCenter {
1078
+
1079
+ 0%,
1080
+ 100% {
1081
+ transform: translate(-50%, -50%) scale(0.9);
1082
+ }
1083
+
1084
+ 50% {
1085
+ transform: translate(-50%, -50%) scale(1.1);
1086
+ }
1087
+ }
1088
+
1089
+ .ypg-processing-title {
1090
+ font-size: 16px;
1091
+ font-weight: 700;
1092
+ color: var(--ypg-text-dark);
1093
+ margin-bottom: 6px;
1094
+ }
1095
+
1096
+ .ypg-processing-sub {
1097
+ font-size: 12px;
1098
+ color: var(--ypg-text-muted);
1099
+ line-height: 1.5;
1100
+ max-width: 290px;
1101
+ margin-bottom: 14px;
1102
+ }
1103
+
1104
+ .ypg-proc-timer-badge {
1105
+ background: #f1f5f9;
1106
+ border: 1px solid #e2e8f0;
1107
+ border-radius: 9999px;
1108
+ padding: 3px 12px;
1109
+ font-size: 12px;
1110
+ font-weight: 700;
1111
+ color: #334155;
1112
+ }
1113
+
1114
+ /* --- 8. SUCCESS CELEBRATION VIEW --- */
1115
+ .ypg-success-box {
1116
+ text-align: center;
1117
+ padding: 36px 18px;
1118
+ margin: auto 0;
1119
+ display: flex;
1120
+ flex-direction: column;
1121
+ align-items: center;
1122
+ }
1123
+
1124
+ .ypg-success-circle {
1125
+ width: 76px;
1126
+ height: 76px;
1127
+ border-radius: 50%;
1128
+ background: #10b981;
1129
+ display: flex;
1130
+ align-items: center;
1131
+ justify-content: center;
1132
+ box-shadow: 0 10px 25px rgba(16, 185, 129, 0.4);
1133
+ margin-bottom: 18px;
1134
+ animation: ypgSpringPop 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
1135
+ }
1136
+
1137
+ @keyframes ypgSpringPop {
1138
+ 0% {
1139
+ transform: scale(0);
1140
+ opacity: 0;
1141
+ }
1142
+
1143
+ 70% {
1144
+ transform: scale(1.15);
1145
+ }
1146
+
1147
+ 100% {
1148
+ transform: scale(1);
1149
+ opacity: 1;
1150
+ }
1151
+ }
1152
+
1153
+ .ypg-check-svg {
1154
+ width: 42px;
1155
+ height: 42px;
1156
+ stroke: #ffffff;
1157
+ stroke-width: 3.5;
1158
+ stroke-linecap: round;
1159
+ stroke-linejoin: round;
1160
+ fill: none;
1161
+ }
1162
+
1163
+ .ypg-check-path {
1164
+ stroke-dasharray: 40;
1165
+ stroke-dashoffset: 40;
1166
+ animation: ypgDrawCheck 0.45s 0.25s forwards ease-in-out;
1167
+ }
1168
+
1169
+ @keyframes ypgDrawCheck {
1170
+ to {
1171
+ stroke-dashoffset: 0;
1172
+ }
1173
+ }
1174
+
1175
+ .ypg-success-title {
1176
+ font-size: 19px;
1177
+ font-weight: 800;
1178
+ color: #0f172a;
1179
+ margin-bottom: 4px;
1180
+ }
1181
+
1182
+ .ypg-success-amount {
1183
+ font-size: 24px;
1184
+ font-weight: 900;
1185
+ color: #10b981;
1186
+ margin-bottom: 8px;
1187
+ }
1188
+
1189
+ .btn-return-merchant {
1190
+ background: var(--ypg-navy);
1191
+ color: #ffffff;
1192
+ text-decoration: none;
1193
+ font-size: 13.5px;
1194
+ font-weight: 700;
1195
+ padding: 12px 26px;
1196
+ border-radius: 8px;
1197
+ margin-top: 14px;
1198
+ display: inline-block;
1199
+ }
1200
+
1201
+ /* --- 9. DEDICATED PAYMENT EXPIRED / FAILED VIEW (FIXED & CENTERED) --- */
1202
+ .ypg-expired-box {
1203
+ text-align: center;
1204
+ padding: 32px 18px;
1205
+ margin: auto 0;
1206
+ display: flex;
1207
+ flex-direction: column;
1208
+ align-items: center;
1209
+ background: #ffffff;
1210
+ border-radius: 16px;
1211
+ border: 1px solid var(--ypg-border);
1212
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
1213
+ }
1214
+
1215
+ .ypg-expired-icon-wrap {
1216
+ width: 68px;
1217
+ height: 68px;
1218
+ border-radius: 50%;
1219
+ background: #fee2e2;
1220
+ color: #ef4444;
1221
+ display: flex;
1222
+ align-items: center;
1223
+ justify-content: center;
1224
+ margin-bottom: 16px;
1225
+ box-shadow: 0 8px 16px rgba(239, 68, 68, 0.15);
1226
+ }
1227
+
1228
+ .ypg-expired-icon-wrap svg {
1229
+ width: 34px;
1230
+ height: 34px;
1231
+ }
1232
+
1233
+ .ypg-expired-title {
1234
+ font-size: 19px;
1235
+ font-weight: 800;
1236
+ color: #0f172a;
1237
+ margin-bottom: 6px;
1238
+ }
1239
+
1240
+ .ypg-expired-desc {
1241
+ font-size: 12.5px;
1242
+ color: var(--ypg-text-muted);
1243
+ max-width: 310px;
1244
+ margin: 0 auto 20px auto;
1245
+ line-height: 1.5;
1246
+ }
1247
+
1248
+ .ypg-expired-actions {
1249
+ display: flex;
1250
+ gap: 10px;
1251
+ justify-content: center;
1252
+ width: 100%;
1253
+ max-width: 300px;
1254
+ }
1255
+
1256
+ .ypg-btn-expired-primary {
1257
+ flex: 1;
1258
+ padding: 12px;
1259
+ background: var(--ypg-navy);
1260
+ color: #ffffff;
1261
+ border: none;
1262
+ border-radius: 8px;
1263
+ font-size: 13.5px;
1264
+ font-weight: 700;
1265
+ cursor: pointer;
1266
+ transition: background 0.15s;
1267
+ }
1268
+
1269
+ .ypg-btn-expired-primary:hover {
1270
+ background: #1e293b;
1271
+ }
1272
+
1273
+ .ypg-btn-expired-secondary {
1274
+ padding: 12px 16px;
1275
+ background: #f1f5f9;
1276
+ color: #475569;
1277
+ border: 1px solid #cbd5e1;
1278
+ border-radius: 8px;
1279
+ font-size: 13.5px;
1280
+ font-weight: 700;
1281
+ cursor: pointer;
1282
+ transition: background 0.15s;
1283
+ }
1284
+
1285
+ .ypg-btn-expired-secondary:hover {
1286
+ background: #e2e8f0;
1287
+ }
1288
+
1289
+ /* --- 10. DEDICATED FRAUD / SECURITY ALERT & ACCESS BLOCKED VIEW --- */
1290
+ .ypg-blocked-box {
1291
+ text-align: center;
1292
+ padding: 32px 20px;
1293
+ margin: auto 0;
1294
+ display: flex;
1295
+ flex-direction: column;
1296
+ align-items: center;
1297
+ background: #ffffff;
1298
+ border-radius: 16px;
1299
+ border: 1.5px solid #fecaca;
1300
+ box-shadow: 0 10px 30px rgba(220, 38, 38, 0.08);
1301
+ position: relative;
1302
+ overflow: hidden;
1303
+ }
1304
+ .ypg-blocked-box::before {
1305
+ content: '';
1306
+ position: absolute;
1307
+ top: 0;
1308
+ left: 0;
1309
+ right: 0;
1310
+ height: 4px;
1311
+ background: linear-gradient(90deg, #dc2626, #b91c1c, #991b1b);
1312
+ }
1313
+ .ypg-blocked-icon-wrap {
1314
+ width: 72px;
1315
+ height: 72px;
1316
+ border-radius: 50%;
1317
+ background: #fef2f2;
1318
+ border: 2px solid #fee2e2;
1319
+ color: #dc2626;
1320
+ display: flex;
1321
+ align-items: center;
1322
+ justify-content: center;
1323
+ margin-bottom: 16px;
1324
+ box-shadow: 0 8px 24px rgba(220, 38, 38, 0.16);
1325
+ animation: ypgPulseAlert 2s infinite ease-in-out;
1326
+ }
1327
+ @keyframes ypgPulseAlert {
1328
+ 0%, 100% { transform: scale(1); box-shadow: 0 8px 24px rgba(220, 38, 38, 0.16); }
1329
+ 50% { transform: scale(1.05); box-shadow: 0 12px 30px rgba(220, 38, 38, 0.28); }
1330
+ }
1331
+ .ypg-blocked-badge {
1332
+ display: inline-flex;
1333
+ align-items: center;
1334
+ gap: 6px;
1335
+ background: #fef2f2;
1336
+ color: #b91c1c;
1337
+ border: 1px solid #fca5a5;
1338
+ font-size: 11px;
1339
+ font-weight: 800;
1340
+ letter-spacing: 0.06em;
1341
+ text-transform: uppercase;
1342
+ padding: 4px 10px;
1343
+ border-radius: 20px;
1344
+ margin-bottom: 10px;
1345
+ }
1346
+ .ypg-blocked-badge-dot {
1347
+ width: 7px;
1348
+ height: 7px;
1349
+ border-radius: 50%;
1350
+ background: #dc2626;
1351
+ box-shadow: 0 0 6px #dc2626;
1352
+ animation: rzpHaloPulse 1.2s infinite;
1353
+ }
1354
+ .ypg-blocked-title {
1355
+ font-size: 20px;
1356
+ font-weight: 800;
1357
+ color: #991b1b;
1358
+ margin-bottom: 6px;
1359
+ letter-spacing: -0.01em;
1360
+ }
1361
+ .ypg-blocked-subtitle {
1362
+ font-size: 13px;
1363
+ font-weight: 600;
1364
+ color: #475569;
1365
+ margin-bottom: 14px;
1366
+ }
1367
+ .ypg-blocked-card {
1368
+ background: #f8fafc;
1369
+ border: 1px solid #e2e8f0;
1370
+ border-radius: 12px;
1371
+ padding: 14px 16px;
1372
+ margin-bottom: 18px;
1373
+ width: 100%;
1374
+ max-width: 340px;
1375
+ text-align: left;
1376
+ }
1377
+ .ypg-blocked-desc {
1378
+ font-size: 12px;
1379
+ color: #334155;
1380
+ line-height: 1.55;
1381
+ margin: 0;
1382
+ }
1383
+ .ypg-blocked-investigation {
1384
+ margin-top: 10px;
1385
+ padding-top: 10px;
1386
+ border-top: 1px dashed #cbd5e1;
1387
+ display: flex;
1388
+ align-items: flex-start;
1389
+ gap: 8px;
1390
+ font-size: 11.5px;
1391
+ color: #64748b;
1392
+ line-height: 1.45;
1393
+ }
1394
+ .ypg-blocked-details {
1395
+ background: #0f172a;
1396
+ border-radius: 8px;
1397
+ padding: 10px 14px;
1398
+ margin-bottom: 18px;
1399
+ width: 100%;
1400
+ max-width: 340px;
1401
+ display: grid;
1402
+ grid-template-columns: auto 1fr;
1403
+ gap: 4px 10px;
1404
+ font-size: 11px;
1405
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1406
+ }
1407
+ .ypg-blocked-details-label {
1408
+ color: #94a3b8;
1409
+ }
1410
+ .ypg-blocked-details-val {
1411
+ color: #f8fafc;
1412
+ text-align: right;
1413
+ overflow: hidden;
1414
+ text-overflow: ellipsis;
1415
+ white-space: nowrap;
1416
+ }
1417
+ .ypg-btn-blocked-exit {
1418
+ background: #0f172a;
1419
+ color: #ffffff;
1420
+ border: none;
1421
+ padding: 11px 20px;
1422
+ border-radius: 10px;
1423
+ font-weight: 700;
1424
+ font-size: 13px;
1425
+ cursor: pointer;
1426
+ width: 100%;
1427
+ max-width: 340px;
1428
+ display: flex;
1429
+ align-items: center;
1430
+ justify-content: center;
1431
+ gap: 6px;
1432
+ transition: all 0.2s;
1433
+ }
1434
+ .ypg-btn-blocked-exit:hover {
1435
+ background: #1e293b;
1436
+ }
1437
+
1438
+ /* --- 10b. DEDICATED DUPLICATE SESSION DETECTED VIEW (DEVICE BINDING SECURITY) --- */
1439
+ .ypg-duplicate-box {
1440
+ display: flex;
1441
+ flex-direction: column;
1442
+ align-items: center;
1443
+ text-align: center;
1444
+ padding: 24px 20px;
1445
+ animation: rzpFadeIn 0.3s cubic-bezier(0.16, 1, 0.3, 1);
1446
+ width: 100%;
1447
+ box-sizing: border-box;
1448
+ position: relative;
1449
+ }
1450
+ .ypg-duplicate-badge {
1451
+ display: inline-flex;
1452
+ align-items: center;
1453
+ gap: 6px;
1454
+ background: #fef3c7;
1455
+ color: #92400e;
1456
+ border: 1px solid #fde68a;
1457
+ padding: 4px 12px;
1458
+ border-radius: 20px;
1459
+ font-size: 11px;
1460
+ font-weight: 700;
1461
+ text-transform: uppercase;
1462
+ letter-spacing: 0.05em;
1463
+ margin-bottom: 16px;
1464
+ }
1465
+ .ypg-duplicate-badge-dot {
1466
+ width: 7px;
1467
+ height: 7px;
1468
+ border-radius: 50%;
1469
+ background: #d97706;
1470
+ box-shadow: 0 0 6px #d97706;
1471
+ animation: rzpHaloPulse 1.2s infinite;
1472
+ }
1473
+ .ypg-duplicate-icon-wrap {
1474
+ width: 64px;
1475
+ height: 64px;
1476
+ border-radius: 50%;
1477
+ background: radial-gradient(circle, #fef3c7 0%, #fffbeb 100%);
1478
+ border: 2px solid #fcd34d;
1479
+ color: #b45309;
1480
+ display: flex;
1481
+ align-items: center;
1482
+ justify-content: center;
1483
+ margin-bottom: 14px;
1484
+ box-shadow: 0 4px 16px rgba(217, 119, 6, 0.15);
1485
+ }
1486
+ .ypg-duplicate-title {
1487
+ font-size: 20px;
1488
+ font-weight: 800;
1489
+ color: #1e293b;
1490
+ margin-bottom: 6px;
1491
+ letter-spacing: -0.01em;
1492
+ }
1493
+ .ypg-duplicate-subtitle {
1494
+ font-size: 13px;
1495
+ font-weight: 600;
1496
+ color: #64748b;
1497
+ margin-bottom: 16px;
1498
+ }
1499
+ .ypg-duplicate-card {
1500
+ background: #fffbeb;
1501
+ border: 1px solid #fef08a;
1502
+ border-radius: 12px;
1503
+ padding: 16px 18px;
1504
+ margin-bottom: 22px;
1505
+ width: 100%;
1506
+ max-width: 360px;
1507
+ text-align: center;
1508
+ }
1509
+ .ypg-duplicate-desc {
1510
+ font-size: 13px;
1511
+ color: #1e293b;
1512
+ line-height: 1.55;
1513
+ margin: 0;
1514
+ font-weight: 500;
1515
+ }
1516
+ .ypg-btn-duplicate-action {
1517
+ background: #0f172a;
1518
+ color: #ffffff;
1519
+ border: none;
1520
+ padding: 13px 20px;
1521
+ border-radius: 10px;
1522
+ font-weight: 700;
1523
+ font-size: 13px;
1524
+ cursor: pointer;
1525
+ width: 100%;
1526
+ box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
1527
+ transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
1528
+ display: flex;
1529
+ align-items: center;
1530
+ justify-content: center;
1531
+ letter-spacing: 0.02em;
1532
+ }
1533
+ .ypg-btn-duplicate-action:hover {
1534
+ background: #1e293b;
1535
+ transform: translateY(-1px);
1536
+ box-shadow: 0 6px 16px rgba(15, 23, 42, 0.25);
1537
+ }
1538
+ .ypg-btn-duplicate-action:active {
1539
+ transform: translateY(0);
1540
+ }
1541
+
1542
+ /* --- 11. AUTHENTIC STICKY BOTTOM FOOTER --- */
1543
+ .ypg-sticky-footer {
1544
+ background: #ffffff;
1545
+ border-top: 1px solid #f1f5f9;
1546
+ display: flex;
1547
+ flex-direction: column;
1548
+ flex-shrink: 0;
1549
+ position: relative;
1550
+ z-index: 20;
1551
+ }
1552
+
1553
+ /* Legal Disclaimer */
1554
+ .ypg-legal-disclaimer {
1555
+ font-size: 11px;
1556
+ color: #64748b;
1557
+ text-align: center;
1558
+ padding: 4px 16px;
1559
+ line-height: 1.35;
1560
+ }
1561
+
1562
+ /* Bottom Action Row (₹5,500 View Details | Continue Button) */
1563
+ .ypg-action-bottom-bar {
1564
+ padding: 10px 16px 14px 16px;
1565
+ display: flex;
1566
+ align-items: center;
1567
+ justify-content: space-between;
1568
+ gap: 12px;
1569
+ }
1570
+
1571
+ .ypg-amount-view-group {
1572
+ display: flex;
1573
+ flex-direction: column;
1574
+ }
1575
+
1576
+ .ypg-bottom-price {
1577
+ font-size: 18px;
1578
+ font-weight: 800;
1579
+ color: #0f172a;
1580
+ letter-spacing: -0.01em;
1581
+ line-height: 1.2;
1582
+ }
1583
+
1584
+ .ypg-btn-view-details {
1585
+ background: none;
1586
+ border: none;
1587
+ font-size: 11px;
1588
+ font-weight: 600;
1589
+ color: #64748b;
1590
+ cursor: pointer;
1591
+ display: inline-flex;
1592
+ align-items: center;
1593
+ gap: 3px;
1594
+ padding: 0;
1595
+ margin-top: 2px;
1596
+ }
1597
+
1598
+ .ypg-btn-view-details:hover {
1599
+ color: var(--ypg-blue);
1600
+ }
1601
+
1602
+ .ypg-btn-continue {
1603
+ background: var(--ypg-navy);
1604
+ color: #ffffff;
1605
+ border: none;
1606
+ border-radius: 8px;
1607
+ padding: 12px 34px;
1608
+ font-size: 14.5px;
1609
+ font-weight: 700;
1610
+ cursor: pointer;
1611
+ transition: background 0.15s, transform 0.1s;
1612
+ }
1613
+
1614
+ .ypg-btn-continue:hover {
1615
+ background: #1e293b;
1616
+ }
1617
+
1618
+ .ypg-btn-continue:active {
1619
+ transform: scale(0.98);
1620
+ }
1621
+
1622
+ /* --- ORDER BREAKDOWN POPUP DRAWER --- */
1623
+ .ypg-details-drawer {
1624
+ position: absolute;
1625
+ bottom: 0;
1626
+ left: 0;
1627
+ width: 100%;
1628
+ background: #ffffff;
1629
+ border-top-left-radius: 16px;
1630
+ border-top-right-radius: 16px;
1631
+ box-shadow: 0 -8px 25px rgba(0, 0, 0, 0.15);
1632
+ border-top: 1px solid var(--ypg-border);
1633
+ padding: 16px 18px;
1634
+ z-index: 30;
1635
+ transform: translateY(100%);
1636
+ transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
1637
+ }
1638
+
1639
+ .ypg-details-drawer.open {
1640
+ transform: translateY(0);
1641
+ }
1642
+
1643
+ .ypg-details-header {
1644
+ display: flex;
1645
+ align-items: center;
1646
+ justify-content: space-between;
1647
+ margin-bottom: 12px;
1648
+ font-size: 14px;
1649
+ font-weight: 700;
1650
+ }
1651
+
1652
+ .ypg-details-row {
1653
+ display: flex;
1654
+ justify-content: space-between;
1655
+ font-size: 12.5px;
1656
+ color: #475569;
1657
+ margin-bottom: 6px;
1658
+ }
1659
+
1660
+ .ypg-details-row.total {
1661
+ border-top: 1px dashed var(--ypg-border);
1662
+ padding-top: 8px;
1663
+ font-size: 14px;
1664
+ font-weight: 800;
1665
+ color: #0f172a;
1666
+ }
1667
+
1668
+ /* Toast Notification */
1669
+ .ypg-toast {
1670
+ position: absolute;
1671
+ top: 16px;
1672
+ left: 50%;
1673
+ transform: translateX(-50%) translateY(-20px);
1674
+ background: #1e293b;
1675
+ color: #ffffff;
1676
+ padding: 8px 16px;
1677
+ border-radius: 9999px;
1678
+ font-size: 12px;
1679
+ font-weight: 600;
1680
+ opacity: 0;
1681
+ pointer-events: none;
1682
+ transition: all 0.25s ease-out;
1683
+ z-index: 1000;
1684
+ white-space: nowrap;
1685
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
1686
+ }
1687
+
1688
+ .ypg-toast.show {
1689
+ transform: translateX(-50%) translateY(0);
1690
+ opacity: 1;
1691
+ }
1692
+
1693
+ /* Help Modal Overlay */
1694
+ .ypg-dialog-overlay {
1695
+ position: absolute;
1696
+ top: 0;
1697
+ left: 0;
1698
+ width: 100%;
1699
+ height: 100%;
1700
+ background: rgba(15, 23, 42, 0.6);
1701
+ backdrop-filter: blur(4px);
1702
+ z-index: 200;
1703
+ display: flex;
1704
+ align-items: center;
1705
+ justify-content: center;
1706
+ padding: 16px;
1707
+ }
1708
+
1709
+ .ypg-dialog-overlay[hidden] {
1710
+ display: none !important;
1711
+ }
1712
+
1713
+ .ypg-dialog-card {
1714
+ background: #ffffff;
1715
+ border-radius: 12px;
1716
+ width: 100%;
1717
+ max-width: 360px;
1718
+ padding: 18px;
1719
+ }
1720
+
1721
+ /* --- AUTHENTIC RAZORPAY 3D RUNNING COIN & MODAL SHEETS --- */
1722
+ .rzp-coin-stage {
1723
+ position: relative;
1724
+ width: 84px;
1725
+ height: 84px;
1726
+ margin: 8px auto;
1727
+ display: flex;
1728
+ align-items: center;
1729
+ justify-content: center;
1730
+ perspective: 600px;
1731
+ }
1732
+
1733
+ .rzp-halo-ring {
1734
+ position: absolute;
1735
+ width: 76px;
1736
+ height: 76px;
1737
+ border-radius: 50%;
1738
+ border: 2px solid rgba(254, 240, 138, 0.45);
1739
+ box-shadow: 0 0 16px rgba(250, 204, 21, 0.28), inset 0 0 10px rgba(250, 204, 21, 0.18);
1740
+ animation: rzpHaloPulse 2.2s ease-in-out infinite;
1741
+ }
1742
+
1743
+ @keyframes rzpHaloPulse {
1744
+
1745
+ 0%,
1746
+ 100% {
1747
+ transform: scale(0.95);
1748
+ opacity: 0.55;
1749
+ }
1750
+
1751
+ 50% {
1752
+ transform: scale(1.05);
1753
+ opacity: 0.95;
1754
+ }
1755
+ }
1756
+
1757
+ .rzp-3d-coin {
1758
+ width: 54px;
1759
+ height: 54px;
1760
+ position: relative;
1761
+ transform-style: preserve-3d;
1762
+ animation: rzpCoinSpin 1.5s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
1763
+ }
1764
+
1765
+ @keyframes rzpCoinSpin {
1766
+ 0% {
1767
+ transform: rotateY(0deg);
1768
+ }
1769
+
1770
+ 50% {
1771
+ transform: rotateY(180deg);
1772
+ }
1773
+
1774
+ 100% {
1775
+ transform: rotateY(360deg);
1776
+ }
1777
+ }
1778
+
1779
+ .rzp-coin-face {
1780
+ position: absolute;
1781
+ inset: 0;
1782
+ border-radius: 50%;
1783
+ backface-visibility: hidden;
1784
+ background: radial-gradient(circle at 35% 35%, #fff9c4 0%, #fbc02d 42%, #f57f17 82%, #d97706 100%);
1785
+ border: 3.5px solid #fff59d;
1786
+ box-shadow: 0 4px 14px rgba(217, 119, 6, 0.3), inset 0 1.5px 3px rgba(255, 255, 255, 0.7);
1787
+ display: flex;
1788
+ align-items: center;
1789
+ justify-content: center;
1790
+ }
1791
+
1792
+ .rzp-coin-back {
1793
+ transform: rotateY(180deg);
1794
+ }
1795
+
1796
+ .rzp-coin-inner-rim {
1797
+ width: 38px;
1798
+ height: 38px;
1799
+ border-radius: 50%;
1800
+ background: radial-gradient(circle at 38% 38%, #ffd54f 0%, #fbc02d 55%, #f57f17 100%);
1801
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.18);
1802
+ position: relative;
1803
+ overflow: hidden;
1804
+ }
1805
+
1806
+ .rzp-coin-sheen {
1807
+ position: absolute;
1808
+ inset: 0;
1809
+ border-radius: 50%;
1810
+ background: linear-gradient(135deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0) 50%);
1811
+ pointer-events: none;
1812
+ }
1813
+
1814
+ /* Compact Coin for Inline Waiting Card */
1815
+ .rzp-coin-stage-inline {
1816
+ position: relative;
1817
+ width: 54px;
1818
+ height: 54px;
1819
+ flex-shrink: 0;
1820
+ display: flex;
1821
+ align-items: center;
1822
+ justify-content: center;
1823
+ perspective: 500px;
1824
+ }
1825
+
1826
+ .rzp-coin-stage-inline .rzp-halo-ring {
1827
+ width: 50px;
1828
+ height: 50px;
1829
+ border-width: 1.5px;
1830
+ }
1831
+
1832
+ .rzp-coin-stage-inline .rzp-3d-coin {
1833
+ width: 36px;
1834
+ height: 36px;
1835
+ }
1836
+
1837
+ .rzp-coin-stage-inline .rzp-coin-face {
1838
+ border-width: 2.5px;
1839
+ }
1840
+
1841
+ .rzp-coin-stage-inline .rzp-coin-inner-rim {
1842
+ width: 24px;
1843
+ height: 24px;
1844
+ }
1845
+
1846
+ /* Inline Waiting Card (on UPI QR page) */
1847
+ .rzp-inline-waiting-card {
1848
+ margin: 14px 0;
1849
+ padding: 14px 16px;
1850
+ background: #ffffff;
1851
+ border: 1.5px solid #fde047;
1852
+ border-radius: 14px;
1853
+ display: flex;
1854
+ align-items: center;
1855
+ gap: 14px;
1856
+ box-shadow: 0 4px 14px rgba(234, 179, 8, 0.15);
1857
+ position: relative;
1858
+ overflow: hidden;
1859
+ text-align: left;
1860
+ }
1861
+
1862
+ .rzp-inline-waiting-card::before {
1863
+ content: '';
1864
+ position: absolute;
1865
+ top: 0;
1866
+ left: 0;
1867
+ right: 0;
1868
+ height: 3px;
1869
+ background: linear-gradient(90deg, #f59e0b, #eab308, #f59e0b);
1870
+ background-size: 200% 100%;
1871
+ animation: rzpGlowBar 2s linear infinite;
1872
+ }
1873
+
1874
+ @keyframes rzpGlowBar {
1875
+ 0% {
1876
+ background-position: 0% 50%;
1877
+ }
1878
+
1879
+ 100% {
1880
+ background-position: 200% 50%;
1881
+ }
1882
+ }
1883
+
1884
+ /* Full-Screen Bottom Sheet / Dialog Modals */
1885
+ .rzp-sheet-backdrop {
1886
+ position: fixed;
1887
+ inset: 0;
1888
+ width: 100%;
1889
+ height: 100%;
1890
+ height: 100dvh;
1891
+ background: rgba(15, 23, 42, 0.65);
1892
+ backdrop-filter: blur(5px);
1893
+ -webkit-backdrop-filter: blur(5px);
1894
+ z-index: 99999;
1895
+ display: flex;
1896
+ align-items: flex-end;
1897
+ justify-content: center;
1898
+ opacity: 0;
1899
+ pointer-events: none;
1900
+ transition: opacity 0.25s ease-out;
1901
+ overflow: hidden;
1902
+ }
1903
+
1904
+ @media (min-width: 601px) {
1905
+ .rzp-sheet-backdrop {
1906
+ align-items: center;
1907
+ }
1908
+ }
1909
+
1910
+ .rzp-sheet-backdrop.active {
1911
+ opacity: 1;
1912
+ pointer-events: auto;
1913
+ }
1914
+
1915
+ .rzp-sheet-dialog {
1916
+ width: 100%;
1917
+ max-width: 440px;
1918
+ max-height: 88dvh;
1919
+ max-height: 88vh;
1920
+ background: #ffffff;
1921
+ border-top-left-radius: 20px;
1922
+ border-top-right-radius: 20px;
1923
+ box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.35);
1924
+ overflow-y: auto !important;
1925
+ -webkit-overflow-scrolling: touch !important;
1926
+ overscroll-behavior-y: contain !important;
1927
+ transform: translateY(100%);
1928
+ transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
1929
+ display: flex;
1930
+ flex-direction: column;
1931
+ position: relative;
1932
+ }
1933
+
1934
+ @media (min-width: 601px) {
1935
+ .rzp-sheet-dialog {
1936
+ border-radius: 20px;
1937
+ max-height: 85vh;
1938
+ transform: translateY(20px) scale(0.98);
1939
+ }
1940
+
1941
+ .rzp-sheet-backdrop.active .rzp-sheet-dialog {
1942
+ transform: translateY(0) scale(1);
1943
+ }
1944
+ }
1945
+
1946
+ .rzp-sheet-backdrop.active .rzp-sheet-dialog {
1947
+ transform: translateY(0);
1948
+ }
1949
+
1950
+ .rzp-sheet-content {
1951
+ padding: 16px 20px 20px;
1952
+ display: flex;
1953
+ flex-direction: column;
1954
+ align-items: center;
1955
+ text-align: center;
1956
+ width: 100%;
1957
+ box-sizing: border-box;
1958
+ }
1959
+
1960
+ .rzp-sheet-title {
1961
+ font-size: 19px;
1962
+ font-weight: 800;
1963
+ color: #0f172a;
1964
+ letter-spacing: -0.3px;
1965
+ margin-bottom: 4px;
1966
+ }
1967
+
1968
+ .rzp-sheet-subtitle {
1969
+ font-size: 13px;
1970
+ color: #64748b;
1971
+ margin-bottom: 6px;
1972
+ line-height: 1.4;
1973
+ }
1974
+
1975
+ .rzp-sheet-cancel-btn {
1976
+ width: 100%;
1977
+ height: 42px;
1978
+ background: #ffffff;
1979
+ border: 1.5px solid #e2e8f0;
1980
+ border-radius: 10px;
1981
+ font-size: 14px;
1982
+ font-weight: 700;
1983
+ color: #0b63e5;
1984
+ cursor: pointer;
1985
+ margin-top: 14px;
1986
+ transition: all 0.2s;
1987
+ }
1988
+
1989
+ .rzp-sheet-cancel-btn:hover {
1990
+ background: #f8fafc;
1991
+ border-color: #cbd5e1;
1992
+ }
1993
+
1994
+ /* Cancel Modal Header Arc with Doors */
1995
+ .rzp-cancel-header-arc {
1996
+ width: 120%;
1997
+ height: 80px;
1998
+ background: #dbeafe;
1999
+ border-bottom-left-radius: 50% 28px;
2000
+ border-bottom-right-radius: 50% 28px;
2001
+ display: flex;
2002
+ align-items: flex-end;
2003
+ justify-content: center;
2004
+ padding-bottom: 6px;
2005
+ position: relative;
2006
+ margin-left: -10%;
2007
+ margin-right: -10%;
2008
+ }
2009
+
2010
+ .rzp-btn-sheet-close {
2011
+ position: absolute;
2012
+ top: 12px;
2013
+ right: calc(10% + 12px);
2014
+ width: 30px;
2015
+ height: 30px;
2016
+ border-radius: 50%;
2017
+ background: rgba(255, 255, 255, 0.7);
2018
+ border: none;
2019
+ color: #334155;
2020
+ font-size: 15px;
2021
+ display: flex;
2022
+ align-items: center;
2023
+ justify-content: center;
2024
+ cursor: pointer;
2025
+ transition: background 0.15s;
2026
+ }
2027
+
2028
+ .rzp-btn-sheet-close:hover {
2029
+ background: rgba(255, 255, 255, 0.95);
2030
+ }
2031
+
2032
+ .rzp-btn-wait {
2033
+ width: 100%;
2034
+ height: 42px;
2035
+ background: #ffffff;
2036
+ border: 1.5px solid #e2e8f0;
2037
+ border-radius: 10px;
2038
+ font-size: 14px;
2039
+ font-weight: 700;
2040
+ color: #0f172a;
2041
+ cursor: pointer;
2042
+ margin-top: 14px;
2043
+ transition: all 0.2s;
2044
+ }
2045
+
2046
+ .rzp-btn-wait:hover {
2047
+ background: #f8fafc;
2048
+ }
2049
+
2050
+ .rzp-btn-confirm-cancel {
2051
+ width: 100%;
2052
+ height: 42px;
2053
+ background: #0f172a;
2054
+ border: none;
2055
+ border-radius: 10px;
2056
+ font-size: 14px;
2057
+ font-weight: 700;
2058
+ color: #ffffff;
2059
+ cursor: pointer;
2060
+ margin-top: 8px;
2061
+ transition: all 0.2s;
2062
+ }
2063
+
2064
+ .rzp-btn-confirm-cancel:hover {
2065
+ background: #1e293b;
2066
+ }
2067
+
2068
+ .rzp-secured-by {
2069
+ font-size: 12px;
2070
+ color: #64748b;
2071
+ margin-top: 22px;
2072
+ display: flex;
2073
+ align-items: center;
2074
+ gap: 5px;
2075
+ }
2076
+
2077
+ /* --- PSYCHOLOGICAL TIME-SAVING CONVERSION BANNER --- */
2078
+ .ypg-time-saving-banner {
2079
+ background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
2080
+ border: 1px solid #86efac;
2081
+ border-radius: 10px;
2082
+ padding: 10px 14px;
2083
+ margin-bottom: 14px;
2084
+ display: flex;
2085
+ align-items: center;
2086
+ justify-content: space-between;
2087
+ gap: 12px;
2088
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
2089
+ }
2090
+
2091
+ .ypg-time-saving-text {
2092
+ font-size: 12px;
2093
+ font-weight: 700;
2094
+ color: #14532d;
2095
+ line-height: 1.4;
2096
+ flex: 1;
2097
+ }
2098
+
2099
+ .ypg-banner-running-timer {
2100
+ font-family: monospace;
2101
+ font-size: 13px;
2102
+ font-weight: 800;
2103
+ color: #15803d;
2104
+ background: rgba(255, 255, 255, 0.85);
2105
+ padding: 1px 6px;
2106
+ border-radius: 4px;
2107
+ border: 1px solid #bbf7d0;
2108
+ display: inline-block;
2109
+ letter-spacing: 0.5px;
2110
+ }
2111
+
2112
+ .ypg-btn-fast-switch {
2113
+ background: linear-gradient(135deg, #10b981 0%, #059669 100%);
2114
+ color: #ffffff;
2115
+ border: none;
2116
+ border-radius: 8px;
2117
+ padding: 8px 12px;
2118
+ font-size: 11.5px;
2119
+ font-weight: 700;
2120
+ cursor: pointer;
2121
+ white-space: nowrap;
2122
+ flex-shrink: 0;
2123
+ box-shadow: 0 2px 6px rgba(16, 185, 129, 0.28);
2124
+ transition: background 0.15s, transform 0.15s, box-shadow 0.15s;
2125
+ display: inline-flex;
2126
+ align-items: center;
2127
+ gap: 4px;
2128
+ }
2129
+
2130
+ .ypg-btn-fast-switch:hover {
2131
+ background: linear-gradient(135deg, #059669 0%, #047857 100%);
2132
+ transform: translateY(-1px);
2133
+ box-shadow: 0 4px 10px rgba(16, 185, 129, 0.35);
2134
+ }
2135
+
2136
+ /* Dedicated Psychological Conversion Card in UPI Queue View */
2137
+ .ypg-queue-conversion-card {
2138
+ background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
2139
+ border: 1px solid #86efac;
2140
+ border-radius: 12px;
2141
+ padding: 14px 16px;
2142
+ margin-bottom: 14px;
2143
+ box-shadow: 0 2px 8px rgba(16, 185, 129, 0.12);
2144
+ text-align: left;
2145
+ }
2146
+
2147
+ .ypg-queue-conversion-header {
2148
+ display: flex;
2149
+ align-items: center;
2150
+ justify-content: space-between;
2151
+ gap: 10px;
2152
+ margin-bottom: 8px;
2153
+ }
2154
+
2155
+ .ypg-queue-conversion-badge {
2156
+ font-size: 11.5px;
2157
+ font-weight: 800;
2158
+ color: #065f46;
2159
+ text-transform: uppercase;
2160
+ letter-spacing: 0.5px;
2161
+ display: flex;
2162
+ align-items: center;
2163
+ gap: 4px;
2164
+ }
2165
+
2166
+ .ypg-queue-conversion-pill {
2167
+ font-size: 11.5px;
2168
+ font-weight: 700;
2169
+ color: #15803d;
2170
+ background: rgba(255, 255, 255, 0.9);
2171
+ padding: 2px 8px;
2172
+ border-radius: 12px;
2173
+ border: 1px solid #bbf7d0;
2174
+ white-space: nowrap;
2175
+ }
2176
+
2177
+ .ypg-queue-conversion-text {
2178
+ font-size: 12.5px;
2179
+ line-height: 1.45;
2180
+ color: #14532d;
2181
+ margin-bottom: 12px;
2182
+ }
2183
+
2184
+ .ypg-btn-queue-switch {
2185
+ width: 100%;
2186
+ height: 42px;
2187
+ background: linear-gradient(135deg, #10b981 0%, #059669 100%);
2188
+ color: #ffffff;
2189
+ border: none;
2190
+ border-radius: 9px;
2191
+ font-size: 13px;
2192
+ font-weight: 700;
2193
+ cursor: pointer;
2194
+ display: flex;
2195
+ align-items: center;
2196
+ justify-content: center;
2197
+ gap: 8px;
2198
+ box-shadow: 0 2px 6px rgba(16, 185, 129, 0.28);
2199
+ transition: background 0.15s, transform 0.15s, box-shadow 0.15s;
2200
+ }
2201
+
2202
+ .ypg-btn-queue-switch:hover {
2203
+ background: linear-gradient(135deg, #059669 0%, #047857 100%);
2204
+ transform: translateY(-1px);
2205
+ box-shadow: 0 4px 12px rgba(16, 185, 129, 0.35);
2206
+ }
2207
+
2208
+ /* --- DESKTOP / PC SPECIFIC 2-COLUMN RAZORPAY REDESIGN --- */
2209
+ @media (min-width: 768px) {
2210
+ body {
2211
+ padding: 0;
2212
+ margin: 0;
2213
+ display: flex;
2214
+ align-items: center;
2215
+ justify-content: center;
2216
+ background-color: #0b0f19;
2217
+ }
2218
+
2219
+ body:not(.is-embedded) {
2220
+ padding: 20px;
2221
+ }
2222
+
2223
+ .ypg-wrapper {
2224
+ width: 900px !important;
2225
+ max-width: 95vw !important;
2226
+ height: 600px !important;
2227
+ max-height: 92vh !important;
2228
+ border-radius: 16px !important;
2229
+ display: flex !important;
2230
+ flex-direction: row !important;
2231
+ box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5) !important;
2232
+ overflow: hidden !important;
2233
+ position: relative !important;
2234
+ }
2235
+
2236
+ body.is-embedded .ypg-wrapper {
2237
+ width: 100% !important;
2238
+ max-width: 100% !important;
2239
+ height: 100% !important;
2240
+ min-height: 100% !important;
2241
+ border-radius: 16px !important;
2242
+ }
2243
+
2244
+ .ypg-header {
2245
+ display: none !important;
2246
+ }
2247
+
2248
+ .ypg-drag-handle-bar {
2249
+ display: none !important;
2250
+ }
2251
+
2252
+ .ypg-action-bottom-bar {
2253
+ display: none !important;
2254
+ }
2255
+
2256
+ .ypg-footer {
2257
+ display: none !important;
2258
+ }
2259
+
2260
+ /* PC Left Sidebar (Blue Branding Panel - ~310px width) */
2261
+ .ypg-pc-sidebar {
2262
+ width: 310px;
2263
+ min-width: 310px;
2264
+ max-width: 310px;
2265
+ height: 100%;
2266
+ background: linear-gradient(180deg, var(--ypg-blue, #0b63e5) 0%, var(--ypg-blue-dark, #0854c6) 100%);
2267
+ padding: 22px 20px;
2268
+ display: flex !important;
2269
+ flex-direction: column;
2270
+ justify-content: space-between;
2271
+ color: #ffffff;
2272
+ position: relative;
2273
+ overflow: hidden;
2274
+ box-sizing: border-box;
2275
+ }
2276
+
2277
+ .ypg-pc-brand-header {
2278
+ display: flex;
2279
+ align-items: center;
2280
+ gap: 12px;
2281
+ margin-bottom: 12px;
2282
+ }
2283
+
2284
+ .ypg-pc-avatar {
2285
+ width: 42px;
2286
+ height: 42px;
2287
+ border-radius: 10px;
2288
+ background: rgba(255, 255, 255, 0.22);
2289
+ display: flex;
2290
+ align-items: center;
2291
+ justify-content: center;
2292
+ font-size: 20px;
2293
+ font-weight: 800;
2294
+ color: #ffffff;
2295
+ overflow: hidden;
2296
+ flex-shrink: 0;
2297
+ }
2298
+
2299
+ .ypg-pc-avatar img {
2300
+ width: 100%;
2301
+ height: 100%;
2302
+ object-fit: cover;
2303
+ }
2304
+
2305
+ .ypg-pc-brand-info {
2306
+ display: flex;
2307
+ flex-direction: column;
2308
+ gap: 3px;
2309
+ min-width: 0;
2310
+ }
2311
+
2312
+ .ypg-pc-merchant-name {
2313
+ font-size: 16px;
2314
+ font-weight: 800;
2315
+ color: #ffffff;
2316
+ white-space: nowrap;
2317
+ overflow: hidden;
2318
+ text-overflow: ellipsis;
2319
+ line-height: 1.2;
2320
+ }
2321
+
2322
+ .ypg-pc-trust-badge {
2323
+ display: inline-flex;
2324
+ align-items: center;
2325
+ gap: 4px;
2326
+ background: rgba(255, 255, 255, 0.16);
2327
+ border-radius: 20px;
2328
+ padding: 2px 8px;
2329
+ font-size: 11px;
2330
+ font-weight: 600;
2331
+ color: #ffffff;
2332
+ width: fit-content;
2333
+ }
2334
+
2335
+ .ypg-pc-green-shield {
2336
+ width: 13px;
2337
+ height: 13px;
2338
+ }
2339
+
2340
+ /* Social Proof Pill */
2341
+ .ypg-pc-social-proof {
2342
+ background: rgba(255, 255, 255, 0.12);
2343
+ border-radius: 8px;
2344
+ padding: 8px 12px;
2345
+ margin-top: 6px;
2346
+ font-size: 11.5px;
2347
+ color: rgba(255, 255, 255, 0.95);
2348
+ display: flex;
2349
+ align-items: center;
2350
+ gap: 8px;
2351
+ }
2352
+
2353
+ /* Price Summary White Card - NO UPI ID VISIBLE */
2354
+ .ypg-pc-price-card {
2355
+ background: #ffffff;
2356
+ border-radius: 10px;
2357
+ padding: 14px 16px;
2358
+ margin-top: 14px;
2359
+ box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
2360
+ color: #0f172a;
2361
+ }
2362
+
2363
+ .ypg-pc-price-label {
2364
+ font-size: 12px;
2365
+ font-weight: 600;
2366
+ color: #64748b;
2367
+ letter-spacing: 0.2px;
2368
+ }
2369
+
2370
+ .ypg-pc-price-val {
2371
+ font-size: 26px;
2372
+ font-weight: 800;
2373
+ color: #0f172a;
2374
+ margin-top: 4px;
2375
+ letter-spacing: -0.5px;
2376
+ }
2377
+
2378
+ /* User Profile Row Button */
2379
+ .ypg-pc-row-btn {
2380
+ background: rgba(255, 255, 255, 0.12);
2381
+ border-radius: 8px;
2382
+ padding: 10px 12px;
2383
+ margin-top: 10px;
2384
+ font-size: 12px;
2385
+ color: #ffffff;
2386
+ display: flex;
2387
+ align-items: center;
2388
+ justify-content: space-between;
2389
+ cursor: pointer;
2390
+ transition: background 0.15s;
2391
+ }
2392
+
2393
+ .ypg-pc-row-btn:hover {
2394
+ background: rgba(255, 255, 255, 0.18);
2395
+ }
2396
+
2397
+ .ypg-pc-row-left {
2398
+ display: flex;
2399
+ align-items: center;
2400
+ gap: 8px;
2401
+ min-width: 0;
2402
+ overflow: hidden;
2403
+ }
2404
+
2405
+ #pcCustomerProfileText {
2406
+ white-space: nowrap;
2407
+ overflow: hidden;
2408
+ text-overflow: ellipsis;
2409
+ }
2410
+
2411
+ .ypg-pc-chevron {
2412
+ font-size: 16px;
2413
+ opacity: 0.75;
2414
+ flex-shrink: 0;
2415
+ }
2416
+
2417
+ /* Shopping Bags Graphic */
2418
+ .ypg-pc-bags-wrap {
2419
+ width: 100%;
2420
+ display: flex;
2421
+ justify-content: center;
2422
+ margin-top: auto;
2423
+ padding-top: 14px;
2424
+ padding-bottom: 4px;
2425
+ }
2426
+
2427
+ /* PC Right Column / Workspace */
2428
+ .ypg-pc-workspace {
2429
+ flex: 1;
2430
+ height: 100%;
2431
+ display: flex !important;
2432
+ flex-direction: column;
2433
+ background: #ffffff;
2434
+ overflow: hidden;
2435
+ min-width: 0;
2436
+ }
2437
+
2438
+ .ypg-pc-topbar {
2439
+ height: 48px;
2440
+ border-bottom: 1px solid #f1f5f9;
2441
+ display: flex !important;
2442
+ align-items: center;
2443
+ justify-content: space-between;
2444
+ padding: 0 20px;
2445
+ background: #ffffff;
2446
+ flex-shrink: 0;
2447
+ position: relative;
2448
+ z-index: 60;
2449
+ }
2450
+
2451
+ .ypg-pc-topbar-title {
2452
+ font-size: 15px;
2453
+ font-weight: 700;
2454
+ color: #0f172a;
2455
+ }
2456
+
2457
+ .ypg-pc-topbar-actions {
2458
+ display: flex;
2459
+ align-items: center;
2460
+ gap: 12px;
2461
+ position: relative;
2462
+ z-index: 61;
2463
+ }
2464
+
2465
+ .ypg-pc-btn-more,
2466
+ .ypg-pc-btn-close {
2467
+ background: none;
2468
+ border: none;
2469
+ font-size: 16px;
2470
+ color: #64748b;
2471
+ cursor: pointer;
2472
+ padding: 4px 6px;
2473
+ border-radius: 4px;
2474
+ line-height: 1;
2475
+ transition: color 0.15s, background 0.15s;
2476
+ }
2477
+
2478
+ .ypg-pc-btn-close {
2479
+ font-size: 18px;
2480
+ font-weight: 600;
2481
+ }
2482
+
2483
+ .ypg-pc-btn-more:hover,
2484
+ .ypg-pc-btn-close:hover {
2485
+ color: #0f172a;
2486
+ background: #f1f5f9;
2487
+ }
2488
+
2489
+ /* PC Body Container - Bounded to viewport height */
2490
+ .ypg-body {
2491
+ flex: 1 !important;
2492
+ height: calc(100% - 48px) !important;
2493
+ max-height: calc(100% - 48px) !important;
2494
+ display: flex !important;
2495
+ flex-direction: column !important;
2496
+ padding: 0 !important;
2497
+ overflow: hidden !important;
2498
+ min-height: 0 !important;
2499
+ }
2500
+
2501
+ #paymentGatewayInterface:not([hidden]) {
2502
+ flex: 1 !important;
2503
+ height: 100% !important;
2504
+ max-height: 100% !important;
2505
+ display: flex !important;
2506
+ flex-direction: column !important;
2507
+ min-height: 0 !important;
2508
+ overflow: hidden !important;
2509
+ }
2510
+
2511
+ #paymentGatewayInterface[hidden] {
2512
+ display: none !important;
2513
+ }
2514
+
2515
+ #preGatewayAuthView:not([hidden]) {
2516
+ flex: 1 !important;
2517
+ height: 100% !important;
2518
+ max-height: 100% !important;
2519
+ display: flex !important;
2520
+ flex-direction: column !important;
2521
+ overflow-y: auto !important;
2522
+ padding: 24px 32px !important;
2523
+ box-sizing: border-box !important;
2524
+ }
2525
+
2526
+ #preGatewayAuthView[hidden] {
2527
+ display: none !important;
2528
+ }
2529
+
2530
+ /* Clean PC layout */
2531
+ .ypg-pc-columns {
2532
+ display: flex !important;
2533
+ flex-direction: row !important;
2534
+ flex: 1 !important;
2535
+ height: 100% !important;
2536
+ max-height: 100% !important;
2537
+ min-height: 0 !important;
2538
+ overflow: hidden !important;
2539
+ }
2540
+
2541
+ .ypg-pc-methods-list {
2542
+ width: 220px !important;
2543
+ min-width: 220px !important;
2544
+ height: 100% !important;
2545
+ max-height: 100% !important;
2546
+ border-right: 1px solid #f1f5f9 !important;
2547
+ padding: 14px 12px !important;
2548
+ display: flex !important;
2549
+ flex-direction: column !important;
2550
+ gap: 8px !important;
2551
+ overflow-y: auto !important;
2552
+ background: #ffffff !important;
2553
+ scrollbar-width: thin !important;
2554
+ scrollbar-color: #e2e8f0 transparent !important;
2555
+ }
2556
+
2557
+ .ypg-pc-methods-list::-webkit-scrollbar {
2558
+ width: 4px;
2559
+ }
2560
+
2561
+ .ypg-pc-methods-list::-webkit-scrollbar-thumb {
2562
+ background: #e2e8f0;
2563
+ border-radius: 4px;
2564
+ }
2565
+
2566
+ .ypg-pc-method-card {
2567
+ border: 1.5px solid #e2e8f0;
2568
+ border-radius: 10px;
2569
+ padding: 10px 12px;
2570
+ cursor: pointer;
2571
+ transition: all 0.2s ease;
2572
+ background: #ffffff;
2573
+ }
2574
+
2575
+ .ypg-pc-method-card:hover {
2576
+ border-color: #cbd5e1;
2577
+ background: #f8fafc;
2578
+ }
2579
+
2580
+ .ypg-pc-method-card.is-active {
2581
+ border-color: var(--ypg-blue, #0b63e5);
2582
+ background: #eff6ff;
2583
+ box-shadow: 0 0 0 1px var(--ypg-blue, #0b63e5);
2584
+ }
2585
+
2586
+ .ypg-pc-method-card.disabled {
2587
+ opacity: 0.6;
2588
+ cursor: default;
2589
+ }
2590
+
2591
+ .ypg-pc-method-header {
2592
+ display: flex;
2593
+ align-items: center;
2594
+ justify-content: space-between;
2595
+ margin-bottom: 2px;
2596
+ }
2597
+
2598
+ .ypg-pc-method-title {
2599
+ font-size: 13px;
2600
+ font-weight: 700;
2601
+ color: #0f172a;
2602
+ }
2603
+
2604
+ .ypg-pc-cash-pill {
2605
+ font-size: 10px;
2606
+ font-weight: 700;
2607
+ color: #0369a1;
2608
+ background: #e0f2fe;
2609
+ padding: 2px 6px;
2610
+ border-radius: 10px;
2611
+ }
2612
+
2613
+ .ypg-pc-method-sub {
2614
+ font-size: 11px;
2615
+ color: #64748b;
2616
+ }
2617
+
2618
+ .ypg-pc-method-icons {
2619
+ display: flex;
2620
+ align-items: center;
2621
+ gap: 4px;
2622
+ margin-top: 6px;
2623
+ }
2624
+
2625
+ .ypg-pc-mini-icon {
2626
+ width: 18px;
2627
+ height: 18px;
2628
+ border-radius: 4px;
2629
+ object-fit: cover;
2630
+ }
2631
+
2632
+ /* Right active workspace - Bounded height with buttery-smooth scrolling */
2633
+ .ypg-pc-active-view {
2634
+ flex: 1 !important;
2635
+ height: 100% !important;
2636
+ max-height: 100% !important;
2637
+ padding: 16px 22px !important;
2638
+ overflow-y: auto !important;
2639
+ display: flex !important;
2640
+ flex-direction: column !important;
2641
+ min-width: 0 !important;
2642
+ scrollbar-width: thin !important;
2643
+ scrollbar-color: #cbd5e1 transparent !important;
2644
+ }
2645
+
2646
+ .ypg-pc-active-view::-webkit-scrollbar {
2647
+ width: 6px;
2648
+ }
2649
+
2650
+ .ypg-pc-active-view::-webkit-scrollbar-track {
2651
+ background: transparent;
2652
+ }
2653
+
2654
+ .ypg-pc-active-view::-webkit-scrollbar-thumb {
2655
+ background: #cbd5e1;
2656
+ border-radius: 4px;
2657
+ }
2658
+
2659
+ .ypg-pc-active-view::-webkit-scrollbar-thumb:hover {
2660
+ background: #94a3b8;
2661
+ }
2662
+
2663
+ /* Desktop: Hide redundant step cards since QR details column has instructions */
2664
+ .ypg-instructions-card {
2665
+ display: none !important;
2666
+ }
2667
+
2668
+ /* Desktop method selector override */
2669
+ .ypg-method-selector-bar {
2670
+ display: none !important;
2671
+ }
2672
+
2673
+ /* PC Exit Modal Styling (Razorpay desktop modal) */
2674
+ .mob-only-title,
2675
+ .mob-only-sub,
2676
+ .mob-only-btn {
2677
+ display: none !important;
2678
+ }
2679
+
2680
+ .pc-only-title,
2681
+ .pc-only-sub,
2682
+ .pc-only-btn {
2683
+ display: inline !important;
2684
+ }
2685
+
2686
+ .rzp-sheet-dialog {
2687
+ width: 420px !important;
2688
+ border-radius: 16px !important;
2689
+ box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4) !important;
2690
+ animation: rzpModalPop 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
2691
+ }
2692
+ }
2693
+
2694
+ /* MOBILE SPECIFIC RULES - PINNED HEADER WITH CONTENT SCROLLING BEHIND IT */
2695
+ @media (max-width: 767px) {
2696
+ .ypg-pc-sidebar {
2697
+ display: none !important;
2698
+ }
2699
+
2700
+ .ypg-pc-topbar {
2701
+ display: none !important;
2702
+ }
2703
+
2704
+ .ypg-wrapper {
2705
+ height: 100% !important;
2706
+ height: 100dvh !important;
2707
+ min-height: 100% !important;
2708
+ min-height: 100dvh !important;
2709
+ max-height: 100% !important;
2710
+ max-height: 100dvh !important;
2711
+ display: flex !important;
2712
+ flex-direction: column !important;
2713
+ overflow: hidden !important;
2714
+ width: 100vw !important;
2715
+ max-width: 100vw !important;
2716
+ border-radius: 0 !important;
2717
+ }
2718
+
2719
+ .ypg-pc-workspace {
2720
+ height: 100% !important;
2721
+ max-height: 100% !important;
2722
+ display: flex !important;
2723
+ flex-direction: column !important;
2724
+ overflow: hidden !important;
2725
+ flex: 1 !important;
2726
+ position: relative !important;
2727
+ }
2728
+
2729
+ /* Pinned/Sticky Header: Store name sits firmly at top */
2730
+ .ypg-header {
2731
+ position: sticky !important;
2732
+ top: 0 !important;
2733
+ z-index: 50 !important;
2734
+ flex-shrink: 0 !important;
2735
+ box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12) !important;
2736
+ }
2737
+
2738
+ /* Body is the single fluid scroll container that flows behind the header */
2739
+ .ypg-body {
2740
+ display: block !important;
2741
+ flex: 1 !important;
2742
+ height: auto !important;
2743
+ min-height: 0 !important;
2744
+ overflow-y: auto !important;
2745
+ -webkit-overflow-scrolling: touch !important;
2746
+ overscroll-behavior-y: contain !important;
2747
+ padding: 14px 16px 140px 16px !important;
2748
+ scrollbar-width: none !important;
2749
+ }
2750
+
2751
+ .ypg-body::-webkit-scrollbar {
2752
+ display: none !important;
2753
+ }
2754
+
2755
+ /* Method tabs scroll smoothly under the header */
2756
+ .ypg-method-selector-bar {
2757
+ position: sticky !important;
2758
+ top: -14px !important;
2759
+ z-index: 30 !important;
2760
+ background: #ffffff !important;
2761
+ padding-top: 4px !important;
2762
+ padding-bottom: 8px !important;
2763
+ }
2764
+
2765
+ /* Inner wrappers must NOT have conflicting overflow or height */
2766
+ #paymentGatewayInterface:not([hidden]) {
2767
+ display: block !important;
2768
+ height: auto !important;
2769
+ max-height: none !important;
2770
+ overflow: visible !important;
2771
+ flex: none !important;
2772
+ }
2773
+
2774
+ #paymentGatewayInterface[hidden] {
2775
+ display: none !important;
2776
+ }
2777
+
2778
+ #preGatewayAuthView:not([hidden]) {
2779
+ display: block !important;
2780
+ width: 100% !important;
2781
+ padding: 16px 16px 24px !important;
2782
+ box-sizing: border-box !important;
2783
+ }
2784
+
2785
+ #preGatewayAuthView[hidden] {
2786
+ display: none !important;
2787
+ }
2788
+
2789
+ .ypg-pc-columns {
2790
+ display: block !important;
2791
+ height: auto !important;
2792
+ max-height: none !important;
2793
+ overflow: visible !important;
2794
+ flex: none !important;
2795
+ }
2796
+
2797
+ .ypg-pc-methods-list {
2798
+ display: none !important;
2799
+ }
2800
+
2801
+ .ypg-pc-active-view {
2802
+ display: block !important;
2803
+ height: auto !important;
2804
+ max-height: none !important;
2805
+ overflow: visible !important;
2806
+ padding: 0 !important;
2807
+ width: 100% !important;
2808
+ flex: none !important;
2809
+ }
2810
+
2811
+ /* Fixed Bottom Footer Bar */
2812
+ .ypg-sticky-footer {
2813
+ position: fixed !important;
2814
+ bottom: 0 !important;
2815
+ left: 0 !important;
2816
+ right: 0 !important;
2817
+ z-index: 45 !important;
2818
+ background: #ffffff !important;
2819
+ box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08) !important;
2820
+ }
2821
+
2822
+ .pc-only-title,
2823
+ .pc-only-sub,
2824
+ .pc-only-btn {
2825
+ display: none !important;
2826
+ }
2827
+
2828
+ .mob-only-title,
2829
+ .mob-only-sub,
2830
+ .mob-only-btn {
2831
+ display: inline !important;
2832
+ }
2833
+ }
2834
+
2835
+ /* --- OFFICIAL GOOGLE PLAY STORE APP ICONS --- */
2836
+ .ypg-upi-logos-row {
2837
+ display: flex;
2838
+ align-items: center;
2839
+ gap: 6px;
2840
+ flex-wrap: wrap;
2841
+ }
2842
+
2843
+ .ypg-app-icon {
2844
+ width: 26px;
2845
+ height: 26px;
2846
+ border-radius: 6px;
2847
+ overflow: hidden;
2848
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
2849
+ display: flex;
2850
+ align-items: center;
2851
+ justify-content: center;
2852
+ background: #ffffff;
2853
+ border: 1px solid #e2e8f0;
2854
+ flex-shrink: 0;
2855
+ }
2856
+
2857
+ .ypg-app-icon img {
2858
+ width: 100%;
2859
+ height: 100%;
2860
+ object-fit: cover;
2861
+ border-radius: 5px;
2862
+ display: block;
2863
+ }
2864
+
2865
+ /* --- UPI SERVER HEALTH INDICATOR & DOWNTIME ALERT --- */
2866
+ .ypg-server-health-indicator {
2867
+ display: inline-flex;
2868
+ align-items: center;
2869
+ gap: 6px;
2870
+ padding: 4px 10px;
2871
+ border-radius: 20px;
2872
+ font-size: 11px;
2873
+ font-weight: 700;
2874
+ letter-spacing: 0.2px;
2875
+ margin: 0 auto 10px auto;
2876
+ transition: all 0.25s ease;
2877
+ width: fit-content;
2878
+ }
2879
+
2880
+ .ypg-server-health-indicator.is-working {
2881
+ background: #f0fdf4;
2882
+ color: #15803d;
2883
+ border: 1px solid #bbf7d0;
2884
+ }
2885
+
2886
+ .ypg-server-health-indicator.is-busy {
2887
+ background: #fefce8;
2888
+ color: #854d0e;
2889
+ border: 1px solid #fef08a;
2890
+ }
2891
+
2892
+ .ypg-server-health-indicator.is-issues {
2893
+ background: #fef2f2;
2894
+ color: #b91c1c;
2895
+ border: 1px solid #fecaca;
2896
+ }
2897
+
2898
+ .ypg-pulse-dot {
2899
+ width: 8px;
2900
+ height: 8px;
2901
+ border-radius: 50%;
2902
+ display: inline-block;
2903
+ }
2904
+
2905
+ .ypg-server-health-indicator.is-working .ypg-pulse-dot {
2906
+ background: #22c55e;
2907
+ box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.7);
2908
+ animation: pulse-green 1.8s infinite;
2909
+ }
2910
+
2911
+ .ypg-server-health-indicator.is-busy .ypg-pulse-dot {
2912
+ background: #eab308;
2913
+ box-shadow: 0 0 0 0 rgba(234, 179, 8, 0.7);
2914
+ animation: pulse-yellow 1.8s infinite;
2915
+ }
2916
+
2917
+ .ypg-server-health-indicator.is-issues .ypg-pulse-dot {
2918
+ background: #ef4444;
2919
+ box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7);
2920
+ animation: pulse-red 1.8s infinite;
2921
+ }
2922
+
2923
+ @keyframes pulse-yellow {
2924
+ 0% {
2925
+ transform: scale(0.95);
2926
+ box-shadow: 0 0 0 0 rgba(234, 179, 8, 0.7);
2927
+ }
2928
+
2929
+ 70% {
2930
+ transform: scale(1);
2931
+ box-shadow: 0 0 0 6px rgba(234, 179, 8, 0);
2932
+ }
2933
+
2934
+ 100% {
2935
+ transform: scale(0.95);
2936
+ box-shadow: 0 0 0 0 rgba(234, 179, 8, 0);
2937
+ }
2938
+ }
2939
+
2940
+ @keyframes pulse-green {
2941
+ 0% {
2942
+ transform: scale(0.95);
2943
+ box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.7);
2944
+ }
2945
+
2946
+ 70% {
2947
+ transform: scale(1);
2948
+ box-shadow: 0 0 0 6px rgba(34, 197, 94, 0);
2949
+ }
2950
+
2951
+ 100% {
2952
+ transform: scale(0.95);
2953
+ box-shadow: 0 0 0 0 rgba(34, 197, 94, 0);
2954
+ }
2955
+ }
2956
+
2957
+ @keyframes pulse-red {
2958
+ 0% {
2959
+ transform: scale(0.95);
2960
+ box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7);
2961
+ }
2962
+
2963
+ 70% {
2964
+ transform: scale(1);
2965
+ box-shadow: 0 0 0 6px rgba(239, 68, 68, 0);
2966
+ }
2967
+
2968
+ 100% {
2969
+ transform: scale(0.95);
2970
+ box-shadow: 0 0 0 0 rgba(239, 68, 68, 0);
2971
+ }
2972
+ }
2973
+
2974
+ .ypg-downtime-alert {
2975
+ background: #fff5f5;
2976
+ border: 1px solid #fed7d7;
2977
+ border-left: 4px solid #e53e3e;
2978
+ border-radius: 8px;
2979
+ padding: 10px 14px;
2980
+ margin: 10px 0;
2981
+ display: flex;
2982
+ gap: 10px;
2983
+ align-items: flex-start;
2984
+ text-align: left;
2985
+ }
2986
+
2987
+ .ypg-downtime-alert.is-warning {
2988
+ background: #fffbeb;
2989
+ border: 1px solid #fef3c7;
2990
+ border-left: 4px solid #f59e0b;
2991
+ }
2992
+
2993
+ .ypg-downtime-alert.is-warning .ypg-downtime-heading {
2994
+ color: #92400e;
2995
+ }
2996
+
2997
+ .ypg-downtime-alert.is-warning .ypg-downtime-msg {
2998
+ color: #78350f;
2999
+ }
3000
+
3001
+ .ypg-downtime-icon {
3002
+ font-size: 18px;
3003
+ line-height: 1;
3004
+ flex-shrink: 0;
3005
+ }
3006
+
3007
+ .ypg-downtime-heading {
3008
+ font-size: 12px;
3009
+ font-weight: 800;
3010
+ color: #991b1b;
3011
+ margin-bottom: 3px;
3012
+ }
3013
+
3014
+ .ypg-downtime-msg {
3015
+ font-size: 11.5px;
3016
+ color: #7f1d1d;
3017
+ line-height: 1.4;
3018
+ margin-bottom: 6px;
3019
+ }
3020
+
3021
+ .ypg-btn-downtime-alt {
3022
+ background: #0f172a;
3023
+ color: #ffffff;
3024
+ border: none;
3025
+ border-radius: 6px;
3026
+ font-size: 11px;
3027
+ font-weight: 700;
3028
+ padding: 6px 12px;
3029
+ cursor: pointer;
3030
+ transition: opacity 0.2s;
3031
+ }
3032
+
3033
+ .ypg-btn-downtime-alt:hover {
3034
+ opacity: 0.9;
3035
+ }
3036
+
3037
+ /* ULTRA-COMPACT MOBILE DEVICES (<= 360px) */
3038
+ @media (max-width: 360px) {
3039
+ .ypg-body {
3040
+ padding: 10px 10px 120px 10px !important;
3041
+ }
3042
+ .ypg-header {
3043
+ padding: 10px 12px !important;
3044
+ }
3045
+ .ypg-otp-control {
3046
+ font-size: 18px !important;
3047
+ letter-spacing: 6px !important;
3048
+ padding: 8px !important;
3049
+ }
3050
+ .ypg-qr-img {
3051
+ max-width: 170px !important;
3052
+ max-height: 170px !important;
3053
+ }
3054
+ }