/* Walking directions on every map: the blue dot with the beam of where the
 * phone points, the walking line, the end flag, and the slim bar of the city
 * map. Loaded with Leaflet (da_map_css), so all maps share one look. */
.map-split.is-nav .map-sheet,
.map-split.is-nav .map-tour,
.map-split.is-nav .map-empty,
.map-split.is-nav .leaflet-top.leaflet-left { display: none !important; }
.map-split.is-nav .leaflet-marker-pane .da-pin,
.map-split.is-nav .leaflet-marker-pane .route-marker { opacity: .3; }
.map-nav-bar[hidden], .map-nav-google[hidden] { display: none !important; }
.map-nav-bar {
  position: absolute;
  left: 10px; right: 10px; bottom: 10px;
  z-index: 630;
  display: flex; align-items: center; gap: 10px;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 -6px 30px rgba(20,25,50,.2);
  padding: 10px 12px;
}
.map-nav-x {
  width: 40px; height: 40px; flex-shrink: 0;
  border: 0; border-radius: 50%;
  background: #e4e4e7; color: #55555f;
  font-size: 1.4rem; line-height: 1;
  cursor: pointer;
}
.map-nav-x:hover { background: #d8d8dc; }
.map-nav-sum { flex: 1; min-width: 0; }
.map-nav-eta { display: block; font-size: 1.15rem; font-weight: 800; color: #1f6b43; }
.map-nav-eta:empty { display: none; }
.map-nav-left { display: block; font-size: .82rem; color: var(--ink-soft, #5c6470); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.map-nav-bar.is-note .map-nav-left { white-space: normal; color: var(--ink, #1d2430); font-weight: 600; }
.map-nav-bar.is-done .map-nav-eta { color: #1d3448; }
.map-nav-google {
  flex-shrink: 0;
  border: 1px solid var(--line, #dcdce2); border-radius: 999px;
  background: #fff; color: var(--ink, #1d2430);
  padding: 8px 13px;
  font-size: .8rem; font-weight: 700;
  text-decoration: none; white-space: nowrap;
}
.map-nav-google:hover { background: #f4f4f6; }
.map-nav-toast {
  position: absolute;
  left: 50%; top: 14px;
  transform: translateX(-50%) translateY(-6px);
  z-index: 640;
  background: #1d3448; color: #fff;
  padding: 8px 15px; border-radius: 999px;
  font-size: .84rem; font-weight: 600;
  box-shadow: 0 6px 24px rgba(20,25,50,.3);
  opacity: 0; pointer-events: none;
  transition: opacity .2s, transform .2s;
}
.map-nav-toast.on { opacity: 1; transform: translateX(-50%) translateY(0); }
.map-nav-flag {
  width: 34px; height: 34px;
  border-radius: 50% 50% 50% 4px;
  transform: rotate(-45deg);
  background: #d6455d;
  border: 3px solid #fff;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
  display: grid; place-items: center;
}
.map-nav-flag span { transform: rotate(45deg); color: #fff; display: grid; }
.da-you { pointer-events: none; }
.da-you-dot {
  position: absolute; left: 50%; top: 50%;
  width: 20px; height: 20px; margin: -10px 0 0 -10px;
  border-radius: 50%;
  background: #1d6fe8; border: 3px solid #fff;
  box-shadow: 0 1px 5px rgba(0,0,0,.35);
}
/* The beam of where the phone points: it turns around the dot (the box centre). */
.da-you-cone { position: absolute; inset: 0; transition: transform .25s ease-out; }
.da-you-cone[hidden] { display: none; }
.da-you-cone::before {
  content: "";
  position: absolute; left: 14px; top: 0;
  width: 72px; height: 50px;
  background: radial-gradient(ellipse 50% 100% at 50% 100%, rgba(29,111,232,.95), rgba(29,111,232,.55) 50%, rgba(29,111,232,0) 100%);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
}
.map-nav-flag svg { width: 17px; height: 17px; }
@media (min-width: 760px) {
  .map-nav-bar { left: 16px; right: auto; bottom: 16px; width: 380px; }
}
