/* ================================================================
   Tap-feedback & микро-анимации (Задача 3, 2026-05-22)
   Чистый CSS, без JS. Цель: тактильный отклик на нажатия + современный
   аккуратный вид. Низкий риск: только добавляем :active/transition,
   не переопределяем поведение Bootstrap.

   prefers-reduced-motion: глобальный блок в base.html (`*{transition-
   duration:.01ms !important}`) сам глушит длительности → отдельные
   обёртки тут не нужны, переходы под reduce «снапаются».

   Кеш: файл новый → доезжает до всех сразу; на правки бить ?v= в base.html.
   ================================================================ */

/* Убираем серую вспышку на тач-устройствах — свой :active feedback ниже */
a, button, .btn,
.chip, .kpi-chip, .kpi-pill, .time-chip, .period-chip, .map-chip,
.status-chip, .masters-pill, .rec-pill, .oc-mini-btn, .oc-primary,
.side-nav__item, .bottom-nav__item, .order-card-premium, .chat-conv-card,
[role="button"] {
  -webkit-tap-highlight-color: transparent;
}

/* ---- Кнопки ---- */
/* Сохраняем переходы Bootstrap (цвет/фон/тень) и добавляем transform */
.btn {
  transition: color .15s ease-in-out, background-color .15s ease-in-out,
              border-color .15s ease-in-out, box-shadow .15s ease-in-out,
              transform .12s cubic-bezier(.2, .7, .3, 1);
}
.btn:active { transform: scale(.96); }
.btn:disabled, .btn.disabled, .btn.is-loading { transform: none; }

/* Кнопки внутри карточки заказа (orders_premium) */
.oc-primary {
  transition: transform .12s cubic-bezier(.2, .7, .3, 1),
              filter .15s ease, box-shadow .15s ease;
}
.oc-primary:active { transform: scale(.975); }
.oc-mini-btn:active { transform: scale(.95); }

/* ---- Навигация: тактильное нажатие ---- */
.side-nav__item:active,
.bottom-nav__item:active { transform: scale(.9); }

/* ---- Чипы / pill-фильтры ---- */
.chip, .kpi-pill, .time-chip, .period-chip, .map-chip,
.status-chip, .masters-pill, .rec-pill {
  transition: transform .12s ease, background .15s ease,
              color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.chip:active, .kpi-pill:active, .time-chip:active, .period-chip:active,
.map-chip:active, .masters-pill:active, .rec-pill:active { transform: scale(.95); }
/* .kpi-chip:active уже определён в app.css (scale .95) — не дублируем */

/* ---- Кликабельные карточки: лёгкое «утопление» ---- */
.order-card-premium, .chat-conv-card {
  transition: transform .16s ease, box-shadow .16s ease, background .15s ease;
}
.order-card-premium:active { transform: scale(.985); }
.chat-conv-card:active { transform: scale(.99); background: #eef2f7; }

/* ---- Десктоп: мягкий «лифт» только при настоящем hover ----
   (hover: hover) исключает sticky-hover на тач-экранах */
@media (hover: hover) {
  .btn:hover { filter: brightness(1.03); }
  .stat-mini { transition: transform .16s ease, box-shadow .16s ease; }
  .stat-mini:hover {
    transform: translateY(-2px);
    box-shadow: 0 .7rem 1.4rem rgba(0, 0, 0, .10);
  }
  .chat-conv-card:hover { transform: translateY(-1px); }
}

/* ---- Современный focus-visible для элементов без своего кольца ----
   (доступность с клавиатуры + аккуратный вид; кнопки оставляем
   на родном кольце Bootstrap, чтобы не задваивать) */
.side-nav__item:focus-visible,
.bottom-nav__item:focus-visible,
.order-card-premium:focus-visible,
.chat-conv-card:focus-visible,
.chip:focus-visible,
.list-group-item-action:focus-visible {
  outline: 2px solid rgba(13, 110, 253, .55);
  outline-offset: 2px;
  border-radius: 10px;
}
