/* Самореєстрація, підтвердження пошти, майстер запуску, діалог «працівник і доступ». */
.auth__box--wide { width: min(460px, 100%); }
.auth__box + .auth__box { margin-top: 0; }
.auth__link { display: inline-block; padding: 6px 0; }

/* Правила пароля: колір + значок + текст (не лише колір) */
.pw-rules { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; font-size: var(--fs-13); color: var(--ink-2); }
.pw-rules li { display: flex; align-items: center; gap: 6px; }
.pw-rules li::before { content: "○"; width: 1em; color: var(--ink-muted); flex: none; }
.pw-rules li.is-ok { color: var(--ok-ink); }
.pw-rules li.is-ok::before { content: "✓"; color: var(--ok-ink); font-weight: 700; }

.offer { border: 1px solid var(--line); border-radius: var(--r-6); background: var(--surface-2); padding: 8px 10px; font-size: var(--fs-13); }
.offer > summary { cursor: pointer; font-weight: 600; color: var(--ink); min-height: 28px; display: flex; align-items: center; }
.offer__text { margin: 6px 0 0; color: var(--ink-2); line-height: 1.5; }
.offer__ver { margin-top: 6px; font-family: var(--mono); font-size: var(--fs-12); color: var(--ink-muted); }
.trial-box { border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent); background: var(--accent-soft); border-radius: var(--r-6);
  padding: 8px 10px; font-size: var(--fs-13); color: var(--ink); }

/* Майстер запуску */
.launch { display: grid; gap: 12px; max-width: 980px; }
.progress { display: grid; gap: 8px; padding: 12px; }
.progress__head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.progress__num { font-family: var(--font-head); font-size: 1.75rem; font-weight: 700; color: var(--ink); line-height: 1; }
.progress__bar { height: 10px; border-radius: 999px; background: var(--surface-3); overflow: hidden; }
.progress__bar > span { display: block; height: 100%; background: var(--accent-fill); border-radius: 999px; transition: width 240ms var(--ease-out); }
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; counter-reset: step; }
.step { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 10px 12px;
  border: 1px solid var(--line); border-radius: var(--r-8); background: var(--surface); }
.step::before { counter-increment: step; content: counter(step); width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center;
  font-weight: 650; font-size: var(--fs-13); background: var(--surface-3); color: var(--ink-2); }
.step[data-status="done"]::before { content: "✓"; background: var(--ok-soft); color: var(--ok-ink); }
.step[data-status="blocked"] { border-style: dashed; }
.step[data-status="blocked"] .step__title { color: var(--ink-muted); }
.step__title { font-weight: 650; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.step__list { margin: 4px 0 0; padding-left: 18px; font-size: var(--fs-13); color: var(--ink-2); }
.step__list--advice { color: var(--ink-muted); }
.step__actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.actions-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 12px; }
.action-card { border: 1px solid var(--line); border-radius: var(--r-6); padding: 8px 10px; background: var(--surface); }
.action-card h3 { margin: 0 0 4px; font-size: var(--fs-14); font-weight: 650; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.action-card ul { margin: 0; padding-left: 18px; font-size: var(--fs-13); color: var(--ink-2); }
.panel__pad { padding: 12px; display: grid; gap: 10px; }

/* Діалог «працівник і доступ»: підзаголовки груп полів і панель перевірки */
.form-sub { margin: 6px 0 0; padding-top: 8px; border-top: 1px solid var(--line); font-weight: 650; font-size: var(--fs-14); color: var(--ink); }
.check-box { display: grid; gap: 6px; }
.check-box:empty { display: none; }

@media (max-width: 640px) {
  .step { grid-template-columns: 28px minmax(0, 1fr); }
  .step__actions { grid-column: 2; justify-content: flex-start; }
  .actions-grid { grid-template-columns: minmax(0, 1fr); }
  .auth { align-items: start; }
}
@media (prefers-reduced-motion: reduce) { .progress__bar > span { transition: none; } }
