/* Макро → НПЗ и ставка (public/terminal/npz.js): панель параметров модели, ползунки, стресс-таблица, схема модели */
.npzwrap .npzpre{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.npzwrap .npzpre .chip{height:24px;font-size:10.5px;font-weight:400}
.npzwrap .npzpre .z{font:10px var(--mono);color:var(--dim);align-self:center;margin-left:4px}
.npzctl{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px 14px;border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:8px 12px 10px;margin-bottom:12px}
.npzctl section{min-width:0}
.npzctl h5{font:400 9.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin:2px 0 4px;display:flex;align-items:center;gap:8px}
.npzctl h5 .chip{height:18px;font-size:9.5px;padding:0 6px;letter-spacing:0;text-transform:none}
.npzrow{display:grid;grid-template-columns:minmax(0,1fr) 84px 58px;align-items:center;gap:8px;min-height:22px}
.npzrow label{font-size:10.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.npzrow output{font:10.5px var(--mono);color:var(--tx);text-align:right;white-space:nowrap}
.npzrow.off label,.npzrow.off output{opacity:.45}
.npzrow.npzchips{grid-template-columns:auto minmax(0,1fr);padding:1px 0}
.npzrow.npzchips span{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}
.npzrow.npzchips .chip{height:18px;font-size:9.5px;padding:0 6px}
.npzwrap input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:14px;background:transparent;margin:0;cursor:pointer}
.npzwrap input[type=range]::-webkit-slider-runnable-track{height:2px;background:var(--line);border-radius:1px}
.npzwrap input[type=range]::-moz-range-track{height:2px;background:var(--line);border-radius:1px}
.npzwrap input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:var(--amber);margin-top:-4px;border:0;transition:transform .2s cubic-bezier(.2,.7,.2,1)}
.npzwrap input[type=range]::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:var(--amber);border:0}
.npzwrap input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.25)}
.npzwrap input[type=range]:disabled{cursor:default;opacity:.4}
.npzwrap .fbt.hot b{color:var(--red)}.npzwrap .fbt.cool b{color:var(--green)}
.npzwrap .npzsum{border:1px solid var(--line);border-radius:6px;padding:8px 12px;background:var(--panel);margin-bottom:12px;font-size:11.5px;line-height:1.55;color:var(--tx)}
.npzwrap .npzsum p{margin:0 0 4px}.npzwrap .npzsum p:last-child{margin:0}
.npzwrap .npzsum .z{color:var(--dim)}
.npzwrap .npzst{border-collapse:collapse;font:10.5px var(--mono)}
.npzwrap .npzst th,.npzwrap .npzst td{padding:4px 8px;text-align:right;border:1px solid var(--line);font-weight:400;white-space:nowrap}
.npzwrap .npzst th{color:var(--dim);background:var(--panel)}
.npzwrap .npzst td.l,.npzwrap .npzst th.l{text-align:left}
.npzwrap .npzst td i{font-style:normal;color:var(--red);margin-left:3px}
.npzwrap .npzst td.cur{outline:1px solid var(--amber);outline-offset:-2px}
.npzwrap .npzchain{display:flex;flex-wrap:wrap;align-items:stretch;gap:6px;margin:4px 0 10px}
.npzwrap .npzchain div{border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:6px 8px;font-size:10.5px;color:var(--tx);max-width:190px}
.npzwrap .npzchain div small{display:block;color:var(--dim);font:9.5px var(--mono);margin-top:2px}
.npzwrap .npzchain b{font-weight:400;color:var(--dim);align-self:center}
.npzwrap .npzq{border-left:2px solid var(--line);padding:2px 0 2px 10px;margin:0 0 8px;font-size:11px;line-height:1.5;color:var(--tx)}
.npzwrap .npzq small{display:block;color:var(--dim);font:9.5px var(--mono);margin-top:2px}
.npzwrap .npzq small a{color:var(--dim);text-decoration:none}.npzwrap .npzq small a:hover{color:var(--amber)}
.npzwrap .npzeq{font:10.5px/1.7 var(--mono);color:var(--tx);white-space:pre-wrap;margin:0}
.npzwrap td.wrap,.npzwrap .tbl td.wrap{white-space:normal;min-width:180px}
.npzwrap .fbtiles{grid-template-columns:repeat(4,minmax(0,1fr))}
.npzwrap .fbt i{white-space:normal;overflow:visible}
@container (max-width:1000px){.npzwrap .fbtiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (max-width:700px){.npzwrap .fbrow{grid-template-columns:minmax(0,1fr)}}
@container (max-width:480px){.npzwrap .fbtiles{grid-template-columns:minmax(0,1fr)}}

/* вкладка «Разрыв и Тейлор» (npzgapui.js): таблица вводных как у владельца, ячейки правятся */
.npzwrap .npzgt{border-collapse:collapse;font:11px var(--mono);min-width:520px}
.npzwrap .npzgt th,.npzwrap .npzgt td{padding:2px 10px;text-align:right;font-weight:400;white-space:nowrap}
.npzwrap .npzgt th{color:var(--dim);border-bottom:1px solid var(--line)}
.npzwrap .npzgt td.l{text-align:left;font-family:var(--sans);color:var(--tx);min-width:150px}
.npzwrap .npzgt tr.sep td{border-bottom:1px solid var(--line)}
.npzwrap .npzgt td.sh{background:color-mix(in srgb,var(--amber) 9%,transparent)}
.npzwrap .npzgt td.res{color:var(--tx)}
.npzwrap .npzgt td.diff{outline:1px solid var(--red);outline-offset:-2px}
.npzwrap .npzgt tr.own td{color:var(--dim)}
.npzwrap .npzin{width:52px;background:transparent;border:0;border-bottom:1px dotted var(--line);color:var(--tx);font:11px var(--mono);text-align:right;padding:1px 2px;outline:none;transition:border-color .3s cubic-bezier(.2,.7,.2,1)}
.npzwrap .npzin:hover{border-bottom-color:var(--dim)}.npzwrap .npzin:focus{border-bottom:1px solid var(--amber)}
.npzwrap tr.hot td{background:color-mix(in srgb,var(--amber) 7%,transparent)}
