/* Custom loading animation */ .loading-spinner { width: 24px; height: 24px; border: 3px solid rgba(255, 255, 255, 0.3); border-radius: 50%; border-top-color: #ffffff; animation: spin 1s ease-in-out infinite; margin-right: 8px; } @keyframes spin { to { transform: rotate(360deg); } } /* Smooth transitions for elements */ .prediction-result { transition: all 0.3s ease; } /* Custom scrollbar for vocabulary list */ #vocabularyList { max-height: 150px; overflow-y: auto; } #vocabularyList::-webkit-scrollbar { width: 6px; } #vocabularyList::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 10px; } #vocabularyList::-webkit-scrollbar-thumb { background: #c4b5fd; border-radius: 10px; } /* Animation for results */ .fade-in { animation: fadeIn 0.5s; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .word-badge { transition: all 0.2s ease; } .word-badge:hover { transform: translateY(-2px); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); } /* Add margin to main content to account for fixed navbar */ .container { margin-top: 80px; } .dataset-card { transition: transform 0.2s, box-shadow 0.2s; } .dataset-card:hover { transform: translateY(-4px); box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); } /* File upload component styles */ file-upload { display: block; margin-bottom: 1rem; }