/* =====================================================================
 * 批次 6 · 宠物新场景与异宠 —— 独立设计基座 foundation.css
 * ---------------------------------------------------------------------
 * 与线上主站蓝紫、批次 4/5 松墨绿体系彻底区隔：
 *   暖蚝纸底 + 靛板岩蓝 + 陶珊瑚，数字/日期用等宽体，标题用衬线混排，
 *   形成「宠物照护档案袋」的编辑式层级；每个工具再叠加自己的强调色与版式。
 *
 * 主题：不新增控件。直接复用公共导航栏 #themeToggle 写入的
 *   :root[data-theme="dark"] / data-theme-mode；默认 auto 跟随系统，
 *   localStorage.theme 的读写与记忆全部由 public/js/theme-toggle.js 负责。
 * 作用域：所有规则挂在 .pb 之下，不污染线上任何已有页面。
 * ===================================================================== */

.pb {
    /* --- 纸感中性色 --- */
    --pb-bg: #f7f4ef;
    --pb-bg2: #efe9e1;
    --pb-card: #fffdfa;
    --pb-card2: #faf6f0;
    --pb-ink: #26242c;
    --pb-ink2: #55515d;
    --pb-muted: #8b8692;
    --pb-line: #e1dbd1;
    --pb-line2: #ede7de;
    /* --- 主色 --- */
    --pb-brand: #3d4d6e;
    --pb-brand2: #63769d;
    --pb-brand-soft: #e9edf6;
    --pb-warm: #c56b47;
    --pb-warm-soft: #fbeae0;
    /* --- 语义色 --- */
    --pb-ok: #3f7d61;
    --pb-ok-soft: #e5f1e9;
    --pb-warn: #9c721d;
    --pb-warn-soft: #f8eed7;
    --pb-danger: #ae4b4b;
    --pb-danger-soft: #f9e6e3;
    /* --- 单工具强调色（各工具 CSS 覆写） --- */
    --pb-a: #3d4d6e;
    --pb-a-soft: #e9edf6;
    /* --- 形与字 --- */
    --pb-r: 15px;
    --pb-r-sm: 9px;
    --pb-shadow: 0 16px 42px rgba(48, 42, 54, .075);
    --pb-shadow-sm: 0 3px 12px rgba(48, 42, 54, .05);
    --pb-sans: "Inter", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --pb-serif: "Iowan Old Style", Georgia, "Songti SC", "SimSun", serif;
    --pb-mono: "SFMono-Regular", "JetBrains Mono", Consolas, "Liberation Mono", monospace;

    background: var(--pb-bg);
    color: var(--pb-ink);
    font-family: var(--pb-sans);
    font-size: 15px;
    line-height: 1.85;
    letter-spacing: .005em;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    min-height: 60vh;
    padding-bottom: 76px;
}

:root[data-theme="dark"] .pb {
    --pb-bg: #12131a;
    --pb-bg2: #191b24;
    --pb-card: #1c1e28;
    --pb-card2: #232633;
    --pb-ink: #eef0f6;
    --pb-ink2: #bdc1cf;
    --pb-muted: #8c91a3;
    --pb-line: #313544;
    --pb-line2: #282c39;
    --pb-brand: #a3b9ea;
    --pb-brand2: #becdf0;
    --pb-brand-soft: #232c42;
    --pb-warm: #e7a482;
    --pb-warm-soft: #3a2a26;
    --pb-ok: #79c9a1;
    --pb-ok-soft: #1c3329;
    --pb-warn: #e1bc6c;
    --pb-warn-soft: #332b19;
    --pb-danger: #ef9a97;
    --pb-danger-soft: #3a2325;
    --pb-a: #a3b9ea;
    --pb-a-soft: #232c42;
    --pb-shadow: 0 16px 42px rgba(0, 0, 0, .32);
    --pb-shadow-sm: 0 3px 12px rgba(0, 0, 0, .22);
    color-scheme: dark;
}

