/* ============================================================================
   mobile.css — мобильный слой CRM «Bloggers».

   Что это. Единственный файл, который отвечает за вид приложения на телефоне.
   Подключается в index.html СРАЗУ ПОСЛЕ styles.css, поэтому при равной
   специфичности выигрывает он — !important здесь не нужен и не используется.

   Когда включается. Всё, кроме трёх правил в блоке «Глобально» ниже, живёт
   внутри медиа-листа
       @media (max-width:768px), (max-height:500px) and (orientation:landscape)
   — то есть узкий экран ИЛИ лежащий телефон (812×375: ширина большая, а высота
   мизерная, десктопная таблица в такую полосу не помещается). JS-двойник этого
   листа — константа MOBILE_MQ в common.js; менять их надо ВМЕСТЕ, иначе вёрстка
   и логика рендера разъедутся. Настоящий десктоп (769px+ шириной и выше 500px)
   рендерится ровно так же, как до появления этого файла.

   Как устроено внутри. Мобильный режим — НЕ один макет, а два, и разделены они
   не «полнотой», а формой дефицита:
     · узкий портрет (375×812) — мало ШИРИНЫ  → нижняя панель, карточки, шторка;
     · лежащий телефон (812×375) — мало ВЫСОТЫ → левая полоска иконок, таблица,
       панель справа. Нижняя панель съела бы 13% экрана, полоска слева — 7%.
   Разделы 1–11 ниже — общее для обоих. Разделы 12 и 13 — сами макеты; их
   условия дополняют друг друга ровно, без щели и без нахлёста (см. врезку
   перед разделом 12). JS-двойник этого водораздела — CARDS_MQ в common.js.

   Исключения (осознанные, вне медиа-запроса):
     1. #mnav{display:none} — нижняя навигация не существовала раньше вовсе,
        на десктопе она обязана быть скрыта на любой ширине.
     2. :focus-visible — видимая рамка фокуса с клавиатуры (доступность).
     3. prefers-reduced-motion — глушим анимации, если человек попросил этого
        в системных настройках. Единственное место, где !important уместен:
        перебить нужно решительно все объявления transition/animation.

   Правила, которым файл следует: цвета только из токенов :root, тач-цели ≥44px,
   поля ввода 16px (иначе iOS Safari зумит страницу при фокусе), высоты в dvh,
   нижние фиксированные элементы с env(safe-area-inset-bottom), анимации
   150–300 мс и только по transform/opacity.
   ========================================================================== */


/* ============================ Глобально (вне медиа) ======================= */

/* Нижняя навигация — сущность чисто мобильная. Прячем её на любой ширине,
   мобильный блок ниже включает обратно. */
#mnav{display:none}

/* Фокус с клавиатуры должно быть видно. :focus-visible не срабатывает на
   мышиный клик, поэтому обычный вид кнопок не меняется. */
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}

/* Человек попросил меньше движения — отдаём меньше движения. */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
}


