/* =========================================================================
   版本差异展示（版本沿革 + 相邻版本变化分析）样式
   单独成文件：不修改 app.css / reader.css 的任何既有选择器。
   命名空间仅 .ver-diff-* / .vdiff-*。
   使用页面：/versions 、/versions/{family_key} 、/versions/{family_key}/diff
   ========================================================================= */

/* ------------------------------------------- 版本差异展示（B 包第二半） */
/* 独立命名空间 .ver-diff-* / .vdiff-*：不复用阅读器那边的命名空间，
   也不改任何既有选择器。文案只讲客观的「版本沿革 + 相邻版本变化分析」。 */

.ver-diff-card {
  margin-top: 10px;
  border: 1px solid var(--line);
  border-left: 3px solid var(--accent);
  border-radius: var(--radius-sm);
  background: var(--bg-subtle);
}
.ver-diff-card > summary {
  cursor: pointer;
  list-style: none;
  padding: 7px 11px;
  font-size: .84rem;
  color: var(--ink-2);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px;
}
.ver-diff-card > summary::-webkit-details-marker { display: none; }
.ver-diff-card > summary::before {
  content: "▸";
  color: var(--accent);
  margin-right: 2px;
}
.ver-diff-card[open] > summary::before { content: "▾"; }
.ver-diff-card > summary:hover { background: var(--bg-hover); }
.ver-diff-peer { font-weight: 600; color: var(--ink); }

.ver-diff-body {
  padding: 4px 11px 10px;
  border-top: 1px dashed var(--line);
  font-size: .84rem;
  line-height: 1.65;
}
.ver-diff-body .btn-link { font-size: .82rem; }
.ver-diff-note { margin: 6px 0; color: var(--ink-2); }
.ver-diff-meta,
.ver-diff-changed {
  list-style: none;
  margin: 4px 0 8px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.ver-diff-meta li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
}
.ver-diff-field {
  min-width: 4em;
  color: var(--ink-3);
  font-size: .8rem;
}
.ver-diff-arrow { color: var(--ink-3); }
.ver-diff-changed li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
}
.ver-diff-clause { color: var(--ink-2); }
.ver-diff-entry {
  margin: 10px 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
}

/* 差异页 */
.vdiff-cols {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
}
.vdiff-col {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
  background: var(--bg-subtle);
}
.vdiff-col-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 6px;
}
.vdiff-title {
  margin: 0 0 8px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--ink);
}
.vdiff-facts {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
  font-size: .84rem;
  color: var(--ink-2);
}
.vdiff-facts li { display: flex; gap: 8px; }
.vdiff-fact-k {
  min-width: 3.5em;
  color: var(--ink-3);
}
.vdiff-none { color: var(--warn); font-weight: 600; }

.vdiff-notice {
  margin: 12px 0 0;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  background: var(--warn-soft);
  color: var(--warn);
  font-size: .86rem;
}

/* 「差异极大 / 条款对应关系不可靠」的诚实提示：比普通 notice 更醒目，但只陈述事实 */
.ver-diff-warn,
.vdiff-warn {
  margin: 8px 0;
  padding: 8px 12px;
  border-left: 3px solid var(--warn);
  border-radius: var(--radius-sm);
  background: var(--warn-soft);
  color: var(--warn);
  font-size: .86rem;
  line-height: 1.7;
}
.vdiff-warn { margin: 12px 0 0; }

.vdiff-h3 {
  margin: 14px 0 6px;
  font-size: .92rem;
  color: var(--ink-2);
}
.vdiff-item {
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 8px 10px;
  margin-bottom: 10px;
  background: var(--bg-subtle);
}
.vdiff-item-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 6px;
}
.vdiff-clause { color: var(--ink-2); font-size: .84rem; }
.vdiff-side { min-width: 0; }
.vdiff-side-label {
  display: block;
  font-size: .76rem;
  color: var(--ink-3);
  margin-bottom: 2px;
}
.vdiff-text {
  margin: 0;
  padding: 8px 10px;
  max-height: 260px;
  overflow: auto;
  background: var(--bg-elev);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  font-size: .8rem;
  line-height: 1.6;
  white-space: pre-wrap;
  word-break: break-word;
}
.vdiff-table td { vertical-align: top; }
.vdiff-old { color: var(--danger); }
.vdiff-new { color: var(--ok); }

.vdiff-refs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.vdiff-refs li {
  padding: 2px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--bg-elev);
  font-size: .8rem;
}

.vdiff-badge-clause { background: var(--accent-soft); color: var(--accent); font-weight: 600; }
.vdiff-badge-meta { background: var(--warn-soft); color: var(--warn); font-weight: 600; }
.vdiff-badge-warn { background: var(--warn-soft); color: var(--warn); font-weight: 600; }
.vdiff-badge-count { background: var(--accent-soft); color: var(--accent); font-weight: 600; }
.vdiff-kind-added { background: var(--ok-soft); color: var(--ok); font-weight: 600; }
.vdiff-kind-removed { background: var(--danger-soft); color: var(--danger); font-weight: 600; }
.vdiff-kind-modified { background: var(--warn-soft); color: var(--warn); font-weight: 600; }

@media (max-width: 700px) {
  .vdiff-cols { grid-template-columns: minmax(0, 1fr); }
}
