#bbi-booking-hero{position:relative;width:100%;height:100vh;overflow:hidden;font-family:-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bbi-bg,#0b0d10) !important;}
#bbi-map{position:absolute;inset:0;width:100%;height:100%;}

/* Reset so the active theme's global button styling (borders, outlines, box-shadow) can't leak in.
   :where() keeps this at zero specificity so the specific button classes below still win. */
:where(#bbi-booking-hero, #bbi-pay-modal) :where(button){
    all:unset;
    box-sizing:border-box;
    font-family:inherit;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}

/* Compensate for the WordPress admin toolbar so logged-in users don't get a scrollbar */
body.admin-bar #bbi-booking-hero{height:calc(100vh - 32px);}
@media screen and (max-width:782px){
    body.admin-bar #bbi-booking-hero{height:calc(100vh - 46px);}
}

#bbi-form-card{position:absolute;top:0;right:0;bottom:0;width:380px;max-width:92vw;
    background:var(--bbi-panel-rgba,rgba(15,17,21,.86)) !important;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border-left:1px solid rgba(var(--bbi-accent-rgb,14,39,61),.25) !important;padding:32px 26px;z-index:5;overflow-y:auto;
    display:flex;flex-direction:column;transition:transform .3s ease;}
.bbi-brand{color:var(--bbi-accent,#0e273d) !important;font-size:13px;letter-spacing:2px;text-transform:uppercase;font-weight:700;margin-bottom:22px;
    display:flex;align-items:center;justify-content:space-between;}
#bbi-toggle-panel{background:none !important;border:1px solid rgba(255,255,255,.2) !important;color:var(--bbi-accent,#0e273d) !important;width:26px;height:26px;
    border-radius:50%;cursor:pointer;font-size:13px;line-height:1;flex-shrink:0;}
#bbi-toggle-panel:hover{border-color:var(--bbi-accent,#0e273d) !important;}

#bbi-show-panel{display:none;position:absolute;top:20px;right:20px;z-index:6;background:var(--bbi-accent,#0e273d) !important;color:var(--bbi-btn-text,#ffffff) !important;
    border:none !important;padding:11px 18px;border-radius:24px;font-weight:700;font-size:13px;cursor:pointer;
    box-shadow:0 4px 14px rgba(0,0,0,.4);letter-spacing:.3px;}

#bbi-booking-hero.bbi-panel-hidden #bbi-form-card{transform:translateX(110%);}

