diff --git a/kjvstudy_org/routes/bible.py b/kjvstudy_org/routes/bible.py
index c8d1a62..011bc22 100644
--- a/kjvstudy_org/routes/bible.py
+++ b/kjvstudy_org/routes/bible.py
@@ -255,13 +255,13 @@ async def read_chapter(request: Request, book: str, chapter: int):
commentaries[verse.verse] = commentary
- # Cross-refs: always expanded (word studies are handled per-study above)
+ # Cross-refs: collapsed by default, shows first 3 refs with "+N" to expand
for verse_num in [v.verse for v in verses]:
commentary = commentaries.get(verse_num)
if not commentary:
continue
if commentary.get('cross_reference_groups'):
- commentary['xref_auto_expand'] = True
+ commentary['xref_auto_expand'] = False
# Generate chapter overview
chapter_overview = generate_chapter_overview(book, chapter, verses)
diff --git a/kjvstudy_org/templates/chapter.html b/kjvstudy_org/templates/chapter.html
index 8ee0f80..93ccef1 100644
--- a/kjvstudy_org/templates/chapter.html
+++ b/kjvstudy_org/templates/chapter.html
@@ -464,12 +464,19 @@ document.body.dataset.resourceReader = 'false';
{{ verse.text | red_letter(book, chapter, verse.verse) | inject_word_markers(commentary.word_studies if commentary else [], verse.verse, commentary.word_study_auto_expand if commentary else false) | link_names | safe }}
{% if commentary %}
{% if commentary.cross_reference_groups %}
- {% set total_refs = commentary.cross_reference_groups | sum(attribute='refs', start=[]) | length %}
- {% set preview_count = [commentary.cross_reference_groups|length, 3]|min %}
- {% set hidden_count = total_refs - preview_count %}
+ {# Flatten all refs into a single list #}
+ {% set ns = namespace(all_refs=[]) %}
+ {% for group in commentary.cross_reference_groups %}
+ {% for ref in group.refs %}
+ {% set ns.all_refs = ns.all_refs + [ref] %}
+ {% endfor %}
+ {% endfor %}
+ {% set total_refs = ns.all_refs | length %}
+ {% set preview_refs = ns.all_refs[:3] %}
+ {% set extra_refs = ns.all_refs[3:] %}
- {% for group in commentary.cross_reference_groups[:3] %}{{ group.description }}: {{ group.refs[0].text }}{% if group.refs|length > 1 %}{% if hidden_count >= 3 %}{% else %}; {% for ref in group.refs[1:] %}{{ ref.text }}{% if not loop.last %}; {% endif %}{% endfor %}{% endif %}{% endif %}{% if not loop.last %}. {% endif %}{% endfor %}{% if commentary.cross_reference_groups|length > 3 %}{% if hidden_count >= 3 %}{% else %}. {% for group in commentary.cross_reference_groups[3:] %}{{ group.description }}: {% for ref in group.refs %}{{ ref.text }}{% if not loop.last %}; {% endif %}{% endfor %}{% if not loop.last %}. {% endif %}{% endfor %}{% endif %}{% endif %}{% if hidden_count >= 3 %} +{{ hidden_count }}{% endif %}
+ {% for ref in preview_refs %}{{ ref.text }}{% if not loop.last %}; {% endif %}{% endfor %}{% if extra_refs %} +{{ extra_refs|length }}{% endif %}
{% endif %}
{% endif %}