/* Fonts: /css/fonts.css (self-hosted Manrope and Unbounded), linked from the layout. */

:root {
    --sk-canvas: #FAF9FC;
    --sk-surface: #FFFFFF;
    --sk-surface-alt: #EEE8F5;
    --sk-ink: #30243E;
    --sk-muted: #685E72;
    --sk-line: #DDD6E5;
    --sk-primary: #634776;
    --sk-primary-strong: #493157;
    --sk-accent: #FF875B;
    --sk-danger: #B3311F;
    --sk-accent-strong: #F67443;
    --sk-accent-soft: #FFE5D9;
    --sk-warning-soft: #FFF1CE;
    --sk-warning-ink: #755400;
    --sk-success-soft: #E1F4E8;
    --sk-success-ink: #14683F;
    --sk-success-line: #BFE3CD;
    --sk-on-dark-muted: #E8DFF0;
    --sk-frame: 1240px;
    --sk-radius-control: 12px;
    --sk-radius-panel: 18px;
    --sk-radius-card: 22px;
    color-scheme: light;
    font-family: var(--sk-font-body);
    scrollbar-color: var(--sk-primary) var(--sk-canvas);
    scrollbar-width: thin;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--sk-canvas); color: var(--sk-ink); font-family: inherit; line-height: 1.55; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: var(--sk-canvas); }
*::-webkit-scrollbar-thumb { background: var(--sk-primary); border: 2px solid var(--sk-canvas); border-radius: 99px; }
a { color: inherit; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
textarea { resize: none; min-height: 120px; field-sizing: content; }
:focus-visible { outline: 3px solid var(--sk-primary); outline-offset: 3px; }
[x-cloak] { display: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Shell */
.site-shell { min-height: 100vh; display: flex; flex-direction: column; }
.site-main { flex: 1; }
.site-frame { width: min(calc(100% - 40px), var(--sk-frame)); margin-inline: auto; }
.crumbs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; color: var(--sk-muted); font-size: 14px; }
.crumbs a { color: var(--sk-primary-strong); text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }

/* Header */
.site-header { position: sticky; top: 0; z-index: 40; background: var(--sk-canvas); border-bottom: 1px solid var(--sk-line); }
.site-header__row { min-height: 74px; display: flex; align-items: center; gap: 28px; }
.brand { min-height: 44px; display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.brand__mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: var(--sk-primary); color: var(--sk-surface); font-family: var(--sk-font-display); font-weight: 700; font-size: 14px; }
.brand__name { font-family: var(--sk-font-display); font-weight: 700; font-size: 17px; letter-spacing: -.04em; }
.brand__sub { display: block; color: var(--sk-muted); font-size: 11px; letter-spacing: .03em; }
.site-nav { display: flex; align-items: center; gap: 6px; }
.site-nav a, .account-nav a, .account-nav button { min-height: 44px; display: inline-flex; align-items: center; padding: 0 13px; border: 0; border-radius: var(--sk-radius-control); background: transparent; color: var(--sk-ink); text-decoration: none; font-weight: 600; cursor: pointer; }
.site-nav a:hover, .account-nav a:hover, .account-nav button:hover { background: var(--sk-surface-alt); }
.account-nav { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.account-nav form { margin: 0; }
.account-nav .nav-primary { background: var(--sk-primary); color: var(--sk-surface); }
.menu-toggle { display: none; margin-left: auto; min-width: 44px; min-height: 44px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-control); background: var(--sk-surface); cursor: pointer; }
.mobile-nav { display: none; padding-bottom: 14px; }
.mobile-nav a { display: block; padding: 11px 12px; text-decoration: none; font-weight: 700; }
.flash { margin-top: 18px; padding: 14px 16px; border: 1px solid var(--sk-line); border-left: 6px solid var(--sk-primary); border-radius: 14px; background: var(--sk-surface-alt); }

/* Buttons */
.btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 18px; border: 1px solid var(--sk-ink); border-radius: var(--sk-radius-control); background: var(--sk-surface); color: var(--sk-ink); text-decoration: none; font-weight: 700; cursor: pointer; transition: background .16s ease, border-color .16s ease, color .16s ease; }
.btn:hover { background: var(--sk-surface-alt); }
.btn-primary { border-color: var(--sk-primary); background: var(--sk-primary); color: var(--sk-surface); }
.btn-primary:hover { background: var(--sk-primary-strong); border-color: var(--sk-primary-strong); }
.btn-signal { border-color: var(--sk-accent); background: var(--sk-accent); color: var(--sk-ink); }
.btn-signal:hover { background: var(--sk-accent-strong); border-color: var(--sk-accent-strong); }
.btn-quiet { border-color: var(--sk-line); }
.btn-sm { min-height: 44px; padding-inline: 13px; font-size: 14px; }

/* Hero */
.page-hero { padding: clamp(54px,8vw,108px) 0 38px; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 16px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.eyebrow::before { content: ''; width: 30px; height: 4px; border-radius: 99px; background: linear-gradient(90deg, var(--sk-accent) 0 12px, transparent 12px 16px, var(--sk-primary) 16px 30px); }
.display-title { max-width: 980px; margin: 0; font-family: var(--sk-font-display); font-size: clamp(38px,6.5vw,86px); line-height: .98; letter-spacing: -.065em; }
.page-title { margin: 0; font-family: var(--sk-font-display); font-size: clamp(30px,5vw,58px); line-height: 1.03; letter-spacing: -.055em; }
.lede { max-width: 680px; margin: 20px 0 0; color: var(--sk-muted); font-size: clamp(17px,2vw,21px); }
.hero-grid { display: grid; grid-template-columns: minmax(0,3fr) minmax(300px,2fr); gap: 42px; align-items: end; }
.route-line { height: 18px; margin-top: 34px; background: linear-gradient(90deg,var(--sk-primary) 0 38%,transparent 38% 41%,var(--sk-accent) 41% 70%,transparent 70% 73%,var(--sk-primary-strong) 73%); border-radius: 99px; }

/* Decision panel */
.decision-panel, .panel { border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); }
.decision-panel { padding: 24px; }
.decision-panel h2 { margin: 0 0 6px; font-family: var(--sk-font-display); font-size: 20px; letter-spacing: -.035em; }
.decision-panel > p { margin: 0 0 20px; color: var(--sk-muted); }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.field { display: grid; gap: 7px; }
.field--wide { grid-column: 1/-1; }
.field label { font-size: 13px; font-weight: 700; }
.field input, .field select, .field textarea, .catalog-filters input, .catalog-filters select { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-control); background: var(--sk-surface); color: var(--sk-ink); }
.field input:focus, .field select:focus, .catalog-filters input:focus, .catalog-filters select:focus { border-color: var(--sk-primary); outline: 3px solid var(--sk-focus); }
.check-field { display: flex; align-items: center; gap: 9px; min-height: 46px; }
.check-field input { width: 19px; height: 19px; accent-color: var(--sk-primary); }
.form-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.error-text { color: var(--sk-danger); font-size: 13px; }

/* Sections */
.section { padding: clamp(48px,7vw,88px) 0; }
.section--tight { padding-top: 20px; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.section-title { margin: 0; font-family: var(--sk-font-display); font-size: clamp(24px,3vw,38px); letter-spacing: -.045em; }
.section-kicker { margin-top: 8px; color: var(--sk-muted); }
.section-link { font-weight: 700; color: var(--sk-primary-strong); }

/* Buildings grid */
.buildings-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }

/* Building card */
.building-card { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); transition: transform .18s ease, border-color .18s ease; }
.building-card:hover { transform: translateY(-4px); border-color: var(--sk-line); }
.building-card__media { position: relative; aspect-ratio: 16/10; overflow: hidden; background: linear-gradient(135deg,var(--sk-surface-alt),var(--sk-surface-alt)); }
.building-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.building-card:hover .building-card__media img { transform: scale(1.025); }
.building-card__link { color: inherit; text-decoration: none; }
.building-card__body { padding: 18px; }
.building-card__top { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.card-title { margin: 0; font-size: 20px; line-height: 1.16; }
.card-developer, .card-city, .card-rooms { margin: 5px 0 0; color: var(--sk-muted); font-size: 14px; }
.card-price { margin: 18px 0 0; font-family: var(--sk-font-display); font-size: 17px; }
.card-status { display: inline-flex; margin-top: 13px; padding: 5px 9px; border: 1px solid var(--sk-line); border-radius: 99px; font-size: 12px; font-weight: 700; }
.status-foundation { background: var(--sk-warning-soft); color: var(--sk-warning-ink); }
.status-construction { background: var(--sk-surface-alt); color: var(--sk-primary-strong); }
.status-completed { background: var(--sk-success-soft); color: var(--sk-success-ink); }
.favorite-btn { position: relative; z-index: 2; min-height: 44px; padding: 0 12px; border: 1px solid var(--sk-line); border-radius: 99px; background: var(--sk-surface); color: var(--sk-ink); text-decoration: none; cursor: pointer; white-space: nowrap; }
.favorite-btn.favorited { background: var(--sk-accent-soft); border-color: var(--sk-accent); }
.card-image-placeholder { width: 100%; height: 100%; background: repeating-linear-gradient(-45deg,var(--sk-surface-alt) 0 12px,var(--sk-surface) 12px 24px); }

/* Process */
.process-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--sk-line); }
.process-step { padding: 24px; border-right: 1px solid var(--sk-line); }
.process-step:last-child { border-right: 0; }
.process-number { font-family: var(--sk-font-display); font-size: 34px; color: var(--sk-accent); }
.process-step h3 { margin: 26px 0 8px; }
.process-step p { margin: 0; color: var(--sk-muted); }

/* Lead strip */
.lead-strip { display: grid; grid-template-columns: 1fr minmax(320px,520px); gap: 36px; padding: 32px; border-radius: var(--sk-radius-card); background: var(--sk-ink); color: var(--sk-surface); }
.lead-strip h2 { margin: 0; font-family: var(--sk-font-display); font-size: clamp(26px,4vw,44px); letter-spacing: -.05em; }
.lead-strip p { color: var(--sk-line); }
.lead-form { display: grid; gap: 13px; }
.lead-form .form-group { display: grid; gap: 6px; }
.lead-form label { font-size: 13px; font-weight: 700; }
.lead-form input { min-height: 46px; padding: 10px 12px; border: 1px solid var(--sk-muted); border-radius: var(--sk-radius-control); background: var(--sk-surface); color: var(--sk-ink); }

/* Catalog */
.catalog-layout, .landing-layout { padding: 58px 0 90px; }
.catalog-intro { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: end; margin-bottom: 28px; }
.catalog-count { padding: 10px 14px; border: 1px solid var(--sk-line); border-radius: 99px; background: var(--sk-surface-alt); color: var(--sk-primary-strong); font-weight: 800; }
.catalog-filters { display: grid; grid-template-columns: 2fr repeat(3,1fr); gap: 12px; padding: 20px; margin-bottom: 26px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); }
.catalog-filters .field-multi { min-height: 92px; }
.catalog-filters .field-price { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.search-control { position: relative; }
.search-control input { padding-right: 52px; }
.search-clear { position: absolute; right: 1px; top: 1px; width: 44px; height: 44px; border: 0; border-radius: 11px; background: var(--sk-surface-alt); cursor: pointer; }
.catalog-actions { grid-column: 1/-1; display: flex; justify-content: flex-end; gap: 10px; padding-top: 8px; }
.catalog-feed[aria-busy='true'] { opacity: .58; }
.catalog-feed[aria-busy='true']::before { content: 'Обновляем подборку…'; display: block; margin: 0 0 16px; padding: 12px 16px; border: 1px dashed var(--sk-line); border-radius: 14px; background: var(--sk-surface); color: var(--sk-muted); font-weight: 700; }
.feed-notice { margin: 0 0 16px; padding: 13px 16px; border: 1px solid var(--sk-accent); border-left: 6px solid var(--sk-accent); border-radius: 14px; background: var(--sk-accent-soft); color: var(--sk-ink); }
.feed-criteria { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 16px; }
.feed-criteria__label { color: var(--sk-muted); font-size: 14px; font-weight: 700; }
.filter-chip { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; padding: 0 10px 0 14px; border: 1px solid var(--sk-line); border-radius: 99px; background: var(--sk-surface-alt); color: var(--sk-primary-strong); font-size: 13px; font-weight: 700; text-decoration: none; }
.filter-chip:hover { background: var(--sk-surface-alt); }
.filter-chip__remove { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 99px; background: var(--sk-primary); color: var(--sk-surface); font-size: 13px; line-height: 1; }
.filter-chip--reset { padding: 0 14px; border-color: var(--sk-line); background: var(--sk-surface); color: var(--sk-ink); }
.filter-chip--reset:hover { background: var(--sk-surface-alt); }
.building-card__media .card-status { position: absolute; top: 12px; left: 12px; z-index: 1; margin-top: 0; border: 0; }
.card-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; margin: 16px 0 0; padding: 13px 14px; list-style: none; border: 1px solid var(--sk-line); border-radius: 14px; background: var(--sk-surface-alt); }
.card-facts li { display: grid; gap: 2px; }
.card-facts span { color: var(--sk-muted); font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.card-facts strong { font-size: 14px; }
.card-cta { display: inline-flex; align-items: center; min-height: 44px; margin-top: 14px; color: var(--sk-primary-strong); font-weight: 700; text-underline-offset: 4px; }
.card-cta:hover { color: var(--sk-primary); }
.results-status { margin: 0 0 18px; color: var(--sk-muted); }
.empty-state { grid-column: 1/-1; padding: 50px 24px; border: 1px dashed var(--sk-line); border-radius: var(--sk-radius-panel); text-align: center; background: var(--sk-on-dark-muted); }
.empty-state .btn { margin-top: 14px; }
.pagination { margin-top: 28px; }
.pagination nav > div:first-child { display: none; }

/* Catalog split-view */
.catalog-split { display: flex; gap: 28px; align-items: start; }
.catalog-split__criteria { flex: 0 0 280px; position: sticky; top: 90px; max-height: calc(100vh - 100px); overflow-y: auto; }
.catalog-split__results { flex: 1; min-width: 0; }

/* Discussion card markers */
.discussion-markers { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.discussion-marker { min-height: 44px; display: inline-flex; align-items: center; padding: 0 16px; border-radius: 99px; font-size: 14px; font-weight: 700; text-decoration: none; border: 2px solid var(--sk-line); background: var(--sk-surface); color: var(--sk-muted); transition: background .16s ease, border-color .16s ease, color .16s ease; }
.discussion-marker--for:hover { background: var(--sk-primary); border-color: var(--sk-primary); color: var(--sk-surface); }
.discussion-marker--against:hover { background: var(--sk-accent); border-color: var(--sk-accent); color: var(--sk-surface); }
.discussion-markers__note { width: 100%; color: var(--sk-muted); font-size: 12px; font-style: italic; }

/* hx-indicator */
.htmx-indicator { display: none; }
.htmx-request .htmx-indicator { display: inline; }
.htmx-request.htmx-indicator { display: inline; }
.catalog-feed[aria-busy='true'] .htmx-indicator { display: block; }

@media (max-width: 640px) {
    .card-facts { grid-template-columns: 1fr; }
    .feed-criteria__label { flex-basis: 100%; }
}

/* Building decision: split-view */
.building-decision { display: grid; grid-template-columns: minmax(0,3fr) minmax(280px,2fr); gap: 28px; align-items: start; }
.building-decision__card { display: flex; flex-direction: column; gap: 0; }
.building-cover { min-height: 430px; overflow: hidden; border-radius: var(--sk-radius-panel); background: var(--sk-surface-alt); }
.building-cover img { width: 100%; height: 100%; object-fit: cover; }
.building-decision__info { padding: 28px; }
.building-decision__info h1 { margin: 0; font-family: var(--sk-font-display); font-size: clamp(30px,4vw,52px); line-height: 1; letter-spacing: -.055em; }
.building-decision__info .eyebrow { margin-bottom: 12px; }
.building-summary__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.decision-facts { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: 10px; }
.decision-fact { display: grid; grid-template-columns: 120px 1fr; gap: 10px; align-items: baseline; }
.decision-fact span { color: var(--sk-muted); font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.decision-fact strong { font-size: 15px; line-height: 1.4; overflow-wrap: anywhere; }
.building-decision__ribbon { position: sticky; top: 90px; }
.building-decision__ribbon-inner { padding: 28px; }
.building-decision__ribbon-title { margin: 0 0 18px; font-family: var(--sk-font-display); font-size: 20px; letter-spacing: -.035em; }
.building-decision__ribbon .favorite-btn { width: 100%; justify-content: center; margin-bottom: 18px; }
.choice-ribbon__markers { display: flex; gap: 8px; margin-bottom: 8px; }
.choice-ribbon__note { margin: 0 0 18px; color: var(--sk-muted); font-size: 13px; }
.building-gallery { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 28px; }
.building-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 18px; }

/* Building documents */
.building-documents { margin-top: 36px; }
.building-documents__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.building-documents__item { border: 1px solid var(--sk-line); border-radius: var(--sk-radius-control); background: var(--sk-surface); }
.building-documents__link { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 10px 16px; text-decoration: none; color: inherit; }
.building-documents__link:hover { background: var(--sk-surface-alt); }
.building-documents__icon { font-size: 20px; flex-shrink: 0; }
.building-documents__title { font-weight: 600; color: var(--sk-primary-strong); }
.lots-section { margin-top: 54px; }
.table-shell { overflow-x: auto; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); scrollbar-gutter: stable; }
.lots-table { width: 100%; min-width: 780px; border-collapse: collapse; }
.lots-table th, .lots-table td { padding: 15px 16px; text-align: left; border-bottom: 1px solid var(--sk-line); }
.lots-table th { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; background: var(--sk-surface-alt); }
.lots-table tr:last-child td { border-bottom: 0; }
.lots-table tbody tr:hover { background: var(--sk-surface); }
.quick-lead-panel { margin-top: 32px; padding: 28px; }
.quick-lead-panel h2 { margin: 0 0 10px; font-family: var(--sk-font-display); letter-spacing: -.04em; }
.quick-lead-note { margin: 0 0 18px; color: var(--sk-muted); }
.building-summary__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.building-facts { margin-top: 54px; }
.facts-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.fact-item { display: grid; align-content: start; gap: 5px; padding: 14px 16px; border: 1px solid var(--sk-line); border-radius: 16px; background: var(--sk-surface); }
.fact-item span { color: var(--sk-muted); font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.fact-item strong { font-size: 15px; line-height: 1.4; overflow-wrap: anywhere; }
.fact-item .card-status { margin-top: 0; }
.fact-item--empty strong { color: var(--sk-muted); font-weight: 600; }
.building-about { margin-top: 30px; padding: 26px 28px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); }
.building-about h2 { margin: 0 0 10px; font-family: var(--sk-font-display); font-size: 20px; letter-spacing: -.035em; }
.building-about__text { margin: 0; color: var(--sk-muted); white-space: pre-line; }
.building-about__note { margin: 14px 0 0; color: var(--sk-muted); font-size: 13px; }
.mortgage-section { margin-top: 54px; }

/* Lot page: split-view */
.lot-decision { display: grid; grid-template-columns: minmax(0,3fr) minmax(280px,2fr); gap: 28px; align-items: start; margin-top: 24px; }
.lot-decision__passport { padding: 28px; }
.lot-title { margin: 0; font-family: var(--sk-font-display); font-size: clamp(28px,4vw,48px); line-height: 1; letter-spacing: -.05em; }
.lot-decision__passport .eyebrow { margin-bottom: 12px; }
.lot-facts { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: 10px; }
.lot-fact { display: grid; grid-template-columns: 120px 1fr; gap: 10px; align-items: baseline; }
.lot-fact span { color: var(--sk-muted); font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.lot-fact strong { font-size: 15px; line-height: 1.4; overflow-wrap: anywhere; }
.lot-fact strong a { color: var(--sk-primary-strong); }
.lot-status { display: inline-flex; padding: 5px 12px; border: 1px solid var(--sk-line); border-radius: 99px; font-size: 13px; font-weight: 700; background: var(--sk-surface-alt); }
.lot-decision__ribbon { position: sticky; top: 90px; }
.lot-decision__ribbon-inner { padding: 28px; }
.lot-decision__ribbon-title { margin: 0 0 18px; font-family: var(--sk-font-display); font-size: 20px; letter-spacing: -.035em; }
.lot-decision__ribbon .favorite-btn { width: 100%; justify-content: center; margin-bottom: 18px; }
.lot-mortgage-link { width: 100%; justify-content: center; margin-bottom: 18px; }
.lot-adjacent { margin-top: 54px; }
.lot-adjacent .section-title { margin-bottom: 20px; }
.lot-adjacent .lots-table a { color: var(--sk-primary-strong); text-decoration: none; font-weight: 600; }
.lot-adjacent .lots-table a:hover { text-decoration: underline; }

@media (max-width: 980px) {
    .lot-decision { grid-template-columns: 1fr; }
    .lot-decision__ribbon { position: static; }
}

@media (max-width: 640px) {
    .lot-decision__passport { padding: 22px; }
    .lot-fact { grid-template-columns: 100px 1fr; }
}
.calc-block { display: grid; gap: 16px; padding: 24px; }
.calc-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: end; }
.calc-field { display: grid; gap: 7px; }
.calc-field label { font-size: 13px; font-weight: 700; }
.calc-field select { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-control); background: var(--sk-surface); color: var(--sk-ink); }
.calc-field select:focus { border-color: var(--sk-primary); outline: 3px solid var(--sk-focus); }
.btn-primary:disabled, .btn-primary:disabled:hover { background: var(--sk-primary); border-color: var(--sk-primary); opacity: .55; cursor: not-allowed; }
.calc-result { padding: 14px 16px; border: 1px dashed var(--sk-line); border-radius: 14px; background: var(--sk-on-dark-muted); color: var(--sk-muted); }
.calc-result[data-state='done'] { border-style: solid; border-color: var(--sk-line); background: var(--sk-surface-alt); color: var(--sk-ink); }
.calc-result-card { padding: 16px 18px; border: 1px solid var(--sk-line); border-radius: 14px; background: var(--sk-surface); }
.calc-result-card h3 { margin: 0 0 8px; font-size: 17px; }
.calc-result-card p { margin: 4px 0; color: var(--sk-muted); }
.calc-result-card strong { color: var(--sk-ink); font-size: 15px; }
.calc-result--error { border: 1px solid var(--sk-accent); border-left: 6px solid var(--sk-accent); background: var(--sk-accent-soft); color: var(--sk-danger); font-weight: 600; }
.alert { padding: 14px 16px; border: 1px solid var(--sk-line); border-left: 6px solid var(--sk-primary); border-radius: 14px; background: var(--sk-surface-alt); }
.alert p { margin: 0; }
.alert-success { border-color: var(--sk-success-line); border-left-color: var(--sk-success-ink); background: var(--sk-success-soft); color: var(--sk-success-ink); }
.alert-error { border-color: var(--sk-accent); border-left-color: var(--sk-accent); background: var(--sk-accent-soft); color: var(--sk-danger); }

/* Scenario & Mortgage */
.scenario-preview, .mortgage-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin-top: 26px; }
.scenario-nav { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.mortgage-preview { margin-top: 28px; }
.mortgage-card { padding: 18px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); }
.mortgage-rate { font-family: var(--sk-font-display); font-size: 22px; color: var(--sk-primary); }
.scenario-preview-empty, .lots-none { color: var(--sk-muted); }
.bank-name { font-weight: 700; }
.mortgage-detail { color: var(--sk-muted); font-size: 14px; margin-top: 4px; }

/* Landing links */
.landing-links { display: flex; flex-wrap: wrap; gap: 12px; }
.landing-link { min-height: 44px; display: inline-flex; align-items: center; padding: 0 20px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-control); background: var(--sk-surface); color: var(--sk-ink); text-decoration: none; font-weight: 700; transition: border-color .16s ease, background .16s ease; }
.landing-link:hover { border-color: var(--sk-primary); background: var(--sk-surface-alt); }

/* Footer */
.site-footer { margin-top: 60px; padding: 38px 0; border-top: 1px solid var(--sk-line); background: var(--sk-surface-alt); }
.site-footer__row { display: flex; align-items: center; justify-content: space-between; gap: 20px; color: var(--sk-muted); font-size: 14px; }
.site-footer__links { display: flex; gap: 18px; }
.site-footer__links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; }

/* Static pages */
.page-split { display: grid; grid-template-columns: minmax(0,3fr) minmax(280px,2fr); gap: 40px; align-items: start; }
.page-split__main h2 { margin: 32px 0 12px; font-family: var(--sk-font-display); font-size: clamp(22px,2.5vw,30px); letter-spacing: -.04em; }
.page-split__main h2:first-child { margin-top: 0; }
.page-split__main p { color: var(--sk-muted); margin: 0 0 14px; }
.page-principles { padding: 28px; }
.page-principles h3 { margin: 0 0 16px; font-family: var(--sk-font-display); font-size: 20px; letter-spacing: -.035em; }
.page-principles ul { margin: 0; padding-left: 20px; }
.page-principles li { margin-bottom: 12px; color: var(--sk-muted); }
.page-principles li strong { color: var(--sk-ink); }
.page-contacts-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.page-contacts-card { padding: 28px; }
.page-contacts-card h2 { margin: 0 0 8px; font-family: var(--sk-font-display); font-size: 20px; letter-spacing: -.035em; }
.page-contacts-card p { margin: 0 0 12px; color: var(--sk-muted); }
.page-contact-value { margin: 0; font-family: var(--sk-font-display); font-size: 18px; font-weight: 700; color: var(--sk-ink); }
.page-policy__content { padding: 32px; }
.page-policy__content h2 { margin: 28px 0 10px; font-family: var(--sk-font-display); font-size: 20px; letter-spacing: -.035em; }
.page-policy__content h2:first-child { margin-top: 0; }
.page-policy__content p { color: var(--sk-muted); margin: 0 0 12px; }
.page-policy__content ul { color: var(--sk-muted); margin: 0 0 12px; padding-left: 20px; }

@media (max-width: 640px) {
    .page-split { grid-template-columns: 1fr; }
    .page-contacts-grid { grid-template-columns: 1fr; }
    .page-policy__content { padding: 22px; }
}

/* Journal */
.journal-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,2fr); gap: 36px; align-items: start; padding-bottom: 90px; }
.journal-sidebar { position: sticky; top: 90px; padding: 24px; }
.journal-sidebar__title { margin: 0 0 16px; font-family: var(--sk-font-display); font-size: 20px; letter-spacing: -.035em; }
.journal-rubrics { list-style: none; margin: 0; padding: 0; }
.journal-rubric { padding: 10px 14px; border-radius: var(--sk-radius-control); color: var(--sk-muted); font-weight: 600; cursor: pointer; transition: background .16s ease; }
.journal-rubric:hover { background: var(--sk-surface-alt); }
.journal-rubric--active { background: var(--sk-surface-alt); color: var(--sk-ink); font-weight: 700; }
.journal-sidebar__note { margin: 16px 0 0; color: var(--sk-muted); font-size: 13px; font-style: italic; }
.journal-feed { display: grid; gap: 22px; }
.journal-card { display: grid; grid-template-columns: 1fr; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); overflow: hidden; }
.journal-card__media { aspect-ratio: 16/8; overflow: hidden; background: linear-gradient(135deg,var(--sk-surface-alt),var(--sk-surface-alt)); }
.journal-card__media img { width: 100%; height: 100%; object-fit: cover; }
.journal-card__placeholder { width: 100%; height: 100%; background: repeating-linear-gradient(-45deg,var(--sk-surface-alt) 0 12px,var(--sk-surface) 12px 24px); }
.journal-card__body { padding: 22px; }
.journal-card__date { color: var(--sk-muted); font-size: 13px; font-weight: 700; }
.journal-card__title { margin: 8px 0 0; font-family: var(--sk-font-display); font-size: 22px; letter-spacing: -.04em; }
.journal-card__title a { color: inherit; text-decoration: none; }
.journal-card__title a:hover { color: var(--sk-primary); }
.journal-card__excerpt { margin: 10px 0 0; color: var(--sk-muted); }
.news-show { padding: clamp(48px,7vw,88px) 0 90px; }
.news-show__date { display: block; margin-top: 12px; color: var(--sk-muted); font-size: 14px; }
.news-article { max-width: 780px; }
.news-article__cover { margin-bottom: 32px; border-radius: var(--sk-radius-panel); overflow: hidden; }
.news-article__cover img { width: 100%; }
.news-article__body { color: var(--sk-muted); line-height: 1.7; white-space: pre-line; }
.news-article__footer { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--sk-line); }

