/* ============================================================
   Журнал — кабинет администратора
   ============================================================ */
.ad-wrap { max-width: 64rem; margin: 0 auto; padding: 0 var(--bleed) 5rem; }

.ad-chrome {
  display: grid; grid-template-columns: 1fr auto 1fr;
  align-items: center; gap: 0.8rem;
  padding: 1.1rem 0; margin-bottom: 1.6rem;
  border-bottom: 1px solid var(--line);
}
.ad-chrome__brand {
  font-family: var(--mono); font-size: var(--t-small);
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink);
  display: inline-flex; align-items: center; gap: 0.5em;
  justify-self: start;
}
.ad-chrome__brand .dot { width: 0.45em; height: 0.45em; border-radius: 50%; background: var(--accent); display: inline-block; }
.ad-chrome__tail { justify-self: end; display: flex; align-items: center; gap: 0.8rem; flex-wrap: wrap; }
.ad-ic { display: inline-flex; width: 1.05em; height: 1.05em; }
.ad-ic svg { width: 100%; height: 100%; }
.ad-chrome__home, .ad-chrome__out {
  font-family: var(--mono); font-size: var(--t-micro);
  letter-spacing: 0.12em; text-transform: uppercase;
  background: none; border: 1px solid var(--line-strong); border-radius: 3px;
  padding: 0.5rem 0.9rem; cursor: pointer; color: var(--ink-soft);
  display: inline-flex; align-items: center; gap: 0.45em;
  transition: all 0.2s var(--ease);
}
.ad-chrome__home:hover { color: var(--ink); border-color: var(--ink-soft); }
.ad-chrome__out { color: var(--accent-deep); border-color: var(--accent); }
.ad-chrome__out:hover { background: var(--accent); color: var(--paper-raise); }

.ad-head { margin-bottom: 1.6rem; }
.ad-title { font-family: var(--serif); font-weight: 600; font-size: var(--t-h1); color: var(--ink); margin: 0 0 0.3rem; }
.ad-dek { font-family: var(--grotesk); font-size: var(--t-small); color: var(--ink-soft); margin: 0; max-width: 40rem; line-height: 1.5; }

