/*
 * Мастер «Открыть бота» (задача 0012, зона В; минимум — задача 0016, зона В).
 * Числа формы — из прототипа web/demo/botscan.html (блок «ОТКРЫТЬ БОТА»):
 * карточка 14 с обводкой акцента, вложенные плашки 10–12 на --bg-app, главная
 * кнопка 220 × 14/24, чипы шагов-пилюли 4/10. Цвет — только токенами :root из
 * web/style.css, без литералов, rgb(from …) и color-mix (ловушки 5 и 8).
 *
 * Единый вид подписей (0016 §4 C): все подписи и пояснения — класс .wz-hint,
 * 13 px, --muted. Цвет действия (--accent) — кнопки, выбранное и строки, по
 * которым надо что-то сделать (.wz-act). Зелёный и красный — только слово
 * вердикта варианта, сумма «Заработал бы» и метка объёма пары (0180б).
 * Красных рамок нет.
 * Каждое правило прижато к #v-wizard.
 */

#v-wizard .wz-main { display: flex; flex-direction: column; gap: 16px; }
#v-wizard .wz-top { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
/* Заголовок экрана — как общий .h1 (задача 0031): 32px, до 419 px — 28px. */
#v-wizard .wz-h1 { margin: 0; font-size: 32px; line-height: 1.15; font-weight: 700; color: var(--text); letter-spacing: 0; text-transform: none; }
@media (max-width: 419px) { #v-wizard .wz-h1 { font-size: 28px; } }
#v-wizard .wz-steps { margin-left: auto; display: flex; gap: 6px; font-size: 13px; font-weight: 600; flex-wrap: wrap; }
#v-wizard .wz-step {
  padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line-strong);
  background: transparent; color: var(--muted); font: inherit; cursor: default;
}
#v-wizard .wz-step.on { background: var(--accent); color: var(--card); border-color: transparent; }
#v-wizard .wz-step.done { color: var(--text); cursor: pointer; }
/* 0157, Г: шаг впереди, на который уже можно (всё до него заполнено) */
#v-wizard .wz-step.go { color: var(--text); cursor: pointer; }

#v-wizard .wz-plates { display: flex; gap: 8px; flex-wrap: wrap; font-size: 13px; }
#v-wizard .wz-plates[hidden] { display: none; }
#v-wizard .wz-plate {
  padding: 8px 12px; border-radius: var(--radius-xs); background: var(--card); border: 1px solid var(--line);
  color: var(--text); font: inherit; cursor: pointer; white-space: nowrap; display: inline-flex; gap: 6px;
  align-items: center;
}
#v-wizard .wz-edit { color: var(--accent); }

#v-wizard .wz-body { display: flex; flex-direction: column; gap: 16px; }
#v-wizard .wz-card {
  background: var(--card); border: 1px solid var(--accent-border); border-radius: var(--radius);
  padding: 20px 22px; display: flex; flex-direction: column; gap: 14px; min-width: 0;
}
#v-wizard .wz-block { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
#v-wizard .wz-title { font-size: 17px; font-weight: 600; color: var(--text); }
/* Единственный вид подписи мастера; строка не шире --measure (0053, Р9) */
#v-wizard .wz-hint { margin: 0; font-size: 13px; font-weight: 400; line-height: 1.5; color: var(--muted); max-width: var(--measure, 72ch); }
#v-wizard .wz-hint.wz-act { color: var(--accent); }
/* Заголовок списка пар — белый (задача 0032, слово автора): все его варианты. */
#v-wizard .wz-hint.wz-list-head { color: var(--text); font-weight: 600; }

