/* ============================================================
 * Кабинет арендатора v2 — заявки (бриф §4.9, Р-37; этап S4): форма
 * новой заявки и список своих заявок. Форма — на фоне, без группы
 * (бриф §3 п. 6): поля portal.css (подпись над полем, ошибка под
 * ним, рамка --ios-control-border работает на обоих фонах). Список —
 * сгруппированный, статус всегда текстом. На десктопе — та же узкая
 * колонка (расширение — «предложение, по желанию», не делалось).
 * Только var(--ios-*); литералы — по списку в шапке portal.css.
 * ============================================================ */

.portal-request-form__form {
  display: grid;
  gap: var(--ios-space-5);
}

/* Нет действующих договоров — вместо формы фраза на фоне. Это пустое
 * состояние раздела, поэтому по центру, как «Заявок пока нет» (бриф §3
 * «Выравнивание»; доводка S4) */
.portal-request-form__hint {
  margin: 0;
  padding: var(--ios-space-4) 0;
  font: var(--ios-type-secondary);
  color: var(--ios-text-secondary);
  text-align: center;
}

/* Подсказка о платной услуге — сноской над кнопкой */
.portal-request-form__note {
  margin-top: calc(-1 * var(--ios-space-2));
}

/* Ошибки, которым нет места у поля (редкий случай) — текстом над
 * кнопкой, без красной плашки: ошибки — у полей */
.portal-request-form__errors {
  display: grid;
  gap: var(--ios-space-1);
}

.portal-request {
  align-items: flex-start;
}

.portal-request__answer,
.portal-request__amount {
  color: var(--ios-text);
  overflow-wrap: anywhere;
}

/* Пустой список — на фоне, по центру (бриф §3 «Выравнивание») */
.portal-requests__empty {
  padding: var(--ios-space-4) 0;
  text-align: center;
}

/* ============================================================
 * КА-2а: «Что нужно?» карточками, форма вида, карточка заявки с ходом,
 * оценкой, фото и «Дополнить». Только var(--ios-*); литералы — по
 * списку в шапке portal.css.
 * ============================================================ */

.portal-request-kinds__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.portal-request-kinds__sos {
  margin-top: var(--ios-space-4);
}

/* Строка «что это за вид · Сменить» над формой */
.portal-request-form__kind-line {
  margin: 0 0 var(--ios-space-4);
  font: var(--ios-type-secondary);
  color: var(--ios-text-secondary);
}

/* «С — По» переговорной — в одну строку и на телефоне */
.portal-request-form__pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ios-space-3);
}

.portal-request-form__emergency {
  display: grid;
  gap: var(--ios-space-2);
}

.portal-request__step {
  color: var(--ios-text);
}

.portal-request__priority {
  color: var(--ios-status-danger);
  font-weight: 600;
}

/* --- Карточка заявки --- */

.portal-request-card__head {
  display: grid;
  gap: var(--ios-space-3);
  padding-bottom: var(--ios-space-4);
}

.portal-request-card__facts {
  display: grid;
  gap: var(--ios-space-2);
  margin: 0;
  padding: 0 var(--ios-space-4);
}

.portal-request-card__fact {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--ios-space-2);
  font: var(--ios-type-secondary);
}

.portal-request-card__fact dt {
  color: var(--ios-text-secondary);
}

.portal-request-card__fact dd {
  margin: 0;
  text-align: right;
  overflow-wrap: anywhere;
}

.portal-request-card__text {
  padding: 0 var(--ios-space-4);
  overflow-wrap: anywhere;
}

.portal-request-card__cancel {
  margin-top: var(--ios-space-4);
}

.portal-request-card__closed {
  margin: var(--ios-space-4) 0;
}

/* Ход: событие, время объекта, текст ответа под ним */
.portal-request-history__list {
  padding: var(--ios-space-4);
}

.portal-request-event__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--ios-space-2);
  margin: 0;
}

.portal-request-event__time {
  font: var(--ios-type-secondary);
  color: var(--ios-text-secondary);
}

.portal-request-event__text {
  margin: var(--ios-space-1) 0 var(--ios-space-3);
  font: var(--ios-type-secondary);
  overflow-wrap: anywhere;
}

/* Оценка: пять кнопок-цифр в строку */
.portal-request-rating__form {
  display: grid;
  gap: var(--ios-space-3);
}

.portal-request-rating__scale {
  display: flex;
  gap: var(--ios-space-2);
  margin: var(--ios-space-2) 0 var(--ios-space-4);
}

.portal-request-rating__option {
  flex: 1 1 0;
  display: grid;
  justify-items: center;
  gap: var(--ios-space-1);
  padding: var(--ios-space-2) 0;
  border: 1px solid var(--ios-control-border);
  border-radius: var(--ios-radius-field);
  background: var(--ios-surface);
}

.portal-request-rating__option:has(input:checked) {
  border-color: var(--ios-accent);
}

.portal-request-rating__current {
  margin: 0 0 var(--ios-space-3);
}

/* Фото: миниатюры сеткой */
.portal-request-photos__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ios-space-3);
  list-style: none;
  margin: 0;
  padding: 0;
}

.portal-request-photos__item {
  display: grid;
  gap: var(--ios-space-1);
  justify-items: center;
}

.portal-request-photos__img {
  width: var(--ios-space-24);
  height: var(--ios-space-24);
  object-fit: cover;
  border-radius: var(--ios-radius-plate);
  background: var(--ios-surface);
}

.portal-request-photos__stage {
  font: var(--ios-type-caption);
  color: var(--ios-text-secondary);
}

/* Фильтр по виду — второй строкой таблеток под «Открытые / Закрытые» */
.portal-requests__kinds {
  margin: var(--ios-space-2) 0 var(--ios-space-4);
}
