        * { margin: 0; padding: 0; box-sizing: border-box; }
        body { font-family: 'Hind Siliguri', 'Inter', sans-serif; }
        .slide-item { position: absolute; inset: 0; opacity: 0; transition: opacity 1s ease-in-out; }
        .slide-item.active { opacity: 1; }
        @keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
        .marquee-content { animation: marquee 22s linear infinite; }
        .route-card:hover { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(0,0,0,0.12); }
        .route-card { transition: all 0.3s ease; }
        .btn-primary:hover { transform: scale(1.02); box-shadow: 0 4px 14px rgba(30,58,95,0.4); }
        .btn-primary { transition: all 0.2s; }
        .mobile-menu { transform: translateX(-100%); transition: transform 0.3s ease; }
        .mobile-menu.open { transform: translateX(0); }
        .dropdown-menu { display: none; }
        .dropdown:hover .dropdown-menu { display: block; }
        html { scroll-behavior: smooth; }
        ::-webkit-scrollbar { width: 7px; }
        ::-webkit-scrollbar-track { background: #f1f1f1; }
        ::-webkit-scrollbar-thumb { background: #1e3a5f; border-radius: 4px; }
        .toast { position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%) translateY(100px); background: #1e3a5f; color: white; padding: 14px 28px; border-radius: 10px; font-size: 14px; z-index: 9999; opacity: 0; transition: all 0.4s ease; box-shadow: 0 8px 24px rgba(0,0,0,0.25); max-width: 90vw; text-align: center; }
        .toast.show { transform: translateX(-50%) translateY(0); opacity: 1; }
        .seat { width: 40px; height: 40px; border: 2px solid #d1d5db; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600; cursor: pointer; transition: all 0.15s; user-select: none; }
        .seat:hover:not(.booked):not(.selected) { border-color: #1e3a5f; background: #e8f0fe; }
        .seat.selected { background: #1e3a5f; color: white; border-color: #1e3a5f; }
        .seat.booked { background: #ef4444; color: white; border-color: #ef4444; cursor: not-allowed; opacity: 0.6; }
        .seat.driver { background: #f59e0b; color: white; border-color: #f59e0b; cursor: default; font-size: 9px; }
        .payment-option { border: 2px solid #e5e7eb; border-radius: 12px; padding: 16px; cursor: pointer; transition: all 0.2s; }
        .payment-option:hover { border-color: #1e3a5f; }
        .payment-option.active { border-color: #1e3a5f; background: #e8f0fe; box-shadow: 0 0 0 3px rgba(30,58,95,0.15); }
        .modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.6); backdrop-filter: blur(4px); z-index: 100; display: none; align-items: center; justify-content: center; padding: 16px; }
        .modal-overlay.open { display: flex; }
        .modal-box { background: white; border-radius: 16px; max-width: 560px; width: 100%; max-height: 90vh; overflow-y: auto; animation: modalIn 0.3s ease; }
        @keyframes modalIn { from { opacity: 0; transform: scale(0.95) translateY(10px); } to { opacity: 1; transform: scale(1) translateY(0); } }
        .step-indicator { display: flex; align-items: center; gap: 0; }
        .step-dot { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; border: 2px solid #d1d5db; color: #9ca3af; background: white; transition: all 0.3s; flex-shrink: 0; }
        .step-dot.active { border-color: #1e3a5f; background: #1e3a5f; color: white; }
        .step-dot.done { border-color: #2e7d32; background: #2e7d32; color: white; }
        .step-line { height: 2px; flex: 1; background: #d1d5db; transition: background 0.3s; }
        .step-line.done { background: #2e7d32; }
        .step-line.active { background: #1e3a5f; }
        @media print {
            body * { visibility: hidden; }
            #printInvoice, #printInvoice * { visibility: visible; }
            #printInvoice { position: absolute; left: 0; top: 0; width: 100%; padding: 20px; }
            .no-print { display: none !important; }
        }