/* Кнопки: плоская жёлтая 220 × 14/24 и контурная вторая */
#v-wizard .wz-primary, #v-wizard .wz-second {
  min-width: 220px; padding: 14px 24px; border-radius: 10px; font: inherit; font-weight: 600; font-size: 15px;
  text-align: center; cursor: pointer;
}
#v-wizard .wz-primary { align-self: flex-start; background: var(--accent); color: var(--card); border: 0; margin-top: 6px; }
#v-wizard .wz-primary:hover { background: var(--accent-hover); }
#v-wizard .wz-primary[disabled] { opacity: .5; cursor: default; }
/* 0159, п.4: «Открыть на бирже» — ссылка в виде главной кнопки */
#v-wizard a.wz-primary { display: inline-block; box-sizing: border-box; text-decoration: none; }
#v-wizard .wz-second { background: transparent; border: 1px solid var(--line-strong); color: var(--text); margin-top: 6px; }
#v-wizard .wz-second:hover { border-color: var(--accent); color: var(--accent); }
#v-wizard .wz-foot { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
/* Итог шага 5: «На истории заработал бы …» и «Прибыль на сетку …» — кеглем
   основного текста, основным цветом, значения жирнее (правка автора 27.10);
   на телефоне переносятся по словам, без переполнения. */
#v-wizard .wz-final-line { margin: 0; font-size: 16px; line-height: 1.45; color: var(--text); overflow-wrap: anywhere; }
#v-wizard .wz-final-line b { font-weight: 700; font-variant-numeric: tabular-nums; }
/* Правка автора 27.10: кнопки блока «Не рекомендуем» и «Всё равно продолжить →»
   — полноразмерные (кегль и поля «Продолжить»), в один ряд слева; «Всё равно
   продолжить» отделена отступом. На телефоне — столбиком во всю ширину. */
#v-wizard .wz-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; justify-content: flex-start; margin-top: 6px; }
#v-wizard .wz-actions .wz-primary, #v-wizard .wz-actions .wz-second {
  min-width: 0; width: auto; flex: none; margin-top: 0; align-self: auto;
}
/* Одна высота в ряду: у главной рамки нет — прозрачная той же толщины */
#v-wizard .wz-actions .wz-primary { border: 1px solid transparent; }
#v-wizard .wz-actions .wz-anyway { margin-left: 14px; }
/* Пояснение «в плюс ничего не вышло» — одной строкой на десктопе, без 72ch */
#v-wizard .wz-hint.wz-rec-none { max-width: none; }

/* Шаг 1: поиск, переключатель бирж, строки пар */
#v-wizard .wz-row { display: flex; gap: 10px; }
#v-wizard .wz-search {
  flex: 1; display: flex; align-items: center; gap: 10px; min-width: 0; background: var(--bg-app);
  border: 1px solid var(--line-strong); border-radius: 10px; padding: 0 14px; font-size: 15px;
}
#v-wizard .wz-search.on, #v-wizard .wz-search:focus-within { border-color: var(--accent); }
#v-wizard .wz-lens { display: flex; align-items: center; flex: none; width: 20px; height: 20px; color: var(--muted); }
#v-wizard .wz-lens svg { width: 100%; height: 100%; }
#v-wizard .wz-search-inp {
  flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; color: var(--text);
  font: 500 15px var(--ff); padding: 12px 0;
}
#v-wizard .wz-clear { background: transparent; border: 0; color: var(--muted); font-size: 16px; cursor: pointer; }
/* Переключатель бирж (0157, В) — как тумблер .seg (web/style.css): обойма по
   содержимому, пилюля, кегль 12/600, активная сторона --accent-bg / --accent.
   Видимая кнопка 30 px; касание — во всём квадрате 44×44 вокруг центра,
   добором ::after (как .cur-btn), а не высотой кнопки. */
