  /* overlay */
  .map-loader{
    position:absolute; inset:0; display:none;
    align-items:center; justify-content:center; flex-direction:column;
    background:linear-gradient(to bottom, rgba(255,255,255,.85), rgba(255,255,255,.65));
    z-index: 5; /* выше тайлов, ниже модалок */
    border-radius: 0 0 10px 10px;
    color:#2b2f79;
    gap:10px;
    backdrop-filter: blur(2px);
  }
  .map-loader.show{ display:flex; }

  .map-loader__text{
    font-size:14px; opacity:.8; user-select:none;
  }

  /* следы */
  .loader-feet { width: 48px; height: 48px; }
  .loader-feet svg { width: 100%; height: 100%; display:block; }
  .loader-feet .ring { opacity:.12 }
  @keyframes spin { to { transform: rotate(360deg); } }
  .loader-feet .feet { transform-origin: 32px 32px; animation: spin 1.6s linear infinite; }
  .loader-feet .foot { opacity:.15 }
  .loader-feet .foot.f1 { opacity:.6 }
  .loader-feet .foot.f2 { opacity:.45 }
  .loader-feet .foot.f3 { opacity:.3 }

  @media (prefers-reduced-motion: reduce) {
    .loader-feet .feet { animation: none; }
  }
.track-empty{
  align-items:center; justify-content:center; text-align:center;
  min-height:220px; border-radius:0 0 10px 10px;
  background:rgba(255,255,255,.85); backdrop-filter:blur(2px);
  padding:18px; color:#2b2f79; border:1px dashed rgba(43,47,121,.25);
  margin-top:6px;
  display:flex; /* на случай если inline-style убрать */
}
.track-empty__inner{ max-width:560px; margin:0 auto; }
.track-empty svg{ width:36px; height:36px; display:block; margin:0 auto 10px; opacity:.6; }
.track-empty__title{ font-weight:600; }
.track-empty__hint{ font-size:13px; opacity:.8; margin-top:4px; }
@media (max-width:480px){ .track-empty{ min-height:180px; padding:14px; } }

        .map-wrap{
  position: relative;
  border-radius: 0 0 10px 10px;     /* чтобы оверлеи совпадали с картой */
  overflow: hidden;                 /* обрежем края оверлеев */
}

/* карта остаётся блочной, задаёт высоту области */
#routeMap{
  width: 100%;
  height: 400px;
}

/* и лоадер, и заглушка — абсолютные, на всю область карты */
.map-loader,
.track-empty{
  position: absolute;
  inset: 0;
  border-radius: 0 0 10px 10px;
}

/* заглушка поверх карты (ниже лоадера): */
.track-empty{
  z-index: 4;
  display: flex;                    /* центрирование содержимого */
  align-items: center;
  justify-content: center;
  margin-top: 0 !important;         /* если ранее задавали отступ — убираем в оверлее */
}

/* лоадер самый верхний */
.map-loader{ z-index: 5; }