/* ==========================================================================
   Кабинеты — правки созвонов 24.09.2026. Слой поверх lk-design.css
   ==========================================================================
   Разметку этих блоков рисует lk-design.js; прототип кабинета (client.html,
   partner.html) ни этот файл, ни скрипт не подключает.
   ========================================================================== */

/* Табличные цифры — только там, где числа стоят друг под другом или не
   должны дёргаться при обновлении: столбцы таблиц, показатели, деньги,
   шкала графика. Это просьба Коли — в «3 016» и «12 400» столбцы чисел
   «гуляли», потому что у единицы в Onest своя узкая ширина.

   Раньше правило стояло на весь кабинет, и в обычном тексте выходило
   обратное: «ID 1019» или «купон 1019» читались с рваным шагом —
   табличная единица занимает слот шириной с ноль и висит в воздухе
   (правка Ивана 29.09). В тексте цифры снова пропорциональные.

   Столбцы таблиц, .lk-kpi__v, итоги и кошелёк табличные сами по себе —
   это в lk.css. Здесь добираем то, что появилось в дизайн-слое. */
.lkd .lkd-wal b,
.lkd .lkd-ready,
.lkd .lk-t__sub .lkd-num{font-variant-numeric:tabular-nums}

/* --------------------------------------------------------------------------
   Кошелёк в шапке: баланс и бонусы — два числа, у бонусов свой значок
   -------------------------------------------------------------------------- */
.lkd .lk__wallet{gap:12px}
.lkd-wal{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2)}
.lkd-wal b{font-weight:600;color:var(--ink)}
.lkd-wal svg{flex:none}
.lkd-wal--bon{padding-left:12px;border-left:1px solid var(--line)}
.lkd-wal--bon svg{color:var(--brand)}
/* На телефоне кнопке «Создать купон» и колокольчику не даём сжиматься —
   раньше они сплющивались, когда шапке не хватало места. До 560px
   убираем значок кошелька, до 400px — число бонусов, как было в
   прототипе: там на телефоне тоже оставался только баланс. Бонусы видны
   на дашборде и в биллинге, куда ведёт кошелёк. */
@media (max-width:960px){.lkd .lk__cta,.lkd .lk__bell{flex:none}}
@media (max-width:560px){
  .lkd .lk__wallet{gap:8px;padding-left:10px;padding-right:10px}
  .lkd-wal:first-child svg{display:none}
  .lkd-wal--bon{padding-left:8px}
}
@media (max-width:400px){
  .lkd .lk__wallet{padding-left:8px;padding-right:8px}
  .lkd-wal:first-child svg{display:block}
  .lkd-wal--bon{display:none}
}

/* --------------------------------------------------------------------------
   Дашборд рекламодателя
   -------------------------------------------------------------------------- */
/* Слева опубликованное и требующее внимания друг под другом, справа —
   рекламное место шириной с карточку в ленте */
.lkd-dash{
  display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;
  /* Оба столбца кончаются на одном уровне (правка Ивана 29.09). Раньше
     они стояли по верхнему краю, и под коротким висела дыра: на дашборде
     — под карточкой купона, на статистике — под графиком. Теперь тянется
     тот, кто короче. */
  align-items:stretch;margin-bottom:16px;
}
.lkd-dash__main{display:flex;flex-direction:column;gap:16px;min-width:0}
.lkd-dash__main .lk-panel{margin:0}
/* Снимок карточки не тянем: 4:5 — фиксированная пропорция купона, и
   рекламное место показывает ровно ту карточку, что в ленте (Иван 29.09).
   Высоту столбца карточка отрабатывает иначе: остаётся у верхнего края и
   едет вместе с прокруткой, как превью в мастере, — место под ней не
   пустует, пока читаешь длинный левый столбец. */
.lkd-dash > .lkd-ad,.lkd-dash > .lkd-adpair{align-self:start;position:sticky;top:calc(var(--header-h) + 20px)}
/* Статистика: панель во всю высоту столбца, график забирает остаток */
.lkd-dash--chart .lk-panel{display:flex;flex-direction:column;height:100%}
@media (max-width:1100px){.lkd-dash{grid-template-columns:minmax(0,1fr) 260px}}
@media (max-width:900px){
  .lkd-dash{grid-template-columns:1fr}
  /* В одну колонку карточка идёт своей очередью, липнуть ей не к чему */
  .lkd-dash > .lkd-ad,.lkd-dash > .lkd-adpair{position:static}
}

/* Компактная полоса показателей (дашборд партнёра): семь плиток в один
   ряд. Мельче шрифт и поля, плитки не растягиваются на всю ширину. */
/* auto-fill, а не auto-fit: плитка не уже 168px — на этой ширине
   заголовок влезает в строку, и плитка остаётся вытянутой, а не
   квадратной. Плитка, не поместившаяся в ряд, сохраняет свой размер,
   а не растягивается на всю ширину. */
.lk-kpi.lkd-kpi-row{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px}
/* Плитка вытянута по горизонтали, а не квадратная: поля и промежутки
   поджаты, заголовки — в одну строку (правка Ивана 29.09). */
.lkd-kpi-row .lk-kpi__c{padding:11px 14px}
.lkd-kpi-row .lk-kpi__l{font-size:12.5px;line-height:1.25;align-items:flex-start;min-height:1.25em}
.lkd .lkd-kpi-row .lk-kpi__v{font-size:22px;line-height:1.15;margin-top:3px}
/* Подпись под числом — одной строкой */
.lkd-kpi-row .lk-kpi__h{font-size:11px;margin-top:1px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Числа во всех плитках ряда на одном уровне: заголовок в две строки
   больше не опускает своё число ниже соседних. Строки плитки берутся из
   общей сетки — заголовок, число и подпись становятся общими рядами
   (правка Ивана 29.09). */
@supports (grid-template-rows:subgrid){
  .lk-kpi.lkd-kpi-row{grid-template-rows:auto auto auto}
  /* row-gap:0 — иначе плитка забирает промежуток между рядами полосы
     (10px) себе внутрь, между заголовком, числом и подписью, и растёт
     на 20px */
  .lkd-kpi-row .lk-kpi__c{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0}
  .lkd-kpi-row .lk-kpi__l{min-height:0}
}
@media (max-width:1100px){
  .lk-kpi.lkd-kpi-row{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
}
@media (max-width:520px){
  .lk-kpi.lkd-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Бонусы и баланс — две карточки, число крупно */
.lkd-money{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}
@media (max-width:700px){.lkd-money{grid-template-columns:1fr}}
.lkd-money__c{
  display:grid;grid-template-columns:1fr auto;grid-template-areas:"l act" "v act" "burn act";
  align-items:center;gap:4px 16px;margin:0;padding:20px 22px;
}
.lkd-money__l{grid-area:l;font-size:13px;color:var(--ink-3)}
.lkd-money__v{grid-area:v;display:flex;align-items:center;gap:10px}
.lkd-money__v b{font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:normal}
.lkd-money__v i{font-style:normal;font-size:14px;color:var(--ink-3);align-self:flex-end;margin-bottom:4px}
.lkd-money__ic{
  display:grid;place-items:center;width:34px;height:34px;border-radius:50%;
  background:var(--brand-50);color:var(--brand);
}
.lkd-money__ic svg{width:22px;height:22px}
.lkd-money__ic--ink{background:var(--surface);color:var(--ink-2)}
.lkd-money__burn{
  grid-area:burn;display:flex;align-items:center;gap:6px;
  font-size:13px;color:var(--st-wait);
}
.lkd-money__burn b{font-weight:600}
.lkd-money__burn--calm{color:var(--ink-3)}
.lkd-money__act{grid-area:act}
@media (max-width:420px){
  .lkd-money__c{grid-template-columns:1fr;grid-template-areas:"l" "v" "burn" "act"}
  .lkd-money__act{margin-top:10px}
}

/* ИИ-консультант «скоро»: серая плашка вместо красной кнопки */
.lkd-soon b{display:flex;align-items:center;gap:8px}
.lkd-soon__tag{
  padding:2px 8px;border-radius:var(--r-pill);
  background:var(--surface-2);color:var(--ink-2);
  font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
}
.lkd-soon__plate{
  padding:12px 14px;border-radius:12px;
  background:var(--surface);color:var(--ink-2);
  font-size:13.5px;line-height:1.5;
}

/* --------------------------------------------------------------------------
   Рекламное место — по размерам карточки купона из ленты
   -------------------------------------------------------------------------- */
.lkd-ad{display:flex;flex-direction:column;min-width:0}
.lkd-ad__media{
  position:relative;display:block;aspect-ratio:4/5;border-radius:18px;overflow:hidden;
  background:var(--surface) center/cover no-repeat;
  transition:transform .25s var(--ease);
}
.lkd-ad__media:hover{transform:translateY(-2px)}
.lkd-ad__corner{
  position:absolute;left:10px;top:10px;
  padding:5px 10px;border-radius:var(--r-pill);
  background:var(--ink);color:#fff;font-size:11px;font-weight:600;
}
.lkd-ad__erid{position:absolute;right:12px;top:12px;font-size:10px;color:rgba(255,255,255,.7)}
.lkd-ad__badge{
  position:absolute;left:10px;bottom:10px;max-width:calc(100% - 20px);
  padding:7px 16px 8px;border-radius:10px;
  background:var(--brand);color:#fff;
  font-size:15px;font-weight:800;letter-spacing:-.02em;line-height:1.12;
  -webkit-mask:
    radial-gradient(circle 5px at left 50%, transparent 98%, #000) left / 51% 100% no-repeat,
    radial-gradient(circle 5px at right 50%, transparent 98%, #000) right / 51% 100% no-repeat;
          mask:
    radial-gradient(circle 5px at left 50%, transparent 98%, #000) left / 51% 100% no-repeat,
    radial-gradient(circle 5px at right 50%, transparent 98%, #000) right / 51% 100% no-repeat;
}
.lkd-ad__body{display:flex;flex-direction:column;gap:6px;padding:12px 2px 0}
.lkd-ad__title{font-size:15px;font-weight:600;line-height:1.3;color:var(--ink)}
.lkd-ad__meta{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-3)}
.lkd-ad__meta b{font-weight:500;color:var(--ink-2)}
.lkd-ad__acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.lkd-ad__acts .btn{height:40px;padding:0 10px;font-size:13.5px}

/* Баннер того же размера, что и купон */
/* Высота — как у соседнего купона в этой же строке (Иван 25.09): у
   баннера своего фото нет, а aspect-ratio считал высоту от своей ширины,
   не от строки сетки, и рядом с карточкой купона он получался ниже.
   height:100% забирает высоту строки грида — обе карточки в ряду
   растягиваются на высоту самой высокой (родная стойка grid). */
.lkd-ad--banner{
  height:100%;box-sizing:border-box;justify-content:flex-end;gap:10px;
  padding:22px;border-radius:18px;background:var(--ink);color:#fff;
}
.lkd-ad--banner .lkd-ad__label{margin-bottom:auto;color:rgba(255,255,255,.55)}
.lkd-ad__kicker{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--brand-300)}
.lkd-ad__h{font-size:22px;font-weight:700;line-height:1.2;letter-spacing:-.02em}
.lkd-ad--banner p{margin:0;font-size:14px;line-height:1.5;color:rgba(255,255,255,.75)}
.lkd-ad--banner .btn{flex:none;height:44px;margin-top:6px}
.lkd-ad__label{font-size:11px;color:var(--ink-3)}

/* Предложения внизу разделов партнёра */
.lkd-offers{margin-top:8px}
.lkd-offers__head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.lkd-offers__head h2{margin:0;font-size:18px;font-weight:600;letter-spacing:-.02em}
.lkd-offers__row{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,280px));gap:16px}

/* --------------------------------------------------------------------------
   Фильтры в шапке раздела и внутри панели
   -------------------------------------------------------------------------- */
.lkd-filters{display:flex;gap:8px;flex-wrap:wrap}
.lkd-filters .lk-s{width:auto;min-width:0;max-width:320px}
.lk-head__act .lkd-filters{flex-wrap:nowrap}
@media (max-width:700px){.lk-head__act .lkd-filters{flex-wrap:wrap}}
.lkd-filters--in{margin:0 0 14px}
.lkd-dim td{opacity:.45}

/* --------------------------------------------------------------------------
   Воронка статистики (созвон 30.09) — как в кабинете продавца WB
   -------------------------------------------------------------------------- */
/* Три яруса одной сетки: числа с подписями, столбики, проценты. Колонки
   делят вертикальные линии — по ним глаз и идёт от шага к шагу. Поле со
   столбиками забирает всю свободную высоту панели: она тянется до низа
   рекламного места справа. */
.lkd-fn{display:flex;flex-direction:column;flex:1 1 auto;min-height:260px}
.lkd-fn__cols{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr))}
.lkd-fn__c{display:flex;flex-direction:column;gap:4px;padding:2px 12px 14px;border-left:1px solid var(--line)}
.lkd-fn__c:first-child,.lkd-fn__p:first-child{border-left:0;padding-left:0}
.lkd-fn__v{font-size:30px;font-weight:600;letter-spacing:-.03em;line-height:1.05;font-variant-numeric:tabular-nums;white-space:nowrap}
.lkd-fn__l{font-size:14px;color:var(--ink-2);line-height:1.3}
.lkd-fn__plot{position:relative;flex:1 1 auto;min-height:140px;
  background:linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0 / calc(100% / var(--n)) 100%}
.lkd-fn__plot svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.lkd-fn__cols--p{border-top:1px solid var(--line)}
.lkd-fn__p{padding:10px 12px 0;border-left:1px solid var(--line);font-size:14px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.lkd-fn__note{margin-top:14px}
@media (max-width:700px){
  .lkd-fn{min-height:0}
  .lkd-fn__plot{flex:none;height:120px;min-height:0}
  .lkd-fn__c,.lkd-fn__p{padding-left:8px;padding-right:4px}
  .lkd-fn__v{font-size:19px}
  .lkd-fn__l{font-size:12.5px}
  .lkd-fn__p{font-size:12.5px}
}

/* --------------------------------------------------------------------------
   Формы: закреплённые поля, «Редактировать», подсказка «?»
   -------------------------------------------------------------------------- */
.lkd-lock__v{position:relative;display:block}
.lkd-lock__v svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-4);pointer-events:none}
.lkd-lock__v .lk-i{padding-left:34px}
.lkd .lk-i:disabled,.lkd .lk-ta:disabled{background:var(--surface);color:var(--ink-2);-webkit-text-fill-color:var(--ink-2)}