#v-wizard .wz-seg {
  display: inline-flex; flex: none; align-self: center; background: var(--bg-app); border: 1px solid var(--line-strong);
  border-radius: var(--pill); padding: 3px; gap: 0;
}
#v-wizard .wz-seg-b {
  position: relative; padding: 6px 12px; border-radius: var(--pill); border: 0; background: transparent; color: var(--muted);
  font: 600 12px/1.5 var(--ff); cursor: pointer; white-space: nowrap;
}
#v-wizard .wz-seg-b::after { content: ''; position: absolute; inset: -8px 0; }
#v-wizard .wz-seg-b.on { background: var(--accent-bg); color: var(--accent); }
#v-wizard .wz-miss b { color: var(--text); font-weight: 600; }
#v-wizard .wz-pairs { display: flex; flex-direction: column; gap: 6px; }
#v-wizard .wz-pair {
  display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 14px;
  padding: 10px 14px; border-radius: 10px; background: var(--bg-app); border: 1px solid var(--line);
  color: var(--text); font: inherit; text-align: left; cursor: pointer;
}
#v-wizard .wz-pair:hover, #v-wizard .wz-pair.on { border-color: var(--accent); }

/* Задача 0172: скелет списка идей, пока /pairs не ответил или идеи ещё
   проверяются. Строки — высотой как .wz-pair (36 + 2 × 10 + рамка). */
#v-wizard .wz-skel { display: flex; flex-direction: column; gap: 6px; }
#v-wizard .wz-skel-row {
  height: 58px; border-radius: 10px; background: var(--bg-app); border: 1px solid var(--line);
  animation: wz-pulse 1.4s ease-in-out infinite;
}
#v-wizard .wz-skel-row:nth-child(2) { animation-delay: .15s; }
#v-wizard .wz-skel-row:nth-child(3) { animation-delay: .3s; }
#v-wizard .wz-skel-text { margin: 4px 0 0; }
@keyframes wz-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }

/* Задача 0172: индикатор счёта шага 4 — бегущий отрезок без процентов. */
#v-wizard .wz-wait[data-wz-loading] { display: flex; flex-direction: column; align-items: center; }
#v-wizard .wz-bar { position: relative; height: 4px; margin: 10px auto; width: 100%; max-width: 320px; border-radius: 2px; background: var(--line); overflow: hidden; }
#v-wizard .wz-bar > span {
  position: absolute; top: 0; bottom: 0; left: 0; width: 35%; border-radius: 2px; background: var(--accent);
  animation: wz-run 1.2s ease-in-out infinite;
}
@keyframes wz-run { 0% { transform: translateX(-100%); } 100% { transform: translateX(290%); } }
#v-wizard .wz-elapsed, #v-wizard .wz-long { margin: 4px 0 0; }
@media (prefers-reduced-motion: reduce) {
  #v-wizard .wz-skel-row, #v-wizard .wz-bar > span { animation: none; }
  #v-wizard .wz-bar > span { width: 100%; opacity: .5; }
}
#v-wizard .wz-mono {
  width: 36px; height: 36px; border-radius: 50%; background: var(--mono-chip); display: grid; place-items: center;
  font: 600 9px var(--ff-mono); color: var(--text);
}
#v-wizard .wz-pair-who { display: flex; flex-direction: column; min-width: 0; }
#v-wizard .wz-pair-line { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
#v-wizard .wz-pair-line b { font-size: 15px; font-weight: 600; }
/* 0180б: метка объёма справа от названия и биржи — цветом уровня (правило
   автора 28.10): не рекомендуем — красным, проскальзывание — жёлтым,
   рекомендуем — зелёным. На узком экране переносится целиком. */
