/* Final map markers: one visual per marker, with the full shape inside its hit area. */
.taxi-home .taxi-point-marker,
.taxi-home .hero-route-pin{
  width:44px!important;height:56px!important;margin:0!important;
  overflow:visible!important;border:0!important;background:transparent!important;
  box-shadow:none!important;filter:none!important;touch-action:none!important;
}
.taxi-home .taxi-point-marker{cursor:grab!important}
.taxi-home .taxi-point-marker.leaflet-drag-target{cursor:grabbing!important}
.taxi-home .taxi-point-marker.taxi-marker-editing{
  visibility:hidden!important;opacity:0!important;pointer-events:none!important;
}
.taxi-home .taxi-point-marker .teo-map-pin,
.taxi-home .hero-route-pin .teo-map-pin,
.taxi-home .hero-center-pin .teo-map-pin{
  position:absolute!important;inset:0!important;display:block!important;
  width:44px!important;height:56px!important;margin:0!important;padding:0!important;
  overflow:visible!important;border:0!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;filter:none!important;
  transform:none!important;pointer-events:auto!important;
}
.taxi-home .taxi-point-marker .teo-map-pin::before,
.taxi-home .hero-route-pin .teo-map-pin::before,
.taxi-home .hero-center-pin .teo-map-pin::before{
  content:""!important;position:absolute!important;z-index:2!important;
  top:0!important;left:2px!important;width:40px!important;height:40px!important;
  box-sizing:border-box!important;border:3px solid #fff!important;border-radius:50%!important;
  background:#4e94ff!important;box-shadow:0 5px 16px rgba(0,0,0,.42)!important;
  transform:none!important;
}
.taxi-home .taxi-point-marker .teo-map-pin::after,
.taxi-home .hero-route-pin .teo-map-pin::after,
.taxi-home .hero-center-pin .teo-map-pin::after{
  content:""!important;position:absolute!important;z-index:1!important;
  top:36px!important;left:19px!important;width:6px!important;height:20px!important;
  border:0!important;border-radius:0 0 4px 4px!important;background:#4e94ff!important;
  box-shadow:0 4px 9px rgba(0,0,0,.26)!important;transform:none!important;
}
.taxi-home .taxi-point-marker .teo-map-pin i,
.taxi-home .hero-route-pin .teo-map-pin i,
.taxi-home .hero-center-pin .teo-map-pin i{
  position:absolute!important;z-index:3!important;top:0!important;left:2px!important;
  display:grid!important;place-items:center!important;width:40px!important;height:40px!important;
  border:0!important;border-radius:50%!important;background:transparent!important;
  color:#fff!important;font:900 15px/1 Inter,sans-serif!important;font-style:normal!important;
  box-shadow:none!important;transform:none!important;
}
.taxi-home .teo-map-pin.pickup::before,
.taxi-home .teo-map-pin.pickup::after{background:#4e94ff!important}
.taxi-home .teo-map-pin.pickup i{color:#fff!important}
.taxi-home .teo-map-pin.via::before,
.taxi-home .teo-map-pin.via::after{background:#ffc400!important}
.taxi-home .teo-map-pin.via i{color:#101720!important}
.taxi-home .teo-map-pin.dropoff::before{
  border-color:#101720!important;background:#fff!important;
}
.taxi-home .teo-map-pin.dropoff::after{background:#fff!important}
.taxi-home .teo-map-pin.dropoff i{color:#101720!important}

/* Moving browser geolocation, separate from the selected A/B/C points. */
.taxi-home .taxi-user-location-marker{
  width:28px!important;height:28px!important;margin:0!important;
  border:0!important;background:transparent!important;pointer-events:none!important;
}
.taxi-home .taxi-user-location-marker>span{
  position:absolute!important;inset:5px!important;display:block!important;
  width:18px!important;height:18px!important;box-sizing:border-box!important;
  border:3px solid #fff!important;border-radius:50%!important;background:#2684ff!important;
  box-shadow:0 2px 9px rgba(0,0,0,.45)!important;
}
.taxi-home .taxi-user-location-marker>span::after{
  content:""!important;position:absolute!important;inset:-9px!important;
  border:2px solid rgba(38,132,255,.48)!important;border-radius:50%!important;
  animation:taxi-location-pulse 1.8s ease-out infinite!important;
}
@keyframes taxi-location-pulse{
  0%{opacity:.95;transform:scale(.55)}
  75%,100%{opacity:0;transform:scale(1.25)}
}
@media(prefers-reduced-motion:reduce){
  .taxi-home .taxi-user-location-marker>span::after{animation:none!important;opacity:.45!important}
}

/* Final app parity for the main order sheet and bottom-sheet picker. */
@media(max-width:760px){
  /* Decorative iPhone grabbers are not controls and are intentionally removed. */
  .taxi-home .order-card::after,
  .taxi-home .unified-map-shell.map-open .taxi-center-address::before{
    content:none!important;display:none!important;
  }
  .taxi-home .order-card-heading{
    padding-top:24px!important;
  }
  .taxi-home #step1 .route-panel input{
    font-size:16px!important;font-weight:650!important;letter-spacing:-.015em!important;
  }
  .taxi-home #step1 .route-panel input::placeholder{
    color:#8f9aa9!important;-webkit-text-fill-color:#8f9aa9!important;
    font-size:13px!important;font-weight:600!important;letter-spacing:0!important;
  }
  .taxi-home #step1 .order-quick-options button{
    min-height:58px!important;border-color:#344354!important;background:#111a24!important;
  }
  .taxi-home #step1 .order-quick-options strong{
    font-size:14px!important;font-weight:800!important;
  }
  .taxi-home #step1 .order-standard-option{
    border-color:rgba(255,196,0,.42)!important;
  }
  .taxi-home #step1 .btn-next:disabled{
    opacity:1!important;background:#313842!important;color:#aeb7c2!important;
    box-shadow:none!important;font-size:15px!important;
  }
  .taxi-home .unified-map-shell.map-open{
    top:auto!important;right:0!important;bottom:0!important;left:0!important;inset:auto 0 0!important;
    width:100vw!important;height:90dvh!important;max-height:90dvh!important;
    border:0!important;border-radius:28px 28px 0 0!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-head{
    border-radius:28px 28px 22px 22px!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-center-address{
    border-radius:0!important;box-shadow:0 -8px 22px rgba(0,0,0,.22)!important;
  }
}

/* Fixed, labelled picker pin. Its stem tip is the selected map coordinate. */
.taxi-home .unified-map-shell.map-open #taxiCenterPin{
  position:absolute!important;z-index:5000!important;left:50%!important;top:50%!important;
  width:76px!important;height:68px!important;margin:0!important;padding:0!important;
  pointer-events:none!important;filter:none!important;background:transparent!important;
  transform:translate(-50%,-100%)!important;transition:transform .14s ease!important;
}
.taxi-home .unified-map-shell.map-open #taxiCenterPin.moving{
  transform:translate(-50%,calc(-100% - 8px))!important;
}
.taxi-home .unified-map-shell.map-open #taxiCenterPin::before,
.taxi-home .unified-map-shell.map-open #taxiCenterPin::after{content:none!important;display:none!important}
.taxi-home .unified-map-shell.map-open #taxiCenterPin>span{
  position:absolute!important;z-index:3!important;left:16px!important;top:0!important;
  display:grid!important;place-items:center!important;width:44px!important;height:44px!important;
  box-sizing:border-box!important;margin:0!important;padding:0!important;
  border:4px solid #fff!important;border-radius:50%!important;background:#4e94ff!important;
  background-image:none!important;box-shadow:0 0 18px rgba(62,142,255,.78)!important;
  color:#fff!important;font:900 16px/1 Inter,sans-serif!important;text-indent:0!important;
  filter:none!important;transform:none!important;
}
.taxi-home .unified-map-shell.map-open #taxiCenterPin>span::before,
.taxi-home .unified-map-shell.map-open #taxiCenterPin>span::after{content:none!important;display:none!important}
.taxi-home .unified-map-shell.map-open #taxiCenterPin>i{
  position:absolute!important;z-index:2!important;left:35px!important;top:40px!important;
  display:block!important;width:6px!important;height:28px!important;margin:0!important;
  border:0!important;border-radius:0 0 5px 5px!important;background:#4e94ff!important;
  box-shadow:0 4px 9px rgba(0,0,0,.28)!important;filter:none!important;transform:none!important;
}
.taxi-home .unified-map-shell.map-open #taxiCenterPin>i::before,
.taxi-home .unified-map-shell.map-open #taxiCenterPin>i::after{content:none!important;display:none!important}
.taxi-home .unified-map-shell.map-open #taxiCenterPin.a>span,
.taxi-home .unified-map-shell.map-open #taxiCenterPin.a>i{background:#4e94ff!important}
.taxi-home .unified-map-shell.map-open #taxiCenterPin.b>span{
  border-color:#101720!important;background:#fff!important;color:#101720!important;
  box-shadow:0 0 18px rgba(255,255,255,.58)!important;
}
.taxi-home .unified-map-shell.map-open #taxiCenterPin.b>i{background:#fff!important}
.taxi-home .unified-map-shell.map-open #taxiCenterPin.c>span,
.taxi-home .unified-map-shell.map-open #taxiCenterPin.c>i{background:#ffc400!important;color:#101720!important}