.pb *, .pb *::before, .pb *::after { box-sizing: border-box; }
.pb b, .pb strong { color: var(--pb-ink); font-weight: 700; }
:root[data-theme="dark"] .pb b, :root[data-theme="dark"] .pb strong { color: #f7f9ff; }
.pb a { color: var(--pb-brand); text-decoration: none; }
.pb a:hover { text-decoration: underline; }
.pb p { margin: 0 0 13px; }
.pb ul, .pb ol { padding-left: 21px; margin: 0 0 13px; }
.pb li { margin: 0 0 6px; }
.pb :focus-visible { outline: 2px solid var(--pb-brand2); outline-offset: 2px; }
.pb button { font-family: inherit; }
.pb .pb-num { font-family: var(--pb-mono); font-variant-numeric: tabular-nums; }
.pb .pb-mark { background: linear-gradient(transparent 62%, var(--pb-a-soft) 62%); font-weight: 700; }

/* ---------- 面包屑（复用 partials.tool-station.crumb 结构，重绘配色） ---------- */
.pb .tsk-crumb-bar { background: color-mix(in srgb, var(--pb-card) 86%, transparent); border-bottom: 1px solid var(--pb-line2); backdrop-filter: blur(10px); }
.pb .tsk-crumb-bar-in { max-width: 1180px; margin: 0 auto; padding: 11px 26px; }
.pb .tsk-crumb { gap: 9px; font-size: 12.5px; color: var(--pb-muted); }
.pb .tsk-crumb a { color: var(--pb-ink2); letter-spacing: .02em; }
.pb .tsk-crumb a:hover { color: var(--pb-a); text-decoration: none; }
.pb .tsk-crumb-sep { color: var(--pb-line); font-family: var(--pb-serif); }
.pb .tsk-crumb-cur { color: var(--pb-ink); font-weight: 700; }
@media (max-width: 640px) { .pb .tsk-crumb-bar-in { padding: 9px 15px; } }

/* ---------- 版心 / 分区 ---------- */
.pb-shell { max-width: 1180px; margin: 0 auto; padding: 0 26px; }
.pb-sec { margin-top: 36px; }
.pb-sec-hd { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 15px; }
.pb-sec-hd h2 { margin: 0; font-size: 21px; line-height: 1.45; letter-spacing: -.012em; font-weight: 780; }
.pb-sec-hd h2::before { content: ""; display: inline-block; width: 5px; height: 17px; margin-right: 11px; vertical-align: -2px; border-radius: 3px; background: var(--pb-a); }
.pb-sec-note { font-size: 12.5px; color: var(--pb-muted); }

/* ---------- 首屏通用文字层级（版式由各工具 CSS 重排） ---------- */
.pb-kicker { display: inline-flex; align-items: center; gap: 9px; font-family: var(--pb-mono); font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--pb-a); }
.pb-kicker::before { content: ""; width: 22px; height: 1px; background: currentColor; }
.pb-hero h1 { margin: 13px 0 11px; font-size: clamp(28px, 3.8vw, 43px); line-height: 1.27; letter-spacing: -.028em; font-weight: 800; color: var(--pb-ink); }
.pb-sub { max-width: 680px; font-size: 15.5px; line-height: 1.9; color: var(--pb-ink2); }
.pb-sub b { color: var(--pb-brand); font-weight: 700; }
:root[data-theme="dark"] .pb-sub b { color: var(--pb-brand2); }
.pb-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 15px; }
.pb-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border: 1px solid var(--pb-line); border-radius: 999px; background: var(--pb-card); font-size: 12px; color: var(--pb-ink2); }
.pb-chip i { width: 6px; height: 6px; border-radius: 50%; background: var(--pb-a); font-style: normal; }
.pb-hero { padding-top: 34px; }

