.vx-line{display:flex;align-items:flex-start;gap:11px;padding:10px 12px;border-radius:var(--radius-md);
  border:1px solid var(--border-1);background:var(--surface-1);box-shadow:var(--inset-top);
  transition:var(--transition-control);cursor:pointer}
.vx-line:hover{background:var(--surface-2);border-color:var(--border-2)}
.vx-line--sel{border-color:var(--border-accent);background:var(--surface-2);box-shadow:var(--inset-top),0 0 0 1px var(--border-accent)}
.vx-line__stripe{width:3px;align-self:stretch;border-radius:var(--radius-pill);flex:0 0 auto;min-height:34px}
.vx-line__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
/* Строка подписи не переносится: тайминг и длительность держат свою ширину,
   а ужимается только имя роли — многоточием. Без flex:0 0 auto короткие спаны
   сжимались наравне с длинным именем, и текст рвался внутри них: «2.2 с»
   роняло «с» на следующую строку, стоило роли назваться подлиннее. */
.vx-line__meta{display:flex;align-items:center;gap:8px;min-width:0;
  font:var(--type-mono-s);color:var(--text-3);white-space:nowrap}
.vx-line__meta>*{flex:0 0 auto}
.vx-line__role{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;
  font:var(--type-small-strong)}
.vx-line__text{font:var(--type-body);color:var(--text-1);text-wrap:pretty}
.vx-line__text--muted{color:var(--text-3)}
.vx-line__unsure{background:var(--uncertain);border-radius:3px;padding:0 2px;box-shadow:0 1px 0 rgba(242,193,78,.5)}
.vx-line__acts{display:flex;align-items:center;gap:3px;flex:0 0 auto;opacity:0;transition:opacity var(--dur-fast) var(--ease-out)}
.vx-line:hover .vx-line__acts,.vx-line--sel .vx-line__acts{opacity:1}
.vx-line__state{display:flex;align-items:center;gap:5px;font:var(--type-caption);flex:0 0 auto}

/* Плотная строка: тот же состав, меньше воздуха. Нужна там, где список длинный
   и его высота — дефицит: на распределении реплик втрое больше, чем помещается
   в обычном ритме. */
.vx-line--dense{padding:5px 10px;gap:9px}
.vx-line--dense .vx-line__stripe{min-height:22px}
.vx-line--dense .vx-line__main{gap:1px}
.vx-line--dense .vx-line__text{font:var(--type-small);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
