/* Служебные страницы: документы и инструкции — на токенах кабинета (07.8);
   сами токены подключает tokens.css. Текст идёт той же разметкой, что и в
   чате, поэтому переводы строк сохраняются как есть. */
body { margin: 0; font: 16px/1.55 var(--body); }
.doc {
  max-width: 44rem;
  margin: 0 auto;
  padding: 2rem 1rem 4rem;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.doc b { font-weight: 650; }
.doc code { font-size: 0.92em; color: var(--muted); }

/* Страницы возврата из оплаты: одна мысль и одна кнопка — назад, в кабинет
   или к боту. */
.pay {
  max-width: 30rem;
  margin: 0 auto;
  padding: 3.2rem 1rem;
  animation: pay-in 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@keyframes pay-in { from { opacity: 0; transform: translateY(10px); } }
.pay h1 { font: 600 1.5rem/1.25 var(--display); margin: 0 0 0.75rem; }
.pay p { margin: 0 0 1.25rem; color: var(--muted); }
.button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 12px 22px; border: 0; border-radius: 14px;
  background: var(--primary); color: var(--on-primary);
  text-decoration: none; font: 600 15px/1.2 var(--body);
  transition: transform 0.12s ease, box-shadow 0.2s ease;
}
.button:hover { box-shadow: var(--shadow-l); }
.button:active { transform: scale(0.97); }
.button:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
