- format_money_figures() now outputs "USD 1,800" not "$1,800"
- Normalizes any existing $ or USD prefix before re-formatting
- emphasize_keywords() bolds "USD X,XXX" patterns in bold
- All monetary figures in paragraphs, tables, steps, bullets are bold + USD format
- All 89 tests pass
audit: enforce design rules and enhance handbook formatting
- Global typography: Century Gothic, left-aligned text, before-margins only
- Enrollment steps: Telegram as plain text, auto-generate QR, ensure Step 2 website link
- Program options: Auto-pair REGULAR/PRIME when inconsistent
- Qualification section: Red title (#FF5E5E), bold key terms (GPA, regions)
- Program contributions: Green headers, black bold body text
- Table styling: Left-aligned, no row shading, column-aware coloring
- University section: Standardized benefits heading, remove image captions
- Right-side ribbon: Vertically centered to avoid header/footer
- Add consistency warnings for REGULAR/PRIME pairing
- All 89 tests pass
- Section labels: zero top-margin on first-child in section-block
- Bullets: remove duplicate disc via list-style:none!important, remove inline bullet char in school_profile
- Page numbers: light-blue (#1C75BC) footer color
- Remove 'Summary info' heading from university templates
- Bump all dependency floors to current stable versions
- Dockerfile base image python:3.11-slim -> 3.12-slim
- All margins set to 2.54cm on all four sides
- Body: Century Gothic 10pt, justified, line-height 1.4
- H1: 12pt bold blue #1C75BC, H2+: 12pt bold green #1A9970
- Auto-bold REGULAR, PRIME, dollar amounts via emphasize_keywords()
- Benefits: green #00F600 header, cyan #00FCFC items
- Fixed critical missing } in CSS reset block
- Fixed benefit-text/benefit-bullet class mismatches
- Moved inline styles to CSS classes
- Updated tests to match spec changes (93/93 pass)