/* ---------- 卡片 ---------- */
.pb-card { background: var(--pb-card); border: 1px solid var(--pb-line2); border-radius: var(--pb-r); box-shadow: var(--pb-shadow-sm); padding: 22px; min-width: 0; }
.pb-card--flush { padding: 0; overflow: hidden; }
.pb-card-hd { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 14px; }
.pb-card-hd h3 { margin: 0; font-size: 16.5px; font-weight: 750; letter-spacing: -.01em; }
.pb-card-hd small { color: var(--pb-muted); font-size: 12px; }
.pb-panel-label { font-family: var(--pb-mono); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--pb-a); margin: 0 0 12px; display: block; }
.pb-grid { display: grid; gap: 14px; }
.pb-stack { display: grid; gap: 12px; }

/* ---------- 表单 ---------- */
.pb-fields { display: grid; gap: 13px; }
.pb-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.pb-field > label, .pb-field > span.pb-lab { font-size: 12.5px; font-weight: 680; color: var(--pb-ink2); letter-spacing: .015em; }
.pb-field .pb-hint { font-size: 11.5px; font-weight: 400; color: var(--pb-muted); }
.pb input[type="text"], .pb input[type="number"], .pb input[type="date"], .pb input[type="time"], .pb select, .pb textarea,
:root[data-theme="dark"] .pb input[type="text"], :root[data-theme="dark"] .pb input[type="number"],
:root[data-theme="dark"] .pb input[type="date"], :root[data-theme="dark"] .pb input[type="time"],
:root[data-theme="dark"] .pb select, :root[data-theme="dark"] .pb textarea {
    width: 100%; padding: 9px 11px; border: 1px solid var(--pb-line); border-radius: var(--pb-r-sm);
    background: var(--pb-card2); color: var(--pb-ink); font-family: inherit; font-size: 14px;
    line-height: 1.55; transition: border-color .18s, box-shadow .18s; appearance: none;
}
.pb textarea { resize: vertical; min-height: 92px; font-family: var(--pb-mono); font-size: 13px; line-height: 1.75; }
.pb input:focus, .pb select:focus, .pb textarea:focus { border-color: var(--pb-brand2) !important; box-shadow: 0 0 0 3px var(--pb-brand-soft); outline: none; }
.pb input[aria-invalid="true"], .pb select[aria-invalid="true"], .pb textarea[aria-invalid="true"] { border-color: var(--pb-danger) !important; box-shadow: 0 0 0 3px var(--pb-danger-soft); }
.pb input[type="range"] { width: 100%; accent-color: var(--pb-a); }
.pb input[type="checkbox"] { accent-color: var(--pb-a); width: 16px; height: 16px; flex: 0 0 auto; }
.pb select { background-image: linear-gradient(45deg, transparent 50%, var(--pb-muted) 50%), linear-gradient(135deg, var(--pb-muted) 50%, transparent 50%); background-position: calc(100% - 17px) 50%, calc(100% - 12px) 50%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; padding-right: 32px; }
.pb-err { min-height: 18px; font-size: 12.5px; color: var(--pb-danger); margin-top: 4px; }

.pb-check { display: flex; align-items: flex-start; gap: 9px; padding: 9px 11px; border: 1px solid var(--pb-line2); border-radius: var(--pb-r-sm); background: var(--pb-card2); font-size: 13.5px; line-height: 1.6; cursor: pointer; transition: border-color .18s, background .18s; }
.pb-check:hover { border-color: var(--pb-a); }
.pb-check input { margin-top: 4px; }
.pb-check.is-on { border-color: var(--pb-a); background: var(--pb-a-soft); }
.pb-check b { display: block; font-size: 13.5px; }
.pb-check small { display: block; color: var(--pb-muted); font-size: 11.5px; line-height: 1.5; }

/* ---------- 按钮 ---------- */
.pb-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 10px 18px; border-radius: var(--pb-r-sm); border: 1px solid transparent; background: var(--pb-brand); color: #fff; font-size: 14px; font-weight: 680; line-height: 1.45; cursor: pointer; transition: transform .16s, background .16s, box-shadow .16s; }
/* 深色下主按钮沿用随主题翻转的 --pb-brand，只覆盖文字色；
   变体按钮单独用更高 specificity 明确背景，避免被主按钮规则盖掉。 */
