JQuery undefined and Stylesheet loads in bottom along with js files

For jQuery, WordPress uses the jQuery.noConflict() so “$” is not a reference to jQuery.
– You can use jQuery() insteand of $()
– or define $, for example you can wrap your code like this :

 jQuery(function($) {
    // your jQ code
 });

For your CSS at the bottom of the document : do you call wp_head() in your header.php ?