.ad-cols {
  display: grid; grid-template-columns: 1.6fr 1fr 1.4fr; gap: 1rem;
  padding: 0 0 0.6rem; border-bottom: 1px solid var(--line);
  font-family: var(--mono); font-size: var(--t-micro);
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-faint);
}
.ad-row {
  display: grid; grid-template-columns: 1.6fr 1fr 1.4fr; gap: 1rem;
  align-items: center; padding: 0.95rem 0; border-bottom: 1px solid var(--line);
}
.ad-row.is-off { opacity: 0.5; }
.ad-row__name { display: block; font-family: var(--grotesk); font-size: var(--t-body); color: var(--ink); }
.ad-row__login { display: block; font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); margin-top: 0.15rem; }
.ad-role {
  font-family: var(--grotesk); font-size: var(--t-small); color: var(--ink);
  background: var(--paper); border: 1px solid var(--line-strong); border-radius: 3px;
  padding: 0.45rem 0.6rem; width: 100%; cursor: pointer;
}
.ad-role:disabled { opacity: 0.6; cursor: default; }
.ad-row__acts { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.ad-act {
  font-family: var(--mono); font-size: var(--t-micro);
  letter-spacing: 0.08em; text-transform: uppercase;
  background: none; border: 1px solid var(--line-strong); border-radius: 3px;
  padding: 0.45rem 0.7rem; cursor: pointer; color: var(--ink-soft);
  transition: all 0.2s var(--ease);
}
.ad-act:hover { color: var(--ink); border-color: var(--ink-soft); }
.ad-act.is-on { color: var(--accent-deep); border-color: var(--accent); }
.ad-act:disabled { opacity: 0.5; cursor: default; }
.ad-row__msg { grid-column: 1 / -1; font-family: var(--grotesk); font-size: var(--t-small); min-height: 0; }
.ad-row__msg:empty { display: none; }
.ad-row__msg.is-ok { color: oklch(0.52 0.10 150); }
.ad-row__msg.is-err { color: var(--accent-deep); }

.ad-empty { padding: 1.6rem 0; font-family: var(--grotesk); font-size: var(--t-small); color: var(--ink-faint); }
.ad-empty.is-err { color: var(--accent-deep); }

@media (max-width: 680px) {
  .ad-cols { display: none; }
  .ad-row { grid-template-columns: 1fr; gap: 0.6rem; }
}

/* ---- разделы админки + модерация сообщений ---- */
.ad-sectnav { display: flex; gap: 0.4rem; margin-bottom: 1.6rem; border-bottom: 1px solid var(--line); }
.ad-sect {
  font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.12em; text-transform: uppercase;
  background: none; border: none; border-bottom: 2px solid transparent; margin-bottom: -1px;
  padding: 0.7rem 0.9rem; cursor: pointer; color: var(--ink-faint); transition: color 0.2s var(--ease);
}
.ad-sect:hover { color: var(--ink-soft); }
.ad-sect.is-on { color: var(--ink); border-bottom-color: var(--accent); }
.ad-pane { animation: ad-fade 0.18s var(--ease); }
@keyframes ad-fade { from { opacity: 0; } to { opacity: 1; } }
.ad-pane .ad-dek { margin-bottom: 1.2rem; }

.ad-conv { margin-bottom: 1.2rem; border: 1px solid var(--line); border-radius: 4px; overflow: hidden; }
.ad-conv__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.8rem 1rem; background: var(--paper-sink); }
.ad-conv__name { font-family: var(--grotesk); font-size: var(--t-body); color: var(--ink); }
.ad-conv__sub { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); margin-left: 0.6rem; }
.ad-conv__msgs { padding: 0.4rem 1rem 0.8rem; }
.ad-msg { display: grid; grid-template-columns: 7rem 1fr auto auto; gap: 0.7rem; align-items: center; padding: 0.5rem 0; border-top: 1px solid var(--line); }
.ad-msg__who { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.06em; color: var(--accent); }
.ad-msg.is-me .ad-msg__who { color: var(--ink-faint); }
.ad-msg__txt { font-family: var(--grotesk); font-size: var(--t-small); color: var(--ink); min-width: 0; }
.ad-msg__t { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }
.ad-msg__del { background: none; border: none; cursor: pointer; color: var(--ink-faint); width: 1.5rem; height: 1.5rem; display: inline-flex; align-items: center; justify-content: center; transition: color 0.2s var(--ease); }
.ad-msg__del:hover { color: var(--accent-deep); }
.ad-msg__del svg { width: 0.9rem; height: 0.9rem; }

@media (max-width: 680px) { .ad-msg { grid-template-columns: 1fr auto; } .ad-msg__who { grid-column: 1 / -1; } }

/* ---- полноценная админка: обзор, создание, правка строк ---- */
.ad-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.ad-kpi { padding: 1.3rem 1.4rem; background: var(--paper-raise); border: 1px solid var(--line); border-radius: 4px; }
.ad-kpi__v { display: block; font-family: var(--serif); font-weight: 600; font-size: var(--t-h1); color: var(--ink); line-height: 1; }
.ad-kpi__l { display: block; font-family: var(--grotesk); font-size: var(--t-small); color: var(--ink-soft); margin-top: 0.4rem; }