@media (max-width: 980px) {
    .journal-split { grid-template-columns: 1fr; }
    .journal-sidebar { position: static; }
}

@media (max-width: 640px) {
    .journal-card__media { aspect-ratio: 16/10; }
}

/* Admin articles */
.admin-articles-table { width: 100%; border-collapse: collapse; }
.admin-articles-table th,
.admin-articles-table td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--sk-line); vertical-align: middle; }
.admin-articles-table th { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; background: var(--sk-surface-alt); font-weight: 700; }
.admin-articles-table tr:last-child td { border-bottom: 0; }
.admin-articles-table tbody tr:hover { background: var(--sk-surface); }
.admin-confirm-delete { max-width: 560px; }

/* Footer contacts */
.site-footer__contacts { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; margin-top: 12px; width: 100%; }
.site-footer__contacts a, .site-footer__contacts span { color: var(--sk-muted); font-size: 14px; }
.site-footer__contacts a:hover { color: var(--sk-primary-strong); }

/* Admin settings */
.admin-settings { max-width: 720px; }

/* Split-view home: choice ribbon */
.home-split { display: grid; grid-template-columns: minmax(0,5fr) auto minmax(0,7fr); gap: 0; align-items: start; }
.home-split__criteria { padding-right: 32px; }
.home-split__results { padding-left: 32px; }

/* Choice ribbon: paired markers */
.choice-ribbon { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 18px 0; }
.choice-ribbon__track { width: 4px; min-height: 80px; border-radius: 99px; background: var(--sk-line); position: relative; }
.choice-ribbon__markers { display: flex; flex-direction: column; gap: 6px; }
.choice-marker { width: 28px; height: 28px; border-radius: 99px; display: grid; place-items: center; font-size: 13px; font-weight: 700; border: 2px solid var(--sk-surface); box-shadow: 0 1px 4px var(--sk-shadow); }
.choice-marker--for { background: var(--sk-primary); color: var(--sk-surface); }
.choice-marker--against { background: var(--sk-accent); color: var(--sk-surface); }
.choice-ribbon__label { writing-mode: vertical-rl; text-orientation: mixed; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sk-muted); }

/* Responsive */
@media (max-width: 980px) {
    .site-nav, .account-nav { display: none; }
    .menu-toggle { display: inline-grid; place-items: center; }
    .mobile-nav { display: block; }
    .hero-grid, .building-decision, .lead-strip { grid-template-columns: 1fr; }
    .building-decision__ribbon { position: static; }
    .home-split { grid-template-columns: 1fr; gap: 24px; }
    .home-split__criteria, .home-split__results { padding: 0; }
    .choice-ribbon { flex-direction: row; padding: 0; }
    .choice-ribbon__track { width: 80px; min-height: 4px; }
    .choice-ribbon__markers { flex-direction: row; }
    .choice-ribbon__label { writing-mode: horizontal-tb; }
    .buildings-grid, .scenario-preview, .mortgage-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .catalog-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .facts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .site-frame { width: min(calc(100% - 24px), var(--sk-frame)); }
    .brand__sub { display: none; }
    .display-title { font-size: clamp(36px,12vw,58px); }
    .form-grid, .buildings-grid, .scenario-preview, .mortgage-cards, .process-grid, .catalog-filters, .building-gallery { grid-template-columns: 1fr; }
    .process-step { border-right: 0; border-bottom: 1px solid var(--sk-line); }
    .process-step:last-child { border-bottom: 0; }
    .catalog-intro { grid-template-columns: 1fr; }
    .catalog-count { justify-self: start; }
    .catalog-split { flex-direction: column; }
    .catalog-split__criteria { position: static; flex: none; max-height: none; }
    .catalog-actions { justify-content: stretch; flex-direction: column; }
    .catalog-actions .btn { width: 100%; }
    .lead-strip, .building-decision__info, .decision-panel { padding: 22px; }
    .facts-grid { grid-template-columns: 1fr; }
    .building-about, .calc-block { padding: 22px; }
    .calc-controls { grid-template-columns: 1fr; }
    .calc-controls .btn { width: 100%; }
    .site-footer__row { align-items: flex-start; flex-direction: column; }
}

/* Shortlist */
.shortlist-page { padding: clamp(48px,7vw,88px) 0 90px; }
.shortlist-table-wrap { overflow-x: auto; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); scrollbar-gutter: stable; }
.shortlist-table { width: 100%; min-width: 640px; border-collapse: collapse; }
.shortlist-table th,
.shortlist-table td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--sk-line); vertical-align: top; }
.shortlist-table th { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; background: var(--sk-surface-alt); font-weight: 700; }
.shortlist-table__label-col { width: 160px; color: var(--sk-muted); font-weight: 600; }
.shortlist-table__building-col { min-width: 180px; }
.shortlist-table__building-col a { color: var(--sk-ink); text-decoration: none; font-family: var(--sk-font-display); font-weight: 700; font-size: 16px; }
.shortlist-table__building-col a:hover { color: var(--sk-primary); }
.shortlist-table tr:last-child td { border-bottom: 0; }
.shortlist-table tbody tr:hover { background: var(--sk-surface); }
.shortlist-no-data { color: var(--sk-muted); font-style: italic; font-size: 13px; }
.shortlist-table__decision-row td { background: var(--sk-surface-alt); }
.shortlist-decision { display: flex; gap: 8px; }
.shortlist-decision__btn { min-height: 44px; padding: 0 14px; border: 1px solid var(--sk-line); border-radius: 99px; background: var(--sk-surface); color: var(--sk-ink); font-size: 13px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.shortlist-decision__btn:disabled { opacity: .55; cursor: not-allowed; }
.shortlist-decision__btn--for:hover:not(:disabled) { background: var(--sk-primary); color: var(--sk-surface); border-color: var(--sk-primary); }
.shortlist-decision__btn--against:hover:not(:disabled) { background: var(--sk-accent); color: var(--sk-surface); border-color: var(--sk-accent); }
.shortlist-table__action-row td { border-bottom: 0; }
.shortlist-remove-btn { min-height: 44px; padding: 0 14px; border: 1px solid var(--sk-line); border-radius: 99px; background: var(--sk-surface); color: var(--sk-muted); font-size: 13px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.shortlist-remove-btn:hover { background: var(--sk-accent-soft); border-color: var(--sk-accent); color: var(--sk-danger); }

/* Shortlist votes */
.shortlist-vote { display: flex; gap: 8px; align-items: center; }
.shortlist-vote__form { display: flex; gap: 8px; align-items: center; }
.shortlist-decision__btn--active.shortlist-decision__btn--for { background: var(--sk-primary); color: var(--sk-surface); border-color: var(--sk-primary); }
.shortlist-decision__btn--active.shortlist-decision__btn--against { background: var(--sk-accent); color: var(--sk-surface); border-color: var(--sk-accent); }
.shortlist-vote__spinner { margin-left: 4px; color: var(--sk-muted); font-size: 13px; }

@media (max-width: 640px) {
    .shortlist-table-wrap { border: 0; background: transparent; overflow: visible; }
    .shortlist-table,
    .shortlist-table thead,
    .shortlist-table tbody,
    .shortlist-table th,
    .shortlist-table td,
    .shortlist-table tr { display: block; }
    .shortlist-table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
    .shortlist-table__label-col { display: none; }
    .shortlist-table td { position: relative; padding-left: 50%; border-bottom: 1px solid var(--sk-line); }
    .shortlist-table td::before { content: attr(data-fact); position: absolute; left: 16px; top: 14px; width: calc(50% - 24px); font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--sk-muted); }
    .shortlist-table td[data-card] { border-left: 3px solid var(--sk-primary); border-radius: 0; margin-bottom: 0; }
    .shortlist-table tr:first-child td[data-card] { border-top-left-radius: 14px; border-top-right-radius: 14px; border-top: 3px solid var(--sk-primary); }
    .shortlist-table tr.shortlist-table__action-row td[data-card] { border-bottom-left-radius: 14px; border-bottom-right-radius: 14px; border-bottom: 3px solid var(--sk-primary); }
    .shortlist-table tr.shortlist-table__decision-row td[data-card] { background: var(--sk-surface-alt); }
}

/* Locations: district & metro */
.location-page { padding-bottom: 90px; }
.location-split { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,5fr); gap: 32px; align-items: start; margin-top: 24px; }
.location-sidebar { position: sticky; top: 90px; padding: 28px; }
.location-sidebar__title { margin: 0 0 18px; font-family: var(--sk-font-display); font-size: 20px; letter-spacing: -.035em; }
.location-facts { margin: 0; padding: 0; border-top: 1px solid var(--sk-line); }
.location-fact { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; padding: 12px 0; border-bottom: 1px solid var(--sk-line); }
.location-fact:last-child { border-bottom: 0; }
.location-fact dt { color: var(--sk-muted); font-size: 13px; font-weight: 700; }
.location-fact dd { margin: 0; font-size: 14px; }
.location-sidebar__desc { margin: 18px 0 0; color: var(--sk-muted); }
.location-feed { display: grid; gap: 22px; }
.location-feed__title { margin: 0; font-family: var(--sk-font-display); font-size: clamp(22px,2.5vw,30px); letter-spacing: -.04em; }
.metro-line-dot { display: inline-block; width: 14px; height: 14px; border-radius: 99px; vertical-align: middle; }
.card-location { margin: 6px 0 0; color: var(--sk-muted); font-size: 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.card-location__link { color: var(--sk-primary-strong); text-decoration: none; font-weight: 600; }
.card-location__link:hover { text-decoration: underline; }
.card-location__sep { color: var(--sk-line); }
.card-location__time { color: var(--sk-muted); font-size: 13px; }

@media (max-width: 980px) {
    .location-split { grid-template-columns: 1fr; }
    .location-sidebar { position: static; }
}

/* Developers */
.developers-page { padding: clamp(48px,7vw,88px) 0 90px; }
.developers-list { display: grid; gap: 10px; margin-top: 32px; }
.developer-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); text-decoration: none; color: inherit; transition: border-color .16s ease, transform .16s ease; }
.developer-row:hover { border-color: var(--sk-line); transform: translateY(-2px); }
.developer-row__info { display: flex; align-items: center; gap: 16px; min-width: 0; }
.developer-row__logo { width: 56px; height: 56px; border-radius: 14px; object-fit: cover; flex-shrink: 0; }
.developer-row__avatar { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 14px; background: var(--sk-surface-alt); color: var(--sk-primary); font-family: var(--sk-font-display); font-weight: 700; font-size: 22px; flex-shrink: 0; }
.developer-row__name { margin: 0; font-family: var(--sk-font-display); font-size: 18px; letter-spacing: -.03em; }
.developer-row__desc { margin: 4px 0 0; color: var(--sk-muted); font-size: 14px; }
.developer-row__count { padding: 7px 14px; border-radius: 99px; background: var(--sk-surface-alt); color: var(--sk-primary-strong); font-weight: 700; font-size: 14px; white-space: nowrap; flex-shrink: 0; }

/* Developer show — split-view */
.developer-show { padding: 32px 0 90px; }
.developer-split { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,5fr); gap: 32px; align-items: start; margin-top: 24px; }
.developer-panel { position: sticky; top: 90px; padding: 28px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); }
.developer-panel__logo { width: 80px; height: 80px; border-radius: 18px; object-fit: cover; }
.developer-panel__avatar { display: grid; place-items: center; width: 80px; height: 80px; border-radius: 18px; background: var(--sk-surface-alt); color: var(--sk-primary); font-family: var(--sk-font-display); font-weight: 700; font-size: 32px; }
.developer-panel__name { margin: 18px 0 0; font-family: var(--sk-font-display); font-size: clamp(24px,3vw,32px); letter-spacing: -.04em; }
.developer-panel__desc { margin: 12px 0 0; color: var(--sk-muted); }
.developer-panel__facts { margin: 22px 0 0; padding: 0; border-top: 1px solid var(--sk-line); }
.developer-fact { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; padding: 12px 0; border-bottom: 1px solid var(--sk-line); }
.developer-fact:last-child { border-bottom: 0; }
.developer-fact dt { color: var(--sk-muted); font-size: 13px; font-weight: 700; }
.developer-fact dd { margin: 0; font-size: 14px; }
.developer-fact dd a { color: var(--sk-primary-strong); }
.developer-split__main .section-title { margin-bottom: 22px; }

@media (max-width: 980px) {
    .developer-split { grid-template-columns: 1fr; }
    .developer-panel { position: static; }
}

@media (max-width: 640px) {
    .developer-row { flex-direction: column; align-items: flex-start; }
    .developer-row__count { align-self: start; }
}

