/* Настройка поискового профиля — надстройка над onboarding/onboarding.css.
 *
 * Тот же набор шагов, что в первой настройке (сканируем рынок → выбор ролей →
 * сборка запроса), поэтому оформление берётся оттуда целиком, а не пишется
 * второй раз: два файла на один и тот же экран неизбежно разъезжаются.
 * Здесь только то, чего в онбординге нет.
 *
 * До 20 августа страница жила на Tailwind из CDN с зашитой тёмной палитрой
 * Material и <html class="dark">: чужой скрипт на критическом пути и экран,
 * который оставался тёмным, когда весь сайт светлый.
 */

/* Шапка на странице общая, поэтому подвал прижимаем к низу сами. */
body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
.sp-main{flex:1 0 auto;padding-top:34px;padding-bottom:40px}
.sp-foot{margin-top:auto;width:100%;border-top:1px solid var(--line);
  padding:24px;color:var(--faint);font-size:12px;text-align:center}

/* Шапка шага выбора ролей — как в онбординге. */
.rhead{text-align:center;margin-bottom:20px;position:relative}
.rhead h1{font-family:var(--fd);font-weight:700;font-size:24px;letter-spacing:-.015em;line-height:1.2;margin:0}
.rhead p{font-size:13.5px;color:var(--muted);margin-top:10px;line-height:1.6;
  max-width:640px;margin-left:auto;margin-right:auto}

#generationStepper{display:flex;gap:.5rem;justify-content:center;margin-top:8px}
#generationStepper span{width:1.75rem;height:1.75rem;border-radius:50%;display:grid;place-items:center;
  background:var(--card2);color:var(--faint);font-size:.75rem;font-weight:700}
#generationStepper span.active{background:var(--purple);color:#fff}

#clusterInfoModal{position:fixed;inset:0;z-index:150;padding:18px;background:rgba(4,6,18,.6);
  backdrop-filter:blur(14px) saturate(.85);-webkit-backdrop-filter:blur(14px) saturate(.85);
  display:grid;place-items:center}
[data-theme="light"] #clusterInfoModal{background:rgba(28,34,70,.34)}
#clusterInfoModal.hidden{display:none!important}
#clusterInfoModal .modal-inner{width:100%;max-width:440px;background:var(--panel);
  border:1px solid var(--line2);border-radius:var(--r);box-shadow:var(--shadow);padding:24px}
#clusterInfoModal .modal-inner button{margin-top:16px;color:var(--purple);font-weight:600;
  background:none;border:none;cursor:pointer;font-size:14px}
#clusterInfoBody{font-size:13px;color:var(--muted);line-height:1.55}
#clusterInfoBody ul{margin:10px 0;padding-left:0;list-style:none}
#clusterInfoBody li{padding:6px 0;border-top:1px solid var(--line);font-size:13px}
#clusterInfoBody li:first-child{border-top:none}

/* Итог: у онбординга такого экрана нет — там сразу следующий шаг. */
.sp-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:16px 0 4px}
.sp-chip{padding:6px 11px;border-radius:999px;font-size:12.5px;font-weight:600;
  background:color-mix(in srgb,var(--green) 14%,transparent);color:var(--green)}
.sp-err-ic{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;margin:0 auto 20px;
  background:color-mix(in srgb,var(--red) 13%,transparent);color:var(--red)}
.sp-err-ic svg{width:30px;height:30px}

/* Запасной путь (profile_version 1): плоский список ролей.
   Раскладка — та же .rlist/.ritem, что в онбординге, класс вешает скрипт.
   Держать класс сетки прямо на #rolesGrid в разметке нельзя: основной путь
   (profile_version 2) монтирует туда СВОЮ разметку с собственным заголовком
   группы, и внешняя сетка разложила бы заголовок и карточки в две колонки
   рядом — ровно так страница и сломалась 20 августа. */
