Added extractToothSurface() helper that parses "#NN [SURFACES]" from any procedure input (tooth 1-32, surface letters O/M/D/B/L/F/I/V). Applied to all lookup paths so any procedure with #14 or #29 OB carries toothNumber and toothSurface through to the DDMA Selenium worker. Also propagate toothNumber/toothSurface in matchedCodes and chatbot_claim_prefill so the claim-form prefill sets these fields on the service lines before auto-submit. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>