Initialize the WP filesystem and no more using file_put_contents function. Try this:
[...]
global $wp_filesystem;
// Initialize the WP filesystem, no more using 'file-put-contents' function
if (empty($wp_filesystem)) {
require_once (ABSPATH . '/wp-admin/includes/file.php');
WP_Filesystem();
}
if(!$wp_filesystem->put_contents( $path, $css, 0644) ) {
return __('Failed to create css file');
}