Walks TEXT_NODE children of the host element, splits at match boundaries,
and wraps matched portions in <mark> elements. No innerHTML - safe by
construction. The <mark> element has correct native SR semantics (announced
as "highlighted" in most screen readers).
Original DOM structure is restored when the term changes or the directive is destroyed.