/* =====================================================================
   Личный кабинет (account.html) — только то, чего нет в base.css.
   Гость не вошёл: вход и регистрация двумя колонками.
   Вошёл: приветствие → «Мои заявки» (записи, как в домовой книге: даты крупно,
   статус словами справа) → «Мои отзывы» → профиль и пароль двумя узкими колонками.
   ===================================================================== */

/* ---------- Открытие ---------- */
.acc-opener .opener__lead { max-width: 30em; }
.acc-opener .opener__title:focus { outline: none; }        /* фокус сюда ставит скрипт после входа и выхода */
.acc-who {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-2) var(--s-6);
  margin-top: var(--s-5);
}
.acc-who__mail { font-size: var(--fs-small); color: var(--ink-3); overflow-wrap: anywhere; }
.acc-who__out .i { width: 18px; height: 18px; }

/* ---------- Строка состояния: «Открываем кабинет…», «Сессия истекла» ---------- */
.acc__state { grid-column: 2 / span 8; }
.acc__state:empty { display: none; }
.acc[data-state="loading"] { min-height: 24rem; }           /* место под кабинет, пока решаем, кто на странице */

/* ---------- Вход и регистрация ---------- */
.acc-auth .g { align-items: start; }
.acc-claims {
  grid-column: 2 / span 8; margin-bottom: clamp(40px, 1.5rem + 2vw, 64px);
  padding-top: var(--s-4); border-top: 1px solid var(--rule-strong);
  font-size: var(--fs-lead); line-height: 1.45; max-width: 30em;
}
.acc-claims__no, .ledger__no { font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }
.acc-auth__login { grid-column: 2 / span 4; }
.acc-auth__register { grid-column: 7 / span 6; }
.acc-auth__register:focus { outline: none; }
.acc-auth__title { margin-bottom: var(--s-6); }
.acc-auth__lead { margin: calc(-1 * var(--s-3)) 0 var(--s-6); color: var(--ink-2); max-width: 27em; }
.acc-auth__switch { display: none; }
.acc-auth__note { grid-column: 2 / span 7; margin-top: clamp(48px, 2rem + 3vw, 96px); max-width: 36em; }
.acc-form .form__actions { margin-top: var(--s-2); }

/* ---------- Заголовки разделов кабинета ---------- */
.acc-head > .h2 { grid-column: 2 / span 7; }
.acc-reviews { padding-top: clamp(56px, 2rem + 4vw, 120px); }
.acc-head { margin-bottom: clamp(32px, 1.5rem + 2vw, 64px); }

/* ---------- Мои заявки ---------- */
.acc-list { grid-column: 2 / span 11; min-width: 0; }
.ledger { border-top: 1px solid var(--rule-strong); }
.ledger__row {
  display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); column-gap: var(--gutter); align-items: start;
  padding: var(--s-5) 0 var(--s-6); border-bottom: 1px solid var(--rule);
}
.ledger__main { grid-column: 1 / span 6; min-width: 0; }
.ledger__side { grid-column: 8 / span 4; min-width: 0; }
.ledger__dates { font-size: var(--fs-h3); line-height: 1.15; }
.ledger__meta { margin-top: var(--s-2); color: var(--ink-2); max-width: 30em; }
.ledger__state { font-size: var(--fs-lead); line-height: 1.3; color: var(--ink); }
.ledger__note { margin-top: var(--s-1); font-size: var(--fs-small); font-style: italic; line-height: 1.45; color: var(--ink-2); max-width: 20em; }
.ledger__note a { color: var(--ink); }
.ledger__num {
  margin-top: var(--s-3);
  font-family: var(--font-sc); font-size: .9375rem; letter-spacing: .07em; text-transform: lowercase; color: var(--ink-3);
}
.ledger__row.is-new .ledger__state { color: var(--ink-2); font-style: italic; }
.ledger__row.is-cancelled .ledger__dates,
.ledger__row.is-cancelled .ledger__state,
.ledger__row.is-done .ledger__dates,
.ledger__row.is-done .ledger__state { color: var(--ink-3); }
.acc-bookings__note { grid-column: 2 / span 7; margin-top: var(--s-6); max-width: 38em; }
.acc-bookings__note a { color: var(--ink); }
.acc-empty { padding: var(--s-5) 0; border-top: 1px solid var(--rule-strong); max-width: 34em; }
.acc-empty p { color: var(--ink-2); }
.acc-list .state { padding-top: var(--s-5); border-top: 1px solid var(--rule-strong); }

/* ---------- Мои отзывы: список во всю ширину, как заявки; цитата держит свою меру ---------- */
.my-review { border-top: 1px solid var(--rule-strong); padding: var(--s-5) 0 var(--s-7); }
.my-review .review__quote { max-width: 34em; }
.my-review__meta { margin-top: var(--s-4); font-size: var(--fs-small); color: var(--ink-3); }
.my-review__state { color: var(--ink); }
.my-review.is-rejected .my-review__state { color: var(--ink-3); }
.my-review__note { margin-top: var(--s-1); font-size: var(--fs-small); font-style: italic; color: var(--ink-3); }

/* ---------- Профиль и пароль ---------- */
.acc-settings .g { align-items: start; row-gap: var(--s-8); }
.acc-settings__profile { grid-column: 2 / span 4; }
.acc-settings__password { grid-column: 7 / span 4; }
.acc-static__value {
  min-height: 46px; padding: 8px 0 7px; border-bottom: 1px solid var(--rule);
  font-size: 1.1875rem; line-height: 1.4; color: var(--ink-2); overflow-wrap: anywhere;
}

/* ---------- Адаптив ---------- */
/* левый край форм — на той же колонке, что заголовок страницы */
@media (max-width: 1100px) {
  .acc-auth__login { grid-column: 2 / span 5; }
  .acc-auth__register { grid-column: 7 / span 6; }
  .acc-settings__profile { grid-column: 2 / span 5; }
  .acc-settings__password { grid-column: 7 / span 5; }
}
@media (max-width: 900px) {
  .acc__state, .acc-claims, .acc-auth__login, .acc-auth__register, .acc-auth__note,
  .acc-head > .h2, .acc-bookings__note, .acc-list,
  .acc-settings__profile, .acc-settings__password { grid-column: 1 / -1; }
  .acc-auth__switch { display: block; margin-top: var(--s-6); }
  .acc-auth__register { margin-top: var(--s-9); padding-top: var(--s-7); border-top: 1px solid var(--rule); }
  .ledger__row { grid-template-columns: minmax(0, 1fr); row-gap: var(--s-4); }
  .ledger__main, .ledger__side { grid-column: 1; }
  .ledger__state { font-size: var(--fs-body); }
}
@media (max-width: 640px) {
  .acc-form .form__actions .btn { width: 100%; }
}
