diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice_list.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice_list.js
index 6f19476..efc3eb4 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice_list.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice_list.js
@@ -14,5 +14,6 @@
 		} else if (doc.outstanding_amount > 0 && doc.due_date <= frappe.datetime.get_today()) {
 			return [__("Overdue"), "red", "oustanding_amount,>,0|due_date,<=,Today"]
 		}
-	}
+	},
+	right_column: "grand_total_export"
 };
diff --git a/erpnext/public/js/conf.js b/erpnext/public/js/conf.js
index ac896b8..397c36b 100644
--- a/erpnext/public/js/conf.js
+++ b/erpnext/public/js/conf.js
@@ -7,7 +7,7 @@
 $(document).bind('toolbar_setup', function() {
 	frappe.app.name = "ERPNext";
 
-	$('.navbar-brand').html('ERPNext');
+	$('.navbar-brand').html('<i class="octicon octicon-home visible-xs"></i><span class="hidden-xs">ERPNext</span>');
 
 	$('[data-link="docs"]').attr("href", "https://erpnext.com/user-guide")
 });
diff --git a/erpnext/templates/form_grid/item_grid.html b/erpnext/templates/form_grid/item_grid.html
index 2803550..939d880 100644
--- a/erpnext/templates/form_grid/item_grid.html
+++ b/erpnext/templates/form_grid/item_grid.html
@@ -2,14 +2,14 @@
 
 {% if(!doc) { %}
 	<div class="row">
-		<div class="col-sm-6">{%= __("Items") %}</div>
-		<div class="col-sm-2 text-right">{%= __("Qty") %}</div>
-		<div class="col-sm-2 text-right">{%= __("Rate") %}</div>
-		<div class="col-sm-2 text-right">{%= __("Amount") %}</div>
+		<div class="col-sm-6 col-xs-8">{%= __("Items") %}</div>
+		<div class="col-sm-2 hidden-xs text-right">{%= __("Qty") %}</div>
+		<div class="col-sm-2 hidden-xs text-right">{%= __("Rate") %}</div>
+		<div class="col-sm-2 col-xs-4 text-right">{%= __("Amount") %}</div>
 	</div>
 {% } else { %}
 	<div class="row">
-		<div class="col-sm-6"><strong>{%= doc.item_code %}</strong>
+		<div class="col-sm-6 col-xs-8"><strong>{%= doc.item_code %}</strong>
 			{% if(doc.item_name != doc.item_code) { %}
 				<br>{%= doc.item_name %}{% } %}
 			{% if(doc.item_name != doc.description) { %}
@@ -56,7 +56,7 @@
 		</div>
 
 		<!-- qty -->
-		<div class="col-sm-2 text-right">
+		<div class="col-sm-2 hidden-xs text-right">
 			{%= doc.get_formatted("qty") %}
 			<br><small>{%= doc.uom || doc.stock_uom %}</small>
 			{% if(in_list(["Sales Order Item", "Purchase Order Item"],
@@ -72,7 +72,7 @@
 		</div>
 
 		<!-- rate -->
-		<div class="col-sm-2 text-right">
+		<div class="col-sm-2 hidden-xs text-right">
 			{% if (!frappe.perm.is_visible("rate", doc, frm.perm)) { %}
 				<span class="text-muted">{%= __("hidden") %}</span>
 			{% } else { %}
@@ -86,7 +86,7 @@
 		</div>
 
 		<!-- amount -->
-		<div class="col-sm-2 text-right">
+		<div class="col-sm-2 col-xs-4 text-right">
 			{% if (!frappe.perm.is_visible("amount", doc, frm.perm)) { %}
 				<span class="text-muted">{%= __("hidden") %}</span>
 			{% } else { %}
@@ -102,6 +102,13 @@
 				<br><small>&nbsp;</small>
 				{% include "templates/form_grid/includes/progress.html" %}
 			{% } %}
+
+			{% if (frappe.perm.is_visible("rate", doc, frm.perm)) { %}
+			<div class="visible-xs text-muted">
+				{%= doc.get_formatted("qty") %} <small>{%= doc.uom || doc.stock_uom %}</small>
+				x {%= doc.get_formatted("rate") %}
+			</div>
+			{% } %}
 		</div>
 	</div>
 {% } %}
diff --git a/erpnext/templates/form_grid/stock_entry_grid.html b/erpnext/templates/form_grid/stock_entry_grid.html
index 9f91308..cf9b260 100644
--- a/erpnext/templates/form_grid/stock_entry_grid.html
+++ b/erpnext/templates/form_grid/stock_entry_grid.html
@@ -5,13 +5,13 @@
 
 {% if(!doc) { %}
 	<div class="row">
-		<div class="col-sm-8">{%= __("Item") %}</div>
-		<div class="col-sm-2 text-right">{%= __("Qty") %}</div>
-		<div class="col-sm-2 text-right">{%= __("Amount") %}</div>
+		<div class="col-sm-8 col-xs-6">{%= __("Item") %}</div>
+		<div class="col-sm-2 col-xs-2 text-right">{%= __("Qty") %}</div>
+		<div class="col-sm-2 col-xs-4 text-right">{%= __("Amount") %}</div>
 	</div>
 {% } else { %}
 	<div class="row">
-		<div class="col-sm-8"><strong>{%= doc.item_code %}</strong>
+		<div class="col-sm-8 col-xs-6"><strong>{%= doc.item_code %}</strong>
 			{% if(doc.item_name != doc.item_code) { %}
 				<br>{%= doc.item_name %}{% } %}
 			{% if(doc.item_name != doc.description) { %}
@@ -31,13 +31,13 @@
 		</div>
 
 		<!-- qty -->
-		<div class="col-sm-2 text-right">
+		<div class="col-sm-2 col-xs-2 text-right">
 			{%= doc.get_formatted("qty") %}
 			<br><small>{%= doc.uom || doc.stock_uom %}</small>
 		</div>
 
 		<!-- amount -->
-		<div class="col-sm-2 text-right">
+		<div class="col-sm-2 col-xs-4 text-right">
 			{%= doc.get_formatted("amount") %}
 			<div class="small text-muted">
 				{%= doc.get_formatted("incoming_rate") %}