#v-wizard .wz-vol { font-size: 13px; line-height: 1.3; font-weight: 500; }
#v-wizard .wz-vol-low { color: var(--red); }
#v-wizard .wz-vol-mid { color: var(--accent); }
#v-wizard .wz-vol-ok { color: var(--green); }
/* 0019 §5.1: стратегия идеи — второй строкой, цветом текста: это то, с чем бот запустится */
#v-wizard .wz-pair-strat { color: var(--text); }
/* Метки «Pionex», «идея», «советуем» — серые плашки: действия они не требуют */
#v-wizard .wz-ex, #v-wizard .wz-tag {
  font-size: 13px; line-height: 1.3; padding: 1px 6px; border-radius: 4px; background: var(--line); color: var(--muted); font-weight: 400;
}
/* 0017 §3.4: балл справа — число над словом силы, как список пар прототипа */
#v-wizard .wz-score { display: flex; flex-direction: column; align-items: flex-end; min-width: 72px; text-align: right; white-space: nowrap; }
#v-wizard .wz-score-n { font-size: 20px; font-weight: 700; line-height: 1; }
/* Правка автора 27.10: шкала балла «/100» — мельче и тусклее числа */
#v-wizard .wz-score-of { font-size: 13px; font-weight: 600; color: var(--muted); }
#v-wizard .wz-score-w { font-size: 11px; font-weight: 600; margin-top: 2px; }
/* Решение владельца 27.10.2026: «сильная» — зелёным (успех), «хорошая» — акцентом, «средняя» — серым */
#v-wizard .wz-score-strong { color: var(--green); }
#v-wizard .wz-score-good { color: var(--accent); }
#v-wizard .wz-score-medium { color: rgba(231, 234, 240, .6); }
#v-wizard .wz-bang { font-weight: 700; }

/* Шаг 2: стратегия — тип бота и характер, по одной строке на карточку */
#v-wizard .wz-label { font-size: 15px; font-weight: 600; color: var(--text); display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
#v-wizard .wz-types { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
#v-wizard .wz-type, #v-wizard .wz-level {
  padding: 14px 16px; border-radius: var(--radius-field); background: var(--bg-app); border: 1px solid var(--line);
  color: var(--text); font: inherit; text-align: left; cursor: pointer; display: flex; flex-direction: column; gap: 6px; min-width: 0;
}
#v-wizard .wz-type.on, #v-wizard .wz-level.on { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-bg); }
#v-wizard .wz-type.on .wz-type-h b, #v-wizard .wz-level.on .wz-level-t { color: var(--accent); }
#v-wizard .wz-type.off { opacity: .5; }
#v-wizard .wz-type-h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
#v-wizard .wz-type-h b, #v-wizard .wz-level-t { font-size: 15px; font-weight: 600; }
#v-wizard .wz-levels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
#v-wizard .wz-levels.n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Шаг 3: сумма и не больше одной строки */
#v-wizard .wz-amount {
  display: flex; align-items: stretch; background: var(--bg-app); border: 1px solid var(--line-strong);
  border-radius: var(--radius-field); overflow: hidden; max-width: 560px; height: 56px;
}
#v-wizard .wz-amount:focus-within { border-color: var(--accent); }
#v-wizard .wz-amount-l { display: flex; align-items: center; gap: 4px; padding: 0 18px; flex: 1; min-width: 0; }
#v-wizard .wz-cur { color: var(--muted); font-size: 26px; font-weight: 700; }
#v-wizard .wz-amount-inp {
  flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; color: var(--text);
  font: 700 28px var(--ff); letter-spacing: -.01em;
}
#v-wizard .wz-amount-r { display: flex; align-items: center; gap: 4px; padding: 0 8px; border-left: 1px solid var(--line); }
#v-wizard .wz-amount-o {
  padding: 7px 12px; border-radius: var(--radius-xs); border: 0; background: transparent; color: var(--muted);
  font: inherit; font-size: 13px; font-weight: 600; cursor: pointer;
}
#v-wizard .wz-amount-o:hover { background: var(--line); }
#v-wizard .wz-amount-o.on { background: var(--accent); color: var(--card); }

