/* External Skeleton · экран «Дерево · список» (004 срез 1a, tree-list.js).
   Токены и базовые классы (.page, .plan__close, .plan__error, .plan__empty,
   .undo, .btn, .link, .micro, .mono) — из tokens.css/styles.css/plan.css, как у
   report.css. Новых цветов нет; ✓ у выполненного условия — тот же приглушённый
   зелёный (--accent-done), что и в отчёте. */

.tree-list { padding-bottom: 96px; }   /* место под строку отмены внизу */
.tree-list h3,
.tree-list form { margin: 0; }

#tree-list-content { display: flex; flex-direction: column; gap: var(--sp-4); }

.tl-label {
  color: var(--text-3);
  font-size: var(--fs-micro);
  letter-spacing: var(--ls-micro);
  text-transform: uppercase;
  margin-right: var(--sp-2);
}

/* ------------------------------------------------------------ узел */
.tl-node {
  border: 1px solid var(--line);
  border-radius: var(--radius-8);
  background: var(--bg-1);
  padding: var(--sp-4);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.tl-node--root { border: none; background: none; padding: 0; }
.tl-node--group { background: none; border-style: dashed; }
.tl-node--background { opacity: 0.75; }

.tl-node__head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--sp-2);
}
.tl-node__name { font: var(--w-semibold) var(--fs-text) / var(--lh-text) var(--font-sans); margin: 0; }
.tl-node__role,
.tl-node__progress {
  color: var(--text-3);
  font-size: var(--fs-micro);
  letter-spacing: var(--ls-micro);
  text-transform: uppercase;
}
.tl-node__status { color: var(--text-2); font-size: var(--fs-caption); margin: 0; }
.tl-node__goal { color: var(--text-2); font-size: var(--fs-caption); margin: 0; }

/* Decisions-0110, 004 ТР-10/ТР-15: история пауз — тише статусной строки. */
.tl-pause-history {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tl-pause-history__row { color: var(--text-3); font-size: var(--fs-micro); }

.tl-node__children {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  margin-left: var(--sp-4);
  padding-left: var(--sp-4);
  border-left: 1px solid var(--line);
}

.tl-tools { display: flex; gap: var(--sp-3); flex-wrap: wrap; }

/* ------------------------------------------------------------ условия */
.tl-conds { display: flex; flex-direction: column; gap: var(--sp-2); }
.tl-conds--empty { display: none; }

.tl-cond {
  border-top: 1px solid var(--divider);
  padding-top: var(--sp-2);
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
}
.tl-cond.is-done { color: var(--text-2); }
.tl-cond__text { margin: 0; display: flex; align-items: baseline; gap: var(--sp-2); flex-wrap: wrap; }
.tl-cond__act { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }
.tl-cond__done { color: var(--accent-done); }

.tl-tag {
  border: 1px solid var(--line);
  border-radius: var(--radius-4);
  padding: 1px 6px;
  font-size: var(--fs-micro);
  color: var(--text-2);
}

.tl-date {
  background: var(--bg-0);
  border: 1px solid var(--line);
  border-radius: var(--radius-6);
  color: var(--text-1);
  padding: 4px 6px;
  min-height: 32px;
}

.tl-input,
.tl-select {
  background: var(--bg-0);
  border: 1px solid var(--line);
  border-radius: var(--radius-6);
  color: var(--text-1);
  padding: 6px 10px;
  min-height: 36px;
  font: var(--w-regular) var(--fs-text) / var(--lh-text) var(--font-sans);
}

/* ------------------------------------------------------------ привязки */
.tl-links { margin-left: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-1); }
.tl-links__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sp-1); }
.tl-link { display: flex; align-items: baseline; gap: var(--sp-2); flex-wrap: wrap; }
.tl-link__meta { color: var(--text-3); white-space: nowrap; }
.tl-link__text { color: var(--text-1); flex: 1 1 auto; }
.tl-quiet { color: var(--text-3); }

/* ------------------------------------------------------------ поиск */
.tl-search { display: flex; flex-direction: column; gap: var(--sp-2); margin-top: var(--sp-1); }
.tl-search__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sp-1); }
.tl-search__item { display: flex; align-items: baseline; gap: var(--sp-2); flex-wrap: wrap; }
.tl-search__empty { color: var(--text-3); }

/* ------------------------------------------------------------ формы */
.tl-form { display: flex; flex-direction: column; gap: var(--sp-2); margin-top: var(--sp-2); }
.tl-form__line { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }

@media (max-width: 640px) {
  .tl-node__children { margin-left: var(--sp-2); padding-left: var(--sp-2); }
}

