You’re not echoing the wrapping divs. The register_sidebar only defines the div, but doesn’t render it. You need to extract the texts and echo them, like this:
public function widget( $args, $instance ) {
extract( $args );
$title = apply_filters( 'widget_title', $instance['title'] );
echo $before_widget;
if ( $title ) {
echo $before_title . $title . $after_title;
}
... do widgetty things ...
echo $after_widget;
}