/* Budget picker */
.budget-lots { display: grid; gap: 18px; }
.budget-lot-card { border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); }
.budget-lot-card__body { padding: 18px; }
.budget-lot-card__top { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.budget-lot-card__title { margin: 0; font-size: 20px; line-height: 1.16; }
.budget-lot-card__title a { color: inherit; text-decoration: none; }
.budget-lot-card__title a:hover { color: var(--sk-primary); }
.budget-lot-card__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.budget-summary { margin-top: 18px; padding: 14px 16px; border: 1px dashed var(--sk-line); border-radius: 14px; background: var(--sk-surface-alt); display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.budget-summary__item { display: grid; gap: 4px; }
.budget-summary__item span { color: var(--sk-muted); font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.budget-summary__item strong { font-family: var(--sk-font-display); font-size: 17px; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms; animation-iteration-count: 1; transition-duration: .01ms; }
}

@media (forced-colors: active) {
    :root { scrollbar-color: auto; }
    .btn, .panel, .building-card, .decision-panel { border: 1px solid CanvasText; }
}

/* Open sky — independent S Kvartiroy identity, owner-authorized rebrand. */
:root {
    --sk-frame: 1320px;
    --sk-radius-control: 14px;
    --sk-radius-panel: 24px;
    --sk-radius-card: 24px;
    --sk-font-display: 'Unbounded', Arial, sans-serif;
    --sk-font-body: 'Manrope', Arial, sans-serif;
    --sk-sky: #E9E2F2;
    --sk-cloud: #F5F0FA;
    --sk-flight-duration: 24s;
    --sk-focus: color-mix(in srgb, var(--sk-primary) 24%, transparent);
    --sk-shadow: color-mix(in srgb, var(--sk-ink) 8%, transparent);
    --sk-paper: color-mix(in srgb, var(--sk-sky) 40%, var(--sk-surface));
    --sk-soft-line: color-mix(in srgb, var(--sk-ink) 14%, transparent);
    --sk-on-dark-muted: color-mix(in srgb, var(--sk-surface) 80%, var(--sk-ink));
    --sk-scroll-track: var(--sk-canvas);
    --sk-scroll-thumb: var(--sk-muted);
    --sk-scroll-hover: var(--sk-primary);
    --sk-scroll-active: var(--sk-primary-strong);
}
html { scroll-padding-top: 100px; scrollbar-gutter: stable; }
* { scrollbar-width: thin; scrollbar-color: var(--sk-scroll-thumb) var(--sk-scroll-track); }
*::-webkit-scrollbar-track { background: var(--sk-scroll-track); }
*::-webkit-scrollbar-thumb { background: var(--sk-scroll-thumb); border-color: var(--sk-scroll-track); }
*::-webkit-scrollbar-thumb:hover { background: var(--sk-scroll-hover); }
*::-webkit-scrollbar-thumb:active { background: var(--sk-scroll-active); }
body { font-family: var(--sk-font-body); }
.site-frame { width: min(calc(100% - 88px), var(--sk-frame)); }
a, button, select { -webkit-tap-highlight-color: var(--sk-focus); }
a, select { cursor: pointer; }
button:disabled, input:disabled, select:disabled { cursor: not-allowed; opacity: .55; }
.btn { font-weight: 700; padding-inline: 24px; min-height: 48px; }
.btn:active { transform: translateY(1px); }
.btn-signal { color: var(--sk-ink); }
.skip-link { position: fixed; top: -80px; left: 20px; z-index: 100; background: var(--sk-primary); color: var(--sk-surface); padding: 12px 20px; border-radius: var(--sk-radius-control); }
.skip-link:focus { top: 10px; }
.site-header { background: var(--sk-sky); border: 0; }
.site-header__row { min-height: 90px; gap: 38px; border-bottom: 1px solid var(--sk-soft-line); }
.brand { gap: 10px; }
.brand__mark { width: 44px; height: 44px; background: var(--sk-accent); color: var(--sk-ink); border-radius: 50%; }
.brand__mark svg { width: 35px; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.brand__name { font: 600 18px/1.3 var(--sk-font-display); letter-spacing: -.07em; white-space: nowrap; }
.brand__dot { color: var(--sk-primary); }
.brand__sub { font-size: 10px; letter-spacing: .14em; padding-top: 3px; }
.site-nav { gap: 0; }
.site-nav a, .account-nav a { font-size: 12px; font-weight: 600; padding-inline: 12px; }
.site-nav a:hover { color: var(--sk-primary); background: var(--sk-cloud); }
.nav-shortlist { gap: 7px; }
.nav-shortlist span { font-size: 23px; }
.account-nav > a:last-child { background: var(--sk-ink); color: var(--sk-surface); padding-inline: 23px; border-radius: 30px; }
.account-nav > a:last-child:hover { background: var(--sk-primary); }
.city-hero { position: relative; padding: 26px 0 16px; background: var(--sk-sky); overflow: clip; border-radius: 0 0 52px 52px; }
.city-hero__topline { position: relative; z-index: 5; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.city-hero__eyebrow { font-size: 11px; color: var(--sk-muted); }
.city-switch { display: inline-flex; padding: 4px; gap: 3px; border-radius: 30px; background: var(--sk-cloud); }
.city-switch a { min-height: 44px; display: inline-flex; align-items: center; padding: 0 20px; border-radius: 24px; text-decoration: none; font-size: 12px; font-weight: 600; }
.city-switch a[aria-current='page'] { background: var(--sk-ink); color: var(--sk-surface); }
.city-switch a:hover:not([aria-current='page']) { background: var(--sk-surface); }
.city-hero__stage { position: relative; padding: 57px 0 36px; }
.city-hero__copy { position: relative; z-index: 2; text-align: center; }
.city-hero h1 { font: 600 clamp(46px,6.5vw,90px)/1.15 var(--sk-font-display); margin: 0; letter-spacing: -.075em; }
.city-hero h1 span { position: relative; display: inline-block; }
.city-hero h1 span::after { content: ''; position: absolute; z-index: -1; height: 14px; background: var(--sk-accent); left: 1%; right: 0; bottom: 5px; border-radius: 50%; transform: rotate(-1deg); }
.city-hero__copy p { color: var(--sk-muted); font-size: 14px; line-height: 1.8; margin: 23px auto 0; }
.city-scene { color: var(--sk-primary); }
.sky-route { position: absolute; width: 100vw; height: 320px; left: calc(50% - 50vw); top: 0; stroke: var(--sk-primary); stroke-width: 1; stroke-dasharray: 5 8; opacity: .2; fill: none; pointer-events: none; }
.sky-cloud { position: absolute; width: 135px; height: 42px; border-radius: 100px; background: var(--sk-cloud); pointer-events: none; }
.sky-cloud::before, .sky-cloud::after { content: ''; position: absolute; border-radius: 50%; background: inherit; }
.sky-cloud::before { width: 66px; height: 66px; bottom: 10px; left: 23px; }
.sky-cloud::after { width: 48px; height: 48px; bottom: 9px; right: 9px; }
.sky-cloud--one { left: -50px; top: 190px; transform: rotate(-8deg); }
.sky-cloud--two { right: -30px; top: 50px; transform: scale(.7); }
.city-flight-lane { position: absolute; top: -12px; left: calc(50% - 50vw); width: 100vw; height: 110px; overflow: hidden; pointer-events: none; z-index: 3; }
.city-flight { position: absolute; top: 6px; left: 0; width: 155px; animation: sk-city-crossing var(--sk-flight-duration) linear infinite; will-change: transform; }
.city-vehicle { display: block; width: 100%; overflow: visible; stroke: var(--sk-ink); stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; }
.vehicle-fill { fill: var(--sk-accent); }
.vehicle-paper { fill: var(--sk-cloud); }
.city-scene[data-city-scene='spb'] .city-flight { width: 63px; top: 1px; animation-duration: 32s; }
@keyframes sk-city-crossing { from { transform: translateX(-100%); } to { transform: translateX(100vw); } }
.city-scene--paused .city-flight { animation-play-state: paused; }
.search-desk { position: relative; z-index: 4; max-width: 1050px; margin: 0 auto; padding: 9px; border: 1px solid var(--sk-surface); border-radius: 24px; background: var(--sk-surface); box-shadow: 0 12px 30px var(--sk-shadow); }
.home-search { display: grid; grid-template-columns: 1fr .8fr 1fr 210px; align-items: center; }
.home-search .field { gap: 0; padding: 0 22px; border-right: 1px solid var(--sk-line); }
.home-search .field:nth-child(3) { border: 0; }
.home-search label { color: var(--sk-muted); font-size: 10px; font-weight: 500; }
.home-search input, .home-search select { border: 0; padding: 2px 0; min-height: 40px; font-size: 14px; font-weight: 700; border-radius: 4px; }
.home-search__submit { min-height: 68px; justify-content: space-between; border-radius: 17px; font-size: 13px; }
.home-search__submit span { font-size: 24px; }
.hero-shortcuts { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 28px; padding-top: 12px; }
.hero-shortcuts a { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; font-size: 11px; text-decoration: none; }
.hero-shortcuts a:hover { text-decoration: underline; text-underline-offset: 4px; }
.sky-caption { display: flex; justify-content: space-between; align-items: center; margin-top: 20px; color: var(--sk-muted); font-size: 10px; }
.motion-toggle { padding: 0 10px; border: 0; background: transparent; color: var(--sk-muted); font-size: 10px; min-height: 44px; cursor: pointer; }
.motion-toggle:hover { color: var(--sk-ink); text-decoration: underline; }
.motion-toggle[hidden] { display: none; }
.portal-launchpad { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 36px; padding-block: 32px; border-bottom: 1px solid var(--sk-line); }
.portal-launchpad > a { display: flex; align-items: center; gap: 15px; min-height: 60px; text-decoration: none; border-radius: 12px; }
.portal-launchpad > a:hover .launchpad-arrow { transform: translate(3px,-3px); }
.launchpad-icon { display: grid; place-items: center; flex: 0 0 50px; height: 50px; border: 1px solid var(--sk-line); border-radius: 50%; font-size: 26px; color: var(--sk-primary); }
.portal-launchpad strong { display: block; font-weight: 700; font-size: 14px; }
.portal-launchpad small { display: block; margin-top: 3px; font-size: 11px; color: var(--sk-muted); }
.launchpad-arrow { font-size: 21px; margin-left: auto; transition: transform .2s; }
.section { padding-block: 65px; }
.section--tight { padding-top: 0; }
.section-head { margin-bottom: 24px; }
.section-overline { margin: 0 0 12px; font-size: 11px; font-weight: 600; color: var(--sk-muted); }
.section-title { font: 500 clamp(23px,2.5vw,34px)/1.35 var(--sk-font-display); letter-spacing: -.055em; }
.section-link { display: inline-flex; align-items: center; gap: 20px; min-height: 44px; font-size: 12px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.section-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.discovery-context { display: flex; gap: 18px; margin-bottom: 25px; font-size: 12px; color: var(--sk-muted); }
.home-buildings { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.building-card { border: 1px solid var(--sk-soft-line); border-radius: var(--sk-radius-card); box-shadow: none; background: var(--sk-surface); }
.building-card:hover { transform: translateY(-3px); border-color: var(--sk-primary); }
.building-card__media { aspect-ratio: 16/10; background: var(--sk-paper); border-bottom: 1px solid var(--sk-soft-line); }
.building-card__link { display: block; }
.building-card__media > .building-card__link { height: 100%; }
.building-card__body { padding: 24px; }
.building-card__top { display: block; }
.card-title { font: 500 23px/1.2 var(--sk-font-display); letter-spacing: -.035em; }
.card-developer, .card-city { font-size: 12px; }
.card-developer { margin-top: 8px; }
.card-city { margin-top: 4px; }
.card-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 18px 0; margin: 18px 0 0; border: 0; border-top: 1px solid var(--sk-line); border-bottom: 1px solid var(--sk-line); border-radius: 0; background: transparent; }
.card-facts span { font-size: 10px; text-transform: none; letter-spacing: 0; font-weight: 400; }
.card-facts strong { font-size: 12px; font-weight: 500; }
.card-bottom { margin-top: 18px; }
.card-price { margin: 0; font: 500 24px/1.25 var(--sk-font-display); letter-spacing: -.04em; }
.card-bottom__hint { display: block; font-size: 10px; color: var(--sk-muted); margin-top: 4px; }
.card-cta { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; min-height: 44px; font-size: 12px; font-weight: 500; text-decoration: none; }
.card-status { font-size: 10px; font-weight: 500; padding: 6px 10px; border: 0; background: var(--sk-surface); color: var(--sk-ink); }
.building-card__media .card-status { left: 16px; top: 16px; margin: 0; }
.building-card__favorite { position: absolute; top: 12px; right: 12px; z-index: 2; }
.favorite-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; padding: 0 14px; border-radius: 8px; font-size: 12px; }
.favorite-btn__icon { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.favorite-btn.favorited { color: var(--sk-primary); background: var(--sk-surface-alt); border-color: var(--sk-primary); }
.favorite-btn.favorited .favorite-btn__icon { fill: currentColor; }
.building-card__favorite .favorite-btn { width: 44px; height: 44px; padding: 0; background: var(--sk-surface); border: 0; border-radius: 50%; }
.building-card__favorite .favorite-btn:hover { color: var(--sk-primary); background: var(--sk-surface-alt); }
.building-card__favorite .favorite-btn__label { display: none; }
.property-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; background: var(--sk-paper); color: var(--sk-muted); }
.property-placeholder svg { display: block; width: 86%; max-height: 86%; stroke: var(--sk-muted); stroke-width: 1; stroke-linejoin: round; }
.property-placeholder__plane { fill: var(--sk-surface); }
.property-placeholder span { font-size: 10px; letter-spacing: .035em; margin-bottom: 18px; }

.card-title { font-family: var(--sk-font-body); font-size: 22px; font-weight: 800; letter-spacing: -.04em; }
.card-price { font-family: var(--sk-font-body); font-size: 23px; font-weight: 800; }
.home-buildings .building-card { display: grid; grid-template-columns: 37% minmax(0,1fr); padding: 8px; border-radius: 24px; }
.home-buildings .building-card__media { aspect-ratio: auto; height: 100%; min-height: 235px; border: 0; border-radius: 17px; }
.home-buildings .building-card__body { padding: 15px 16px 6px 22px; }
.home-buildings .card-title { font-size: 20px; }
.home-buildings .card-facts { margin-top: 10px; padding-block: 10px; gap: 5px 10px; }
.home-buildings .card-bottom { margin-top: 11px; }
.home-buildings .card-price { font-size: 20px; }
.home-buildings .card-cta { font-size: 11px; margin-top: 3px; }
.home-buildings .property-placeholder svg { width: 150%; max-width: none; }
.home-buildings .property-placeholder span { font-size: 8px; margin-bottom: 0; }
.home-buildings .card-status { left: 10px; top: auto; bottom: 10px; }
.home-buildings .building-card__favorite { top: 8px; right: 8px; }
.together-section { position: relative; display: grid; grid-template-columns: 1.2fr 1fr; gap: 55px; padding: 60px; background: var(--sk-accent-soft); border-radius: 32px; overflow: hidden; }
.together-intro h2 { font: 500 clamp(26px,3vw,40px)/1.3 var(--sk-font-display); letter-spacing: -.06em; margin: 16px 0 22px; }
.together-intro > p { max-width: 430px; font-size: 14px; color: var(--sk-muted); line-height: 1.8; margin-bottom: 26px; }
.together-intro .btn { background: var(--sk-ink); border-color: var(--sk-ink); color: var(--sk-surface); border-radius: 30px; font-size: 12px; }
.together-intro .btn:hover { background: var(--sk-primary); }
.shortlist-art { display: grid; place-items: center; position: relative; padding: 10px 20px; }
.shortlist-art__card { width: 100%; max-width: 330px; padding: 25px; background: var(--sk-surface); border-radius: 24px; transform: rotate(5deg); box-shadow: 0 10px 0 var(--sk-shadow); }
.shortlist-art__card > span { font: 500 19px var(--sk-font-display); letter-spacing: -.06em; }
.shortlist-art__card > div { position: relative; margin-top: 18px; padding: 15px 0 0 52px; border-top: 1px solid var(--sk-line); }
.shortlist-art__card i { position: absolute; left: 0; top: 15px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--sk-sky); font-size: 24px; font-style: normal; }
.shortlist-art__card b { display: block; font-size: 12px; }
.shortlist-art__card small { font-size: 9px; color: var(--sk-muted); }
.shortlist-art__note { position: absolute; bottom: 4px; right: -10px; padding: 16px 23px; background: var(--sk-primary); color: var(--sk-surface); border-radius: 20px 20px 20px 0; transform: rotate(-6deg); font-size: 12px; }
.room-collections { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; }
.room-collection { position: relative; display: flex; flex-direction: column; padding: 24px; background: var(--sk-surface-alt); border: 1px solid transparent; border-radius: 24px; text-decoration: none; transition: background .2s; }
.room-collection:nth-child(even) { background: var(--sk-accent-soft); }
.room-collection:hover { border-color: var(--sk-primary); }
.room-sketch { width: 100%; height: auto; margin: 16px 0 24px; stroke: var(--sk-muted); stroke-width: 1; stroke-linejoin: round; }
.room-sketch__floor { fill: var(--sk-surface); stroke: none; }
.room-sketch__walls { stroke: var(--sk-ink); stroke-width: 3; }
.room-sketch__furniture { stroke: var(--sk-muted); }
.room-sketch__window { stroke: var(--sk-accent); stroke-width: 4; }
.room-sketch__dimension { stroke: var(--sk-soft-line); }
.room-collection h3 { margin: 0 0 6px; font-size: 19px; font-weight: 800; }
.room-collection p { font-size: 11px; color: var(--sk-muted); margin: 0; }
.room-collection__arrow { position: absolute; top: 15px; right: 20px; font-size: 23px; }
.home-help { grid-template-columns: 1.2fr 1fr; gap: 70px; padding: 50px; border: 1px solid var(--sk-line); border-radius: 30px; color: var(--sk-ink); background: var(--sk-surface); }
.home-help h2 { font: 500 clamp(26px,2.6vw,37px)/1.3 var(--sk-font-display); letter-spacing: -.06em; }
.home-help p { max-width: 400px; font-size: 13px; color: var(--sk-muted); }
.home-help .lead-form input { background: var(--sk-canvas); border-color: var(--sk-line); }
.home-help .lead-form label { color: var(--sk-muted); font-weight: 500; font-size: 12px; }
.site-footer { background: var(--sk-sky); color: var(--sk-ink); border: 0; border-radius: 40px 40px 0 0; padding: 45px 0 20px; margin: 0; }
.footer-intro { display: flex; align-items: center; justify-content: space-between; padding-bottom: 30px; border-bottom: 1px solid var(--sk-soft-line); }
.footer-intro p { margin: 12px 0 0; font: 500 30px/1.35 var(--sk-font-display); letter-spacing: -.05em; }
.footer-intro__link { display: flex; align-items: center; gap: 40px; padding: 12px 24px; min-height: 54px; border-radius: 30px; background: var(--sk-accent); font-size: 13px; font-weight: 700; text-decoration: none; }
.footer-intro__link:hover { background: var(--sk-accent-strong); }
.footer-intro__link span { font-size: 25px; }
.site-footer__row { flex-wrap: wrap; padding-top: 20px; gap: 15px; color: var(--sk-muted); font-size: 10px; }
.site-footer__links { flex-wrap: wrap; gap: 5px 18px; }
.site-footer__links a { display: inline-flex; align-items: center; min-height: 44px; }
.site-footer__contacts a, .site-footer__contacts span { color: var(--sk-muted); }
.catalog-layout { padding-top: 48px; }
.catalog-intro { padding-bottom: 32px; border-bottom: 1px solid var(--sk-soft-line); }
.catalog-intro .page-title { font-size: clamp(34px,4vw,56px); font-weight: 400; }
.catalog-intro .lede { max-width: 640px; font-size: 14px; }
.catalog-filters.catalog-split__criteria { display: grid; grid-template-columns: 1fr; border-color: var(--sk-soft-line); padding: 22px; }
.catalog-split__results .buildings-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.catalog-feed .empty-state { grid-column: 1/-1; }
.building-cover { min-height: 0; aspect-ratio: 16/10; border-radius: 18px 18px 0 0; }
.building-decision { grid-template-columns: minmax(0, 2.1fr) minmax(280px, 1fr); }
.building-decision__info { border-radius: 0 0 18px 18px; }
.building-decision__info h1 { font-weight: 400; }
.building-decision__ribbon-title { font-size: 24px; font-weight: 400; }
.shortlist-decision__btn--active.shortlist-decision__btn--against, .shortlist-decision__btn--against:hover:not(:disabled) { color: var(--sk-ink); }

.page-title, .display-title { letter-spacing: -.06em; font-weight: 500; }
.catalog-intro .page-title { font-size: clamp(29px,3.6vw,48px); font-weight: 500; }
.catalog-count { font-family: var(--sk-font-body); font-size: 14px; }
.building-decision__info h1 { font-family: var(--sk-font-body); font-weight: 800; }
@media (max-width: 1150px) {
    .site-frame { width: calc(100% - 56px); }
    .site-header__row { gap: 20px; }
    .site-nav a { padding-inline: 8px; }
    .brand__name { font-size: 16px; }
    .home-search { grid-template-columns: 1fr .8fr 1fr 185px; }
    .home-search .field { padding-inline: 15px; }
    .home-buildings .building-card { grid-template-columns: 33% minmax(0,1fr); }
    .home-buildings .building-card__body { padding-left: 15px; }
    .home-buildings .card-title { font-size: 18px; }
    .together-section { padding: 40px; gap: 30px; }
}
@media (max-width: 980px) {
    .portal-launchpad { gap: 18px; }
    .portal-launchpad strong { font-size: 12px; }
    .launchpad-icon { flex-basis: 42px; height: 42px; }
    .launchpad-arrow { display: none; }
    .home-buildings .building-card { display: block; }
    .home-buildings .building-card__media { aspect-ratio: 16/10; min-height: 0; height: auto; }
    .home-buildings .building-card__body { padding: 20px; }
    .home-buildings .property-placeholder svg { width: 86%; }
    .home-search { grid-template-columns: 1fr 1fr; gap: 12px; }
    .home-search .field:nth-child(2) { border: 0; }
    .home-search .field { padding-block: 5px; }
    .room-collections { grid-template-columns: 1fr 1fr; }
    .home-help { gap: 30px; padding: 32px; }
    .catalog-split { flex-direction: column; }
    .catalog-filters.catalog-split__criteria { position: static; width: 100%; flex: none; max-height: none; grid-template-columns: 1fr 1fr; }
    .catalog-split__results { width: 100%; }
    .building-decision { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    .site-frame { width: calc(100% - 36px); }
    .site-header__row { min-height: 76px; }
    .brand__name { font-size: 16px; }
    .brand__sub { font-size: 9px; }
    .menu-toggle { border-radius: 50%; background: var(--sk-cloud); }
    .city-hero { padding-top: 18px; border-radius: 0 0 30px 30px; }
    .city-hero__topline { justify-content: center; }
    .city-hero__eyebrow { display: none; }
    .city-switch a { font-size: 11px; padding-inline: 18px; }
    .city-hero__stage { padding: 95px 0 26px; }
    .city-hero h1 { font-size: clamp(29px,7.4vw,49px); line-height: 1.25; letter-spacing: -.075em; }
    .city-hero h1 span::after { height: 8px; bottom: 1px; }
    .city-hero__copy p { font-size: 12px; margin-top: 18px; max-width: 310px; }
    .city-hero__copy p br { display: none; }
    .city-flight-lane { top: 5px; height: 90px; }
    .city-flight { width: 140px; }
    .city-scene[data-city-scene='spb'] .city-flight { width: 55px; }
    .sky-cloud--one { top: 48px; left: -80px; transform: scale(.6); }
    .sky-cloud--two { top: 25px; right: -70px; transform: scale(.5); }
    .sky-route { top: 5px; height: 190px; }
    .search-desk { padding: 8px; border-radius: 20px; }
    .home-search { grid-template-columns: 1fr 1fr; gap: 5px; }
    .home-search .field { padding: 7px 10px; min-width: 0; }
    .home-search .field:first-child { grid-column: 1/-1; border: 0; border-bottom: 1px solid var(--sk-line); }
    .home-search .field:nth-child(2) { border-right: 1px solid var(--sk-line); }
    .home-search label { font-size: 10px; }
    .home-search input, .home-search select { font-size: 12px; min-height: 44px; }
    .home-search__submit { grid-column: 1/-1; min-height: 54px; margin-top: 4px; border-radius: 13px; }
    .hero-shortcuts { gap: 0 16px; padding-top: 8px; }
    .hero-shortcuts a { font-size: 10px; }
    .sky-caption { margin-top: 6px; font-size: 8px; }
    .motion-toggle { font-size: 8px; padding-right: 0; }
    .portal-launchpad { grid-template-columns: 1fr; gap: 0; padding-block: 16px; }
    .portal-launchpad > a { padding-block: 12px; }
    .portal-launchpad > a + a { border-top: 1px solid var(--sk-line); border-radius: 0; }
    .portal-launchpad strong { font-size: 13px; }
    .launchpad-arrow { display: inline; }
    .section { padding-block: 40px; }
    .section--tight { padding-top: 0; }
    .section-head { flex-direction: column; align-items: start; gap: 8px; }
    .section-title { font-size: 24px; }
    .section-overline { font-size: 10px; }
    .home-buildings, .catalog-split__results .buildings-grid { grid-template-columns: 1fr; }
    .home-buildings .card-title { font-size: 23px; }
    .home-buildings .card-price { font-size: 22px; }
    .together-section { padding: 28px; grid-template-columns: 1fr; gap: 28px; border-radius: 24px; }
    .together-intro h2 { font-size: 27px; }
    .together-intro > p { font-size: 13px; }
    .shortlist-art { padding: 10px 10px 25px; }
    .shortlist-art__note { right: 0; bottom: 0; }
    .room-collections { gap: 12px; }
    .room-collection { padding: 16px; border-radius: 18px; }
    .room-collection h3 { font-size: 16px; }
    .room-collection p { font-size: 10px; }
    .room-sketch { margin-block: 28px 17px; }
    .home-help { grid-template-columns: 1fr; padding: 26px; border-radius: 24px; }
    .home-help h2 { font-size: 27px; }
    .footer-intro { align-items: start; flex-direction: column; gap: 24px; }
    .footer-intro p { font-size: 24px; }
    .site-footer { border-radius: 28px 28px 0 0; }
    .catalog-filters.catalog-split__criteria { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .city-flight, .city-scene[data-city-scene='spb'] .city-flight { animation: none; left: 78%; transform: translateX(-50%); will-change: auto; }
    .building-card:hover, .btn:active, .portal-launchpad > a:hover .launchpad-arrow { transform: none; }
}
@media (forced-colors: active) {
    * { scrollbar-color: auto; }
    .city-switch a[aria-current='page'] { outline: 2px solid Highlight; }
    .favorite-btn, .together-section, .home-help, .search-desk { border: 1px solid CanvasText; }
}

/* Scoped legacy screens: colors now owned by the canonical theme. */
:root { --sk-danger-soft: color-mix(in srgb, var(--sk-danger) 10%, var(--sk-surface)); }
.portal-view--stub .stub-page{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    text-align: center;
    color: var(--dp-muted);
}
.portal-view--stub .stub-page h1{
    font-family: 'Unbounded', sans-serif;
    font-size: clamp(28px, 5vw, 44px);
    letter-spacing: -.045em;
    margin: 0 0 1rem;
}
.portal-view--stub .stub-page p{
    font-size: 1.125rem;
    margin-bottom: 1.5rem;
}


.portal-view--admin-dashboard .developer-page{
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem;
}
.portal-view--admin-dashboard .developer-page h1{
    font-size: 1.75rem;
    color: var(--sk-ink);
    margin-bottom: 0.5rem;
}
.portal-view--admin-dashboard .developer-page h2{
    font-size: 1.25rem;
    color: var(--sk-ink);
    margin: 2rem 0 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--sk-line);
}
.portal-view--admin-dashboard .stats-grid{
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.portal-view--admin-dashboard .stat-card{
    background: var(--sk-canvas);
    border: 1px solid var(--sk-line);
    border-radius: 8px;
    padding: 1.5rem 2rem;
    min-width: 160px;
    text-align: center;
}
.portal-view--admin-dashboard .stat-card .stat-number{
    font-size: 2rem;
    font-weight: 700;
    color: var(--sk-ink);
}
.portal-view--admin-dashboard .stat-card .stat-label{
    font-size: 0.9rem;
    color: var(--sk-muted);
    margin-top: 0.25rem;
}
.portal-view--admin-dashboard .quick-links{
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1rem;
}
.portal-view--admin-dashboard .quick-links a{
    display: inline-block;
    padding: 0.625rem 1.25rem;
    background: var(--sk-ink);
    color: var(--sk-surface);
    text-decoration: none;
    border-radius: 6px;
    font-size: 0.9rem;
}
.portal-view--admin-dashboard .quick-links a:hover{
    background: var(--sk-primary);
}
.portal-view--admin-dashboard .empty-state{
    color: var(--sk-muted);
    padding: 1rem 0;
}


.portal-view--cabinet-index .cabinet-page{
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem;
}
.portal-view--cabinet-index .cabinet-page h1{
    font-size: 1.75rem;
    color: var(--sk-ink);
    margin-bottom: 0.5rem;
}
.portal-view--cabinet-index .cabinet-page h2{
    font-size: 1.25rem;
    color: var(--sk-ink);
    margin: 2rem 0 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--sk-line);
}
.portal-view--cabinet-index .cabinet-table{
    width: 100%;
    border-collapse: collapse;
}
.portal-view--cabinet-index .cabinet-table th, .portal-view--cabinet-index .cabinet-table td{
    padding: 0.625rem 1rem;
    text-align: left;
    border-bottom: 1px solid var(--sk-line);
}
.portal-view--cabinet-index .cabinet-table th{
    font-weight: 600;
    color: var(--sk-muted);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.portal-view--cabinet-index .cabinet-table tr:hover td{
    background: var(--sk-canvas);
}
.portal-view--cabinet-index .cabinet-table a{
    color: var(--sk-ink);
    text-decoration: none;
}
.portal-view--cabinet-index .cabinet-table a:hover{
    color: var(--sk-primary);
}
.portal-view--cabinet-index .buildings-grid{
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    justify-content: center;
}
.portal-view--cabinet-index .empty-state{
    color: var(--sk-muted);
    padding: 1rem 0;
}
.portal-view--cabinet-index .empty-state a{
    color: var(--sk-primary);
}
.portal-view--cabinet-index .user-data-table td:first-child{
    font-weight: 600;
    color: var(--sk-muted);
    padding-right: 2rem;
}


.portal-view--developer-dashboard .developer-page{
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem;
}
.portal-view--developer-dashboard .developer-page h1{
    font-size: 1.75rem;
    color: var(--sk-ink);
    margin-bottom: 0.5rem;
}
.portal-view--developer-dashboard .developer-page h2{
    font-size: 1.25rem;
    color: var(--sk-ink);
    margin: 2rem 0 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--sk-line);
}
.portal-view--developer-dashboard .stats-grid{
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.portal-view--developer-dashboard .stat-card{
    background: var(--sk-canvas);
    border: 1px solid var(--sk-line);
    border-radius: 8px;
    padding: 1.5rem 2rem;
    min-width: 160px;
    text-align: center;
}
.portal-view--developer-dashboard .stat-card .stat-number{
    font-size: 2rem;
    font-weight: 700;
    color: var(--sk-ink);
}
.portal-view--developer-dashboard .stat-card .stat-label{
    font-size: 0.9rem;
    color: var(--sk-muted);
    margin-top: 0.25rem;
}
.portal-view--developer-dashboard .quick-links{
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1rem;
}
.portal-view--developer-dashboard .quick-links a{
    display: inline-block;
    padding: 0.625rem 1.25rem;
    background: var(--sk-ink);
    color: var(--sk-surface);
    text-decoration: none;
    border-radius: 6px;
    font-size: 0.9rem;
}
.portal-view--developer-dashboard .quick-links a:hover{
    background: var(--sk-primary);
}
.portal-view--developer-dashboard .empty-state{
    color: var(--sk-muted);
    padding: 1rem 0;
}


.portal-view--leads-index .leads-page{
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem;
}
.portal-view--leads-index .leads-header{
    margin-bottom: 1.5rem;
}
.portal-view--leads-index .leads-header h1{
    font-size: 1.75rem;
    color: var(--sk-ink);
    margin: 0;
}
.portal-view--leads-index .filters{
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 1.5rem;
    padding: 1rem;
    background: var(--sk-canvas);
    border-radius: 0.5rem;
}
.portal-view--leads-index .filters input[type="text"], .portal-view--leads-index .filters input[type="date"], .portal-view--leads-index .filters select{
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.375rem;
    font-size: 0.875rem;
    outline: none;
    background: var(--sk-surface);
}
.portal-view--leads-index .filters input:focus, .portal-view--leads-index .filters select:focus{
    border-color: var(--sk-primary);
}
.portal-view--leads-index .filters .btn-reset{
    padding: 0.5rem 1rem;
    background: var(--sk-muted);
    color: var(--sk-surface);
    border-radius: 0.375rem;
    text-decoration: none;
    font-size: 0.875rem;
}
.portal-view--leads-index .filters .btn-reset:hover{
    background: var(--sk-muted);
}
.portal-view--leads-index .filters .btn-export{
    padding: 0.5rem 1rem;
    background: var(--sk-success-ink);
    color: var(--sk-surface);
    border-radius: 0.375rem;
    text-decoration: none;
    font-size: 0.875rem;
}
.portal-view--leads-index .filters .btn-export:hover{
    background: var(--sk-success-ink);
}
.portal-view--leads-index .leads-table{
    width: 100%;
    border-collapse: collapse;
    background: var(--sk-surface);
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 1px 3px var(--sk-shadow);
}
.portal-view--leads-index .leads-table th, .portal-view--leads-index .leads-table td{
    padding: 0.75rem 1rem;
    text-align: left;
    border-bottom: 1px solid var(--sk-line);
    font-size: 0.875rem;
}
.portal-view--leads-index .leads-table th{
    background: var(--sk-surface-alt);
    font-weight: 600;
    color: var(--sk-ink);
}
.portal-view--leads-index .leads-table tr:last-child td{
    border-bottom: none;
}
.portal-view--leads-index .leads-table tr:hover td{
    background: var(--sk-canvas);
}
.portal-view--leads-index .pagination{
    display: flex;
    justify-content: center;
    margin-top: 1.5rem;
    gap: 0.25rem;
}
.portal-view--leads-index .pagination a, .portal-view--leads-index .pagination span{
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.25rem;
    color: var(--sk-primary);
    text-decoration: none;
    font-size: 0.875rem;
}
.portal-view--leads-index .pagination span{
    background: var(--sk-primary);
    color: var(--sk-surface);
    border-color: var(--sk-primary);
}
.portal-view--leads-index .pagination a:hover{
    background: var(--sk-line);
}
.portal-view--leads-index .empty-state{
    text-align: center;
    padding: 3rem 1rem;
    color: var(--sk-muted);
}
.portal-view--leads-index .lead-status-badge{
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}
.portal-view--leads-index .badge-blue{
    background: var(--sk-surface-alt);
    color: var(--sk-primary-strong);
}
.portal-view--leads-index .badge-yellow{
    background: var(--sk-warning-soft);
    color: var(--sk-warning-ink);
}
.portal-view--leads-index .badge-green{
    background: var(--sk-success-soft);
    color: var(--sk-success-ink);
}
.portal-view--leads-index .badge-red{
    background: var(--sk-danger-soft);
    color: var(--sk-danger);
}


.portal-view--leads-show .lead-card{
    max-width: 800px;
    margin: 2rem auto;
    padding: 2rem;
    background: var(--sk-surface);
    border-radius: 0.5rem;
    box-shadow: 0 1px 4px var(--sk-shadow);
}
.portal-view--leads-show .lead-card h1{
    font-size: 1.5rem;
    color: var(--sk-ink);
    margin-bottom: 1.5rem;
}
.portal-view--leads-show .lead-card h3{
    font-size: 1.1rem;
    color: var(--sk-ink);
    margin: 1.5rem 0 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--sk-line);
}
.portal-view--leads-show .lead-card .back-link{
    display: inline-block;
    margin-bottom: 1rem;
    color: var(--sk-primary);
    text-decoration: none;
    font-size: 0.9rem;
}
.portal-view--leads-show .lead-card .back-link:hover{
    text-decoration: underline;
}
.portal-view--leads-show .lead-card dl{
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 0.75rem 1rem;
    margin: 0;
}
.portal-view--leads-show .lead-card dt{
    font-weight: 600;
    color: var(--sk-muted);
    font-size: 0.9rem;
}
.portal-view--leads-show .lead-card dd{
    margin: 0;
    color: var(--sk-ink);
    font-size: 0.95rem;
}
.portal-view--leads-show .lead-status-badge{
    display: inline-block;
    padding: 0.2rem 0.75rem;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 600;
}
.portal-view--leads-show .badge-blue{
    background: var(--sk-surface-alt);
    color: var(--sk-primary);
}
.portal-view--leads-show .badge-yellow{
    background: var(--sk-warning-soft);
    color: var(--sk-warning-ink);
}
.portal-view--leads-show .badge-green{
    background: var(--sk-success-soft);
    color: var(--sk-success-ink);
}
.portal-view--leads-show .badge-red{
    background: var(--sk-danger-soft);
    color: var(--sk-danger);
}
.portal-view--leads-show .status-form{
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    margin-top: 0.5rem;
}
.portal-view--leads-show .status-form select{
    padding: 0.4rem 0.75rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.375rem;
    font-size: 0.875rem;
    outline: none;
    background: var(--sk-surface);
}
.portal-view--leads-show .status-form select:focus{
    border-color: var(--sk-primary);
}
.portal-view--leads-show .status-form button{
    padding: 0.4rem 1rem;
    background: var(--sk-primary);
    color: var(--sk-surface);
    border: none;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    cursor: pointer;
}
.portal-view--leads-show .status-form button:hover{
    background: var(--sk-primary-strong);
}


.portal-view--mortgage-apply .mortgage-apply-page{
    max-width: 640px;
    margin: 0 auto;
    padding: 2rem;
}
.portal-view--mortgage-apply .mortgage-apply-page h1{
    font-size: 2rem;
    color: var(--sk-ink);
    margin-bottom: 2rem;
    text-align: center;
}
.portal-view--mortgage-apply .mortgage-apply-page .form-group{
    margin-bottom: 1.25rem;
}
.portal-view--mortgage-apply .mortgage-apply-page label{
    display: block;
    margin-bottom: 0.375rem;
    font-weight: 600;
    color: var(--sk-ink);
}
.portal-view--mortgage-apply .mortgage-apply-page select, .portal-view--mortgage-apply .mortgage-apply-page input[type="text"], .portal-view--mortgage-apply .mortgage-apply-page input[type="tel"], .portal-view--mortgage-apply .mortgage-apply-page input[type="email"], .portal-view--mortgage-apply .mortgage-apply-page textarea{
    width: 100%;
    padding: 0.875rem 1rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.375rem;
    font-size: 1rem;
    outline: none;
    transition: border-color 0.2s;
    box-sizing: border-box;
}
.portal-view--mortgage-apply .mortgage-apply-page select:focus, .portal-view--mortgage-apply .mortgage-apply-page input:focus, .portal-view--mortgage-apply .mortgage-apply-page textarea:focus{
    border-color: var(--sk-primary);
}
.portal-view--mortgage-apply .mortgage-apply-page textarea{
    min-height: 100px;
    resize: vertical;
}
.portal-view--mortgage-apply .mortgage-apply-page .btn{
    width: 100%;
    padding: 0.875rem 1rem;
    font-size: 1rem;
    cursor: pointer;
}
.portal-view--mortgage-apply #calc-result{
    margin-bottom: 1.25rem;
}
.portal-view--mortgage-apply .calc-result-card{
    background: var(--sk-canvas);
    border-radius: 0.5rem;
    padding: 1.25rem;
}
.portal-view--mortgage-apply .calc-result-card h3{
    margin: 0 0 0.5rem;
    color: var(--sk-ink);
}
.portal-view--mortgage-apply .calc-result-card p{
    margin: 0.25rem 0;
    color: var(--sk-ink);
}
.portal-view--mortgage-apply .calc-result-card strong{
    color: var(--sk-primary);
    font-size: 1.125rem;
}


.portal-view--mortgage-index .mortgage-page{
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem;
}
.portal-view--mortgage-index .mortgage-header{
    text-align: center;
    margin-bottom: 2rem;
}
.portal-view--mortgage-index .mortgage-header h1{
    font-size: 2rem;
    color: var(--sk-ink);
    margin-bottom: 0.5rem;
}
.portal-view--mortgage-index .filters{
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 2rem;
    align-items: center;
}
.portal-view--mortgage-index .filters select{
    padding: 0.625rem 1rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.375rem;
    font-size: 0.9rem;
    outline: none;
    background: var(--sk-surface);
    min-width: 180px;
}
.portal-view--mortgage-index .filters select:focus{
    border-color: var(--sk-primary);
}
.portal-view--mortgage-index .mortgage-grid{
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    justify-content: center;
}
.portal-view--mortgage-index .pagination{
    display: flex;
    justify-content: center;
    margin-top: 2rem;
    gap: 0.5rem;
}


.portal-view--mortgage-status .status-card{
    max-width: 640px;
    margin: 2rem auto;
    padding: 2rem;
    background: var(--sk-surface);
    border-radius: 0.5rem;
    box-shadow: 0 1px 4px var(--sk-shadow);
}
.portal-view--mortgage-status .status-card h1{
    font-size: 1.5rem;
    color: var(--sk-ink);
    margin-bottom: 1.5rem;
}
.portal-view--mortgage-status .status-card dl{
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 0.75rem 1rem;
}
.portal-view--mortgage-status .status-card dt{
    font-weight: 600;
    color: var(--sk-muted);
    font-size: 0.9rem;
}
.portal-view--mortgage-status .status-card dd{
    margin: 0;
    color: var(--sk-ink);
    font-size: 0.95rem;
}
.portal-view--mortgage-status .status-card .badge{
    display: inline-block;
    padding: 0.2rem 0.75rem;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 600;
}
.portal-view--mortgage-status .status-card .badge-new{ background: var(--sk-surface-alt); color: var(--sk-primary); }
.portal-view--mortgage-status .status-card .badge-contacted{ background: var(--sk-warning-soft); color: var(--sk-warning-ink); }
.portal-view--mortgage-status .status-card .badge-approved{ background: var(--sk-success-soft); color: var(--sk-success-ink); }
.portal-view--mortgage-status .status-card .badge-rejected{ background: var(--sk-danger-soft); color: var(--sk-danger); }


.portal-view--partials-mortgage-results .mortgage-card{
        flex: 1 1 280px;
        max-width: 320px;
        background: var(--sk-surface);
        border: 1px solid var(--sk-line);
        border-radius: 0.5rem;
        padding: 1.5rem;
        display: flex;
        flex-direction: column;
        transition: box-shadow 0.2s, transform 0.2s;
    }
.portal-view--partials-mortgage-results .mortgage-card:hover{
        box-shadow: 0 4px 20px var(--sk-shadow);
        transform: translateY(-2px);
    }
.portal-view--partials-mortgage-results .mortgage-card .card-bank{
        font-size: 0.825rem;
        color: var(--sk-muted);
        margin-bottom: 0.25rem;
    }
.portal-view--partials-mortgage-results .mortgage-card .card-name{
        font-size: 1.1rem;
        font-weight: 600;
        color: var(--sk-ink);
        margin-bottom: 0.75rem;
    }
.portal-view--partials-mortgage-results .mortgage-card .card-rate{
        font-size: 1.5rem;
        font-weight: 700;
        color: var(--sk-primary);
        margin-bottom: 0.75rem;
    }
.portal-view--partials-mortgage-results .mortgage-card .card-details{
        font-size: 0.9rem;
        color: var(--sk-ink);
        margin-bottom: 0.5rem;
    }
.portal-view--partials-mortgage-results .mortgage-card .card-details span{
        display: block;
        margin-bottom: 0.25rem;
    }
.portal-view--partials-mortgage-results .mortgage-card .btn{
        margin-top: auto;
    }
.portal-view--partials-mortgage-results .btn-primary{
        display: inline-block;
        padding: 0.75rem 1.5rem;
        border-radius: 0.375rem;
        font-size: 0.9rem;
        font-weight: 600;
        text-decoration: none;
        background: var(--sk-primary);
        color: var(--sk-surface);
        text-align: center;
        transition: opacity 0.2s;
    }
.portal-view--partials-mortgage-results .btn-primary:hover{
        opacity: 0.85;
    }


.portal-view--admin-buildings-import .import-page{
    max-width: 800px;
    margin: 0 auto;
    padding: 2rem;
}
.portal-view--admin-buildings-import .import-page h1{
    font-size: 1.75rem;
    color: var(--sk-ink);
    margin-bottom: 0.5rem;
}
.portal-view--admin-buildings-import .import-page h2{
    font-size: 1.25rem;
    color: var(--sk-ink);
    margin: 1.5rem 0 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--sk-line);
}
.portal-view--admin-buildings-import .import-form{
    background: var(--sk-canvas);
    border: 1px solid var(--sk-line);
    border-radius: 0.5rem;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}
.portal-view--admin-buildings-import .import-form .form-group{
    margin-bottom: 1rem;
}
.portal-view--admin-buildings-import .import-form label{
    display: block;
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--sk-ink);
    margin-bottom: 0.375rem;
}
.portal-view--admin-buildings-import .import-form select, .portal-view--admin-buildings-import .import-form input[type="file"]{
    width: 100%;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.375rem;
    font-size: 0.9rem;
    background: var(--sk-surface);
    outline: none;
    box-sizing: border-box;
}
.portal-view--admin-buildings-import .import-form select:focus, .portal-view--admin-buildings-import .import-form input[type="file"]:focus{
    border-color: var(--sk-primary);
}
.portal-view--admin-buildings-import .import-form .btn-submit{
    padding: 0.625rem 1.5rem;
    background: var(--sk-ink);
    color: var(--sk-surface);
    border: none;
    border-radius: 0.375rem;
    font-size: 0.9rem;
    cursor: pointer;
}
.portal-view--admin-buildings-import .import-form .btn-submit:hover{
    background: var(--sk-primary);
}
.portal-view--admin-buildings-import .import-form .btn-back{
    display: inline-block;
    padding: 0.625rem 1.5rem;
    background: var(--sk-muted);
    color: var(--sk-surface);
    text-decoration: none;
    border-radius: 0.375rem;
    font-size: 0.9rem;
    margin-right: 0.5rem;
}
.portal-view--admin-buildings-import .import-form .btn-back:hover{
    background: var(--sk-muted);
}
.portal-view--admin-buildings-import .import-form .error-text{
    color: var(--sk-danger);
    font-size: 0.85rem;
    margin-top: 0.25rem;
}
.portal-view--admin-buildings-import .import-form .form-group.has-error select, .portal-view--admin-buildings-import .import-form .form-group.has-error input{
    border-color: var(--sk-danger);
}
.portal-view--admin-buildings-import .csv-hint{
    background: var(--sk-warning-soft);
    border: 1px solid var(--sk-accent);
    border-radius: 0.375rem;
    padding: 1rem;
    margin-bottom: 1.5rem;
    font-size: 0.85rem;
    color: var(--sk-warning-ink);
}
.portal-view--admin-buildings-import .csv-hint code{
    background: var(--sk-surface);
    padding: 0.125rem 0.375rem;
    border-radius: 0.25rem;
    border: 1px solid var(--sk-line);
    font-size: 0.8rem;
}
.portal-view--admin-buildings-import .result-block{
    background: var(--sk-surface);
    border: 1px solid var(--sk-line);
    border-radius: 0.5rem;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}
.portal-view--admin-buildings-import .result-counters{
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}
.portal-view--admin-buildings-import .counter{
    background: var(--sk-canvas);
    border: 1px solid var(--sk-line);
    border-radius: 0.375rem;
    padding: 0.75rem 1.25rem;
    text-align: center;
    min-width: 100px;
}
.portal-view--admin-buildings-import .counter .num{
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--sk-ink);
}
.portal-view--admin-buildings-import .counter .label{
    font-size: 0.8rem;
    color: var(--sk-muted);
    margin-top: 0.125rem;
}
.portal-view--admin-buildings-import .counter.created .num{ color: var(--sk-success-ink); }
.portal-view--admin-buildings-import .counter.updated .num{ color: var(--sk-primary-strong); }
.portal-view--admin-buildings-import .counter.skipped .num{ color: var(--sk-warning-ink); }
.portal-view--admin-buildings-import .counter.errors-count .num{ color: var(--sk-danger); }
.portal-view--admin-buildings-import .counter.header-valid .num{ color: var(--sk-success-ink); }
.portal-view--admin-buildings-import .counter.header-invalid .num{ color: var(--sk-danger); }
.portal-view--admin-buildings-import .counter.rows-read .num{ color: var(--sk-primary-strong); }
.portal-view--admin-buildings-import .counter.rows-ready .num{ color: var(--sk-success-ink); }
.portal-view--admin-buildings-import .counter.rows-error .num{ color: var(--sk-danger); }
.portal-view--admin-buildings-import .btn-preflight{
    padding: 0.625rem 1.5rem;
    background: var(--sk-surface);
    color: var(--sk-ink);
    border: 2px solid var(--sk-ink);
    border-radius: 0.375rem;
    font-size: 0.9rem;
    cursor: pointer;
    margin-right: 0.5rem;
}
.portal-view--admin-buildings-import .btn-preflight:hover{
    background: var(--sk-ink);
    color: var(--sk-surface);
}
.portal-view--admin-buildings-import .errors-list{
    list-style: none;
    padding: 0;
    margin: 0;
}
.portal-view--admin-buildings-import .errors-list li{
    padding: 0.375rem 0.75rem;
    background: var(--sk-danger-soft);
    border: 1px solid var(--sk-danger-soft);
    border-radius: 0.25rem;
    margin-bottom: 0.375rem;
    font-size: 0.85rem;
    color: var(--sk-danger);
}
.portal-view--admin-buildings-import [x-cloak]{ display: none !important; }