/* Шаг 4: график выбранного варианта и три варианта */
#v-wizard .wz-wait { padding: 30px; text-align: center; }
#v-wizard .wz-chart { background: var(--bg-app); border-radius: var(--radius-field); padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
#v-wizard .wz-legend { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; }
#v-wizard .wz-legend > b { font-size: 15px; font-weight: 600; color: var(--text); }
#v-wizard .wz-chart-box { width: 100%; height: 300px; }
#v-wizard .wz-chart-svg { display: block; width: 100%; height: 100%; }
#v-wizard .wz-chart-svg .zone { fill: var(--accent-bg); opacity: .3; }
#v-wizard .wz-chart-svg .lvl { stroke: var(--line); stroke-width: 1; }
#v-wizard .wz-chart-svg .edge { stroke: var(--accent); stroke-dasharray: 5 4; stroke-width: 1.2; }
#v-wizard .wz-chart-svg .edge-t { fill: var(--accent); font: 600 12px var(--ff-mono); }
#v-wizard .wz-chart-svg .edge-l { fill: var(--accent); font-size: 12px; }
#v-wizard .wz-chart-svg .wick { stroke-width: 1; opacity: .55; }
#v-wizard .wz-chart-svg .body { opacity: .6; }
#v-wizard .wz-chart-svg .up { stroke: var(--green); fill: var(--green); }
#v-wizard .wz-chart-svg .down { stroke: var(--red); fill: var(--red); }
#v-wizard .wz-chart-svg .fill { stroke: var(--bg-app); stroke-width: 1; }
#v-wizard .wz-chart-svg .fill.sell { fill: var(--green); }
#v-wizard .wz-chart-svg .fill.buy { fill: var(--text); }
/* Задача 0066, Р4: подписи SVG — 12px на любой ширине (правило 0053, кегль ≥ 12) */
#v-wizard .wz-chart-svg .axis { fill: var(--muted); font-size: 12px; }
#v-wizard .wz-variants { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
#v-wizard .wz-variants.n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* 0020 §5.2: все варианты в минусе — заголовок крупнее подписи, цветом действия (0016 §4 C): по нему надо действовать */
#v-wizard .wz-losing-title { margin: 4px 0 0; font-size: 15px; font-weight: 600; line-height: 1.4; color: var(--accent); }
#v-wizard .wz-variant {
  background: var(--bg-app); border: 1px solid var(--line); border-radius: var(--radius-field); padding: 14px 16px;
  display: flex; flex-direction: column; gap: 6px; color: var(--text); font: inherit; text-align: left; cursor: pointer; min-width: 0;
}
#v-wizard .wz-variant:hover, #v-wizard .wz-variant.on { border-color: var(--accent); }
#v-wizard .wz-variant.on { box-shadow: 0 0 0 3px var(--accent-bg); }
#v-wizard .wz-vh { display: flex; align-items: center; gap: 10px; font-size: 15px; }
#v-wizard .wz-vh .wz-tag { margin-left: auto; }
#v-wizard .radio { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--line-strong); flex: none; }
#v-wizard .wz-variant.on .radio { border-color: var(--accent); background: radial-gradient(circle, var(--accent) 0 4px, transparent 5px); }
/* Цвет данных прогона — только слово вердикта и сумма «Заработал бы» (§4 C) */
#v-wizard .wz-vword { font-size: 15px; font-weight: 600; color: var(--text); }
#v-wizard .wz-vword.survived { color: var(--green); }
#v-wizard .wz-vword.failed { color: var(--red); }
#v-wizard .wz-vline b { font-weight: 600; }
#v-wizard .wz-vline b.pos { color: var(--green); }
#v-wizard .wz-vline b.neg { color: var(--red); }

/* Задача 0066, Р5: подсказка «спот вместо лонга 1×» на шагах 3–5 — плашка с
   обводкой акцента (по ней надо действовать) и кнопкой «Сделать спот-сеткой» */
#v-wizard .wz-spot-instead {
  display: flex; flex-direction: column; gap: 8px; padding: 12px 14px;
  background: var(--bg-app); border: 1px solid var(--accent-border); border-radius: var(--radius-field);
}
#v-wizard .wz-spot-instead .wz-second { align-self: flex-start; margin-top: 0; }

