feat/201-debounce-weights
main
Add useDebouncedValue hook; replace direct mutate call in handleWeightsChange with debounced pendingWeightsChange state to collapse rapid 'Применить' clicks into a single /analyze request. Add 'Пересчёт…' indicator during re-analyze. Closes #201