.ad-create { margin-bottom: 1.6rem; }
.ad-create__row { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }
.ad-cf {
  font-family: var(--grotesk); font-size: var(--t-small); color: var(--ink);
  background: var(--paper); border: 1px solid var(--line-strong); border-radius: 3px; padding: 0.5rem 0.65rem;
}
.ad-cf:focus { outline: none; border-color: var(--accent); }
.ad-cf--name, .ad-cf { min-width: 9rem; }
.ad-cf__btn {
  font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--paper-raise); background: var(--accent); border: 1px solid var(--accent); border-radius: 3px;
  padding: 0.55rem 1rem; cursor: pointer; transition: background 0.2s var(--ease);
}
.ad-cf__btn:hover { background: var(--accent-deep); }
.ad-cf__msg { display: block; margin-top: 0.5rem; font-family: var(--grotesk); font-size: var(--t-small); }
.ad-cf__msg:empty { display: none; }
.ad-cf__msg.is-ok { color: oklch(0.52 0.10 150); }
.ad-cf__msg.is-err { color: var(--accent-deep); }

.ad-edit {
  font-family: var(--grotesk); color: var(--ink); background: none; border: 1px solid transparent;
  border-radius: 3px; padding: 0.25rem 0.4rem; width: 100%;
}
.ad-edit:hover { border-color: var(--line); }
.ad-edit:focus { outline: none; border-color: var(--accent); background: var(--paper); }
.ad-edit--name { font-size: var(--t-body); }
.ad-edit--login { font-size: var(--t-small); color: var(--ink-faint); }
.ad-row__loginwrap { display: flex; align-items: center; gap: 0.1rem; margin-top: 0.1rem; }
.ad-row__at { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }
.ad-row__you { font-family: var(--mono); font-size: var(--t-micro); color: var(--accent); margin-left: 0.4rem; }
.ad-act--danger { color: var(--accent-deep); border-color: var(--accent); }
.ad-act--danger:hover { background: var(--accent); color: var(--paper-raise); }
.ad-act--ok { color: oklch(0.5 0.12 150); border-color: oklch(0.6 0.12 150); }
.ad-act--ok:hover { background: oklch(0.5 0.12 150); color: var(--paper-raise); border-color: oklch(0.5 0.12 150); }

@media (max-width: 680px) { .ad-kpis { grid-template-columns: 1fr 1fr; } }

/* ── секции / заголовки ─────────────────────────────── */
.ad-h2 {
  font-family: var(--mono); font-size: var(--t-micro);
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-faint);
  margin: 2rem 0 0.9rem; font-weight: 600;
}
.ad-pane > .ad-h2:first-of-type { margin-top: 1.4rem; }
.ad-comm { margin-top: 0.5rem; }

/* ── сплит выручки (билеты vs донаты) ───────────────── */
.ad-split { margin-top: 1.2rem; }
.ad-split__head {
  display: flex; justify-content: space-between; align-items: baseline; gap: 0.8rem;
  font-family: var(--grotesk); font-size: var(--t-small); color: var(--ink-soft);
  margin-bottom: 0.5rem;
}
.ad-split__nums { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }
.ad-bar {
  display: flex; height: 0.7rem; border-radius: 4px; overflow: hidden;
  background: var(--line); border: 1px solid var(--line);
}
.ad-bar__seg { display: block; height: 100%; }
.ad-bar__seg.is-tickets { background: var(--accent); }
.ad-bar__seg.is-don { background: var(--ink-soft); }
.ad-split__leg { display: flex; gap: 1.2rem; margin-top: 0.5rem; }
.ad-leg {
  font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-soft);
  display: inline-flex; align-items: center; gap: 0.45em;
}
.ad-leg::before { content: ""; width: 0.6em; height: 0.6em; border-radius: 2px; display: inline-block; }
.ad-leg.is-tickets::before { background: var(--accent); }
.ad-leg.is-don::before { background: var(--ink-soft); }

/* ── прогресс выплат ────────────────────────────────── */
.ad-prog { height: 0.4rem; border-radius: 3px; background: var(--line); overflow: hidden; margin: 0.7rem 0; }
.ad-prog__fill { display: block; height: 100%; background: oklch(0.52 0.10 150); }

