/* Antikvar — доска объявлений. Компактный самодостаточный CSS (без билд-шага). */

/* Inter — self-hosted variable (400..800), 3 сабсета. Файлы: /assets/fonts/. */
@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;
  src:url(/assets/fonts/inter-cyrillic.woff2) format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;
  src:url(/assets/fonts/inter-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;
  src:url(/assets/fonts/inter-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --bg:#f5f6f8; --card:#fff; --ink:#1a1f2b; --muted:#6b7280; --line:#e5e7eb;
  /* ОСНОВНОЙ цвет сайта — синий бренда: кнопки, активные состояния, цена, ссылки. */
  --brand:#006AA7; --brand-d:#00527f; --on-brand:#fff;
  --brand-ink:#006AA7; --brand-soft:#eaf4fb;
  /* ВТОРОЙ цвет — жёлтый: CTA «Подать объявление», буллиты, метки. */
  --accent:#FECC00; --accent-d:#e5b800; --on-accent:#0d1b26;
  /* Полоса категорий под шапкой — градиент из макета. */
  --band1:#0074B3; --band2:#01A8F2;
  --ok:#16a34a; --danger:#dc2626;
  --radius:12px; --shadow:0 1px 3px rgba(0,0,0,.06),0 8px 24px rgba(0,0,0,.05);
  /* Фирменное скругление — только 2 угла (верх-лево / низ-право). Три размера. */
  --maxw:1200px; --r-card:24px; --r-box:16px; --r-btn:10px;
  --font:Inter,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font:15px/1.5 var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;
  overflow-x:hidden;-webkit-tap-highlight-color:rgba(0,106,167,.12);text-size-adjust:100%;-webkit-text-size-adjust:100%}
/* Липкий футер: короткая страница — футер всё равно прижат к низу окна */
body.site{display:flex;flex-direction:column;min-height:100vh}
body.site>main.wrap{flex:1 0 auto}
body.site>.foot{flex-shrink:0}
input,select,textarea,button{font-family:var(--font)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:var(--maxw);margin:0 auto;padding:0 16px}
.muted{color:var(--muted)}
.hidden{display:none!important}
/* Атрибут hidden должен побеждать любые display:flex/grid в правилах ниже */
[hidden]{display:none!important}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);
  background:var(--card);color:var(--ink);border-radius:var(--r-btn) 0 var(--r-btn) 0;padding:10px 16px;font-weight:600;cursor:pointer;font-size:15px;line-height:1}
