PluginProbe
Yatra – Travel Booking & Tour Operator Software / 3.0.2.8
Yatra – Travel Booking & Tour Operator Software v3.0.2.8
3.0.15 3.0.14 3.0.14.1 3.0.14.2 3.0.12 3.0.13 3.0.11 3.0.10 3.0.9 3.0.8 3.0.7 3.0.6 3.0.5 3.0.5.1 3.0.4 3.0.3 3.0.2.9 3.0.2.7 3.0.2.8 3.0.2.6 trunk 1.0.0 2.0.0 2.0.1 2.0.10 All 83 releases
yatra / assets / css / booking.css

booking.css in Yatra – Travel Booking & Tour Operator Software 3.0.2.8, at assets/css/booking.css

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