/* ── шапка выплат ───────────────────────────────────── */
.ad-payhead { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1.6rem; }

/* ── группы-владельцы ───────────────────────────────── */
.ad-owners { display: flex; flex-direction: column; gap: 1rem; }
.ad-owner {
  border: 1px solid var(--line); border-radius: 5px; padding: 1.1rem 1.2rem 0.6rem;
  background: var(--paper-raise);
}
.ad-owner.has-due { border-color: var(--accent); }
.ad-owner__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.ad-owner__name { display: block; font-family: var(--serif); font-weight: 600; font-size: var(--t-h2, 1.15rem); color: var(--ink); }
.ad-owner__meta { display: block; font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); margin-top: 0.2rem; }
.ad-owner__due {
  font-family: var(--mono); font-size: var(--t-small); color: var(--accent-deep);
  white-space: nowrap; font-weight: 600;
}
.ad-owner__clear { font-family: var(--mono); font-size: var(--t-micro); color: oklch(0.52 0.10 150); white-space: nowrap; }

/* ── строка площадки в выплатах ─────────────────────── */
.ad-owner__rows { display: flex; flex-direction: column; }
.ad-pe { padding: 0.85rem 0 0.55rem; border-top: 1px solid var(--line); }
.ad-pe.is-clear { opacity: 0.6; }
.ad-pe__id { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.7rem; }
.ad-pe__open {
  font-family: var(--grotesk); font-size: var(--t-body); color: var(--ink);
  background: none; border: none; padding: 0; cursor: pointer; text-align: left;
  border-bottom: 1px solid transparent;
}
.ad-pe__open:hover { border-bottom-color: var(--accent); }
.ad-pe__sub { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }
.ad-pe .ad-bar { margin: 0.5rem 0; }
.ad-pe__pay { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-top: 0.5rem; }
.ad-pe__amt {
  font-family: var(--mono); font-size: var(--t-small); color: var(--ink);
  background: var(--paper); border: 1px solid var(--line-strong); border-radius: 3px;
  padding: 0.4rem 0.5rem; width: 7rem;
}
.ad-pe__amt:focus { outline: none; border-color: var(--accent); }
.ad-pe__cur { font-family: var(--mono); font-size: var(--t-small); color: var(--ink-faint); margin-left: -0.3rem; }
.ad-pe__note {
  font-family: var(--grotesk); font-size: var(--t-small); color: var(--ink);
  background: var(--paper); border: 1px solid var(--line-strong); border-radius: 3px;
  padding: 0.4rem 0.6rem; flex: 1; min-width: 8rem;
}
.ad-pe__note:focus { outline: none; border-color: var(--accent); }
.ad-pe__done { font-family: var(--mono); font-size: var(--t-micro); color: oklch(0.52 0.10 150); text-transform: uppercase; letter-spacing: 0.08em; }
.ad-pe__msg { display: block; font-family: var(--grotesk); font-size: var(--t-small); margin-top: 0.4rem; }
.ad-pe__msg:empty { display: none; }
.ad-pe__msg.is-err { color: var(--accent-deep); }

/* ── история выплат ─────────────────────────────────── */
.ad-hist__row {
  display: grid; grid-template-columns: auto 1fr auto; gap: 0.4rem 1rem; align-items: baseline;
  padding: 0.65rem 0; border-bottom: 1px solid var(--line);
}
.ad-hist__amt { font-family: var(--mono); font-size: var(--t-small); color: var(--ink); font-weight: 600; }
.ad-hist__ent { font-family: var(--grotesk); font-size: var(--t-small); color: var(--ink-soft); }
.ad-hist__note { font-family: var(--grotesk); font-size: var(--t-micro); color: var(--ink-faint); grid-column: 2; }
.ad-hist__note:empty { display: none; }
.ad-hist__t { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); white-space: nowrap; grid-row: 1; grid-column: 3; }

