/* Справочник объектов (трек E.2; CRM v2 «спокойная плотность»): формы
 * объекта/помещения и карточка объекта. Только токены из tokens.css.
 * Телефон (< 768): формы в одну колонку (form-grid — ui.css), главная
 * кнопка первой; таблица помещений — карточками (shared/table cards). */

/* Контейнер форм — как у мастера договора (860px, панели с зазором) */
.property-form {
  max-width: 860px;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.property-form > form {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.property-form__panel {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-5) var(--space-5);
  background: var(--surface);
  border: 1px solid var(--border-panel);
  border-radius: var(--radius-panel);
}

.property-form__heading {
  margin: 0;
  font-size: var(--font-size-h2);
  line-height: var(--line-height-h2);
  font-weight: 600;
}

/* Инлайн-блок нового собственника: атрибут hidden (Stimulus owner-source)
 * обязан побеждать display:flex */
.owner-inline {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--border-soft);
}

.owner-inline[hidden],
.field[hidden] {
  display: none;
}

/* Телефон: поля панели 16; в футере формы главная кнопка — первой,
 * подсказка — над кнопками */
@media (max-width: 767px) {
  .property-form__panel {
    padding: var(--space-4);
  }

  .property-form .wizard-footer .btn--primary {
    order: -1;
  }

  .property-form .wizard-footer .wizard-footer__hint {
    order: -2;
  }
}

/* --- Карточка объекта --- */

/* Помещения: статус (бейдж + ссылка на договор) и действия */
.unit-status {
  white-space: nowrap;
}

.unit-status a {
  margin-left: var(--space-1-5);
  font-family: var(--font-mono);
  font-size: var(--font-size-mono-cell);
}

.unit-actions {
  text-align: right;
  white-space: nowrap;
}

.unit-number {
  white-space: nowrap;
}

/* Описание в узкой панели не распирает строку (полный текст — в title) */
.unit-description {
  max-width: 160px;
}

/* Телефон, карточка помещения: статус с номером договора — справа от
 * заголовка, переносится; описание целиком; действия — строкой справа */
@media (max-width: 767px) {
  .table--cards .unit-status {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--space-1);
    white-space: normal;
  }

  .table--cards .unit-status a {
    margin-left: 0;
  }

  .table.table--cards tbody td.unit-actions {
    padding-left: 0;
  }

  .table--cards .unit-description {
    max-width: none;
  }
}

/* Описание объекта под списком параметров */
.property-description {
  margin: 0;
  padding: var(--space-3) var(--space-5) var(--space-4);
  border-top: 1px solid var(--border-soft);
  font-size: var(--font-size-secondary);
  line-height: var(--line-height-secondary);
  color: var(--text-secondary);
  white-space: pre-line;
}

/* Кнопка формы в боковой панели — по содержимому, на телефоне во всю ширину */
.property-form-actions {
  display: flex;
}

@media (max-width: 767px) {
  .property-description {
    padding-left: var(--space-4);
    padding-right: var(--space-4);
  }

  .property-form-actions .btn {
    flex: 1 1 100%;
  }
}

/* НДС собственника (Р-25): ставка на сегодня, история записей, форма */
.property-vat__history {
  border-top: 1px solid var(--border-soft);
}

.property-vat__empty {
  margin: 0;
  padding: var(--space-3) var(--space-5);
  font-size: var(--font-size-secondary);
  line-height: var(--line-height-secondary);
  color: var(--text-secondary);
}

.property-vat__status {
  text-align: right;
  white-space: nowrap;
}

.property-vat__status form {
  display: inline;
}

/* Будущая запись, по которой уже начислено авансом: причина вместо кнопки */
.property-vat__locked {
  margin-top: var(--space-0-5);
  white-space: normal;
  font-size: var(--font-size-hint);
  line-height: var(--line-height-hint);
  color: var(--text-secondary);
}

.property-vat__form,
.property-bank__form,
.property-signatory__form,
.property-numbering__form {
  border-top: 1px solid var(--border-soft);
}

:is(.property-vat__form, .property-bank__form, .property-signatory__form, .property-numbering__form) form {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.property-vat__fields,
.property-bank__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

/* --- Реквизиты собственника (Р-26): банковские счета и подписант --- */

.property-bank__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.property-bank__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--border-soft);
}

.property-bank__item:last-of-type {
  padding-bottom: 0;
  border-bottom: 0;
}

.property-bank__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
}

.property-bank__numbers {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-0-5) var(--space-3);
  font-size: var(--font-size-hint);
  line-height: var(--line-height-hint);
  color: var(--text-secondary);
}

.property-bank__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1-5);
  margin-top: var(--space-1);
}

.property-bank__actions form {
  display: inline;
}

.property-bank__empty {
  margin: 0;
  font-size: var(--font-size-secondary);
  line-height: var(--line-height-secondary);
  color: var(--text-secondary);
}

.property-bank__archive summary {
  cursor: pointer;
  font-size: var(--font-size-secondary);
  color: var(--text-secondary);
}

.property-bank__archived {
  margin-top: var(--space-1);
  font-size: var(--font-size-hint);
  line-height: var(--line-height-hint);
  color: var(--text-secondary);
}

.property-bank__primary {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

@media (max-width: 767px) {
  .property-vat__empty {
    padding-left: var(--space-4);
    padding-right: var(--space-4);
  }

  .property-vat__fields,
  .property-bank__fields {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* --- Нумерация счетов собственника (Р-27): следующий номер и префикс --- */

.property-numbering__next {
  font-weight: 600;
}
