﻿:root {  --bg: #f6f0e5;  --surface: rgba(255, 253, 248, 0.92);  --text: #18372c;  --text-soft: #597066;  --line: rgba(24, 55, 44, 0.1);  --brand: #174f3f;  --brand-soft: #dce9e2;  --accent: #c6892c;  --warn: #9f5f18;  --shadow: 0 20px 48px rgba(24, 55, 44, 0.1);  --radius-xl: 32px;  --radius-lg: 22px;  --container: 1280px;}* { box-sizing: border-box; }body {  margin: 0;  color: var(--text);  font-family: "Manrope", "Segoe UI", sans-serif;  background:    radial-gradient(circle at 12% 12%, rgba(198, 137, 44, 0.18), transparent 24%),    radial-gradient(circle at 88% 8%, rgba(23, 79, 63, 0.15), transparent 20%),    linear-gradient(180deg, #fbf7ef 0%, #f0e8db 52%, #ebe0d1 100%);}button, input, select, textarea { font: inherit; }a { color: var(--brand); }.page-shell { min-height: 100vh; display: flex; flex-direction: column; }.container { width: min(calc(100% - 40px), var(--container)); margin: 0 auto; }.container--narrow { width: min(calc(100% - 40px), 980px); }.hero { position: relative; overflow: hidden; padding: 28px 0 40px; }.hero__backdrop { position: absolute; border-radius: 999px; filter: blur(16px); pointer-events: none; }.hero__backdrop--one { width: 320px; height: 320px; right: -80px; top: -40px; background: rgba(198, 137, 44, 0.14); }.hero__backdrop--two { width: 360px; height: 360px; left: -120px; top: 100px; background: rgba(23, 79, 63, 0.12); }.topbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 28px; padding: 12px 0; }.topbar__actions { display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }.brand { display: inline-flex; align-items: center; gap: 14px; }.brand__mark { width: 78px; height: 78px; display: grid; place-items: center; overflow: hidden; padding: 0; background: transparent; box-shadow: none; border-radius: 0; flex: 0 0 78px; }.brand__mark img { width: 100%; height: 100%; display: block; object-fit: contain; border-radius: 0; }.brand__mark--link { color: inherit; cursor: pointer; text-decoration: none; }.brand__mark--link:focus-visible { outline: 3px solid rgba(23, 79, 63, 0.35); outline-offset: 4px; }.brand__title { font-family: "Spectral", Georgia, serif; font-size: 28px; font-weight: 700; line-height: 1; }.brand__subtitle { margin-top: 8px; color: var(--accent); font-size: 21px; font-weight: 800; line-height: 1.1; }.topbar__link, .action-link { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 18px; border-radius: 999px; background: rgba(255,255,255,0.7); border: 1px solid var(--line); text-decoration: none; font-weight: 700; }
.topbar__link--ghost { background: rgba(23,79,63,0.08); color: var(--brand); }
.topbar__link.is-authenticated { background: rgba(23,79,63,0.16); border-color: rgba(23,79,63,0.22); }
.top-progress { margin: 0 0 24px; padding: 18px 22px; background: rgba(255, 253, 248, 0.88); border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--shadow); }.top-progress__row { display: flex; align-items: center; justify-content: space-between; gap: 18px; }.top-progress__label { font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; color: var(--brand); }.top-progress__text { margin-top: 6px; color: var(--text-soft); }.top-progress__value { font-size: 28px; font-weight: 800; color: var(--brand); }.progress-bar { margin-top: 14px; width: 100%; height: 12px; border-radius: 999px; background: rgba(24,55,44,0.14); overflow: hidden; }.progress-bar span { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(145deg, var(--accent) 0%, #d79a38 100%); transition: width 0.25s ease; }.hero__grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 24px; }
.hero__grid--single { grid-template-columns: minmax(0, 1fr); }
.hero__copy, .hero__aside .aside-card, .panel { position: relative; z-index: 1; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow); border-radius: var(--radius-xl); }.hero__copy { padding: 44px; }.eyebrow { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; color: var(--brand); background: var(--brand-soft); font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; }h1, h2, h3 { font-family: "Spectral", Georgia, serif; margin: 0; }
h1 { margin-top: 18px; font-size: clamp(34px, 4vw, 58px); line-height: 1; max-width: 14ch; }
.hero__grid--single h1 { width: 100%; max-width: none; line-height: 1.08; }
.hero__lead { margin: 22px 0 0; font-size: 18px; line-height: 1.7; max-width: 64ch; color: var(--text-soft); }
.hero__aside { display: grid; gap: 18px; }.aside-card { padding: 28px; }.aside-card--warm { background: linear-gradient(180deg, rgba(255,248,236,0.94) 0%, rgba(255,253,248,0.94) 100%); }.aside-card__label { font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; color: var(--warn); margin-bottom: 14px; }.aside-card p, .aside-list { margin: 0; color: var(--text-soft); line-height: 1.65; }.aside-list { padding-left: 20px; }.main-content { padding: 10px 0 36px; flex: 1 0 auto; }.main-content--simple { padding-top: 28px; }.builder { display: grid; grid-template-columns: 1.12fr 0.88fr; gap: 24px; }.panel { padding: 32px; }.panel--sticky { position: sticky; top: 18px; }.panel__header p { margin: 10px 0 0; color: var(--text-soft); line-height: 1.65; }.form-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; align-items: start; }.field { display: grid; grid-template-rows: minmax(2.8em, auto) auto; gap: 10px; align-content: start; position: relative; }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.field--span-2 { grid-column: span 2; } .field--span-3 { grid-column: span 3; } .field--span-4 { grid-column: span 4; } .field--span-5 { grid-column: span 5; } .field--span-6 { grid-column: span 6; } .field--span-8 { grid-column: span 8; } .field--span-9 { grid-column: span 9; } .field--span-10 { grid-column: span 10; } .field--span-12, .field--wide { grid-column: 1 / -1; }.field__label { display: flex; align-items: flex-end; font-size: 14px; font-weight: 800; }.field__label--nowrap { white-space: nowrap; }.field-cluster { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; align-items: start; }.field-cluster--address-lock { padding: 16px; border-radius: 18px; background: rgba(111, 121, 126, 0.12); border: 1px solid rgba(111, 121, 126, 0.22); }.field-cluster--address-lock .field { margin: 0; }.field-cluster--party { row-gap: 0; }.field-cluster--signature-row { row-gap: 0; }.field__note { display: block; margin-top: -2px; font-size: 12px; line-height: 1.4; color: var(--text-soft); }.field__note--warn { color: var(--warn); font-weight: 800; }.field input, .field select, .field textarea, .mode-select, .share-card__row input { width: 100%; min-height: 52px; padding: 12px 16px; border-radius: 14px; border: 1px solid rgba(24,55,44,0.14); background: rgba(255,255,255,0.94); color: var(--text); }.field textarea { min-height: 112px; resize: vertical; }.field input[data-money-input="true"] { font-variant-numeric: tabular-nums; }.field--money input { text-align: right; }.field--phone-80 input { width: 80%; }.field input:focus, .field select:focus, .field textarea:focus, .mode-select:focus, .share-card__row input:focus { outline: none; border-color: rgba(23,79,63,0.5); box-shadow: 0 0 0 4px rgba(23,79,63,0.08); }.field--attention input { border-color: rgba(215, 133, 39, 0.75); box-shadow: 0 0 0 4px rgba(215, 133, 39, 0.14); background: rgba(255, 248, 236, 0.96); }.field--address { position: relative; }.dropdown { list-style: none; margin: 0; padding: 8px; position: absolute; left: 0; right: 0; top: calc(100% + 4px); background: #fff; border: 1px solid rgba(24,55,44,0.18); border-radius: 14px; box-shadow: 0 14px 24px rgba(24,55,44,0.16); max-height: 220px; overflow: auto; z-index: 20; }.dropdown li { padding: 10px 12px; border-radius: 10px; cursor: pointer; line-height: 1.35; }.dropdown li:hover, .dropdown li.is-active { background: rgba(23,79,63,0.1); }.dropdown__hint-title { display: block; font-weight: 800; color: var(--brand); }.dropdown__hint-note { display: block; margin-top: 4px; font-size: 12px; line-height: 1.45; color: var(--text-soft); }.mode-picker { margin-top: 26px; }.mode-picker__title { font-family: "Spectral", Georgia, serif; font-size: 21px; line-height: 1.15; font-weight: 700; margin-bottom: 16px; }.mode-picker--tight-heading .mode-picker__title { margin-bottom: 8px; }.mode-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }.mode-card { display: grid; gap: 10px; padding: 18px; border-radius: var(--radius-lg); border: 1px solid rgba(24,55,44,0.12); background: rgba(255,255,255,0.9); }
.mode-card--compact { width: min(100%, 180px); justify-self: start; }
.mode-card--tiny { width: min(100%, 130px); justify-self: start; }
.mode-card__title { font-size: 17px; font-weight: 800; }
.number-input--tiny { width: 76px !important; min-width: 76px; padding-left: 12px; padding-right: 12px; }
.subsection { margin-top: 20px; padding: 20px; border: 1px solid rgba(24,55,44,0.12); border-radius: 22px; background: rgba(255,255,255,0.78); }.subsection__head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 16px; }.subsection__head--spread { align-items: center; }.subsection h3 { font-size: 26px; } .subsection p { margin: 8px 0 0; color: var(--text-soft); line-height: 1.6; }.meter-groups, .inventory-list, .doc-cards { display: grid; gap: 16px; }.meter-group, .doc-card { padding: 18px; border-radius: 18px; border: 1px solid rgba(24,55,44,0.12); background: rgba(255,255,255,0.92); }.meter-group__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }.meter-group__head h3 { font-size: 24px; } .meter-group__head p { margin: 8px 0 0; color: var(--text-soft); }.meter-group__rows { display: grid; gap: 12px; }.meter-group__empty { padding: 14px 16px; border-radius: 14px; background: rgba(23,79,63,0.06); color: var(--text-soft); }.meter-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto minmax(220px, 0.8fr) auto; gap: 12px; align-items: end; padding: 14px; border-radius: 16px; border: 1px solid rgba(24,55,44,0.1); background: rgba(246,240,229,0.45); }.meter-row__unit { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; padding: 0 14px; border-radius: 14px; background: rgba(23,79,63,0.08); font-weight: 800; white-space: nowrap; }.meter-row__remove { min-height: 52px; padding: 0 16px; border-radius: 14px; border: 1px solid rgba(159,95,24,0.18); background: rgba(198,137,44,0.08); color: var(--warn); font-weight: 800; cursor: pointer; }.inventory-item { display: grid; grid-template-columns: 2fr 0.7fr 1.2fr 1.5fr auto; gap: 12px; align-items: end; padding: 14px; border-radius: 16px; border: 1px solid rgba(24,55,44,0.1); background: rgba(246,240,229,0.45); }.check-grid, .simple-summary, .share-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }.simple-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 22px; gap: 14px; }.check-card, .simple-summary__item, .share-box, .share-card { padding: 14px 16px; border-radius: 18px; border: 1px solid rgba(24,55,44,0.12); background: rgba(255,255,255,0.92); }.check-card { display: flex; gap: 10px; align-items: flex-start; font-weight: 700; }.check-card--inline { border-radius: 14px; padding: 10px 14px; min-height: 52px; align-items: center; }.summary-card { padding: 24px; border-radius: var(--radius-lg); background: linear-gradient(145deg, var(--brand) 0%, #205847 100%); color: #fff; }.summary-card__eyebrow { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; opacity: 0.8; }.summary-card__title { margin-top: 12px; font-family: "Spectral", Georgia, serif; font-size: 32px; line-height: 1.1; }.summary-card__text { margin-top: 12px; line-height: 1.6; opacity: 0.9; }.preview { margin-top: 18px; max-height: 700px; overflow: auto; padding: 18px; border-radius: var(--radius-lg); background: rgba(255,255,255,0.9); border: 1px solid rgba(24,55,44,0.12); line-height: 1.6; }.preview--full { max-height: none; }.preview--document p { margin: 0 0 10px; }.preview--document h3 { font-size: 26px; margin: 0 0 16px; padding-bottom: 12px; border-bottom: 1px solid rgba(24,55,44,0.1); text-align: center; }.doc-preview__place-date { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin: 0 0 12px; font-weight: 600; }
.doc-preview__place-date span:last-child { text-align: right; white-space: nowrap; }
.doc-preview__tab-line { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin: 0 0 10px; }
.doc-preview__tab-line--left { justify-content: flex-start; gap: 56px; }
.doc-preview__tab-line--left span { text-align: left; white-space: nowrap; }
.doc-preview__sign-table { width: 100%; border-collapse: collapse; margin: 0 0 10px; table-layout: fixed; }
.doc-preview__sign-table td { border: none; padding: 8px 0; vertical-align: top; text-align: left; }
.doc-preview__section { font-weight: 800; margin-top: 14px !important; }
.doc-preview__center-line { text-align: center; }
.preview-protected { user-select: none; -webkit-user-select: none; -ms-user-select: none; cursor: default; }
.preview-protected:focus { outline: 2px solid rgba(24,55,44,0.18); outline-offset: 2px; }
.protected-preview__canvas { display: block; width: 100%; max-width: 100%; pointer-events: none; }
.inline-doc-link { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 999px; background: rgba(23,79,63,0.08); font-weight: 800; text-decoration: none; }
.inline-doc-link::after { content: 'в†—'; }.actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }.actions--stacked { grid-template-columns: 1fr; } .actions--wide { max-width: 420px; }.action-btn { min-height: 50px; border-radius: 14px; border: 1px solid transparent; background: linear-gradient(145deg, var(--brand) 0%, #205a49 100%); color: #fff; font-weight: 800; cursor: pointer; padding: 0 18px; }.action-btn--ghost { background: rgba(255,255,255,0.8); border-color: rgba(24,55,44,0.16); color: var(--brand); }.action-btn--small { min-height: 42px; padding: 0 14px; font-size: 14px; }.share-card__row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: stretch; }.share-card__note, .share-box p, .share-box ul, .simple-summary__item span, .subsection p { color: var(--text-soft); }.simple-summary__item span { display: block; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; }.simple-summary__item strong { display: block; margin-top: 8px; line-height: 1.45; }.doc-card__eyebrow { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; color: var(--accent); }.doc-card__body { margin-top: 14px; } .doc-card__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 18px; }.page-shell--simple { min-height: 100vh; display: flex; flex-direction: column; } .simple-header { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }.print-page { background: #f0e8db; } .print-shell { max-width: 1120px; margin: 0 auto; padding: 20px; } .print-toolbar { display: flex; gap: 12px; justify-content: space-between; flex-wrap: wrap; margin-bottom: 16px; }.is-hidden { display: none !important; }@media print { .print-toolbar { display: none !important; } body.print-page { background: #fff; } .print-shell { max-width: none; padding: 0; } .panel { box-shadow: none; border: none; background: #fff; } .preview { border: none; padding: 0; background: #fff; } }@media (max-width: 1200px) { .hero__grid, .builder { grid-template-columns: 1fr; } .panel--sticky { position: static; } }@media (max-width: 980px) { .meter-row, .inventory-item, .simple-summary, .share-grid, .check-grid { grid-template-columns: 1fr; } }@media (max-width: 860px) { .field--bank-toggle-row {
  min-width: 220px;
  width: 220px;
  max-width: 220px;
}  .topbar { flex-direction: column; align-items: flex-start; } .top-progress__row { flex-direction: column; align-items: flex-start; } .form-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } .field--span-2, .field--span-3, .field--span-4, .field--span-6, .field--span-8, .field--span-9, .field--span-10, .field--span-12 { grid-column: span 6; } .mode-grid { grid-template-columns: 1fr; } .panel { padding: 22px; } .hero__copy { padding: 26px; } .summary-card__title { font-size: 28px; } .actions { grid-template-columns: 1fr; } .brand__mark { width: 72px; height: 72px; flex-basis: 72px; } .brand__title { font-size: 24px; } .brand__subtitle { font-size: 18px; } .share-card__row { grid-template-columns: 1fr; } }.status-card {  display: grid;  gap: 12px;}.status-card--warn {  border-color: rgba(159, 95, 24, 0.22);  background: rgba(255, 247, 236, 0.96);}.status-chip {  display: inline-flex;  align-items: center;  justify-content: center;  min-height: 32px;  width: fit-content;  padding: 0 12px;  border-radius: 999px;  background: rgba(23, 79, 63, 0.1);  color: var(--brand);  font-size: 12px;  font-weight: 800;  text-transform: uppercase;  letter-spacing: 0.08em;}.status-chip--ok {  background: rgba(23, 121, 73, 0.12);  color: #166542;}.status-card__line {  display: flex;  justify-content: space-between;  gap: 14px;  align-items: baseline;  color: var(--text-soft);}.status-card__line strong {  color: var(--text);  text-align: right;}.share-response {  display: grid;  gap: 10px;  padding-top: 6px;  border-top: 1px solid rgba(24, 55, 44, 0.08);}.share-response__comment {  padding: 12px 14px;  border-radius: 14px;  background: rgba(23, 79, 63, 0.06);  color: var(--text);  line-height: 1.55;}@media (max-width: 860px) { .field--bank-toggle-row {
  min-width: 220px;
  width: 220px;
  max-width: 220px;
}   .status-card__line {    flex-direction: column;    align-items: flex-start;  }}.meter-row {  grid-template-columns: minmax(0, 1fr) auto;  align-items: stretch;}.meter-row__content {  display: grid;  grid-template-columns: repeat(12, minmax(0, 1fr));  gap: 12px;  align-items: end;}.meter-row__zones {  grid-column: 1 / -1;  display: grid;  grid-template-columns: repeat(12, minmax(0, 1fr));  gap: 12px;}.meter-row__toggle {  align-self: stretch;  justify-content: flex-start;  width: 100%;}.meter-row__toggle-field {  gap: 10px;}.meter-row__toggle-field .field__label {  align-items: flex-end;}.meter-row--electricity {  background: rgba(23, 79, 63, 0.05);}@media (max-width: 980px) {  .meter-row {    grid-template-columns: 1fr;  }  .meter-row__content,  .meter-row__zones {    grid-template-columns: 1fr;  }  .meter-row__content > *,  .meter-row__zones > * {    grid-column: 1 / -1 !important;  }  .field-cluster {    grid-template-columns: 1fr;  }  .field-cluster > * {    grid-column: 1 / -1 !important;  }}.summary-card__progress {  margin-top: 16px;  display: grid;  gap: 10px;}.summary-card__progress-head {  display: flex;  align-items: center;  justify-content: space-between;  gap: 12px;  font-size: 13px;  font-weight: 800;  text-transform: uppercase;  letter-spacing: 0.06em;}.summary-card__progress-head strong {  font-size: 26px;  letter-spacing: normal;}.progress-bar--side {  margin-top: 0;  background: rgba(255,255,255,0.18);}.progress-bar--side span {
  background: linear-gradient(145deg, #f1cb84 0%, #ffd99f 100%);
}

.access-note {
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid rgba(164, 104, 30, 0.24);
  background: rgba(255, 243, 221, 0.9);
  color: #5f4218;
  font-size: 14px;
  line-height: 1.55;
}

.access-note--hero {
  width: 100%;
  max-width: none;
  margin-top: 20px;
  padding: 18px 22px;
  font-size: 18px;
  line-height: 1.65;
}

.share-grid--single {
  grid-template-columns: minmax(0, 1fr);
}

.access-note--page {
  margin-top: 18px;
}

.access-note--success {
  border-color: rgba(23, 79, 63, 0.24);
  background: rgba(232, 247, 240, 0.95);
  color: #174f3f;
}

.access-note--alert {
  border-color: rgba(133, 55, 23, 0.24);
  background: rgba(253, 236, 229, 0.95);
  color: #7c3414;
}

.portal-top-alert {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin: 0 0 16px;
  padding: 14px 18px;
  border-radius: 18px;
  border: 1px solid rgba(164, 104, 30, 0.22);
  background: rgba(255, 245, 226, 0.94);
  color: #6a4614;
  box-shadow: 0 18px 32px rgba(24, 55, 44, 0.08);
}

.portal-top-alert.is-hidden {
  display: none !important;
}

.portal-top-alert--alert {
  border-color: rgba(159, 95, 24, 0.28);
  background: rgba(255, 239, 223, 0.96);
  color: #7b3416;
}

.portal-top-alert--warn {
  border-color: rgba(198, 137, 44, 0.24);
  background: rgba(255, 248, 233, 0.96);
  color: #7a5117;
}

.portal-top-alert__main {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1 1 auto;
  min-width: 0;
  flex-wrap: wrap;
}

.portal-top-alert__text {
  font-size: 14px;
  line-height: 1.6;
  font-weight: 700;
}

.portal-top-alert__link {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(23, 79, 63, 0.14);
  background: rgba(255, 255, 255, 0.86);
  color: var(--brand);
  text-decoration: none;
  font-weight: 800;
  white-space: nowrap;
}

.portal-top-alert__close {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  color: inherit;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.modal-shell {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(138, 103, 62, 0.28);
  backdrop-filter: blur(8px);
  z-index: 80;
}

.modal-card {
  width: min(640px, 100%);
  max-height: calc(100vh - 48px);
  overflow: auto;
  border-radius: 24px;
  padding: 26px;
  background: #fffaf2;
  border: 1px solid rgba(139, 92, 46, 0.14);
  box-shadow: 0 28px 80px rgba(109, 74, 37, 0.24);
}

.dd-dialog-shell {
  z-index: 120;
}

.dd-dialog-card {
  width: min(540px, 100%);
  padding: 24px;
  background: linear-gradient(180deg, rgba(255, 250, 242, 0.98) 0%, rgba(255, 244, 231, 0.98) 100%);
  border-color: rgba(164, 104, 30, 0.2);
  box-shadow: 0 32px 82px rgba(112, 76, 35, 0.22);
}

.dd-dialog-card--danger {
  border-color: rgba(159, 95, 24, 0.28);
}

.dd-dialog__header {
  margin-bottom: 6px;
}

.dd-dialog__title {
  margin: 0;
}

.dd-dialog__message {
  margin: 0;
  color: var(--text-soft);
  line-height: 1.65;
  white-space: pre-line;
}

.dd-dialog__field {
  width: 100%;
  min-height: 54px;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid rgba(24, 55, 44, 0.14);
  background: rgba(255, 255, 255, 0.96);
  color: var(--text);
}

.dd-dialog__field:focus {
  outline: none;
  border-color: rgba(23, 79, 63, 0.45);
  box-shadow: 0 0 0 4px rgba(23, 79, 63, 0.08);
}

.dd-dialog__field--multiline {
  min-height: 132px;
  resize: vertical;
}

.dd-dialog__hint {
  color: var(--text-soft);
  font-size: 13px;
  line-height: 1.55;
}

.dd-dialog__actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.dd-dialog__action--danger {
  background: linear-gradient(145deg, #8f5a16 0%, #b06d1e 100%);
  color: #fff;
}

.modal-card__header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
}

.modal-card__header h2 {
  margin: 0;
}

.modal-card__close {
  border: none;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  color: #75522f;
}

.modal-card__lead {
  margin: 14px 0 18px;
  color: #654a29;
}

.payment-form textarea {
  min-height: 96px;
  resize: vertical;
}

@media (max-width: 720px) {
  .field-grid {
    grid-template-columns: 1fr;
  }

  .doc-preview__place-date {
    flex-direction: column;
    gap: 4px;
  }  .doc-preview__place-date span:last-child {
    text-align: left;
    white-space: normal;
  }

  .modal-card {
    padding: 22px 18px;
    border-radius: 18px;
  }

  .portal-top-alert {
    padding: 14px 16px;
  }

  .portal-top-alert__main {
    flex-direction: column;
    align-items: flex-start;
  }
}

.print-status-banner {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(164, 104, 30, 0.26);
  background: rgba(255, 243, 221, 0.92);
  color: #6a4614;
  font-size: 14px;
  font-weight: 700;
}

.print-status-banner__label {
  opacity: 0.9;
}

.print-status-banner strong {
  font-size: 14px;
}

.print-status-banner--paid {
  border-color: rgba(23, 79, 63, 0.28);
  background: rgba(232, 247, 240, 0.96);
  color: #174f3f;
}

.print-status-banner--unpaid {
  border-color: rgba(164, 104, 30, 0.26);
  background: rgba(255, 243, 221, 0.92);
  color: #6a4614;
}


.auth-user-block {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 4px;
  margin-left: 2px;
}

.auth-user-block [data-auth-entry] {
  margin: 0;
}

.auth-print-status {
  min-height: 16px;
  font-size: 12px;
  font-weight: 800;
  color: #174f3f;
  text-align: right;
  white-space: nowrap;
}

.topbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  margin-bottom: 10px;
  row-gap: 6px;
}

.topbar__actions {
  flex-wrap: nowrap;
  overflow-x: auto;
  max-width: 100%;
  padding-bottom: 2px;
  scrollbar-width: thin;
  justify-self: end;
}

.brand {
  min-width: 0;
}

.topbar__link,
.action-link {
  white-space: nowrap;
  flex: 0 0 auto;
}

.auth-user-block {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  flex: 0 0 auto;
}

.auth-print-status {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  min-height: 20px;
  margin-top: 2px;
  gap: 8px;
  margin-left: auto;
}

.auth-print-status a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.field--kpp-90 input { width: 130% !important; display: block; margin-left: auto; margin-right: auto; }
.field--bank-toggle-row {
  min-width: 220px;
  width: 220px;
  max-width: 220px;
}
#landlordKppField { margin-left: 0 !important; justify-self: start; }
#tenantKppField { margin-left: 0 !important; justify-self: start; }
.check-card--inline span { white-space: nowrap; }
.field--bank-toggle-row span { white-space: normal; line-height: 1.15; }

#landlordBankFields #landlordKppField,
#tenantBankFields #tenantKppField { grid-column: 1 / span 2; justify-self: start; }
#landlordBankFields #landlordBankAccountField, #tenantBankFields #tenantBankAccountField { grid-column: 4 / span 5; }
#landlordBankFields #landlordBankBikField, #tenantBankFields #tenantBankBikField { grid-column: 10 / span 3; justify-self: end; }

#landlordPhoneField,
#tenantPhoneField { grid-column: 1 / span 4; }
#landlordEmailField,
#tenantEmailField { grid-column: 4 / span 5; }
#landlordBankFields #landlordBankAccountField input,
#tenantBankFields #tenantBankAccountField input { letter-spacing: 0.2px; font-variant-numeric: tabular-nums; }








/* phone width 12 symbols + single-line bank toggle */
#landlordPhoneField input,
#tenantPhoneField input {
  width: calc(12ch + 32px);
  min-width: calc(12ch + 32px);
  max-width: calc(12ch + 32px);
}