/* ================================ МОБИЛЬНЫЙ ============================== */
@media (max-width:768px), (max-height:500px) and (orientation:landscape){

/* ---- 1. Каркас ---------------------------------------------------------- */
/* Сайдбар уезжает целиком, его место занимает нижняя навигация. Колонка
   превращается в обычный поток: flex тут больше нечего раскладывать. */
/* Каркас различается по ориентации и живёт в подблоках 12/13: в узком портрете
   сайдбар уезжает и его место занимает нижняя панель, в широком мобильном —
   наоборот. Общее здесь — только то, что верно в обоих случаях. */
#app{min-height:100dvh}
main{max-width:100%;overflow-x:hidden}


/* ---- 2. Системный блок в Настройках ------------------------------------- */
/* Сама нижняя навигация #mnav — сущность узкого портрета, её стили в подблоке 12.
   А вот блок «режим + кто я + выйти» нужен в ОБЕИХ ориентациях: в портрете
   сайдбара нет вовсе, в ландшафте у свёрнутого сайдбара нижний блок скрыт
   (места по высоте нет) — и там и там единственная точка доступа это Настройки.

   mobile-nav.js рисует блок как <section class="msys dsection"> и ставит ПЕРВЫМ
   в #view-settings, поэтому поверхность (фон/рамку/паддинг) даёт .dsection —
   здесь только отступ снизу и размеры нажимаемых элементов. */
.msys{margin-top:0;margin-bottom:14px}
.msys .mode-toggle button{min-height:44px}
.msys .side-foot{padding:10px 2px 0}
.msys .btn.ghost{width:100%;margin-top:10px}


/* ---- 3. Шапка экрана .top ----------------------------------------------- */
/* Первая строка: заголовок + счётчик (+ бейдж «ДЕМО»).
   Вторая: поиск во всю ширину. Третья: сегмент + «+ Добавить». */
/* Общее для обеих ориентаций: размер тач-цели и 16px против зума iOS.
   Раскладка (в одну строку или в три) различается — она в подблоках 12/13. */
.top{gap:10px;align-items:center}
.top h2{line-height:1.25;min-width:0;overflow:hidden;text-overflow:ellipsis}
.hsearch{gap:8px}
.hsearch .btn{flex:0 0 auto}
.hsearch input,.hsearch select{font-size:16px;min-height:44px;padding:10px 12px}


/* ---- 4. Ленты чипов ----------------------------------------------------- */
/* Единственный горизонтальный скроллер, который разрешён на странице.
   Отрицательный margin даёт «вылет» под края экрана, парный padding
   возвращает первому и последнему чипу нормальный отступ. */
.stagebar{
  flex-wrap:nowrap;
  overflow-x:auto;overflow-y:hidden;
  overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;
  scroll-padding-inline-start:14px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  gap:8px;
  margin-inline:-14px;
  padding-inline:14px;
  /* по 3px сверху и снизу: ровно столько, чтобы 44px-зона нажатия чипа
     (см. ::after ниже) поместилась в padding-box и не была срезана */
  padding-block:3px;
}
.stagebar::-webkit-scrollbar{display:none}

.stagebar .chip{
  position:relative;
  flex:none;
  scroll-snap-align:start;
  min-height:38px;
  display:inline-flex;align-items:center;
  padding:8px 14px;font-size:13px;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
/* Чип рисуется на 38px, но палец попадает по 44px: прозрачная зона поверх,
   вертикально по центру. Соседям не мешает — растёт только вверх и вниз. */
.stagebar .chip::after{
  content:"";position:absolute;left:0;right:0;top:50%;
  height:44px;transform:translateY(-50%);
}


/* ---- 5. Список блогеров: карточки (только узкий портрет) ---------------- */
/* Прятать .btable здесь нельзя: в широком мобильном base.js рендерит именно
   таблицу (IS_CARDS() === false). display:none для неё — в подблоке 12.
   Стили самих карточек общие: в ландшафте их просто никто не создаёт. */
.bcards{display:flex;flex-direction:column;gap:10px}

.bcard{
  display:flex;flex-direction:column;gap:6px;
  min-height:64px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:14px;
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  transition:transform .15s ease,border-color .15s ease;
}
.bcard:active{transform:scale(.985)}

.bc-top{display:flex;align-items:center;gap:8px;min-width:0}
.bc-name{
  flex:1;min-width:0;
  font-weight:600;font-size:15px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.bc-top .stg,.bc-top .coldbang,.bc-top .stalemark{flex:none}

.bc-sub{color:var(--mut);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.bc-metrics{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:12px;color:var(--mut);min-width:0}
.bc-src{margin-left:auto;flex:none;font-size:14px}

.empty{padding:32px 16px}


/* ---- 6. Карточка блогера как нижний шит --------------------------------- */
/* Класс .sheet вешает sheet.js/drawer.js при открытии, когда IS_MOBILE().
   Важно: #drawer.sheet и #drawer.show имеют одинаковую специфичность, и наш
   файл идёт позже — поэтому «открытое» состояние обязано быть двухклассовым
   (#drawer.sheet.show), иначе шит никогда бы не выехал. */
#drawer.sheet{
  top:auto;right:0;left:0;bottom:0;
  width:100%;min-width:0;max-width:none;
  height:92dvh;
  border-left:none;
  border-top:1px solid var(--line);
  border-radius:20px 20px 0 0;
  padding:0 16px calc(16px + env(safe-area-inset-bottom));
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  transform:translateY(101%);
  transition:transform .26s cubic-bezier(.32,.72,0,1);
}
#drawer.sheet.show{transform:none}
/* Во время жеста позицию диктует инлайновый transform из JS — своя анимация
   тут только мешала бы: шит отставал бы от пальца. */
#drawer.sheet.dragging{transition:none}

/* «Ручка»: липкая полоса во всю ширину (чтобы контент не просвечивал под ней)
   с пилюлей 36×4 по центру. Жест ловит JS, поэтому браузерную прокрутку с
   самой ручки снимаем. */
#drawer.sheet .sheet-grab{
  position:sticky;top:0;z-index:3;
  display:flex;align-items:center;justify-content:center;
  height:28px;margin:0 -16px 6px;
  background:var(--panel);
  touch-action:none;
  cursor:grab;
}
#drawer.sheet .sheet-grab::before{
  content:"";width:36px;height:4px;border-radius:999px;background:var(--line);
}
#drawer.sheet .sheet-grab:active{cursor:grabbing}

/* Шапка карточки */
.dh{gap:11px}
.dh .av{width:46px;height:46px;font-size:16px}
/* Средняя колонка (хендл + имя) обязана уметь сжиматься, иначе длинное имя
   без пробелов распирает шит. Аватар и блок кнопок трогать нельзя — у них
   фиксированный размер. */
.dh>div:not(.av):not(.acts){min-width:0}
.dh .nm{font-size:18px}
.dh .nm,.dh .em{overflow-wrap:anywhere}
.dh .acts{gap:6px}
.dh .acts .x{
  width:44px;height:44px;flex:none;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:10px;
  background:var(--panel2);color:var(--mut);
  font-size:16px;line-height:1;
  touch-action:manipulation;
}


/* ---- 7. Плитки и сетки внутри шита -------------------------------------- */
.dtiles{grid-template-columns:repeat(2,1fr)}
.dtiles.f5{grid-template-columns:repeat(3,1fr)}
/* f4 — вид менеджера (без колонки «доход»), см. drawer.js IS_OWNER */
.dtiles.f4{grid-template-columns:repeat(2,1fr)}
.dtiles.f5 .dtile,.dtiles.f4 .dtile{min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center}

/* Подписи шагов воронки («Написан DM», «Фидбек + CTA») на 375px не влезают в
   одну строку — разрешаем перенос вместо обрезки. */
.stepper2{margin:4px 0 18px}
.stepper2 .sl{
  font-size:9.5px;line-height:1.2;
  white-space:normal;overflow-wrap:anywhere;hyphens:auto;
  padding:0 2px;
}
.stepper2 .sq{width:30px;height:30px;font-size:13px}
.stepper2 .ln2{top:14px}

/* Две колонки «ключ — значение» остаются двумя, но длинные email/ссылки
   переносятся, а не растягивают шит. */
.kv{grid-template-columns:minmax(0,1fr) minmax(0,auto)}
.kv .k,.kv .v{min-width:0;overflow-wrap:anywhere}

.contacts{flex-wrap:wrap}
.contactbtn{min-height:46px;display:flex;align-items:center;justify-content:center;flex:1 1 45%}
.advance,.archive{min-height:46px}
.goback,.btn.testgrant{min-height:46px}

.rowin{flex-wrap:wrap}
.rowin input,.rowin select,.rowin textarea{font-size:16px;min-height:44px;flex:1 1 100%}
.rowin .btn,.rowin .btn.sm{flex:1 1 100%;min-height:44px}

/* Две поправки к правилу «каждое поле на свою строку» — оно верное для длинных
   полей и вредное для коротких.
   1. «кол-во» шириной 110px висело одно на строке, а справа оставалось ~200px
      пустоты. Ставим его в пару с «причиной».
   2. Кнопка «Копир.» во всю ширину читается как главное действие блока, хотя
      главное там — сама ссылка. Возвращаем её к содержимому. */
.rowin #cr-amount{flex:0 1 110px;min-width:96px}
.rowin #cr-reason{flex:1 1 140px}
.rowin #reflink{flex:1 1 60%}
.rowin #reflink + .btn{flex:0 0 auto;min-width:104px}

/* Ссылка на профиль в шапке карточки была единственной целью ниже 44px (23px). */
.dh .nm a{display:inline-flex;align-items:center;min-height:44px}

/* Мелкие интерактивные элементы внутри шита дорастают до пальца. */
.delx{width:44px;height:44px;font-size:15px;opacity:.75}
.convhint{min-height:44px}
.task{min-height:44px;gap:11px}
.task input{width:22px;height:22px}


/* ---- 8. Модалки --------------------------------------------------------- */
/* Во всю ширину минус 16px: по 8px паддинга у затемнённой подложки. */
#modal{padding:0 8px;align-items:center}
#modal .card{
  width:100%;max-width:none;
  max-height:92dvh;overflow:auto;overscroll-behavior:contain;
  padding:20px 18px;
}
#modal h3{font-size:16px;margin-bottom:14px}