/* Keep the compact picker header. */
.taxi-home .unified-map-shell.map-open .taxi-map-head>div:first-child span{display:none!important}
.taxi-home .unified-map-shell.map-open .taxi-map-city-tools select{height:42px!important;font-size:13px!important;font-weight:700!important}

/* Mobile gesture ownership: one page scroller, and Leaflet owns the map. */
@media(max-width:760px){
  html{
    overflow-x:hidden!important;overflow-y:auto!important;
    overscroll-behavior-y:auto!important;touch-action:pan-y!important;
  }
  body.taxi-home:not(.taxi-map-modal-open){
    overflow-x:clip!important;overflow-y:visible!important;
    overscroll-behavior-y:auto!important;touch-action:pan-y!important;
  }
  html.taxi-map-modal-open,
  body.taxi-home.taxi-map-modal-open{
    overflow:hidden!important;overscroll-behavior:none!important;touch-action:none!important;
  }
  .taxi-home .leaflet-gl-layer,
  .taxi-home .leaflet-gl-layer .maplibregl-canvas-container,
  .taxi-home .leaflet-gl-layer .maplibregl-canvas{
    pointer-events:none!important;touch-action:none!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-stage,
  .taxi-home .unified-map-shell.map-open #taxiOrderMap,
  .taxi-home .unified-map-shell.map-open #taxiOrderMap .leaflet-map-pane,
  .taxi-home .unified-map-shell.map-open #taxiOrderMap .leaflet-tile-pane{
    overscroll-behavior:none!important;touch-action:none!important;
  }
}