.field--bank-toggle-row,
.field--bank-toggle-row span {
  white-space: nowrap !important;
}

.field--bank-toggle-row {
  min-width: 220px;
  width: 220px;
  max-width: 220px;
}






/* force bank toggle width */
.field--bank-toggle-row {
  min-width: 228px !important;
  width: 228px !important;
  max-width: 228px !important;
  justify-self: end !important;
  margin-left: auto !important;
}
.field--bank-toggle-row span {
  white-space: nowrap !important;
}
.field--bank-toggle-row span {
  white-space: nowrap !important;
}





/* bank toggle right align final */
.field--bank-toggle-row {
  min-width: 228px !important;
  width: 228px !important;
  max-width: 228px !important;
  justify-self: end !important;
  margin-left: auto !important;
}
.field--bank-toggle-row span {
  white-space: nowrap !important;
}


/* contacts + bank toggle in one row */
#landlordBankFields #landlordPhoneField,
#tenantBankFields #tenantPhoneField {
  grid-column: 1 / span 3 !important;
  grid-row: 1 !important;
}
#landlordBankFields #landlordEmailField,
#tenantBankFields #tenantEmailField {
  grid-column: 4 / span 6 !important;
  grid-row: 1 !important;
}
#landlordBankFields .field--bank-toggle-row,
#tenantBankFields .field--bank-toggle-row {
  grid-column: 10 / span 3 !important;
  grid-row: 1 !important;
  justify-self: end !important;
  align-self: end !important;
  margin-left: auto !important;
}


/* final row lock: phone + email + bank toggle */
#landlordBankFields,
#tenantBankFields {
  align-items: start !important;
}
#landlordBankFields #landlordPhoneField,
#tenantBankFields #tenantPhoneField {
  grid-column: 1 / span 3 !important;
  grid-row: 1 / 2 !important;
  align-self: start !important;
  margin-top: 0 !important;
}
#landlordBankFields #landlordEmailField,
#tenantBankFields #tenantEmailField {
  grid-column: 3 / span 5 !important;
  grid-row: 1 / 2 !important;
  align-self: start !important;
  margin-top: 0 !important;
}
#landlordBankFields .field--bank-toggle-row,
#tenantBankFields .field--bank-toggle-row {
  grid-column: 10 / span 3 !important;
  grid-row: 1 / 2 !important;
  justify-self: end !important;
  align-self: start !important;
  margin-top: 0 !important;
}



/* requisites layout final v2 */
#landlordPhoneField,
#tenantPhoneField {
  grid-column: 1 / span 3 !important;
  grid-row: 1 / 2 !important;
  align-self: start !important;
}
#landlordEmailField,
#tenantEmailField {
  grid-column: 4 / span 6 !important;
  grid-row: 1 / 2 !important;
  align-self: start !important;
}
#landlordBankFields .field--bank-toggle-row,
#tenantBankFields .field--bank-toggle-row {
  grid-column: 10 / span 3 !important;
  grid-row: 1 / 2 !important;
  justify-self: end !important;
  align-self: start !important;
}
#landlordBankFields #landlordKppField,
#tenantBankFields #tenantKppField {
  grid-column: 1 / span 2 !important;
  grid-row: 2 / 3 !important;
}
#landlordBankFields #landlordBankAccountField,
#tenantBankFields #tenantBankAccountField {
  grid-column: 3 / span 7 !important;
  grid-row: 2 / 3 !important;
}
#landlordBankFields #landlordBankBikField,
#tenantBankFields #tenantBankBikField {
  grid-column: 10 / span 3 !important;
  grid-row: 2 / 3 !important;
  justify-self: end !important;
}


/* final tune: bank toggle auto width + email 90% */
#landlordBankFields .field--bank-toggle-row,
#tenantBankFields .field--bank-toggle-row {
  width: max-content !important;
  min-width: 0 !important;
  max-width: none !important;
}
#landlordEmailField,
#tenantEmailField {
  width: 90% !important;
  justify-self: start !important;
}


/* requisites row order lock v3 */
#landlordBankFields #landlordKppField,
#tenantBankFields #tenantKppField {
  grid-column: 1 / span 2 !important;
  grid-row: 2 / 3 !important;
}
#landlordBankFields #landlordBankAccountField,
#tenantBankFields #tenantBankAccountField {
  grid-column: 3 / span 7 !important;
  grid-row: 2 / 3 !important;
}
#landlordBankFields #landlordBankBikField,
#tenantBankFields #tenantBankBikField {
  grid-column: 10 / span 3 !important;
  grid-row: 2 / 3 !important;
  justify-self: end !important;
}
#landlordBankFields #landlordBankNameField,
#tenantBankFields #tenantBankNameField {
  grid-column: 1 / span 6 !important;
  grid-row: 3 / 4 !important;
}
#landlordBankFields #landlordBankCorrField,
#tenantBankFields #tenantBankCorrField {
  grid-column: 7 / span 6 !important;
  grid-row: 3 / 4 !important;
}


/* requisites layout final v4 */
#landlordBankFields #landlordPhoneField,
#tenantBankFields #tenantPhoneField {
  grid-column: 1 / span 3 !important;
  grid-row: 1 / 2 !important;
}
#landlordBankFields #landlordEmailField,
#tenantBankFields #tenantEmailField {
  grid-column: 4 / span 5 !important;
  grid-row: 1 / 2 !important;
  width: 90% !important;
}
#landlordBankFields .field--bank-toggle-row,
#tenantBankFields .field--bank-toggle-row {
  grid-column: 9 / span 4 !important;
  grid-row: 1 / 2 !important;
  justify-self: end !important;
  width: max-content !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
#landlordBankFields #landlordKppField,
#tenantBankFields #tenantKppField {
  grid-column: 1 / span 2 !important;
  grid-row: 2 / 3 !important;
}
#landlordBankFields #landlordBankAccountField,
#tenantBankFields #tenantBankAccountField {
  grid-column: 3 / span 6 !important;
  grid-row: 2 / 3 !important;
}
#landlordBankFields #landlordBankBikField,
#tenantBankFields #tenantBankBikField {
  grid-column: 9 / span 4 !important;
  grid-row: 2 / 3 !important;
  justify-self: end !important;
}
#landlordBankFields #landlordBankNameField,
#tenantBankFields #tenantBankNameField {
  grid-column: 1 / span 6 !important;
  grid-row: 3 / 4 !important;
}
#landlordBankFields #landlordBankCorrField,
#tenantBankFields #tenantBankCorrField {
  grid-column: 7 / span 6 !important;
  grid-row: 3 / 4 !important;
}


/* requisites layout final v5 (correct containers) */
#landlordPhoneField,
#tenantPhoneField {
  grid-column: 1 / span 3 !important;
  grid-row: 1 / 2 !important;
}
#landlordEmailField,
#tenantEmailField {
  grid-column: 4 / span 5 !important;
  grid-row: 1 / 2 !important;
  width: 90% !important;
  justify-self: start !important;
}
#landlordBankToggleField,
#tenantBankToggleField {
  grid-column: 9 / span 4 !important;
  grid-row: 1 / 2 !important;
  justify-self: end !important;
  width: max-content !important;
  max-width: 100% !important;
  min-width: 0 !important;
  white-space: nowrap !important;
}
#landlordBankToggleField span,
#tenantBankToggleField span {
  white-space: nowrap !important;
}
#landlordBankFields #landlordKppField,
#tenantBankFields #tenantKppField {
  grid-column: 1 / span 2 !important;
  grid-row: 2 / 3 !important;
}
#landlordBankFields #landlordBankAccountField,
#tenantBankFields #tenantBankAccountField {
  grid-column: 3 / span 6 !important;
  grid-row: 2 / 3 !important;
}
#landlordBankFields #landlordBankBikField,
#tenantBankFields #tenantBankBikField {
  grid-column: 9 / span 4 !important;
  grid-row: 2 / 3 !important;
  justify-self: end !important;
}
#landlordBankFields #landlordBankNameField,
#tenantBankFields #tenantBankNameField {
  grid-column: 1 / span 6 !important;
  grid-row: 3 / 4 !important;
}
#landlordBankFields #landlordBankCorrField,
#tenantBankFields #tenantBankCorrField {
  grid-column: 7 / span 6 !important;
  grid-row: 3 / 4 !important;
}


/* requisites layout final v6: bank toggle on email input line */
#landlordBankToggleField,
#tenantBankToggleField {
  grid-row: 1 / 2 !important;
  align-self: end !important;
  margin-top: 0 !important;
}


