/* dili — дизайн v4 на каркасе LUN (specs/design/mockups, 03.11.2026). Грузится после v3.css/v3ui.css только в режиме v4
   (src/ui_mode.ts) и перекрашивает прежние компоненты: токены, шрифты Rubik+Heebo, рейка, мобильная шапка, панель «עוד»,
   кнопки/чипы/карточки/фильтры/страница объявления. Три цветовые схемы — data-scheme на <html>: a (по умолчанию,
   «чёрное действие, изумрудный маркер»), b («изумрудная рейка»), c («бумага и чернила»). Тёмная тема — data-theme=dark.
   Отличия от LUN намеренные (владелец: «чтобы не выглядело один в один»): активный пункт рейки с полоской и подложкой,
   чипы-пилюли, карточки без рамок на мягкой тени, изумрудная черта под заголовками секций. */
@font-face{font-family:Rubik;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/rubik-hebrew.woff2) format('woff2');unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
@font-face{font-family:Rubik;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/rubik-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}

/* ===== токены: схема A ===== */
:root{
  --disp:Rubik,Heebo,system-ui,sans-serif;
  --bg:#fff; --card:#fff; --ink:#000; --ink2:#5c6070; --ink3:#636778;
  --line:#ebeef4; --line2:#f0f2f6; --line-h:#caccd8; --hov:#f5f6fa; --act:#ebeef4;
  --band:#f5f6fa;                 /* полосы секций */
  --rail:#131010; --rail-ink:#fff; --rail-on:#34d399; --rail-line:#2c2c2c; --rail-dim:#aeaeae;
  --btn:#000; --btn-h:#4b4f5e; --on-btn:#fff;
  --em:#047857; --em-h:#065f46; --em-ink:#047857; --em-soft:#d1fae5; --em-lite:#34d399; --em-logo:#10b981; --em-deep:#064e3b;
  --pri:#000; --pri-h:#4b4f5e; --on-pri:#fff; --pri-tint:#ebeef4; --pri-ink:#000; --pri-line:#caccd8;
  --c:#047857; --c-bg:#d1fae5; --c-line:#a7f3d0; --bn-tint:#ecfdf5;
  --ok:#047857; --ok-bg:#ecfdf5; --ok-line:#a7f3d0;
  --err:#e35241; --heart:#e35241;
  --up:#047857; --dn:#e35241; --up-dark:#86ff8e; --dn-dark:#ff3856;
  --re-bg:var(--band); --re-chip:var(--act); --re-ink:var(--ink); --re-line:var(--line); --re-line-h:var(--line-h);
  --car-bg:var(--band); --car-chip:var(--act); --car-ink:var(--ink); --car-line:var(--line); --car-line-h:var(--line-h);
  --pr-bg:var(--band); --pr-chip:var(--act); --pr-ink:var(--ink); --pr-line:var(--line); --pr-line-h:var(--line-h);
  --s-bg:var(--band); --s-chip:var(--act); --s-ink:var(--ink); --sec-bg:var(--em-soft); --sec-ink:var(--em); --sec-line:var(--c-line);
  --ai-grad:linear-gradient(90deg,#047857,#10b981);
  --glass:rgba(255,255,255,.94); --mapbg:#e9edf3; --shade:rgba(0,0,0,.05); --on-ink:#fff; --ink-h:#4b4f5e;
  --r:8px; --r-sm:4px; --rail-w:86px; --hdr:0px;
  --sh:0 0 4px rgba(0,0,0,.05),0 4px 8px rgba(0,0,0,.10); --sh-lg:0 0 6px rgba(0,0,0,.05),0 4px 16px rgba(0,0,0,.10);
  --stat:#131010; --stat-line:#2c2c2c;
}
/* схема B — изумрудная рейка, зелёноватые полосы */
:root[data-scheme=b]{--rail:#064e3b;--rail-on:#fff;--rail-ink:#a7f3d0;--rail-line:#0b6b4f;--rail-dim:#a7f3d0;--band:#ecfdf5;--stat:#064e3b;--stat-line:#0b6b4f;--hov:#f0fdf7}
/* схема C — тёплая «бумага», белые карточки, почти без рамок */
:root[data-scheme=c]{--bg:#eeeeea;--band:#e6e6e1;--card:#fff;--act:#fff;--hov:#f7f7f4;--line:#dfdfdf;--line2:#e8e8e4;--line-h:#c4c4bf;--rail:#1c1c1c;--btn:#1c1c1c;--pri:#1c1c1c;--ink:#1c1c1c;--pri-tint:#fff;--s-chip:#fff;--re-chip:#fff;--car-chip:#fff;--pr-chip:#fff;--stat:#1c1c1c;--glass:rgba(255,255,255,.96)}
/* тёмная тема: поверхности инвертируются, бренд-тона те же */
:root[data-theme=dark]{
  --bg:#111213;--card:#18191b;--ink:#ececec;--ink2:#b3b6c2;--ink3:#9a9eab;--line:#2a2b2e;--line2:#212225;--line-h:#3a3b3f;--hov:#1f2023;--act:#26272a;--band:#161719;
  --rail:#0b0b0c;--rail-line:#232426;--btn:#ececec;--btn-h:#cfd2da;--on-btn:#111213;--pri:#ececec;--pri-h:#cfd2da;--on-pri:#111213;--pri-tint:#26272a;--pri-ink:#ececec;
  --em-ink:#5fd6aa;--em-soft:#15291f;--c:#5fd6aa;--c-bg:#15291f;--c-line:#245a44;--bn-tint:#13211b;--ok:#6fcf97;--ok-bg:rgba(111,207,151,.08);--ok-line:#2f5c43;
  --up:#6fcf97;--dn:#ff7a8e;--err:#ff7a8e;--heart:#ff7a8e;--glass:rgba(24,25,27,.92);--mapbg:#1a1b1d;--on-ink:#111213;--ink-h:#cfcfcf;--stat:#000;--stat-line:#2a2b2e;--sec-bg:#15291f;--sec-ink:#5fd6aa;color-scheme:dark}
:root[data-theme=dark][data-scheme=b]{--rail:#042f24;--rail-ink:#a7f3d0;--rail-on:#fff;--band:#0f1d17}
:root[data-theme=dark][data-scheme=c]{--bg:#141412;--card:#1c1c1a;--band:#191917;--act:#232321;--hov:#1f1f1d}
body[data-sec=re],body[data-sec=car],body[data-sec=pr]{--sec-bg:var(--em-soft);--sec-ink:var(--em-ink);--sec-line:var(--c-line)}

/* ===== база ===== */
body.v4{font-family:Heebo,system-ui,sans-serif;font-size:15px;line-height:22px;letter-spacing:.2px;background:var(--bg);color:var(--ink);padding-bottom:0}
body.v4 h1,body.v4 h2,body.v4 h3,body.v4 .disp{font-family:var(--disp);letter-spacing:0}
body.v4 :focus-visible{outline:2px solid var(--em);outline-offset:2px}
body.v4 a:hover{color:var(--em-ink)}
.v4w{display:flex;min-height:100vh;min-height:100dvh}
.v4p{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.v4p>.page,.v4p>main,.v4p>.catp{flex:1 0 auto}
.v4p>.w{width:100%}
.lgm{display:inline-flex;align-items:center;justify-content:center;width:var(--s,54px);height:var(--s,54px);border-radius:calc(var(--s,54px) * .22);background:var(--em-logo);color:#fff;font-family:var(--disp);font-weight:900;font-size:calc(var(--s,54px) * .74);line-height:1;flex:none;letter-spacing:0}

/* ===== рейка (десктоп) ===== */
nav.rail{flex:0 0 var(--rail-w);position:sticky;top:0;height:100vh;height:100dvh;background:var(--rail);color:var(--rail-ink);display:flex;flex-direction:column;align-items:stretch;padding:16px 0 18px;gap:2px;z-index:var(--z-head);overflow:hidden auto;scrollbar-width:none}
nav.rail::-webkit-scrollbar{display:none}
nav.rail .rlg{display:flex;flex-direction:column;align-items:center;gap:6px;margin:0 0 30px;padding:0;color:inherit}
nav.rail .rlg .wm{font-family:var(--disp);font-weight:800;font-size:15px;line-height:1;letter-spacing:.01em}
nav.rail a,nav.rail button{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 7px;margin:0 6px;border-radius:10px;color:var(--rail-ink);font-family:var(--disp);font-weight:700;font-size:10px;line-height:14px;text-align:center;transition:background .15s,color .15s}
nav.rail a:hover,nav.rail button:hover{color:var(--rail-on);background:rgba(255,255,255,.06)}
nav.rail a.on,nav.rail button.on{color:var(--rail-on);background:rgba(255,255,255,.08)}
nav.rail a.on::before{content:'';position:absolute;inset-inline-end:-6px;top:10px;bottom:10px;width:3px;border-radius:3px 0 0 3px;background:var(--rail-on)}
nav.rail .sp{flex:1}
nav.rail .thm{color:var(--rail-dim);font-weight:500}
nav.rail .thm svg{width:20px;height:20px}
nav.rail .thm[aria-pressed=true]{color:var(--rail-on)}

/* ===== мобильная шапка и нижняя панель ===== */
.mtop{display:none}
.mbot{display:none}
.hd,.mb{display:none!important}

/* ===== панель «עוד» ===== */
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);z-index:calc(var(--z-modal) - 1)}
.morep{position:fixed;top:0;bottom:0;inset-inline-end:var(--rail-w);width:min(677px,calc(100vw - var(--rail-w)));background:var(--rail);color:#fff;padding:48px 56px 32px;display:flex;flex-direction:column;gap:32px;z-index:var(--z-modal);overflow-y:auto;transform:translateX(12%);opacity:0;transition:transform .42s var(--ease),opacity .3s}
.morep.in{transform:none;opacity:1}
.morep .mx{position:absolute;top:20px;inset-inline-end:20px;width:40px;height:40px;border-radius:8px;display:grid;place-items:center;color:#fff}
.morep .mx:hover{background:rgba(255,255,255,.1)}
.morep a{color:#fff}.morep a:hover{color:var(--rail-on)}
.mcols{display:grid;grid-template-columns:1fr 1.15fr;gap:40px;flex:1}
.morep .ml{display:flex;flex-direction:column;gap:26px;padding-top:6px;font-size:16px}
.morep .ml .tel{display:flex;align-items:center;gap:8px;color:var(--rail-dim)}
.morep .mr{display:flex;flex-direction:column;gap:22px}
.morep .mh{color:var(--rail-dim);font-size:13px;display:flex;align-items:center;gap:6px}
.pjs{display:grid;grid-template-columns:1fr 1fr;gap:26px 24px}
.pj{display:flex;flex-direction:column;gap:4px;max-width:220px}
.pj b{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700}
.pj small{color:var(--rail-dim);font-size:13px;line-height:18px}
.pj .pji{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:#fff;color:#131010;flex:none}
.pj .pji svg{width:14px;height:14px}
.pj:hover b{color:var(--rail-on)}
.mft{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding-top:8px}
.lngs{display:flex;gap:2px;background:rgba(255,255,255,.12);border-radius:10px;padding:2px}
.lngs a{display:inline-flex;align-items:center;height:32px;padding:0 14px;border-radius:8px;font-size:14px;color:#fff}
.lngs a.on{background:#fff;color:#000}
.lngs a:hover:not(.on){color:var(--rail-on)}
.thm2{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:8px;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:14px}
.thm2:hover{border-color:#fff}
/* переключатель схем */
.schm{display:flex;align-items:center;gap:6px}
.schm .schl{font-size:13px;color:var(--rail-dim);margin-inline-end:4px}
.schm button{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px 0 8px;border-radius:999px;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:13px;font-weight:500}
.schm button:hover{border-color:#fff}
.schm button[aria-checked=true]{background:#fff;color:#000;border-color:#fff}
.schm i{width:18px;height:18px;border-radius:50%;display:inline-block;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
.schm .sw-a{background:linear-gradient(135deg,#131010 50%,#34d399 50%)}
.schm .sw-b{background:linear-gradient(135deg,#064e3b 50%,#a7f3d0 50%)}
.schm .sw-c{background:linear-gradient(135deg,#1c1c1c 50%,#eeeeea 50%)}

/* ===== подвал ===== */
.ft4{margin-top:auto;background:var(--act);padding:24px;font-size:13px;color:var(--ink3)}
.ft4 .sl{max-width:1392px;padding:0 0 18px;margin:0 auto 18px;border-bottom:1px solid var(--line-h);color:var(--ink3)}
.fw4{max-width:1392px;margin:0 auto;display:flex;flex-wrap:wrap;gap:16px 24px;justify-content:space-between;align-items:center}
.fw4 .fl{display:flex;gap:16px;flex-wrap:wrap}
.fw4 a{color:var(--ink3)}.fw4 a:hover{color:var(--ink)}
.fw4 .lngs{background:var(--card)}
.fw4 .lngs a{color:var(--ink)}.fw4 .lngs a.on{background:var(--btn);color:var(--on-btn)}
.fw4 .schm button{border-color:var(--line-h);color:var(--ink)}
.fw4 .schm button[aria-checked=true]{background:var(--btn);color:var(--on-btn);border-color:var(--btn)}
.fw4 .cp{flex:1 1 100%}
body.v4 footer.ft{display:none}

/* ===== компоненты v3 в новой одежде ===== */
body.v4 .btn,body.v4 .bn .go,body.v4 .pop .pf .ok,body.v4 .q .go,body.v4 .ai .send,body.v4 .fab,body.v4 .here,body.v4 .pcard .btn.p,body.v4 .cbn .btn,body.v4 .empty .btn{background:var(--btn);color:var(--on-btn);border-color:var(--btn);border-radius:var(--r)}
body.v4 .btn:hover,body.v4 .bn .go:hover,body.v4 .pop .pf .ok:hover,body.v4 .q .go:hover,body.v4 .ai .send:hover{background:var(--btn-h);border-color:var(--btn-h);color:var(--on-btn)}
body.v4 .btn{height:40px;padding:0 18px;font-weight:500;font-size:15px}
body.v4 .btn.lg{height:48px;padding:0 20px}
body.v4 .btn.sm{height:34px;padding:0 14px;font-size:13.5px}
body.v4 .btn.o,body.v4 .btn.t,body.v4 .empty .btn.o,body.v4 .empty button{background:var(--card);color:var(--ink);border:1px solid var(--line-h)}
body.v4 .btn.o:hover,body.v4 .btn.t:hover{background:var(--btn);color:var(--on-btn);border-color:var(--btn)}
body.v4 .btn.ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}
body.v4 .btn.danger{background:var(--card);color:var(--err);border-color:var(--err)}
body.v4 .pill,body.v4 .save,body.v4 .fbt,body.v4 .seg,body.v4 .chip,body.v4 .tg,body.v4 .stabs a,body.v4 .rows .more,body.v4 .kc,body.v4 .cpill,body.v4 .tags a,body.v4 .pops a,body.v4 .sec .sc a{border-radius:999px}
body.v4 .pill.on,body.v4 .opt.on,body.v4 .chip.k,body.v4 .mk-city.on,body.v4 .stabs a.on,body.v4 .seg .on,body.v4 .kc.on,body.v4 .cpill.on,body.v4 .rooms button.on.edge{background:var(--btn);color:var(--on-btn);border-color:var(--btn);box-shadow:none}
body.v4 .seg{background:var(--act)}
body.v4 .pill,body.v4 .fbt,body.v4 .save,body.v4 .kc,body.v4 .cpill{background:var(--act);border-color:transparent;color:var(--ink);font-size:14px}
body.v4 .pill:hover,body.v4 .fbt:hover,body.v4 .save:hover,body.v4 .kc:hover,body.v4 .cpill:hover{background:var(--btn);color:var(--on-btn);border-color:var(--btn)}
body.v4 .fbt.set{background:var(--btn);color:var(--on-btn)}
body.v4 .fbt .n{background:var(--em);color:#fff}
body.v4 .chip{background:var(--act);color:var(--ink)}
body.v4 .tg{border-color:var(--c-line);background:var(--em-soft);color:var(--em-deep)}
body.v4 .tg.g{background:var(--act);color:var(--ink2);border-color:transparent}
body.v4 .fld,body.v4 .opt,body.v4 .rooms,body.v4 .pop,body.v4 .lyr,body.v4 .sugg,body.v4 .dlg .box,body.v4 .note,body.v4 .panelc,body.v4 .st,body.v4 .empty,body.v4 .toast,body.v4 .mg,body.v4 .draw,body.v4 .drawbar,body.v4 .legend,body.v4 .maplibregl-popup-content{border-radius:var(--r)}
body.v4 .fld{border-color:var(--line-h)}body.v4 .fld:focus-within{border-color:var(--ink)}
body.v4 .opt input:checked{background:var(--btn);border-color:var(--btn)}
body.v4 .opt input:checked::after{border-color:var(--on-btn)}
body.v4 .tg2[aria-pressed=true],body.v4 .tg2[aria-checked=true]{background:var(--btn)}
body.v4 .hist i.in{background:var(--btn)}
body.v4 .toast{background:var(--rail);color:#fff}
body.v4 .num{font-variant-numeric:tabular-nums}

/* поле агента */
body.v4 .ai,body.v4 .q{border:1px solid var(--line-h);background:var(--card);box-shadow:none;border-radius:var(--r)}
body.v4 .ai:focus-within,body.v4 .q:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px var(--em-soft)}
body.v4 .ai{height:56px;padding-inline-start:16px}
body.v4 .ai .sp,body.v4 .q .sp{color:var(--em)}
body.v4 .ai .send{width:44px;height:44px;border-radius:var(--r)}
body.v4 .q{height:48px;border-radius:var(--r)}
body.v4 .q .go{border-radius:var(--r-sm)}
body.v4 .q .chipq{background:var(--em-soft);color:var(--em-deep)}

/* ленты и карточки */
body.v4 .rh h2{font-family:var(--disp);font-weight:800;font-size:24px;line-height:30px;position:relative;gap:10px}
body.v4 .rh h2 i{display:none}
body.v4 .rh p{margin-inline-start:0;color:var(--ink3);font-size:13px}
body.v4 .more{color:var(--em-ink);font-weight:500}
body.v4 .tr{grid-auto-columns:236px;gap:16px}
body.v4 .grid{gap:16px}
body.v4 .cd{border:0;border-radius:var(--r);background:var(--card);box-shadow:var(--sh)}
body.v4 .cd:hover{box-shadow:var(--sh-lg);transform:translateY(-2px)}
body.v4 .cd.re,body.v4 .cd.car,body.v4 .cd.pr{border-color:transparent}
body.v4 .cd .ph{aspect-ratio:4/3}
body.v4 .cd .lk::after,body.v4 .rw .lk::after{border-radius:var(--r)}
body.v4 .cd .tx{padding:10px 12px 12px;gap:2px}
body.v4 .cd .pr b{font-family:var(--disp);font-weight:700;font-size:18px;line-height:24px}
body.v4 .cd .per{font-family:Heebo,system-ui,sans-serif;font-weight:400;font-size:12px}
body.v4 .cd .ln{font-size:13px;color:var(--ink2)}
body.v4 .cd .hb{border-radius:var(--r-sm);background:rgba(0,0,0,.45);border:0;color:#fff;top:8px;left:8px}
body.v4 .cd .hb.on{color:#ffb4b4}
body.v4 .cd .ph .cnt,body.v4 .rw .ph .cnt{border-radius:var(--r-sm);background:rgba(0,0,0,.5)}
body.v4 .nophoto{background:var(--band);color:var(--ink3)}
body.v4 .cd .nophoto,body.v4 .rw .nophoto{background:var(--band)!important;color:var(--ink3)!important}
body.v4 .skph,body.v4 .sk i{background-color:var(--act)}

/* плашка агента: изумрудная площадь */
body.v4 .bn{background:var(--em);border:0;color:#fff;border-radius:var(--r);padding:20px 22px;gap:18px}
body.v4 .bn .art{background:rgba(255,255,255,.14);border-radius:var(--r);color:#fff;background-image:none}
body.v4 .bn h3{font-family:var(--disp);font-weight:800;font-size:20px;line-height:26px;color:#fff}
body.v4 .bn p{color:#d1fae5}
body.v4 .bn .go{background:#fff;color:#000;border-radius:var(--r);height:44px;padding:0 18px;font-weight:500}
body.v4 .bn .go:hover{background:var(--em-soft);color:#000}
body.v4 .bn.sm{padding:14px 16px}
body.v4 .bn.sv,body.v4 .cbn{background:var(--act);color:var(--ink);border:0;border-radius:var(--r)}
body.v4 .cbn h3,body.v4 .bn.sv h3{color:var(--ink)}
body.v4 .cbn p,body.v4 .bn.sv p{color:var(--ink2)}

/* полоса фильтров и список с картой */
body.v4.splitpage .mq,body.v4.s4page .mq{display:none}
body.v4 .fb{border-bottom:1px solid var(--line);background:var(--card);min-height:72px;padding:0 24px;gap:10px}
body.v4 .split{height:calc(100vh - 72px);height:calc(100dvh - 72px)}
body.v4 .lst{border-inline-end:1px solid var(--line);background:var(--bg)}
body.v4 .lt h1{font-family:var(--disp);font-weight:800;font-size:30px;line-height:32px;letter-spacing:0}
body.v4 .crumbs{font-size:13px}
body.v4 .st{border:0;background:var(--em-soft);border-radius:var(--r)}
body.v4 .st div+div{border-inline-start:1px solid rgba(4,120,87,.15)}
body.v4 .st small{color:var(--em-deep)}
body.v4 .st b{font-family:var(--disp);font-weight:700;color:var(--em-deep)}
body.v4 .rw{border:0;border-radius:var(--r);box-shadow:var(--sh);background:var(--card);grid-template-columns:200px 1fr;padding:0;padding-inline-end:16px;gap:16px;overflow:hidden}
body.v4 .rw:hover,body.v4 .rw.hot{box-shadow:var(--sh-lg);border:0}
body.v4 .rw.hot{outline:2px solid var(--em)}
body.v4 .rw .ph{border-radius:0;aspect-ratio:4/3}
body.v4 .rw .tx{padding:12px 0}
body.v4 .rw .l1 b{font-family:var(--disp);font-weight:700;font-size:20px;line-height:24px}
body.v4 .rw .l2{font-weight:500;font-size:15px}
body.v4 .rw .l3,body.v4 .rw .l4{color:var(--ink3);font-size:13px}
body.v4 .rw .nw{background:var(--em-soft);color:var(--em-deep);border-radius:var(--r-sm)}
body.v4 .rows.grid .rw{padding:0}
body.v4 .rows.panel{border:0;box-shadow:var(--sh);border-radius:var(--r)}
body.v4 .rows.panel .rw{box-shadow:none;border-radius:0;outline:0;padding:12px 16px 12px 12px;grid-template-columns:144px 1fr}
body.v4 .rows.panel .rw .ph{border-radius:var(--r-sm)}
body.v4 .rows.panel .rw.hot{box-shadow:inset 3px 0 0 var(--em)}
body.v4 .mk-p{border-radius:var(--r-sm);background:var(--em);color:#fff;border-color:var(--em);font-family:Heebo,system-ui,sans-serif;font-weight:500;font-size:13px;height:22px;padding:0 6px;box-shadow:var(--sh)}
body.v4 .mk-p::after{border-color:var(--em);background:var(--em)}
body.v4 .mk-p.ok{background:#fff;color:var(--em);border:2px solid var(--em);height:20px}
body.v4 .mk-p.ok::after{background:#fff;border-color:var(--em)}
body.v4 .mk-p.ok::before{background:var(--em)}
body.v4 .mk-p:hover,body.v4 .mk-p.hot,body.v4 .mk-p.on{background:var(--btn);color:var(--on-btn);border-color:var(--btn)}
body.v4 .mk-p:hover::after,body.v4 .mk-p.hot::after,body.v4 .mk-p.on::after{background:var(--btn);border-color:var(--btn)}
body.v4 .mk-p.seen{opacity:.75}
body.v4 .mk-city{border-radius:var(--r-sm);box-shadow:var(--sh);border:0;font-weight:500}
body.v4 .mk-city span{background:var(--em-soft);color:var(--em-deep)}
body.v4 .mg,body.v4 .draw{border:0;box-shadow:var(--sh)}
body.v4 .mg button{width:48px;height:48px}
body.v4 .mg button.on,body.v4 .draw.on{background:var(--btn);color:var(--on-btn)}
body.v4 .here{border-radius:var(--r)}
body.v4 .mk-me{background:var(--em)}

/* страницы разделов/категорий */
body.v4 .ph1 h1,body.v4 .ctop h1,body.v4 .csh h2,body.v4 .lmain h2,body.v4 .pp h1,body.v4 .pp h2,body.v4 .tt h1{font-family:var(--disp);font-weight:800;letter-spacing:0}
body.v4 .ph1 h1,body.v4 .ctop h1{font-size:30px;line-height:34px}
body.v4 .tab.on{border-color:var(--em);border-bottom-width:3px;color:var(--ink)}
body.v4 .tab .n{background:var(--em-soft);color:var(--em-deep)}
body.v4 .kid,body.v4 .tile,body.v4 .cat,body.v4 .mk,body.v4 .bd{border-radius:var(--r)}
body.v4 .kid.on,body.v4 .tile.on,body.v4 .cat.on{border-color:var(--btn)}
body.v4 .csum{background:var(--em-soft);border:0;border-radius:var(--r);color:var(--em-deep)}
body.v4 .csum svg{color:var(--em)}
body.v4 .bar2 i{background:var(--em-soft)}body.v4 .bar2 b{background:var(--em)}

/* страница объявления */
body.v4 .gal{border-radius:var(--r);gap:4px}
body.v4 .gal .all{border-radius:var(--r);background:#fff;color:#000;border:1px solid var(--line-h)}
body.v4 .tt h1{font-size:30px;line-height:34px}
body.v4 .lmain h2{font-size:24px;line-height:30px;font-weight:800}
body.v4 .lmain>section{border-top:0;padding:28px 0 4px}
body.v4 .facts div,body.v4 .pr-g div{border-radius:var(--r);background:var(--band)}
body.v4 .pcard{border:0;border-radius:var(--r);background:var(--band);box-shadow:none}
body.v4 .pcard .pr b{font-family:var(--disp);font-weight:800;font-size:28px;line-height:32px}
body.v4 .pcard .btn.p{height:48px;font-size:15px}
body.v4 .pcard .btn.o,body.v4 .sb{border-radius:var(--r);background:var(--card);border:1px solid var(--line-h)}
body.v4 .pcard .stt{color:var(--em-ink)}
body.v4 .scale .me i,body.v4 .scale .med{background:var(--em)}
body.v4 .scale .trk{background:var(--em-soft)}
body.v4 .lmap,body.v4 .lmap .cv{border-radius:var(--r)}
body.v4 .btabs a.on::after,body.v4 .bt-l.on::after{background:var(--em)}
body.v4 .sc,body.v4 .muni>ul>li{border-radius:var(--r);background:var(--band)}
body.v4 .mbar{box-shadow:0 -4px 16px rgba(0,0,0,.1);border:0}
body.v4 .mbar .btn.p{height:48px}
body.v4 .sel .av{background:var(--em-logo);color:#fff;font-family:var(--disp);font-weight:900}

/* главная v3 (если осталась) — герой проще */
body.v4 .hero{background:var(--bg);border-bottom:0}
body.v4 .hero:before{display:none}

/* ===== телефон ===== */
@media (max-width:1000px){
  :root{--rail-w:0px}
  nav.rail{display:none}
  .v4w{display:block}
  .mtop{display:flex;flex-direction:column;gap:2px;background:var(--rail);color:var(--rail-ink);padding:10px 12px 0}
  .mtop .mt1{display:flex;align-items:center;gap:10px;padding:0 4px 6px}
  .mtop .mlg{display:flex;align-items:center;gap:8px;color:#fff;flex:none}
  .mtop .mlg .wm{font-family:var(--disp);font-weight:800;font-size:22px;color:#fff}
  .mtop .mq{flex:1;display:flex;justify-content:space-between;align-items:center;height:44px;background:#fff;color:var(--ink3);border-radius:var(--r);padding:0 14px;font-size:15px;min-width:0}
  .mtop .mq svg{width:20px;height:20px;color:#000}
  :root[data-theme=dark] .mtop .mq{background:var(--card)}
  .mtop nav{display:flex}
  .mtop nav a,.mtop nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 9px;color:var(--rail-ink);font-family:var(--disp);font-weight:700;font-size:10px;line-height:14px;position:relative}
  .mtop nav a.on,.mtop nav button.on{color:var(--rail-on)}
  .mtop nav a.on::after{content:'';position:absolute;left:20%;right:20%;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--rail-on)}
  body.v4{padding-bottom:92px}
  body.v4.nomb{padding-bottom:0}
  .mbot{display:flex;position:fixed;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));height:58px;background:var(--card);border-radius:var(--r);box-shadow:0 5px 15px rgba(0,0,0,.2);align-items:center;justify-content:space-around;z-index:var(--z-nav)}
  .mbot a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;font-weight:500;color:var(--ink);min-width:56px}
  .mbot a svg{width:22px;height:22px}
  .mbot a.on{color:var(--em-ink)}
  .mbot a.pub i{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:var(--btn);color:var(--on-btn);margin-top:-22px;box-shadow:var(--sh)}
  body.moreopen{overflow:hidden}
  .morep{inset-inline-end:0;width:100vw;padding:64px 20px 28px;gap:24px;transform:translateY(4%)}
  .mcols{grid-template-columns:1fr;gap:28px}
  .morep .ml{gap:18px;font-size:15px}
  .pjs{grid-template-columns:1fr 1fr;gap:18px 16px}
  .pj small{font-size:12px;line-height:16px}
  .mft{flex-direction:column;align-items:stretch}
  .ft4{padding:20px 16px}
  .fw4{gap:12px}
  body.v4 .split{height:auto}
  body.v4 .fb{min-height:0;padding:10px 16px;position:sticky;top:0}
  body.v4 .rw{grid-template-columns:132px 1fr;padding-inline-end:12px;gap:12px}
  body.v4 .rw .l1 b{font-size:18px}
  body.v4 .mbar{bottom:0;padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  body.v4:has(.mbar) .mbot{display:none}
  body.v4:has(.mbar){padding-bottom:0}
  body.v4 .tr{grid-auto-columns:200px}
  body.v4 .ph1 h1,body.v4 .ctop h1,body.v4 .tt h1,body.v4 .lt h1{font-size:26px;line-height:30px}
  body.v4 .rh h2{font-size:20px;line-height:24px}
  body.v4 .gal{border-radius:0;margin:0 -16px}
  body.v4 .lp .top{padding:10px 0}
}
@media (max-width:1000px) and (min-width:720px){.mtop .mt1{padding:0 8px 6px}}
@media (prefers-reduced-motion:reduce){.morep{transition:none}}

/* ===== главная v4 (src/home_v4.tsx) ===== */
body.v4 .w{max-width:1440px;padding:0 24px}
.h5{font-family:var(--disp);font-weight:800;font-size:24px;line-height:30px;margin:0;letter-spacing:0}
.h6{font-family:var(--disp);font-weight:700;font-size:20px;line-height:24px;margin:0;letter-spacing:0}
.muted{color:var(--ink3)}
.band4{background:var(--band)}
.sec4{padding:32px 24px 56px}
.sh4{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.sh4 .h5{position:relative;padding-bottom:10px}
.sh4 .h5::after{content:'';position:absolute;inset-inline-start:0;bottom:0;width:28px;height:3px;border-radius:3px;background:var(--em)}
.sh4 .muted{font-size:13px}
.sh4 .btn{margin-inline-start:auto}
.sh4 .btn svg{width:18px;height:18px}
body.v4 .btn.sec{background:var(--act);color:var(--ink);border-color:var(--act)}
body.v4 .btn.sec:hover{background:var(--btn);color:var(--on-btn);border-color:var(--btn)}
body.v4 .btn.out{background:var(--card);color:var(--ink);border:1px solid var(--line-h)}
body.v4 .btn.out:hover{background:var(--btn);color:var(--on-btn);border-color:var(--btn)}
.g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.g6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
/* первый экран */
body.v4 .h4top{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start;padding-top:24px;padding-bottom:32px}
.h4l{display:flex;flex-direction:column;gap:16px}
.citysel{position:relative;display:flex;align-items:center;height:48px;border:1px solid var(--line-h);border-radius:var(--r);background:var(--card)}
.citysel select{appearance:none;flex:1;height:100%;border:0;outline:0;background:transparent;padding:0 16px;font:inherit;font-size:16px;color:var(--ink);cursor:pointer}
.citysel svg{position:absolute;inset-inline-end:14px;top:14px;transform:rotate(-90deg);pointer-events:none;width:20px;height:20px}
.citysel:focus-within{border-color:var(--ink)}
.tiles2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.tiles2>div{display:flex;flex-direction:column;gap:10px}
.tg4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tile4{display:flex;flex-direction:column;justify-content:space-between;gap:8px;background:var(--band);border-radius:var(--r);padding:12px;min-height:116px;color:var(--ink);transition:background .15s,transform .15s}
.tile4:hover{background:var(--act);color:var(--ink);transform:translateY(-2px)}
.tile4 svg{align-self:center;width:52px;height:52px;color:var(--em)}
.tile4 span{font-weight:500}
.tile4 small{display:block;font-size:12px;color:var(--ink3);font-weight:400}
:root[data-scheme=c] .tile4{background:var(--card)}
.agentb{background:var(--em);border-radius:var(--r);padding:40px;min-height:380px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;color:#fff;position:relative;overflow:hidden}
.agentb::before{content:'d';position:absolute;inset-inline-start:-20px;bottom:-70px;font-family:var(--disp);font-weight:900;font-size:300px;line-height:1;color:rgba(255,255,255,.06);pointer-events:none}
.agentb>div{display:flex;flex-direction:column;gap:12px;position:relative}
.agentb .kick{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;background:var(--em-deep);border-radius:var(--r-sm);padding:2px 10px;font-size:13px}
.agentb h1{margin:0;font-weight:900;font-size:40px;line-height:44px;color:#fff}
.agentb p{margin:0;font-size:15px;line-height:22px;max-width:440px;color:#d1fae5}
.agentb form{display:flex;gap:8px;flex-wrap:wrap;position:relative}
.agentb label{flex:1 1 260px;display:flex;align-items:center;gap:10px;height:48px;background:#fff;border-radius:var(--r);padding:0 14px;color:#000}
.agentb label .sp{color:var(--em);display:flex}
.agentb input{border:0;outline:0;flex:1;font:inherit;font-size:16px;min-width:0;background:transparent;color:#000}
.agentb .btn{background:#000;color:#fff}
.agentb .btn:hover{background:#4b4f5e}
.agentb .btn.on{background:var(--err)}
.agentb .sugw{position:relative;flex:1 1 100%}
.agentb .sug{position:absolute;top:4px;inset-inline:0;z-index:var(--z-pop);background:var(--card);color:var(--ink);border-radius:var(--r);box-shadow:var(--sh-lg);padding:6px;display:flex;flex-direction:column}
.agentb .sug .sg{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-sm);font-size:14px;color:var(--ink);text-align:start}
.agentb .sug .sg:hover,.agentb .sug .sg.on{background:var(--hov)}
.agentb .sug small{color:var(--ink3)}
/* карточка на фото */
.fc{position:relative;aspect-ratio:var(--ar,3/4);border-radius:var(--r);overflow:hidden;background:linear-gradient(160deg,#caccd8,#9396a8);color:#fff;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--sh);transition:transform .2s var(--ease),box-shadow .2s}
.fc:hover{transform:translateY(-2px);box-shadow:var(--sh-lg)}
.fc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.fc:hover img{transform:scale(1.03)}
.fc::before{content:'';position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,0) 15% 43%,rgba(0,0,0,.15) 55%,rgba(0,0,0,.6) 69%,rgba(0,0,0,.8));pointer-events:none;z-index:1}
.fc .lk{position:absolute;inset:0;z-index:2}
.fc .fl{position:relative;z-index:3;display:flex;gap:4px;flex-wrap:wrap;padding:12px;pointer-events:none}
.fc .fb4{position:relative;z-index:3;display:flex;flex-direction:column;gap:2px;padding:0 12px 12px;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.3)}
.fc .fb4 small{font-size:13px;line-height:20px;opacity:.9}
.fc .fb4 .tt{font-family:var(--disp);font-weight:700;font-size:20px;line-height:26px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.fc.big .fb4 .tt{font-size:24px;line-height:30px}
.fc .fb4 b{font-size:16px;line-height:22px;font-weight:700}
.fc .nophoto{position:absolute;inset:0;background:var(--band);color:var(--ink3)}
.fhb{position:absolute;top:10px;left:10px;z-index:4;width:32px;height:32px;border-radius:var(--r-sm);background:rgba(0,0,0,.35);color:#fff;backdrop-filter:blur(4px)}
.fhb:hover{background:rgba(0,0,0,.55);color:#fff}
.fhb.on{color:#ffb4b4}
.lbl{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:var(--r-sm);background:rgba(0,0,0,.5);backdrop-filter:blur(4px);color:#fff;font-size:13px;white-space:nowrap}
.lbl.g{background:var(--em-lite);color:#000}
/* карточка с содержимым */
.rc{position:relative;border-radius:var(--r);overflow:hidden;background:var(--card);box-shadow:var(--sh);display:flex;flex-direction:column;transition:transform .2s var(--ease),box-shadow .2s}
.rc:hover{transform:translateY(-2px);box-shadow:var(--sh-lg)}
.rc .ph{position:relative;aspect-ratio:3/4;background:linear-gradient(160deg,#d5d8e2,#9396a8);display:flex;flex-direction:column;justify-content:space-between;padding:16px;color:#fff;overflow:hidden}
.rc .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rc .ph::after{content:'';position:absolute;inset:auto 0 0 0;height:50%;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.07) 10%,rgba(0,0,0,.6));pointer-events:none}
.rc .ph>*{position:relative;z-index:1}
.rc .ph:hover{color:#fff}
.rc .fl{display:flex;gap:4px;flex-wrap:wrap}
.rc .fb4{display:flex;flex-direction:column;gap:2px;text-shadow:0 1px 2px rgba(0,0,0,.3)}
.rc .pl{display:flex;align-items:baseline;gap:8px}
.rc .pl b{font-family:var(--disp);font-weight:700;font-size:20px;line-height:24px}
.rc .pl small{font-size:13px}
.rc .ad{font-weight:500}
.rc .nophoto{position:absolute;inset:0;background:var(--band);color:var(--ink3)}
.rc .rcb{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px;font-size:13px;line-height:20px}
.rc .geo{display:flex;gap:4px;flex-wrap:wrap}
.rc .geo a{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--r-sm);background:var(--band);color:var(--ink3);font-size:13px}
.rc .geo a:hover{background:var(--act);color:var(--ink)}
.rc .ds{margin:0;color:var(--ink2);max-height:40px;overflow:hidden}
.rc .props{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.rc .props span{display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc .props svg{width:20px;height:20px;flex:none;color:var(--ink3)}
.rc .dt{display:flex;justify-content:space-between;color:var(--ink3);font-size:12px}
/* статистика цен: тёмные блоки */
.stat{background:var(--stat);color:#fff;border-radius:var(--r);padding:22px 16px 16px;display:flex;flex-direction:column;gap:12px}
.stat .sth{display:flex;justify-content:space-between;align-items:center}
.stat .cn{font-family:var(--disp);font-weight:800;font-size:24px;line-height:30px}
.stat .row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;border-top:1px solid var(--stat-line);padding-top:12px;font-size:14px}
.stat .row b{font-family:var(--disp);font-weight:700;font-size:20px}
.stat .row small{color:#aeaeae}
.stat .cnt{font-size:12px;color:#aeaeae;white-space:nowrap}
.stat .stl{color:var(--em-lite);font-size:13px;font-weight:500;margin-top:4px}
.stat .stl:hover{color:#fff}
/* города */
.cities{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.cities a{display:flex;justify-content:space-between;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;color:var(--ink)}
.cities a:hover{border-color:var(--ink)}
.cities a span{font-weight:500}.cities a small{color:var(--ink3);font-size:13px}
/* блок «есть квартира?» */
.sub4{background:var(--act);border-radius:var(--r);padding:35px 50px;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.sub4>div{display:flex;flex-direction:column;gap:12px;max-width:560px}
.sub4 h2{margin:0;font-weight:800;font-size:30px;line-height:34px}
.sub4 p{margin:0}
.sub4 .acts{display:flex;gap:8px;flex-wrap:wrap}
:root[data-scheme=c] .sub4,:root[data-scheme=c] .cities a{background:var(--card)}
@media (max-width:1240px){.g6{grid-template-columns:repeat(4,minmax(0,1fr))}.cities{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1000px){
  body.v4 .w{padding:0 16px}
  .sec4{padding:24px 16px 32px}
  body.v4 .h4top{grid-template-columns:1fr;padding:16px 16px;gap:16px}
  .citysel{display:none}
  .tiles2{grid-template-columns:1fr;gap:12px}
  .tg4{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .tile4{min-height:96px;padding:10px;font-size:14px}
  .tile4 svg{width:40px;height:40px}
  .tile4 small{display:none}
  .agentb{padding:20px;min-height:0;gap:16px}
  .agentb h1{font-size:26px;line-height:30px}
  .agentb p{font-size:13px}
  .agentb form{flex-wrap:nowrap}
  .agentb form .btn{width:48px;padding:0;flex:none}
  .agentb form .btn span,.agentb form .btn[type=submit]{display:none}
  .g4,.g6,.cities{display:flex;overflow-x:auto;scrollbar-width:none;gap:10px;margin:0 -16px;padding:0 16px 4px;scroll-snap-type:x proximity}
  .g4::-webkit-scrollbar,.g6::-webkit-scrollbar{display:none}
  .g4>*,.g6>*{flex:0 0 260px;scroll-snap-align:start}
  .g6>*{flex-basis:200px}
  .g4.stats>*{flex-basis:230px}
  .g4.rcs>*{flex-basis:280px}
  .cities{display:flex;flex-wrap:wrap;margin:0;padding:0;gap:8px}
  .cities a{border:0;background:var(--act);height:36px;padding:0 14px;border-radius:999px;gap:8px}
  .sh4{margin-bottom:12px;gap:10px}
  .sh4 .h5{font-size:20px;line-height:24px;padding-bottom:8px}
  .sh4 .btn{height:32px;padding:0 12px;font-size:13px}
  .sh4 .muted{flex:1 1 100%;order:3}
  .sub4{padding:20px}
  .sub4 h2{font-size:24px;line-height:28px}
  .sub4 svg{display:none}
  .stat{padding:16px 14px}
  .stat .cn{font-size:20px}
}

/* ===== поиск v4 (src/search_v4.tsx; LUN: список ≤756px + липкая карта 50 %, карточки 2 в ряд, панель фильтров поверх) ===== */
.disp{font-family:var(--disp);letter-spacing:0}
body.v4 .btn.out{background:var(--card);color:var(--ink);border:1px solid var(--line-h)}
body.v4 .btn.out:hover{background:var(--btn);color:var(--on-btn);border-color:var(--btn)}
.v4p>.s4{width:100%}
.s4{display:flex;align-items:flex-start}
.s4l{flex:1 0 50%;max-width:756px;min-width:0;padding:24px;display:flex;flex-direction:column;gap:20px;box-sizing:border-box}
.s4 .mp{flex:1 1 50%;min-width:0;position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden}
.srow{display:flex;gap:8px;flex-wrap:wrap;position:relative;z-index:var(--z-bar)}
body.v4 .q4{flex:1 1 360px;width:auto;min-width:0;height:48px;padding:0;gap:0;border-radius:var(--r);overflow:visible}
body.v4 .q4 .cb{display:flex;align-items:center;gap:6px;height:100%;max-width:46%;padding:0 12px;border-inline-end:1px solid var(--line-h);font-size:15px;white-space:nowrap;color:var(--ink);border-radius:var(--r) 0 0 var(--r)}
body.v4 .q4 .cb span{overflow:hidden;text-overflow:ellipsis}
body.v4 .q4 .cb svg{color:var(--em);flex:none}
body.v4 .q4 .cb:hover{background:var(--band)}
body.v4 .q4 input{padding:0 12px;font-size:15px;height:100%}
body.v4 .q4 .go{width:40px;height:40px;margin-inline-end:4px;border-radius:var(--r-sm);flex:none}
body.v4 .q4 .sugg{border-radius:var(--r);top:calc(100% + 4px)}
.fbtn{height:48px;padding:0 16px;gap:8px;flex:none}
.fcnt{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--em);color:#fff;font-size:12px;font-weight:500;line-height:1}
.fcnt[hidden]{display:none}
.fbtn:hover .fcnt{background:#fff;color:#000}
.tchips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:-2px 0}
.tchips::-webkit-scrollbar{display:none}
.chip4{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 16px;border-radius:var(--r);background:var(--act);color:var(--ink);font-size:15px;white-space:nowrap;border:0;cursor:pointer;font-family:inherit;flex:none;transition:background .15s,color .15s}
.chip4:hover,.chip4.on{background:var(--btn);color:var(--on-btn)}
.chip4.sm{height:32px;font-size:13px;padding:0 12px}
.chip4.ic{padding:0 10px}
.chip4.ok{background:var(--em);color:#fff}
.chip4.on svg,.chip4:hover svg{color:inherit}
.lh4{display:flex;flex-direction:column;gap:12px}
.lh4 .crumbs{font-size:13px;color:var(--ink3)}
.lh4 .crumbs b.s{color:var(--ink)}
body.v4 .lh4 .lt{align-items:flex-start;margin:0;gap:16px}
body.v4 .lt h1{font-family:var(--disp);font-weight:800;font-size:30px;line-height:32px;letter-spacing:0}
body.v4 .lh4 .lt p{font-size:13px;margin-top:6px;color:var(--ink3)}
.lh4 .tools{display:flex;gap:8px;flex:none}
body.v4 .lh4 .save{height:36px;border:0;border-radius:var(--r);background:var(--act);color:var(--ink);font-size:15px;padding:0 12px}
body.v4 .lh4 .save:hover{background:var(--btn);color:var(--on-btn)}
body.v4 .lh4 .save.on{background:var(--em-soft);color:var(--em-deep)}
.srt{display:flex;gap:8px;align-items:center;font-size:13px;flex-wrap:wrap}
.srt .muted{color:var(--ink3)}
.chw{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.chw:has(.chips:empty){display:none}
body.v4 .chw .chips{margin:0}
body.v4 .chw .chip{height:32px;border-radius:var(--r);background:var(--band);color:var(--ink);padding:0 6px 0 12px;font-size:13px;border:1px solid var(--line)}
.chw .clr{font-size:13px;color:var(--ink2);text-decoration:underline}
body.v4 .cityonly{font-size:13px;margin:0;color:var(--ink3)}
body.v4 .st[hidden]{display:none}
body.v4 .s4 .rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:0;align-items:start}
.s4 .rows .rc{border:1px solid var(--act);box-shadow:none;transform:none;cursor:pointer}
.s4 .rows .rc:hover{box-shadow:var(--sh);transform:none}
.s4 .rows .rc.hot{box-shadow:0 0 0 2px var(--em)}
.rc .ph .ad{font-weight:500;font-size:15px;line-height:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc .dots{display:flex;gap:4px;justify-content:center;margin-top:4px}
.rc .dots i{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.6);display:block}
.rc .dots i.on{width:7px;height:7px;background:#fff;margin-top:-1px}
.rc .pl small{font-size:13px;font-weight:400}
.rc .pl .np{font-size:15px;font-weight:500}
.rc .rcb{padding:16px;gap:10px;font-size:13px;line-height:22px}
.rc .ds{max-height:44px;color:var(--ink2);line-height:22px}
.rc .geo a[data-geo]{cursor:pointer}
.blk,.agentb4,.more4,.empty.e4{grid-column:1/-1}
.blk{display:flex;flex-direction:column;gap:14px;padding:8px 0}
.blk .h5{font-size:24px;line-height:30px}
.blk .muted{margin:0;font-size:13px;color:var(--ink3)}
.blk .bh{display:flex;justify-content:space-between;align-items:center;gap:12px}
.chips4{display:flex;gap:8px;flex-wrap:wrap}
.pform{display:flex;gap:8px;flex-wrap:wrap}
body.v4 .pform .fld.fill{flex:1 1 120px;background:var(--act);border-color:var(--act);border-radius:var(--r);height:48px;padding:6px 14px;display:flex;flex-direction:column;justify-content:center}
body.v4 .pform .fld.fill:focus-within{border-color:var(--ink)}
body.v4 .pform .fld input{font-size:16px}
.pform .btn{flex:1 1 160px;height:48px}
.scs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sc{background:var(--em-soft);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--em-deep);min-width:0}
.sc b{font-family:var(--disp);font-size:28px;line-height:32px;font-weight:800;color:var(--ink);white-space:nowrap;letter-spacing:-.01em}
.sc .muted{font-size:12px;color:var(--em-deep);opacity:.8}
:root[data-theme=dark] .sc{color:var(--ink2)}:root[data-theme=dark] .sc .muted{color:var(--ink3)}
body.v4 .btn.sq{width:48px;padding:0;flex:none}
body.v4 .more4{height:48px;justify-content:center;margin:0;width:100%}
.agentb4{background:var(--act);border-radius:var(--r);padding:24px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.agentb4>div{flex:1 1 300px;display:flex;flex-direction:column;gap:6px}
.agentb4 b{font-family:var(--disp);font-size:20px;line-height:26px;font-weight:800}
.agentb4 .muted{font-size:13px;color:var(--ink2)}
body.v4 .empty.e4{border:1px dashed var(--line-h);border-radius:var(--r);background:var(--card)}
.sk4{border:1px solid var(--act);pointer-events:none}
.sk4 .ph{aspect-ratio:3/4;background:var(--act);animation:skp 1.2s ease-in-out infinite}
.sk4 .rcb i{display:block;height:12px;border-radius:4px;background:var(--act)}
@keyframes skp{50%{opacity:.55}}
.sf4{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--ink3);padding-top:12px;border-top:1px solid var(--act)}
.sf4 a{color:var(--ink3)}.sf4 a:hover{color:var(--ink)}
body.v4 .s4 .lf{padding:0;font-size:12.5px;color:var(--ink3)}
/* карта: контролы 48px внизу слева (зеркало LUN), слои рядом */
body.v4 .s4 .mc{top:auto;bottom:16px;left:16px;gap:8px}
body.v4 .s4 .mg{border:0;border-radius:var(--r-sm);box-shadow:0 0 4px rgba(0,0,0,.05),0 4px 8px rgba(0,0,0,.1);background:var(--card)}
body.v4 .s4 .mg button{width:48px;height:48px}
body.v4 .s4 .mg button+button{border-top:1px solid var(--act)}
body.v4 .s4 .mg button.on,body.v4 .s4 .mg .draw.on{background:var(--btn);color:var(--on-btn)}
body.v4 .s4 .draw{position:static;height:48px;width:48px;padding:0;border:0;box-shadow:none;border-radius:0;justify-content:center;display:grid;place-items:center;background:var(--card);color:var(--ink);font-size:0;gap:0}
body.v4 .s4 .draw svg{width:20px;height:20px}
body.v4 .s4 .drawbar{top:auto;bottom:16px;left:72px;right:auto;border-radius:var(--r)}
body.v4 .s4 .lyr{top:auto;bottom:16px;left:72px;border-radius:var(--r)}
body.v4 .s4 .here{top:16px;height:40px;border-radius:var(--r)}
body.v4 .s4 .legend{bottom:16px;right:16px;border-radius:var(--r-sm);border:0;box-shadow:0 0 4px rgba(0,0,0,.05),0 4px 8px rgba(0,0,0,.1)}
body.v4 .s4 .mstat{bottom:72px;border-radius:var(--r)}
/* панель фильтров: поверх списка, карта видна */
.fsheet{position:fixed;top:0;bottom:0;inset-inline-start:var(--rail-w);width:756px;max-width:calc(100vw - var(--rail-w));background:var(--card);color:var(--ink);z-index:var(--z-modal);display:flex;flex-direction:column;box-shadow:0 0 6px rgba(0,0,0,.05),0 4px 16px rgba(0,0,0,.1);transform:translateX(8%);opacity:0;transition:transform .25s var(--ease),opacity .2s}
.fsheet.open{transform:none;opacity:1}
.fsheet[hidden]{display:none}
.fsheet header{display:flex;align-items:center;justify-content:center;height:64px;border-bottom:1px solid var(--line-h);position:relative;flex:none}
.fsheet h2{margin:0;font-family:var(--disp);font-weight:700;font-size:20px}
.fsheet #fclose{position:absolute;inset-inline-end:16px;top:12px;width:40px;height:40px;border-radius:var(--r);display:grid;place-items:center;color:var(--ink)}
.fsheet #fclose:hover{background:var(--act)}
.fsb{flex:1;overflow-y:auto;padding:0 24px 24px;display:flex;flex-direction:column;overscroll-behavior:contain}
.fsb .tchips{padding:16px 0 8px;margin:0;flex-wrap:wrap;overflow:visible}
.fsb .pop{position:static;width:auto!important;max-width:none;border:0;border-top:1px solid var(--act);border-radius:0;box-shadow:none;opacity:1;transform:none;pointer-events:auto;display:block;padding:20px 0;background:none;transition:none}
.fsb .pop .pb{padding:0}
.fsb .pop h4{font-family:var(--disp);font-weight:800;font-size:20px;line-height:24px;color:var(--ink);margin-bottom:14px}
.fsb .pop h4+h4,.fsb .pop .pb>h4:not(:first-child){font-size:16px;line-height:22px;margin-top:16px!important}
.fsb .pop .pf{display:none}
.fsb #pop-price{order:-1;border-top:0}
.fsb:has(.tchips) #pop-price{border-top:1px solid var(--act)}
.fsb:has(.tchips) #pop-type{display:none}
body.v4 .fsb .rng{grid-template-columns:1fr 1fr;gap:12px;margin-top:0}
body.v4 .fsb .fld{height:48px;border-radius:var(--r);border-color:var(--line-h);padding:6px 14px;display:flex;flex-direction:column;justify-content:center}
body.v4 .fsb .fld input{font-size:16px}
.fsb .qp{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
body.v4 .fsb .hist{height:56px;margin:0 2px 0}
body.v4 .fsb .hax{margin-bottom:14px}
body.v4 .fsb .opts{gap:8px}
body.v4 .fsb .opt{height:44px;border-radius:var(--r);font-size:15px}
body.v4 .fsb .rooms{border:0;gap:8px;overflow:visible;flex-wrap:wrap}
body.v4 .fsb .rooms button{flex:none;width:48px;height:36px;border:0;border-radius:var(--r);background:var(--act);font-size:15px;color:var(--ink)}
body.v4 .fsb .rooms button:first-child{width:auto;padding:0 16px}
body.v4 .fsb .rooms button.on,body.v4 .fsb .rooms button.on.edge{background:var(--btn);color:var(--on-btn)}
body.v4 .fsb .rhint{font-size:13px}
body.v4 .fsb .sw{padding:12px 0;font-size:15px}
.fsheet footer{display:flex;gap:12px;padding:16px 24px;border-top:1px solid var(--line-h);flex:none;padding-bottom:calc(16px + env(safe-area-inset-bottom))}
.fsheet footer .btn{flex:1;height:48px}
body.fopen{overflow:hidden}
#fscrim{background:rgba(0,0,0,.2);backdrop-filter:none;z-index:calc(var(--z-modal) - 1)}
/* мобильная плавающая полоса: חיפוש | סינון | מפה */
.mfb{display:none}
@media (max-width:1000px){
  .s4{display:block}
  .s4l{max-width:none;padding:12px 16px 24px;gap:16px}
  .s4 .mp{position:fixed;inset:0;top:var(--mtop,0px);height:auto;display:none;z-index:var(--z-mapfull)}
  body.mapmode .s4 .mp{display:block}
  .srow{position:sticky;top:0;z-index:var(--z-bar);background:var(--bg);padding:8px 0;margin:-8px 0}
  body.v4 .lt h1{font-size:26px;line-height:30px}
  .lh4 .tools .save span{display:none}
  .mfb{display:flex;position:fixed;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));height:58px;background:var(--card);border-radius:var(--r);box-shadow:0 5px 15px rgba(0,0,0,.2);z-index:var(--z-fab);overflow:hidden}
  .mfb button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;font-size:15px;font-weight:500;color:var(--ink);border:0;background:none;position:relative;height:100%}
  .mfb button+button{border-inline-start:1px solid var(--act)}
  .mfb button svg{width:22px;height:22px}
  body.v4 .mfb .fab{position:static;transform:none;height:100%;padding:0;border-radius:0;background:none;color:var(--ink);box-shadow:none;display:flex}
  body.v4 .mfb .fab:active{transform:none}
  body.mapmode .mfb .fab{color:var(--em-ink)}
  body.v4.s4page{padding-bottom:92px}
  body.v4 .s4 .rows{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .fsheet{inset-inline-start:0;width:100vw;max-width:none;transform:translateY(6%)}
  .fsb{padding:0 16px 16px}
  .fsheet footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
  .scs{gap:6px}
  .sc{padding:12px 10px;font-size:12px}
  .sc b{font-size:19px;line-height:24px}
  body.v4 .s4 .mc{bottom:96px}
  body.v4 .s4 .legend,body.v4 .s4 .drawbar{bottom:96px}
  body.v4 .s4 .lyr{bottom:96px}
  body.v4 .s4 .mstat{bottom:160px}
  body.v4 .s4 .attr{bottom:84px}
}
@media (max-width:725px){
  body.v4 .s4 .rows{grid-template-columns:1fr;gap:16px}
  .s4 .rows .rc{border-radius:0;border:0;margin:0 -16px;width:calc(100% + 32px)}
  .s4 .rows .rc .ph{aspect-ratio:3/4;max-height:72vh}
  .srow .fbtn{display:none}
  .scs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .blk .h5{font-size:20px;line-height:26px}
  .agentb4{padding:20px 16px}
}

/* ===== объявление v4 (src/listing_v4.tsx; LUN «объект»: контент 66 % + липкая панель 34 %, галерея 16:9) ===== */
body.v4 .lp4{max-width:1440px;padding:16px 24px 64px}
.l4{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.l4m{flex:1 1 560px;min-width:0;max-width:66%;display:flex;flex-direction:column}
.side4{flex:1 1 300px;max-width:34%;position:sticky;top:16px;display:flex;flex-direction:column;gap:12px}
body.v4 .lp4 .c4{display:flex;gap:6px;font-size:13px;color:var(--ink3);padding:0 0 12px;flex-wrap:wrap;align-items:center;white-space:normal;overflow:visible}
.c4 a{color:var(--ink3)}.c4 a:hover{color:var(--ink)}.c4 svg{flex:none}
.gal4{position:relative;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:linear-gradient(160deg,#d5d8e2,#9396a8)}
.gal4 .g4img{position:absolute;inset:0;width:100%;height:100%;padding:0;background:none;cursor:zoom-in;display:block}
.gal4 img{width:100%;height:100%;object-fit:cover;display:block}
.gal4 .fl{position:absolute;top:16px;inset-inline-start:16px;display:flex;gap:4px;flex-wrap:wrap;pointer-events:none;max-width:70%}
.gal4 .arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:none;padding:0;inset-inline-start:8px;z-index:2}
.gal4 .arrow.nx{inset-inline-start:auto;inset-inline-end:8px}
.gal4 .arrow span{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r);background:#000;color:#fff;transition:background .15s}
.gal4 .arrow:hover span{background:#4b4f5e}
.gal4 .arrow.pv svg{transform:scaleX(-1)}
.gal4 .dots{position:absolute;bottom:16px;left:0;right:0;display:flex;justify-content:center;gap:4px;pointer-events:none}
.gal4 .dots i{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.6);display:block}
.gal4 .dots i.on{width:7px;height:7px;background:#fff;margin-top:-1px}
body.v4 .gal4 .g4n{position:absolute;bottom:16px;inset-inline-end:16px;height:36px;padding:0 12px;font-size:13px;z-index:2}
.gal4.nop{display:grid;place-items:center;color:var(--ink3);background:var(--band);text-align:center;font-size:14px;line-height:1.6}
.gal4.nop svg{width:28px;height:28px}
.sec4{display:flex;flex-direction:column;gap:16px;padding:32px 0 0}
body.v4 .lp4 .sec4>h2{margin:0;font-size:24px;line-height:30px;display:block}
.ph4{gap:10px}
.pr4{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
body.v4 .pr4 h1{margin:0;font-family:var(--disp);font-weight:800;font-size:30px;line-height:32px;letter-spacing:0}
.pr4 h1 small{font-size:15px;font-weight:400;font-family:Heebo,system-ui,sans-serif;color:var(--ink)}
.pr4 .muted,.pr4 s{font-size:13px;color:var(--ink3)}
.pr4>svg{color:var(--em);align-self:center}
.addr{margin:0;font-weight:500;font-size:18px;line-height:24px}
.subl4{margin:0;font-size:13px;color:var(--ink3)}
.geo4{display:flex;gap:4px;flex-wrap:wrap}
.geo4 a{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--r-sm);background:var(--band);border:1px solid var(--band);color:var(--ink3);font-size:13px}
.geo4 a:hover{border-color:var(--line-h);color:var(--ink3)}
.det{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;font-size:13px;line-height:20px;padding-top:8px}
.det span{display:flex;align-items:center;gap:8px;min-width:0}
.det>span>svg{width:20px;height:20px;flex:none;color:var(--ink3)}
.det .ok>svg{color:var(--em)}
.det.t4{padding-top:0}
body.v4 .lp4 .have{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}
body.v4 .lp4 .have div{border:0;padding:0;font-size:13px;line-height:20px;gap:8px}
body.v4 .lp4 .have i{width:20px;height:20px;border-radius:50%}
body.v4 .lp4 .have .y i{background:var(--em-soft);color:var(--em-deep)}
body.v4 .lp4 .desc{font-size:15px;line-height:22px;max-width:640px}
body.v4 .lp4 .desc.clamp{max-height:calc(22px * 6)}
body.v4 .lp4 .dsc-t{gap:8px;margin-top:0;align-items:center}
body.v4 .lp4 .dsc-t button{text-decoration:none;height:40px;padding:0 16px;border-radius:var(--r);border:1px solid var(--line-h);background:var(--card);color:var(--ink)}
body.v4 .lp4 .dsc-t button:hover{background:var(--btn);color:var(--on-btn);border-color:var(--btn)}
body.v4 .lp4 .dsc-t span{font-size:13px}
.ctx4{background:var(--band);border-radius:var(--r);padding:20px;display:flex;flex-direction:column;gap:14px}
body.v4 .ctx4 .pr-s{font-size:15px;line-height:22px;margin:0}
body.v4 .ctx4 .pr-g{margin-top:0}
body.v4 .ctx4 .pr-g div{background:var(--card)}
body.v4 .ctx4 .lowdata{margin:0}
body.v4 .lp4 .lmap{height:360px;border-radius:var(--r);border:0}
body.v4 .lp4 .where{font-size:15px;line-height:22px;color:var(--ink2);margin:0}
body.v4 .lp4 .where b{font-weight:500;color:var(--ink)}
body.v4 .lp4 .qa{border:0;border-radius:0;background:none;overflow:visible}
body.v4 .lp4 .qa details{border-top:1px solid var(--act)}
body.v4 .lp4 .qa details:first-child{border-top:0}
body.v4 .lp4 .qa summary{padding:12px 0;font-weight:500;font-size:15px;border-radius:0}
body.v4 .lp4 .qa summary:hover{background:none;color:var(--em-ink)}
body.v4 .lp4 .qa summary svg{margin-inline-start:auto;color:var(--ink3);transition:transform .2s;flex:none}
body.v4 .lp4 .qa details[open] summary svg{transform:rotate(-90deg)}
body.v4 .lp4 .qa .an{padding:0 0 14px;font-size:15px;line-height:22px}
body.v4 .lp4 .qa .an>svg{color:var(--em);flex:none;margin-top:2px}
body.v4 .lp4 .qa .ask{border-radius:var(--r);height:36px;background:var(--act);border:0;padding:0 14px;font-size:13px}
body.v4 .lp4 .qa .ask:hover{background:var(--btn);color:var(--on-btn)}
body.v4 .lp4 .qf{height:48px;border-radius:var(--r);border:1px solid var(--line-h);padding:0 4px 0 14px;margin:0;box-shadow:none;gap:8px;background:var(--card)}
body.v4 .lp4 .qf:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px var(--em-soft)}
body.v4 .lp4 .qf .sp{color:var(--em)}
body.v4 .lp4 .qf input{font-size:15px}
body.v4 .lp4 .qf button{width:auto;height:40px;padding:0 16px;border-radius:var(--r-sm);font-size:15px}
body.v4 .lp4 .qnote{font-size:13px;color:var(--ink3);margin:0}
.g4c{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
body.v4 .lp4 .g4c .fc .fb4 b{font-size:20px}
body.v4 .lp4 .sim4more{align-self:stretch;height:48px}
body.v4 .lp4 .sim{margin:0;padding-top:32px}
body.v4 .lp4 .sim .muted{margin:0;font-size:13px}
/* закреплённая панель */
body.v4 .p4{background:var(--band);border-radius:var(--r);padding:20px;display:flex;flex-direction:column;gap:14px;border:0;box-shadow:none}
.p4h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.p4p{min-width:0}
.p4p b{font-family:var(--disp);font-weight:800;font-size:24px;line-height:30px}
.p4p small{font-size:13px;color:var(--ink3);margin-inline-start:6px}
.p4a{font-size:13px;line-height:18px;margin-top:2px}
.p4b{display:flex;gap:4px;flex:none}
body.v4 .p4b .chip4{background:var(--card);padding:0 8px;height:36px;min-width:36px;justify-content:center}
body.v4 .p4b .chip4:hover{background:var(--btn);color:var(--on-btn)}
body.v4 .p4b .chip4.on{color:var(--heart)}
body.v4 .p4b .chip4.on svg path{fill:currentColor}
.agrow{display:flex;align-items:center;gap:10px;font-size:13px;line-height:18px}
.agrow .lgm{border-radius:50%;flex:none;font-size:22px}
.agrow b{font-weight:500}
body.v4 .p4 .bt{display:flex;flex-direction:column;gap:8px;margin:0}
body.v4 .p4 .btn{height:48px;width:100%;border-radius:var(--r);font-size:15px;font-weight:500;gap:8px}
body.v4 .p4 .btn.p{background:var(--btn);color:var(--on-btn)}
body.v4 .p4 .btn.o{background:var(--card);color:var(--ink);border:1px solid var(--line-h)}
body.v4 .p4 .btn.o:hover{background:var(--btn);color:var(--on-btn);border-color:var(--btn)}
body.v4 .p4 .hint{font-size:12px;line-height:18px;text-align:start;color:var(--ink3);margin:0}
body.v4 .p4 .stt{margin:0;padding:0;border:0;color:var(--em-ink)}
body.v4 .p4 .cx h4{font-family:var(--disp);font-weight:800;font-size:18px}
body.v4 .p4 .avail{margin:0}
body.v4 .p4 .offer{border-radius:var(--r)}
.p4l{display:flex;flex-direction:column;gap:6px;font-size:13px;padding:0 4px;color:var(--ink3);align-items:flex-start}
.p4l a,.p4l button{display:flex;align-items:center;gap:8px;color:var(--ink3);font-size:13px;padding:0;background:none;border:0;font-family:inherit;cursor:pointer}
.p4l a:hover,.p4l button:hover{color:var(--ink)}
.p4l svg{width:16px;height:16px;flex:none}
body.v4 .side4 .shab{font-size:12.5px;color:var(--ink3);display:flex;gap:8px;padding:0 4px;margin:0;line-height:18px}
body.v4 .side4 .shab svg{flex:none;width:16px;height:16px}
@media (max-width:1000px){
  body.v4 .lp4{padding:0 16px 24px}
  .l4{gap:16px}
  .l4m{max-width:none;flex-basis:100%}
  .side4{max-width:none;position:static;flex-basis:100%}
  body.v4 .lp4 .c4{padding:12px 0}
  body.v4 .gal4{border-radius:0;margin:0 -16px;aspect-ratio:4/3}
  .gal4 .arrow{display:none}
  .det,body.v4 .lp4 .have{grid-template-columns:repeat(2,minmax(0,1fr))}
  .g4c{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.v4 .pr4 h1{font-size:28px;line-height:32px}
  .sec4{padding-top:24px}
  body.v4 .lp4 .lmap{height:280px}
  body.v4 .mbar.m4{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--card);border:0;box-shadow:0 -4px 16px rgba(0,0,0,.1)}
  .mn4{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink2);line-height:16px}
  .mn4 .lgm{flex:none;border-radius:50%;font-size:14px}
  .mb4{display:flex;gap:8px}
  .mb4 .btn{flex:1;height:48px;padding:0 12px;font-size:15px}
  .mb4 .btn.sq{flex:none;width:48px;padding:0}
  body.v4:has(.m4) .lp4{padding-bottom:150px}
}

/* ---------- цены v4 (макет specs/design/mockups/Prices.dc.html): изумрудный герой по центру, тёмные плитки-сводки и карточки
   с колонками, белая карточка оценки, таблицы рахуов/городов. Тёмные плитки не зависят от схемы — всегда «чёрные». ---------- */
.pp4{display:flex;flex-direction:column;--dk:#131010;--dk-ink:#eeeeea;--dk-mute:#aeaeae;--dk-bar:#34d399;--dk-past:#6f6f6f}
:root[data-theme=dark] .pp4{--dk:var(--card)}
.phero{background:var(--em);color:#fff;text-align:center;padding:56px 24px 48px;display:flex;flex-direction:column;align-items:center;gap:16px}
.phero .kick{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:var(--r-sm);background:var(--em-deep);color:#d1fae5;font-size:13px;font-weight:500}
body.v4 .phero h1{font-size:56px;line-height:60px;font-weight:900;color:#fff;margin:0;max-width:960px}
.phero p{color:#d1fae5;font-size:17px;line-height:26px;max-width:640px;margin:0}
.phero .row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:8px}
.citysel.light{border-color:transparent;background:#fff;color:#111;min-width:220px}
.citysel.light select{color:#111}
.seg4{display:inline-flex;height:48px;background:rgba(0,0,0,.18);border-radius:var(--r);padding:4px;gap:4px}
.seg4 a{display:flex;align-items:center;padding:0 16px;border-radius:6px;color:#fff;font-weight:500;font-size:14px;text-decoration:none}
.seg4 a.on{background:#fff;color:#111}
.seg4 a:not(.on):hover{background:rgba(255,255,255,.12)}
.pbody{display:flex;flex-direction:column;gap:32px;padding-top:20px;padding-bottom:64px;width:100%}
.pbody>.crumbs{margin:0}
.dks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.dks.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.dk{background:var(--dk);color:var(--dk-ink);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:8px;min-width:0}
.dk .lab{color:var(--dk-mute);font-size:13px;line-height:18px}
.dk>b{font-size:36px;line-height:40px;font-weight:800;color:#fff}
.dk .up,.dk .dn{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--r-sm);font-size:13px;font-weight:600;background:rgba(134,255,142,.14);color:#86ff8e}
.dk .dn{background:rgba(255,56,86,.16);color:#ff6b84}
.dk .up,.dk .dn{direction:ltr;unicode-bidi:isolate}
.dk>span{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.dkh{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
body.v4 .dkh .h5{color:#fff;font-size:20px;line-height:24px}
.chart4{display:flex;align-items:flex-end;gap:8px;height:190px;padding-top:24px;margin-top:8px}
.chart4 i{flex:1;background:var(--dk-bar);border-radius:4px 4px 0 0;position:relative;min-width:0}
.chart4 i.c{background:var(--dk-past)}
.chart4 i::after{content:attr(data-v);font-style:normal;position:absolute;bottom:100%;left:0;right:0;text-align:center;font-size:12px;line-height:18px;color:var(--dk-ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.ax4{display:flex;gap:8px;margin-top:8px}
.ax4 span{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;font-size:12px;line-height:16px;color:var(--dk-mute);white-space:nowrap;overflow:hidden}
.ax4 small{font-size:11px;color:var(--dk-past)}
.estc{background:var(--card);border:1px solid var(--line-h);border-radius:var(--r);padding:24px;display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:24px;align-items:start}
.estc .h5{margin-bottom:6px}
.estc .muted{font-size:14px;line-height:20px;display:block}
.estc .est-f .go .btn{height:48px}
.estc .est-f .src{margin-top:0}
.ptbl{display:flex;flex-direction:column;border:1px solid var(--line-h);border-radius:var(--r);background:var(--card);overflow:hidden}
.ptbl .tr{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;align-items:center;padding:0 20px;height:52px;border-top:1px solid var(--line-h);color:inherit;text-decoration:none;font-size:15px}
.ptbl.c4 .tr{grid-template-columns:2fr 1fr 1fr 2fr}
.ptbl .tr:first-child{border-top:0}
.ptbl .tr.th{height:44px;background:var(--band);font-size:13px;color:var(--ink3);font-weight:500}
.ptbl a.tr:hover{background:var(--hov,var(--act))}
.ptbl .tr b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ptbl.white{padding:4px 16px}
.bar4{height:8px;background:var(--act);border-radius:4px;overflow:hidden}
.bar4 i{display:block;height:100%;background:var(--em);border-radius:4px}
.chips4.mt{margin-top:16px;align-items:center}
.chips4 .muted{font-size:13px}
.chip4 small.muted{font-size:12px;margin-inline-start:4px}
.pbody .agentb4 b{font-size:20px;line-height:24px;display:block;margin-bottom:4px}
.pbody .agentb4 .btn{margin-inline-start:auto}
.pbody .agentb4>div{flex:1 1 320px}
.pbody .bld-l,.pbody .src{margin-top:-16px}
@media (max-width:1000px){
  .phero{padding:40px 16px 32px;gap:12px}
  body.v4 .phero h1{font-size:34px;line-height:38px}
  .phero p{font-size:15px;line-height:22px}
  .phero .citysel{display:flex;min-width:0;flex:1 1 100%}
  .seg4{height:44px;flex:1 1 100%;justify-content:center}
  .seg4 a{flex:1;justify-content:center;padding:0 10px;font-size:13px}
  .pbody{gap:24px;padding-top:16px;padding-bottom:48px}
  .dks{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .dks.two{grid-template-columns:1fr}
  .dk{padding:16px}
  .dk>b{font-size:26px;line-height:30px}
  .chart4{height:140px}
  .estc{grid-template-columns:1fr;padding:16px}
  .ptbl .tr{padding:0 12px;gap:8px;font-size:14px}
  .ptbl.c4 .tr{grid-template-columns:2fr 1fr 1fr}
  .ptbl .bar4{display:none}
  .pbody .agentb4 .btn{margin-inline-start:0;width:100%}
}

/* ---------- хаб города v4 (макет specs/design/mockups/City.dc.html) ---------- */
.hub4{display:block}
.h4head{padding-top:16px;padding-bottom:32px}
.h4head .crumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink3);margin:0 0 12px}
.h4head .crumbs a{color:var(--ink3)}.h4head .crumbs svg{width:12px;height:12px}
.h4grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.h4l{display:flex;flex-direction:column;gap:16px;min-width:0}
.h4t{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
body.v4 .h4t h1{margin:0;font-weight:900;font-size:40px;line-height:44px}
.h4sub{margin:-8px 0 0;font-size:14px}.h4sub a{text-decoration:underline}
.h4grid .tg4{grid-template-columns:repeat(4,minmax(0,1fr))}
.tile4.on{outline:2px solid var(--em);outline-offset:-2px}
.cmap{position:relative;display:block;border-radius:var(--r);overflow:hidden;background:var(--mapbg,var(--band));min-height:380px;height:100%}
.cmap .cv{position:absolute;inset:0}
.cmap .btn{position:absolute;bottom:16px;inset-inline-start:16px;height:40px;z-index:2;pointer-events:none}
.cmap.nomap{display:none}
.chips4 .chip4 small{color:var(--ink3);font-size:12px}
.chip4.on small,.chip4:hover small{color:#caccd8}
.kch .chip4{background:var(--card)}
:root[data-scheme=c] .kch .chip4{border:1px solid var(--line)}
.kch .chip4.on,.kch .chip4:hover{background:var(--btn);color:var(--on-btn)}
body.v4 .btn.sm{height:40px;padding:0 16px;font-size:14px}
body.v4 .btn.sm svg{width:16px;height:16px}
.lst4 .sh4 .chip4{margin-inline-start:auto}
.fbar4{display:flex;gap:20px;flex-wrap:wrap;align-items:center;margin-bottom:20px}
.fbar4 .chips4{align-items:center;gap:6px}
.fbar4 .muted{font-size:13px}
.clr4{gap:4px}.clr4 svg{width:14px;height:14px}
.hubcards{gap:13px;grid-template-columns:repeat(3,minmax(0,1fr))}
.hubcards .rc{border:1px solid var(--act);box-shadow:none}
.hub4 .more4{margin-top:20px;width:100%}
.hub4 .empty.e4{text-align:center;padding:40px 16px;display:flex;flex-direction:column;align-items:center;gap:8px}
.hub4 .empty.e4 .btn{margin-top:8px}
.prows{display:flex;flex-direction:column;gap:2px;max-width:860px}
.prow{display:flex;align-items:center;gap:16px;min-height:56px;padding:8px 30px;background:var(--card);color:var(--ink)}
.prow:hover{background:var(--act)}
.prow:first-child{border-radius:var(--r) var(--r) 0 0}.prow:last-child{border-radius:0 0 var(--r) var(--r)}
.prow .rl{flex:0 0 140px;font-weight:500}
.prow .bar4{flex:1;max-width:260px}
.prow b{font-weight:700;min-width:90px}
.prow .muted{font-size:13px}
.t4grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.t4grid .h5{margin-bottom:8px}
.faq4{border-top:1px solid var(--act);padding:16px 0;display:flex;flex-direction:column;gap:6px}
.faq4 b{font-weight:700}
.faq4 .muted{font-size:14px;line-height:21px}
.t4r{display:flex;flex-direction:column;gap:20px}
.cta4{background:var(--em);border-radius:var(--r);padding:28px;color:#fff;display:flex;flex-direction:column;gap:10px}
.cta4 b{font-size:24px;line-height:30px;font-weight:800}
.cta4 span{color:#d1fae5;font-size:15px;line-height:22px}
.cta4 .btn{align-self:flex-start;background:#fff;color:#000;margin-top:6px}
.cta4 .btn:hover{background:#e6e6e1;color:#000}
.t4r .h6{margin-bottom:10px;font-size:16px}
@media (max-width:1240px){.h4grid .tg4{grid-template-columns:repeat(2,minmax(0,1fr))}.hubcards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1000px){
  .h4head{padding-top:12px;padding-bottom:24px}
  .h4grid{grid-template-columns:1fr}
  body.v4 .h4t h1{font-size:32px;line-height:36px}
  .cmap{min-height:220px;height:220px}
  .hub4 .g4.hubcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0}
  .hub4 .g4.hubcards>*{flex:none}
  .lst4 .sh4 .chip4{margin-inline-start:0}
  .fbar4{gap:10px}
  .fbar4 .chips4{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px;max-width:calc(100% + 32px)}
  .prow{padding:8px 14px;gap:10px;flex-wrap:wrap}
  .prow .rl{flex:0 0 90px}
  .prow .bar4{flex:1 1 100%;order:5;max-width:none}
  .t4grid{grid-template-columns:1fr;gap:24px}
  .cta4{padding:20px}
}
@media (max-width:725px){
  .hub4 .g4.hubcards{grid-template-columns:1fr}
  .hubcards .rc{border-radius:0;border:0;margin:0 -16px;width:calc(100% + 32px)}
}
/* вкладки разделов на /map — как чипы */
body.v4 .lh4 .stabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 4px;border:0;background:none;padding:0}
body.v4 .lh4 .stabs a{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border:0;border-radius:var(--r);background:var(--act);color:var(--ink);box-shadow:none;font-size:14px}
body.v4 .lh4 .stabs a.on,body.v4 .lh4 .stabs a:hover{background:var(--btn);color:var(--on-btn)}
body.v4 .lh4 .stabs a small{color:inherit;opacity:.7;margin-inline-start:2px}