/* Bottom-sheet presentation: 90% panel with a tappable backdrop above it. */
.taxi-home .taxi-map-backdrop{
  display:none;position:fixed;z-index:29990;inset:0;width:100%;height:100%;
  margin:0;padding:0;border:0;background:rgba(3,9,16,.48);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
}
.taxi-home.taxi-map-modal-open .taxi-map-backdrop{display:block}
.taxi-home.taxi-map-modal-open::after{content:none!important;display:none!important}
@media(max-width:760px){
  .taxi-home .unified-map-shell.map-open{
    top:auto!important;right:0!important;bottom:0!important;left:0!important;inset:auto 0 0!important;
    width:100vw!important;height:90dvh!important;max-height:90dvh!important;
    border:0!important;border-radius:28px 28px 0 0!important;
    overflow:hidden!important;box-shadow:0 -18px 54px rgba(0,0,0,.48)!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-head{
    border-radius:28px 28px 22px 22px!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-center-address{
    border-radius:0!important;box-shadow:0 -8px 22px rgba(0,0,0,.22)!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-center-address::before{
    content:none!important;display:none!important;
  }

  /* Compact app controls: clear hierarchy without oversized labels. */
  .taxi-home #step1 .web-add-stop{
    min-height:48px!important;font-size:12px!important;font-weight:750!important;gap:9px!important;
  }
  .taxi-home #step1 .web-add-stop img{
    width:21px!important;height:21px!important;padding:4px!important;
  }
  .taxi-home #step1 .order-quick-options button{
    min-height:52px!important;padding:0 10px!important;
    grid-template-columns:22px minmax(0,1fr) 12px!important;gap:7px!important;
  }
  .taxi-home #step1 .order-quick-options strong{
    font-size:11px!important;line-height:1.15!important;letter-spacing:-.01em!important;
  }
  .taxi-home #step1 .quick-option-icon{
    width:20px!important;height:20px!important;
  }
  .taxi-home #step1 .quick-car-icon{
    width:22px!important;height:auto!important;
  }
  .taxi-home #step1 .quick-chevron{
    width:12px!important;height:12px!important;
  }

  /* One geometric axis through the exact centers of A and B. */
  .taxi-home #step1 .route-panel::before{
    left:30px!important;top:45px!important;bottom:33px!important;
  }
  .taxi-home #step1 .route-panel .route-group::before{
    left:-36px!important;top:35px!important;
  }
}
@media(max-width:390px){
  .taxi-home #step1 .route-panel .route-group::before{
    left:-32px!important;
  }
}