.lkd-tip{position:relative;display:inline-grid;place-items:center;vertical-align:-2px;margin-left:4px;color:var(--ink-3);cursor:help}
.lkd-tip:hover,.lkd-tip:focus{color:var(--ink);outline:0}
.lkd-tip__b{
  position:absolute;left:50%;bottom:calc(100% + 8px);z-index:20;transform:translateX(-50%);
  width:max-content;max-width:240px;padding:8px 11px;border-radius:10px;
  background:var(--ink);color:#fff;font-size:12.5px;font-weight:400;line-height:1.4;
  text-transform:none;letter-spacing:0;white-space:normal;
  opacity:0;pointer-events:none;transition:opacity .15s;
}
.lkd-tip:hover .lkd-tip__b,.lkd-tip:focus .lkd-tip__b,
.lkd-tipbtn:hover .lkd-tip__b,.lkd-tipbtn:focus-within .lkd-tip__b{opacity:1}

.lkd-editbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px}
.lkd-editbar__note{margin-right:auto;font-size:13px;color:var(--ink-3)}
/* Серая кнопка: возможность, а не призыв */
.lkd .lkd-btn-grey{background:var(--surface);border:1px solid var(--surface);color:var(--ink-2)}
.lkd .lkd-btn-grey:hover{background:var(--surface-2);border-color:var(--surface-2);color:var(--ink)}

.lkd-warn{
  margin-top:16px;padding:12px 14px;border-radius:12px;
  background:var(--st-wait-bg);color:var(--st-wait);
  font-size:13px;line-height:1.5;
}

/* Способ пополнения — чипами, у СБП бонус */
.lkd-ways{display:flex;gap:8px;flex-wrap:wrap}
.lkd-way{
  display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 14px;
  border:1px solid var(--line-strong);border-radius:12px;background:#fff;
  font:inherit;font-size:14px;color:var(--ink);cursor:pointer;
  transition:border-color .15s,background .15s;
}
.lkd-way:hover{border-color:var(--ink-3)}
.lkd-way.is-on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.lkd-way em{
  display:inline-flex;align-items:center;gap:4px;
  font-style:normal;font-size:12px;font-weight:600;color:var(--brand);
}
.lkd-way em svg{width:18px;height:18px}

/* Столбцы профиля кончаются вровень (правка Ивана 29.09). Блоки уже
   разложены так, чтобы столбцы сходились, но точного совпадения из
   разной длины блоков не выходит: остаток добирает последний блок
   короткого столбца, а содержимое внутри него встаёт по центру — воздух
   расходится поровну сверху и снизу, а не висит полосой под столбцом. */
/* :not(.lk-panel) — правило про столбец из нескольких блоков, а не про
   саму панель. Без этого условия флексом становилась каждая панель,
   лежащая в паре напрямую, и внутри неё разъезжались кнопки: в биллинге
   «Пополнить» уходило к правому краю, в профиле — «Сохранить». */
.lkd .lk-pair > div:not(.lk-panel){display:flex;flex-direction:column;gap:16px}
.lkd .lk-pair > div:not(.lk-panel) > .lk-panel{margin:0}
/* Остаток уходит не внутрь карточки, а в промежуток перед ней: карточка
   с подпиской прижата к низу столбца (правка Ивана 29.09). Растянутая
   карточка держала свои 20px сверху и 108px снизу — и отступы читались
   кривыми. Теперь у всех карточек поля одинаковые, а разной высоты
   столбцы сходятся за счёт промежутка. */
/* 30.09: прижатие к низу оставляло дыру над карточкой подписки. Столбец
   теперь своей высоты, блоки идут подряд с одним шагом 16px, а пара
   отделена от следующей панели тем же шагом. */
.lkd .lk-pair > div:not(.lk-panel){align-self:start}
.lkd .lk-pair{margin-bottom:16px}

/* Список уведомлений в две колонки (кабинет партнёра). Первая строка —
   это первые две карточки, у обеих верхней границы нет. */
.lk-list--2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
.lk-list--2 .lk-list__i:nth-child(-n+2){border-top:0}
@media (max-width:820px){
  .lk-list--2{display:flex}
  .lk-list--2 .lk-list__i:nth-child(2){border-top:1px solid var(--line)}
}

/* --------------------------------------------------------------------------
   Конструктор купона — правки созвона 28.09.2026
   -------------------------------------------------------------------------- */
/* Поиск по городам и итог «купон будет размещён в …» */
.lkd-citysearch{margin-bottom:12px}
.lkd-citysum{
  margin-top:12px;padding:10px 12px;border-radius:var(--r-md);
  background:var(--surface);font-size:13.5px;color:var(--ink-2);
}
.lkd-citysum b{font-weight:600;color:var(--ink)}
.lkd-citysum i{font-style:normal;color:var(--ink-3)}
/* «Адреса нет» и спрятанные под ним адреса */
.lkd-noaddr{border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:4px}
.lkd-off{display:none}
/* Величина у подарка и «2 = 1» закрыта, но стоит в той же строке */
.lkd-locked .lk-i{background:var(--surface);color:var(--ink-3);cursor:default}
.lkd-mechhint{margin-top:-4px}
.lkd-usenote b{font-weight:600;color:var(--ink-2)}

