{% if has_mounts %}
{% if has_face_specific %}
{# Feature 1 (v0.5.0): dual-SVG rendering when mounts have explicit faces. #}
{# v0.7.1: data-src instead of data — JS populates data with ?theme= appended. #}
Front
Rear
{% else %}
{% endif %}
{% else %}
{# ========================================================== #}
{# Finding B (v0.4.0): empty-state scale-reference canvas. #}
{# #}
{# When the device has a profile but no mounts yet, render a #}
{# dashed rectangle sized to the internal_width/height_mm so #}
{# users see the cabinet's actual scale before they pick a #}
{# mount type. Centered CTA button offers the "+ first mount" #}
{# flow. If the profile has no internal dims, degrade to a #}
{# plain card with just the CTA. #}
{# ========================================================== #}
{% if internal_width_mm and internal_height_mm %}
{# 2 px per mm, matches CabinetLayoutSVG.DEFAULT_MM_TO_PX #}
{% widthratio internal_width_mm 1 2 as canvas_w %}
{% widthratio internal_height_mm 1 2 as canvas_h %}