/* Старые экраны витрины (решения, задачи, косяки, отчёт парка). Только var(--ds-*)
   из tokens.css; новые экраны собираются из компонентов ds.css. */

* { box-sizing: border-box; }

html { background: var(--ds-bg); }

body {
  margin: 0;
  background: var(--ds-bg);
  color: var(--ds-ink);
  font: 14px/1.5 var(--ds-font);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3 { font-family: var(--ds-font); font-weight: 600; margin: 0; letter-spacing: -.01em; }

a { color: var(--ds-ink); text-decoration: underline; text-decoration-color: var(--ds-line); text-underline-offset: 2px; }
a:hover { text-decoration-color: var(--ds-ink); }

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
label:focus-within > input[type=checkbox] {
  outline: 2px solid var(--ds-accent);
  outline-offset: 2px;
}

code, .mono { font-family: var(--ds-mono); font-size: var(--ds-fs-label); }
.nums { font-variant-numeric: tabular-nums; }
.js-only { display: none; }
.js .js-only { display: inline-flex; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 8px 28px;
  flex-wrap: wrap;
  padding: 12px 24px;
  background: var(--ds-bg);
  border-bottom: 1px solid var(--ds-line);
}

.topbar__brand {
  font-family: var(--ds-font);
  font-size: var(--ds-fs-body);
  font-weight: 600;
  color: var(--ds-ink);
  text-decoration: none;
}

.topbar__nav { display: flex; gap: 20px; flex-wrap: wrap; }

.topbar__link {
  color: var(--ds-ink-2);
  text-decoration: none;
  font-size: 14px;
  padding: 10px 0;
  border-bottom: 2px solid transparent;
}

.topbar__link:hover { color: var(--ds-ink); }
.topbar__link--on { color: var(--ds-ink); border-bottom-color: var(--ds-accent); }

.topbar__who {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ds-ink-2);
  font-size: var(--ds-fs-label);
}

.page {
  max-width: 1040px;
  margin: 0 auto;
  /* Низ ≥ высоты липкой панели решений (.bar, ~150px) + 24px: иначе блок
     «На подумать» последнего кабинета прячется под панелью. */
  padding: 28px 24px 180px;
}

.head { margin-bottom: 24px; }

.head__eyebrow {
  margin: 0;
  font-size: var(--ds-fs-label);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ds-ink-2);
}

.head__eyebrow a { color: var(--ds-ink-2); }
.head__title { margin: 4px 0 0; font-size: var(--ds-fs-title); line-height: 1.15; }
.head__lede { margin: 10px 0 0; max-width: 64ch; color: var(--ds-ink-2); font-size: var(--ds-fs-body); }
.head__lede strong { color: var(--ds-ink); font-weight: 600; }
.head__actions { margin: 14px 0 0; }

.head__facts {
  margin: 12px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  font-size: 14px;
  color: var(--ds-ink-2);
}

.head__facts b { color: var(--ds-ink); font-weight: 600; }

.head__ids {
  margin: 8px 0 0;
  font-family: var(--ds-mono);
  font-size: var(--ds-fs-label);
  color: var(--ds-ink-2);
  word-break: break-all;
}

.panel {
  background: var(--ds-surface-2);
  border: 1px solid var(--ds-line);
  border-radius: var(--ds-radius-s);
  padding: 18px 20px;
  margin-bottom: 16px;
}

.panel--quiet { background: var(--ds-bg); }
.panel--sunk { background: var(--ds-surface-2); }
.panel__title { font-size: var(--ds-fs-stat-row); margin: 0 0 6px; }
.panel__note { margin: 0 0 12px; color: var(--ds-ink-2); max-width: 72ch; }
.panel__note:last-child { margin-bottom: 0; }

.section { margin: 28px 0 0; }

.section__head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--ds-line);
}

.section__title { font-size: var(--ds-fs-stat-row); }
.section__count { font-size: var(--ds-fs-label); color: var(--ds-ink-2); font-variant-numeric: tabular-nums; }
.section__note { margin: 10px 0 0; color: var(--ds-ink-2); max-width: 72ch; }

