/* DESIGN-04 / Phase 1A visual layer. Loaded by layout ONLY when design_v3=1; styles.css stays the OFF baseline. */
@font-face{font-family:'DM Sans';src:url('/static/fonts/dm-sans-400-latin.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap;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;}
@font-face{font-family:'DM Sans';src:url('/static/fonts/dm-sans-400-latin-ext.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap;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:'DM Sans';src:url('/static/fonts/dm-sans-500-latin.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap;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;}
@font-face{font-family:'DM Sans';src:url('/static/fonts/dm-sans-500-latin-ext.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap;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:'DM Sans';src:url('/static/fonts/dm-sans-600-latin.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap;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;}
@font-face{font-family:'DM Sans';src:url('/static/fonts/dm-sans-600-latin-ext.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap;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:'DM Sans';src:url('/static/fonts/dm-sans-700-latin.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap;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;}
@font-face{font-family:'DM Sans';src:url('/static/fonts/dm-sans-700-latin-ext.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap;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:'Fraunces';src:url('/static/fonts/fraunces-500-latin.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap;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;}
@font-face{font-family:'Fraunces';src:url('/static/fonts/fraunces-500-latin-ext.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap;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:'Fraunces';src:url('/static/fonts/fraunces-600-latin.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap;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;}
@font-face{font-family:'Fraunces';src:url('/static/fonts/fraunces-600-latin-ext.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap;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;}

/* Issue 312 (08.08.2026): owner-approved unified Home / Results / Listing
   tokens. Values are shared by the route shell and the universal end. */
.design-v3{
--surface-page:#f8fafc;
--surface-card:#ffffff;
--surface-soft:#f8fafc;
--surface-green-soft:#e8f4ed;
--ink-primary:#16241f;
--ink-muted:#61706e;
--ink-secondary:#475569;
--brand-green:#148456;
--brand-green-dark:#17352b;
--lime:#d9ff6b;
--lime-ink:#0b0f14;
--footer-ink:#cbd5e1;
--line:#d9e4de;
--line-soft:#f1f5f9;
--line-green:#79d5a0;
--whatsapp:#25D366;
--telegram:#229ED9;
--availability-bg:#fff2b9;
--availability-ink:#67520c;
--availability-line:#e4c95d;
--shadow-card:0 12px 30px rgba(15,23,42,.09);
--shadow-green:0 18px 50px rgba(22,148,85,.08);
--shadow-btn:0 8px 16px rgba(22,148,85,.18);
--content-max:1248px;
--paper:var(--surface-page);
--paper-warm:var(--surface-soft);
--card:var(--surface-card);
--grid:var(--line);
--grid-soft:var(--line-soft);
--grid-faint:var(--line);
--ink:var(--ink-primary);
--ink-soft:var(--ink-muted);
--ink-40:var(--ink-muted);
--white:var(--surface-card);
--white-50:var(--surface-soft);
--green:var(--brand-green);
--green-deep:var(--brand-green-dark);
--green-soft:var(--surface-green-soft);
--green-ghost:var(--surface-green-soft);
--coral:var(--brand-green);
--coral-deep:var(--brand-green-dark);
--coral-ink:var(--ink-primary);
--coral-soft:var(--surface-green-soft);
--amber:var(--brand-green-dark);
--line-warm:var(--line-soft);
--dim:var(--surface-green-soft);
--dim2:var(--ink-muted);
--cobalt:var(--brand-green-dark);
--cobalt-deep:var(--ink-primary);
--cobalt-veil:var(--ink-muted);
--cobalt-pane:var(--surface-card);
--cobalt-tint:var(--surface-green-soft);
--cobalt-08:var(--surface-green-soft);
--cobalt-22:var(--line);
--shadow-stamp:var(--line);
--paper-18:var(--line-soft);
--r:1rem;
--disp:'Fraunces',serif;
--body:'DM Sans',Arial,sans-serif;
--mono:'DM Sans',Arial,sans-serif;
}

/* DESIGN-04 / Phase 1A. All visual changes stay under the module-load design_v3 body class. */
.design-v3{overflow-x:clip;background:var(--surface-page);color:var(--ink-primary);font-family:var(--body);font-size:16px}
.design-v3 h1,.design-v3 h2,.design-v3 h3,.design-v3 .disp{font-family:var(--disp);font-stretch:normal;font-weight:600;letter-spacing:-.03em;line-height:1.1;text-transform:none}
.design-v3 a{color:var(--brand-green-dark)}
.design-v3 :focus-visible{outline:3px solid var(--brand-green);outline-offset:3px;border-radius:.5rem}
.design-v3 .skip{background:var(--ink-primary);color:var(--surface-card);font-family:var(--body);font-size:.875rem}
.v4-container{width:min(var(--content-max),calc(100% - 32px));margin-inline:auto}
.v4-topbar{position:sticky;z-index:50;top:0;min-height:76px;border-bottom:1px solid var(--line);background:var(--surface-card)}
.v4-header-desktop{display:grid;grid-template-columns:auto auto 1fr auto;gap:1rem 2rem;align-items:center;min-height:76px}
.v4-header-mobile{display:none}
/* Мандат 291, круг 2 (честность весов): поставляемые начертания — максимум
   DM Sans 700 и кириллический IBM Plex Sans 600; объявленные 800/900 браузеры
   рисовали бы синтетически — каждый по-своему и легче образца. Поэтому самый
   жирный вес в файле — 700: самое жирное поставляемое начертание; настоящие
   800/900 — хвост (докупить начертания нельзя — они бесплатные, но их надо
   ДОБАВИТЬ файлами; отдельная работа). Логотип и цены остаются 700. */
.v4-brand{color:var(--ink-primary)!important;font-family:var(--disp);font-size:1.4rem;font-weight:700;letter-spacing:-.035em;text-decoration:none;white-space:nowrap}
.v4-brand em{color:var(--brand-green);font-style:normal}
.v4-primary,.v4-locales{display:flex;align-items:center;gap:1.4rem;white-space:nowrap}
.v4-primary a,.v4-locales a,.v4-locales span{color:var(--ink-secondary);font-size:.925rem;font-weight:500;text-decoration:none}
.v4-primary a:hover,.v4-locales a:hover{color:var(--ink-primary)}
.v4-locales{justify-self:end;gap:.25rem}
.v4-locales a,.v4-locales span{display:inline-flex;min-width:2.75rem;min-height:2.75rem;align-items:center;justify-content:center;border-radius:.75rem}
.v4-locales .lang-cur{background:var(--surface-green-soft);color:var(--ink-primary)}
/* Мандат 291, круг 1 (правило двух зелёных): белый текст этих кнопок — 16px и
   мельче, для белого это «мелкий» текст, порог 4.5. Яркий зелёный даёт лишь
   3.89, поэтому фон всех кнопок с белым текстом — тёмный зелёный (5.54). Яркий
   остаётся заливкам без текста и крупному жирному (логотип). */
.v4-account,.v4-menu summary{display:inline-flex;min-height:2.75rem;align-items:center;justify-content:center;padding:.65rem 1rem;border:1px solid var(--brand-green-dark);border-radius:.75rem;background:var(--brand-green-dark);color:var(--surface-card)!important;font-weight:700;text-decoration:none;white-space:nowrap;box-shadow:var(--shadow-btn)}
.v4-main{min-height:55vh;padding-block:2rem 5rem}
.v4-footer{border-top:0;background:var(--ink-primary);color:var(--footer-ink)}
.v4-footer-inner{display:flex;justify-content:space-between;gap:1rem 2rem;padding-block:2rem;font-size:.825rem}
.v4-footer-inner p{margin:0}.v4-footer-inner a{color:var(--surface-card)}
.v4-footer .footer-sources{font-size:.75rem}

.v4-home{display:grid;gap:4.5rem}
.v4-hero{display:grid;gap:1.5rem;overflow:hidden;padding:clamp(1.25rem,3vw,2rem);border:1px solid var(--line-green);border-radius:1rem;background:var(--surface-card);box-shadow:var(--shadow-green)}
.v4-hero-copy{max-width:58rem}.v4-eyebrow{margin:0 0 .75rem;color:var(--brand-green-dark);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.v4-hero h1{max-width:24ch;margin:0;font-size:clamp(1.8rem,3.5vw,2.1875rem);letter-spacing:-.04em}
.v4-hero-lede{max-width:48rem;margin:1rem 0 0;color:var(--ink-secondary);font-size:clamp(1rem,1.6vw,1.2rem)}
.v4-search{overflow:hidden;border:1px solid var(--line);border-radius:.875rem;background:var(--surface-card)}
.v4-filter-grid{display:grid;grid-template-columns:1.2fr .75fr .75fr .75fr;gap:.75rem;padding:1rem}
.v4-filter-grid>label:not(.v4-owner-filter){display:grid;gap:.35rem;min-width:0;color:var(--ink-secondary);font-size:.75rem;font-weight:600}
.v4-filter-grid input,.v4-filter-grid select{min-width:0;min-height:3rem;border-color:var(--line);border-radius:.875rem;background:var(--surface-soft);color:var(--ink-primary)}
.v4-owner-filter{display:flex;grid-column:1/4;align-items:center;gap:.65rem;min-height:3rem;color:var(--ink-secondary);font-size:.875rem;font-weight:600;cursor:pointer}
.v4-owner-filter input{width:1.25rem;min-height:1.25rem;accent-color:var(--brand-green-dark)}
.v4-filter-submit,.v4-send{display:inline-flex;min-height:2.75rem;align-items:center;justify-content:center;border:1px solid var(--brand-green-dark);border-radius:.75rem;background:var(--brand-green-dark);color:var(--surface-card);font-weight:700;box-shadow:var(--shadow-btn)}
.v4-filter-submit{grid-column:4;min-height:3rem;padding:.6rem 1rem}
.v4-composer{display:grid;gap:.55rem;padding:1rem;border-top:1px solid var(--line)}
.v4-composer>label{color:var(--ink-primary);font-size:.875rem;font-weight:600}
.v4-composer-control{position:relative;display:grid;grid-template-columns:minmax(0,1fr);padding:.5rem;border:1px solid var(--line);border-radius:.875rem;background:var(--surface-card)}
/* Мандат 291, круг 1: кнопки заняли правый нижний угол поля — уголок
   растягивания оказался под ними, растягивание отключено осознанно. Нижний
   отступ 3.6rem выше ряда кнопок (2.75rem + .5rem), текст под них не уезжает. */
.v4-composer textarea{min-height:5rem;padding:.65rem .65rem 3.6rem;border:0;background:none;resize:none}
.v4-composer textarea:focus-visible{outline-offset:0}
.v4-composer-actions{position:absolute;right:.5rem;bottom:.5rem;display:flex;gap:.5rem;align-items:center}
.v4-mic{display:inline-flex;width:2.75rem;min-height:2.75rem;align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;background:var(--surface-green-soft);color:var(--brand-green-dark);font-weight:700}
.v4-send{gap:.4rem;padding:.65rem 1rem}
.v4-composer-example,.v4-composer-hint{margin:0;color:var(--ink-muted);font-size:.75rem}.v4-composer-hint{font-weight:500}
.v4-composer-feedback{display:flex;min-width:0;align-items:center;gap:.65rem;flex-wrap:wrap}
.v4-composer-status{min-height:1.35rem;margin:0;color:var(--ink-secondary);font-size:.875rem;font-weight:600}
.v4-composer-retry,.v4-composer-quick-replies button{display:inline-flex;max-width:100%;min-width:2.75rem;min-height:2.75rem;align-items:center;justify-content:center;padding:.6rem .85rem;border:1px solid var(--brand-green);border-radius:.875rem;background:var(--surface-card);color:var(--brand-green-dark);font-weight:600}
.v4-composer-question{display:grid;min-width:0;gap:.65rem;padding:.8rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-green-soft)}
.v4-composer-question-label,.v4-composer-question-copy p{margin:0}.v4-composer-question-label{color:var(--ink-muted);font-size:.75rem;font-weight:600}
.v4-composer-question-copy{min-width:0;color:var(--ink-primary);font-size:.95rem;font-weight:600;overflow-wrap:anywhere}
.v4-composer-quick-replies{display:flex;min-width:0;gap:.5rem;flex-wrap:wrap}
.v4-composer-quick-replies button{white-space:normal;overflow-wrap:anywhere;text-align:left}
/* Issue 207: предложение сменить критерии — разница словами и две кнопки. */
.v4-composer-diff{display:grid;box-sizing:border-box;max-width:100%;min-width:0;gap:.55rem;padding:.8rem;border:1px solid var(--brand-green);border-radius:1rem;background:var(--surface-green-soft)}
.v4-composer-diff-title{margin:0;color:var(--ink-primary);font-size:.95rem;font-weight:700}
.v4-composer-diff-lines{display:grid;gap:.3rem;margin:0;padding:0 0 0 1rem;color:var(--ink-primary);font-size:.9rem;overflow-wrap:anywhere}
.v4-composer-diff-hint{margin:0;color:var(--ink-muted);font-size:.8rem}
.v4-composer-diff-actions{display:flex;min-width:0;gap:.5rem;flex-wrap:wrap}
.v4-composer-diff-actions button{display:inline-flex;max-width:100%;min-width:2.75rem;min-height:2.75rem;align-items:center;justify-content:center;padding:.6rem .85rem;border:1px solid var(--brand-green);border-radius:.875rem;background:var(--surface-card);color:var(--brand-green-dark);font-weight:600;cursor:pointer}
.v4-composer-diff-actions .v4-composer-diff-confirm{border-color:var(--brand-green-dark);background:var(--brand-green-dark);color:var(--surface-card)}
.v4-composer-cards{display:grid;gap:.5rem;margin:.5rem 0 0;padding:0;list-style:none}
.v4-composer-card{display:grid;gap:.3rem;min-width:0;padding:.5rem;border:1px solid var(--line);border-radius:.9rem;background:var(--surface-card)}
.v4-composer-card-link{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.6rem;align-items:center;min-width:0;color:var(--ink-primary);text-decoration:none}
.v4-composer-card-frame{position:relative;display:block;width:5.5rem;height:4.25rem}
.v4-composer-card-frame .v4-composer-card-photo.is-empty{position:absolute;inset:0;display:none}
.v4-composer-card-frame.is-placeholder .v4-composer-card-photo.is-empty{display:flex}
.v4-composer-card-photo{width:5.5rem;height:4.25rem;border-radius:.6rem;background:var(--surface-soft);object-fit:cover}
.v4-composer-card-photo.is-empty{display:flex;box-sizing:border-box;padding:.3rem;align-items:center;justify-content:center;color:var(--ink-secondary);font-size:.65rem;line-height:1.2;text-align:center}
.v4-composer-card-facts{display:flex;min-width:0;gap:.45rem;align-items:baseline;flex-wrap:wrap}
.v4-composer-card-price{font-weight:700}
.v4-composer-card-price.is-empty{color:var(--ink-secondary);font-weight:600}
.v4-composer-card-geo,.v4-composer-card-place,.v4-composer-card-credit{color:var(--ink-secondary);font-size:.75rem}
.v4-composer-card-place{display:block;grid-column:2;min-width:0;margin-top:.15rem;overflow-wrap:anywhere}
.v4-composer-card-original{display:inline-flex;min-height:2.75rem;align-items:center;font-size:.75rem;font-weight:600;overflow-wrap:anywhere}
.v4-composer-relax{display:grid;gap:.4rem;margin:.5rem 0 0;padding:0;list-style:none}
.v4-composer-relax-item{min-width:0}
.v4-composer-relax-link{display:inline-flex;box-sizing:border-box;max-width:100%;min-height:2.75rem;align-items:center;padding:.5rem .7rem;border:1px solid var(--brand-green);border-radius:.9rem;background:var(--surface-card);color:var(--brand-green-dark);font-size:.85rem;font-weight:600;text-decoration:none;overflow-wrap:anywhere}
.v4-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.v4-mic[disabled],.v4-send[disabled]{opacity:.55;cursor:not-allowed}

.v4-fresh{scroll-margin-top:6rem}
.v4-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}
.v4-section-head h2,.v4-section-copy h2{margin:0;font-size:clamp(1.35rem,2vw,1.5625rem)}
.v4-section-head a{font-weight:600;text-decoration-thickness:1px}
.design-v3 .home-listings{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}
.design-v3 .home-listings .listing{border-color:var(--line);border-radius:1rem;background:var(--surface-card);box-shadow:none}
.design-v3 .listing:hover{border-color:var(--line);box-shadow:var(--shadow-card)}
.design-v3 .listing-photo{border-color:var(--line);background:var(--surface-soft)}
.design-v3 .listing-photo::after{display:none}
.design-v3 .photo-attribution{border-color:var(--line);border-radius:.5rem;background:var(--ink-primary);color:var(--surface-card);font-family:var(--body)}
.design-v3 .tag,.design-v3 .value,.design-v3 .delta{border-radius:.5rem;font-family:var(--body)}
.design-v3 .tag.owner{border-color:var(--brand-green);background:var(--surface-green-soft);color:var(--ink-primary);box-shadow:none;transform:none}
.design-v3 .price-link{text-decoration:none}
.design-v3 .detail-link{text-decoration-color:var(--brand-green)}
.design-v3 .listing .price{color:var(--ink-primary);font-family:var(--body);font-size:1.125rem;font-weight:700;letter-spacing:-.02em}
.design-v3 .datum-label,.design-v3 .datum-copy,.design-v3 .price-row .price-link,.design-v3 .price-row .ppm2{background:var(--surface-card)}
.design-v3 .card-datum::before{border-color:var(--line)}
.design-v3 .listing-original .original{display:inline-flex;min-height:2.75rem;align-items:center;font-size:.8rem;font-weight:600}

.v4-market{display:grid;gap:1.5rem;padding:clamp(1.5rem,3.5vw,3rem);border:1px solid var(--line);border-radius:1rem;background:var(--surface-card)}
.v4-section-copy{max-width:50rem}.v4-section-copy>p:last-child{margin:.75rem 0 0;color:var(--ink-muted)}
.v4-market-chart,.v4-plan{overflow:hidden;padding:1.25rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-card)}
.v4-market-chart h3,.v4-plan h3{margin:0 0 1rem;font-size:1.25rem}
/* Мандат 291, круг 1: подписи оси (.axis-amber) — текст 10px, ярким зелёным им
   нельзя (3.89 < 4.5) — только тёмным. Линия и точка «сейчас» — графика, не
   текст: им хватает порога 3 (3.89), яркий остаётся. */
.v4-market-chart .chart-svgs{padding:0}.v4-market-chart .axis{fill:var(--ink-muted)}.v4-market-chart .axis-amber{fill:var(--brand-green-dark)}.v4-market-chart .datumline{stroke:var(--brand-green)}.v4-market-chart .medline{stroke:var(--ink-primary)}.v4-market-chart .dot-now{fill:var(--brand-green);stroke:var(--surface-card)}
.v4-market-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:1rem;border-top:1px solid var(--line)}
.v4-market-stats span{display:grid;gap:.2rem;padding:1rem .75rem;border-right:1px solid var(--line)}.v4-market-stats span:last-child{border-right:0}
.v4-market-stats b{font-size:1.2rem;font-variant-numeric:tabular-nums}.v4-market-stats small{color:var(--ink-muted);font-size:.68rem;font-weight:600;letter-spacing:.04em}
.v4-districts{display:grid;grid-template-columns:minmax(17rem,.8fr) minmax(0,1.2fr);gap:1.25rem;align-items:start}
.v4-plan>p{margin:.75rem 0 0;color:var(--ink-muted);font-size:.75rem}
.design-v3 .district-tile{border-color:var(--line);border-radius:1rem;background:var(--surface-card);color:var(--ink-primary)}
.design-v3 .district-tile::after{background:var(--brand-green)}
.design-v3 .district-name{font-family:var(--disp);font-weight:600;text-transform:none}

.v4-owner{margin-top:4.5rem;padding:clamp(1.5rem,3.5vw,3rem);border-radius:1rem;background:var(--ink-primary);color:var(--surface-card)}
.v4-owner>.v4-eyebrow,.v4-owner-lede{color:var(--footer-ink)}.v4-owner h2{margin:.15rem 0 .75rem;color:var(--surface-card);font-size:clamp(1.5rem,2.4vw,1.875rem)}
.v4-owner-lede{max-width:48rem}
.design-v3 .owner-tools{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1.5rem}
.design-v3 .v4-owner .tool{border-color:var(--line);border-radius:1rem;background:var(--surface-card);color:var(--ink-primary)}
.design-v3 .v4-owner .tool-code{color:var(--brand-green-dark)}
.design-v3 .v4-owner .tool-title,.design-v3 .v4-owner .tool-go{color:var(--brand-green-dark)}
.design-v3 .v4-owner .tool>p,.design-v3 .v4-owner .tax-mini label{color:var(--ink-muted)}
.design-v3 .v4-owner .tax-mini input{border-color:var(--line);background:var(--surface-soft);color:var(--ink-primary)}
.design-v3 .v4-owner .tax-mini button{border-color:var(--lime);border-radius:.75rem;background:var(--lime);color:var(--lime-ink);font-weight:700}

@media (max-width:68.75rem){
.v4-header-desktop{gap:1rem}.v4-primary{gap:1rem}
.v4-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.v4-owner-filter{grid-column:1}.v4-filter-submit{grid-column:2}
.design-v3 .home-listings{grid-template-columns:repeat(2,minmax(0,1fr))}
.v4-districts{grid-template-columns:1fr}.design-v3 .owner-tools{grid-template-columns:1fr}
}

@media (max-width:38.75rem){
.v4-container{width:calc(100% - 16px)}
.v4-topbar{min-height:64px}.v4-header-desktop{display:none}.v4-header-mobile{position:relative;display:flex;gap:.65rem;align-items:center;min-height:64px}
.v4-header-mobile .v4-brand{margin-right:auto;font-size:1.25rem}.v4-header-mobile .v4-account,.v4-menu summary{min-height:2.75rem;padding:.55rem .7rem;font-size:.8rem}
.v4-menu{position:relative}.v4-menu summary{list-style:none;cursor:pointer}.v4-menu summary::-webkit-details-marker{display:none}
.v4-menu-panel{position:absolute;z-index:60;top:calc(100% + .65rem);right:0;width:min(20rem,calc(100vw - 16px));padding:.75rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-card);box-shadow:var(--shadow-card)}
.v4-menu-panel>nav{display:grid;gap:.25rem}.v4-menu-panel>nav>a{display:flex;min-height:2.75rem;align-items:center;padding:.55rem .65rem;border-radius:.75rem;color:var(--ink-primary);font-weight:600;text-decoration:none}
.v4-menu-locales{display:flex;gap:.25rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--line)}
.v4-menu-locales a,.v4-menu-locales span{display:inline-flex;min-width:2.75rem;min-height:2.75rem;align-items:center;justify-content:center;border-radius:.75rem;color:var(--ink-secondary);font-size:.8rem;text-decoration:none}
.v4-menu-locales .lang-cur{background:var(--surface-green-soft);color:var(--ink-primary);font-weight:600}
.v4-main{padding-block:1rem 3rem}.v4-home{gap:3rem}.v4-hero{gap:1.25rem;padding:1.25rem;border-radius:1rem}.v4-hero h1{font-size:clamp(1.6rem,5vw,2.1875rem)}
.v4-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:.75rem}.v4-owner-filter,.v4-filter-submit{grid-column:1/-1}.v4-filter-submit{width:100%}
.v4-composer{padding:.75rem}.v4-composer-control{grid-template-columns:1fr}.v4-composer-actions{justify-content:flex-end}.v4-send{flex:1}
.design-v3 .home-listings{grid-template-columns:1fr}
.v4-section-head{align-items:flex-start;flex-direction:column}.v4-market{padding:1rem;border-radius:1rem}.v4-market-chart,.v4-plan{padding:.9rem}
.v4-market-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.v4-market-stats span:nth-child(2){border-right:0}.v4-market-stats span:nth-child(-n+2){border-bottom:1px solid var(--line)}
.v4-district-list .district-mosaic{grid-template-columns:1fr}
.v4-owner{margin-top:3rem;padding:1.25rem;border-radius:1rem}
.v4-footer-inner{flex-direction:column}
}

@media (prefers-reduced-motion:reduce){
.design-v3 .listing:hover{transform:none}
}

/* DESIGN-04 §5: Results 40/60 workspace (диалог/refinement слева, до 12 rows справа) */
.design-v3 .v4-results{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.6fr);gap:1.5rem;align-items:start}
.design-v3 .v4-results-pane{position:sticky;top:92px}
.design-v3 .v4-pane{position:relative;border:1px solid var(--line);border-radius:1rem;background:var(--surface-card);box-shadow:var(--shadow-card)}
/* Issue 205 круг 1: сворачивание панели держит СВОЙ чекбокс, а не нативный
   details. У details закрытое состояние переживает расширение окна, а его
   «шапку» десктоп прячет — панель становилось нечем открыть. Здесь видимостью
   тела управляет только правило ниже, и на десктопе оно безусловно показано. */
.design-v3 .v4-pane-toggle{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.design-v3 .v4-pane-summary{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem;color:var(--ink-primary);font-weight:600;cursor:pointer}
.design-v3 .v4-pane-toggle:focus-visible+.v4-pane-summary{outline:2px solid var(--brand-green);outline-offset:2px}
/* Issue 205 круг 2: видимый маркер раскрытия. Без него подпись выглядела
   обычным заголовком: что она чем-то управляет и в каком та область состоянии,
   глазами было не понять. Уголок смотрит вниз у раскрытой панели и вправо у
   свёрнутой; читалкам то же самое сообщает aria-expanded. */
.design-v3 .v4-pane-caret{flex:none;width:.45rem;height:.45rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-.15rem) rotate(45deg)}
.design-v3 .v4-pane-toggle:not(:checked)+.v4-pane-summary .v4-pane-caret{transform:translateX(-.15rem) rotate(-45deg)}
.design-v3 .v4-pane-body{display:grid;gap:1rem;padding:0 1rem 1rem}
.design-v3 .v4-pane-copilot{margin:0;padding:.75rem;border:1px dashed var(--line);border-radius:1rem;background:var(--surface-soft);color:var(--ink-secondary);font-size:.875rem}
/* Issue 205: живой диалог внутри панели выдачи. Рамку и отступ даёт сама панель,
   поэтому композер здесь без своей верхней линии; история короче, чем на
   главной, чтобы 12 строк справа оставались видимыми.
   (Решётка перед номером задачи в этом файле запрещена: страж цветов из
   test/design-sprint.test.ts читает её как hex-цвет вне блока токенов.) */
.design-v3 .v4-pane .v4-composer{gap:.5rem;padding:0;border-top:0}
.design-v3 .v4-pane .v4-composer-history{max-height:14rem}
.design-v3 .v4-pane-explain{margin:0;color:var(--ink-primary);font-size:.875rem;font-weight:600}
.design-v3 .v4-pane-start{margin:0;color:var(--ink-secondary);font-size:.875rem}
.design-v3 .v4-pane-hint{margin:0;color:var(--ink-muted);font-size:.75rem}
.design-v3 .v4-pane-notice{margin:0;padding:.5rem .625rem;border:1px dashed var(--line);border-radius:.75rem;background:var(--surface-soft);color:var(--ink-secondary);font-size:.8125rem}
/* М21: лучшие совпадения словами — строка лида под счётчиком выдачи. */
.design-v3 .v4-pane-fit{margin:0;color:var(--ink-secondary);font-size:.8125rem}
/* М21: одно предложенное уточнение широкой выдачи. Кнопки — те же быстрые
   ответы, что в диалоге, поэтому свой вид им не назначается. */
.design-v3 .v4-pane-followup{display:grid;min-width:0;gap:.5rem;margin:0}
.design-v3 .v4-pane-followup-question{margin:0;color:var(--ink-primary);font-size:.875rem;font-weight:600}
.design-v3 .v4-results-main{display:grid;gap:1rem}
/* Мандат 291 п.2: компактные карточки сеткой 4/3/2/2; панель сортировки —
   ссылки (.sortchips), сервер перестраивает выдачу по адресу. Тяжёлые блоки
   строки (искра цены, история, «рядом», словесная справка датчика) в компактной
   карточке спрятаны — все они остаются на странице объявления. */
.design-v3 .v4-results .feed-list.v4-rows{grid-template-columns:repeat(4,minmax(0,1fr));gap:.875rem}
.design-v3 .v4-rows :is(.card-nearby,.card-sparkline,.spark-empty,.spark-cap,.price-history,.datum-copy,.datum-label){display:none}
.design-v3 .v4-rows .card-datum{margin-top:.4rem;padding:.2rem 0 0}
.design-v3 .v4-rows .card-datum::before{display:none}
.design-v3 .v4-rows .card-datum.below .price-row,.design-v3 .v4-rows .card-datum.neutral .price-row{margin-top:0}
.design-v3 .v4-rows .listing-stats{margin-top:.3rem;font-size:.66rem}
.design-v3 .v4-rows .listing-original{padding-top:.4rem}
.design-v3 .sortchips{gap:.5rem;margin:0 0 .25rem;padding:.15rem 0}
.design-v3 .sortchip{border-color:var(--line);border-radius:.5rem;background:var(--surface-card);color:var(--ink-secondary);font-family:var(--body);font-size:.8125rem;font-weight:700;letter-spacing:0;text-transform:none}
.design-v3 .sortchip[aria-current="true"]{border-color:var(--brand-green-dark);background:var(--brand-green-dark);color:var(--surface-card)}
.design-v3 .v4-pane .feed-subscribe{grid-template-columns:1fr;gap:.6rem}
.design-v3 .v4-pane .feed-subscribe button{justify-self:start}
/* Мандат 291, круг 2: сжатые фильтры в левой панели. Раскладки .feed-filters из
   listings.css привязаны к ширине ОКНА, а не панели: при окне от 1101px там
   действует пятиколоночная сетка, хотя панель двухпанельного рабочего стола
   занимает лишь ~28% ширины. Арифметика на окне 1280px: колонка контента
   1224px, панель (1224-24)/3.6 = 333px, минус рамка и отступ панели
   (1px + 16px с каждой стороны) = 299px, минус рамка и отступ самой формы
   (1.5px + 16px) = 264px; пять колонок с четырьмя зазорами по 10.4px оставляли
   полю цены ~27px — число в нём не помещалось. Две равные колонки дают
   ~127px на поле — «300»/«1200» читаются целиком. Кнопка «Применить» и
   переключатель собственника — на всю ширину строки. */
@media (min-width:68.8125rem){
.design-v3 .v4-pane .feed-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
.design-v3 .v4-pane .feed-filters .feed-owner{grid-column:1/-1}
.design-v3 .v4-pane .feed-filters button{grid-column:1/-1}
}
.design-v3 .v4-count{margin:0;color:var(--ink-secondary)}
.design-v3 .v4-results .feed-pagination{justify-content:center}
.design-v3 .feed-pagination a{border-radius:.5rem;font-family:var(--body)}
.design-v3 .feed-pagination a[aria-current="page"]{border-color:var(--brand-green-dark);background:var(--brand-green-dark);color:var(--surface-card)}
@media (min-width:68.8125rem){.design-v3 .v4-pane-toggle,.design-v3 .v4-pane-summary{display:none}.design-v3 .v4-pane-body{display:grid;padding-top:1rem}}
@media (max-width:68.75rem){.design-v3 .v4-results{grid-template-columns:1fr}.design-v3 .v4-results-pane{position:static}.design-v3 .v4-pane-toggle:not(:checked)~.v4-pane-body{display:none}}
@media (max-width:68.75rem){.design-v3 .v4-results .feed-list.v4-rows{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:48rem){.design-v3 .v4-results .feed-list.v4-rows{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:38.75rem){.design-v3 .v4-results .feed-list.v4-rows{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* DESIGN-04 §6 / Phase 1C: Listing. Source photos remain allowlisted hotlinks. */
.design-v3 .v4-listing-detail{display:block;min-width:0}
.design-v3 .v4-listing-breadcrumb{margin-bottom:1rem;color:var(--ink-muted);font-size:.8rem;overflow-wrap:anywhere}
.design-v3 .v4-listing-breadcrumb a{color:var(--ink-primary)}
.design-v3 .v4-listing-top{display:grid;grid-template-columns:minmax(0,51fr) minmax(20rem,49fr);gap:1.125rem;align-items:stretch}
.design-v3 .v4-listing-gallery{display:flex;min-width:0;align-self:stretch;flex-direction:column;gap:.625rem}
.design-v3 .v4-listing-main{position:relative;width:100%;aspect-ratio:4/3;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:1rem;background:var(--surface-soft)}
.design-v3 .v4-listing-main img{display:block;width:100%;height:100%;object-fit:cover;filter:none}
.design-v3 .v4-listing-main .photo-placeholder{z-index:1;color:var(--ink-muted);font-family:var(--body);font-size:.875rem}
.design-v3 .v4-listing-main.is-placeholder .photo-placeholder{visibility:visible}
.design-v3 .v4-listing-main figcaption{position:absolute;z-index:2;right:.75rem;bottom:.75rem;padding:.4rem .6rem;border-radius:.625rem;background:var(--ink-primary);color:var(--surface-card);font-family:var(--body);font-size:.72rem;font-weight:600}
.design-v3 .v4-listing-thumbs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.625rem}
.design-v3 .v4-listing-thumb{position:relative;min-width:0;min-height:2.75rem;aspect-ratio:4/3;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:1rem;background:var(--surface-soft);color:var(--surface-card);cursor:pointer}
.design-v3 .v4-listing-thumb[aria-pressed="true"]{border-color:var(--brand-green);box-shadow:inset 0 0 0 2px var(--brand-green)}
.design-v3 .v4-listing-thumb img{display:block;width:100%;height:100%;object-fit:cover;filter:none}
.design-v3 .v4-listing-thumb-placeholder{position:absolute;z-index:1;inset:0;display:grid;place-items:center;padding:.25rem;color:var(--ink-muted);font-size:.65rem;visibility:hidden}
.design-v3 .v4-listing-thumb.is-placeholder .v4-listing-thumb-placeholder{visibility:visible}
.design-v3 .v4-listing-more{position:absolute;z-index:2;inset:0;display:grid;place-items:center;padding:.25rem;background:var(--ink-primary);color:var(--surface-card);font-size:clamp(.68rem,1.25vw,.9rem);font-weight:700;text-align:center}
.design-v3 .v4-listing-nojs-photos{padding:1rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-card)}
.design-v3 .v4-listing-nojs-photos p{margin:0 0 .5rem;font-weight:600}.design-v3 .v4-listing-nojs-photos ul{margin:0;padding-left:1.25rem}

.design-v3 .v4-listing-summary{box-sizing:border-box;display:flex;min-width:0;height:100%;padding:1.5rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-card);box-shadow:var(--shadow-card);flex-direction:column}
.design-v3 .v4-summary-heading{padding-bottom:1rem;border-bottom:1px solid var(--line)}
.design-v3 .v4-summary-district{margin:0 0 .35rem;color:var(--ink-muted);font-size:.75rem;font-weight:600}
.design-v3 .v4-summary-heading h1{margin:0;font-size:clamp(1.4rem,2.2vw,1.75rem);overflow-wrap:anywhere}
.design-v3 .v4-summary-nearby{display:flex;gap:.45rem;flex-wrap:wrap;margin:0 0 1rem}
.design-v3 .v4-summary-nearby a{display:inline-flex;min-height:2.75rem;align-items:center;padding:.55rem .7rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-green-soft);color:var(--ink-primary);font-size:.75rem;font-weight:700;text-decoration:none;white-space:nowrap}
.design-v3 .v4-summary-nearby a:hover{border-color:var(--brand-green)}
.design-v3 .v4-summary-price{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between;padding:1.1rem 0;border-bottom:1px solid var(--line)}
.design-v3 .v4-summary-price .detail-price{color:var(--ink-primary);font-size:2.375rem;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.045em;line-height:1}
.design-v3 .v4-summary-price .detail-price small{color:var(--ink-muted);font-family:var(--body);font-size:.72rem;letter-spacing:0;white-space:nowrap}
.design-v3 .v4-summary-market{display:grid;gap:.3rem;justify-items:end;text-align:right}
.design-v3 .v4-summary-ppm2,.design-v3 .v4-summary-delta{font-variant-numeric:tabular-nums;white-space:nowrap}
.design-v3 .v4-summary-ppm2{font-size:1rem}.design-v3 .v4-summary-delta{color:var(--ink-secondary);font-size:.78rem;font-weight:600}
.design-v3 .v4-summary-delta.below{color:var(--brand-green-dark)}
.design-v3 .v4-summary-comparable{margin:.75rem 0 0;color:var(--ink-muted);font-size:.75rem}
.design-v3 .v4-summary-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:1rem 0 0;border-top:1px solid var(--line)}
.design-v3 .v4-summary-facts div{display:grid;gap:.2rem;padding:.75rem .5rem .75rem 0;border-bottom:1px solid var(--line)}
.design-v3 .v4-summary-facts div:nth-child(even){padding-right:0;padding-left:.5rem}
.design-v3 .v4-summary-facts dt{color:var(--ink-muted);font-size:.7rem;font-weight:600}.design-v3 .v4-summary-facts dd{margin:0;color:var(--ink-primary);font-variant-numeric:tabular-nums;font-weight:600;overflow-wrap:anywhere}
.design-v3 .v4-summary-source{display:grid;gap:.6rem;margin-top:auto;padding-top:1rem}
.design-v3 .v4-summary-source .src-note{margin:0;color:var(--ink-muted);font-size:.7rem}.design-v3 .v4-summary-original{margin:0}
.design-v3 .v4-summary-original .original-cta{display:flex;min-height:2.75rem;align-items:center;justify-content:center;border-radius:.875rem;font-weight:600}

.design-v3 .v4-listing-copilot{width:100%;margin-top:18px}
.design-v3 .v4-listing-copilot-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:1.125rem;align-items:stretch}
.design-v3 .v4-listing-chat,.design-v3 .v4-listing-messenger{box-sizing:border-box;min-width:0;padding:1.5rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-card);box-shadow:var(--shadow-card)}
.design-v3 .v4-listing-chat{display:flex;flex-direction:column}.design-v3 .v4-listing-chat h2{margin:0;font-size:clamp(1.35rem,2vw,1.5625rem)}
.design-v3 .v4-listing-quick-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:1rem}
.design-v3 .v4-listing-quick-actions button,.design-v3 .v4-listing-quick-actions a{display:inline-flex;max-width:100%;min-height:2.75rem;align-items:center;padding:.6rem .85rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-soft);color:var(--ink-primary);font-family:var(--body);font-size:.82rem;font-weight:600;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer}
.design-v3 .v4-listing-quick-actions button:hover,.design-v3 .v4-listing-quick-actions a:hover{border-color:var(--brand-green);background:var(--surface-green-soft)}
.design-v3 .v4-listing-soon{margin:1rem 0 0;padding:.75rem;border:1px dashed var(--line);border-radius:1rem;background:var(--surface-soft);color:var(--ink-secondary);font-size:.875rem}
/* М9: живой чат карточки. История разговора и композер живут в ОДНОМ
   контейнере чата (спека listing-copilot L1: «история диалога и composer SHALL
   жить в одном общем chat-контейнере»). */
