/* ============================================================
 * Кабинет арендатора v2 — счёт и его состав (бриф §4.3 «Раскрытая
 * строка», §4.8). Состав одинаков в раскрытии на главной и на странице
 * счёта: вид и период у строки (инвариант 1), НДС построчно (Р-11).
 * Этап S0 переводит блоки на токены; этап S3 — страница счёта: шапка
 * по шаблону блока (portal.css, .portal-page-head), сводка «Сумма
 * счёта / Оплачено / Остаток», состав, реквизиты для оплаты остатка.
 * Только var(--ios-*); литералы — по списку в шапке portal.css.
 * ============================================================ */

.portal-lines {
  border-top: 1px solid var(--ios-separator);
}

.portal-line {
  padding: var(--ios-space-2) 0;
}

.portal-line + .portal-line {
  border-top: 1px solid var(--ios-separator);
}

.portal-line__title {
  font: var(--ios-type-secondary);
  font-variant-numeric: tabular-nums;
}

.portal-line__nums {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--ios-space-1) var(--ios-space-3);
  margin-top: var(--ios-space-1);
  font: var(--ios-type-secondary);
  font-variant-numeric: tabular-nums;
}

/* НДС строки — часть фразы («НДС 22% 29 058,33 ₽»): Onest */
.portal-line__vat {
  color: var(--ios-text-secondary);
}

/* Сумма строки — отдельное значение: моно */
.portal-line__amount {
  font-family: var(--ios-font-mono);
  white-space: nowrap;
}

/* Метка «отменена» — справка, не ошибка: нейтральный тон */
.portal-line__cancelled {
  color: var(--ios-text-secondary);
}

/* Итоги: «Без НДС», по строке на ставку, «Итого к оплате» (600) */
.portal-totals {
  display: grid;
  gap: var(--ios-space-1);
  margin-top: var(--ios-space-2);
  padding-top: var(--ios-space-2);
  border-top: 1px solid var(--ios-separator);
  font: var(--ios-type-secondary);
}

.portal-totals__row {
  display: flex;
  justify-content: space-between;
  gap: var(--ios-space-3);
  color: var(--ios-text-secondary);
}

.portal-totals__row .portal-num {
  font-family: var(--ios-font-mono);
  white-space: nowrap;
}

.portal-totals__row--strong {
  color: var(--ios-text);
  font-weight: 600;
}

/* --- Страница счёта --- */

.portal-invoice-page {
  padding: var(--ios-space-1) var(--ios-space-4) var(--ios-space-3);
}

.portal-invoice-page .portal-lines {
  border-top: 0;
}

/* Сводка: суммы — моно отдельными значениями, в одну строку */
.portal-invoice-summary .portal-amount {
  white-space: nowrap;
}

/* Аннулированный счёт — сумма документа справочно, не к оплате:
 * вторичным цветом, как в строке счёта на главной */
.portal-invoice-summary__void {
  color: var(--ios-text-secondary);
}

/* --- Реквизиты для оплаты остатка (бриф §5 п. 5; строки — те же, что
 *     в листе «Оплата», portal_home.css). Группы — заголовок над белой
 *     подложкой, как группы документов: «Скопировать» с заливкой фоном
 *     страницы на белом видна (решения v2 §2 «Поверхности») --- */

.portal-invoice-requisites__group {
  margin: var(--ios-space-6) 0 var(--ios-space-2);
  padding: 0 var(--ios-space-4);
}

.portal-invoice-requisites__group:first-of-type {
  margin-top: 0;
}

/* Скрытые поля копирования позиционируются внутри своей подложки */
.portal-invoice-requisites__card {
  position: relative;
}

.portal-invoice-requisites__card .portal-requisites {
  padding: 0 var(--ios-space-4);
}

/* Нет расчётного счёта (A2): плашка ожидания, тон — .portal-requisites__missing */
.portal-invoice-requisites__missing {
  margin: 0 0 var(--ios-space-4);
  padding: var(--ios-space-3) var(--ios-space-4);
  border-radius: var(--ios-radius-plate);
  font: var(--ios-type-secondary);
}
