*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{
  /* ⚠️ ЗОЛОТО-СЕРЕБРЯНЫЙ ПЕРЕЛИВ УБРАН (round425). Остаток двух
     прежних тем: золотой, серебряный и тёмно-золотой отблески
     тёмно-золотой. Кнопки на карте красятся фирменным. */
  --metal-grad:linear-gradient(180deg,#343b75 0%,#2c3470 55%,#21275b 100%);
  /* ⚠️ ЭТИ ДВЕ ПЕРЕМЕННЫЕ — ОСТАТОК СЕРЕБРЯНОЙ ТЕМЫ (round425).
     Их брали подписи во всплывающем окне карты, и на белом фоне
     #D7DBE0 давал контраст 1,4 при пороге 4,5 — название парковки было
     почти невидимым. Подписи переведены на обычные цвета, а сами
     переменные оставляю тёмными: их ещё может брать что-то в тёмной
     теме, и удалять вслепую значит менять то, чего не проверял. */
  --metal:#4a5360;--metal-hi:#111111;
  /* ⚠️ --bg НЕ ПЕРЕОБЪЯВЛЯЕМ (round366): значение берётся из
     common.css. Своё объявление здесь давало другой оттенок
     фона на этой странице — Кирилл увидел разницу на
     границе экранов. */
  /* --surface тоже из common.css (round366). */--surface-2:#181818;
  --text:#F5EDD4;--text-dim:rgba(238,240,243,.5);
  --border:rgba(176,183,191,.15);
}
/* ⚠️ ВЫСОТА В dvh, А НЕ В ПРОЦЕНТАХ (round273).

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

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

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

/* шапка */
/* ⚠️ ПРАВИЛО .map-header УДАЛЕНО (round425).

   Мёртвое: в разметке этого класса нет ни в map.html, ни в pg-map.js —
   проверено поиском. Осталось от прежней тёмной шапки карты
   (background:#0a0c0f), которую убрали вместе с панелями в round421.

   Удаляю, а не оставляю «на всякий случай»: правило без применения
   создаёт впечатление, что шапка есть, и его приходится читать при
   каждом разборе файла. */

.back-btn{
  /* ⚠️ ОБЛАСТЬ НАЖАТИЯ 44 — ПРИНЯТЫЙ МИНИМУМ ДЛЯ ПАЛЬЦА (round425).
     На меньшей промахиваются, а промах по крестику НА КАРТЕ означает
     нажатие по самой карте: она сдвинется, и человек решит, что закрыть
     нельзя. Растёт область, а не значок. */
  width:44px;height:44px;border-radius:var(--radius-sm);
  background:rgba(176,183,191,.1);border:1px solid rgba(176,183,191,.2);
  color:var(--metal-hi);cursor:pointer;display:flex;align-items:center;justify-content:center;
  text-decoration:none;flex-shrink:0;
}
.back-btn svg{width:20px;height:20px}
.header-text{flex:1;min-width:0}
/* Заголовок экрана — Montserrat: у Oswald нет веса 800, и браузер
   дорисовывал его сам. Здесь это было заметнее всего: крупно, на
   чёрном, и рядом ничего для сравнения. */
.header-title{font-family:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-weight:800;font-size:var(--fs-base);color:var(--text);letter-spacing:-.01em}
.header-sub{font-size:var(--fs-xs);color:var(--text-dim);margin-top:.05rem}

/* карта — теперь занимает весь экран под шапкой, ни правила, ни списка
   снизу больше нет (правило теперь показывается в попапе каждой точки) */
/* ══ ⚠️ КАРТА НА ВЕСЬ ЭКРАН (round422) ═══════════════════════════

   Кирилл: «убери белую полосу внизу, карта должна быть на весь экран,
   также верхнюю полосу тоже почини, смотри скрин — там прозрачная
   сбита».

   ⚠️ ПРИЧИНА: КАРТА БЫЛА ЗВЕНОМ КОЛОНКИ. body выстроен колонкой, карта
   в нём — растягивающийся блок (flex:1). Пока сверху и снизу стояли
   панели, это было верно: карта занимала остаток. Панели убрали в
   round415 и round421, а разметка осталась колонкой — и по краям
   остались пустые места от них. Внизу это белая полоса, вверху —
   светлая, которую Кирилл назвал «сбитой прозрачностью».

   ⚠️ ВЫНИМАЕМ КАРТУ ИЗ ПОТОКА СОВСЕМ. position:fixed и inset:0 — она
   занимает окно целиком, и никакие соседи на неё больше не влияют.
   Это надёжнее, чем подгонять отступы: подгонка снова разъедется при
   следующей правке разметки, как уже дважды и вышло.

   ⚠️ БЕЗ ЗАПАСА ПОД ВЫРЕЗ. Карта должна уходить ПОД часы и полоску
   жеста — так и выглядит карта во весь экран. Запас нужен не ей, а
   тому, что лежит поверх: кнопке меню, подписи, карточке. У них он
   задан своими правилами. */
#map{
  position:fixed;
  inset:0;
  z-index:1;
  background:#e8e8e8;
}

/* Светлые тайлы 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;
}
.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 rgba(176,183,191,.08)!important}
.leaflet-popup-content{margin:0!important;width:260px!important;color:var(--text)}
.popup-head{background:#0a0c0f;border-bottom:1px solid rgba(176,183,191,.2);padding:.75rem .9rem;color:var(--text)}
/* ⚠️ НАЗВАНИЕ ПАРКОВКИ БЫЛО ПОЧТИ НЕВИДИМЫМ (round425).

   Цвет брался из --metal-hi (#D7DBE0) — серебряный, для ТЁМНОГО окна
   прежней темы. Окно давно белое, и контраст был 1,4 при пороге 4,5:
   человек не мог прочесть, что за парковка.

   Аудит нашёл это счётом; глазом никто не замечал, потому что рядом
   есть значок и человек догадывался по нему. */
.popup-loc{font-weight:700;font-size:var(--fs-base);margin-bottom:.15rem;color:#111111}
.popup-addr{font-size:var(--fs-xs);color:var(--text-dim);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 rgba(176,183,191,.08);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)}
/* То же самое: «Свободен» серебряным на белом. Зелёный — тот же, что
   у остальных признаков свободного прицепа, 5,4 на своей подложке. */
.popup-status.yes{background:rgba(11,122,53,.10);color:#0b7a35}
.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);
  /* ⚠️ Было color:#1a1305 — тёмно-коричневый из ЗОЛОТОЙ темы, на
     фирменном синем фоне он дал бы контраст 1,9 при пороге 4,5
     (round425). */
  background:var(--metal-grad);color:#ffffff;font-weight:700;font-size:var(--fs-sm);cursor:pointer;
  font-family:inherit;box-shadow:0 3px 12px rgba(176,183,191,.35),inset 0 1px 0 rgba(255,255,255,.4);
}
.popup-nav-btn:active{transform:scale(.98)}
.leaflet-popup-tip{background:#0a0c0f!important;border:1px solid rgba(176,183,191,.2)}
.leaflet-container{font-family:inherit;background:#e8e8e8}
.leaflet-bar a{background:#141821!important;color:var(--metal-hi)!important;border-color:rgba(176,183,191,.2)!important}
.leaflet-bar a:hover{background:#1b1f25!important}