.design-v3 .v4-listing-chat-history{margin-top:1rem;max-height:22rem}
.design-v3 .v4-listing-chat-provenance{margin:.45rem 0 0;color:var(--ink-secondary);font-size:.7rem;font-weight:600;letter-spacing:.02em}
.design-v3 .v4-listing-composer{margin-top:1rem;padding:1rem 0 0;border-top:1px solid var(--line)}
.design-v3 .v4-listing-composer .v4-composer-control{background:var(--surface-soft)}
.design-v3 .v4-listing-composer textarea{font-family:var(--body);font-size:1rem}
.design-v3 .v4-listing-messenger{display:flex;flex-direction:column}.design-v3 .v4-listing-messenger h3{margin:0;font-size:1.45rem}
.design-v3 .v4-listing-messenger>p{margin:.8rem 0 1rem;color:var(--ink-secondary);font-size:.875rem;line-height:1.55}
.design-v3 .v4-listing-channel-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-top:auto}
.design-v3 .v4-listing-channel{display:inline-flex;min-width:0;min-height:2.75rem;align-items:center;justify-content:center;gap:.5rem;padding:.65rem .7rem;border:0;border-radius:14px;color:var(--ink-primary);font-family:var(--body);font-weight:700;cursor:pointer}
.design-v3 .v4-listing-channel svg{width:1.25rem;height:1.25rem;flex:none;fill:currentColor}
.design-v3 .v4-listing-channel-whatsapp{background:var(--whatsapp)}
.design-v3 .v4-listing-channel-telegram{background:var(--telegram)}
.design-v3 .v4-listing-channel-telegram{color:var(--surface-card)}
.design-v3 .v4-listing-action-status{min-height:1.25rem;margin:.6rem 0 0;color:var(--ink-secondary);font-size:.8rem;font-weight:600}

