@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } @keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } .animate-fade-in { animation: fadeIn 0.3s ease-out forwards; } .task-card { transition: all 0.3s ease; } .task-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1); } .dark .task-card:hover { box-shadow: 0 10px 25px -5px rgba(255, 255, 255, 0.1); } .priority-high { border-left: 4px solid #ef4444; } .priority-medium { border-left: 4px solid #f59e0b; } .priority-low { border-left: 4px solid #10b981; } .completed { position: relative; } .completed::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(16, 185, 129, 0.1); z-index: 1; border-radius: 0.5rem; } /* Status page styles */ .pulse { animation: pulse 1.5s infinite; } #deviceChart, #dataUsageChart { width: 100% !important; } .status-card { transition: all 0.3s ease; } .status-card:hover { transform: translateY(-3px); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); } .dark .status-card:hover { box-shadow: 0 4px 6px -1px rgba(255, 255, 255, 0.1), 0 2px 4px -1px rgba(255, 255, 255, 0.06); }