/* ============================================================================
   ASSETS/CSS/TOUCH.CSS — [controls-1, 03.10.2026, Opus] стили сенсорных кнопок «как в
   мобильных GTA» (спецификация «Управление как в GTA/5 — …» §5). Исполнитель B.
   Действует ТОЛЬКО при новом вводе на телефоне: body.mobile.tchV2 (класс ставит
   js/input/touch.js). Координаты и размеры ставит js/input/touchLayout.js встроенным
   стилем с !important, здесь — вид, прозрачность и то, что убрано с экрана.
   Лежит в assets/, потому что Сборка/build.sh копирует только index.html, sw.js, js/, assets/.
   ============================================================================ */

/* долгое нажатие: без меню, выделения и «лупы» iOS [К2 п.26] */
body.mobile.tchV2 #mobAttack, body.mobile.tchV2 #mobRun, body.mobile.tchV2 #mobE, body.mobile.tchV2 #mobDzen,
body.mobile.tchV2 #mobWeapon, body.mobile.tchV2 #mobJump, body.mobile.tchV2 #mobMenu, body.mobile.tchV2 #minimapWrap,
body.mobile.tchV2 #drvEnter, body.mobile.tchV2 .drvBtn {
  -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; touch-action: none;
}

/* прозрачность кнопок в покое 60 % (настройка alpha), при нажатии — 100 % (§5.1) */
body.mobile.tchV2 #mobAttack, body.mobile.tchV2 #mobRun, body.mobile.tchV2 #mobE, body.mobile.tchV2 #mobDzen:not(.dim),
body.mobile.tchV2 #mobWeapon, body.mobile.tchV2 #mobJump, body.mobile.tchV2 #mobMenu,
body.mobile.tchV2 #drvEnter, body.mobile.tchV2 .drvBtn {
  opacity: var(--tchAlpha, .6); transition: opacity .1s, transform .08s, background-color .1s;
}
body.mobile.tchV2 .tchOn, body.mobile.tchV2 #mobRun.on, body.mobile.tchV2 .drvBtn.on { opacity: 1 !important; }

/* ⏸ и 📋 убраны с экрана (пауза — тап по радару, «Задания» — в ☰), но остаются в DOM:
   по ним бьют .click() tgtest и скриншоты (§5.2, §8.4) */
body.mobile.tchV2 > #hud #pauseBtn { display: none !important; }
body.mobile.tchV2 > #hud #objectives { display: none !important; }
/* ☰ без меню M (этап 2): открывает список заданий справа от кнопок верхнего ряда */
body.mobile.tchV2.tchObj > #hud #objectives { display: block !important; position: fixed !important;
  left: calc(var(--sal, 0px) + 114px * var(--tchS, 1)) !important; top: calc(var(--sat, 0px) + 58px * var(--tchS, 1)) !important;
  max-width: min(320px, 46vw) !important; max-height: 60vh !important; overflow-y: auto; z-index: 6; }
body.mobile.tchV2.tchObj > #hud #objectives #objList { display: block !important; }

/* новые кнопки: ☰ и «Прыжок» (в стиле остальных круглых кнопок) */
body.mobile.tchV2 #mobMenu, body.mobile.tchV2 #mobJump {
  display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0; line-height: 1;
  border-radius: 50%; border: 1.5px solid rgba(255,255,255,.45); background: rgba(20,22,26,.6); color: #fff; pointer-events: auto;
}
body.mobile.tchV2 #mobMenu .tchIc { font-size: 20px; }
body.mobile.tchV2 #mobJump .tchIc { font-size: 22px; font-weight: 700; }
body.mobile.tchV2 #mobJump small { font-size: 9px; font-weight: 600; opacity: .9; margin-top: 2px; }
body.mobile.tchV2 #mobMenu.tchOn, body.mobile.tchV2 #mobJump.tchOn { background: rgba(255,105,0,.85); }
body:not(.mobile) #mobMenu, body:not(.mobile) #mobJump, body:not(.tchV2) #mobMenu, body:not(.tchV2) #mobJump { display: none !important; }
/* «Прыжок» скрыт, пока не включён (галка «Кнопка прыжка» или «Бег: переключатель») */
body.mobile.tchV2:not(.tchJumpBtn) #mobJump { display: none !important; }
/* в машине, в станции курса, на экране «уДОДОвольствие» пешие кнопки скрыты */
body.mobile.tchV2.drvDriving #mobMenu ~ #mobJump, body.mobile.tchV2.drvDriving #mobJump,
body.mobile.tchV2.pcStation #mobJump, body.mobile.tchV2.isWasted #mobJump { display: none !important; }
body.mobile.tchV2.pcStation #mobMenu { display: none !important; }
body.mobile.tchV2:not(.inGame) #mobMenu { display: none !important; }

