This is due to Sprockets & bad CSS structuring.
#app/assets/stylesheets/application.css
*= require_all
It's not CSS which will be the problem, but the way you're calling it - both in your asset pipeline and your application.
The above will be concatenating all your css into the main application.css
file. Whilst this might seem harmless, if you have conflicting CSS definitions, they'll override themselves.

The way around this is to firstly ensure you're not conflicting your CSS and you are calling only the appropriate CSS for your application.
Sprockets
To better understand a fix, you need to know about sprockets.
Sprockets compiles your assets to make them as efficient as possible.
Your assets reside in the asset pipeline, which has been created to be such that it will load the appropriate CSS for the different parts of your app -- both efficient and versatile.
The "conventional" way for Rails to do this is to encourage you to use controller centric assets and application level assets:
#app/assets/stylesheets/controller.css
#app/assets/stylesheets/application.css
This is okay if your CSS works in situ, but if it doesn't, you've got a problem (like what you're experiencing).
As such, the way to fix is to firstly ensure that you're splitting your CSS as you need, and you're coding the CSS properly (more in a second).
Controller-Centric Assets
1. Remove all references in "application.css"
Sprockets gives you the ability to "include" other files in your main application.css
file:
#app/assets/stylesheets/application.css
*= require_all <- remove this line
This will prevent your "application.css" file having all the others compiled into it. The others will be compiled on their own, allowing you to call them separately:
2. Layout
#app/layouts/application.html.erb
<%= stylesheet_link_tag "application", controller_name %>
This will allow you to call the controller-centric assets you have with base-level application CSS.
The drawbacks to this are that you'll have to repeat a lot of your CSS, and will end up having completely different CSS for different parts of your app -- not the best.
CSS Structure
The alternative is to make your CSS structured properly. This is much harder to achieve, but will give you much clearer results...
I have a main div with different width for my Sessions controller (login page) and my Records controller (search function.)
#app/assets/stylesheets/application.sass
.main
/* main styling */
&.search
/* search styling here */
&.results
/* results styling here */
This will allow you to call:
#app/views/layouts/application.haml
.main.search search stuff here
.main.results results stuff here