Adding CSS to admin TinyMCE editor for custom button

First, I believe your css should use only one colon:

.mce_mybutton:before {
    content: '\f459';
}

Now, in order to get the css to the proper place. First, we add an action to admin_print_styles; then we check to see if we are editing a post or page; then we enqueue our stylesheet.

We run the check to see if we are editing, so that we don’t enqueue our stylesheet on every admin page. We do this to minimize conflicts with other plugins/themes; and since it makes no common sense to run code on pages where it is not needed.

So… we end up with a function like this:

add_action('admin_print_styles', 'add_my_tinymce_button_css');
function add_my_tinymce_button_css() {

    // Get current screen and determine if we are using the editor
    $screen = get_current_screen();
    // If we are editing (adding new) post or page
    if ( $screen->id == 'page' || $screen->id == 'post' ) {

        // Register our stylesheet
        // Note: The stylesheet resides in our plugin directory/css/admin.css
        // You may change this to suit your preferences
        wp_register_style('my_tinymce_button_css', plugin_dir_url( __FILE__ ) . ('/css/admin.css'), array());

        // Now we enqueue our stylesheet
        wp_enqueue_style('my_tinymce_button_css');

        // Depending on when you fire things, you may/may not need to enqueue 'dashicons'
        wp_enqueue_style('dashicons');
    }
}