/* Два поля в строке на 375px не живут — ставим друг под друга.
   gap обнуляем: вертикальный отступ уже даёт margin-bottom у .fld. */
.mrow{flex-direction:column;gap:0}

.mfoot{gap:10px;margin-top:10px}
.mfoot .btn{flex:1 1 0;min-height:44px}

#cmodal{padding:0 8px}
#cbox{
  width:100%;max-width:none;
  max-height:92dvh;overflow:auto;overscroll-behavior:contain;
  padding:16px 14px;
}
.cbh .close{width:44px;height:44px;flex:none;display:flex;align-items:center;justify-content:center;margin:-6px -6px 0 0}
.ctrls{gap:8px}
.seg-ctrl button{min-height:44px;padding:6px 12px;font-size:13px}

#confirm{padding:0 8px}
.cfmbox{
  width:100%;max-width:none;
  max-height:92dvh;overflow:auto;overscroll-behavior:contain;
  padding:22px 18px 18px;
}
.cfmfoot{gap:10px}
.cfmfoot .btn{min-height:44px}


/* ---- 9. Сетки остальных экранов ----------------------------------------- */
/* Схлопывание в одну колонку — свойство УЗКОГО экрана, оно в подблоке 12.
   В ландшафте под контент остаётся ~724px, там штатные две колонки уместны. */
