/* 34 · 猫瘟预防指南 —— 视觉母题「疫苗周历 / 免疫本」
   独立布局：右侧巨大周龄数字环；结果用三列周历卡（周龄 → 日期 → 状态），隔离清单用勾选行。 */
.b29.fp-wrap {
    --b29-bg: #f5f4fa;
    --b29-surface: #fffefd;
    --b29-surface-2: #f3f1f9;
    --b29-ink: #252334;
    --b29-sub: #56536a;
    --b29-muted: #8d899f;
    --b29-line: #e5e2ef;
    --b29-line-strong: #d2cde4;
    --b29-accent: #5a4a9c;
    --b29-accent-2: #b0759a;
    --b29-tint: #ede9fa;
    --b29-radius: 18px;
    --b29-radius-sm: 10px;
}
:root[data-theme="dark"] .b29.fp-wrap {
    --b29-bg: #111019;
    --b29-surface: #1c1a28;
    --b29-surface-2: #242137;
    --b29-ink: #eeebf8;
    --b29-sub: #c1bbd6;
    --b29-muted: #928caa;
    --b29-line: #302c43;
    --b29-line-strong: #413b5c;
    --b29-accent: #b4a3f0;
    --b29-accent-2: #e0a4ca;
    --b29-tint: #2b2547;
}
.fp-hero h1 em { font-style: normal; color: var(--b29-accent-2); display: block; font-size: .56em; margin-top: 10px; }

.fp-console { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: 0;
    border: 1px solid var(--b29-line); border-radius: var(--b29-radius); overflow: hidden; box-shadow: var(--b29-shadow); }
.fp-console-form { padding: 28px; background: var(--b29-surface); }
.fp-tag { font-family: var(--b29-mono); font-size: 11.5px; letter-spacing: .16em; color: var(--b29-accent); margin-bottom: 12px; }
.fp-console-form h2 { font-size: var(--b29-xl); margin-bottom: 20px; }
.fp-question { margin-top: 18px; display: flex; flex-direction: column; gap: 10px; }
.fp-question .b29-chip { border-radius: 8px; }
.fp-console-side { padding: 30px 24px; background: var(--b29-surface-2); border-left: 1px solid var(--b29-line);
    display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: center; }
.fp-age-label { font-size: var(--b29-sm); font-weight: 800; letter-spacing: .1em; color: var(--b29-accent); }
.fp-age { display: flex; align-items: baseline; gap: 7px; margin: 10px 0 4px; }
.fp-age b { font-size: clamp(58px, 9vw, 86px); line-height: 1; font-weight: 800; letter-spacing: -.06em;
    background: linear-gradient(135deg, var(--b29-accent), var(--b29-accent-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.fp-age span { font-size: var(--b29-md); color: var(--b29-sub); }
.fp-age-note { font-size: var(--b29-xs); color: var(--b29-muted); }
.fp-age-rule { margin-top: 24px; padding-top: 18px; border-top: 1px dashed var(--b29-line-strong);
    font-size: var(--b29-xs); color: var(--b29-sub); line-height: 1.85; text-align: left; }
.fp-age-rule b { color: var(--b29-accent); }

.fp-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: 20px; }
.fp-verdict b { color: var(--b29-accent); }
.fp-weekgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.fp-week { position: relative; padding: 20px 20px 18px; border-radius: var(--b29-radius-sm);
    background: var(--b29-surface); border: 1px solid var(--b29-line); border-top: 5px solid var(--b29-line-strong); }
.fp-week.is-done { border-top-color: var(--b29-ok); background: var(--b29-ok-tint); }
.fp-week.is-next { border-top-color: var(--b29-accent); box-shadow: var(--b29-shadow-lift); }
.fp-week-no { font-family: var(--b29-mono); font-size: var(--b29-xs); font-weight: 800; color: var(--b29-accent); letter-spacing: .1em; }
.fp-week h3 { font-size: var(--b29-lg); margin: 8px 0 2px; }
.fp-week-date { font-family: var(--b29-mono); font-size: var(--b29-sm); color: var(--b29-sub); }
.fp-week p { font-size: var(--b29-sm); color: var(--b29-sub); line-height: 1.75; margin: 12px 0 0; }
.fp-week-status { display: inline-block; margin-top: 12px; font-size: var(--b29-xs); font-weight: 800;
    padding: 3px 11px; border-radius: 999px; background: var(--b29-surface-2); color: var(--b29-muted); }
.fp-week.is-done .fp-week-status { background: var(--b29-ok-tint); color: var(--b29-ok); }
.fp-week.is-next .fp-week-status { background: var(--b29-tint); color: var(--b29-accent); }

.fp-isolate { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.fp-iso { display: flex; gap: 12px; padding: 15px 17px; border-radius: var(--b29-radius-sm);
    background: var(--b29-surface); border: 1px solid var(--b29-line); }
.fp-iso > span { flex: none; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center;
    background: var(--b29-tint); color: var(--b29-accent); font-size: var(--b29-xs); font-weight: 800; }
.fp-iso b { display: block; font-size: var(--b29-sm); }
.fp-iso small { display: block; font-size: var(--b29-xs); color: var(--b29-muted); line-height: 1.75; margin-top: 3px; }

@media (max-width: 900px) {
    .fp-console { grid-template-columns: minmax(0, 1fr); }
    .fp-console-side { border-left: 0; border-top: 1px solid var(--b29-line); padding: 22px; }
    .fp-weekgrid { grid-template-columns: minmax(0, 1fr); }
    .fp-isolate { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
    .fp-console-form { padding: 18px 16px; }
}
