{% if units %}
<div class="space-y-2">
    {% for unit_id, unit in units.items() %}
    <div class="flex items-center justify-between p-3 rounded-lg bg-gray-50 dark:bg-gray-700/50 hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors">
        <div class="flex items-center space-x-3 flex-1">
            <!-- Status Indicator -->
            <div class="flex-shrink-0">
                {% if unit.status == 'OK' %}
                <span class="w-4 h-4 rounded-full bg-green-500" title="OK"></span>
                {% elif unit.status == 'Pending' %}
                <span class="w-4 h-4 rounded-full bg-yellow-500" title="Pending"></span>
                {% else %}
                <span class="w-4 h-4 rounded-full bg-red-500" title="Missing"></span>
                {% endif %}
            </div>

            <!-- Unit Info -->
            <div class="flex-1 min-w-0">
                <div class="flex items-center gap-2">
                    <a href="/unit/{{ unit_id }}" class="font-medium text-seismo-orange hover:text-seismo-burgundy hover:underline">
                        {{ unit_id }}
                    </a>
                    {% if unit.device_type == 'modem' %}
                    <span class="px-2 py-0.5 rounded-full bg-purple-100 dark:bg-purple-900/30 text-purple-800 dark:text-purple-300 text-xs">
                        Modem
                    </span>
                    {% else %}
                    <span class="px-2 py-0.5 rounded-full bg-blue-100 dark:bg-blue-900/30 text-blue-800 dark:text-blue-300 text-xs">
                        Seismograph
                    </span>
                    {% endif %}
                </div>
                {% if unit.note %}
                <p class="text-xs text-gray-500 dark:text-gray-400 truncate">{{ unit.note }}</p>
                {% endif %}
            </div>

            <!-- Age -->
            <div class="text-right flex-shrink-0 flex items-center gap-2">
                {% if unit.last_seen_source == 'sfm' %}
                <span class="text-[10px] uppercase tracking-wider px-1.5 py-0.5 rounded bg-seismo-orange/10 text-seismo-orange font-semibold"
                      title="Status sourced from SFM event forwards (primary)">SFM</span>
                {% elif unit.last_seen_source == 'heartbeat' %}
                <span class="text-[10px] uppercase tracking-wider px-1.5 py-0.5 rounded bg-gray-100 dark:bg-gray-600 text-gray-500 dark:text-gray-300"
                      title="Status sourced from watcher heartbeat (backup)">HB</span>
                {% endif %}
                <span class="text-sm {% if unit.status == 'Missing' %}text-red-600 dark:text-red-400 font-semibold{% elif unit.status == 'Pending' %}text-yellow-600 dark:text-yellow-400{% else %}text-gray-500 dark:text-gray-400{% endif %}">
                    {{ unit.age }}
                </span>
            </div>
        </div>
    </div>
    {% endfor %}
</div>
{% else %}
<div class="text-center py-12">
    <svg class="mx-auto h-12 w-12 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4"></path>
    </svg>
    <h3 class="mt-2 text-sm font-medium text-gray-900 dark:text-gray-100">No active units</h3>
    <p class="mt-1 text-sm text-gray-500 dark:text-gray-400">Get started by adding a new unit to the fleet.</p>
</div>
{% endif %}
