.app { min-height: 100vh; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 20px; } .container { max-width: 800px; margin: 0 auto; } .header { text-align: center; color: white; margin-bottom: 40px; animation: slideDown 0.6s ease-out; } .header h1 { font-size: 2.5rem; margin-bottom: 10px; font-weight: 700; } .header p { font-size: 1.1rem; opacity: 0.9; } @keyframes slideDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } .error-message { background-color: #ef5350; color: white; padding: 15px 20px; border-radius: 8px; margin-bottom: 20px; animation: pulse 0.3s ease-out; } .loading { text-align: center; color: white; font-size: 1.2rem; padding: 40px 20px; } .empty-state { text-align: center; color: white; padding: 60px 20px; font-size: 1.1rem; } .tasks-list { transition: background-color 0.2s ease; } .tasks-list.dragging { background-color: rgba(255, 255, 255, 0.05); border-radius: 12px; padding: 10px; } @keyframes pulse { from { opacity: 0; } to { opacity: 1; } } @media (max-width: 768px) { .header h1 { font-size: 1.8rem; } .header p { font-size: 1rem; } }