*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
/* ══ ВТОРОЙ ТАКОЙ ЖЕ ФАЙЛ С ТОЙ ЖЕ БОЛЕЗНЬЮ (round296) ═══════════

   После скринов Кирилла, показавших вернувшуюся тёмную тему в личном
   кабинете, проверил каскад целиком — и карта оказалась поражена тем
   же: common.css подключается раньше (см. map.html), а здесь стоял
   свой :root с --bg:#0d0d0d и --text:#F5EDD4, который перебивал всё,
   что задано в common.css.

   ⚠️ ТУТ ЖЕ БЫЛА ЕЩЁ ОДНА ОШИБКА, отдельная от темы: --border:var(--border)
   ссылалась сама на себя. Такое значение недействительно, браузер его
   отбрасывает — рамки на карте, где им положено быть через эту
   переменную, оставались без границы вовсе. Молчаливая поломка,
   ничем не проявляющая себя визуально явно, поэтому и не поймана
   раньше.

   Свой :root убран целиком: --gold-hi и --text-dim, которых нет в
   общей палитре, заменены на ближайшие по смыслу переменные common.css
   в местах использования — ниже по файлу. */
/* ⚠️ ВЫСОТА В dvh, А НЕ В ПРОЦЕНТАХ (round273).

   Кирилл прислал два снимка: до нажатия на точку шапка на месте, после
   нажатия — уезжает вверх под часы.

   ПРИЧИНА. height:100% берётся от окна, а на телефоне окно меняет
   высоту, когда браузер прячет адресную строку. Нажатие на точку
   открывает карточку снизу, страница дёргается, строка прячется — и
   вся раскладка, включая шапку, съезжает вверх.

   dvh — это «динамическая высота окна»: она уже учитывает спрятанную
   строку, поэтому при её появлении и исчезновении ничего не прыгает.
   Запасное значение в процентах оставлено для старых браузеров: они
   просто возьмут прежнее поведение, а не сломаются. */
html,body{height:100%;height:100dvh;overflow:hidden}
/* Шрифт тот же, что на всём сайте. Раньше здесь стоял системный —
   поэтому вся страница карты выглядела чужой, а не только кнопки. */
body{font-family:'Manrope',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);display:flex;flex-direction:column}

/* шапка */
/* ⚠️ ПРАВИЛА ВЕРХНЕЙ ШАПКИ УДАЛЕНЫ (round289): она заменена общей
   нижней панелью, как во всех разделах. Вместе с ней ушли .back-btn,
   .header-text, .header-title, .header-sub — их больше нет в разметке.

   Карта теперь занимает экран целиком, а снизу оставлено место под
   панель: без этого её иконки легли бы поверх карты и по ним нельзя
   было бы попасть, не задев карту. */
#map{flex:1;min-height:0;z-index:1;background:#e8e8e8;
  padding-bottom:calc(56px + env(safe-area-inset-bottom,0px))}

/* Светлые тайлы OpenStreetMap в натуральном виде (как было раньше).
   Ранее тут стоял invert-фильтр, делавший карту тёмной — убран по
   просьбе: карта снова светлая. */
.leaflet-tile-pane{
  /* Фильтр обесцвечивания УБРАН (round158).

     Раньше здесь стояло saturate(0.55) — карта гасилась почти вдвое.
     Это и была причина «блёклости»: не тайлы такие, а мы их душили.

     Вторая причина убрать: CSS-фильтр на слое тайлов заставляет браузер
     пересчитывать КАЖДЫЙ тайл на каждом кадре при перетаскивании и зуме.
     На телефоне это самая дорогая операция во всей карте — отсюда и
     ощущение, что она подгружается рывками.

     Точки прицепов выделяются и без приглушения фона: у них яркая
     заливка, белая обводка и свечение. */
}
.leaflet-marker-pane, .leaflet-popup-pane{
  filter:none;
}

/* Leaflet маркеры */
.custom-pin{
  width:36px;height:36px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  background:linear-gradient(135deg,#2f7de8,#1a5bc4);
  border:3px solid #ffffff;box-shadow:0 4px 14px rgba(26,91,196,.55);
  display:flex;align-items:center;justify-content:center;
}
/* Белый здесь ВЕРЕН: подпись лежит на цветной заливке метки, а не на
   фоне страницы. Проверено при переводе на светлую тему (round293). */
.pin-inner{transform:rotate(45deg);font-size:var(--fs-base);line-height:1;color:#fff;font-weight:700;font-family:Arial,sans-serif}

/* попап */
.leaflet-popup-content-wrapper{border-radius:var(--radius-md)!important;padding:0!important;overflow:hidden;background:var(--surface)!important;border:1px solid var(--border);box-shadow:0 12px 40px rgba(0,0,0,.7),0 0 30px var(--border)!important}
.leaflet-popup-content{margin:0!important;width:260px!important;color:var(--text)}
/* ⚠️ КАРТОЧКА НА КАРТЕ БЕЛАЯ (round294). Кирилл прислал снимок
   каршеринга: карточка снизу — светлая панель поверх карты. Чёрная
   шапка на светлой карте выглядела заплаткой из другого приложения. */
.popup-head{background:var(--surface);border-bottom:1px solid var(--border);padding:.75rem .9rem;color:var(--text)}
.popup-loc{font-weight:700;font-size:var(--fs-base);margin-bottom:.15rem;color:var(--accent)}
.popup-addr{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.35}
.popup-body{padding:.8rem .9rem;background:var(--surface)}
.popup-safes{margin-bottom:.75rem}
.popup-row{display:flex;justify-content:space-between;align-items:center;padding:.25rem 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm)}
.popup-row:last-child{border-bottom:none}
.popup-safe-name{color:var(--text);font-weight:500}
.popup-status{font-weight:700;font-size:var(--fs-xs);padding:.12rem .42rem;border-radius:var(--radius-sm)}
.popup-status.yes{background:var(--border);color:var(--accent)}
.popup-status.no{background:rgba(252,129,129,.14);color:var(--danger)}
.popup-nav-btn{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  width:100%;padding:.65rem;border:none;border-radius:var(--radius-sm);
  /* Ровный цвет вместо металла (round282). */
  background:var(--primary);color:#231a04;font-weight:700;font-size:var(--fs-sm);cursor:pointer;
  font-family:inherit;box-shadow:0 3px 12px var(--border),inset 0 1px 0 rgba(255,255,255,.4);
}
.popup-nav-btn:active{transform:scale(.98)}
.leaflet-popup-tip{background:var(--surface)!important;border:1px solid var(--border)}
.leaflet-container{font-family:inherit;background:#e8e8e8}
/* Кнопки зума — светлые, как остальная карта. */
.leaflet-bar a{background:var(--surface)!important;color:var(--text)!important;border-color:var(--border)!important}
.leaflet-bar a:hover{background:var(--surface-2)!important}