.taskbar{flex-wrap:wrap;gap:8px 12px}
.taskbar .pb{flex:1 1 100%;order:2}
.titem{min-height:44px;padding:0}
.titem .cb{width:22px;height:22px;font-size:13px}
.copybtn{min-height:44px}
.chartcard{padding:14px 12px}
.legend{gap:8px 14px}


/* ---- 10. Экран входа ---------------------------------------------------- */
#login .card{width:100%;max-width:360px;margin:0 16px;padding:24px 20px}


/* ---- 11. Общие правила ввода и нажатия ---------------------------------- */
/* 16px — не вкусовое: на меньшем размере iOS Safari зумит страницу при фокусе
   и после этого у страницы появляется горизонтальный скролл. */
input,select,textarea{font-size:16px}
.fld input,.fld select,.fld textarea{font-size:16px;min-height:44px;padding:11px 12px}
.btn{min-height:44px;padding:11px 16px;touch-action:manipulation}
.btn.sm{min-height:44px;padding:10px 14px;font-size:14px}
button{-webkit-tap-highlight-color:transparent}


/* ==========================================================================
   ДВА ПОДБЛОКА. Внешний медиа-лист — «мобильный режим вообще». Внутри он
   делится на два непересекающихся и вместе исчерпывающих случая:

     12. ПОРТРЕТ  : (max-width:768px) and (orientation:portrait)
     13. ШИРОКИЙ  : (min-width:769px), (orientation:landscape)

   Второй — точное отрицание первого (де Морган), поэтому «между ними» экрана
   не бывает: любой экран, попавший во внешний лист, попадёт РОВНО в один
   подблок. Это не педантизм — 13-й выключает нижнюю панель и включает
   сайдбар; экран, не попавший никуда, остался бы вообще без навигации.

   Тот же водораздел в JS — CARDS_MQ в common.js (портрет = карточки+шторка).
   Менять эти два условия можно только ВМЕСТЕ с ним.
   ========================================================================== */


/* ---- 12. УЗКИЙ ПОРТРЕТ: нижняя панель, карточки, шторка ----------------- */
@media (max-width:768px) and (orientation:portrait){

/* Каркас: сайдбар уезжает целиком, его место занимает нижняя навигация.
   Колонка превращается в обычный поток — flex тут больше нечего раскладывать. */
#app{display:block}
#side{display:none}
main{
  padding:16px 14px;
  /* высота навбара + safe-area + воздух, иначе последняя карточка уходит под нав */
  padding-bottom:calc(56px + env(safe-area-inset-bottom) + 16px);
}
/* Тост всплывает над навигацией, а не под ней. */
.toast{bottom:calc(56px + env(safe-area-inset-bottom) + 16px)}

/* Нижняя навигация. Разметку вставляет mobile-nav.js: <nav id="mnav"> + 5 кнопок
   .mnav-item, активная получает класс .on и aria-current="page". */
#mnav{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  position:fixed;left:0;right:0;bottom:0;
  /* ниже #scrim (40) — при открытом шите навигация должна уходить под затемнение */
  z-index:35;
  background:var(--panel);
  border-top:1px solid var(--line);
  padding-bottom:env(safe-area-inset-bottom);
}
#mnav .mnav-item{
  min-height:56px;
  /* min-width:0 обязателен: у грид-ячейки min-width по умолчанию auto, и длинная
     подпись распирает колонку, вместо того чтобы обрезаться многоточием ниже.
     31.08 восьмой пункт («Моя работа») так выдавил «Настройки» на 25px за край
     экрана — панель стала 400px при 375px. Обрезка есть, а места ей не давали. */
  min-width:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  border:none;background:transparent;color:var(--mut);
  font-family:inherit;font-size:10.5px;font-weight:600;line-height:1.1;
  padding:6px 1px;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  transition:color .15s ease,transform .15s ease;
}
#mnav .mnav-item svg{
  width:22px;height:22px;flex:none;
  stroke:currentColor;fill:none;stroke-width:1.75;
  stroke-linecap:round;stroke-linejoin:round;
}
#mnav .mnav-item span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#mnav .mnav-item.on{color:var(--acc)}
/* Точка «есть новые заявки». Крепится к самой кнопке (position:relative ниже),
   а не к иконке: у иконки нет своего бокса нужного размера в flex-колонке. */
