/* Раздел «Лиды» (Этап-2). Только токены: цвета литералами здесь нельзя. Анимируются transform и opacity.
   Телефон (< 1024): список или карточка, одно на экран. Компьютер (≥ 1024): список 420 px слева, карточка справа. */

.leads {
  display: flex;
  flex-direction: column;
  gap: var(--s-5);
  min-width: 0;
}
.leads__list,
.leads__card {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  min-width: 0;
}
.leads__list > *,
.leads__card > * {
  flex: none; /* ленты с прокруткой не сжимаются до нуля, когда колонка ограничена по высоте */
}
@media (max-width: 1023px) {
  .leads {
    padding-bottom: 96px; /* последняя строка не прячется под плавающей кнопкой */
    gap: var(--s-3);
  }
  .leads__list {
    gap: var(--s-3);
  }
  .leads .leads__head {
    display: none; /* на телефоне заголовок «Лиды» дублирует вкладку внизу и съедает первый экран */
  }
}
.leads__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
}
.leads__add {
  display: none;
}
.leads__title {
  font-size: 2.5rem; /* на компьютере заголовок списка не спорит с именем лида справа */
}
/* Переключатель «Лиды / Рефералы»: сегмент на --surface-2, выбранный лежит на --raised, без оранжевого (оранжевый только у папок) */
.leads__switch {
  display: flex;
  gap: 4px;
  padding: 4px;
  background: var(--surface-2);
  border-radius: var(--r-m);
}
.leads__switch .chip-tab,
.leads__switch .chip-tab[aria-selected="true"] {
  flex: 1;
  justify-content: center;
  height: 36px;
  min-height: 36px;
  border-radius: var(--r-s);
  box-shadow: none;
}
.leads__switch .chip-tab {
  background: transparent;
  color: var(--mute);
}
.leads__switch .chip-tab[aria-selected="true"] {
  background: var(--raised);
  color: var(--text);
  box-shadow: inset 0 0 0 1px var(--line-2);
}
.leads__search {
  display: flex;
  align-items: flex-start;
  gap: var(--s-2);
}
.leads__search .field__label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.leads__search .field {
  flex: 1;
  min-width: 0;
}
.leads__filter {
  position: relative;
  flex: none;
  min-height: var(--h-field);
  padding: 0 var(--s-4);
}
.leads__filter.has-dot::after {
  content: "";
  position: absolute;
  top: 8px;
  right: 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
}
.leads__active {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
}
.chip--filter {
  height: 36px;
  min-width: 44px;
  background: var(--accent-soft);
  color: var(--accent-text);
  box-shadow: inset 0 0 0 1px var(--accent-line);
}
.leads__folders .chip-tab {
  min-height: 44px;
}
.leads__hint[hidden] {
  display: none;
}
.leads__hint {
  color: var(--mute);
  font-size: var(--t-small);
  line-height: 1.43;
  margin-top: calc(-1 * var(--s-1));
}
.leads__notice:empty {
  display: none;
}
.leads__empty-btns {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  width: 100%;
  max-width: 320px;
}
.leads__more {
  display: flex;
  justify-content: center;
}
.leads__sentinel {
  height: 1px;
}
.leads__sheet-btns {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}
.leads__placeholder {
  display: none;
}
.chip-tab--tall {
  min-height: 44px;
  justify-content: center;
}
/* «Не спрашивали» это отсутствие ответа, а не выбранный ответ: без оранжевого */
.chip-tab--neutral[aria-checked="true"] {
  background: var(--raised);
  color: var(--text);
  box-shadow: inset 0 0 0 1px var(--line-2);
}
.leads__empty {
  margin-top: 8vh;
}

/* Строка лида: ник скрыт на узком экране, источник остаётся */
.lead-row {
  content-visibility: auto;
  contain-intrinsic-size: auto 72px;
}
.lead-row .row__sub {
  display: block;
  white-space: normal; /* источник и обработчик переносятся, а не обрезаются многоточием */
  overflow: visible;
  text-overflow: clip;
}
.lead-row {
  height: auto;
}
.lead-row .row__nick {
  display: none;
}
.row__sub--show {
  display: block;
}
.lead-row.is-hot .chip--stop {
  flex: none;
}
.ref-row .row__meta {
  flex-wrap: wrap;
}
.ref-row .chip {
  white-space: normal;
  height: auto;
  min-height: 28px;
  padding: 6px 12px;
  line-height: 1.2;
}
.ref-count {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--surface-2);
  font: 700 var(--t-num-s) / 1 var(--f-display);
  color: var(--text-2);
}
@media (min-width: 640px) {
  .lead-row .row__nick {
    display: inline;
  }
  .lead-row .row__meta {
    flex-wrap: wrap;
  }
  .lead-row {
    min-height: 84px;
  }
}