.portal-view--admin-buildings-index .buildings-page{
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem;
}
.portal-view--admin-buildings-index .buildings-header{
    margin-bottom: 1.5rem;
}
.portal-view--admin-buildings-index .buildings-header h1{
    font-size: 1.75rem;
    color: var(--sk-ink);
    margin: 0;
}
.portal-view--admin-buildings-index .filters{
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 1.5rem;
    padding: 1rem;
    background: var(--sk-canvas);
    border-radius: 0.5rem;
}
.portal-view--admin-buildings-index .filters input[type="text"], .portal-view--admin-buildings-index .filters select{
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.375rem;
    font-size: 0.875rem;
    outline: none;
    background: var(--sk-surface);
}
.portal-view--admin-buildings-index .filters input:focus, .portal-view--admin-buildings-index .filters select:focus{
    border-color: var(--sk-primary);
}
.portal-view--admin-buildings-index .filters .btn-reset{
    padding: 0.5rem 1rem;
    background: var(--sk-muted);
    color: var(--sk-surface);
    border-radius: 0.375rem;
    text-decoration: none;
    font-size: 0.875rem;
}
.portal-view--admin-buildings-index .filters .btn-reset:hover{
    background: var(--sk-muted);
}
.portal-view--admin-buildings-index .buildings-table{
    width: 100%;
    border-collapse: collapse;
    background: var(--sk-surface);
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 1px 3px var(--sk-shadow);
}
.portal-view--admin-buildings-index .buildings-table th, .portal-view--admin-buildings-index .buildings-table td{
    padding: 0.75rem 1rem;
    text-align: left;
    border-bottom: 1px solid var(--sk-line);
    font-size: 0.875rem;
}
.portal-view--admin-buildings-index .buildings-table th{
    background: var(--sk-surface-alt);
    font-weight: 600;
    color: var(--sk-ink);
}
.portal-view--admin-buildings-index .buildings-table tr:last-child td{
    border-bottom: none;
}
.portal-view--admin-buildings-index .buildings-table tr:hover td{
    background: var(--sk-canvas);
}
.portal-view--admin-buildings-index .pagination{
    display: flex;
    justify-content: center;
    margin-top: 1.5rem;
    gap: 0.25rem;
}
.portal-view--admin-buildings-index .pagination a, .portal-view--admin-buildings-index .pagination span{
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.25rem;
    color: var(--sk-primary);
    text-decoration: none;
    font-size: 0.875rem;
}
.portal-view--admin-buildings-index .pagination span{
    background: var(--sk-primary);
    color: var(--sk-surface);
    border-color: var(--sk-primary);
}
.portal-view--admin-buildings-index .pagination a:hover{
    background: var(--sk-line);
}
.portal-view--admin-buildings-index .empty-state{
    text-align: center;
    padding: 3rem 1rem;
    color: var(--sk-muted);
}
.portal-view--admin-buildings-index .publish-badge{
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}
.portal-view--admin-buildings-index .badge-green{
    background: var(--sk-success-soft);
    color: var(--sk-success-ink);
}
.portal-view--admin-buildings-index .badge-grey{
    background: var(--sk-surface-alt);
    color: var(--sk-ink);
}


.portal-view--admin-leads-index .leads-page{
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem;
}
.portal-view--admin-leads-index .leads-header{
    margin-bottom: 1.5rem;
}
.portal-view--admin-leads-index .leads-header h1{
    font-size: 1.75rem;
    color: var(--sk-ink);
    margin: 0;
}
.portal-view--admin-leads-index .filters{
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 1.5rem;
    padding: 1rem;
    background: var(--sk-canvas);
    border-radius: 0.5rem;
}
.portal-view--admin-leads-index .filters input[type="text"], .portal-view--admin-leads-index .filters select{
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.375rem;
    font-size: 0.875rem;
    outline: none;
    background: var(--sk-surface);
}
.portal-view--admin-leads-index .filters input:focus, .portal-view--admin-leads-index .filters select:focus{
    border-color: var(--sk-primary);
}
.portal-view--admin-leads-index .filters .btn-reset{
    padding: 0.5rem 1rem;
    background: var(--sk-muted);
    color: var(--sk-surface);
    border-radius: 0.375rem;
    text-decoration: none;
    font-size: 0.875rem;
}
.portal-view--admin-leads-index .filters .btn-reset:hover{
    background: var(--sk-muted);
}
.portal-view--admin-leads-index .leads-table{
    width: 100%;
    border-collapse: collapse;
    background: var(--sk-surface);
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 1px 3px var(--sk-shadow);
}
.portal-view--admin-leads-index .leads-table th, .portal-view--admin-leads-index .leads-table td{
    padding: 0.75rem 1rem;
    text-align: left;
    border-bottom: 1px solid var(--sk-line);
    font-size: 0.875rem;
}
.portal-view--admin-leads-index .leads-table th{
    background: var(--sk-surface-alt);
    font-weight: 600;
    color: var(--sk-ink);
}
.portal-view--admin-leads-index .leads-table tr:last-child td{
    border-bottom: none;
}
.portal-view--admin-leads-index .leads-table tr:hover td{
    background: var(--sk-canvas);
}
.portal-view--admin-leads-index .pagination{
    display: flex;
    justify-content: center;
    margin-top: 1.5rem;
    gap: 0.25rem;
}
.portal-view--admin-leads-index .pagination a, .portal-view--admin-leads-index .pagination span{
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.25rem;
    color: var(--sk-primary);
    text-decoration: none;
    font-size: 0.875rem;
}
.portal-view--admin-leads-index .pagination span{
    background: var(--sk-primary);
    color: var(--sk-surface);
    border-color: var(--sk-primary);
}
.portal-view--admin-leads-index .pagination a:hover{
    background: var(--sk-line);
}
.portal-view--admin-leads-index .empty-state{
    text-align: center;
    padding: 3rem 1rem;
    color: var(--sk-muted);
}
.portal-view--admin-leads-index .lead-status-badge{
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}
.portal-view--admin-leads-index .badge-blue{
    background: var(--sk-surface-alt);
    color: var(--sk-primary-strong);
}
.portal-view--admin-leads-index .badge-yellow{
    background: var(--sk-warning-soft);
    color: var(--sk-warning-ink);
}
.portal-view--admin-leads-index .badge-green{
    background: var(--sk-success-soft);
    color: var(--sk-success-ink);
}
.portal-view--admin-leads-index .badge-red{
    background: var(--sk-danger-soft);
    color: var(--sk-danger);
}


.portal-view--admin-leads-show .lead-card{
    max-width: 800px;
    margin: 2rem auto;
    padding: 2rem;
    background: var(--sk-surface);
    border-radius: 0.5rem;
    box-shadow: 0 1px 4px var(--sk-shadow);
}
.portal-view--admin-leads-show .lead-card h1{
    font-size: 1.5rem;
    color: var(--sk-ink);
    margin-bottom: 1.5rem;
}
.portal-view--admin-leads-show .lead-card h3{
    font-size: 1.1rem;
    color: var(--sk-ink);
    margin: 1.5rem 0 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--sk-line);
}
.portal-view--admin-leads-show .lead-card .back-link{
    display: inline-block;
    margin-bottom: 1rem;
    color: var(--sk-primary);
    text-decoration: none;
    font-size: 0.9rem;
}
.portal-view--admin-leads-show .lead-card .back-link:hover{
    text-decoration: underline;
}
.portal-view--admin-leads-show .lead-card dl{
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 0.75rem 1rem;
    margin: 0;
}
.portal-view--admin-leads-show .lead-card dt{
    font-weight: 600;
    color: var(--sk-muted);
    font-size: 0.9rem;
}
.portal-view--admin-leads-show .lead-card dd{
    margin: 0;
    color: var(--sk-ink);
    font-size: 0.95rem;
}
.portal-view--admin-leads-show .lead-status-badge{
    display: inline-block;
    padding: 0.2rem 0.75rem;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 600;
}
.portal-view--admin-leads-show .badge-blue{
    background: var(--sk-surface-alt);
    color: var(--sk-primary);
}
.portal-view--admin-leads-show .badge-yellow{
    background: var(--sk-warning-soft);
    color: var(--sk-warning-ink);
}
.portal-view--admin-leads-show .badge-green{
    background: var(--sk-success-soft);
    color: var(--sk-success-ink);
}
.portal-view--admin-leads-show .badge-red{
    background: var(--sk-danger-soft);
    color: var(--sk-danger);
}
.portal-view--admin-leads-show .status-form{
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    margin-top: 0.5rem;
}
.portal-view--admin-leads-show .status-form select{
    padding: 0.4rem 0.75rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.375rem;
    font-size: 0.875rem;
    outline: none;
    background: var(--sk-surface);
}
.portal-view--admin-leads-show .status-form select:focus{
    border-color: var(--sk-primary);
}
.portal-view--admin-leads-show .status-form button{
    padding: 0.4rem 1rem;
    background: var(--sk-primary);
    color: var(--sk-surface);
    border: none;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    cursor: pointer;
}
.portal-view--admin-leads-show .status-form button:hover{
    background: var(--sk-primary-strong);
}


.portal-view--admin-buildings-import-runs-index .import-runs-page{
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem;
}
.portal-view--admin-buildings-import-runs-index .import-runs-page h1{
    font-size: 1.75rem;
    color: var(--sk-ink);
    margin-bottom: 0.5rem;
}
.portal-view--admin-buildings-import-runs-index .import-runs-page .header-actions{
    margin-bottom: 1.5rem;
}
.portal-view--admin-buildings-import-runs-index .import-runs-page .header-actions a{
    display: inline-block;
    padding: 0.5rem 1rem;
    background: var(--sk-ink);
    color: var(--sk-surface);
    text-decoration: none;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    margin-right: 0.5rem;
}
.portal-view--admin-buildings-import-runs-index .import-runs-page .header-actions a:hover{
    background: var(--sk-primary);
}
.portal-view--admin-buildings-import-runs-index .import-runs-page .header-actions .btn-secondary{
    background: var(--sk-muted);
}
.portal-view--admin-buildings-import-runs-index .import-runs-page .header-actions .btn-secondary:hover{
    background: var(--sk-muted);
}
.portal-view--admin-buildings-import-runs-index .import-runs-table{
    width: 100%;
    border-collapse: collapse;
    background: var(--sk-surface);
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 1px 3px var(--sk-shadow);
}
.portal-view--admin-buildings-import-runs-index .import-runs-table th, .portal-view--admin-buildings-import-runs-index .import-runs-table td{
    padding: 0.75rem 1rem;
    text-align: left;
    border-bottom: 1px solid var(--sk-line);
    font-size: 0.875rem;
}
.portal-view--admin-buildings-import-runs-index .import-runs-table th{
    background: var(--sk-surface-alt);
    font-weight: 600;
    color: var(--sk-ink);
}
.portal-view--admin-buildings-import-runs-index .import-runs-table tr:last-child td{
    border-bottom: none;
}
.portal-view--admin-buildings-import-runs-index .import-runs-table tr:hover td{
    background: var(--sk-canvas);
}
.portal-view--admin-buildings-import-runs-index .status-badge{
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}
.portal-view--admin-buildings-import-runs-index .status-completed{
    background: var(--sk-success-soft);
    color: var(--sk-success-ink);
}
.portal-view--admin-buildings-import-runs-index .status-completed-with-errors{
    background: var(--sk-warning-soft);
    color: var(--sk-warning-ink);
}
.portal-view--admin-buildings-import-runs-index .status-failed{
    background: var(--sk-danger-soft);
    color: var(--sk-danger);
}
.portal-view--admin-buildings-import-runs-index .status-running{
    background: var(--sk-surface-alt);
    color: var(--sk-primary-strong);
}
.portal-view--admin-buildings-import-runs-index .pagination{
    display: flex;
    justify-content: center;
    margin-top: 1.5rem;
    gap: 0.25rem;
}
.portal-view--admin-buildings-import-runs-index .pagination a, .portal-view--admin-buildings-import-runs-index .pagination span{
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.25rem;
    color: var(--sk-primary);
    text-decoration: none;
    font-size: 0.875rem;
}
.portal-view--admin-buildings-import-runs-index .pagination span{
    background: var(--sk-primary);
    color: var(--sk-surface);
    border-color: var(--sk-primary);
}
.portal-view--admin-buildings-import-runs-index .pagination a:hover{
    background: var(--sk-line);
}
.portal-view--admin-buildings-import-runs-index .empty-state{
    text-align: center;
    padding: 3rem 1rem;
    color: var(--sk-muted);
}
.portal-view--admin-buildings-import-runs-index .counter-cell{
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.portal-view--admin-buildings-import-runs-index .filters-form{
    display: flex;
    gap: 0.75rem;
    align-items: center;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}
.portal-view--admin-buildings-import-runs-index .filters-form select{
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.25rem;
    font-size: 0.875rem;
    background: var(--sk-surface);
}
.portal-view--admin-buildings-import-runs-index .filters-form button{
    padding: 0.375rem 0.75rem;
    background: var(--sk-ink);
    color: var(--sk-surface);
    border: none;
    border-radius: 0.25rem;
    font-size: 0.875rem;
    cursor: pointer;
}
.portal-view--admin-buildings-import-runs-index .filters-form button:hover{
    background: var(--sk-primary);
}
.portal-view--admin-buildings-import-runs-index .filters-form .reset-link{
    font-size: 0.875rem;
    color: var(--sk-muted);
    text-decoration: none;
}
.portal-view--admin-buildings-import-runs-index .filters-form .reset-link:hover{
    text-decoration: underline;
}


.portal-view--admin-buildings-import-runs-show .import-run-detail{
    max-width: 800px;
    margin: 0 auto;
    padding: 2rem;
}
.portal-view--admin-buildings-import-runs-show .import-run-detail h1{
    font-size: 1.75rem;
    color: var(--sk-ink);
    margin-bottom: 0.5rem;
}
.portal-view--admin-buildings-import-runs-show .import-run-detail .header-actions{
    margin-bottom: 1.5rem;
}
.portal-view--admin-buildings-import-runs-show .import-run-detail .header-actions a{
    display: inline-block;
    padding: 0.5rem 1rem;
    background: var(--sk-muted);
    color: var(--sk-surface);
    text-decoration: none;
    border-radius: 0.375rem;
    font-size: 0.875rem;
}
.portal-view--admin-buildings-import-runs-show .import-run-detail .header-actions a:hover{
    background: var(--sk-muted);
}
.portal-view--admin-buildings-import-runs-show .detail-card{
    background: var(--sk-surface);
    border: 1px solid var(--sk-line);
    border-radius: 0.5rem;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}
.portal-view--admin-buildings-import-runs-show .detail-card h2{
    font-size: 1.25rem;
    color: var(--sk-ink);
    margin: 0 0 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--sk-line);
}
.portal-view--admin-buildings-import-runs-show .detail-grid{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
.portal-view--admin-buildings-import-runs-show .detail-field{
    margin-bottom: 0.75rem;
}
.portal-view--admin-buildings-import-runs-show .detail-field .label{
    font-size: 0.8rem;
    color: var(--sk-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.025em;
    margin-bottom: 0.125rem;
}
.portal-view--admin-buildings-import-runs-show .detail-field .value{
    font-size: 0.95rem;
    color: var(--sk-ink);
}
.portal-view--admin-buildings-import-runs-show .status-badge{
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}
.portal-view--admin-buildings-import-runs-show .status-completed{
    background: var(--sk-success-soft);
    color: var(--sk-success-ink);
}
.portal-view--admin-buildings-import-runs-show .status-completed-with-errors{
    background: var(--sk-warning-soft);
    color: var(--sk-warning-ink);
}
.portal-view--admin-buildings-import-runs-show .status-failed{
    background: var(--sk-danger-soft);
    color: var(--sk-danger);
}
.portal-view--admin-buildings-import-runs-show .status-running{
    background: var(--sk-surface-alt);
    color: var(--sk-primary-strong);
}
.portal-view--admin-buildings-import-runs-show .result-counters{
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 0.5rem;
}
.portal-view--admin-buildings-import-runs-show .counter{
    background: var(--sk-canvas);
    border: 1px solid var(--sk-line);
    border-radius: 0.375rem;
    padding: 0.75rem 1.25rem;
    text-align: center;
    min-width: 100px;
}
.portal-view--admin-buildings-import-runs-show .counter .num{
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--sk-ink);
}
.portal-view--admin-buildings-import-runs-show .counter .label{
    font-size: 0.8rem;
    color: var(--sk-muted);
    margin-top: 0.125rem;
}
.portal-view--admin-buildings-import-runs-show .counter.created .num{ color: var(--sk-success-ink); }
.portal-view--admin-buildings-import-runs-show .counter.updated .num{ color: var(--sk-primary-strong); }
.portal-view--admin-buildings-import-runs-show .counter.skipped .num{ color: var(--sk-warning-ink); }
.portal-view--admin-buildings-import-runs-show .counter.errors-count .num{ color: var(--sk-danger); }
.portal-view--admin-buildings-import-runs-show .counter.hidden .num{ color: var(--sk-muted); }
.portal-view--admin-buildings-import-runs-show .counter.sold .num{ color: var(--sk-warning-ink); }
.portal-view--admin-buildings-import-runs-show .errors-list{
    list-style: none;
    padding: 0;
    margin: 0;
}
.portal-view--admin-buildings-import-runs-show .errors-list li{
    padding: 0.375rem 0.75rem;
    background: var(--sk-danger-soft);
    border: 1px solid var(--sk-danger-soft);
    border-radius: 0.25rem;
    margin-bottom: 0.375rem;
    font-size: 0.85rem;
    color: var(--sk-danger);
}


.portal-view--developer-leads-index .leads-page{
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem;
}
.portal-view--developer-leads-index .leads-header{
    margin-bottom: 1.5rem;
}
.portal-view--developer-leads-index .leads-header h1{
    font-size: 1.75rem;
    color: var(--sk-ink);
    margin: 0;
}
.portal-view--developer-leads-index .filters{
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 1.5rem;
    padding: 1rem;
    background: var(--sk-canvas);
    border-radius: 0.5rem;
}
.portal-view--developer-leads-index .filters input[type="text"], .portal-view--developer-leads-index .filters select{
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.375rem;
    font-size: 0.875rem;
    outline: none;
    background: var(--sk-surface);
}
.portal-view--developer-leads-index .filters input:focus, .portal-view--developer-leads-index .filters select:focus{
    border-color: var(--sk-primary);
}
.portal-view--developer-leads-index .filters .btn-reset{
    padding: 0.5rem 1rem;
    background: var(--sk-muted);
    color: var(--sk-surface);
    border-radius: 0.375rem;
    text-decoration: none;
    font-size: 0.875rem;
}
.portal-view--developer-leads-index .filters .btn-reset:hover{
    background: var(--sk-muted);
}
.portal-view--developer-leads-index .leads-table{
    width: 100%;
    border-collapse: collapse;
    background: var(--sk-surface);
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 1px 3px var(--sk-shadow);
}
.portal-view--developer-leads-index .leads-table th, .portal-view--developer-leads-index .leads-table td{
    padding: 0.75rem 1rem;
    text-align: left;
    border-bottom: 1px solid var(--sk-line);
    font-size: 0.875rem;
}
.portal-view--developer-leads-index .leads-table th{
    background: var(--sk-surface-alt);
    font-weight: 600;
    color: var(--sk-ink);
}
.portal-view--developer-leads-index .leads-table tr:last-child td{
    border-bottom: none;
}
.portal-view--developer-leads-index .leads-table tr:hover td{
    background: var(--sk-canvas);
}
.portal-view--developer-leads-index .pagination{
    display: flex;
    justify-content: center;
    margin-top: 1.5rem;
    gap: 0.25rem;
}
.portal-view--developer-leads-index .pagination a, .portal-view--developer-leads-index .pagination span{
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.25rem;
    color: var(--sk-primary);
    text-decoration: none;
    font-size: 0.875rem;
}
.portal-view--developer-leads-index .pagination span{
    background: var(--sk-primary);
    color: var(--sk-surface);
    border-color: var(--sk-primary);
}
.portal-view--developer-leads-index .pagination a:hover{
    background: var(--sk-line);
}
.portal-view--developer-leads-index .empty-state{
    text-align: center;
    padding: 3rem 1rem;
    color: var(--sk-muted);
}
.portal-view--developer-leads-index .lead-status-badge{
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}
.portal-view--developer-leads-index .badge-blue{
    background: var(--sk-surface-alt);
    color: var(--sk-primary-strong);
}
.portal-view--developer-leads-index .badge-yellow{
    background: var(--sk-warning-soft);
    color: var(--sk-warning-ink);
}
.portal-view--developer-leads-index .badge-green{
    background: var(--sk-success-soft);
    color: var(--sk-success-ink);
}
.portal-view--developer-leads-index .badge-red{
    background: var(--sk-danger-soft);
    color: var(--sk-danger);
}


.portal-view--developer-leads-show .lead-card{
    max-width: 800px;
    margin: 2rem auto;
    padding: 2rem;
    background: var(--sk-surface);
    border-radius: 0.5rem;
    box-shadow: 0 1px 4px var(--sk-shadow);
}
.portal-view--developer-leads-show .lead-card h1{
    font-size: 1.5rem;
    color: var(--sk-ink);
    margin-bottom: 1.5rem;
}
.portal-view--developer-leads-show .lead-card h3{
    font-size: 1.1rem;
    color: var(--sk-ink);
    margin: 1.5rem 0 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--sk-line);
}
.portal-view--developer-leads-show .lead-card .back-link{
    display: inline-block;
    margin-bottom: 1rem;
    color: var(--sk-primary);
    text-decoration: none;
    font-size: 0.9rem;
}
.portal-view--developer-leads-show .lead-card .back-link:hover{
    text-decoration: underline;
}
.portal-view--developer-leads-show .lead-card dl{
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 0.75rem 1rem;
    margin: 0;
}
.portal-view--developer-leads-show .lead-card dt{
    font-weight: 600;
    color: var(--sk-muted);
    font-size: 0.9rem;
}
.portal-view--developer-leads-show .lead-card dd{
    margin: 0;
    color: var(--sk-ink);
    font-size: 0.95rem;
}
.portal-view--developer-leads-show .lead-status-badge{
    display: inline-block;
    padding: 0.2rem 0.75rem;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 600;
}
.portal-view--developer-leads-show .badge-blue{
    background: var(--sk-surface-alt);
    color: var(--sk-primary);
}
.portal-view--developer-leads-show .badge-yellow{
    background: var(--sk-warning-soft);
    color: var(--sk-warning-ink);
}
.portal-view--developer-leads-show .badge-green{
    background: var(--sk-success-soft);
    color: var(--sk-success-ink);
}
.portal-view--developer-leads-show .badge-red{
    background: var(--sk-danger-soft);
    color: var(--sk-danger);
}
.portal-view--developer-leads-show .status-form{
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    margin-top: 0.5rem;
}
.portal-view--developer-leads-show .status-form select{
    padding: 0.4rem 0.75rem;
    border: 1px solid var(--sk-line);
    border-radius: 0.375rem;
    font-size: 0.875rem;
    outline: none;
    background: var(--sk-surface);
}
.portal-view--developer-leads-show .status-form select:focus{
    border-color: var(--sk-primary);
}
.portal-view--developer-leads-show .status-form button{
    padding: 0.4rem 1rem;
    background: var(--sk-primary);
    color: var(--sk-surface);
    border: none;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    cursor: pointer;
}
.portal-view--developer-leads-show .status-form button:hover{
    background: var(--sk-primary-strong);
}