/* Шаг 5: поля формы биржи и одна строка под кнопками */
#v-wizard .wz-final { background: var(--bg-app); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
#v-wizard .wz-final-row {
  display: grid; grid-template-columns: minmax(0, 1fr) auto 36px; align-items: center; gap: 14px;
  padding: 12px 18px; border-bottom: 1px solid var(--line);
}
#v-wizard .wz-final-row:last-child { border-bottom: 0; }
#v-wizard .wz-fk { display: flex; flex-direction: column; min-width: 0; }
#v-wizard .wz-final-row .v { font: 600 18px var(--ff-mono); letter-spacing: -.01em; text-align: right; overflow-wrap: anywhere; color: var(--text); }
#v-wizard .wz-copy {
  width: 30px; height: 30px; border-radius: var(--radius-xs); border: 1px solid var(--line-strong); background: transparent;
  color: var(--muted); font-size: 13px; cursor: pointer; display: grid; place-items: center; position: relative;
}
/* Значок «две страницы» рамками: в IBM Plex нет глифа ⧉, вместо него квадрат */
#v-wizard .wz-copy::before, #v-wizard .wz-copy::after {
  content: ''; position: absolute; width: 9px; height: 10px; border: 1.5px solid currentColor; border-radius: 2px;
}
#v-wizard .wz-copy::before { left: 8px; top: 7px; opacity: .6; }
#v-wizard .wz-copy::after { left: 11px; top: 10px; background: var(--card); }
#v-wizard .wz-copy:hover { border-color: var(--accent); color: var(--accent); }

#v-wizard button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Телефон и планшет (до 899, шкала задачи 0053): всё в одну колонку, график
   во всю ширину высотой 220, кнопки во всю ширину */
@media (max-width: 899px) {
  #v-wizard .wz-steps { margin-left: 0; }
  #v-wizard .wz-plate { white-space: normal; max-width: 100%; text-align: left; flex-wrap: wrap; }
  #v-wizard .wz-card { padding: 16px 14px; }
  #v-wizard .wz-row { flex-direction: column; }
  #v-wizard .wz-seg { align-self: flex-start; }
  #v-wizard .wz-pair { gap: 10px; }
  #v-wizard .wz-amount { height: auto; flex-direction: column; }
  #v-wizard .wz-amount-l { height: 56px; }
  #v-wizard .wz-amount-r { border-left: 0; border-top: 1px solid var(--line); padding: 6px 12px; justify-content: flex-start; gap: 8px; }
  #v-wizard .wz-types, #v-wizard .wz-levels, #v-wizard .wz-levels.n4, #v-wizard .wz-variants, #v-wizard .wz-variants.n4 { grid-template-columns: minmax(0, 1fr); }
  #v-wizard .wz-chart { padding: 10px; }
  #v-wizard .wz-chart-box { height: 220px; }
  #v-wizard .wz-final-row { grid-template-columns: minmax(0, 1fr) 30px; gap: 10px; padding: 12px; }
  #v-wizard .wz-final-row .v { grid-column: 1 / 2; text-align: left; font-size: 16px; }
  #v-wizard .wz-final-row .wz-copy { grid-row: 1 / 3; grid-column: 2; }
  #v-wizard .wz-primary, #v-wizard .wz-second { flex: 1 1 100%; min-width: 0; width: 100%; }
  /* Ряд кнопок блока «Не рекомендуем» — столбиком, каждая во всю ширину (правка автора 27.10) */
  #v-wizard .wz-actions { flex-direction: column; }
  #v-wizard .wz-actions .wz-primary, #v-wizard .wz-actions .wz-second { width: 100%; }
  #v-wizard .wz-actions .wz-anyway { margin-left: 0; }
}

/* ── Задача 0053: цели тапа до 899 (Р5) ─────────────────────────────────────
   Каждый интерактивный элемент мастера ловит касание во всём квадрате 44×44
   вокруг своего центра: кнопки и плашки получают min-height, квадратные
   значки — 44×44. От 900 размеры не меняются. */
