:root {
  --ppvi-bg: #f6f5f2;
  --ppvi-paper: rgba(255,255,255,.9);
  --ppvi-ink: #181817;
  --ppvi-muted: #706d67;
  --ppvi-line: rgba(24,24,23,.1);
  --ppvi-red: #b61f2b;
  --ppvi-radius: 8px;
  --ppvi-sans: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  --ppvi-serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", serif;
}
body.bg-light { background: var(--ppvi-bg) !important; }
.ppvi-list-page {
  min-height: 100vh;
  background:
    radial-gradient(circle at 10% 5%, rgba(182,31,43,.07), transparent 28rem),
    linear-gradient(180deg, #fbfaf7 0%, var(--ppvi-bg) 45%, #efede8 100%);
  color: var(--ppvi-ink);
}
.ppvi-list-shell { padding-top: clamp(1rem, 3vw, 2.2rem); padding-bottom: 3rem; }
.ppvi-list-crumb {
  display: flex; flex-wrap: wrap; gap: .5rem; align-items: center;
  margin-bottom: 1.2rem; color: var(--ppvi-muted); font: 400 .88rem/1.4 var(--ppvi-sans);
}
.ppvi-list-crumb a { color: #343230; text-decoration: none; }
.ppvi-list-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);
  gap: clamp(1rem, 3vw, 2rem);
  align-items: start;
}
.ppvi-list-hero {
  margin-bottom: 1rem;
  padding: clamp(1.2rem, 3vw, 2rem);
  border-radius: var(--ppvi-radius);
  background: var(--ppvi-paper);
  box-shadow: 0 16px 36px rgba(24,24,23,.07);
}
.ppvi-list-hero span {
  color: var(--ppvi-red); font: 600 .82rem/1 var(--ppvi-sans);
  letter-spacing: .08em; text-transform: uppercase;
}
.ppvi-list-hero h1 {
  margin: .6rem 0 .55rem;
  font: 700 clamp(1.8rem, 3vw, 2.7rem)/1.18 var(--ppvi-serif);
  word-break: keep-all; overflow-wrap: anywhere;
}
.ppvi-list-hero p { max-width: 56rem; margin: 0; color: #4a4742; font: 400 1rem/1.75 var(--ppvi-sans); }
.ppvi-feed { display: grid; gap: .9rem; }
.ppvi-feed-item {
  display: grid;
  grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
  gap: 1rem;
  padding: .85rem;
  border-radius: var(--ppvi-radius);
  background: rgba(255,255,255,.84);
  box-shadow: 0 10px 28px rgba(24,24,23,.055);
}
.ppvi-feed-thumb {
  display: block; overflow: hidden; min-width: 0;
  border-radius: var(--ppvi-radius); background: #ded9cf; aspect-ratio: 16/9;
}
.ppvi-feed-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.ppvi-feed-item:hover .ppvi-feed-thumb img { transform: scale(1.035); }
.ppvi-feed-body { min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.ppvi-feed-body time { color: var(--ppvi-red); font: 600 .82rem/1 var(--ppvi-sans); }
.ppvi-feed-body h2 { margin: .45rem 0 .45rem; font: 650 clamp(1.05rem, 1.6vw, 1.35rem)/1.38 var(--ppvi-sans); }
.ppvi-feed-body h2 a { color: var(--ppvi-ink); text-decoration: none; }
.ppvi-feed-body p {
  display: -webkit-box; margin: 0; overflow: hidden; color: var(--ppvi-muted);
  font: 400 .96rem/1.65 var(--ppvi-sans); -webkit-box-orient: vertical; -webkit-line-clamp: 2;
}
.ppvi-load { padding: 1.4rem 0; text-align: center; }
.ppvi-load button {
  min-height: 2.6rem; padding: 0 1.2rem; border: 0; border-radius: var(--ppvi-radius);
  background: #242321; color: #fff; font: 600 .95rem/1 var(--ppvi-sans);
}
.ppvi-list-side { position: sticky; top: 5.5rem; display: grid; gap: 1rem; }
.ppvi-side-block {
  padding: 1rem; border-radius: var(--ppvi-radius); background: rgba(255,255,255,.84);
  box-shadow: 0 12px 30px rgba(24,24,23,.06);
}
.ppvi-side-block h2 { margin: 0 0 .8rem; font: 700 1.05rem/1.2 var(--ppvi-sans); }
.ppvi-meeting-main { display: grid; gap: .65rem; color: var(--ppvi-ink); text-decoration: none; }
.ppvi-meeting-main img { width: 100%; border-radius: var(--ppvi-radius); }
.ppvi-meeting-main strong { font: 600 .95rem/1.5 var(--ppvi-sans); }
.ppvi-side-links { display: grid; gap: .6rem; margin-top: .8rem; }
.ppvi-side-links a { color: #383531; font: 400 .92rem/1.55 var(--ppvi-sans); text-decoration: none; }
.ppvi-tag-cloud { display: flex; flex-wrap: wrap; gap: .5rem; }
.ppvi-tag-cloud a {
  padding: .34rem .65rem; border-radius: 999px; background: rgba(24,24,23,.06);
  color: #383531; font: 500 .84rem/1 var(--ppvi-sans); text-decoration: none;
}
.ppvi-tag-cloud a:hover { background: var(--ppvi-red); color: #fff; }
.ppvi-qr { text-align: center; color: var(--ppvi-muted); }
.ppvi-qr img { width: 100%; max-width: 220px; }
@media (max-width: 991.98px) {
  .ppvi-list-layout { grid-template-columns: 1fr; }
  .ppvi-list-side { position: static; }
}
@media (max-width: 575.98px) {
  .ppvi-feed-item { grid-template-columns: 1fr; }
  .ppvi-list-hero { padding: 1rem; }
}