#mnav .mnav-item{position:relative}
#mnav .invdot{position:absolute;top:8px;left:50%;margin-left:6px;width:8px;height:8px;border-radius:50%;background:var(--bad)}
#mnav .mnav-item:active{transform:scale(.94)}

/* Шапка в три строки: заголовок+счётчик · поиск · сегмент+«Добавить».
   На 375px в одну строку это не складывается ни при каких размерах. */
.top{margin-bottom:12px}
.top h2{font-size:18px;white-space:normal}
.top .spacer{display:none}
.top>.btn{flex:1 0 100%;min-height:44px}
.hsearch{flex:1 0 100%;flex-wrap:wrap}
.hsearch input{flex:1 0 100%;min-width:0;width:100%}
.hsearch select{flex:1 1 auto;min-width:0}

/* Список — карточки (base.js: IS_CARDS() === true). Таблицу на всякий случай
   прячем: если она окажется в DOM, семь колонок распёрли бы страницу. */
.btable{display:none}

/* minmax(300–360px,1fr) на экране 375px вылезает за границу вместе с
   паддингами — здесь всегда одна колонка. */
.infogrid,.taskgrid,.tplgrid{grid-template-columns:1fr}
.dodont{grid-template-columns:1fr;gap:14px}

} /* /12 УЗКИЙ ПОРТРЕТ */


/* ---- 13. ШИРОКИЙ МОБИЛЬНЫЙ: лежащий телефон ---------------------------- */
/* Сюда попадает главный рабочий кейс менеджера — телефон в ландшафте, 812×375.
   Дефицит здесь строго ОДИН: высота. Ширины наоборот много. Поэтому всё, что
   в портрете стояло горизонтально, здесь встаёт вертикально, и наоборот:
   навигация уезжает из низа (48px из 375 = 13% экрана) в левую полоску
   (60px из 812 = 7% ширины), список превращается в таблицу, карточка
   блогера — в панель справа. Ни одного правила, рассчитанного на нижнюю
   панель, здесь нет и быть не должно. */
@media (min-width:769px), (orientation:landscape){

/* ---- 13.1 Навигация: левая полоска иконок ------------------------------- */
/* Не поднимаем класс .collapsed (его переключает человек кнопкой и хранит
   localStorage) — повторяем свёрнутый вид прямо на #side. Так режим не зависит
   от того, что менеджер нажимал вчера на десктопе. */
/* Селекторы удвоены под .collapsed: класс мог остаться в localStorage с
   десктопа (nav.js: crm_side), а #side.collapsed из styles.css специфичнее
   голого #side и перебил бы наши отступы. */
#side,#side.collapsed{
  display:flex;
  width:60px;min-width:60px;
  padding:10px 6px;gap:4px;
  height:100dvh;
  /* страховка: если у аппарата высота ещё меньше расчётной, пункты
     прокручиваются, а не обрезаются молча */
  overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;
}
#side::-webkit-scrollbar{display:none}

/* Кнопка разворота бесполезна и вредна: 212px из 812 — это четверть экрана
   под подписи, которые и так понятны по иконкам. */
#side .collapse-btn{display:none}

#side .brand,#side.collapsed .brand{padding:2px 0 8px;justify-content:center}
#side .brand span{display:none}
#side .brand .logo{width:24px;height:24px}

