diff --git a/apk-webview/app/src/main/assets/index.html b/apk-webview/app/src/main/assets/index.html
index 8571955..51d1d89 100644
--- a/apk-webview/app/src/main/assets/index.html
+++ b/apk-webview/app/src/main/assets/index.html
@@ -55,7 +55,11 @@
.fullbtn:hover{border-color:var(--accent2)}
.fullbtn .chev{float:right;transition:.2s;color:var(--muted)}
.fullbtn.open .chev{transform:rotate(180deg)}
- .fulltitle{display:none;margin:0;padding:14px 12px 2px;font-size:16px;font-weight:700}
+
+ /* кнопка карты — под блоком полного расписания, только в приложении */
+ #mapBtn{display:none;margin:6px 0 6px}
+ body.app #mapBtn{display:block}
+ .mapbtn::before{content:"⌖ ";color:var(--accent2)}
/* строка заголовка: стрелка назад слева, меню справа, название ровно по центру */
.headwrap{position:relative}
@@ -68,6 +72,8 @@
body.app .iconbtn,body.about .iconbtn,body.map .iconbtn{display:inline-flex}
/* на главном экране стрелки нет, но место под неё оставляем, иначе съедет центр */
body.app .iconbtn.back{visibility:hidden}
+ /* но в справке стрелка «назад» нужна и должна быть кликабельной */
+ body.app.showhelp .iconbtn.back{visibility:visible}
/* троеточие в круглой кнопке приподнято: рамка остаётся на одной линии с названием */
#navMenu{padding-bottom:7px}
.iconbtn:active{border-color:var(--accent2)}
@@ -89,10 +95,28 @@
body.about .aboutcard{display:block}
body.about .pickers,body.about .where,body.about .dir,
body.about #fullTable,body.about .fullbtn{display:none}
+ /* внизу «О приложении» те же даты и источник уже написаны своим текстом,
+ общая сноска про расписание тут только дублирует их */
+ body.about footer{display:none}
.aboutcard h2{margin:0 0 4px;font-size:17px}
.aboutcard .ver{color:var(--muted);font-size:14px;margin-bottom:12px}
.aboutcard p{margin:0 0 10px;font-size:14px;line-height:1.5}
.aboutcard p.muted{color:var(--muted);font-size:13px}
+ .aboutcard p.dev{color:var(--muted);font-size:13px;text-align:center;margin:18px 0 0}
+ .aboutcard h3{margin:16px 0 6px;font-size:14px;color:var(--accent2)}
+ .aboutcard a{color:var(--accent2)}
+
+ /* «Справка» — тот же экран, что и расписание, просто другой блок */
+ .helpcard{display:none;background:var(--card);border:1px solid var(--line);
+ border-radius:14px;padding:16px;margin-bottom:10px}
+ body.app.showhelp .helpcard{display:block}
+ body.app.showhelp .pickers,body.app.showhelp .where,body.app.showhelp .dir,
+ body.app.showhelp .fullbtn,body.app.showhelp #fullTable,
+ body.app.showhelp #mapBtn,body.app.showhelp footer{display:none}
+ .helpcard h2{margin:0 0 4px;font-size:17px}
+ .helpcard h3{margin:16px 0 6px;font-size:14px;color:var(--accent2)}
+ .helpcard h3:first-of-type{margin-top:12px}
+ .helpcard p{margin:0 0 10px;font-size:14px;line-height:1.5}
/* экран «Карта»: страница целиком занята картой, шапка остаётся */
body.map{height:100vh;height:100dvh;min-height:0;padding:24px 16px 16px;overflow:hidden}
@@ -132,12 +156,6 @@
.mapstatus .rows div{display:flex;gap:8px;align-items:baseline}
.mapstatus .rows .when{color:var(--txt);font-variant-numeric:tabular-nums;
white-space:nowrap;font-size:12px}
- .mapstatus .hint{margin-top:7px;font-size:11px;color:var(--muted);line-height:1.4}
- .note{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);
- font-size:12px;line-height:1.55;color:var(--muted)}
- .note p{margin:0 0 8px}
- .note p:last-child{margin-bottom:0}
- .note b{color:var(--txt)}
/* метки на карте. Корень двигает библиотека, вид задаёт внутренний блок */
.pin{transform:translate(-50%,-100%);white-space:nowrap;pointer-events:none}
@@ -191,7 +209,8 @@
@@ -212,7 +231,6 @@
-
Полное расписание
@@ -227,56 +245,91 @@
+
+
- Автобусы и расписание
+ Автобусы в пути▴
-
Карта маршрута
-
-
Положение автобуса рассчитано по расписанию, а не по GPS:
- между остановками интерполируется по дороге. Точность — до нескольких минут.
-
-
Как читать расписание. Таблица и списки показывают официальное время
- отправлений. Время прибытия в расписании не публикуется: оно берётся
- из отправления следующей остановки, потому что автобус приезжает
- на Полярные Зори и сразу уходит дальше. Исключение — Зашеек: там
- прибытие посчитано как выезд из Полярных Зорь плюс 20 минут.
- Получившиеся интервалы в обе стороны по одной дороге отличаются
- на 5–10 минут — так и есть в официальном расписании, это не ошибка.
-
Положение автобусов. GPS у приложения нет, координаты
- интерполируются по дороге между остановками по времени рейса.
- В Зашейке автобус стоит, пока не подошло время обратного выезда.
- Точность — до нескольких минут, в пробки отставание больше.
-
Расписание сверено с официальным: отправления взяты из данных
- диспетчерской службы перевозчика, летнее расписание
- с 01.05.2026 по 31.10.2026, время московское. Карта и тайлы — VK Карты,
- геометрия дороги — OpenStreetMap.
+
+
Сейчас автобусов нет
+
+
+
Справка
+
+
Как читать расписание
+
Таблица и списки показывают официальное время отправлений.
+ Время прибытия перевозчик не публикует, поэтому приложение считает его
+ само: до Зашейка — как выезд с Полярных Зорь плюс 20 минут, до
+ Кандалакши — плюс 50 минут.
+
Одна остановка — исключение. Когда автобус приезжает на Полярные Зори,
+ он сразу уходит дальше, поэтому время прибытия совпадает с отправлением
+ следующей остановки. В Зашейке автобус задерживается, и там прибытие
+ считается по времени в пути, а не по расписанию.
+
Из-за этого интервалы в обе стороны по одной дороге отличаются
+ на 5–10 минут. Так и есть в официальном расписании, это не ошибка
+ приложения.
+
+
Время прибытия в карточках
+
В списке рейсов под заголовком направления показано время прибытия
+ в Зашеек или в Кандалакшу — серым под временем отправления. Время
+ московское (МСК).
+
+
Положение автобусов на карте
+
GPS у приложения нет. Положение считается по расписанию: между
+ известными точками маршрута координаты интерполируются по времени рейса,
+ доля пути — по длине дороги, поэтому метка идёт по трассе, а не по прямой.
+ В Зашейке автобус стоит, пока не подошло время обратного выезда.
+
Точность — до нескольких минут. В пробки реальное отставание больше,
+ и метка может показывать автобус позади или впереди машины.
+
Список под картой обновляется каждые 20 секунд: для каждого автобуса
+ в пути указано направление и время прибытия на следующую остановку.
+
+
Когда обновляется расписание
+
Часы, ближайшие рейсы и положение автобусов обновляются автоматически.
+ Список рейсов — раз в минуту, часы — раз в секунду. В приложении нет
+ кнопки обновления: перезапускать ничего не нужно.
+
+
Где брать точные данные
+
Время отправления перевозчик меняет без предупреждения. Сроки
+ действия расписания и телефон диспетчерской службы указаны
+ в разделе «О приложении» — уточнять время лучше там.
+
+
О приложении
-
Расписание автобуса №127 по маршруту Кандалакша — Полярные Зори — Зашеек.
-
Ближайшие рейсы считаются по московскому времени и обновляются каждые 30 секунд.
- Полное расписание раскрывается прямо на этом экране — кнопкой под списком рейсов,
- с переключением между буднями, субботой и воскресеньем.
-
В меню есть «Карта»: там видно, где сейчас едут автобусы, и как пройден
- участок между остановками. Положение считается по расписанию — приложение
- не получает данные с GPS, поэтому это оценка с точностью до нескольких минут.
-
Расписание сверено с официальным: отправления взяты из данных
- диспетчерской службы перевозчика, летнее расписание
- с 01.05.2026 по 31.10.2026. Время московское (МСК).
-
Карта и тайлы — VK Карты, геометрия дороги — OpenStreetMap.
- Пуш-уведомления приходят через RuStore Push — для этого нужен
+
Расписание автобуса №127 по маршруту Кандалакша — Полярные Зори — Зашеек.
+ Ближайшие рейсы по вашей остановке, полное расписание по будням, субботам
+ и воскресеньям, а также карта с положением автобусов в пути.
+
Всё время — московское (МСК). Данные обновляются автоматически,
+ интернет нужен только для карты.
+
+
Расписание
+
Действует летнее расписание с 1 мая по 31 октября 2026 года.
+ Отправления взяты из данных диспетчерской службы перевозчика,
+ время прибытия приложение рассчитывает само — подробно в «Справке».
Карта и тайлы — VK Карты, геометрия дороги — OpenStreetMap.
+ Пуш-уведомления приходят через RuStore Push: для этого нужен
установленный и авторизованный RuStore на устройстве.
+
Приложение не использует геолокацию и не передаёт
+ данные о вашем местоположении: положение автобусов вычисляется
+ по расписанию на устройстве.