body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{align-items:center;background-color:#fff;display:flex;flex-direction:column;gap:2rem;justify-content:center;min-height:100vh;padding:40px 20px}.logo img{border:3px solid #00ab86;border-radius:15px;box-shadow:0 4px 8px #00ab8633;margin-bottom:1rem;max-height:150px;object-fit:contain;width:auto}.role-buttons{align-items:center;display:flex;flex-direction:column;gap:1.5rem;max-width:350px;width:100%}.button{background-color:#00ab86;border:none;border-radius:10px;box-shadow:0 3px 6px #00ab864d;color:#fff;cursor:pointer;font-size:18px;font-weight:700;height:55px;transition:all .3s ease;width:100%}.button:hover{background-color:#009973;box-shadow:0 5px 12px #00ab8666;transform:translateY(-2px)}.footer-text{background-color:#f8fffd;border:3px solid #00ab86;border-radius:15px;box-shadow:0 2px 4px #00ab861a;color:#00ab86;font-size:16px;font-weight:700;margin-top:1rem;padding:20px 30px;text-align:center}.rider-login-container{background-color:#fff;margin:0 auto;max-width:400px;padding:24px;text-align:center}.rider-logo{border:2.5px solid #00ab86;border-radius:12px;height:200px;margin-bottom:28px}.input-box{background-color:#e0f2f1;border:1.5px solid #00ab86;border-radius:12px;margin:10px 0;padding:12px}.input-box input{background:none;border:none;font-size:16px;outline:none;width:100%}.forgot-link{margin-bottom:12px;text-align:right}.forgot-link button{background:none;border:none;color:#00ab86;cursor:pointer;font-weight:500}.back-btn,.login-btn{border:none;border-radius:12px;cursor:pointer;font-size:16px;font-weight:700;padding:16px;width:100%}.login-btn{background-color:#00ab86;color:#fff;margin-bottom:12px}.back-btn{background-color:#eee;border:1.5px solid #00ab86;color:teal}.header-title{background-color:#00ab86;color:#fff;font-size:1.5rem;font-weight:700;padding:1rem 2rem;text-align:center}.sidebar{align-items:center;background-color:#f1f8f6;border-right:2px solid #00ab86;display:flex;flex-direction:column;gap:1rem;padding:1.5rem;width:300px}.logo{border:none;border-radius:12px;margin-bottom:1rem;max-height:150px;object-fit:contain}.welcome-box{background-color:#00ab86;border:2px solid #00ab86;border-radius:8px;color:#fff;font-weight:700;padding:12px;text-align:center;width:100%}.address-input{background-color:#fff;border:2px solid #00ab86;border-radius:7px;font-size:16px;padding:12px;width:100%}.address-input:focus{border-color:#0d9488;box-shadow:0 0 0 2px #0d948833;outline:none}.fare-summary{background-color:#fff;border:1px solid #e0f2f1;border-radius:8px;color:#333;font-size:14px;padding:10px 14px;width:100%}.see-price-btn{background-color:#00ab86;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:12px;transition:background-color .2s ease;width:100%}.see-price-btn:disabled{background-color:#b2dfdb;cursor:not-allowed}.ride-history-button{border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:30px;font-weight:700;padding:12px;transition:background-color .2s ease;width:100%}.ride-history-button,.ride-history-button:hover{background-color:#00ab86}.map-wrapper{border:4px solid #00ab86;flex:1 1;margin:1rem}.speech-bubble-horizontal{background-color:#fff;border-radius:12px;box-shadow:0 4px 12px #0003;font-family:sans-serif;left:0;max-width:260px;padding:10px 14px;position:absolute;top:0;transform:translate(-50%,-100%);z-index:9999}.speech-bubble-horizontal.pickup{border-left:4px solid #00ab86}.speech-bubble-horizontal.dropoff{border-left:4px solid #d93025}.bubble-tail-horizontal{border-left:8px solid #0000;border-right:8px solid #0000;border-top:8px solid #fff;bottom:-8px;height:0;left:49%;position:absolute;transform:translateX(-50%);width:0}.bubble-content{color:#333;display:flex;flex-direction:row;line-height:1.3}.bubble-title{color:#777;font-size:10px;font-weight:600;margin-bottom:2px;text-transform:uppercase}.bubble-address{color:#222;font-size:13px;font-weight:700}@media (max-width:768px){.sidebar{border-bottom:2px solid #00ab86;border-right:none;width:100%}.map-wrapper{border:none;margin:1rem 0 0}}.trip-card{background-color:#fff;border:2.5px solid #00ab86;border-radius:16px;box-shadow:0 10px 30px #00000014;color:#222;font-family:Segoe UI,sans-serif;margin:2rem auto;max-width:420px;padding:2rem;text-align:center}.trip-logo{margin-bottom:1rem;width:150px}.trip-heading{color:#00ab86;font-size:1.5rem;font-weight:700;margin-bottom:.3rem}.trip-subtext{color:#555;font-size:.95rem;margin-bottom:1.6rem}.trip-group{margin-bottom:1rem;text-align:left}.trip-group label{color:#666;display:block;font-size:.92rem;font-weight:600;margin-bottom:.2rem}.trip-group span{color:#111;font-size:1.05rem}.back-button,.trip-button{background-color:#00ab86;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1.05rem;font-weight:700;margin-top:1.8rem;padding:.9rem;transition:background-color .25s ease;width:100%}.trip-button:hover{background-color:#009f7a}.driver-warning-banner{background-color:#fff4e5;border:1px solid #ffc107;border-radius:10px;color:#7a5500;padding:.9rem 1.1rem}.driver-success-banner,.driver-warning-banner{font-size:.95rem;margin-bottom:1.5rem;text-align:center}.driver-success-banner{background-color:#e6ffed;border:1px solid #28a745;border-radius:10px;color:#1c5c33;font-weight:500;padding:1rem}.logout-button{background-color:#28a745;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:700;margin-top:1rem;padding:.7rem 1.2rem}.logout-button:hover{background-color:#218838}.driver-suggested-banner{background-color:#f0f8ff;border-left:4px solid #0af;border-radius:6px;font-size:14px;margin:12px 0;padding:12px 16px}.suggested-button{background-color:#07c;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:8px;padding:8px 14px}.suggested-button:hover{background-color:#005fa3}.alternatives-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.alternatives-dialog{background:#fff;border-radius:16px;box-shadow:0 10px 25px #0003;max-height:80vh;max-width:500px;overflow-y:auto;padding:24px;width:90%}.alternatives-dialog h3{color:#2c3e50;font-size:1.5rem;margin:0 0 16px;text-align:center}.alternatives-dialog p{color:#666;font-size:.9rem;line-height:1.4;margin:0 0 20px}.booking-progress{align-items:center;display:flex;flex-direction:column;padding:40px 20px}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#009688;height:40px;margin-bottom:16px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.booking-progress p{color:#009688;font-size:1rem;font-weight:600;margin:0}.alternatives-list{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.alternative-option{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:12px;cursor:pointer;display:flex;padding:16px;transition:all .2s ease}.alternative-option:hover{background:#f0f8f7;border-color:#009688;box-shadow:0 4px 12px #00968826;transform:translateY(-2px)}.alternative-option:active{transform:translateY(0)}.alternative-icon{font-size:2rem;margin-right:16px;min-width:48px;text-align:center}.alternative-details{flex:1 1}.alternative-label{color:#2c3e50;font-size:1.1rem;font-weight:700;margin-bottom:4px}.alternative-date{color:#666;font-size:.9rem}.alternatives-actions{display:flex;gap:12px;justify-content:center}.cancel-button,.different-time-button{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s ease}.cancel-button{background:#f5f5f5;color:#666}.cancel-button:hover{background:#e0e0e0}.different-time-button{background:#009688;color:#fff}.different-time-button:hover{background:#00796b;transform:translateY(-1px)}@media (max-width:600px){.alternatives-dialog{margin:20px;padding:20px;width:95%}.alternative-option{padding:12px}.alternative-icon{font-size:1.5rem;margin-right:12px;min-width:40px}.alternatives-actions{flex-direction:column}.cancel-button,.different-time-button{width:100%}}.register-container{align-items:center;background-color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:24px 16px}.register-header{color:#333;margin-bottom:28px;padding:1rem 0;text-align:center}.header-logo{border:1.5px solid #00ab86;border-radius:12px;height:150px;margin-bottom:20px}.register-header h1{color:#00ab86;font-size:30px;font-weight:700;margin:0}.register-form{background:#0000;border-radius:0;box-shadow:none;max-width:100%;padding:0;width:100%}.form-group{margin-bottom:16px}.form-group input{background-color:#00ab860d;border:1.5px solid #00ab86;border-radius:12px;box-sizing:border-box;font-size:16px;padding:12px;transition:border-color .3s;width:100%}.form-group input:focus{background-color:#00ab861a;border-color:#00ab86;outline:none}.form-group input.error{background-color:#fdf2f2;border-color:#e74c3c}.error-message{color:#e74c3c;display:block;font-size:14px;margin-top:5px}.register-button{background-color:#00ab86;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;margin-bottom:12px;margin-top:24px;padding:16px;transition:background-color .3s;width:100%}.register-button:hover:not(:disabled){background-color:#00695c}.register-button:disabled{background-color:#ccc;cursor:not-allowed}.register-footer{margin-top:1rem;padding:0;text-align:center}.register-footer p{color:#666;margin-bottom:1rem}.login-link{background-color:#f2f2f2;border:1.5px solid #00ab86;border-radius:12px;color:#00ab86;cursor:pointer;font-size:16px;font-weight:700;padding:16px;transition:all .3s;width:100%}.login-link:hover:not(:disabled){background-color:#e0e0e0}.login-link:disabled{border-color:#ccc;color:#ccc;cursor:not-allowed}.admin-panel{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0 auto;max-width:1200px;padding:20px}.admin-header{align-items:center;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.admin-header h1{color:#333;font-size:28px;margin:0}.admin-actions{display:flex;gap:10px}.admin-access-denied,.admin-login-required{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin:0 auto;max-width:400px;padding:60px 20px;text-align:center}.admin-access-denied h2,.admin-login-required h2{color:#495057;margin-bottom:15px}.admin-login-form{margin-top:30px;text-align:left}.admin-login-form .form-group{margin-bottom:20px}.admin-login-form .form-actions{display:flex;gap:10px;justify-content:center;margin-top:25px}.btn-delete,.btn-edit,.btn-primary,.btn-secondary,.btn-toggle{border:none;border-radius:5px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 16px;transition:all .2s ease}.btn-primary{background-color:#007bff;color:#fff}.btn-primary:hover:not(:disabled){background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#545b62}.btn-edit{background-color:#ffc107;color:#212529}.btn-edit:hover{background-color:#e0a800}.btn-toggle.activate{background-color:#28a745;color:#fff}.btn-toggle.deactivate{background-color:#dc3545;color:#fff}.btn-toggle:hover{opacity:.8}.btn-delete{background-color:#dc3545;color:#fff}.btn-delete:hover{background-color:#c82333}button:disabled{cursor:not-allowed;opacity:.6}.promo-form{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin-bottom:30px;padding:25px}.promo-form h3{color:#495057;margin:0 0 20px}.form-row{display:flex;gap:20px;margin-bottom:15px}.form-group{flex:1 1}.form-group label{color:#495057;display:block;font-weight:500;margin-bottom:5px}.form-group input,.form-group select{border:1px solid #ced4da;border-radius:4px;box-sizing:border-box;font-size:14px;padding:8px 12px;width:100%}.form-group input:focus,.form-group select:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.form-group input[type=checkbox]{margin-right:8px;width:auto}.form-actions{border-top:1px solid #dee2e6;display:flex;gap:10px;margin-top:25px;padding-top:20px}.promo-list h3{color:#495057;margin-bottom:20px}.loading{font-size:16px}.loading,.no-codes{color:#6c757d;padding:40px;text-align:center}.no-codes{background:#f8f9fa;border-radius:8px}.no-codes,.promo-card{border:1px solid #dee2e6}.promo-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:15px;padding:20px;transition:box-shadow .2s ease}.promo-card:hover{box-shadow:0 4px 8px #00000026}.promo-card.inactive{background:#f8f9fa;opacity:.7}.promo-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.promo-header h4{background:#e9ecef;border-radius:4px;color:#495057;font-family:Courier New,monospace;font-size:20px;margin:0;padding:5px 10px}.status-badge{border-radius:12px;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase}.status-badge.active{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.status-badge.inactive{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.promo-description{color:#6c757d;font-style:italic;margin:10px 0 15px}.promo-details{grid-gap:10px;background:#f8f9fa;border-radius:4px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:20px;padding:15px}.detail-item{color:#495057;font-size:14px}.detail-item strong{color:#212529}.promo-actions{display:flex;flex-wrap:wrap;gap:10px}@media (max-width:768px){.admin-panel{padding:15px}.admin-header{align-items:stretch;flex-direction:column;gap:15px}.admin-actions{justify-content:center}.form-row{flex-direction:column;gap:15px}.promo-details{grid-template-columns:1fr}.promo-actions{justify-content:center}.promo-header{align-items:flex-start;flex-direction:column;gap:10px}}@media (max-width:480px){.admin-panel{padding:10px}.promo-card,.promo-form{padding:15px}.admin-header h1{font-size:24px}}
/*# sourceMappingURL=main.d0e69a58.css.map*/