/* FareMap passenger maps: native components/FareMapPremiumMapMarkers.tsx,
   FareMapPassengerHomeStep1.tsx and live-map.tsx. Icons use the original font outlines. */
.fm-map-frame{
  --fm-map-panel:rgba(255,255,255,.96);--fm-map-ink:#101827;
  position:relative;height:285px;border:1px solid var(--fm-border);border-radius:20px;
  overflow:hidden;background:var(--fm-bg2);isolation:isolate;
}
html[data-theme="dark"] .fm-map-frame{--fm-map-panel:rgba(7,17,31,.94);--fm-map-ink:#07111F}
.fm-map-frame:has(#v2Map),.fm-map-frame.fm-pickup-map-frame{height:365px}
.fm-map-frame #fmHomeMap,.fm-map-frame #v2Map{
  width:100%;height:100%;min-height:0;margin:0;border:0;border-radius:inherit;
  background:var(--fm-bg2);z-index:0;
}
.fm-map-frame .maplibregl-canvas{outline-offset:-4px}
.fm-map-frame .maplibregl-control-container{position:absolute;inset:0;z-index:5;pointer-events:none}
.fm-map-frame .maplibregl-ctrl-bottom-right{right:64px;bottom:4px}
.fm-map-frame .maplibregl-ctrl-attrib{font-family:inherit;font-size:9px;line-height:16px;color:#263247;background:rgba(255,255,255,.94)}
.fm-map-frame .maplibregl-ctrl-attrib a{color:#263247}
.fm-map-frame .maplibregl-ctrl-group{border-radius:12px;overflow:hidden;box-shadow:0 3px 10px rgba(16,24,39,.13)}
.fm-map-frame .maplibregl-ctrl-group button{width:34px;height:34px}
.fm-map-frame .fm-map-status{
  top:10px;left:10px;right:auto;bottom:auto;z-index:8;max-width:calc(100% - 132px);
  min-height:30px;border:1px solid var(--fm-border);border-radius:999px;padding:6px 10px;
  display:flex;align-items:center;gap:6px;background:var(--fm-map-panel);color:var(--fm-text);
  font-size:9.5px;line-height:1.3;font-weight:900;box-shadow:none;pointer-events:none;
}
.fm-map-status .fm-dot{width:7px;height:7px;flex:0 0 7px}
.fm-map-status>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fm-map-frame .fm-map-controls{position:static;pointer-events:none}
.fm-map-control{
  position:absolute;z-index:10;display:flex;align-items:center;justify-content:center;gap:5px;
  width:42px;height:42px;min-height:42px;border:1px solid var(--fm-border);border-radius:14px;
  padding:0;background:var(--fm-map-panel);color:var(--fm-green);font-family:inherit;
  font-size:9.5px;font-weight:900;line-height:1.2;cursor:pointer;pointer-events:auto;
  box-shadow:0 3px 9px rgba(16,24,39,.1);touch-action:manipulation;
}
.fm-map-control:hover{background:var(--fm-card);border-color:var(--fm-green)}
.fm-map-control:focus-visible{outline:3px solid var(--fm-green);outline-offset:3px}
.fm-map-control:disabled{opacity:.5;cursor:default}
.fm-map-control .fm-native-icon{width:20px;height:20px;flex-shrink:0}
.fm-map-control.fm-map-terrain{
  top:12px;right:12px;min-width:96px;width:auto;height:34px;min-height:34px;
  padding:0 9px;border-radius:12px;
}
.fm-map-terrain .fm-native-icon{width:17px;height:17px}
.fm-map-terrain[aria-pressed="true"],.fm-map-terrain.is-active{
  border-color:var(--fm-green);background:var(--fm-green);color:var(--fm-map-ink);
}
.fm-map-control.fm-map-locate{top:56px;right:12px}
.fm-map-frame .fm-map-control[data-map-action="all"]{
  top:auto;right:auto;left:12px;bottom:12px;width:auto;min-width:0;padding:0 12px;
}
.fm-map-control.fm-map-expand{
  right:12px;bottom:12px;width:44px;height:44px;min-height:44px;border-radius:15px;
  background:var(--fm-yellow);color:var(--fm-map-ink);border-color:var(--fm-yellow);
}
.fm-map-expand .fm-native-icon{width:18px;height:18px}
.fm-native-icon{display:block;width:20px;height:20px;fill:currentColor;flex-shrink:0;pointer-events:none}

/* The MapLibre marker root's inline transform is its geographic position.
   Never transform it in hover/active/selection rules; animate inner artwork only. */
.fm-pickup-marker{
  --fm-pin-size:44px;--fm-pin-color:#64748B;
  position:absolute;top:0;left:0;display:block;box-sizing:border-box;
  width:calc(var(--fm-pin-size) + 24px);height:calc(var(--fm-pin-size) + 31px);
  min-width:0;min-height:0;margin:0;padding:0;border:0;background:transparent;
  color:var(--fm-pin-color);font-family:inherit;text-align:center;cursor:pointer;
  overflow:visible;box-shadow:none;transition:none;touch-action:manipulation;
}
.fm-pickup-marker:hover{background:transparent}
.fm-pickup-marker:focus-visible{outline:none}
.fm-pickup-marker:focus-visible .fm-pin-head{outline:3px solid var(--fm-text);outline-offset:4px}
.fm-pickup-marker:active .fm-pin-head{filter:brightness(.94)}
.fm-pickup-marker.is-selected{z-index:4}
.fm-pin-halo{
  display:none;position:absolute;top:-8px;left:4px;z-index:0;box-sizing:border-box;
  width:calc(var(--fm-pin-size) + 16px);height:calc(var(--fm-pin-size) + 16px);
  border:2px solid var(--fm-pin-color);border-radius:50%;
  background:color-mix(in srgb,var(--fm-pin-color) 13.33%,transparent);
}
.fm-pickup-marker.is-selected .fm-pin-halo{display:block}
.fm-pin-head{
  position:relative;z-index:4;box-sizing:border-box;margin:0 auto;
  width:var(--fm-pin-size);height:var(--fm-pin-size);border:3px solid #fff;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:var(--fm-pin-color);
  box-shadow:0 3px 6px rgba(0,0,0,.28);
}
.fm-pin-inner{
  display:flex;align-items:center;justify-content:center;width:72%;height:72%;
  border-radius:999px;background:rgba(0,0,0,.12);color:#fff;
}
.fm-pin-inner .fm-pin-glyph{
  width:calc(var(--fm-pin-size) * .45);height:calc(var(--fm-pin-size) * .45);
  min-width:18px;min-height:18px;fill:currentColor;
}
.fm-pin-tail{
  position:absolute;z-index:1;left:50%;top:calc(var(--fm-pin-size) - 5px);
  width:17px;height:17px;margin-left:-8.5px;transform:rotate(45deg);
  border-bottom-right-radius:4px;background:var(--fm-pin-color);
}
.fm-pin-location{
  position:absolute;z-index:8;left:1px;top:2px;display:flex;align-items:center;justify-content:center;
  box-sizing:border-box;width:20px;height:20px;border:2px solid #fff;border-radius:50%;
  background:#101827;color:#fff;
}
.fm-pin-location .fm-native-icon{width:10px;height:10px}
.fm-pin-confidence{
  position:absolute;z-index:12;left:50%;bottom:0;transform:translateX(-50%);
  display:flex;align-items:center;justify-content:center;box-sizing:border-box;
  min-height:17px;padding:0 4px;border:1px solid var(--fm-pin-color);border-radius:6px;
  background:#fff;color:var(--fm-pin-color);font-size:8px;line-height:15px;font-weight:900;white-space:nowrap;
}
.fm-user-location-dot{
  display:block;box-sizing:border-box;width:18px;height:18px;border:3px solid #fff;border-radius:50%;
  background:#1E88E5;box-shadow:0 0 0 7px rgba(30,136,229,.18),0 2px 5px rgba(0,0,0,.25);
}

/* Pickup rows retain the app's filled location glyph in a green-soft square. */
.fm-pickup-row,.point.fm-pickup-row{
  display:flex;align-items:center;gap:9px;width:100%;min-height:66px;padding:8px 11px;
  text-align:left;color:var(--fm-text);background:var(--fm-card)!important;
}
/* The scrolling list has a maximum height, not fixed-height items. Let each
   pickup keep all of its name, location and confidence details in its own row. */
.points-list{min-width:0}
.points-list>.fm-pickup-row{flex:0 0 auto;height:auto;max-height:none}
.fm-pickup-row+.fm-pickup-row{border-top:1px solid var(--fm-border)}
.fm-pickup-row.is-selected{border-color:var(--fm-green);box-shadow:inset 3px 0 var(--fm-green)}
.fm-pickup-list-icon{
  display:flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;
  border-radius:14px;background:var(--fm-green-soft);color:var(--fm-green);
}
.fm-pickup-list-icon .fm-native-icon{width:18px;height:18px}
.fm-row-icon .fm-native-icon{width:18px;height:18px}
.fm-pickup-copy{flex:1;min-width:0}
.fm-pickup-copy strong{display:block;white-space:normal;overflow-wrap:anywhere;font-size:12.5px;line-height:1.4;font-weight:900}
.fm-pickup-copy small{display:block;max-width:100%;margin-top:3px;white-space:normal;overflow-wrap:anywhere;color:var(--fm-muted);font-size:10.5px;line-height:1.4;font-weight:700}
.fm-pickup-row .fm-trust,.fm-selected-point .fm-trust{min-width:0;max-width:100%;align-items:flex-start;gap:5px 7px}
.fm-pickup-row .fm-trust-pill,.fm-selected-point .fm-trust-pill{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.fm-pickup-row .fm-trust small,.fm-selected-point .fm-trust small{flex:1 1 100%;min-width:0;max-width:100%;margin-top:0;white-space:normal;overflow-wrap:anywhere;line-height:1.5}
#homeNearbyList .fm-row{height:auto;max-height:none;flex:0 0 auto}
#homeNearbyList .fm-row-copy b{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.4}
#homeNearbyList .fm-row-copy small{white-space:normal;overflow-wrap:anywhere;line-height:1.5}
#homeNearbyList .fm-chevron{flex-shrink:0}
.fm-pickup-chevron{flex:0 0 17px;width:17px;height:17px;color:var(--fm-faint)}
.fm-pickup-chevron .fm-native-icon{width:17px;height:17px}
.mapbox.fm-selected-point{
  display:flex;flex-direction:column;min-height:auto;align-items:stretch;
  justify-content:flex-start;text-align:left;
}
.fm-selected-point-heading{display:flex;align-items:center;gap:9px;min-width:0;width:100%}
.fm-selected-point>.action{width:100%;min-height:46px;justify-content:center}

.fm-map-unavailable{
  position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:8px;padding:22px;background:var(--fm-bg2);text-align:center;color:var(--fm-muted);
}
.fm-map-fallback{max-width:360px;font-size:12px;line-height:1.6}
.fm-map-fallback a{color:var(--fm-green);font-weight:800;text-underline-offset:3px}
body.fm-map-is-expanded{overflow:hidden}
.fm-map-frame.fm-map-expanded{
  position:fixed!important;inset:0!important;z-index:3000!important;
  width:100vw!important;height:100vh!important;height:100dvh!important;min-height:0;
  max-width:none!important;max-height:none!important;margin:0!important;border:0;border-radius:0;
}
.fm-map-expanded .fm-map-terrain{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}
.fm-map-expanded .fm-map-locate{top:calc(max(12px,env(safe-area-inset-top)) + 44px);right:max(12px,env(safe-area-inset-right))}
.fm-map-expanded .fm-map-expand{bottom:max(12px,env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right))}
.fm-map-expanded .fm-map-control[data-map-action="all"]{bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left))}
.fm-map-expanded .fm-map-status{top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left))}
body.fm-map-is-expanded .fm-bottom-nav{visibility:hidden}
@media(max-width:420px){
  .fm-map-frame .fm-map-status{max-width:calc(100% - 128px);font-size:9px}
  .fm-pickup-copy small{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
  .fm-map-control,.fm-pickup-marker,.fm-pin-head{transition:none;animation:none}
}