/* ── эквайринг ───────────────────────────────────────── */
.ad-acq { max-width: 38rem; display: flex; flex-direction: column; gap: 1rem; }
.ad-acq__row { display: flex; gap: 1.5rem; flex-wrap: wrap; align-items: flex-end; }
.ad-acq__enable { display: flex; align-items: center; gap: 0.8rem; }
.ad-acq__field { display: flex; flex-direction: column; gap: 0.35rem; }
.ad-acq__lab { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-faint); }
.ad-acq__sub { font-family: var(--grotesk); font-size: var(--t-micro); color: var(--ink-faint); }
.ad-acq__inp {
  font-family: var(--grotesk); font-size: var(--t-small); color: var(--ink);
  background: var(--paper); border: 1px solid var(--line-strong); border-radius: 3px; padding: 0.55rem 0.7rem;
}
.ad-acq__inp:focus { outline: none; border-color: var(--accent); }
.ad-acq__seg { display: inline-flex; border: 1px solid var(--line-strong); border-radius: 4px; overflow: hidden; }
.ad-acq__opt { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.08em; text-transform: uppercase; background: none; border: none; padding: 0.5rem 0.9rem; cursor: pointer; color: var(--ink-soft); }
.ad-acq__opt.is-on { background: var(--accent); color: var(--paper-raise); }
.ad-acq__foot { display: flex; align-items: center; gap: 1rem; margin-top: 0.4rem; }
.ad-acq__msg { font-family: var(--grotesk); font-size: var(--t-small); color: var(--ink-faint); }
.ad-acq__msg.is-ok { color: oklch(0.52 0.10 150); }
.ad-acq__msg.is-err { color: var(--accent-deep); }

/* ── операции (возвраты/отмены) ──────────────────────── */
.ad-op { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; padding: 0.85rem 0; border-bottom: 1px solid var(--line); }
.ad-op.is-refunded, .ad-op.is-cancelled { opacity: 0.6; }
.ad-op__id { flex: 1; min-width: 14rem; }
.ad-op__kind { display: block; font-family: var(--mono); font-size: var(--t-small); color: var(--ink); }
.ad-op__sub { display: block; font-family: var(--grotesk); font-size: var(--t-micro); color: var(--ink-faint); margin-top: 0.2rem; }
.ad-op__acts { display: flex; gap: 0.5rem; align-items: center; }
.ad-op__done { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-faint); }
.ad-op__msg { flex-basis: 100%; font-family: var(--grotesk); font-size: var(--t-small); }
.ad-op__msg:empty { display: none; }
.ad-op__msg.is-err { color: var(--accent-deep); }

@media (max-width: 680px) {
  .ad-payhead { grid-template-columns: 1fr; }
  .ad-pe__note { min-width: 100%; order: 3; }
}

/* массовая рассылка (Сообщения) */
.ad-bc { border: 1px solid var(--line); border-top: 2px solid var(--accent); background: var(--paper-raise); padding: 1rem 1.1rem; margin-bottom: 1.4rem; }
.ad-bc__head { display: flex; align-items: baseline; gap: 0.8rem; margin-bottom: 0.6rem; }
.ad-bc__t { font-family: var(--grotesk); font-weight: 600; font-size: var(--t-small); color: var(--ink); }
.ad-bc__msg { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }
.ad-bc__msg.is-ok { color: var(--accent-deep); }
.ad-bc__msg.is-err { color: oklch(0.55 0.13 28); }
.ad-bc__input { width: 100%; box-sizing: border-box; font-family: var(--grotesk); font-size: var(--t-small); color: var(--ink); padding: 0.6rem 0.7rem; border: 1px solid var(--line-strong); background: var(--paper); resize: vertical; }
.ad-bc__input:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.ad-bc__acts { display: flex; justify-content: flex-end; margin-top: 0.6rem; }
.ad-modwrap { margin-top: 0.4rem; }