.design-v3 .v4-nearby-section,.design-v3 .v4-similar-section{margin-top:1.125rem;padding:1.25rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-card);scroll-margin-top:6rem}
.design-v3 .v4-listing-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.design-v3 .v4-listing-section-head h2{margin:0;font-size:clamp(1.35rem,2vw,1.5625rem)}
.design-v3 .v4-listing-section-head p{margin:.45rem 0 0;color:var(--ink-muted);font-size:.85rem;font-variant-numeric:tabular-nums}
.design-v3 .v4-nearby-unavailable,.design-v3 .v4-similar-empty{margin:0;padding:1rem;border:1px dashed var(--line);border-radius:1rem;background:var(--surface-soft);color:var(--ink-secondary)}
.design-v3 .nearby-layout{display:grid;grid-template-columns:1fr;gap:1rem;align-items:stretch}
.design-v3 .nearby-layout.has-map{grid-template-columns:minmax(0,62fr) minmax(19rem,38fr)}
.design-v3 .nearby-map{position:relative;min-width:0;min-height:34rem;overflow:hidden;border:1px solid var(--line);border-radius:1rem;background:var(--surface-green-soft)}
.design-v3 .nearby-map[hidden]{display:none}
.design-v3 .nearby-map-canvas{position:absolute;inset:0}
.design-v3 .nearby-map-marker{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface-card);box-shadow:var(--shadow-card);font-size:1rem;line-height:1;cursor:pointer}
.design-v3 .nearby-map-marker.is-selected{z-index:4;border-color:var(--brand-green);box-shadow:inset 0 0 0 2px var(--brand-green),var(--shadow-card)}
.design-v3 .nearby-map-apartment{width:1.25rem;height:1.25rem;border:3px solid var(--surface-card);border-radius:50%;background:var(--brand-green);box-shadow:0 0 0 2px var(--brand-green),var(--shadow-card)}
.design-v3 .nearby-list{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:1rem;background:var(--surface-soft)}
.design-v3 .poi-group{border-bottom:1px solid var(--line)}.design-v3 .poi-group:last-child{border-bottom:0}
.design-v3 .poi-group>summary,.design-v3 .poi-choice{box-sizing:border-box;display:grid;width:100%;grid-template-columns:minmax(0,1fr) 6.5rem 2.75rem;gap:.55rem;align-items:center}
.design-v3 .poi-group>summary{min-height:2.75rem;padding:.45rem 0 .45rem .75rem;color:var(--ink-primary);font-size:.8125rem;font-weight:700;list-style:none;cursor:pointer}
.design-v3 .poi-group>summary::-webkit-details-marker{display:none}
.design-v3 .poi-group-name,.design-v3 .poi-place-name{min-width:0;overflow-wrap:anywhere}
.design-v3 .poi-distance{color:var(--ink-secondary);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.design-v3 .poi-expand{display:grid;width:2.75rem;min-height:2.75rem;place-items:center;border-left:1px solid var(--line);font-size:1.05rem;white-space:nowrap}
.design-v3 .poi-minus{display:none}.design-v3 .poi-group[open] .poi-plus{display:none}.design-v3 .poi-group[open] .poi-minus{display:inline}
.design-v3 .poi-group-body{border-top:1px solid var(--line);background:var(--surface-card)}
.design-v3 .poi-choice{min-height:2.75rem;padding:.45rem 0 .45rem 1rem;border:0;border-bottom:1px solid var(--line-soft);background:var(--surface-card);color:var(--ink-primary);font-family:var(--body);font-size:.8125rem;text-align:left;cursor:pointer}
.design-v3 .poi-choice:last-child{border-bottom:0}.design-v3 .poi-choice:hover{background:var(--surface-green-soft)}
.design-v3 .poi-choice.is-selected{box-shadow:inset 3px 0 0 var(--brand-green);background:var(--surface-green-soft);font-weight:700}
.design-v3 .poi-control-spacer{width:2.75rem;min-height:2.75rem;border-left:1px solid var(--line-soft)}
.design-v3 .poi-group-empty{margin:0;padding:.75rem 1rem;color:var(--ink-muted);font-size:.75rem}
.design-v3 .nearby-attribution{margin:.75rem 0 0;color:var(--ink-muted);font-size:.72rem}

.design-v3 .similar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.design-v3 .compare-card{min-width:0}.design-v3 .compare-card>.listing{height:100%;grid-template-columns:1fr;align-content:start;border-color:var(--line);border-radius:1rem;background:var(--surface-card);box-shadow:none}
.design-v3 .compare-card .listing-photo{border-right:0;border-bottom:1px solid var(--line)}
.design-v3 .v4-similar-section .photo-placeholder,.design-v3 .v4-similar-section .tag.stamp.agent{color:var(--ink-secondary)}
.design-v3 .compare-card .listing-body{min-width:0}.design-v3 .compare-card .listing-original .original{min-height:2.75rem}
.design-v3 .v4-similar-reveal{margin-top:1rem}
.design-v3 .v4-similar-reveal>summary{display:inline-flex;min-height:2.75rem;align-items:center;padding:.6rem .9rem;border:1px solid var(--brand-green-dark);border-radius:.875rem;background:var(--brand-green-dark);color:var(--surface-card);font-weight:700;list-style:none;cursor:pointer}
.design-v3 .v4-similar-reveal>summary::-webkit-details-marker{display:none}
.design-v3 .similar-grid-extra{margin-top:1rem}
.design-v3 .v4-similar-modes{display:inline-flex;flex:none;gap:.25rem;padding:.25rem;border:1px solid var(--line);border-radius:.875rem;background:var(--surface-soft)}
.design-v3 .v4-similar-modes[hidden]{display:none}
.design-v3 .v4-similar-mode{min-width:2.75rem;min-height:2.75rem;padding:.4rem .9rem;border:0;border-radius:.625rem;background:transparent;color:var(--ink-secondary);font-family:var(--body);font-size:.8125rem;font-weight:700;cursor:pointer}
.design-v3 .v4-similar-mode[aria-pressed="true"]{background:var(--surface-card);color:var(--ink-primary);box-shadow:var(--shadow-card)}
.design-v3 .v4-similar-cards[hidden],.design-v3 .similar-map-panel[hidden]{display:none}
.design-v3 .similar-map-unavailable{margin:0 0 1rem;padding:.6rem .8rem;border:1px solid var(--line);border-radius:.875rem;background:var(--surface-soft);color:var(--ink-secondary);font-size:.8125rem}
.design-v3 .similar-map-unavailable:empty{margin:0;padding:0;border:0;background:none}
.design-v3 .similar-map-frame{position:relative;min-width:0;min-height:34rem;overflow:hidden;border:1px solid var(--line);border-radius:1rem;background:var(--surface-green-soft)}
.design-v3 .similar-map-canvas{position:absolute;inset:0}
.design-v3 .similar-map-marker{display:inline-flex;min-width:2.75rem;min-height:2.75rem;align-items:center;justify-content:center;padding:.25rem .55rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface-card);box-shadow:var(--shadow-card);color:var(--ink-primary);font-size:.8125rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1;white-space:nowrap;text-decoration:none}
.design-v3 .similar-map-marker:hover,.design-v3 .similar-map-marker:focus-visible{z-index:4;border-color:var(--brand-green);color:var(--brand-green-dark)}
.design-v3 .similar-map-subject{width:1.25rem;height:1.25rem;border:3px solid var(--surface-card);border-radius:50%;background:var(--brand-green);box-shadow:0 0 0 2px var(--brand-green),var(--shadow-card)}
.design-v3 .similar-map-note{margin:.75rem 0 0;color:var(--ink-muted);font-size:.72rem}