/* Final mobile picker polish: compact Teo header, clean controls, precise pins. */
@media(max-width:760px){
  .taxi-home .taxi-map-backdrop{
    top:0!important;right:0!important;bottom:auto!important;left:0!important;inset:0 0 auto!important;
    height:10dvh!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-head{
    grid-template-columns:minmax(0,1fr) 44px!important;
    grid-template-rows:auto auto!important;gap:12px!important;
    padding:18px 18px 15px!important;border:0!important;
    border-bottom:1px solid rgba(113,151,196,.24)!important;
    border-radius:0 0 24px 24px!important;
    background:#0d1b2b!important;box-shadow:0 12px 26px rgba(0,0,0,.26)!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-head>div:first-child{
    grid-column:1!important;grid-row:1!important;align-self:center!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-head>div:first-child strong{
    color:#fff!important;font-size:22px!important;font-weight:850!important;
    line-height:1.08!important;letter-spacing:-.035em!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-actions{
    grid-column:2!important;grid-row:1!important;display:grid!important;place-items:center!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-head .taxi-map-actions>button.taxi-map-close{
    display:grid!important;place-items:center!important;width:42px!important;height:42px!important;
    padding:0!important;border:1px solid #3d526c!important;border-radius:15px!important;
    background:#14253a!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 8px 18px rgba(0,0,0,.22)!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-head .taxi-map-actions>button.taxi-map-close:active{
    background:#1b3049!important;transform:scale(.96)!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-close img{
    width:19px!important;height:19px!important;opacity:.92!important;filter:brightness(0) invert(1)!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-city-tools{
    position:relative!important;grid-column:1 / -1!important;grid-row:2!important;
    display:block!important;width:100%!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-city-tools select{
    width:100%!important;height:46px!important;margin:0!important;
    padding:0 48px 0 15px!important;border:1px solid #38516f!important;border-radius:15px!important;
    -webkit-appearance:none!important;appearance:none!important;
    background:#14253a!important;background-image:none!important;
    color:#f5f8fc!important;font-size:16px!important;font-weight:750!important;line-height:46px!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-city-tools::after{
    content:""!important;position:absolute!important;z-index:2!important;
    top:50%!important;right:17px!important;width:17px!important;height:17px!important;
    background:#b9c8db!important;
    -webkit-mask:url('/static/icons/chevron-down.svg') center/contain no-repeat!important;
    mask:url('/static/icons/chevron-down.svg') center/contain no-repeat!important;
    pointer-events:none!important;transform:translateY(-50%)!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-stage{
    background:#080d13!important;
  }
  .taxi-home .unified-map-shell.map-open .leaflet-top.leaflet-right{
    top:14px!important;right:14px!important;
  }
  .taxi-home .unified-map-shell.map-open .leaflet-control-zoom{
    display:grid!important;gap:4px!important;margin:0!important;padding:4px!important;
    border:1px solid #435a75!important;border-radius:16px!important;
    background:rgba(10,23,39,.94)!important;overflow:hidden!important;
    box-shadow:0 10px 24px rgba(0,0,0,.32)!important;backdrop-filter:blur(14px)!important;
  }
  .taxi-home .unified-map-shell.map-open .leaflet-control-zoom a{
    display:grid!important;place-items:center!important;width:40px!important;height:40px!important;
    border:0!important;border-radius:12px!important;font:900 22px/1 Inter,sans-serif!important;
    text-decoration:none!important;box-shadow:none!important;
  }
  .taxi-home .unified-map-shell.map-open .leaflet-control-zoom-in{
    background:#ffc400!important;color:#0b1420!important;
  }
  .taxi-home .unified-map-shell.map-open .leaflet-control-zoom-out{
    background:#172537!important;color:#fff!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-point-control{
    left:14px!important;bottom:14px!important;min-height:50px!important;
    border-color:#405b7c!important;border-radius:17px!important;
    background:rgba(10,27,47,.95)!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-locate-btn{
    right:14px!important;bottom:14px!important;width:50px!important;height:50px!important;
    border:1px solid #4b6688!important;border-radius:50%!important;
    background:rgba(10,27,47,.96)!important;box-shadow:0 10px 24px rgba(0,0,0,.30)!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-locate-btn svg{
    width:22px!important;height:22px!important;stroke-width:1.8!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-confirm{
    right:14px!important;bottom:76px!important;left:14px!important;
    width:calc(100% - 28px)!important;min-height:56px!important;
    border-radius:18px!important;font-size:16px!important;letter-spacing:-.01em!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-center-address{
    padding:17px 20px calc(18px + env(safe-area-inset-bottom))!important;
    border-radius:24px 24px 0 0!important;background:#0d2035!important;
  }
}

/* Marker stems are 40% thinner, while their centers and anchors stay unchanged. */
.taxi-home .taxi-point-marker .teo-map-pin::after,
.taxi-home .hero-route-pin .teo-map-pin::after,
.taxi-home .hero-center-pin .teo-map-pin::after{
  left:20.2px!important;width:3.6px!important;border-radius:0 0 3px 3px!important;
}
.taxi-home .unified-map-shell.map-open #taxiCenterPin>i{
  left:50%!important;width:3.6px!important;transform:translateX(-50%)!important;
  border-radius:0 0 3px 3px!important;
}

/* Geolocation marker: concentric rings around the exact Leaflet anchor. */
.taxi-home .taxi-user-location-marker{
  display:grid!important;place-items:center!important;width:30px!important;height:30px!important;
}
.taxi-home .taxi-user-location-marker>span{
  position:relative!important;inset:auto!important;display:block!important;
  width:14px!important;height:14px!important;box-sizing:border-box!important;
  border:3px solid #fff!important;border-radius:50%!important;background:#2684ff!important;
  box-shadow:0 0 0 3px rgba(38,132,255,.28),0 3px 10px rgba(0,0,0,.45)!important;
}
.taxi-home .taxi-user-location-marker>span::after{
  content:""!important;position:absolute!important;left:50%!important;top:50%!important;inset:auto!important;
  width:28px!important;height:28px!important;box-sizing:border-box!important;
  border:2px solid rgba(38,132,255,.48)!important;border-radius:50%!important;
  transform:translate(-50%,-50%) scale(.62)!important;transform-origin:center!important;
  animation:taxi-location-pulse-centered 1.8s ease-out infinite!important;
}
@keyframes taxi-location-pulse-centered{
  0%{opacity:.92;transform:translate(-50%,-50%) scale(.62)}
  75%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.28)}
}
@media(prefers-reduced-motion:reduce){
  .taxi-home .taxi-user-location-marker>span::after{
    animation:none!important;opacity:.42!important;transform:translate(-50%,-50%) scale(1)!important;
  }
}

/* Cascade guard: these are the requested final mobile panel edges. */
@media(max-width:760px){
  .taxi-home .taxi-map-backdrop{
    display:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  }
  .taxi-home .unified-map-shell.map-open{
    top:0!important;right:0!important;bottom:0!important;left:0!important;inset:0!important;
    width:100vw!important;height:100dvh!important;max-height:100dvh!important;
    border:0!important;border-radius:0!important;box-shadow:none!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-map-head{
    border-radius:0!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-center-address{
    border-radius:0!important;
  }
  .taxi-home .unified-map-shell.map-open .taxi-center-address::before{
    content:none!important;display:none!important;
  }
}
