{# Headline = the COMPOUNDED backfilled record (latest persisted nav equity), with the live mark-to-market kept as a clearly-labeled secondary detail. nav is always provided by the handler. #}

paper equity ${{ nav.equity|money }} / capital ${{ nav.capital|money }} ({{ nav.pnl|money_signed }})

{% if nav.has_history %}

marked to live prices now: ${{ nav.live_equity|money }}

{% endif %}

open positions ({{ v.positions|length }})

{# Bound the height so a large book (e.g. 71 symbols) scrolls within a box instead of making the page endlessly tall — critical on mobile where each row stacks into a labeled card. #}
{% for p in v.positions %} {% else %} {% endfor %}
sleevesymbolqtyentrylastPnL
{{ p.sleeve }} {{ p.symbol }} {{ p.qty|qty }} {{ p.entry_price|qty }} {{ p.last|qty }} {{ p.pnl|money_signed }}
no open positions

as of {{ now }} · marked to live prices (unknown → entry, 0 PnL)