:root[data-theme="dark"] .pb-btn { color: #131722; }
.pb-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(61, 77, 110, .2); }
.pb-btn:active { transform: translateY(0); }
.pb-btn[disabled] { opacity: .55; cursor: not-allowed; transform: none; }
.pb-btn--ghost { background: transparent; border-color: var(--pb-line); color: var(--pb-ink2); }
.pb-btn--ghost:hover { border-color: var(--pb-a); color: var(--pb-a); box-shadow: none; }
.pb-btn--soft { background: var(--pb-brand-soft); color: var(--pb-brand); }
.pb-btn--warm { background: var(--pb-warm); }
:root[data-theme="dark"] .pb .pb-btn--ghost { background: transparent; color: var(--pb-ink2); }
:root[data-theme="dark"] .pb .pb-btn--ghost:hover { border-color: var(--pb-a); color: var(--pb-a); }
:root[data-theme="dark"] .pb .pb-btn--soft { background: var(--pb-brand-soft); color: var(--pb-brand2); }
:root[data-theme="dark"] .pb .pb-btn--warm { background: var(--pb-warm); color: #22130c; }
.pb-btn--sm { padding: 6px 12px; font-size: 12.5px; }
.pb-btn-row { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 15px; }
.pb-demo { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 13px; }
.pb-demo > span { font-size: 12px; color: var(--pb-muted); margin-right: 2px; }
.pb-demo button { padding: 4px 11px; border: 1px dashed var(--pb-line); border-radius: 999px; background: transparent; color: var(--pb-ink2); font-family: inherit; font-size: 12px; cursor: pointer; transition: all .18s; }
.pb-demo button:hover { border-style: solid; border-color: var(--pb-a); color: var(--pb-a); background: var(--pb-a-soft); }

/* ---------- 结果 / KPI ---------- */
.pb-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(158px, 1fr)); gap: 11px; }
.pb-kpi { background: var(--pb-card); border: 1px solid var(--pb-line2); border-radius: var(--pb-r-sm); padding: 15px 16px; box-shadow: var(--pb-shadow-sm); }
.pb-kpi .k { font-size: 12px; color: var(--pb-muted); letter-spacing: .03em; }
.pb-kpi .v { font-family: var(--pb-serif); font-size: 29px; line-height: 1.3; font-weight: 700; color: var(--pb-a); font-variant-numeric: tabular-nums; margin-top: 3px; }
.pb-kpi .v small { font-family: var(--pb-sans); font-size: 12.5px; font-weight: 600; margin-left: 3px; color: var(--pb-ink2); }
.pb-kpi .d { font-size: 11.5px; color: var(--pb-muted); line-height: 1.6; margin-top: 5px; }

.pb-callout { border-left: 3px solid var(--pb-a); background: var(--pb-a-soft); border-radius: 0 var(--pb-r-sm) var(--pb-r-sm) 0; padding: 13px 16px; font-size: 13.5px; line-height: 1.85; color: var(--pb-ink2); }
.pb-callout b { color: var(--pb-ink); }
.pb-callout--warn { border-left-color: var(--pb-warn); background: var(--pb-warn-soft); }
.pb-callout--danger { border-left-color: var(--pb-danger); background: var(--pb-danger-soft); }
.pb-callout--ok { border-left-color: var(--pb-ok); background: var(--pb-ok-soft); }
.pb-badge { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 700; letter-spacing: .02em; white-space: nowrap; }
.pb-badge--ok { background: var(--pb-ok-soft); color: var(--pb-ok); }
.pb-badge--warn { background: var(--pb-warn-soft); color: var(--pb-warn); }
.pb-badge--danger { background: var(--pb-danger-soft); color: var(--pb-danger); }
.pb-badge--info { background: var(--pb-brand-soft); color: var(--pb-brand); }
:root[data-theme="dark"] .pb-badge--info { color: var(--pb-brand2); }

