/* /assets/css/sim/physical/boundary-layer-thickness-dynamic-change-simulator.css — 本页专属样式（en/zh 共用），源文件 <style> 搬运 + 无障碍色 */

/* ============ SVG 内文字（源文件 .tag/.tag-sm/.tag-num 搬运，文字色改无障碍值） ============ */
body[data-topic="boundary-layer-thickness"] .svg-title{fill:#16202c;}
body[data-topic="boundary-layer-thickness"] .tag{
  font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-size:13px;fill:#334155;
}
body[data-topic="boundary-layer-thickness"] .tag-sm{
  font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-size:11px;fill:#5b6472;
}
body[data-topic="boundary-layer-thickness"] .tag-num{
  font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-size:11px;fill:#5b6472;
}
body[data-topic="boundary-layer-thickness"] .legend{fill:#5b6472;}

/* ============ 外壳 ============ */
body[data-topic="boundary-layer-thickness"] .shell-layer{pointer-events:none;}

/* ============ 自由流虚线 ============ */
body[data-topic="boundary-layer-thickness"] .free-stream{
  stroke:#94a3b8;stroke-width:1.5;stroke-dasharray:10 10;
  animation:blFlowMove 1s linear infinite;
}
@keyframes blFlowMove{to{stroke-dashoffset:-20}}

/* ============ 湍流波纹 ============ */
body[data-topic="boundary-layer-thickness"] .turbulence-wave{
  fill:none;stroke:#93c5fd;stroke-width:1.2;
  stroke-dasharray:4 4;
  animation:blWaveMove 0.8s linear infinite;
}
@keyframes blWaveMove{to{stroke-dashoffset:-8}}

/* ============ 控制面板（源文件 .controls 搬运） ============ */
body[data-topic="boundary-layer-thickness"] .controls{
  width:100%;margin:10px 0 4px;background:#fff;border:1px solid #dbe3ee;border-radius:12px;
  padding:16px 20px 18px;display:flex;flex-wrap:wrap;gap:16px 26px;
}
body[data-topic="boundary-layer-thickness"] .ctrl-group{flex:1 1 300px;display:flex;flex-direction:column;gap:6px;}
body[data-topic="boundary-layer-thickness"] .ctrl-group label{font-size:13px;color:#475569;display:flex;justify-content:space-between;align-items:baseline;}
body[data-topic="boundary-layer-thickness"] .ctrl-group label b{color:#1d4ed8;font-size:15px;}
body[data-topic="boundary-layer-thickness"] input[type="range"]{
  -webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:4px;
  background:linear-gradient(90deg,#bfdbfe,#1d4ed8);outline:none;cursor:pointer;
}
body[data-topic="boundary-layer-thickness"] input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;
  background:#fff;border:3px solid #1d4ed8;box-shadow:0 2px 6px rgba(29,78,216,.35);cursor:grab;
}
body[data-topic="boundary-layer-thickness"] input[type="range"]::-webkit-slider-thumb:active{cursor:grabbing;}
body[data-topic="boundary-layer-thickness"] input[type="range"]::-moz-range-thumb{
  width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid #1d4ed8;
  box-shadow:0 2px 6px rgba(29,78,216,.35);cursor:grab;
}
body[data-topic="boundary-layer-thickness"] .readouts{display:flex;gap:10px;flex-wrap:wrap;width:100%;}
body[data-topic="boundary-layer-thickness"] .readout{
  flex:1 1 140px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;
  padding:9px 12px;text-align:center;
}
body[data-topic="boundary-layer-thickness"] .readout .k{font-size:11px;color:#5b6472;letter-spacing:.03em;margin-bottom:3px;}
body[data-topic="boundary-layer-thickness"] .readout .v{font-size:19px;font-weight:700;color:#1d4ed8;font-variant-numeric:tabular-nums;line-height:1.1;}
body[data-topic="boundary-layer-thickness"] .readout .v small{font-size:11px;font-weight:500;color:#5b6472;margin-left:2px;}
body[data-topic="boundary-layer-thickness"] .readout.blue{background:#eff6ff;border-color:#bfdbfe;}
body[data-topic="boundary-layer-thickness"] .readout.blue .v{color:#2563eb;}
body[data-topic="boundary-layer-thickness"] .readout.orange{background:#fff7ed;border-color:#fed7aa;}
body[data-topic="boundary-layer-thickness"] .readout.orange .v{color:#b45309;}
body[data-topic="boundary-layer-thickness"] .readout.gold{background:#fefce8;border-color:#fde68a;}
body[data-topic="boundary-layer-thickness"] .readout.gold .v{color:#b45309;}

/* ============ 无障碍：减弱动效 ============ */
@media (prefers-reduced-motion:reduce){
  body[data-topic="boundary-layer-thickness"] .free-stream,
  body[data-topic="boundary-layer-thickness"] .turbulence-wave{animation:none;stroke-dasharray:none;opacity:.4;}
}

/* ============ 移动端：控制面板排在能量链之后 ============ */
@media (max-width:1160px){
  body[data-topic="boundary-layer-thickness"] .controls{order:4;}
}