/* владение страницами */
.ad-pages { display: flex; flex-direction: column; }
.ad-pages__row { display: flex; align-items: center; gap: 1rem; padding: 0.7rem 0; border-top: 1px solid var(--line); }
.ad-pages__row:first-child { border-top: 0; }
.ad-pages__id { min-width: 0; flex: 1; }
.ad-pages__name { display: block; font-family: var(--serif); font-size: 1.05rem; color: var(--ink); }
.ad-pages__sub { display: block; font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }
.ad-pages__own { display: flex; align-items: center; gap: 0.7rem; flex: none; }
.ad-pages__sel { font-family: var(--grotesk); font-size: var(--t-small); color: var(--ink); padding: 0.45rem 0.6rem; border: 1px solid var(--line-strong); border-radius: 4px; background: var(--paper); min-width: 14rem; }
.ad-pages__sel:focus { outline: none; border-color: var(--accent); }
.ad-pages__st { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); min-width: 5rem; }
.ad-pages__st.is-ok { color: var(--accent-deep); }
.ad-pages__st.is-err { color: oklch(0.55 0.13 28); }
.ad-pages__row.is-orphan .ad-pages__sub { color: oklch(0.55 0.13 28); }
.ad-pages__name i { font-style: italic; color: var(--ink-faint); }
.ad-pages__del { flex: none; font-family: var(--grotesk); font-size: var(--t-small); line-height: 1; color: var(--ink-faint); padding: 0.45rem 0.6rem; border: 1px solid var(--line-strong); border-radius: 4px; background: var(--paper); cursor: pointer; }
.ad-pages__del:hover { color: oklch(0.55 0.13 28); border-color: oklch(0.55 0.13 28); }
.ad-pages__del.is-on { color: var(--paper); background: oklch(0.55 0.13 28); border-color: oklch(0.55 0.13 28); }
.ad-row__pages { display: block; font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); margin-top: 0.2rem; }
@media (max-width: 620px) { .ad-pages__row { flex-direction: column; align-items: stretch; } .ad-pages__sel { min-width: 0; width: 100%; } }

/* --- ключник (вкладка «Ключи») --- */
.ad-keys { display: flex; flex-direction: column; gap: 1.2rem; }
.ad-key { border: 1px solid var(--line); border-top: 2px solid var(--accent); background: var(--paper-raise); padding: 1rem 1.1rem; }
.ad-key__head { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 0.8rem; flex-wrap: wrap; }
.ad-key__title { margin: 0 0 0.35rem; font-family: var(--serif); font-size: 1.15rem; color: var(--ink); }
.ad-key__hint, .ad-key__cons { margin: 0.2rem 0 0; font-size: var(--t-small); line-height: 1.45; color: var(--ink-soft); }
.ad-key__cons { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }
.ad-key__warn { margin: 0.35rem 0 0; font-size: var(--t-micro); color: var(--accent-deep); }
.ad-key__meta { display: flex; flex-direction: column; align-items: flex-end; gap: 0.5rem; }
.ad-key__swrow { display: flex; align-items: center; gap: 0.5rem; font-size: var(--t-small); color: var(--ink-soft); }
.ad-key__st { font-family: var(--mono); font-size: var(--t-micro); padding: 0.2rem 0.5rem; border-radius: 4px; border: 1px solid var(--line); }
.ad-key__st.is-on { color: var(--accent-deep); border-color: var(--accent); background: oklch(0.97 0.02 55); }
.ad-key__st.is-warn { color: oklch(0.55 0.13 55); border-color: oklch(0.75 0.08 55); }
.ad-key__st.is-off { color: var(--ink-faint); }
.ad-key__fields { display: flex; flex-direction: column; gap: 0.65rem; }
.ad-key__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin-top: 0.9rem; }
.ad-key__msg { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }
.ad-key__msg.is-ok { color: var(--accent-deep); }
.ad-key__msg.is-err { color: oklch(0.55 0.13 28); }
.ad-key__clr, .ad-key__ping { font-family: var(--grotesk); font-size: var(--t-small); padding: 0.35rem 0.65rem; border: 1px solid var(--line-strong); background: transparent; color: var(--ink-soft); cursor: pointer; border-radius: 4px; align-self: flex-start; margin-top: 0.25rem; }
.ad-key__clr:hover, .ad-key__ping:hover { border-color: var(--accent); color: var(--accent-deep); }