/* requisites layout final v7: centered email + tuned account/bik widths */
#landlordPhoneField,
#tenantPhoneField {
  grid-column: 1 / span 3 !important;
  grid-row: 1 / 2 !important;
}
#landlordEmailField,
#tenantEmailField {
  grid-column: 4 / span 5 !important;
  grid-row: 1 / 2 !important;
  width: 100% !important;
  justify-self: stretch !important;
}
#landlordBankToggleField,
#tenantBankToggleField {
  grid-column: 9 / span 4 !important;
  grid-row: 1 / 2 !important;
  justify-self: end !important;
  align-self: end !important;
  width: max-content !important;
}
#landlordBankFields #landlordKppField,
#tenantBankFields #tenantKppField {
  grid-column: 1 / span 2 !important;
  grid-row: 2 / 3 !important;
}
#landlordBankFields #landlordBankAccountField,
#tenantBankFields #tenantBankAccountField {
  grid-column: 3 / span 5 !important;
  grid-row: 2 / 3 !important;
}
#landlordBankFields #landlordBankAccountField input,
#tenantBankFields #tenantBankAccountField input {
  width: calc(20ch + 32px) !important;
  max-width: 100% !important;
}
#landlordBankFields #landlordBankBikField,
#tenantBankFields #tenantBankBikField {
  grid-column: 9 / span 3 !important;
  grid-row: 2 / 3 !important;
  justify-self: end !important;
  max-width: 170px !important;
  width: 100% !important;
}


/* requisites layout final v8: bik left + account optimal */
#landlordBankFields #landlordBankAccountField,
#tenantBankFields #tenantBankAccountField {
  grid-column: 3 / span 6 !important;
  grid-row: 2 / 3 !important;
}
#landlordBankFields #landlordBankAccountField input,
#tenantBankFields #tenantBankAccountField input {
  width: calc(20ch + 36px) !important;
  max-width: 100% !important;
}
#landlordBankFields #landlordBankBikField,
#tenantBankFields #tenantBankBikField {
  grid-column: 9 / span 3 !important;
  grid-row: 2 / 3 !important;
  justify-self: start !important;
  width: 100% !important;
  max-width: 165px !important;
}


/* requisites layout final v9: enforce account+bik geometry */
#landlordBankFields #landlordKppField,
#tenantBankFields #tenantKppField {
  grid-column: 1 / span 2 !important;
  grid-row: 2 / 3 !important;
}
#landlordBankFields #landlordBankAccountField,
#tenantBankFields #tenantBankAccountField {
  grid-column: 3 / span 5 !important;
  grid-row: 2 / 3 !important;
  justify-self: stretch !important;
}
#landlordBankFields #landlordBankAccountField input,
#tenantBankFields #tenantBankAccountField input {
  width: 100% !important;
  min-width: calc(20ch + 24px) !important;
  max-width: 100% !important;
}
#landlordBankFields #landlordBankBikField,
#tenantBankFields #tenantBankBikField {
  grid-column: 8 / span 3 !important;
  grid-row: 2 / 3 !important;
  justify-self: start !important;
  width: 100% !important;
  max-width: 160px !important;
}


/* requisites layout final v10: even spacing without width changes */
#landlordBankFields #landlordKppField,
#tenantBankFields #tenantKppField {
  grid-column: 1 / span 2 !important;
  grid-row: 2 / 3 !important;
}
#landlordBankFields #landlordBankAccountField,
#tenantBankFields #tenantBankAccountField {
  grid-column: 4 / span 5 !important;
  grid-row: 2 / 3 !important;
}
#landlordBankFields #landlordBankBikField,
#tenantBankFields #tenantBankBikField {
  grid-column: 10 / span 3 !important;
  grid-row: 2 / 3 !important;
}

/* physical person: INN + bank account + BIK in one row */
#landlordInnField:not(.is-hidden),
#tenantInnField:not(.is-hidden) {
  grid-column: 1 / span 3 !important;
  grid-row: 2 / 3 !important;
}
#landlordInnField:not(.is-hidden) ~ #landlordBankFields,
#tenantInnField:not(.is-hidden) ~ #tenantBankFields {
  grid-column: 4 / -1 !important;
  grid-row: 2 / 3 !important;
}
#landlordInnField:not(.is-hidden) ~ #landlordBankFields #landlordBankAccountField,
#tenantInnField:not(.is-hidden) ~ #tenantBankFields #tenantBankAccountField {
  grid-column: 1 / span 7 !important;
  grid-row: 1 / 2 !important;
}
#landlordInnField:not(.is-hidden) ~ #landlordBankFields #landlordBankBikField,
#tenantInnField:not(.is-hidden) ~ #tenantBankFields #tenantBankBikField {
  grid-column: 8 / span 5 !important;
  grid-row: 1 / 2 !important;
  justify-self: stretch !important;
  max-width: none !important;
}
#landlordInnField:not(.is-hidden) ~ #landlordBankFields #landlordBankNameField,
#tenantInnField:not(.is-hidden) ~ #tenantBankFields #tenantBankNameField {
  grid-column: 1 / span 6 !important;
  grid-row: 2 / 3 !important;
}
#landlordInnField:not(.is-hidden) ~ #landlordBankFields #landlordBankCorrField,
#tenantInnField:not(.is-hidden) ~ #tenantBankFields #tenantBankCorrField {
  grid-column: 7 / span 6 !important;
  grid-row: 2 / 3 !important;
}

/* requisites layout stable v12 */
#landlordPhoneField,
#tenantPhoneField {
  grid-column: 1 / span 3 !important;
  grid-row: 1 / 2 !important;
}
#landlordEmailField,
#tenantEmailField {
  grid-column: 4 / span 5 !important;
  grid-row: 1 / 2 !important;
  width: 100% !important;
  justify-self: stretch !important;
}
#landlordBankToggleField,
#tenantBankToggleField {
  grid-column: 9 / span 4 !important;
  grid-row: 1 / 2 !important;
  justify-self: end !important;
  align-self: end !important;
  min-width: 182px !important;
  width: max-content !important;
  max-width: 100% !important;
}
#landlordInnField:not(.is-hidden),
#tenantInnField:not(.is-hidden) {
  grid-column: 1 / span 3 !important;
  grid-row: 2 / 3 !important;
  justify-self: start !important;
}
#landlordPostalAddressToggleField,
#tenantPostalAddressToggleField {
  grid-column: 4 / span 4 !important;
  grid-row: 2 / 3 !important;
  justify-self: start !important;
  align-self: end !important;
  min-width: 190px !important;
  width: max-content !important;
  max-width: 100% !important;
}
#landlordPostalAddressToggleField span,
#tenantPostalAddressToggleField span {
  white-space: nowrap !important;
}
#landlordPassportSeriesField,
#tenantPassportSeriesField {
  grid-column: 1 / span 4 !important;
  grid-row: 4 / 5 !important;
  justify-self: start !important;
}
#landlordPassportNumberField,
#tenantPassportNumberField {
  grid-column: 5 / span 4 !important;
  grid-row: 4 / 5 !important;
  justify-self: start !important;
}
#landlordPassportIssuedAtField,
#tenantPassportIssuedAtField {
  grid-column: 9 / span 4 !important;
  grid-row: 4 / 5 !important;
  justify-self: start !important;
}
#landlordAddressField,
#tenantAddressField {
  grid-column: 1 / -1 !important;
  grid-row: 3 / 4 !important;
}
#landlordPassportIssuedByField,
#tenantPassportIssuedByField {
  grid-column: 1 / -1 !important;
  grid-row: 5 / 6 !important;
}
#landlordRegisteredAddressField,
#tenantRegisteredAddressField {
  grid-column: 1 / -1 !important;
  grid-row: 6 / 7 !important;
}

/* when bank block is enabled, postal address goes below bank details and before passport row */
#landlordBankFields:not(.is-hidden) ~ #landlordPostalAddressToggleField,
#tenantBankFields:not(.is-hidden) ~ #tenantPostalAddressToggleField {
  grid-row: 3 / 4 !important;
}
#landlordBankFields:not(.is-hidden) ~ #landlordAddressField,
#tenantBankFields:not(.is-hidden) ~ #tenantAddressField {
  grid-row: 4 / 5 !important;
}
#landlordBankFields:not(.is-hidden) ~ #landlordPassportSeriesField,
#tenantBankFields:not(.is-hidden) ~ #tenantPassportSeriesField,
#landlordBankFields:not(.is-hidden) ~ #landlordPassportNumberField,
#tenantBankFields:not(.is-hidden) ~ #tenantPassportNumberField,
#landlordBankFields:not(.is-hidden) ~ #landlordPassportIssuedAtField,
#tenantBankFields:not(.is-hidden) ~ #tenantPassportIssuedAtField {
  grid-row: 5 / 6 !important;
}
#landlordBankFields:not(.is-hidden) ~ #landlordPassportIssuedByField,
#tenantBankFields:not(.is-hidden) ~ #tenantPassportIssuedByField {
  grid-row: 6 / 7 !important;
}
#landlordBankFields:not(.is-hidden) ~ #landlordRegisteredAddressField,
#tenantBankFields:not(.is-hidden) ~ #tenantRegisteredAddressField {
  grid-row: 7 / 8 !important;
}

#landlordInnField input,
#tenantInnField input {
  width: calc(12ch + 32px) !important;
  min-width: calc(12ch + 32px) !important;
  max-width: calc(12ch + 32px) !important;
}
#landlordPassportSeriesField input,
#tenantPassportSeriesField input {
  width: calc(6ch + 32px) !important;
  min-width: calc(6ch + 32px) !important;
  max-width: calc(6ch + 32px) !important;
}
#landlordPassportNumberField input,
#tenantPassportNumberField input {
  width: calc(10ch + 32px) !important;
  min-width: calc(10ch + 32px) !important;
  max-width: calc(10ch + 32px) !important;
}
#landlordPassportIssuedAtField input,
#tenantPassportIssuedAtField input {
  width: calc(10ch + 56px) !important;
  min-width: calc(10ch + 56px) !important;
  max-width: calc(10ch + 56px) !important;
}

#inventoryEnabledField {
  grid-column: 1 / -1 !important;
  justify-self: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
}
#inventoryEnabledField span {
  white-space: nowrap !important;
}

#metersRuleField {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: none !important;
}
#metersDayField {
  justify-self: start !important;
  width: min(100%, 260px) !important;
}

.site-footer {
  margin-top: auto;
  padding: 10px 0 32px;
}

.site-footer .container {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
  flex-wrap: wrap;
}

.site-footer__actions {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 0;
  order: 3;
}

.site-footer__app-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 197px;
  height: 40px;
  flex-shrink: 0;
  text-decoration: none;
  background: center / contain no-repeat url("https://www.rustore.ru/help/icons/logo-color-light.svg");
  transition: transform 0.18s ease, opacity 0.18s ease;
}

.site-footer__app-button:hover {
  transform: translateY(-1px);
  opacity: 0.96;
}

.site-footer__app-image {
  display: none;
}

.site-footer__text {
  margin: 0;
  text-align: center;
  color: var(--text-soft);
  font-size: 14px;
  line-height: 1.6;
  order: 1;
}

.site-footer__nav {
  display: flex;
  justify-content: center;
  gap: 10px 18px;
  flex-wrap: wrap;
  color: var(--text-soft);
  font-size: 13px;
  line-height: 1.5;
  order: 2;
}

.site-footer__nav .site-footer__link {
  font-size: inherit;
}

.site-footer__link {
  color: var(--brand);
  font-weight: 800;
  text-decoration: none;
}

.site-footer__link:hover {
  text-decoration: underline;
}

@media (max-width: 720px) {
  .site-footer .container {
    gap: 10px;
  }

  .site-footer__text,
  .site-footer__nav {
    text-align: center;
  }
}

@media print {
  .site-footer {
    display: none !important;
  }
}

@media (max-width: 860px) {
  .topbar {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
  }

  .topbar__actions {
    justify-content: flex-end;
  }
}

.field--inline-summary {
  display: grid;
  grid-template-columns: max-content minmax(220px, 260px);
  align-items: center;
  gap: 14px;
}

.field--inline-summary .field__label {
  min-height: auto;
  align-items: center;
}

@media (max-width: 760px) {
  .topbar {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin-bottom: 18px;
  }

  .brand {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    width: 100%;
  }

  .topbar__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    justify-self: stretch;
    width: 100%;
    max-width: 100%;
    overflow: visible;
    padding-bottom: 0;
  }

  .topbar__actions > :last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .topbar__actions .topbar__link,
  .topbar__actions .auth-user-block {
    width: 100%;
    min-width: 0;
  }

  .topbar__actions .topbar__link {
    white-space: normal;
    text-align: center;
    line-height: 1.25;
    padding: 10px 14px;
  }
}

@media (max-width: 860px) {
  .field--inline-summary {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}

.field__note--alert {
  margin-top: -2px;
  padding: 0;
  color: #8c2f20;
  font-weight: 800;
  line-height: 1.5;
  text-align: right;
}

.field__helper {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.45;
  color: #8b6a46;
}

/* Constructor meter cards: more compact and legible */
.meter-group {
  padding: 16px 18px;
}

.meter-group__head {
  align-items: center;
  margin-bottom: 12px;
}

.meter-group__head h3 {
  font-size: 22px;
}

.meter-group__head p {
  margin-top: 6px;
  font-size: 14px;
  line-height: 1.45;
  max-width: 42rem;
}

.meter-group__rows {
  gap: 10px;
}

.meter-row {
  padding: 12px 14px;
  border-radius: 14px;
}

.meter-row__toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
}

.meter-row__content {
  min-width: 0;
  gap: 10px;
}

.meter-row__content .field {
  gap: 8px;
}

.meter-row__content .field__label {
  min-height: auto;
}

.meter-row__toggle {
  min-height: 44px;
  padding: 8px 12px;
}

.meter-row__toggle-field {
  align-self: end;
}

.meter-row__toggle-field .field__label {
  justify-content: center;
}

.meter-row__remove {
  min-height: 44px;
  padding: 0 14px;
  align-self: start;
  white-space: nowrap;
  background: rgba(198, 137, 44, 0.12);
}

.meter-row__zones {
  margin-top: 2px;
  gap: 10px;
}

.meter-row--electricity .meter-row__content {
  align-items: start;
}

.meter-row__top {
  display: grid;
  gap: 10px;
}

.meter-row__top--electricity {
  grid-template-columns: minmax(200px, 1.35fr) 110px minmax(190px, 1fr);
  align-items: end;
}

.meter-row__top--electricity .field {
  min-width: 0;
}

.meter-row__top--electricity .field__label {
  min-height: 2.6em;
}

