shared-style Vs custom-style

Hi,
what is the best practice about component styling?
In the shared-style.html I can style define a lot of dom-module for each component I need.
Custom-style is common css code, instead. Is this the basic approach?

What is used for?
When in my polymer-template I include shared-style,

<dom-module id="main-view">
    <template>
        <style include="shared-styles">

what I’m including? the shared-style dom-module or, as I believe, the shared-style file?
Thanks
Gianluca