.design-v3 .v4-listing-price-history{display:grid;gap:1rem;margin-top:2rem}
.design-v3 .v4-listing-price-history>.detail-alert{max-width:32rem}
.design-v3 .v4-listing-price-history>.detail-alert button{min-height:2.75rem;border-color:var(--line);border-radius:1rem;background:var(--surface-card)}
.design-v3 .v4-listing-price-history>.price-history-full{margin-top:0;padding:1.25rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-card)}
.design-v3 .v4-listing-price-history .history-mark{display:none}
.design-v3 .v4-listing-price-history .history-table,.design-v3 .v4-listing-price-history .hist-total{font-variant-numeric:tabular-nums}
.design-v3 .v4-listing-detail>.detail-description{margin-top:1.125rem;padding:1.25rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-card)}

@media (max-width:68.75rem){
.design-v3 .v4-listing-top,.design-v3 .v4-listing-copilot-grid{grid-template-columns:1fr}
.design-v3 .v4-listing-top{gap:1rem}.design-v3 .v4-listing-messenger{min-height:18rem}
.design-v3 .nearby-layout.has-map{grid-template-columns:1fr}.design-v3 .similar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:38.75rem){
.design-v3 .v4-listing-main,.design-v3 .v4-listing-summary,.design-v3 .v4-listing-chat,.design-v3 .v4-listing-messenger{border-radius:1rem}
.design-v3 .v4-listing-summary,.design-v3 .v4-listing-chat,.design-v3 .v4-listing-messenger{padding:1rem}
.design-v3 .v4-listing-thumbs{gap:.4rem}.design-v3 .v4-listing-thumb{border-radius:.75rem}
.design-v3 .v4-summary-price{gap:.6rem}.design-v3 .v4-summary-price .detail-price{font-size:2rem}
.design-v3 .v4-summary-facts{grid-template-columns:1fr}.design-v3 .v4-summary-facts div:nth-child(even){padding-left:0}
.design-v3 .v4-listing-quick-actions{gap:.45rem}.design-v3 .v4-listing-quick-actions button,.design-v3 .v4-listing-quick-actions a{min-height:2.75rem;padding:.6rem .75rem}
.design-v3 .v4-listing-composer{padding-top:.75rem}.design-v3 .v4-listing-channel-buttons{gap:.45rem}
.design-v3 .v4-listing-price-history>.price-history-full,.design-v3 .v4-listing-detail>.detail-description{padding:1rem;border-radius:1rem}
.design-v3 .v4-nearby-section,.design-v3 .v4-similar-section{padding:1rem;border-radius:1rem}
.design-v3 .v4-listing-section-head{flex-wrap:wrap;align-items:flex-start;gap:.75rem}
.design-v3 .nearby-map{min-height:24rem}.design-v3 .nearby-map-marker{width:2.75rem;height:2.75rem}
.design-v3 .similar-map-frame{min-height:24rem}.design-v3 .v4-similar-mode{min-height:2.75rem}
.design-v3 .poi-group>summary,.design-v3 .poi-choice{grid-template-columns:minmax(0,1fr) 5.25rem 2.75rem;gap:.35rem}
.design-v3 .poi-group>summary{padding-left:.6rem;font-size:.8125rem}.design-v3 .poi-choice{padding-left:.75rem;font-size:.8125rem}
.design-v3 .similar-grid{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
.design-v3 .v4-listing-detail *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* === Phase 1F · home district board (start) === */
.design-v3 .v4-districts{display:grid;grid-template-columns:none;gap:1.5rem;align-items:stretch}
.design-v3 .v4-districts-head{max-width:46rem}
.design-v3 .v4-districts-head h3{margin:0;font-size:clamp(1.35rem,2vw,1.5625rem)}
.design-v3 .v4-districts-spread{display:grid;grid-template-columns:minmax(20rem,.98fr) minmax(0,1.02fr);gap:1.25rem;align-items:stretch}

.design-v3 .v4-plan{display:grid;grid-template-rows:auto auto 1fr auto;gap:.9rem;min-width:0}
.design-v3 .v4-plan-title{margin:0;font-size:1.1rem}
.design-v3 .v4-plan-median{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap;margin:0;padding-bottom:.9rem;border-bottom:1px solid var(--line-soft);color:var(--ink-secondary);font-size:.78rem}
.design-v3 .v4-plan-median b{color:var(--ink-primary);font-family:var(--disp);font-size:clamp(2rem,3vw,2.375rem);font-weight:700;letter-spacing:-.045em;line-height:.95;font-variant-numeric:tabular-nums}
.design-v3 .v4-plan-median small{color:var(--ink-secondary);font-size:.78rem;font-weight:600}
.design-v3 .v4-plan-figure{display:grid;align-content:center;min-width:0}
.design-v3 .v4-plan-caption{margin:0;color:var(--ink-secondary);font-size:.72rem}
.design-v3 .district-plan{display:block;width:100%;height:auto;margin-block:auto}

.design-v3 .plan-frame{fill:none;stroke:var(--line-soft);stroke-dasharray:none}
.design-v3 .zone{fill:var(--surface-soft);stroke:var(--line);stroke-width:1.5;stroke-dasharray:none}
.design-v3 .plan-zone.is-empty .zone{fill:var(--surface-card);stroke:var(--line)}
.design-v3 .river{fill:var(--surface-green-soft);stroke:var(--line);stroke-dasharray:none}
.design-v3 .plan-river-lbl{fill:var(--ink-muted);font-family:var(--body);font-size:8.5px;font-weight:600;letter-spacing:.18em}
.design-v3 .plan-rank{fill:var(--brand-green-dark);font-family:var(--body);font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}
.design-v3 .plan-lbl{fill:var(--ink-primary);font-family:var(--body);font-size:9px;font-weight:600;letter-spacing:0;text-transform:none}
.design-v3 .plan-med{fill:var(--brand-green-dark);font-family:var(--body);font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}
.design-v3 .plan-a:hover .zone,.design-v3 .plan-a:focus-visible .zone{fill:var(--surface-green-soft);stroke:var(--brand-green);stroke-width:2.5}
.design-v3 .plan-a:focus-visible{outline:3px solid var(--brand-green);outline-offset:2px}

.design-v3 .v4-zones{display:grid;grid-template-rows:auto 1fr;gap:.9rem;min-width:0;height:100%}
.design-v3 .v4-zones-title{margin:0;font-size:1.1rem}
.design-v3 .v4-zone-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:1rem;margin:0;padding:0;list-style:none}
.design-v3 .v4-zone{display:grid;align-content:start;gap:.3rem;min-width:0;height:100%;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-card);color:var(--ink-primary);line-height:1.2;text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.design-v3 .v4-zone:hover,.design-v3 .v4-zone:focus-visible{border-color:var(--brand-green);box-shadow:var(--shadow-card);transform:translateY(-2px)}
.design-v3 .v4-zone:focus-visible{outline:3px solid var(--brand-green);outline-offset:2px}
.design-v3 .v4-zone-top{display:flex;gap:.45rem;align-items:center;min-width:0}
.design-v3 .v4-zone-rank{display:inline-grid;flex:none;width:1.375rem;min-height:1.375rem;place-items:center;border-radius:.5rem;background:var(--surface-green-soft);color:var(--brand-green-dark);font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums}
.design-v3 .v4-zone-name{min-width:0;color:var(--ink-secondary);font-size:.8rem;font-weight:700;letter-spacing:.04em;overflow-wrap:anywhere}
.design-v3 .v4-zone-ppm2{font-family:var(--disp);font-size:clamp(1.25rem,1.6vw,1.5rem);font-weight:700;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.design-v3 .v4-zone-ppm2 small{margin-left:.25rem;color:var(--ink-secondary);font-family:var(--body);font-size:.7rem;font-weight:600;letter-spacing:0}
.design-v3 .v4-zone-ppm2.is-nodata{color:var(--ink-secondary);font-family:var(--body);font-size:1rem;font-weight:400;letter-spacing:0}
.design-v3 .v4-zone-delta{display:inline-flex;gap:.3rem;align-items:center;justify-self:start;padding:.15rem .5rem;border-radius:.75rem;font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums}
.design-v3 .v4-zone-delta.is-below{background:var(--surface-green-soft);color:var(--brand-green-dark)}
.design-v3 .v4-zone-delta.is-above{border:1px solid var(--line);background:var(--surface-soft);color:var(--ink-primary)}
.design-v3 .v4-zone-delta.is-level{color:var(--ink-secondary)}
.design-v3 .v4-zone-delta.is-nodata{padding-left:0;background:none;color:var(--ink-secondary);font-weight:600}
.design-v3 .v4-zone-counts{margin-top:.45rem;padding-top:.45rem;border-top:1px solid var(--line-soft);color:var(--ink-secondary);font-size:.72rem;font-variant-numeric:tabular-nums}
.design-v3 .v4-zone-counts b{color:var(--ink-primary);font-weight:700}
.design-v3 .v4-zone.is-empty{border-color:var(--line);color:var(--ink-secondary);box-shadow:none;transform:none;cursor:default}

.design-v3 .v4-dt{overflow:hidden;border:1px solid var(--line);border-radius:1rem;background:var(--surface-card)}
.design-v3 .v4-dt-summary{display:flex;gap:1rem;align-items:center;justify-content:space-between;min-height:3.25rem;padding:.55rem 1.25rem;color:var(--ink-primary);font-weight:700;list-style:none;cursor:pointer}
.design-v3 .v4-dt-summary::-webkit-details-marker{display:none}
.design-v3 .v4-dt-summary:hover{background:var(--surface-soft)}
.design-v3 .v4-dt-summary:focus-visible{outline:3px solid var(--brand-green);outline-offset:-3px}
.design-v3 .v4-dt-marker{display:grid;width:2.75rem;min-height:2.75rem;place-items:center;border:1px solid var(--line);border-radius:.875rem;color:var(--brand-green-dark)}
.design-v3 .v4-dt-close{display:none}
.design-v3 .v4-dt[open] .v4-dt-open{display:none}
.design-v3 .v4-dt[open] .v4-dt-close{display:inline}
.design-v3 .v4-dt-body{max-height:min(60vh,32rem);overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--line)}
.design-v3 .v4-dt-totals{margin:0;padding:.6rem 1.25rem;border-bottom:1px solid var(--line-soft);color:var(--ink-secondary);font-size:.75rem;font-weight:600;font-variant-numeric:tabular-nums}
.design-v3 .v4-dt-head,.design-v3 .v4-dt-row{display:grid;gap:.75rem;align-items:center;padding:.55rem 1.25rem}
.design-v3 .v4-dt-head{position:sticky;z-index:1;top:0;grid-template-columns:minmax(0,1fr) 6.5rem 7.5rem 6.5rem 8.5rem;border-bottom:1px solid var(--line);background:var(--surface-soft);color:var(--ink-secondary);font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.design-v3 .v4-dt-unit{text-transform:none}
.design-v3 .v4-dt-head>span+span,.design-v3 .v4-dt-row>span:not(.v4-dt-name){font-variant-numeric:tabular-nums;text-align:right}
.design-v3 .v4-dt-rows{margin:0;padding:0;list-style:none}
.design-v3 .v4-dt-row{grid-template-columns:1.25rem minmax(0,1fr) 6.5rem 7.5rem 6.5rem 8.5rem;min-height:2.75rem;border-bottom:1px solid var(--line-soft);color:var(--ink-primary);text-decoration:none}
.design-v3 .v4-dt-rows li:last-child .v4-dt-row{border-bottom:0}
.design-v3 .v4-dt-row:hover{background:var(--surface-green-soft)}
.design-v3 .v4-dt-row:focus-visible{outline:3px solid var(--brand-green);outline-offset:-3px}
.design-v3 .v4-dt-name{grid-column:2;min-width:0;font-weight:600;overflow-wrap:anywhere}
.design-v3 .v4-dt-rank{display:inline-grid;grid-column:1;width:1.25rem;min-height:1.25rem;place-items:center;border-radius:.4rem;background:var(--surface-green-soft);color:var(--brand-green-dark);font-size:.65rem;font-weight:700;font-variant-numeric:tabular-nums}
.design-v3 .v4-dt-ppm2{grid-column:3;font-weight:700}
.design-v3 .v4-dt-vs{grid-column:4}
.design-v3 .v4-dt-vs.is-below{color:var(--brand-green-dark);font-weight:700}
.design-v3 .v4-dt-vs.is-above{color:var(--ink-primary);font-weight:700}
.design-v3 .v4-dt-vs.is-nodata,.design-v3 .v4-dt-ppm2.is-nodata{color:var(--ink-secondary);font-weight:400}
.design-v3 .v4-dt-count{grid-column:5;color:var(--ink-secondary)}
.design-v3 .v4-dt-owners{grid-column:6;color:var(--ink-primary);font-weight:700}
.design-v3 .v4-dt-u{display:none}
.design-v3 .v4-dt-note{margin:0;padding:.75rem 1.25rem;border-top:1px solid var(--line);background:var(--surface-soft);color:var(--ink-secondary);font-size:.72rem}
.design-v3 .v4-dt-row.is-empty{color:var(--ink-secondary)}

@media (max-width:68.75rem){
.design-v3 .v4-districts-spread{grid-template-columns:1fr}
.design-v3 .v4-zones{height:auto}
.design-v3 .v4-dt-head{grid-template-columns:minmax(0,1fr) 5.5rem 6.5rem 5.5rem 7rem}
.design-v3 .v4-dt-row{grid-template-columns:1.25rem minmax(0,1fr) 5.5rem 6.5rem 5.5rem 7rem}
}

@media (max-width:48rem){
.design-v3 .v4-dt-head{display:none}
.design-v3 .v4-dt-row{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"rank name ppm2" "vs count owners";gap:.15rem .6rem;min-height:3.5rem;padding:.6rem .9rem}
.design-v3 .v4-dt-name{grid-area:name}
.design-v3 .v4-dt-rank{grid-area:rank;justify-self:end}
.design-v3 .v4-dt-ppm2{grid-area:ppm2}
.design-v3 .v4-dt-row>span.v4-dt-vs{grid-area:vs;width:4rem;text-align:left;font-size:.72rem}
.design-v3 .v4-dt-count{grid-area:count;font-size:.72rem}
.design-v3 .v4-dt-owners{grid-area:owners;font-size:.72rem}
.design-v3 .v4-dt-u{display:inline;margin-left:.2rem;color:var(--ink-secondary);font-weight:400}
}

@media (max-width:38.75rem){
.design-v3 .v4-districts{gap:1rem}
.design-v3 .v4-districts-spread{gap:1rem}
.design-v3 .plan-lbl{font-size:10px}
.design-v3 .plan-rank{font-size:12px}
.design-v3 .plan-med{display:none}
.design-v3 .v4-zone-grid{grid-template-rows:none;gap:.6rem}
.design-v3 .v4-zone{padding:.75rem .8rem;border-radius:1rem;gap:.2rem}
.design-v3 .v4-zone-name{font-size:.75rem}
.design-v3 .v4-zone-ppm2{font-size:1.5rem}
.design-v3 .v4-zone-delta{padding:.1rem .4rem;font-size:.68rem}
.design-v3 .v4-zone-counts{margin-top:.4rem;padding-top:.4rem;font-size:.68rem;line-height:1.35}
.design-v3 .v4-dt{border-radius:1rem}
.design-v3 .v4-dt-summary{padding:.5rem .9rem}
.design-v3 .v4-dt-body{max-height:70vh}
.design-v3 .v4-dt-totals{padding:.55rem .9rem}
.design-v3 .v4-dt-note{padding:.7rem .9rem}
}

/* Mandate E: composer history stays in guarded home. */
.design-v3 .v4-composer-history{display:flex;max-height:20rem;min-width:0;margin:0;padding:.15rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;flex-direction:column;gap:.6rem;list-style:none}
.design-v3 .v4-composer-message{width:fit-content;max-width:88%;min-width:0;padding:.65rem .8rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-card);color:var(--ink-primary);overflow-wrap:anywhere}
.design-v3 .v4-composer-message.is-tenant{align-self:flex-end;background:var(--surface-green-soft)}
.design-v3 .v4-composer-message.is-copilot{align-self:flex-start}
.design-v3 .v4-composer-author{display:block;margin-bottom:.2rem;color:var(--ink-secondary);font-size:.7rem;font-weight:700}
.design-v3 .v4-composer-message p{margin:0;white-space:pre-wrap}
.design-v3 .v4-composer-results{display:inline-flex;min-height:2.75rem;align-items:center;padding:.5rem .7rem;border:1px solid;border-radius:.9rem;text-decoration:none}

@media (max-width:24.375rem){
.design-v3 .v4-composer,.design-v3 .v4-composer-control,.design-v3 .v4-composer-feedback,.design-v3 .v4-composer-question,.design-v3 .v4-composer-history{max-width:100%;min-width:0;box-sizing:border-box}
.design-v3 .v4-composer-control{overflow:hidden}
.design-v3 .v4-composer textarea{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.design-v3 .v4-composer-actions{min-width:0;flex-wrap:wrap}
.design-v3 .v4-composer-actions .v4-send{min-width:0}
.design-v3 .v4-composer-quick-replies button{width:100%;min-width:0}
.design-v3 .v4-composer-message{max-width:94%;box-sizing:border-box}
}

@media (prefers-reduced-motion:reduce){
.design-v3 .v4-zone{transition:none}
.design-v3 .v4-zone:hover,.design-v3 .v4-zone:focus-visible{transform:none}
}
/* === Phase 1F · home district board (end) === */

/* === Phase 1E · legacy body bridge (start) === */
.design-v3 .page{margin-inline:auto}
.design-v3 .page.prose{line-height:1.68}
.design-v3 :is(.page.prose,.page .prose) h2{margin:2.25rem 0 .7rem}
.design-v3 :is(.page.prose,.page .prose) h3{margin:1.65rem 0 .55rem}
.design-v3 :is(.page.prose,.page .prose) li+li{margin-top:.55rem}
.design-v3 :is(.page.prose,.page .prose) blockquote{padding:.9rem 1rem;border-color:var(--brand-green);border-radius:0 .9rem .9rem 0;background:var(--surface-green-soft)}
.design-v3 .page .sec-head{margin-bottom:1.75rem}
.design-v3 .page :is(.sec-head .idx,.eyebrow){color:var(--ink-secondary);font-family:var(--body);font-weight:700}
.design-v3 .contract-result .doc-title{color:var(--ink-secondary);font-family:var(--disp)}
.design-v3 .page:not(.v4-feed):not(.listing-detail) :is(.muted,.consent,.req-note,.lede,.disclaimer,.role-note,.guide-status,.feed-empty){color:var(--ink-secondary)}
.design-v3 .page .tax-res dt{color:var(--ink-secondary)}
.design-v3 .page .form :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea,button),.design-v3 .page:not(.feed-page):not(.listing-detail) .btn{min-height:2.75rem;border-radius:.875rem}
.design-v3 .page .form button,.design-v3 .page:not(.feed-page):not(.listing-detail) .btn{font-weight:700}
.design-v3 .page:not(.feed-page):not(.listing-detail) .actions{display:flex;flex-wrap:wrap;gap:.75rem}
.design-v3 .page .form :is(.check,.radio){min-height:2.75rem;align-items:center}
.design-v3 .page .form .check input[type=checkbox]{border-color:var(--ink-secondary);border-radius:.375rem;background:var(--surface-card)}
.design-v3 .page .form :is(.field.invalid :is(input,textarea),[aria-invalid=true]){border-color:var(--ink-primary);box-shadow:0 0 0 3px var(--surface-green-soft)}
.design-v3 .page :is(.error,.errors){border-color:var(--ink-primary);border-left-width:4px;border-radius:.875rem;background:var(--surface-green-soft)}
.design-v3 .page .req{color:var(--brand-green-dark);font-weight:700}
.design-v3 .page :is(.step,.checks,.channel,.result,.taxout,.tax-res,.facts-tbl,.guide-card,.drawing-section,.vid-steps,.city-intro),.design-v3 .document{border-color:var(--line);border-radius:1rem;background:var(--surface-card)}
.design-v3 .page :is(.step,.drawing-section)::before{border-color:var(--line);border-radius:0 .875rem 0 .875rem;background:var(--surface-green-soft)}
.design-v3 .page :is(.step,.checks,.channel) legend,.design-v3 .page .guide-code{color:var(--brand-green-dark);font-family:var(--body);font-weight:700}
.design-v3 .page .step[data-state="invalid"]{border-color:var(--ink-primary)}
.design-v3 .page :is(.taxout,.tax-res){padding:.8rem 1rem}
.design-v3 .page .tax-res{background:var(--surface-green-soft)}
.design-v3 .page .tax-res .net{border-color:var(--ink-primary);color:var(--ink-primary);font-weight:700}
.design-v3 .page .facts-tbl{overflow:hidden}
.design-v3 .page .facts-tbl :is(dt,dd){min-width:0;overflow-wrap:anywhere}
.design-v3 .page .guide-card{box-shadow:var(--shadow-card)}
.design-v3 .page .guide-roles{flex-wrap:wrap}
.design-v3 .page .role-badge{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .4rem;border-color:var(--line);border-radius:14px;background:var(--surface-green-soft)}
.design-v3 .page .guide-more{border-color:var(--line)}
.design-v3 .page .role-note{border-color:var(--ink-primary);border-left-width:4px;border-radius:1rem;background:var(--surface-green-soft)}
.design-v3 .vid-page .vid-steps{overflow:hidden}
.design-v3 .vid-page .vid-step{border-color:var(--line)}
.design-v3 .vid-page .vid-step:last-child{border-bottom:0}
.design-v3 .vid-page .vid-step::before{color:var(--brand-green-dark)}
.design-v3 .feed-page .city-intro{border-color:var(--ink-primary);color:var(--ink-secondary);background:var(--surface-green-soft)}
.design-v3 .page :is(.disclaimer,.deadline-ribbon){border-color:var(--ink-primary);border-radius:0 1rem 1rem 0;background:var(--surface-green-soft)}
.design-v3 .page .deadline{border-style:dashed;border-left-style:solid;font-weight:700}
.design-v3 .page .mmpaper{border-color:var(--line);border-radius:1rem;background-color:var(--surface-card)}
.design-v3 .page .mm-mark.nearest{stroke:var(--ink-primary);stroke-width:3;stroke-dasharray:3 2}
.design-v3 .page .mm-deadline.nearest text{font-weight:700}
.design-v3 .page .duties>div:first-child{border-left:4px solid var(--ink-primary);padding-left:.75rem}
.design-v3 .document,.design-v3 .document :is(p,li,table,blockquote,th,td,h1,h2:not(.doc-title),h3){font-family:Georgia,'Times New Roman',serif}
.design-v3 .document{line-height:1.62;overflow-wrap:anywhere}
.design-v3 .document blockquote{border-color:var(--ink-primary);border-radius:0 .9rem .9rem 0;background:var(--surface-green-soft)}
.design-v3 .document :is(th,td){border-color:var(--line);overflow-wrap:anywhere}
.design-v3 .contract-form .stampgrid{overflow:hidden;border-color:var(--line);border-radius:1rem;background:var(--surface-card)}
.design-v3 .contract-form .stamp-cell{border-color:var(--line);color:var(--ink-secondary);overflow-wrap:anywhere}
.design-v3 .listing-detail .v4-listing-price-history{min-width:0;grid-template-columns:minmax(0,1fr)}
.design-v3 .listing-detail :is(.detail-alert,.price-history-full,.relay-copy,.table-scroll){min-width:0}
.design-v3 .listing-detail .detail-alert>button{min-width:0;flex-wrap:wrap}
.design-v3 .listing-detail .table-scroll{overflow-x:auto}
.design-v3.stats-root{container-type:normal}
.design-v3.stats-page{margin:auto}
.design-v3.stats-page .leaf{display:none}
.design-v3.stats-page :is(.muted,th){color:var(--ink-secondary)}
.design-v3.stats-page table{overflow:hidden;border:1px solid var(--line);border-radius:1rem;border-collapse:separate;border-spacing:0;background:var(--surface-card)}
.design-v3.stats-page :is(th,td){border-color:var(--line)}
@media(max-width:620px){.design-v3 .document table{display:block;min-width:0;overflow-x:auto}
.design-v3 .contract-form .stampgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:42rem){.design-v3.stats-page .stats-scroll{overflow-x:auto}
}
/* === Phase 1E · legacy body bridge (end) === */

@media print{
.v4-topbar,.v4-footer{display:none!important}.v4-main{width:auto;max-width:none;padding:0;min-height:0}
/* Issue 205 круг 2: на бумаге сворачивать нечего. Свёрнутая на узком экране
   панель уходила в печать пустой — правило узкого окна прячет её тело, а печать
   его не переопределяла: человек получал лист без диалога и без фильтров.
   Здесь тело показано безусловно, а сам переключатель с подписью не печатаются. */
.design-v3 .v4-pane-toggle,.design-v3 .v4-pane-summary{display:none!important}.design-v3 .v4-pane-body{display:grid!important;padding-top:1rem}
/* Issue 205 круг 3: на бумаге история разговора печатается целиком. Экранная
   высота (20rem на главной, 14rem в панели выдачи) со своей прокруткой резала
   лист: хвост разговора — свежий ответ и карточки — на печать не попадал
   вовсе. Прокрутки на бумаге не существует, поэтому предел высоты снимается. */
.design-v3 .v4-composer-history{max-height:none!important;overflow:visible!important}
}
