.top-nav{position:sticky;top:0;left:0;right:0;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:12px 20px;box-shadow:0 2px 12px #0000000f;border-bottom:1px solid #f1f5f9;z-index:1000}.nav-brand{display:flex;align-items:baseline;gap:6px}.brand-name{font-family:sans-serif;font-size:22px;font-weight:700;color:#336648;letter-spacing:2px}.brand-tagline{font-size:12px;color:#94a3b8;font-weight:500;letter-spacing:.5px}.nav-links{display:flex;align-items:center;gap:4px}.nav-item{display:flex;align-items:center;gap:6px;padding:10px 14px;border-radius:10px;text-decoration:none;color:#64748b;font-size:14px;font-weight:500;transition:all .2s ease}.nav-item:hover{background:#f1f5f9;color:#334155}.nav-item.active{background:linear-gradient(135deg,#336648,#2a5239);color:#fff}.nav-item.active .nav-icon{color:#fff}.nav-icon{transition:transform .2s ease}.nav-label{font-weight:600}@media(max-width:600px){.top-nav{padding:10px 16px}.brand-name{font-size:20px}.brand-tagline{display:none}.nav-item{padding:8px 10px;gap:4px}.nav-label{display:none}.nav-item.active .nav-label{display:inline}}@media(max-width:400px){.nav-item{padding:8px}.nav-item.active{padding:8px 12px}}.splash-screen{position:fixed;inset:0;background:linear-gradient(135deg,#336648,#44ba8b);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:9999;opacity:1;transition:opacity .5s ease-out}.splash-screen.fade-out{opacity:0;pointer-events:none}.splash-content{display:flex;flex-direction:column;align-items:center;animation:slideUp .8s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.splash-logo-container{width:120px;height:120px;background:#ffffff26;border-radius:30px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;animation:pulse 2s ease-in-out infinite;box-shadow:0 10px 40px #0003}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 10px 40px #0003}50%{transform:scale(1.05);box-shadow:0 15px 50px #0000004d}}.splash-logo{width:80px;height:80px;object-fit:contain;filter:brightness(0) invert(1)}.splash-text{text-align:center;margin-bottom:40px}.splash-title{font-size:3rem;font-weight:700;color:#fff;margin:0;letter-spacing:8px;text-shadow:0 2px 10px rgba(0,0,0,.2);animation:fadeIn .8s ease-out .3s both}.splash-tagline{font-size:1.1rem;color:#ffffffe6;margin:8px 0 0;letter-spacing:2px;animation:fadeIn .8s ease-out .5s both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.splash-loader{width:200px;height:4px;background:#fff3;border-radius:2px;overflow:hidden;animation:fadeIn .8s ease-out .7s both}.splash-loader-bar{height:100%;width:0%;background:#fff;border-radius:2px;animation:loading 1.8s ease-in-out forwards}@keyframes loading{0%{width:0%}50%{width:70%}to{width:100%}}.splash-footer{position:absolute;bottom:40px;text-align:center;animation:fadeIn .8s ease-out .9s both}.splash-footer p{color:#ffffffb3;font-size:.9rem;margin:0}@media(max-width:480px){.splash-logo-container{width:100px;height:100px;border-radius:24px}.splash-logo{width:60px;height:60px}.splash-title{font-size:2.5rem;letter-spacing:6px}.splash-tagline{font-size:1rem}.splash-loader{width:160px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#336648,#1e3a2f);padding:20px;position:relative;overflow:hidden}.login-container:before{content:"";position:absolute;top:-30%;right:-20%;width:600px;height:600px;background:#ffffff08;border-radius:50%}.login-container:after{content:"";position:absolute;bottom:-20%;left:-15%;width:400px;height:400px;background:#ffffff05;border-radius:50%}.login-card{background:#fff;border-radius:24px;padding:40px 36px;width:100%;max-width:420px;box-shadow:0 25px 80px #00000040;position:relative;z-index:2}.login-header{text-align:center;margin-bottom:32px}.login-header h1{font-size:28px;font-weight:700;color:#1e293b;margin:0 0 8px;letter-spacing:-.5px}.login-header p{font-size:15px;color:#64748b;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:600;color:#334155}.input-wrapper{position:relative;width:100%}.input-wrapper .input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none}.input-wrapper input{width:100%;height:52px;padding:0 46px 0 48px;border-radius:14px;border:2px solid #e2e8f0;font-size:15px}.input-wrapper input:focus{outline:none;border-color:#336648;box-shadow:0 0 0 4px #3366481a}.input-wrapper input::placeholder{color:#94a3b8}.error-message{display:flex;align-items:center;gap:10px;padding:14px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;color:#dc2626;font-size:14px}.error-message svg{flex-shrink:0}.password-toggle{position:absolute;right:14px;background:none;border:none;cursor:pointer;color:#94a3b8;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s}.password-toggle:hover{color:#64748b}.forgot-password{text-align:right;margin-top:-8px}.forgot-password a{color:#336648;font-size:14px;font-weight:600;text-decoration:none;transition:color .2s}.forgot-password a:hover{color:#2a5239;text-decoration:underline}.btn-full{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:16px;border:none;border-radius:12px;background:linear-gradient(135deg,#336648,#2a5239);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-full:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 25px #33664859}.btn-full:disabled{opacity:.7;cursor:not-allowed}.divider{display:flex;align-items:center;text-align:center;margin:8px 0}.divider:before,.divider:after{content:"";flex:1;border-bottom:1px solid #e2e8f0}.divider span{padding:0 16px;color:#94a3b8;font-size:13px}.social-buttons{display:flex;gap:12px}.social-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;border-radius:12px;border:2px solid #e2e8f0;background:#fff;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:500;color:#334155}.social-btn:hover:not(:disabled){border-color:#336648;background:#f8fafc}.social-btn:disabled{opacity:.5;cursor:not-allowed}.social-btn img{width:20px;height:20px}.signup-link{text-align:center;color:#64748b;font-size:14px}.signup-link a{color:#336648;font-weight:700;text-decoration:none;margin-left:4px}.signup-link a:hover{text-decoration:underline}.login-brand{position:absolute;top:32px;left:32px;z-index:1}.login-brand h2{font-size:32px;font-weight:700;margin:0;letter-spacing:3px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.2)}.login-brand p{font-size:13px;margin:4px 0 0;opacity:.9;color:#ffffffe6;letter-spacing:1px}.login-card .input-wrapper input,.login-card.signup-card .input-wrapper input{padding-left:48px;padding-right:46px;box-sizing:border-box}@media(max-width:768px){.login-container{padding:100px 16px 16px;align-items:flex-start}.login-card{padding:32px 24px;border-radius:20px}.login-header h1{font-size:24px}.login-brand{top:24px;left:24px}.login-brand h2{font-size:26px}.login-brand p{font-size:12px}}.home-container{min-height:100vh;background:#f8fafc}.home-header{color:#fff;padding:20px;border-radius:0 0 10px 10px;position:relative;overflow:hidden;margin-bottom:35px}.home-header:before{content:"";position:absolute;top:-50%;right:-20%;width:300px;height:300px;background:#ffffff14;border-radius:50%}.home-header:after{content:"";position:absolute;bottom:-30%;left:-10%;width:200px;height:200px;background:#ffffff0d;border-radius:50%}.home-header.morning{background:linear-gradient(135deg,#f97316,#ea580c,#c2410c)}.home-header.afternoon{background:linear-gradient(135deg,#336648,#2a5239,#1e3a2a)}.home-header.evening{background:linear-gradient(135deg,#4338ca,#3730a3,#312e81)}.header-content{position:relative;z-index:1}.greeting{display:inline-flex;align-items:center;gap:8px;background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:8px 14px;border-radius:24px;font-size:14px;font-weight:500;margin-bottom:16px}.greeting-icon{color:#fbbf24}.home-header.evening .greeting-icon{color:#a5b4fc}.home-header h1{font-size:28px;font-weight:700;margin:0 0 8px;letter-spacing:-.5px;color:#fff}.home-header p{font-size:16px;opacity:.9;margin:0;color:#fff}.home-content{padding:0 16px 40px;margin-top:-20px;position:relative;z-index:2}section{margin-bottom:28px}section h2{font-size:17px;font-weight:600;color:#1e293b;margin:0 0 14px;padding-left:4px}.active-ticket-section{margin-bottom:24px}.ticket-card{background:#fff;border-radius:20px;padding:20px;box-shadow:0 4px 24px #00000014;border:1px solid rgba(0,0,0,.04)}.ticket-section-label{font-size:13px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f1f5f9}.ticket-card.loading{display:flex;flex-direction:column;align-items:center;padding:48px 20px}.ticket-card.loading .spinner-icon{animation:spin 1s linear infinite;color:#336648}.ticket-card.loading p{margin-top:12px;color:#64748b;font-size:14px}.ticket-card.active{cursor:pointer;transition:all .2s ease;border-left:4px solid #336648}.ticket-card.active:hover{transform:translateY(-2px);box-shadow:0 8px 32px #0000001f}.ticket-card.empty{display:flex;flex-direction:column;align-items:center;padding:20px 20px 40px;text-align:center;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:2px dashed #e2e8f0}.ticket-card.empty .ticket-section-label{align-self:stretch;text-align:left;margin-bottom:24px}.ticket-card.empty .empty-icon{color:#94a3b8;margin-bottom:12px}.ticket-card.empty p{font-size:16px;font-weight:600;color:#334155;margin:0}.empty-subtitle{font-size:14px;color:#94a3b8;margin-top:6px}.ticket-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.ticket-company{display:flex;align-items:center;gap:10px}.ticket-company .company-icon{color:#336648}.ticket-header h3{font-size:16px;font-weight:600;color:#1e293b;margin:0}.seat-badge{background:linear-gradient(135deg,#336648,#2a5239);color:#fff;font-size:12px;font-weight:600;padding:6px 14px;border-radius:20px}.ticket-route{display:flex;align-items:center;gap:12px;padding:16px 0;border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9}.route-info{flex:1}.route-info .label{display:block;font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.route-info .value{display:block;font-size:16px;font-weight:600;color:#1e293b;margin-top:4px}.route-arrow{color:#94a3b8}.ticket-footer{display:flex;justify-content:space-between;align-items:center;margin-top:16px}.ticket-date{display:flex;align-items:center;gap:6px;font-size:13px;color:#64748b}.ticket-date .separator{margin:0 2px}.view-ticket{display:flex;align-items:center;gap:4px;font-size:13px;color:#336648;font-weight:600}.search-section{background:#fff;padding:24px 20px;border-radius:20px;box-shadow:0 4px 24px #0000000f;border:1px solid rgba(0,0,0,.04)}.search-form{display:flex;flex-direction:column;gap:18px;position:relative}.form-group{position:relative}.label-icon{color:#336648}.custom-dropdown{position:relative}.dropdown-input{display:flex;align-items:center;min-height:54px;padding:0 16px;border:2px solid #e2e8f0;border-radius:14px;cursor:pointer;transition:all .2s ease;background:#f8fafc}.dropdown-input:hover{border-color:#cbd5e1}.dropdown-input:focus-within{border-color:#336648;background:#fff;box-shadow:0 0 0 4px #3366481a}.input-icon{color:#94a3b8;margin-right:12px;flex-shrink:0}.dropdown-input input{flex:1;border:none;outline:none;font-size:15px;background:transparent;color:#1e293b}.dropdown-input input::placeholder{color:#94a3b8}.selected-value{flex:1;font-size:15px;color:#1e293b;font-weight:500}.clear-btn{width:30px;height:30px;border:none;background:#e2e8f0;border-radius:50%;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.clear-btn:hover{background:#cbd5e1;color:#334155}.dropdown-menu{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 12px 40px #00000026;z-index:1000;margin-top:8px;max-height:320px;overflow:hidden}.dropdown-search{width:100%;padding:16px;border:none;border-bottom:1px solid #e2e8f0;font-size:15px;outline:none;background:#f8fafc}.dropdown-options{max-height:260px;overflow-y:auto}.dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:14px 16px;border:none;background:none;text-align:left;font-size:15px;color:#334155;cursor:pointer;transition:background .15s}.dropdown-item svg{color:#94a3b8;flex-shrink:0}.dropdown-item:hover{background:#f1f5f9}.dropdown-item.selected{background:#ecfdf5;color:#336648;font-weight:500}.dropdown-item.selected svg{color:#336648}.no-results{padding:24px;text-align:center;color:#94a3b8;font-size:14px}.dropdown-overlay{position:fixed;inset:0;z-index:999}.swap-btn{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:42px;height:42px;border:2px solid #e2e8f0;border-radius:50%;background:#fff;color:#336648;cursor:pointer;z-index:10;display:none;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 2px 8px #0000001a}.swap-btn:hover{background:#336648;color:#fff;border-color:#336648}.date-input-wrapper{display:flex;align-items:center;min-height:54px;padding:0 16px;border:2px solid #e2e8f0;border-radius:14px;background:#f8fafc;transition:all .2s ease}.date-input-wrapper:focus-within{border-color:#336648;background:#fff;box-shadow:0 0 0 4px #3366481a}.date-input{flex:1;border:none;outline:none;font-size:15px;color:#1e293b;background:transparent;cursor:pointer}.search-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px;border:none;border-radius:14px;background:linear-gradient(135deg,#336648,#2a5239);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:6px}.search-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 24px #33664859}.search-btn:disabled{background:#94a3b8;cursor:not-allowed}.quick-routes-section{margin-top:8px}.quick-routes{display:flex;flex-wrap:wrap;gap:10px}.quick-route-btn{display:flex;align-items:center;gap:6px;padding:12px 18px;border:1px solid #e2e8f0;border-radius:24px;background:#fff;font-size:13px;font-weight:500;color:#334155;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0000000a}.quick-route-btn svg{color:#336648}.quick-route-btn:hover{border-color:#336648;background:#ecfdf5;color:#336648;transform:translateY(-1px);box-shadow:0 4px 12px #33664826}.error-message{background:#fef2f2;color:#dc2626;padding:14px 16px;border-radius:12px;font-size:14px;margin-bottom:16px;border:1px solid #fecaca}@media(min-width:768px){.home-container{max-width:640px;margin:0 auto}.swap-btn{display:flex}}@media(max-width:380px){.home-header h1{font-size:24px}.quick-route-btn{padding:10px 14px;font-size:12px}.home-header{padding:28px 16px 36px}}.search-results-container{min-height:100vh;background:#f8fafc;padding-bottom:80px}.search-header{background:linear-gradient(135deg,#448760,#45875e);color:#fff;padding:18px 20px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:100}.back-btn{background:#ffffff26;border:none;color:#fff;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.back-btn:hover{background:#ffffff40}.route-info h1{font-size:17px;font-weight:600;margin:0;display:flex;align-items:center;gap:6px}.route-info p{font-size:13px;opacity:.9;margin:4px 0 0}.date-selector{display:flex;gap:10px;padding:14px 16px;background:#fff;overflow-x:auto;-webkit-overflow-scrolling:touch;border-bottom:1px solid #e2e8f0}.date-selector::-webkit-scrollbar{display:none}.date-btn{display:flex;flex-direction:column;align-items:center;padding:10px 18px;border:2px solid #e2e8f0;border-radius:12px;background:#fff;cursor:pointer;transition:all .2s;min-width:75px;flex-shrink:0}.date-btn:hover{border-color:#336648}.date-btn.active{background:linear-gradient(135deg,#336648,#2a5239);border-color:#336648;color:#fff}.date-day{font-size:11px;text-transform:uppercase;opacity:.7;font-weight:500}.date-label{font-size:13px;font-weight:600;margin-top:2px}.sort-options{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fff;border-bottom:1px solid #e2e8f0;overflow-x:auto}.sort-options span{font-size:13px;color:#64748b;white-space:nowrap;font-weight:500}.sort-options button{display:flex;align-items:center;gap:5px;padding:8px 14px;border:1px solid #e2e8f0;border-radius:20px;background:#fff;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s;color:#64748b}.sort-options button:hover{border-color:#336648;color:#336648}.sort-options button.active{background:linear-gradient(135deg,#336648,#2a5239);border-color:#336648;color:#fff}.results-section{padding:16px}.results-count{font-size:14px;color:#64748b;margin-bottom:14px;font-weight:500}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.loading-state .spinner-icon{color:#336648;animation:spin 1s linear infinite}.loading-state p{margin-top:16px;color:#64748b;font-size:15px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.empty-state .empty-icon{color:#94a3b8;margin-bottom:16px}.empty-state h3{font-size:18px;color:#1e293b;margin:0 0 8px;font-weight:600}.empty-state p{color:#64748b;margin:0;font-size:14px}.empty-state .suggestion{margin-top:8px;font-size:13px;color:#94a3b8}.bus-list{display:flex;flex-direction:column;gap:14px}.bus-card{background:#fff;border-radius:18px;padding:18px;box-shadow:0 2px 12px #0000000f;border:1px solid rgba(0,0,0,.04);transition:all .2s ease}.bus-card:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0000001a}.bus-provider{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.provider-info{display:flex;align-items:center;gap:12px}.provider-icon{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#ecfdf5,#d1fae5);color:#059669;display:flex;align-items:center;justify-content:center}.provider-info h3{font-size:15px;font-weight:600;color:#1e293b;margin:0 0 4px}.bus-type{font-size:12px;color:#64748b;background:#f1f5f9;padding:3px 10px;border-radius:12px;font-weight:500}.provider-rating{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:#f59e0b;background:#fef3c7;padding:5px 10px;border-radius:8px}.bus-route{display:flex;align-items:flex-start;gap:12px;padding:16px 0;border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9}.route-point{display:flex;flex-direction:column;flex:1}.route-point .time{font-size:20px;font-weight:700;color:#1e293b}.route-point .city{font-size:14px;color:#334155;font-weight:500;margin-top:4px}.route-point .station{font-size:12px;color:#94a3b8;margin-top:2px}.route-line{display:flex;flex-direction:column;align-items:center;padding-top:8px;gap:4px}.route-line .line{width:50px;height:2px;background:linear-gradient(90deg,#336648,#94a3b8);border-radius:1px;position:relative}.route-line .line:before,.route-line .line:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;top:-3px}.route-line .line:before{left:-4px;background:#336648}.route-line .line:after{right:-4px;background:#94a3b8}.route-arrow-icon{color:#94a3b8}.bus-footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px}.seats-info{display:flex;flex-direction:column;gap:4px}.seats-count{display:flex;align-items:center;gap:5px;font-size:13px;color:#64748b;font-weight:500}.seats-count.low{color:#ef4444}.seats-warning{display:flex;align-items:center;gap:4px;font-size:11px;color:#ef4444;font-weight:600}.price-book{display:flex;align-items:center;gap:14px}.price{font-size:22px;font-weight:700;color:#336648}.book-btn{background:linear-gradient(135deg,#336648,#2a5239);color:#fff;border:none;padding:12px 22px;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.book-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #3366484d}.book-btn:disabled{background:#94a3b8;cursor:not-allowed}@media(max-width:480px){.search-header{padding:14px 16px}.route-info h1{font-size:15px}.bus-card{padding:14px}.route-point .time{font-size:18px}.price{font-size:20px}.book-btn{padding:10px 18px;font-size:13px}}.book-bus-container{max-width:600px;margin:0 auto;padding:24px 20px 40px}.btn-back{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:#336648;font-size:15px;font-weight:600;cursor:pointer;padding:8px 0;margin-bottom:16px;transition:color .2s}.btn-back:hover{color:#2a5239}.booking-header{margin-bottom:24px}.booking-header h1{font-size:24px;font-weight:700;color:#1e293b;margin-bottom:16px}.bus-info-card{background:linear-gradient(135deg,#448760,#45875e);color:#fff;padding:24px;border-radius:20px;box-shadow:0 8px 30px #3366484d}.bus-info-card h2{font-size:20px;margin:0 0 8px;color:#fff}.bus-info-card .route{display:flex;align-items:center;gap:6px;font-size:16px;margin-bottom:16px;opacity:.95}.bus-details{display:flex;flex-wrap:wrap;gap:16px;font-size:14px}.bus-details span{display:flex;align-items:center;gap:6px;opacity:.9}.bus-details .price{font-size:20px;font-weight:700;opacity:1;margin-left:auto}.booking-form{background:#fff;padding:24px;border-radius:20px;box-shadow:0 4px 24px #0000000f;border:1px solid rgba(0,0,0,.04)}.booking-form h3{font-size:17px;font-weight:600;color:#1e293b;margin:24px 0 16px}.booking-form h3:first-child{margin-top:0}.form-group{margin-bottom:16px}.form-group label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#334155;margin-bottom:8px}.form-group label svg{color:#336648}.form-group input{width:100%;padding:14px 16px;border:2px solid #e2e8f0;border-radius:12px;font-size:15px;color:#1e293b;background:#f8fafc;transition:all .2s}.form-group input:focus{outline:none;border-color:#336648;background:#fff;box-shadow:0 0 0 4px #3366481a}.form-group input::placeholder{color:#94a3b8}.form-group input:disabled{background:#e2e8f0;cursor:not-allowed}.loading-seats{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;color:#64748b}.loading-seats .spinner{color:#336648;margin-bottom:12px}.seat-selection-header{display:flex;justify-content:space-between;align-items:center;margin:24px 0 16px}.seat-selection-header h3{margin:0}.seat-count{background:linear-gradient(135deg,#336648,#2a5239);color:#fff;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600}.max-seats-warning{display:flex;align-items:center;gap:8px;background:#fef3c7;border:1px solid #fcd34d;color:#92400e;padding:12px 16px;border-radius:12px;margin-bottom:16px;font-size:13px;font-weight:500}.seat-selection-wrapper{background:#f8fafc;border-radius:16px;padding:20px;margin:16px 0}.bus-front{display:flex;align-items:center;justify-content:center;gap:8px;text-align:center;padding:12px;background:linear-gradient(135deg,#336648,#2a5239);color:#fff;border-radius:12px;margin-bottom:20px;font-weight:600;font-size:13px}.seat-selection{display:grid;grid-template-columns:1fr 1fr minmax(40px,60px) 1fr 1fr;gap:8px;max-width:400px;margin:0 auto}.seat{aspect-ratio:1;border:2px solid #e2e8f0;border-radius:10px;background:#fff;font-weight:600;font-size:13px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.seat.available{background:#ecfdf5;color:#059669;border-color:#a7f3d0}.seat.available:hover{background:#d1fae5;transform:scale(1.05);border-color:#6ee7b7}.seat.selected{background:linear-gradient(135deg,#336648,#2a5239);color:#fff;border-color:#336648;transform:scale(1.1);box-shadow:0 4px 12px #33664866}.seat.reserved{background:#fef3c7;color:#d97706;border-color:#fcd34d;cursor:not-allowed;opacity:.8}.seat.booked{background:#fef2f2;color:#dc2626;border-color:#fecaca;cursor:not-allowed;opacity:.6;text-decoration:line-through}.seat.maxed{opacity:.4;cursor:not-allowed}.seat.maxed:hover{transform:none}.seat:disabled{cursor:not-allowed}.seat:disabled:hover{transform:none}.seat-legend{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin:16px 0 24px;padding:16px;background:#f8fafc;border-radius:12px}.legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#64748b}.seat-sample{width:24px;height:24px;border-radius:6px;border:2px solid}.seat-sample.available{background:#ecfdf5;border-color:#a7f3d0}.seat-sample.selected{background:#336648;border-color:#336648}.seat-sample.reserved{background:#fef3c7;border-color:#fcd34d}.seat-sample.booked{background:#fef2f2;border-color:#fecaca}.selected-seats-display{background:#ecfdf5;padding:16px;border-radius:14px;margin:16px 0}.selected-seats-display h4{margin:0 0 12px;font-size:13px;font-weight:600;color:#065f46}.selected-seats-tags{display:flex;flex-wrap:wrap;gap:8px}.seat-tag{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,#336648,#2a5239);color:#fff;padding:8px 12px;border-radius:20px;font-size:13px;font-weight:500}.remove-seat{background:#fff3;border:none;color:#fff;width:20px;height:20px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .2s}.remove-seat:hover{background:#ffffff4d}.booking-summary{background:#f8fafc;padding:20px;border-radius:14px;margin:24px 0}.booking-summary h3{margin:0 0 16px!important}.summary-row{display:flex;justify-content:space-between;padding:10px 0;font-size:14px;color:#475569}.summary-row.total{border-top:2px solid #e2e8f0;margin-top:8px;padding-top:16px;font-weight:700;font-size:18px;color:#336648}.form-subtitle{color:#64748b;font-size:14px;margin-bottom:20px}.passenger-list{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.passenger-item{background:#f8fafc;padding:16px;border-radius:14px;border:1px solid #e2e8f0}.passenger-seat{display:flex;align-items:center;gap:8px;margin-bottom:12px}.passenger-seat .seat-badge{background:linear-gradient(135deg,#336648,#2a5239);color:#fff;padding:5px 12px;border-radius:20px;font-size:12px;font-weight:600}.primary-badge{background:#fef3c7;color:#92400e;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600}.passenger-item .form-group{margin:0}.payment-card,.success-card,.processing-card{background:#fff;padding:40px 24px;border-radius:24px;box-shadow:0 8px 40px #0000001a;text-align:center;max-width:500px;margin:0 auto}.payment-icon{color:#336648;margin-bottom:20px}.success-icon{width:80px;height:80px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.payment-card h1,.success-card h1,.processing-card h1{font-size:24px;font-weight:700;color:#1e293b;margin-bottom:12px}.payment-card>p,.success-card>p,.processing-card>p{color:#64748b;font-size:15px;margin-bottom:24px}.email-notice{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;background:#ecfdf5;color:#065f46;padding:16px;border-radius:12px;margin:16px 0;font-size:14px;line-height:1.5}.email-notice strong{word-break:break-all}.payment-details,.ticket-summary{background:#f8fafc;padding:20px;border-radius:14px;margin:24px 0;text-align:left}.ticket-summary h3{margin:0 0 16px;font-size:15px;color:#1e293b}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #e2e8f0;font-size:14px;color:#475569}.detail-row:last-child{border-bottom:none}.detail-row span:last-child{display:flex;align-items:center;gap:4px;font-weight:500;color:#1e293b}.detail-row .amount{font-size:20px;font-weight:700;color:#336648}.payment-instructions{background:#fef3c7;border:1px solid #fcd34d;padding:16px;border-radius:12px;margin:20px 0;text-align:left}.payment-instructions h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;color:#92400e;font-size:14px}.payment-instructions p{margin:0;color:#92400e;font-size:13px}.loading-indicator{margin:24px 0;display:flex;flex-direction:column;align-items:center;gap:12px}.loading-indicator .spinner{color:#336648}.loading-indicator p{color:#64748b;margin:0}.loading-indicator .text-sm{font-size:13px;color:#94a3b8}.processing-warning{background:#fef3c7;border:2px solid #fcd34d;border-radius:14px;padding:16px;margin:20px 0;display:flex;align-items:flex-start;gap:12px;text-align:left}.processing-warning .warning-icon{color:#d97706;flex-shrink:0}.processing-warning p{margin:0;color:#92400e;font-size:13px}.processing-warning strong{color:#78350f}.processing-message{font-size:16px!important}.success-actions{display:flex;flex-direction:column;gap:12px;margin-top:24px}.success-actions .btn{display:flex;align-items:center;justify-content:center;gap:8px}.tickets-list{margin:20px 0;padding:16px;background:#f8fafc;border-radius:14px}.tickets-list h4{margin:0 0 12px;font-size:13px;color:#64748b}.tickets-list .btn{margin:4px}.btn-sm{padding:10px 16px;font-size:13px}.btn-full{width:100%}.btn-cancel{margin-top:16px;color:#dc2626;border-color:#dc2626}.btn-cancel:hover{background:#fef2f2}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@media(max-width:480px){.book-bus-container{padding:20px 16px}.bus-info-card{padding:20px}.bus-details{flex-direction:column;gap:10px}.bus-details .price{margin-left:0}.booking-form{padding:20px}.payment-card,.success-card,.processing-card{padding:32px 20px}.seat-selection{grid-template-columns:1fr 1fr 30px 1fr 1fr;gap:6px}.seat{font-size:12px}.seat-selection-header{flex-direction:column;align-items:flex-start;gap:10px}}.tickets-container{max-width:600px;margin:0 auto;padding:var(--spacing-lg) var(--spacing-md)}.tickets-header{margin-bottom:var(--spacing-lg)}.tickets-header h1{font-size:var(--font-size-xl);color:var(--color-dark);margin:0 0 var(--spacing-xs) 0}.tickets-header p{font-size:var(--font-size-sm);color:var(--color-gray);margin:0}.tickets-tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);background:var(--color-off-white);padding:4px;border-radius:var(--radius-lg)}.tab{flex:1;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;border-radius:var(--radius-md);font-weight:600;color:var(--color-gray);cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-sm)}.tab.active{background:#fff;color:var(--color-primary);box-shadow:var(--shadow-sm)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:var(--spacing-md);color:var(--color-gray)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center;padding:var(--spacing-xl)}.empty-icon{font-size:3rem;margin-bottom:var(--spacing-md)}.empty-state h2{font-size:var(--font-size-lg);color:var(--color-dark);margin:0 0 var(--spacing-sm) 0}.empty-state p{font-size:var(--font-size-sm);color:var(--color-gray);margin:0 0 var(--spacing-lg) 0}.tickets-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.ticket-card-compact{background:#fff;border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.06);transition:all var(--transition-base)}.ticket-card-compact:hover{box-shadow:var(--shadow-md)}.ticket-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.ticket-route-compact{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:700;font-size:var(--font-size-base);color:var(--color-dark)}.route-arrow{color:var(--color-primary);font-weight:400}.ticket-seat{background:var(--color-primary);color:#fff;padding:4px 10px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600}.ticket-middle{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.ticket-info{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-gray)}.info-dot{color:var(--color-gray-light)}.info-time{color:var(--color-dark)}.ticket-price{font-size:var(--font-size-lg);font-weight:700;color:var(--color-primary)}.ticket-company-row{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-sm);margin-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-gray-light)}.company-name{font-size:var(--font-size-sm);color:var(--color-gray)}.ticket-status-badge{font-size:var(--font-size-xs);padding:2px 8px;border-radius:var(--radius-full);font-weight:600;text-transform:capitalize}.ticket-status-badge.confirmed{background:#d1fae5;color:#065f46}.ticket-status-badge.pending{background:#fef3c7;color:#92400e}.ticket-status-badge.cancelled{background:#fee2e2;color:#991b1b}.ticket-status-badge.used{background:#e0e7ff;color:#3730a3}.ticket-actions-compact{display:flex;gap:var(--spacing-sm)}.btn-action{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-base);text-align:center}.btn-download{background:var(--color-primary);color:#fff}.btn-download:hover{background:var(--color-primary-dark)}.btn-resend{background:var(--color-off-white);color:var(--color-dark);border:1px solid var(--color-gray-light)}.btn-resend:hover{background:var(--color-gray-light)}.btn-resend:disabled{opacity:.6;cursor:not-allowed}.error-message{background:#fee2e2;color:#991b1b;padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm);text-align:center}@media(max-width:380px){.ticket-route-compact{font-size:var(--font-size-sm)}.ticket-actions-compact{flex-direction:column}.btn-action{width:100%}}.profile-container{max-width:900px;margin:0 auto;padding:24px 20px 40px}.profile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.profile-header h1{font-size:24px;font-weight:700;color:#1e293b;margin:0}.logout-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;border:2px solid #e2e8f0;border-radius:10px;background:#fff;color:#64748b;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.logout-btn:hover{border-color:#ef4444;color:#ef4444;background:#fef2f2}.profile-card{background:#fff;border-radius:20px;padding:32px;box-shadow:0 4px 20px #0000000f;border:1px solid rgba(0,0,0,.04);margin-bottom:24px}.profile-avatar{text-align:center;padding-bottom:28px;border-bottom:1px solid #f1f5f9;margin-bottom:28px}.avatar-circle{width:100px;height:100px;border-radius:50%;background:linear-gradient(135deg,#336648,#2a5239);color:#fff;display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:700;margin:0 auto 16px;box-shadow:0 8px 30px #3366484d}.profile-avatar h2{font-size:22px;font-weight:700;color:#1e293b;margin:0 0 8px}.user-type{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;color:#64748b;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:500;text-transform:capitalize}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-header h3{font-size:16px;font-weight:600;color:#1e293b;margin:0}.edit-btn{display:flex;align-items:center;gap:6px;background:none;border:none;color:#336648;font-size:14px;font-weight:600;cursor:pointer;padding:8px 12px;border-radius:8px;transition:all .2s}.edit-btn:hover{background:#ecfdf5}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.profile-info .form-group{display:flex;flex-direction:column;gap:8px}.profile-info .form-group label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#64748b}.profile-info .form-group label svg{color:#336648}.info-value{font-size:15px;color:#1e293b;font-weight:500;margin:0;padding:14px 16px;background:#f8fafc;border-radius:10px;border:1px solid #e2e8f0}.profile-info .form-group input{width:100%;padding:14px 16px;border:2px solid #e2e8f0;border-radius:10px;font-size:15px;color:#1e293b;background:#fff;transition:all .2s}.profile-info .form-group input:focus{outline:none;border-color:#336648;box-shadow:0 0 0 4px #3366481a}.profile-actions{display:flex;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid #f1f5f9}.profile-actions .btn{display:flex;align-items:center;gap:8px;padding:12px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.profile-actions .btn-primary{background:linear-gradient(135deg,#336648,#2a5239);color:#fff;border:none}.profile-actions .btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #3366484d}.profile-actions .btn-outline{background:#fff;color:#64748b;border:2px solid #e2e8f0}.profile-actions .btn-outline:hover{border-color:#cbd5e1;background:#f8fafc}.profile-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.stat-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 20px #0000000f;border:1px solid rgba(0,0,0,.04);display:flex;align-items:center;gap:16px;transition:all .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0000001a}.stat-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon.tickets-icon{background:linear-gradient(135deg,#ecfdf5,#d1fae5);color:#059669}.stat-icon.rewards-icon{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#d97706}.stat-icon.spent-icon{background:linear-gradient(135deg,#ede9fe,#ddd6fe);color:#7c3aed}.stat-info{display:flex;flex-direction:column;gap:4px}.stat-value{font-size:24px;font-weight:700;color:#1e293b}.stat-label{font-size:13px;color:#64748b;font-weight:500}@media(max-width:768px){.profile-container{padding:20px 16px}.profile-header{flex-direction:column;align-items:flex-start;gap:16px}.logout-btn{width:100%;justify-content:center}.profile-card{padding:24px 20px}.avatar-circle{width:80px;height:80px;font-size:28px}.info-grid{grid-template-columns:1fr}.profile-actions{flex-direction:column}.profile-actions .btn{width:100%;justify-content:center}.profile-stats{grid-template-columns:1fr}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #336648;--color-primary-light: #44ba8b;--color-primary-dark: #2a5239;--color-white: #FFFFFF;--color-off-white: #f8fafc;--color-light: #f1f5f9;--color-gray-light: #e2e8f0;--color-gray: #64748b;--color-gray-dark: #475569;--color-dark: #1e293b;--color-success: #10b981;--color-error: #ef4444;--color-warning: #f59e0b;--color-info: #3b82f6;--font-family-serif: "Georgia", "Times New Roman", serif;--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .875rem;--radius-xl: 1rem;--radius-2xl: 1.25rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:1.5;color:var(--color-dark);background-color:var(--color-off-white);min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}main{flex:1;position:relative;z-index:1;padding-top:64px}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--color-dark)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}p{color:var(--color-gray-dark)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-base)}a:hover{color:var(--color-primary-dark)}button{font-family:var(--font-family-base);cursor:pointer;border:none;background:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;font-weight:600;font-size:var(--font-size-base);border-radius:var(--radius-lg);transition:all var(--transition-base);min-height:48px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:var(--color-white);border:none}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #3366484d}.btn-secondary{background:transparent;color:var(--color-primary);border:2px solid var(--color-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-primary);color:var(--color-white)}.btn-outline{background:var(--color-white);color:var(--color-gray-dark);border:2px solid var(--color-gray-light)}.btn-outline:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}input,textarea,select{font-family:var(--font-family-base);font-size:var(--font-size-base);width:100%;padding:14px 16px;border:2px solid var(--color-gray-light);border-radius:var(--radius-lg);background:var(--color-white);color:var(--color-dark);transition:all var(--transition-base)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #3366481a}input::placeholder,textarea::placeholder{color:var(--color-gray)}label{display:block;margin-bottom:8px;font-weight:600;font-size:var(--font-size-sm);color:var(--color-dark)}.card{background:var(--color-white);border-radius:var(--radius-xl);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:600}.badge-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:var(--color-white)}.badge-success{background:#ecfdf5;color:#059669}.badge-warning{background:#fef3c7;color:#d97706}.badge-error{background:#fef2f2;color:#dc2626}@keyframes spin{to{transform:rotate(360deg)}}.spinner{animation:spin 1s linear infinite}.rewards-placeholder{min-height:calc(100vh - 80px);display:flex;align-items:center;justify-content:center;padding:20px}.rewards-content{text-align:center;max-width:400px}.rewards-icon{font-size:64px;margin-bottom:20px}.rewards-content h1{font-size:24px;margin-bottom:12px;color:var(--color-dark)}.rewards-content p{color:var(--color-gray);font-size:15px}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.text-center{text-align:center}.text-primary{color:var(--color-primary)}.text-gray{color:var(--color-gray)}@media(max-width:768px){:root{--font-size-3xl: 1.5rem;--font-size-2xl: 1.25rem}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-light)}::-webkit-scrollbar-thumb{background:var(--color-gray-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-gray)}
