/* Отклик на телефоне: без задержки нажатия, без «залипшего» :hover, мгновенная реакция на касание, лёгкий рендер длинных списков. */
a, button, [data-act], [data-ch], .chip, .rchip, .lo-chip, summary, label, select, input[type=checkbox], input[type=radio] { touch-action: manipulation; }
html { -webkit-tap-highlight-color: rgba(31, 111, 255, .14); -webkit-text-size-adjust: 100%; }
/* iOS Safari не отдаёт `click` в обработчик на document от «неинтерактивных» элементов (div/li/tr/span) без cursor:pointer — отсюда «кнопки не нажимаются» только на iPhone.
   Все элементы с делегированным действием помечаем как кликабельные. */
[data-act], [data-open], [data-want] { cursor: pointer; }
.rq-r.rq-h { cursor: default; }
/* тост не перехватывает касания: он висит над нижним меню и раньше «съедал» нажатия на его кнопки */
.toast { pointer-events: none; }
/* полоска вверху, пока экран грузится (route() ставит body.gt-loading сразу после нажатия), и приглушённый прошлый экран */
body.gt-loading::before { content: ""; position: fixed; left: 0; top: 0; height: 3px; width: 40%; background: var(--blue, #1f6fff); z-index: 200; pointer-events: none; animation: gt-busy 1s ease-in-out infinite; }
body.gt-loading #app { opacity: .55; transition: opacity .12s .12s; }
@keyframes gt-busy { 0% { transform: translateX(-100%); } 100% { transform: translateX(260%); } }
/* мгновенный визуальный отклик на касание */
@media (hover: none) {
  a:active, button:active, [data-act]:active, .chip:active, .rchip:active, .rq-r:active, .lo-chip:active, .bottomnav a:active { opacity: .6; transition: none; }
  .job:hover { transform: none; box-shadow: none; }
  .btn.p:hover, .tk-go:hover { filter: none; }
}
/* длинные ряды карточек/строк: браузер не рисует то, что за экраном */
.fc, .job, .mc, .lo-c, .md-card, .rq-r:not(.rq-h) { content-visibility: auto; contain-intrinsic-size: auto 150px; }
.morew { padding: 12px 0 4px; text-align: center; }
.morew .btn { min-height: 44px; }
