:root {
  --font-main: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --c-bg: #f8f9fc;
  --c-surface: #ffffff;
  --c-text: #111827;
  --c-text-2: #536079;
  --c-muted: #8a94a8;
  --c-line: #e7eaf0;
  --c-line-soft: #eef1f6;
  --c-primary: #3843ff;
  --c-primary-2: #5146ff;
  --c-primary-soft: #f0efff;
  --c-free: #39a953;
  --c-free-bg: #eaf7ed;
  --c-reserved: #f4a623;
  --c-reserved-bg: #fff4df;
  --c-sold: #ff4646;
  --c-sold-bg: #ffebeb;
  --c-disabled: #aab2c1;
  --c-disabled-bg: #f1f3f7;
  --c-promo: #6b4cff;
  --c-promo-bg: #eee9ff;
  --sidebar-width: 190px;
  --topbar-height: 68px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --shadow-card: 0 10px 32px rgba(23, 35, 79, .045);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { min-width: 320px; background: var(--c-bg); }
body { margin: 0; min-height: 100vh; font-family: var(--font-main); color: var(--c-text); background: var(--c-bg); font-size: 14px; }
button, input, select { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
svg.icon { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

.app { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); }
.app--sidebar-collapsed { --sidebar-width: 72px; }

.sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar-width); background: var(--c-surface); border-right: 1px solid var(--c-line); z-index: 40; display: flex; flex-direction: column; transition: width .2s ease; overflow: hidden; }
.sidebar__brand { height: var(--topbar-height); display: flex; align-items: center; justify-content: center; padding: 0 16px; border-bottom: 1px solid transparent; white-space: nowrap; overflow: hidden; }
.sidebar__brand-logo { display: block; flex: none; object-fit: contain; }
.sidebar__brand-logo--full { width: 148px; max-height: 44px; }
.sidebar__brand-logo--mark { display: none; width: 31px; max-height: 42px; }
.sidebar__logo-mark { width: 32px; height: 34px; position: relative; flex: none; }
.sidebar__logo-mark::before, .sidebar__logo-mark::after { content: ""; position: absolute; bottom: 0; border-radius: 5px 5px 2px 2px; background: linear-gradient(180deg,#6a66ff 0%,#2b3cff 100%); transform: skewY(-22deg); }
.sidebar__logo-mark::before { left: 2px; width: 11px; height: 14px; }
.sidebar__logo-mark::after { left: 12px; width: 11px; height: 25px; box-shadow: 10px 4px 0 #3544fb; }
.sidebar__nav { padding: 18px 16px; display: grid; gap: 4px; }
.sidebar__link { min-height: 48px; padding: 0 16px; display: flex; align-items: center; gap: 13px; color: #44506a; border-radius: 10px; white-space: nowrap; transition: background .15s, color .15s; }
.sidebar__link:hover { background: #f7f8fb; color: var(--c-primary); }
.sidebar__link--active { background: linear-gradient(90deg, #f1efff 0%, #f7f6ff 100%); color: var(--c-primary); }
.sidebar__link .icon { width: 18px; height: 18px; flex: none; }
.sidebar__footer { margin-top: auto; padding: 12px 20px 22px; border-top: 1px solid var(--c-line-soft); }
.sidebar__collapse { width: 100%; height: 42px; border: 0; background: transparent; color: var(--c-text-2); display: flex; align-items: center; gap: 12px; padding: 0 12px; white-space: nowrap; }
.sidebar__collapse .icon { width: 18px; transition: transform .2s; }
.app--sidebar-collapsed .sidebar__brand { padding: 0; }
.app--sidebar-collapsed .sidebar__brand-logo--full { display: none; }
.app--sidebar-collapsed .sidebar__brand-logo--mark { display: block; }
.app--sidebar-collapsed .sidebar__link-text,
.app--sidebar-collapsed .sidebar__collapse-text { opacity: 0; pointer-events: none; }
.app--sidebar-collapsed .sidebar__link { padding-left: 11px; justify-content: center; }
.app--sidebar-collapsed .sidebar__collapse { justify-content: center; }
.app--sidebar-collapsed .sidebar__collapse .icon { transform: rotate(180deg); }

.main-shell { grid-column: 2; min-width: 0; }
.topbar { height: var(--topbar-height); background: var(--c-surface); border-bottom: 1px solid var(--c-line); display: flex; align-items: center; padding: 0 28px; gap: 28px; position: sticky; top: 0; z-index: 30; }
.topbar__project { min-width: 260px; display: flex; align-items: center; gap: 8px; font-size: 17px; font-weight: 680; letter-spacing: -.3px; }
.topbar__project .icon { width: 16px; color: var(--c-text-2); }
.topbar__search { width: min(440px, 38vw); height: 38px; display: flex; align-items: center; gap: 10px; padding: 0 13px; border-radius: 8px; background: #f5f6f9; color: #8a94aa; }
.topbar__search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--c-text); min-width: 0; }
.topbar__search .icon { width: 17px; }
.topbar__hotkey { margin-left: auto; font-size: 12px; color: #98a1b2; }
.topbar__actions { margin-left: auto; display: flex; align-items: center; gap: 22px; }
.topbar__action { border: 0; background: transparent; color: #36425a; display: inline-flex; align-items: center; gap: 9px; padding: 8px 0; position: relative; }
.topbar__badge { position: absolute; right: -4px; top: 2px; min-width: 15px; height: 15px; padding: 0 4px; border-radius: 8px; background: #ff4141; color: #fff; font-size: 9px; display: grid; place-items: center; border: 2px solid #fff; }
.user-chip { display: flex; align-items: center; gap: 10px; }
.user-chip__avatar { width: 34px; height: 34px; border-radius: 50%; background: linear-gradient(145deg,#e7d5c2,#9ac1de); border: 2px solid #eef1f6; display: grid; place-items: center; font-weight: 700; color: #26334d; }
.user-chip__meta { line-height: 1.3; }
.user-chip__name { font-size: 13px; font-weight: 650; }
.user-chip__role { font-size: 11px; color: var(--c-muted); }

.page { padding: 22px 26px 28px; }
.button { min-height: 40px; border-radius: 8px; padding: 0 16px; border: 1px solid var(--c-line); background: #fff; color: var(--c-text); display: inline-flex; align-items: center; justify-content: center; gap: 9px; transition: .16s ease; }
.button:hover { border-color: #cfd4df; transform: translateY(-1px); }
.button--primary { color: #fff; border-color: transparent; background: linear-gradient(135deg,#5147ff 0%,#2f3cff 100%); box-shadow: 0 7px 16px rgba(56,67,255,.18); }
.button--ghost-primary { color: var(--c-primary); border-color: #d9dcff; }
.button--icon { width: 40px; padding: 0; }

.chessboard { min-width: 0; }
.chessboard__filters { display: grid; grid-template-columns: 135px 135px 135px 170px 190px 135px auto; gap: 22px; align-items: end; padding: 0 0 20px; }
.filter-field { min-width: 0; }
.filter-field__label { display: block; margin: 0 0 7px 2px; font-size: 11px; color: var(--c-text-2); }
.filter-field__control { height: 40px; border: 1px solid var(--c-line); border-radius: 8px; background: #fff; display: flex; align-items: center; overflow: hidden; box-shadow: 0 2px 4px rgba(14,24,53,.018); }
.filter-field__control select { width: 100%; height: 100%; padding: 0 36px 0 12px; border: 0; outline: 0; color: #27324a; background: transparent; appearance: none; }
.filter-field__control--select { position: relative; }
.filter-field__control--select::after { content: ""; position: absolute; right: 13px; top: 50%; width: 6px; height: 6px; border-right: 1.5px solid #68738a; border-bottom: 1.5px solid #68738a; transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.filter-range { display: grid; grid-template-columns: 1fr 1fr; }
.filter-range input { min-width: 0; width: 100%; height: 100%; border: 0; outline: 0; padding: 0 11px; color: #46516a; }
.filter-range input + input { border-left: 1px solid var(--c-line); }
.chessboard__more-filter { align-self: end; white-space: nowrap; }

.summary-bar { min-height: 54px; padding: 7px 16px; border: 1px solid var(--c-line-soft); background: #fff; border-radius: 14px; display: flex; align-items: center; gap: 14px; box-shadow: var(--shadow-card); }
.summary-chip { min-height: 38px; padding: 0 15px; border: 0; border-radius: 10px; background: #f5f6f9; color: #46516a; display: inline-flex; align-items: center; gap: 12px; }
.summary-chip__value { font-weight: 700; color: var(--c-primary); }
.summary-chip--free { background: var(--c-free-bg); color: #28863d; }
.summary-chip--reserved { background: var(--c-reserved-bg); color: #d67a00; }
.summary-chip--sold { background: var(--c-sold-bg); color: #eb2c2c; }
.summary-chip--disabled { background: var(--c-disabled-bg); color: #687286; }
.summary-chip--free .summary-chip__value { color: #237e36; }
.summary-chip--reserved .summary-chip__value { color: #d87200; }
.summary-chip--sold .summary-chip__value { color: #ef3434; }
.summary-chip--disabled .summary-chip__value { color: #667085; }
.summary-bar__reset { margin-left: auto; border: 0; background: transparent; color: #98a1b2; padding: 8px 4px; }

.chessboard__workspace { display: grid; grid-template-columns: minmax(620px, 1fr) 440px; gap: 26px; margin-top: 6px; min-height: 730px; }
.chessboard-grid { min-width: 0; display: flex; flex-direction: column; padding-top: 9px; overflow: hidden; }
.chessboard-grid__scroll { min-width: 0; overflow-x: auto; overflow-y: hidden; padding-bottom: 8px; scrollbar-width: thin; }
.chessboard-grid__table { min-width: 810px; display: grid; grid-template-columns: 30px repeat(18, minmax(29px, 1fr)); column-gap: 8px; row-gap: 5px; align-items: center; }
.chessboard-grid__section { grid-column: span 6; text-align: center; font-weight: 650; color: #253048; padding: 2px 0 1px; }
.chessboard-grid__unit { font-size: 12px; text-align: center; color: #31405a; padding-bottom: 5px; }
.chessboard-grid__floor { font-size: 12px; text-align: center; color: #2f3a50; }
.apartment-cell { position: relative; height: 22px; min-width: 28px; border-radius: 4px; border: 1px solid transparent; padding: 0; font-size: 11px; display: grid; place-items: center; color: #308046; background: var(--c-free-bg); transition: transform .12s, box-shadow .12s, border-color .12s; }
.apartment-cell:hover { transform: translateY(-1px) scale(1.02); box-shadow: 0 4px 10px rgba(33,48,91,.12); z-index: 2; }
.apartment-cell--reserved { color: #d47a00; background: var(--c-reserved-bg); border-color: #ffd58c; }
.apartment-cell--sold { color: #e83b3b; background: var(--c-sold-bg); border-color: #ffbcbc; }
.apartment-cell--disabled { color: #8a94a7; background: var(--c-disabled-bg); }
.apartment-cell--promo { color: var(--c-primary); background: var(--c-promo-bg); border-color: #765cff; }
.apartment-cell--active { border: 2px solid var(--c-primary); color: var(--c-primary); background: #eeedff; box-shadow: 0 0 0 2px rgba(56,67,255,.1); }
.apartment-cell__dot { position: absolute; top: 2px; right: 3px; width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: .75; }

.chessboard-grid__footer { margin-top: auto; min-height: 57px; display: flex; align-items: center; gap: 23px; border-top: 1px solid var(--c-line-soft); padding: 13px 0 4px 2px; }
.legend { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.legend__item { display: inline-flex; align-items: center; gap: 8px; color: #68738b; font-size: 12px; }
.legend__dot { width: 11px; height: 11px; border-radius: 50%; }
.legend__dot--free { background: var(--c-free); }
.legend__dot--reserved { background: var(--c-reserved); }
.legend__dot--sold { background: var(--c-sold); }
.legend__dot--disabled { background: #c8cdd8; }
.legend__dot--promo { background: var(--c-promo); }
.view-switcher { margin-left: auto; display: flex; align-items: center; gap: 10px; color: #68738b; font-size: 12px; }
.view-switcher__controls { display: inline-flex; padding: 3px; background: #f5f6f9; border-radius: 8px; }
.view-switcher__button { width: 34px; height: 31px; border: 0; background: transparent; color: #8791a5; border-radius: 6px; display: grid; place-items: center; }
.view-switcher__button--active { background: #fff; color: var(--c-primary); box-shadow: 0 2px 7px rgba(22,34,68,.08); }
.view-switcher__button .icon { width: 16px; }

.apartment-panel { align-self: stretch; margin-top: 0; background: #fff; border: 1px solid var(--c-line); border-radius: 16px; box-shadow: var(--shadow-card); overflow: hidden; position: relative; min-width: 0; }
.apartment-panel__inner { height: 100%; display: flex; flex-direction: column; padding: 16px 16px 18px; }
.apartment-panel__topline { display: flex; align-items: center; min-height: 32px; gap: 10px; }
.status-badge { min-height: 28px; padding: 0 13px; border-radius: 8px; display: inline-flex; align-items: center; font-size: 12px; font-weight: 600; }
.status-badge--free { color: #26833a; background: var(--c-free-bg); }
.status-badge--reserved { color: #d17400; background: var(--c-reserved-bg); }
.status-badge--sold { color: #e93434; background: var(--c-sold-bg); }
.status-badge--disabled { color: #697286; background: var(--c-disabled-bg); }
.apartment-panel__id { margin-left: auto; font-size: 11px; color: #8892a7; }
.apartment-panel__icon-button { width: 28px; height: 28px; padding: 0; border: 0; background: transparent; color: #44516a; display: grid; place-items: center; }
.apartment-panel__icon-button .icon { width: 16px; height: 16px; }
.apartment-panel__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-top: 10px; }
.apartment-panel__title { margin: 0; font-size: 21px; line-height: 1.25; letter-spacing: -.45px; }
.apartment-panel__meta { margin-top: 8px; color: #69748b; font-size: 12px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.apartment-panel__meta-separator { width: 3px; height: 3px; background: #9aa3b3; border-radius: 50%; }
.apartment-panel__plan { height: 220px; padding: 16px 16px 8px; display: flex; align-items: center; justify-content: center; }
.apartment-panel__plan img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.apartment-panel__stats { border: 1px solid var(--c-line-soft); border-radius: 12px; display: grid; grid-template-columns: 1fr 1.2fr .9fr; padding: 17px 15px; }
.stat-card__label { color: #7d8799; font-size: 11px; margin-bottom: 10px; }
.stat-card__value { color: #111827; font-weight: 680; font-size: 16px; white-space: nowrap; }
.stat-card__value--large { font-size: 20px; letter-spacing: -.5px; }
.apartment-panel__price { margin-top: 10px; padding: 13px 15px; min-height: 67px; border-radius: 11px; background: linear-gradient(90deg,#eff9f0 0%,#f8fbf8 100%); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.apartment-panel__price-label { color: #4b9b5d; font-size: 11px; margin-bottom: 5px; }
.apartment-panel__price-value { font-size: 22px; font-weight: 720; color: #24823a; letter-spacing: -.5px; }
.apartment-panel__discount { text-align: right; color: #252f45; font-size: 11px; line-height: 1.8; }
.apartment-panel__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.apartment-panel__edit-button { width: 100%; margin-top: 10px; }
.apartment-panel__edit-button[hidden] { display: none; }
.apartment-panel__details { margin: 8px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--c-line-soft); }
.apartment-panel__detail { display: flex; justify-content: space-between; gap: 20px; min-height: 27px; align-items: center; border-bottom: 1px solid var(--c-line-soft); font-size: 11px; }
.apartment-panel__detail-label { color: #778197; }
.apartment-panel__detail-value { color: #202a3f; text-align: right; font-weight: 550; }
.apartment-panel__history { margin-top: auto; min-height: 54px; border: 0; background: transparent; color: var(--c-primary); font-weight: 600; display: flex; align-items: center; justify-content: space-between; padding: 14px 4px 2px; }
.apartment-panel__history .icon { width: 16px; }

.toast { position: fixed; right: 24px; bottom: 24px; background: #1e293b; color: #fff; padding: 13px 16px; border-radius: 10px; box-shadow: 0 12px 30px rgba(18,26,45,.24); z-index: 80; opacity: 0; transform: translateY(12px); pointer-events: none; transition: .2s ease; }
.toast--visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1400px) {
  :root { --sidebar-width: 172px; }
  .chessboard__filters { grid-template-columns: repeat(3, minmax(120px, 1fr)) repeat(2, minmax(155px, 1fr)) 135px auto; gap: 12px; }
  .chessboard__workspace { grid-template-columns: minmax(570px, 1fr) 390px; gap: 16px; }
  .apartment-panel__plan { height: 190px; }
}

@media (max-width: 1180px) {
  .app { --sidebar-width: 72px; }
  .sidebar__brand { padding: 0; }
  .sidebar__brand-logo--full { display: none; }
  .sidebar__brand-logo--mark { display: block; }
  .sidebar__link-text, .sidebar__collapse-text { display: none; }
  .sidebar__link { justify-content: center; padding: 0; }
  .topbar__project { min-width: 210px; }
  .topbar__action-text { display: none; }
  .page { padding: 18px; }
  .chessboard__filters { grid-template-columns: repeat(4, minmax(130px, 1fr)); }
  .chessboard__more-filter { grid-column: span 1; }
  .chessboard__workspace { grid-template-columns: minmax(560px, 1fr) 360px; }
}

@media (max-width: 960px) {
  .topbar { padding: 0 18px; gap: 15px; }
  .topbar__project { min-width: 0; }
  .topbar__search { flex: 1; width: auto; }
  .topbar__actions { gap: 12px; }
  .user-chip__meta { display: none; }
  .chessboard__workspace { grid-template-columns: 1fr; }
  .apartment-panel { position: fixed; z-index: 60; top: 78px; right: 14px; bottom: 14px; width: min(420px, calc(100vw - 100px)); box-shadow: 0 25px 60px rgba(24,35,65,.18); transform: translateX(calc(100% + 30px)); transition: transform .22s ease; }
  .apartment-panel--open { transform: translateX(0); }
  .chessboard-grid { min-height: 710px; }
}

@media (max-width: 680px) {
  .app { display: block; }
  .sidebar { transform: translateX(-100%); width: 260px; transition: transform .2s; box-shadow: 12px 0 40px rgba(17,24,39,.12); }
  .sidebar--mobile-open { transform: translateX(0); }
  .main-shell { margin-left: 0; }
  .topbar { height: 60px; padding: 0 12px; }
  .topbar__project { font-size: 14px; }
  .topbar__search { display: none; }
  .topbar__actions { margin-left: auto; }
  .topbar__action:nth-child(1) { display: none; }
  .page { padding: 12px; }
  .chessboard__filters { grid-template-columns: 1fr 1fr; gap: 10px; }
  .filter-field--wide { grid-column: span 2; }
  .summary-bar { overflow-x: auto; align-items: stretch; }
  .summary-chip { white-space: nowrap; }
  .summary-bar__reset { display: none; }
  .chessboard-grid__table { min-width: 820px; }
  .legend { gap: 12px; }
  .view-switcher__label { display: none; }
  .apartment-panel { top: 70px; right: 8px; bottom: 8px; width: calc(100vw - 16px); }
}

/* ===== Shared primitives: additional screens ===== */
.topbar--actions-only { justify-content: flex-end; }
.topbar--actions-only .topbar__actions { margin-left: 0; }
.page-heading { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.page-heading__title { margin: 0; font-size: 30px; line-height: 1.2; letter-spacing: -.8px; }
.page-heading__title-group { display: flex; align-items: center; gap: 16px; }
.breadcrumbs { min-height: 26px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: #798398; font-size: 12px; margin-bottom: 14px; }
.breadcrumbs a:hover { color: var(--c-primary); }
.breadcrumbs span { color: #2b354b; font-weight: 600; }
.breadcrumbs .icon { width: 13px; height: 13px; color: #a3abbb; }
.status-badge--primary { color: var(--c-primary); background: var(--c-primary-soft); }
.button--secondary { color: var(--c-primary); background: #fff; border-color: #dfe2ed; }
.button--secondary:hover { border-color: #bfc5ff; background: #fafaff; }
.icon-button { width: 40px; height: 40px; flex: none; padding: 0; border: 1px solid var(--c-line); border-radius: 8px; background: #fff; color: #37445d; display: inline-grid; place-items: center; transition: .15s ease; }
.icon-button:hover { color: var(--c-primary); border-color: #cbd0ff; background: #fafaff; }
.icon-button .icon { width: 17px; height: 17px; }
.icon-button--borderless { border-color: transparent; background: transparent; }
.text-button { border: 0; background: transparent; color: var(--c-primary); font-size: 12px; font-weight: 600; padding: 4px; }
.property-list { margin: 0; }
.property-list > div { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--c-line-soft); font-size: 12px; }
.property-list > div:last-child { border-bottom: 0; }
.property-list dt { color: #798398; }
.property-list dd { margin: 0; color: #1e293b; font-weight: 600; text-align: right; }

/* ===== Floor plan ===== */
.floor-page { padding-top: 18px; }
.floor-page__heading { margin-bottom: 18px; }
.floor-toolbar { display: flex; align-items: center; gap: 10px; }
.zoom-control { height: 40px; border: 1px solid var(--c-line); border-radius: 8px; overflow: hidden; background: #fff; display: grid; grid-template-columns: 42px 64px 42px; }
.zoom-control button { border: 0; background: transparent; color: #27334b; font-size: 20px; }
.zoom-control button:hover { background: #f7f8fb; }
.zoom-control output { border-left: 1px solid var(--c-line); border-right: 1px solid var(--c-line); display: grid; place-items: center; color: #38445b; font-size: 12px; font-weight: 600; }
.floor-context { height: 70px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--c-line); border-radius: 12px; background: #fff; overflow: hidden; margin-bottom: 18px; box-shadow: var(--shadow-card); }
.floor-context__item { min-width: 0; border: 0; border-right: 1px solid var(--c-line-soft); background: transparent; padding: 0 18px; display: flex; align-items: center; gap: 12px; text-align: left; }
.floor-context__item:last-child { border-right: 0; }
.floor-context__item:hover { background: #fafbff; }
.floor-context__item > .icon:last-child { width: 15px; margin-left: auto; color: #818ba0; }
.floor-context__icon { width: 34px; height: 34px; border-radius: 8px; display: grid; place-items: center; color: var(--c-primary); background: var(--c-primary-soft); }
.floor-context__icon .icon { width: 19px; height: 19px; }
.floor-context__item small { display: block; color: #8b94a8; font-size: 11px; margin-bottom: 5px; }
.floor-context__item strong { display: block; color: #182238; font-size: 14px; }
.floor-page__workspace { display: grid; grid-template-columns: minmax(620px, 1fr) 400px; gap: 28px; min-height: 700px; }
.floor-viewer { min-width: 0; position: relative; display: grid; grid-template-columns: 62px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; gap: 0 20px; }
.floor-selector { align-self: start; background: #fff; border: 1px solid var(--c-line); border-radius: 10px; overflow: hidden; }
.floor-selector__label { height: 46px; display: grid; place-items: center; color: #7b8497; font-size: 12px; border-bottom: 1px solid var(--c-line); }
.floor-selector__button { width: 100%; height: 44px; border: 0; border-bottom: 1px solid var(--c-line-soft); background: #fff; color: #27334a; font-weight: 600; }
.floor-selector__button:last-child { border-bottom: 0; }
.floor-selector__button:hover { background: #f7f8ff; color: var(--c-primary); }
.floor-selector__button--active { color: #fff; background: linear-gradient(135deg,#5147ff,#2f3cff); }
.floor-selector__button--active:hover { color: #fff; background: linear-gradient(135deg,#5147ff,#2f3cff); }
.floor-canvas { min-width: 0; overflow: auto; display: flex; align-items: center; justify-content: center; padding: 12px 6px 20px; scrollbar-width: thin; }
.floor-canvas__stage { width: min(100%, 780px); position: relative; transform-origin: center; transition: transform .18s ease; }
.floor-canvas__image { width: 100%; height: auto; user-select: none; pointer-events: none; }
.floor-hotspot { position: absolute; border: 0; background: transparent; border-radius: 4px; outline: 0; transition: box-shadow .15s, background .15s; }
.floor-hotspot:hover { background: rgba(56,67,255,.07); box-shadow: inset 0 0 0 3px rgba(56,67,255,.5); }
.floor-hotspot--selected { box-shadow: inset 0 0 0 4px #10131a, 0 0 0 2px #ffd25c; }
.floor-hotspot--1201 { left: .5%; top: 3.5%; width: 26.3%; height: 29.7%; }
.floor-hotspot--1202 { left: 27.2%; top: .5%; width: 20.2%; height: 32.4%; }
.floor-hotspot--1203 { left: 47.5%; top: 3.5%; width: 22.2%; height: 29.3%; }
.floor-hotspot--1204 { left: 69.8%; top: 3.5%; width: 28.8%; height: 29.3%; }
.floor-hotspot--1205 { left: 77.4%; top: 28.2%; width: 21.5%; height: 28.2%; }
.floor-hotspot--1206 { left: 68.4%; top: 69.4%; width: 28.3%; height: 28.2%; }
.floor-hotspot--1207 { left: 46.1%; top: 69.5%; width: 22.3%; height: 28.1%; }
.floor-hotspot--1208 { left: 26.1%; top: 69.4%; width: 20%; height: 28.2%; }
.floor-hotspot--1209 { left: .5%; top: 69.4%; width: 25.5%; height: 28.2%; }
.floor-hotspot--1210 { left: .4%; top: 52%; width: 12%; height: 17.5%; }
.floor-viewer__footer { grid-column: 1 / -1; display: flex; align-items: end; justify-content: space-between; gap: 20px; min-height: 88px; padding-top: 12px; }
.legend--counts { gap: 26px; }
.legend--counts .legend__item { align-items: flex-start; }
.legend--counts .legend__item > span { display: grid; gap: 6px; color: #68738b; }
.legend--counts small { color: #303b52; font-weight: 600; }
.floor-minimap { position: relative; width: 142px; height: 92px; padding: 10px; border: 1px solid var(--c-line); border-radius: 10px; background: #fff; overflow: hidden; }
.floor-minimap img { width: 100%; height: 100%; object-fit: contain; opacity: .62; }
.floor-minimap span { position: absolute; right: 18px; top: 22px; width: 48px; height: 45px; border: 2px solid var(--c-primary); background: rgba(56,67,255,.08); }
.apartment-panel--floor { min-height: 700px; }
.apartment-panel--floor .apartment-panel__favorite { position: absolute; top: 64px; right: 17px; width: 32px; height: 32px; border: 0; background: transparent; color: #37445d; display: grid; place-items: center; }
.apartment-panel--floor .apartment-panel__favorite .icon { width: 20px; }
.apartment-panel--floor .apartment-panel__title { margin-top: 12px; }
.apartment-panel__meta > i { width: 4px; height: 4px; border-radius: 50%; background: #a3aaba; }
.apartment-panel__plan--floor { height: 255px; padding-top: 22px; }
.apartment-panel__metrics { margin: 0; padding: 15px 0; border-top: 1px solid var(--c-line-soft); border-bottom: 1px solid var(--c-line-soft); display: grid; grid-template-columns: 1fr 1.2fr .8fr; }
.apartment-panel__metrics > div { padding: 0 12px; border-right: 1px solid var(--c-line-soft); }
.apartment-panel__metrics > div:last-child { border-right: 0; }
.apartment-panel__metrics dt { color: #8992a4; font-size: 11px; margin-bottom: 9px; }
.apartment-panel__metrics dd { margin: 0; font-weight: 700; font-size: 16px; white-space: nowrap; }
.apartment-panel--floor .apartment-panel__discount { margin-top: 10px; min-height: 68px; border-radius: 10px; padding: 12px 14px; background: linear-gradient(90deg,#eff9f0,#f8fbf8); display: flex; align-items: center; justify-content: space-between; text-align: left; }
.apartment-panel--floor .apartment-panel__discount > div { display: grid; gap: 5px; }
.apartment-panel--floor .apartment-panel__discount > div:last-child { text-align: right; }
.apartment-panel--floor .apartment-panel__discount span { color: #4b8f59; font-size: 11px; }
.apartment-panel--floor .apartment-panel__discount strong { color: #258239; font-size: 21px; }
.apartment-panel--floor .apartment-panel__discount b { color: #2c354a; font-size: 11px; }
.apartment-panel--floor .property-list { margin-top: 8px; }

/* ===== Deals list ===== */
.deals-page { padding: 26px 40px 30px; }
.deals-toolbar { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--c-line); }
.tabs { display: flex; align-items: stretch; gap: 28px; height: 72px; }
.tabs__button { position: relative; border: 0; background: transparent; color: #49566e; padding: 0 2px; min-width: 52px; font-weight: 550; }
.tabs__button::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: transparent; }
.tabs__button:hover { color: var(--c-primary); }
.tabs__button--active { color: var(--c-primary); }
.tabs__button--active::after { background: var(--c-primary); }
.deals-toolbar__actions { display: flex; align-items: center; gap: 18px; }
.deals-toolbar__actions .button { min-width: 146px; height: 46px; font-size: 15px; }
.deal-table { margin-top: 22px; min-width: 0; }
.deal-table__head, .deal-row { display: grid; grid-template-columns: 135px minmax(190px,1.1fr) minmax(155px,1fr) 170px 150px 130px 42px; align-items: center; column-gap: 18px; }
.deal-table__head { min-height: 48px; padding: 0 26px; color: #59667e; font-size: 13px; }
.deal-table__body { display: grid; gap: 0; }
.deal-row { min-height: 78px; padding: 0 26px; border: 1px solid var(--c-line); background: #fff; border-radius: 12px; margin-bottom: -1px; cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .15s; }
.deal-row:hover, .deal-row:focus-visible { position: relative; z-index: 2; border-color: #cfd4ff; box-shadow: 0 7px 20px rgba(35,48,98,.07); outline: 0; transform: translateY(-1px); }
.deal-row[hidden] { display: none; }
.deal-row__cell { min-width: 0; color: #172137; font-size: 14px; }
.deal-row__cell--apartment, .deal-row__cell--amount { font-weight: 650; }
.deal-row__cell--menu { text-align: right; }
.deal-status { min-height: 28px; width: max-content; max-width: 100%; padding: 0 12px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; white-space: nowrap; }
.deal-status--new { color: #44506a; background: #f0f2f6; }
.deal-status--reserved { color: #27843a; background: var(--c-free-bg); }
.deal-status--work { color: #3971cb; background: #edf3ff; }
.deal-status--success { color: #27843a; background: var(--c-free-bg); }
.deal-status--cancel { color: #f03434; background: var(--c-sold-bg); }
.deal-status--promo { color: #6542ee; background: #eeeaff; }
.deals-page__footer { min-height: 82px; display: flex; align-items: center; justify-content: space-between; color: #526079; }
.pagination { display: flex; align-items: center; gap: 10px; }
.pagination button { width: 44px; height: 44px; border: 1px solid var(--c-line); border-radius: 8px; background: #fff; color: #172137; display: grid; place-items: center; }
.pagination button:hover { border-color: #c9ceff; color: var(--c-primary); }
.pagination__button--active { color: var(--c-primary) !important; background: #f1efff !important; border-color: transparent !important; }
.pagination .icon { width: 16px; }

/* ===== Deal detail ===== */
.deal-page { padding-top: 18px; }
.deal-heading { min-height: 70px; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.deal-heading__title { display: flex; align-items: center; gap: 16px; }
.deal-heading h1 { margin: 0; font-size: 26px; line-height: 1.25; letter-spacing: -.65px; }
.deal-heading p { margin: 6px 0 0; color: #818b9f; font-size: 12px; }
.deal-heading__actions { display: flex; align-items: center; gap: 12px; }
.deal-heading__actions .button--primary { min-width: 225px; }
.deal-layout { display: grid; grid-template-columns: minmax(330px, .85fr) minmax(440px, 1.2fr) minmax(350px, .92fr); gap: 18px; align-items: start; }
.deal-layout__left, .deal-layout__center { display: grid; gap: 18px; }
.detail-card { background: #fff; border: 1px solid var(--c-line); border-radius: 12px; box-shadow: var(--shadow-card); }
.detail-card h2 { margin: 0; font-size: 14px; letter-spacing: -.2px; }
.apartment-summary-card { min-height: 205px; padding: 18px; display: grid; grid-template-columns: 115px minmax(0,1fr); gap: 18px; }
.apartment-summary-card__image { display: flex; align-items: center; justify-content: center; border-right: 1px solid var(--c-line-soft); padding-right: 16px; }
.apartment-summary-card__image img { width: 100%; height: 135px; object-fit: contain; mix-blend-mode: multiply; }
.apartment-summary-card__title { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.apartment-summary-card__title h2 { font-size: 17px; }
.apartment-summary-card__content > p { margin: 10px 0 16px; color: #778197; font-size: 11px; line-height: 1.45; }
.apartment-summary-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 13px 14px; margin: 0; }
.apartment-summary-card dl > div { min-width: 0; }
.apartment-summary-card dt { color: #8891a4; font-size: 10px; margin-bottom: 6px; }
.apartment-summary-card dd { margin: 0; font-size: 14px; font-weight: 700; }
.apartment-summary-card__price { padding: 8px 10px; border-radius: 8px; background: #eff8f0; }
.apartment-summary-card__price dt { color: #4c955b; }
.apartment-summary-card__price dd { color: #25823a; }
.client-card, .conditions-card { padding: 16px; }
.client-card__head { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 14px 0 15px; }
.client-card__avatar { width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(135deg,#554aff,#2f3cff); color: #fff; display: grid; place-items: center; font-weight: 700; }
.client-card__head strong { display: block; margin-bottom: 5px; }
.client-card__head a { display: block; color: #6f7b91; font-size: 11px; line-height: 1.55; }
.client-card__actions { display: flex; gap: 7px; }
.client-card__actions .icon-button { width: 34px; height: 34px; }
.conditions-card h2 { margin-bottom: 10px; }
.stage-card { padding: 18px 16px 0; }
.deal-stages { list-style: none; margin: 0; padding: 0 0 18px; display: grid; grid-template-columns: repeat(6,1fr); position: relative; }
.deal-stages::before { content: ""; position: absolute; left: 7%; right: 7%; top: 12px; height: 1px; background: #dfe3ec; }
.deal-stages__item { position: relative; text-align: center; display: grid; justify-items: center; gap: 7px; color: #758096; font-size: 10px; }
.deal-stages__item > span { width: 24px; height: 24px; border-radius: 50%; border: 1px solid #d6dbe6; background: #fff; display: grid; place-items: center; color: #8e97aa; font-size: 10px; z-index: 1; }
.deal-stages__item > b { font-weight: 600; }
.deal-stages__item small { color: #7d8799; font-size: 9px; }
.deal-stages__item--active { color: var(--c-primary); }
.deal-stages__item--active > span { color: #fff; border-color: var(--c-primary); background: var(--c-primary); box-shadow: 0 0 0 4px rgba(56,67,255,.08); }
.deal-overview { min-height: 88px; margin: 0 -16px; padding: 18px 20px; border-top: 1px solid var(--c-line-soft); display: grid; grid-template-columns: 1.15fr .8fr 1fr; }
.deal-overview > div { padding: 0 18px; border-right: 1px solid var(--c-line-soft); }
.deal-overview > div:first-child { padding-left: 0; }
.deal-overview > div:last-child { border-right: 0; padding-right: 0; }
.deal-overview span { display: block; color: #8992a4; font-size: 10px; margin-bottom: 9px; }
.deal-overview strong { font-size: 22px; }
.deal-overview strong small { font-size: 13px; font-weight: 500; }
.finance-card, .documents-card { overflow: hidden; }
.finance-card > header, .documents-card > header { min-height: 54px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--c-line-soft); }
.finance-table { font-size: 11px; }
.finance-table__head, .finance-table__row { min-height: 42px; padding: 0 16px; display: grid; grid-template-columns: 1.25fr 1fr 1fr 1fr; gap: 12px; align-items: center; border-bottom: 1px solid var(--c-line-soft); }
.finance-table__head { color: #8390a5; min-height: 38px; }
.finance-table__row:last-child { border-bottom: 0; }
.finance-table__row b { font-weight: 600; }
.finance-table .deal-status { min-height: 24px; padding: 0 8px; font-size: 10px; }
.document-row { min-height: 68px; margin: 0 14px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto 34px 34px; gap: 10px; align-items: center; border-bottom: 1px solid var(--c-line-soft); }
.document-row__icon { width: 32px; height: 32px; border-radius: 8px; display: grid; place-items: center; color: var(--c-primary); background: var(--c-primary-soft); }
.document-row__icon .icon { width: 17px; }
.document-row strong { display: block; font-size: 11px; margin-bottom: 5px; }
.document-row small { display: block; color: #8a94a8; font-size: 9px; }
.document-row .icon-button { width: 32px; height: 32px; }
.document-row .deal-status { min-height: 23px; padding: 0 8px; font-size: 9px; }
.documents-card__add { margin: 12px 14px 14px; }
.activity-panel { position: sticky; top: calc(var(--topbar-height) + 18px); min-height: 760px; overflow: hidden; }
.activity-panel__tabs { height: 54px; display: grid; grid-template-columns: repeat(4,1fr); border-bottom: 1px solid var(--c-line); }
.activity-panel__tab { position: relative; border: 0; background: transparent; color: #5e6a80; font-size: 12px; }
.activity-panel__tab--active { color: var(--c-primary); }
.activity-panel__tab--active::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; background: var(--c-primary); }
.timeline { max-height: 650px; padding: 16px 15px 70px; overflow-y: auto; scrollbar-width: thin; }
.timeline__date { width: max-content; margin: 0 auto 14px; padding: 6px 15px; border-radius: 16px; background: #f4f5f8; color: #69758b; font-size: 10px; }
.timeline__event { position: relative; display: grid; grid-template-columns: 48px 12px minmax(0,1fr); gap: 9px; align-items: start; min-height: 76px; }
.timeline__event time { padding-top: 12px; color: #718097; font-size: 10px; text-align: right; }
.timeline__event > i { position: relative; width: 10px; height: 10px; margin-top: 13px; border: 2px solid #6f7c96; border-radius: 50%; background: #fff; }
.timeline__event > i::after { content: ""; position: absolute; top: 9px; left: 2px; width: 1px; height: 65px; background: #dde2ea; }
.timeline__event:last-child > i::after { display: none; }
.timeline__event > div { min-height: 58px; padding: 12px 13px; border: 1px solid var(--c-line); border-radius: 9px; background: #fff; box-shadow: 0 3px 10px rgba(29,41,78,.025); }
.timeline__event strong { display: block; font-size: 11px; margin-bottom: 7px; }
.timeline__event span { display: block; color: #77849a; font-size: 9px; line-height: 1.4; }
.timeline__person { display: flex !important; align-items: center; gap: 6px; }
.timeline__person b { width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; background: #e8edf5; color: #34425a; font-size: 7px; }
.timeline__event--call > i { border-color: var(--c-free); background: var(--c-free-bg); }
.timeline__event--request > i { border-color: var(--c-reserved); background: var(--c-reserved-bg); }
.activity-panel__comment { position: absolute; left: 14px; right: 14px; bottom: 14px; height: 42px; border: 1px solid var(--c-line); border-radius: 8px; background: #fff; display: flex; align-items: center; }
.activity-panel__comment input { min-width: 0; flex: 1; height: 100%; border: 0; outline: 0; padding: 0 12px; }
.activity-panel__comment button { width: 42px; height: 100%; border: 0; background: transparent; color: #59667d; display: grid; place-items: center; }
.activity-panel__comment .icon { width: 18px; }

@media (max-width: 1440px) {
  .floor-page__workspace { grid-template-columns: minmax(560px,1fr) 370px; gap: 18px; }
  .apartment-panel__plan--floor { height: 220px; }
  .deal-layout { grid-template-columns: minmax(310px,.82fr) minmax(420px,1.15fr) minmax(330px,.9fr); gap: 14px; }
  .apartment-summary-card { grid-template-columns: 100px minmax(0,1fr); gap: 14px; padding: 14px; }
  .client-card__actions { display: grid; grid-template-columns: 1fr 1fr; }
  .deal-table__head, .deal-row { grid-template-columns: 120px minmax(175px,1.1fr) 145px 150px 135px 115px 38px; column-gap: 12px; }
}

@media (max-width: 1180px) {
  .floor-page__workspace { grid-template-columns: minmax(520px,1fr) 350px; }
  .floor-viewer { grid-template-columns: 54px minmax(0,1fr); gap: 0 12px; }
  .deal-layout { grid-template-columns: minmax(300px,.85fr) minmax(430px,1.2fr); }
  .activity-panel { position: static; grid-column: 1 / -1; min-height: 600px; }
  .deal-table { overflow-x: auto; padding-bottom: 6px; }
  .deal-table__head, .deal-row { min-width: 1000px; }
}

@media (max-width: 960px) {
  .floor-page__workspace { grid-template-columns: 1fr; }
  .floor-page .apartment-panel { position: static; width: auto; min-height: auto; transform: none; }
  .floor-viewer { min-height: 700px; }
  .floor-context { grid-template-columns: 1fr; height: auto; }
  .floor-context__item { min-height: 62px; border-right: 0; border-bottom: 1px solid var(--c-line-soft); }
  .floor-context__item:last-child { border-bottom: 0; }
  .deal-layout { grid-template-columns: 1fr; }
  .activity-panel { grid-column: auto; }
  .deals-page { padding: 22px 18px; }
  .deals-toolbar { align-items: flex-end; }
  .tabs { gap: 16px; overflow-x: auto; }
  .deals-toolbar__actions .button { min-width: auto; }
}

@media (max-width: 680px) {
  .page-heading__title { font-size: 25px; }
  .floor-page__heading { align-items: flex-start; flex-direction: column; }
  .floor-toolbar { width: 100%; flex-wrap: wrap; }
  .floor-toolbar .button { flex: 1; }
  .floor-viewer { grid-template-columns: 44px minmax(0,1fr); gap: 0 8px; min-height: 560px; }
  .floor-selector__button { height: 38px; }
  .floor-canvas { align-items: flex-start; padding-top: 24px; }
  .floor-canvas__stage { min-width: 560px; }
  .floor-viewer__footer { align-items: flex-start; flex-direction: column; }
  .floor-minimap { display: none; }
  .legend--counts { gap: 13px; }
  .apartment-panel__metrics { grid-template-columns: 1fr; gap: 12px; }
  .apartment-panel__metrics > div { border-right: 0; border-bottom: 1px solid var(--c-line-soft); padding-bottom: 10px; }
  .apartment-panel__metrics > div:last-child { border-bottom: 0; }
  .deals-toolbar { align-items: stretch; flex-direction: column; padding-bottom: 14px; }
  .tabs { height: 54px; width: 100%; }
  .deals-toolbar__actions { width: 100%; }
  .deals-toolbar__actions .button { flex: 1; }
  .deals-page__footer { align-items: flex-start; flex-direction: column; padding-top: 18px; gap: 18px; }
  .pagination { width: 100%; justify-content: space-between; gap: 5px; }
  .pagination button { width: 38px; height: 38px; }
  .deal-heading { flex-direction: column; }
  .deal-heading__actions { width: 100%; flex-wrap: wrap; }
  .deal-heading__actions .button--primary { min-width: 0; flex: 1 1 100%; }
  .apartment-summary-card { grid-template-columns: 1fr; }
  .apartment-summary-card__image { border-right: 0; border-bottom: 1px solid var(--c-line-soft); padding: 0 0 12px; }
  .client-card__head { grid-template-columns: 42px minmax(0,1fr); }
  .client-card__actions { grid-column: 1 / -1; display: flex; }
  .deal-stages { overflow-x: auto; grid-template-columns: repeat(6,90px); padding-bottom: 22px; }
  .deal-stages::before { min-width: 450px; }
  .deal-overview { grid-template-columns: 1fr; gap: 14px; }
  .deal-overview > div { border-right: 0; border-bottom: 1px solid var(--c-line-soft); padding: 0 0 12px; }
  .deal-overview > div:last-child { border-bottom: 0; }
  .finance-table { overflow-x: auto; }
  .finance-table__head, .finance-table__row { min-width: 560px; }
  .document-row { grid-template-columns: 34px minmax(0,1fr) 32px; }
  .document-row > .deal-status, .document-row > span:not(.document-row__icon) { display: none; }
  .document-row .icon-button:last-child { display: none; }
  .activity-panel { min-height: 620px; }
}


/* Real house grid: Дом №1 */
.chessboard-grid--real {
  min-height: 690px;
}

.building-grid {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  min-width: 930px;
  padding: 4px 2px 14px;
}

.entrance-grid {
  flex: var(--entrance-cells) 1 0;
  min-width: calc(var(--entrance-cells) * 43px + 36px);
}

.entrance-grid__title {
  margin: 0 0 11px;
  min-height: 24px;
  color: #253048;
  font-size: 14px;
  font-weight: 650;
  text-align: center;
}

.entrance-grid__body {
  display: grid;
  gap: 8px;
}

.entrance-grid__row {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
}

.entrance-grid__floor {
  color: #36425a;
  font-size: 12px;
  font-weight: 650;
  text-align: center;
}

.entrance-grid__apartments {
  display: grid;
  grid-template-columns: repeat(var(--entrance-cells), minmax(34px, 1fr));
  gap: 6px;
}

.chessboard-grid--real .apartment-cell {
  min-width: 34px;
  height: 31px;
  padding: 0 4px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 650;
  white-space: nowrap;
}

.apartment-cell--unavailable {
  color: #8a94a7;
  background: var(--c-disabled-bg);
}

.apartment-cell--empty {
  color: #c2c8d2;
  background: #f5f6f9;
  border-color: transparent;
  cursor: default;
  pointer-events: none;
}

.apartment-cell--filtered {
  opacity: .14;
  filter: grayscale(.45);
  pointer-events: none;
}

.apartment-cell__number {
  overflow: hidden;
  text-overflow: ellipsis;
}

.chessboard-grid__empty {
  padding: 48px 16px;
  color: var(--c-muted);
  font-size: 14px;
  text-align: center;
}

.summary-chip--active {
  box-shadow: inset 0 0 0 1px rgba(56,67,255,.3);
  background: #f2f1ff;
}

.filter-field--disabled {
  opacity: .65;
}

.filter-field--disabled .filter-field__control {
  background: #f5f6f9;
}

.apartment-panel__plan--placeholder {
  padding: 18px 30px 10px;
}

.apartment-panel__plan--placeholder img {
  mix-blend-mode: normal;
}

.apartment-panel__price--empty {
  background: linear-gradient(90deg, #f5f6fa 0%, #fbfbfd 100%);
}

.apartment-panel__price--empty .apartment-panel__price-label,
.apartment-panel__price--empty .apartment-panel__price-value {
  color: #5d687f;
}

.apartment-panel__price--empty .apartment-panel__price-value {
  font-size: 18px;
}

@media (max-width: 1450px) {
  .building-grid {
    min-width: 860px;
    gap: 12px;
  }

  .entrance-grid {
    min-width: calc(var(--entrance-cells) * 39px + 33px);
  }

  .entrance-grid__apartments {
    gap: 5px;
  }

  .chessboard-grid--real .apartment-cell {
    min-width: 31px;
  }
}

@media (max-width: 1120px) {
  .building-grid {
    min-width: 900px;
  }
}

/* Objects administration */
.page-heading { align-items: flex-start; }
.page-heading--compact { margin-bottom: 18px; }
.page-heading__title-row { display: flex; align-items: center; gap: 14px; }
.page-heading__subtitle { margin: 7px 0 0; color: var(--c-text-2); font-size: 13px; }
.page-heading__actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.button--small { min-height: 34px; padding: 0 12px; font-size: 12px; }
.button:disabled { cursor: not-allowed; opacity: .55; transform: none; }
.text-link { color: var(--c-primary); display: inline-flex; align-items: center; gap: 7px; font-weight: 600; font-size: 12px; }
.text-link .icon { width: 15px; height: 15px; }

.alert { margin: 16px 0; border-radius: 12px; padding: 14px 16px; display: flex; align-items: flex-start; gap: 12px; border: 1px solid transparent; }
.alert strong { white-space: nowrap; }
.alert ul { margin: 0; padding-left: 18px; }
.alert--success { color: #237b37; background: #edf9ef; border-color: #cfedd5; }
.alert--error { color: #b42318; background: #fff1f0; border-color: #ffd2ce; }

.object-summary { margin-top: 20px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.object-summary--detail { margin-bottom: 16px; }
.object-summary__item { min-height: 100px; background: #fff; border: 1px solid var(--c-line); border-radius: 14px; padding: 18px; display: flex; align-items: center; gap: 15px; box-shadow: var(--shadow-card); }
.object-summary__item > div { display: grid; gap: 7px; }
.object-summary__item span { color: #7b8598; font-size: 12px; }
.object-summary__item strong { font-size: 25px; letter-spacing: -.6px; }
.object-summary__icon { width: 43px; height: 43px; border-radius: 11px; display: grid; place-items: center; color: var(--c-primary); background: var(--c-primary-soft); flex: none; }
.object-summary__icon .icon { width: 21px; height: 21px; }
.object-summary__icon--success { color: var(--c-free); background: var(--c-free-bg); }

.project-list { margin-top: 18px; display: grid; gap: 18px; }
.project-card { background: #fff; border: 1px solid var(--c-line); border-radius: 16px; padding: 20px; box-shadow: var(--shadow-card); }
.project-card__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 17px; border-bottom: 1px solid var(--c-line-soft); }
.project-card__eyebrow { color: var(--c-primary); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 7px; }
.project-card__title { margin: 0; font-size: 21px; letter-spacing: -.4px; }
.project-card__address { margin: 7px 0 0; color: var(--c-text-2); font-size: 12px; }
.building-cards { margin-top: 17px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.building-card { min-height: 215px; border: 1px solid var(--c-line); border-radius: 13px; padding: 16px; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; display: flex; flex-direction: column; }
.building-card:hover { transform: translateY(-2px); border-color: #cfd3ff; box-shadow: 0 12px 30px rgba(26,39,84,.08); }
.building-card__top { display: flex; align-items: center; justify-content: space-between; }
.building-card__mark { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; color: var(--c-primary); background: var(--c-primary-soft); }
.building-card__mark .icon { width: 19px; height: 19px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; }
.status-dot--active { background: var(--c-free); box-shadow: 0 0 0 4px var(--c-free-bg); }
.status-dot--archived { background: var(--c-disabled); box-shadow: 0 0 0 4px var(--c-disabled-bg); }
.building-card__title { margin: 14px 0 4px; font-size: 17px; }
.building-card__meta { margin: 0; min-height: 31px; color: #7b8598; font-size: 11px; line-height: 1.4; }
.building-card__stats { margin: 15px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.building-card__stats div { display: grid; gap: 4px; }
.building-card__stats dt { color: #8b94a6; font-size: 10px; }
.building-card__stats dd { margin: 0; font-weight: 700; color: #273148; }
.building-card__link { margin-top: auto; padding-top: 14px; color: var(--c-primary); font-size: 12px; font-weight: 600; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--c-line-soft); }
.building-card__link .icon { width: 15px; }
.empty-card { min-height: 215px; border: 1px dashed #d8dce7; border-radius: 13px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 20px; color: #707b90; }
.empty-card strong { color: var(--c-text); margin-bottom: 6px; }
.empty-card .button { margin-top: 14px; }
.empty-state { min-height: 380px; background: #fff; border: 1px solid var(--c-line); border-radius: 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 30px; }
.empty-state__icon { width: 60px; height: 60px; border-radius: 16px; background: var(--c-primary-soft); color: var(--c-primary); display: grid; place-items: center; }
.empty-state__icon .icon { width: 28px; height: 28px; }
.empty-state h2 { margin: 18px 0 7px; }
.empty-state p { color: var(--c-text-2); margin: 0 0 18px; }

.form-page { max-width: 1220px; }
.admin-form { display: grid; gap: 16px; }
.form-card { background: #fff; border: 1px solid var(--c-line); border-radius: 15px; padding: 20px; box-shadow: var(--shadow-card); }
.form-card__header { padding-bottom: 17px; margin-bottom: 18px; border-bottom: 1px solid var(--c-line-soft); }
.form-card__header--actions { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.form-card__header h2 { margin: 0; font-size: 17px; letter-spacing: -.25px; }
.form-card__header p { margin: 6px 0 0; color: #7b8598; font-size: 12px; }
.form-grid { display: grid; gap: 16px; }
.form-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.form-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.form-field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.form-field--span-2 { grid-column: span 2; }
.form-field__label { color: #4d5870; font-size: 11px; font-weight: 600; }
.form-field__label i { color: #f04438; font-style: normal; }
.form-field__hint { color: #8b94a6; line-height: 1.45; }
.form-field__error { color: #d92d20; line-height: 1.4; }
.form-control { width: 100%; height: 43px; border: 1px solid #dfe3eb; border-radius: 9px; background: #fff; color: var(--c-text); padding: 0 12px; outline: none; transition: border-color .15s, box-shadow .15s; }
.form-control:focus { border-color: #8c93ff; box-shadow: 0 0 0 3px rgba(56,67,255,.1); }
.form-control--error { border-color: #f97066; }
.form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 4px 0 18px; }

.entrance-editor { display: grid; gap: 10px; }
.entrance-editor__row { display: grid; grid-template-columns: 30px 110px minmax(180px, 1fr) 135px 135px 40px; gap: 12px; align-items: end; padding: 13px; border: 1px solid var(--c-line-soft); border-radius: 11px; background: #fafbfc; }
.entrance-editor__drag { align-self: center; width: 26px; height: 26px; border-radius: 7px; background: var(--c-primary-soft); color: var(--c-primary); display: grid; place-items: center; font-size: 11px; font-weight: 700; }
.icon-action { width: 36px; height: 36px; padding: 0; border: 1px solid var(--c-line); border-radius: 8px; background: #fff; color: #69748a; display: inline-grid; place-items: center; }
.icon-action:hover { color: var(--c-primary); border-color: #cbd0ff; }
.icon-action--danger:hover { color: #d92d20; border-color: #fda29b; background: #fff5f4; }
.icon-action .icon { width: 16px; height: 16px; }
.structure-preview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.structure-preview__item { border: 1px solid var(--c-line-soft); border-radius: 11px; padding: 15px; display: grid; gap: 6px; }
.structure-preview__item span { color: #606b81; font-size: 12px; }
.structure-preview__item small { color: #929bad; }

.object-structure-card { margin-bottom: 16px; }
.entrance-overview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.entrance-overview__card { border: 1px solid var(--c-line-soft); border-radius: 12px; padding: 14px; }
.entrance-overview__card header { display: flex; align-items: center; gap: 10px; }
.entrance-overview__card header > div { display: grid; gap: 3px; }
.entrance-overview__card header span { color: #8a94a7; font-size: 10px; }
.entrance-overview__icon { width: 34px; height: 34px; border-radius: 9px; color: var(--c-primary); background: var(--c-primary-soft); display: grid; place-items: center; }
.entrance-overview__icon .icon { width: 17px; }
.entrance-overview__floors { margin-top: 13px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.entrance-overview__floors > span { min-width: 38px; height: 31px; border-radius: 7px; background: #f6f7fa; display: inline-flex; align-items: center; justify-content: center; gap: 4px; font-size: 10px; color: #566178; }
.entrance-overview__floors b { font-size: 11px; }
.entrance-overview__floors i { font-style: normal; color: #9aa3b4; }

.registry-card { background: #fff; border: 1px solid var(--c-line); border-radius: 15px; box-shadow: var(--shadow-card); overflow: hidden; }
.registry-card__header { min-height: 82px; padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--c-line-soft); }
.registry-card__header h2 { margin: 0; font-size: 17px; }
.registry-card__header p { margin: 6px 0 0; color: #7c8698; font-size: 12px; }
.registry-statuses { display: flex; align-items: center; gap: 16px; color: #717c91; font-size: 11px; flex-wrap: wrap; }
.registry-statuses span { display: inline-flex; align-items: center; gap: 6px; }
.registry-statuses .legend__dot { width: 8px; height: 8px; }
.registry-filters { padding: 13px 20px; background: #fbfcfd; border-bottom: 1px solid var(--c-line-soft); display: grid; grid-template-columns: minmax(190px, 1.5fr) repeat(4, minmax(120px, .8fr)) auto auto; gap: 9px; }
.registry-filters select, .registry-search { height: 37px; border: 1px solid #e0e4ec; border-radius: 8px; background: #fff; color: #45516a; }
.registry-filters select { padding: 0 10px; min-width: 0; }
.registry-search { display: flex; align-items: center; gap: 8px; padding: 0 10px; }
.registry-search .icon { width: 15px; color: #9099aa; }
.registry-search input { min-width: 0; width: 100%; border: 0; outline: 0; background: transparent; }
.registry-table-wrap { overflow-x: auto; }
.registry-table { width: 100%; min-width: 970px; border-collapse: collapse; }
.registry-table th { height: 44px; padding: 0 14px; color: #7b8598; font-size: 10px; font-weight: 600; text-align: left; background: #fff; border-bottom: 1px solid var(--c-line-soft); }
.registry-table td { height: 66px; padding: 9px 14px; border-bottom: 1px solid var(--c-line-soft); color: #354057; font-size: 12px; vertical-align: middle; }
.registry-table tr:hover td { background: #fcfcff; }
.registry-table td strong { display: block; color: #182238; font-weight: 650; }
.registry-table td small { display: block; margin-top: 4px; color: #8b94a7; font-size: 10px; }
.registry-table__apartment:hover strong { color: var(--c-primary); }
.table-empty { min-height: 180px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; }
.table-empty span { color: #8b94a7; }
.registry-pagination { min-height: 60px; padding: 10px 20px; display: flex; align-items: center; justify-content: space-between; color: #748096; font-size: 11px; }
.registry-pagination > div { display: flex; align-items: center; gap: 7px; }
.pagination-button { width: 34px; height: 34px; border: 1px solid var(--c-line); border-radius: 8px; display: grid; place-items: center; background: #fff; color: #47536a; }
.pagination-button--current { color: var(--c-primary); background: var(--c-primary-soft); border-color: #dadcff; font-weight: 700; }
.pagination-button--disabled { color: #c2c8d3; background: #fafbfc; }
.registry-pagination__pages { color: #929bad; }

@media (max-width: 1380px) {
  .building-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .entrance-overview, .structure-preview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .registry-filters { grid-template-columns: minmax(180px, 1.5fr) repeat(3, minmax(120px, .8fr)) auto; }
  .registry-filters select[name="status"] { display: none; }
}

@media (max-width: 1050px) {
  .object-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .entrance-editor__row { grid-template-columns: 30px 90px 1fr 110px 110px 38px; gap: 8px; }
  .registry-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .registry-search { grid-column: span 2; }
}

@media (max-width: 760px) {
  .page-heading { display: grid; }
  .page-heading__actions { justify-content: flex-start; }
  .page-heading__actions .button { flex: 1; }
  .object-summary { grid-template-columns: 1fr; }
  .building-cards, .entrance-overview, .structure-preview { grid-template-columns: 1fr; }
  .form-grid--2, .form-grid--3, .form-grid--4 { grid-template-columns: 1fr; }
  .form-field--span-2 { grid-column: auto; }
  .form-card__header--actions { display: grid; }
  .entrance-editor__row { grid-template-columns: 28px 1fr 1fr 38px; }
  .entrance-editor__name { grid-column: 2 / 4; }
  .entrance-editor__row .form-field:nth-of-type(3) { grid-column: 2; }
  .entrance-editor__row .form-field:nth-of-type(4) { grid-column: 3; }
  .entrance-editor__row .icon-action { grid-column: 4; grid-row: 1; }
  .registry-card__header { display: grid; }
  .registry-filters { grid-template-columns: 1fr 1fr; }
  .registry-search { grid-column: 1 / -1; }
  .registry-pagination { gap: 12px; flex-wrap: wrap; }
}

/* Apartment XLSX import */
.import-page { max-width: 1280px; }
.import-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(320px, .75fr); gap: 16px; align-items: start; }
.import-upload { min-width: 0; }
.import-file { min-height: 210px; border: 1.5px dashed #cfd4e4; border-radius: 14px; background: #fafbff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 13px; text-align: center; padding: 28px; cursor: pointer; transition: border-color .15s, background .15s, transform .15s; }
.import-file:hover { border-color: #858dff; background: #f6f7ff; transform: translateY(-1px); }
.import-file--error { border-color: #f97066; background: #fff8f7; }
.import-file__icon { width: 52px; height: 52px; border-radius: 14px; background: var(--c-primary-soft); color: var(--c-primary); display: grid; place-items: center; }
.import-file__icon .icon { width: 24px; height: 24px; }
.import-file__content { display: grid; gap: 5px; }
.import-file__content strong { color: var(--c-text); font-size: 15px; }
.import-file__content span { color: #808a9d; font-size: 12px; }
.import-file input[type="file"] { width: min(100%, 420px); color: #687389; font-size: 11px; }
.import-file input[type="file"]::file-selector-button { border: 1px solid #d8dcff; border-radius: 8px; background: #fff; color: var(--c-primary); font: inherit; font-weight: 650; padding: 9px 13px; margin-right: 10px; cursor: pointer; }
.import-selection { margin-top: 18px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--c-line-soft); border-radius: 11px; overflow: hidden; }
.import-selection > div { min-height: 72px; display: flex; flex-direction: column; justify-content: center; gap: 5px; padding: 13px 16px; background: #fff; }
.import-selection > div + div { border-left: 1px solid var(--c-line-soft); }
.import-selection span { color: #8a94a7; font-size: 10px; }
.import-selection strong { color: #273148; font-size: 12px; }
.import-rules { position: sticky; top: 18px; }
.import-steps { list-style: none; padding: 0; margin: 0; display: grid; gap: 15px; }
.import-steps li { display: flex; gap: 11px; align-items: flex-start; }
.import-steps li > b { flex: 0 0 30px; width: 30px; height: 30px; border-radius: 9px; background: var(--c-primary-soft); color: var(--c-primary); display: grid; place-items: center; font-size: 11px; }
.import-steps li > div { display: grid; gap: 4px; }
.import-steps strong { color: #273148; font-size: 12px; }
.import-steps span { color: #7f899d; font-size: 11px; line-height: 1.5; }
.import-note { margin-top: 16px; padding: 14px; border-radius: 10px; background: #f7f8fb; border: 1px solid var(--c-line-soft); }
.import-note strong { color: #354057; font-size: 11px; }
.import-note p { margin: 6px 0 0; color: #7e889a; font-size: 10px; line-height: 1.55; }
.import-alert { border-radius: 11px; padding: 13px 15px; margin-bottom: 15px; font-size: 12px; line-height: 1.5; }
.import-alert--danger { color: #9b241d; background: #fff3f2; border: 1px solid #fecdca; }
.import-alert--success { color: #18733a; background: #effaf2; border: 1px solid #b7e8c3; }
.import-alert--list strong { display: block; margin-bottom: 7px; }
.import-alert--list ul { margin: 0; padding-left: 18px; }
.import-preview-page { max-width: 1500px; }
.import-summary { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin-bottom: 15px; }
.import-summary article { min-height: 84px; border: 1px solid var(--c-line); border-radius: 12px; background: #fff; padding: 15px; box-shadow: var(--shadow-card); display: flex; flex-direction: column; justify-content: center; gap: 7px; }
.import-summary span { color: #7e899b; font-size: 10px; }
.import-summary strong { color: #222d43; font-size: 22px; line-height: 1; }
.import-summary__create strong { color: #1d8a42; }
.import-summary__update strong { color: #3d45ff; }
.import-summary__error strong { color: #e43b36; }
.import-summary__warning strong { color: #dc8700; }
.import-registry { margin-top: 0; }
.import-legend { display: flex; gap: 15px; align-items: center; flex-wrap: wrap; color: #707b90; font-size: 10px; }
.import-legend span { display: inline-flex; align-items: center; gap: 6px; }
.import-action-dot { width: 8px; height: 8px; border-radius: 50%; }
.import-action-dot--create { background: #36ad55; }
.import-action-dot--update { background: #4d56ff; }
.import-action-dot--unchanged { background: #aeb5c3; }
.import-action-dot--error { background: #ef4444; }
.import-table { min-width: 1120px; }
.import-table td { height: auto; min-height: 68px; vertical-align: top; padding-top: 13px; padding-bottom: 13px; }
.import-table__row--error td { background: #fffafa; }
.import-action { display: inline-flex; align-items: center; min-height: 25px; padding: 0 9px; border-radius: 7px; font-size: 10px; font-weight: 650; white-space: nowrap; }
.import-action--create { color: #18733a; background: #eaf8ee; }
.import-action--update { color: #3038d8; background: #eef0ff; }
.import-action--unchanged { color: #687389; background: #f0f2f5; }
.import-action--error { color: #d92d20; background: #ffebe9; }
.import-changes { display: flex; flex-wrap: wrap; gap: 5px; max-width: 430px; }
.import-changes span { display: inline-flex; min-height: 24px; align-items: center; padding: 0 8px; border-radius: 6px; background: #eef0ff; color: #3d45ff; font-size: 9px; cursor: help; }
.import-changes small { align-self: center; color: #7c8799; }
.import-messages { margin: 0; padding-left: 16px; max-width: 480px; font-size: 10px; line-height: 1.45; }
.import-messages--error { color: #c32c24; }
.import-messages--warning { color: #a96500; margin-top: 7px; }
.import-muted { color: #8a94a7; font-size: 10px; }
.import-preview-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 16px 0 4px; }

@media (max-width: 1250px) {
  .import-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .import-layout { grid-template-columns: minmax(0, 1fr) 320px; }
}

@media (max-width: 900px) {
  .import-layout { grid-template-columns: 1fr; }
  .import-rules { position: static; }
  .import-selection { grid-template-columns: 1fr; }
  .import-selection > div + div { border-left: 0; border-top: 1px solid var(--c-line-soft); }
}

@media (max-width: 620px) {
  .import-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .import-file { padding: 22px 14px; }
  .import-preview-actions { align-items: stretch; flex-direction: column-reverse; }
  .import-preview-actions .button { width: 100%; }
}

/* Reservations */
body.modal-open { overflow: hidden; }
.button--danger-ghost { color: #d92d20; border-color: #fecdca; background: #fff; }
.button--danger-ghost:hover { color: #b42318; border-color: #f97066; background: #fff7f6; }
.button--ghost { color: #667085; background: transparent; border-color: transparent; }
.button--disabled { opacity: .45; pointer-events: none; }
.form-field__label b { color: #f04438; font-weight: 700; }
textarea.form-control { min-height: 92px; height: auto; padding-top: 11px; padding-bottom: 11px; resize: vertical; font: inherit; }

.reservation-card { margin-top: 10px; padding: 14px; border: 1px solid #ffdca3; border-radius: 11px; background: linear-gradient(135deg, #fff8ea 0%, #fffdf8 100%); }
.reservation-card[hidden] { display: none; }
.reservation-card__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.reservation-card__header > div { display: grid; gap: 4px; }
.reservation-card__header span { color: #a86600; font-size: 10px; }
.reservation-card__header strong { color: #3c2c12; font-size: 13px; }
.reservation-card__number { min-height: 25px; padding: 0 8px; border-radius: 7px; background: #fff0cf; display: inline-flex; align-items: center; color: #a86600 !important; font-weight: 700; }
.reservation-card__details { margin: 12px 0; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 9px; }
.reservation-card__details div { min-width: 0; }
.reservation-card__details dt { color: #9b7a42; font-size: 9px; margin-bottom: 4px; }
.reservation-card__details dd { margin: 0; color: #43371f; font-size: 10px; font-weight: 650; overflow-wrap: anywhere; }

.modal-overlay { position: fixed; inset: 0; z-index: 120; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(17, 24, 39, .48); backdrop-filter: blur(3px); }
.modal-overlay[hidden] { display: none; }
.modal-card { width: min(100%, 620px); max-height: calc(100vh - 48px); overflow-y: auto; background: #fff; border: 1px solid rgba(255,255,255,.75); border-radius: 17px; box-shadow: 0 28px 80px rgba(17,24,39,.28); }
.modal-card__header { min-height: 84px; padding: 19px 21px; border-bottom: 1px solid var(--c-line-soft); display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.modal-card__header h2 { margin: 5px 0 0; color: #182238; font-size: 20px; letter-spacing: -.35px; }
.modal-card__eyebrow { color: var(--c-primary); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.modal-card__close { width: 34px; height: 34px; border: 1px solid var(--c-line); border-radius: 9px; background: #fff; color: #58647a; display: grid; place-items: center; }
.modal-card__close:hover { color: var(--c-primary); border-color: #cbd0ff; }
.modal-card__close .icon { width: 16px; height: 16px; }
.modal-card__footer { margin-top: 20px; padding-top: 17px; border-top: 1px solid var(--c-line-soft); display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.reservation-form { padding: 20px 21px 21px; }
.reservation-form__error { margin-bottom: 15px; padding: 11px 13px; border: 1px solid #fecdca; border-radius: 9px; background: #fff3f2; color: #b42318; font-size: 11px; line-height: 1.45; }

.reservations-page { max-width: 1500px; }
.reservation-summary { margin: 19px 0 16px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 11px; }
.reservation-summary__item { min-height: 82px; padding: 15px 16px; border: 1px solid var(--c-line); border-radius: 12px; background: #fff; box-shadow: var(--shadow-card); display: flex; flex-direction: column; justify-content: center; gap: 7px; transition: transform .15s, border-color .15s; }
.reservation-summary__item:hover { transform: translateY(-1px); border-color: #cfd3ff; }
.reservation-summary__item--active { border-color: #9fa5ff; box-shadow: 0 0 0 2px rgba(56,67,255,.08); }
.reservation-summary__item span { color: #7c879a; font-size: 10px; }
.reservation-summary__item strong { color: #29344b; font-size: 22px; }
.reservation-summary__item--success strong { color: #28863d; }
.reservation-summary__item--warning strong { color: #c67600; }
.reservation-summary__item--danger strong { color: #d92d20; }
.reservation-registry { margin-top: 0; }
.reservation-filters { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.reservation-filters .registry-search { width: 310px; }
.reservation-table { min-width: 1120px; }
.reservation-table td { height: 72px; }
.reservation-table__actions { width: 115px; text-align: right; }
.reservation-table__actions form { display: flex; justify-content: flex-end; }
.reservation-status { min-height: 26px; padding: 0 9px; border-radius: 7px; display: inline-flex; align-items: center; font-size: 10px; font-weight: 650; white-space: nowrap; }
.reservation-status--active { color: #237e36; background: var(--c-free-bg); }
.reservation-status--expired { color: #a86300; background: var(--c-reserved-bg); }
.reservation-status--cancelled { color: #d92d20; background: var(--c-sold-bg); }
.reservation-status--completed { color: #4f46e5; background: var(--c-primary-soft); }
.registry-pagination__buttons { display: flex; gap: 8px; }

@media (max-width: 1050px) {
  .reservation-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .reservation-filters { width: 100%; justify-content: flex-start; }
  .reservation-filters .registry-search { width: min(100%, 360px); }
}

@media (max-width: 760px) {
  .reservation-card__details { grid-template-columns: 1fr; }
  .modal-overlay { padding: 10px; align-items: flex-end; }
  .modal-card { max-height: calc(100vh - 20px); border-radius: 16px 16px 10px 10px; }
  .modal-card__footer { align-items: stretch; flex-direction: column-reverse; }
  .modal-card__footer .button { width: 100%; }
  .reservation-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reservation-filters { display: grid; grid-template-columns: 1fr auto; }
  .reservation-filters .registry-search { width: 100%; grid-column: 1 / -1; }
}
.apartment-cell--unavailable { color: #8a94a7; background: var(--c-disabled-bg); border-color: #dfe3ea; }

/* Update 05: authentication and Bitrix24 integration */
.auth-page {
  min-height: 100vh;
  margin: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: #f5f7fb;
  color: #172033;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.auth-card {
  width: min(100%, 440px);
  padding: 36px;
  border: 1px solid #e6eaf1;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(43, 55, 89, 0.12);
  text-align: center;
}

.auth-card--wide {
  width: min(100%, 560px);
}

.auth-card__logo {
  display: flex;
  justify-content: center;
  margin-bottom: 20px;
}

.auth-card__logo .sidebar__logo-mark {
  width: 54px;
  height: 48px;
}

.auth-card__mark {
  width: 58px;
  height: 58px;
  margin: 0 auto 20px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: #e9f8ed;
  color: #239b48;
  font-size: 30px;
  font-weight: 800;
}

.auth-card__mark--error {
  background: #fff0f0;
  color: #e43c3c;
}

.auth-card__title {
  margin: 0 0 12px;
  font-size: 28px;
  line-height: 1.2;
}

.auth-card__text,
.auth-card__hint,
.auth-card__status {
  color: #69738a;
  line-height: 1.55;
}

.auth-card__hint {
  margin: 14px 0 0;
  font-size: 13px;
}

.auth-card__alert {
  margin: 18px 0;
  padding: 12px 14px;
  border-radius: 10px;
  background: #fff0f0;
  color: #bd2f2f;
  font-size: 14px;
}

.auth-card__button {
  width: 100%;
  margin-top: 18px;
  justify-content: center;
  text-decoration: none;
}

.auth-card__technical {
  display: inline-block;
  margin-top: 22px;
  color: #4b55ff;
  font-size: 14px;
  text-decoration: none;
}

.auth-form {
  display: grid;
  gap: 16px;
  margin-top: 24px;
  text-align: left;
}

.auth-form__field {
  display: grid;
  gap: 7px;
  color: #44506a;
  font-size: 14px;
  font-weight: 600;
}

.auth-form__field input {
  width: 100%;
  box-sizing: border-box;
  min-height: 46px;
  padding: 0 14px;
  border: 1px solid #dfe4ee;
  border-radius: 10px;
  outline: none;
  font: inherit;
}

.auth-form__field input:focus {
  border-color: #5158ff;
  box-shadow: 0 0 0 3px rgba(81, 88, 255, 0.12);
}

.auth-form__error {
  margin-top: -10px;
  color: #d43d3d;
  font-size: 13px;
}

.auth-form__remember {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #69738a;
  font-size: 14px;
}

.topbar__logout {
  border: 0;
  background: transparent;
  color: #56617a;
  cursor: pointer;
  font-size: 12px;
  padding: 4px 0;
}

.topbar__logout:hover {
  color: #3944ff;
}

/* Bitrix24 CRM settings */
.bitrix-settings-page { max-width: 1540px; }
.integration-summary { margin: 18px 0 16px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; }
.integration-summary__item { min-width: 0; min-height: 92px; padding: 15px 16px; border: 1px solid var(--c-line); border-radius: 13px; background: #fff; box-shadow: var(--shadow-card); display: flex; align-items: center; gap: 12px; }
.integration-summary__icon { flex: 0 0 auto; width: 39px; height: 39px; border-radius: 11px; display: grid; place-items: center; color: var(--c-primary); background: var(--c-primary-soft); }
.integration-summary__icon--success { color: #269347; background: #e9f8ed; }
.integration-summary__icon--danger { color: #d92d20; background: #ffefed; }
.integration-summary__icon .icon { width: 18px; height: 18px; }
.integration-summary__item > div { min-width: 0; display: grid; gap: 3px; }
.integration-summary__item span { color: #7c8799; font-size: 10px; }
.integration-summary__item strong { color: #222d43; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.integration-summary__item small { color: #8993a5; font-size: 9px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.integration-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 15px; align-items: start; }
.integration-layout__main { min-width: 0; display: grid; gap: 15px; }
.integration-card { margin: 0; }
.integration-card--sticky { position: sticky; top: 78px; }
.integration-card__updated { color: #8b95a7; font-size: 9px; }
.scope-grid { padding: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.scope-item { min-width: 0; padding: 12px; border: 1px solid var(--c-line); border-radius: 10px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px; background: #fff; }
.scope-item--success { border-color: #c9ebd1; background: #f6fcf7; }
.scope-item--danger { border-color: #fecdca; background: #fff8f7; }
.scope-item__mark { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 11px; background: #eaf8ee; color: #268b42; }
.scope-item--danger .scope-item__mark { background: #ffebe9; color: #d92d20; }
.scope-item > div { min-width: 0; display: grid; gap: 3px; }
.scope-item strong { color: #283349; font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.scope-item code { color: #7b8699; font-size: 9px; }
.scope-item > span:last-child { color: #6f7b90; font-size: 9px; }
.integration-note { margin: 0 16px 16px; padding: 11px 12px; border-radius: 9px; background: #f5f6ff; color: #59647b; font-size: 10px; line-height: 1.5; }
.integration-note--warning { margin: 14px 0 0; background: #fff8e9; color: #895c13; border: 1px solid #ffe3ad; }
.integration-note code { overflow-wrap: anywhere; }
.integration-form { padding: 17px; }
.integration-form > .form-field { max-width: 520px; }
.stage-map-grid { margin-top: 15px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.stage-map-field { min-width: 0; padding: 13px; border: 1px solid var(--c-line-soft); border-radius: 10px; background: #fbfcfe; display: grid; gap: 7px; }
.stage-map-field__label { color: #39445a; font-size: 10px; font-weight: 700; }
.stage-map-field small { min-height: 27px; color: #8a94a7; font-size: 9px; line-height: 1.45; }
.form-actions--right { justify-content: flex-end; }
.integration-empty { padding: 34px 20px; display: grid; justify-items: center; text-align: center; color: #707b90; }
.integration-empty__icon { width: 46px; height: 46px; margin-bottom: 10px; border-radius: 13px; display: grid; place-items: center; color: var(--c-primary); background: var(--c-primary-soft); }
.integration-empty__icon .icon { width: 20px; height: 20px; }
.integration-empty strong { color: #2c374e; font-size: 13px; }
.integration-empty p { max-width: 560px; margin: 7px 0 0; font-size: 10px; line-height: 1.55; }
.integration-fields-card { margin-top: 0; }
.integration-fields-table { min-width: 760px; }
.integration-fields-table code, .api-log-table code { display: inline-block; max-width: 100%; color: #4d57c9; font-size: 9px; overflow-wrap: anywhere; }
.field-state { min-height: 25px; padding: 0 9px; border-radius: 7px; display: inline-flex; align-items: center; font-size: 9px; font-weight: 700; white-space: nowrap; }
.field-state--success { color: #237e36; background: var(--c-free-bg); }
.field-state--missing { color: #a86500; background: var(--c-reserved-bg); }
.integration-details { margin: 0; padding: 4px 16px 17px; }
.integration-details div { min-width: 0; min-height: 43px; padding: 10px 0; border-bottom: 1px solid var(--c-line-soft); display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 10px; align-items: center; }
.integration-details div:last-child { border-bottom: 0; }
.integration-details dt { color: #8490a3; font-size: 9px; }
.integration-details dd { min-width: 0; margin: 0; color: #344057; font-size: 9px; font-weight: 650; overflow-wrap: anywhere; text-align: right; }
.api-log-card { margin-top: 15px; }
.api-log-table { min-width: 900px; }
.api-log-table__message { max-width: 540px; color: #687489; font-size: 9px; overflow-wrap: anywhere; }
.api-log-status { min-height: 24px; padding: 0 8px; border-radius: 7px; display: inline-flex; align-items: center; font-size: 9px; font-weight: 700; }
.api-log-status--success { color: #237e36; background: var(--c-free-bg); }
.api-log-status--error { color: #d92d20; background: var(--c-sold-bg); }

@media (max-width: 1280px) {
  .integration-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .integration-layout { grid-template-columns: minmax(0, 1fr) 290px; }
  .scope-grid { grid-template-columns: 1fr; }
}

@media (max-width: 980px) {
  .integration-layout { grid-template-columns: 1fr; }
  .integration-card--sticky { position: static; }
  .scope-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .integration-summary { grid-template-columns: 1fr; }
  .scope-grid, .stage-map-grid { grid-template-columns: 1fr; }
  .integration-form { padding: 14px; }
  .integration-details div { grid-template-columns: 1fr; }
  .integration-details dd { text-align: left; }
}

/* Update 07: deals and Bitrix24 deal tab */
.button--block { width: 100%; }
.deal-link-card { margin-top: 12px; padding: 13px; border: 1px solid #dfe3ff; border-radius: 12px; background: linear-gradient(135deg,#f8f7ff 0%,#fff 100%); display: grid; grid-template-columns: 38px minmax(0,1fr) auto; gap: 12px; align-items: center; }
.deal-link-card__icon { width: 38px; height: 38px; border-radius: 10px; background: var(--c-primary-soft); color: var(--c-primary); display: grid; place-items: center; }
.deal-link-card__content { min-width: 0; display: grid; gap: 3px; }
.deal-link-card__content span { color: var(--c-muted); font-size: 10px; }
.deal-link-card__content strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.deal-link-card__content small { color: var(--c-text-2); }

.deal-modal { width: min(820px, calc(100vw - 32px)); max-height: calc(100vh - 40px); overflow: auto; }
.deal-form { padding: 18px 20px 0; }
.deal-form__type { margin: 0 0 18px; padding: 0; border: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.deal-form__type legend { grid-column: 1/-1; margin-bottom: 8px; font-weight: 700; }
.choice-card { min-height: 68px; padding: 13px 14px; border: 1px solid var(--c-line); border-radius: 12px; background: #fff; display: flex; align-items: center; gap: 11px; cursor: pointer; }
.choice-card:has(input:checked) { border-color: #777cff; background: #f6f5ff; box-shadow: 0 0 0 3px rgba(56,67,255,.07); }
.choice-card input { accent-color: var(--c-primary); }
.choice-card span { display: grid; gap: 3px; }
.choice-card strong { font-size: 13px; }
.choice-card small { color: var(--c-muted); font-size: 11px; }
.deal-form__legal { margin-top: 18px; padding: 17px; border: 1px solid var(--c-line-soft); border-radius: 14px; background: #fafbfe; }
.deal-form__legal h3 { margin: 0 0 14px; font-size: 14px; }
.deal-form__comment { margin-top: 16px; }

.bitrix-widget-body { min-height: 100vh; background: #f5f7fb; }
.bitrix-widget-shell { min-height: 100vh; padding: 18px; }
.deal-widget, .deal-selector { max-width: 1480px; margin: 0 auto; }
.deal-widget__header, .deal-selector__header { margin-bottom: 16px; padding: 18px 20px; border: 1px solid var(--c-line); border-radius: 14px; background: #fff; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; box-shadow: var(--shadow-card); }
.deal-widget__header h1, .deal-selector__header h1 { margin: 4px 0 4px; font-size: 22px; }
.deal-widget__header p, .deal-selector__header p { margin: 0; color: var(--c-text-2); }
.deal-widget__eyebrow { color: var(--c-primary); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.deal-widget-empty { min-height: 330px; padding: 36px; border: 1px solid var(--c-line); border-radius: 16px; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; box-shadow: var(--shadow-card); }
.deal-widget-empty__icon { width: 58px; height: 58px; border-radius: 18px; color: var(--c-primary); background: var(--c-primary-soft); display: grid; place-items: center; }
.deal-widget-empty__icon .icon { width: 28px; height: 28px; }
.deal-widget-empty h2 { margin: 18px 0 7px; }
.deal-widget-empty p { max-width: 500px; margin: 0 0 20px; color: var(--c-text-2); }
.deal-widget-apartment { padding: 18px; border: 1px solid var(--c-line); border-radius: 16px; background: #fff; box-shadow: var(--shadow-card); }
.deal-widget-apartment__status { margin-bottom: 14px; display: flex; align-items: center; justify-content: space-between; color: var(--c-muted); font-size: 11px; }
.deal-widget-apartment__main { display: grid; grid-template-columns: minmax(210px, 32%) minmax(0,1fr); gap: 24px; }
.deal-widget-apartment__placeholder { min-height: 220px; padding: 18px; border-radius: 14px; background: #f7f8fc; display: grid; place-items: center; }
.deal-widget-apartment__placeholder img { max-height: 230px; }
.deal-widget-apartment__content h2 { margin: 8px 0 6px; font-size: 24px; }
.deal-widget-apartment__content > p { margin: 0 0 18px; color: var(--c-text-2); }
.deal-widget-apartment__stats { margin: 0; display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--c-line-soft); border-radius: 12px; overflow: hidden; }
.deal-widget-apartment__stats div { padding: 14px; border-right: 1px solid var(--c-line-soft); }
.deal-widget-apartment__stats div:last-child { border-right: 0; }
.deal-widget-apartment__stats dt, .deal-widget-reservation span { color: var(--c-muted); font-size: 10px; }
.deal-widget-apartment__stats dd { margin: 5px 0 0; font-size: 15px; font-weight: 700; }
.deal-widget-reservation { margin-top: 14px; padding: 14px; border-radius: 12px; background: var(--c-reserved-bg); display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.deal-widget-reservation div { display: grid; gap: 4px; }
.deal-widget-apartment__actions { margin-top: 18px; display: flex; gap: 10px; justify-content: flex-end; }
.deal-selector__back { display: inline-block; margin-bottom: 8px; color: var(--c-primary); font-size: 12px; }
.deal-selector__filters { margin-bottom: 14px; padding: 14px; border: 1px solid var(--c-line); border-radius: 14px; background: #fff; display: grid; grid-template-columns: 170px 140px 170px 1fr; gap: 14px; align-items: end; }
.deal-selector__available-only { min-height: 40px; display: flex; align-items: center; gap: 8px; color: var(--c-text-2); }
.deal-selector__workspace { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 14px; align-items: start; }
.deal-selector__grid { min-height: 470px; }
.deal-selector-panel { min-height: 360px; padding: 18px; border: 1px solid var(--c-line); border-radius: 14px; background: #fff; position: sticky; top: 18px; box-shadow: var(--shadow-card); }
.deal-selector-panel__empty { min-height: 320px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: var(--c-muted); }
.deal-selector-panel__empty .icon { width: 34px; height: 34px; margin-bottom: 12px; color: var(--c-primary); }
.deal-selector-panel__empty strong { color: var(--c-text); margin-bottom: 5px; }
.deal-selector-panel h2 { margin: 14px 0 5px; font-size: 22px; }
.deal-selector-panel > div > p { margin: 0 0 14px; color: var(--c-text-2); }
.deal-selector-panel__stats { margin: 0 0 16px; border: 1px solid var(--c-line-soft); border-radius: 10px; overflow: hidden; }
.deal-selector-panel__stats div { padding: 11px 12px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--c-line-soft); }
.deal-selector-panel__stats div:last-child { border-bottom: 0; }
.deal-selector-panel__stats dt { color: var(--c-muted); font-size: 11px; }
.deal-selector-panel__stats dd { margin: 0; font-weight: 700; }
.integration-details--compact { margin: 0 0 12px; }

@media (max-width: 980px) {
  .deal-selector__workspace { grid-template-columns: 1fr; }
  .deal-selector-panel { position: static; }
  .deal-widget-apartment__main { grid-template-columns: 1fr; }
  .deal-selector__filters { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 640px) {
  .bitrix-widget-shell { padding: 10px; }
  .deal-widget__header, .deal-selector__header { flex-direction: column; }
  .deal-widget-apartment__stats, .deal-widget-reservation { grid-template-columns: 1fr; }
  .deal-widget-apartment__stats div { border-right: 0; border-bottom: 1px solid var(--c-line-soft); }
  .deal-widget-apartment__stats div:last-child { border-bottom: 0; }
  .deal-form__type, .deal-selector__filters { grid-template-columns: 1fr; }
}

/* ===== Hotfix 07.3: multi-building selector and Bitrix sliders ===== */
.chessboard__filters {
  grid-template-columns: 155px 130px 125px 115px 170px 185px minmax(150px, 1fr);
  gap: 14px;
}

.deal-selector__header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.deal-selector__filters {
  grid-template-columns: 190px 170px 150px 120px 150px minmax(210px, 1fr);
  gap: 12px;
}

.deal-selector__context {
  min-height: 42px;
  margin: -4px 0 14px;
  padding: 0 14px;
  border: 1px solid var(--c-line-soft);
  border-radius: 11px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: var(--c-text-2);
  font-size: 12px;
}

.deal-selector__context strong {
  color: var(--c-text);
  font-size: 13px;
}

@media (max-width: 1680px) {
  .chessboard__filters {
    grid-template-columns: repeat(4, minmax(130px, 1fr));
  }

  .deal-selector__filters {
    grid-template-columns: repeat(3, minmax(160px, 1fr));
  }
}

@media (max-width: 980px) {
  .deal-selector__header-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .deal-selector__context {
    align-items: flex-start;
    flex-direction: column;
    padding-top: 10px;
    padding-bottom: 10px;
  }
}

@media (max-width: 720px) {
  .chessboard__filters,
  .deal-selector__filters {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 520px) {
  .chessboard__filters,
  .deal-selector__filters {
    grid-template-columns: 1fr;
  }
}


/* Update 08: statuses controlled by Bitrix24 deal stages */
:root {
  --c-processing: #3b82f6;
  --c-processing-bg: #eaf2ff;
  --c-contract: #7c3aed;
  --c-contract-bg: #f1ebff;
}

.summary-chip--processing { color: #2563b9; background: var(--c-processing-bg); }
.summary-chip--contract { color: #6d35c7; background: var(--c-contract-bg); }
.summary-chip--processing .summary-chip__value { color: #1f67c8; }
.summary-chip--contract .summary-chip__value { color: #7137d0; }

.apartment-cell--processing { color: #246bc5; background: var(--c-processing-bg); border-color: #a9caff; }
.apartment-cell--contract { color: #6d35c7; background: var(--c-contract-bg); border-color: #cbb6ff; }

.status-badge--processing { color: #246bc5; background: var(--c-processing-bg); }
.status-badge--contract { color: #6d35c7; background: var(--c-contract-bg); }
.status-badge--unavailable { color: #697386; background: var(--c-disabled-bg); }

.legend__dot--processing { background: var(--c-processing); }
.legend__dot--contract { background: var(--c-contract); }

.sync-result--success { color: #237e36; background: var(--c-free-bg); }
.sync-result--ignored { color: #526176; background: #eef1f5; }
.sync-result--conflict { color: #a86500; background: var(--c-reserved-bg); }
.sync-result--error { color: #d92d20; background: var(--c-sold-bg); }

/* Update 08.3: full apartment lifecycle and closable details panel */
:root {
  --c-selected: #4f46e5;
  --c-selected-bg: #eeedff;
  --c-payment: #0ea5e9;
  --c-payment-bg: #e8f7ff;
  --c-handover: #0d9488;
  --c-handover-bg: #e7f8f5;
}

.chessboard__workspace--panel-closed {
  grid-template-columns: minmax(620px, 1fr);
}
.apartment-panel[hidden],
.apartment-panel:not(.apartment-panel--open),
.deal-link-card[hidden] {
  display: none !important;
}

.summary-bar {
  flex-wrap: wrap;
}
.summary-chip--payment { color: #087fb3; background: var(--c-payment-bg); }
.summary-chip--payment .summary-chip__value { color: #087fb3; }
.summary-chip--handover { color: #087b72; background: var(--c-handover-bg); }
.summary-chip--handover .summary-chip__value { color: #087b72; }

.apartment-cell--active { border: 2px solid var(--c-primary); color: var(--c-primary); background: #eeedff; }
.apartment-cell--payment { color: #087fb3; background: var(--c-payment-bg); border-color: #9ddfff; }
.apartment-cell--handover { color: #087b72; background: var(--c-handover-bg); border-color: #8fd8cf; }

.status-badge--interest { color: #4338ca; background: var(--c-selected-bg); }
.status-badge--payment { color: #087fb3; background: var(--c-payment-bg); }
.status-badge--handover { color: #087b72; background: var(--c-handover-bg); }

.legend__dot--payment { background: var(--c-payment); }
.legend__dot--handover { background: var(--c-handover); }

.workflow-form { display: grid; gap: 18px; }
.workflow-phase { border: 1px solid var(--c-line-soft); border-radius: 14px; padding: 18px; background: #fbfcff; }
.workflow-phase__header { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,360px); gap: 24px; align-items: end; }
.workflow-phase__header > div:first-child { position: relative; padding-left: 46px; }
.workflow-phase__number { position: absolute; left: 0; top: -2px; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; background: var(--c-primary-soft); color: var(--c-primary); font-weight: 700; }
.workflow-phase h3 { margin: 0 0 5px; font-size: 16px; }
.workflow-phase p { margin: 0; color: var(--c-muted); font-size: 12px; }
.workflow-phase__category { margin: 0; }
.workflow-stage-list { margin-top: 16px; display: grid; gap: 8px; }
.workflow-stage-list__empty { padding: 16px; border: 1px dashed var(--c-line); border-radius: 10px; color: var(--c-muted); text-align: center; }
.workflow-stage-row { display: grid; grid-template-columns: minmax(220px,1fr) minmax(260px,360px); gap: 18px; align-items: center; padding: 10px 12px; border: 1px solid var(--c-line-soft); border-radius: 10px; background: #fff; }
.workflow-stage-row__info { display: grid; gap: 3px; min-width: 0; }
.workflow-stage-row__info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.workflow-stage-row__info small { color: var(--c-muted); font-size: 9px; }

@media (max-width: 900px) {
  .workflow-phase__header,
  .workflow-stage-row { grid-template-columns: 1fr; }
}

/* Update 09: apartment editor, layout catalog and price history */
.layouts-page,
.apartment-edit-page,
.layout-edit-page { max-width: 1500px; }

.edit-grid { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 16px; align-items: start; }
.edit-grid__main { min-width: 0; display: grid; gap: 16px; }
.edit-grid__aside { min-width: 0; display: grid; gap: 16px; }
.form-card--sticky { position: sticky; top: 82px; }
.form-field--wide { grid-column: 1 / -1; }
.form-field__hint--warning { color: #9a6500; }
.form-control--compact { height: 37px; }
.form-control--calculated { background: #f7f8fc; color: #29344b; font-weight: 700; }
.form-actions--sticky { position: sticky; bottom: 0; z-index: 20; margin: 0 -2px; padding: 14px 0 16px; background: linear-gradient(180deg, rgba(246,248,252,0) 0%, rgba(246,248,252,.96) 28%, #f6f8fc 100%); }

.image-upload { min-height: 138px; border: 1.5px dashed #cfd4e4; border-radius: 13px; background: #fafbff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; padding: 20px; text-align: center; cursor: pointer; transition: .15s ease; }
.image-upload:hover { border-color: #8e95ff; background: #f6f7ff; transform: translateY(-1px); }
.image-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.image-upload__icon { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; color: var(--c-primary); background: var(--c-primary-soft); }
.image-upload__icon .icon { width: 20px; height: 20px; }
.image-upload strong { color: #303b52; font-size: 12px; }
.image-upload small { color: #8a94a7; font-size: 10px; }
.image-upload--compact { min-height: 118px; padding: 15px; }

.form-check { margin-top: 12px; display: flex; align-items: center; gap: 8px; color: #687389; font-size: 11px; }
.form-check input { width: 16px; height: 16px; }
.form-check--danger { color: #b42318; }

.media-preview { min-height: 280px; border-radius: 14px; background: #f7f8fc; display: grid; place-items: center; overflow: hidden; }
.media-preview img { width: 100%; height: 280px; object-fit: contain; padding: 18px; }
.media-preview--apartment { min-height: 250px; }
.media-preview--apartment img { height: 250px; }

.compact-details { margin: 16px 0 0; border: 1px solid var(--c-line-soft); border-radius: 11px; overflow: hidden; }
.compact-details div { min-height: 44px; padding: 10px 12px; display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 10px; align-items: center; border-bottom: 1px solid var(--c-line-soft); }
.compact-details div:last-child { border-bottom: 0; }
.compact-details dt { color: #8993a5; font-size: 9px; }
.compact-details dd { min-width: 0; margin: 0; color: #344057; font-size: 10px; font-weight: 650; text-align: right; overflow-wrap: anywhere; }

.relation-card { margin-bottom: 10px; padding: 13px; border: 1px solid var(--c-line-soft); border-radius: 11px; display: grid; gap: 5px; }
.relation-card:last-child { margin-bottom: 0; }
.relation-card--reservation { border-color: #ffdca3; background: #fffaf0; }
.relation-card--deal { border-color: #d8dbff; background: #f8f8ff; }
.relation-card span { color: #7f899a; font-size: 9px; }
.relation-card strong { color: #273148; font-size: 12px; }
.relation-card small { color: #7f899a; font-size: 10px; }
.relation-card .button { margin-top: 6px; justify-self: start; }
.table-empty--compact { min-height: 120px; }

.price-history { display: grid; gap: 9px; }
.price-history__item { padding: 13px 14px; border: 1px solid var(--c-line-soft); border-radius: 11px; background: #fbfcfe; display: grid; grid-template-columns: 155px minmax(230px, .8fr) minmax(220px, 1fr); gap: 14px; align-items: center; }
.price-history__date { display: grid; gap: 3px; }
.price-history__date strong { font-size: 11px; }
.price-history__date span { color: #8a94a7; font-size: 9px; }
.price-history__change { display: flex; align-items: center; gap: 8px; font-size: 11px; }
.price-history__change span { color: #8a94a7; text-decoration: line-through; }
.price-history__change b { color: #a8afbc; }
.price-history__change strong { color: #273148; }
.price-history__meta { display: flex; flex-wrap: wrap; gap: 5px; }
.price-history__meta span { min-height: 23px; padding: 0 8px; border-radius: 6px; background: #eef0ff; color: #4b55d8; display: inline-flex; align-items: center; font-size: 9px; }
.price-history__item p { grid-column: 1 / -1; margin: 0; padding-top: 8px; border-top: 1px solid var(--c-line-soft); color: #687389; font-size: 10px; }

.registry-card__header--stacked { align-items: flex-start; flex-direction: column; }
.registry-card__header--stacked .registry-filters { width: 100%; padding: 0; border: 0; background: transparent; grid-template-columns: minmax(220px, 1.4fr) minmax(180px, .9fr) minmax(130px, .6fr) auto auto; }
.layout-catalog { padding: 18px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.layout-catalog__empty { grid-column: 1 / -1; }
.layout-card { min-width: 0; border: 1px solid var(--c-line); border-radius: 14px; background: #fff; overflow: hidden; display: flex; flex-direction: column; transition: transform .15s, box-shadow .15s, border-color .15s; }
.layout-card:hover { transform: translateY(-2px); border-color: #ccd0ff; box-shadow: 0 14px 34px rgba(33,47,91,.09); }
.layout-card__preview { height: 190px; padding: 14px; background: #f7f8fc; display: grid; place-items: center; }
.layout-card__preview img { width: 100%; height: 100%; object-fit: contain; }
.layout-card__body { padding: 14px; display: grid; gap: 8px; }
.layout-card__topline { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.layout-card__topline code { color: #6e7890; font-size: 9px; }
.layout-card h3 { margin: 0; font-size: 15px; }
.layout-card h3 a:hover { color: var(--c-primary); }
.layout-card p { margin: 0; color: #8a94a7; font-size: 10px; }
.layout-card__stats { margin: 4px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.layout-card__stats div { display: grid; gap: 3px; }
.layout-card__stats dt { color: #8a94a7; font-size: 9px; }
.layout-card__stats dd { margin: 0; color: #273148; font-size: 11px; font-weight: 700; }
.layout-card__footer { margin-top: auto; padding: 12px 14px; border-top: 1px solid var(--c-line-soft); display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }

@media (max-width: 1280px) {
  .edit-grid { grid-template-columns: minmax(0, 1fr) 300px; }
  .layout-catalog { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
  .edit-grid { grid-template-columns: 1fr; }
  .form-card--sticky { position: static; }
  .layout-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .price-history__item { grid-template-columns: 1fr; }
  .price-history__item p { grid-column: auto; }
  .registry-card__header--stacked .registry-filters { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  .layout-catalog { grid-template-columns: 1fr; padding: 12px; }
  .registry-card__header--stacked .registry-filters { grid-template-columns: 1fr; }
  .form-field--wide { grid-column: auto; }
  .media-preview, .media-preview img { min-height: 220px; height: 220px; }
}
.deal-selector-panel__image { height: 170px; margin: 0 0 14px; border-radius: 11px; background: #f7f8fc; display: grid; place-items: center; overflow: hidden; }
.deal-selector-panel__image img { width: 100%; height: 100%; padding: 10px; object-fit: contain; }

/* ===== Update 10: real deals registry ===== */
.deals-registry { padding-top: 24px; }
.deals-registry__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.deals-registry__subtitle { margin: 7px 0 0; color: var(--c-text-2); font-size: 12px; }
.deal-summary-grid { margin: 18px 0; display: grid; grid-template-columns: repeat(7, minmax(120px, 1fr)); gap: 10px; }
.deal-summary-card { min-height: 78px; padding: 14px 15px; border: 1px solid var(--c-line); border-radius: 12px; background: #fff; box-shadow: var(--shadow-card); display: grid; align-content: center; gap: 7px; }
.deal-summary-card span { color: var(--c-text-2); font-size: 10px; }
.deal-summary-card strong { color: var(--c-text); font-size: 23px; line-height: 1; }
.deal-summary-card--without_apartment { background: #fafbfe; }
.deal-summary-card--reserved { background: #fff8e9; }
.deal-summary-card--contract { background: #f5f0ff; }
.deal-summary-card--payment { background: #eef8ff; }
.deal-summary-card--handover { background: #eefbf8; }
.deal-summary-card--sold { background: #fff0f0; }
.deal-phase-tabs { min-height: 64px; padding: 0 8px; border: 1px solid var(--c-line); border-radius: 13px; background: #fff; display: flex; align-items: stretch; gap: 8px; overflow-x: auto; }
.deal-phase-tabs__link { position: relative; min-width: max-content; padding: 0 14px; color: #56627a; display: flex; align-items: center; gap: 9px; text-decoration: none; font-size: 12px; font-weight: 600; }
.deal-phase-tabs__link::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; background: transparent; }
.deal-phase-tabs__link b { min-width: 24px; height: 24px; padding: 0 7px; border-radius: 12px; background: #f1f3f7; color: #6b768b; display: grid; place-items: center; font-size: 10px; }
.deal-phase-tabs__link--active { color: var(--c-primary); }
.deal-phase-tabs__link--active::after { background: var(--c-primary); }
.deal-phase-tabs__link--active b { color: var(--c-primary); background: var(--c-primary-soft); }
.deal-registry-filters { margin-top: 14px; padding: 15px; border: 1px solid var(--c-line); border-radius: 13px; background: #fff; display: grid; grid-template-columns: minmax(250px, 1.5fr) repeat(4, minmax(150px, .8fr)); gap: 12px; align-items: end; box-shadow: var(--shadow-card); }
.deal-registry-filters .form-field { margin: 0; }
.deal-registry-filters .form-field > span:first-child { min-height: 18px; }
.deal-registry-filters__search { grid-column: span 2; }
.input-with-icon { position: relative; display: block; }
.input-with-icon .icon { position: absolute; left: 12px; top: 50%; width: 16px; height: 16px; color: #8b95a8; transform: translateY(-50%); pointer-events: none; }
.input-with-icon input { width: 100%; padding-left: 38px !important; }
.deal-registry-filters__actions { display: flex; gap: 8px; align-items: center; }
.deal-registry-filters__actions .button { flex: 1; min-width: 96px; }
.deal-registry-table { margin-top: 16px; }
.deal-registry-table__head,
.deal-registry-row { display: grid; grid-template-columns: 140px minmax(180px, 1.15fr) minmax(180px, 1.15fr) minmax(205px, 1.35fr) 125px 150px 125px 42px; gap: 14px; align-items: center; }
.deal-registry-table__head { min-height: 42px; padding: 0 18px; color: #768197; font-size: 10px; }
.deal-registry-table__body { display: grid; gap: 8px; }
.deal-registry-row { min-height: 84px; padding: 13px 18px; border: 1px solid var(--c-line); border-radius: 12px; background: #fff; cursor: pointer; box-shadow: var(--shadow-card); transition: border-color .15s, box-shadow .15s, transform .15s; }
.deal-registry-row:hover,
.deal-registry-row:focus-visible { border-color: #cbd0ff; box-shadow: 0 10px 26px rgba(35,48,98,.08); transform: translateY(-1px); outline: 0; }
.deal-registry-row > div { min-width: 0; color: #263149; font-size: 11px; }
.deal-registry-row strong { display: block; overflow: hidden; color: #141d31; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.deal-registry-row span { display: block; margin-top: 5px; overflow: hidden; color: #7c879b; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
.deal-registry-row__deal strong { color: var(--c-primary); }
.deal-registry-row__stage { display: grid; gap: 6px; justify-items: start; }
.deal-registry-row__stage > span { margin: 0; max-width: 100%; }
.deal-registry-row__amount { font-size: 12px !important; font-weight: 700; }
.deal-registry-row__empty { margin: 0 !important; color: #9aa3b4 !important; }
.deal-registry-row__select-link { display: inline-block; margin-top: 6px; color: var(--c-primary); text-decoration: none; font-size: 10px; font-weight: 600; }
.deal-registry-row__actions { display: flex; justify-content: flex-end; }
.deal-registry-empty { min-height: 280px; border: 1px dashed #d7dce7; border-radius: 14px; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.deal-registry-empty .icon { width: 38px; height: 38px; color: var(--c-primary); }
.deal-registry-empty h2 { margin: 14px 0 6px; font-size: 17px; }
.deal-registry-empty p { margin: 0; color: var(--c-text-2); }
.pagination a,
.pagination button { width: 42px; height: 42px; border: 1px solid var(--c-line); border-radius: 8px; background: #fff; color: #172137; display: grid; place-items: center; text-decoration: none; }
.pagination button:disabled { opacity: .45; cursor: default; }

/* ===== Update 10: real deal detail ===== */
.deal-detail-layout { display: grid; grid-template-columns: minmax(310px, .72fr) minmax(560px, 1.45fr); gap: 18px; align-items: start; }
.deal-detail-layout__left,
.deal-detail-layout__main { display: grid; gap: 18px; }
.deal-apartment-card { min-height: 225px; }
.deal-apartment-card__actions { grid-column: 1/-1; margin-top: 15px; display: flex; gap: 8px; flex-wrap: wrap; }
.deal-apartment-card__actions .button { min-height: 36px; padding: 0 12px; font-size: 10px; }
.deal-client-card .client-card__head { grid-template-columns: 42px minmax(0,1fr); }
.deal-client-card .client-card__head > div > span { display: block; color: #6f7b91; font-size: 10px; line-height: 1.55; }
.deal-stage-card { padding-top: 0; overflow: hidden; }
.deal-stage-card__header { min-height: 68px; margin: 0 -16px 18px; padding: 0 18px; border-bottom: 1px solid var(--c-line-soft); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.deal-stage-card__header span:first-child { color: #8a94a6; font-size: 9px; }
.deal-stage-card__header h2 { margin-top: 5px; font-size: 15px; }
.deal-stages--dynamic { grid-template-columns: repeat(var(--stage-count), minmax(92px, 1fr)); min-width: calc(var(--stage-count) * 92px); gap: 5px; overflow-x: auto; padding-top: 4px; }
.deal-stages--dynamic::before { left: 46px; right: 46px; top: 16px; }
.deal-stages--dynamic .deal-stages__item { min-width: 92px; }
.deal-stages__item--done { color: #2f8b47; }
.deal-stages__item--done > span { color: #fff; border-color: #55b36c; background: #55b36c; }
.deal-stages__item--success > span { border-color: #48a75e; background: #48a75e; }
.deal-stages__item--failed > span { border-color: #f05d5d; background: #f05d5d; }
.deal-stages--failed-all .deal-stages__item { color: #d94b4b; }
.deal-stages--failed-all .deal-stages__item > span { color: #fff; border-color: #f05d5d; background: #f05d5d; box-shadow: none; }
.deal-stages--failed-all::before { background: #f3b3b3; }
.deal-overview--compact strong { font-size: 16px; }
.deal-overview--compact > div { min-width: 0; }
.deal-overview--compact strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.deal-placeholder-card > header > div span { display: block; margin-top: 4px; color: #8992a4; font-size: 9px; }
.deal-placeholder-card .link-button { border: 0; background: transparent; color: var(--c-primary); font-size: 10px; font-weight: 700; cursor: pointer; }
.deal-card-empty { min-height: 150px; padding: 24px; display: flex; align-items: center; justify-content: center; gap: 18px; color: #7b8699; }
.deal-card-empty > .icon { flex: 0 0 auto; width: 34px; height: 34px; color: var(--c-primary); }
.deal-card-empty h2,
.deal-card-empty h3 { margin: 0 0 6px; color: #1d2639; }
.deal-card-empty h2 { font-size: 17px; }
.deal-card-empty h3 { font-size: 14px; }
.deal-card-empty p { margin: 0; max-width: 480px; font-size: 10px; line-height: 1.5; }
.deal-card-empty--apartment { grid-column: 1/-1; min-height: 180px; flex-wrap: wrap; }
.deal-card-empty--apartment .button { margin-left: auto; }
.deal-card-empty--modal { min-height: 280px; text-align: left; }
.app-modal[hidden] { display: none; }
.app-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 20px; }
.app-modal__backdrop { position: absolute; inset: 0; background: rgba(14,21,39,.48); backdrop-filter: blur(2px); }
.app-modal__dialog { position: relative; width: min(100%, 980px); max-height: calc(100vh - 40px); overflow: auto; border-radius: 16px; background: #fff; box-shadow: 0 24px 80px rgba(14,21,39,.24); }
.app-modal__header { min-height: 72px; padding: 0 20px; border-bottom: 1px solid var(--c-line); display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.app-modal__header span { color: var(--c-text-2); font-size: 9px; }
.app-modal__header h2 { margin: 4px 0 0; font-size: 18px; }
.app-modal__body { padding: 18px; }
body.is-modal-open { overflow: hidden; }

@media (max-width: 1500px) {
  .deal-summary-grid { grid-template-columns: repeat(4, minmax(130px,1fr)); }
  .deal-registry-filters { grid-template-columns: repeat(4, minmax(145px,1fr)); }
  .deal-registry-filters__search { grid-column: span 2; }
  .deal-registry-table { overflow-x: auto; }
  .deal-registry-table__head,
  .deal-registry-row { min-width: 1220px; }
}

@media (max-width: 1180px) {
  .deals-page { padding-left: 22px; padding-right: 22px; }
  .deal-detail-layout { grid-template-columns: 1fr; }
  .deal-detail-layout__left { grid-template-columns: repeat(2, minmax(0,1fr)); align-items: start; }
  .deal-detail-layout__left .deal-apartment-card { grid-column: 1/-1; }
}

@media (max-width: 820px) {
  .deal-summary-grid { grid-template-columns: repeat(2, minmax(120px,1fr)); }
  .deal-registry-filters { grid-template-columns: 1fr 1fr; }
  .deal-registry-filters__search { grid-column: 1/-1; }
  .deal-registry-filters__actions { grid-column: 1/-1; }
  .deal-detail-layout__left { grid-template-columns: 1fr; }
  .apartment-summary-card { grid-template-columns: 1fr; }
  .apartment-summary-card__image { border-right: 0; border-bottom: 1px solid var(--c-line-soft); padding: 0 0 14px; }
  .deal-overview--compact { grid-template-columns: 1fr; }
  .deal-overview--compact > div { padding: 12px 0; border-right: 0; border-bottom: 1px solid var(--c-line-soft); }
  .deal-overview--compact > div:last-child { border-bottom: 0; }
}

/* ===== Hotfix 10.2: styled deal filters and compact stage column ===== */
.deal-registry-filters {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 13px 12px;
  padding: 18px;
  border-color: #e4e7ee;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
}
.deal-registry-filters__field { min-width: 0; }
.deal-registry-filters__search { grid-column: span 4; }
.deal-registry-filters__field--category,
.deal-registry-filters__field--stage,
.deal-registry-filters__field--manager,
.deal-registry-filters__field--apartment { grid-column: span 2; }
.deal-registry-filters__field--building,
.deal-registry-filters__field--entrance,
.deal-registry-filters__field--date-from,
.deal-registry-filters__field--date-to { grid-column: span 2; }
.deal-registry-filters__actions { grid-column: span 4; align-self: end; }
.deal-registry-filters .form-field__label {
  min-height: auto !important;
  margin: 0 0 1px 1px;
  color: #59657c;
  font-size: 10px;
  font-weight: 650;
  letter-spacing: .01em;
}
.deal-registry-filters .form-control {
  height: 42px;
  border: 1px solid #dde2eb;
  border-radius: 9px;
  background-color: #fff;
  color: #263149;
  padding: 0 13px;
  box-shadow: 0 1px 2px rgba(21, 31, 56, .025);
  font-size: 11px;
}
.deal-registry-filters .form-control:hover { border-color: #cbd2df; }
.deal-registry-filters .form-control:focus {
  border-color: #7e87ff;
  box-shadow: 0 0 0 3px rgba(56, 67, 255, .09);
}
.deal-registry-filters select.form-control {
  appearance: none;
  padding-right: 38px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M3 5.25 7 9l4-3.75' stroke='%236C7890' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 13px center;
}
.deal-registry-filters input[type="date"].form-control { color-scheme: light; }
.deal-registry-filters .input-with-icon .form-control { padding-left: 39px; }
.deal-registry-filters__actions .button {
  min-height: 42px;
  border-radius: 9px;
  font-size: 11px;
}
.deal-registry-filters__actions .button--ghost {
  border: 1px solid transparent;
  color: #6f7b90;
  background: transparent;
}
.deal-registry-filters__actions .button--ghost:hover {
  border-color: #e2e6ee;
  color: var(--c-primary);
  background: #fff;
}
.deal-registry-row__stage { min-width: 0; width: 100%; }
.deal-registry-row__stage > span {
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.deal-registry-row__stage .deal-status {
  width: auto;
  max-width: 100%;
  min-height: 27px;
  padding: 0 10px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 10px;
}

@media (max-width: 1500px) {
  .deal-registry-filters__search { grid-column: span 4; }
  .deal-registry-filters__field--category,
  .deal-registry-filters__field--stage,
  .deal-registry-filters__field--manager,
  .deal-registry-filters__field--apartment { grid-column: span 2; }
  .deal-registry-filters__field--building,
  .deal-registry-filters__field--entrance,
  .deal-registry-filters__field--date-from,
  .deal-registry-filters__field--date-to { grid-column: span 2; }
  .deal-registry-filters__actions { grid-column: span 4; }
}

@media (max-width: 1180px) {
  .deal-registry-filters { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .deal-registry-filters__search { grid-column: span 3; }
  .deal-registry-filters__field--category,
  .deal-registry-filters__field--stage,
  .deal-registry-filters__field--manager,
  .deal-registry-filters__field--apartment,
  .deal-registry-filters__field--building,
  .deal-registry-filters__field--entrance,
  .deal-registry-filters__field--date-from,
  .deal-registry-filters__field--date-to { grid-column: span 2; }
  .deal-registry-filters__actions { grid-column: span 3; }
}

@media (max-width: 760px) {
  .deal-registry-filters { grid-template-columns: 1fr 1fr; padding: 14px; }
  .deal-registry-filters__search,
  .deal-registry-filters__field,
  .deal-registry-filters__actions { grid-column: span 1; }
  .deal-registry-filters__search,
  .deal-registry-filters__actions { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
  .deal-registry-filters { grid-template-columns: 1fr; }
  .deal-registry-filters__search,
  .deal-registry-filters__field,
  .deal-registry-filters__actions { grid-column: 1; }
}

/* Hotfix 10.3: interface cleanup and small layout corrections */
.deal-client-card .client-card__head > div span {
  display: block;
  color: #6f7b91;
  font-size: 10px;
  line-height: 1.55;
}

.deal-client-card .client-card__head > span.client-card__avatar {
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  letter-spacing: .02em;
}

.layouts-page .page-heading {
  margin-bottom: 18px;
}

/* Update 11: financial plans */
.button--small { min-height: 34px; padding: 0 13px; font-size: 11px; }
.financial-plan-card__header-actions { display: flex; align-items: center; gap: 12px; }
.financial-plan-status { display: inline-flex; align-items: center; min-height: 27px; padding: 0 10px; border-radius: 8px; font-size: 10px; font-weight: 700; }
.financial-plan-status--draft { background: #f2f4f7; color: #596579; }
.financial-plan-status--approved { background: #e8f7ed; color: #248442; }
.financial-plan-status--fully_paid { background: #e7f8f4; color: #087b65; }
.financial-plan-status--cancelled { background: #fff0ef; color: #d0382f; }
.financial-plan-summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
.financial-plan-summary--compact { grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 15px 18px 0; margin: 0; }
.financial-plan-summary > div { min-width: 0; padding: 13px 14px; border: 1px solid var(--c-line-soft); border-radius: 11px; background: #fbfcfd; display: grid; gap: 5px; }
.financial-plan-summary span { color: #7d8799; font-size: 10px; }
.financial-plan-summary strong { color: var(--c-text); font-size: 16px; line-height: 1.15; }
.financial-plan-summary__danger { border-color: #fecaca !important; background: #fff5f4 !important; }
.financial-plan-summary__danger strong { color: #d92d20; }
.finance-table--payments { grid-template-columns: 1fr; padding-top: 12px; }
.finance-table--payments .finance-table__head,
.finance-table--payments .finance-table__row { grid-template-columns: minmax(160px, 1.5fr) 95px 120px 120px 110px; }
.payment-status { justify-self: start; display: inline-flex; align-items: center; min-height: 25px; padding: 0 8px; border-radius: 7px; font-size: 9px; font-weight: 700; white-space: nowrap; }
.payment-status--planned { color: #3260ba; background: #eaf2ff; }
.payment-status--partial { color: #9a6500; background: #fff6df; }
.payment-status--paid { color: #248442; background: #e8f7ed; }
.payment-status--overdue { color: #d92d20; background: #fff0ef; }
.payment-status--cancelled { color: #7b8598; background: #f0f2f5; }
.financial-plan-card__more { width: 100%; min-height: 36px; border: 0; border-top: 1px solid var(--c-line-soft); background: #fff; color: var(--c-primary); font-size: 10px; font-weight: 650; cursor: pointer; }
.financial-plan-card__more:hover { background: #fafaff; }
.financial-plan-editor-modal { width: min(100%, 760px); }
.payment-schedule-modal--wide { width: min(100%, 1240px); }
.app-modal__footer { min-height: 68px; padding: 12px 18px; border-top: 1px solid var(--c-line-soft); display: flex; align-items: center; justify-content: flex-end; gap: 10px; background: #fff; position: sticky; bottom: 0; z-index: 3; }
.financial-plan-form { display: grid; gap: 16px; }
.financial-plan-form .form-field > span,
.payment-schedule-body .form-field > span { color: #526078; font-size: 10px; font-weight: 650; }
.financial-plan-form input,
.financial-plan-form select,
.financial-plan-form textarea,
.payment-schedule-body input,
.payment-schedule-body select,
.payment-schedule-body textarea { width: 100%; border: 1px solid #dde2eb; border-radius: 9px; background: #fff; color: var(--c-text); outline: 0; }
.financial-plan-form input,
.financial-plan-form select,
.payment-schedule-body input,
.payment-schedule-body select { min-height: 40px; padding: 0 11px; }
.financial-plan-form textarea,
.payment-schedule-body textarea { padding: 10px 11px; resize: vertical; }
.financial-plan-form input:focus,
.financial-plan-form select:focus,
.financial-plan-form textarea:focus,
.payment-schedule-body input:focus,
.payment-schedule-body select:focus,
.payment-schedule-body textarea:focus { border-color: #9097ff; box-shadow: 0 0 0 3px rgba(56,67,255,.09); }
.form-field--checkbox { flex-direction: row; align-items: center; align-self: end; min-height: 40px; }
.form-field--checkbox input { width: 17px; min-height: 17px; }
.financial-plan-form__hint { margin: 0; color: #7e899c; font-size: 10px; line-height: 1.5; }
.payment-schedule-body { display: grid; gap: 18px; }
.payment-schedule-list { display: grid; gap: 10px; }
.payment-schedule-item { border: 1px solid var(--c-line); border-radius: 12px; background: #fff; overflow: hidden; }
.payment-schedule-item--cancelled { opacity: .68; background: #fafbfc; }
.payment-schedule-item__main { min-height: 66px; padding: 10px 13px; display: grid; grid-template-columns: 32px minmax(180px, 1.4fr) repeat(3, minmax(100px, .7fr)) 100px; gap: 12px; align-items: center; }
.payment-schedule-item__number { width: 28px; height: 28px; border-radius: 8px; background: var(--c-primary-soft); color: var(--c-primary); display: grid; place-items: center; font-size: 10px; font-weight: 700; }
.payment-schedule-item__main > div { display: grid; gap: 4px; min-width: 0; }
.payment-schedule-item__main > div > span { color: #8791a3; font-size: 9px; }
.payment-schedule-item__main > div > b,
.payment-schedule-item__main > div > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.payment-schedule-item__main small { color: #8791a3; font-size: 9px; }
.payment-schedule-item__payments { padding: 0 13px 10px 57px; display: grid; gap: 6px; }
.actual-payment-row { min-height: 35px; padding: 6px 9px; border-radius: 8px; background: #f8fafb; display: grid; grid-template-columns: 90px 120px minmax(150px, 1fr) minmax(120px, .8fr) 30px; gap: 10px; align-items: center; color: #667187; font-size: 9px; }
.actual-payment-row strong { color: #238044; }
.icon-button--danger { color: #d92d20; }
.payment-schedule-item__actions { padding: 9px 13px 11px 57px; border-top: 1px solid var(--c-line-soft); display: flex; align-items: flex-start; gap: 10px; flex-wrap: wrap; }
.inline-editor { min-width: 0; }
.inline-editor > summary { list-style: none; color: var(--c-primary); font-size: 10px; font-weight: 650; cursor: pointer; }
.inline-editor > summary::-webkit-details-marker { display: none; }
.inline-editor[open] { flex-basis: 100%; padding: 12px; border: 1px solid #e1e4ff; border-radius: 10px; background: #fafaff; }
.inline-editor[open] > summary { margin-bottom: 12px; }
.inline-editor form { display: grid; gap: 12px; }
.inline-editor--add { padding: 14px; border: 1px dashed #cfd5e1; border-radius: 12px; background: #fbfcfd; }
.inline-editor--add[open] { border-style: solid; }
.link-button--danger { color: #d92d20; }
.payment-schedule-item__actions > form { display: flex; align-items: center; gap: 8px; }
.payment-schedule-item__actions > form input { min-height: 30px; width: 220px; }
.financial-plan-history { padding-top: 4px; }
.financial-plan-history h3 { margin: 0 0 10px; font-size: 14px; }
.financial-plan-history__row { min-height: 38px; display: grid; grid-template-columns: 105px 170px 1fr; gap: 12px; align-items: center; border-top: 1px solid var(--c-line-soft); color: #687388; font-size: 9px; }
.financial-plan-history__row strong { color: var(--c-text); }
.payment-schedule-footer { justify-content: flex-end; }
.deal-card-empty--compact { min-height: 90px; }

@media (max-width: 1200px) {
  .financial-plan-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .financial-plan-summary--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .payment-schedule-item__main { grid-template-columns: 32px minmax(160px, 1fr) repeat(2, 110px) 100px; }
  .payment-schedule-item__main > div:nth-of-type(4) { display: none; }
}
@media (max-width: 820px) {
  .financial-plan-summary,
  .financial-plan-summary--compact { grid-template-columns: 1fr 1fr; }
  .finance-table--payments { overflow-x: auto; }
  .finance-table--payments .finance-table__head,
  .finance-table--payments .finance-table__row { min-width: 720px; }
  .payment-schedule-item__main { grid-template-columns: 32px 1fr 100px; }
  .payment-schedule-item__main > div:nth-of-type(n+3) { display: none; }
  .payment-schedule-item__payments { padding-left: 13px; }
  .actual-payment-row { grid-template-columns: 80px 110px 1fr 30px; }
  .actual-payment-row > span:nth-of-type(3) { display: none; }
  .payment-schedule-item__actions { padding-left: 13px; }
  .financial-plan-history__row { grid-template-columns: 95px 1fr; }
  .financial-plan-history__row span { grid-column: 1 / -1; padding-bottom: 8px; }
}

/* Hotfix 11.1: stable empty state and no-JS modal fallback */
.financial-plan-card--empty {
  min-height: 260px;
  display: flex;
  flex-direction: column;
}
.financial-plan-card--empty > header {
  flex: 0 0 auto;
}
.financial-plan-empty {
  flex: 1 1 auto;
  min-height: 170px;
  padding: 28px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  color: #7b8699;
}
.financial-plan-empty > .icon {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  color: var(--c-primary);
}
.financial-plan-empty h3 {
  margin: 0 0 7px;
  color: #1d2639;
  font-size: 15px;
}
.financial-plan-empty p {
  margin: 0;
  max-width: 520px;
  color: #7b8699;
  font-size: 10px;
  line-height: 1.5;
}
.app-modal--target {
  display: none;
}
.app-modal--target:target,
.app-modal--target.app-modal--open {
  display: grid;
}
.app-modal__backdrop {
  display: block;
}
@media (max-width: 820px) {
  .financial-plan-card--empty { min-height: 235px; }
  .financial-plan-empty { min-height: 145px; padding: 22px 18px; }
}

/* ===== Update 13A: full deal workspace inside Bitrix24 tab ===== */
.deal-detail-page--embedded {
  max-width: 1580px;
  margin: 0 auto;
  padding: 0;
}
.deal-detail-page--embedded .deal-heading {
  margin-bottom: 16px;
  padding: 18px 20px;
  border: 1px solid var(--c-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--shadow-card);
}
.deal-detail-page--embedded .deal-heading__title h1 {
  font-size: 24px;
}
@media (max-width: 820px) {
  .deal-detail-page--embedded .deal-heading {
    align-items: flex-start;
  }
  .deal-detail-page--embedded .deal-heading__actions {
    width: 100%;
    justify-content: flex-start;
  }
}

/* ===== Update 13A.1: payment workspace and global action loader ===== */
.button--danger-soft {
  color: #b42318;
  border-color: #ffd2cf;
  background: #fff5f4;
}
.button--danger-soft:hover {
  color: #912018;
  border-color: #fda29b;
  background: #ffebe9;
}
.button--danger {
  color: #fff;
  border-color: #d92d20;
  background: #d92d20;
}
.button--danger:hover {
  border-color: #b42318;
  background: #b42318;
}

.app-loader {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: grid;
  place-items: center;
  background: rgba(242, 245, 251, .58);
  backdrop-filter: blur(2px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .16s ease, visibility .16s ease;
}
.app-loader--visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.app-loader__spinner {
  width: 48px;
  height: 48px;
  border: 5px solid rgba(74, 82, 255, .18);
  border-top-color: var(--c-primary);
  border-radius: 50%;
  filter: drop-shadow(0 8px 18px rgba(74, 82, 255, .22));
  animation: app-loader-spin .72s linear infinite;
}

body.app-is-loading {
  cursor: progress;
}
@keyframes app-loader-spin {
  to { transform: rotate(360deg); }
}

.financial-plan-workspace {
  overflow: hidden;
  border-color: #e1e5ef;
  box-shadow: 0 14px 42px rgba(24, 32, 51, .055);
}
.financial-plan-workspace__header {
  min-height: 94px;
  padding: 20px 24px !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid #e8ebf2;
  background: linear-gradient(135deg, #fff 0%, #fbfbff 100%);
}
.financial-plan-workspace__eyebrow {
  margin: 0 0 5px !important;
  color: var(--c-primary) !important;
  font-size: 9px !important;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.financial-plan-workspace__header h2 {
  margin: 0;
  color: #161e2f;
  font-size: 20px;
  line-height: 1.2;
}
.financial-plan-workspace__header p {
  margin: 5px 0 0;
  color: #6f7b91;
  font-size: 11px;
  line-height: 1.45;
}
.financial-plan-workspace__header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.financial-plan-state {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 750;
  white-space: nowrap;
}
.financial-plan-state--draft { color: #9a6500; background: #fff6df; }
.financial-plan-state--approved { color: #248442; background: #e8f7ed; }
.financial-plan-state--fully_paid { color: #087b65; background: #e7f8f4; }
.financial-plan-state--cancelled { color: #d92d20; background: #fff0ef; }

.financial-plan-confirmation {
  padding: 24px;
  display: grid;
  gap: 22px;
  background: #fff;
}
.financial-plan-confirmation__alert { margin: 0; }
.financial-plan-confirmation__heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.financial-plan-confirmation__heading > div > span {
  display: inline-flex;
  margin-bottom: 7px;
  color: var(--c-primary);
  font-size: 9px;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.financial-plan-confirmation__heading h3 {
  margin: 0;
  color: #172033;
  font-size: 17px;
}
.financial-plan-confirmation__heading p {
  max-width: 720px;
  margin: 6px 0 0;
  color: #758097;
  font-size: 10px;
  line-height: 1.55;
}
.financial-plan-confirmation__stage {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 11px;
  border-radius: 9px;
  color: #315fba;
  background: #edf4ff;
  font-size: 9px;
  font-weight: 700;
  white-space: nowrap;
}
.financial-plan-confirmation__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.financial-plan-confirmation__facts > div {
  min-width: 0;
  padding: 18px;
  border: 1px solid #e1e5ef;
  border-radius: 14px;
  background: #fafbff;
}
.financial-plan-confirmation__facts span,
.financial-plan-confirmation__facts small {
  display: block;
  color: #768198;
  font-size: 9px;
}
.financial-plan-confirmation__facts strong {
  display: block;
  margin: 7px 0 5px;
  color: #182033;
  font-size: 22px;
  line-height: 1.2;
}
.financial-plan-confirmation__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  padding: 20px;
  border: 1px solid #e6e9f1;
  border-radius: 14px;
  background: #fff;
}
.financial-plan-confirmation__grid .form-field > span,
.payment-management .form-field > span,
.payment-change-dialog .form-field > span {
  color: #526078;
  font-size: 10px;
  font-weight: 650;
}
.financial-plan-confirmation__grid input,
.financial-plan-confirmation__grid select,
.financial-plan-confirmation__grid textarea,
.payment-management input,
.payment-management select,
.payment-management textarea,
.payment-change-dialog input,
.payment-change-dialog select,
.payment-change-dialog textarea {
  width: 100%;
  border: 1px solid #d9deea;
  border-radius: 10px;
  background: #fff;
  color: #182033;
  outline: 0;
  transition: border-color .16s ease, box-shadow .16s ease;
}
.financial-plan-confirmation__grid input,
.financial-plan-confirmation__grid select,
.payment-management input,
.payment-management select,
.payment-change-dialog input,
.payment-change-dialog select {
  min-height: 44px;
  padding: 0 12px;
}
.financial-plan-confirmation__grid textarea,
.payment-management textarea,
.payment-change-dialog textarea {
  padding: 11px 12px;
  resize: vertical;
}
.financial-plan-confirmation__grid input:focus,
.financial-plan-confirmation__grid select:focus,
.financial-plan-confirmation__grid textarea:focus,
.payment-management input:focus,
.payment-management select:focus,
.payment-management textarea:focus,
.payment-change-dialog input:focus,
.payment-change-dialog select:focus,
.payment-change-dialog textarea:focus {
  border-color: #8d94ff;
  box-shadow: 0 0 0 3px rgba(56, 67, 255, .09);
}
.financial-plan-confirmation__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-top: 2px;
}
.financial-plan-confirmation__actions > div {
  display: grid;
  gap: 4px;
}
.financial-plan-confirmation__actions strong {
  color: #273248;
  font-size: 10px;
}
.financial-plan-confirmation__actions span {
  color: #7c879a;
  font-size: 9px;
}
.financial-plan-confirmation__actions--termination { margin-top: 20px; }
.financial-plan-confirmation__actions--refund { margin-top: 16px; }
.financial-plan-confirmation__submit { min-height: 46px; padding-inline: 22px; }

.financial-plan-empty-state {
  min-height: 190px;
  padding: 32px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.financial-plan-empty-state__icon {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: var(--c-primary);
  background: var(--c-primary-soft);
}
.financial-plan-empty-state__icon .icon { width: 23px; height: 23px; }
.financial-plan-empty-state h3 { margin: 0 0 6px; color: #182033; font-size: 15px; }
.financial-plan-empty-state p { max-width: 650px; margin: 0; color: #758097; font-size: 10px; line-height: 1.55; }
.financial-plan-empty-state--warning .financial-plan-empty-state__icon { color: #a15c00; background: #fff4dc; }

.financial-plan-next-step {
  margin: 20px 24px 0;
  padding: 15px 17px;
  border: 1px solid #dfe3ff;
  border-radius: 13px;
  background: #f8f8ff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.financial-plan-next-step > div { display: grid; gap: 4px; }
.financial-plan-next-step span { color: var(--c-primary); font-size: 9px; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; }
.financial-plan-next-step strong { color: #242e44; font-size: 11px; }

.financial-plan-overview {
  padding: 20px 24px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  border-bottom: 1px solid #e8ebf2;
}
.financial-plan-overview > div {
  min-width: 0;
  padding: 14px 15px;
  border: 1px solid #e3e7ef;
  border-radius: 12px;
  background: #fafbfc;
}
.financial-plan-overview span { display: block; margin-bottom: 6px; color: #788399; font-size: 9px; }
.financial-plan-overview strong { color: #182033; font-size: 16px; }
.financial-plan-overview__danger { border-color: #fecaca !important; background: #fff5f4 !important; }
.financial-plan-overview__danger strong { color: #d92d20; }

.financial-plan-table { width: 100%; }
.financial-plan-table__head,
.financial-plan-table__row {
  display: grid;
  grid-template-columns: minmax(220px, 1.45fr) minmax(120px, .75fr) minmax(150px, .9fr) minmax(130px, .75fr);
  align-items: center;
  gap: 18px;
  padding: 0 24px;
  border-bottom: 1px solid #edf0f5;
}
.financial-plan-table__head {
  min-height: 48px;
  color: #818ba0;
  background: #fbfcfe;
  font-size: 9px;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: .035em;
}
.financial-plan-table__row { min-height: 72px; color: #263047; font-size: 11px; }
.financial-plan-table__row > div { display: grid; gap: 4px; }
.financial-plan-table__row strong { color: #182033; font-size: 12px; }
.financial-plan-table__row small { color: #8a94a7; font-size: 9px; }
.financial-plan-table__more { padding: 12px 24px; color: #7a8599; background: #fbfcfd; font-size: 9px; }

.payment-management {
  border-top: 1px solid #e4e8f0;
  scroll-margin-top: 18px;
}
.payment-management__summary {
  min-height: 62px;
  padding: 0 24px;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  color: #273248;
  background: #fff;
  cursor: pointer;
  user-select: none;
}
.payment-management__summary::-webkit-details-marker { display: none; }
.payment-management__summary > span:first-child { display: grid; gap: 3px; }
.payment-management__summary strong { font-size: 12px; }
.payment-management__summary small { color: #7b8699; font-size: 9px; }
.payment-management__summary-action { color: var(--c-primary); font-size: 10px; font-weight: 700; }
.payment-management[open] .payment-management__summary-action { font-size: 0; }
.payment-management[open] .payment-management__summary-action::after { content: 'Свернуть'; font-size: 10px; }
.payment-management__body {
  padding: 22px 24px 26px;
  border-top: 1px solid #e8ebf2;
  background: #f7f9fc;
}
.payment-management__list { display: grid; gap: 14px; }
.payment-card {
  border: 1px solid #dfe4ed;
  border-radius: 15px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 5px 18px rgba(24, 32, 51, .035);
}
.payment-card--cancelled { opacity: .65; background: #f8f9fb; }
.payment-card__main {
  min-height: 92px;
  padding: 16px 18px;
  display: grid;
  grid-template-columns: minmax(210px, 1.35fr) repeat(3, minmax(125px, .75fr)) auto;
  align-items: center;
  gap: 16px;
}
.payment-card__title { display: grid; gap: 5px; }
.payment-card__title strong { color: #172033; font-size: 15px; }
.payment-card__title small { color: #778298; font-size: 9px; }
.payment-card__main > div:not(.payment-card__title) { display: grid; gap: 5px; }
.payment-card__main > div:not(.payment-card__title) span { color: #7c879b; font-size: 9px; }
.payment-card__main > div:not(.payment-card__title) b { color: #172033; font-size: 13px; }
.payment-card__payments,
.payment-card__actions {
  padding: 13px 18px;
  border-top: 1px solid #e8ebf2;
}
.payment-card__section-title { display: block; margin-bottom: 9px; color: #4d5870; font-size: 9px; text-transform: uppercase; letter-spacing: .045em; }
.payment-card__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 10px;
  background: #fcfdff;
}
.payment-card__cancel {
  min-height: 32px;
  padding: 0 11px;
  border: 1px solid #fecdca;
  border-radius: 8px;
  color: #d92d20;
  background: #fff;
  font: inherit;
  font-size: 10px;
  font-weight: 650;
  cursor: pointer;
}
.payment-card__cancel:hover { border-color: #f97066; background: #fff5f4; }
.payment-editor { min-width: 0; }
.payment-editor > summary {
  min-height: 32px;
  padding: 0 11px;
  list-style: none;
  display: inline-flex;
  align-items: center;
  border: 1px solid #dfe3ff;
  border-radius: 8px;
  color: var(--c-primary);
  background: #fff;
  font-size: 10px;
  font-weight: 650;
  cursor: pointer;
}
.payment-editor > summary::-webkit-details-marker { display: none; }
.payment-editor[open] {
  flex-basis: 100%;
  padding: 16px;
  border: 1px solid #dfe3ff;
  border-radius: 12px;
  background: #f8f8ff;
}
.payment-editor[open] > summary { margin-bottom: 15px; }
.payment-editor form { display: grid; gap: 14px; }
.payment-editor__actions { display: flex; justify-content: flex-end; }
.payment-editor--add { margin-top: 16px; padding: 15px; border: 1px dashed #cbd2df; border-radius: 13px; background: #fff; }
.payment-editor--add[open] { border-style: solid; }
.payment-management__footer { display: flex; justify-content: flex-end; margin-top: 18px; }

.payment-change-dialog { width: min(100%, 620px); }
.payment-change-dialog__body { display: grid; gap: 16px; }
.payment-change-dialog__body > p { margin: 0; color: #717d92; font-size: 10px; line-height: 1.55; }

@media (max-width: 1100px) {
  .financial-plan-confirmation__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .payment-card__main { grid-template-columns: minmax(190px, 1.2fr) repeat(2, minmax(115px, .7fr)) auto; }
  .payment-card__main > div:nth-of-type(4) { display: none; }
}
@media (max-width: 820px) {
  .financial-plan-workspace__header,
  .financial-plan-confirmation__heading,
  .financial-plan-confirmation__actions,
  .financial-plan-next-step { align-items: flex-start; flex-direction: column; }
  .financial-plan-workspace__header-actions { width: 100%; justify-content: flex-start; }
  .financial-plan-confirmation__facts,
  .financial-plan-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .financial-plan-table { overflow-x: auto; }
  .financial-plan-table__head,
  .financial-plan-table__row { min-width: 700px; }
  .payment-card__main { grid-template-columns: minmax(180px, 1fr) minmax(120px, .7fr) auto; }
  .payment-card__main > div:nth-of-type(3),
  .payment-card__main > div:nth-of-type(4) { display: none; }
}
@media (max-width: 620px) {
  .financial-plan-workspace__header,
  .financial-plan-confirmation,
  .payment-management__body { padding: 18px !important; }
  .financial-plan-confirmation__grid,
  .financial-plan-confirmation__facts,
  .financial-plan-overview { grid-template-columns: 1fr; }
  .financial-plan-confirmation__stage { white-space: normal; }
  .payment-management__summary { padding-inline: 18px; }
  .payment-card__main { grid-template-columns: 1fr auto; }
  .payment-card__main > div:not(.payment-card__title) { display: none; }
  .actual-payment-row { grid-template-columns: 80px 100px 1fr 30px; }
  .actual-payment-row > span:nth-of-type(3) { display: none; }
}

/* ===== Update 13A.2: payment method sync and rebuild ===== */
.financial-plan-confirmation__facts > label {
  min-width: 0;
  padding: 18px;
  border: 1px solid #e1e5ef;
  border-radius: 14px;
  background: #fafbff;
}
.financial-plan-confirmation__payment-type {
  display: grid;
  gap: 8px;
}
.financial-plan-confirmation__payment-type > span,
.financial-plan-confirmation__payment-type > small {
  color: #768198;
  font-size: 9px;
}
.financial-plan-confirmation__payment-type select {
  width: 100%;
  min-height: 46px;
  padding: 0 13px;
  border: 1px solid #d9deea;
  border-radius: 11px;
  background: #fff;
  color: #182033;
  font-size: 14px;
  font-weight: 700;
  outline: 0;
}
.financial-plan-confirmation__payment-type select:focus {
  border-color: #8d94ff;
  box-shadow: 0 0 0 3px rgba(56, 67, 255, .09);
}
.financial-plan-confirmation--rebuild {
  margin: 20px 24px;
  border: 1px solid #dfe3ff;
  border-radius: 16px;
  background: linear-gradient(180deg, #fbfbff 0%, #fff 100%);
}
.financial-plan-mismatch {
  margin: 20px 24px 0;
}
.payment-management .form-field small {
  display: block;
  margin-top: 6px;
  color: #7d8799;
  font-size: 9px;
  line-height: 1.45;
}
@media (max-width: 760px) {
  .financial-plan-confirmation--rebuild {
    margin: 14px;
  }
}


/* ===== Update 13A.3: payment history and locked schedules ===== */
textarea {
  font-family: inherit;
  font-size: inherit;
}

.financial-plan-confirmation [data-payment-type-group][hidden] {
  display: none !important;
}

.payment-editor__actions {
  gap: 8px;
}

.payment-editor__disabled {
  min-height: 32px;
  padding: 0 11px;
  display: inline-flex;
  align-items: center;
  border: 1px solid #e2e6ee;
  border-radius: 8px;
  color: #9aa3b3;
  background: #f3f5f8;
  font-size: 10px;
  font-weight: 650;
  cursor: not-allowed;
  user-select: none;
}

.payment-history {
  border-top: 1px solid #e4e8f0;
  background: #fff;
}

.payment-history__summary {
  min-height: 62px;
  padding: 0 24px;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  color: #273248;
  background: #fff;
  cursor: pointer;
  user-select: none;
}

.payment-history__summary::-webkit-details-marker {
  display: none;
}

.payment-history__summary > span:first-child {
  display: grid;
  gap: 3px;
}

.payment-history__summary strong {
  font-size: 12px;
}

.payment-history__summary small {
  color: #7b8699;
  font-size: 9px;
}

.payment-history__summary-action {
  color: var(--c-primary);
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}

.payment-history[open] .payment-history__summary-action {
  font-size: 0;
}

.payment-history[open] .payment-history__summary-action::after {
  content: 'Свернуть';
  font-size: 10px;
}

.payment-history__body {
  padding: 8px 24px 22px;
  border-top: 1px solid #e8ebf2;
  background: #f7f9fc;
}

.payment-history__item {
  min-height: 78px;
  padding: 14px 0;
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr) auto;
  align-items: start;
  gap: 18px;
  border-bottom: 1px solid #e4e8ef;
}

.payment-history__item:last-child {
  border-bottom: 0;
}

.payment-history__item time,
.payment-history__item > small {
  color: #7e899d;
  font-size: 9px;
  line-height: 1.5;
}

.payment-history__item > div {
  display: grid;
  gap: 4px;
}

.payment-history__item strong {
  color: #202a40;
  font-size: 11px;
}

.payment-history__item span {
  color: #5f6b82;
  font-size: 10px;
  line-height: 1.45;
}

.payment-history__item p {
  margin: 4px 0 0;
  padding: 8px 10px;
  border-left: 3px solid #aeb4ff;
  border-radius: 0 7px 7px 0;
  color: #48546b;
  background: #f0f1ff;
  font-size: 9px;
  line-height: 1.45;
}

.payment-history--empty {
  opacity: .58;
}

.payment-history--empty .payment-history__summary {
  cursor: default;
}

.payment-history--empty .payment-history__summary-action {
  color: #8d96a7;
}

@media (max-width: 620px) {
  .payment-history__summary,
  .payment-history__body {
    padding-inline: 18px;
  }

  .payment-history__item {
    grid-template-columns: 1fr;
    gap: 5px;
  }
}

/* ===== 13B: chessboard columns grouped by apartment layout ===== */
.building-grid--layouts {
  min-width: max-content;
  gap: 24px;
}

.entrance-grid--layouts {
  flex: 0 0 auto;
  width: calc(42px + var(--layout-columns) * 66px);
  min-width: calc(42px + var(--layout-columns) * 66px);
}

.layout-grid__header,
.entrance-grid__row--layouts {
  display: grid;
  grid-template-columns: 36px repeat(var(--layout-columns), minmax(58px, 1fr));
  align-items: stretch;
  gap: 6px;
}

.layout-grid__header {
  margin-bottom: 8px;
}

.layout-grid__floor-heading,
.layout-grid__column-heading {
  min-height: 42px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  text-align: center;
}

.layout-grid__floor-heading {
  color: var(--c-muted);
  font-size: 9px;
  font-weight: 650;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.layout-grid__column-heading {
  padding: 5px 4px;
  border: 1px solid #e2e6ef;
  background: #f7f8fc;
  color: #27324a;
  transition: opacity .16s ease, filter .16s ease;
}

.layout-grid__column-heading strong {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #36425a;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.2;
}

.layout-grid__column-heading small {
  max-width: 100%;
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--c-muted);
  font-size: 8px;
  line-height: 1.15;
}

.layout-grid__column-heading--filtered {
  opacity: .18;
  filter: grayscale(.6);
}

.entrance-grid__body--layouts {
  gap: 7px;
}

.entrance-grid__row--layouts {
  grid-template-columns: 36px repeat(var(--layout-columns), minmax(58px, 1fr));
}

.entrance-grid__row--layouts .entrance-grid__floor {
  align-self: center;
}

.entrance-grid__row--layouts .apartment-cell {
  width: 100%;
  min-width: 0;
  height: 36px;
  padding: 0 5px;
  border-radius: 8px;
  font-size: 11px;
}

.deal-selector__filters {
  grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.deal-selector__available-only {
  align-self: end;
}

@media (max-width: 1450px) {
  .entrance-grid--layouts {
    width: calc(40px + var(--layout-columns) * 61px);
    min-width: calc(40px + var(--layout-columns) * 61px);
  }

  .layout-grid__header,
  .entrance-grid__row--layouts {
    grid-template-columns: 34px repeat(var(--layout-columns), minmax(53px, 1fr));
    gap: 5px;
  }
}

@media (max-width: 980px) {
  .deal-selector__filters {
    grid-template-columns: repeat(2, minmax(140px, 1fr));
  }
}

@media (max-width: 520px) {
  .deal-selector__filters {
    grid-template-columns: 1fr;
  }
}

/* ===== Update 13B.2: two-row filters and editable building structure ===== */
.chessboard__filters {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
  width: 100%;
}

.chessboard__filters .filter-field--quarter { grid-column: span 3; }
.chessboard__filters .filter-field--third { grid-column: span 4; }

.entrance-editor--structure .entrance-editor__row {
  grid-template-columns: 30px 90px minmax(160px, 1.25fr) 120px 120px 150px 105px 40px;
  align-items: end;
}

.entrance-editor__meta {
  min-height: 40px;
  padding: 7px 9px;
  border: 1px solid var(--c-line-soft);
  border-radius: 8px;
  background: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: var(--c-text-2);
  line-height: 1.25;
}

.entrance-editor__meta span {
  color: var(--c-text);
  font-size: 11px;
  font-weight: 700;
}

.entrance-editor__meta small { font-size: 9px; }
.structure-editor__notice { margin-top: 14px; }

.building-layout-selector {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.building-layout-option {
  position: relative;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--c-line);
  border-radius: 12px;
  background: #fff;
  display: grid;
  grid-template-columns: 22px 62px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  cursor: pointer;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.building-layout-option:hover {
  border-color: #c7cdfd;
  box-shadow: 0 8px 22px rgba(55, 65, 220, .08);
}

.building-layout-option:has(input:checked) {
  border-color: #aeb6ff;
  background: #f8f8ff;
}

.building-layout-option--locked { cursor: default; }
.building-layout-option > input { position: absolute; opacity: 0; pointer-events: none; }

.building-layout-option__check {
  width: 20px;
  height: 20px;
  border: 1.5px solid #c7cedd;
  border-radius: 6px;
  background: #fff;
  position: relative;
}

.building-layout-option input:checked ~ .building-layout-option__check {
  border-color: var(--c-primary);
  background: var(--c-primary);
}

.building-layout-option input:checked ~ .building-layout-option__check::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 2px;
  width: 5px;
  height: 10px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
}

.building-layout-option__image {
  width: 62px;
  height: 62px;
  border-radius: 9px;
  border: 1px solid var(--c-line-soft);
  background: #fafbfe;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.building-layout-option__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.building-layout-option__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.building-layout-option__content strong {
  color: var(--c-primary);
  font-size: 14px;
}

.building-layout-option__content span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--c-text);
  font-size: 12px;
  font-weight: 650;
}

.building-layout-option__content small {
  color: var(--c-text-2);
  font-size: 10px;
}

.building-layout-option__content em {
  color: #317b4c;
  font-size: 9px;
  font-style: normal;
  font-weight: 650;
}

@media (max-width: 1500px) {
  .entrance-editor--structure .entrance-editor__row {
    grid-template-columns: 30px 80px minmax(145px, 1fr) 105px 105px 130px 95px 38px;
    gap: 8px;
  }

  .building-layout-selector { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1100px) {
  .chessboard__filters .filter-field--quarter,
  .chessboard__filters .filter-field--third { grid-column: span 6; }

  .entrance-editor--structure .entrance-editor__row {
    grid-template-columns: 30px repeat(3, minmax(0, 1fr)) 38px;
  }

  .entrance-editor--structure .entrance-editor__name { grid-column: span 2; }
  .entrance-editor--structure .entrance-editor__meta { grid-column: span 2; }
}

@media (max-width: 720px) {
  .chessboard__filters { grid-template-columns: 1fr 1fr; }
  .chessboard__filters .filter-field--quarter,
  .chessboard__filters .filter-field--third { grid-column: span 1; }
  .chessboard__filters .filter-field--third { grid-column: 1 / -1; }

  .building-layout-selector { grid-template-columns: 1fr; }
  .entrance-editor--structure .entrance-editor__row {
    grid-template-columns: 28px 1fr 1fr 38px;
  }
  .entrance-editor--structure .entrance-editor__name,
  .entrance-editor--structure .entrance-editor__meta { grid-column: 2 / 4; }
}

@media (max-width: 520px) {
  .chessboard__filters { grid-template-columns: 1fr; }
  .chessboard__filters .filter-field--quarter,
  .chessboard__filters .filter-field--third { grid-column: 1; }
}

.building-layout-summary {
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid var(--c-line-soft);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.building-layout-summary > span {
  margin-right: 4px;
  color: var(--c-text-2);
  font-size: 11px;
}

.building-layout-summary a,
.building-layout-summary em {
  padding: 5px 9px;
  border-radius: 7px;
  background: var(--c-primary-soft);
  color: var(--c-primary);
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
}

.building-layout-summary em {
  background: #f2f4f8;
  color: var(--c-muted);
}

.entrance-editor--create-extended .entrance-editor__row {
  grid-template-columns: 30px 90px minmax(170px, 1fr) 120px 120px 150px 40px;
}

@media (max-width: 1200px) {
  .entrance-editor--create-extended .entrance-editor__row {
    grid-template-columns: 30px 90px minmax(150px, 1fr) 105px 105px 130px 38px;
    gap: 8px;
  }
}

@media (max-width: 720px) {
  .entrance-editor--create-extended .entrance-editor__row {
    grid-template-columns: 28px 1fr 1fr 38px;
  }
  .entrance-editor--create-extended .entrance-editor__name { grid-column: 2 / 4; }
}

/* ===== Update 13B.3: apartment matrix editor ===== */
.filter-range {
  column-gap: 8px;
}
.filter-range input + input { border-left: 0; }
.filter-range input:first-child { border-right: 1px solid var(--c-line-soft); }

.entrance-editor__item {
  min-width: 0;
  border: 1px solid var(--c-line-soft);
  border-radius: 13px;
  background: #fafbfc;
  overflow: hidden;
}
.entrance-editor__item .entrance-editor__row {
  border: 0;
  border-radius: 0;
  background: transparent;
}
.entrance-editor--structure .entrance-editor__row {
  grid-template-columns: 30px 90px minmax(160px, 1.25fr) 120px 120px 150px 105px 84px;
}
.entrance-editor__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
}
.icon-action--primary {
  border-color: #daddff;
  background: #f3f4ff;
  color: var(--c-primary);
}
.icon-action--primary:hover {
  border-color: var(--c-primary);
  background: var(--c-primary);
  color: #fff;
}
.entrance-editor__item--matrix-open .icon-action--primary {
  border-color: var(--c-primary);
  background: var(--c-primary);
  color: #fff;
}
.entrance-editor__item--matrix-open [data-toggle-apartment-matrix] .icon {
  transform: rotate(45deg);
}
[data-toggle-apartment-matrix] .icon { transition: transform .16s ease; }

.apartment-matrix-editor {
  padding: 20px;
  border-top: 1px solid var(--c-line-soft);
  background: #fff;
}
.apartment-matrix-editor[hidden] { display: none !important; }
.apartment-matrix-editor__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}
.apartment-matrix-editor__header h3 {
  margin: 2px 0 4px;
  color: var(--c-text);
  font-size: 18px;
  line-height: 1.2;
}
.apartment-matrix-editor__header p {
  margin: 0;
  color: var(--c-text-2);
  font-size: 11px;
  line-height: 1.45;
}
.apartment-matrix-editor__tools {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  margin-bottom: 14px;
}
.apartment-matrix-editor__start { width: 150px; flex: 0 0 150px; }
.apartment-matrix-editor__summary {
  margin-left: auto;
  min-height: 38px;
  padding: 0 13px;
  border-radius: 9px;
  background: #f4f6fb;
  color: var(--c-text-2);
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  font-weight: 650;
}
.apartment-matrix-editor__scroll {
  max-width: 100%;
  overflow-x: auto;
  padding: 1px 1px 8px;
}
.apartment-matrix-editor__hint { margin-top: 10px; }

.apartment-matrix {
  --matrix-cell-width: 148px;
  min-width: calc(150px + var(--matrix-columns) * var(--matrix-cell-width));
  display: grid;
  grid-template-columns: 150px repeat(var(--matrix-columns), minmax(var(--matrix-cell-width), 1fr));
  border: 1px solid var(--c-line);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
.apartment-matrix__corner,
.apartment-matrix__column-head,
.apartment-matrix__floor-head,
.apartment-matrix__cell {
  min-width: 0;
  border-right: 1px solid var(--c-line-soft);
  border-bottom: 1px solid var(--c-line-soft);
}
.apartment-matrix__corner {
  padding: 14px;
  background: #f6f7fb;
  color: var(--c-text-2);
  display: flex;
  align-items: center;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.apartment-matrix__column-head {
  padding: 10px;
  background: #f6f7fb;
}
.apartment-matrix__column-head > span {
  display: block;
  margin: 0 0 6px 2px;
  color: var(--c-text-2);
  font-size: 9px;
  font-weight: 700;
}
.apartment-matrix__column-head .form-control {
  height: 36px;
  padding-left: 9px;
  padding-right: 26px;
  font-size: 10px;
}
.apartment-matrix__floor-head {
  min-height: 72px;
  padding: 12px 14px;
  background: #fafbfe;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
}
.apartment-matrix__floor-head strong {
  color: var(--c-text);
  font-size: 17px;
}
.apartment-matrix__floor-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--c-text-2);
  font-size: 9px;
  cursor: pointer;
}
.apartment-matrix__floor-toggle input { accent-color: var(--c-primary); }
.apartment-matrix__floor-toggle input:disabled + span { opacity: .62; cursor: default; }

.apartment-matrix__cell {
  position: relative;
  min-height: 72px;
  padding: 11px;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: background .15s ease, opacity .15s ease;
}
.apartment-matrix__cell-check {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.apartment-matrix__cell-toggle {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 1.5px solid #c9d0df;
  border-radius: 5px;
  background: #fff;
  position: relative;
  cursor: pointer;
}
.apartment-matrix__cell-check:checked + .apartment-matrix__cell-toggle {
  border-color: var(--c-primary);
  background: var(--c-primary);
}
.apartment-matrix__cell-check:checked + .apartment-matrix__cell-toggle::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 2px;
  width: 5px;
  height: 9px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
}
.apartment-matrix__cell .form-control {
  min-width: 0;
  height: 38px;
  text-align: center;
  font-weight: 700;
}
.apartment-matrix__cell--disabled {
  background: #f8f9fc;
  opacity: .52;
}
.apartment-matrix__cell--existing {
  background: #f1faf3;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 3px;
}
.apartment-matrix__cell--existing a {
  color: #25813f;
  font-size: 13px;
  font-weight: 750;
  text-decoration: none;
}
.apartment-matrix__cell--existing a:hover { text-decoration: underline; }
.apartment-matrix__cell--existing small {
  color: #659071;
  font-size: 9px;
}

@media (max-width: 1500px) {
  .entrance-editor--structure .entrance-editor__row {
    grid-template-columns: 30px 80px minmax(145px, 1fr) 105px 105px 130px 95px 76px;
  }
}
@media (max-width: 1100px) {
  .entrance-editor--structure .entrance-editor__actions {
    grid-column: 5;
    grid-row: 1;
  }
  .apartment-matrix-editor__tools { flex-wrap: wrap; }
  .apartment-matrix-editor__summary { margin-left: 0; }
}
@media (max-width: 720px) {
  .entrance-editor--structure .entrance-editor__actions {
    grid-column: 4;
    grid-row: 1;
  }
  .apartment-matrix-editor { padding: 15px; }
  .apartment-matrix-editor__tools { align-items: stretch; }
  .apartment-matrix-editor__start { width: 100%; flex-basis: 100%; }
  .apartment-matrix-editor__summary { width: 100%; }
}

/* 13B.4: inherited apartment data and editable imported structure */
.building-edit-import-note {
  margin-top: 16px;
}
.apartment-matrix__cell--existing {
  padding: 7px;
  align-items: stretch;
}
.apartment-matrix__cell--existing .form-control {
  width: 100%;
  height: 34px;
  padding-inline: 8px;
  border-color: #b9dec3;
  background: #fff;
  color: #1f7136;
}
.apartment-matrix__cell--existing .form-control[readonly] {
  cursor: not-allowed;
  border-color: #d8ddea;
  background: #f5f7fb;
  color: #7b8598;
}
.apartment-matrix__existing-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}
.apartment-matrix__existing-meta small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.apartment-matrix__existing-meta a {
  flex: 0 0 auto;
  font-size: 10px;
}
.apartment-matrix__cell--locked {
  background: #f6f7fa;
}
@media (min-width: 1101px) {
  .object-summary--detail {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

/* 13B.4.2: keep layout preview image inside the media block */
.layout-card__preview {
  box-sizing: border-box;
  height: 220px;
  min-height: 220px;
  overflow: hidden;
  position: relative;
  isolation: isolate;
}
.layout-card__preview img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}

/* ===== Update 13C.2: apartment interest queue UI ===== */
.summary-chip--interest {
  border-color: #dddfff;
  background: #fafaff;
  color: #5357ad;
}
.summary-chip--interest.summary-chip--active {
  border-color: #8f96ff;
  background: #f0f1ff;
  color: var(--c-primary);
}

.apartment-cell__interest-count {
  position: absolute;
  left: 3px;
  top: 2px;
  min-width: 13px;
  height: 13px;
  padding: 0 3px;
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 999px;
  background: #6268d9;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 7px;
  line-height: 1;
  font-weight: 800;
  box-shadow: 0 2px 5px rgba(37, 43, 125, .18);
  z-index: 2;
}

.interest-card {
  margin-top: 12px;
  padding: 14px;
  border: 1px solid #dfe2ff;
  border-radius: 12px;
  background: linear-gradient(135deg, #f8f8ff 0%, #fff 100%);
}
.interest-card--empty {
  border-color: var(--c-line-soft);
  background: #fbfcfe;
}
.interest-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.interest-card__header > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.interest-card__header span {
  color: var(--c-muted);
  font-size: 10px;
}
.interest-card__header strong {
  color: #283052;
  font-size: 13px;
}
.interest-card__badge {
  min-width: 28px;
  height: 28px;
  padding: 0 8px;
  border-radius: 9px;
  background: #eef0ff;
  color: #535bd0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px !important;
  font-weight: 800;
}
.interest-card--empty .interest-card__badge {
  background: #f0f2f6;
  color: #9ba3b2 !important;
}
.interest-card__preview {
  margin-top: 12px;
  display: grid;
  gap: 7px;
}
.interest-card__preview-item {
  min-width: 0;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}
.interest-card__position {
  width: 24px;
  height: 24px;
  border-radius: 8px;
  background: #eef0ff;
  color: #535bd0;
  display: grid;
  place-items: center;
  font-size: 9px;
  font-weight: 800;
}
.interest-card__preview-item > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}
.interest-card__preview-item strong,
.interest-card__preview-item small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.interest-card__preview-item strong {
  color: var(--c-text);
  font-size: 11px;
}
.interest-card__preview-item small {
  color: var(--c-muted);
  font-size: 9px;
}
.interest-card__empty,
.interest-card__more {
  color: var(--c-muted);
  font-size: 10px;
}
.interest-card__more {
  padding-left: 32px;
  font-weight: 650;
}
.interest-card__actions {
  margin-top: 12px;
  padding-top: 11px;
  border-top: 1px solid #eaecfb;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.interest-card__actions .button {
  flex: 1 1 auto;
}

.interest-modal {
  width: min(100%, 860px);
}
.interest-modal__body {
  padding: 20px 21px 22px;
  display: grid;
  gap: 16px;
}
.interest-add-panel,
.interest-refusal-panel,
.interest-queue-panel {
  border: 1px solid var(--c-line-soft);
  border-radius: 13px;
  background: #fff;
}
.interest-add-panel,
.interest-refusal-panel {
  padding: 16px;
  background: #fbfbff;
}
.interest-refusal-panel {
  border-color: #f1d3d5;
  background: #fffafa;
}
.interest-section-heading {
  margin-bottom: 14px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.interest-section-heading > div:first-child {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.interest-section-heading strong {
  color: var(--c-text);
  font-size: 13px;
}
.interest-section-heading span {
  color: var(--c-muted);
  font-size: 10px;
}
.interest-section-heading__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 9px;
}
.interest-inline-actions {
  margin-top: 14px;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
.interest-queue-panel {
  padding: 16px;
}
.interest-queue-count {
  min-height: 29px;
  padding: 0 9px;
  border-radius: 8px;
  background: #f3f4f8;
  color: var(--c-muted) !important;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.interest-queue-count b {
  color: var(--c-text);
  font-size: 11px;
}
.interest-queue-list {
  display: grid;
  gap: 8px;
}
.interest-queue-item {
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--c-line-soft);
  border-radius: 11px;
  background: #fff;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
}
.interest-queue-item--reserved {
  border-color: #ffdca3;
  background: #fffdf7;
}
.interest-queue-item__position {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: #eef0ff;
  color: #535bd0;
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 800;
}
.interest-queue-item--reserved .interest-queue-item__position {
  background: #fff0cf;
  color: #a86600;
}
.interest-queue-item__content {
  min-width: 0;
  display: grid;
  gap: 5px;
}
.interest-queue-item__title {
  min-width: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.interest-queue-item__title strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--c-text);
  font-size: 12px;
}
.interest-queue-item__status {
  padding: 3px 6px;
  border-radius: 6px;
  background: #eef7f1;
  color: #33744c;
  font-size: 8px;
  font-weight: 750;
  white-space: nowrap;
}
.interest-queue-item__status--reserved {
  background: #fff0cf;
  color: #9a6209;
}
.interest-queue-item__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 12px;
  color: var(--c-muted);
  font-size: 9px;
}
.interest-queue-item__comment {
  margin: 0;
  color: var(--c-text-2);
  font-size: 9px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.interest-queue-item__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 6px;
}
.interest-queue-item__arrow {
  min-width: 32px;
  padding-left: 8px;
  padding-right: 8px;
  font-size: 14px;
}
.interest-queue-item__source {
  white-space: nowrap;
}
.interest-queue-empty {
  padding: 24px 12px;
  border: 1px dashed var(--c-line);
  border-radius: 10px;
  color: var(--c-muted);
  text-align: center;
  font-size: 10px;
}

@media (max-width: 760px) {
  .interest-modal__body { padding: 14px; }
  .interest-section-heading { flex-direction: column; }
  .interest-section-heading__actions { justify-content: flex-start; }
  .interest-queue-item {
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: start;
  }
  .interest-queue-item__actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
  .interest-inline-actions {
    flex-direction: column-reverse;
  }
  .interest-inline-actions .button { width: 100%; }
}


/* ===== Update 13C.2.1: simplified interest queue ===== */
.apartment-panel__interest-action {
  grid-column: 1 / -1;
}

.interest-link-list {
  margin-top: 12px;
  display: grid;
  gap: 8px;
}

.interest-link-list[hidden] {
  display: none;
}

.interest-link-card {
  padding: 13px;
  border: 1px solid #dfe3ff;
  border-radius: 12px;
  background: linear-gradient(135deg, #f8f7ff 0%, #fff 100%);
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}

.interest-link-card__position {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--c-primary-soft);
  color: var(--c-primary);
  display: grid;
  place-items: center;
  font-size: 14px;
  font-weight: 800;
}

.interest-link-card__content {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.interest-link-card__content > span {
  color: var(--c-muted);
  font-size: 10px;
}

.interest-link-card__content strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--c-text);
  font-size: 12px;
}

.interest-link-card__content strong a {
  color: inherit;
  text-decoration: none;
}

.interest-link-card__content strong a:hover {
  color: var(--c-primary);
}

@media (max-width: 520px) {
  .interest-link-card {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .interest-link-card > .button {
    grid-column: 2;
    justify-self: start;
  }
}

/* ===== Update 13C.3: actions + queue reservation ===== */
.apartment-panel__actions > [data-reservation-open] {
  grid-column: 1 / -1;
}

.apartment-panel__interest-action {
  grid-column: auto;
}

.apartment-panel__actions.apartment-panel__actions--without-interest > [data-deal-open] {
  grid-column: 1 / -1;
}

.interest-link-card__actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.interest-link-card--reserved {
  border-color: #b9c6ff;
  background: linear-gradient(135deg, #f0f3ff 0%, #fff 100%);
}

.interest-link-card--reserved .interest-link-card__position {
  background: #e4e9ff;
}

.deal-form__mode .choice-card {
  align-items: flex-start;
}

.deal-form__mode .choice-card small {
  line-height: 1.35;
}

.interest-reservation-modal {
  width: min(560px, calc(100vw - 32px));
}

@media (max-width: 520px) {
  .interest-link-card__actions {
    grid-column: 2;
    justify-self: start;
    flex-wrap: wrap;
  }
}

/* 13C.3 - deal creation mode and Deal tab queue */
.deal-form__mode-note {
  grid-column: 1 / -1;
  margin: 2px 0 0;
  padding: 9px 11px;
  border-radius: 9px;
  background: #f5f6ff;
  color: var(--c-text-2);
  font-size: 10px;
  line-height: 1.45;
}

.choice-card--disabled {
  opacity: .55;
  cursor: not-allowed;
}

.deal-widget-interest-summary {
  margin-top: 14px;
  padding: 14px;
  border-radius: 12px;
  background: #f4f5ff;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.deal-widget-interest-summary div {
  display: grid;
  gap: 4px;
}

.deal-widget-interest-summary span,
.deal-widget-interest-row__content > span {
  color: var(--c-muted);
  font-size: 10px;
}

.deal-widget-interest-queue {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--c-line-soft);
}

.deal-widget-interest-queue h3 {
  margin: 0 0 10px;
  font-size: 15px;
}

.deal-widget-interest-queue__list {
  display: grid;
  gap: 8px;
}

.deal-widget-interest-row {
  padding: 10px 12px;
  border: 1px solid var(--c-line-soft);
  border-radius: 10px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}

.deal-widget-interest-row.is-current {
  border-color: #cfd4ff;
  background: #f8f8ff;
}

.deal-widget-interest-row__position {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: var(--c-primary-soft);
  color: var(--c-primary);
  font-weight: 800;
}

.deal-widget-interest-row__content {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.deal-widget-interest-row__content a {
  color: var(--c-text);
  font-weight: 700;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.deal-widget-interest-row__content a:hover {
  color: var(--c-primary);
}

@media (max-width: 760px) {
  .deal-widget-interest-summary { grid-template-columns: 1fr; }
}

/* ===== Update 13C.4: CRM source context ===== */
.apartment-panel__actions.apartment-panel__actions--crm-context > .apartment-panel__interest-action {
  grid-column: 1 / -1;
}


/* ===== Hotfix 13C.4.1: separate range inputs ===== */
.filter-field__control.filter-range {
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
  box-shadow: none;
  gap: 10px;
}

.filter-field__control.filter-range input {
  height: 40px;
  border: 1px solid var(--c-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 2px 4px rgba(14,24,53,.018);
}

.filter-field__control.filter-range input + input {
  border-left: 1px solid var(--c-line);
}

.filter-field--disabled .filter-field__control.filter-range {
  background: transparent;
}
/* 13C.5: очередь в сокращённой шахматке */
.deal-selector-panel__queue {
  margin: 0 0 14px;
}
.deal-selector-panel__queue h3 {
  margin: 0 0 10px;
  font-size: 13px;
}
.deal-selector-panel__queue-list {
  display: grid;
  gap: 8px;
}
.deal-selector-panel__queue .interest-link-card {
  padding: 10px;
  grid-template-columns: 34px minmax(0, 1fr);
}
.deal-selector-panel__queue .interest-link-card__position {
  width: 34px;
  height: 34px;
  min-width: 34px;
}
.deal-selector-panel [data-selector-attach-form] > .button {
  margin-top: 12px;
}



/* ===== Hotfix 13C.5.1: queue reservation finalization + compact cards ===== */
.interest-link-card {
  align-items: start;
}

.interest-link-card__actions {
  grid-column: 2 / -1;
  justify-self: end;
  max-width: 100%;
  flex-wrap: wrap;
}

.interest-link-card__actions .button {
  white-space: nowrap;
}

.deal-widget-interest-cards {
  display: grid;
  gap: 16px;
}

@media (max-width: 760px) {
  .interest-link-card__actions {
    justify-self: stretch;
  }

  .interest-link-card__actions .button {
    flex: 1 1 auto;
  }
}

/* 13C.6.1 - проверка системных уведомлений Битрикс24 */
.integration-card__actions {
  padding: 0 16px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}


/* ===== Hotfix 13C.6.2: waiting queue display ===== */
.interest-link-list__title {
  margin: 16px 0 8px;
  color: var(--c-text);
  font-size: 13px;
  font-weight: 800;
}

.interest-link-list__title[hidden] {
  display: none;
}

.interest-link-list__title + .interest-link-list {
  margin-top: 0;
}


/* 13C.6.3 — действия с бронью из рабочего места Сделки */
.deal-stage-card__actions {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  border-top: 1px solid #e7eaf2;
}
.deal-stage-card__actions > span {
  color: #7d89a3;
  font-size: 13px;
  line-height: 1.4;
}
@media (max-width: 760px) {
  .deal-stage-card__actions { align-items: stretch; flex-direction: column; }
}

/* 13C.6.4 — cancel reservation modal */
.cancel-reservation-modal {
  width: min(100%, 760px);
  border-radius: 22px;
  overflow: hidden;
}
.cancel-reservation-modal .app-modal__header {
  min-height: 88px;
  padding: 18px 26px;
}
.cancel-reservation-modal .app-modal__header span {
  display: block;
  margin-bottom: 3px;
  font-size: 11px;
  font-weight: 600;
  color: var(--c-text-2);
}
.cancel-reservation-modal .app-modal__header h2 {
  margin: 0;
  font-size: 22px;
  line-height: 1.2;
  letter-spacing: -.02em;
}
.cancel-reservation-modal .icon-button {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border: 1px solid var(--c-line);
  border-radius: 12px;
  background: #fff;
}
.cancel-reservation-modal__body {
  display: grid;
  gap: 20px;
  padding: 24px 26px 26px;
}
.cancel-reservation-modal__notice {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 18px;
  border: 1px solid #ffd5cf;
  border-radius: 14px;
  background: #fff7f5;
  color: #7a241b;
}
.cancel-reservation-modal__notice-icon {
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  margin-top: 1px;
  border-radius: 50%;
  background: #d92d20;
  color: #fff;
  font-size: 17px;
  font-weight: 800;
  line-height: 1;
}
.cancel-reservation-modal__notice strong {
  display: block;
  margin-bottom: 5px;
  color: #4b1712;
  font-size: 14px;
}
.cancel-reservation-modal__notice p {
  margin: 0;
  color: #8a463f;
  font-size: 13px;
  line-height: 1.45;
}
.cancel-reservation-modal__reason {
  gap: 8px;
}
.cancel-reservation-modal__reason > span {
  font-size: 13px;
  font-weight: 700;
  color: var(--c-text);
}
.cancel-reservation-modal__reason > span b {
  color: #d92d20;
}
.cancel-reservation-modal__reason textarea {
  min-height: 112px;
  padding: 13px 14px;
  border: 1px solid var(--c-line);
  border-radius: 12px;
  background: #fff;
  color: var(--c-text);
  font: inherit;
  line-height: 1.45;
  resize: vertical;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.cancel-reservation-modal__reason textarea:focus {
  outline: none;
  border-color: #6c63ff;
  box-shadow: 0 0 0 3px rgba(79, 70, 229, .10);
}
.cancel-reservation-modal__reason textarea::placeholder {
  color: #9aa4b7;
}
.cancel-reservation-modal__reason small {
  color: var(--c-text-2);
  font-size: 11px;
  line-height: 1.35;
}
.cancel-reservation-modal .app-modal__footer {
  min-height: 78px;
  padding: 14px 26px;
  gap: 12px;
  background: #fafbfe;
}
.cancel-reservation-modal .app-modal__footer .button {
  min-width: 142px;
  min-height: 44px;
  border-radius: 11px;
  font-weight: 700;
}
.cancel-reservation-modal .app-modal__footer .button--danger {
  box-shadow: 0 8px 20px rgba(217, 45, 32, .14);
}
@media (max-width: 640px) {
  .cancel-reservation-modal .app-modal__header,
  .cancel-reservation-modal__body,
  .cancel-reservation-modal .app-modal__footer {
    padding-left: 18px;
    padding-right: 18px;
  }
  .cancel-reservation-modal .app-modal__footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .cancel-reservation-modal .app-modal__footer .button {
    width: 100%;
  }
}

/* ===== Update 13C.7: multiple apartment interests ===== */
.deal-widget-interest-row--apartment {
  grid-template-columns: 34px minmax(0, 1fr) auto;
}

.deal-widget-interest-row__actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.deal-widget-interest-row__actions form {
  margin: 0;
}

@media (max-width: 760px) {
  .deal-widget-interest-row--apartment {
    grid-template-columns: 34px minmax(0, 1fr);
  }

  .deal-widget-interest-row__actions {
    grid-column: 2;
    flex-wrap: wrap;
  }
}

/* 13D/E.1C — document templates and Deal document generation */
.documents-admin-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 24px;
  align-items: start;
}

.documents-admin-main,
.documents-admin-aside,
.documents-template-list {
  display: grid;
  gap: 20px;
}

.documents-admin-aside {
  position: sticky;
  top: 88px;
}

.documents-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.documents-form-grid__wide {
  grid-column: 1 / -1;
}

.documents-check-group {
  margin: 0;
  padding: 0;
  border: 0;
}

.documents-check-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  min-height: 42px;
  align-items: center;
}

.documents-check-list label,
.documents-active-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 14px;
}

.documents-numbering-help {
  display: block;
  margin-top: 7px;
  line-height: 1.55;
}

.documents-numbering-help code,
.documents-reference-item code,
.documents-code-list code,
.documents-filter-help code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 12px;
}

.documents-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
}

.documents-section-heading h2,
.document-template-card h3,
.deal-contract-builder h3,
.deal-contract-form h4 {
  margin: 0;
}

.documents-section-heading p,
.deal-contract-form__section p {
  margin: 5px 0 0;
}

.document-template-card {
  display: grid;
  gap: 20px;
}

.document-template-card__header,
.document-template-version-panel__actions,
.documents-generated-row,
.documents-generated-row__actions,
.deal-contract-builder__heading,
.deal-document-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.document-template-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 8px;
}

.document-badge {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 3px 9px;
  border: 1px solid var(--border, #e3e8e6);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.document-badge--success {
  background: rgba(31, 125, 91, .08);
}

.document-badge--danger {
  background: rgba(184, 55, 55, .08);
}

.document-badge--muted {
  opacity: .65;
}

.document-template-version-panel {
  display: grid;
  gap: 14px;
  padding-top: 18px;
  border-top: 1px solid var(--border, #e3e8e6);
}

.document-template-version-panel__info {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 18px;
}

.document-template-version-panel__info span,
.documents-generated-row span,
.deal-document-row small,
.deal-contract-builder__heading small {
  font-size: 12px;
  opacity: .7;
}

.document-template-warnings {
  display: grid;
  gap: 5px;
  padding: 11px 13px;
  border-radius: 10px;
  background: rgba(189, 141, 40, .08);
  font-size: 13px;
}

.document-template-warnings--danger,
.deal-document-preflight--danger {
  background: rgba(184, 55, 55, .08);
}

.document-template-placeholders summary {
  cursor: pointer;
  font-weight: 700;
}

.documents-code-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
}

.documents-code-list code,
.documents-reference-item code {
  padding: 5px 7px;
  border-radius: 6px;
  background: rgba(8, 80, 85, .06);
}

.document-version-upload {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 12px;
}

.documents-reference-card {
  max-height: 520px;
  overflow: auto;
}

.documents-reference-list,
.documents-filter-help,
.documents-generated-list {
  display: grid;
  gap: 10px;
}

.documents-reference-item {
  display: grid;
  grid-template-columns: minmax(0, auto) 1fr;
  gap: 10px;
  align-items: center;
}

.documents-reference-item span,
.documents-filter-help span {
  font-size: 12px;
  line-height: 1.4;
}

.documents-filter-help > div {
  display: grid;
  gap: 3px;
}

.documents-generated-row {
  padding: 11px 0;
  border-bottom: 1px solid var(--border, #e3e8e6);
}

.documents-generated-row:last-child {
  border-bottom: 0;
}

.documents-generated-row > div:first-child {
  display: grid;
  gap: 4px;
}

.deal-documents-card {
  display: grid;
  gap: 16px;
}

.deal-document-history {
  display: grid;
  gap: 8px;
}

.deal-document-row {
  justify-content: flex-start;
  padding: 10px 0;
}

.deal-document-row__main {
  min-width: 0;
  flex: 1;
  display: grid;
  gap: 4px;
}

.deal-contract-builder {
  display: grid;
  gap: 16px;
  margin-top: 4px;
  padding-top: 18px;
  border-top: 1px solid var(--border, #e3e8e6);
}

.deal-contract-builder__heading > div {
  display: grid;
  gap: 4px;
}

.deal-contract-builder__heading > div > span {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  opacity: .65;
}

.deal-document-preflight {
  display: grid;
  gap: 10px;
  padding: 14px;
  border-radius: 10px;
}

.deal-document-preflight ul {
  margin: 0;
  padding-left: 20px;
}

.deal-contract-form,
.deal-contract-form__section {
  display: grid;
  gap: 16px;
}

.deal-contract-form__section {
  padding: 14px;
  border: 1px solid var(--border, #e3e8e6);
  border-radius: 12px;
}

.deal-contract-form__grid,
.deal-contract-case-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.deal-contract-form__summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.deal-contract-form__summary > div {
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(8, 80, 85, .05);
}

.deal-contract-form__summary span {
  font-size: 11px;
  opacity: .65;
}

@media (max-width: 1180px) {
  .documents-admin-layout {
    grid-template-columns: 1fr;
  }
  .documents-admin-aside {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .documents-form-grid,
  .deal-contract-form__grid,
  .deal-contract-case-list,
  .deal-contract-form__summary,
  .documents-admin-aside {
    grid-template-columns: 1fr;
  }
  .documents-form-grid__wide {
    grid-column: auto;
  }
  .document-version-upload {
    grid-template-columns: 1fr;
  }
  .document-template-card__header,
  .documents-generated-row,
  .deal-document-row,
  .deal-contract-builder__heading {
    align-items: flex-start;
    flex-wrap: wrap;
  }
}

/* 13D/E.1C.2 — document templates visual polish */
.documents-admin-layout {
  grid-template-columns: minmax(0, 1fr) 410px;
  gap: 22px;
}

.documents-template-create,
.document-template-card,
.documents-reference-card {
  overflow: hidden;
}

.documents-template-form .form-field > small,
.documents-check-group > small {
  display: block;
  margin-top: 7px;
  color: #8791a4;
  font-size: 11px;
  line-height: 1.45;
}

.documents-check-list {
  gap: 8px;
  min-height: 40px;
}

.documents-choice {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 12px 0 10px;
  border: 1px solid #e1e5ee;
  border-radius: 9px;
  background: #fff;
  color: #4d5870;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, color .15s ease, box-shadow .15s ease;
}

.documents-choice:hover {
  border-color: #cbd0ff;
  background: #fafaff;
}

.documents-choice input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.documents-choice span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.documents-choice span::before {
  content: "";
  width: 17px;
  height: 17px;
  border: 1.5px solid #cbd1dd;
  border-radius: 5px;
  background: #fff;
  box-shadow: inset 0 0 0 3px #fff;
  transition: .15s ease;
}

.documents-choice input:checked + span {
  color: var(--c-primary);
}

.documents-choice input:checked + span::before {
  border-color: var(--c-primary);
  background: var(--c-primary);
  box-shadow: inset 0 0 0 3px #fff;
}

.documents-choice:has(input:checked) {
  border-color: #cdd1ff;
  background: var(--c-primary-soft);
  box-shadow: 0 4px 12px rgba(56, 67, 255, .055);
}

.documents-numbering-input {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-weight: 650;
  letter-spacing: .01em;
}

.documents-numbering-help code,
.documents-numbering-example code {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 2px 7px;
  border: 1px solid #e4e7ff;
  border-radius: 6px;
  background: #f7f7ff;
  color: #4148bd;
}

.document-file-upload {
  min-height: 106px;
  border: 1.5px dashed #cfd4e4;
  border-radius: 13px;
  background: #fafbff;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, transform .15s ease, box-shadow .15s ease;
}

.document-file-upload:hover,
.document-file-upload.is-dragover {
  border-color: #8e95ff;
  background: #f6f7ff;
  box-shadow: 0 7px 20px rgba(56, 67, 255, .06);
  transform: translateY(-1px);
}

.document-file-upload.has-file {
  border-style: solid;
  border-color: #b9c0ff;
  background: #f7f7ff;
}

.document-file-upload input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.document-file-upload__icon {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: var(--c-primary);
  background: var(--c-primary-soft);
}

.document-file-upload__icon .icon {
  width: 20px;
  height: 20px;
}

.document-file-upload__body {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.document-file-upload__body strong {
  color: #303b52;
  font-size: 13px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.document-file-upload__body small {
  color: #8a94a7;
  font-size: 11px;
}

.document-file-upload--compact {
  min-height: 76px;
  padding: 12px 14px;
}

.document-file-upload--compact .document-file-upload__icon {
  flex-basis: 38px;
  width: 38px;
  height: 38px;
  border-radius: 10px;
}

.documents-form-actions {
  padding-top: 17px;
  margin-top: 18px;
  border-top: 1px solid var(--c-line-soft);
}

.documents-active-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #4d5870;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
}

.documents-active-toggle input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.documents-active-toggle__control {
  position: relative;
  width: 36px;
  height: 20px;
  border-radius: 999px;
  background: #d8dde7;
  transition: background .15s ease;
}

.documents-active-toggle__control::after {
  content: "";
  position: absolute;
  width: 14px;
  height: 14px;
  left: 3px;
  top: 3px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 5px rgba(27, 39, 77, .18);
  transition: transform .15s ease;
}

.documents-active-toggle input:checked + .documents-active-toggle__control {
  background: var(--c-primary);
}

.documents-active-toggle input:checked + .documents-active-toggle__control::after {
  transform: translateX(16px);
}

.documents-reference-card {
  max-height: none;
  padding: 0;
}

.documents-reference-card .form-card__header {
  margin: 0;
  padding: 18px 18px 15px;
}

.documents-reference-card--placeholders .documents-reference-table-wrap {
  max-height: 480px;
  overflow: auto;
}

.documents-reference-table-wrap {
  overflow-x: auto;
}

.documents-reference-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.documents-reference-table th,
.documents-reference-table td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--c-line-soft);
  text-align: left;
  vertical-align: top;
}

.documents-reference-table th:first-child,
.documents-reference-table td:first-child {
  width: 46%;
}

.documents-reference-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #fafbfc;
  color: #7a8497;
  font-size: 10px;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .045em;
}

.documents-reference-table td {
  color: #59647a;
  font-size: 11px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.documents-reference-table tr:last-child td {
  border-bottom: 0;
}

.documents-reference-table tbody tr:hover td {
  background: #fbfbff;
}

.documents-reference-table code,
.documents-copy-code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 10.5px;
  color: #3740bb;
}

.documents-reference-table code {
  display: inline;
  padding: 2px 5px;
  border-radius: 5px;
  background: #f3f3ff;
}

.documents-copy-code {
  max-width: 100%;
  padding: 5px 7px;
  border: 1px solid #e0e3ff;
  border-radius: 6px;
  background: #f5f5ff;
  cursor: pointer;
  text-align: left;
  overflow-wrap: anywhere;
  transition: .15s ease;
}

.documents-copy-code:hover,
.documents-copy-code.is-copied {
  color: #fff;
  border-color: var(--c-primary);
  background: var(--c-primary);
}

.documents-numbering-example {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin: 14px;
  padding: 10px 11px;
  border-radius: 9px;
  background: #f8f9fc;
  color: #7a8497;
  font-size: 11px;
}

.documents-numbering-example span {
  font-weight: 700;
}

.document-template-version-panel__info {
  padding: 12px 14px;
  border-radius: 10px;
  background: #f8f9fc;
}

@media (max-width: 1260px) {
  .documents-admin-layout {
    grid-template-columns: minmax(0, 1fr) 360px;
  }
}

@media (max-width: 1180px) {
  .documents-admin-layout {
    grid-template-columns: 1fr;
  }
  .documents-admin-aside {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .documents-reference-card--placeholders {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .documents-admin-aside {
    grid-template-columns: 1fr;
  }
  .documents-reference-card--placeholders {
    grid-column: auto;
  }
  .document-file-upload {
    align-items: flex-start;
  }
}

/* 13D/E.1C.3 — compact document templates accordion */
.document-template-accordion {
  padding: 0;
}

.document-template-card__summary {
  list-style: none;
  min-height: 86px;
  padding: 16px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  cursor: pointer;
  user-select: none;
  transition: background .15s ease;
}

.document-template-card__summary::-webkit-details-marker {
  display: none;
}

.document-template-card__summary:hover {
  background: #fafbff;
}

.document-template-card__summary-main {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 13px;
}

.document-template-card__summary-main > div {
  min-width: 0;
}

.document-template-card__summary h3 {
  margin: 0 0 8px;
  color: #202b3c;
  font-size: 15px;
  line-height: 1.25;
}

.document-template-card__chevron {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border: 1px solid #e0e4ed;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: #fff;
  color: #68738a;
  transition: transform .18s ease, border-color .15s ease, color .15s ease, background .15s ease;
}

.document-template-card__chevron .icon {
  width: 16px;
  height: 16px;
}

.document-template-accordion[open] .document-template-card__chevron {
  transform: rotate(180deg);
  border-color: #cdd1ff;
  color: var(--c-primary);
  background: var(--c-primary-soft);
}

.document-template-card__summary-action {
  flex: 0 0 auto;
  color: #788397;
  font-size: 11px;
  font-weight: 650;
}

.document-template-card__summary-action::before {
  content: "Развернуть";
}

.document-template-accordion[open] .document-template-card__summary-action::before {
  content: "Свернуть";
}

.document-template-card__file {
  min-width: 0;
  max-width: 280px;
  color: #8993a5;
  font-size: 11px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.document-template-card__body {
  padding: 18px;
  border-top: 1px solid var(--c-line-soft);
}

.document-template-card__body > .documents-template-form {
  padding: 0;
}

.document-template-danger-zone {
  margin-top: 18px;
  padding: 14px;
  border: 1px solid #fee2e2;
  border-radius: 11px;
  background: #fffafa;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.document-template-danger-zone > div {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.document-template-danger-zone strong {
  color: #b42318;
  font-size: 12px;
}

.document-template-danger-zone span {
  color: #8d5960;
  font-size: 11px;
  line-height: 1.45;
}

@media (max-width: 760px) {
  .document-template-card__summary {
    align-items: flex-start;
  }

  .document-template-card__summary-action,
  .document-template-card__file {
    display: none;
  }

  .document-template-danger-zone {
    align-items: stretch;
    flex-direction: column;
  }
}
.document-template-card.document-template-accordion {
  display: block;
  gap: 0;
}

/* 13D/E.1C.4 — document categories, numbering and Deal document builder */
.document-badge--category {
  background: #f0f4ff;
  color: #4051b5;
}

.documents-numbering-settings {
  display: grid;
  gap: 10px;
}

.documents-numbering-settings.is-disabled .documents-numbering-input,
[data-document-numbering-reset].is-disabled {
  opacity: .55;
}

.documents-choice--standalone {
  width: max-content;
  max-width: 100%;
}

.deal-documents-card__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.deal-document-groups {
  display: grid;
  gap: 14px;
  padding: 14px;
}

.deal-document-group {
  border: 1px solid var(--c-line-soft);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
}

.deal-document-group__heading {
  min-height: 42px;
  padding: 0 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  background: #f8f9fc;
  border-bottom: 1px solid var(--c-line-soft);
}

.deal-document-group__heading h3 {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
}

.deal-document-group__heading span {
  min-width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #e9ecf5;
  font-size: 11px;
  font-weight: 700;
  color: #596174;
}

.deal-document-group .deal-document-history {
  padding: 0;
}

.deal-document-group .deal-document-row {
  border: 0;
  border-radius: 0;
  border-bottom: 1px solid var(--c-line-soft);
}

.deal-document-group .deal-document-row:last-child {
  border-bottom: 0;
}

.document-builder-modal__dialog {
  width: min(920px, calc(100vw - 36px));
  max-width: 920px;
}

.document-builder-modal__content {
  padding: 18px;
  max-height: min(76vh, 760px);
  overflow: auto;
}

.document-builder-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.document-builder-search {
  flex: 1;
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 13px;
  border: 1px solid var(--c-line);
  border-radius: 12px;
  background: #fff;
}

.document-builder-search .icon {
  width: 17px;
  height: 17px;
  color: #8d94a6;
}

.document-builder-search input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  font: inherit;
  color: var(--c-text);
}

.document-builder-incompatible-toggle {
  flex: 0 0 auto;
}

.document-builder-categories {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  padding-bottom: 4px;
  margin-bottom: 14px;
}

.document-builder-category {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid var(--c-line-soft);
  border-radius: 999px;
  background: #fff;
  color: #626b80;
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
}

.document-builder-category:hover,
.document-builder-category.is-active {
  border-color: #cfd5ff;
  background: #f2f3ff;
  color: #4338ff;
}

.document-template-picker {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.document-template-option {
  width: 100%;
  min-height: 122px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 22px;
  gap: 12px;
  align-items: start;
  padding: 15px;
  text-align: left;
  border: 1px solid var(--c-line-soft);
  border-radius: 14px;
  background: #fff;
  color: var(--c-text);
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.document-template-option:hover:not(:disabled) {
  border-color: #cbd1ff;
  box-shadow: 0 10px 26px rgba(43, 51, 94, .08);
  transform: translateY(-1px);
}

.document-template-option:disabled {
  cursor: not-allowed;
}

.document-template-option.is-incompatible {
  background: #fafbfc;
  opacity: .68;
}

.document-template-option__icon,
.document-builder-selected__icon {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: #f1f2ff;
  color: #4c43ff;
}

.document-template-option__icon .icon,
.document-builder-selected__icon .icon {
  width: 20px;
  height: 20px;
}

.document-template-option__body {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.document-template-option__body strong {
  font-size: 14px;
  line-height: 1.3;
}

.document-template-option__body small,
.document-template-option__meta {
  color: #7a8295;
  font-size: 11px;
  line-height: 1.4;
}

.document-template-option__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.document-template-option__meta i {
  font-style: normal;
  color: #c3c7d3;
}

.document-template-option__body em {
  margin-top: 3px;
  color: #b0654b;
  font-size: 11px;
  font-style: normal;
  line-height: 1.35;
}

.document-template-option__body em.document-template-option__ok {
  color: #258357;
}

.document-template-option__arrow {
  align-self: center;
  color: #a3a9b7;
}

.document-template-option__arrow .icon {
  width: 16px;
  height: 16px;
}

.document-template-picker__empty {
  padding: 28px;
  text-align: center;
  color: #7c8496;
}

.document-builder-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 14px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #545d72;
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
}

.document-builder-back .icon {
  width: 15px;
  height: 15px;
}

.document-builder-loading {
  min-height: 220px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #666f82;
}

.document-builder-selected {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 15px;
  margin-bottom: 15px;
  border-bottom: 1px solid var(--c-line-soft);
}

.document-builder-selected > div {
  min-width: 0;
}

.document-builder-selected span:not(.document-builder-selected__icon) {
  display: block;
  margin-bottom: 2px;
  color: #777f92;
  font-size: 11px;
  font-weight: 650;
}

.document-builder-selected h3 {
  margin: 0 0 3px;
  font-size: 17px;
}

.document-builder-selected small {
  color: #8b92a2;
}

.document-builder-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 14px;
}

.document-builder-summary > div {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid var(--c-line-soft);
  border-radius: 11px;
  background: #fafbfe;
}

.document-builder-summary span {
  display: block;
  margin-bottom: 4px;
  color: #838a9c;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.document-builder-summary strong {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 12px;
  white-space: nowrap;
}

.document-missing {
  display: grid;
  gap: 12px;
  margin-top: 14px;
  padding: 15px;
  border: 1px solid #f0d7a5;
  border-radius: 14px;
  background: #fffaf0;
}

.document-missing__heading,
.document-missing__footer,
.document-missing-card__heading,
.document-missing-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.document-missing__heading h4 {
  margin: 0;
  font-size: 15px;
}

.document-missing__heading p,
.document-missing__footer > span,
.document-missing-card__footer p {
  margin: 4px 0 0;
  color: #747b8d;
  font-size: 12px;
  line-height: 1.45;
}

.document-missing__heading > span {
  flex: 0 0 auto;
  padding: 5px 9px;
  border-radius: 999px;
  background: #f6e6bd;
  color: #825f16;
  font-size: 11px;
  font-weight: 750;
}

.document-missing__groups {
  display: grid;
  gap: 9px;
}

.document-missing-card {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 11px;
  padding: 13px;
  border: 1px solid #ebeef3;
  border-radius: 12px;
  background: #fff;
}

.document-missing-card__marker {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 11px;
  background: #f1f2ff;
  color: #4940ed;
  font-size: 11px;
  font-weight: 800;
}

.document-missing-card__body {
  min-width: 0;
}

.document-missing-card__heading > div {
  min-width: 0;
}

.document-missing-card__heading span {
  display: block;
  margin-bottom: 2px;
  color: #7f8798;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.document-missing-card__heading strong {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 13px;
  white-space: nowrap;
}

.document-missing-card__heading > b {
  flex: 0 0 auto;
  color: #a15d28;
  font-size: 11px;
}

.document-missing-card ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px 16px;
  margin: 11px 0 0;
  padding: 10px 0 0 18px;
  border-top: 1px solid var(--c-line-soft);
  color: #3f4759;
  font-size: 12px;
  line-height: 1.4;
}

.document-missing-card__footer {
  align-items: flex-end;
  margin-top: 10px;
}

.document-missing-card__footer p {
  max-width: 560px;
}

.document-missing-card__footer .button,
.document-missing__footer .button {
  flex: 0 0 auto;
}

.document-missing__footer {
  padding-top: 2px;
}

.document-missing__footer > span {
  margin: 0;
}

.document-builder-form {
  margin-top: 14px;
}

@media (max-width: 820px) {
  .document-template-picker {
    grid-template-columns: 1fr;
  }
  .document-builder-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .document-builder-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
  .document-missing-card ul {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .deal-documents-card > header,
  .deal-document-row {
    align-items: stretch;
    flex-direction: column;
  }
  .deal-documents-card__actions {
    width: 100%;
  }
  .deal-documents-card__actions .button {
    flex: 1;
  }
  .document-builder-summary {
    grid-template-columns: 1fr;
  }
  .document-missing__heading,
  .document-missing__footer,
  .document-missing-card__heading,
  .document-missing-card__footer {
    align-items: stretch;
    flex-direction: column;
  }
  .document-missing__heading > span,
  .document-missing-card__heading > b {
    align-self: flex-start;
  }
  .document-missing-card__footer .button,
  .document-missing__footer .button {
    width: 100%;
  }
}

/* 13D/E.1C.6 — manual contract revisions and unified Deal document actions */
.deal-documents-card > header {
  gap: 18px;
  padding-top: 10px;
  padding-bottom: 10px;
}

.deal-documents-card__actions {
  justify-content: flex-end;
}

.deal-documents-card__action {
  min-height: 40px;
  height: 40px;
  padding: 0 15px;
  border-radius: 9px;
  font-size: 11px;
  font-weight: 650;
  line-height: 1;
  white-space: nowrap;
}

.deal-documents-card__action .icon {
  width: 16px;
  height: 16px;
}

.deal-document-group .deal-document-row {
  min-height: 72px;
  margin: 0;
  padding: 11px 12px;
  grid-template-columns: 34px minmax(0, 1fr) auto auto;
  gap: 12px;
}

.deal-document-row__badges {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}

.deal-document-row__download {
  min-height: 36px;
  height: 36px;
  padding: 0 13px;
  border-radius: 8px;
  font-size: 10px;
  font-weight: 650;
  white-space: nowrap;
}

.contract-upload-modal__dialog {
  width: min(680px, calc(100vw - 36px));
  max-width: 680px;
}

.contract-upload-modal__body {
  display: grid;
  gap: 16px;
}

.contract-upload-current {
  min-height: 78px;
  padding: 14px;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 13px;
  align-items: center;
  border: 1px solid var(--c-line-soft);
  border-radius: 12px;
  background: #fafbfe;
}

.contract-upload-current__icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: var(--c-primary-soft);
  color: var(--c-primary);
}

.contract-upload-current__icon .icon {
  width: 21px;
  height: 21px;
}

.contract-upload-current > div {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.contract-upload-current span,
.contract-upload-current small {
  color: #7d8799;
  font-size: 10px;
}

.contract-upload-current strong {
  overflow: hidden;
  color: #202b3c;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.contract-upload-note {
  padding: 13px 14px;
  border: 1px solid #dfe3ff;
  border-radius: 11px;
  background: #f7f7ff;
}

.contract-upload-note strong {
  display: block;
  margin-bottom: 5px;
  color: #3838b7;
  font-size: 11px;
}

.contract-upload-note p {
  margin: 0;
  color: #68738a;
  font-size: 10px;
  line-height: 1.5;
}

.contract-upload-modal .app-modal__footer .button {
  min-height: 40px;
  border-radius: 9px;
  font-size: 11px;
  font-weight: 650;
}

@media (max-width: 820px) {
  .deal-documents-card > header {
    align-items: flex-start;
    flex-direction: column;
  }

  .deal-documents-card__actions {
    width: 100%;
    justify-content: flex-start;
  }

  .deal-document-group .deal-document-row {
    grid-template-columns: 34px minmax(0, 1fr);
  }

  .deal-document-row__badges,
  .deal-document-row__download {
    grid-column: 2;
    justify-self: start;
  }
}

/* Financial plan: compact native checkbox inside termination scenario grid. */
.financial-plan-confirmation__grid .form-field--checkbox {
  flex-direction: row;
  align-items: center;
  align-self: center;
  gap: 10px;
  min-height: 44px;
  padding-top: 18px;
}
.financial-plan-confirmation__grid .form-field--checkbox input[type="checkbox"] {
  appearance: auto;
  -webkit-appearance: checkbox;
  width: 18px;
  height: 18px;
  min-height: 18px;
  flex: 0 0 18px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  accent-color: var(--c-primary);
  cursor: pointer;
}
.financial-plan-confirmation__grid .form-field--checkbox input[type="checkbox"]:focus {
  box-shadow: none;
}
.financial-plan-confirmation__grid .form-field--checkbox > span {
  line-height: 1.35;
  cursor: pointer;
}

/* 13F — окончательный расчёт третьей воронки */
.final-settlement-card {
  display: grid;
  gap: 22px;
}

.final-settlement-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.final-settlement-card__header > div {
  min-width: 0;
}

.final-settlement-card__header span {
  display: block;
  margin-bottom: 5px;
  color: var(--muted-color, #7b849c);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.final-settlement-card__header h2 {
  margin: 0;
}

.final-settlement-card__header p {
  margin: 6px 0 0;
  color: var(--muted-color, #7b849c);
}

.final-settlement-result {
  flex: 0 0 auto;
  display: inline-flex !important;
  align-items: center;
  min-height: 32px;
  margin: 0 !important;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.final-settlement-result--success {
  background: #eaf8ef;
  color: #2f8d4e !important;
}

.final-settlement-result--warning {
  background: #fff4dd;
  color: #9a6600 !important;
}

.final-settlement-result--info {
  background: #eaf2ff;
  color: #2d63b7 !important;
}

.final-settlement-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid #e2e7f0;
  border-radius: 16px;
  background: #e8ecf3;
}

.final-settlement-grid > div {
  min-width: 0;
  padding: 16px 18px;
  background: #fff;
}

.final-settlement-grid span,
.final-settlement-grid strong {
  display: block;
}

.final-settlement-grid span {
  margin-bottom: 5px;
  color: #7b849c;
  font-size: 12px;
}

.final-settlement-grid strong {
  color: #11182a;
  font-size: 16px;
}

.final-settlement-grid__total {
  background: #f7f9fd;
}

.final-settlement-grid__total strong {
  font-size: 20px;
}

.final-settlement-note {
  padding: 16px 18px;
  border: 1px solid #e1e6f0;
  border-radius: 14px;
  background: #fafbfe;
}

.final-settlement-note strong,
.final-settlement-note p {
  display: block;
}

.final-settlement-note p {
  margin: 5px 0 0;
  color: #6f7890;
}

.final-settlement-note code {
  padding: 1px 5px;
  border-radius: 5px;
  background: #eef1f7;
  color: #30384a;
}

.final-settlement-card__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.final-settlement-card__actions form {
  margin: 0;
}

.final-settlement-card__actions > span {
  color: #7b849c;
  font-size: 13px;
}

.final-settlement-deadline {
  padding-top: 14px;
  border-top: 1px solid #e8ecf3;
  color: #5f6880;
}

@media (max-width: 900px) {
  .final-settlement-grid {
    grid-template-columns: 1fr;
  }

  .final-settlement-card__header {
    flex-direction: column;
  }
}

/* 13F.2 — общий визуальный polish блока окончательного расчёта */
.detail-card.final-settlement-card {
  gap: 24px;
  padding: 24px;
  border: 1px solid #e3e8f1;
  border-radius: 22px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
  box-shadow: 0 10px 32px rgba(28, 39, 69, .045);
}

.final-settlement-card__header {
  padding-bottom: 2px;
}

.final-settlement-card__header > div > span {
  color: #66728c;
}

.final-settlement-card__header h2 {
  color: #11182a;
  font-size: 26px;
  line-height: 1.15;
}

.final-settlement-card__header p {
  max-width: 980px;
  margin-top: 8px;
  color: #78839b;
  line-height: 1.45;
}

.final-settlement-result {
  min-height: 36px;
  padding: 7px 15px;
  border: 1px solid rgba(17, 24, 42, .05);
  box-shadow: 0 4px 12px rgba(28, 39, 69, .04);
}

.final-settlement-grid {
  border-color: #dfe5ef;
  border-radius: 18px;
  background: #dfe5ef;
  box-shadow: 0 6px 20px rgba(28, 39, 69, .035);
}

.final-settlement-grid > div {
  display: flex;
  min-height: 104px;
  flex-direction: column;
  justify-content: center;
  padding: 18px 20px;
  transition: background-color .18s ease;
}

.final-settlement-grid > div:hover {
  background: #fbfcff;
}

.final-settlement-grid span {
  margin-bottom: 7px;
  color: #7a859d;
  font-size: 13px;
  line-height: 1.3;
}

.final-settlement-grid strong {
  color: #10182b;
  font-size: 18px;
  line-height: 1.2;
  letter-spacing: -.01em;
}

.final-settlement-grid__total {
  grid-column: span 2;
  background: #f5f7ff !important;
}

.final-settlement-grid__total span {
  color: #5f6c89;
  font-weight: 700;
}

.final-settlement-grid__total strong {
  color: #2537d6;
  font-size: 24px;
}

.final-settlement-note {
  position: relative;
  padding: 18px 20px 18px 58px;
  border-color: #e2e7f0;
  border-radius: 16px;
  background: #f8f9fd;
}

.final-settlement-note::before {
  content: "i";
  position: absolute;
  top: 18px;
  left: 20px;
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 50%;
  background: #eef1ff;
  color: #4051d9;
  font-size: 14px;
  font-weight: 800;
  font-style: normal;
}

.final-settlement-note strong {
  color: #1e273a;
  font-size: 15px;
}

.final-settlement-note p {
  margin-top: 7px;
  line-height: 1.45;
}

.final-settlement-card__actions {
  align-items: center;
  padding-top: 18px;
  border-top: 1px solid #e8ecf3;
}

.final-settlement-card__actions .button {
  min-height: 46px;
}

.final-settlement-card__actions .button--primary {
  box-shadow: 0 8px 18px rgba(67, 72, 255, .16);
  transition: transform .18s ease, box-shadow .18s ease;
}

.final-settlement-card__actions .button--primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(67, 72, 255, .20);
}

.final-settlement-card__actions > span {
  flex: 1 1 360px;
  line-height: 1.45;
}

.final-settlement-deadline {
  padding: 13px 16px;
  border: 1px solid #e3e8f1;
  border-radius: 12px;
  background: #f8faff;
}

@media (max-width: 900px) {
  .final-settlement-grid__total {
    grid-column: auto;
  }
}

@media (max-width: 640px) {
  .detail-card.final-settlement-card {
    gap: 18px;
    padding: 18px;
    border-radius: 18px;
  }

  .final-settlement-card__header h2 {
    font-size: 23px;
  }

  .final-settlement-grid > div {
    min-height: 88px;
    padding: 15px 16px;
  }

  .final-settlement-note {
    padding: 16px;
  }

  .final-settlement-note::before {
    display: none;
  }

  .final-settlement-card__actions .button {
    width: 100%;
  }
}


/* 13F.3 — единая шапка рабочих блоков Сделки */
.deal-workspace-header {
  min-height: 94px;
  padding: 20px 24px !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid #e8ebf2;
  background: linear-gradient(135deg, #fff 0%, #fbfbff 100%);
}
.deal-workspace-header > div:first-child {
  min-width: 0;
}
.deal-workspace-header__eyebrow {
  display: block !important;
  margin: 0 0 5px !important;
  color: var(--c-primary) !important;
  font-size: 9px !important;
  font-weight: 750 !important;
  line-height: 1.35;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
.deal-workspace-header h2,
.detail-card .deal-workspace-header h2 {
  margin: 0;
  color: #161e2f;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: -.2px;
}
.deal-workspace-header p {
  margin: 5px 0 0;
  color: #6f7b91;
  font-size: 11px;
  line-height: 1.45;
}

/* Окончательный расчёт: шапка как у «Финансового плана». */
.detail-card.final-settlement-card {
  overflow: hidden;
  padding: 0 24px 24px;
}
.final-settlement-card__header.deal-workspace-header {
  margin: 0 -24px;
  padding-inline: 24px !important;
}
.final-settlement-card__header.deal-workspace-header > div > span {
  color: var(--c-primary) !important;
}
.final-settlement-card__header.deal-workspace-header h2 {
  font-size: 20px;
}
.final-settlement-card__header.deal-workspace-header p {
  max-width: 980px;
  margin-top: 5px;
  color: #6f7b91;
  font-size: 11px;
  line-height: 1.45;
}
.final-settlement-card__header.deal-workspace-header .final-settlement-result {
  margin: 0 !important;
}

/* «Документы»: те же заголовок, eyebrow и подзаголовок. */
.deal-documents-card {
  overflow: hidden;
  border-color: #e1e5ef;
  box-shadow: 0 14px 42px rgba(24, 32, 51, .055);
}
.deal-documents-card > header.deal-workspace-header {
  min-height: 94px;
  padding: 20px 24px !important;
  align-items: center;
  background: linear-gradient(135deg, #fff 0%, #fbfbff 100%);
}
.deal-documents-card > header.deal-workspace-header h2 {
  font-size: 20px;
}
.deal-documents-card > header.deal-workspace-header p {
  margin: 5px 0 0;
  color: #6f7b91;
  font-size: 11px;
}

@media (max-width: 820px) {
  .deal-workspace-header,
  .deal-documents-card > header.deal-workspace-header,
  .final-settlement-card__header.deal-workspace-header {
    min-height: 0;
    align-items: flex-start;
    flex-direction: column;
  }
}

.final-settlement-refund-confirmation {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 22px;
  padding: 18px;
  border: 1px solid #dfe5ef;
  border-radius: 14px;
  background: #f8faff;
}
.final-settlement-refund-confirmation > div > strong { display: block; color: #172033; font-size: 15px; }
.final-settlement-refund-confirmation > div > p { margin: 6px 0 0; color: #6f7890; line-height: 1.45; }
.final-settlement-refund-confirmation form { display: flex; align-items: end; gap: 12px; margin: 0; }
.final-settlement-refund-confirmation label { display: grid; gap: 6px; color: #69748c; font-size: 12px; }
.final-settlement-refund-confirmation input { min-width: 180px; min-height: 46px; padding: 0 12px; border: 1px solid #d7deea; border-radius: 10px; background: #fff; }
@media (max-width: 900px) {
  .final-settlement-refund-confirmation { grid-template-columns: 1fr; }
  .final-settlement-refund-confirmation form { align-items: stretch; flex-direction: column; }
  .final-settlement-refund-confirmation input { width: 100%; }
}
