No he tenido tiempo de mirar tu código pero algo parecido me ocurría a mi y lo he resuelto con este css:
Código CSS:
Ver original*, *:before, *:after {
box-sizing: border-box;
}
A mi me suena que no te calcula el padding o el margin y/o border ....
normalmente cuando le das a un elemento un padding 10 margin 10 border 1 y width 100 en realidad mide 142 pixels y no 100 proque se añaden 2*10 por el margin 2*10 por el padding y 2*1 por el border
con el css de arriba se soluciona todo esto ( menos lo del margin que queda fuera )
ver este ejemplo
http://www.w3schools.com/cssref/tryi...ss3_box-sizing