/* ============================================================
   ED28 V2 — Version Timeline（Stage 2D，第九部分 Version History）
   ============================================================ */

.version-timeline { position: relative; padding-left: 32px; }
.version-timeline::before {
  content: "";
  position: absolute; left: 9px; top: 6px; bottom: 6px;
  width: 2px; background: var(--border-default);
}
.vt-node { position: relative; margin-bottom: var(--space-5); }
.vt-dot {
  position: absolute; left: -32px; top: 4px;
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--bg-surface-2); border: 2px solid var(--brand-500);
  display: flex; align-items: center; justify-content: center;
}
.vt-dot svg { width: 10px; height: 10px; color: var(--brand-400); }
.vt-node.is-rollback .vt-dot { border-color: var(--warning-500); background: var(--warning-tint); }
.vt-node.is-rollback .vt-dot svg { color: var(--warning-500); }
.vt-node.is-rejected .vt-dot { border-color: var(--danger-500); background: var(--danger-tint); }

.vt-card {
  width: 100%; text-align: left;
  cursor: pointer;
  padding: var(--space-4) var(--space-5);
  display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap;
}
.vt-card .vt-version { font-family: var(--font-mono); font-weight: 700; font-size: var(--text-md); }
.vt-card .vt-date { font-size: var(--text-xs); color: var(--text-tertiary); }
.vt-card .vt-author { font-size: var(--text-xs); color: var(--text-secondary); margin-left: auto; }
.vt-card .vt-chevron { transition: transform var(--duration-fast) var(--ease-standard); color: var(--text-tertiary); }
.vt-node.is-open .vt-chevron { transform: rotate(90deg); }
.vt-detail { display: none; padding: 0 var(--space-5) var(--space-5); }
.vt-node.is-open .vt-detail { display: block; }
.vt-detail p { font-size: var(--text-sm); color: var(--text-secondary); line-height: var(--leading-relaxed); }
.vt-rollback-note {
  margin-top: var(--space-3);
  padding: var(--space-3);
  border-radius: var(--radius-sm);
  background: var(--warning-tint);
  color: var(--warning-500);
  font-size: var(--text-xs);
  display: flex; gap: 8px; align-items: flex-start;
}
