detail
DoughCalc v29 deployed (backed up first). USR369 cleared cache and got the exact same broken 2-page printout with raw input fields, ruling out caching as the cause. Root cause: the hide-before-print logic only ran inside our own Print button's click handler - if USR369 printed via the phone/browser's own Print menu/icon instead of tapping our in-app button, that logic never executed. Fixed by hooking preparePrint/restoreAfterPrint into the native beforeprint/afterprint window events, which fire for any print trigger, not just our button.