/* Плавающая кнопка «+» (телефон): единственный плавающий элемент на экране */
.main-col {
  position: relative;
}
.fab {
  position: absolute;
  right: var(--s-4);
  bottom: calc(var(--s-4) + env(safe-area-inset-bottom, 0px));
  z-index: var(--z-dock);
  width: 56px;
  height: 56px;
  min-height: 56px;
  padding: 0;
  border-radius: 50%;
  background: var(--btn-fill);
  color: var(--accent-ink);
  box-shadow: var(--glow-btn);
}
.fab[hidden] {
  display: none;
}

/* Телефон: карточка заменяет список */
.leads.is-card .leads__list {
  display: none;
}
.leads:not(.is-card) .leads__card {
  display: none;
}

@media (min-width: 1024px) {
  .leads {
    display: grid;
    grid-template-columns: 420px minmax(0, 1fr);
    align-items: start;
    gap: var(--s-7);
  }
  .leads.is-card .leads__list,
  .leads:not(.is-card) .leads__card {
    display: flex;
  }
  .leads__add {
    display: inline-flex;
  }
  .fab {
    display: none;
  }
  .leads__list {
    position: sticky;
    top: var(--s-4);
    max-height: calc(100dvh - 2 * var(--s-4));
    overflow-y: auto;
    padding-right: var(--s-1);
    overscroll-behavior: contain;
  }
  .leads__card {
    max-width: 640px;
  }
  .leads__folders {
    flex-wrap: wrap;
    overflow: visible;
    -webkit-mask-image: none;
    mask-image: none;
  }
  .leads__folders .chip-tab {
    min-height: 36px;
  }
  .leads.is-card .leads__add {
    background: var(--surface-2);
    color: var(--text);
    box-shadow: inset 0 0 0 1px var(--line-2);
  }
  .leads__empty {
    margin-top: 4vh;
  }
  .leads__placeholder {
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    min-height: 50vh;
    align-items: center;
    gap: var(--s-3);
    padding: var(--s-6);
    color: var(--mute);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-m);
  }
  .lead-card__back {
    display: none;
  }
}

/* ---------- Карточка лида ---------- */
.lead-card {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  min-width: 0;
}
.lead-card__bar {
  display: flex;
  align-items: center;
  min-height: 44px;
}
.lead-card__back {
  margin-left: calc(-1 * var(--s-3));
  min-height: 44px;
}
.lead-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s-3);
}
.lead-card__title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--s-2);
  min-width: 0;
}
.lead-card__name {
  font: 800 var(--t-h1) / 1.05 var(--f-display);
  letter-spacing: 0.01em;
  overflow-wrap: anywhere;
}
.lead-card__more {
  flex: none;
}
.lead-sum {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
}
.lead-sum__top {
  display: flex;
  align-items: center;
  gap: var(--s-5);
}
.lead-sum__text {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
  min-width: 0;
}
.lead-sum__main {
  font-size: var(--t-h2);
  line-height: var(--t-lh-h2);
  font-weight: 700;
}
.lead-sum__money {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  padding-top: var(--s-3);
  border-top: 1px solid var(--line);
  font-variant-numeric: tabular-nums;
}
.lead-sum__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s-2);
}
.lead-sum__cols--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.lead-sum__col {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
  min-width: 0;
  padding: var(--s-3);
  background: var(--surface-2);
  border-radius: var(--r-s);
}
.lead-sum__col .t-label {
  color: var(--mute);
}
.lead-sum__num {
  font: 700 var(--t-num-m) / 1.05 var(--f-display);
  color: var(--text);
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.lead-sum__col.is-hi .lead-sum__num {
  color: var(--accent-text);
}
@media (max-width: 420px) {
  .lead-sum__cols--3 .lead-sum__num {
    font-size: var(--t-num-s);
  }
}
.lead-info {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  padding: 0 var(--s-1);
}
.lead-info__nick {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-3);
  flex-wrap: wrap;
}
.lead-info__nick b {
  font-size: var(--t-h2);
  overflow-wrap: anywhere;
}
.lead-info__tg {
  min-height: 44px;
  padding: 0 var(--s-4);
  text-decoration: none;
}
.lead-info__grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-1) var(--s-5);
}
.lead-info__src {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--s-2) var(--s-3);
}

