what does $styles means in drupal?
$styles is a variable. It's initialised and made available to the template via the core template_process_html() function.

To add CSS you can use drupal_add_css(), and to add JS you can use drupal_add_js(). Either can also be accomplished using the #attached property in a render array (which is actually the recommended approach these days), or by including scripts/stylesheets keys in your theme's .info file. 

Where you can add it depends on what context you need to add it in. This could be page callback, one of many alter hooks, a process or preprocess function, and so on. If your new CSS applies to every page, it might make sense to use the info file method.

Alternatively, if you want to override the CSS of an existing theme, you can create a sub-theme and simply modify the appropriate CSS files without having to use the API.

If you're brand new to Drupal there are a few concepts you need to understand before any of this will make sense. I recommend reading the following:


Theming Guide
Preprocess and process functions
Render Arrays in Drupal 7
Writing theme .info files
Creating a sub-theme