/* 35 · 犬细小预防指南 —— 视觉母题「流程链 / 观察窗环」
   独立布局：右侧圆环周龄 + 横向排期条 + 竖向观察窗时间轴 + 三栏配比计算器。 */
.b29.pv-wrap {
    --b29-bg: #f2f7f8;
    --b29-surface: #fdffff;
    --b29-surface-2: #eef5f6;
    --b29-ink: #1e2b30;
    --b29-sub: #4e6067;
    --b29-muted: #83969c;
    --b29-line: #dce9ea;
    --b29-line-strong: #c2d7da;
    --b29-accent: #1d7088;
    --b29-accent-2: #d08a3c;
    --b29-tint: #e4f2f5;
    --b29-radius: 15px;
    --b29-radius-sm: 9px;
}
:root[data-theme="dark"] .b29.pv-wrap {
    --b29-bg: #0e1518;
    --b29-surface: #182329;
    --b29-surface-2: #1e2d34;
    --b29-ink: #e9f2f4;
    --b29-sub: #b2c6cc;
    --b29-muted: #879ea5;
    --b29-line: #293b42;
    --b29-line-strong: #385059;
    --b29-accent: #7cc4db;
    --b29-accent-2: #e6b476;
    --b29-tint: #1c3741;
}
.pv-hero h1 em { font-style: normal; color: var(--b29-accent-2); display: block; font-size: .56em; margin-top: 10px; }
.pv-console { display: grid; grid-template-columns: minmax(0, 1.32fr) minmax(0, .68fr); gap: 0;
    border: 1px solid var(--b29-line); border-radius: var(--b29-radius); overflow: hidden; box-shadow: var(--b29-shadow); }
.pv-console-form { padding: 28px; background: var(--b29-surface); }
.pv-tag { font-family: var(--b29-mono); font-size: 11.5px; letter-spacing: .16em; color: var(--b29-accent); margin-bottom: 12px; }
.pv-console-form h2 { font-size: var(--b29-xl); margin-bottom: 20px; }
.pv-console-side { padding: 26px 22px; background: var(--b29-surface-2); border-left: 1px solid var(--b29-line);
    display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.pv-ring { width: 142px; height: 142px; border-radius: 50%; display: grid; place-content: center; gap: 2px;
    background: conic-gradient(var(--b29-accent) 0 72%, var(--b29-line-strong) 72% 100%); position: relative; }
.pv-ring::before { content: ""; position: absolute; inset: 12px; border-radius: 50%; background: var(--b29-surface-2); }
.pv-ring b, .pv-ring span { position: relative; }
.pv-ring b { font-size: 42px; font-weight: 800; line-height: 1; color: var(--b29-accent); letter-spacing: -.04em; }
.pv-ring span { font-size: var(--b29-xs); color: var(--b29-muted); letter-spacing: .1em; }
.pv-ring-note { font-size: var(--b29-xs); color: var(--b29-muted); margin: 12px 0 0; }
.pv-ring-rule { margin-top: 20px; padding-top: 16px; border-top: 1px dashed var(--b29-line-strong);
    font-size: var(--b29-xs); color: var(--b29-sub); line-height: 1.85; text-align: left; }
.pv-ring-rule b { color: var(--b29-accent); }

.pv-verdict { padding: 17px 20px; border-radius: var(--b29-radius); background: var(--b29-tint);
    border-left: 5px solid var(--b29-accent); font-size: var(--b29-sm); line-height: 1.85; margin-bottom: 22px; }
.pv-verdict b { color: var(--b29-accent); }
/* 横向排期条：一条轴线串起 4 个节点，与猫瘟页的三列周历不同 */
.pv-track { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; position: relative; padding-top: 26px; }
.pv-track::before { content: ""; position: absolute; top: 34px; left: 8%; right: 8%; height: 3px; background: var(--b29-line-strong); }
.pv-node { position: relative; text-align: center; padding: 0 8px; }
.pv-node i { position: relative; display: block; width: 19px; height: 19px; margin: 0 auto 14px; border-radius: 50%;
    background: var(--b29-surface); border: 4px solid var(--b29-line-strong); z-index: 2; }
.pv-node.is-done i { border-color: var(--b29-ok); background: var(--b29-ok); }
.pv-node.is-next i { border-color: var(--b29-accent); box-shadow: 0 0 0 5px var(--b29-tint); }
.pv-node b { display: block; font-size: var(--b29-sm); }
.pv-node span { display: block; font-family: var(--b29-mono); font-size: var(--b29-xs); color: var(--b29-muted); margin-top: 4px; }
.pv-node small { display: block; font-size: var(--b29-xs); color: var(--b29-sub); line-height: 1.65; margin-top: 7px; }

.pv-window { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pv-win { padding: 16px; border-radius: var(--b29-radius-sm); border: 1px solid var(--b29-line); background: var(--b29-surface); }
.pv-win.is-hot { border-color: var(--b29-warn); background: var(--b29-warn-tint); }
.pv-win b { display: block; font-family: var(--b29-mono); font-size: var(--b29-sm); color: var(--b29-accent); }
.pv-win span { display: block; font-size: var(--b29-xs); color: var(--b29-sub); line-height: 1.7; margin-top: 6px; }

.pv-calc .b29-row > .b29-field { flex-basis: 30%; }
.pv-iso { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pv-iso-item { padding: 16px 17px; border-radius: var(--b29-radius-sm); border: 1px solid var(--b29-line); background: var(--b29-surface); }
.pv-iso-item b { display: block; font-size: var(--b29-sm); margin-bottom: 5px; }
.pv-iso-item small { display: block; font-size: var(--b29-xs); color: var(--b29-muted); line-height: 1.75; }

@media (max-width: 900px) {
    .pv-console { grid-template-columns: minmax(0, 1fr); }
    .pv-console-side { border-left: 0; border-top: 1px solid var(--b29-line); padding: 22px; }
    .pv-track { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 22px; }
    .pv-track::before { display: none; }
    .pv-window, .pv-iso { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .pv-console-form { padding: 18px 16px; }
    .pv-track, .pv-window, .pv-iso { grid-template-columns: minmax(0, 1fr); }
}