.meter-row__zones--electricity {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.meter-row__zones--electricity .field {
  min-width: 0;
}

.meter-row__zones--electricity .field__label {
  font-size: 13px;
  line-height: 1.35;
}

@media (max-width: 980px) {
  .meter-row__toolbar {
    grid-template-columns: 1fr;
  }

  .meter-row__remove {
    justify-self: start;
  }

  .meter-row__top--electricity,
  .meter-row__zones--electricity {
    grid-template-columns: 1fr;
  }
}

.role-strip {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 18px;
  padding: 18px 22px;
  border-radius: 22px;
  border: 1px solid rgba(24, 55, 44, 0.12);
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 18px 40px rgba(24, 55, 44, 0.08);
}

.role-strip__meta {
  display: grid;
  gap: 8px;
}

.role-pill {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  width: fit-content;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(24, 55, 44, 0.12);
  background: rgba(23, 79, 63, 0.08);
  color: var(--brand);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.role-strip__lead {
  margin: 0;
  color: var(--text-soft);
  line-height: 1.55;
  max-width: 54rem;
}

.role-switcher {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.role-switcher__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid rgba(24, 55, 44, 0.14);
  background: rgba(255, 255, 255, 0.88);
  color: var(--brand);
  text-decoration: none;
  font-weight: 700;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.role-switcher__link:hover {
  border-color: rgba(24, 55, 44, 0.24);
  background: rgba(255, 255, 255, 0.96);
}

.role-switcher__link.is-active {
  background: linear-gradient(145deg, var(--brand) 0%, #205847 100%);
  color: #fff;
  border-color: transparent;
}

.portal-nav {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.portal-nav--top {
  margin: 14px 0 18px;
}

.portal-nav__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid rgba(24, 55, 44, 0.14);
  background: rgba(23, 79, 63, 0.08);
  color: var(--brand);
  text-decoration: none;
  font-weight: 700;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.portal-nav__link:hover {
  border-color: rgba(24, 55, 44, 0.24);
  background: rgba(23, 79, 63, 0.14);
}

.portal-nav__link.is-active {
  background: linear-gradient(145deg, var(--brand) 0%, #205847 100%);
  color: #fff;
  border-color: transparent;
}

.page-shell--tenant .role-strip {
  border-color: rgba(47, 102, 90, 0.14);
  background: rgba(244, 251, 248, 0.86);
}

.page-shell--tenant .portal-nav__link,
.page-shell--tenant .role-switcher__link,
.page-shell--tenant .role-pill {
  color: #24584f;
  border-color: rgba(47, 102, 90, 0.16);
  background: rgba(47, 102, 90, 0.08);
}

.page-shell--tenant .portal-nav__link.is-active,
.page-shell--tenant .role-switcher__link.is-active {
  background: linear-gradient(145deg, #3d7469 0%, #2c5c54 100%);
  color: #fff;
  border-color: transparent;
}

@media (max-width: 980px) {
  .role-strip {
    align-items: start;
  }
}

.hero--compact {
  padding: 18px 0 24px;
}

.hero--compact .topbar {
  gap: 16px;
  margin-bottom: 16px;
  padding: 4px 0;
}

.hero--compact .brand__mark {
  width: 72px;
  height: 72px;
  flex-basis: 72px;
}

.hero--compact .brand__title {
  font-size: 24px;
}

.hero--compact .brand__subtitle {
  margin-top: 4px;
  font-size: 18px;
}

.topbar__actions--compact {
  gap: 10px;
}

.topbar__actions--compact .topbar__link {
  min-height: 40px;
  padding: 0 15px;
  font-size: 15px;
}

.role-strip--compact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px 16px;
  margin-top: 12px;
  padding: 14px 18px;
  border-radius: 20px;
  box-shadow: 0 12px 28px rgba(24, 55, 44, 0.06);
}

.role-strip--compact .role-strip__meta {
  display: contents;
}

.role-strip--compact .role-pill {
  grid-column: 1;
  justify-self: start;
  align-self: center;
  min-height: 30px;
  padding: 0 10px;
  font-size: 11px;
  letter-spacing: 0.05em;
}

.role-strip--compact .role-strip__lead {
  grid-column: 1 / -1;
  max-width: 44rem;
  font-size: 14px;
  line-height: 1.45;
}

.role-strip--compact .role-switcher {
  grid-column: 2;
  justify-self: end;
  align-self: center;
  gap: 8px;
  justify-content: flex-end;
}

.role-strip--compact .role-switcher__link {
  min-height: 38px;
  padding: 0 14px;
  font-size: 14px;
}

.panel--compact {
  padding: 24px 26px;
}

.panel--compact .panel__header p {
  margin-top: 8px;
  font-size: 15px;
  line-height: 1.5;
}

@media (max-width: 980px) {
  .role-strip--compact {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .role-strip--compact .role-pill,
  .role-strip--compact .role-switcher,
  .role-strip--compact .role-strip__lead {
    grid-column: 1;
    justify-self: start;
  }

  .role-strip--compact .role-switcher {
    justify-content: flex-start;
  }
}

.topbar__actions--roles {
  gap: 14px;
}

.topbar__actions--hierarchy {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.topbar__trail {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  flex-wrap: nowrap;
}

.topbar__trail .topbar__link {
  min-height: 42px;
  padding: 0 14px;
  white-space: nowrap;
}

.topbar__link--reports:not(.is-current) {
  background: rgba(198, 137, 44, 0.12);
  color: #8f5a16;
}

.cabinet-role-tabs {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-left: auto;
  flex-wrap: wrap;
}

.topbar__link.is-current {
  background: linear-gradient(145deg, var(--brand) 0%, #205847 100%);
  border-color: transparent;
  color: #fff;
}

.topbar__link--owner:not(.is-current),
.topbar__link--tenant:not(.is-current) {
  background: rgba(23, 79, 63, 0.08);
  color: var(--brand);
}

@media (max-width: 980px) {
  .topbar__actions--hierarchy {
    justify-content: flex-start;
  }

  .topbar__trail {
    width: 100%;
  }

  .cabinet-role-tabs {
    margin-left: 0;
  }
}

@media (max-width: 760px) {
  .hero--compact .topbar {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 14px;
  }

  .hero--compact .brand {
    gap: 12px;
  }

  .hero--compact .brand__mark {
    width: 62px;
    height: 62px;
    flex-basis: 62px;
  }

  .hero--compact .brand__title {
    font-size: 24px;
  }

  .hero--compact .brand__subtitle {
    margin-top: 4px;
    font-size: 16px;
    line-height: 1.3;
  }

  .topbar__actions--hierarchy {
    width: 100%;
    gap: 10px;
  }

  .topbar__trail {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    padding: 0;
    background: none;
    border: none;
    box-shadow: none;
  }

  .topbar__trail > :last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .topbar__trail .topbar__link,
  .topbar__actions--hierarchy > .topbar__link {
    display: grid;
    place-items: center;
    width: 100%;
    min-width: 0;
    min-height: 42px;
    padding: 10px 14px;
    line-height: 1.25;
    text-align: center;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .topbar__trail .topbar__link + .topbar__link::before {
    display: none;
  }

  .topbar__actions--hierarchy .topbar__trail {
    display: contents;
  }

  .topbar__actions--hierarchy .topbar__trail .topbar__link,
  .topbar__actions--hierarchy > .topbar__link {
    white-space: nowrap;
    overflow-wrap: normal;
  }

  .topbar__actions--hierarchy .topbar__trail > .topbar__link {
    grid-column: auto;
  }

  .topbar__actions--hierarchy > .topbar__link {
    grid-column: 1 / -1;
  }

  .topbar__actions--hierarchy > .auth-user-block {
    grid-column: 1 / -1;
    width: 100%;
  }

  .topbar__actions--hierarchy > .auth-user-block .topbar__link {
    width: 100%;
    white-space: nowrap;
    overflow-wrap: normal;
  }
}

body {
  background: linear-gradient(180deg, #f7f2e8 0%, #eee4d4 56%, #e7dac8 100%);
}

html,
body {
  overflow-x: hidden;
}

.page-shell--dossier,
.page-shell--simple,
.invite-shell {
  position: relative;
  isolation: isolate;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.32) 0%, rgba(255, 255, 255, 0) 18%),
    linear-gradient(180deg, #f7f2e8 0%, #eee4d4 58%, #e7dac8 100%);
}

.page-shell--dossier::before,
.page-shell--dossier::after,
.page-shell--simple::before,
.page-shell--simple::after,
.invite-shell::before,
.invite-shell::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 0;
}

.page-shell--dossier::before,
.page-shell--simple::before,
.invite-shell::before {
  inset: 0;
  background:
    linear-gradient(rgba(24, 55, 44, 0.024) 1px, transparent 1px),
    linear-gradient(90deg, rgba(24, 55, 44, 0.024) 1px, transparent 1px);
  background-size: 136px 136px;
  opacity: 0.24;
}

.page-shell--dossier::after,
.page-shell--simple::after,
.invite-shell::after {
  left: 32px;
  right: 32px;
  top: 126px;
  width: auto;
  height: calc(100% - 188px);
  border: 1px solid rgba(24, 55, 44, 0.06);
  border-radius: 36px;
  background:
    linear-gradient(rgba(24, 55, 44, 0.1), rgba(24, 55, 44, 0.1)) left 22px top 22px / 78px 1px no-repeat,
    linear-gradient(rgba(24, 55, 44, 0.1), rgba(24, 55, 44, 0.1)) left 22px top 22px / 1px 78px no-repeat,
    linear-gradient(rgba(24, 55, 44, 0.1), rgba(24, 55, 44, 0.1)) right 22px top 22px / 78px 1px no-repeat,
    linear-gradient(rgba(24, 55, 44, 0.1), rgba(24, 55, 44, 0.1)) right 22px top 22px / 1px 78px no-repeat,
    linear-gradient(rgba(198, 137, 44, 0.14), rgba(198, 137, 44, 0.14)) left 22px bottom 22px / 78px 1px no-repeat,
    linear-gradient(rgba(198, 137, 44, 0.14), rgba(198, 137, 44, 0.14)) left 22px bottom 22px / 1px 78px no-repeat,
    linear-gradient(rgba(198, 137, 44, 0.14), rgba(198, 137, 44, 0.14)) right 22px bottom 22px / 78px 1px no-repeat,
    linear-gradient(rgba(198, 137, 44, 0.14), rgba(198, 137, 44, 0.14)) right 22px bottom 22px / 1px 78px no-repeat;
  box-shadow: none;
  opacity: 0.32;
}

.page-shell--dossier .hero,
.invite-shell .hero {
  position: relative;
  z-index: 1;
  background: linear-gradient(180deg, rgba(255, 251, 245, 0.92) 0%, rgba(245, 237, 224, 0.54) 58%, rgba(255, 255, 255, 0) 100%);
}

.page-shell--dossier .hero__backdrop,
.invite-shell .hero__backdrop,
.page-shell--dossier .hero__glow,
.invite-shell .hero__glow {
  display: none;
}

.page-shell--dossier .container,
.page-shell--simple .container,
.invite-shell .container {
  position: relative;
  z-index: 1;
}

.page-shell--dossier .container::before,
.invite-shell .container::before {
  content: "";
  position: absolute;
  right: 18px;
  top: 46px;
  width: min(28vw, 300px);
  min-width: 220px;
  max-width: 300px;
  height: clamp(180px, 18vw, 240px);
  border-radius: 22px;
  border: 1px solid rgba(24, 55, 44, 0.08);
  background:
    linear-gradient(rgba(24, 55, 44, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(24, 55, 44, 0.055) 1px, transparent 1px),
    linear-gradient(145deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0) 100%);
  background-size: 26px 26px, 26px 26px, 100% 100%;
  box-shadow: none;
  transform: rotate(-4deg);
  opacity: 0.22;
  pointer-events: none;
}

.page-shell--dossier .site-footer .container::before,
.invite-shell .site-footer .container::before {
  content: none;
  display: none;
}

.page-shell--dossier .brand__mark,
.invite-shell .brand__mark {
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.58);
  border: 1px solid rgba(24, 55, 44, 0.08);
  box-shadow: none;
}

.page-shell--dossier .brand__mark img,
.invite-shell .brand__mark img {
  width: 78%;
  height: 78%;
}

.page-shell--dossier .topbar__link,
.page-shell--simple .topbar__link,
.invite-shell .topbar__link {
  background: rgba(255, 255, 255, 0.74);
  border-color: rgba(24, 55, 44, 0.08);
  box-shadow: none;
}

.page-shell--simple .topbar__link--ghost,
.invite-shell .topbar__link--ghost,
.page-shell--dossier .topbar__link--ghost {
  background: rgba(255, 255, 255, 0.54);
}

.page-shell--dossier .panel,
.page-shell--simple .panel,
.invite-shell .panel {
  background: rgba(255, 251, 244, 0.9);
  box-shadow: 0 16px 34px rgba(24, 55, 44, 0.06);
}

.page-shell--simple .main-content,
.page-shell--simple .site-footer,
.invite-shell .main-content,
.invite-shell .site-footer,
.page-shell--dossier .main-content,
.page-shell--dossier .site-footer {
  position: relative;
  z-index: 1;
}

@media (max-width: 900px) {
  .page-shell--dossier .container::before,
  .invite-shell .container::before {
    right: 0;
    width: min(34vw, 220px);
    min-width: 160px;
    opacity: 0.18;
  }
}

@media (max-width: 760px) {
  .page-shell--dossier::before,
  .page-shell--dossier::after,
  .page-shell--simple::before,
  .page-shell--simple::after,
  .invite-shell::before,
  .invite-shell::after,
  .page-shell--dossier .container::before,
  .invite-shell .container::before {
    display: none;
  }
}

.page-shell--owner,
.page-shell--tenant {
  position: relative;
  isolation: isolate;
}

.page-shell--owner::before,
.page-shell--owner::after,
.page-shell--tenant::before,
.page-shell--tenant::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 0;
}

.page-shell--owner::before,
.page-shell--tenant::before {
  inset: 0;
  background:
    linear-gradient(rgba(24, 55, 44, 0.014) 1px, transparent 1px),
    linear-gradient(90deg, rgba(24, 55, 44, 0.014) 1px, transparent 1px);
  background-size: 170px 170px;
  opacity: 0.24;
}

.page-shell--owner::after,
.page-shell--tenant::after {
  left: -2%;
  top: 82px;
  width: 36vw;
  height: 22vw;
  border: 2px solid rgba(24, 55, 44, 0.038);
  border-right-width: 0;
  border-bottom-width: 0;
  border-radius: 34px 0 0 0;
  transform: skewY(-5deg);
}

.page-shell--owner .hero,
.page-shell--owner .main-content,
.page-shell--owner .site-footer,
.page-shell--tenant .hero,
.page-shell--tenant .main-content,
.page-shell--tenant .site-footer {
  position: relative;
  z-index: 1;
}

@media (max-width: 760px) {
  .page-shell--owner::before,
  .page-shell--owner::after,
  .page-shell--tenant::before,
  .page-shell--tenant::after {
    display: none;
  }
}

/* internal operations redesign 2026-04-21 */
.workspace-hero {
  display: grid;
  gap: 20px;
}

.workspace-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
  gap: 20px;
  align-items: start;
}

.workspace-hero__grid--single {
  grid-template-columns: minmax(0, 1fr);
}

.workspace-hero__main,
.workspace-hero__aside,
.workspace-stack {
  display: grid;
  gap: 16px;
}

.workspace-eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  width: fit-content;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(23, 79, 63, 0.08);
  color: var(--brand);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.workspace-title {
  margin: 0;
  font-family: "Spectral", Georgia, serif;
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1.05;
  color: var(--brand-deep, var(--brand));
}

.workspace-title--compact {
  font-size: clamp(30px, 3vw, 40px);
}

.page-shell--reports .workspace-hero__grid {
  grid-template-columns: minmax(0, 1.38fr) minmax(320px, 0.62fr);
}

.page-shell--reports .workspace-title--compact {
  width: 100%;
  max-width: none;
  text-wrap: pretty;
}

.workspace-lead {
  margin: 0;
  color: var(--text-soft);
  font-size: 17px;
  line-height: 1.72;
  max-width: 64ch;
}

.workspace-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.workspace-pill {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(24, 55, 44, 0.1);
  background: rgba(255, 255, 255, 0.72);
  color: var(--brand);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
}

.workspace-aside-card {
  display: grid;
  gap: 12px;
  padding: 20px 22px;
  border-radius: 24px;
  border: 1px solid rgba(24, 55, 44, 0.12);
  background: rgba(255, 255, 255, 0.84);
  box-shadow: 0 16px 34px rgba(24, 55, 44, 0.06);
}

.workspace-aside-card--accent {
  background: linear-gradient(160deg, rgba(24, 87, 68, 0.98), rgba(19, 68, 54, 0.98));
  border-color: rgba(24, 87, 68, 0.22);
  color: #f7f3ea;
}

.workspace-aside-card--accent .section-label,
.workspace-aside-card--accent .portal-note,
.workspace-aside-card--accent .workspace-note-list li,
.workspace-aside-card--accent .workspace-checklist li,
.workspace-aside-card--accent strong,
.workspace-aside-card--accent h3 {
  color: inherit;
}

.workspace-note-list,
.workspace-checklist {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.workspace-note-list li,
.workspace-checklist li {
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(24, 55, 44, 0.1);
  background: rgba(255, 255, 255, 0.78);
  color: var(--text-soft);
  line-height: 1.58;
}

.workspace-aside-card--accent .workspace-note-list li,
.workspace-aside-card--accent .workspace-checklist li {
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(255, 255, 255, 0.14);
}

.workspace-section {
  margin-top: 22px;
  padding: 26px 28px;
  border-radius: 28px;
  border: 1px solid rgba(24, 55, 44, 0.12);
  background: rgba(255, 251, 244, 0.9);
  box-shadow: 0 18px 38px rgba(24, 55, 44, 0.06);
}

.workspace-section__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}

.workspace-section__title {
  margin: 0;
  font-family: "Spectral", Georgia, serif;
  font-size: 32px;
  line-height: 1.12;
  color: var(--brand-deep, var(--brand));
}

.workspace-section__lead {
  margin: 10px 0 0;
  max-width: 68ch;
  color: var(--text-soft);
  line-height: 1.68;
}

.workspace-section__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.workspace-grid-two {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  align-items: start;
}

.workspace-grid-two--single {
  grid-template-columns: minmax(0, 1fr);
}

.workspace-note-box,
.workspace-callout {
  display: grid;
  gap: 8px;
  padding: 18px 20px;
  border-radius: 22px;
  border: 1px solid rgba(198, 137, 44, 0.18);
  background: linear-gradient(180deg, rgba(255, 249, 239, 0.98) 0%, rgba(250, 241, 227, 0.96) 100%);
  color: #6d4a25;
}

.workspace-callout--brand {
  border-color: rgba(24, 87, 68, 0.16);
  background: linear-gradient(180deg, rgba(236, 247, 242, 0.96) 0%, rgba(248, 252, 249, 0.98) 100%);
  color: var(--brand);
}

.workspace-note-box strong,
.workspace-callout strong {
  color: inherit;
}

.workspace-filter-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  align-items: end;
}

.workspace-table-intro {
  display: grid;
  gap: 10px;
  margin-bottom: 16px;
}

.portal-card__lead,
.portal-note,
.portal-context__subline {
  color: var(--text-soft);
  line-height: 1.65;
}

.portal-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.portal-summary__item {
  display: grid;
  gap: 8px;
  padding: 18px 20px;
  border-radius: 22px;
  border: 1px solid rgba(24, 55, 44, 0.1);
  background: rgba(255, 255, 255, 0.88);
}

.portal-summary__value {
  font-size: clamp(26px, 3vw, 34px);
  font-weight: 800;
  line-height: 1;
  color: var(--brand);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.portal-summary__hint {
  font-size: 13px;
  color: var(--text-soft);
  line-height: 1.5;
}

.portal-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.portal-feature {
  display: grid;
  gap: 10px;
  padding: 18px 20px;
  border-radius: 22px;
  border: 1px solid rgba(24, 55, 44, 0.12);
  background: rgba(255, 255, 255, 0.82);
}

.portal-feature h3 {
  margin: 0;
  font-size: 22px;
}

.portal-kicker {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
}

.portal-form,
.portal-form__stack {
  display: grid;
  gap: 16px;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 20px;
  border-radius: 999px;
  border: 1px solid transparent;
  background: rgba(255, 255, 255, 0.88);
  color: var(--brand);
  text-decoration: none;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(24, 55, 44, 0.06);
}

.button--primary {
  background: #0d6b63;
  border-color: #0d6b63;
  color: #fff;
}

.button--secondary,
.button--ghost {
  background: #e5f2ee;
  border-color: #6fa497;
  color: #124f43;
}

.button--accent {
  background: #0d6b63;
  border-color: #0d6b63;
  color: #fff;
}

.button--primary:hover,
.button--accent:hover {
  background: #09574f;
  border-color: #09574f;
}

.button--secondary:hover,
.button--ghost:hover {
  background: #d2e8e1;
  border-color: #4d887a;
}

.button:focus-visible {
  outline: 3px solid rgba(13, 107, 99, 0.3);
  outline-offset: 3px;
}

.button--small {
  min-height: 38px;
  padding: 0 14px;
  font-size: 14px;
}

.button--disabled,
.button[aria-disabled="true"],
.button:disabled {
  opacity: 0.58;
  filter: grayscale(0.18);
  cursor: not-allowed;
}

.portal-form__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.portal-form__allocations {
  display: grid;
  gap: 12px;
}

.portal-allocation-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 160px;
  gap: 14px;
  align-items: end;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid rgba(24, 55, 44, 0.1);
  background: rgba(255, 255, 255, 0.82);
}

.portal-allocation-row input {
  width: 100%;
  min-height: 50px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(24, 55, 44, 0.14);
  background: rgba(255, 255, 255, 0.98);
}

.portal-allocation-note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px dashed rgba(24, 55, 44, 0.18);
  background: rgba(244, 248, 245, 0.76);
  color: var(--text-soft);
  line-height: 1.5;
}

.portal-allocation-note .button {
  flex: 0 0 auto;
}

.portal-table-wrap {
  overflow: auto;
  border-radius: 24px;
  border: 1px solid rgba(24, 55, 44, 0.12);
  background: rgba(255, 255, 255, 0.86);
}

.portal-table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
}

.portal-table thead th {
  padding: 14px 16px;
  border-bottom: 1px solid rgba(24, 55, 44, 0.1);
  text-align: left;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-soft);
  background: rgba(252, 248, 240, 0.96);
}

.portal-table tbody td {
  padding: 14px 16px;
  border-bottom: 1px solid rgba(24, 55, 44, 0.08);
  vertical-align: top;
}

.portal-table tbody tr:hover td {
  background: rgba(249, 245, 236, 0.72);
}

.portal-table-note-row td {
  padding: 16px;
  background: rgba(244, 248, 245, 0.7);
  color: var(--text-soft);
  line-height: 1.5;
}

.portal-table-note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
}

@media (max-width: 760px) {
  .portal-table--mobile-cards {
    min-width: 0;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
  }

  .portal-table--mobile-cards thead {
    display: none;
  }

  .portal-table--mobile-cards,
  .portal-table--mobile-cards tbody,
  .portal-table--mobile-cards tr,
  .portal-table--mobile-cards td {
    display: block;
    width: 100%;
  }

  .portal-table--mobile-cards tbody {
    display: grid;
    gap: 12px;
    padding: 12px;
  }

  .portal-table--mobile-cards tbody tr {
    padding: 14px 16px;
    border-radius: 18px;
    border: 1px solid rgba(24, 55, 44, 0.1);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 10px 20px rgba(24, 55, 44, 0.05);
  }

  .portal-table--mobile-cards tbody td {
    padding: 0;
    border-bottom: none;
  }

  .portal-table--mobile-cards tbody td + td {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(24, 55, 44, 0.08);
  }

  .portal-table--mobile-cards tbody td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 4px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-soft);
  }

  .portal-table--mobile-cards tbody td.portal-empty {
    padding: 16px;
    text-align: left;
  }

  .portal-table--mobile-cards tbody td.portal-empty::before {
    display: none;
  }

  .portal-table--mobile-cards tbody td .portal-status-chip {
    width: max-content;
    max-width: 100%;
  }
}