/* Тайный покупатель — рекламный блок, а не каталожный: это раздел
   дополнительной монетизации, он должен выделяться на общей серости. */
.lkd .lk-secret{position:relative;overflow:hidden;background:var(--brand);border-color:var(--brand);color:#fff}
.lkd .lk-secret > *:not(.lkd-secret__balloon){position:relative;z-index:1}
.lkd-secret__balloon{
  position:absolute;right:-14px;bottom:-44px;height:150px;width:auto;
  opacity:.9;transform:rotate(8deg);pointer-events:none;
  animation:lkdFloat 7s ease-in-out infinite;
}
@keyframes lkdFloat{0%,100%{transform:translateY(0) rotate(8deg)}50%{transform:translateY(-8px) rotate(5deg)}}
@media (prefers-reduced-motion:reduce){.lkd-secret__balloon{animation:none}}
.lkd .lk-secret__list,.lkd .lk-secret__foot,.lkd .lk-secret > .lk-note{padding-right:96px}
@media (max-width:640px){
  .lkd-secret__balloon{height:110px;opacity:.4}
  .lkd .lk-secret__list,.lkd .lk-secret__foot,.lkd .lk-secret > .lk-note{padding-right:0}
}
.lkd .lk-secret__k{color:rgba(255,255,255,.8)}
.lkd .lk-secret__h{color:#fff}
.lkd .lk-secret__badge{background:#fff;color:var(--brand-600)}
.lkd .lk-secret__list{color:rgba(255,255,255,.92)}
.lkd .lk-secret .lk-note{color:rgba(255,255,255,.8)}
.lkd .lk-secret__foot{border-top-color:rgba(255,255,255,.3)}
.lkd .lk-secret__foot b{color:#fff}
.lkd .lk-secret .lk-ch span{color:#fff}
.lkd .lk-secret .lk-ch input{accent-color:#fff}
.lkd .lk-secret .lk-ch:hover{background:rgba(255,255,255,.14)}
.lkd .lk-secret .lk-ch.is-on{color:#fff}

/* Верхняя плашка прогресса убрана: то же самое стоит строкой под превью.
   Узлы остаются в разметке — lk.js считает по ним, строка их повторяет. */
.lkd .lk-prog__box{display:none}

/* Прогресс и цена — закреплённой строкой под превью */
/* Строка с прогрессом и ценой приколота к нижнему краю окна и стоит под
   колонкой превью: слева и ширину ей выставляет lk-design.js. Сверху страницы
   sticky не спасал: колонка начиналась ниже экрана, и цена оставалась за ним. */
@media (min-width:1001px){
  .lkd .lk-prev{padding-bottom:84px}
}
@media (max-width:1000px){
  .lkd-wizbar{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .lkd .lk-form{padding-bottom:84px}
}
.lkd-wizbar{
  position:fixed;bottom:16px;z-index:40;box-sizing:border-box;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin-top:12px;padding:12px 16px;
  background:var(--bg);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:0 -6px 18px -12px rgba(0,0,0,.35);
}
.lkd-wizbar__l{display:grid;grid-template-columns:auto auto;gap:2px 8px;align-items:center;min-width:0}
.lkd-wizbar__l span,.lkd-wizbar__r span{font-size:12.5px;color:var(--ink-3)}
.lkd-wizbar__l b{font-size:13.5px;font-weight:600;font-variant-numeric:tabular-nums}
.lkd-wizbar__bar{grid-column:1 / -1;height:4px;border-radius:2px;background:var(--surface-2);overflow:hidden}
.lkd-wizbar__bar i{display:block;height:100%;width:0;background:var(--ink);transition:width .2s var(--ease)}
.lkd-wizbar__r{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.lkd-wizbar__r b{font-size:18px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:normal}
/* На телефоне — одна строка, как на десктопе: слева прогресс (подпись,
   проценты и полоска под ними), справа итог. Столбиком строка занимала
   пол-экрана и цифры стояли вразнобой. */
@media (max-width:560px){
  .lkd-wizbar{gap:14px;padding:10px 14px}
  .lkd-wizbar__l{flex:1 1 auto;grid-template-columns:1fr auto}
  .lkd-wizbar__r{flex:none;flex-direction:column;align-items:flex-end;gap:0}
  .lkd-wizbar__r span{font-size:12px}
  .lkd-wizbar__r b{font-size:17px;line-height:1.2}
}

/* Уведомления: «обязательно» у почты, подписка на наши каналы */
.lkd-must{font-style:normal;font-size:11.5px;color:var(--ink-3);margin-left:4px}
.lkd-sub{margin-top:16px;padding:20px 22px}
.lkd-sub__h{display:block;font-size:16px;font-weight:600;line-height:1.35}
.lkd-sub p{margin:6px 0 14px;font-size:14px;line-height:1.55;color:var(--ink-2)}
.lkd-sub__acts{display:flex;gap:8px;flex-wrap:wrap}
.lkd-one{max-width:760px;display:flex;flex-direction:column;gap:12px}
.lkd-one .lk-panel{margin:0}

/* Выгода в превью мастера — билетиком, как в ленте */
.lkd .lk-prev__badge{
  background:var(--brand);color:#fff;box-shadow:none;border-radius:10px;
  -webkit-mask:
    radial-gradient(circle 5px at left 50%, transparent 98%, #000) left / 51% 100% no-repeat,
    radial-gradient(circle 5px at right 50%, transparent 98%, #000) right / 51% 100% no-repeat;
          mask:
    radial-gradient(circle 5px at left 50%, transparent 98%, #000) left / 51% 100% no-repeat,
    radial-gradient(circle 5px at right 50%, transparent 98%, #000) right / 51% 100% no-repeat;
}

/* --------------------------------------------------------------------------
   Кабинет партнёра
   -------------------------------------------------------------------------- */
/* Две плашки над купонами: готово к выплате и заработано за всё время */
.lkd-earn{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;margin-bottom:16px}
@media (max-width:760px){.lkd-earn{grid-template-columns:1fr}}
/* Кнопка — справа, в один столбец с числом, а не под текстом (правка
   Ивана 29.09): карточка от неё вырастала на целую строку, а соседняя,
   где кнопки нет, тянулась следом и пустовала. Раскладка та же, что у
   «Бонусов» и «Баланса» на дашборде рекламодателя. */
.lkd-earn__c{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  align-items:center;gap:4px 20px;margin:0;padding:18px 22px;
}
.lkd-earn__c > .lkd-money__l{grid-column:1;grid-row:1}
.lkd-earn__c > b{grid-column:1;grid-row:2;font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:normal}
.lkd-earn__c > .lk-note{grid-column:1;grid-row:3;margin:2px 0 0}
.lkd-earn__c > .btn{grid-column:2;grid-row:1 / span 3;align-self:center;white-space:nowrap}
.lkd-earn__c--main > b{color:var(--st-ok)}
@media (max-width:520px){
  /* На телефоне столбца для кнопки нет — уходит вниз во всю ширину */
  .lkd-earn__c{grid-template-columns:minmax(0,1fr)}
  .lkd-earn__c > .btn{grid-column:1;grid-row:auto;margin-top:12px;justify-self:start}
}

.lkd-dates span{display:block;white-space:nowrap}
.lkd-dates span + span{color:var(--ink-3)}
.lkd-dates span + span::before{content:"— "}
.lkd-ready{margin-top:4px;font-weight:400}
.lkd-eye{
  display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;
  color:var(--ink-3);transition:background .15s,color .15s;
}
.lkd-eye:hover{background:var(--surface);color:var(--ink)}
.lkd-grp td{background:var(--surface);font-size:12.5px;font-weight:600;color:var(--ink-2)}

/* Поиск клиента по ИНН: под полем — кого нашли */
.lkd-inn{display:block;min-height:18px;margin-top:6px;font-size:13px;color:var(--ink-3)}
.lkd-inn.is-ok{color:var(--st-ok);font-weight:500}
.lkd-inn.is-ok::before{content:"✓ "}
.lkd-inn.is-bad{color:var(--brand)}

/* «Сформировать счёт и акт»: неактивна до закрытия периода, подсказка */
.lkd-invoice{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:16px}
.lkd-tipbtn{position:relative;display:inline-block;outline:0}
.lkd-tipbtn .lkd-tip__b{left:0;transform:none;max-width:280px}
.lkd .lkd-tipbtn .btn:disabled{background:var(--surface-2);color:var(--ink-3);cursor:not-allowed;opacity:1}

/* --------------------------------------------------------------------------
   Окно ознакомления с новыми условиями — кабинет закрыт, пока не отмечено
   -------------------------------------------------------------------------- */
.lkd-gated{overflow:hidden}
.lkd-gate{
  position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:16px;
  background:rgba(27,27,27,.55);backdrop-filter:blur(4px);
}
.lkd-gate__box{
  width:min(480px,100%);padding:28px;border-radius:24px;background:#fff;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.45);
  display:flex;flex-direction:column;gap:14px;
}
.lkd-gate__k{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brand)}
.lkd-gate h3{margin:0;font-size:22px;font-weight:700;letter-spacing:-.02em}
.lkd-gate p{margin:0;font-size:14px;line-height:1.55;color:var(--ink-2)}
.lkd-gate__doc{
  display:flex;align-items:center;gap:12px;padding:12px 14px;
  border:1px solid var(--line);border-radius:14px;color:var(--ink);
  transition:border-color .15s;
}
.lkd-gate__doc:hover{border-color:var(--ink-3)}
.lkd-gate__doc svg{flex:none;color:var(--brand)}
.lkd-gate__doc span{display:flex;flex-direction:column;font-size:14px;font-weight:500}
.lkd-gate__doc small{font-size:12px;font-weight:400;color:var(--ink-3)}
.lkd-gate .btn{flex:none;height:50px}
.lkd-gate .btn:disabled{background:var(--surface-2);color:var(--ink-3);cursor:not-allowed;opacity:1}

/* Купон маркетплейса и B2B (28.09) */
.lkd-promo__row{display:flex;gap:10px}
.lkd-promo__row .lk-i{flex:1 1 auto;min-width:0;text-transform:uppercase}
.lkd-promo__btn{flex:none;font-weight:600}
.lkd-promo__msg{min-height:20px;font-size:13.5px;color:var(--ink-3)}
.lkd-promo__msg.is-ok{color:#1f7a45;font-weight:600}
.lkd-promo__msg.is-bad{color:var(--brand-600)}
.lkd-flash{animation:lkdFlash 1s ease-out}
@keyframes lkdFlash{0%{color:var(--brand);transform:scale(1.18)}100%{color:inherit;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.lkd-flash{animation:none}}
.lkd-confirm{margin:0 0 12px}
.lkd-confirm.is-warn{animation:lkShake .35s;color:var(--brand-600)}
.lkd-confirm.is-warn::after{content:"Поставьте галочку, чтобы отправить";margin-left:8px;font-size:12.5px}
.lkd-off{display:none!important}
@media (max-width:560px){.lkd-promo__row{flex-direction:column}}

/* Бейдж «Проверено» на превью — как на публичке: справа от плашки выгоды,
   той же высоты, билетиком. Место и высоту ставит lk-design.js. */
.lkd-verified{
  position:absolute;left:12px;bottom:12px;z-index:3;box-sizing:border-box;
  display:inline-flex;align-items:center;gap:6px;
  padding:0 14px 0 11px;border-radius:10px;
  background:#fff;color:var(--ink);
  font-size:14px;font-weight:700;line-height:1;white-space:nowrap;
  -webkit-mask:
    radial-gradient(circle 5px at left 50%, transparent 98%, #000) left / 51% 100% no-repeat,
    radial-gradient(circle 5px at right 50%, transparent 98%, #000) right / 51% 100% no-repeat;
          mask:
    radial-gradient(circle 5px at left 50%, transparent 98%, #000) left / 51% 100% no-repeat,
    radial-gradient(circle 5px at right 50%, transparent 98%, #000) right / 51% 100% no-repeat;
}
.lkd-verified i{
  display:grid;place-items:center;flex:none;width:18px;height:18px;border-radius:50%;
  background:#1f9d55;color:#fff;font-style:normal;font-size:11px;line-height:1;
}
.lkd-verified.is-compact{padding:0 11px;gap:0}
.lkd-verified.is-compact .lkd-verified__t{display:none}

/* Плашка «Анкета о компании» не должна закрывать строку с ценой: в
   конструкторе она встаёт над ней */
body:has(.lkd-wizbar) .lk-pill{bottom:88px}
@media (max-width:1000px){
  body:has(.lkd-wizbar) .lk-pill{bottom:84px}
}

/* Инструменты «Моих купонов» на телефоне. Сама таблица — как на ПК, с
   прокруткой вбок (Иван 30.09: таблицы с ПК не адаптируем). */
@media (max-width:700px){
  /* Фильтры статусов — одной строкой с прокруткой, как лента категорий на витрине */
  /* Раздел, сортировка и поиск — во всю ширину, друг под другом */
  .lkd .lk-tools{display:grid;grid-template-columns:1fr;gap:8px}
  .lkd .lk-tools > *{width:100%;max-width:none}
  .lkd .lk-filters{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px 14px;padding:0 16px 2px;scrollbar-width:none}
  .lkd .lk-filters::-webkit-scrollbar{display:none}
  .lkd .lk-filters button{flex:none;white-space:nowrap}
}

/* Рекламное место: на десктопе одна карточка, на телефоне и планшете —
   две в ряд, как лента на публичке (Иван 30.09) */
.lkd-adpair{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0}
.lkd-ad--m2{display:none}
@media (max-width:900px){
  .lkd-adpair{grid-template-columns:repeat(2,minmax(0,1fr));max-width:560px}
  .lkd-ad--m2{display:flex}
}
@media (max-width:560px){
  .lkd-adpair{gap:10px}
  .lkd-adpair .lkd-ad__media{border-radius:14px}
  .lkd-adpair .lkd-ad__corner{left:8px;top:8px;padding:4px 8px;font-size:10px}
  .lkd-adpair .lkd-ad__erid{display:none}
  .lkd-adpair .lkd-ad__badge{left:8px;bottom:8px;padding:5px 11px 6px;font-size:13px}
  .lkd-adpair .lkd-ad__body{gap:4px;padding-top:8px}
  .lkd-adpair .lkd-ad__title{font-size:13.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  /* В узкой карточке остаётся только компания — раздел не влезает */
  .lkd-adpair .lkd-ad__meta{font-size:0;white-space:nowrap;overflow:hidden}
  .lkd-adpair .lkd-ad__meta b{font-size:11.5px;overflow:hidden;text-overflow:ellipsis}
  .lkd-adpair .lkd-ad__meta .dot{display:none}
  /* «Подробнее» на телефоне прячем, как в ленте публички */
  .lkd-adpair .lkd-ad__acts{grid-template-columns:1fr}
  .lkd-adpair .lkd-ad__acts .btn--ghost{display:none}
  .lkd-adpair .lkd-ad__acts .btn{height:36px;font-size:13px}
}
/* hidden должен побеждать display:inline-flex — бейдж только при галочке */
.lkd-verified[hidden]{display:none}

/* Низ бургер-меню на телефоне: баланс, главная кнопка, профиль, выход */
.lkd-sidefoot{display:none}
@media (max-width:900px){
  /* Меню — колонка фиксированной высоты: без flex:none пункты и кнопки
     сжимались по высоте, а не прокручивались */
  .lk__side > *{flex-shrink:0}
  .lkd-sidefoot{
    display:flex;flex-direction:column;gap:12px;flex:none;
    margin-top:auto;padding-top:16px;border-top:1px solid var(--line);
  }
  .lkd-sidefoot__money{
    display:flex;flex-direction:column;gap:8px;padding:12px 14px;
    border-radius:var(--r-md);background:var(--surface);color:var(--ink-2);font-size:14px;
  }
  .lkd-sidefoot__row{display:flex;align-items:center;gap:10px}
  .lkd-sidefoot__row b{margin-left:auto;font-weight:700;color:var(--ink)}
  .lkd-sidefoot__ic{display:grid;place-items:center;width:22px;color:var(--ink-2)}
  .lkd-sidefoot__ic--bon{color:var(--brand)}
  .lkd-sidefoot .btn{flex:none;height:44px;width:100%}
  .lkd-sidefoot__me{display:flex;flex-direction:column;align-items:stretch;gap:10px}
  .lkd-sidefoot__prof{display:flex;align-items:center;gap:10px;flex:1 1 auto;min-width:0;color:var(--ink)}
  .lkd-sidefoot__who{display:flex;flex-direction:column;min-width:0;line-height:1.3}
  .lkd-sidefoot__who b{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lkd-sidefoot__who span{font-size:12px;color:var(--ink-3)}
  .lkd-sidefoot__exit{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:none;
    height:40px;padding:0 14px;border-radius:var(--r-pill);
    border:1px solid var(--line);font-size:13px;color:var(--ink-2);
  }
  .lkd-sidefoot__exit:hover{color:var(--ink);border-color:var(--ink-3)}
}

/* Статистика на телефоне: плитки цифр по две в ряд, фильтры во всю ширину */
@media (max-width:700px){
  .lkd .lk-kpi{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .lkd .lk-kpi .lk-kpi__v{font-size:24px}
  /* Два фильтра в одну строку — «фильтры не помещаются в один экран» (30.09) */
  .lk-head__act .lkd-filters{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);width:100%}
  .lk-head__act .lkd-filters .lk-s{max-width:none;width:100%}
}
@media (max-width:700px){
  .lkd .lk-head:has(.lkd-filters) .lk-head__act{width:100%;margin-left:0}
}

/* Таблицы на телефоне — как на ПК: вёрстку не перекладываем, таблица
   едет вправо внутри своей панели (Иван 30.09). Ширина — по содержимому,
   но не уже панели: короткие таблицы не прокручиваются зря. */
@media (max-width:700px){
  .lkd .lk-tw{margin:0 -16px;padding:0 16px;-webkit-overflow-scrolling:touch}
  .lkd .lk-t,.lkd .lk-pair .lk-t{width:max-content;min-width:100%}
  .lkd .lk-t th,.lkd .lk-t td{white-space:nowrap}
  /* Кнопка «Подробнее» под заголовком дашборда — слева, под текстом */
  .lkd .lk-head{flex-wrap:wrap}
  .lkd .lk-head__act{margin-left:0}
}

/* Предложения в кабинете партнёра на телефоне — две карточки в ряд, как
   лента на публичке: купон и баннер в том же компактном виде (Иван 30.09) */
@media (max-width:560px){
  .lkd-offers__row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .lkd-offers__row .lkd-ad__media{border-radius:14px}
  .lkd-offers__row .lkd-ad__corner{left:8px;top:8px;padding:4px 8px;font-size:10px}
  .lkd-offers__row .lkd-ad__erid{display:none}
  .lkd-offers__row .lkd-ad__badge{left:8px;bottom:8px;padding:5px 11px 6px;font-size:13px}
  .lkd-offers__row .lkd-ad__body{gap:4px;padding-top:8px}
  .lkd-offers__row .lkd-ad__title{font-size:13.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .lkd-offers__row .lkd-ad__meta{font-size:0;white-space:nowrap;overflow:hidden}
  .lkd-offers__row .lkd-ad__meta b{font-size:11.5px;overflow:hidden;text-overflow:ellipsis}
  .lkd-offers__row .lkd-ad__meta .dot{display:none}
  .lkd-offers__row .lkd-ad__acts{grid-template-columns:1fr}
  .lkd-offers__row .lkd-ad__acts .btn--ghost{display:none}
  .lkd-offers__row .lkd-ad__acts .btn{height:36px;font-size:13px}
  /* Баннер той же высоты, что и купон рядом: текст мельче, лишнее срезаем */
  .lkd-offers__row .lkd-ad--banner{padding:14px;gap:6px;border-radius:14px}
  .lkd-offers__row .lkd-ad--banner .lkd-ad__label{font-size:9.5px}
  .lkd-offers__row .lkd-ad--banner .lkd-ad__kicker{font-size:10px}
  .lkd-offers__row .lkd-ad--banner .lkd-ad__h{font-size:16px;line-height:1.15}
  .lkd-offers__row .lkd-ad--banner p{font-size:12px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
  .lkd-offers__row .lkd-ad--banner .btn{height:36px;font-size:13px;margin-top:4px}
}

/* --------------------------------------------------------------------------
   Созвон 30.09: пагинация, фильтр по датам
   -------------------------------------------------------------------------- */
/* Страницы под таблицей: счётчик строк слева, номера справа */
.lkd-pg{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px}
.lkd-pg__n{font-size:13px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.lkd-pg__bs{display:flex;gap:6px}
.lkd-pg__b{min-width:36px;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--bg);color:var(--ink);font:inherit;font-size:14px;cursor:pointer;font-variant-numeric:tabular-nums}
.lkd-pg__b:hover:not(:disabled){border-color:var(--line-strong)}
.lkd-pg__b.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.lkd-pg__b:disabled{opacity:.4;cursor:default}

/* «с — по»: две даты в строку, подпись слева от поля */
.lkd-datefilter{align-items:center}
.lkd-dates__f{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-3)}
.lkd-dates__f .lk-i{width:auto;min-width:0}
@media (max-width:520px){
  .lkd-datefilter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .lkd-dates__f .lk-i{width:100%}
  .lkd-datefilter .btn{grid-column:1 / -1}
}

/* Подписка на бота вместо поля для ника */
.lkd-sub-lead{margin:0 0 12px;padding:12px 14px;border-radius:var(--r-sm);background:var(--surface);font-size:14px;line-height:1.45;color:var(--ink-2)}
.lkd .lkd-sub-btn{height:36px;padding:0 14px;font-size:14px;white-space:nowrap}
.lkd-sub-wait{color:var(--ink-3);font-style:italic}

/* Логотип и фирменные цвета */
.lkd-brand{display:flex;gap:16px;align-items:center}
.lkd-brand__logo{position:relative;flex:none;width:88px;height:88px;border-radius:var(--r-md);cursor:pointer;
  display:grid;place-items:center;overflow:hidden;
  background:repeating-conic-gradient(var(--surface) 0 25%,var(--bg) 0 50%) 0 0 / 16px 16px;border:1px dashed var(--line-strong)}
.lkd-brand__logo span{font-size:24px;font-weight:600;color:var(--ink-3)}
.lkd-brand__logo img{width:100%;height:100%;object-fit:contain;padding:8px}
.lkd-brand__logo em{position:absolute;left:0;right:0;bottom:0;padding:4px 0;font-style:normal;font-size:12px;text-align:center;
  background:rgba(21,21,20,.72);color:#fff;opacity:0;transition:opacity .15s}
.lkd-brand__logo:hover em,.lkd-brand__logo:focus-within em,.lkd-brand__logo:not(.has-img) em{opacity:1}
.lkd-brand__txt{display:flex;flex-direction:column;gap:4px;font-size:14px}
.lkd-brand__txt span{color:var(--ink-3);line-height:1.4}
.lkd-brand__cols{margin-top:18px}
.lkd-swatches{display:flex;gap:10px;flex-wrap:wrap}
.lkd-sw{position:relative;display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border:1px solid var(--line);border-radius:var(--r-pill);cursor:pointer;background:var(--bg)}
.lkd-sw:hover{border-color:var(--line-strong)}
.lkd-sw input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;border:0;padding:0}
.lkd-sw i{width:28px;height:28px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.lkd-sw span{font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}

/* «Добавить проверку» — белая кнопка на красном блоке (созвон 30.09):
   «должна быть охуительно понятной кнопкой, должна выбиваться». Чекбокс
   внутри спрятан, но остаётся рабочим — на нём расчёт цены. Добавлена —
   кнопка становится прозрачной с белой рамкой и галочкой. */
.lkd .lk-secret__foot{padding-top:14px;padding-bottom:8px}
.lkd .lk-secret__foot .lkd-secret-add{
  margin:0;flex:none;display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 22px 0 18px;
  border-radius:var(--r-pill);background:#fff;color:var(--brand-600);cursor:pointer;
  box-shadow:0 6px 18px rgba(80,10,10,.25);transition:transform .15s var(--ease),box-shadow .15s var(--ease)
}
.lkd .lk-secret__foot .lkd-secret-add:hover{background:#fff;transform:translateY(-1px);box-shadow:0 10px 24px rgba(80,10,10,.3)}
.lkd .lk-secret__foot .lkd-secret-add input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.lkd .lk-secret__foot .lkd-secret-add span{color:var(--brand-600);font-size:16px}
.lkd .lk-secret__foot .lkd-secret-add span b{font-size:16px;font-weight:600;color:inherit}
.lkd .lk-secret__foot .lkd-secret-add::before{content:"+";font-size:22px;font-weight:500;line-height:1;color:var(--brand-600)}
.lkd .lk-secret__foot .lkd-secret-add:has(input:focus-visible){outline:2px solid #fff;outline-offset:3px}
.lkd .lk-secret__foot .lkd-secret-add.is-added{background:transparent;box-shadow:inset 0 0 0 2px #fff}
.lkd .lk-secret__foot .lkd-secret-add.is-added span{color:#fff}
.lkd .lk-secret__foot .lkd-secret-add.is-added::before{content:"✓";font-size:17px;color:#fff}
.lkd .lk-secret__foot .lkd-secret-add.is-added:hover{background:rgba(255,255,255,.12)}

/* Каналы маркетплейса: под названием соцсети — какие две группы в лоте */
.lkd-mpch span small{display:block;margin-top:2px;font-size:12.5px;color:var(--ink-3);font-weight:400}

/* Города размещения ступенями: область → её города (созвон 30.09) */
.lkd-geo{display:flex;flex-direction:column;gap:8px}
.lkd-geo__reg{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg)}
.lkd-geo__reg[hidden]{display:none}
.lkd-geo__head{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:0;background:none;
  font:inherit;text-align:left;cursor:pointer;color:var(--ink)}
.lkd-geo__head b{font-size:15px;font-weight:600}
.lkd-geo__head span{font-size:13px;color:var(--ink-3)}
.lkd-geo__head svg{margin-left:auto;color:var(--ink-3);transition:transform .18s var(--ease)}
.lkd-geo__reg.is-open .lkd-geo__head svg{transform:rotate(180deg)}
.lkd-geo__body{display:none;padding:0 14px 14px}
.lkd-geo__reg.is-open .lkd-geo__body{display:block}
.lkd-geo__reg.is-soon .lkd-geo__head b{color:var(--ink-2)}
.lkd-geo__soon{opacity:.5;cursor:default;display:inline-flex}
.lkd-geo__soon[hidden]{display:none}
.lkd-geo__body .lk-note{margin-top:10px}
.lkd-geo__all{margin-top:12px;padding:0;border:0;background:none;font:inherit;font-size:14px;font-weight:500;
  color:var(--brand-600);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.lkd-geo__every{align-self:flex-start;margin-top:4px}
/* Выбранные города в итоге — плашками с крестиком */
.lkd-citysum{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.lkd-picked{display:inline-flex;align-items:center;gap:4px;padding:4px 6px 4px 10px;border-radius:var(--r-pill);
  background:var(--bg);border:1px solid var(--line);font-weight:500;color:var(--ink)}
.lkd-picked:not(:has(button)){padding-right:10px}
.lkd-picked button{width:20px;height:20px;border:0;border-radius:50%;background:none;color:var(--ink-3);
  font-size:15px;line-height:1;cursor:pointer;display:grid;place-items:center}
.lkd-picked button:hover{background:var(--surface-2);color:var(--ink)}
@media (max-width:520px){
  .lkd-geo__head{display:grid;grid-template-columns:1fr auto;column-gap:10px;row-gap:2px}
  .lkd-geo__head span{grid-column:1}
  .lkd-geo__head svg{grid-column:2;grid-row:1 / span 2;align-self:center}
}

/* Разделы кабинета — во всю ширину окна (Иван 30.09): на широком мониторе
   справа оставалось пустое поле в треть экрана */
.lkd .lk__view{max-width:none}

/* Профиль рядами (Иван 30.09): панели в ряду одной высоты, кнопки внизу
   панели стоят по одной линии */
.lkd .lkd-row{align-items:stretch}
.lkd .lkd-row > .lk-panel{margin:0;display:flex;flex-direction:column}
.lkd .lkd-row > .lk-panel > :last-child{margin-top:auto}
.lkd .lkd-row .lkd-editbar{padding-top:16px}
/* Новости сервиса — обычная панель, бонус плашкой над текстом */
.lkd .lkd-sub{margin:0;padding:0;display:flex;flex-direction:column;flex:1 1 auto}
.lkd .lkd-sub p{margin:12px 0 16px}
.lkd .lkd-sub .lkd-sub__acts{margin-top:auto}
.lkd-sub__bonus{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:6px 12px 6px 10px;
  border-radius:var(--r-pill);background:var(--brand-50);color:var(--brand-600);font-size:14px;font-weight:600}
.lkd-sub__bonus svg{width:18px;height:18px}
/* Логотип и цвета во всю ширину: логотип слева, цвета справа */
.lkd-brandgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
.lkd-brandgrid .lkd-brand__cols{margin-top:0}
.lkd-brandgrid .lk-note{margin-top:10px}
@media (max-width:900px){.lkd-brandgrid{grid-template-columns:1fr;gap:18px}}
.lkd-sub__list{margin:0 0 14px;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;font-size:14px;color:var(--ink)}
.lkd-sub__list li{display:flex;gap:10px;align-items:baseline}
.lkd-sub__list li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--brand);transform:translateY(-2px)}
.lkd .lkd-sub p.lkd-sub__aside{margin:0 0 16px;font-size:13px;color:var(--ink-3)}

/* Кнопки «Подписаться в Telegram / Max» — одной ширины (Иван 30.09) */
.lkd .lk-chrow .lkd-sub-btn{width:210px;justify-content:center}
@media (max-width:420px){.lkd .lk-chrow .lkd-sub-btn{width:auto;min-width:0}}

/* --------------------------------------------------------------------------
   Кабинет партнёра — правки созвона 30.09
   -------------------------------------------------------------------------- */
/* Глазик завершённого купона — зачёркнутый и неактивный */
.lkd-eye.is-off{color:var(--ink-4);cursor:default}
.lkd-eye.is-off:hover{background:none;color:var(--ink-4)}

/* Сравнение с прошлым месяцем: полоска тренда и процент */
.lkd-trend{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-3)}
.lkd-trend svg{flex:none;overflow:visible}
.lkd-trend path{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lkd-trend b{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.lkd-trend.is-up path{stroke:var(--st-ok)}.lkd-trend.is-up circle{fill:var(--st-ok)}.lkd-trend.is-up b{color:var(--st-ok)}
.lkd-trend.is-down path{stroke:var(--brand)}.lkd-trend.is-down circle{fill:var(--brand)}.lkd-trend.is-down b{color:var(--brand)}
.lkd-earn__c > .lkd-trend{grid-column:2;grid-row:1 / span 3;align-self:center}
@media (max-width:1100px){.lkd-earn__c > .lkd-trend{grid-column:1;grid-row:auto;margin-top:10px}}

/* Фильтры «Купонов клиентов»: поиск, тип, статус, даты — одной строкой */
.lkd-ffilters{align-items:center}
.lkd-ffilters > .lk-i[type=search]{width:220px;max-width:100%}
.lkd-ffilters .lk-s{width:auto}
@media (max-width:700px){
  .lkd-ffilters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .lkd-ffilters > .lk-i[type=search]{grid-column:1 / -1;width:100%}
  .lkd-ffilters .lk-s,.lkd-ffilters .lk-i{width:100%;max-width:none}
}
/* Сортировка по клику на заголовок столбца */
.lkd-sort{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:none;font:inherit;
  letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}
.lkd-sort i{font-style:normal;font-size:12px;color:var(--ink-4)}
.lkd-sort:hover,.lkd-sort.is-on{color:var(--ink)}
.lkd-sort.is-on i{color:var(--brand)}
/* Итог по фильтру — последней строкой таблицы */
.lkd .lk-t tr.lkd-sumrow td{border-top:2px solid var(--line-strong);background:var(--surface);font-weight:600}

/* Выплаты: сумма к выплате крупно */
.lkd-payout{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.lkd-payout__v{font-size:48px;font-weight:700;letter-spacing:-.035em;line-height:1.05;color:var(--st-ok)}
.lkd-payout__d{font-size:14px;color:var(--ink-3)}
/* Выбор месяца стрелками в шапке детализации */
.lkd-month{display:inline-flex;align-items:center;gap:6px}
.lkd-month b{min-width:130px;text-align:center;font-size:15px;font-weight:600}
.lkd-month__b{width:36px;height:36px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);font-size:18px;line-height:1;cursor:pointer;color:var(--ink)}
.lkd-month__b:hover:not(:disabled){border-color:var(--line-strong)}
.lkd-month__b:disabled{opacity:.35;cursor:default}

/* Профиль партнёра: территория строкой, контактные лица */
.lkd-static{display:block;padding:11px 0 2px;font-size:15px;color:var(--ink)}
.lkd-contact{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:8px}
.lkd-contact > div{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.lkd-contact b{font-weight:600;font-size:14.5px}
.lkd-contact span{font-size:13px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lkd-contact__x{flex:none;width:28px;height:28px;border:0;border-radius:50%;background:none;color:var(--ink-3);font-size:18px;cursor:pointer}
.lkd-contact__x:hover{background:var(--surface);color:var(--ink)}
.lkd-contact-add{margin-top:2px;align-self:flex-start}
.lkd-contact-new{padding:14px;border:1px dashed var(--line-strong);border-radius:var(--r-sm)}
.lkd-contact-new__row{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1200px){.lkd-contact-new__row{grid-template-columns:1fr}}
.lkd-contact-new__acts{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px;flex-wrap:wrap}
.lkd-contact-new__err{margin-right:auto;font-size:13px;color:var(--brand-600)}
.lkd-contact-new__err[hidden]{display:none}

/* Стрелка выпадающего списка — по центру по высоте при любой высоте поля
   (в «Показывать по» поле ниже обычного, и стрелка съезжала вниз) */
.lkd .lk-s{background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%}

/* Пункт меню — всегда в одну строку (Иван 30.09): активный набирается
   жирным, становится шире, и «Маркетплейс · Промокоды» уходил на вторую
   строку. Меню партнёра чуть шире, чтобы длинный пункт помещался и
   жирным; если места всё равно не хватит — многоточие, а не перенос. */
.lkd[data-role="partner"]{--lk-side:290px}
.lkd .lk__nav a > span:not(.lk__nav-i):not(.lk__n){min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Подсказка «клиент найден» под ИНН не держит место, пока пустая: иначе
   между «Кому» и «Сколько бонусов» стоял лишний отступ (Иван 30.09) */
.lkd-inn:empty{display:none}

/* Реквизиты в «Отчётах и выплатах» одной сеткой: три поля в строку на
   широком экране, два — на ноутбуке, одно — на телефоне */
.lkd-grid6{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 12px}
@media (max-width:1700px){.lkd-grid6{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1200px){.lkd-grid6{grid-template-columns:1fr}}
/* Ниже 900px панели встают друг под другом и снова широкие */
@media (max-width:900px){.lkd-grid6{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.lkd-grid6{grid-template-columns:1fr}}

/* --------------------------------------------------------------------------
   База знаний (созвон 30.09) — как в Notion: дерево слева, статья справа
   -------------------------------------------------------------------------- */
.lkd-kb{display:grid;grid-template-columns:300px minmax(0,1fr);padding:0;overflow:hidden;min-height:560px}
.lkd-kb__side{border-right:1px solid var(--line);background:var(--surface);padding:16px 12px;display:flex;flex-direction:column;gap:12px}
.lkd-kb__search{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--bg);color:var(--ink-3)}
.lkd-kb__search:focus-within{border-color:var(--ink-3)}
.lkd-kb__search input{flex:1;min-width:0;border:0;outline:0;background:none;font:inherit;font-size:14px;color:var(--ink)}
.lkd-kb__tree{display:flex;flex-direction:column;gap:2px;position:sticky;top:calc(var(--header-h) + 12px)}
.lkd-kb__h{display:flex;align-items:center;gap:6px;width:100%;padding:8px 8px;border:0;border-radius:var(--r-sm);background:none;
  font:inherit;font-size:14px;font-weight:600;color:var(--ink);text-align:left;cursor:pointer}
.lkd-kb__h:hover{background:var(--surface-2)}
.lkd-kb__h svg{flex:none;color:var(--ink-3);transition:transform .15s var(--ease)}
.lkd-kb__sec.is-open .lkd-kb__h svg{transform:rotate(90deg)}
.lkd-kb__items{display:none;flex-direction:column;gap:1px;padding:2px 0 6px 18px}
.lkd-kb__sec.is-open .lkd-kb__items{display:flex}
.lkd-kb__it{display:block;width:100%;padding:7px 10px;border:0;border-radius:var(--r-sm);background:none;font:inherit;font-size:14px;
  color:var(--ink-2);text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lkd-kb__it:hover{background:var(--surface-2);color:var(--ink)}
.lkd-kb__it.is-on{background:var(--brand-50);color:var(--ink);font-weight:600}
.lkd-kb__it--hit{white-space:normal}
.lkd-kb__it--hit small{display:block;margin-top:2px;font-size:12px;font-weight:400;color:var(--ink-3)}
.lkd-kb__found{padding:4px 10px;font-size:12.5px;color:var(--ink-3)}
.lkd-kb__art{padding:36px 48px 48px;max-width:860px}
.lkd-kb__crumb{font-size:13px;color:var(--ink-3)}
.lkd-kb__title{margin:6px 0 8px;font-size:30px;font-weight:700;letter-spacing:-.025em;line-height:1.15}
.lkd-kb__meta{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-3)}
.lkd-kb__meta svg{width:15px;height:15px;margin-left:4px}
.lkd-kb__body{margin-top:24px;font-size:15px;line-height:1.65;color:var(--ink-2)}
.lkd-kb__body p{margin:0 0 12px}
.lkd-kb__body b{color:var(--ink);font-weight:600}
.lkd-kb__body h2{margin:26px 0 10px;font-size:20px;font-weight:700;letter-spacing:-.015em;color:var(--ink)}
.lkd-kb__body ol,.lkd-kb__body ul{margin:0 0 14px;padding-left:22px;display:flex;flex-direction:column;gap:6px}
.lkd-kb__body ul{list-style:circle}
/* Материал прямо в тексте — плашка файла, клик скачивает */
.lkd-file{display:flex;align-items:center;gap:12px;max-width:440px;margin:10px 0;padding:10px 14px 10px 10px;
  border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);color:var(--ink);text-decoration:none;transition:border-color .15s,background .15s}
.lkd-file:hover{border-color:var(--line-strong);background:var(--surface)}
.lkd-file__i{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--brand-50);
  color:var(--brand-600);font-size:10.5px;font-weight:700;letter-spacing:.02em}
.lkd-file__t{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.3}
.lkd-file__t b{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lkd-file__t small{font-size:12.5px;color:var(--ink-3)}
.lkd-file__d{flex:none;font-size:18px;color:var(--ink-3)}
@media (max-width:900px){
  .lkd-kb{grid-template-columns:1fr;min-height:0}
  .lkd-kb__side{border-right:0;border-bottom:1px solid var(--line)}
  .lkd-kb__tree{position:static}
  .lkd-kb__art{padding:24px 20px 28px}
  .lkd-kb__title{font-size:24px}
}

/* «К выплате»: сумма и тренд слева, дата выплаты и пояснение справа */
.lkd-payout-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
.lkd-payout__side{display:flex;flex-direction:column;gap:6px;border-left:1px solid var(--line);padding-left:24px}
.lkd-payout__date{font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.15;color:var(--ink)}
.lkd-payout__side p{margin:6px 0 0;font-size:13.5px;line-height:1.5;color:var(--ink-3)}
@media (max-width:1700px) and (min-width:901px),(max-width:560px){
  .lkd .lkd-payout-wrap{grid-template-columns:1fr;gap:16px}
  .lkd-payout__side{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:14px}
}

/* Пагинация — единая на все таблицы обоих кабинетов (Иван 30.09):
   «Показывать по» слева, счётчик и кнопки справа */
.lkd .lkd-pg{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.lkd-pg__size{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-3)}
.lkd .lkd-pg__size .lk-s{width:auto;min-width:72px;height:36px;padding-top:0;padding-bottom:0}
.lkd-pg__right{display:flex;align-items:center;gap:14px;margin-left:auto}
.lkd .lkd-pg__b{font-size:15px}
@media (max-width:560px){
  .lkd-pg__right{margin-left:0;width:100%;justify-content:space-between}
}
/* Содержимое «К выплате» — сверху панели, а не прижато к низу правилом ряда */
.lkd .lkd-row > .lk-panel > .lkd-payout-wrap{margin-top:0}
.lkd-payout-wrap{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.lkd-trend > span{white-space:nowrap}

/* --------------------------------------------------------------------------
   Нижнее меню на телефоне (решение 30.09)
   -------------------------------------------------------------------------- */
.lkd-tabbar{display:none}
@media (max-width:900px){
  .lkd-tabbar{
    position:fixed;left:0;right:0;bottom:0;z-index:45;
    display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
    padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));
    background:rgba(255,255,255,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    border-top:1px solid var(--line);
  }
  .lkd-tabbar__i{display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 2px;border:0;background:none;
    font:inherit;font-size:11px;font-weight:500;color:var(--ink-3);text-decoration:none;cursor:pointer;min-width:0}
  .lkd-tabbar__i > span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .lkd-tabbar__ic{display:grid;place-items:center;width:40px;height:28px;border-radius:999px;transition:background .15s}
  .lkd-tabbar__ic svg{width:20px;height:20px}
  .lkd-tabbar__i.is-on{color:var(--ink)}
  .lkd-tabbar__i.is-on .lkd-tabbar__ic{background:var(--brand-50);color:var(--brand)}
  /* «Создать» — красная круглая кнопка по центру */
  .lkd-tabbar__i--main .lkd-tabbar__ic{background:var(--brand);color:#fff}
  .lkd-tabbar__i--main.is-on .lkd-tabbar__ic{background:var(--brand-600);color:#fff}
  /* Бургер в шапке больше не нужен: полное меню — под «Ещё» */
  .lkd .lk__burger{display:none}
  /* Низ страницы и плавающие элементы — над панелью */
  .lkd .lk__view{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
  .lkd .lk-pill,body:has(.lkd-wizbar) .lk-pill{bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  body:has(.lkd-wizbar) .lk-pill{bottom:calc(140px + env(safe-area-inset-bottom,0px))}
  .lkd-wizbar{bottom:calc(70px + env(safe-area-inset-bottom,0px))}
  /* Выезжающее меню — поверх панели, панель остаётся видна справа */
  .lkd .lk__side{padding-bottom:72px}
}
.lkd-toplogo{display:none}
@media (max-width:900px){
  .lkd-toplogo{display:grid;place-items:center;width:36px;height:36px;margin-right:4px}
  .lkd-toplogo img{height:30px;width:auto}
  /* «Создать купон» у рекламодателя есть в нижнем меню — в шапке не дублируем */
  .lkd[data-role="client"] .lk__cta{display:none}
}
.lkd-verified i svg{display:block}

/* Партнёрская ссылка на дашборде: слева заголовок и пояснение, справа —
   «поле» со ссылкой: значок, ссылка фирменным красным и кнопка внутри
   него. Поле читается как то, что можно взять и скопировать. */
.lkd-ref{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);align-items:center;
  gap:12px 32px;margin-bottom:20px;padding:20px 24px;
  background:#fff;border:1px solid var(--line);border-radius:16px}
.lkd-ref__txt{min-width:0}
.lkd-ref__label{display:block;font-size:17px;font-weight:600;color:var(--ink);line-height:1.3}
.lkd-ref__hint{margin:4px 0 0;font-size:14px;line-height:1.45;color:var(--ink-3)}
.lkd-ref__field{display:flex;align-items:center;gap:12px;min-width:0;
  padding:6px 6px 6px 14px;background:var(--brand-50);border:1px solid var(--brand-100);border-radius:14px}
.lkd-ref__ic{flex:none;display:grid;place-items:center;width:32px;height:32px;
  border-radius:50%;background:#fff;color:var(--brand)}
.lkd-ref__link{min-width:0;padding-right:8px;font-size:18px;font-weight:600;letter-spacing:-.01em;
  color:var(--brand);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lkd-ref__link:hover{color:var(--brand-600)}
.lkd-ref__btn{flex:none;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 18px}
.lkd-ref__btn.is-done{background:var(--ink);border-color:var(--ink);color:#fff}
@media (max-width:900px){
  .lkd-ref{grid-template-columns:minmax(0,1fr);padding:16px}
}
@media (max-width:520px){
  .lkd-ref__field{flex-wrap:wrap;padding:12px;gap:10px}
  .lkd-ref__link{flex:1 1 calc(100% - 50px);padding-right:0;font-size:17px}
  .lkd-ref__btn{flex:1 1 100%;justify-content:center}
}

/* ==========================================================================
   Пост для соцсетей и «Поделитесь купоном» (правки 18.10.2026)
   ==========================================================================
   Пост — отдельный рекламный материал, а не поля формы: серый фон,
   пунктирная рамка и метка «Рекламный материал»; внутри белая карточка
   «как в ленте соцсети». Цветные подчёркивания связывают куски текста с
   легендой: предложение, промокод, сроки, условия. */
.lkd .lkd-post{background:var(--surface);border:1.5px dashed var(--line-strong)}
/* Широкий блок — ВКонтакте и Telegram рядом, без вкладок; узкий — вкладками */
.lkd .lkd-post{container:lkdpost / inline-size}
.lkd-post__cols{display:block}
.lkd-post__net{display:none;margin-bottom:10px;font-size:13px;font-weight:600;color:var(--ink-2)}
@container lkdpost (max-width:779px){
  .lkd-post[data-net="vk"] [data-post-col="tg"],.lkd-post[data-net="tg"] [data-post-col="vk"]{display:none}
}
@container lkdpost (min-width:780px){
  .lkd-post__tabs{display:none}
  .lkd-post__cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
  .lkd-post__net{display:block}
  .lkd-post__card{max-width:none}
}
.lkd-post__top{margin-bottom:16px}
.lkd-post__tag{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:var(--r-pill);
  background:var(--ink);color:#fff;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.lkd-post__h{margin:12px 0 6px;font-size:19px;line-height:1.25;font-weight:600;letter-spacing:-.02em}
.lkd-post__lead{margin:0;font-size:14px;line-height:1.5;color:var(--ink-2);max-width:620px}
.lkd .lkd-post__tabs{margin-bottom:12px;background:var(--bg)}
.lkd-post__off{margin-bottom:12px;padding:10px 14px;border-radius:var(--r-sm);background:var(--brand-50);color:var(--brand-600);font-size:13.5px;line-height:1.45}
.lkd-post__off[hidden]{display:none}
.lkd-post__card{max-width:520px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:var(--shadow-1);overflow:hidden;transition:opacity .2s var(--ease)}
.lkd-post__card.is-off{opacity:.55}
.lkd-post__who{display:flex;align-items:center;gap:10px;padding:14px 16px 10px}
.lkd-post__ava{width:40px;height:40px;padding:6px 10px;border-radius:50%;background:var(--brand-50);object-fit:contain;box-sizing:border-box}
.lkd-post__who b{display:block;font-size:14.5px;font-weight:600}
.lkd-post__who span{font-size:12.5px;color:var(--ink-3)}
.lkd-post__text{padding:14px 16px 12px;font-size:14.5px;line-height:1.5;color:var(--ink);overflow-wrap:anywhere}
.lkd-post__text p{margin:0}
.lkd-post__text .lkd-post__gap{height:10px}
.lkd-post__link{color:#2a5885}
.lkd-post__ad{font-size:12.5px;color:var(--ink-3)}
/* Картинка поста — шаблоны social-kit (kit.css: .post45 и .post11) в
   единицах исходного макета 1080 px: --u — один пиксель макета */
.lkd-post__img{container-type:inline-size;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.lkd-art{--u:calc(100cqw / 1080);position:relative;width:100%;aspect-ratio:4/5;background:var(--surface-2);overflow:hidden}
.lkd-art--tg{aspect-ratio:1/1}
.lkd-art__card{position:absolute;inset:calc(var(--u) * 40);border-radius:calc(var(--u) * 40);background:#fff;overflow:hidden;display:flex;flex-direction:column}
.lkd-art--tg .lkd-art__card{flex-direction:row}
.lkd-art__ph{position:relative;flex:none;height:calc(var(--u) * 700);background-color:var(--surface)}
.lkd-art--tg .lkd-art__ph{height:auto;width:calc(var(--u) * 430)}
.lkd-art__ph:not(.has-img){background:repeating-linear-gradient(135deg,var(--surface) 0 calc(var(--u) * 28),var(--surface-2) calc(var(--u) * 28) calc(var(--u) * 56))}
.lkd-art__ph.has-img{background-size:cover}
.lkd-art__hold{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(var(--u) * 40);
  text-align:center;font-size:calc(var(--u) * 30);color:var(--ink-3)}
.lkd-art__ph::before{content:"";position:absolute;left:0;right:0;top:0;height:calc(var(--u) * 200);display:none}
.lkd-art__erid{position:absolute;left:calc(var(--u) * 30);right:calc(var(--u) * 24);top:calc(var(--u) * 28);
  font-size:calc(var(--u) * 21);font-weight:500;line-height:1.3;color:var(--ink-3)}
.lkd-art--tg .lkd-art__erid{left:calc(var(--u) * 28);font-size:calc(var(--u) * 19)}
/* Билетик выгоды: красная плашка с полукруглыми вырезами по бокам */
.lkd-art__tk{position:absolute;left:calc(var(--u) * 40);bottom:calc(var(--u) * 40);padding:.16em .62em .2em;
  font-size:calc(var(--u) * 96);font-weight:800;line-height:1.05;letter-spacing:-.02em;white-space:nowrap;color:#fff;
  background:var(--brand);border-radius:.14em;
  -webkit-mask:radial-gradient(circle at 0 50%,transparent .17em,#000 .18em) left / 51% 100% no-repeat,
               radial-gradient(circle at 100% 50%,transparent .17em,#000 .18em) right / 51% 100% no-repeat;
          mask:radial-gradient(circle at 0 50%,transparent .17em,#000 .18em) left / 51% 100% no-repeat,
               radial-gradient(circle at 100% 50%,transparent .17em,#000 .18em) right / 51% 100% no-repeat}
.lkd-art__tk.is-long{font-size:calc(var(--u) * 72)}
.lkd-art--tg .lkd-art__tk{left:calc(var(--u) * 32);bottom:calc(var(--u) * 36);font-size:calc(var(--u) * 80)}
.lkd-art--tg .lkd-art__tk.is-long{font-size:calc(var(--u) * 60)}
.lkd-art__body{flex:1;min-width:0;min-height:0;padding:calc(var(--u) * 48) calc(var(--u) * 56) 0;display:flex;flex-direction:column}
.lkd-art--tg .lkd-art__body{padding:calc(var(--u) * 52) calc(var(--u) * 52) 0}
.lkd-art__cat{display:flex;align-items:center;gap:calc(var(--u) * 16);font-size:calc(var(--u) * 28);font-weight:600;color:var(--ink-2)}
.lkd-art__cat span{width:calc(var(--u) * 56);height:calc(var(--u) * 56);border-radius:50%;flex:none;display:grid;place-items:center;background:var(--surface);color:var(--brand)}
.lkd-art__cat svg{width:calc(var(--u) * 30);height:calc(var(--u) * 30)}
.lkd-art__t{margin-top:calc(var(--u) * 26);font-size:calc(var(--u) * 62);font-weight:800;line-height:1.07;letter-spacing:-.025em;color:var(--ink);
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
.lkd-art--tg .lkd-art__t{font-size:calc(var(--u) * 64);-webkit-line-clamp:4}
.lkd-art__c{margin-top:calc(var(--u) * 16);font-size:calc(var(--u) * 31);font-weight:500;color:var(--ink-3)}
.lkd-art__meta{display:flex;flex-wrap:wrap;gap:calc(var(--u) * 12) calc(var(--u) * 36);margin:calc(var(--u) * 30) 0 0;padding:0;list-style:none;
  font-size:calc(var(--u) * 28);font-weight:500;color:var(--ink-2)}
.lkd-art--tg .lkd-art__meta{flex-direction:column;gap:calc(var(--u) * 14)}
.lkd-art__meta li{display:flex;align-items:center;gap:calc(var(--u) * 10);min-width:0}
.lkd-art__meta li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lkd-art__meta svg{width:calc(var(--u) * 30);height:calc(var(--u) * 30);color:var(--ink-3);flex:none}
.lkd-art .is-ph{color:var(--ink-4)}
.lkd-art__foot{margin-top:auto;padding:calc(var(--u) * 24) 0 calc(var(--u) * 28);border-top:calc(var(--u) * 2) solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u) * 24);font-size:calc(var(--u) * 28);font-weight:500;color:var(--ink-2)}
.lkd-art__foot div{display:flex;flex-direction:column;gap:2px}
.lkd-art__foot b{font-size:calc(var(--u) * 36);font-weight:800;color:var(--brand);letter-spacing:-.01em}
.lkd-art__foot img{height:calc(var(--u) * 92);width:auto;flex:none}
.lkd-art--tg .lkd-art__foot img{height:calc(var(--u) * 86)}
/* Линия отрыва: вырезы цвета поля */
.lkd-art__n{position:absolute;width:calc(var(--u) * 52);height:calc(var(--u) * 52);border-radius:50%;background:var(--surface-2)}
.lkd-art--vk .lkd-art__n{top:calc(var(--u) * 714)}
.lkd-art--vk .lkd-art__n--a{left:calc(var(--u) * 14)}
.lkd-art--vk .lkd-art__n--b{right:calc(var(--u) * 14)}
.lkd-art--tg .lkd-art__n{left:calc(var(--u) * 444)}
.lkd-art--tg .lkd-art__n--a{top:calc(var(--u) * 14)}
.lkd-art--tg .lkd-art__n--b{bottom:calc(var(--u) * 14)}
.lkd-post__foot{display:flex;gap:18px;padding:10px 16px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-3)}
.lkd-post__views{margin-left:auto}
.lkd-post__legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:14px 0 0;font-size:12.5px;color:var(--ink-2)}
.lkd-post__legend span{display:inline-flex;align-items:center;gap:6px}
.lkd-post__legend .lkd-mk{display:inline-block;width:18px;height:0;padding:0}
.lkd-post__bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin-top:14px}
.lkd-post__bar .lk-note{margin:0;flex:1 1 260px}
.lkd [data-post-copy].is-done{color:var(--ink-3)}

/* Метки кусков поста */
.lkd-mk{border-bottom:2px solid transparent;padding-bottom:1px}
.lkd-mk--offer{border-color:var(--brand)}
.lkd-mk--code{border-color:#2f6fdb}
.lkd-mk--date{border-color:#d9a400}
.lkd-mk--rule{border-color:#2f9e5a}
.lkd-mk.is-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface);padding:1px 5px;border-radius:5px}
.lkd-mk.is-empty{border-bottom-style:dashed;color:var(--ink-3)}

/* Бонус за репост — тёмный, чтобы не слиться с красным «тайным покупателем»
   сразу под ним и читаться как отдельное предложение */
.lkd .lkd-share{display:flex;gap:20px;align-items:flex-start;background:var(--ink);border-color:var(--ink);color:#fff}
.lkd-share__main{flex:1;min-width:0}
.lkd-share__k{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.lkd-share__h{margin:8px 0 12px;font-size:21px;line-height:1.25;font-weight:600;letter-spacing:-.02em;color:#fff}
.lkd-share__h b{color:var(--brand-300);font-weight:700}
.lkd-share__steps{margin:0 0 16px;padding-left:20px;font-size:14px;line-height:1.5;color:rgba(255,255,255,.88)}
.lkd-share__steps li+li{margin-top:4px}
.lkd-share__nets{display:flex;flex-wrap:wrap;gap:8px}
.lkd-share__net{height:44px;padding:0 16px;border-radius:var(--r-pill);border:1px solid rgba(255,255,255,.28);
  background:transparent;color:#fff;font:inherit;font-size:14.5px;cursor:pointer}
.lkd-share__net:hover{background:rgba(255,255,255,.1)}
.lkd .lkd-share .btn--solid{height:44px}
.lkd-share__note{margin-top:10px;font-size:12.5px;line-height:1.45;color:rgba(255,255,255,.6)}
.lkd-share__prize{flex:none;width:150px;min-height:150px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  border-radius:var(--r-md);background:var(--brand);text-align:center;padding:16px}
.lkd-share__prize b{font-size:40px;line-height:1;font-weight:800;letter-spacing:-.03em}
.lkd-share__prize span{font-size:13px;line-height:1.3;color:rgba(255,255,255,.9)}
@media (max-width:640px){
  .lkd .lkd-share{flex-direction:column-reverse;align-items:stretch}
  .lkd-share__prize{min-height:0}
  .lkd-share__prize{width:auto;flex-direction:row;justify-content:flex-start;gap:12px;text-align:left}
  .lkd-share__prize b{font-size:32px}
  .lkd-share__h{font-size:18px}
}
/* Картинку выбрали — erid снова белый поверх затемнения, как в social-kit */
.lkd-art__ph.has-img::before{display:block;background:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,0))}
.lkd-art__ph.has-img .lkd-art__erid{color:rgba(255,255,255,.92)}
.lkd-art--tg .lkd-art__meta li{align-items:flex-start}
.lkd-art--tg .lkd-art__meta li span{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}

/* Телефон: колонки формы — одним потоком, порядок из mobileOrder() */
@media (max-width:1000px){
  /* gap от сетки обнуляем: отступы между блоками — их собственные margin,
     как в обычном потоке. У предупреждения сверху добираем до 18 px: в
     потоке его margin схлопывался с нижним отступом панели. */
  .lkd .lk-form{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .lkd .lk-form > div > .lk-warn{margin-top:2px}
  .lkd .lk-form > div{display:contents}
  .lkd .lk-form > div > *{order:var(--m-order, 0)}
}

/* Заголовки кабинета — плотная межстрочка (правка 18.10). Наследовали 1.5 от
   body, и на переносе (h1 на телефоне, длинные заголовки панелей) строки
   расходились. */
.lkd h1,.lkd h2,.lkd h3{line-height:1.2}
