- togglePublished: return JSON on CSRF failure instead of die()
- Conditions view: fold group/rule counts into main query as subselects
instead of N+1 per-item queries
- All 5 toggle-published templates: add .catch() for AJAX error feedback
Claude-Session: https://claude.ai/code/session_01Jo2JpjCwfHAh2HHRSjczKq
Five new admin views with models, templates, and list UI:
- Conditions: condition sets with group/rule counts and inline publish
- Snippets: reusable text blocks with {snippet alias} syntax
- Replacements: search/replace rules with regex and area badges
- Templates: content templates with category and description
- Modules: advanced module manager with position and client badges
Also adds togglePublished endpoint to DisplayController.
Claude-Session: https://claude.ai/code/session_01Jo2JpjCwfHAh2HHRSjczKq