.portal-media-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.portal-media-card {
  display: grid;
  gap: 10px;
  padding: 16px 16px 18px;
  border-radius: 22px;
  border: 1px solid rgba(24, 55, 44, 0.12);
  background: rgba(255, 255, 255, 0.86);
}

.portal-media-preview {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 18px;
  background: rgba(239, 232, 218, 0.92);
}

.portal-media-card__meta {
  font-size: 13px;
  color: var(--text-soft);
  line-height: 1.5;
}

.portal-media-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.portal-inline-link {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(24, 55, 44, 0.1);
  background: rgba(23, 79, 63, 0.08);
  color: var(--brand);
  font-weight: 800;
  text-decoration: none;
}

.portal-login-note {
  margin-top: 12px;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid rgba(24, 55, 44, 0.1);
  background: rgba(255, 255, 255, 0.78);
  color: var(--text-soft);
  line-height: 1.58;
}

.portal-login-note.is-success {
  border-color: rgba(23, 79, 63, 0.2);
  background: rgba(232, 247, 240, 0.95);
  color: #174f3f;
}

.portal-empty {
  padding: 18px 20px;
  border-radius: 18px;
  border: 1px dashed rgba(24, 55, 44, 0.18);
  background: rgba(255, 255, 255, 0.64);
  color: var(--text-soft);
  line-height: 1.6;
}

.reports-contracts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.reports-contracts label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid rgba(24, 55, 44, 0.12);
  background: rgba(255, 255, 255, 0.84);
}

.reports-contracts label strong {
  display: block;
  color: var(--brand);
  line-height: 1.45;
}

.reports-tax-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.reports-tax-card {
  display: grid;
  gap: 6px;
  padding: 18px 20px;
  border-radius: 22px;
  border: 1px solid rgba(24, 55, 44, 0.12);
  background: rgba(255, 255, 255, 0.86);
}

.reports-tax-card strong {
  font-size: clamp(24px, 2.5vw, 30px);
  line-height: 1;
  color: var(--brand);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.workspace-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

@media (max-width: 1100px) {
  .workspace-hero__grid,
  .workspace-grid-two {
    grid-template-columns: 1fr;
  }

  .page-shell--reports .workspace-hero__grid {
    grid-template-columns: 1fr;
  }

  .portal-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portal-media-grid,
  .reports-tax-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  .workspace-section,
  .workspace-aside-card {
    padding: 20px;
    border-radius: 24px;
  }

  .workspace-title,
  .workspace-title--compact,
  .workspace-section__title {
    font-size: 28px;
  }

  .workspace-filter-grid,
  .portal-form__grid,
  .portal-summary,
  .portal-feature-grid,
  .portal-media-grid,
  .reports-contracts,
  .reports-tax-grid {
    grid-template-columns: 1fr;
  }

.portal-allocation-row {
  grid-template-columns: 1fr;
}
}

/* 2026-04-24: payments redesign */
.page-shell--payments .workspace-hero {
  gap: 18px;
}

.payments-anchor-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.payments-anchor-nav__link {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(24, 55, 44, 0.1);
  background: rgba(255, 255, 255, 0.72);
  color: var(--brand);
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
}

.payments-cockpit {
  display: grid;
  gap: 18px;
  padding: 24px 26px 28px;
  border-radius: 28px;
  border: 1px solid rgba(24, 55, 44, 0.08);
  background:
    linear-gradient(180deg, rgba(255, 253, 248, 0.98) 0%, rgba(246, 239, 226, 0.96) 100%);
  box-shadow: 0 22px 44px rgba(24, 55, 44, 0.06);
}

.portal-summary--payments {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.portal-summary--payments .portal-summary__item {
  gap: 10px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 10px 22px rgba(24, 55, 44, 0.04);
}

.portal-summary--payments .portal-summary__value {
  font-size: clamp(28px, 2.4vw, 36px);
}

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

.payments-control-card,
.payments-sheet {
  display: grid;
  gap: 16px;
  padding: 22px 24px;
  border-radius: 24px;
  border: 1px solid rgba(24, 55, 44, 0.1);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 14px 28px rgba(24, 55, 44, 0.05);
}

.payments-control-card__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.payments-section__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.payments-section-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(340px, 0.98fr);
  gap: 18px;
  align-items: start;
}

.payments-sheet--form {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(250, 246, 238, 0.96) 100%);
}

.payments-sheet--history {
  background:
    linear-gradient(180deg, rgba(241, 247, 244, 0.96) 0%, rgba(232, 240, 236, 0.96) 100%);
}

.payments-sheet__title {
  margin: 0;
  font-size: 28px;
  line-height: 1.08;
}

.ledger-stack {
  display: grid;
  gap: 14px;
}

.ledger-entry {
  display: grid;
  gap: 12px;
  padding: 18px 20px;
  border-radius: 18px;
  border: 1px solid rgba(24, 55, 44, 0.1);
  background: rgba(255, 255, 255, 0.9);
}

.ledger-entry__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.ledger-entry__kicker {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-soft);
}

.ledger-entry__title {
  margin: 6px 0 0;
  font-family: "Manrope", "Segoe UI", sans-serif;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.2;
}

.ledger-entry__amount {
  display: grid;
  justify-items: end;
  gap: 8px;
  text-align: right;
}

.ledger-entry__sum {
  font-size: 24px;
  font-weight: 800;
  line-height: 1;
  color: var(--brand);
  font-variant-numeric: tabular-nums;
}

.ledger-entry__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ledger-entry__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(23, 79, 63, 0.08);
  color: var(--brand);
  font-size: 13px;
  font-weight: 700;
}

.ledger-entry__note {
  margin: 0;
  color: var(--text-soft);
  line-height: 1.62;
}

.ledger-entry__allocations {
  margin: 0;
  padding-top: 12px;
  border-top: 1px solid rgba(24, 55, 44, 0.08);
  color: var(--text-soft);
  line-height: 1.62;
}

.ledger-entry__attachments {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ledger-entry__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.page-shell--payments .portal-table-wrap {
  border-radius: 20px;
  box-shadow: 0 14px 28px rgba(24, 55, 44, 0.05);
}

.page-shell--payments .portal-table thead th {
  background: rgba(244, 238, 227, 0.98);
}

@media (max-width: 1100px) {
  .payments-controls,
  .portal-summary--payments,
  .payments-section-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px) {
  .payments-cockpit,
  .payments-control-card,
  .payments-sheet {
    padding: 18px;
    border-radius: 20px;
  }

  .payments-control-card__grid {
    grid-template-columns: 1fr;
  }

  .ledger-entry__head,
  .payments-section__head {
    flex-direction: column;
    align-items: flex-start;
  }

  .ledger-entry__amount {
    justify-items: start;
    text-align: left;
  }
}

/* Builder ergonomics: compact field widths and clearer grouping */
.form-grid--dense {
  gap: 14px 16px;
}

.form-grid--party-overview {
  gap: 18px;
}

.form-grid--party-overview > .field-cluster--party {
  grid-column: 1 / -1;
  padding: 22px;
  border-radius: 24px;
  border: 1px solid rgba(24, 55, 44, 0.12);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(248, 243, 234, 0.9));
  box-shadow: 0 18px 36px rgba(88, 70, 38, 0.08);
  row-gap: 14px;
}

.form-grid--party-overview > .field-cluster--party-landlord {
  order: 1;
}

.form-grid--party-overview > .field-cluster--party-tenant {
  order: 2;
}

.field-cluster__header {
  grid-column: 1 / -1;
  display: grid;
  gap: 6px;
  margin-bottom: 2px;
}

.field-cluster__eyebrow {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
}

.field-cluster__title {
  font-size: 21px;
  line-height: 1.15;
  font-weight: 800;
  color: var(--brand);
}

.field-cluster__text {
  margin: 0;
  color: var(--text-soft);
  line-height: 1.6;
}

.field-cluster--group {
  padding: 22px;
  border-radius: 24px;
  border: 1px solid rgba(24, 55, 44, 0.12);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 18px 36px rgba(88, 70, 38, 0.07);
  gap: 14px 16px;
}

.form-grid--stacked-groups {
  gap: 18px;
}

.form-grid--stacked-groups > .field-cluster,
.form-grid--stacked-groups > .subsection {
  margin: 0;
}

.field-cluster--compact-row {
  gap: 14px 16px;
  align-items: start;
}

.field-cluster--compact-row > .field,
.field-cluster--compact-row > .check-card {
  justify-self: start;
  margin: 0;
}

.builder #contractTimelineRow.field-cluster--timeline {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) repeat(3, max-content);
  gap: 10px 12px;
  align-items: end;
}

.builder #contractTimelineRow.field-cluster--timeline > .field {
  grid-column: auto !important;
  width: auto;
  max-width: 100%;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.builder #propertyAddressField,
.builder .party-fio-row > #landlordLastNameField,
.builder .party-fio-row > #landlordFirstNameField,
.builder .party-fio-row > #tenantLastNameField,
.builder .party-fio-row > #tenantFirstNameField,
.builder #paymentPlanField,
.builder #paymentDueDayField,
.builder #monthlyRentField,
.builder #securityDepositField,
.builder #utilitiesRuleField,
.builder #depositRuleField,
.builder #paymentMethodField,
.builder #livingRuleField,
.builder #subleaseRuleField,
.builder #petsRuleField,
.builder #smokingRuleField,
.builder #inspectionNoticeDaysField,
.builder #transferRuleField,
.builder #actTypeField,
.builder #metersRuleField,
.builder #inventoryTotalCostField,
.builder #damageRuleField,
.builder #latePaymentRuleField,
.builder #lateReturnRuleField,
.builder #pretrialRuleField,
.builder #courtModeField,
.builder #copiesCountField,
.builder #landlordPhoneField,
.builder #tenantPhoneField {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.builder #damageRuleField select {
  min-width: min(100%, calc(34ch + 52px));
}

.builder #paymentDueDayField .field__label,
.builder #securityDepositField .field__label {
  justify-content: center;
  text-align: center;
}

.builder #depositRuleField,
.builder #paymentMethodField {
  width: 100%;
  max-width: none;
  justify-self: stretch;
}

.builder #depositRuleField select,
.builder #paymentMethodField select {
  width: 100%;
  max-width: none;
}

.builder #contractTimelineRow #contractCityField {
  justify-self: stretch;
}

.builder #contractTimelineRow #contractCity {
  width: min(100%, calc(18ch + 36px));
  max-width: calc(18ch + 36px);
}

.builder #contractTimelineRow .field--fit-day-wide {
  max-width: calc(10ch + 46px);
}

.builder #contractTimelineRow .field--fit-day-wide input[type="date"] {
  width: calc(10ch + 46px) !important;
  min-width: calc(10ch + 46px) !important;
  max-width: calc(10ch + 46px) !important;
  padding-left: 12px;
  padding-right: 34px;
  font-variant-numeric: tabular-nums;
  position: relative;
}

.builder #contractTimelineRow .field--fit-day-wide input[type="date"]::-webkit-calendar-picker-indicator {
  position: absolute;
  right: 10px;
  width: 22px;
  height: 22px;
  margin: 0;
  padding: 0;
  cursor: pointer;
}

.builder #contractTimelineRow .rent-term-registration-hint {
  grid-column: 3 / 5 !important;
  justify-self: end;
  max-width: calc(20ch + 104px);
  margin-top: -4px;
  text-align: right;
}

.field-cluster__section {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px 16px;
  align-items: start;
}

.field-cluster__section + .field-cluster__section {
  margin-top: 4px;
  padding-top: 18px;
  border-top: 1px solid rgba(24, 55, 44, 0.08);
}

.field-cluster__section--contacts,
.field-cluster__section--passport,
.field-cluster__section--contacts #landlordBankFields,
.field-cluster__section--contacts #tenantBankFields {
  grid-auto-flow: row dense;
}

.field-cluster__subhead {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
}

.field-cluster--decision-band {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(252, 248, 240, 0.92) 100%);
}

.field-cluster--decision-band .field-cluster__header {
  grid-column: 1 / -1;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(24, 55, 44, 0.08);
}

.field-cluster--decision-band .field-cluster__text {
  margin-bottom: 0;
}

.field-cluster--decision-band .field {
  margin: 0;
  gap: 8px;
}

.subsection-grid--parties {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.subsection--party {
  margin-top: 0;
  height: 100%;
}

.inventory-toolbar {
  gap: 14px 16px;
  align-items: end;
}

.inventory-toolbar--summary {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
}

.inventory-toolbar--summary #inventoryEnabledField {
  margin: 0;
}

.inventory-toolbar--summary #inventoryTotalCostField {
  justify-self: end;
  margin: 0;
}

#inventoryBlock {
  display: grid;
  gap: 14px;
}

.field-cluster__section--contacts #landlordPhoneField,
.field-cluster__section--contacts #tenantPhoneField {
  grid-column: span 5 !important;
}

.field-cluster__section--contacts #landlordEmailField,
.field-cluster__section--contacts #tenantEmailField {
  grid-column: span 5 !important;
}

.field-cluster__section--contacts #landlordBankToggleField,
.field-cluster__section--contacts #tenantBankToggleField {
  grid-column: span 2 !important;
  justify-self: end !important;
  width: max-content !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.field-cluster__section--contacts #landlordInnField:not(.is-hidden),
.field-cluster__section--contacts #tenantInnField:not(.is-hidden) {
  grid-column: span 3 !important;
}

.field-cluster__section--contacts #landlordPostalAddressToggleField,
.field-cluster__section--contacts #tenantPostalAddressToggleField {
  grid-column: span 3 !important;
  justify-self: start !important;
}

.field-cluster__section--contacts #landlordAddressField,
.field-cluster__section--contacts #tenantAddressField {
  grid-column: span 6 !important;
}

.field-cluster__section--contacts #landlordBankFields,
.field-cluster__section--contacts #tenantBankFields {
  grid-column: 1 / -1 !important;
  margin-top: 2px;
  padding: 16px;
  border-radius: 18px;
  border: 1px solid rgba(24, 55, 44, 0.1);
  background: rgba(246, 240, 229, 0.62);
}

.field-cluster__section--contacts #landlordBankFields #landlordKppField,
.field-cluster__section--contacts #tenantBankFields #tenantKppField {
  grid-column: span 3 !important;
}

.field-cluster__section--contacts #landlordBankFields #landlordBankBikField,
.field-cluster__section--contacts #tenantBankFields #tenantBankBikField {
  grid-column: span 3 !important;
  justify-self: start !important;
}

.field-cluster__section--contacts #landlordBankFields #landlordBankAccountField,
.field-cluster__section--contacts #tenantBankFields #tenantBankAccountField {
  grid-column: span 6 !important;
}

