{#- One day's verdict as a chip. `vd` is service.verdict(); None = not watched that day. -#}
{% macro chip(vd, fmt_q, unit) -%}
{%- if vd is none %}·
{%- elif vd.state == 'kept' %}✓ {{ fmt_q(vd.q, unit) }}{% if vd.dry %} · dry{% endif %}{% if vd.pass %} 🎟️{% endif %}
{%- elif vd.state == 'over' %}🚫 {{ fmt_q(vd.q, unit) }}
{%- elif vd.state == 'short' %}🪫 {{ fmt_q(vd.q, unit) }}
{%- elif vd.state == 'unconfirmed' %}🌫️ {{ fmt_q(vd.q, unit) }}
{%- else %}⏳ {{ fmt_q(vd.q, unit) }}{% endif -%}
{%- endmacro %}
{% macro limits(v, fmt_q) -%}
{%- set bits = [] -%}
{%- if v.cap_day is not none %}{% set _ = bits.append('abstain' if v.cap_day == 0 else '≤ ' ~ fmt_q(v.cap_day, v.unit) ~ '/day') %}{% endif -%}
{%- if v.cap_week is not none %}{% set _ = bits.append('≤ ' ~ fmt_q(v.cap_week, v.unit) ~ '/week') %}{% endif -%}
{%- if v.floor_day is not none %}{% set _ = bits.append('≥ ' ~ fmt_q(v.floor_day, v.unit) ~ '/day') %}{% endif -%}
{%- if v.dry_week %}{% set _ = bits.append(v.dry_week ~ ' dry days/week') %}{% endif -%}
{{ bits|join(' · ') }}
{%- endmacro %}