/* v2-swipe.css — единая грамматика свайпов и подсказка жеста (docs/67 §2, срез 67A).
   Жест — js/v2/swipe_row.js, подсказка — js/v2/swipe_hint.js. Фон переиспользует .lv-swipe-bg доски. */
.sw-holder { position: relative; border-radius: var(--radius-lg); }
.sw-holder--clip { overflow: hidden; }
.sw-card { position: relative; z-index: 1; touch-action: pan-y; -webkit-tap-highlight-color: transparent; }
.sw-holder.is-swiping .sw-card { transition: none; user-select: none; -webkit-user-select: none; }
.sw-holder.is-swiped-out .sw-card { pointer-events: none; }
.sw-bg { border-radius: inherit; pointer-events: none; }
.sw-bg--left { justify-content: flex-end; }
.sw-bg--right { justify-content: flex-start; }
.sw-bg__lbl { white-space: nowrap; }
/* «Готово» (Сегодня): ← зелёный; на пороге насыщается; серые «Не то»/«Потерян» и «В работу» — из v2-leads.css */
.lv-swipe-bg--done { justify-content: flex-end; background: var(--st-won-bg); color: var(--st-won-fg); }
.sw-holder.is-armed-work .lv-swipe-bg--work { background: var(--col-won); color: #fff; }
.sw-holder.is-armed-notfit .lv-swipe-bg--notfit { background: var(--text-muted); color: #fff; }
.sw-holder.is-armed-done .lv-swipe-bg--done { background: var(--col-won); color: #fff; }
.sw-holder.is-swiped-out .sw-card { transition: transform 240ms var(--ease-out); }

/* карточка подсказки (одна на аккаунт) */
.sw-hint {
  display: flex; flex-direction: column; gap: 12px; padding: 14px 16px; box-sizing: border-box;
  border-radius: var(--radius-lg); background: var(--surface); border: 1px solid var(--border); box-shadow: var(--shadow-md);
}
.sw-hint__main { display: flex; gap: 12px; align-items: flex-start; }
.sw-hint__demo {
  position: relative; flex: none; width: 56px; height: 32px; margin-top: 2px; box-sizing: border-box; overflow: hidden;
  border-radius: var(--radius-md); background: var(--surface-sunken);
}
.sw-hint__dot { position: absolute; top: 50%; right: 8px; width: 10px; height: 10px; margin-top: -5px; border-radius: 50%; background: var(--col-won); }
.sw-hint__knob {
  position: absolute; top: 4px; left: 4px; width: 32px; height: 24px; border-radius: 8px; background: var(--surface);
  box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.12)); animation: sw-hint-slide 2.4s var(--ease-out) infinite;
}
@keyframes sw-hint-slide { 0%, 20% { transform: translateX(8px); } 55%, 80% { transform: translateX(-4px); } 100% { transform: translateX(8px); } }
.sw-hint__body { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.sw-hint__title { margin: 0; font-size: var(--text-body); line-height: 22px; font-weight: var(--weight-semibold); color: var(--text); }
.sw-hint__text { margin: 0; font-size: var(--text-callout); line-height: 20px; color: var(--text-muted); }
.sw-hint__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.sw-hint__note { min-width: 0; font-size: var(--text-caption); line-height: 16px; color: var(--text-faint); }
.sw-hint__ok { flex: none; }
@media (prefers-reduced-motion: reduce) {
  .sw-hint__knob { animation: none; transform: translateX(-4px); }
  .sw-holder.is-swiped-out .sw-card { transition: none; }
}
