616f328db5
Campaign #27 (house AdRevSplit text ad) was reported "broken" with no note while the target framed and loaded fine; the report dialog was prompt() with 'broken' as the default value, so one stray OK filed it. Now IAP.ask with an explicit, validated reason and an optional note; common.js tag bumped on all pages. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>