/* Custom styles */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'); body { font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif; } /* Add error boundary styles */ .error-boundary { background-color: #fee2e2; border: 1px solid #ef4444; border-radius: 0.5rem; padding: 1rem; margin: 1rem 0; color: #b91c1c; } /* Upload drop zone styles */ #upload-form { transition: all 0.2s ease; } #upload-form.drag-over { transform: translateY(-2px); box-shadow: 0 0 0 2px #3b82f6; } #report-file-label { transition: all 0.2s ease; } #report-file-label:hover { transform: translateY(-1px); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); } /* Loading animation */ @keyframes spin { to { transform: rotate(360deg); } } .animate-spin { animation: spin 1s linear infinite; } #playback-canvas { background-color: #1a1a1a; image-rendering: crisp-edges; } .sequence-card { transition: all 0.2s ease; } .sequence-card:hover { transform: translateY(-2px); box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3); } .heatmap { height: 4px; border-radius: 2px; background: linear-gradient(90deg, #3b82f6, #ef4444); } .suspicion-meter { height: 4px; border-radius: 2px; background: linear-gradient(90deg, #10b981, #ef4444); } /* Animation for active playback */ @keyframes pulse { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } } .active-playback { animation: pulse 1.5s infinite; border-left: 4px solid #3b82f6; }