/* ------------------------------------------------------------ 004 1b: «⋯» меню */
.tl-menu {
  border: 1px dashed var(--line);
  border-radius: var(--radius-8);
  padding: var(--sp-3);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.tl-menu__edit { display: flex; flex-direction: column; gap: var(--sp-2); }
.tl-node__given,
.tl-node__why,
.tl-cond__waiting { color: var(--text-2); font-size: var(--fs-caption); margin: 0; }

.tl-form--edit .tl-input,
.tl-form--edit .tl-select { width: 100%; max-width: 420px; }

.tl-cond__edit-tools { display: inline-flex; gap: var(--sp-2); margin-left: var(--sp-2); }

.tl-remove-confirm { display: flex; flex-direction: column; gap: var(--sp-2); align-items: flex-start; }

.tl-error-inline { color: var(--text-2); }

/* история узла */
.tl-history {
  border-top: 1px solid var(--divider);
  padding-top: var(--sp-2);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.tl-history__title { margin: 0; font: var(--w-semibold) var(--fs-caption) / var(--lh-text) var(--font-sans); }
.tl-history__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sp-1); }
.tl-history__row { display: flex; align-items: baseline; gap: var(--sp-2); flex-wrap: wrap; }
.tl-history__op { color: var(--text-1); }
.tl-history__meta { color: var(--text-3); }

/* раздел «removed» */
.tl-removed { border-top: 1px solid var(--line); padding-top: var(--sp-3); margin-top: var(--sp-2); }
.tl-removed__toggle { font-weight: var(--w-semibold); }
.tl-removed__list { list-style: none; margin: var(--sp-2) 0 0; padding: 0; display: flex; flex-direction: column; gap: var(--sp-2); }
.tl-removed__row { display: flex; align-items: baseline; gap: var(--sp-2); flex-wrap: wrap; }
.tl-removed__name { color: var(--text-1); }
.tl-removed__meta { color: var(--text-3); }

/* 004 2b: «unlabelled this week», «label the past», счёт подсказки (НФ-04) —
   тихо, без цвета (принципы 3/4/6), tree-list-label.js. */
.tl-label__head { padding-bottom: var(--sp-2); margin-bottom: var(--sp-2); border-bottom: 1px solid var(--line); }
.tl-label__toggle { font-weight: var(--w-semibold); }
.tl-label__box { display: flex; flex-direction: column; gap: var(--sp-2); margin: var(--sp-2) 0; }
.tl-label__quality { color: var(--text-3); margin: 0; }
.tl-label__past { border-top: 1px solid var(--line); padding-top: var(--sp-3); margin-top: var(--sp-2); }
.tl-label__group { margin: var(--sp-2) 0; padding-left: var(--sp-2); border-left: 2px solid var(--divider); }
.tl-label__grouphead { display: flex; align-items: baseline; gap: var(--sp-3); flex-wrap: wrap; }
.tl-label__path { color: var(--text-1); }
.tl-label__count { color: var(--text-3); }
.tl-label__row { display: flex; align-items: baseline; gap: var(--sp-2); flex-wrap: wrap; padding: 2px 0; }
.tl-label__meeting { color: var(--text-2); flex-grow: 1; min-width: 0; overflow-wrap: anywhere; }
.tl-label__pick-host { flex-basis: 100%; }

/* 004 срез 4: «жива ли?», «жду от»/«инфо», предложения — тихо, без цвета и
   процентов (БП-14), tree-list-signals.js. */
.tl-signals { display: flex; flex-direction: column; gap: var(--sp-2); }
.tl-signals__alive { border: 1px dashed var(--line); border-radius: var(--radius-8); padding: var(--sp-2) var(--sp-3); }
.tl-signals__question { margin: 0 0 var(--sp-2); color: var(--text-2); }
.tl-signals__actions { display: flex; gap: var(--sp-3); flex-wrap: wrap; }
.tl-signals__waiting { color: var(--text-2); margin: 0; }

.tl-proposals { display: flex; flex-direction: column; gap: var(--sp-3); padding-bottom: var(--sp-2); margin-bottom: var(--sp-2); border-bottom: 1px solid var(--line); }
.tl-proposal { border: 1px solid var(--line); border-radius: var(--radius-8); padding: var(--sp-3); display: flex; flex-direction: column; gap: var(--sp-2); }
.tl-proposal__text { margin: 0; }
.tl-proposal__meta { color: var(--text-3); margin: 0; }
.tl-proposal__actions { display: flex; gap: var(--sp-3); }