/* 🌙 в верхнем ряду — значком 42 px (в таблице §5.2 места нет; моя оценка) */
body.mobile.tchV2.tchLand > #hud #timeToggle { padding: 0 !important; font-size: 9px !important; line-height: 1.15; white-space: normal; text-align: center; overflow: hidden; }

/* радар: круглый, нажимается (тап — пауза, долгий — зум) */
body.mobile.tchV2.tchLand > #hud #minimapWrap { transform: none !important; border-radius: 50%; }
body.mobile.tchV2 > #hud #minimapWrap.tchOn { box-shadow: 0 0 0 2px rgba(255,255,255,.7), 0 0 14px rgba(64,240,255,.6); }

/* полоска HP под радаром (§5.2): сердце · полоса · число в 92 px */
body.mobile.tchV2.tchLand > #hud #cbHealth { display: flex; align-items: center; gap: 3px; z-index: 5; }
body.mobile.tchV2.tchLand > #hud #cbHpTrack { flex: 1 1 auto; width: auto !important; min-width: 0; }
body.mobile.tchV2.tchLand > #hud #cbHpNum { font-size: 11px !important; min-width: 0 !important; }
body.mobile.tchV2.tchLand > #hud #cbHeart { font-size: 11px !important; }

/* стик: кольцо в покое 35 %, без надписи «до края — бег» (спринт со стика убран, §5.2) */
body.mobile.tchV2 > #hud #joyBase:not(.active) { opacity: .35; }
body.mobile.tchV2 > #hud #joyBase::after { content: none !important; }

/* E — контекстная: «E» и короткая подпись по месту («Сесть», «Говорить»…) */
body.mobile.tchV2 #mobE small { font-size: 9.5px; max-width: 92%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* «Сесть в авто» / «Выйти»: значок машины и короткая подпись (driving.js пишет длинный текст) */
body.mobile.tchV2 #drvEnter[data-lbl] { font-size: 0 !important; padding: 0 !important; display: none; flex-direction: column; align-items: center; justify-content: center; border-radius: 50% !important; }
body.mobile.tchV2 #drvEnter[data-lbl][style*="display: block"] { display: flex !important; }
body.mobile.tchV2 #drvEnter[data-lbl]::before { font-size: 20px; margin: 0 0 2px; }
body.mobile.tchV2 #drvEnter[data-lbl]::after { content: attr(data-lbl); font-size: 11px; font-weight: 700; line-height: 1; }
body.mobile.tchV2.drvDriving #drvEnter[data-lbl]::before { content: '🚪'; }

/* панель курьера: свёрнута в одну строку «шаг · задание · метры», тап — развернуть (§5.2);
   тело панели пропускает касания в стик и обзор */
body.mobile.tchV2.tchLand > #hud #mission { pointer-events: none; overflow: hidden; }
body.mobile.tchV2.tchLand > #hud #mission .top { pointer-events: auto; cursor: pointer; }
body.mobile.tchV2.tchLand > #hud #mission .top::after { content: '▸'; opacity: .7; margin-left: 2px; }
body.mobile.tchV2.tchLand > #hud #mission.tchOpen .top::after { content: '▾'; }
body.mobile.tchV2.tchLand > #hud #mission:not(.tchOpen) #msTime,
body.mobile.tchV2.tchLand > #hud #mission:not(.tchOpen) #msHint { display: none !important; }
body.mobile.tchV2.tchLand > #hud #mission.tchOpen #msHint { display: block !important; }

/* подсказка слева вверху (§6): текст в несколько строк, без центровки */
body.mobile.tchV2.tchLand > #hud #prompt { text-align: left; white-space: normal; }
/* название района/улицы справа вверху, 2 строки (§5.2) */
body.mobile.tchV2.tchLand > #hud #zoneCaption { white-space: normal; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }

/* Telegram ниже 7.7: документ на 1 px выше окна — свайп вниз прокручивает его, а не сворачивает
   мини-приложение [К2 п.10] */
html.tchTgSwipe, html.tchTgSwipe body { height: calc(100% + 1px) !important; }

/* контейнеры кнопок (#mobCombat 78×78 у угла, #mobBtns) не перехватывают касания: кнопки внутри
   стоят по раскладке сами, а пустое место контейнера — это зона обзора */
body.mobile.tchV2 > #hud #mobCombat, body.mobile.tchV2 > #hud #mobBtns, body.mobile.tchV2 > #hud #topLeft { pointer-events: none !important; }
body.mobile.tchV2 > #hud #mobCombat > button, body.mobile.tchV2 > #hud #mobBtns > button, body.mobile.tchV2 > #hud #topLeft button, body.mobile.tchV2 > #hud #topLeft #objectives { pointer-events: auto; }