@media (max-width: 899px) {
  #v-wizard .wz-step,
  #v-wizard .wz-plate,
  #v-wizard .wz-clear,
  #v-wizard .wz-copy { min-height: 44px; min-width: 44px; }
  #v-wizard .wz-final-row { grid-template-columns: minmax(0, 1fr) 48px; }
  /* Возврат 0053, п.2. Углы квадрата 44 лежат в 1 px от края кнопки 44×44 и
     попадали за скругление радиуса 8 — касание в угол уходило мимо.
     Поле суммы — ростом 44. Кнопки суммы — квадратный добор ::after на 1 px
     за край (как .bb-close в разборе). У «Копировать» оба псевдоэлемента
     рисуют значок, добора нет — кнопка 48×48: угол квадрата 44 в 3 px от края
     уже внутри скругления. */
  #v-wizard .wz-amount-inp { min-height: 44px; }
  /* Правка автора 28.10: варианты суммы на телефоне мельче поля — видимая
     кнопка 32 px, касание по-прежнему 44×44 за счёт добора ::after. */
  #v-wizard .wz-amount-o { position: relative; min-height: 32px; min-width: 44px; padding: 4px 12px; font-size: 12px; }
  #v-wizard .wz-amount-o::after { content: ''; position: absolute; inset: -7px -1px; }
  /* 0157, Г: кружок шага бывает кнопкой и впереди. Узкая пилюля 600–899
     («5 Итог», 61×44, радиус 22) — углы квадрата 44 за скруглением; тот же
     квадратный добор, что у круга до 599 (правило ниже — его частный случай). */
  #v-wizard .wz-step { position: relative; }
  #v-wizard .wz-step::after { content: ''; position: absolute; inset: -1px; }
  #v-wizard .wz-copy { min-height: 48px; min-width: 48px; }
  /* Значок «две страницы» — по центру квадрата 48 (было 30) */
  #v-wizard .wz-copy::before { left: 17px; top: 16px; }
  #v-wizard .wz-copy::after { left: 20px; top: 19px; }
}

/* ── Задача 0053: кегль до 899 не меньше 12 (Р6) ────────────────────────────
   Монограмма пары (9), слово силы под баллом, подписи осей и края коридора
   графика (11) — 12 на телефоне и планшете. От 900 — как было. */
@media (max-width: 899px) {
  #v-wizard .wz-mono,
  #v-wizard .wz-score-w,
  #v-wizard .wz-chart-svg .axis,
  #v-wizard .wz-chart-svg .edge-l { font-size: 12px; }
}

/* ── Задача 0053: блоки компактнее на телефоне (Р7) ─────────────────────────
   До 599: карточка мастера 14×14, зазоры между блоками — общий --gap-card
   (12 на телефоне), вложенный график без своих полей по бокам. */
@media (max-width: 599px) {
  #v-wizard .wz-main,
  #v-wizard .wz-body { gap: var(--gap-card, 12px); }
  #v-wizard .wz-card { padding: 14px; }
  #v-wizard .wz-chart { padding: 10px 0; background: transparent; }
  /* Задача 0066, Р2: холст в размер коробки — на 320 ширины 240 высоты */
  #v-wizard .wz-chart-box { height: 240px; }
}

/* ── Задача 0060, Р2 и Р3: шаги в один ряд и заголовок 24 на телефоне ─────
   До 599 неактивный шаг — круг 44×44 с номером (имя шага в aria-label и
   title, видимое имя скрыто), активный — номер и имя. Пять шагов на 360:
   4 × 44 + активный ≈ 110 + зазоры ≈ 310 из 336. Заголовок экрана — 24, как
   общий .h1 до 599. От 600 — как в v78. */
@media (max-width: 599px) {
  #v-wizard .wz-h1 { font-size: 24px; }
  #v-wizard .wz-steps { flex-wrap: nowrap; max-width: 100%; }
  /* Пробел в начале имени шага флекс съедает — зазор номера и имени gap */
  #v-wizard .wz-step { display: inline-flex; align-items: center; justify-content: center; gap: 4px; flex: none; white-space: nowrap; }
  #v-wizard .wz-step:not(.on) { width: 44px; height: 44px; padding: 0; border-radius: 50%; }
  #v-wizard .wz-step:not(.on) .wz-name { display: none; }
  /* Углы квадрата касания 44 лежат за скруглением круга — квадратный добор
     поверх (как .wz-amount-o, возврат 0053, п.2) */
  #v-wizard .wz-step { position: relative; }
  #v-wizard .wz-step::after { content: ''; position: absolute; inset: -1px; }
}