/* Ссылки для лида и строки офферов */
.lead-links {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}
.lead-links__head {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  min-height: 44px;
  width: 100%;
  text-align: left;
  color: inherit;
}
.lead-links__head .t-h2 {
  flex: 1;
}
.lead-links__body {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}
.lead-links__body[hidden] {
  display: none;
}
.lead-links__hint {
  flex: none;
}
.lead-links__types .chip-tab {
  min-height: 44px;
}
.lead-links__rows {
  display: flex;
  flex-direction: column;
}
.lo {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  padding: var(--s-4) 0;
  border-top: 1px solid var(--line);
}
.lo:first-child {
  border-top: 0;
}
.lo__top {
  display: flex;
  gap: var(--s-2);
  align-items: center;
}
.lo--compact {
  gap: 0;
  padding: 0;
}
.lo__main {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: var(--s-3);
  min-height: 64px;
  padding: var(--s-2) 0;
  text-align: left;
  color: inherit;
}
.lo__main .lo__name {
  flex: 1;
}
.lo__main > .icon {
  flex: none;
  color: var(--mute);
}
.lo__copy.is-done {
  background: var(--ok-soft);
  color: var(--ok);
}
.lo__det {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  padding: 0 0 var(--s-4) calc(28px + var(--s-3));
}
.lo__det[hidden] {
  display: none;
}
.lo__yes .icon {
  color: var(--ok);
}
.lo__what {
  color: var(--mute);
}
.lo__acts .btn--quiet {
  min-height: 44px;
}
.lo--issued .lo__acts {
  gap: var(--s-3);
}
.lo--issued .lo__acts .btn--primary {
  min-height: var(--h-btn);
}
.lo__n {
  flex: none;
  width: 28px;
  color: var(--mute);
  font: 700 var(--t-num-s) / 1.2 var(--f-display);
  font-variant-numeric: tabular-nums;
}
.lo__name {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  min-width: 0;
}
.lo__name b {
  font-weight: 600;
  overflow-wrap: anywhere;
}
.lo__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
}
.lo__plaque {
  display: flex;
  gap: var(--s-2);
  align-items: flex-start;
  padding: var(--s-3) var(--s-4);
  background: var(--stop-soft);
  border: 1px solid var(--stop-line);
  border-radius: var(--r-s);
  color: var(--stop-text);
  font: 800 var(--t-small) / 1.3 var(--f-text);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.lo__plaque .icon {
  flex: none;
}
.lo__acts {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}
.lo__acts .btn {
  min-height: 48px;
  width: 100%;
}
.lo__pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s-2);
}
.lo__pair .btn {
  padding: 0 var(--s-3);
}
.lo__toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  align-self: flex-start;
  min-height: 44px;
  color: var(--text-2);
  font-size: var(--t-small);
  font-weight: 600;
}
.lo__terms {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}
.lo__terms[hidden] {
  display: none;
}
.lo__short {
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  font-size: var(--t-small);
  line-height: 1.4;
}
.lo__cd {
  color: var(--text-2);
  font-size: var(--t-small);
  line-height: 1.5;
}
.lo__dl {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  align-self: flex-start;
  font-size: var(--t-small);
  font-weight: 600;
  line-height: 1.3;
}
.lo__dl--mute {
  color: var(--text-2);
}
.lo__dl--ok {
  color: var(--ok);
}
.lo__dl--hot {
  padding: 4px 10px;
  border-radius: var(--r-pill);
  background: var(--stop-soft);
  color: var(--stop-text);
}
.lo__dl--dead {
  padding: 4px 10px;
  border-radius: var(--r-pill);
  background: var(--stop);
  color: var(--on-stop);
}
.lo__share {
  font-variant-numeric: tabular-nums;
  color: var(--text-2);
}
.lo--other {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-3);
}
.lo--other .btn {
  width: auto;
  flex: none;
  min-height: 44px;
}
.lead-issued,
.lead-other,
.lead-answers,
.lead-notes,
.lead-history {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}
.lead-answers__q {
  font-weight: 600;
  line-height: 1.4;
}
.lead-notes__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-3);
}
.lead-notes__text {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.lead-calls {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  padding: 0 var(--s-1);
}
.hist {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--s-2) 0;
  border-top: 1px solid var(--line);
}
.hist:first-child {
  border-top: 0;
}
.hist__at {
  font-size: var(--t-label);
  color: var(--mute);
}
.hist__text {
  font-size: var(--t-small);
  line-height: 1.43;
  overflow-wrap: anywhere;
}
@media (min-width: 640px) {
  .lo__acts {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .lo__acts .btn {
    width: auto;
    flex: none;
  }
  .lo__pair {
    display: flex;
    gap: var(--s-2);
  }
}

/* ---------- Лист «Новый лид» ---------- */
.lead-form {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
}
.lead-form[hidden] {
  display: none;
}
.lead-form__save {
  position: sticky;
  bottom: calc(-1 * var(--s-6));
  padding: var(--s-3) 0;
  background: var(--raised);
  border-top: 1px solid var(--line);
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}
.form-note--why {
  margin-top: 0;
}
.form-note {
  color: var(--mute);
  font-size: var(--t-small);
  line-height: 1.43;
  margin-top: calc(-1 * var(--s-2));
}
.form-note[hidden] {
  display: none;
}
.lead-form__ref {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}
.lead-form__ref[hidden] {
  display: none;
}
.lead-form__picked {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}
.lead-form__picked-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--s-2) var(--s-3);
}
.lead-form__results {
  max-height: 260px;
  overflow-y: auto;
}
.lead-form__ref-row {
  min-height: 56px;
}
.lead-form__open {
  margin-top: var(--s-2);
  min-height: 44px;
}