.btn:hover{border-color:#cbd0d8}
.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.btn-primary:hover{background:var(--brand-d);border-color:var(--brand-d)}
.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn-green{background:var(--ok);border-color:var(--ok);color:#fff}
.btn-green:hover{background:#15803d;border-color:#15803d;color:#fff}
.ico-eye{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;display:block}
/* CTA «+ Подать объявление» — синяя пилюля, цвет как у обычной primary-кнопки. */
/* Размер — как у кнопки «Найти» в поиске шапки: та же высота и горизонтальные поля. */
.btn-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);
  border:2px solid var(--accent);color:var(--on-accent);border-radius:999px;
  height:40px;padding:0 26px;font-size:15px;font-weight:700;white-space:nowrap}
.btn-cta:hover{background:var(--accent-d);border-color:var(--accent-d);color:var(--on-accent)}
.btn-ghost{background:transparent;border-color:transparent}
.btn-danger{color:var(--danger);border-color:#f3c9c9;background:#fef2f2}
.btn-sm{padding:6px 12px;font-size:13px;border-radius:var(--r-btn) 0 var(--r-btn) 0}
.btn-block{display:flex;width:100%}

/* Header */
/* Только шапка: селектор с тегом, иначе цепляет .badge.top на карточках. */
header.top{background:var(--card);position:sticky;top:0;z-index:50}
.top-in{display:flex;align-items:center;gap:20px;height:74px}
header.top .container.top-in{max-width:none;padding-left:28px;padding-right:28px}
.logo{display:flex;align-items:center;gap:10px;font-size:22px;color:var(--brand);white-space:nowrap}
.logo b{color:var(--ink)}
.logo img{height:32px;width:auto;max-width:100%;display:block}
/* Поиск-пилюля: серая кнопка внутри светлого поля */
.top-search{flex:1;display:flex;align-items:center;max-width:none;background:#fbfbfb;
  border:1px solid #eef0f3;border-radius:999px;padding:0 5px 0 8px}
.top-search input{flex:1;min-width:0;border:0;background:transparent;padding:9px 12px;font-size:15px;outline:none;color:var(--ink)}
.top-search input::placeholder{color:#9aa1ab}
.top-search button{border:0;background:#939393;color:#fff;border-radius:999px;height:40px;padding:0 26px;font-size:15px;cursor:pointer;white-space:nowrap}
.top-search button:hover{background:#7d7d7d}
.top-search .ts-go{padding:0;width:44px;display:inline-flex;align-items:center;justify-content:center}
.top-search .ts-go svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:14px}
/* в шапке всё обычным начертанием (в мобильном меню кнопка остаётся жирной) */
header.top .btn-cta{font-weight:400}
.lang{display:flex;gap:8px}
.lang a{font-size:14px;color:#d3d3d3;text-transform:uppercase}
.lang a:hover{color:var(--muted)}
.lang a.on{color:var(--brand)}
.ico-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--r-btn) 0 var(--r-btn) 0;border:0;background:transparent;color:#8b929c;font-size:20px}
.ico-btn:hover{color:var(--brand)}
.ico-btn svg{width:24px;height:24px;display:block}

/* Полоса категорий — только главная, на всю ширину экрана, без скруглений */
.catband{background:linear-gradient(90deg,var(--band1),var(--band2));color:#fff}
.catband-in{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 28px;padding:34px 16px 38px;text-align:left}
.catband a{display:flex;align-items:center;gap:12px;color:#fff;font-size:16px;padding:4px 0}
.catband a:hover{opacity:.82}
.catband a svg{width:26px;height:26px;flex:0 0 auto;stroke:#fff;fill:none;stroke-width:1.7}
/* Загруженная иконка категории: 50×50, чёрный контур перекрашиваем в белый */
.catband .ci-img{width:23px;height:23px;flex:0 0 auto;object-fit:contain;filter:brightness(0) invert(1)}
@media(max-width:980px){.catband .catband-in{grid-template-columns:repeat(2,1fr);padding:22px 16px 26px}}
@media(max-width:560px){
  /* minmax(0,…) — иначе длинные названия распирают колонку за экран */
  .catband .catband-in{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;padding:30px 14px}
  .catband a{font-size:13px;gap:8px;padding:5px 0;line-height:1.25;min-width:0}
  .catband a span{min-width:0;overflow-wrap:anywhere}
  .catband .n{white-space:nowrap;overflow-wrap:normal;flex:0 0 auto}
  .catband a svg{width:20px;height:20px}
  .catband .n{font-size:12px}
}

/* Category bar (узкая полоса-чипсы внутри листингов) */
.catbar{background:var(--card);border-bottom:1px solid var(--line)}
.catbar-in{display:flex;gap:6px;overflow-x:auto;padding:8px 0}
.catbar a{padding:7px 14px;border-radius:20px;white-space:nowrap;font-weight:600;font-size:14px;color:var(--muted);border:1px solid transparent}
.catbar a:hover{background:var(--bg)}
.catbar a.on{background:var(--brand);color:var(--on-brand)}

/* Layout */
.wrap{padding:24px 0 48px}
.page-h{font-size:24px;font-weight:800;margin:0 0 16px}
/* Заголовок страницы с кнопкой «Назад» слева */
.page-top{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.page-top .page-h{margin:0}
.btn-back{flex-shrink:0}
@media(max-width:760px){.btn-back .bk-t{display:none}.btn-back{padding:8px 14px}}
.grid-2{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start}
@media(max-width:860px){.grid-2{grid-template-columns:1fr}}

/* Заголовок секции + стрелки слайдера в одну строку */
.sec-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.sec-row .page-h{margin:0}

/* Премиум-слайдер на главной: нативный скролл, автосдвиг в JS */
.prem{margin-bottom:22px}
.prem-nav{margin-left:auto;display:flex;gap:8px}
.prem-a{width:34px;height:34px;flex:none;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:50%;
  font-size:20px;line-height:1;cursor:pointer;transition:.15s}
.prem-a:hover{background:var(--bg)}
/* padding + отрицательный margin: при hover карточка приподнимается и её тень
   не должна обрезаться краем скролл-контейнера */
.prem-vp{display:flex;gap:20px;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;
  padding:8px 6px 12px;margin:-8px -6px 0;scroll-padding:0 6px;scrollbar-width:none;-ms-overflow-style:none}
.prem-vp::-webkit-scrollbar{display:none}
.prem-vp>.card{flex:0 0 calc((100% - 60px)/4);scroll-snap-align:start}
@media(max-width:1000px){.prem-vp>.card{flex-basis:calc((100% - 40px)/3)}}
@media(max-width:760px){.prem{margin-bottom:14px}.prem-vp{gap:12px}
  .prem-vp>.card{flex-basis:calc((100% - 12px)/2)}}
@media(max-width:420px){.prem-vp>.card{flex-basis:78%}}
/* Cards grid */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:20px}
.cards-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1000px){.cards-4{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.cards-4{grid-template-columns:1fr 1fr}}
/* Скругление по двум углам: верх-лево и низ-право (макет) */
.card{background:var(--card);border:0;border-radius:var(--r-card) 0 var(--r-card) 0;overflow:hidden;
  transition:.15s;position:relative;box-shadow:0 1px 3px rgba(0,0,0,.07)}
.card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.card.feat::after{content:"";position:absolute;inset:0;border:2px solid var(--brand);border-radius:inherit;pointer-events:none;z-index:5}
.card-img{aspect-ratio:1/1;background:var(--bg);overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover}
.card-b{padding:14px 16px 18px}
/* Цена и город — одной строкой, город справа */
.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.card-price{font-weight:800;font-size:21px;color:var(--brand);line-height:1.2;white-space:nowrap}
.card-city{display:inline-flex;align-items:center;gap:5px;color:var(--brand);font-size:14px;
  text-decoration:underline;min-width:0}
.card-city span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-city svg{width:14px;height:16px;flex:0 0 auto;fill:currentColor}
.card-title{font-size:16px;color:var(--ink);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em;line-height:1.3}
.card-meta{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;margin-top:8px}
.badge{position:absolute;top:8px;left:8px;background:var(--brand);color:var(--on-brand);font-size:11px;font-weight:700;padding:3px 8px;border-radius:8px 0 8px 0}
.badge.top{background:var(--accent);color:var(--on-accent)}
.badge.sold{background:var(--danger);color:#fff}

/* Filter sidebar */
.side{background:var(--card);border:1px solid var(--line);border-radius:var(--r-box) 0 var(--r-box) 0;padding:16px}
.side h3{margin:0 0 10px;font-size:15px}
.side .f-group{margin-bottom:16px}
.side label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}
.side input,.side select{width:100%;border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;padding:8px 10px;font-size:14px;background:#fff}
.side .row2{display:flex;gap:8px}
.cat-tree a{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:14px}
.cat-tree .ct-ico{width:20px;height:20px;flex:0 0 auto;object-fit:contain}
.cat-tree a.on{color:var(--brand-ink);font-weight:700}
.cat-tree .sub{padding-left:12px}
.cat-tree .sub a{font-size:13px;color:var(--muted)}

/* Single listing */
/* Три блока: галерея, боковая колонка (цена/продавец), описание.
   Десктоп — 2 колонки; мобилка — одна, порядок: галерея → цена → описание. */
.obj{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start;
  grid-template-areas:"gal side" "main side"}
.obj-gal{grid-area:gal}
.obj-side{grid-area:side}
.obj-main{grid-area:main}
/* Панель с ценой и кнопками липнет при скролле (под шапкой) */
@media(min-width:861px){.obj-side{position:sticky;top:88px}}
@media(max-width:860px){.obj{grid-template-columns:1fr;grid-template-areas:"gal" "side" "main";gap:14px}}
.gal-main{position:relative;aspect-ratio:1/1;background:var(--card);border:1px solid var(--line);border-radius:var(--r-box) 0 var(--r-box) 0;overflow:hidden}
.gal-main img{width:100%;height:100%;object-fit:contain;cursor:zoom-in}   /* фото целиком, без обрезки (в карточках каталога — обрезка) */
/* Стрелки прямо на большой картинке */
.gal-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;border-radius:50%;
  background:rgba(255,255,255,.9);color:var(--ink);font-size:26px;line-height:1;cursor:pointer;z-index:2;
  display:flex;align-items:center;justify-content:center;box-shadow:0 1px 6px rgba(0,0,0,.18)}
.gal-nav:hover{background:#fff}
.gal-prev{left:10px}
.gal-next{right:10px}
.gal-thumbs{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
/* border, а не outline — иначе рамку выделения срезает overflow контейнера */
.gal-thumbs img{width:64px;height:64px;object-fit:cover;border-radius:var(--r-btn) 0 var(--r-btn) 0;
  border:2px solid var(--line);cursor:pointer}
.gal-thumbs img.on{border-color:var(--brand)}

/* Попап просмотра картинок */
body.lb-open{overflow:hidden}
.lb{position:fixed;inset:0;z-index:200;background:rgba(10,13,18,.985);display:flex;flex-direction:column}
.lb[hidden]{display:none}
.lb-stage{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:60px 70px 12px}
.lb-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}
.lb-x{position:absolute;top:14px;right:16px;width:42px;height:42px;border:0;border-radius:50%;
  background:rgba(255,255,255,.16);color:#fff;font-size:26px;line-height:1;cursor:pointer;z-index:3}
.lb-x:hover{background:rgba(255,255,255,.3)}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border:0;border-radius:50%;
  background:rgba(255,255,255,.16);color:#fff;font-size:30px;line-height:1;cursor:pointer;z-index:3;
  display:flex;align-items:center;justify-content:center}
.lb-nav:hover{background:rgba(255,255,255,.3)}
.lb-prev{left:14px}
.lb-next{right:14px}
.lb-thumbs{flex:0 0 auto;display:flex;gap:8px;justify-content:center;overflow-x:auto;scrollbar-width:none;
  padding:10px 14px calc(14px + env(safe-area-inset-bottom,0px))}
.lb-thumbs::-webkit-scrollbar{display:none}
.lb-thumbs button{flex:0 0 auto;width:76px;height:58px;border:2px solid transparent;border-radius:6px;
  overflow:hidden;padding:0;background:none;cursor:pointer;opacity:.55;transition:.15s}
.lb-thumbs button:hover{opacity:.85}
.lb-thumbs button.on{opacity:1;border-color:#fff}
.lb-thumbs img{width:100%;height:100%;object-fit:cover}
@media(max-width:560px){
  .lb-stage{padding:56px 12px 8px}
  .lb-nav{width:38px;height:38px;font-size:24px}
  .lb-prev{left:8px}
  .lb-next{right:8px}
  .lb-thumbs{justify-content:flex-start}
  .lb-thumbs button{width:60px;height:46px}
}
.obj-box{background:var(--card);border:1px solid var(--line);border-radius:var(--r-box) 0 var(--r-box) 0;padding:18px}
.obj-price{font-size:28px;font-weight:800;margin:0 0 10px}
.obj-desc{white-space:pre-wrap;line-height:1.65}
/* Форма сообщения продавцу — всегда открыта в карточке объявления */
.msg-h{font-weight:700;margin:0 0 10px}
#msgBox .field{margin-bottom:10px}
#msgBox textarea{min-height:96px}
#msgBox textarea:disabled{background:var(--bg);color:var(--muted)}
/* Нижняя панель действий (цена + позвонить/написать) — только мобилка */
.obj-bar,.obj-bar-sp{display:none}
@media(max-width:860px){
  .obj-bar{display:flex;align-items:center;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:60;
    background:var(--card);border-top:1px solid var(--line);
    padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));
    box-shadow:0 -2px 12px rgba(0,0,0,.08)}
  .obj-bar .p{font-weight:800;font-size:19px;color:var(--brand);white-space:nowrap;margin-right:auto}
  .obj-bar .btn{padding:10px 15px;white-space:nowrap}
  .obj-bar-sp{display:block;height:64px}
  .toast{bottom:80px}
}
.seller{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.seller .av{width:48px;height:48px;border-radius:50%;background:var(--bg);object-fit:cover}

/* Forms / panel */
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-box) 0 var(--r-box) 0;padding:20px;max-width:760px}
.panel-wide{max-width:none}
/* Профиль: поля в ряд, чтобы широкая панель не пустовала */
.pf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 20px}
@media(max-width:760px){.pf-grid{grid-template-columns:1fr}}
.field{margin-bottom:16px}
.field>label{display:block;font-size:13px;font-weight:600;margin-bottom:5px}
/* Маленький селект языка у мультиязычных полей (перебивает .field select{width:100%}) */
.field .qt-pick{width:auto;margin-left:8px;border:1px solid var(--line);border-radius:6px;background:#fff;
  font-size:12px;font-weight:600;color:var(--muted);padding:1px 4px;cursor:pointer;vertical-align:middle}
.field .qt-pick:focus{outline:none;border-color:var(--brand-d);color:var(--brand-ink)}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;padding:10px 12px;font-size:15px;background:#fff;font-family:inherit}
.field textarea{min-height:120px;resize:vertical}
/* .row2 работает и вложенным блоком, и на самом .field */
.field .row2,.field.row2{display:flex;gap:12px}
.field .row2>*,.field.row2>*{flex:1;min-width:0}
/* Подача объявления: справочные поля одной строкой */
.fld-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 14px}
@media(max-width:1100px){.fld-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.fld-row{grid-template-columns:1fr}}
/* Строка «подпись + переключатель языка» над полем */
.field-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}
.field-head>label{margin-bottom:0}
.field-head .qt-pick{height:34px;padding:0 8px;font-size:14px;margin-left:0;color:var(--ink)}
/* Кнопки действий формы — по правому краю */
.form-act{display:flex;justify-content:flex-end;gap:10px}
/* Поле пароля: глазок внутри поля, кнопка генерации — справа */
.pw{display:flex;gap:8px;align-items:stretch}
.pw-in{position:relative;flex:1;min-width:0}
.pw-in input{width:100%;padding-right:42px !important}
.pw-eye{position:absolute;top:0;bottom:0;right:0;width:40px;border:0;background:none;padding:0;
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted)}
.pw-eye svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.pw-eye .sl{opacity:1}
.pw-eye.on{color:var(--brand-ink)}
.pw-eye.on .sl{opacity:0}
.pw-gen{flex:0 0 auto;white-space:nowrap}
.me-add{display:flex;justify-content:center;margin-bottom:14px}
/* «+ Новое объявление» — жёлтая, как CTA в мобильном меню */
.me-add .btn{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.me-add .btn:hover{background:var(--accent-d);border-color:var(--accent-d);color:var(--on-accent)}
/* Выпадающий список с поиском (город в форме объявления) */
.cbx{position:relative}
.cbx-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;
  border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;background:#fff;
  padding:10px 12px;font-size:15px;color:var(--ink);cursor:pointer;text-align:left;line-height:1.2}
.cbx-btn:hover{border-color:#cbd0d8}
.cbx-btn .cbx-val{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cbx-btn .cbx-val.ph{color:#9aa1ab}
.cbx-btn i{font-style:normal;color:var(--muted);font-size:12px}
.cbx-pop{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;width:auto;
  background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);
  display:flex;flex-direction:column;max-height:300px;overflow:hidden}
/* display:flex перебивает атрибут hidden — возвращаем его действие явно */
.cbx-pop[hidden]{display:none}
.cbx-search{padding:8px;border-bottom:1px solid var(--line)}
.cbx-search input{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:14px;outline:none}
.cbx-search input:focus{border-color:var(--brand)}
.cbx-list{overflow-y:auto}
.cbx-opt{padding:8px 12px;cursor:pointer;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cbx-opt:hover{background:var(--brand-soft)}
.cbx-empty{padding:10px 12px;color:var(--muted);font-size:14px}
.cbx.err .cbx-btn{border-color:var(--danger,#dc2626);background:#fff6f6}

/* Rich text редактор описания */
.rt{border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;background:#fff;overflow:hidden}
.rt-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:7px 8px;border-bottom:1px solid var(--line);background:#fbfbfb}
.rt-b{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:30px;padding:0 8px;
  border:1px solid transparent;border-radius:6px;background:none;color:var(--ink);font-size:15px;cursor:pointer;line-height:1}
.rt-b:hover{background:#eef2f6;border-color:var(--line)}
.rt-b svg{width:18px;height:18px;fill:currentColor;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.rt-b svg path{fill:none}
.rt-bar .rt-size{height:30px;width:62px;padding:0 2px 0 6px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:13px;color:var(--ink);cursor:pointer}
.rt-color{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:30px;
  border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;overflow:hidden}
.rt-color input{position:absolute;inset:0;opacity:0;width:100%;height:100%;padding:0;border:0;cursor:pointer}
.rt-color span{font-weight:800;font-size:14px;pointer-events:none;
  border-bottom:3px solid currentColor;line-height:1.1}
.rt-clear{margin-left:auto;color:var(--muted)}
.rt-area{min-height:170px;padding:12px;font-size:15px;line-height:1.55;outline:none;overflow-wrap:anywhere}
.rt-area:focus{outline:none}
.rt-area ul,.rt-area ol{margin:6px 0;padding-left:22px}
.rt-area p{margin:0 0 8px}
/* Описание на странице объявления — те же отступы для списков */
.obj-desc ul,.obj-desc ol{margin:6px 0;padding-left:22px}
.obj-desc p{margin:0 0 8px}
.uploads{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.uploads .th{position:relative;width:90px;height:90px;border-radius:var(--r-btn) 0 var(--r-btn) 0;overflow:hidden;border:1px solid var(--line)}
.uploads .th img{width:100%;height:100%;object-fit:cover}
.uploads .th .x{position:absolute;top:2px;right:2px;background:rgba(0,0,0,.6);color:#fff;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px}
.uploads .add{width:90px;height:90px;border:2px dashed var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);font-size:28px}
/* Загруженное фото ещё летит на сервер — гасим и крутим спиннер */
.uploads .th.busy img{opacity:.45}
.uploads .th .sp{position:absolute;top:50%;left:50%;width:22px;height:22px;margin:-11px 0 0 -11px;
  border:2px solid rgba(0,0,0,.15);border-top-color:var(--brand);border-radius:50%;animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
/* Зона drag&drop для фотографий */
.dz{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  min-height:150px;padding:20px;text-align:center;cursor:pointer;color:var(--muted);
  border:2px dashed var(--line);border-radius:var(--r-box) 0 var(--r-box) 0;background:#fbfbfb;
  transition:border-color .15s,background .15s}
.dz:hover,.dz:focus-visible{border-color:var(--brand);background:#f6fafd;outline:none}
.dz.on{border-color:var(--brand);background:#eef6fc;color:var(--brand-ink)}
.dz svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.75}
.dz-t{font-weight:700;color:var(--ink);margin-top:6px}
.dz-s{font-size:13px}
.dz.on *{pointer-events:none}

/* Auth */
.auth{max-width:400px;margin:40px auto}
.auth .panel h1{margin:0 0 18px;font-size:22px;text-align:center}

/* Tables (profile/admin) */
.tbl{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--r-box) 0 var(--r-box) 0;overflow:hidden}
.tbl th,.tbl td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}
.tbl th{background:var(--bg);font-size:12px;text-transform:uppercase;color:var(--muted);letter-spacing:.03em}
.tbl tr:last-child td{border-bottom:0}

/* Tabs */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;flex-wrap:wrap}
.tabs a{padding:10px 16px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a.on{color:var(--brand-ink);border-bottom-color:var(--brand)}
.tabs-m{display:none;margin-bottom:20px}
.tabs-m select{width:100%;height:54px;padding:0 14px;font-size:16px;font-weight:600;background:#fff;
  border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;color:var(--ink)}
.tabs-m select option{font-size:16px;padding:14px 12px;line-height:2}

/* ===== Сообщения кабинета: почтовый вид ===== */
.mbox-tabs{display:flex;gap:6px;margin-bottom:14px}
.mbox-tabs button{border:1px solid var(--line);background:var(--card);border-radius:var(--r-btn) 0 var(--r-btn) 0;
  padding:9px 18px;font-weight:600;font-size:15px;cursor:pointer;color:var(--muted)}
.mbox-tabs button.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.mbox-tabs .mb-n:not(:empty){display:inline-block;margin-left:6px;min-width:20px;padding:1px 6px;border-radius:999px;
  background:var(--danger);color:#fff;font-size:12px;font-weight:700;text-align:center}
.mbox-tabs button.on .mb-n:not(:empty){background:#fff;color:var(--brand)}
.mbox{display:grid;grid-template-columns:30% 1fr;gap:16px;align-items:start}
.mbox-list,.mbox-view{background:var(--card);border:1px solid var(--line);border-radius:var(--r-box) 0 var(--r-box) 0}
.mbox-list{max-height:70vh;overflow-y:auto}
.mbox-view{padding:20px;min-height:320px}
.mb-item{display:flex;align-items:flex-start;gap:8px;padding:11px 12px;border-bottom:1px solid var(--line);cursor:pointer}
.mb-item:last-child{border-bottom:0}
.mb-item:hover{background:var(--bg)}
.mb-item.on{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}
.mb-item.unread .mb-who{font-weight:800}
.mb-item.unread .mb-who:after{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--brand);margin-left:6px;vertical-align:middle}
.mb-i-b{min-width:0;flex:1}
.mb-who{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mb-prev{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mb-date{color:var(--muted);font-size:12px;margin-top:2px}
.mb-del{flex:0 0 auto;border:0;background:none;color:#c3cad4;font-size:14px;cursor:pointer;padding:2px 4px;border-radius:6px}
.mb-del:hover{background:#fdeef1;color:var(--danger)}
.mb-empty{color:var(--muted);text-align:center;padding:50px 20px}
.mb-head{display:flex;align-items:center;gap:10px;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--line)}
.mb-head .mb-date{margin-top:0}
.mb-acts{display:flex;gap:8px;margin-left:auto}
/* Имя и объявление — под строкой действий */
.mb-sub{padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--line)}
.mb-sub .mb-who{font-size:16px;white-space:normal}
.mb-obj{display:block;margin:3px 0 1px;color:var(--brand-ink);font-size:14px;font-weight:600}
.mb-body{font-size:15px;line-height:1.6;overflow-wrap:anywhere;background:var(--bg);
  border:1px solid var(--line);border-radius:var(--r-box) 0 var(--r-box) 0;padding:14px 16px}
.mb-reply{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.mb-reply textarea{width:100%;border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;
  padding:10px 12px;font-size:15px;min-height:96px;font-family:inherit;margin-bottom:10px}
.mb-reply-act{display:flex;justify-content:flex-end}
.mb-back{display:none}
.mb-del-x{display:none}
@media(max-width:760px){
  /* Телефон: либо список, либо письмо на весь экран — стрелка возвращает назад */
  .mbox{grid-template-columns:1fr}
  .mbox-list{max-height:none}
  .mbox.viewing .mbox-list{display:none}
  .mbox:not(.viewing) .mbox-view{display:none}
  .mb-back{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;font-size:16px;line-height:1}
  .mb-del-t{display:none}
  .mb-del-x{display:inline;font-size:16px;line-height:1}
  #mb-del{padding:6px 12px}
}

/* Свои диалоги вместо браузерных alert/confirm */
.akd-back{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;
  background:rgba(15,20,28,.45);padding:20px;opacity:0;transition:opacity .18s}
.akd-back.on{opacity:1}
.akd{background:var(--card);border-radius:var(--r-box) 0 var(--r-box) 0;box-shadow:0 20px 60px rgba(0,0,0,.25);
  width:100%;max-width:420px;padding:22px 22px 18px;transform:translateY(8px);transition:transform .18s}
.akd-back.on .akd{transform:none}
.akd-h{font-size:18px;font-weight:800;margin-bottom:8px}
.akd-b{font-size:15px;line-height:1.5;color:var(--ink);white-space:pre-line}
.akd-f{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.akd-f .btn{min-width:104px}

/* Toast */
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 20px;border-radius:10px;z-index:200;opacity:0;transition:.25s;pointer-events:none}
.toast.show{opacity:1}
.toast.err{background:var(--danger)}

/* Pager */
.pager{display:flex;gap:6px;justify-content:center;margin-top:28px;flex-wrap:wrap}
.pager a,.pager span{padding:8px 13px;border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;background:var(--card);font-weight:600}
.pager .on{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}

/* Footer */
.foot{background:var(--card);padding:34px 0 16px;margin-top:44px;color:var(--ink);font-size:14px}
.foot-in{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px}
.foot-cols{display:grid;grid-template-columns:1.6fr 2fr 1.1fr;gap:22px 30px}
.foot-logo{font-weight:800;font-size:22px;color:var(--brand);display:inline-flex;align-items:center;gap:8px}
.foot-logo img{height:32px;width:auto}
.foot-addr{color:var(--muted);line-height:1.6;margin-top:12px;white-space:pre-line;font-size:14px}
.foot-h{color:var(--muted);font-weight:400;font-size:14px;margin:0 0 12px}
.foot-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
/* Категории — в две колонки */
.foot-list-2{grid-template-columns:1fr 1fr;column-gap:26px}
.foot-list a{display:inline-flex;align-items:flex-start;gap:8px;color:var(--ink);line-height:1.3}
.foot-list a:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent);flex:0 0 auto;margin-top:.45em}
.foot-list a:hover{color:var(--brand)}
.foot-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  border-top:1px solid var(--line);margin-top:26px;padding-top:16px;color:var(--muted);font-size:13px}
.foot-bot a{color:var(--brand);text-decoration:underline}
@media(max-width:900px){.foot-cols{grid-template-columns:1fr 1.4fr}}
/* Мобилка: в футере только Terms / Privacy / About одной строкой */
@media(max-width:760px){
  .foot{padding:22px 0 18px;margin-top:32px}
  .foot-cols{grid-template-columns:1fr;gap:0}
  .foot-c-brand,.foot-c-cats,.foot-c-info .foot-h,.foot-desk{display:none}
  .foot-c-info .foot-list{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px}
  .foot-c-info .foot-list a{font-size:14px}
  .foot-bot{margin-top:18px;padding-top:16px;justify-content:center;text-align:center;font-size:13px}
  .foot-bot>div:empty{display:none}
}

/* Инфо-страницы (/p/<code>) */
.info-body{line-height:1.7}
.info-body h2{font-size:22px;margin:0 0 12px}
.info-body h3{font-size:17px;margin:26px 0 8px}
.info-body p{margin:0 0 12px}
.info-body ul,.info-body ol{margin:0 0 14px;padding-left:22px}
.info-body li{margin-bottom:6px}
.info-body li::marker{color:var(--brand)}
.info-body a{color:var(--brand-ink);text-decoration:underline}
@media(max-width:760px){
  .info-body h2{font-size:20px}
  .info-body h3{font-size:16px;margin-top:22px}
}

/* Pill / chips */
.pill{display:inline-block;background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:3px 10px;font-size:12px;color:var(--muted)}
.empty{text-align:center;padding:60px 20px;color:var(--muted)}

/* ===== Admin ===== */
.adm-top{background:#fff;color:var(--ink);position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line)}
.adm-top-in{display:flex;align-items:center;gap:6px;height:56px;max-width:100%;padding:0 18px;overflow-x:auto}
/* Логотип фронта — прозрачный SVG, плашка не нужна */
.adm-brand{display:flex;align-items:center;margin-right:14px;flex:0 0 auto}
.adm-brand img{height:20px;width:auto;display:block}
.adm-nav{display:flex;gap:2px;flex:1}
.adm-nav a{padding:8px 13px;border-radius:8px;color:var(--muted);font-weight:600;font-size:14px;white-space:nowrap}
.adm-nav a:hover{background:var(--bg);color:var(--ink)}
.adm-nav a.on{background:var(--brand);color:var(--on-brand)}
.adm-nav .sp{margin-left:auto}
.adm-main{max-width:none;margin:0;padding:24px 18px 60px}
/* Админка: страница белая, панели — светло-серые */
body.adm{background:#fff}
body.adm .mgr-pane,body.adm .panel,body.adm .stat{background:var(--bg)}
body.adm .mgr-panel .mp-img{background:#e6e9ee}
.adm-h{font-size:22px;font-weight:800;margin:0 0 18px;display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-bottom:24px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r-box) 0 var(--r-box) 0;padding:16px}
.stat .n{font-size:26px;font-weight:800}
.stat .l{color:var(--muted);font-size:13px;margin-top:2px}
.adm-login{max-width:360px;margin:80px auto}

/* Favorites heart */
.oc-fav{position:absolute;top:8px;right:8px;width:34px;height:34px;border-radius:50%;border:0;
  background:rgba(255,255,255,.9);color:#c3c8d0;font-size:18px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.12);transition:.15s;z-index:2}
.oc-fav:hover{background:#fff;color:var(--danger)}
.oc-fav.on{color:var(--danger)}
.fav-btn{display:inline-flex;align-items:center;gap:8px}
.fav-btn.on{color:var(--danger);border-color:#f3c9c9}

/* Typeahead */
.ta-sug{position:absolute;left:0;right:0;top:100%;background:#fff;border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;box-shadow:var(--shadow);z-index:20;max-height:260px;overflow-y:auto;margin-top:2px}
.ta-opt{padding:8px 12px;cursor:pointer;font-size:14px}
.ta-opt:hover{background:var(--bg)}
/* Подсказки в фильтрах админки — шире поля и без прокрутки */
.mgr-filter .ta-sug{right:auto;min-width:360px;width:max-content;max-width:520px;max-height:none;overflow:visible}
.mgr-filter .ta-opt{white-space:nowrap}

/* ===== Mobile ===== */
/* Шапка результатов: заголовок + сортировка */
.res-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}
@media(max-width:860px){
  .res-head{justify-content:flex-start}
  .res-head .page-h{flex:1 0 100%}
  .res-head form{flex:1}
  .res-head .fsel{width:100%}
  body.no-scroll{overflow:hidden}
}

/* --- Мобильные кнопки шапки: ☰ / ↑ / 🔍 (на десктопе скрыты) --- */
.m-btn{display:none;align-items:center;justify-content:center;width:40px;height:40px;
  border:0;background:none;color:var(--ink);cursor:pointer;padding:0;flex:0 0 auto}
.m-btn svg{width:24px;height:24px;display:block;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}
.m-btn:active{color:var(--brand)}

/* --- Кнопка «наверх»: кружок снизу справа (только мобилка) --- */
.up-fab{display:none;position:fixed;right:14px;bottom:calc(16px + env(safe-area-inset-bottom,0px));
  z-index:70;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);padding:0;
  background:var(--card);color:var(--brand);box-shadow:0 3px 12px rgba(0,0,0,.18);cursor:pointer;
  align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(10px);transition:.2s}
.up-fab svg{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round}
.up-fab.on{opacity:1;visibility:visible;transform:none}
.up-fab.hi{bottom:calc(74px + env(safe-area-inset-bottom,0px))}
@media(max-width:760px){.up-fab{display:flex}}

/* --- Шторки: меню слева, фильтр справа --- */
.mnav-mask{position:fixed;inset:0;background:rgba(10,20,30,.45);z-index:90;opacity:0;visibility:hidden;transition:.2s}
.mnav-mask.on{opacity:1;visibility:visible}
.mnav,.mflt{position:fixed;top:0;bottom:0;z-index:95;background:var(--card);overflow-y:auto;
  width:86%;max-width:340px;transition:transform .25s ease;
  padding:12px 16px calc(24px + env(safe-area-inset-bottom,0px));box-shadow:0 0 30px rgba(0,0,0,.18)}
.mnav{left:0;transform:translateX(-101%)}
.mflt{right:0;width:92%;max-width:400px;transform:translateX(101%)}
.mnav.on,.mflt.on{transform:none}
.mnav-top{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line);min-height:44px}
.mnav-h{font-weight:800;font-size:18px}
.mnav-x{border:0;background:none;font-size:32px;line-height:1;color:var(--muted);cursor:pointer;padding:0 4px}
.mnav-langs{display:flex;gap:10px}
.mnav-langs a{display:block;width:30px;height:20px;border:1px solid var(--line);border-radius:3px;
  overflow:hidden;opacity:.45;transition:.15s}
.mnav-langs a.on{opacity:1;border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.mnav-langs svg{width:100%;height:100%;display:block}
.mnav-cta{display:flex;align-items:center;justify-content:center;background:var(--accent);
  color:var(--on-accent);font-weight:700;border-radius:var(--r-btn) 0 var(--r-btn) 0;
  padding:12px 16px;margin-bottom:16px}
.mnav-list{display:flex;flex-direction:column}
.mnav-list a{padding:13px 2px;border-bottom:1px solid var(--line);font-weight:600;font-size:16px}
.mnav-list a:last-child{border-bottom:0;color:var(--muted)}
.mnav-login{margin-top:4px}
/* Строка поиска в шторке фильтра: пилюля + серая круглая кнопка-лупа (как «Найти» на десктопе) */
.mflt-search{display:flex;align-items:center;background:#fbfbfb;border:1px solid #eef0f3;
  border-radius:999px;padding:4px 4px 4px 14px}
.mflt-search input{flex:1;min-width:0;border:0;background:transparent;padding:9px 0;font-size:16px;
  outline:none;color:var(--ink)}
.mflt-search button{flex:0 0 auto;border:0;background:#939393;color:#fff;border-radius:999px;
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.mflt-search button:hover{background:#7d7d7d}
.mflt-search button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round}

.mnav-reg{margin-top:10px;font-weight:700}
.mnav-alt{margin-top:14px;font-size:14px;text-align:center}
.mnav-alt a{color:var(--brand-ink)}
@media(min-width:761px){.mnav,.mflt,.mnav-mask{display:none}}

@media(max-width:760px){
  /* --- Шапка: [☰] лого … [↑] [🔍]. Поиск и действия — в шторках. --- */
  .top-in{flex-wrap:nowrap;height:56px;padding:0;gap:2px}
  .logo{flex:1;min-width:0;justify-content:center}   /* лого по центру между ☰ и 🔍 */
  .logo img{height:30px}
  .top-search,.top-actions{display:none}
  .m-btn{display:inline-flex}
  /* Сайдбар-фильтр и сортировка не нужны — всё живёт в шторке 🔍 */
  .side,.sort-form{display:none}

  .wrap{padding:16px 0 32px}
  .container{padding:0 14px}
  .page-h{font-size:20px}

  /* Вкладки кабинета — выпадающим списком */
  .tabs{display:none}
  .tabs-m{display:block}

  /* --- Карточки: 2 в ряд --- */
  .cards,.cards-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .card-b{padding:11px 12px 14px}
  .card-head{flex-wrap:wrap;gap:2px 8px;margin-bottom:6px}
  .card-price{font-size:18px}
  .card-city{font-size:13px}
  .card-title{font-size:14px;-webkit-line-clamp:2}
  .oc-fav{width:30px;height:30px;font-size:16px;top:6px;right:6px}
  .badge{font-size:10px;padding:2px 6px}

  /* --- Формы: 16px, чтобы iOS не зумил при фокусе --- */
  .field input,.field select,.field textarea,.side input,.side select,.fsel,.qt-input{font-size:16px}
  .field{margin-bottom:13px}
  .field .row2{gap:8px}
  .panel{padding:16px}
  .auth{margin:20px auto}

  /* --- Табы кабинета: горизонтальный скролл вместо переноса --- */
  .tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tabs a{white-space:nowrap;padding:10px 13px;font-size:14px}

  /* --- Объявление --- */
  .gal-thumbs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}
  .gal-thumbs::-webkit-scrollbar{display:none}
  .gal-thumbs img{flex:0 0 auto;width:58px;height:58px}
  .obj-box{padding:14px}
  .obj-price{font-size:24px}
  .tbl{display:block;overflow-x:auto}

  /* Таблицы кабинета → карточки (строка = блок) */
  .tbl-cards{display:block;border:0;background:none;overflow:visible}
  .tbl-cards thead{display:none}
  .tbl-cards tbody{display:block}
  .tbl-cards tr{display:block;background:var(--card);border:1px solid var(--line);
    border-radius:var(--r-box) 0 var(--r-box) 0;padding:12px;margin-bottom:12px}
  .tbl-cards td{display:block;border:0;padding:2px 0;font-size:14px;white-space:normal}
  .tbl-cards td:empty{display:none}
  .tbl-cards td[data-l]:before{content:attr(data-l) ': ';color:var(--muted);font-size:12px}
  .tbl-cards .acts{padding-top:8px}
  .tbl-cards .acts .btn-sm{margin:0 6px 6px 0}
}
.acts{white-space:nowrap}

/* Мои объявления: на мобильном — карточки как в каталоге, на десктопе скрыты */
.ml-cards{display:none}
@media(max-width:760px){
  .me-list-tbl{display:none}
  .ml-cards{display:grid;grid-template-columns:1fr;gap:14px}
  .ml-card{background:var(--card);border-radius:var(--r-card) 0 var(--r-card) 0;overflow:hidden;
    box-shadow:0 1px 3px rgba(0,0,0,.07)}
  .ml-img{display:block;aspect-ratio:1/1;background:var(--bg)}
  .ml-img img{width:100%;height:100%;object-fit:cover;display:block}
  .ml-b{padding:12px 14px 14px}
  .ml-title{display:block;font-size:16px;line-height:1.3;color:var(--ink);text-decoration:none}
  .ml-price{font-weight:800;font-size:21px;color:var(--brand);line-height:1.2;margin-top:6px}
  .ml-meta{display:flex;align-items:center;gap:10px;margin-top:10px}
  .ml-views{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:13px}
  .ml-views svg{width:16px;height:16px;fill:currentColor}
  .ml-acts{display:flex;align-items:center;gap:6px;margin-left:auto}
  .ml-b-ic{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
    border:1px solid var(--line);border-radius:10px 0 10px 0;background:#fff;color:var(--ink);cursor:pointer;padding:0}
  .ml-b-ic svg{width:18px;height:18px;fill:currentColor}
  .ml-b-ic.danger{color:var(--danger);border-color:#f3c9c9;background:#fef2f2}
}

/* Телефон — объявления в одну колонку */
@media(max-width:560px){
  .cards,.cards-4{grid-template-columns:1fr;gap:14px}
  .card-b{padding:14px 16px 16px}
  .card-head{flex-wrap:nowrap;gap:10px;margin-bottom:8px}
  .card-price{font-size:21px}
  .card-city{font-size:14px}
  .card-title{font-size:16px;min-height:0}
  .oc-fav{width:34px;height:34px;font-size:18px;top:8px;right:8px}
}

@media(max-width:420px){
  .logo img{height:28px}
}

/* ===== Slider captcha ===== */
.cap-slider{position:relative;height:44px;border:1px solid var(--line);border-radius:10px;background:var(--bg);overflow:hidden;user-select:none;margin:4px 0 12px}
.cap-fill{position:absolute;left:0;top:0;bottom:0;width:44px;background:rgba(0,106,167,.12)}
.cap-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--muted);pointer-events:none;padding:0 52px;text-align:center;line-height:1.25}
.cap-handle{position:absolute;left:0;top:0;bottom:0;width:44px;background:var(--brand);color:var(--on-brand);display:flex;align-items:center;justify-content:center;font-size:20px;cursor:grab;border-radius:9px;touch-action:none}
.cap-handle:active{cursor:grabbing}
.cap-slider.done{border-color:var(--ok)}
.cap-slider.done .cap-fill{background:rgba(22,163,74,.15)}
.cap-slider.done .cap-text{color:var(--ok);font-weight:600}
.cap-slider.done .cap-handle{background:var(--ok)}

/* Standalone select (sort etc.) — как в фильтре */
.fsel{border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;padding:8px 12px;font-size:14px;background:#fff;color:var(--ink);cursor:pointer;font-weight:600}
.fsel:focus{outline:none;border-color:var(--brand-d)}

/* ===== Admin manager (25/75) ===== */
.adm-two{display:grid;grid-template-columns:28% 1fr;gap:16px;align-items:start}
@media(max-width:900px){.adm-two{grid-template-columns:1fr}}
/* Фильтр — одной строкой: поля сжимаются, а не переносятся */
.mgr-filter{display:flex;flex-wrap:nowrap;gap:6px;margin-bottom:14px;align-items:stretch;
  background:var(--brand-soft);border:1px solid #d6e8f5;border-radius:var(--r-box) 0 var(--r-box) 0;padding:10px 12px}
.mgr-filter>span{display:flex;flex:0 1 130px;min-width:0}
.mgr-filter>span>input{width:100%}
.mgr-filter input,.mgr-filter select{min-width:0}
.mgr-filter select{flex:0 1 130px}
.mgr-filter .flt-num{flex:0 1 92px;width:auto}
@media(max-width:1100px){.mgr-filter{flex-wrap:wrap}.mgr-filter>span,.mgr-filter select{flex:0 1 auto}}
.mgr-filter input,.mgr-filter select{border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;padding:8px 10px;font-size:14px;background:#fff}
.mgr-filter input[type=search]{flex:1;min-width:140px}
.mgr-filter .flt-num{width:110px}
/* Иконки-кнопки фильтра — той же высоты, что и поля */
.flt-ico{display:inline-flex;align-items:center;justify-content:center;width:38px;align-self:stretch;flex:0 0 auto;
  border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;background:#fff;color:var(--muted);cursor:pointer;padding:0}
.flt-ico:hover{border-color:var(--brand);color:var(--brand)}
.flt-ico svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#mgr-search{background:var(--brand);border-color:var(--brand);color:#fff}
#mgr-search:hover{background:var(--brand-d);border-color:var(--brand-d);color:#fff}
.mgr-pane{background:var(--card);border:1px solid var(--line);border-radius:var(--r-box) 0 var(--r-box) 0;overflow:hidden}
.mgr-listbar{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line);font-size:13px;flex-wrap:wrap}
.mgr-count{font-weight:700;margin-right:auto}
.mgr-pgbtn,.bulk-toggle-btn,.mgr-addbtn{border:1px solid var(--line);background:#fff;border-radius:7px;padding:4px 9px;cursor:pointer;font-size:13px;font-weight:600}
.bulk-toggle-btn.on{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.mgr-addbtn{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.mgr-pgsel{border:1px solid var(--line);border-radius:7px;padding:4px;font-size:13px}
.mgr-pager{display:flex;align-items:center;gap:4px}
/* Строка мультивыбора: слева all/удалить, по центру счётчик, справа «выбрать страницу» */
.mgr-bulkbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;
  padding:7px 10px;border-bottom:1px solid var(--line);background:#f6f8fa}
.mgr-bulkbar .bb-l{display:flex;gap:6px;align-items:center}
.mgr-bulkbar .bb-r{display:flex;justify-content:flex-end}
.mgr-selbadge{min-width:38px;text-align:center;padding:4px 12px;border-radius:8px;
  background:var(--brand-soft);color:var(--brand-ink);font-weight:700;font-size:14px}
.mgr-cbbtn{width:22px;height:22px;border:2px solid #c3cad4;border-radius:5px;background:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;flex:0 0 auto}
.mgr-cbbtn:hover{border-color:var(--brand)}
.mgr-cbbtn.on{background:var(--brand);border-color:var(--brand)}
.mgr-cbbtn.on:after{content:'';width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-2px}
/* Мультивыбор: галочка слева от пункта списка */
.mgr-cb{flex:0 0 auto;width:18px;height:18px;border:2px solid #c3cad4;border-radius:5px;background:#fff;
  display:flex;align-items:center;justify-content:center}
.mgr-cb.on{background:var(--brand);border-color:var(--brand)}
.mgr-cb.on:after{content:'';width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-2px}
/* Локации: строка-ссылка и подсветка выбранной */
.loc-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 6px;border-radius:6px}
.loc-row.on,.tbl tr.on{background:var(--brand-soft)}
.loc-row a,.tbl td a{color:var(--brand-ink);font-weight:600}
/* Список тянется по высоте экрана: панель — колонка, прокручивается только список */
.adm-two>.mgr-pane:first-child{display:flex;flex-direction:column;
  height:calc(100vh - 172px);min-height:340px;position:sticky;top:70px}
.mgr-list{flex:1;min-height:0;max-height:none;overflow-y:auto}
.mgr-panel{display:flex;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;margin:5px;
  background:#fff;cursor:pointer;position:relative;align-items:center}
.mgr-panel:hover{filter:brightness(.97)}
/* Цвет панели по статусу объявления: активно / отключено / на модерации */
/* Точка статуса слева от имени (списки без картинок) */
.st-dot{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--muted)}
.mgr-panel.st-1 .st-dot{background:var(--ok)}
.mgr-panel.st-2 .st-dot{background:var(--danger)}
.mgr-panel.st-0 .st-dot{background:var(--accent-d)}
.mgr-panel.st-1{background:#eef9f0;border-color:#d6ecdb}
.mgr-panel.st-2{background:#fdeef1;border-color:#f3d3da}
.mgr-panel.st-0{background:#fff8e1;border-color:#f0e3b8}
.mgr-panel.active{background:var(--brand-soft);border-color:#bcd8ea;box-shadow:inset 3px 0 0 var(--brand)}
.mgr-panel.sel{background:#fff8e0;border-color:#efdca8}
.mgr-panel .mp-img{width:46px;height:46px;border-radius:var(--r-btn) 0 var(--r-btn) 0;object-fit:cover;background:var(--bg);flex:0 0 auto}
.mgr-panel .mp-b{min-width:0;flex:1}
.mgr-panel .mp-t{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mgr-panel .mp-s{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mark-chip{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:5px;color:#fff;font-size:11px;font-weight:700;padding:0 4px}
.mp-badge{font-size:10px;font-weight:700;padding:1px 5px;border-radius:5px;background:var(--bg);color:var(--muted)}
.mgr-editor{padding:18px;min-height:300px}
.mgr-editor .ed-empty{color:var(--muted);text-align:center;padding:60px 20px}

/* qt field */
.qt-field{position:relative;margin-bottom:4px}
.qt-bar{position:absolute;right:0;top:-2px;transform:translateY(-100%);z-index:2}
/* .field select задаёт padding:10px — перебиваем более точным селектором */
.qt-bar .qt-lang{padding:5px 6px;font-size:12px;width:auto;height:auto}
.qt-input{width:100%;border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;padding:9px 11px;font-size:15px;font-family:inherit;background:#fff}
textarea.qt-input{min-height:110px;resize:vertical}

/* mark picker */
.mark-row{display:flex;gap:4px;flex-wrap:wrap}
.mark-sw{width:26px;height:26px;border-radius:6px;border:2px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff}
.mark-sw.on{border-color:var(--ink)}
.mark-sw.zero{background:#e5e7eb;color:var(--muted)}

/* settings tabs */
.stabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;flex-wrap:wrap}
.stabs button{padding:10px 16px;font-weight:600;color:var(--muted);border:0;background:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;font-size:14px}
.stabs button.on{color:var(--brand-ink);border-bottom-color:var(--brand)}
.stab{display:none}
.stab.on{display:block}
.lang-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.lang-row .lr-code{font-weight:700;width:44px}

.adm-site-ico{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--bg);border:1px solid var(--line);color:var(--muted);font-size:16px;margin-right:10px;flex:0 0 auto;text-decoration:none}
.adm-site-ico:hover{background:var(--brand);color:#fff}

/* Vertical settings tabs */
.stabs-wrap{display:grid;grid-template-columns:200px 1fr;gap:22px;align-items:start}
.stabs-wrap .stabs{flex-direction:column;border-bottom:0;border-right:1px solid var(--line);margin:0;gap:2px;grid-column:1;grid-row:1}
.stabs-wrap .stabs button{text-align:left;border-bottom:0;border-right:2px solid transparent;margin:0;border-radius:8px 0 0 8px}
.stabs-wrap .stabs button.on{border-bottom-color:transparent;border-right-color:var(--brand);background:var(--bg)}
.stabs-wrap .stab{grid-column:2;grid-row:1;min-width:0}
@media(max-width:720px){
  .stabs-wrap{grid-template-columns:1fr}
  .stabs-wrap .stabs{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line)}
  .stabs-wrap .stabs button{border-radius:8px 8px 0 0}
  .stabs-wrap .stab{grid-column:1}
}

/* Object editor: head + tabs + 4-col grid */
.obj-ed-head{display:flex;align-items:center;gap:12px;padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.obj-ed-head .mark-row{margin:0}
.obj-ed-actions{display:flex;gap:8px;margin-left:auto;align-items:center}
.ed-new,.ed-rnd{font-weight:800;min-width:34px}
.ed-new{color:var(--brand);border-color:#bcd8ea}
.ed-rnd{color:var(--muted)}
.ed-owner{font-size:14px}
.ed-owner a{color:var(--brand);font-weight:600;text-decoration:underline}
.adm-tabs2{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap}
.adm-tabs2 button{padding:8px 16px;font-weight:600;color:var(--muted);border:0;background:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;font-size:14px}
.adm-tabs2 button.on{color:var(--brand-ink);border-bottom-color:var(--brand)}
.etab{display:none}
.etab.on{display:block}
.ed4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 14px;margin-bottom:14px}
/* Пять справочных полей объявления — одной строкой */
.ed5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1100px){.ed4{grid-template-columns:repeat(2,1fr)}.ed5{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ed4 .field{margin:0;min-width:0}
.ed4 .field>label{font-size:12px}
.ed-checks{display:flex;gap:20px;flex-wrap:wrap;margin:4px 0 14px}
.ed-checks label{font-weight:400}
.pkg-flags{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.pkg-flag{border:1px solid var(--line);border-radius:8px;padding:10px 14px;font-size:13px}
/* Фотографии в админке: большая зона на всю ширину, миниатюры лежат на ней */
.dzone{position:relative;border:2px dashed var(--line);border-radius:var(--r-box) 0 var(--r-box) 0;
  background:#fbfbfb;padding:16px;min-height:230px;cursor:pointer;transition:border-color .15s,background .15s}
.dzone:hover,.dzone.on{border-color:var(--brand);background:#f4fafd}
.dzone .uploads{margin:0}
.dzone .th{width:110px;height:110px}
.dz-hint{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  color:var(--muted);text-align:center;min-height:190px}
.dz-hint svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.7}
.dz-hint b{color:var(--ink);margin-top:6px}
.dz-hint span{font-size:13px}
.dzone.has .dz-hint{min-height:0;margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
.dzone.has .dz-hint svg{display:none}
.dzone.has .dz-hint b{font-weight:600;font-size:13px;color:var(--muted);margin:0}

/* Категории: список слева (дерево), иконка в панели */
.cat-panel .cat-ico{width:34px;height:34px;flex:0 0 auto;object-fit:contain;border-radius:6px;background:var(--bg)}
.cat-panel .cat-ico-ph{border:1px dashed var(--line);background:transparent}
.cat-panel.sub{margin-left:26px}
.cat-panel.off{opacity:.55}
.ed-title{font-weight:700;font-size:15px;color:var(--muted)}
/* Дропзона иконки — компактная, одна картинка */
.ico-dz{min-height:0;padding:12px;display:flex;align-items:center;gap:14px}
.ico-dz .dz-hint{min-height:0;align-items:flex-start;text-align:left;border:0;margin:0;padding:0}
.ico-dz .dz-hint svg{width:26px;height:26px;display:none}
.ico-dz .dz-hint b{margin:0;font-size:13px}
.ico-prev{position:relative;flex:0 0 auto}
.ico-dz.has .ico-prev{width:64px;height:64px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.ico-prev img{width:100%;height:100%;object-fit:contain;display:block}
.ico-prev .x{position:absolute;top:-8px;right:-8px;width:20px;height:20px;border-radius:50%;
  background:rgba(0,0,0,.6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;cursor:pointer}
/* Продвижение: каждый вариант — отдельной строкой */
.pkg-rows{display:block}
.pkg-rows .pkg-flag{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.pkg-rows .pf-n{font-weight:600;flex:1}
.pkg-rows .pf-d{color:var(--muted)}
/* Панель массового редактирования */
.bulk-head{display:flex;align-items:center;gap:10px;font-size:16px;
  padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.pkg-flag.on{border-color:var(--ok);background:rgba(22,163,74,.08)}

/* Rich text editor (templates) */
.qt-rte-tb{display:flex;gap:2px;flex-wrap:wrap;border:1px solid var(--line);border-bottom:0;border-radius:8px 8px 0 0;padding:4px;background:var(--bg)}
.qt-rte-tb button{border:1px solid transparent;background:#fff;border-radius:5px;padding:3px 9px;cursor:pointer;font-size:13px;min-width:30px}
.qt-rte-tb button:hover{border-color:var(--line)}
.qt-rte{border:1px solid var(--line);border-radius:0 0 8px 8px;padding:10px 12px;min-height:170px;max-height:420px;overflow-y:auto;background:#fff;font-size:15px;line-height:1.55}
.slug-row{display:flex;align-items:center;gap:6px}
.slug-row input{flex:1;min-width:0}
.qt-rte-tb{align-items:center}
.qt-rte-tb select{width:auto;flex:0 0 auto;height:26px;border:1px solid var(--line);border-radius:5px;
  background:#fff;font-size:12px;padding:0 2px;cursor:pointer;min-width:52px}
.qt-rte-tb .rte-html{margin-left:auto;font-family:monospace}
.qt-rte-tb .rte-html.on{background:var(--brand);border-color:var(--brand);color:#fff}
/* HTML-вид: тот же блок, только исходник */
.qt-html{display:block;width:100%;border:1px solid var(--line);border-radius:0 0 8px 8px;padding:10px 12px;
  min-height:220px;max-height:420px;background:#fff;font:13px/1.5 ui-monospace,Menlo,Consolas,monospace;resize:vertical}
.qt-rte:focus{outline:none;border-color:var(--brand-d)}
.qt-rte h2{font-size:20px;margin:.4em 0}
.tpl-sc{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.tpl-sc .lbl{font-size:12px;color:var(--muted);align-self:center}
.tpl-sc button{border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:3px 9px;font-size:12px;cursor:pointer;font-family:monospace}
.tpl-sc button:hover{border-color:var(--brand-d);color:var(--brand-ink)}

/* ===== Правки заказчика, сентябрь 2026 ===== */
/* Поиск в шапке: выбор категории слева внутри пилюли */
.ts-cat{flex:0 1 auto;max-width:150px;min-width:0;border:0;border-right:1px solid var(--line);border-radius:0;
  background:transparent;color:var(--ink);font-size:14px;padding:8px 4px 8px 8px;outline:none;cursor:pointer;text-overflow:ellipsis}
@media(max-width:1300px){.ts-cat{max-width:125px}}
/* Узкий планшет: категории есть в боковой колонке и в шторке фильтра — селект убираем */
@media(max-width:900px){.ts-cat{display:none}}
/* Поиск ужимается первым; логотип на широком экране не сжимаем */
header.top .top-search{min-width:0}
@media(min-width:1200px){header.top .logo{flex-shrink:0}}
.btn-cta .cta-t{margin-left:.3em}
/* Планшет: «Подать объявление» — круглая «+», чтобы поиску хватило места */
@media(max-width:1024px){
  header.top .btn-cta{width:40px;padding:0;font-size:22px;font-weight:600}
  header.top .btn-cta .cta-t{display:none}
}
/* Кнопка темы: луна в светлой, солнце в тёмной */
.theme-btn svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.theme-btn .th-sun{display:none}
html[data-theme=dark] .theme-btn .th-sun{display:block}
html[data-theme=dark] .theme-btn .th-moon{display:none}
.mnav-theme{margin-left:auto;width:36px;height:36px}
.mnav-theme svg{width:22px;height:22px}

/* Карточка каталога: фото листаются свайпом (нативный скролл со snap) и стрелками */
.card-img{position:relative}
.ci-track{display:flex;width:100%;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;
  scrollbar-width:none;-ms-overflow-style:none}
.ci-track::-webkit-scrollbar{display:none}
.ci-track img{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always}
.ci-nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;border-radius:50%;
  background:rgba(255,255,255,.9);color:var(--ink);font-size:22px;line-height:1;cursor:pointer;z-index:2;padding:0 0 2px;
  display:flex;align-items:center;justify-content:center;box-shadow:0 1px 5px rgba(0,0,0,.18);opacity:0;transition:opacity .15s}
.ci-prev{left:8px}
.ci-next{right:8px}
.card:hover .ci-nav{opacity:1}
@media(hover:none){.ci-nav{display:none}}
.ci-dots{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center;gap:5px;pointer-events:none;z-index:2}
.ci-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55);box-shadow:0 0 2px rgba(0,0,0,.35)}
.ci-dots i.on{background:#fff}
/* NEW — у нового товара (на месте бывшего TOP) */
.badge.new{background:var(--accent);color:var(--on-accent);z-index:2}

/* Галерея объявления: ролик YouTube последним, после фото */
.gal-video{position:absolute;inset:0;background:#000}
.gal-video iframe{display:block;width:100%;height:100%;border:0}
.gal-vt{position:relative;display:block;flex:0 0 auto}
.gal-vt:after{content:"";position:absolute;left:50%;top:50%;margin:-8px 0 0 -5px;border-style:solid;
  border-width:8px 0 8px 13px;border-color:transparent transparent transparent #fff;
  filter:drop-shadow(0 0 3px rgba(0,0,0,.7));pointer-events:none}

/* «Предложить цену» */
.offer-btn{margin-bottom:10px}
.offer-cur{margin:-2px 0 14px;font-size:14px}
#offerForm .field{margin-bottom:12px}
#offerForm textarea{min-height:80px}

/* Советы по безопасности — внизу объявления */
.obj-tips{margin-top:14px}
.tips-h{font-weight:700;font-size:17px;margin:0 0 8px}
.obj-tips ul{list-style:none;margin:0;padding:0}
.obj-tips li{position:relative;padding-left:15px;color:var(--muted);line-height:1.75}
.obj-tips li:before{content:"";position:absolute;left:1px;top:.78em;width:5px;height:5px;border-radius:50%;background:currentColor}

/* Фото в форме: ↻ повернуть, «Сделать фото» — только на телефоне/планшете */
.uploads .th .rot{position:absolute;left:2px;bottom:2px;background:rgba(0,0,0,.6);color:#fff;width:22px;height:22px;
  border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;line-height:1}
.uploads .th .rot:hover,.uploads .th .x:hover{background:rgba(0,0,0,.85)}
.dz-cam{margin-top:10px}
@media(hover:hover) and (pointer:fine){.dz-cam{display:none}}

/* Подписка на категорию: колокольчик слева от сортировки */
.res-tools{display:flex;align-items:center;gap:10px}
@media(max-width:860px){.res-tools{flex:1}}
.sub-bell{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 13px;border:1px solid var(--line);
  background:var(--card);color:var(--muted);border-radius:var(--r-btn) 0 var(--r-btn) 0;cursor:pointer;
  font:600 14px/1 var(--font);white-space:nowrap}
.sub-bell svg{width:19px;height:19px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sub-bell:hover{color:var(--brand-ink);border-color:var(--brand)}
.sub-bell.on{color:var(--brand-ink);border-color:var(--brand);background:var(--brand-soft)}
.sub-bell.on svg{fill:currentColor}
/* Кабинет → Подписки */
.sub-hint{margin:-4px 0 16px}
.subs{display:flex;flex-direction:column;gap:10px}
.sub-row{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-box) 0 var(--r-box) 0;padding:14px 16px}
.sub-ico{width:22px;height:22px;flex:0 0 auto;fill:none;stroke:var(--brand-ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sub-b{flex:1;min-width:0}
.sub-n{font-weight:700;color:var(--brand-ink)}
.sub-m{font-size:13px;color:var(--muted);margin-top:2px}
@media(max-width:560px){.sub-row{flex-wrap:wrap}.sub-row .btn{margin-left:36px}}

/* Админка → Настройки → Cron */
.cron-tbl td{vertical-align:top}
.cron-tbl .cron-d{font-size:12px;margin-top:2px;max-width:380px}
.cron-tbl .cr-every{width:90px;border:1px solid var(--line);border-radius:6px;padding:6px 8px;font-size:14px}
.cron-tbl .cr-msg{font-size:13px;max-width:300px;overflow-wrap:anywhere}
.cron-tbl .cr-msg.err{color:var(--danger)}
.cron-tbl .cr-run{white-space:nowrap}

.cron-act{display:flex;gap:10px;flex-wrap:wrap}

/* ===== Лайки, комментарии, баланс ===== */
/* Избранное + «Нравится» в одну строку под ценой */
.obj-acts{display:flex;gap:8px;margin-bottom:10px}
.obj-acts .fav-btn{flex:1}
.like-btn{gap:6px;min-width:76px}
.like-btn svg,.obj-stats svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
.like-btn.on{color:var(--brand-ink);border-color:var(--brand);background:var(--brand-soft)}
.like-btn.on svg{fill:currentColor}
.obj-stats{display:flex;gap:16px;align-items:center;margin-top:10px;color:var(--muted);font-size:14px}
.obj-stats span,.obj-stats a{display:inline-flex;align-items:center;gap:5px}
/* Комментарии под описанием */
.obj-comments{margin-top:14px}
.cm-h{font-weight:700;font-size:17px;margin:0 0 10px}
.cm-h .muted{font-weight:400}
.cm{padding:12px 0;border-top:1px solid var(--line)}
.cm:first-child{border-top:0;padding-top:2px}
.cm-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}
.cm-seller{font-size:11px;font-weight:700;padding:1px 7px;border-radius:6px 0 6px 0;background:var(--brand-soft);color:var(--brand-ink)}
.cm-d{color:var(--muted);font-size:12px}
.cm-del{margin-left:auto;border:0;background:none;color:var(--muted);cursor:pointer;font-size:13px;padding:2px 6px;border-radius:6px}
.cm-del:hover{color:var(--danger);background:var(--bg)}
.cm-body{margin-top:4px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}
.cm-empty{margin:0 0 12px}
.cm-form{margin-top:12px;border-top:1px solid var(--line);padding-top:14px}
.cm-form .field{margin-bottom:10px}
.cm-form textarea{min-height:80px}
.cm-f{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.cm-bonus{font-size:13px;margin-right:auto}
/* Монетка внутренней валюты */
.coin{width:1em;height:1em;flex:0 0 auto;fill:var(--accent);stroke:var(--accent-d);stroke-width:1.6}
/* Кабинет → Баланс */
.bal-top{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:16px;margin-bottom:24px}
@media(max-width:760px){.bal-top{grid-template-columns:1fr}}
.bal-card,.bal-how{background:var(--card);border:1px solid var(--line);border-radius:var(--r-box) 0 var(--r-box) 0;padding:18px 20px}
.bal-l{color:var(--muted);font-size:14px}
.bal-v{display:flex;align-items:center;gap:10px;font-size:40px;font-weight:800;line-height:1.2;margin-top:6px}
.bal-h{font-weight:700;margin-bottom:6px}
.bal-how ul{margin:0;padding-left:18px;line-height:1.7}
.bal-how p{margin:0}
.bal-hist-h{font-size:19px;margin:0 0 12px}
.bal-amt{font-weight:700;white-space:nowrap}
.bal-amt.pos{color:var(--ok)}
.bal-amt.neg{color:var(--danger)}
.bal-note{font-size:12px;color:var(--muted);margin-top:2px}
/* Админка → пользователь → Баланс */
.bal-ed{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.bal-ed .field{margin:0;width:170px}
.bal-ed .bal-ed-note{flex:1;min-width:200px;width:auto}

/* ===== Магазины и страница продавца ===== */
/* Частное лицо / Магазин — сегментный переключатель */
.acc-type{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;overflow:hidden;margin-bottom:16px}
.acc-type label{margin:0;cursor:pointer;position:relative}
.acc-type input{position:absolute;opacity:0;pointer-events:none}
.acc-type span{display:block;padding:9px 18px;font-weight:600;font-size:14px;color:var(--muted);background:var(--card)}
.acc-type input:checked+span{background:var(--brand);color:var(--on-brand)}
.acc-type input:focus-visible+span{outline:2px solid var(--brand);outline-offset:-2px}
.auth .acc-type{display:flex}
.auth .acc-type label{flex:1;text-align:center}
.shop-fields{border-left:3px solid var(--accent);padding-left:12px;margin-bottom:6px}
.shop-note{font-size:13px;margin:-6px 0 14px}
/* Профиль */
.pf-top{display:flex;align-items:center;justify-content:space-between;gap:10px 20px;flex-wrap:wrap;margin-bottom:6px}
.pf-top .acc-type{margin-bottom:10px}
.pf-link{font-size:14px;color:var(--muted);margin-bottom:10px;overflow-wrap:anywhere}
.pf-link a{color:var(--brand-ink);font-weight:600}
.pf-grid .pf-span2{grid-column:span 2}
@media(max-width:760px){.pf-grid .pf-span2{grid-column:auto}}
.shop-box{border:1px solid var(--line);border-radius:var(--r-box) 0 var(--r-box) 0;padding:16px;margin:4px 0 18px;background:var(--bg)}
.shop-h{margin:0 0 12px;font-size:16px}
.shop-logo{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.shop-logo img{width:64px;height:64px;border-radius:12px;object-fit:cover;border:1px solid var(--line);background:var(--card)}
.shop-geo{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.shop-geo label{font-size:13px;font-weight:600;margin:0}
.shop-geo .muted{font-size:13px}
.pf-map{height:300px;border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;z-index:0}
/* Страница продавца: карточка сверху */
.seller-card{display:grid;grid-template-columns:1fr;gap:18px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-box) 0 var(--r-box) 0;padding:20px;margin-bottom:22px}
.seller-card.has-map{grid-template-columns:minmax(0,1fr) 360px}
@media(max-width:860px){.seller-card.has-map{grid-template-columns:1fr}}
.sc-head{display:flex;align-items:center;gap:16px}
.sc-ava{width:72px;height:72px;border-radius:16px;object-fit:cover;flex:0 0 auto;border:1px solid var(--line);background:var(--bg)}
.sc-ini{display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;color:var(--brand-ink);background:var(--brand-soft)}
.sc-name{font-size:26px;font-weight:800;margin:0 0 6px;line-height:1.2}
.sc-meta{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;color:var(--muted);font-size:14px}
.sc-badge{display:inline-block;font-size:12px;font-weight:700;padding:2px 9px;border-radius:8px 0 8px 0;background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.sc-badge.shop{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.sc-info{margin-top:14px;display:grid;gap:4px;font-size:15px}
.sc-info a{color:var(--brand-ink)}
.sc-about{margin-top:12px;white-space:pre-wrap;line-height:1.6;color:var(--ink)}
.sc-map{min-height:230px;border-radius:var(--r-btn) 0 var(--r-btn) 0;border:1px solid var(--line);z-index:0}
/* Личное меню категорий продавца: со счётчиками */
.seller-side .cat-tree a{justify-content:flex-start}
.seller-side .ct-n{margin-left:auto;font-size:12px;color:var(--muted);font-weight:400;padding-left:8px}
.seller-side .sub a{display:flex}
.seller-cat-m{display:none;margin-bottom:12px}
.seller-cat-m .fsel{width:100%}
@media(max-width:760px){.seller-cat-m{display:block}}
/* Продавец в объявлении — ссылкой на его страницу */
.seller-name{font-weight:700;color:var(--ink);margin-right:6px}
.seller-name:hover{color:var(--brand-ink)}
.seller-all{display:inline-block;margin-top:4px;font-size:14px;color:var(--brand-ink)}
/* Карта магазинов */
.sm-bar{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;margin-bottom:12px}
.sm-hint{color:var(--muted);font-size:14px;margin-right:auto}
.sm-r{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}
.sm-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px}
@media(max-width:860px){.sm-grid{grid-template-columns:1fr}}
.sm-map{height:calc(100vh - 230px);min-height:420px;border:1px solid var(--line);border-radius:var(--r-box) 0 var(--r-box) 0;z-index:0}
.sm-side{background:var(--card);border:1px solid var(--line);border-radius:var(--r-box) 0 var(--r-box) 0;
  display:flex;flex-direction:column;max-height:calc(100vh - 230px);min-height:200px}
@media(max-width:860px){.sm-map{height:62vh;min-height:320px}.sm-side{max-height:none}}
.sm-h{font-weight:700;padding:14px 16px;border-bottom:1px solid var(--line)}
.sm-list{overflow-y:auto}
.sm-item{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line)}
.sm-item:hover{background:var(--bg)}
.sm-item img,.sm-ini{width:42px;height:42px;border-radius:10px;object-fit:cover;flex:0 0 auto}
.sm-ini{display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--brand-ink);background:var(--brand-soft)}
.sm-b{display:flex;flex-direction:column;min-width:0;font-size:13px}
.sm-b b{font-size:15px;color:var(--ink)}
.sm-b span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sm-km{margin-left:auto;font-weight:700;color:var(--brand-ink);white-space:nowrap;font-size:14px}
.sm-empty{padding:30px 16px;color:var(--muted);text-align:center}
.sm-pop{font:14px/1.45 var(--font);min-width:160px}
.sm-pop a{color:#006AA7}
.sm-go{display:inline-block;margin-top:6px;font-weight:700}
.shops-btn svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
@media(max-width:1100px){header.top .shops-btn{display:none}}
.mnav-shops{display:block;text-align:center;padding:10px;margin:-6px 0 14px;font-weight:600;color:var(--brand-ink)}
/* Тайлы карты в тёмной теме — инверсия, чтобы карта не светила белым */
html[data-theme=dark] .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.95) contrast(.9)}
html[data-theme=dark] .leaflet-container{background:#1b2027}

/* ===== Тёмная тема: html[data-theme=dark] (кнопка в шапке, cookie ak_theme) =====
   Светлые правила выше не трогаем — здесь только переопределения. */
html[data-theme=dark]{
  color-scheme:dark;
  --bg:#0f1318; --card:#181d25; --ink:#e4e8ee; --muted:#98a1ad; --line:#2a313c;
  --brand:#0a78bd; --brand-d:#0b68a3; --brand-ink:#5db6ef; --brand-soft:#132b3d;
  --band1:#005a8c; --band2:#0181bf; --danger:#f06a6a; --ok:#35c26b;
  --shadow:0 1px 3px rgba(0,0,0,.45),0 8px 24px rgba(0,0,0,.35);
  --field:#11161d;
}
/* Синий текст на тёмном фоне — светлее, кнопки остаются фирменными */
html[data-theme=dark] .logo,html[data-theme=dark] .lang a.on,html[data-theme=dark] .ico-btn:hover,
html[data-theme=dark] .card-price,html[data-theme=dark] .card-city,html[data-theme=dark] .obj-bar .p,
html[data-theme=dark] .foot-logo,html[data-theme=dark] .foot-list a:hover,html[data-theme=dark] .foot-bot a,
html[data-theme=dark] .ml-price,html[data-theme=dark] .up-fab,html[data-theme=dark] .m-btn:active{color:var(--brand-ink)}
html[data-theme=dark] .info-body li::marker{color:var(--brand-ink)}
/* Поля ввода */
html[data-theme=dark] .field input,html[data-theme=dark] .field select,html[data-theme=dark] .field textarea,
html[data-theme=dark] .side input,html[data-theme=dark] .side select,html[data-theme=dark] .fsel,
html[data-theme=dark] .tabs-m select,html[data-theme=dark] .field .qt-pick,html[data-theme=dark] .cbx-btn,
html[data-theme=dark] .cbx-pop,html[data-theme=dark] .cbx-search input,html[data-theme=dark] .rt,
html[data-theme=dark] .rt-bar .rt-size,html[data-theme=dark] .rt-color,html[data-theme=dark] .ta-sug,
html[data-theme=dark] .mb-reply textarea,html[data-theme=dark] .ml-b-ic{background:var(--field);color:var(--ink)}
html[data-theme=dark] .top-search,html[data-theme=dark] .mflt-search{background:var(--field);border-color:var(--line)}
html[data-theme=dark] .ts-cat option{background:var(--card)}
html[data-theme=dark] .top-search input::placeholder,html[data-theme=dark] .cbx-btn .cbx-val.ph{color:#6b7480}
html[data-theme=dark] .top-search button,html[data-theme=dark] .mflt-search button{background:#3a424e}
html[data-theme=dark] .top-search button:hover,html[data-theme=dark] .mflt-search button:hover{background:#4a5360}
html[data-theme=dark] .rt-bar{background:#141a21}
html[data-theme=dark] .rt-b:hover{background:#232a34}
html[data-theme=dark] .cbx.err .cbx-btn{background:#2a1618}
html[data-theme=dark] .dz{background:var(--field)}
html[data-theme=dark] .dz:hover,html[data-theme=dark] .dz:focus-visible{background:#14202b}
html[data-theme=dark] .dz.on{background:var(--brand-soft)}
html[data-theme=dark] .dzone{background:var(--field)}
html[data-theme=dark] .dzone:hover,html[data-theme=dark] .dzone.on{background:#14202b}
/* Иконки категорий нарисованы чёрным контуром — на тёмном фоне осветляем */
html[data-theme=dark] .cat-tree img.ct-ico{filter:brightness(0) invert(.85)}
/* Кнопки и шапка */
html[data-theme=dark] .btn:hover{border-color:#3d4653}
html[data-theme=dark] .btn-danger,html[data-theme=dark] .ml-b-ic.danger{background:#3a1d20;border-color:#5c2a2e;color:var(--danger)}
html[data-theme=dark] .fav-btn.on{border-color:#5c2a2e}
html[data-theme=dark] .lang a{color:#5b6573}
html[data-theme=dark] .ico-btn{color:#9aa3ae}
/* Кнопки поверх фото — тёмные полупрозрачные */
html[data-theme=dark] .gal-nav,html[data-theme=dark] .ci-nav,html[data-theme=dark] .oc-fav{background:rgba(24,29,37,.88);color:var(--ink)}
html[data-theme=dark] .gal-nav:hover,html[data-theme=dark] .oc-fav:hover{background:var(--card)}
html[data-theme=dark] .oc-fav{color:#7b8490}
html[data-theme=dark] .oc-fav.on,html[data-theme=dark] .oc-fav:hover{color:var(--danger)}
html[data-theme=dark] .card,html[data-theme=dark] .ml-card{box-shadow:0 1px 3px rgba(0,0,0,.5)}
html[data-theme=dark] .mb-del{color:#5b6573}
html[data-theme=dark] .mb-del:hover{background:#3a1d20}
html[data-theme=dark] .toast{background:#2c343f;color:#fff}
html[data-theme=dark] .toast.err{background:#b42323}
html[data-theme=dark] .akd-back{background:rgba(0,0,0,.6)}
/* Цвета из редактора описания (тёмный текст) на тёмном фоне не читаются — наследуем цвет темы */
html[data-theme=dark] .obj-desc [style*="color"]{color:inherit!important}
html[data-theme=dark] .obj-desc [style*="background"]{background:transparent!important}

/* ===== REM 2 (ноябрь 2026) ===== */
/* Шапка: «Все категории» + «Где искать» слева от поиска; поиск короче */
header.top .top-search{max-width:720px}
.cm-wrap{position:relative;flex:0 0 auto}
.cm-wrap.open::after{content:"";position:absolute;left:0;right:0;top:100%;height:14px}   /* мостик для мыши до меню */
.cm-btn{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 16px;border:0;border-radius:999px;
  background:var(--brand);color:#fff;font:600 15px/1 var(--font);cursor:pointer;white-space:nowrap}
.cm-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.cm-btn:hover,.cm-wrap.open .cm-btn{background:var(--brand-d)}
.cm-drop{position:absolute;top:calc(100% + 10px);left:0;z-index:60;display:flex;width:min(780px,calc(100vw - 40px));
  background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 40px rgba(0,0,0,.16);overflow:hidden}
.cm-drop[hidden]{display:none}
.cm-roots{flex:0 0 290px;padding:8px;border-right:1px solid var(--line);max-height:72vh;overflow:auto}
.cm-root{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:var(--ink);font-size:15px}
.cm-root img,.cm-root i{width:20px;height:20px;flex:0 0 auto;object-fit:contain}
.cm-root span{flex:1;min-width:0}
.cm-root::after{content:"\203A";color:var(--muted);font-size:18px;line-height:1}
.cm-root[data-subs="0"]::after{content:none}
.cm-root.on{background:var(--brand-soft);color:var(--brand-ink)}
.cm-subs{flex:1;min-width:0;padding:16px 22px;max-height:72vh;overflow:auto}
.cm-sub-h{display:block;font-weight:800;font-size:16px;color:var(--ink);margin-bottom:10px}
.cm-sub-l{display:grid;grid-template-columns:1fr 1fr;gap:2px 20px}
.cm-sub-l a{color:var(--ink);padding:6px 0;font-size:14px}
.cm-sub-l a:hover,.cm-sub-h:hover{color:var(--brand-ink)}
.geo-chip{display:inline-flex;align-items:center;gap:6px;height:42px;padding:0 14px;border:1px solid var(--line);
  border-radius:999px;background:var(--card);color:var(--ink);font:500 14px/1 var(--font);cursor:pointer;
  white-space:nowrap;flex:0 1 auto;min-width:0;max-width:230px}
.geo-chip span{overflow:hidden;text-overflow:ellipsis}
.geo-chip svg{width:18px;height:18px;fill:var(--brand);flex:0 0 auto}
.geo-chip:hover{border-color:var(--brand)}
.geo-chip.on{border-color:var(--brand);color:var(--brand-ink);background:var(--brand-soft)}
/* Список категорий внутри поиска — только на широком экране, иначе его заменяет кнопка */
@media(max-width:1599px){.ts-cat{display:none}}
@media(max-width:1250px){.geo-chip span{display:none}.geo-chip{padding:0 11px}}
@media(max-width:1100px){.cm-btn .cm-t{display:none}.cm-btn{padding:0 12px}}
@media(max-width:760px){.cm-wrap,.geo-chip{display:none}}

/* Окно «Где искать» */
/* Окно не выше экрана: при нехватке места сжимается карта, а не появляется прокрутка */
.geo-dlg{display:flex;flex-direction:column;max-width:640px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow:auto}
.geo-dlg>*{flex:0 0 auto}
.geo-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.geo-x{border:0;background:none;font-size:30px;line-height:.8;color:var(--muted);cursor:pointer;padding:0 2px}
.geo-x:hover{color:var(--ink)}
.geo-row{display:flex;gap:10px;margin-top:4px}
.geo-city{position:relative;flex:1;min-width:0}
.geo-city input{width:100%;height:42px;border:1px solid var(--line);border-radius:var(--r-btn) 0 var(--r-btn) 0;
  padding:0 12px;font-size:16px;background:var(--card);color:var(--ink);outline:none}
.geo-city input:focus{border-color:var(--brand)}
.geo-me{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;height:42px}
.geo-me svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.geo-radius{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0}
.geo-km{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:7px 13px;
  font:500 14px/1 var(--font);cursor:pointer}
.geo-km:hover{border-color:var(--brand)}
.geo-km.on{background:var(--brand);border-color:var(--brand);color:#fff}
.geo-map,.om-map{position:relative;z-index:0;background:var(--bg);overflow:hidden;border-radius:12px}
.geo-dlg>.geo-map{flex:1 1 300px;min-height:110px}
.geo-hint{font-size:13px;margin:8px 0 0}
@media(max-width:560px){
  .geo-row{flex-direction:column}
  .geo-dlg>.geo-map{flex-basis:230px}
  .geo-dlg .akd-f{flex-direction:column-reverse}
  .geo-dlg .akd-f .btn{width:100%}
}

/* Телефон: под полосой категорий — «Магазины» и «Вся Швеция» */
.m-quick{display:none}
@media(max-width:760px){
  .m-quick{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 14px 4px;background:var(--card)}
  .m-quick a,.m-quick button{display:flex;align-items:center;justify-content:center;height:46px;padding:0 10px;border:0;
    border-radius:var(--r-btn) 0 var(--r-btn) 0;font:800 16px/1.1 var(--font);text-align:center;cursor:pointer;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .m-quick .mq-shops{background:var(--accent);color:var(--on-accent)}
  .m-quick .mq-geo{background:var(--brand);color:#fff}
}

/* Главная: «Смотреть все» у слайдеров; на телефоне стрелок нет — листают пальцем */
.see-all{margin-left:auto;font-size:14px;font-weight:600;color:var(--brand-ink);white-space:nowrap}
.see-all:hover{text-decoration:underline}
.see-all + .prem-nav{margin-left:6px}
@media(max-width:760px){.prem .prem-nav{display:none}}

/* Телефон: 1 или 2 объявления в ряд (кнопки у заголовка ленты) */
.vt{display:none;gap:4px}
.vt-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);
  background:var(--card);color:var(--muted);border-radius:8px;cursor:pointer;padding:0}
.vt-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
.vt-btn.on{color:var(--brand-ink);border-color:var(--brand);background:var(--brand-soft)}
@media(max-width:760px){
  .vt{display:inline-flex;margin-left:auto}
  html.mc1 .cards,html.mc1 .cards-4{grid-template-columns:1fr}
  html.mc2 .cards,html.mc2 .cards-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
}
@media(max-width:560px){
  html.mc2 .card-b{padding:11px 12px 14px}
  html.mc2 .card-head{flex-wrap:wrap;gap:2px 8px;margin-bottom:6px}
  html.mc2 .card-price{font-size:17px}
  html.mc2 .card-city{font-size:12px}
  html.mc2 .card-title{font-size:14px}
  html.mc2 .oc-fav{width:30px;height:30px;font-size:16px;top:6px;right:6px}
}

/* Каталог: 3 карточки в ряд (7 рядов на странице) */
@media(min-width:861px){.cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.geo-btn svg{fill:currentColor;stroke:none}
.geo-btn span{max-width:180px;overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){
  .res-tools{flex-wrap:wrap}
  .res-tools .vt{margin-left:auto}
}

/* Объявление: «Описание», «Дополнительно» */
.obj-h{font-size:17px;font-weight:800;margin:0 0 10px}
.obj-h2{margin-top:22px}
.obj-props{margin:0;display:grid;gap:8px;max-width:560px}
.obj-props>div{display:flex;align-items:baseline;gap:8px}
.obj-props dt{flex:1;display:flex;align-items:baseline;gap:8px;color:var(--muted);min-width:0}
.obj-props dt::after{content:"";flex:1;border-bottom:1px dotted #c3c8cf;transform:translateY(-4px)}
.obj-props dd{margin:0;font-weight:600;text-align:right}
/* Карта «где товар» под ценой */
.obj-side .obj-map{margin-top:14px}
.om-h{display:flex;align-items:center;gap:6px;font-weight:700;margin-bottom:10px}
.om-h svg{width:18px;height:18px;fill:var(--brand);flex:0 0 auto}
.om-map{height:220px}
.om-f{display:flex;justify-content:space-between;gap:6px 12px;flex-wrap:wrap;font-size:13px;margin-top:8px}
.om-f a{color:var(--brand-ink);font-weight:600;white-space:nowrap}
@media(min-width:861px){.obj-side.no-stick{position:static}}
/* Поделиться — кружок в углу большого фото */
.gal-share{position:absolute;top:10px;right:10px;z-index:3;width:40px;height:40px;border:0;border-radius:50%;
  background:rgba(255,255,255,.92);color:var(--ink);display:flex;align-items:center;justify-content:center;
  cursor:pointer;box-shadow:0 1px 6px rgba(0,0,0,.18);padding:0}
.gal-share:hover{background:#fff;color:var(--brand)}
.gal-share svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
.share-menu{position:absolute;top:56px;right:10px;z-index:4;min-width:210px;padding:6px;display:flex;flex-direction:column;
  background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.share-menu[hidden]{display:none}
.share-menu a,.share-menu button{display:block;text-align:left;padding:9px 12px;border:0;background:none;border-radius:8px;
  color:var(--ink);font:500 14px/1.2 var(--font);cursor:pointer}
.share-menu a:hover,.share-menu button:hover{background:var(--bg)}
.share-menu button{border-top:1px solid var(--line);border-radius:0 0 8px 8px;margin-top:4px}
/* Свайп по фото — короткий сдвиг для отклика */
.gal-main.sw-l #galMain{animation:akSwL .22s ease-out}
.gal-main.sw-r #galMain{animation:akSwR .22s ease-out}
@keyframes akSwL{from{transform:translateX(36px);opacity:.35}to{transform:none;opacity:1}}
@keyframes akSwR{from{transform:translateX(-36px);opacity:.35}to{transform:none;opacity:1}}

/* Форма объявления: кнопки фото, порядок перетаскиванием, «Главное» */
.dz-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:10px}
.dz-btns .dz-cam{margin-top:0}
.dz-sort{display:none;font-size:12px;color:var(--muted);margin-top:8px}
.dzone.has .dz-sort{display:block}
.uploads .th{cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.uploads .th img{pointer-events:none}
.uploads .th:first-child::before{content:var(--ml);position:absolute;top:3px;left:3px;z-index:1;background:var(--accent);
  color:var(--on-accent);font-size:10px;font-weight:700;padding:2px 6px;border-radius:6px;pointer-events:none}
.uploads .th.drag{z-index:5;cursor:grabbing;box-shadow:0 10px 24px rgba(0,0,0,.28);opacity:.93}
/* «Спасибо! Объявление добавлено» */
.added-ok{display:flex;align-items:center;gap:10px;background:#e3f6e8;color:#14532d;border:1px solid #86d39b;
  border-radius:12px;padding:12px 16px;margin-bottom:16px}
.added-ok svg{width:26px;height:26px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.added-ok.big{flex-direction:column;justify-content:center;text-align:center;padding:60px 20px;font-size:21px;margin:0;border:0;background:transparent;color:var(--ok)}
.added-ok.big svg{width:72px;height:72px}
.added-ok.big b{color:var(--ink)}
.me-list-tbl tr.is-added td{background:#effaf2}
.ml-card.is-added{outline:2px solid var(--ok);outline-offset:-1px}

/* Тёмная тема для нового */
html[data-theme=dark] .cm-root img{filter:brightness(0) invert(.85)}
html[data-theme=dark] .cm-drop,html[data-theme=dark] .share-menu{box-shadow:0 16px 40px rgba(0,0,0,.55)}
html[data-theme=dark] .geo-city input{background:var(--field)}
html[data-theme=dark] .gal-share{background:rgba(24,29,37,.88);color:var(--ink)}
html[data-theme=dark] .obj-props dt::after{border-color:#3a424e}
html[data-theme=dark] .added-ok{background:#173d27;color:#c9f2d6;border-color:#2f7a4c}
html[data-theme=dark] .added-ok.big{background:transparent;color:var(--ok)}
html[data-theme=dark] .me-list-tbl tr.is-added td{background:#16301f}

/* ===== REM 2, ответы заказчика ===== */
/* Фото объявления — целиком, без обрезки, на нейтральном фоне (в карточках каталога обрезка остаётся) */
.gal-main{background:#f1f2f4}
html[data-theme=dark] .gal-main{background:#11161d}

/* Телефон: луна в шапке рядом с поиском */
.m-theme .th-moon,.m-theme .th-sun{fill:none}

/* Телефон: неподвижное нижнее меню */
.tabbar{display:none}
@media(max-width:760px){
  .tabbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:65;
    background:var(--accent);box-shadow:0 -2px 12px rgba(0,0,0,.12);
    padding:4px 2px calc(4px + env(safe-area-inset-bottom,0px))}
  .tb-i{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    min-width:0;height:54px;border:0;background:none;color:var(--on-accent);font:600 11px/1.1 var(--font);cursor:pointer;padding:0 2px}
  .tb-i span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tb-i svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .tb-i.on{color:var(--brand)}
  .tb-i.on svg{stroke-width:2.3}
  .tb-post svg{width:28px;height:28px}
  .tb-n{position:absolute;top:3px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;
    background:var(--danger);color:#fff;font:700 11px/18px var(--font);text-align:center}
  body.site{padding-bottom:calc(62px + env(safe-area-inset-bottom,0px))}
  /* «наверх» и панель цены объявления — над меню */
  .up-fab{bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .up-fab.hi{bottom:calc(140px + env(safe-area-inset-bottom,0px))}
  .obj-bar{bottom:calc(62px + env(safe-area-inset-bottom,0px));padding-bottom:8px}
  .toast{bottom:150px}
}
html[data-theme=dark] .tabbar{background:var(--card);border-top:1px solid var(--line)}
html[data-theme=dark] .tb-i{color:var(--muted)}
html[data-theme=dark] .tb-i.on,html[data-theme=dark] .tb-post{color:var(--accent)}
