Badge IDs changed from f"{directorate}|{frag}" to f"{directorate}|{search_term}|{frag}" to handle fragments appearing under multiple indications within the same directorate. Callback parsing updated to use rsplit("|", 1)[-1] for the 3-part key.