{# Toast notification component #}
<div class="bg-white border-l-4 border-blue-500 rounded-lg shadow-lg p-4 max-w-sm animate-slide-in"
     x-data="{ show: true }"
     x-show="show"
     x-init="setTimeout(() => show = false, 5000)">
    <div class="flex items-start">
        <div class="flex-shrink-0">
            <svg class="h-5 w-5 text-blue-500" fill="currentColor" viewBox="0 0 20 20">
                <path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clip-rule="evenodd"/>
            </svg>
        </div>
        <div class="ml-3 flex-1">
            <p class="text-sm font-medium text-gray-900">{{ message }}</p>
            <p class="text-xs text-gray-500 mt-1">{{ timestamp.strftime('%H:%M:%S') }}</p>
        </div>
        <button @click="show = false" 
                class="ml-4 flex-shrink-0 text-gray-400 hover:text-gray-500">
            <svg class="h-4 w-4" fill="currentColor" viewBox="0 0 20 20">
                <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/>
            </svg>
        </button>
    </div>
</div>