.figures { display: flex; flex-wrap: wrap; gap: 6px 28px; margin: 12px 0 0; }
.figure { min-width: 0; }
.figure__label { font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.figure__value { margin: 0; font-size: var(--ds-fs-body); font-weight: 600; font-variant-numeric: tabular-nums; }
.figure__note { display: block; margin-top: 2px; max-width: 46ch; font-size: var(--ds-fs-label); font-weight: 400; color: var(--ds-ink-2); }
.figures--lead { gap: 8px 34px; margin-top: 0; }
.figures--lead .figure__value { font-size: var(--ds-fs-stat-row); }
.figure--ok .figure__value { color: var(--ds-accent); }
.figure--warn .figure__value { color: var(--ds-warn); }
.figure--bad .figure__value { color: var(--ds-danger); }

.marks { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }

.mark {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  padding: 1px 8px;
  border: 1px solid var(--ds-line);
  border-radius: 3px;
  font-size: var(--ds-fs-label);
  color: var(--ds-ink-2);
  white-space: nowrap;
  background: var(--ds-bg);
}

.mark__label { letter-spacing: .06em; text-transform: uppercase; font-size: 10px; }
.mark--ok { color: var(--ds-accent); border-color: var(--ds-accent); }
.mark--warn { color: var(--ds-warn); border-color: var(--ds-warn); }
.mark--bad { color: var(--ds-danger); border-color: var(--ds-danger); }
.mark--strong { color: var(--ds-ink); border-color: var(--ds-ink); }

.notice {
  margin: 10px 0 0;
  padding: 8px 12px;
  border-left: 3px solid var(--ds-line);
  background: var(--ds-surface-2);
  border-radius: 0 4px 4px 0;
  color: var(--ds-ink-2);
}

.notice--ok { border-left-color: var(--ds-accent); color: var(--ds-ink); }
.notice--warn { border-left-color: var(--ds-warn); color: var(--ds-ink); }
.notice--bad { border-left-color: var(--ds-danger); color: var(--ds-ink); }
.notice--strong { border-left-color: var(--ds-ink); color: var(--ds-ink); }

.projects { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ds-line); }

.project {
  display: flex;
  align-items: center;
  gap: 12px 24px;
  flex-wrap: wrap;
  padding: 16px 0;
  border-bottom: 1px solid var(--ds-line);
}

