/* /assets/css/systems/org-institutions/how-public-budget-collection-and-allocation-flow-works-explained.css — 本页专属样式（en/zh 共用） */
/* ============ 公共预算征收与分配流程 · Public budget collection & allocation (systems) ============
   抽象系统流程图：方框 + 箭头，无外壳。共享类（.part/.body/.body2/.body3/.accent/
   .tag/.tag-sm/.is-running/@keyframes）已在 base 定义；零件区分色与动画用
   body[data-topic="public-budget-flow"] 作用域限定，避免与其它页互扰。
   红线：仅作抽象模型，不涉及任何现实国家 / 组织 / 政体的评判。 */

/* 主题蓝体系：零件描边 / 小字对比度修正（页面作用域） */
body[data-topic="public-budget-flow"] .part .body{stroke:#2563eb;stroke-width:1.6}
body[data-topic="public-budget-flow"] .part .body2{stroke:#60a5fa;stroke-width:1.2}
body[data-topic="public-budget-flow"] .tag-sm{fill:#5b6472;font-size:11px}

/* 各部件区分色（作用域限定 · per-part distinct fills，均在中灰蓝值域内，禁近白） */
body[data-topic="public-budget-flow"] .pb-p-revenue .body{fill:#c2d1e4}
body[data-topic="public-budget-flow"] .pb-p-revenue .body2{fill:#dde7f4}
body[data-topic="public-budget-flow"] .pb-p-collection .body{fill:#bccbe0}
body[data-topic="public-budget-flow"] .pb-p-collection .body2{fill:#d8e4f3}
body[data-topic="public-budget-flow"] .pb-p-pool .body{fill:#c6d3e5}
body[data-topic="public-budget-flow"] .pb-p-pool .body2{fill:#e0eaf5}
body[data-topic="public-budget-flow"] .pb-p-allocation .body{fill:#bfcee2}
body[data-topic="public-budget-flow"] .pb-p-allocation .body2{fill:#dae6f4}
body[data-topic="public-budget-flow"] .pb-p-programs .body{fill:#c4d1e3}
body[data-topic="public-budget-flow"] .pb-p-programs .body2{fill:#dce7f3}
body[data-topic="public-budget-flow"] .pb-p-oversight .body{fill:#c6d3e5}
body[data-topic="public-budget-flow"] .pb-p-oversight .body2{fill:#e0eaf5}
body[data-topic="public-budget-flow"] .pb-p-report .body{fill:#bccbe0}
body[data-topic="public-budget-flow"] .pb-p-report .body2{fill:#d8e4f3}

/* 高亮态（页面引擎 is-active 时） */
.part.is-active .body{fill:#9dc3f5;stroke:#1d4ed8;stroke-width:2.2}
.part.is-active .body2{fill:#c4daf8;stroke:#3b82f6;stroke-width:1.4}
.part.is-active .body3{fill:#1d4ed8}
.part.is-active{filter:drop-shadow(0 0 12px rgba(29,78,216,.5))}

/* 资金流（向下·实蓝）/ 监督核查流（虚蓝）/ 披露流（虚橙） */
.pb-flow{fill:none;stroke:#2563eb;stroke-width:3;stroke-linecap:round;stroke-dasharray:12 10;animation:pb-move 1.2s linear infinite;animation-play-state:paused}
.pb-check{fill:none;stroke:#5b8fd6;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:9 9;animation:pb-move 1.5s linear infinite;animation-play-state:paused}
.pb-report{fill:none;stroke:#ea580c;stroke-width:2.6;stroke-linecap:round;stroke-dasharray:10 9;animation:pb-move 1.7s linear infinite;animation-play-state:paused}
.is-running .pb-flow,.is-running .pb-check,.is-running .pb-report{animation-play-state:running}
@keyframes pb-move{to{stroke-dashoffset:-44}}

/* 沿资金链移动的“资金包” */
.pb-coin{fill:#2563eb;animation:pb-coin 3.4s linear infinite;animation-play-state:paused}
.is-running .pb-coin{animation-play-state:running}
@keyframes pb-coin{0%{transform:translateY(0);opacity:0}8%{opacity:1}92%{opacity:1}100%{transform:translateY(410px);opacity:0}}

@media (prefers-reduced-motion:reduce){
  .is-running .pb-flow,.is-running .pb-check,.is-running .pb-report,.is-running .pb-coin{animation:none}
}