.bbi-step-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;
    color:var(--bbi-text,#fff) !important;font-size:15px;font-weight:700;}
.bbi-edit-ride{background:none !important;border:none !important;color:var(--bbi-accent,#0e273d) !important;font-size:12px;cursor:pointer;padding:0;}
.bbi-edit-ride:hover{text-decoration:underline;}

.bbi-timing{display:flex;gap:8px;margin:18px 0 4px;}
.bbi-timing-btn{flex:1;gap:6px;padding:12px;border-radius:10px;border:1px solid rgba(255,255,255,.15) !important;
    background:rgba(255,255,255,.04) !important;color:#cfcfcf !important;font-size:13px;transition:all .15s ease;}
.bbi-timing-btn:hover{border-color:rgba(var(--bbi-accent-rgb,14,39,61),.5) !important;}
.bbi-timing-btn.active{background:var(--bbi-accent,#0e273d) !important;color:var(--bbi-btn-text,#ffffff) !important;border-color:var(--bbi-accent,#0e273d) !important;font-weight:700;}

.bbi-label{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:700;color:var(--bbi-accent,#0e273d) !important;margin-bottom:8px;}
.bbi-input-wrap{position:relative;margin-bottom:6px;}
.bbi-input-wrap input{width:100%;padding:14px 14px 14px 36px;border:1px solid rgba(255,255,255,.15) !important;
    border-radius:10px;font-size:14px;box-sizing:border-box;background:rgba(255,255,255,.05) !important;color:var(--bbi-text,#fff) !important;}
.bbi-input-wrap input::placeholder{color:#888 !important;}
.bbi-input-wrap input:focus{outline:none;border-color:var(--bbi-accent,#0e273d) !important;}
.bbi-pin{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:9px;height:9px;border-radius:50%;}
.bbi-pin-gold{background:var(--bbi-accent,#0e273d) !important;} .bbi-pin-white{background:#fff !important;}
.bbi-connector{width:1px;height:18px;background:rgba(255,255,255,.15) !important;margin:0 0 14px 17px;}

#bbi-notes{width:100%;padding:12px 14px;border:1px solid rgba(255,255,255,.15) !important;border-radius:10px;
    font-size:13px;box-sizing:border-box;background:rgba(255,255,255,.05) !important;color:var(--bbi-text,#fff) !important;font-family:inherit;
    resize:vertical;margin-bottom:16px;}
#bbi-notes::placeholder{color:#888 !important;}
#bbi-notes:focus{outline:none;border-color:var(--bbi-accent,#0e273d) !important;}

.bbi-btn-primary{width:100%;padding:15px;border-radius:10px;font-size:15px;font-weight:700;
    margin-top:16px;letter-spacing:.5px;background:var(--bbi-accent,#0e273d) !important;color:var(--bbi-btn-text,#ffffff) !important;
    transition:all .15s ease;box-shadow:0 4px 14px rgba(var(--bbi-accent-rgb,14,39,61),.15);}
.bbi-btn-primary:hover{filter:brightness(0.85);box-shadow:0 6px 18px rgba(var(--bbi-accent-rgb,14,39,61),.25);}
.bbi-btn-primary:disabled{background:rgba(255,255,255,.1) !important;color:#777 !important;cursor:not-allowed;box-shadow:none;}

/* Vehicle list — Step 2 */
#bbi-vehicle-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;}
.bbi-vehicle-card{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid rgba(255,255,255,.12) !important;
    border-radius:10px;cursor:pointer;transition:all .15s ease;background:rgba(255,255,255,.02) !important;}
.bbi-vehicle-card:hover{border-color:rgba(var(--bbi-accent-rgb,14,39,61),.4) !important;}
.bbi-vehicle-card.selected{border-color:var(--bbi-accent,#0e273d) !important;background:rgba(var(--bbi-accent-rgb,14,39,61),.08) !important;}
.bbi-vehicle-thumb{width:56px;height:40px;flex-shrink:0;border-radius:6px;overflow:hidden;background:rgba(255,255,255,.05) !important;}
.bbi-vehicle-thumb img{width:100%;height:100%;object-fit:cover;}
.bbi-vehicle-img-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#2a2e35,#1d2126) !important;}
.bbi-vehicle-info{flex:1;min-width:0;}
.bbi-vehicle-name{color:var(--bbi-text,#fff) !important;font-size:14px;font-weight:700;}
.bbi-vehicle-tagline{color:#999 !important;font-size:11px;margin-top:2px;}
.bbi-vehicle-meta{display:flex;gap:10px;margin-top:4px;color:#999 !important;font-size:11px;}
.bbi-vehicle-price{color:var(--bbi-accent,#0e273d) !important;font-weight:700;font-size:15px;flex-shrink:0;}

.bbi-selected-bar{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;
    background:rgba(255,255,255,.04) !important;border-radius:8px;font-size:13px;color:#ccc !important;}
#bbi-selected-price{color:var(--bbi-accent,#0e273d) !important;font-weight:700;}

/* Journey summary — Step 3 */
.bbi-summary-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;
    border-bottom:1px solid rgba(255,255,255,.08) !important;font-size:13px;color:#999 !important;}
.bbi-summary-row strong{color:var(--bbi-text,#fff) !important;text-align:right;font-weight:600;}

.bbi-payment-options{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;}
.bbi-payment-tile{flex:1 1 calc(50% - 5px);display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;
    border:1px solid rgba(255,255,255,.15) !important;border-radius:10px;background:rgba(255,255,255,.02) !important;
    color:#cfcfcf !important;font-size:12px;transition:all .15s ease;}
.bbi-payment-tile:hover{border-color:rgba(var(--bbi-accent-rgb,14,39,61),.5) !important;}
.bbi-payment-tile.active{border-color:var(--bbi-accent,#0e273d) !important;background:rgba(var(--bbi-accent-rgb,14,39,61),.08) !important;color:var(--bbi-accent,#0e273d) !important;font-weight:700;}
.bbi-payment-icon{font-size:18px;}

.bbi-total-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;
    border-top:1px solid rgba(255,255,255,.15) !important;margin-top:6px;font-size:18px;font-weight:700;color:var(--bbi-accent,#0e273d) !important;}

#bbi-pay-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6) !important;z-index:9999;align-items:center;justify-content:center;}
#bbi-pay-modal.active{display:flex;}
#bbi-pay-modal-inner{position:relative;background:var(--bbi-panel-solid,#14161a) !important;border:1px solid rgba(var(--bbi-accent-rgb,14,39,61),.25) !important;border-radius:14px;
    padding:28px;width:420px;max-width:92vw;max-height:88vh;overflow-y:auto;color:var(--bbi-text,#fff) !important;}
#bbi-pay-modal-inner h3{margin:0 0 6px;color:var(--bbi-accent,#0e273d) !important;}
#bbi-pay-amount{color:#ccc !important;margin-bottom:18px;font-size:14px;}
#bbi-pay-close{position:absolute;top:14px;right:16px;background:none !important;border:none !important;color:#aaa !important;font-size:22px;cursor:pointer;}
#bbi-pay-submit{width:100%;padding:14px;margin-top:18px;background:var(--bbi-accent,#0e273d) !important;color:var(--bbi-btn-text,#ffffff) !important;border:none !important;border-radius:10px;font-weight:700;cursor:pointer;}
#bbi-pay-message{margin-top:12px;font-size:13px;color:#ff8a8a !important;}

.bbi-map-placeholder{background:
    linear-gradient(rgba(var(--bbi-accent-rgb,14,39,61),.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--bbi-accent-rgb,14,39,61),.06) 1px, transparent 1px),
    radial-gradient(ellipse at center, #23262c 0%, var(--bbi-bg,#0b0d10) 75%) !important;
    background-size:40px 40px,40px 40px,cover;
    display:flex;align-items:center;justify-content:center;}
.bbi-map-placeholder-inner{text-align:center;color:#8a8f98 !important;max-width:320px;padding:0 20px;}
.bbi-map-placeholder-icon{font-size:34px;color:var(--bbi-accent,#0e273d) !important;display:block;margin-bottom:10px;}
.bbi-map-placeholder-inner p{color:var(--bbi-accent,#0e273d) !important;font-size:16px;font-weight:700;letter-spacing:1px;margin:0 0 6px;text-transform:uppercase;}
.bbi-map-placeholder-inner small{font-size:12px;line-height:1.5;color:#8a8f98 !important;}

#bbi-preview-badge{position:absolute;top:16px;left:16px;z-index:6;background:rgba(var(--bbi-accent-rgb,14,39,61),.15) !important;
    border:1px solid rgba(var(--bbi-accent-rgb,14,39,61),.4) !important;color:var(--bbi-accent,#0e273d) !important;font-size:11px;letter-spacing:.5px;
    padding:8px 14px;border-radius:20px;max-width:80%;}

@media (max-width:768px){
    #bbi-form-card{top:auto;left:0;right:0;bottom:0;width:auto;max-width:none;height:auto;max-height:70vh;
        border-left:none !important;border-top:1px solid rgba(var(--bbi-accent-rgb,14,39,61),.25) !important;border-radius:20px 20px 0 0;}
    #bbi-map{height:100%;}
    #bbi-booking-hero.bbi-panel-hidden #bbi-form-card{transform:translateY(110%);}
    #bbi-show-panel{top:auto;bottom:20px;right:20px;}
}


/* Places API (New) autocomplete element */
.bbi-input-wrap .bbi-place-element{
    display:block;
    width:100%;
    box-sizing:border-box;
    padding-left:26px;
    color-scheme:dark;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.15);
    border-radius:8px;
}
