/*
 * SUNDUQ v431 — навигация: вкладки группы, поиск на телефоне, нижняя панель,
 * листы «Создать» и «Ещё».
 *
 * Подключается ПОСЛЕ assets/build/site-ui-v326.css (см. components/head.php):
 * часть правил здесь намеренно перекрывает мобильные правила сборки. Сборку не
 * трогаем — она собирается отдельно, и правка её руками развела бы исходники и
 * сборку.
 *
 * Цвета берём из уже объявленных переменных шапки (--suh-*), своей палитры не
 * заводим: тема и акценты остаются прежними.
 */

/* Подпись только для скринридера. В проекте такого класса не было. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/*
 * Своей переменной высоты панели здесь нет намеренно: высоту и отступ страницы
 * задаёт --su112-nav-h из assets/build/site-ui-v326.css. Вторая переменная о
 * том же самом рано или поздно разошлась бы с первой.
 */

/* ======================================================================
 * 1. Вкладки открытой группы (под шапкой)
 * ====================================================================== */

.suSubNav431{
  position:sticky;top:76px;z-index:860;
  background:rgba(3,17,28,.96);
  border-bottom:1px solid var(--suh-line,#1d3b50);
  backdrop-filter:blur(14px);
}
.suSubNav431Inner{
  max-width:1580px;margin:0 auto;padding:0 28px;
  display:flex;align-items:center;gap:6px;
  height:48px;overflow-x:auto;overflow-y:hidden;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.suSubNav431Inner::-webkit-scrollbar{display:none}
.suSubNav431Inner a{
  display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;
  height:34px;padding:0 14px;border-radius:17px;
  border:1px solid transparent;
  color:#9fb5c6;font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap;
}
.suSubNav431Inner a:hover{color:#fff;background:rgba(255,255,255,.05)}
.suSubNav431Inner a.active{
  color:#fff;background:rgba(245,29,92,.14);border-color:rgba(245,29,92,.45);font-weight:800;
}
.suSubNav431Inner a svg{width:17px;height:17px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ======================================================================
 * 2. Телефон: поиск и уведомления возвращаются в шапку
 *
 * В сборке стоит правило
 *   .suUnifiedNav,.suUnifiedCitySelect,.suUnifiedActions>.suUnifiedIconBtn,
 *   .suUnifiedUserArrow,.suUnifiedWriteBtn{display:none!important}
 * то есть на телефоне исчезали сразу все три значка, включая поиск. Поиска на
 * телефоне не оставалось вообще: в выдвижном меню его тоже не было.
 *
 * Возвращаем ровно два: поиск и уведомления. Сообщения не возвращаем намеренно
 * — они стоят в нижней панели, и два входа в одно место рядом не нужны.
 * Селекторы по id: они перебивают правило сборки по весу, а не по порядку.
 * ====================================================================== */

@media (max-width:900px){
  .suUnifiedActions>#suUnifiedSearchBtn,
  .suUnifiedActions>#suUnifiedNotificationsBtn{
    display:grid!important;place-items:center;
    width:40px;height:40px;border-radius:12px;flex:0 0 auto;
  }
  .suUnifiedActions{gap:6px!important;align-items:center}
  /* Название сайта уступает место значкам, а не выдавливает их за экран. */
  .suUnifiedBrandText{min-width:0}
  .suUnifiedBrandText b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
  .suSubNav431{top:62px}
  .suSubNav431Inner{height:44px;padding:0 10px;gap:5px}
  .suSubNav431Inner a{height:32px;padding:0 12px;font-size:13px}
}

/* На самых узких экранах значки ужимаются ещё, но не пропадают. */
@media (max-width:400px){
  .suUnifiedActions>#suUnifiedSearchBtn,
  .suUnifiedActions>#suUnifiedNotificationsBtn{width:36px;height:36px;border-radius:11px}
  .suUnifiedActions>#suUnifiedSearchBtn svg,
  .suUnifiedActions>#suUnifiedNotificationsBtn svg{width:18px;height:18px}
  .suUnifiedHeader{padding:0 8px!important;gap:6px!important}
}

/* ======================================================================
 * 3. Поиск и группы в выдвижном меню
 * ====================================================================== */

.suDrawerSearch431{
  display:flex;align-items:center;gap:8px;
  margin:12px 13px 4px;padding:0 10px;
  height:44px;border:1px solid var(--suh-line,#1d3b50);border-radius:12px;background:#0a2030;
}
.suDrawerSearch431>span{display:grid;place-items:center;color:#8ea5b6;flex:0 0 auto}
.suDrawerSearch431 svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.suDrawerSearch431 input{
  flex:1;min-width:0;height:100%;border:0;background:transparent;color:#eef5fa;font:inherit;font-size:15px;outline:0;
}
.suDrawerSearch431 input::placeholder{color:#5f7a8d}
.suDrawerSearch431 button{
  flex:0 0 auto;height:32px;padding:0 12px;border:0;border-radius:10px;
  background:var(--suh-pink,#f51d5c);color:#fff;font-weight:700;font-size:13px;cursor:pointer;
}

.suDrawerCreate431{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:calc(100% - 26px);margin:4px 13px 10px;height:46px;
  border:0;border-radius:13px;
  background:linear-gradient(135deg,#f52462,#d11750);color:#fff;
  font:inherit;font-size:15px;font-weight:800;cursor:pointer;
}
.suDrawerCreate431 svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}

.suUnifiedDrawer nav .suDrawerGroup431{
  display:block;margin:12px 13px 4px;
  color:#7f97a9;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
}
.suUnifiedDrawer nav .suDrawerGroup431:first-of-type{margin-top:2px}
.suUnifiedDrawer nav a svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ======================================================================
 * 4. Нижняя панель телефона
 *
 * Пять равных колонок: Форум · Объявления · Создать · Сообщения · Ещё.
 * Подписи не обрезаются на 360 px — за это отвечает размер шрифта и
 * перенос по символам у самых длинных («Объявления», «Сообщения»).
 * ====================================================================== */

/*
 * ПАНЕЛЬ ВСТРАИВАЕТСЯ В УЖЕ СУЩЕСТВУЮЩУЮ СИСТЕМУ, А НЕ ЗАВОДИТ ВТОРУЮ.
 *
 * В assets/build/site-ui-v326.css давно описана нижняя панель
 * (.su112MobileNav, .nhMobileNav.su112Enhanced) со своей высотой
 * --su112-nav-h, безопасной областью, сеткой из пяти колонок и z-index 9800.
 * Там же — мини-плеер радио, который встаёт НАД панелью, и нижний отступ
 * страницы: body{padding-bottom:calc(--su112-nav-h + --su112-radio-h + …)}.
 *
 * Наша разметка носит класс .nhMobileNav, поэтому все эти правила к ней
 * применяются сами. Отсюда два следствия:
 *
 *   1. Своего правила для body{padding-bottom} здесь НЕТ и быть не должно.
 *      Место под панель уже зарезервировано, и второе правило только сбило бы
 *      расчёт мини-плеера.
 *   2. Правила ниже — это запасная вёрстка на случай выключенного JavaScript:
 *      класс su112Enhanced ставит скрипт, и без него панель осталась бы
 *      обычным блоком в потоке страницы. Поэтому здесь нет !important: когда
 *      скрипт отработал, выигрывают правила сборки, и это правильно.
 */

.su431MobileNav{display:none}

@media (max-width:900px){
  .su431MobileNav{
    position:fixed;left:0;right:0;bottom:0;z-index:9800;
    display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;
    height:calc(var(--su112-nav-h,72px) + env(safe-area-inset-bottom,0px));
    padding:0 5px env(safe-area-inset-bottom,0px);
    background:rgba(3,16,26,.985);
    border-top:1px solid rgba(93,159,195,.28);
    box-shadow:0 -18px 45px rgba(0,0,0,.36);
    backdrop-filter:blur(18px);
  }
  .su431MobileNav>a,
  .su431MobileNav>button{
    position:relative;min-width:0;height:100%;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    border:0;background:transparent;color:#8299aa;
    font:inherit;font-size:10px;font-weight:800;line-height:1;
    text-decoration:none;cursor:pointer;padding:5px 2px;
    -webkit-tap-highlight-color:transparent;
  }
  .su431MobileNav b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .su431MobileNav .su431NavIcon{display:grid;place-items:center}
  .su431MobileNav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

  /*
   * Отметка текущего раздела. Вес селектора выше, чем у правила сборки
   * (.nhMobileNav.su112Enhanced a.active), — иначе собственный цвет панели
   * #8299aa!important перекрыл бы её.
   */
  .nhMobileNav.su431MobileNav a.su431Active,
  .nhMobileNav.su431MobileNav a.su431Active .su431NavIcon{color:#ff4c79!important}

  /*
   * «Создать» — единственная выделенная кнопка панели. Круглую подложку даёт
   * класс su112ComposeIcon из сборки; здесь только запасной вид для случая,
   * когда скрипт не отработал.
   */
  .su431MobileNav .su431NavCreate{color:#f1f7fb}
  .su431MobileNav .su431NavCreate .nhMobilePlus{
    width:44px;height:44px;border-radius:50%;margin-top:-22px;
    display:grid;place-items:center;color:#fff;
    background:linear-gradient(135deg,#f52462,#d11750);
    box-shadow:0 8px 20px rgba(241,32,91,.32);
  }
  .su431MobileNav .su431NavCreate svg{width:22px;height:22px;stroke-width:2.3}
}

/*
 * Подписи панели не обрезаются.
 *
 * Самое длинное слово — «Объявления». На 375 px колонка шириной 75 px, минус
 * внутренние отступы остаётся около 71 px, а слово при 10 px занимает ~69 px и
 * всё-таки обрывается многоточием. Поэтому до 420 px шрифт на пункт меньше:
 * это лучше, чем «Объявлен…». Правило перебивает font-size:10px!important из
 * сборки, иначе оно не сработало бы.
 */
@media (max-width:420px){
  .nhMobileNav.su431MobileNav>a,
  .nhMobileNav.su431MobileNav>button{font-size:9px!important;gap:2px!important}
}
@media (max-width:340px){
  .nhMobileNav.su431MobileNav>a,
  .nhMobileNav.su431MobileNav>button{font-size:8px!important}
  .su431MobileNav svg{width:20px;height:20px}
}

/* ======================================================================
 * 5. Листы «Создать» и «Ещё»
 *
 * Выезжают снизу, прокручиваются внутри себя, закрываются по фону, кнопке и
 * Escape. z-index ниже окна публикации (10000): лист открывает форму, а не
 * наоборот.
 * ====================================================================== */

/*
 * z-index 9850 — между нижней панелью (9800 в site-ui-v326.css) и окном
 * публикации (10000). Лист обязан накрывать панель, из которой его открыли, и
 * обязан уступить форме, которую он открывает.
 */
.su431Sheet{position:fixed;inset:0;z-index:9850;display:flex;align-items:flex-end;justify-content:center}
.su431Sheet.hidden{display:none!important}
.su431SheetShade{position:absolute;inset:0;background:rgba(0,7,13,.74);backdrop-filter:blur(6px)}
.su431SheetBody{
  position:relative;width:min(560px,100%);
  max-height:min(86vh,760px);display:flex;flex-direction:column;
  border:1px solid #244b64;border-top-left-radius:20px;border-top-right-radius:20px;
  background:linear-gradient(160deg,#0c2435,#061722 78%);
  box-shadow:0 -24px 70px rgba(0,0,0,.55);
  color:#f2f7fb;
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (min-width:901px){
  .su431Sheet{align-items:center}
  .su431SheetBody{border-radius:20px;max-height:min(80vh,720px)}
}
.su431SheetHead{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 18px 12px;border-bottom:1px solid rgba(54,101,130,.4);flex:0 0 auto;
}
.su431SheetHead h2{margin:0;font-size:19px}
.su431SheetHead>button{
  width:36px;height:36px;flex:0 0 auto;display:grid;place-items:center;
  border:1px solid #31546a;border-radius:50%;background:#102b3d;color:#c8d7e1;cursor:pointer;
}
.su431SheetHead svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

.su431SheetSearch{
  display:flex;align-items:center;gap:8px;flex:0 0 auto;
  margin:12px 18px 0;padding:0 12px;height:44px;
  border:1px solid #284d64;border-radius:12px;background:#081e2d;
}
.su431SheetSearch>span{display:grid;place-items:center;color:#7d96a9}
.su431SheetSearch svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.su431SheetSearch input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:#edf5fa;font:inherit;font-size:15px;outline:0}
.su431SheetSearch input::placeholder{color:#5f7a8d}

.su431SheetScroll{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 18px 20px}
.su431SheetGroup{margin-top:16px}
.su431SheetGroup>b{
  display:block;margin-bottom:9px;
  color:#7f97a9;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
}

.su431SheetGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.su431SheetGrid a{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  min-height:76px;padding:10px 6px;
  border:1px solid #214257;border-radius:13px;background:#0a2232;
  color:#cfdde8;font-size:12px;font-weight:600;text-align:center;text-decoration:none;
}
.su431SheetGrid a:hover{background:#102c40;border-color:#2d5771;color:#fff}
.su431SheetGrid a.active{border-color:rgba(245,29,92,.55);background:rgba(245,29,92,.12);color:#fff}
.su431SheetGrid svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.su431SheetGrid span{display:block;line-height:1.2;max-width:100%;overflow-wrap:anywhere}

.su431CreateGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.su431CreateGrid button{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  min-height:80px;padding:10px 6px;
  border:1px solid #214257;border-radius:13px;background:#0a2232;
  color:#dbe7f0;font:inherit;font-size:12px;font-weight:700;text-align:center;cursor:pointer;
}
.su431CreateGrid button:hover{background:#102c40;border-color:#2d5771;color:#fff}
.su431CreateGrid button>span{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:rgba(255,255,255,.05)}
.su431CreateGrid svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.su431CreateGrid .blue{color:#70aaff}
.su431CreateGrid .purple{color:#c977ff}
.su431CreateGrid .pink{color:#ff7cc6}
.su431CreateGrid .green{color:#61da76}
.su431CreateGrid .orange{color:#ff9e2f}

.su431CreateList{display:flex;flex-direction:column;gap:6px}
.su431CreateList a{
  display:flex;align-items:center;gap:12px;
  min-height:56px;padding:9px 13px;
  border:1px solid #1d3e52;border-radius:12px;background:#0a2030;
  color:#dbe7f0;font-size:14px;font-weight:600;text-decoration:none;
}
.su431CreateList a:hover{background:#102c40;border-color:#2d5771;color:#fff}
.su431CreateList a>span{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.su431CreateList small{color:#7d96a9;font-size:11px;font-weight:500}
.su431CreateList svg{width:19px;height:19px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.su431CreateList a>svg:last-child{color:#5d7a8f}

/* Пока открыт лист, прокручивается лист, а не страница под ним. */
body.su431SheetOpen{overflow:hidden}

@media (max-width:360px){
  .su431SheetGrid,.su431CreateGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ======================================================================
 * 6. Кнопка «Создать» в шапке
 *
 * На телефоне её нет: там эту роль играет нижняя панель, и две крупные кнопки
 * создания на одном экране — это ровно то, чего просили не делать.
 * ====================================================================== */

.su431CreateBtn{display:inline-flex;align-items:center;gap:8px}
.su431CreateBtn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:900px){
  .su431CreateBtn{display:none!important}
}
