#saveMsg { color: var(--ok); }

/* редактор шага (карточки как в макете) */
.ed-head { display: flex; align-items: center; gap: 12px; }
.ed-title { flex: 1; min-width: 0; }
.ed-sub { color: var(--muted); font-size: 11px; font-weight: 600;
          text-transform: uppercase; letter-spacing: .06em; }
.ed-name { background: transparent; border: none; font-size: 19px; font-weight: 700;
           padding: 2px 0; width: 100%; border-radius: 0; }
.ed-name:focus { outline: none; box-shadow: none; border-bottom: 1px solid var(--accent); }
.ed-card { background: var(--panel-2); border: 1px solid var(--border);
           border-radius: 14px; padding: 16px; margin-top: 14px; }
.ed-card > label:first-child { margin-top: 0; }
.ed-menu { position: relative; }
/* редактор уже ~520px (ноутбук, панель на карте): название шага сжималось до двух букв —
   прячем декоративную «Активен», «История» остаётся значком */
#editor { container: ed / inline-size; }
@container ed (max-width: 520px) {
  .ed-head { gap: 8px; }
  .ed-head .badge-on, .ed-head .hs-open span { display: none; }
  .ed-name { font-size: 17px; }
}
/* узкий телефон: шапка не влезает — прячем декоративную метку «Активен», «История» остаётся значком */
@media (max-width: 430px) {
  .ed-head { gap: 8px; }
  .ed-head .badge-on { display: none; }
}

/* «Удалить шаг»: что сделать с напоминаниями шага (окно общее для «Шагов» и «Карты») */
.sd .sd-opts { border: 0; margin: 14px 0 0; padding: 0; min-width: 0; display: grid; gap: 8px; }
.sd .sd-opts legend { padding: 0; margin: 0 0 8px; font-size: 13.5px; font-weight: 600; color: var(--text); line-height: 1.4; }
.modal .sd label.sd-opt { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 10px 12px; min-height: 44px;
  border: 1px solid var(--border); border-radius: 12px; background: var(--panel-2); cursor: pointer;
  text-transform: none; letter-spacing: normal; font-size: 13.5px; font-weight: 500; color: var(--text);
  transition: border-color .15s, background-color .15s; }
.modal .sd label.sd-opt:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
.modal .sd label.sd-opt:has(input[value="delete"]:checked) {
  border-color: color-mix(in srgb, var(--danger) 60%, var(--border)); background: color-mix(in srgb, var(--danger) 9%, transparent); }
.modal .sd label.sd-opt input { width: 18px; height: 18px; margin: 1px 0 0; padding: 0; flex: none; accent-color: var(--accent); }
.sd label.sd-opt > span { display: grid; gap: 2px; min-width: 0; }
.sd label.sd-opt small { color: var(--text-dim); font-size: 12px; font-weight: 400; line-height: 1.4; }
.modal .sd #sdTo { margin: 0; }
@media (max-width: 820px) {
  .modal .sd #sdTo { font-size: 16px; min-height: 44px; }
  .sd .mact button { min-height: 44px; }
}

/* счётчик под текстом ошибки проверки: «N / 1024 с фото», окно без фото — «N / 200» */
.fail-cnt { display: flex; justify-content: flex-end; margin-top: 4px; }