/* Добавка автора к 0163: расчёт сетки на шаге 3 — «подпись — значение»
   сеткой 2–3 колонки мелким кеглем; на телефоне столбиком. */
/* Расчёт сетки на шаге 3 (правка автора 27.10): табличка как карточки метрик
   экрана бота — подпись мелким серым над значением, значение крупнее; ровные
   интервалы, 3 колонки на десктопе, 2 до 899, 1 на телефоне. */
#v-wizard .wz-calc { display: flex; flex-direction: column; gap: 12px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius-field); background: var(--bg-app); }
#v-wizard .wz-calc-h { color: var(--text); font-weight: 600; font-size: 15px; }
#v-wizard .wz-calc-g { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 24px; margin: 0; }
#v-wizard .wz-calc-i { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
#v-wizard .wz-calc-k { color: var(--muted); margin: 0; font-size: 12px; line-height: 1.35; }
#v-wizard .wz-calc-v { color: var(--text); margin: 0; font-size: 16px; font-weight: 600; line-height: 1.3; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
/* Плечо (правка автора 27.10): строка «Плечо 2× ✎» — кнопка целиком, карандаш
   рядом со значением; выбор — окно «Кредитное плечо» с одинаковыми кнопками. */
#v-wizard .wz-lev-row {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0;
  /* отступ + рамка = вынос (6/8): подпись и значение — по линиям соседних плиток */
  margin: -6px -8px; padding: 5px 7px; border: 1px solid transparent; border-radius: var(--radius-xs);
  background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer;
}
#v-wizard .wz-lev-row:hover, #v-wizard .wz-lev-row[aria-expanded="true"] { border-color: var(--line-strong); }
#v-wizard .wz-lev-v { display: inline-flex; align-items: center; gap: 6px; }
#v-wizard .wz-pencil { display: inline-block; width: 16px; height: 16px; color: var(--accent); flex: none; }
#v-wizard .wz-pencil svg { display: block; width: 100%; height: 100%; }
#v-wizard .wz-modal-wrap { position: fixed; inset: 0; z-index: 75; display: grid; place-items: center; padding: 16px; }
#v-wizard .wz-modal-bg { position: absolute; inset: 0; background: rgba(5, 9, 20, .72); }
#v-wizard .wz-modal {
  position: relative; width: min(420px, 100%); display: flex; flex-direction: column; gap: 16px; padding: 18px 20px 20px;
  background: var(--card); border: 1px solid var(--line-strong); border-radius: var(--radius);
}
#v-wizard .wz-modal-h { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
#v-wizard .wz-modal-t { margin: 0; font-size: 17px; font-weight: 600; color: var(--text); }
#v-wizard .wz-modal-x {
  position: relative; width: 36px; height: 36px; display: grid; place-items: center; border: 0; border-radius: var(--radius-xs);
  background: transparent; color: var(--muted); font-size: 16px; cursor: pointer;
}
#v-wizard .wz-modal-x::after { content: ''; position: absolute; inset: -4px; }
#v-wizard .wz-lev-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
#v-wizard .wz-lev-opt {
  min-height: 48px; padding: 0 6px; border: 1px solid var(--line-strong); border-radius: var(--radius-xs);
  background: transparent; color: var(--text); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer;
}
#v-wizard .wz-lev-opt:hover { border-color: var(--accent); }
#v-wizard .wz-lev-opt.on { border-color: var(--accent); background: var(--accent-bg); color: var(--accent); }
@media (max-width: 899px) { #v-wizard .wz-calc-g { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { #v-wizard .wz-calc { padding: 14px; } #v-wizard .wz-calc-g { grid-template-columns: minmax(0, 1fr); gap: 12px; } }