.field-cluster__section--contacts #landlordBankFields #landlordBankNameField,
.field-cluster__section--contacts #tenantBankFields #tenantBankNameField {
  grid-column: span 7 !important;
}

.field-cluster__section--contacts #landlordBankFields #landlordBankCorrField,
.field-cluster__section--contacts #tenantBankFields #tenantBankCorrField {
  grid-column: span 5 !important;
}

.field-cluster__section--passport #landlordPassportSeriesField,
.field-cluster__section--passport #tenantPassportSeriesField {
  grid-column: span 3 !important;
}

.field-cluster__section--passport #landlordPassportNumberField,
.field-cluster__section--passport #tenantPassportNumberField {
  grid-column: span 3 !important;
}

.field-cluster__section--passport #landlordPassportDepartmentCodeField,
.field-cluster__section--passport #tenantPassportDepartmentCodeField {
  grid-column: span 3 !important;
}

.field-cluster__section--passport #landlordPassportIssuedAtField,
.field-cluster__section--passport #tenantPassportIssuedAtField {
  grid-column: span 3 !important;
}

.field-cluster__section--passport #landlordPassportIssuedByField,
.field-cluster__section--passport #tenantPassportIssuedByField {
  grid-column: span 7 !important;
}

.field-cluster__section--passport #landlordPassportBirthPlaceField,
.field-cluster__section--passport #tenantPassportBirthPlaceField {
  grid-column: span 5 !important;
}

.field-cluster__section--passport #landlordRegisteredAddressField,
.field-cluster__section--passport #tenantRegisteredAddressField {
  grid-column: 1 / -1 !important;
}

:is(.field, .mode-card).field--fit-phone,
:is(.field, .mode-card).field--fit-city,
:is(.field, .mode-card).field--fit-last-name,
:is(.field, .mode-card).field--fit-person-name,
:is(.field, .mode-card).field--fit-day,
:is(.field, .mode-card).field--fit-day-wide,
:is(.field, .mode-card).field--fit-area,
:is(.field, .mode-card).field--fit-money,
:is(.field, .mode-card).field--fit-percent,
:is(.field, .mode-card).field--fit-inn,
:is(.field, .mode-card).field--fit-bik,
:is(.field, .mode-card).field--fit-kpp,
:is(.field, .mode-card).field--fit-bank-account,
:is(.field, .mode-card).field--fit-passport-series,
:is(.field, .mode-card).field--fit-passport-number,
:is(.field, .mode-card).field--fit-passport-department,
:is(.field, .mode-card).field--fit-meter-reading,
:is(.field, .mode-card).field--fit-meter-number {
  justify-self: start;
}

:is(.field, .mode-card).field--fit-phone :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(15ch + 42px));
  max-width: calc(15ch + 42px);
}

:is(.field, .mode-card).field--fit-last-name :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(30ch + 42px));
  max-width: calc(30ch + 42px);
}

:is(.field, .mode-card).field--fit-person-name :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(15ch + 42px));
  max-width: calc(15ch + 42px);
}

:is(.field, .mode-card).field--fit-city :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(18ch + 44px));
  max-width: calc(18ch + 44px);
}

:is(.field, .mode-card).field--fit-day :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(4ch + 44px));
  max-width: calc(4ch + 44px);
}

:is(.field, .mode-card).field--fit-day-wide :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(6ch + 48px));
  max-width: calc(6ch + 48px);
}

:is(.field, .mode-card).field--fit-day-wide input[type="date"] {
  width: min(100%, calc(11ch + 74px));
  min-width: calc(11ch + 74px);
  max-width: calc(11ch + 74px);
  padding-right: 48px;
  font-variant-numeric: tabular-nums;
}

:is(.field, .mode-card).field--fit-area :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(8ch + 44px));
  max-width: calc(8ch + 44px);
}

:is(.field, .mode-card).field--fit-money :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(11ch + 42px));
  max-width: calc(11ch + 42px);
}

:is(.field, .mode-card).field--fit-percent :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(6ch + 44px));
  max-width: calc(6ch + 44px);
}

:is(.field, .mode-card).field--fit-inn :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(12ch + 38px));
  max-width: calc(12ch + 38px);
}

:is(.field, .mode-card).field--fit-bik :is(input, select, textarea, .mode-select),
:is(.field, .mode-card).field--fit-kpp :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(9ch + 38px));
  max-width: calc(9ch + 38px);
}

:is(.field, .mode-card).field--fit-bank-account :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(20ch + 42px));
  max-width: calc(20ch + 42px);
}

:is(.field, .mode-card).field--fit-passport-series :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(6ch + 38px));
  max-width: calc(6ch + 38px);
}

:is(.field, .mode-card).field--fit-passport-number :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(13ch + 42px));
  max-width: calc(13ch + 42px);
}

.field--fit-passport-department .field__label {
  white-space: nowrap;
}

:is(.field, .mode-card).field--fit-passport-department :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(7ch + 42px));
  max-width: calc(7ch + 42px);
  font-variant-numeric: tabular-nums;
}

#landlordPassportNumberField.field--fit-passport-number input,
#tenantPassportNumberField.field--fit-passport-number input {
  width: min(100%, calc(13ch + 42px)) !important;
  min-width: calc(13ch + 42px) !important;
  max-width: calc(13ch + 42px) !important;
}

:is(.field, .mode-card).field--fit-meter-reading :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(10ch + 42px));
  max-width: calc(10ch + 42px);
}

:is(.field, .mode-card).field--fit-meter-number :is(input, select, textarea, .mode-select) {
  width: min(100%, calc(15ch + 42px));
  max-width: calc(15ch + 42px);
}

.inventory-item {
  grid-template-columns: minmax(220px, 2.3fr) minmax(88px, 0.7fr) minmax(180px, 1.35fr) minmax(220px, 1.65fr) auto;
  gap: 10px 12px;
}

.inventory-item .field {
  margin: 0;
  gap: 8px;
  min-width: 0;
}

.inventory-item__qty input {
  width: min(100%, calc(4ch + 40px));
  max-width: calc(4ch + 40px);
}

.check-grid--termination {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.field-cluster--party-card {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px 16px;
  padding: 22px;
  border-radius: 24px;
  border: 1px solid rgba(24, 55, 44, 0.12);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(252, 248, 240, 0.92) 100%);
  box-shadow: 0 14px 30px rgba(24, 55, 44, 0.06);
}

.field-cluster--party-card .field-cluster__header {
  grid-column: 1 / -1;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(24, 55, 44, 0.08);
}

.field-cluster--party-card .field-cluster__text {
  margin-bottom: 0;
}

.field-cluster--party-card .field {
  min-width: 0;
  grid-template-rows: auto auto;
  gap: 8px;
  margin: 0;
}

.field-cluster--party-card .field__label {
  align-items: flex-start;
  line-height: 1.35;
}

.party-fio-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns:
    minmax(0, calc(30ch + 42px))
    minmax(0, calc(15ch + 42px))
    minmax(0, calc(15ch + 42px))
    minmax(0, calc(11ch + 74px));
  gap: 14px 16px;
  justify-content: start;
  align-items: start;
}

.party-fio-row > .field {
  grid-column: auto !important;
  width: 100% !important;
  max-width: none !important;
  justify-self: stretch !important;
  margin: 0;
}

.party-fio-row > .field :is(input, select, textarea, .mode-select) {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

@media (min-width: 1760px) {
  .builder .form-grid--party-overview > .field-cluster--party {
    grid-column: 1 / -1;
  }
}

@media (max-width: 1400px) {
  .subsection-grid--parties {
    grid-template-columns: 1fr;
  }

  .form-grid--party-overview > .field-cluster--party {
    grid-column: 1 / -1;
  }
}

@media (max-width: 980px) {
  .field-cluster__section {
    grid-template-columns: 1fr;
  }

  .field-cluster__section > * {
    grid-column: 1 / -1 !important;
  }

  .field-cluster--party-card {
    grid-template-columns: 1fr;
  }

  .field-cluster--party-card > * {
    grid-column: 1 / -1 !important;
  }

  .inventory-toolbar--summary {
    grid-template-columns: 1fr;
  }

  .inventory-toolbar--summary #inventoryTotalCostField {
    justify-self: start;
  }

  .check-grid--termination {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  .form-grid--party-overview > .field-cluster--party,
  .field-cluster--group {
    padding: 18px;
    border-radius: 20px;
  }

  .field-cluster__title {
    font-size: 19px;
  }

  .check-grid--termination {
    grid-template-columns: 1fr;
  }
}

/* Constructor layout audit: normalize fit-width fields and remove overlapping rules */
.builder .form-grid,
.builder .field-cluster,
.builder .field-cluster__section,
.builder .field-grid,
.builder .field-cluster--compact-row,
.builder .meter-row__content,
.builder .meter-row__zones,
.builder .inventory-item {
  min-width: 0;
}

.builder .form-grid > *,
.builder .field-cluster > *,
.builder .field-cluster__section > *,
.builder .field-grid > *,
.builder .field-cluster--compact-row > *,
.builder .meter-row__content > *,
.builder .meter-row__zones > *,
.builder .inventory-item > * {
  min-width: 0;
  max-width: 100%;
}

.builder .field,
.builder .field-cluster__section .field,
.builder .inventory-item .field {
  width: 100%;
  min-width: 0;
}

.builder .field.field--fit-phone,
.builder .field.field--fit-city,
.builder .field.field--fit-last-name,
.builder .field.field--fit-person-name,
.builder .field.field--fit-day,
.builder .field.field--fit-day-wide,
.builder .field.field--fit-area,
.builder .field.field--fit-money,
.builder .field.field--fit-percent,
.builder .field.field--fit-inn,
.builder .field.field--fit-bik,
.builder .field.field--fit-kpp,
.builder .field.field--fit-bank-account,
.builder .field.field--fit-passport-series,
.builder .field.field--fit-passport-number,
.builder .field.field--fit-meter-reading,
.builder .field.field--fit-meter-number {
  width: auto;
  justify-self: start;
}

.builder .field.field--fit-last-name {
  max-width: calc(30ch + 42px);
}

.builder .field.field--fit-person-name {
  max-width: calc(15ch + 42px);
}

.builder .field.field--fit-phone {
  max-width: calc(15ch + 42px);
}

.builder .field.field--fit-city {
  max-width: calc(18ch + 44px);
}

.builder .field.field--fit-day {
  max-width: calc(7ch + 44px);
}

.builder .field.field--fit-day-wide {
  max-width: calc(11ch + 74px);
}

.builder .field.field--fit-area {
  max-width: calc(8ch + 44px);
}

.builder .field.field--fit-money {
  max-width: calc(11ch + 42px);
}

.builder .field.field--fit-percent {
  max-width: calc(6ch + 44px);
}

.builder .field.field--fit-inn {
  max-width: calc(12ch + 38px);
}

.builder .field.field--fit-bik,
.builder .field.field--fit-kpp {
  max-width: calc(9ch + 38px);
}

.builder .field.field--fit-bank-account {
  max-width: calc(20ch + 42px);
}

.builder .field.field--fit-passport-series {
  max-width: calc(6ch + 38px);
}

.builder .field.field--fit-passport-number {
  max-width: calc(13ch + 42px);
}

.builder .field.field--fit-meter-reading {
  max-width: calc(10ch + 42px);
}

.builder .field.field--fit-meter-number {
  max-width: calc(15ch + 42px);
}

.builder .field input,
.builder .field select,
.builder .field textarea,
.builder .mode-select {
  box-sizing: border-box;
  max-width: 100%;
}

.builder .field__label,
.builder .field__note,
.builder .field__helper,
.builder .field-cluster__title,
.builder .field-cluster__text {
  min-width: 0;
  overflow-wrap: anywhere;
}

.builder .field__label {
  align-items: flex-start;
  line-height: 1.35;
}

.builder .field,
.builder .field-cluster--party-card .field {
  grid-template-rows: minmax(2.15em, auto) auto;
}

.builder .field__helper {
  display: block;
  line-height: 1.45;
}

.builder .field-cluster--compact-row,
.builder .form-grid--stacked-groups,
.builder .field-cluster--group,
.builder .field-cluster__section,
.builder .inventory-toolbar {
  grid-auto-flow: row dense;
}

.builder .field--kpp-90 input {
  width: min(100%, calc(9ch + 38px)) !important;
  min-width: 0 !important;
  max-width: calc(9ch + 38px) !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.builder .field--bank-toggle-row,
.builder #landlordBankToggleField,
.builder #tenantBankToggleField {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  justify-self: stretch !important;
  margin-left: 0 !important;
}

.builder .field--bank-toggle-row span,
.builder .check-card--inline span {
  white-space: normal !important;
  overflow-wrap: anywhere;
  line-height: 1.25;
}

.builder .field-cluster__section--contacts {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px 16px;
  align-items: end;
}

.builder .field-cluster__section--contacts #landlordPhoneField,
.builder .field-cluster__section--contacts #tenantPhoneField {
  grid-column: 1 / span 4 !important;
}

.builder .field-cluster__section--contacts #landlordEmailField,
.builder .field-cluster__section--contacts #tenantEmailField {
  grid-column: 5 / span 5 !important;
  width: auto !important;
  justify-self: stretch !important;
}

.builder .field-cluster__section--contacts #landlordBankToggleField,
.builder .field-cluster__section--contacts #tenantBankToggleField {
  grid-column: 10 / span 3 !important;
  align-self: end !important;
}

.builder .field-cluster__section--contacts #landlordInnField:not(.is-hidden),
.builder .field-cluster__section--contacts #tenantInnField:not(.is-hidden),
.builder .field-cluster__section--contacts #landlordPostalAddressToggleField,
.builder .field-cluster__section--contacts #tenantPostalAddressToggleField {
  grid-column: span 3 !important;
}

.builder .field-cluster__section--contacts #landlordAddressField,
.builder .field-cluster__section--contacts #tenantAddressField {
  grid-column: span 6 !important;
}

.builder .field-cluster__section--contacts #landlordBankFields,
.builder .field-cluster__section--contacts #tenantBankFields {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-column: 1 / -1 !important;
  gap: 14px 16px;
  margin-top: 2px;
  padding: 16px;
  border-radius: 18px;
  border: 1px solid rgba(24, 55, 44, 0.1);
  background: rgba(246, 240, 229, 0.62);
}

.builder .field-cluster__section--contacts #landlordBankFields #landlordKppField,
.builder .field-cluster__section--contacts #tenantBankFields #tenantKppField {
  grid-column: 1 / span 3 !important;
}

.builder .field-cluster__section--contacts #landlordBankFields #landlordBankBikField,
.builder .field-cluster__section--contacts #tenantBankFields #tenantBankBikField {
  grid-column: 4 / span 3 !important;
  justify-self: stretch !important;
}

.builder .field-cluster__section--contacts #landlordBankFields #landlordBankAccountField,
.builder .field-cluster__section--contacts #tenantBankFields #tenantBankAccountField {
  grid-column: 7 / span 6 !important;
}

.builder .field-cluster__section--contacts #landlordBankFields #landlordBankNameField,
.builder .field-cluster__section--contacts #tenantBankFields #tenantBankNameField {
  grid-column: 1 / span 7 !important;
}

.builder .field-cluster__section--contacts #landlordBankFields #landlordBankCorrField,
.builder .field-cluster__section--contacts #tenantBankFields #tenantBankCorrField {
  grid-column: 8 / span 5 !important;
}

.builder .field-cluster__section--passport {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px 16px;
  align-items: end;
}

.builder .field-cluster__section--passport #landlordPassportSeriesField,
.builder .field-cluster__section--passport #tenantPassportSeriesField {
  grid-column: 1 / span 3 !important;
}

.builder .field-cluster__section--passport #landlordPassportNumberField,
.builder .field-cluster__section--passport #tenantPassportNumberField {
  grid-column: 4 / span 4 !important;
}

.builder .field-cluster__section--passport #landlordPassportIssuedAtField,
.builder .field-cluster__section--passport #tenantPassportIssuedAtField {
  grid-column: 8 / span 5 !important;
}

.builder .field-cluster__section--passport #landlordPassportIssuedByField,
.builder .field-cluster__section--passport #tenantPassportIssuedByField {
  grid-column: 1 / span 7 !important;
}

.builder .field-cluster__section--passport #landlordPassportBirthPlaceField,
.builder .field-cluster__section--passport #tenantPassportBirthPlaceField {
  grid-column: 8 / span 5 !important;
}

.builder .field-cluster__section--passport #landlordRegisteredAddressField,
.builder .field-cluster__section--passport #tenantRegisteredAddressField {
  grid-column: 1 / -1 !important;
}

.builder .inventory-toolbar--summary {
  grid-template-columns: minmax(0, 1fr) minmax(220px, 300px);
  align-items: end;
}

.builder .inventory-toolbar--summary #inventoryTotalCostField {
  justify-self: stretch;
}

.builder .field--inline-summary {
  grid-template-columns: 1fr;
  gap: 8px;
}

.builder .inventory-item {
  grid-template-columns: minmax(220px, 2.2fr) minmax(76px, 0.8fr) minmax(160px, 1.1fr) minmax(220px, 1.45fr) auto;
}

.builder .inventory-item .meter-row__remove {
  align-self: end;
}

.builder .meter-row__top--electricity {
  grid-template-columns: minmax(180px, 1.2fr) minmax(112px, max-content) minmax(200px, 1fr);
}

.builder .meter-row__top--electricity .field,
.builder .meter-row__top .field {
  min-width: 0;
}

.builder .check-grid--termination {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 14px;
}

.builder .check-grid--termination .check-card {
  min-height: 100%;
}

