/* /assets/css/machines/automotive/how-abs-brake-system-works-cutaway.css — 本页专属样式（en/zh 共用） */
/* 共享零件本体/区分色类（与机器类目共用语义） */
.part .body{fill:var(--metal);stroke:#8ea0b5;stroke-width:1.6}
.part .body2{fill:var(--metal-2);stroke:#a9b7c9;stroke-width:1.2}
.part .body3{fill:#c6d0dd;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))}

/* 共享标签文字类（小字文字色 ≥4.5:1） */
.tag{fill:#475569;font-family:var(--mono);font-size:13px;letter-spacing:.02em;transition:fill .3s;pointer-events:none}
.part.is-active .tag{fill:var(--accent-2)}
.tag-sm{font-size:10.5px;fill:#5b6472}
.part.is-active .tag-sm{fill:var(--accent)}

/* 共享旋转动画（.ab-disc-rot / .ab-pump-rot 复用） */
@keyframes spin{to{transform:rotate(360deg)}}

/* 管道流动（共享类） */
.pipe-case{fill:none;stroke:#94a3b8;stroke-width:24;stroke-linecap:round;stroke-linejoin:round}
.pipe-flow{
  fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:10 16;opacity:0;transition:opacity .4s;
}
.pipe-flow.hot{stroke:#ea580c}
.pipe-flow.cold{stroke:#2563eb}
.is-running .pipe-flow{opacity:.95;animation:flow 1.15s linear infinite}
.is-running .pipe-flow.hot{animation-duration:.9s}
@keyframes flow{to{stroke-dashoffset:-26}}

/* ============ ABS 制动系统剖面图 · Anti-lock brake system cutaway ============
   本图专属类统一 ab-* 前缀；共享类（.part/.body/.body2/.body3/.accent/.tag/.tag-sm/
   .pipe-case/.pipe-flow(+hot/cold)/.is-running/@keyframes flow/@keyframes spin）沿用，不重定义。
   零件区分色与动画用 body[data-topic="abs-brake"] 作用域限定，避免与其它页互扰。 */

/* 主题蓝体系：零件描边 / 小字对比度修正（页面作用域，非重定义共享规则） */
body[data-topic="abs-brake"] .part .body{stroke:#2563eb;stroke-width:1.6}
body[data-topic="abs-brake"] .part .body2{stroke:#60a5fa}
body[data-topic="abs-brake"] .tag-sm{fill:#5b6472}

/* 各部件区分色（作用域限定 · per-part distinct fills） */
body[data-topic="abs-brake"] .part[data-id="part-brake-pedal"]:not(.is-active) .body{fill:#c6d3e5}
body[data-topic="abs-brake"] .part[data-id="part-brake-pedal"]:not(.is-active) .body2{fill:#e0eaf5}
body[data-topic="abs-brake"] .part[data-id="part-master-cylinder"]:not(.is-active) .body{fill:#cbd7e7}
body[data-topic="abs-brake"] .part[data-id="part-master-cylinder"]:not(.is-active) .body2{fill:#e6eef8}
body[data-topic="abs-brake"] .part[data-id="part-hydraulic-unit"]:not(.is-active) .body{fill:#c2d1e4}
body[data-topic="abs-brake"] .part[data-id="part-hydraulic-unit"]:not(.is-active) .body2{fill:#d9e4f2}
body[data-topic="abs-brake"] .part[data-id="part-solenoid-valve"]:not(.is-active) .body{fill:#bfcee2}
body[data-topic="abs-brake"] .part[data-id="part-solenoid-valve"]:not(.is-active) .body2{fill:#d5e1f1}
body[data-topic="abs-brake"] .part[data-id="part-pump"]:not(.is-active) .body{fill:#b9c9de}
body[data-topic="abs-brake"] .part[data-id="part-pump"]:not(.is-active) .body2{fill:#d7e2f2}
body[data-topic="abs-brake"] .part[data-id="part-accumulator"]:not(.is-active) .body{fill:#c9d5e6}
body[data-topic="abs-brake"] .part[data-id="part-accumulator"]:not(.is-active) .body2{fill:#e3ecf6}
body[data-topic="abs-brake"] .part[data-id="part-brake-line"]:not(.is-active) .body{fill:#c3d0e1}
body[data-topic="abs-brake"] .part[data-id="part-ecu"]:not(.is-active) .body{fill:#c5d2e4}
body[data-topic="abs-brake"] .part[data-id="part-ecu"]:not(.is-active) .body2{fill:#dde7f4}
body[data-topic="abs-brake"] .part[data-id="part-caliper"]:not(.is-active) .body{fill:#c8d4e5}
body[data-topic="abs-brake"] .part[data-id="part-brake-disc"]:not(.is-active) .body{fill:#becfe3}
body[data-topic="abs-brake"] .part[data-id="part-brake-disc"]:not(.is-active) .body2{fill:#dce7f3}
body[data-topic="abs-brake"] .part[data-id="part-wheel-sensor"]:not(.is-active) .body{fill:#cad6e6}
body[data-topic="abs-brake"] .part[data-id="part-shell-housing"]:not(.is-active) .body{fill:#dfe6ef;stroke:#9aa6b8}

/* 制动液（本图专属材质） */
.ab-fluid{fill:#bcd4f5;stroke:#7ba7e6;stroke-width:1}

/* ============ 动画 ============ */
/* 踏板踩下 / 松开 */
.ab-pedal{transform-box:view-box;transform-origin:128px 470px;animation:ab-pedal 1.6s ease-in-out infinite;animation-play-state:paused}
.is-running .ab-pedal{animation-play-state:running}
@keyframes ab-pedal{0%,100%{transform:rotate(0)}50%{transform:rotate(-6deg)}}

/* 主缸活塞压缩 */
.ab-piston{transform-box:view-box;animation:ab-piston 1.6s ease-in-out infinite;animation-play-state:paused}
.is-running .ab-piston{animation-play-state:running}
@keyframes ab-piston{0%,100%{transform:translateX(0)}50%{transform:translateX(9px)}}

/* 刹车盘旋转 */
.ab-disc-rot{transform-box:view-box;transform-origin:1040px 600px;animation:spin 4s linear infinite;animation-play-state:paused}
.is-running .ab-disc-rot{animation-play-state:running}

/* 回油泵转动 */
.ab-pump-rot{transform-box:view-box;transform-origin:730px 422px;animation:spin .7s linear infinite;animation-play-state:paused}
.is-running .ab-pump-rot{animation-play-state:running}

/* 电磁阀柱塞开 / 合 */
.ab-plunger{transform-box:view-box;animation:ab-plunger .8s ease-in-out infinite;animation-play-state:paused}
.is-running .ab-plunger{animation-play-state:running}
@keyframes ab-plunger{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

/* 卡钳夹紧 / 松开 */
.ab-clamp{transform-box:view-box;animation:ab-clamp 1.6s ease-in-out infinite;animation-play-state:paused}
.is-running .ab-clamp{animation-play-state:running}
@keyframes ab-clamp{0%,100%{transform:translateX(0)}45%,60%{transform:translateX(-6px)}}

/* 轮速传感器信号脉冲 */
.ab-wave{opacity:0}
.is-running .ab-wave{animation:ab-wave 1.2s ease-out infinite}
@keyframes ab-wave{0%{opacity:.85;transform:translateX(0)}100%{opacity:0;transform:translateX(-10px)}}

/* HCU 内部油道（静态壳 + 流动虚线） */
.ab-channel{fill:none;stroke:#c9d6ea;stroke-width:8;stroke-linecap:round;stroke-linejoin:round}
.ab-channel-flow{fill:none;stroke:#2563eb;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:8 14;opacity:0}
.is-running .ab-channel-flow{opacity:.9;animation:flow 1.4s linear infinite}

/* ABS 快速泄压 / 保压循环：油管虚线快速脉动 */
.ab-abs-flow{stroke-dasharray:7 9}
.is-running .ab-abs-flow{animation:ab-absflow .45s linear infinite}
@keyframes ab-absflow{to{stroke-dashoffset:-24}}

/* 电气信号线（轮速传感器 / ECU / HCU） */
.ab-wire{fill:none;stroke:#5b6472;stroke-width:2;stroke-dasharray:5 6;opacity:.8}
.is-running .ab-wire{animation:flow 1.2s linear infinite}