.booking-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:start}
@media(max-width:900px){.booking-grid{grid-template-columns:1fr}}
.booking-map-wrap{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:.8rem}
.booking-map{height:420px;border-radius:12px;z-index:1}
@media(max-width:640px){.booking-map{height:320px}}
.map-toolbar{display:flex;align-items:center;gap:.6rem;margin-top:.8rem;flex-wrap:wrap}
.seg-btns{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.seg-btn{background:var(--white);border:0;padding:.45rem 1rem;font:inherit;color:var(--ink);cursor:pointer}
.seg-btn.is-active{background:var(--primary);color:var(--white)}
.seg-gps{border:1px solid var(--primary);color:var(--primary);border-radius:999px;background:transparent}
.map-hint{color:var(--muted);font-size:.9rem;margin:.6rem 0 0}
.booking-panel{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:1.4rem}
.booking-panel h2{margin-top:0}
.trip-summary{margin:0 0 1rem}
.trip-summary>div{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px dashed var(--line)}
.trip-summary dt{color:var(--muted)}
.trip-summary dd{margin:0;font-weight:600;text-align:end;word-break:break-word}
.fare-note{color:var(--muted);font-size:.9rem;background:var(--paper);border-radius:10px;padding:.6rem .8rem}
.car-picker{border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;margin:0 0 1.2rem}
.car-picker legend{padding:0 .5rem;font-weight:600}
.car-option{display:flex;align-items:center;gap:.7rem;padding:.55rem .3rem;border-radius:8px}
.car-option+.car-option{border-top:1px solid var(--line)}
.car-option input{accent-color:var(--primary)}
.car-thumb{width:44px;height:44px;object-fit:cover;border-radius:8px}
.car-name{flex:1}
.car-state{font-size:.8rem;border-radius:999px;padding:.2rem .7rem;white-space:nowrap}
.is-available .car-state{color:var(--primary);background:var(--paper);font-weight:600}
.is-off{opacity:.55}
.is-off .car-state{background:var(--line);color:var(--ink)}
.booking-fields{display:grid;gap:.8rem;margin:0 0 1.2rem}
.booking-subhead{font-weight:700;margin:0 0 .2rem;color:var(--ink)}
.booking-field{display:grid;gap:.35rem;font:inherit}
.booking-field>span{font-weight:600}
.booking-field input[type=text],.booking-field input[type=tel],.booking-field input[type=email]{width:100%;padding:.55rem .8rem;border:1px solid var(--line);border-radius:10px;font:inherit;color:var(--ink);background:var(--white)}
.booking-field input:focus{outline:2px solid var(--primary);outline-offset:1px}
.pay-picker{border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;display:grid;gap:.5rem}
.pay-picker legend{padding:0 .5rem;font-weight:600}
.pay-picker label{display:flex;align-items:center;gap:.5rem;cursor:pointer}
.pay-picker input{accent-color:var(--primary)}
.booking-msg{min-height:1.4em;color:var(--primary);margin:.8rem 0 0}
.booking-msg.is-error{color:#a33}
.ride-pin{display:block;width:20px;height:20px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid var(--white);box-shadow:0 1px 5px rgba(0,0,0,.4)}
.ride-pin.pick{background:var(--primary)}
.ride-pin.dest{background:var(--accent)}
.leaflet-container{font:inherit}