=== Candidate ranking ===
Ranked source windows and combined scores. Final sequences and placements are listed under Emitted products.
{% for candidate in ranked_candidates %}
{{ candidate.rank }}. {{ candidate.gene }} ({{ candidate.kind }}), {{ candidate.identifier }}; score {{ candidate.score }}
   Top candidate window: {{ candidate.window }} ({{ candidate.window_count }} window(s))
   Linked products: {{ candidate.products }}
{% else %}No candidates passed ranking.
{% endfor %}
{% if ranked_candidates and not candidate_details %}Use --report-candidate-details to append detailed source windows and epitope tables.
{% endif %}