@media (max-width: 1320px) {
  .builder .field-cluster__section--contacts #landlordPhoneField,
  .builder .field-cluster__section--contacts #tenantPhoneField,
  .builder .field-cluster__section--contacts #landlordEmailField,
  .builder .field-cluster__section--contacts #tenantEmailField,
  .builder .field-cluster__section--contacts #landlordBankToggleField,
  .builder .field-cluster__section--contacts #tenantBankToggleField,
  .builder .field-cluster__section--contacts #landlordInnField:not(.is-hidden),
  .builder .field-cluster__section--contacts #tenantInnField:not(.is-hidden),
  .builder .field-cluster__section--contacts #landlordPostalAddressToggleField,
  .builder .field-cluster__section--contacts #tenantPostalAddressToggleField,
  .builder .field-cluster__section--contacts #landlordAddressField,
  .builder .field-cluster__section--contacts #tenantAddressField {
    grid-column: span 6 !important;
  }

  .builder .field-cluster__section--contacts #landlordBankFields #landlordKppField,
  .builder .field-cluster__section--contacts #tenantBankFields #tenantKppField,
  .builder .field-cluster__section--contacts #landlordBankFields #landlordBankBikField,
  .builder .field-cluster__section--contacts #tenantBankFields #tenantBankBikField,
  .builder .field-cluster__section--contacts #landlordBankFields #landlordBankAccountField,
  .builder .field-cluster__section--contacts #tenantBankFields #tenantBankAccountField,
  .builder .field-cluster__section--contacts #landlordBankFields #landlordBankNameField,
  .builder .field-cluster__section--contacts #tenantBankFields #tenantBankNameField,
  .builder .field-cluster__section--contacts #landlordBankFields #landlordBankCorrField,
  .builder .field-cluster__section--contacts #tenantBankFields #tenantBankCorrField {
    grid-column: span 6 !important;
  }

  .builder .field-cluster__section--passport #landlordPassportSeriesField,
  .builder .field-cluster__section--passport #tenantPassportSeriesField,
  .builder .field-cluster__section--passport #landlordPassportNumberField,
  .builder .field-cluster__section--passport #tenantPassportNumberField,
  .builder .field-cluster__section--passport #landlordPassportDepartmentCodeField,
  .builder .field-cluster__section--passport #tenantPassportDepartmentCodeField,
  .builder .field-cluster__section--passport #landlordPassportIssuedAtField,
  .builder .field-cluster__section--passport #tenantPassportIssuedAtField,
  .builder .field-cluster__section--passport #landlordPassportIssuedByField,
  .builder .field-cluster__section--passport #tenantPassportIssuedByField,
  .builder .field-cluster__section--passport #landlordPassportBirthPlaceField,
  .builder .field-cluster__section--passport #tenantPassportBirthPlaceField {
    grid-column: span 6 !important;
  }
}

@media (max-width: 860px) {
  .topbar__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 10px;
  }

  .topbar__actions .topbar__link {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .builder .field.field--fit-phone,
  .builder .field.field--fit-city,
  .builder .field.field--fit-last-name,
  .builder .field.field--fit-person-name,
  .builder .field.field--fit-day,
  .builder .field.field--fit-day-wide,
  .builder .field.field--fit-area,
  .builder .field.field--fit-money,
  .builder .field.field--fit-percent,
  .builder .field.field--fit-inn,
  .builder .field.field--fit-bik,
  .builder .field.field--fit-kpp,
  .builder .field.field--fit-bank-account,
  .builder .field.field--fit-passport-series,
  .builder .field.field--fit-passport-number,
  .builder .field.field--fit-passport-department,
  .builder .field.field--fit-meter-reading,
  .builder .field.field--fit-meter-number {
    width: 100%;
    max-width: 100%;
    justify-self: stretch;
  }

  .builder .field.field--fit-phone :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-city :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-last-name :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-person-name :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-day :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-day-wide :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-area :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-money :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-percent :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-inn :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-bik :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-kpp :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-bank-account :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-passport-series :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-passport-number :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-passport-department :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-meter-reading :is(input, select, textarea, .mode-select),
  .builder .field.field--fit-meter-number :is(input, select, textarea, .mode-select) {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .builder #contractTimelineRow,
  .builder #propertyMetaRow {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px 14px;
  }

  .builder #contractTimelineRow.field-cluster--timeline {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .builder #contractTimelineRow > *,
  .builder #propertyMetaRow > * {
    grid-column: span 1 !important;
  }

  .builder #contractTimelineRow.field-cluster--timeline > .field {
    width: 100%;
    justify-self: stretch;
  }

  .builder #contractTimelineRow #contractCity,
  .builder #contractTimelineRow .field--fit-day-wide input[type="date"] {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .builder .field-cluster--party-card {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .builder .field-cluster--party-card .field-cluster__header {
    grid-column: 1 / -1 !important;
  }

  .builder .party-fio-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .builder .party-fio-row > #landlordLastNameField,
  .builder .party-fio-row > #tenantLastNameField {
    grid-column: 1 / -1 !important;
  }

  .builder .party-fio-row > #landlordFirstNameField,
  .builder .party-fio-row > #tenantFirstNameField {
    grid-column: 1 / span 1 !important;
  }

  .builder .party-fio-row > #landlordMiddleNameField,
  .builder .party-fio-row > #tenantMiddleNameField {
    grid-column: 2 / span 1 !important;
  }
}

@media (max-width: 560px) {
  .builder #contractTimelineRow {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .builder #contractTimelineRow.field-cluster--timeline {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .builder #contractTimelineRow > * {
    grid-column: 1 / -1 !important;
  }
}

/* Constructor details: collapse dense contact/passport sections safely on mobile */
@media (max-width: 860px) {
  .builder .field-cluster__section--contacts,
  .builder .field-cluster__section--passport,
  .builder .field-cluster__section--contacts #landlordBankFields,
  .builder .field-cluster__section--contacts #tenantBankFields {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
  }

  .builder .field-cluster__section--contacts > *,
  .builder .field-cluster__section--passport > *,
  .builder .field-cluster__section--contacts #landlordBankFields > *,
  .builder .field-cluster__section--contacts #tenantBankFields > * {
    grid-column: 1 / -1 !important;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .builder .field-cluster__section--contacts #landlordPhoneField,
  .builder .field-cluster__section--contacts #tenantPhoneField,
  .builder .field-cluster__section--contacts #landlordEmailField,
  .builder .field-cluster__section--contacts #tenantEmailField,
  .builder .field-cluster__section--contacts #landlordBankToggleField,
  .builder .field-cluster__section--contacts #tenantBankToggleField,
  .builder .field-cluster__section--contacts #landlordInnField:not(.is-hidden),
  .builder .field-cluster__section--contacts #tenantInnField:not(.is-hidden),
  .builder .field-cluster__section--contacts #landlordPostalAddressToggleField,
  .builder .field-cluster__section--contacts #tenantPostalAddressToggleField,
  .builder .field-cluster__section--contacts #landlordAddressField,
  .builder .field-cluster__section--contacts #tenantAddressField,
  .builder .field-cluster__section--contacts #landlordBankFields,
  .builder .field-cluster__section--contacts #tenantBankFields,
  .builder .field-cluster__section--contacts #landlordBankFields #landlordKppField,
  .builder .field-cluster__section--contacts #tenantBankFields #tenantKppField,
  .builder .field-cluster__section--contacts #landlordBankFields #landlordBankBikField,
  .builder .field-cluster__section--contacts #tenantBankFields #tenantBankBikField,
  .builder .field-cluster__section--contacts #landlordBankFields #landlordBankAccountField,
  .builder .field-cluster__section--contacts #tenantBankFields #tenantBankAccountField,
  .builder .field-cluster__section--contacts #landlordBankFields #landlordBankNameField,
  .builder .field-cluster__section--contacts #tenantBankFields #tenantBankNameField,
  .builder .field-cluster__section--contacts #landlordBankFields #landlordBankCorrField,
  .builder .field-cluster__section--contacts #tenantBankFields #tenantBankCorrField,
  .builder .field-cluster__section--passport #landlordPassportSeriesField,
  .builder .field-cluster__section--passport #tenantPassportSeriesField,
  .builder .field-cluster__section--passport #landlordPassportNumberField,
  .builder .field-cluster__section--passport #tenantPassportNumberField,
  .builder .field-cluster__section--passport #landlordPassportDepartmentCodeField,
  .builder .field-cluster__section--passport #tenantPassportDepartmentCodeField,
  .builder .field-cluster__section--passport #landlordPassportIssuedAtField,
  .builder .field-cluster__section--passport #tenantPassportIssuedAtField,
  .builder .field-cluster__section--passport #landlordPassportIssuedByField,
  .builder .field-cluster__section--passport #tenantPassportIssuedByField,
  .builder .field-cluster__section--passport #landlordPassportBirthPlaceField,
  .builder .field-cluster__section--passport #tenantPassportBirthPlaceField,
  .builder .field-cluster__section--passport #landlordRegisteredAddressField,
  .builder .field-cluster__section--passport #tenantRegisteredAddressField {
    grid-column: 1 / -1 !important;
  }

  .builder .field-cluster__section--contacts .check-card--inline,
  .builder .field-cluster__section--passport .check-card--inline {
    width: 100%;
    min-width: 0;
    justify-content: flex-start;
  }

  .builder .field-cluster__section--contacts .field--bank-toggle-row {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .builder .field-cluster__section--contacts .field__helper,
  .builder .field-cluster__section--passport .field__helper {
    max-width: none;
  }
}

/* Constructor meter cards: avoid desktop collisions by giving content full row width */
.builder .meter-row__toolbar {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 10px;
}

.builder .meter-row__remove {
  justify-self: start;
  width: max-content;
  max-width: 100%;
}

.builder .meter-row__content {
  gap: 12px 14px;
}

.builder .meter-row__top--electricity {
  grid-template-columns: minmax(220px, 1.2fr) minmax(136px, max-content) minmax(220px, 1fr);
}

@media (max-width: 1200px) {
  .builder {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .builder > * {
    min-width: 0;
    max-width: 100%;
  }
}

/* Document pages: long share links and stacked mobile headers */
.share-card__row input {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 860px) {
  .simple-header {
    display: grid;
    grid-template-columns: 1fr;
  }

  .simple-header .topbar__link {
    width: 100%;
    justify-content: center;
  }
}

/* Payments: localized file upload control instead of browser-native English labels */
.topbar__auth-row {
  flex: 0 0 100%;
  order: 999;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  margin-top: 4px;
}

.topbar__actions > .topbar__auth-row {
  min-width: 100%;
}

.topbar__actions .topbar__auth-row .topbar__link,
.topbar__actions .topbar__auth-row .auth-user-block {
  width: auto;
  max-width: min(100%, 390px);
  margin-left: auto;
}

.topbar__actions .topbar__auth-row .topbar__link {
  justify-content: center;
}

.topbar__actions {
  flex-wrap: wrap;
  overflow-x: visible;
}

.auth-user-block {
  margin-left: 0;
}

@media (max-width: 720px) {
  .topbar__auth-row,
  .topbar__actions--hierarchy > .topbar__auth-row {
    grid-column: 1 / -1;
    justify-content: stretch;
  }

  .topbar__actions .topbar__auth-row .topbar__link,
  .topbar__actions .topbar__auth-row .auth-user-block {
    width: 100%;
    max-width: none;
    margin-left: 0;
  }
}

.portal-file-control {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.78);
  overflow: hidden;
}

.portal-file-control__input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.portal-file-control__button {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 16px;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font-weight: 800;
}

.portal-file-control__text {
  min-width: 0;
  color: var(--text-soft);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 520px) {
  .portal-file-control {
    align-items: stretch;
    flex-direction: column;
  }

  .portal-file-control__button {
    width: 100%;
  }
}

/* Contract builder: lock agreed field widths and legal-entity requisites */
.builder .field.field--fit-last-name {
  width: min(100%, calc(30ch + 42px)) !important;
  max-width: calc(30ch + 42px) !important;
  justify-self: start !important;
}

.builder .field.field--fit-person-name {
  width: min(100%, calc(15ch + 42px)) !important;
  max-width: calc(15ch + 42px) !important;
  justify-self: start !important;
}

.builder .field.field--fit-last-name :is(input, select, textarea, .mode-select),
.builder .field.field--fit-person-name :is(input, select, textarea, .mode-select) {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.builder .party-fio-row {
  grid-template-columns:
    minmax(0, calc(30ch + 42px))
    minmax(0, calc(15ch + 42px))
    minmax(0, calc(15ch + 42px)) !important;
  justify-content: start !important;
  align-items: start !important;
}

.builder .party-fio-row > .field {
  grid-column: auto !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  justify-self: stretch !important;
}

.builder .party-fio-row > .field :is(input, select, textarea, .mode-select) {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.builder .field-cluster__section--contacts #landlordEioPositionField:not(.is-hidden),
.builder .field-cluster__section--contacts #tenantEioPositionField:not(.is-hidden) {
  grid-column: span 4 !important;
}

.builder .field-cluster__section--contacts #landlordEioNameField:not(.is-hidden),
.builder .field-cluster__section--contacts #tenantEioNameField:not(.is-hidden) {
  grid-column: span 5 !important;
}

.builder .field-cluster__section--contacts #landlordAddressField.field--legal-address:not(.is-hidden),
.builder .field-cluster__section--contacts #tenantAddressField.field--legal-address:not(.is-hidden) {
  grid-column: 1 / -1 !important;
}

@media (max-width: 1320px) {
  .builder .field-cluster__section--contacts #landlordEioPositionField:not(.is-hidden),
  .builder .field-cluster__section--contacts #tenantEioPositionField:not(.is-hidden),
  .builder .field-cluster__section--contacts #landlordEioNameField:not(.is-hidden),
  .builder .field-cluster__section--contacts #tenantEioNameField:not(.is-hidden) {
    grid-column: span 6 !important;
  }
}

@media (max-width: 860px) {
  .builder .party-fio-row {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .builder .party-fio-row > #landlordLastNameField,
  .builder .party-fio-row > #tenantLastNameField,
  .builder .party-fio-row > #landlordFirstNameField,
  .builder .party-fio-row > #tenantFirstNameField,
  .builder .party-fio-row > #landlordMiddleNameField,
  .builder .party-fio-row > #tenantMiddleNameField,
  .builder .party-fio-row > #landlordBirthDateField,
  .builder .party-fio-row > #tenantBirthDateField {
    grid-column: auto !important;
  }

  .builder .field-cluster__section--contacts #landlordEioPositionField:not(.is-hidden),
  .builder .field-cluster__section--contacts #tenantEioPositionField:not(.is-hidden),
  .builder .field-cluster__section--contacts #landlordEioNameField:not(.is-hidden),
  .builder .field-cluster__section--contacts #tenantEioNameField:not(.is-hidden) {
    grid-column: 1 / -1 !important;
  }
}

.field-cluster--address-search {
  padding: 16px;
  border: 1px solid rgba(24, 55, 44, 0.12);
  border-radius: 18px;
  background: rgba(244, 238, 227, 0.42);
}

.field-cluster--address-search .field {
  margin: 0;
}

.field-cluster--address-search .address-search__row {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 14px 16px;
}

.address-search__intro {
  display: grid;
  gap: 6px;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid rgba(23, 79, 63, 0.14);
  background: rgba(232, 244, 238, 0.72);
  color: var(--text-soft);
  line-height: 1.5;
}

.address-search__intro strong {
  color: var(--brand);
}

.address-search__manual {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(215, 133, 39, 0.28);
  background: rgba(255, 248, 236, 0.9);
  font-weight: 800;
  cursor: pointer;
}

.address-search__manual input {
  width: 18px;
  min-height: 18px;
  padding: 0;
  border-radius: 4px;
}

.field-cluster--address-search .field--address {
  grid-column: auto !important;
  flex: 0 1 auto;
}

.field-cluster--address-search .field__note {
  grid-column: 1 / -1 !important;
}

#addressSubjectField {
  width: min(100%, calc(20ch + 44px));
  flex-basis: calc(20ch + 44px);
}

#addressCityField {
  width: min(100%, calc(25ch + 44px));
  flex-basis: calc(25ch + 44px);
}

#addressStreetField {
  width: min(100%, calc(30ch + 44px));
  flex-basis: calc(30ch + 44px);
}

#addressHouseField {
  width: min(100%, calc(8ch + 44px));
  flex-basis: calc(8ch + 44px);
}

#addressApartmentField {
  width: min(100%, calc(8ch + 44px));
  flex-basis: calc(8ch + 44px);
}

.field-cluster--address-search .field--address input {
  width: 100%;
  max-width: 100%;
  padding-right: 42px;
}

.address-clear {
  position: absolute;
  right: 10px;
  bottom: 10px;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(24, 55, 44, 0.08);
  color: var(--text-soft);
  font-size: 20px;
  line-height: 1;
  font-weight: 800;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.field--address.has-value .address-clear {
  opacity: 1;
  pointer-events: auto;
}

.address-clear:hover,
.address-clear:focus-visible {
  background: rgba(159, 95, 24, 0.16);
  color: var(--warn);
  outline: none;
}

.field-cluster--address-search .dropdown {
  max-height: 260px;
}

.address-status {
  grid-column: 1 / -1;
  width: 100%;
  margin-top: -4px;
  padding: 10px 14px;
  border-radius: 14px;
  border: 1px solid rgba(24, 55, 44, 0.12);
  background: rgba(232, 244, 238, 0.72);
  color: var(--text-soft);
  font-size: 13px;
  line-height: 1.4;
}

.address-status--loading {
  color: var(--brand);
  font-weight: 800;
}

.address-status--empty {
  background: rgba(255, 248, 236, 0.92);
  border-color: rgba(215, 133, 39, 0.26);
  color: var(--warn);
  font-weight: 800;
}

#propertyAddressField :is(input, textarea) {
  font-weight: 700;
}

#propertyAddressField textarea {
  min-height: 82px;
  height: 82px;
  line-height: 1.35;
  resize: none;
  overflow: auto;
}