/* --- PWA / приложение (вкладка «Приложение») --- */
.ad-app__card { margin-top: 1.2rem; padding: 1.1rem 1rem; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); }
.ad-app__h { margin: 0 0 0.6rem; font-family: var(--serif); font-size: 1.1rem; color: var(--ink); }
.ad-app__hint { margin: 0 0 0.8rem; font-size: var(--t-small); line-height: 1.5; color: var(--ink-soft); }
.ad-app__icons { display: flex; gap: 1.2rem; flex-wrap: wrap; margin-bottom: 0.8rem; }
.ad-app__slot { display: flex; flex-direction: column; align-items: center; gap: 0.35rem; }
.ad-app__icon { width: 5.5rem; height: 5.5rem; border-radius: 22%; border: 1px solid var(--line); background: var(--paper-raise); object-fit: cover; }
.ad-app__icon--mask { border-radius: 50%; }
.ad-app__cap { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }
.ad-app__row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin-top: 0.6rem; }
.ad-app__btn { font-family: var(--grotesk); font-size: var(--t-small); padding: 0.55rem 0.9rem; border: 1px solid var(--accent); border-radius: 999px; background: var(--accent); color: var(--paper); cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; }
.ad-app__btn--ghost { background: transparent; color: var(--accent-deep); border-color: var(--line-strong); }
.ad-app__btn:hover { filter: brightness(0.96); }
.ad-app__inp { display: block; width: 100%; max-width: 28rem; margin: 0.35rem 0 0.6rem; padding: 0.5rem 0.65rem; border: 1px solid var(--line-strong); border-radius: 4px; font-family: var(--mono); font-size: var(--t-small); background: var(--paper-raise); color: var(--ink); }
.ad-app__inp--fp { min-height: 3.2rem; resize: vertical; }
.ad-app__lbl { display: block; margin-top: 0.5rem; font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); text-transform: uppercase; letter-spacing: 0.08em; }
.ad-app__pushlbl { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }
.ad-app__pushst { font-family: var(--mono); font-size: var(--t-small); color: var(--ink-soft); }
.ad-app__pushst.is-ok { color: var(--accent-deep); }
.ad-app__pushst.is-err { color: oklch(0.55 0.13 28); }
.ad-app__msg { margin-top: 0.6rem; font-size: var(--t-small); min-height: 1.2rem; }
.ad-app__msg.is-ok { color: var(--accent-deep); }
.ad-app__msg.is-err { color: oklch(0.55 0.13 28); }

/* Тихий ИИ - карточка настроек в разделе «Сообщения» */
.ad-ai { border: 1px solid var(--line); border-radius: 0.8rem; padding: 1rem 1.1rem; margin: 0 0 1.2rem; background: var(--paper-raise); }
.ad-ai__head { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.35rem; flex-wrap: wrap; }
.ad-ai__t { font: 600 1.02rem/1.2 var(--grotesk); color: var(--ink); }
.ad-ai__usage { font: var(--t-small)/1.2 var(--grotesk); color: var(--ink-faint); }
.ad-ai .ad-dek { margin: 0 0 0.85rem; }
.ad-ai__row { display: flex; align-items: center; gap: 0.6rem; margin: 0.5rem 0; flex-wrap: wrap; }
.ad-ai__lbl { flex: 1 1 auto; min-width: 12rem; font: var(--t-body)/1.3 var(--grotesk); color: var(--ink-soft); }
.ad-ai__swlabel { font: var(--t-small)/1 var(--grotesk); color: var(--ink-soft); min-width: 5.5rem; }
.ad-ai__num { width: 6rem; padding: 0.4rem 0.55rem; border-radius: 0.5rem; border: 1px solid var(--line-strong); background: var(--paper); font: var(--t-body)/1.2 var(--mono, var(--grotesk)); color: var(--ink); }
.ad-ai__num:focus { outline: none; border-color: var(--accent); }
.ad-ai__hint { font: var(--t-micro)/1 var(--grotesk); color: var(--ink-faint); }
.ad-ai__acts { display: flex; align-items: center; gap: 0.75rem; margin-top: 0.85rem; }

