/* ═══════════════════════════════════════════════════════════
   Дополнения платформы к стилям сайта.

   site.css переносится с боевого сайта без изменений и правится
   только там. Здесь — то, чего на сайте нет: формы, статусы,
   шаги анкеты. Палитра и типографика те же (16_UI_UX).
   ═══════════════════════════════════════════════════════════ */

/* Пользовательский курсор сайта мешает попадать в поля ввода,
   поэтому на страницах платформы возвращаем системный.
   Единственное сознательное отступление от стиля сайта. */
body.platform { cursor: auto; }
body.platform .cursor-dot,
body.platform .cursor-ring { display: none; }

/* ── Поля ввода ─────────────────────────────────────────── */

.fld {
  width: 100%;
  background: #141312;
  border: 1px solid rgba(154, 122, 74, 0.2);
  color: #e8e6e1;
  padding: 0.85rem 1rem;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  transition: border-color 0.3s ease, background 0.3s ease;
}
.fld::placeholder { color: #80796b; }
.fld:hover { border-color: rgba(184, 147, 90, 0.4); }
.fld:focus {
  outline: none;
  border-color: #b8935a;
  background: #1a1917;
}
.fld:disabled { opacity: 0.5; cursor: not-allowed; }

.fld-mono { font-family: 'JetBrains Mono', monospace; letter-spacing: 0.05em; }

.fld-label {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #9f998e;
  margin-bottom: 0.5rem;
}

.fld-hint { font-size: 12px; color: #80796b; margin-top: 0.4rem; line-height: 1.5; }

/* Ошибка всегда объясняет, что исправить, а не просто краснеет. */
.fld-error { border-color: #e08a7a; }
.fld-error-text { font-size: 12px; color: #e08a7a; margin-top: 0.4rem; }

/* ── Флажки и переключатели ─────────────────────────────── */

.chk {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(154, 122, 74, 0.15);
  background: #141312;
  cursor: pointer;
  transition: all 0.3s ease;
}
.chk:hover { border-color: rgba(184, 147, 90, 0.35); }
.chk.chk-on { border-color: #b8935a; background: rgba(184, 147, 90, 0.06); }
.chk input { margin-top: 0.2rem; accent-color: #b8935a; width: 16px; height: 16px; }

/* ── Статусы ────────────────────────────────────────────── */

.st {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 0.35rem 0.75rem;
  border: 1px solid currentColor;
}
.st::before {
  content: '';
  width: 5px; height: 5px;
  background: currentColor;
  border-radius: 50%;
}

/* Красный сигнальный не используется: отказ в верификации —
   нормальный исход процесса, а не авария (16_UI_UX). */
.st-draft    { color: #9f998e; }
.st-pending  { color: #c9a45c; }
.st-revision { color: #e0a45a; }
.st-verified { color: #7aa87a; }
.st-rejected { color: #c07a6a; }
.st-blocked  { color: #c07a6a; }

/* Уровень участника (ADR-M10). Насыщенность растёт к узкому кругу:
   «в реестре» — нейтрально-серый, «аппарат ВКСЭ» — акцент коллегии.
   Уровень не оценка человека, поэтому сигнальных цветов здесь нет. */
.tr-registered { color: #9f998e; }
.tr-member     { color: #8fa3b8; }
.tr-certified  { color: #7aa87a; }
.tr-vkse       { color: #b8935a; }

/* ── Шаги анкеты ────────────────────────────────────────── */

.steps { display: flex; align-items: center; gap: 0; flex-wrap: wrap; }

.step {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #5c574d;
  padding: 0.5rem 0;
}
.step-num {
  width: 26px; height: 26px;
  display: grid; place-items: center;
  border: 1px solid currentColor;
  font-size: 11px;
}
.step-line { width: 28px; height: 1px; background: #3d3a34; margin: 0 0.75rem; }

.step.step-done { color: #b8935a; }
.step.step-done .step-num { background: rgba(184, 147, 90, 0.12); }
.step.step-now { color: #e8e6e1; }
.step.step-now .step-num { border-color: #b8935a; background: #b8935a; color: #0a0a09; }

/* ── Панель ─────────────────────────────────────────────── */

.panel {
  background: #141312;
  border: 1px solid rgba(184, 147, 90, 0.12);
  padding: 2rem;
}

.panel-tight { padding: 1.25rem 1.5rem; }

/* Строка-карточка вместо ячейки таблицы: на телефоне табличная
   сетка нечитаема (16_UI_UX). */
.row-card {
  display: block;
  background: #141312;
  border: 1px solid rgba(184, 147, 90, 0.12);
  border-left: 2px solid rgba(184, 147, 90, 0.35);
  padding: 1.25rem 1.5rem;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.row-card:hover {
  border-color: rgba(184, 147, 90, 0.3);
  border-left-color: #b8935a;
  transform: translateX(4px);
}

/* ── Заметка-объяснение ─────────────────────────────────── */

/* Форма декларации без объяснения смысла выглядит как сбор
   лишних данных, поэтому объяснение — часть интерфейса, а не
   справка где-то сбоку (16_UI_UX, ADR-003). */
.note {
  border-left: 2px solid #b8935a;
  background: rgba(184, 147, 90, 0.05);
  padding: 1.1rem 1.4rem;
  font-size: 14px;
  line-height: 1.7;
  color: #b8b3a8;
}

.note-strong { color: #e8e6e1; }

/* ── Текст декларации ───────────────────────────────────── */

.legal {
  background: #0f0e0d;
  border: 1px solid rgba(154, 122, 74, 0.15);
  padding: 1.5rem;
  max-height: 300px;
  overflow-y: auto;
  font-size: 14px;
  line-height: 1.8;
  color: #b8b3a8;
}
.legal p { margin-bottom: 0.9rem; }
.legal p:last-child { margin-bottom: 0; }

/* ── Метка раздела ──────────────────────────────────────── */

.eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: #b8935a;
}

