/* ═════════════════════════════════════════════════════════════════════════
   ЛК КЛИЕНТА · ПРАВИЛА ПАЛЬЦА — ОДИН ФАЙЛ НА ВСЕ ЭКРАНЫ.

   Три замечания владельца об одном и том же — «браузер лезет поверх нашего
   интерфейса и я промахиваюсь мимо кнопок»:
     06.09 — долгое нажатие выделяло слово и поднимало меню «найти в сети»;
     10.09 — свайп вниз обновлял страницу; в корзине этого запрета не было;
     10.09 — двойной тап и щипок зумят экран, отсюда мискликов больше всего.

   Раньше рецепт жил внутри `aura-client.css` (блок «ВЫДЕЛЕНИЕ ТЕКСТА В
   КАБИНЕТЕ ВЫКЛЮЧЕНО»), а тот подключён РОВНО ОДНОЙ страницей — кабинетом.
   Корзина, баланс, чат и экраны записи по горящим слотам оставались без
   правил: в них и выделялось, и обновлялось свайпом. Отсюда общий файл.

   ⚠ ЧТО СЮДА НЕ ПЕРЕНОСИТСЯ: `height:100%; overflow:hidden` кабинета. Это
   его модель прокрутки (страницу листает .scroll, а не тело), у корзины
   модель своя — .app высотой 100dvh. Перенос сломал бы вёрстку.

   Проверяется прибором tools/qa/touch-guard.js.
   ═════════════════════════════════════════════════════════════════════════ */

/* ── 1. СВАЙП ВНИЗ НЕ ОБНОВЛЯЕТ СТРАНИЦУ ─────────────────────────────────
   ⚠ ОСЬ УКАЗАНА ЯВНО. `overscroll-behavior: none` гасит цепочку по обеим
   осям — вместе с жестом «назад» браузера. В корзине и на экранах записи
   назад уходят постоянно, а горизонтальные жесты в проекте берегут
   осознанно (notif-feed: «pan-y: без него свайп карточки спорит с жестом
   назад»). Гасим только вертикаль: обновление закрыто, «назад» цел.
   В кабинете действует его собственное `overscroll-behavior: none` из
   aura-client.css — он подключается позже и остаётся победителем. */
html, body { overscroll-behavior-y: none; }

/* ── 2. ДВОЙНОЙ ТАП НЕ ЗУМИТ ──────────────────────────────────────────────
   `manipulation` = «прокрутка и щипок остаются, двойной тап и его задержка
   в 300 мс уходят». Именно он, а не `none` (убил бы прокрутку) и не
   `pan-x pan-y` (отнял бы щипок у потомков, включая карту: эффективное
   поведение — пересечение значений по всей цепочке предков).
   Точечные `touch-action: none` / `pan-y` на сторис, шторках, карте и
   ленте-шортс остаются победителями по тому же правилу пересечения. */
html, body { touch-action: manipulation; }

/* ── 3. ТЕКСТ НЕ ВЫДЕЛЯЕТСЯ ──────────────────────────────────────────────
   Перенос блока из aura-client.css слово в слово. Экран пальцевый: свайп
   карточки и долгое нажатие на плитку оборачивались выделением слова и
   всплывающим меню браузера поверх нашего интерфейса. Выделять в кабинете
   нечего — всё, что копируют, лежит в полях или помечено data-copyable. */
html, body, .app {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  /* меню «скопировать / найти» по долгому нажатию на ссылку и картинку */
  -webkit-touch-callout: none;
}
input, textarea, select, [contenteditable="true"], [data-copyable] {
  -webkit-user-select: text;
  -moz-user-select: text;
  user-select: text;
  -webkit-touch-callout: default;
}

/* ── 4. ПОЛЕ НЕ ЗУМИТ ЭКРАН ПРИ ФОКУСЕ ───────────────────────────────────
   Отдельная причина зума, которую не лечит ни meta, ни touch-action: Safari
   на iOS сам приближает страницу, когда фокус уходит в поле с кеглем меньше
   16px, и обратно уже НЕ отдаляет — человек остаётся на увеличенном экране
   и промахивается мимо кнопок. Это и есть половина жалобы на мисклики.

   ⚠ ОБЩЕГО ПРАВИЛА ЗДЕСЬ НАМЕРЕННО НЕТ. Селектор `input` весит 0,0,1 и
   проиграл бы любому классу — а именно классы и задают мелкий кегль
   (.field 14px, .promo input 13px). Поднять вес через :not() можно, но тогда
   правило перебило бы и НАМЕРЕННО крупные поля (имя профиля 26px, код входа
   19px), то есть сделало бы вёрстку хуже. Поэтому кегль правится точечно, у
   каждого поля-нарушителя: список и правки — в коммите «запрет зума».
   Здесь оставлена только запись причины, чтобы следующий не искал заново. */