/* Complete portal workflows. */
.workspace-page { padding-block: 40px 72px; }
.workspace-panel { padding: 28px; margin-block: 24px; }
.workspace-panel h2 { margin-top: 0; font: 600 21px/1.4 var(--sk-font-body); }
.workspace-panel p, .muted { color: var(--sk-muted); }
.workspace-panel .form-grid { align-items: end; }
.workspace-panel summary { min-height: 44px; cursor: pointer; font-weight: 700; }
.workspace-panel summary:focus-visible { outline: 3px solid var(--sk-primary); }
.shared-list-grid, .shared-house-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.shared-list-link { padding: 28px; text-decoration: none; }
.shared-list-link:hover { border-color: var(--sk-primary); }
.shared-list-link > span { color: var(--sk-muted); font-size: 12px; }
.shared-list-link h2 { font-family: var(--sk-font-body); }
.shared-list-link p { display: flex; justify-content: space-between; }
.shared-house { padding: 28px; scroll-margin-top: 110px; }
.shared-house h2 { margin: 0; font-size: 23px; }
.shared-house form { display: grid; gap: 14px; }
.shared-house .section-head form { display: block; }
.shared-house > p { font-size: 13px; color: var(--sk-muted); }
.shared-facts { display: flex; gap: 24px; padding-block: 18px; border-block: 1px solid var(--sk-line); margin-bottom: 24px; }
.shared-facts span { font-size: 12px; color: var(--sk-muted); }
.shared-facts strong { display: block; color: var(--sk-ink); font-size: 17px; }
.shared-opinion { background: var(--sk-surface-alt); border-radius: 12px; padding: 16px; margin-bottom: 14px; }
.shared-opinion > span { float: right; font-size: 12px; }
.shared-opinion p { margin-bottom: 0; white-space: pre-line; overflow-wrap: anywhere; }
.share-url { display: block; width: 100%; padding: 14px; border: 1px solid var(--sk-line); border-radius: 12px; margin-top: 10px; }
.member-row { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding-block: 10px; }
.catalog-filter-disclosure { flex: 0 0 310px; width: 310px; min-width: 0; }
.catalog-filter-disclosure summary { display: flex; align-items: center; justify-content: space-between; padding: 16px 22px; border-radius: 18px; background: var(--sk-surface-alt); min-height: 52px; cursor: pointer; font-weight: 700; margin-bottom: 12px; }
.catalog-filter-disclosure summary span { border-radius: 50%; background: var(--sk-primary); color: var(--sk-surface); min-width: 28px; text-align: center; }
.catalog-filter-disclosure .catalog-split__criteria { position: static; width: 100%; max-height: none; }
.map-filters { display: grid; grid-template-columns: 1fr 1fr auto; gap: 18px; padding: 22px; align-items: end; margin-block: 24px; }
.property-map { height: min(62vh,600px); min-height: 340px; position: relative; z-index: 1; border: 1px solid var(--sk-line); border-radius: 24px; }
.property-map a { color: var(--sk-primary); }
.property-map .leaflet-control a { min-width: 44px; min-height: 44px; line-height: 44px; }
.property-description { white-space: pre-line; line-height: 1.85; max-width: 900px; }
.source-stamp { font-size: 12px; color: var(--sk-muted); }
.property-features { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.property-features dt { font-size: 12px; color: var(--sk-muted); }
.property-features dd { margin: 5px 0 0; font-weight: 700; }
.building-gallery a { display: block; border-radius: 18px; overflow: hidden; }
.building-gallery a:hover { outline: 2px solid var(--sk-primary); }
.gallery-dialog { width: min(1100px,calc(100vw - 30px)); max-height: 94vh; padding: 15px; border: 0; border-radius: 24px; background: var(--sk-surface); color: var(--sk-ink); }
.gallery-dialog::backdrop { background: color-mix(in srgb,var(--sk-ink) 85%,transparent); }
.gallery-dialog > img { width: 100%; height: 75vh; object-fit: contain; }
.gallery-toolbar { display: flex; align-items: center; justify-content: flex-end; gap: 12px; padding-bottom: 12px; }
.gallery-toolbar button { min-width: 44px; min-height: 44px; border-radius: 12px; border: 1px solid var(--sk-line); background: var(--sk-surface-alt); color: var(--sk-ink); padding-inline: 15px; cursor: pointer; }
.gallery-toolbar button:hover { background: var(--sk-sky); }
.lot-plan { padding: 24px; background: var(--sk-paper); border-radius: 20px; margin-block: 24px; text-align: center; }
.lot-plan img { width: 100%; max-height: 440px; object-fit: contain; }
.lot-plan p { color: var(--sk-muted); font-size: 12px; }
.lot-plan-empty { padding: 40px 20px; margin-block: 24px; border: 1px dashed var(--sk-line); border-radius: 20px; color: var(--sk-muted); text-align: center; }
.auth-layout { padding-block: 70px 90px; display: grid; grid-template-columns: 1fr minmax(300px,440px); gap: 80px; align-items: center; }
.auth-story h1 { font: 500 clamp(28px,3.5vw,48px)/1.3 var(--sk-font-display); letter-spacing: -.06em; margin: 20px 0; }
.auth-story p { max-width: 450px; color: var(--sk-muted); font-size: 16px; line-height: 1.8; }
.auth-card { padding: 32px; }
.auth-card form { display: grid; gap: 22px; }
.auth-card > p { font-size: 13px; color: var(--sk-muted); margin-top: 24px; }
.auth-card input { width: 100%; min-height: 48px; }
.password-field { position: relative; }
.password-field input { padding-right: 90px; }
.password-field button { position: absolute; top: 2px; right: 2px; min-height: 44px; border: 0; border-radius: 12px; padding-inline: 12px; background: var(--sk-surface-alt); color: var(--sk-primary); cursor: pointer; font-size: 11px; }
.portal-workspace h1, .portal-workspace h2 { color: var(--sk-ink); font-family: var(--sk-font-body); }
.portal-workspace h1 { font-size: clamp(28px,3vw,42px); letter-spacing: -.04em; }
.portal-workspace :where(input:not([type=hidden]), select, textarea) { min-height: 44px; border-radius: var(--sk-radius-control); color: var(--sk-ink); border: 1px solid var(--sk-line); max-width: 100%; }
.portal-workspace :where(button,.btn,.btn-sm,.quick-links a) { min-height: 44px; border-radius: var(--sk-radius-control); cursor: pointer; }
.portal-workspace .table-container, .table-shell { overflow-x: auto; }
.portal-workspace :where(.stat-card,.mortgage-card,.lead-card) { border-radius: var(--sk-radius-panel); box-shadow: none; }
.portal-workspace .quick-links a { display: inline-flex; align-items: center; }
.portal-workspace .quick-links a:hover { background: var(--sk-primary-strong); }
.portal-workspace .mortgage-page, .portal-workspace .developer-page { max-width: var(--sk-frame); padding: 40px 44px 72px; }
.portal-workspace .mortgage-header { text-align: left; }
.portal-workspace .mortgage-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.portal-workspace .mortgage-card { width: auto; min-width: 0; }
.portal-workspace .mortgage-card .rate { color: var(--sk-primary); }
.journal-rubrics a { display: flex; align-items: center; min-height: 44px; padding-block: 6px; }
.table-shell table { width: 100%; border-collapse: collapse; }
.table-shell th, .table-shell td { padding: 14px; border-bottom: 1px solid var(--sk-line); text-align: left; }
@media(max-width:980px) {
    .catalog-filter-disclosure { flex: auto; width: 100%; }
    .shared-house-grid { grid-template-columns: 1fr; }
    .auth-layout { gap: 35px; }
    .portal-workspace .mortgage-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
    .workspace-page { padding-block: 30px 48px; }
    .workspace-panel, .shared-house { padding: 22px; }
    .workspace-panel .form-grid, .shared-list-grid, .auth-layout, .map-filters { grid-template-columns: 1fr; }
    .workspace-page .page-title { font-size: 29px; overflow-wrap: anywhere; }
    .shared-facts { flex-wrap: wrap; }
    .property-features { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .auth-layout { padding-block: 35px 55px; gap: 30px; }
    .auth-card { padding: 24px; }
    .auth-story h1 { font-size: 31px; }
    .auth-story p { font-size: 14px; }
    .portal-workspace .mortgage-grid { grid-template-columns: 1fr; }
    .portal-workspace .mortgage-page, .portal-workspace .developer-page { padding: 28px 18px 48px; }
    .gallery-dialog > img { height: 65vh; }
}

.confirmation-dialog{max-width:460px;border:1px solid var(--sk-line);border-radius:24px;padding:28px;background:var(--sk-surface);color:var(--sk-ink)}.confirmation-dialog::backdrop{background:color-mix(in srgb,var(--sk-ink) 45%,transparent)}.confirmation-dialog .btn{margin-right:10px}

.portal-view--cabinet-index .empty-state{background:var(--sk-surface);border:1px dashed var(--sk-line);color:var(--sk-muted);padding:24px;text-align:left}
.portal-view--cabinet-index .user-data-table{table-layout:fixed;width:100%}
.portal-view--cabinet-index .user-data-table td{overflow-wrap:anywhere}
.workspace-page .page-title,.workspace-page .shared-house h2{overflow-wrap:anywhere}
.portal-workspace .table-scroll{min-width:0;max-width:100%;overflow-x:auto}

.sk-map-marker{background:var(--sk-accent);border:3px solid var(--sk-surface);border-radius:50%;box-shadow:0 2px 10px color-mix(in srgb,var(--sk-ink) 35%,transparent)}

.leaflet-popup-content a{color:var(--sk-primary)}

.shared-opinion,.shared-list-link,.member-row{overflow-wrap:anywhere;min-width:0}.member-row>span{min-width:0}

/* Live catalog, 2026-09-24: with hundreds of real houses the location and
   developer pages stacked full-width cards and squeezed three columns next to
   a sidebar. Cards now fill a grid by their own minimum width. */
.location-feed { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); align-items: start; }
.location-feed > .location-feed__title, .location-feed > .empty-state { grid-column: 1 / -1; }
.developer-split__main .buildings-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.developer-panel__name, .developer-row__name { overflow-wrap: anywhere; }
.building-card__media img { object-fit: cover; }
.mortgage-page .mortgage-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 22px; }
.mortgage-rates .mortgage-card { display: flex; flex-direction: column; gap: 10px; }
.mortgage-rate-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.mortgage-rate-list li { display: flex; justify-content: space-between; gap: 12px; padding-top: 8px; border-top: 1px solid var(--sk-line); }
.mortgage-rate-list small { color: var(--sk-muted); }
.mortgage-rate-list strong { white-space: nowrap; color: var(--sk-primary); }
.journal-rubrics a[aria-current="page"] { font-weight: 700; color: var(--sk-primary); }
.journal-rubrics a { display: inline-flex; gap: 8px; align-items: baseline; }
.journal-rubrics a .muted { font-size: .85em; color: var(--sk-muted); }

/* Building page, 2026-09-24: head with price, photo strip, section nav and the
   content blocks built from Qubic house facts. Tokens only. */
.building-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin: 8px 0 24px; }
.building-head__title { margin: 6px 0 0; font-family: var(--sk-font-display); font-weight: 500; font-size: clamp(30px, 4.4vw, 56px); line-height: 1.05; letter-spacing: -.055em; overflow-wrap: anywhere; }
.building-head__address { margin: 10px 0 0; color: var(--sk-muted); }
.building-head__price { flex-shrink: 0; display: grid; gap: 2px; justify-items: end; text-align: right; }
.building-head__price span, .building-head__price small { color: var(--sk-muted); font-size: 14px; }
.building-head__price strong { font-family: var(--sk-font-display); font-weight: 500; font-size: clamp(24px, 3vw, 36px); letter-spacing: -.04em; }
.building-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; padding: 0; }
.building-chip { padding: 7px 14px; border-radius: 999px; background: var(--sk-surface-alt); font-size: 14px; font-weight: 700; }
.building-chip a { color: inherit; text-decoration: none; }
.building-chip--status { background: var(--sk-accent-soft); }
.building-media { display: grid; gap: 10px; }
.building-cover { display: block; }
.building-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.building-thumb { position: relative; display: block; overflow: hidden; border-radius: 16px; background: var(--sk-surface-alt); }
.building-thumb img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.building-thumb__more { position: absolute; inset: 0; display: grid; place-items: center; background: color-mix(in srgb, var(--sk-ink) 55%, transparent); color: var(--sk-surface); font-weight: 800; }
.building-nav { position: sticky; top: 72px; z-index: 5; display: flex; gap: 6px; overflow-x: auto; margin: 36px 0 0; padding: 8px; border: 1px solid var(--sk-line); border-radius: 999px; background: var(--sk-surface); scrollbar-width: thin; }
.building-nav a { flex-shrink: 0; min-height: 40px; display: inline-flex; align-items: center; padding: 0 16px; border-radius: 999px; color: var(--sk-ink); font-weight: 700; text-decoration: none; }
.building-nav a:hover, .building-nav a:focus-visible { background: var(--sk-surface-alt); }
.building-page section[id] { scroll-margin-top: 140px; }
.building-page > section { margin-top: 56px; }
.room-offers { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin-bottom: 20px; }
.room-offer { display: grid; gap: 4px; padding: 18px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); }
.room-offer__name { font-weight: 800; }
.room-offer__price { font-family: var(--sk-font-display); font-weight: 500; font-size: 22px; letter-spacing: -.04em; color: var(--sk-primary); }
.room-offer__meta { color: var(--sk-muted); font-size: 14px; }
.payment-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; margin-bottom: 20px; }
.payment-card { display: grid; gap: 6px; align-content: start; padding: 22px; border-radius: var(--sk-radius-card); background: var(--sk-surface-alt); }
.payment-card span, .payment-card small { color: var(--sk-muted); font-size: 14px; }
.payment-card strong { font-family: var(--sk-font-display); font-weight: 500; font-size: 26px; letter-spacing: -.04em; }
.payment-card--accent { background: var(--sk-accent-soft); }
.payment-card--link { border: 1px dashed var(--sk-line); background: var(--sk-surface); }
.payment-card--link .btn { justify-self: start; margin-top: 6px; }
.building-about__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 28px; align-items: start; }
.house-facts { margin: 0; display: grid; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); overflow: hidden; }
.house-facts div { display: grid; grid-template-columns: 1fr 1.2fr; gap: 12px; padding: 13px 20px; border-top: 1px solid var(--sk-line); }
.house-facts div:first-child { border-top: 0; }
.house-facts dt { color: var(--sk-muted); }
.house-facts dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.building-about__text .property-description { margin-top: 0; line-height: 1.7; white-space: pre-line; }
.building-tags { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; padding: 0; }
.building-tags li { padding: 6px 12px; border: 1px solid var(--sk-line); border-radius: 999px; font-size: 14px; }
.queues { margin-top: 28px; }
.queues__title { margin: 0 0 12px; font-size: 18px; }
.queues__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.queues__list li { display: flex; justify-content: space-between; gap: 12px; padding: 12px 16px; border-radius: var(--sk-radius-control); background: var(--sk-surface-alt); }
.building-location__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 24px; align-items: start; }
.property-map--building { height: 360px; border-radius: var(--sk-radius-panel); overflow: hidden; }
.transport-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.transport-list li { display: flex; gap: 14px; align-items: center; padding: 14px 16px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); }
.transport-list div { display: grid; gap: 2px; }
.transport-list small { color: var(--sk-muted); }
.transport-list a { color: inherit; }
.transport-list__icon { flex-shrink: 0; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: var(--sk-surface-alt); color: var(--sk-primary); font-weight: 800; }
.transport-list__icon--metro { background: var(--sk-accent); color: var(--sk-ink); }
.around-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.around-card { display: grid; gap: 4px; padding: 20px; border-radius: var(--sk-radius-card); background: var(--sk-surface-alt); }
.around-card strong { font-family: var(--sk-font-display); font-weight: 500; font-size: 32px; letter-spacing: -.04em; color: var(--sk-primary); }
.around-card--none strong { color: var(--sk-muted); }
.progress-list { display: grid; gap: 22px; }
.progress-report h3 { margin: 0 0 10px; font-size: 18px; }
.progress-report__photos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.progress-report__photos img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 14px; display: block; }
.building-documents__icon { min-width: 40px; height: 28px; display: grid; place-items: center; border-radius: 8px; background: var(--sk-surface-alt); color: var(--sk-primary); font-size: 12px; font-weight: 800; }
.building-page .buildings-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.building-page > .lead-strip { margin-top: 64px; }
@media (max-width: 980px) {
    .building-head { flex-direction: column; align-items: start; }
    .building-head__price { justify-items: start; text-align: left; }
    .building-about__grid, .building-location__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .building-thumbs, .progress-report__photos { grid-template-columns: repeat(2, 1fr); }
    .building-nav { border-radius: var(--sk-radius-control); top: 64px; }
    .property-map--building { height: 280px; }
    .house-facts div { grid-template-columns: 1fr; gap: 2px; }
}

/* Shared content blocks, 2026-09-24: figures, places, rates and journal. */
.stats-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.stat-tile { display: grid; gap: 6px; align-content: start; padding: 22px; border-radius: var(--sk-radius-card); background: var(--sk-surface-alt); color: var(--sk-ink); text-decoration: none; }
a.stat-tile:hover, a.stat-tile:focus-visible { background: var(--sk-sky); }
.stat-tile strong { font-family: var(--sk-font-display); font-weight: 500; font-size: clamp(24px, 2.6vw, 34px); letter-spacing: -.045em; line-height: 1.1; }
.stat-tile span { color: var(--sk-muted); font-size: 14px; }
.deadline-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.deadline-strip__label { color: var(--sk-muted); font-weight: 700; margin-right: 4px; }
.deadline-strip a { min-height: 40px; display: inline-flex; align-items: center; gap: 6px; padding: 0 14px; border: 1px solid var(--sk-line); border-radius: 999px; color: var(--sk-ink); font-weight: 700; text-decoration: none; }
.deadline-strip a:hover { border-color: var(--sk-primary); }
.deadline-strip small, .place-links small, .developer-rank small { color: var(--sk-muted); font-weight: 600; }
.places-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 20px; align-items: start; }
.places-panel { padding: 26px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); }
.places-panel h3 { margin: 0 0 16px; font-size: 18px; }
.place-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.place-links a { min-height: 40px; display: inline-flex; align-items: center; gap: 8px; padding: 0 14px; border-radius: 999px; background: var(--sk-surface-alt); color: var(--sk-ink); font-weight: 700; text-decoration: none; }
.place-links a:hover { background: var(--sk-sky); }
.developer-rank { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.developer-rank a { display: grid; grid-template-columns: 36px 1fr auto; gap: 12px; align-items: center; min-height: 48px; padding: 4px 8px; border-radius: var(--sk-radius-control); color: var(--sk-ink); font-weight: 700; text-decoration: none; }
.developer-rank a:hover { background: var(--sk-surface-alt); }
.developer-rank__avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; background: var(--sk-surface-alt); color: var(--sk-primary); font-family: var(--sk-font-display); }
.rates-teaser__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: center; padding: clamp(24px, 4vw, 44px); border-radius: var(--sk-radius-panel); background: var(--sk-sky); }
.rates-teaser__inner .form-actions { margin-top: 20px; }
.rates-teaser__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.rates-teaser__list li { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 20px; border-radius: var(--sk-radius-card); background: var(--sk-surface); }
.rates-teaser__list span { display: grid; gap: 2px; font-weight: 800; }
.rates-teaser__list small { color: var(--sk-muted); font-weight: 600; }
.rates-teaser__list strong { font-family: var(--sk-font-display); font-weight: 500; font-size: 26px; letter-spacing: -.04em; color: var(--sk-primary); white-space: nowrap; }
.journal-teasers__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
.journal-teaser { display: grid; gap: 10px; align-content: start; color: var(--sk-ink); text-decoration: none; }
.journal-teaser img, .journal-teaser__placeholder { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: var(--sk-radius-card); background: var(--sk-surface-alt); display: block; }
.journal-teaser__meta { color: var(--sk-muted); font-size: 14px; }
.journal-teaser strong { font-size: 18px; line-height: 1.35; }
.journal-teaser:hover strong { color: var(--sk-primary); }
@media (max-width: 980px) {
    .places-grid, .rates-teaser__inner { grid-template-columns: 1fr; }
}
.location-hero, .developer-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; flex-wrap: wrap; }
.developer-head { justify-content: flex-start; align-items: center; margin: 12px 0 28px; }
.developer-head > div { flex: 1 1 320px; }
.developer-head__name { margin: 6px 0 0; overflow-wrap: anywhere; }
.developer-head .lede { margin-top: 10px; }
.property-map--location { height: 420px; border-radius: var(--sk-radius-panel); overflow: hidden; }
.location-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.location-page .stats-strip, .developer-show .stats-strip { margin-top: 8px; }
@media (max-width: 640px) { .property-map--location { height: 300px; } }
.lot-house__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 20px; align-items: start; }
.lot-house__photo img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--sk-radius-panel); display: block; }
a.room-offer { color: var(--sk-ink); text-decoration: none; }
a.room-offer:hover { border-color: var(--sk-primary); }
.lot-plan--house img { opacity: .95; }
.lot-page > .building-head { margin-top: 12px; }
@media (max-width: 980px) { .lot-house__grid { grid-template-columns: 1fr; } }
.quick-filters { display: flex; gap: 8px; overflow-x: auto; margin: 0 0 22px; padding-bottom: 4px; scrollbar-width: thin; }
.quick-filters a { flex-shrink: 0; min-height: 44px; display: inline-flex; align-items: center; padding: 0 16px; border: 1px solid var(--sk-line); border-radius: 999px; background: var(--sk-surface); color: var(--sk-ink); font-weight: 700; text-decoration: none; }
.quick-filters a:hover { border-color: var(--sk-primary); }
.quick-filters a[aria-current="page"] { background: var(--sk-primary); border-color: var(--sk-primary); color: var(--sk-surface); }
.catalog-places__title { font-size: clamp(20px, 2.2vw, 28px); margin-bottom: 18px; }

/* 2026-09-24, owner review: compact flat list with room tabs, one site-wide
   pagination, a small photo strip and air above the footer. */