.project__name { font-family: var(--ds-font); font-size: var(--ds-fs-stat-row); text-decoration: none; }
.project__name:hover { text-decoration: underline; }
.project__id { margin-left: 8px; font-family: var(--ds-mono); font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.project__facts { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; font-variant-numeric: tabular-nums; }
.project__fact--zero { color: var(--ds-ink-2); }
.project__fact--warn { color: var(--ds-warn); }
.project__fact--red { color: var(--ds-danger); }
.project__go { margin-left: auto; }
.project--quiet .project__name { color: var(--ds-ink-2); }

/* Стоянки перезапусков на «Ждут вас». Стоят ВЫШЕ версий под гейтом: версия
   ждёт решения по будущему, а стоянка — по уже начатой работе в кабинете. */
.stands { margin: 0 0 24px; }
.stands__title { margin: 0 0 6px; font-size: var(--ds-fs-stat-row); }
.stands__lede { margin: 0 0 10px; max-width: 72ch; color: var(--ds-ink-2); }
.stands__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.stands__row {
  display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 14px;
  padding: 10px 14px;
  background: var(--ds-surface-2);
  border: 1px solid var(--ds-line);
  border-left: 3px solid var(--ds-warn);
  border-radius: var(--ds-radius-s);
}
/* Полоска слева — ВЕС ожидания, а не наличие беды: ждут владельца все эти
   строки, но стоянка третьих суток звучит громче сегодняшней. */
.stands__row--bad { border-left-color: var(--ds-danger); }
.stands__campaign { font-weight: 600; }
.stands__words { color: var(--ds-danger); }
.stands__where { font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.stands__waiting { font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.stands__door { margin-left: auto; color: var(--ds-accent); font-weight: 600; }
/* Перезапуски, которые машина восстанавливает сама: владельца не зовут,
   поэтому ни красного текста, ни полоски ожидания. */
.stands--calm { margin-top: 18px; }
.stands--calm .stands__row { border-left-color: var(--ds-line); }
.stands--calm .stands__words { color: var(--ds-ink); }

.queue { list-style: none; margin: 0; padding: 0; }
.queue__item { margin-bottom: 12px; }

.entry {
  position: relative;
  display: block;
  padding: 16px 18px;
  background: var(--ds-surface-2);
  border: 1px solid var(--ds-line);
  border-left: 3px solid var(--ds-line);
  border-radius: var(--ds-radius-s);
  color: inherit;
  text-decoration: none;
}

.entry:hover .entry__title { text-decoration: underline; }
.entry--warn { border-left-color: var(--ds-warn); }
.entry--bad { border-left-color: var(--ds-danger); }
.entry__top { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.entry__title { font-size: var(--ds-fs-stat-row); }
.entry__age { margin-left: auto; font-size: var(--ds-fs-label); white-space: nowrap; color: var(--ds-ink-2); }
.entry__age--warn { color: var(--ds-warn); }
.entry__age--bad { color: var(--ds-danger); }
.entry__where { margin: 6px 0 0; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 14px; color: var(--ds-ink-2); }
.entry__where b { color: var(--ds-ink); font-weight: 600; }
.entry__lede { margin: 10px 0 0; max-width: 72ch; }

.entry__foot {
  margin: 12px 0 0;
  padding-top: 10px;
  border-top: 1px solid var(--ds-line);
  display: flex;
  align-items: baseline;
  gap: 6px 16px;
  flex-wrap: wrap;
  font-size: var(--ds-fs-label);
  color: var(--ds-ink-2);
}

.entry__go { margin-left: auto; color: var(--ds-accent); font-weight: 600; }

.entry__dump,
.dump {
  margin: 10px 0 0;
  padding: 10px 12px;
  background: var(--ds-bg);
  border: 1px solid var(--ds-line);
  border-radius: var(--ds-radius-s);
  font-family: var(--ds-mono);
  font-size: var(--ds-fs-label);
  line-height: 1.5;
  white-space: pre-wrap;
  color: var(--ds-ink-2);
  overflow-x: auto;
}

.case {
  padding: 16px 18px;
  background: var(--ds-bg);
  border: 1px solid var(--ds-line);
  border-radius: var(--ds-radius-s);
  margin-top: 12px;
}

.case--warn { border-left: 3px solid var(--ds-warn); }
.case--bad { border-left: 3px solid var(--ds-danger); }
.case--ok { border-left: 3px solid var(--ds-accent); }
.case__head { display: flex; align-items: flex-start; gap: 14px; }
.case__naming { min-width: 0; }

.case__ordinal {
  flex: 0 0 auto;
  min-width: 30px;
  padding: 2px 0;
  text-align: center;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: var(--ds-ink-2);
  border: 1px solid var(--ds-line);
  border-radius: 3px;
}

.case__title { font-size: var(--ds-fs-body); line-height: 1.3; }
.case__subtitle { margin: 3px 0 0; font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.case__marks { margin-top: 12px; }

.chain { list-style: none; margin: 16px 0 0; padding: 2px 0 2px 20px; border-left: 1px solid var(--ds-line); }
.chain--after { margin-top: 14px; }
.chain__link { position: relative; padding-bottom: 14px; }
.chain__link:last-child { padding-bottom: 0; }

.chain__link::before {
  content: "";
  position: absolute;
  left: -24px;
  top: 6px;
  width: 7px;
  height: 7px;
  background: var(--ds-bg);
  border: 1px solid var(--ds-ink-2);
}

.chain__link--rule::before,
.chain__link--conclusion::before { background: var(--ds-ink-2); }
.chain__link--refutation::before { transform: rotate(45deg); border-color: var(--ds-warn); }
.chain__link--ok::before { border-color: var(--ds-accent); background: var(--ds-accent); }
.chain__link--bad::before { border-color: var(--ds-danger); background: var(--ds-danger); }
.chain__link--warn::before { border-color: var(--ds-warn); }
.chain__label { display: block; font-size: var(--ds-fs-label); letter-spacing: .04em; text-transform: uppercase; color: var(--ds-ink-2); }
.chain__text { margin: 2px 0 0; max-width: 72ch; overflow-wrap: anywhere; }
.chain__text--ok { color: var(--ds-accent); }
.chain__text--bad { color: var(--ds-danger); }
.chain__note { margin: 4px 0 0; max-width: 72ch; font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.chain__items { margin: 4px 0 0; padding-left: 18px; max-width: 72ch; }
.chain__items li { margin-top: 3px; }

.proposal { margin-top: 16px; padding: 12px 14px; border: 1px solid var(--ds-line); border-radius: var(--ds-radius-s); background: var(--ds-surface-2); }
.proposal--warn { border-left: 3px solid var(--ds-warn); }
.proposal--bad { border-left: 3px solid var(--ds-danger); }
.proposal__label { display: block; font-size: var(--ds-fs-label); letter-spacing: .04em; text-transform: uppercase; color: var(--ds-ink-2); }
.proposal__text { margin: 3px 0 0; font-size: var(--ds-fs-body); max-width: 72ch; }
.proposal__detail { margin: 6px 0 0; font-family: var(--ds-mono); font-size: var(--ds-fs-label); color: var(--ds-ink-2); word-break: break-word; }
.proposal__note { margin: 8px 0 0; max-width: 72ch; color: var(--ds-ink-2); }

.cabinet { margin: 0 0 28px; }

.cabinet__head {
  display: flex;
  align-items: baseline;
  gap: 8px 16px;
  flex-wrap: wrap;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--ds-ink);
}

.cabinet__title { font-size: var(--ds-fs-stat-row); }
.cabinet__domain { color: var(--ds-ink-2); }
.cabinet__all { margin-left: auto; }
.cabinet__note { margin: 6px 0 0; color: var(--ds-ink-2); }

.lines { list-style: none; margin: 0; padding: 0; }

.line {
  position: relative;
  padding: 12px 14px 12px 14px;
  border-bottom: 1px solid var(--ds-line);
  border-left: 3px solid transparent;
}

.line--red { border-left-color: var(--ds-danger); }
.line:has(.line__box:checked) { background: var(--ds-surface-2); }

.line__label {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 0 12px;
  align-items: start;
  cursor: pointer;
  min-height: 44px;
}

.line__box {
  margin: 3px 0 0;
  width: 20px;
  height: 20px;
  accent-color: var(--ds-accent);
  cursor: pointer;
}

.line__text { font-size: var(--ds-fs-body); line-height: 1.4; font-variant-numeric: tabular-nums; }
.line__verb { font-weight: 600; }
.line__tag { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--ds-danger); margin-left: 8px; white-space: nowrap; }
.line__why { margin: 4px 0 0 32px; font-size: var(--ds-fs-label); color: var(--ds-ink-2); max-width: 72ch; }
.line__why b { font-weight: 600; color: var(--ds-ink-2); }
.line__from { margin: 4px 0 0 32px; font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.line__from a { color: var(--ds-ink-2); }
.line__more { margin: 6px 0 0 32px; }
.line__more > summary { cursor: pointer; font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.line__more > summary:hover { color: var(--ds-ink); }

.ponder { margin: 16px 0 0; padding: 14px 16px; background: var(--ds-surface-2); border-radius: var(--ds-radius-s); color: var(--ds-ink-2); }
.ponder__title { font-size: var(--ds-fs-body); font-family: var(--ds-font); color: var(--ds-ink-2); margin: 0 0 4px; }
.ponder__note { margin: 0 0 8px; font-size: var(--ds-fs-label); }
.ponder__list { list-style: none; margin: 0; padding: 0; }
.ponder__item { padding: 8px 0; border-top: 1px solid var(--ds-line); }
.ponder__item:first-child { border-top: 0; }
.ponder__text { margin: 0; }
.ponder__text b { color: var(--ds-ink); font-weight: 600; }
.ponder__why { margin: 2px 0 0; font-size: var(--ds-fs-label); }
.ponder__more { margin: 4px 0 0; }
.ponder__more > summary { cursor: pointer; font-size: var(--ds-fs-label); }
.ponder .case { color: var(--ds-ink); }

.bar {
  position: sticky;
  bottom: 0;
  z-index: 4;
  margin: 24px -24px -180px;
  padding: 14px 24px;
  background: var(--ds-bg);
  border-top: 1px solid var(--ds-ink);
  display: flex;
  align-items: center;
  gap: 12px 20px;
  flex-wrap: wrap;
}

.bar__mode { flex-basis: 100%; margin: 0; }
.bar__sum { margin: 0; font-family: var(--ds-font); font-size: var(--ds-fs-body); min-width: 18ch; font-variant-numeric: tabular-nums; }
.bar__sum--empty { color: var(--ds-ink-2); }
.bar__field { flex: 1 1 260px; }
.bar__field label { display: block; font-size: var(--ds-fs-label); color: var(--ds-ink-2); margin-bottom: 2px; }
.bar__field input { width: 100%; }
.bar__help { margin: 2px 0 0; font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.bar__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.bar__note { flex-basis: 100%; margin: 0; font-size: var(--ds-fs-label); color: var(--ds-ink-2); }

.decide { border-top: 3px solid var(--ds-ink); }
.decide__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 14px; }

.field { margin-top: 12px; }
.field__label { display: block; font-size: var(--ds-fs-label); color: var(--ds-ink-2); margin-bottom: 4px; }
.field__help { margin: 5px 0 0; font-size: var(--ds-fs-label); color: var(--ds-ink-2); max-width: 72ch; }

input[type=text],
input[type=password],
select,
textarea {
  font: inherit;
  color: var(--ds-ink);
  background: var(--ds-bg);
  border: 1px solid var(--ds-line);
  border-radius: var(--ds-radius-s);
  padding: 9px 10px;
  min-height: 44px;
  width: 100%;
}

input[type=text]:hover, input[type=password]:hover, select:hover, textarea:hover { border-color: var(--ds-ink-2); }
textarea { resize: vertical; }

button,
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  font: inherit;
  font-size: 14px;
  border-radius: var(--ds-radius-s);
  border: 1px solid var(--ds-ink);
  background: var(--ds-bg);
  color: var(--ds-ink);
  padding: 8px 18px;
  cursor: pointer;
  text-decoration: none;
}

button:hover, .btn:hover { background: var(--ds-surface-2); }

.btn--primary,
button.btn--primary {
  border-color: var(--ds-accent);
  background: var(--ds-accent);
  color: #ffffff;
  font-weight: 600;
}

.btn--primary:hover, button.btn--primary:hover { background: var(--ds-accent-dark); }
button.btn--return { border-color: var(--ds-warn); color: var(--ds-warn); background: var(--ds-bg); }
button.btn--return:hover { background: var(--ds-surface-2); }
.btn--small, button.btn--small { min-height: 32px; padding: 4px 12px; font-size: var(--ds-fs-label); }
.btn--link, button.btn--link { border-color: var(--ds-line); background: var(--ds-bg); color: var(--ds-ink-2); }
.btn--link:hover { color: var(--ds-ink); }

button[disabled], button[disabled]:hover {
  border-color: var(--ds-line);
  background: var(--ds-surface-2);
  color: var(--ds-ink-2);
  cursor: not-allowed;
  font-weight: 400;
}

.toolbar { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.toolbar__field { min-width: 150px; }
.toolbar__field label { display: block; font-size: var(--ds-fs-label); color: var(--ds-ink-2); margin-bottom: 4px; }
.toolbar__spacer { margin-left: auto; display: flex; gap: 10px; flex-wrap: wrap; }

.msg {
  margin-bottom: 14px;
  padding: 11px 14px;
  border: 1px solid var(--ds-line);
  border-left-width: 3px;
  border-radius: 0 4px 4px 0;
  background: var(--ds-surface-2);
}

.msg--success { border-left-color: var(--ds-accent); }
.msg--error { border-left-color: var(--ds-danger); }
.msg--warning { border-left-color: var(--ds-warn, var(--ds-danger)); }
.msg__title { margin: 0 0 4px; font-weight: 600; }
/* «Что делать» — вторая половина отказа (заказ владельца 08.09). Стоит выше
   машинной части и читается как обычный текст, а не как подпись: по нему
   принимают решение. Фолбэк («инструмент не знает») приглушён — он зовёт
   человека, а не указывает. */
.msg__next { margin: 8px 0 0; }
.msg__next--unknown { color: var(--ds-ink-2); }
.msg__next-action { margin: 8px 0 0; }
/* Технические детали свёрнуты по умолчанию: код и параметры нужны для
   карточки косяка, а не для решения владельца. Спрятать их совсем нельзя —
   без кода разбор в дев-сессии бесполезен. */
.msg__details { margin: 8px 0 0; }
.msg__details-summary { cursor: pointer; font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.msg__meta { margin: 6px 0 0; font-family: var(--ds-mono); font-size: var(--ds-fs-label); color: var(--ds-ink-2); word-break: break-all; }

.errorlist { color: var(--ds-danger); font-size: var(--ds-fs-label); margin: 6px 0 0; padding-left: 18px; }

.grid { width: 100%; border-collapse: collapse; font-size: 14px; }

.grid th,
.grid td {
  text-align: left;
  padding: 10px 14px 10px 0;
  border-bottom: 1px solid var(--ds-line);
  vertical-align: top;
}

.grid th { font-size: var(--ds-fs-label); font-weight: 400; color: var(--ds-ink-2); }
.grid td.nums, .grid th.nums { text-align: right; padding-right: 24px; }
.grid__sub { margin: 2px 0 0; font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.grid__sub--mono { font-family: var(--ds-mono); font-size: var(--ds-fs-label); word-break: break-all; }
.grid__zero { color: var(--ds-ink-2); }
.scroll { overflow-x: auto; }

.state { font-weight: 600; }
.state--ok { color: var(--ds-accent); }
.state--warn { color: var(--ds-warn); }
.state--bad { color: var(--ds-danger); }
.state--neutral { font-weight: 400; }
.state__code { margin-left: 6px; font-family: var(--ds-mono); font-size: var(--ds-fs-label); color: var(--ds-ink-2); font-weight: 400; }

.fold { margin-top: 12px; }
.fold > summary { cursor: pointer; font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.fold > summary:hover { color: var(--ds-ink); }
.fold > *:not(summary) { margin-top: 10px; }

.meta { color: var(--ds-ink-2); font-size: 14px; }
p.meta { margin: 10px 0 0; }
p.meta:first-child { margin-top: 0; }
.meta b { color: var(--ds-ink); font-weight: 600; }
.meta code { word-break: break-all; }

.empty { padding: 40px 20px; text-align: center; color: var(--ds-ink-2); border: 1px dashed var(--ds-line); border-radius: var(--ds-radius-s); background: var(--ds-bg); }
.empty__title { margin: 0 0 6px; font-family: var(--ds-font); font-size: var(--ds-fs-stat-row); color: var(--ds-ink); }
.empty p { margin: 0; }
.empty__go { margin-top: 14px; }

.login { max-width: 380px; margin: 60px auto; }

@media (max-width: 720px) {
    .topbar { padding: 6px 16px 0; gap: 0 16px; }
  .topbar__who { order: 1; }
  .topbar__nav { order: 2; flex-basis: 100%; gap: 14px; }
  .topbar__link { padding: 8px 0; }
  .bar__help, .bar__note { display: none; }
  .page { padding: 20px 16px 220px; }
  .bar { margin: 24px -16px -220px; padding: 12px 16px; }
  .bar__sum { min-width: 0; flex-basis: 100%; }
  .bar__actions { flex-basis: 100%; }
  .bar__actions button { width: 100%; }
  .project__go { margin-left: 0; }
  .entry__age { margin-left: 0; }
  .toolbar__spacer { margin-left: 0; }
  .cabinet__all { margin-left: 0; }
  .line__why, .line__from, .line__more { margin-left: 0; }
  .grid td.nums, .grid th.nums { padding-right: 12px; }
}

@media (prefers-reduced-motion: no-preference) {
  .topbar__link, button, .btn, a { transition: color .12s, background-color .12s, border-color .12s; }
}

/* Экран проекта: живой отчёт парка (таблицы движка как есть) */
.head__title--project { font-size: 34px; letter-spacing: -.01em; }
.head__window { margin: 8px 0 0; font-size: var(--ds-fs-body); color: var(--ds-ink); font-variant-numeric: tabular-nums; }
.head__quiet { margin: 4px 0 0; font-size: var(--ds-fs-label); color: var(--ds-ink-2); max-width: 72ch; }

.report { margin: 32px 0 0; }
.report--brief { margin-top: 28px; }
.report__title { font-size: var(--ds-fs-stat-row); padding-bottom: 8px; border-bottom: 1px solid var(--ds-ink); margin-bottom: 14px; }
.report__intro { margin: 0 0 8px; max-width: 80ch; color: var(--ds-ink-2); font-size: 14px; }
.report__intro:last-child { margin-bottom: 0; }
.report__note { margin: 10px 0 0; max-width: 80ch; font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.report__h3 { margin: 18px 0 6px; font-size: var(--ds-fs-body); }
.report__caption { text-align: left; caption-side: top; padding: 0 0 6px; font-size: var(--ds-fs-label); color: var(--ds-ink-2); }

.brief { margin: 0; display: grid; gap: 10px; }

.brief__item {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 4px 20px;
  padding: 16px 18px;
  border: 1px solid var(--ds-line);
  border-radius: var(--ds-radius-s);
  background: var(--ds-surface-2);
}

.brief__label { margin: 0; padding-top: 3px; font-size: var(--ds-fs-label); letter-spacing: .06em; text-transform: uppercase; color: var(--ds-ink-2); }
.brief__body { margin: 0; min-width: 0; }
.brief__text { margin: 0; font-size: var(--ds-fs-body); line-height: 1.45; max-width: 72ch; font-variant-numeric: tabular-nums; }
.brief__trust { margin: 6px 0 0; font-size: var(--ds-fs-label); color: var(--ds-ink-2); }

.signals { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ds-line); }
.signal { padding: 14px 0; border-bottom: 1px solid var(--ds-line); }
.signal--empty { color: var(--ds-ink-2); }
.signal__head { display: flex; align-items: baseline; gap: 6px 14px; flex-wrap: wrap; }
.signal__name { font-weight: 600; font-size: var(--ds-fs-body); }
.signal__figures { color: var(--ds-ink-2); font-variant-numeric: tabular-nums; }
.signal__due { margin-left: auto; white-space: nowrap; font-size: var(--ds-fs-label); font-variant-numeric: tabular-nums; color: var(--ds-ink); }
.signal__risk { margin: 6px 0 0; font-family: var(--ds-font); font-size: 18px; line-height: 1.35; max-width: 64ch; font-variant-numeric: tabular-nums; }
.signal__basis { margin: 6px 0 0; font-size: var(--ds-fs-label); color: var(--ds-ink-2); max-width: 80ch; }
.signal__where { margin: 2px 0 0; font-size: var(--ds-fs-label); color: var(--ds-ink-2); font-variant-numeric: tabular-nums; max-width: 80ch; }

.scroll--report { overflow: auto; max-height: min(82vh, 920px); margin-bottom: 14px; }
.grid--report { font-variant-numeric: tabular-nums; }
.grid--report th, .grid--report td { padding: 8px 18px 8px 0; line-height: 1.4; }
.grid--report th { white-space: nowrap; }
.grid--report td.nums, .grid--report th.nums { white-space: nowrap; }
.grid--report thead th { position: sticky; top: 0; z-index: 2; background: var(--ds-bg); border-bottom-color: var(--ds-ink); }
.grid--report th:first-child, .grid--report td:first-child { position: sticky; left: 0; z-index: 1; background: var(--ds-bg); padding-right: 22px; min-width: 12ch; max-width: 44ch; }
.grid--report thead th:first-child { z-index: 3; }
.grid--report tbody tr:last-child td { border-bottom-color: var(--ds-line); }
.grid--report a.mono { color: var(--ds-accent); text-decoration-color: var(--ds-accent); font-size: 14px; white-space: nowrap; }
.report__row--preliminary td { color: var(--ds-ink-2); font-style: italic; }

.report-fold { margin: 12px 0 0; border-top: 1px solid var(--ds-line); }
.report-fold:last-of-type { border-bottom: 1px solid var(--ds-line); }
.report-fold__summary { cursor: pointer; list-style: none; display: flex; align-items: baseline; gap: 10px; padding: 12px 0; min-height: 44px; }
.report-fold__summary::-webkit-details-marker { display: none; }
.report-fold__summary::before { content: "▸"; color: var(--ds-ink-2); font-size: var(--ds-fs-label); }
.report-fold[open] > .report-fold__summary::before { content: "▾"; }
.report-fold__summary:hover .report-fold__title { text-decoration: underline; text-decoration-color: var(--ds-line); }
.report-fold__title { font-size: var(--ds-fs-body); font-weight: 600; }
.report-fold__count { margin-left: auto; font-size: var(--ds-fs-label); color: var(--ds-ink-2); white-space: nowrap; }
.report-fold__body { padding: 0 0 16px; }

.decisions { margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--ds-line); }
.decisions__lede { margin: 0 0 12px; display: flex; align-items: center; gap: 8px 14px; flex-wrap: wrap; }
.decisions__jobs { margin: 8px 0 0; padding-left: 18px; }

@media (max-width: 720px) {
  .head__title--project { font-size: 26px; }
  .brief__item { grid-template-columns: 1fr; padding: 14px 14px; }
  .brief__text { font-size: 14px; }
  .signal__due { margin-left: 0; flex-basis: 100%; }
  .signal__risk { font-size: var(--ds-fs-body); }
  .grid--report th:first-child, .grid--report td:first-child { max-width: 32ch; }
  .scroll--report { max-height: 70vh; }
}

/* --- Команды владельца и ответы (план #118 §4, шаг 2) ------------------- */
/* Токены этого блока правились под набор, которого в проекте нет:
   --muted/--line/--bg/--accent/--red/--serif/--mono/--fs-*. var() без
   запасного значения гасит СВОЙСТВО целиком, поэтому показ ответа
   команды (три строки «Коротко», карточки действий, графики) выходил
   без рамок, без цвета красной линии и с невидимой линией графика —
   на экране «Ответ» с самого его появления. Имена приведены к
   tokens.css (--ds-*). */

.answer--wait { padding: 32px 0; }
.answer__wait { margin: 0; font-family: var(--ds-font); font-size: var(--ds-fs-stat-row); }
.answer__hint { margin: 8px 0 0; color: var(--ds-ink-2); }
.answer__meta { margin: 0 0 12px; color: var(--ds-ink-2); }
.answer__cost { margin: 18px 0 0; font-size: var(--ds-fs-label); color: var(--ds-ink-2); font-variant-numeric: tabular-nums; }
.answer__section { margin: 28px 0 0; }
.answer__h3 { font-size: var(--ds-fs-section); margin: 0 0 10px; }
.answer__notes { margin: 0; padding-left: 18px; max-width: 80ch; color: var(--ds-ink-2); }
.answer__raw { white-space: pre-wrap; max-width: 90ch; }
.answer__degraded { margin-bottom: 12px; }

.three { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 0 0 8px; }
.three__item { padding: 14px 16px; border: 1px solid var(--ds-line); border-radius: 6px; background: var(--ds-surface); }
.three__item--todo { border-left: 3px solid var(--ds-accent); }
.three__label { margin: 0 0 4px; font-size: var(--ds-fs-label); letter-spacing: .06em; text-transform: uppercase; color: var(--ds-ink-2); }
.three__text { margin: 0; font-size: var(--ds-fs-section); line-height: 1.45; font-variant-numeric: tabular-nums; }

/* Имена токенов — из tokens.css (--ds-*). Здесь стояли --accent/--line/
   --muted/--fs-5/--sans: их в проекте нет со времён перехода на ds-токены, и
   var() без запасного значения гасит СВОЙСТВО — линия графика рисовалась
   прозрачной, то есть графики были пустыми рамками на всех экранах. */
.chart { margin: 12px 0 18px; max-width: 720px; }
.chart__caption { font-size: var(--ds-fs-label); color: var(--ds-ink-2); margin-bottom: 4px; }
.chart__svg { display: block; width: 100%; height: auto; overflow: visible; }
.chart__base { stroke: var(--ds-line); stroke-width: 1; }
.chart__line { fill: none; stroke: var(--ds-accent); stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; }
.chart__dot { fill: var(--ds-accent); }
.chart__label { font-size: 11px; fill: var(--ds-ink-2); font-family: var(--ds-font); }
.chart__label--end { text-anchor: end; }

.acts { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 10px; }
.act { padding: 12px 14px; border: 1px solid var(--ds-line); border-left-width: 3px; border-radius: 4px; background: var(--ds-surface); }
.act--red { border-left-color: var(--ds-danger); }
.act__title { margin: 0; font-size: var(--ds-fs-section); font-weight: 600; }
.act__ordinal { display: inline-block; min-width: 1.6em; margin-right: 8px; font-family: var(--ds-mono); font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.act__target { margin: 3px 0 0; font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.act__why { margin: 8px 0 0; max-width: 72ch; }
.act__evidence { margin: 6px 0 0; padding-left: 18px; font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
.act__detail { margin: 8px 0 0; font-family: var(--ds-mono); font-size: var(--ds-fs-label); color: var(--ds-ink-2); word-break: break-word; }

.answers { list-style: none; margin: 0; padding: 0; }
.answers__item { padding: 8px 0; border-top: 1px solid var(--ds-line); display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; }
.answers__item:first-child { border-top: 0; }
.answers__meta { font-size: var(--ds-fs-label); color: var(--ds-ink-2); }
