/* Bancadas térmicas (convecção natural e forçada): ver static/js/visual-termico.js */
.bench-svg { display:block; width:100%; height:auto; max-height:340px; touch-action:none; user-select:none; font-family:'IBM Plex Sans','Segoe UI',sans-serif; }
.bench-svg .nm-line { fill:none; stroke-width:1.4; stroke-linecap:round; opacity:.7; }
.bench-svg .nm-flow { fill:none; stroke-width:3.4; stroke-linecap:round; stroke-dasharray:.1 18; animation:nm-flow var(--spd,1.6s) linear infinite; animation-delay:var(--d,0s); }
.bench-svg .nm-slow { animation-duration:3.2s; }
.bench-svg .nm-chip { fill:#fff; stroke:#cbdce3; }
.bench-svg .nm-chip-text { font:600 12.5px 'IBM Plex Sans','Segoe UI',sans-serif; fill:#172b3a; }
.bench-svg .nm-note { font:500 11px 'IBM Plex Sans','Segoe UI',sans-serif; fill:#526879; }
.bench-svg .nm-lead { fill:none; stroke:#98b8c9; stroke-width:.9; stroke-dasharray:2 3; }
.bench-svg .nm-grip rect { fill:#fff; stroke:#98b8c9; filter:drop-shadow(0 2px 3px #244c6122); }
.bench-svg .nm-grip path { fill:none; stroke:#225d91; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.bench-svg [data-field], .bench-svg [data-temperature] { cursor:ns-resize; }
.bench-svg [data-field]:hover .nm-grip rect, .bench-svg [data-temperature]:hover .nm-grip rect { stroke:#c46532; }
.bench-svg [data-field]:focus-visible, .bench-svg [data-temperature]:focus-visible { outline:2px solid #258297; outline-offset:4px; }
.bench-svg .nm-fan { animation:nm-spin var(--rot,1.5s) linear infinite; }
@keyframes nm-flow { to { stroke-dashoffset:-32; } }
@keyframes nm-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .bench-svg .nm-flow, .bench-svg .nm-fan { animation:none; } }