.room-tabs { display: flex; gap: 10px; overflow-x: auto; margin-bottom: 18px; padding-bottom: 4px; scrollbar-width: thin; }
.room-tabs a { flex: 0 0 auto; min-width: 150px; display: grid; gap: 2px; padding: 14px 18px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); color: var(--sk-ink); text-decoration: none; }
.room-tabs a:hover { border-color: var(--sk-primary); }
.room-tabs a[aria-current="page"] { border-color: var(--sk-primary); background: var(--sk-surface-alt); box-shadow: inset 0 0 0 1px var(--sk-primary); }
.room-tabs span { font-weight: 800; }
.room-tabs strong { white-space: nowrap; font-family: var(--sk-font-display); font-weight: 500; font-size: 18px; letter-spacing: -.03em; color: var(--sk-primary); }
.room-tabs small { white-space: nowrap; color: var(--sk-muted); font-size: 13px; }
.lot-rows { list-style: none; margin: 0; padding: 0; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); overflow: hidden; }
.lot-rows__head, .lot-row__main { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.2fr) minmax(0, 1.3fr) minmax(0, 1.2fr); gap: 16px; align-items: center; }
.lot-rows__head { grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.2fr) minmax(0, 1.3fr) minmax(0, 1.2fr) 96px; padding: 12px 20px; background: var(--sk-surface-alt); color: var(--sk-muted); font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.lot-row { display: grid; grid-template-columns: minmax(0, 1fr) 96px; align-items: center; border-top: 1px solid var(--sk-line); }
.lot-row:hover { background: var(--sk-canvas); }
.lot-row__main { min-height: 56px; padding: 8px 0 8px 20px; color: var(--sk-ink); text-decoration: none; }
.lot-row__plan { display: grid; gap: 1px; }
.lot-row__plan small, .lot-row__floor, .lot-row__sqm { color: var(--sk-muted); font-size: 14px; }
.lot-row__price { font-weight: 800; white-space: nowrap; }
.lot-row__main:hover .lot-row__plan strong { color: var(--sk-primary); }
.lot-row__lead { justify-self: end; margin-right: 16px; min-height: 36px; padding: 0 14px; border: 1px solid var(--sk-line); border-radius: 999px; background: var(--sk-surface); color: var(--sk-primary); font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; }
.lot-row__lead:hover, .lot-row__lead:focus-visible { background: var(--sk-primary); border-color: var(--sk-primary); color: var(--sk-surface); }
.photo-strip { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.photo-strip__item { position: relative; display: block; overflow: hidden; border-radius: 12px; background: var(--sk-surface-alt); }
.photo-strip__item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; transition: transform .2s; }
.photo-strip__item:hover img { transform: scale(1.04); }
.sk-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; margin-top: 22px; }
.sk-pagination__pages { display: flex; flex-wrap: wrap; gap: 6px; }
.sk-pagination a, .sk-pagination span[aria-current], .sk-pagination__step, .sk-pagination__gap { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0 14px; border-radius: 999px; font-weight: 700; text-decoration: none; }
.sk-pagination a { border: 1px solid var(--sk-line); background: var(--sk-surface); color: var(--sk-ink); }
.sk-pagination a:hover { border-color: var(--sk-primary); }
.sk-pagination span[aria-current] { background: var(--sk-primary); color: var(--sk-surface); }
.sk-pagination span[aria-disabled] { color: var(--sk-muted); opacity: .6; }
.sk-pagination__gap { min-width: 24px; padding: 0; color: var(--sk-muted); }
.building-page, .lot-page, .location-page, .developer-show, .news-page, .news-show, .mortgage-page { padding-bottom: 80px; }
@media (max-width: 720px) {
    .lot-rows__head { display: none; }
    .lot-row__main { grid-template-columns: 1fr auto; gap: 2px 12px; padding-left: 16px; }
    .lot-row__floor, .lot-row__sqm { font-size: 13px; }
    .lot-row__price { text-align: right; }
    .lot-row__sqm { text-align: right; }
    .lot-row { grid-template-columns: minmax(0, 1fr) 84px; }
    .lot-row__lead { margin-right: 10px; padding: 0 10px; }
    .sk-pagination__step { flex-basis: calc(50% - 4px); }
    .sk-pagination__pages { order: 3; width: 100%; justify-content: center; }
}
.building-nav { flex-wrap: wrap; border-radius: var(--sk-radius-card); scrollbar-width: none; }
.building-nav::-webkit-scrollbar { display: none; }
@media (max-width: 720px) { .building-nav { flex-wrap: nowrap; } }
.description-more summary { cursor: pointer; display: inline-flex; min-height: 44px; align-items: center; color: var(--sk-primary); font-weight: 800; }
.description-more[open] summary { display: none; }
.progress-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.progress-card { display: grid; gap: 2px; color: var(--sk-ink); text-decoration: none; }
.progress-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 12px; display: block; margin-bottom: 6px; }
.progress-card__date { font-weight: 800; }
.progress-card small { color: var(--sk-muted); }
.progress-card:hover .progress-card__date { color: var(--sk-primary); }
.building-nav { gap: 2px; padding: 6px; }
.building-nav a { min-height: 38px; padding: 0 12px; font-size: 14px; }
.building-documents__list { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.stats-strip { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.stat-tile strong { white-space: nowrap; font-size: clamp(22px, 2.2vw, 30px); }
.stats-strip { display: flex; flex-wrap: wrap; }
.stats-strip > .stat-tile { flex: 1 1 170px; }
.not-found { max-width: 760px; padding-top: 64px; padding-bottom: 96px; }
.not-found__search { display: flex; gap: 10px; margin: 28px 0 20px; }
.not-found__search input { flex: 1; min-height: 48px; padding: 0 16px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-control); font: inherit; }
.not-found__links { display: flex; flex-wrap: wrap; gap: 8px; }
.not-found__links a { min-height: 40px; display: inline-flex; align-items: center; padding: 0 14px; border-radius: 999px; background: var(--sk-surface-alt); color: var(--sk-ink); font-weight: 700; text-decoration: none; }

/* Collections and storefront rows, 2026-09-24. */
.collection-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.collection-tile { position: relative; display: block; overflow: hidden; min-height: 170px; border-radius: var(--sk-radius-card); background: var(--sk-surface-alt); color: var(--sk-surface); text-decoration: none; isolation: isolate; }
.collection-tile img, .collection-tile__placeholder { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s; }
.collection-tile__placeholder { background: linear-gradient(135deg, var(--sk-sky), var(--sk-accent-soft)); }
.collection-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, color-mix(in srgb, var(--sk-ink) 78%, transparent)); z-index: 0; }
.collection-tile:hover img { transform: scale(1.05); }
.collection-tile__body { position: absolute; left: 18px; right: 18px; bottom: 16px; z-index: 1; display: grid; gap: 2px; }
.collection-tile__body strong { font-family: var(--sk-font-display); font-weight: 500; font-size: 20px; letter-spacing: -.03em; line-height: 1.15; }
.collection-tile__body small { opacity: .85; font-weight: 700; }
.lot-cards { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px, 1fr); gap: 14px; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.lot-card { scroll-snap-align: start; display: grid; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); overflow: hidden; color: var(--sk-ink); text-decoration: none; }
.lot-card:hover { border-color: var(--sk-primary); }
.lot-card__media img, .lot-card__media .collection-tile__placeholder { position: static; width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }
.lot-card__body { display: grid; gap: 3px; padding: 14px 16px 16px; }
.lot-card__price { font-family: var(--sk-font-display); font-weight: 500; font-size: 21px; letter-spacing: -.035em; }
.lot-card__title { font-weight: 700; }
.lot-card small { color: var(--sk-muted); }
.featured-collection__grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.featured-collection .section-kicker { max-width: 640px; }
.budget-bands { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.budget-band { display: grid; gap: 4px; padding: 20px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); color: var(--sk-ink); text-decoration: none; }
.budget-band:hover { border-color: var(--sk-primary); background: var(--sk-surface-alt); }
.budget-band strong { font-family: var(--sk-font-display); font-weight: 500; font-size: 22px; letter-spacing: -.035em; white-space: nowrap; }
.budget-band small { color: var(--sk-muted); font-weight: 700; }
.collections-page { padding-bottom: 80px; }
.collections-page .city-switch { flex-shrink: 0; }

/* TGB ad places (app/tgb/docs/integration/skvartiroy.md). Printed only with
   TGB_KEY set; height is reserved so the page does not jump, and a place the
   panel leaves empty collapses. */
.ad-place { margin: 40px auto; }
.ad-place--top { margin: 16px auto 0; }
.ad-place--grid { grid-column: 1 / -1; margin: 4px 0; }
.ad-place [data-tgb-slot] { min-height: 250px; }
.ad-place--header_top [data-tgb-slot], .ad-place--footer [data-tgb-slot] { min-height: 90px; }
.ad-place--building_sidebar { margin: 16px 0 0; }
.ad-place--building_sidebar [data-tgb-slot] { min-height: 250px; }
.ad-place [data-tgb-slot][data-tgb-state="empty"] { min-height: 0; }
.ad-place:has([data-tgb-state="empty"]) { margin: 0; }
.ad-place [data-tgb-slot][data-tgb-state="filled"]::before { content: "Реклама"; display: block; margin-bottom: 6px; color: var(--sk-muted); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.ad-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; margin: 0; }
.ad-sticky [data-tgb-slot] { min-height: 0; }
@media (min-width: 768px) { .ad-sticky { display: none; } }
@media (max-width: 767px) { body:has(.ad-sticky [data-tgb-state="filled"]) { padding-bottom: 100px; } .ad-place--building_sidebar { display: none; } }
/* The sidebar ad (up to ~1000 px) makes the sticky form column taller than the
   screen; a sticky block taller than the viewport cannot be scrolled through. */
.building-decision__ribbon:has(.ad-place--building_sidebar [data-tgb-state="filled"]) { position: static; }
.news-article__body { white-space: normal; color: var(--sk-ink); font-size: 17px; line-height: 1.75; max-width: 760px; }
.news-article__body p { margin: 0 0 1.1em; }
.ad-sticky:has([data-tgb-state="filled"]) { padding: 4px 8px 6px; background: var(--sk-surface); box-shadow: 0 -6px 20px var(--sk-shadow); }
.ad-sticky [data-tgb-slot][data-tgb-state="filled"]::before { margin-bottom: 2px; }
@media (max-width: 767px) { body:has(.ad-sticky [data-tgb-state="filled"]) { padding-bottom: 136px; } }

/* Building page with a permanent right rail (owner, 25.09): form, partner
   column and a sticky reminder run along the whole content, so the ad column
   no longer leaves a hole under the photos. */
.building-decision { grid-template-columns: minmax(0, 1fr) 320px; column-gap: 28px; row-gap: 0; }
.building-decision__card { grid-column: 1; grid-row: 1; }
.building-decision__ribbon { grid-column: 2; grid-row: 1 / span 2; position: static; align-self: stretch; display: flex; flex-direction: column; gap: 16px; }
.building-decision__ribbon .ad-place { margin: 0; }
.building-content { grid-column: 1; grid-row: 2; min-width: 0; }
.building-content > section, .building-content > .ad-place { margin-top: 56px; }
.building-rail-cta { position: sticky; top: 90px; display: grid; gap: 8px; padding: 20px; }
.building-rail-cta span { color: var(--sk-muted); font-size: 14px; font-weight: 700; }
.building-rail-cta strong { font-family: var(--sk-font-display); font-weight: 500; font-size: 24px; letter-spacing: -.04em; }
.building-rail-cta .btn { width: 100%; justify-content: center; }
@media (max-width: 980px) {
    .building-decision { grid-template-columns: 1fr; }
    .building-decision__ribbon, .building-content { grid-column: 1; grid-row: auto; }
    .building-rail-cta { display: none; }
}
.news-layout { display: grid; grid-template-columns: minmax(0, 760px) 300px; justify-content: space-between; gap: 40px; align-items: start; }
.news-aside .ad-place { margin: 0; }
.news-aside:not(:has([data-tgb-slot])) { display: none; }
@media (max-width: 980px) { .news-layout { grid-template-columns: 1fr; } .news-aside { display: none; } }
.ad-formats { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.ad-format { display: grid; gap: 6px; align-content: start; padding: 22px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); }
.ad-format__size { justify-self: start; padding: 4px 10px; border-radius: 999px; background: var(--sk-accent-soft); font-size: 13px; font-weight: 800; }
.ad-format strong { font-size: 18px; }
.ad-format p { margin: 0; color: var(--sk-muted); }
.ad-audience { margin: 0; padding-left: 20px; display: grid; gap: 8px; }
.advertising-page { padding-bottom: 80px; }

/* Catalog filters, 2026-09-25: grouped blocks, pill toggles instead of a
   multi-select, city-scoped lists with counts, a sticky «Показать N» button. */
.catalog-filters.filters-panel { display: flex; flex-direction: column; gap: 0; padding: 0; overflow: visible; }
.catalog-split__criteria.filters-panel { max-height: none; position: static; }
.catalog-filter-disclosure { position: sticky; top: 86px; align-self: flex-start; max-height: calc(100vh - 100px); overflow-y: auto; border-radius: var(--sk-radius-panel); scrollbar-width: thin; }
.filters-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 18px 20px 6px; }
.filters-panel__head h2 { margin: 0; display: flex; align-items: center; gap: 8px; font-size: 18px; }
.filters-panel__count { min-width: 24px; height: 24px; display: inline-grid; place-items: center; border-radius: 999px; background: var(--sk-primary); color: var(--sk-surface); font-size: 13px; }
.filters-panel__reset { color: var(--sk-primary); font-weight: 700; font-size: 14px; }
.filter-block { margin: 0; padding: 14px 20px; border: 0; border-top: 1px solid var(--sk-line); min-width: 0; }
.filters-panel__head + .filter-block { border-top: 0; }
.filter-label { display: block; margin: 0 0 8px; padding: 0; color: var(--sk-ink); font-size: 14px; font-weight: 800; }
.catalog-filters .filter-input { min-height: 42px; font-size: 15px; }
.filter-range { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.filter-hint { margin: 8px 0 0; color: var(--sk-muted); font-size: 12px; line-height: 1.4; }
.filter-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.filter-pill { position: relative; cursor: pointer; }
.catalog-filters .filter-pill input, .catalog-filters .filter-check input { position: absolute; opacity: 0; width: 1px; height: 1px; min-height: 0; padding: 0; margin: 0; }
.filter-pill span { min-height: 38px; display: inline-flex; align-items: center; gap: 5px; padding: 0 13px; border: 1px solid var(--sk-line); border-radius: 999px; background: var(--sk-surface); font-size: 14px; font-weight: 700; white-space: nowrap; }
.filter-pill small { color: var(--sk-muted); font-weight: 600; font-size: 12px; }
.filter-pill:hover span { border-color: var(--sk-primary); }
.filter-pill input:checked + span { border-color: var(--sk-primary); background: var(--sk-primary); color: var(--sk-surface); }
.filter-pill input:checked + span small { color: inherit; opacity: .8; }
.filter-pill input:focus-visible + span, .filter-check input:focus-visible + span::before { outline: 3px solid var(--sk-focus); outline-offset: 2px; }
.filter-pills--rooms .filter-pill span { min-width: 44px; justify-content: center; }
.filter-checks { display: grid; gap: 10px; }
.filter-check { position: relative; cursor: pointer; }
.filter-check span { display: flex; align-items: center; gap: 10px; min-height: 28px; font-size: 14px; font-weight: 700; }
.filter-check span::before { content: ""; flex-shrink: 0; width: 22px; height: 22px; border: 1.5px solid var(--sk-line); border-radius: 7px; background: var(--sk-surface); }
.filter-check input:checked + span::before { border-color: var(--sk-primary); background: var(--sk-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8l3 3 7-7' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat; }
.filters-panel__actions { position: sticky; bottom: 0; padding: 14px 20px 18px; border-top: 1px solid var(--sk-line); background: var(--sk-surface); border-radius: 0 0 var(--sk-radius-panel) var(--sk-radius-panel); }
.filters-panel__actions .btn { width: 100%; justify-content: center; }
.results-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.results-head .results-status { margin: 0; color: var(--sk-ink); font-weight: 800; }
.results-sort { display: flex; align-items: center; gap: 10px; color: var(--sk-muted); font-size: 14px; }
.results-sort select { min-height: 40px; padding: 0 12px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-control); background: var(--sk-surface); font: inherit; color: var(--sk-ink); }
@media (min-width: 981px) { .catalog-filter-disclosure > summary { display: none; } }
@media (max-width: 980px) {
    .catalog-filter-disclosure { position: static; max-height: none; overflow: visible; }
    .filters-panel__head h2 { display: none; }
}
.relax-options { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 4px 0 18px; }

/* Owner review 25.09: the filter panel no longer scrolls on its own — the
   page scrolls, the «Показать» button stays pinned to the bottom of the view. */
.catalog-filter-disclosure { position: static; max-height: none; overflow: visible; }

/* Breadcrumbs, one look everywhere: quiet links, thin separators, the current
   page in ink and cut with an ellipsis instead of wrapping into two lines. */
.crumbs { display: flex; align-items: center; flex-wrap: nowrap; gap: 0; min-width: 0; margin: 20px 0 16px; padding: 0; overflow: hidden; color: var(--sk-muted); font-size: 13px; font-weight: 600; line-height: 1.4; }
.crumbs > a, .crumbs > span { flex-shrink: 0; white-space: nowrap; }
.crumbs a { color: var(--sk-muted); text-decoration: none; border-radius: 6px; transition: color .15s; }
.crumbs a:hover, .crumbs a:focus-visible { color: var(--sk-primary); text-decoration: none; }
.crumbs > span[aria-hidden="true"] { display: inline-block; width: 18px; text-align: center; color: var(--sk-line); font-weight: 400; }
.crumbs > [aria-current="page"], .crumbs > span:last-child:not([aria-hidden]) { flex-shrink: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; color: var(--sk-ink); }
@media (max-width: 640px) { .crumbs { margin: 14px 0 12px; font-size: 12px; } }

/* Journal, 25.09: rubric tabs, a featured piece, a three-column grid; the
   article and its partner column share one grid of the content width. */
.journal-page, .article-page { padding-bottom: 80px; }
.journal-hero { margin: 8px 0 22px; }
.journal-hero .page-title { margin-top: 6px; }
.journal-tabs small { color: var(--sk-muted); font-weight: 600; font-size: 12px; margin-left: 4px; }
.journal-tabs a[aria-current="page"] small { color: inherit; opacity: .8; }
.journal-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0; color: var(--sk-muted); font-size: 13px; font-weight: 600; }
.journal-meta__rubric { padding: 3px 10px; border-radius: 999px; background: var(--sk-accent-soft); color: var(--sk-ink); text-decoration: none; font-weight: 800; }
a.journal-meta__rubric:hover { background: var(--sk-accent); }
.journal-featured { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 32px; align-items: center; margin: 8px 0 36px; padding: 16px; border-radius: 28px; background: var(--sk-surface); border: 1px solid var(--sk-line); }
.journal-featured__media img, .journal-featured__media .journal-teaser__placeholder { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: 20px; display: block; }
.journal-featured__body { display: grid; gap: 14px; justify-items: start; padding: 8px 16px 8px 0; }
.journal-featured h2 { margin: 0; font-family: var(--sk-font-display); font-weight: 500; font-size: clamp(24px, 2.6vw, 34px); line-height: 1.12; letter-spacing: -.045em; }
.journal-featured h2 a, .journal-tile__title a { color: var(--sk-ink); text-decoration: none; }
.journal-featured h2 a:hover, .journal-tile__title a:hover { color: var(--sk-primary); }
.journal-featured__excerpt { margin: 0; color: var(--sk-muted); font-size: 16px; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.journal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 28px 22px; }
.journal-grid .ad-place--grid { grid-column: 1 / -1; margin: 0; }
.journal-tile { display: grid; gap: 10px; align-content: start; }
.journal-tile__media { display: block; overflow: hidden; border-radius: 20px; background: var(--sk-surface-alt); }
.journal-tile__media img, .journal-tile__media .journal-teaser__placeholder { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; transition: transform .25s; }
.journal-tile:hover .journal-tile__media img { transform: scale(1.03); }
.journal-tile__title { margin: 0; font-size: 18px; line-height: 1.35; font-weight: 800; }
.journal-tile__excerpt { margin: 0; color: var(--sk-muted); font-size: 14px; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.journal-page .sk-pagination { margin-top: 36px; }
.journal-start__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; margin-top: 18px; }
.journal-start__grid a { display: grid; gap: 6px; padding: 22px; border-radius: var(--sk-radius-card); background: var(--sk-surface-alt); color: var(--sk-ink); text-decoration: none; }
.journal-start__grid a:hover { background: var(--sk-sky); }
.journal-start__grid span { color: var(--sk-muted); font-size: 14px; }
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; align-items: start; margin-top: 8px; }
.article-main { min-width: 0; max-width: 780px; }
.article-head { display: grid; gap: 14px; margin-bottom: 24px; }
.article-title { margin: 0; font-family: var(--sk-font-display); font-weight: 500; font-size: clamp(28px, 3.6vw, 46px); line-height: 1.08; letter-spacing: -.05em; }
.article-cover { margin: 0 0 28px; overflow: hidden; border-radius: var(--sk-radius-panel); }
.article-cover img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.article-body { max-width: none; }
.article-body p:first-child::first-line { font-weight: 700; }
.article-foot { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--sk-line); }
.article-aside { display: grid; gap: 24px; }
.article-aside .ad-place { margin: 0; }
.article-aside__list { padding: 22px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); }
.article-aside__list h2 { margin: 0 0 12px; font-size: 16px; }
.article-aside__list ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.article-aside__list a { display: block; color: var(--sk-ink); font-weight: 700; font-size: 14px; line-height: 1.4; text-decoration: none; }
.article-aside__list a:hover { color: var(--sk-primary); }
.article-aside__list time { color: var(--sk-muted); font-size: 12px; }
@media (max-width: 980px) {
    .journal-featured { grid-template-columns: 1fr; padding: 12px; }
    .journal-featured__body { padding: 4px 8px 12px; }
    .article-layout { grid-template-columns: 1fr; gap: 32px; }
    .article-aside .ad-place { display: none; }
}

/* Mortgage page v2: calculator hero, rate boards, steps, FAQ. */
.mortgage-v2 { padding-bottom: 80px; }
.mortgage-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 460px); gap: 40px; align-items: start; margin: 12px 0 8px; }
.mortgage-hero__copy { padding-top: 18px; }
.mortgage-hero__copy .lede { max-width: 560px; }
.mortgage-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 28px 0 0; padding: 0; list-style: none; }
.mortgage-facts li { display: grid; gap: 4px; padding: 18px 20px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); }
.mortgage-facts strong { font-family: var(--sk-font-display); font-weight: 500; font-size: 26px; letter-spacing: -.04em; color: var(--sk-primary); }
.mortgage-facts span { color: var(--sk-muted); font-size: 14px; font-weight: 700; }
.mortgage-hero__note { margin-top: 18px; color: var(--sk-muted); font-size: 13px; max-width: 520px; }
.mortgage-calc { display: grid; gap: 18px; padding: 26px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); box-shadow: 0 18px 50px var(--sk-shadow); }
.mortgage-calc__title { margin: 0; font-family: var(--sk-font-display); font-weight: 500; font-size: 22px; letter-spacing: -.03em; }
.mortgage-calc__field { display: grid; gap: 10px; }
.mortgage-calc__field label, .mortgage-calc__label { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; font-weight: 700; color: var(--sk-muted); }
.mortgage-calc__field output { color: var(--sk-ink); font-weight: 800; white-space: nowrap; }
.mortgage-calc input[type=range] { width: 100%; accent-color: var(--sk-primary); height: 22px; margin: 0; cursor: pointer; }
.calc-presets { display: flex; flex-wrap: wrap; gap: 8px; }
.calc-preset { display: inline-flex; gap: 6px; align-items: baseline; min-height: 36px; padding: 7px 12px; border: 1px solid var(--sk-line); border-radius: 999px; background: var(--sk-surface); color: var(--sk-ink); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.calc-preset b { color: var(--sk-primary); }
.calc-preset:hover { border-color: var(--sk-primary); }
.calc-preset.is-active { border-color: var(--sk-primary); background: var(--sk-primary); color: var(--sk-surface); }
.calc-preset.is-active b { color: inherit; }
.calc-rate { display: inline-flex; align-items: center; gap: 4px; min-height: 36px; padding: 0 12px; border: 1px solid var(--sk-line); border-radius: 999px; font-size: 13px; font-weight: 700; color: var(--sk-muted); }
.calc-rate input { width: 54px; border: 0; background: transparent; font: inherit; color: var(--sk-ink); text-align: right; }
.calc-rate:focus-within { border-color: var(--sk-primary); outline: 3px solid var(--sk-focus); }
.calc-rate input:focus { outline: none; }
.mortgage-calc__result { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 14px; padding: 18px; border-radius: var(--sk-radius-panel); background: var(--sk-surface-alt); }
.mortgage-calc__result div { display: grid; gap: 3px; min-width: 0; }
.mortgage-calc__result span { color: var(--sk-muted); font-size: 12px; font-weight: 700; }
.mortgage-calc__result b { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mortgage-calc__main { grid-column: 1 / -1; }
.mortgage-calc__main strong { font-family: var(--sk-font-display); font-weight: 500; font-size: 34px; letter-spacing: -.045em; color: var(--sk-primary); line-height: 1.1; }
.mortgage-calc__cta { justify-content: center; width: 100%; }
.mortgage-calc__hint { margin: -6px 0 0; color: var(--sk-muted); font-size: 12px; }
.rate-boards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; align-items: start; }
.rate-board { border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); overflow: hidden; }
.rate-board__head { display: grid; gap: 2px; padding: 20px 22px; background: var(--sk-surface-alt); }
.rate-board--family .rate-board__head { background: var(--sk-accent-soft); }
.rate-board__kind { font-weight: 800; }
.rate-board__head strong { font-family: var(--sk-font-display); font-weight: 500; font-size: 30px; letter-spacing: -.045em; color: var(--sk-primary); }
.rate-board__head small { color: var(--sk-muted); font-weight: 600; }
.rate-board__list { margin: 0; padding: 6px 22px 12px; list-style: none; max-height: 340px; overflow-y: auto; scrollbar-width: thin; }
.rate-board__list li { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; padding: 11px 0; border-bottom: 1px solid var(--sk-line); }
.rate-board__list li:last-child { border-bottom: 0; }
.rate-board__list span { display: grid; min-width: 0; font-weight: 600; }
.rate-board__list small { color: var(--sk-muted); font-size: 12px; }
.rate-board__list strong { white-space: nowrap; }
.mortgage-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; counter-reset: step; }
.mortgage-steps li { counter-increment: step; display: grid; gap: 8px; align-content: start; padding: 22px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); }
.mortgage-steps li::before { content: counter(step); display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--sk-primary); color: var(--sk-surface); font-family: var(--sk-font-display); font-weight: 500; }
.mortgage-steps span { color: var(--sk-muted); font-size: 14px; }
.mortgage-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.mortgage-filters select { min-height: 44px; padding: 9px 38px 9px 14px; border: 1px solid var(--sk-line); border-radius: 999px; background-color: var(--sk-surface); color: var(--sk-ink); font: inherit; font-weight: 700; }
.mortgage-filters select:focus { border-color: var(--sk-primary); outline: 3px solid var(--sk-focus); }
.mortgage-faq { display: grid; gap: 10px; max-width: 880px; }
.mortgage-faq details { border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); }
.mortgage-faq summary { display: flex; justify-content: space-between; gap: 16px; padding: 18px 22px; font-weight: 800; cursor: pointer; list-style: none; }
.mortgage-faq summary::-webkit-details-marker { display: none; }
.mortgage-faq summary::after { content: "+"; color: var(--sk-primary); font-size: 22px; line-height: 1; }
.mortgage-faq details[open] summary::after { content: "−"; }
.mortgage-faq p { margin: 0; padding: 0 22px 18px; color: var(--sk-muted); }
.mortgage-v2 .ad-place { margin-top: 36px; }
@media (max-width: 980px) {
    .mortgage-hero { grid-template-columns: 1fr; gap: 24px; }
    .mortgage-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .mortgage-calc { padding: 18px; }
    .mortgage-calc__result { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mortgage-steps { grid-template-columns: 1fr; }
    .mortgage-facts strong { font-size: 22px; }
    .mortgage-filters select { flex: 1 1 100%; }
}
.program-list { display: grid; gap: 10px; margin: 0 0 8px; padding: 0; list-style: none; }
.program-row { display: grid; grid-template-columns: minmax(0, 2.2fr) repeat(3, minmax(0, 1fr)) auto; gap: 18px; align-items: center; padding: 16px 20px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); }
.program-row:hover { border-color: var(--sk-primary); }
.program-row > div { display: grid; gap: 2px; min-width: 0; }
.program-row small { color: var(--sk-muted); font-size: 12px; font-weight: 700; }
.program-row__name strong { font-size: 16px; }
.program-row__rate strong { font-family: var(--sk-font-display); font-weight: 500; font-size: 22px; letter-spacing: -.04em; color: var(--sk-primary); }
.program-row .btn { white-space: nowrap; }
.mortgage-v2 .lot-card__title { white-space: normal; }
.mortgage-v2 .lot-card__media img, .mortgage-v2 .lot-card__media .collection-tile__placeholder { aspect-ratio: 16/8; }
.mortgage-v2 .lot-card__price { font-size: 19px; }
@media (max-width: 760px) {
    .program-row { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 16px; }
    .program-row__name, .program-row .btn { grid-column: 1 / -1; }
    .program-row .btn { justify-content: center; }
}
.lot-card__sum { white-space: nowrap; }

