/* /assets/css/systems/business-ops/how-departmental-budget-allocation-flows-in-a-firm-explained.css — 本页专属样式（en/zh 共用） */
/* ============ 企业部门预算分配 · Departmental budget allocation ============
   抽象系统流程图：方框 + 箭头，无外壳。共享类（.part/.tag/.tag-sm/.is-running/
   @keyframes）已在 base 定义；零件区分色与动画用 body[data-topic="budget-allocation"]
   作用域限定，避免与其它页互扰。 */

/* 零件本体 / 高亮（base 未含，本页补全） */
.part .body{fill:var(--metal);stroke:#2563eb;stroke-width:1.6}
.part .body2{fill:var(--metal-2);stroke:#60a5fa;stroke-width:1.2}
.part .body3{fill:#aab9cd;stroke:none}
.part .accent{fill:none;stroke:#6b7b8c;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.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 .accent{stroke:#1d4ed8}
.part.is-active{filter:drop-shadow(0 0 12px rgba(29,78,216,.5))}

/* 小字对比度修正（页面作用域） */
body[data-topic="budget-allocation"] .tag-sm{fill:#5b6472;font-size:11px}

/* 各部件区分色（作用域限定 · 均在中灰蓝值域内，禁近白） */
body[data-topic="budget-allocation"] .part[data-id="part-finance"]:not(.is-active) .body{fill:#bccbe0}
body[data-topic="budget-allocation"] .part[data-id="part-budget-pool"]:not(.is-active) .body{fill:#b7c9dd}
body[data-topic="budget-allocation"] .part[data-id="part-dept-ops"]:not(.is-active) .body{fill:#c2d1e4}
body[data-topic="budget-allocation"] .part[data-id="part-dept-marketing"]:not(.is-active) .body{fill:#c6d3e5}
body[data-topic="budget-allocation"] .part[data-id="part-dept-rd"]:not(.is-active) .body{fill:#bfcee2}
body[data-topic="budget-allocation"] .part[data-id="part-dept-support"]:not(.is-active) .body{fill:#c0cfe3}

/* 分配流（向下·虚线蓝）/ 反馈流（向上·虚线橙） */
.ba-alloc{fill:none;stroke:#2563eb;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:11 9;animation:ba-down 1.6s linear infinite;animation-play-state:paused}
.ba-return{fill:none;stroke:#d97706;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:11 9;animation:ba-up 1.6s linear infinite;animation-play-state:paused}
.is-running .ba-alloc,.is-running .ba-return{animation-play-state:running}
@keyframes ba-down{to{stroke-dashoffset:-40}}
@keyframes ba-up{to{stroke-dashoffset:40}}
.ba-coin circle{fill:#fcd34d;stroke:#d97706;stroke-width:1.6}
.ba-coin text{fill:#92400e;font-family:var(--mono);font-size:15px;font-weight:700}

@media (prefers-reduced-motion:reduce){
  .is-running .ba-alloc,.is-running .ba-return{animation:none}
  .ba-alloc,.ba-return{stroke-dashoffset:0}
}