#propertyAddressField.field--readonly :is(input, textarea) {
  background: rgba(232, 244, 238, 0.7);
  color: var(--text-soft);
  cursor: default;
}

#propertyAddressField.field--manual-address :is(input, textarea) {
  background: rgba(255, 255, 255, 0.94);
  color: var(--text);
  cursor: text;
}

#propertyAddressField.field--manual-address textarea {
  resize: vertical;
}

body[data-page="builder"] .page-shell {
  display: block;
  min-height: 0;
}

body[data-page="builder"] .main-content {
  flex: 0 0 auto;
  padding-bottom: 16px;
}

body[data-page="builder"] .site-footer {
  margin-top: 0;
  padding-bottom: 18px;
}

@media (max-width: 860px) {
  .field-cluster--address-search .address-search__row {
    display: grid;
    grid-template-columns: 1fr;
  }

  .field-cluster--address-search .field--address {
    width: 100%;
    flex-basis: auto;
    grid-column: 1 / -1;
  }
}

@media (max-width: 980px) {
  .builder #contractTimelineRow .rent-term-registration-hint {
    grid-column: 1 / -1 !important;
    justify-self: stretch;
    max-width: 100%;
    text-align: left;
  }
}

.builder #propertyMetaRow {
  grid-template-columns: max-content max-content minmax(220px, 1fr) !important;
  align-items: start;
}

.builder #propertyMetaRow > .field {
  grid-column: auto !important;
}

.builder #ownershipRuleField {
  justify-self: stretch;
}

.builder #ownershipRuleField select {
  width: 100%;
  max-width: none;
}

@media (max-width: 560px) {
  .builder #propertyMetaRow {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .builder #propertyMetaRow > .field {
    grid-column: 1 / -1 !important;
  }
}

.builder .inventory-toolbar--summary {
  grid-template-columns: max-content minmax(136px, 300px) !important;
  justify-content: start;
  align-items: end;
  gap: 12px;
}

.builder .inventory-toolbar--summary #inventoryEnabledField {
  grid-column: auto !important;
  justify-self: start !important;
  width: max-content !important;
  min-width: 0 !important;
  max-width: 100% !important;
  padding-inline: 8px !important;
  gap: 6px !important;
  white-space: nowrap;
}

.builder .inventory-toolbar--summary #inventoryTotalCostField {
  grid-column: auto !important;
  justify-self: stretch !important;
  width: 100% !important;
  max-width: 300px !important;
}

.builder .inventory-item__condition select {
  width: 100%;
  min-width: 0;
}

/* Constructor meter groups must use the whole handover subsection width. */
.builder #metersGroups,
.builder .meter-groups {
  grid-column: 1 / -1 !important;
  width: 100%;
  max-width: none;
  grid-template-columns: minmax(0, 1fr) !important;
}

.builder #metersGroups > .meter-group,
.builder .meter-groups > .meter-group {
  width: 100%;
  max-width: none;
  justify-self: stretch;
}

.builder .meter-group__rows,
.builder .meter-row {
  width: 100%;
  max-width: none;
}

/* Handover meter and inventory final alignment */
.builder .meter-row {
  position: relative;
}

.builder .meter-row__toolbar {
  grid-template-columns: minmax(0, 1fr) 42px !important;
  gap: 10px;
  align-items: start;
}

.builder .meter-row__remove.meter-action-button {
  width: 38px !important;
  max-width: 38px !important;
  height: 38px !important;
  min-height: 38px !important;
  padding: 0 !important;
  border-radius: 12px;
  align-self: start;
  justify-self: end;
  font-size: 26px;
  line-height: 1;
}

.builder .meter-row__toggle {
  width: auto;
  min-width: 52px;
  justify-content: center;
}

.builder .meter-row__toggle-field .field__label {
  justify-content: center;
  text-align: center;
}

.builder .inventory-toolbar--summary {
  justify-content: space-between !important;
}

.builder .inventory-toolbar--summary #inventoryTotalCostField {
  justify-self: end !important;
  margin-left: auto;
}

.builder .inventory-toolbar--summary #inventoryTotalCostField input {
  justify-self: end;
}

@media (max-width: 680px) {
  .builder .meter-row__toolbar {
    grid-template-columns: minmax(0, 1fr) 40px !important;
  }

  .builder .meter-row__remove.meter-action-button {
    width: 36px !important;
    max-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    font-size: 24px;
  }
}

@media (max-width: 520px) {
  .builder .inventory-toolbar--summary {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .builder .inventory-toolbar--summary #inventoryEnabledField {
    width: max-content !important;
  }

  .builder .inventory-toolbar--summary #inventoryTotalCostField {
    width: 100% !important;
    max-width: none !important;
  }
}

/* Requisites bank layout lock: keep bank fields inside landlord/tenant cards */
.builder .field-cluster__section--contacts #landlordBankFields,
.builder .field-cluster__section--contacts #tenantBankFields {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  grid-column: 1 / -1 !important;
  grid-row: auto !important;
  align-items: end !important;
  justify-items: stretch !important;
  gap: 14px 16px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  justify-self: stretch !important;
  align-self: stretch !important;
  overflow: hidden !important;
}

.builder .field-cluster__section--contacts #landlordInnField:not(.is-hidden) ~ #landlordBankFields,
.builder .field-cluster__section--contacts #tenantInnField:not(.is-hidden) ~ #tenantBankFields {
  grid-column: 1 / -1 !important;
  grid-row: auto !important;
}

.builder .field-cluster__section--contacts #landlordBankFields .field,
.builder .field-cluster__section--contacts #tenantBankFields .field {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  justify-self: stretch !important;
}

.builder .field-cluster__section--contacts #landlordBankFields .field :is(input, select, textarea, .mode-select),
.builder .field-cluster__section--contacts #tenantBankFields .field :is(input, select, textarea, .mode-select) {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.builder .field-cluster__section--contacts #landlordBankFields #landlordBankAccountField input,
.builder .field-cluster__section--contacts #tenantBankFields #tenantBankAccountField input,
.builder .field-cluster__section--contacts #landlordBankFields #landlordBankCorrField input,
.builder .field-cluster__section--contacts #tenantBankFields #tenantBankCorrField input,
.builder .field-cluster__section--contacts #landlordBankFields #landlordBankBikField input,
.builder .field-cluster__section--contacts #tenantBankFields #tenantBankBikField input {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.builder .field-cluster__section--contacts #landlordBankFields #landlordKppField,
.builder .field-cluster__section--contacts #tenantBankFields #tenantKppField {
  grid-column: 1 / span 3 !important;
  grid-row: 1 / 2 !important;
}

.builder .field-cluster__section--contacts #landlordBankFields #landlordBankAccountField,
.builder .field-cluster__section--contacts #tenantBankFields #tenantBankAccountField {
  grid-column: 1 / span 7 !important;
  grid-row: 1 / 2 !important;
}

.builder .field-cluster__section--contacts #landlordBankFields #landlordBankBikField,
.builder .field-cluster__section--contacts #tenantBankFields #tenantBankBikField {
  grid-column: 8 / span 5 !important;
  grid-row: 1 / 2 !important;
}

.builder .field-cluster__section--contacts #landlordBankFields #landlordKppField:not(.is-hidden) ~ #landlordBankAccountField,
.builder .field-cluster__section--contacts #tenantBankFields #tenantKppField:not(.is-hidden) ~ #tenantBankAccountField {
  grid-column: 4 / span 5 !important;
}

.builder .field-cluster__section--contacts #landlordBankFields #landlordKppField:not(.is-hidden) ~ #landlordBankBikField,
.builder .field-cluster__section--contacts #tenantBankFields #tenantKppField:not(.is-hidden) ~ #tenantBankBikField {
  grid-column: 9 / span 4 !important;
}

.builder .field-cluster__section--contacts #landlordBankFields #landlordBankNameField,
.builder .field-cluster__section--contacts #tenantBankFields #tenantBankNameField {
  grid-column: 1 / span 7 !important;
  grid-row: 2 / 3 !important;
}

.builder .field-cluster__section--contacts #landlordBankFields #landlordBankCorrField,
.builder .field-cluster__section--contacts #tenantBankFields #tenantBankCorrField {
  grid-column: 8 / span 5 !important;
  grid-row: 2 / 3 !important;
}

@media (max-width: 860px) {
  .builder .field-cluster__section--contacts #landlordBankFields,
  .builder .field-cluster__section--contacts #tenantBankFields {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .builder .field-cluster__section--contacts #landlordBankFields > *,
  .builder .field-cluster__section--contacts #tenantBankFields > * {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
  }
}

.page-shell--dossier,
.page-shell--simple,
.invite-shell {
  overflow: hidden;
}

.site-footer {
  padding-bottom: 14px;
}

.topbar__auth-row .topbar__link.is-authenticated,
.auth-user-block .topbar__link.is-authenticated,
.page-shell .topbar__link.is-authenticated,
.page-shell--dossier .topbar__link.is-authenticated,
.page-shell--simple .topbar__link.is-authenticated,
.invite-shell .topbar__link.is-authenticated {
  background: rgba(23, 79, 63, 0.16);
  border-color: rgba(23, 79, 63, 0.22);
  color: var(--brand);
}

html,
body {
  overflow-x: hidden;
}

@media (max-width: 560px) {
  .container {
    width: min(calc(100% - 24px), var(--container));
  }

  .topbar__actions {
    grid-template-columns: 1fr !important;
  }

  .topbar__actions .topbar__link {
    width: 100%;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  h1,
  .hero__grid--single h1 {
    max-width: none;
    font-size: clamp(32px, 10vw, 40px);
    line-height: 1.08;
    overflow-wrap: anywhere;
  }

  .hero__copy,
  .panel {
    min-width: 0;
  }
}

/* Final handover overrides: keep meter deletion compact and inventory total aligned */
.builder .meter-row {
  position: relative;
}

.builder .meter-row__toolbar {
  grid-template-columns: minmax(0, 1fr) 42px !important;
  gap: 10px !important;
  align-items: start;
}

.builder .meter-row__remove.meter-action-button {
  width: 38px !important;
  max-width: 38px !important;
  height: 38px !important;
  min-height: 38px !important;
  padding: 0 !important;
  border-radius: 12px !important;
  align-self: start !important;
  justify-self: end !important;
  font-size: 26px !important;
  line-height: 1 !important;
}

.builder .meter-row__toggle {
  width: auto !important;
  min-width: 52px;
  justify-content: center;
}

.builder .meter-row__toggle-field .field__label {
  justify-content: center;
  text-align: center;
}

.builder .inventory-toolbar--summary {
  justify-content: space-between !important;
}

.builder .inventory-toolbar--summary #inventoryTotalCostField {
  justify-self: end !important;
  margin-left: auto;
}

.builder .inventory-toolbar--summary #inventoryTotalCostField input {
  justify-self: end;
}

@media (max-width: 680px) {
  .builder .meter-row__toolbar {
    grid-template-columns: minmax(0, 1fr) 40px !important;
  }

  .builder .meter-row__remove.meter-action-button {
    width: 36px !important;
    max-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    font-size: 24px !important;
  }
}

/* Final handover overrides: keep meter deletion compact and inventory total aligned */
.builder .meter-row {
  position: relative;
}

.builder .meter-row__toolbar {
  grid-template-columns: minmax(0, 1fr) 42px !important;
  gap: 10px !important;
  align-items: start;
}

.builder .meter-row__remove.meter-action-button {
  width: 38px !important;
  max-width: 38px !important;
  height: 38px !important;
  min-height: 38px !important;
  padding: 0 !important;
  border-radius: 12px !important;
  align-self: start !important;
  justify-self: end !important;
  font-size: 26px !important;
  line-height: 1 !important;
}

.builder .meter-row__toggle {
  width: auto !important;
  min-width: 52px;
  justify-content: center;
}

.builder .meter-row__toggle-field .field__label {
  justify-content: center;
  text-align: center;
}

.builder .inventory-toolbar--summary {
  justify-content: space-between !important;
}

.builder .inventory-toolbar--summary #inventoryTotalCostField {
  justify-self: end !important;
  margin-left: auto;
}

.builder .inventory-toolbar--summary #inventoryTotalCostField input {
  justify-self: end;
}

@media (max-width: 680px) {
  .builder .meter-row__toolbar {
    grid-template-columns: minmax(0, 1fr) 40px !important;
  }

  .builder .meter-row__remove.meter-action-button {
    width: 36px !important;
    max-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    font-size: 24px !important;
  }
}

/* Handover review refinements */
.builder .inventory-toolbar--summary {
  grid-template-columns: minmax(0, 1fr) minmax(136px, 244px) !important;
  justify-content: stretch;
}

.builder .inventory-toolbar--summary #inventoryTotalCostField {
  justify-self: end !important;
  max-width: 244px !important;
}

.builder .inventory-item {
  grid-template-columns: minmax(190px, 1fr) minmax(64px, 76px) minmax(150px, 160px) max-content !important;
}

.builder .inventory-item__note {
  grid-column: 1 / -1;
}

.builder .inventory-item__note input {
  width: 100%;
  max-width: 100%;
}

.builder .inventory-item > button[data-action="remove-inventory"] {
  grid-column: 4;
  grid-row: 1;
  justify-self: end;
  align-self: end;
}

.builder .meter-group__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 64px;
  align-items: start;
}

.builder .meter-action-button {
  width: 60px;
  height: 60px;
  min-height: 60px;
  padding: 0;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: Arial, sans-serif;
  font-size: 42px;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
}

.builder .meter-action-button--add {
  justify-self: end;
  border: 2px solid rgba(23, 79, 63, 0.24);
  background: rgba(23, 79, 63, 0.09);
  color: var(--brand);
}

.builder .meter-action-button--remove {
  justify-self: end;
  border: 2px solid rgba(180, 35, 24, 0.24);
  background: rgba(255, 240, 238, 0.96);
  color: #b42318;
}

.builder .meter-row {
  padding: 14px 16px;
}

.builder .meter-row__toolbar {
  grid-template-columns: minmax(0, 1fr) 64px !important;
  align-items: start;
  gap: 14px;
}

.builder .meter-row__remove.meter-action-button {
  width: 60px;
  max-width: 60px;
  align-self: start;
}

.builder .meter-row__content {
  grid-template-columns: minmax(160px, 1fr) minmax(150px, max-content) minmax(190px, 1fr) !important;
  align-items: end;
}

.builder .meter-row:not(.meter-row--electricity) .meter-row__content > .field {
  grid-column: auto !important;
}

.builder .meter-row__top--electricity {
  grid-template-columns: minmax(180px, 1fr) minmax(150px, max-content) minmax(190px, 1fr) !important;
}

.builder .meter-row .field.field--fit-meter-reading,
.builder .meter-row .field.field--fit-meter-number {
  width: 100%;
  max-width: none;
  justify-self: stretch;
}

.builder .meter-row .field.field--fit-meter-reading :is(input, select, textarea, .mode-select),
.builder .meter-row .field.field--fit-meter-number :is(input, select, textarea, .mode-select) {
  width: 100%;
  max-width: 100%;
}

.builder .meter-row__toggle {
  justify-content: center;
  width: 100%;
  min-height: 52px;
  padding: 10px 12px;
  white-space: nowrap;
}

.builder .meter-row__toggle input[type="checkbox"] {
  width: 18px !important;
  height: 18px;
  min-height: 18px;
  padding: 0;
  flex: 0 0 18px;
}

@media (max-width: 680px) {
  .builder .inventory-item {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .builder .inventory-item__note {
    grid-column: 1 / -1;
  }

  .builder .inventory-item > button[data-action="remove-inventory"] {
    grid-column: 1 / -1;
    grid-row: auto;
    justify-self: start;
  }

  .builder .meter-row__toolbar {
    grid-template-columns: minmax(0, 1fr) 58px !important;
  }

  .builder .meter-group__head {
    grid-template-columns: minmax(0, 1fr) 58px;
  }

  .builder .meter-action-button,
  .builder .meter-row__remove.meter-action-button {
    width: 54px;
    max-width: 54px;
    height: 54px;
    min-height: 54px;
    font-size: 38px;
  }

  .builder .meter-row__content,
  .builder .meter-row__top--electricity,
  .builder .meter-row__zones {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .builder .meter-row__content > *,
  .builder .meter-row__top--electricity > *,
  .builder .meter-row__zones > * {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 520px) {
  .builder .inventory-toolbar--summary {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .builder .inventory-toolbar--summary #inventoryEnabledField {
    width: max-content !important;
  }

  .builder .inventory-toolbar--summary #inventoryTotalCostField {
    width: 100% !important;
    max-width: none !important;
  }
}

.field__note--area-lookup { margin-top: 6px; color: var(--text-soft); font-weight: 700; }
.field__note--area-lookup.is-loading { color: var(--brand); }
.field__note--area-lookup.is-success { color: var(--brand); }
.field__note--area-lookup.is-warning { color: var(--warn); }

.tenant-ability-check {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  margin-top: 6px;
  padding: 20px;
  border: 1px solid rgba(198, 137, 44, 0.34);
  border-radius: 8px;
  background: #fff6e8;
}

.tenant-ability-check__copy > span {
  display: block;
  margin-bottom: 7px;
  color: var(--accent);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.tenant-ability-check__copy strong {
  color: var(--brand);
  font-size: 17px;
  line-height: 1.35;
}

.tenant-ability-check__copy p {
  margin: 7px 0 0;
  color: var(--text-soft);
  font-size: 14px;
  line-height: 1.55;
}

.tenant-ability-check__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 18px;
  border-radius: 5px;
  background: var(--brand);
  color: #fff;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}

.tenant-ability-check__link:focus-visible {
  outline: 3px solid rgba(198, 137, 44, 0.3);
  outline-offset: 3px;
}

@media (max-width: 760px) {
  .tenant-ability-check {
    grid-template-columns: 1fr;
  }

  .tenant-ability-check__link {
    width: 100%;
  }
}