/* Article: the text column runs up to the partner column, no dead gap between them. */
.article-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; }
.article-main { max-width: none; }
.article-body { font-size: 17px; line-height: 1.7; }
@media (max-width: 980px) { .article-layout { grid-template-columns: 1fr; gap: 32px; } }

/* Developers: hero with totals, toolbar, cards with a photo strip. */
.developers-page, .analytics-page { padding-bottom: 80px; }
.dev-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: end; margin: 12px 0 26px; }
.dev-hero .lede { max-width: 640px; }
.dev-hero__stats { display: flex; gap: 12px; margin: 0; }
.dev-hero__stats div { display: grid; gap: 2px; min-width: 150px; padding: 18px 22px; border-radius: var(--sk-radius-card); background: var(--sk-surface-alt); }
.dev-hero__stats dt { font-family: var(--sk-font-display); font-weight: 500; font-size: 30px; letter-spacing: -.045em; color: var(--sk-primary); }
.dev-hero__stats dd { margin: 0; color: var(--sk-muted); font-size: 14px; font-weight: 700; }
.dev-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 24px; }
.dev-toolbar__cities { margin: 0; flex: 1 1 auto; }
.dev-toolbar__cities a[aria-current] { border-color: var(--sk-primary); background: var(--sk-primary); color: var(--sk-surface); }
.dev-toolbar__cities small { margin-left: 6px; opacity: .7; }
.dev-toolbar__search input, .dev-toolbar select { min-height: 44px; padding: 9px 16px; border: 1px solid var(--sk-line); border-radius: 999px; background: var(--sk-surface); color: var(--sk-ink); font: inherit; font-weight: 600; }
.dev-toolbar__search input { width: 260px; }
.dev-toolbar__search input:focus, .dev-toolbar select:focus { border-color: var(--sk-primary); outline: 3px solid var(--sk-focus); }
.dev-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.dev-grid .ad-place--grid { grid-column: 1 / -1; }
.dev-card { display: grid; align-content: start; gap: 14px; padding: 0 0 18px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); color: var(--sk-ink); text-decoration: none; overflow: hidden; transition: border-color .15s, box-shadow .15s; }
.dev-card:hover { border-color: var(--sk-primary); box-shadow: 0 14px 34px var(--sk-shadow); }
.dev-card__media { display: grid; gap: 2px; height: 128px; background: var(--sk-surface-alt); }
.dev-card__media--2 { grid-template-columns: 1fr 1fr; }
.dev-card__media--3 { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; }
.dev-card__media--3 img:first-child { grid-row: 1 / -1; }
.dev-card__media img { width: 100%; height: 100%; min-height: 0; object-fit: cover; display: block; }
.dev-card__blank { background: linear-gradient(135deg, var(--sk-sky), var(--sk-accent-soft)); }
.dev-card__head { display: flex; gap: 12px; align-items: center; padding: 0 18px; margin-top: -34px; }
.dev-card__head > span:last-child { display: grid; gap: 2px; min-width: 0; padding-top: 30px; }
.dev-card__head small { color: var(--sk-muted); font-size: 12px; font-weight: 700; }
.dev-card__name { font-size: 17px; line-height: 1.25; }
.dev-card__avatar, .dev-card__logo { flex-shrink: 0; display: grid; place-items: center; width: 52px; height: 52px; border: 3px solid var(--sk-surface); border-radius: 16px; font-family: var(--sk-font-display); font-weight: 500; font-size: 22px; background: var(--sk-primary); color: var(--sk-surface); object-fit: cover; }
.dev-card__avatar--1 { background: var(--sk-accent); color: var(--sk-ink); }
.dev-card__avatar--2 { background: var(--sk-sky); color: var(--sk-primary); }
.dev-card__avatar--3 { background: var(--sk-ink); }
.dev-card__facts { display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 0 18px; color: var(--sk-muted); font-size: 13px; }
.dev-card__facts b { color: var(--sk-ink); }
.dev-card__offer { margin: 0 18px; padding: 9px 12px; border-radius: var(--sk-radius-control); background: var(--sk-success-soft); color: var(--sk-success-ink); font-size: 13px; font-weight: 700; }
.developers-page .sk-pagination { margin-top: 32px; }
.dev-mini-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.dev-mini { display: flex; gap: 12px; align-items: center; padding: 12px 16px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); color: var(--sk-ink); text-decoration: none; }
.dev-mini:hover { border-color: var(--sk-primary); }
.dev-mini .dev-card__avatar { width: 42px; height: 42px; font-size: 17px; border-radius: 12px; border: 0; }
.dev-mini > span:last-child { display: grid; min-width: 0; }
.dev-mini small { color: var(--sk-muted); font-weight: 700; }
.developer-panel__avatar { font-family: var(--sk-font-display); font-weight: 500; color: var(--sk-surface); }
@media (max-width: 980px) {
    .dev-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dev-hero { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
    .dev-grid { grid-template-columns: 1fr; }
    .dev-hero__stats div { min-width: 0; flex: 1; }
    .dev-toolbar__search { flex: 1 1 auto; }
    .dev-toolbar__search input { width: 100%; }
}

/* Analytics: KPI tiles, CSS bar charts, price table. */
.an-hero { margin: 12px 0 24px; }
.an-hero .lede { max-width: 760px; }
.an-hero .quick-filters { margin: 22px 0 0; }
.an-hero .quick-filters a[aria-current] { border-color: var(--sk-primary); background: var(--sk-primary); color: var(--sk-surface); }
.an-kpi .stat-tile strong { color: var(--sk-primary); }
.an-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.an-panel { display: grid; align-content: start; gap: 6px; padding: 26px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); min-width: 0; }
.an-panel__title { margin: 0; font-family: var(--sk-font-display); font-weight: 500; font-size: 22px; letter-spacing: -.035em; }
.an-panel__lead { margin: 0 0 14px; color: var(--sk-muted); font-size: 14px; }
.an-columns { display: flex; align-items: flex-end; gap: 10px; height: 220px; padding-top: 8px; }
.an-column { flex: 1; display: grid; grid-template-rows: auto 1fr auto; justify-items: center; gap: 6px; height: 100%; color: var(--sk-ink); text-decoration: none; }
.an-column b { font-size: 14px; align-self: end; }
.an-column i { width: 100%; max-width: 56px; align-self: end; border-radius: 10px 10px 4px 4px; background: var(--sk-primary); transition: background .15s; }
a.an-column:hover i { background: var(--sk-accent); }
.an-columns--done i { background: var(--sk-sky); }
.an-column span { color: var(--sk-muted); font-size: 13px; font-weight: 700; }
.an-stack { display: flex; height: 18px; overflow: hidden; border-radius: 999px; background: var(--sk-surface-alt); margin: 4px 0 14px; }
.an-stack i { height: 100%; }
.an-stack__ekonom { background: var(--sk-sky); }
.an-stack__komfort { background: var(--sk-primary); }
.an-stack__biznes-elit { background: var(--sk-accent); }
.an-legend { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.an-legend li { display: grid; grid-template-columns: auto 1fr auto 48px; gap: 10px; align-items: center; }
.an-legend a { color: var(--sk-ink); font-weight: 700; text-decoration: none; }
.an-legend a:hover { color: var(--sk-primary); }
.an-legend small { color: var(--sk-muted); text-align: right; font-weight: 700; }
.an-dot { width: 12px; height: 12px; border-radius: 4px; }
.an-bars { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; counter-reset: rank; }
.an-bars li { display: grid; gap: 6px; }
.an-bars a { display: flex; justify-content: space-between; gap: 12px; color: var(--sk-ink); font-weight: 700; font-size: 14px; text-decoration: none; }
.an-bars a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.an-bars a:hover { color: var(--sk-primary); }
.an-bars i { display: block; height: 8px; min-width: 4px; border-radius: 999px; background: var(--sk-primary); }
.an-bars--ranked li { counter-increment: rank; }
.an-bars--ranked a span::before { content: counter(rank) ". "; color: var(--sk-muted); }
.an-bars--ranked li:nth-child(n+4) i { background: color-mix(in srgb, var(--sk-primary) 55%, var(--sk-surface)); }
.an-cities { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.an-city { display: grid; gap: 14px; padding: 24px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); color: var(--sk-ink); text-decoration: none; }
.an-city:hover { border-color: var(--sk-primary); }
.an-city > strong { font-family: var(--sk-font-display); font-weight: 500; font-size: 24px; letter-spacing: -.04em; }
.an-city dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0; }
.an-city dt { color: var(--sk-muted); font-size: 12px; font-weight: 700; }
.an-city dd { margin: 2px 0 0; font-weight: 800; font-size: 17px; }
.an-city__bar { height: 8px; border-radius: 999px; background: var(--sk-sky); overflow: hidden; }
.an-city__bar i { display: block; height: 100%; background: var(--sk-primary); }
.an-city small { color: var(--sk-muted); font-weight: 700; }
.an-table { display: grid; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); overflow: hidden; }
.an-table__row { display: grid; grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr)) 1.4fr; gap: 14px; align-items: center; padding: 16px 22px; border-top: 1px solid var(--sk-line); color: var(--sk-ink); text-decoration: none; }
.an-table__row:first-child { border-top: 0; }
a.an-table__row:hover { background: var(--sk-surface-alt); }
.an-table__row--head { background: var(--sk-surface-alt); color: var(--sk-muted); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.an-table__sqm { display: grid; gap: 6px; }
.an-table__sqm i { display: block; height: 6px; border-radius: 999px; background: var(--sk-accent); }
.an-rates { display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: center; padding: 24px 28px; border-radius: var(--sk-radius-card); background: var(--sk-surface-alt); }
.an-rates > div:first-child { flex: 1 1 220px; }
.an-rates .an-panel__lead { margin: 0; }
.an-rate { display: grid; }
.an-rate span { color: var(--sk-muted); font-size: 13px; font-weight: 700; }
.an-rate strong { font-family: var(--sk-font-display); font-weight: 500; font-size: 26px; letter-spacing: -.04em; color: var(--sk-primary); }
.an-articles { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.an-note { margin-top: 36px; color: var(--sk-muted); font-size: 13px; max-width: 760px; }
@media (max-width: 900px) {
    .an-two { grid-template-columns: 1fr; }
    .an-table__row--head { display: none; }
    .an-table__row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; }
    .an-table__row > span:first-child, .an-table__sqm { grid-column: 1 / -1; }
    .an-table__row [data-label]::before { content: attr(data-label) " "; color: var(--sk-muted); font-size: 12px; font-weight: 700; }
}
@media (max-width: 560px) {
    .an-panel { padding: 18px; }
    .an-columns { gap: 5px; height: 180px; }
    .an-column span { font-size: 11px; }
    .an-city dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.dev-toolbar__cities { flex: 1 1 100%; }
.dev-toolbar__search { flex: 1 1 260px; }
.dev-toolbar__search input { width: 100%; }
.an-stack__ekonom { background: color-mix(in srgb, var(--sk-primary) 35%, var(--sk-surface)); }

/* Map credit: a small quiet pill in the corner instead of Leaflet's white strip. */
.leaflet-container .leaflet-control-attribution { margin: 0 8px 8px 0; padding: 2px 8px; border-radius: 999px; background: color-mix(in srgb, var(--sk-surface) 82%, transparent); color: var(--sk-muted); font: 500 11px/1.6 var(--sk-font-body); box-shadow: none; }
.leaflet-container .leaflet-control-attribution a { color: var(--sk-muted); text-decoration: none; }
.leaflet-container .leaflet-control-attribution a:hover { color: var(--sk-primary); }

/* Comparison: the toggle on cards, the bar at the bottom, the side-by-side table. */
.compare-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1px solid var(--sk-line); border-radius: 8px; background: var(--sk-surface); color: var(--sk-ink); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.compare-btn__icon { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.compare-btn:hover { border-color: var(--sk-primary); color: var(--sk-primary); }
.compare-btn.is-active { background: var(--sk-primary); border-color: var(--sk-primary); color: var(--sk-surface); }
.building-card__favorite { display: flex; gap: 8px; }
.building-card__favorite .compare-btn { width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; }
.building-card__favorite .compare-btn__label { display: none; }
.building-card__favorite .compare-btn:not(.is-active):hover { background: var(--sk-surface-alt); }
.building-save-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.building-save-actions > * { flex: 1 1 auto; }
.nav-compare b { display: inline-grid; place-items: center; min-width: 20px; height: 20px; margin-left: 2px; padding: 0 6px; border-radius: 999px; background: var(--sk-primary); color: var(--sk-surface); font-size: 11px; }
.nav-compare[hidden] { display: none !important; }

.compare-bar { position: fixed; left: 50%; bottom: 18px; z-index: 45; transform: translateX(-50%); width: min(920px, calc(100% - 32px)); display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 12px 14px 12px 18px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); box-shadow: 0 18px 50px color-mix(in srgb, var(--sk-ink) 18%, transparent); }
.compare-bar[hidden] { display: none; }
.compare-bar.is-full { border-color: var(--sk-accent); }
.compare-bar__items { flex: 1 1 auto; display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.compare-bar__chip { display: inline-flex; align-items: center; gap: 4px; max-width: 220px; padding: 4px 4px 4px 12px; border-radius: 999px; background: var(--sk-surface-alt); font-size: 13px; font-weight: 700; }
.compare-bar__chip > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.compare-bar__chip button { display: grid; place-items: center; width: 24px; height: 24px; border: 0; border-radius: 50%; background: transparent; color: var(--sk-muted); font-size: 16px; cursor: pointer; }
.compare-bar__chip button:hover { background: var(--sk-surface); color: var(--sk-ink); }
.compare-bar__hint { flex: 1 1 100%; order: 3; margin: 0; color: var(--sk-accent-strong); font-size: 13px; font-weight: 700; }
.compare-bar__hint:empty { display: none; }
.compare-bar__actions { display: flex; gap: 8px; }
.compare-bar__go.is-disabled { background: var(--sk-surface-alt); border-color: var(--sk-line); color: var(--sk-muted); }
body.has-compare-bar .site-footer { padding-bottom: 110px; }
@media (max-width: 767px) {
    .compare-bar { bottom: 10px; padding: 10px; }
    body:has(.ad-sticky [data-tgb-state="filled"]) .compare-bar { bottom: 104px; }
    .compare-bar__items { flex-basis: 100%; }
    .compare-bar__actions { flex: 1; }
    .compare-bar__actions .btn { flex: 1; justify-content: center; }
}

.compare-page { padding-bottom: 80px; }
.compare-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: end; margin: 12px 0 24px; }
.compare-head .lede { max-width: 720px; }
.compare-head__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.compare-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1px solid var(--sk-line); border-radius: 999px; background: var(--sk-surface); font-weight: 700; cursor: pointer; }
.compare-toggle input { width: 18px; height: 18px; accent-color: var(--sk-primary); }
.compare-note { margin: 0 0 16px; padding: 12px 16px; border-radius: var(--sk-radius-control); background: var(--sk-warning-soft); color: var(--sk-warning-ink); font-weight: 700; }
.compare-empty { display: grid; justify-items: center; gap: 12px; padding: 56px 24px; border: 1px dashed var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); text-align: center; }
.compare-empty svg { width: 56px; height: 56px; fill: none; stroke: var(--sk-primary); stroke-width: 2; stroke-linecap: round; }
.compare-empty h2 { margin: 0; font-family: var(--sk-font-display); font-weight: 500; font-size: 24px; letter-spacing: -.035em; }
.compare-empty p { max-width: 520px; margin: 0 0 8px; color: var(--sk-muted); }
.compare-scroll { overflow-x: auto; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); scrollbar-width: thin; }
.compare-scroll:focus-visible { outline: 3px solid var(--sk-focus); }
.compare-table { width: 100%; min-width: calc(200px + var(--compare-cols) * 230px); border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.compare-table th, .compare-table td { padding: 13px 16px; border-bottom: 1px solid var(--sk-line); text-align: left; vertical-align: top; font-size: 14px; }
.compare-table tbody th[scope=row], .compare-table__corner { position: sticky; left: 0; z-index: 1; width: 200px; background: var(--sk-surface); color: var(--sk-muted); font-weight: 700; box-shadow: 1px 0 0 var(--sk-line); }
.compare-table thead th { vertical-align: top; border-bottom: 1px solid var(--sk-line); background: var(--sk-surface); }
.compare-table__corner { z-index: 2; }
.compare-house { display: table-cell; }
.compare-house__media { position: relative; display: block; margin-bottom: 12px; overflow: hidden; border-radius: var(--sk-radius-control); }
.compare-house__media img, .compare-house__media .collection-tile__placeholder { position: static; display: block; width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.compare-house__media .card-status { position: absolute; left: 8px; top: 8px; }
.compare-house__name { display: block; color: var(--sk-ink); font-size: 16px; font-weight: 800; line-height: 1.3; text-decoration: none; }
.compare-house__name:hover { color: var(--sk-primary); }
.compare-house small { display: block; margin-top: 2px; color: var(--sk-muted); font-weight: 600; }
.compare-house__actions { display: flex; gap: 8px; align-items: center; margin-top: 12px; }
.compare-house__actions .btn { min-height: 38px; padding: 0 14px; font-size: 13px; }
.compare-remove { min-height: 38px; padding: 0 12px; border: 1px solid var(--sk-line); border-radius: 999px; background: var(--sk-surface); color: var(--sk-muted); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.compare-remove:hover { border-color: var(--sk-danger); color: var(--sk-danger); }
.compare-house--add a { display: grid; place-content: center; justify-items: center; gap: 4px; height: 100%; min-height: 200px; border: 1px dashed var(--sk-line); border-radius: var(--sk-radius-control); color: var(--sk-primary); font-weight: 800; text-decoration: none; text-align: center; }
.compare-house--add a > span { font-size: 30px; line-height: 1; }
.compare-house--add a:hover { border-color: var(--sk-primary); background: var(--sk-surface-alt); }
.compare-group th { position: sticky; left: 0; padding-top: 22px; background: var(--sk-surface-alt); color: var(--sk-ink); font-family: var(--sk-font-display); font-weight: 500; font-size: 16px; letter-spacing: -.02em; }
.compare-table td { color: var(--sk-ink); font-weight: 600; overflow-wrap: anywhere; }
.compare-table td.is-empty { color: var(--sk-line); }
.compare-table td.is-best { background: var(--sk-success-soft); color: var(--sk-success-ink); font-weight: 800; }
.compare-best { display: inline-block; margin-left: 8px; padding: 1px 7px; border-radius: 999px; background: var(--sk-surface); color: var(--sk-success-ink); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; vertical-align: 2px; }
.compare-table tbody tr:not(.compare-group):hover td, .compare-table tbody tr:not(.compare-group):hover th[scope=row] { background: var(--sk-canvas); }
.compare-table tbody tr:not(.compare-group):hover td.is-best { background: var(--sk-success-soft); }
.compare-table__add { background: var(--sk-surface); }
.compare-foot { margin: 14px 0 0; color: var(--sk-muted); font-size: 13px; }
@media (max-width: 760px) {
    .compare-head { grid-template-columns: 1fr; }
    .compare-table { min-width: calc(128px + var(--compare-cols) * 180px); }
    .compare-table tbody th[scope=row], .compare-table__corner { width: 128px; font-size: 12px; }
    .compare-table th, .compare-table td { padding: 11px 12px; font-size: 13px; }
    .compare-house__actions { flex-wrap: wrap; }
}
.site-nav a, .account-nav a { white-space: nowrap; }
.nav-label { font-style: normal; }
@media (max-width: 1280px) { .account-nav .nav-label { display: none; } .site-nav a { padding-inline: 8px; } }
.compare-head { grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 1200px) { .compare-head { grid-template-columns: minmax(0, 1fr) auto; } }

/* AI assistant: floating button and chat panel. Sits above the compare bar and the mobile ad. */
.assistant { --assistant-bottom: 20px; position: fixed; right: 20px; bottom: var(--assistant-bottom); z-index: 50; }
body.has-compare-bar .assistant { --assistant-bottom: 104px; }
.assistant-fab { display: inline-flex; align-items: center; gap: 10px; min-height: 54px; padding: 0 22px 0 16px; border: 0; border-radius: 999px; background: linear-gradient(135deg, var(--sk-primary), var(--sk-primary-strong)); color: var(--sk-surface); font: 800 15px/1 var(--sk-font-body); cursor: pointer; box-shadow: 0 14px 34px color-mix(in srgb, var(--sk-primary) 38%, transparent); transition: transform .15s, box-shadow .15s; }
.assistant-fab:hover { transform: translateY(-2px); box-shadow: 0 18px 40px color-mix(in srgb, var(--sk-primary) 46%, transparent); }
.assistant-fab:focus-visible { outline: 3px solid var(--sk-focus); outline-offset: 3px; }
.assistant-fab__icon { width: 24px; height: 24px; fill: var(--sk-accent); }
.assistant.is-open .assistant-fab { display: none; }
.assistant-panel { display: flex; flex-direction: column; width: min(420px, calc(100vw - 32px)); height: min(640px, calc(100vh - var(--assistant-bottom) - 24px)); border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface); box-shadow: 0 24px 64px color-mix(in srgb, var(--sk-ink) 22%, transparent); overflow: hidden; }
.assistant-head { display: flex; align-items: center; gap: 12px; padding: 14px 14px 14px 16px; background: linear-gradient(135deg, var(--sk-primary), var(--sk-primary-strong)); color: var(--sk-surface); }
.assistant-head > div { flex: 1; display: grid; min-width: 0; }
.assistant-head strong { font-family: var(--sk-font-display); font-weight: 500; font-size: 16px; letter-spacing: -.02em; }
.assistant-head span:not(.assistant-head__avatar) { color: color-mix(in srgb, var(--sk-surface) 78%, transparent); font-size: 12px; font-weight: 600; }
.assistant-head__avatar { display: grid; place-items: center; flex-shrink: 0; width: 38px; height: 38px; border-radius: 12px; background: color-mix(in srgb, var(--sk-surface) 16%, transparent); }
.assistant-head__avatar svg { width: 22px; height: 22px; fill: var(--sk-accent); }
.assistant-head__btn { display: grid; place-items: center; width: 34px; height: 34px; border: 0; border-radius: 10px; background: transparent; color: var(--sk-surface); font-size: 16px; cursor: pointer; }
.assistant-head__btn:hover { background: color-mix(in srgb, var(--sk-surface) 16%, transparent); }
.assistant-body { flex: 1; display: flex; flex-direction: column; gap: 12px; padding: 16px; overflow-y: auto; background: var(--sk-canvas); scrollbar-width: thin; }
.assistant-msg { display: grid; gap: 8px; max-width: 92%; }
.assistant-msg p { margin: 0; padding: 10px 14px; border-radius: 16px; font-size: 14px; line-height: 1.5; white-space: pre-line; }
.assistant-msg.is-bot p { border-top-left-radius: 4px; background: var(--sk-surface); border: 1px solid var(--sk-line); color: var(--sk-ink); }
.assistant-msg.is-user { align-self: flex-end; }
.assistant-msg.is-user p { border-top-right-radius: 4px; background: var(--sk-primary); color: var(--sk-surface); }
.assistant-filters { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; padding: 0; list-style: none; }
.assistant-filters li { padding: 3px 9px; border-radius: 999px; background: var(--sk-surface-alt); color: var(--sk-primary-strong); font-size: 12px; font-weight: 700; }
.assistant-results { display: grid; gap: 8px; }
.assistant-card { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; align-items: center; padding: 8px; border: 1px solid var(--sk-line); border-radius: 14px; background: var(--sk-surface); color: var(--sk-ink); text-decoration: none; }
.assistant-card:hover { border-color: var(--sk-primary); }
.assistant-card__cover { width: 64px; height: 52px; overflow: hidden; border-radius: 10px; background: linear-gradient(135deg, var(--sk-sky), var(--sk-accent-soft)); }
.assistant-card__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.assistant-card__body { display: grid; gap: 1px; min-width: 0; }
.assistant-card__body strong { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.assistant-card__body small { color: var(--sk-muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.assistant-card__body b { color: var(--sk-primary); font-size: 13px; }
.assistant-more { justify-self: start; color: var(--sk-primary); font-size: 13px; font-weight: 800; text-decoration: none; }
.assistant-more:hover { text-decoration: underline; }
.assistant-links { display: flex; flex-wrap: wrap; gap: 6px; }
.assistant-links a { padding: 6px 11px; border: 1px solid var(--sk-line); border-radius: 999px; background: var(--sk-surface); color: var(--sk-primary); font-size: 12px; font-weight: 700; text-decoration: none; }
.assistant-links a:hover { border-color: var(--sk-primary); }
.assistant-typing { display: inline-flex !important; gap: 4px; width: fit-content; }
.assistant-typing span { width: 7px; height: 7px; border-radius: 50%; background: var(--sk-muted); animation: assistant-dot 1s infinite ease-in-out; }
.assistant-typing span:nth-child(2) { animation-delay: .15s; }
.assistant-typing span:nth-child(3) { animation-delay: .3s; }
@keyframes assistant-dot { 0%, 80%, 100% { opacity: .3; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }
@media (prefers-reduced-motion: reduce) { .assistant-typing span { animation: none; } .assistant-fab { transition: none; } }
.assistant-hints { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 16px 10px; background: var(--sk-canvas); }
.assistant-hints button { padding: 7px 12px; border: 1px solid var(--sk-line); border-radius: 999px; background: var(--sk-surface); color: var(--sk-ink); font: 700 12px/1.3 var(--sk-font-body); cursor: pointer; text-align: left; }
.assistant-hints button:hover { border-color: var(--sk-primary); color: var(--sk-primary); }
.assistant-form { display: flex; gap: 8px; align-items: flex-end; padding: 12px; border-top: 1px solid var(--sk-line); background: var(--sk-surface); }
.assistant-form textarea { flex: 1; min-height: 44px; max-height: 120px; padding: 11px 14px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-control); background: var(--sk-canvas); color: var(--sk-ink); font: 500 14px/1.4 var(--sk-font-body); resize: none; field-sizing: content; }
.assistant-form textarea:focus { border-color: var(--sk-primary); outline: 3px solid var(--sk-focus); }
.assistant-send { display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; border: 0; border-radius: var(--sk-radius-control); background: var(--sk-accent); color: var(--sk-ink); cursor: pointer; }
.assistant-send svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.assistant-send:disabled { background: var(--sk-surface-alt); color: var(--sk-muted); cursor: default; }
.assistant-foot { margin: 0; padding: 0 14px 10px; background: var(--sk-surface); color: var(--sk-muted); font-size: 11px; line-height: 1.4; }
@media (max-width: 767px) {
    .assistant { right: 12px; --assistant-bottom: 12px; }
    body:has(.ad-sticky [data-tgb-state="filled"]) .assistant { --assistant-bottom: 108px; }
    body.has-compare-bar .assistant { --assistant-bottom: 150px; }
    .assistant-fab { width: 54px; padding: 0; justify-content: center; }
    .assistant-fab__label { display: none; }
    .assistant.is-open { inset: 0; right: 0; }
    .assistant-panel { width: 100%; height: 100%; border: 0; border-radius: 0; }
    body.assistant-open { overflow: hidden; }
}

/* Brand v3: the «с» arc with a door in its opening, lowercase wordmark. */
.brand { gap: 10px; color: var(--sk-ink); }
.brand__mark { flex-shrink: 0; width: 46px; height: 46px; padding: 0; border-radius: 0; background: none; overflow: visible; }
.brand__mark-arc { fill: none; stroke: var(--sk-accent); stroke-width: 6.5; stroke-linecap: round; }
.brand__mark-door { fill: var(--sk-primary); }
.brand__mark-knob { fill: var(--sk-accent); }
.brand:hover .brand__mark-door { fill: var(--sk-primary-strong); }
.brand__text { display: grid; }
.brand__name { font: 600 19px/1.1 var(--sk-font-display); letter-spacing: -.06em; color: var(--sk-ink); white-space: nowrap; }
.brand__c { color: var(--sk-accent-strong); }
.brand__sub { padding-top: 3px; color: var(--sk-muted); font: 600 10px/1.2 var(--sk-font-body); letter-spacing: .02em; }
@media (max-width: 900px) { .brand__mark { width: 40px; height: 40px; } .brand__name { font-size: 17px; } }
.brand__sub { white-space: nowrap; }

/* Home: four cards per row in the collections and the journal, no empty fourth column. */
.featured-collection__grid, .home-page .journal-teasers__grid, .journal-teasers__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
@media (max-width: 1180px) { .featured-collection__grid, .journal-teasers__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .featured-collection__grid, .journal-teasers__grid { grid-template-columns: 1fr; } }
.brand__mark-window { fill: var(--sk-primary); }
.brand__mark-frame { fill: none; stroke: var(--sk-sky); stroke-width: 1.8; }
.brand__mark-light { fill: var(--sk-accent); }
.brand:hover .brand__mark-window { fill: var(--sk-primary-strong); }

/* Assistant v2: chat column + map in the full-screen mode. */
.assistant-panel { flex-direction: row; }
.assistant-chat { flex: 1; display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.assistant-head__expand svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.assistant-actions { display: flex; flex-wrap: wrap; gap: 6px 16px; }
button.assistant-more { padding: 0; border: 0; background: none; font-family: inherit; cursor: pointer; }
.assistant-card.is-active { border-color: var(--sk-primary); box-shadow: 0 0 0 2px var(--sk-focus); }
.assistant-switch { display: none; }
.assistant-mapwrap { position: relative; flex: 1; display: flex; flex-direction: column; min-width: 0; background: var(--sk-sky); }
.assistant-map-head { position: absolute; top: 14px; left: 14px; z-index: 500; display: flex; gap: 10px; padding: 8px 14px; border-radius: 999px; background: var(--sk-surface); box-shadow: 0 8px 24px var(--sk-shadow); color: var(--sk-muted); font-size: 13px; font-weight: 700; }
.assistant-map-head strong { color: var(--sk-primary); }
.assistant-map-head span:empty { display: none; }
.assistant-map { flex: 1; min-height: 0; }
.assistant-pin { background: none; border: 0; }
.assistant-pin span { position: absolute; left: 0; top: 0; transform: translate(-50%, calc(-100% - 7px)); display: inline-block; padding: 5px 10px; border-radius: 999px; background: var(--sk-primary); color: var(--sk-surface); font: 800 12px/1.2 var(--sk-font-body); white-space: nowrap; box-shadow: 0 6px 16px color-mix(in srgb, var(--sk-ink) 28%, transparent); transition: background .12s, transform .12s; }
.assistant-pin span::after { content: ""; position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%); border: 6px solid transparent; border-bottom: 0; border-top-color: inherit; border-top-color: var(--sk-primary); }
.assistant-pin.is-active span, .assistant-pin:hover span { background: var(--sk-accent); color: var(--sk-ink); transform: translate(-50%, calc(-100% - 7px)) scale(1.08); }
.assistant-pin.is-active span::after, .assistant-pin:hover span::after { border-top-color: var(--sk-accent); }
.assistant-cluster { background: none; }
.assistant-cluster span { display: grid; place-items: center; width: 42px; height: 42px; border: 3px solid var(--sk-surface); border-radius: 50%; background: var(--sk-accent); color: var(--sk-ink); font: 800 14px/1 var(--sk-font-body); box-shadow: 0 6px 16px color-mix(in srgb, var(--sk-ink) 24%, transparent); }
.assistant-popup { display: grid; gap: 4px; font-family: var(--sk-font-body); }
.assistant-popup img { display: block; width: 100%; height: 120px; object-fit: cover; border-radius: 10px; margin-bottom: 4px; }
.assistant-popup__name { color: var(--sk-ink); font-weight: 800; font-size: 14px; text-decoration: none; }
.assistant-popup__name:hover { color: var(--sk-primary); }
.assistant-popup span { color: var(--sk-muted); font-size: 12px; }
.assistant-popup b { color: var(--sk-primary); font-size: 14px; }
.assistant-mapwrap .leaflet-popup-content-wrapper { border-radius: 14px; }
.assistant-mapwrap .leaflet-popup-content { margin: 10px; }
.assistant-mapwrap .leaflet-control-attribution { margin: 0 0 8px 8px; padding: 2px 8px; border-radius: 999px; background: color-mix(in srgb, var(--sk-surface) 82%, transparent); color: var(--sk-muted); font: 500 11px/1.6 var(--sk-font-body); }
.assistant-mapwrap .leaflet-control-attribution a { color: var(--sk-muted); text-decoration: none; }

.assistant.is-expanded { inset: 16px; }
.assistant.is-expanded::before { content: ""; position: fixed; inset: 0; z-index: -1; background: color-mix(in srgb, var(--sk-ink) 42%, transparent); }
.assistant.is-expanded .assistant-panel { width: 100%; height: 100%; }
.assistant.is-expanded .assistant-chat { flex: 0 0 440px; border-right: 1px solid var(--sk-line); }
body.assistant-expanded { overflow: hidden; }
@media (max-width: 900px) {
    .assistant.is-expanded { inset: 0; }
    .assistant.is-expanded .assistant-panel { border: 0; border-radius: 0; }
    .assistant.is-expanded .assistant-chat { flex: 1; border-right: 0; }
    .assistant.is-expanded .assistant-switch { display: flex; gap: 4px; margin: 10px 12px 0; padding: 4px; border-radius: 999px; background: var(--sk-surface-alt); }
    .assistant-switch button { flex: 1; min-height: 38px; border: 0; border-radius: 999px; background: none; color: var(--sk-ink); font: 800 13px var(--sk-font-body); cursor: pointer; }
    .assistant-switch button[aria-selected="true"] { background: var(--sk-surface); color: var(--sk-primary); box-shadow: 0 2px 8px var(--sk-shadow); }
    .assistant-switch small { margin-left: 4px; color: var(--sk-muted); }
    .assistant.is-expanded.shows-map .assistant-body, .assistant.is-expanded.shows-map .assistant-hints, .assistant.is-expanded.shows-map .assistant-form, .assistant.is-expanded.shows-map .assistant-foot { display: none; }
    .assistant.is-expanded.shows-map .assistant-chat { flex: 0 0 auto; }
    .assistant.is-expanded:not(.shows-map) .assistant-mapwrap { display: none !important; }
    .assistant.is-expanded .assistant-panel { flex-direction: column; }
}

/* Brand mark v3.1: whole-pixel arc and a 2×2 window of separate panes. */
.brand__mark-arc { stroke-width: 6; }
.brand__mark-pane { fill: var(--sk-primary); }
.brand__mark-light { fill: var(--sk-accent); }
.brand:hover .brand__mark-pane { fill: var(--sk-primary-strong); }

/* «Окошко» — the mascot and the assistant's face. */
.mascot { display: block; width: 48px; height: 48px; overflow: visible; }
.mascot__body { fill: var(--sk-primary); }
.mascot__pane { fill: var(--sk-sky); }
.mascot__lit { fill: var(--sk-accent); }
.mascot__eyes { fill: var(--sk-ink); transform-box: fill-box; transform-origin: center; animation: mascot-blink 5s infinite; }
.mascot__shine { fill: var(--sk-surface); opacity: .75; }
.mascot__smile { fill: none; stroke: var(--sk-ink); stroke-width: 3.2; stroke-linecap: round; }
.is-thinking .mascot__lit, .mascot.is-thinking .mascot__lit { animation: mascot-think .9s ease-in-out infinite alternate; }
.is-thinking .mascot__eyes { animation: mascot-look 1.8s ease-in-out infinite; }
@keyframes mascot-blink { 0%, 92%, 100% { transform: scaleY(1); } 95% { transform: scaleY(.12); } }
@keyframes mascot-think { from { opacity: .35; } to { opacity: 1; } }
@keyframes mascot-look { 0%, 100% { transform: translateX(0); } 30% { transform: translateX(-1.5px); } 70% { transform: translateX(1.5px); } }
@media (prefers-reduced-motion: reduce) { .mascot__eyes, .mascot__lit { animation: none !important; } }
.assistant-fab { padding-left: 8px; }
.assistant-fab__mascot { width: 40px; height: 40px; }
.assistant-fab__mascot .mascot__body { fill: var(--sk-surface); }
.assistant-head__avatar { width: 42px; height: 42px; padding: 0; background: none; }
.assistant-head__avatar .mascot { width: 42px; height: 42px; }
.assistant-head__avatar .mascot__body { fill: var(--sk-surface); }
.assistant-hello { display: flex; align-items: center; gap: 12px; }
.assistant-hello__mascot { width: 56px; height: 56px; }
.assistant-hello strong { font-family: var(--sk-font-display); font-weight: 500; font-size: 17px; letter-spacing: -.03em; color: var(--sk-ink); }
.assistant-msg--thinking { grid-template-columns: auto 1fr; align-items: center; }
.assistant-msg__face .mascot { width: 30px; height: 30px; }
@media (max-width: 767px) { .assistant-fab { padding: 0; } .assistant-fab__mascot { width: 42px; height: 42px; } }

/* Collections page: grouped rows, the mascot call, deadlines, places. */
.collections-stats { margin: 4px 0 8px; }
.collections-group { margin-top: 56px; padding-top: 28px; border-top: 1px solid var(--sk-line); }
.collections-group__title { margin: 0; color: var(--sk-accent-strong); font: 800 12px/1 var(--sk-font-body); letter-spacing: .14em; text-transform: uppercase; }
.collections-group .featured-collection:first-of-type { margin-top: 18px; }
.mascot-cta { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 36px; align-items: center; padding: 36px 40px; border-radius: var(--sk-radius-card); background: linear-gradient(135deg, var(--sk-surface-alt), var(--sk-accent-soft)); }
.mascot-cta__mascot { width: 180px; height: 180px; filter: drop-shadow(0 18px 30px color-mix(in srgb, var(--sk-primary) 28%, transparent)); }
.mascot-cta__text h2 { margin: 6px 0 10px; font: 500 clamp(24px, 2.6vw, 34px)/1.1 var(--sk-font-display); letter-spacing: -.045em; }
.mascot-cta__text p { margin: 0 0 18px; color: var(--sk-muted); max-width: 620px; }
.mascot-cta__asks { display: flex; flex-wrap: wrap; gap: 8px; }
.mascot-cta__asks button { min-height: 42px; padding: 0 16px; border: 1px solid var(--sk-line); border-radius: 999px; background: var(--sk-surface); color: var(--sk-ink); font: 700 13px var(--sk-font-body); cursor: pointer; }
.mascot-cta__asks button:hover { border-color: var(--sk-primary); color: var(--sk-primary); }
.mascot-cta__asks button.is-primary { border-color: var(--sk-primary); background: var(--sk-primary); color: var(--sk-surface); }
.deadline-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.deadline-card { display: grid; gap: 4px; padding: 20px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); color: var(--sk-ink); text-decoration: none; }
.deadline-card:hover { border-color: var(--sk-primary); }
.deadline-card strong { font: 500 26px/1 var(--sk-font-display); letter-spacing: -.04em; color: var(--sk-primary); }
.deadline-card span { color: var(--sk-muted); font-size: 13px; font-weight: 700; }
.deadline-card--now { background: var(--sk-accent-soft); border-color: transparent; }
.deadline-card--now strong { color: var(--sk-ink); font-size: 22px; }
.collections-places { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 980px) { .collections-places { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
    .mascot-cta { grid-template-columns: 1fr; justify-items: start; gap: 18px; padding: 24px; }
    .mascot-cta__mascot { width: 96px; height: 96px; }
}

/* «Окошко» v2: one glass, a curtain and a sill. */
.mascot { --mascot-frame: var(--sk-primary); }
.mascot__frame { fill: var(--mascot-frame); }
.mascot__glass { fill: var(--sk-sky); }
.mascot__curtain, .mascot__sill { fill: var(--sk-accent); }
.mascot__eyes { fill: var(--sk-ink); }
.mascot__glints { fill: var(--sk-surface); }
.mascot__cheeks { fill: var(--sk-accent); opacity: .45; }
.mascot__smile { fill: none; stroke: var(--sk-ink); stroke-width: 2.4; stroke-linecap: round; }
.mascot__glints, .mascot__eyes { transform-box: fill-box; transform-origin: center; }
.mascot__glints { animation: mascot-blink 5s infinite; }
.is-thinking .mascot__eyes, .is-thinking .mascot__glints { animation: mascot-look 1.8s ease-in-out infinite; }
.is-thinking .mascot__cheeks { animation: mascot-think .9s ease-in-out infinite alternate; }
.assistant-fab__mascot, .assistant-head__avatar .mascot { --mascot-frame: var(--sk-surface); }
.assistant-fab__mascot .mascot__body, .assistant-head__avatar .mascot__body { fill: none; }
@media (prefers-reduced-motion: reduce) { .mascot__glints, .mascot__cheeks { animation: none !important; } }

/* Guest short list. */
.nav-shortlist b { display: inline-grid; place-items: center; min-width: 20px; height: 20px; margin-left: 2px; padding: 0 6px; border-radius: 999px; background: var(--sk-accent); color: var(--sk-ink); font-size: 11px; }
.nav-shortlist b[hidden] { display: none; }
.guest-shortlist { padding-bottom: 80px; }
.guest-shortlist__mascot { width: 96px; height: 96px; }
.compare-empty .mascot-cta__asks { justify-content: center; }

/* Flat page v2: a large plan, the flat's own mortgage calculator, the mascot button. */
.lot-page .lot-decision { grid-template-columns: minmax(0, 1fr) 360px; }
.lot-page .lot-plan { display: grid; gap: 8px; }
.lot-page .lot-plan a { display: grid; place-items: center; min-height: 380px; padding: 20px; border-radius: var(--sk-radius-panel); background: var(--sk-surface); border: 1px solid var(--sk-line); }
.lot-page .lot-plan img { width: 100%; max-height: 560px; object-fit: contain; }
.lot-page .lot-plan--house a { padding: 0; overflow: hidden; }
.lot-page .lot-plan--house img { max-height: none; aspect-ratio: 4/3; object-fit: cover; }
.lot-ask { display: flex; align-items: center; gap: 12px; width: 100%; margin: 10px 0 4px; padding: 10px 14px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-panel); background: var(--sk-surface-alt); color: var(--sk-ink); font: inherit; text-align: left; cursor: pointer; }
.lot-ask:hover { border-color: var(--sk-primary); }
.lot-ask__mascot { width: 44px; height: 44px; flex-shrink: 0; }
.lot-ask span { display: grid; }
.lot-ask small { color: var(--sk-muted); font-weight: 600; }
.lot-calc { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr); gap: 16px; }
.lot-calc__controls { display: grid; gap: 18px; padding: 24px; border: 1px solid var(--sk-line); border-radius: var(--sk-radius-card); background: var(--sk-surface); }
.lot-calc__controls input[type=range] { width: 100%; accent-color: var(--sk-primary); }
.lot-calc__result { display: grid; align-content: start; gap: 8px; padding: 24px; border-radius: var(--sk-radius-card); background: var(--sk-surface-alt); }
.lot-calc__result > span { color: var(--sk-muted); font-weight: 700; font-size: 13px; }
.lot-calc__result > strong { font: 500 clamp(28px, 3vw, 38px)/1.1 var(--sk-font-display); letter-spacing: -.045em; color: var(--sk-primary); }
.lot-calc__result dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 8px 0 14px; }
.lot-calc__result dt { color: var(--sk-muted); font-size: 12px; font-weight: 700; }
.lot-calc__result dd { margin: 2px 0 0; font-weight: 800; font-size: 14px; }
@media (max-width: 980px) { .lot-page .lot-decision, .lot-calc { grid-template-columns: 1fr; } .lot-page .lot-plan a { min-height: 260px; } }
.building-save-actions .favorite-btn, .building-save-actions .compare-btn { margin-bottom: 0; }

/* Map page: side panel with the catalog's filters and the list, the map fills the rest. */
.map-page { display: grid; grid-template-columns: 400px minmax(0, 1fr); height: calc(100vh - 78px); min-height: 560px; border-top: 1px solid var(--sk-line); background: var(--sk-surface); }
.map-side { display: flex; flex-direction: column; min-height: 0; border-right: 1px solid var(--sk-line); background: var(--sk-canvas); }
.map-side__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 18px 8px; }
.map-side__title { margin: 0; font: 500 22px/1.1 var(--sk-font-display); letter-spacing: -.04em; }
.map-tabs { display: flex; gap: 4px; margin: 4px 18px 10px; padding: 4px; border-radius: 999px; background: var(--sk-surface-alt); }
.map-tabs button { flex: 1; display: inline-flex; justify-content: center; align-items: center; gap: 6px; min-height: 38px; border: 0; border-radius: 999px; background: none; color: var(--sk-ink); font: 800 13px var(--sk-font-body); cursor: pointer; }
.map-tabs button[aria-selected="true"] { background: var(--sk-surface); color: var(--sk-primary); box-shadow: 0 2px 8px var(--sk-shadow); }
.map-side__filters, .map-side__list { flex: 1; min-height: 0; overflow-y: auto; padding: 0 18px 18px; scrollbar-width: thin; }
.map-side__filters .catalog-filters { position: static; border: 0; padding: 0; background: none; box-shadow: none; }
.map-list__status { margin: 0 0 10px; color: var(--sk-muted); font-size: 13px; font-weight: 700; }
.map-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.map-item { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; align-items: center; padding: 8px; border: 1px solid var(--sk-line); border-radius: 14px; background: var(--sk-surface); color: var(--sk-ink); text-decoration: none; }
.map-item:hover, .map-item.is-active { border-color: var(--sk-primary); box-shadow: 0 0 0 2px var(--sk-focus); }
.map-item__cover { width: 96px; height: 72px; overflow: hidden; border-radius: 10px; background: linear-gradient(135deg, var(--sk-sky), var(--sk-accent-soft)); }
.map-item__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.map-item__body { display: grid; gap: 2px; min-width: 0; }
.map-item__body strong { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.map-item__body small { color: var(--sk-muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.map-item__body b { color: var(--sk-primary); font-size: 13px; }
.map-list__more { color: var(--sk-muted); font-size: 13px; }
.map-list__empty { display: grid; justify-items: center; gap: 10px; padding: 30px 10px; text-align: center; color: var(--sk-muted); }
.map-list__mascot { width: 72px; height: 72px; }
.map-stage { position: relative; min-width: 0; }
.map-canvas { position: absolute; inset: 0; background: var(--sk-sky); }
.map-stage__message { position: absolute; top: 14px; left: 50%; transform: translateX(-50%); z-index: 500; margin: 0; padding: 8px 14px; border-radius: 999px; background: var(--sk-surface); box-shadow: 0 8px 24px var(--sk-shadow); color: var(--sk-muted); font-size: 13px; font-weight: 700; }
.map-switch { display: none; }
.map-page ~ .ad-place, body:has(.map-page) .site-main > .ad-place:last-child { display: none; }
@media (max-width: 900px) {
    .map-page { grid-template-columns: 1fr; height: calc(100vh - 64px); }
    .map-side, .map-stage { grid-area: 1 / 1; }
    .map-side { border-right: 0; }
    .is-hidden-mobile { display: none !important; }
    .map-switch { position: fixed; left: 50%; bottom: 16px; z-index: 600; transform: translateX(-50%); display: flex; gap: 4px; padding: 4px; border-radius: 999px; background: var(--sk-ink); box-shadow: 0 10px 30px color-mix(in srgb, var(--sk-ink) 30%, transparent); }
    .map-switch button { min-height: 40px; padding: 0 18px; border: 0; border-radius: 999px; background: none; color: var(--sk-surface); font: 800 13px var(--sk-font-body); cursor: pointer; }
    .map-switch button.is-active { background: var(--sk-surface); color: var(--sk-ink); }
}
.assistant-typing[style*="none"] { display: none !important; }
.map-stage, .assistant-mapwrap { isolation: isolate; } @media (max-width: 900px) { body:has(.map-page) .assistant { --assistant-bottom: 76px; } }

/* «Окошко» v3: the logo with eyes in the two top panes, no mouth. */
.mascot .mascot__arc { fill: none; stroke: var(--sk-accent); stroke-width: 5.5; stroke-linecap: round; }
.mascot .mascot__pane { fill: var(--sk-primary); }
.mascot .mascot__lit { fill: var(--sk-accent); opacity: 1; animation: none; }
.mascot .mascot__eyes { fill: none; transform-box: fill-box; transform-origin: center; animation: mascot-blink 5s infinite; }
.mascot .mascot__white { fill: var(--sk-surface); }
.mascot .mascot__pupils { fill: var(--sk-ink); transform-box: fill-box; transform-origin: center; }
.is-thinking .mascot .mascot__pupils, .mascot.is-thinking .mascot__pupils { animation: mascot-look 1.6s ease-in-out infinite; }
.is-thinking .mascot .mascot__lit, .mascot.is-thinking .mascot__lit { animation: mascot-think .9s ease-in-out infinite alternate; }
.is-thinking .mascot .mascot__eyes { animation: none; }
/* On the purple button and chat header the mark sits on a white badge. */
.assistant-fab__mascot { padding: 3px; border-radius: 50%; background: var(--sk-surface); }
.assistant-head__avatar { padding: 3px; border-radius: 12px; background: var(--sk-surface); }
@media (prefers-reduced-motion: reduce) { .mascot .mascot__eyes, .mascot .mascot__pupils, .mascot .mascot__lit { animation: none !important; } }

/* «Окошко» v4: just the window with eyes — no arc, no badge, no caption. */
.assistant-fab { width: 64px; height: 64px; min-height: 0; padding: 0; border-radius: 0; background: none; box-shadow: none; }
.assistant-fab:hover { transform: translateY(-3px) rotate(-3deg); box-shadow: none; }
.assistant-fab__mascot { width: 64px; height: 64px; padding: 0; border-radius: 0; background: none; filter: drop-shadow(0 10px 18px color-mix(in srgb, var(--sk-primary) 40%, transparent)); }
.assistant-head__avatar { padding: 0; border-radius: 0; background: none; }
.assistant-head__avatar .mascot { width: 36px; height: 36px; }
.assistant-head__avatar .mascot__pane { fill: var(--sk-sky); }
@media (max-width: 767px) { .assistant-fab, .assistant-fab__mascot { width: 56px; height: 56px; } }
.status-overdue { background: var(--sk-warning-soft) !important; color: var(--sk-warning-ink) !important; }

/* Окошко on empty screens. */
.not-found__mascot { width: 120px; height: 120px; margin-bottom: 18px; }
.not-found__ask { margin-top: 24px; color: var(--sk-muted); display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.empty-state--mascot { display: grid; justify-items: center; text-align: center; }
.empty-state__mascot { width: 84px; height: 84px; margin-bottom: 6px; }
.empty-state__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 10px; }
.collections-group__title { color: var(--sk-primary); }

/* City switch in the header: МСК | СПБ. */
.header-city { display: inline-flex; flex-shrink: 0; gap: 2px; margin-left: 14px; padding: 3px; border-radius: 999px; background: var(--sk-cloud); }
.header-city a { display: inline-flex; align-items: center; min-height: 32px; padding: 0 11px; border-radius: 999px; color: var(--sk-muted); font: 800 12px/1 var(--sk-font-body); letter-spacing: .04em; text-decoration: none; }
.header-city a:hover { color: var(--sk-primary); }
.header-city a[aria-current] { background: var(--sk-ink); color: var(--sk-surface); }
.header-city a:focus-visible { outline: 3px solid var(--sk-focus); }
@media (max-width: 1100px) { .header-city { margin-left: 8px; } }
@media (max-width: 900px) { .header-city { margin-left: auto; margin-right: 8px; } .header-city a { min-height: 34px; padding: 0 10px; } }
@media (max-width: 480px) {
    .header-city { margin-right: 6px; padding: 2px; }
    .header-city a { min-height: 30px; padding: 0 8px; font-size: 11px; }
    .brand { gap: 7px; }
    .brand__name { font-size: 15px; }
    .brand__mark { width: 34px; height: 34px; }
}

/* Header: comparison and short list as icons with a count. */
.header-icons { display: flex; align-items: center; gap: 2px; flex-shrink: 0; margin-left: 8px; }
.nav-icon { position: relative; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: var(--sk-ink); text-decoration: none; }
.nav-icon:hover { background: var(--sk-cloud); color: var(--sk-primary); }
.nav-icon:focus-visible { outline: 3px solid var(--sk-focus); }
.nav-icon__svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nav-icon b { position: absolute; top: 3px; right: 1px; display: grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--sk-accent); color: var(--sk-ink); font: 800 10px/1 var(--sk-font-body); }
.nav-icon b[hidden] { display: none; }
.city-hero__topline { justify-content: flex-end; }
@media (max-width: 900px) { .header-icons { margin-left: 0; } .header-city { margin-right: 4px; } }
@media (max-width: 480px) { .nav-icon { width: 36px; height: 36px; } .nav-icon__svg { width: 19px; height: 19px; } }
/* A phone header: logo, city, two icons and the menu in one row. */
@media (max-width: 480px) { .site-header__row { gap: 4px; } .header-city { margin-right: 2px; } }
@media (max-width: 419px) { .brand__text { display: none; } }
/* A scrollable rate list takes keyboard focus (mortgage page). */
.rate-board__list:focus-visible { outline: 3px solid var(--sk-focus); outline-offset: 2px; }