/* ── фискализация: тот же вид, что и эквайринг, но отдельным блоком ──
   Чек выдаёт банк-эквайер, поэтому настройка стоит следом и выглядит так же. */
.ad-acq--fiscal { margin-top: 1.4rem; padding-top: 1.4rem; border-top: 1px solid var(--line-strong); }
.ad-acq__queue { margin-top: 1rem; }
.ad-acq__warn { margin: 0 0 0.5rem; font-size: var(--t-small); color: var(--accent-deep); }
.ad-acq__qlist { display: flex; flex-direction: column; gap: 0.3rem; margin-bottom: 0.7rem; }
.ad-acq__qrow { display: flex; justify-content: space-between; gap: 1rem; font-size: var(--t-micro); padding: 0.35rem 0; border-bottom: 1px solid var(--line); }
.ad-acq__qerr { color: var(--ink-faint); text-align: right; max-width: 55%; }

@media (max-width: 620px) {
  .ad-acq__qrow { flex-direction: column; gap: 0.15rem; }
  .ad-acq__qerr { max-width: 100%; text-align: left; }
}

/* операционные рычаги: строгие цены и список адресов вебхука */
.ad-acq--strict, .ad-acq--allow { margin-top: 1.2rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.ad-acq__area { min-height: 76px; font-family: var(--mono); font-size: var(--t-micro); line-height: 1.5; resize: vertical; }

/* Результат проверки подключения к банку: шаги с отметками. Своя обёртка,
   чтобы отчёт не слипался с кнопкой сохранения. */
.ad-acq__check { margin-top: 0.9rem; }
.ad-acq__check:empty { margin-top: 0; }

/* ГОТОВЫЕ адреса для личного кабинета Robokassa. Отдельный блок, а не абзац
   текста: адреса вносятся руками на чужой стороне, и ошибка в одном символе
   означает списанные деньги при заказе, навсегда оставшемся неоплаченным.
   Поэтому значение моноширинное, выделяется целиком и копируется кнопкой. */
.ad-acq__urls { margin-top: 0.9rem; padding-top: 0.9rem; border-top: 1px solid var(--line); display: grid; gap: 0.5rem; }
.ad-acq__urls[hidden] { display: none; }
.ad-acq__urow { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.ad-acq__ulab { font-family: var(--grotesk); font-size: var(--t-micro); color: var(--ink-faint); flex: 0 0 12rem; }
.ad-acq__uval { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink); background: var(--paper-sink); border: 1px solid var(--line); border-radius: 4px; padding: 0.45rem 0.6rem; flex: 1 1 16rem; overflow-x: auto; white-space: nowrap; user-select: all; }
/* 44px — минимальный размер цели касания, иначе на телефоне в неё не попасть. */
.ad-acq__copy { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.08em; text-transform: uppercase; min-height: 44px; padding: 0 0.9rem; border: 1px solid var(--line-strong); border-radius: 4px; background: none; color: var(--ink-soft); cursor: pointer; -webkit-appearance: none; }
.ad-acq__copy:hover { color: var(--ink); border-color: var(--ink-soft); }
@media (max-width: 620px) {
  .ad-acq__ulab { flex: 1 1 100%; }
}