/* ---------- 表格 ---------- */
.pb-table-wrap { overflow-x: auto; border: 1px solid var(--pb-line2); border-radius: var(--pb-r-sm); background: var(--pb-card); }
.pb-table { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 520px; }
.pb-table th, .pb-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--pb-line2); vertical-align: middle; }
.pb-table th { background: var(--pb-card2); font-size: 11.5px; font-weight: 700; color: var(--pb-ink2); white-space: nowrap; letter-spacing: .04em; }
.pb-table tbody tr:last-child td { border-bottom: none; }
.pb-table tbody tr:hover { background: var(--pb-a-soft); }
.pb-table td input[type="text"], .pb-table td input[type="number"], .pb-table td input[type="date"], .pb-table td select { padding: 6px 8px; font-size: 12.5px; min-width: 66px; background: var(--pb-card); }
.pb-table tfoot td { background: var(--pb-card2); font-weight: 700; border-top: 1px solid var(--pb-line); }
.pb-table .pb-num { font-family: var(--pb-mono); font-variant-numeric: tabular-nums; font-weight: 700; color: var(--pb-a); }
.pb-table .pb-del { border: 0; background: transparent; color: var(--pb-danger); font-size: 17px; line-height: 1; cursor: pointer; padding: 2px 6px; }

/* ---------- 进度 / 列表 / FAQ ---------- */
.pb-meter { height: 7px; border-radius: 99px; background: var(--pb-line2); overflow: hidden; }
.pb-meter > i { display: block; height: 100%; border-radius: 99px; background: var(--pb-a); transition: width .4s ease; }
.pb-list { display: grid; gap: 8px; }
.pb-list-item { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--pb-line2); border-radius: var(--pb-r-sm); background: var(--pb-card2); font-size: 13.5px; line-height: 1.75; }
.pb-list-item .n { flex: 0 0 auto; min-width: 21px; height: 21px; padding: 0 5px; display: grid; place-items: center; border-radius: 6px; background: var(--pb-a); color: #fff; font-family: var(--pb-mono); font-size: 11px; font-weight: 700; }
:root[data-theme="dark"] .pb-list-item .n { color: #131722; }
.pb-faq details { border-bottom: 1px solid var(--pb-line2); padding: 12px 2px; }
.pb-faq details:last-child { border-bottom: none; }
.pb-faq summary { cursor: pointer; font-weight: 680; font-size: 14px; color: var(--pb-ink); list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.pb-faq summary::-webkit-details-marker { display: none; }
.pb-faq summary::after { content: "+"; font-family: var(--pb-serif); color: var(--pb-a); font-size: 19px; line-height: 1; }
.pb-faq details[open] summary::after { content: "−"; }
.pb-faq details p { margin: 10px 0 2px; font-size: 13.5px; line-height: 1.9; color: var(--pb-ink2); }
.pb-footnote { margin-top: 30px; padding-top: 17px; border-top: 1px dashed var(--pb-line); font-size: 12.5px; line-height: 1.85; color: var(--pb-muted); }
.pb-empty { padding: 22px; text-align: center; color: var(--pb-muted); font-size: 13px; }

/* ---------- AI 结果 ---------- */
.pb-ai-box { margin-top: 14px; padding: 15px 17px; border: 1px dashed var(--pb-warm); border-radius: var(--pb-r-sm); background: var(--pb-warm-soft); font-size: 13.5px; line-height: 1.9; color: var(--pb-ink2); white-space: pre-wrap; word-break: break-word; }
.pb-ai-box:empty { display: none; }
.pb-ai-box.is-err { border-color: var(--pb-danger); background: var(--pb-danger-soft); color: var(--pb-danger); }

/* ---------- Toast / 报告（仅用户完成操作后触发，加载时绝不出现） ---------- */
.pb-toast { position: fixed; left: 50%; bottom: 30px; transform: translate(-50%, 14px); z-index: 100001; max-width: min(88vw, 440px); padding: 10px 18px; border-radius: 10px; background: #26242c; color: #fff; font-size: 13.5px; line-height: 1.6; box-shadow: 0 10px 32px rgba(0,0,0,.24); opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s; }
.pb-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.pb-toast.is-err { background: #8d3232; }
.pb-report { display: block; margin-top: 18px; scroll-margin-top: 20px; }
.pb-report-inner { width: 100%; background: var(--pb-card); color: var(--pb-ink); border: 1px solid var(--pb-line); border-left: 3px solid var(--pb-a); border-radius: var(--pb-r); box-shadow: var(--pb-shadow-sm); padding: 20px 24px; }
.pb-report-inner h3 { margin: 0 0 5px; font-size: 19px; }
.pb-report-inner .pb-report-sub { font-size: 12.5px; color: var(--pb-muted); margin-bottom: 14px; }
.pb-report-inner .pb-report-body { font-size: 13.5px; line-height: 1.9; color: var(--pb-ink2); }
.pb-report-inner .pb-report-body table { width: 100%; border-collapse: collapse; margin: 10px 0; font-size: 12.5px; }
.pb-report-inner .pb-report-body th, .pb-report-inner .pb-report-body td { border-bottom: 1px solid var(--pb-line2); padding: 6px 8px; text-align: left; }
.pb-report-foot { display: flex; justify-content: flex-end; gap: 9px; margin-top: 18px; }

/* ---------- 公共底部套件配色对齐（结构完全复用公共组件） ---------- */
.pb .tskb {
    --tskb-bg: var(--pb-card);
    --tskb-soft: var(--pb-card2);
    --tskb-ink: var(--pb-ink);
    --tskb-ink2: var(--pb-ink2);
    --tskb-ink3: var(--pb-muted);
    --tskb-line: var(--pb-line2);
    --tskb-line2: var(--pb-line2);
    --tskb-accent: var(--pb-a);
    --tskb-accent-soft: var(--pb-a-soft);
}
:root[data-theme="dark"] .pb .tskb {
    --tskb-bg: var(--pb-card); --tskb-soft: var(--pb-card2);
    --tskb-ink: var(--pb-ink); --tskb-ink2: var(--pb-ink2); --tskb-ink3: var(--pb-muted);
    --tskb-line: var(--pb-line2); --tskb-line2: var(--pb-line2);
    --tskb-accent: var(--pb-a); --tskb-accent-soft: var(--pb-a-soft);
}
.pb .tskb-card, .pb .tskb-panel, .pb .tskb-rel { box-shadow: var(--pb-shadow-sm); }
.pb .tskb-related h3 { color: var(--pb-ink); }
/* 公共推荐卡是 layouts/app.blade.php 直接挂在 body 下的，不在 .pb 作用域内；
   本基座 CSS 仅由批次 6 的 12 个页面加载，因此在此隐藏不影响任何线上页面，
   同时消除 390px 窄屏下推荐卡造成的横向溢出。 */
.tool-rec { display: none !important; }

/* ---------- 响应式 ---------- */
.pb .pb-sec, .pb .pb-card, .pb .pb-table-wrap { min-width: 0; max-width: 100%; }
.pb .pb-card > *, .pb .pb-hero > * { min-width: 0; }
@media (max-width: 880px) {
    .pb-shell { padding: 0 18px; }
    .pb-card { padding: 17px; }
    .pb-hero h1 { font-size: clamp(26px, 6vw, 34px); }
    .pb-sub { font-size: 14.5px; }
}
@media (max-width: 560px) {
    .pb { font-size: 14.5px; }
    .pb-shell { padding: 0 14px; }
    .pb-card { padding: 14px; }
    .pb-kpi .v { font-size: 25px; }
    .pb-btn { padding: 9px 14px; font-size: 13.5px; }
    .pb-hero { padding-top: 26px; }
}
@media print {
    .pb { background: #fff; color: #000; padding: 0; }
    .pb .pb-btn, .pb .pb-demo, .pb-toast, .pb .tsk-crumb-bar { display: none !important; }
    .pb-card, .pb-kpi { box-shadow: none; border-color: #ccc; break-inside: avoid; }
    .pb-sec, .pb-report { break-inside: avoid; }
}
