/* ─────────────────────────────────────────────────────────────────────────────
   Мгновенный отклик на нажатие (:active)

   Зачем. На мобиле нет :hover — между тапом и ответом сервера (1–3 сек) экран не
   менялся вообще, и человек не понимал, засчитался тап или он промахнулся. А так как
   чипы после клика намеренно НЕ блокируются, второй тап от неуверенности уходил
   вторым запросом. Отклик на нажатии (а не на отпускании) это снимает.

   Почему без transition. У элементов ниже уже есть свои `transition` (background/color/
   opacity/shadow) в layout.css / chat.css / modal.css. Шорткат `transition` здесь их бы
   затёр. Масштаб маленький (3%), поэтому мгновенное нажатие и мгновенный возврат
   читаются чисто — и это буквально минимальная возможная задержка отклика.

   Грузится ПОСЛЕ layout/chat/modal: у части элементов :hover тоже двигает transform
   (translateY-подъём), и нажатие должно его перебивать.

   Не трогаем .idle-chip и .review-pill — у них уже есть собственный :active.
   ───────────────────────────────────────────────────────────────────────────── */

/* iOS рисует поверх тапа свою серую подсветку-прямоугольник — на скруглённых чипах
   выглядит грязно и конфликтует с нашим сжатием. Гасим точечно, только там, где даём
   свой отклик (глобально гасить нельзя: останутся элементы вообще без фидбека). */
.message-action-btn,
.chat-input__send,
.chat-input__voice,
.sidebar__nav-item,
.sidebar__panel-back,
.sidebar__new-chat,
.sidebar__hamburger,
.sidebar-expand-btn,
.sidebar__collapse,
.sidebar__badge,
.sidebar__level-badge,
.sidebar__login-btn,
.sidebar__theme-toggle,
.theme-toggle-btn,
.msg-counter__cta,
.npc-card,
.scenario-category,
.scenario-topic,
.modal__close,
.modal__submit,
.level-card,
.plan__btn {
  -webkit-tap-highlight-color: transparent;
}

/* Кнопки-чипы и карточки — заметное сжатие. */
.message-action-btn:active:not(:disabled),
.sidebar__nav-item:active,
.sidebar__panel-back:active,
.sidebar__new-chat:active,
.msg-counter__cta:active,
.npc-card:active,
.scenario-category:active,
.scenario-topic:active,
.modal__submit:active:not(:disabled),
.level-card:active,
.plan__btn:active:not(:disabled) {
  transform: scale(0.97);
}

/* Мелкие круглые контролы — сжимаем сильнее: на маленькой площади 3% не читаются. */
.chat-input__send:active:not(:disabled),
.chat-input__voice:active,
.sidebar__hamburger:active,
.sidebar-expand-btn:active,
.sidebar__collapse:active,
.sidebar__badge:active,
.sidebar__level-badge:active,
.sidebar__login-btn:active,
.sidebar__theme-toggle:active,
.theme-toggle-btn:active,
.modal__close:active {
  transform: scale(0.92);
}

/* Reduced motion: движение убираем, но отклик обязан остаться — иначе снова «мёртвый»
   тап. Меняем масштаб на мгновенное затемнение. */
@media (prefers-reduced-motion: reduce) {
  .message-action-btn:active:not(:disabled),
  .sidebar__nav-item:active,
  .sidebar__panel-back:active,
  .sidebar__new-chat:active,
  .msg-counter__cta:active,
  .npc-card:active,
  .scenario-category:active,
  .scenario-topic:active,
  .modal__submit:active:not(:disabled),
  .level-card:active,
  .plan__btn:active:not(:disabled),
  .chat-input__send:active:not(:disabled),
  .chat-input__voice:active,
  .sidebar__hamburger:active,
  .sidebar-expand-btn:active,
  .sidebar__collapse:active,
  .sidebar__badge:active,
  .sidebar__level-badge:active,
  .sidebar__login-btn:active,
  .sidebar__theme-toggle:active,
  .theme-toggle-btn:active,
  .modal__close:active {
    transform: none;
    filter: brightness(0.9);
  }
}
