/* assets/css/physics/thermodynamics/convection-boundary-layer-heat-transfer-explained.css — 本页专属样式（en/zh 共用） */
/* 依赖 /assets/css/style.css（设计令牌 + .part/.tag 骨架 + 外壳态）。
   图形/动画样式自 svgs/done/physics-15-convection-boundary-layer-heat-transfer-explained.html 预览 <style> 并入驻此
   （页面禁止内联 <style>）。零件区分色与动画按 body[data-topic="convection-boundary-layer"] 作用域限定；
   本页专属类统一 cbl-* 前缀，与其它页不冲突。动画由 #stage 的 .is-running 驱动。 */

/* 零件本体/区分色（作用域限定 · 均在中灰蓝值域内） */
body[data-topic="convection-boundary-layer"] .part .body{fill:#c2d1e4;stroke:#2563eb;stroke-width:1.6}
body[data-topic="convection-boundary-layer"] .part .body2{fill:#dde7f4;stroke:#60a5fa;stroke-width:1.2}
body[data-topic="convection-boundary-layer"] .part .body3{fill:#aab9cd;stroke:none}
body[data-topic="convection-boundary-layer"] .part .accent{fill:none;stroke:#6b7b8c;stroke-width:2;stroke-linecap:round}
body[data-topic="convection-boundary-layer"] .part.is-active .body{fill:#9dc3f5;stroke:#1d4ed8;stroke-width:2.2}
body[data-topic="convection-boundary-layer"] .part.is-active .body2{fill:#c4daf8;stroke:#3b82f6;stroke-width:1.4}
body[data-topic="convection-boundary-layer"] .part.is-active .body3{fill:#1d4ed8}
body[data-topic="convection-boundary-layer"] .part.is-active{filter:drop-shadow(0 0 12px rgba(29,78,216,.5))}

/* 热板：材质专用饱和色（豁免） */
body[data-topic="convection-boundary-layer"] .part[data-id="part-hot-plate"] .body{fill:#f6b67a;stroke:#c2410c;stroke-width:2}

/* 热边界层：暖区着色 */
body[data-topic="convection-boundary-layer"] .part[data-id="part-boundary-layer"] .body2{fill:#bfe0f5;stroke:#3b82f6;fill-opacity:.55}

/* 插图底板 */
.cbl-panel{fill:#fbfdff;stroke:#cfd8e3;stroke-width:1.4;stroke-dasharray:6 6}

/* 暖气上升箭头 / 冷气补入箭头 */
.cbl-rise{stroke:#ea580c;stroke-width:3.4;fill:none;stroke-linecap:round;stroke-dasharray:10 8;
  animation:cbl-up 1.3s linear infinite;animation-play-state:paused}
.cbl-sink{stroke:#2563eb;stroke-width:3.2;fill:none;stroke-linecap:round;stroke-dasharray:10 8;
  animation:cbl-down 1.5s linear infinite;animation-play-state:paused}
.is-running .cbl-rise,.is-running .cbl-sink{animation-play-state:running}
@keyframes cbl-up{to{stroke-dashoffset:-36}}
@keyframes cbl-down{to{stroke-dashoffset:36}}

/* 暖流体涌动（边界层内热色脉动） */
.cbl-warm{animation:cbl-warm 6s ease-in-out infinite;animation-play-state:paused;pointer-events:none}
.is-running .cbl-warm{animation-play-state:running}
@keyframes cbl-warm{0%{opacity:.12}50%{opacity:.42}100%{opacity:.12}}

/* 剖面曲线 */
.cbl-vel{stroke:#1d4ed8;stroke-width:3.2;fill:none;stroke-linecap:round}
.cbl-temp{stroke:#dc2626;stroke-width:3.2;fill:none;stroke-linecap:round}
.cbl-curve-p{animation:cbl-pulse 6s ease-in-out infinite;animation-play-state:paused}
.is-running .cbl-curve-p{animation-play-state:running}
@keyframes cbl-pulse{0%{filter:none}50%{filter:drop-shadow(0 0 7px rgba(29,78,216,.5))}100%{filter:none}}

/* δ 厚度括号 / 坐标轴 */
.cbl-delta{stroke:#7d8ea3;stroke-width:1.6;fill:none}
.cbl-arrow-axis{stroke:#9aa9bd;stroke-width:2;fill:none}