/* Тач-цель пункта — 44px, как у всего остального на телефоне. */
#side .nav,#side.collapsed .nav{justify-content:center;padding:9px 0;min-height:44px}
#side .nav b{display:none}
#side .nav .ic{width:auto;font-size:17px}

/* Нижний блок сайдбара (Рабочий/Демо + кто я + выйти) в лежащем телефоне не
   помещается: пять пунктов по 44px + логотип уже занимают ~290px из ~330px
   реальной высоты. Пункты меню важнее — блок скрыт, а доступ к нему остаётся
   в Настройках, секция .msys (её рисует mobile-nav.js в обеих ориентациях). */
#side .mode-wrap,#side.collapsed .mode-wrap{display:none}

/* ---- 13.2 Каркас: высота на вес золота ---------------------------------- */
main{padding:10px 14px}

/* ---- 13.3 Шапка в одну строку ------------------------------------------- */
/* Ширины хватает на всё сразу: заголовок · счётчик · поиск · сегмент · кнопка.
   Высоту полей (44px) не трогаем — это тач-цель, а не украшение. */
.top{flex-wrap:nowrap;gap:8px;margin-bottom:8px}
.top h2{font-size:16px;white-space:nowrap}
/* Заголовок экрана не ужимаем и не режем многоточием: он короткий и постоянный,
   а ужиматься должен поиск. Иначе «База блогеров» превращалась в «База блогер…»
   из-за нехватки двух пикселей. */
.top h2{flex:0 0 auto;overflow:visible;text-overflow:clip;min-width:max-content}
.top>.btn{flex:0 0 auto;min-height:44px}
.hsearch{flex:1 1 auto;flex-wrap:nowrap;min-width:0;justify-content:flex-end}
.hsearch input{flex:1 1 160px;min-width:0;width:auto}
.hsearch select{flex:0 1 auto;min-width:0;width:auto}

/* Ленты чипов остаются одной прокручиваемой строкой (стили в общем блоке) —
   здесь только меньше воздуха под ними. */
.stagebar{margin-bottom:8px}

/* ---- 13.4 Список: ужатая таблица ---------------------------------------- */
/* base.js в этом режиме рендерит таблицу (IS_CARDS() === false). Семь колонок
   в 724px читаются плохо, поэтому «Источник» и «Сегмент» скрыты: источник
   дублируется иконкой в карточке блогера, сегмент — фильтром в шапке.
   nth-child считает узлы DOM, а не видимые ячейки, поэтому номера ниже —
   исходные позиции колонок, и скрытие соседей их не сдвигает.
   Видимые: 1 Блогер · 4 Подписчики · 5 Стадия · 6 Рефералы · 7 Оплаты. */
.btable th:nth-child(2),.btable td:nth-child(2),
.btable th:nth-child(3),.btable td:nth-child(3){display:none}
.btable th:nth-child(1),.btable td:nth-child(1){width:34%}
.btable th:nth-child(4),.btable td:nth-child(4){width:18%}
.btable th:nth-child(5),.btable td:nth-child(5){width:22%}
.btable th:nth-child(6),.btable td:nth-child(6){width:13%}
.btable th:nth-child(7),.btable td:nth-child(7){width:13%}
/* Строка ужата по паддингам, но height у ячейки таблицы работает как минимум,
   поэтому 44px тач-цели остаются даже при однострочном содержимом. */
.btable th{padding:8px 12px}
.btable td{padding:9px 12px;height:44px;font-size:13.5px}

/* ---- 13.5 Карточка блогера: панель справа ------------------------------- */
/* Класс .sheet здесь не вешается (drawer.js: SHEET_MQ = CARDS_MQ), поэтому
   работают базовые правила #drawer из styles.css — им нужна только ширина
   под лежащий экран и dvh вместо vh. Системный «назад» при этом включён:
   он привязан к MOBILE_MQ, а не к внешнему виду панели. */
#drawer{width:60vw;min-width:0;height:100dvh;padding:16px 18px}
#drawer .dh .acts{gap:8px}   /* ≥8px между соседними тач-целями */

/* ---- 13.6 Модалки ------------------------------------------------------- */
/* 90–92vh от лежащего экрана оставляли под содержимое совсем немного —
   отдаём почти всю высоту, прокрутка внутри уже есть. */
#modal .card,#cbox,.cfmbox{max-height:94dvh}

} /* /13 ШИРОКИЙ МОБИЛЬНЫЙ */

} /* /@media (max-width:768px), (max-height:500px) and (orientation:landscape) */
