43e37df39f13db5eb79a01783d176dc9003fa0f4
- Rounding drift: last installment computed as remainder (contract - cumSoFar) so column sums match exactly - XSS: input values set via .value property assignment instead of attribute interpolation in innerHTML - nookPct: getInputs() now derives nookPct as 100 - ngpmPct (single source of truth) - Confirm guard: onCountChange only prompts when n differs from current installments.length - Export filename: uses Buddhist Era year (getFullYear() + 543) consistent with all date displays
Description
RMUTR workspace
Languages
HTML
100%