.dropzone {
    border: 2px dashed #9CA3AF;
    transition: all 0.3s ease;
}
.dropzone.active {
    border-color: #3B82F6;
    background-color: #EFF6FF;
}
.file-item {
    transition: all 0.2s ease;
}
.file-item:hover {
    transform: translateY(-2px);
}
.progress-bar {
    transition: width 0.3s ease;
}
@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}
.animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Стили для flash-сообщений */
.flash-message {
    position: relative;
    padding: 1rem;
    margin-bottom: 1rem;
    border-radius: 0.25rem;
    color: white;
    transition: opacity 0.3s ease;
}

.flash-message.error {
    background-color: #f87171; /* red-400 */
}

.flash-message.success {
    background-color: #4ade80; /* green-400 */
}

.flash-message.info {
    background-color: #60a5fa; /* blue-400 */
}

.close-flash {
    font-size: 1.25rem;
    line-height: 1;
}

.close-flash:hover {
    opacity: 0.8;
}