From 62cec24d10fe126e3b7651359c10cf8b7bfd6a5d Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 08 Jun 2012 20:55:31 -0400
Subject: [PATCH] Updated to Bootstrap 2.0.4. Responsive layout by default.

---
 src/com/gitblit/wicket/panels/TagsPanel.html           |    6 
 resources/bootstrap/js/bootstrap.js                    |  585 +++++---
 resources/bootstrap/img/glyphicons-halflings.png       |    0 
 src/com/gitblit/wicket/pages/RepositoryPage.java       |    2 
 src/com/gitblit/wicket/panels/LinkPanel.java           |    2 
 src/com/gitblit/wicket/pages/RootPage.html             |   10 
 src/com/gitblit/wicket/pages/CommitDiffPage.html       |    2 
 src/com/gitblit/wicket/pages/CommitPage.java           |    1 
 docs/04_releases.mkd                                   |    8 
 src/com/gitblit/wicket/pages/LuceneSearchPage.html     |    4 
 src/com/gitblit/wicket/panels/RepositoryUrlPanel.html  |    2 
 resources/bootstrap/img/glyphicons-halflings-white.png |    0 
 src/com/gitblit/wicket/panels/UsersPanel.html          |    8 
 src/com/gitblit/wicket/pages/RepositoryPage.html       |   26 
 src/com/gitblit/wicket/panels/RepositoriesPanel.html   |   30 
 src/com/gitblit/wicket/pages/SummaryPage.html          |    6 
 src/com/gitblit/wicket/panels/CommitHeaderPanel.html   |   15 
 resources/bootstrap/css/bootstrap-responsive.css       |  563 +++++---
 src/com/gitblit/wicket/pages/TreePage.html             |    2 
 distrib/gitblit.properties                             |    7 
 src/com/gitblit/wicket/pages/CommitPage.html           |   10 
 src/com/gitblit/wicket/panels/LogPanel.html            |    8 
 src/com/gitblit/utils/ActivityUtils.java               |    4 
 src/com/gitblit/wicket/pages/ActivityPage.html         |    4 
 src/com/gitblit/wicket/pages/BasePage.java             |    9 
 src/com/gitblit/wicket/panels/CommitHeaderPanel.java   |    3 
 src/com/gitblit/wicket/panels/HistoryPanel.html        |    4 
 resources/bootstrap/css/bootstrap.css                  | 2469 ++++++++++++++++++++++++++-----------
 src/com/gitblit/wicket/pages/BasePage.html             |   24 
 src/com/gitblit/wicket/panels/ActivityPanel.html       |    6 
 resources/gitblit.css                                  |   21 
 src/com/gitblit/wicket/pages/SummaryPage.java          |    2 
 src/com/gitblit/wicket/panels/BranchesPanel.html       |    6 
 33 files changed, 2,567 insertions(+), 1,282 deletions(-)

diff --git a/distrib/gitblit.properties b/distrib/gitblit.properties
index 8e76826..440414e 100644
--- a/distrib/gitblit.properties
+++ b/distrib/gitblit.properties
@@ -295,6 +295,13 @@
 # SINCE 0.7.0 
 web.enableRpcAdministration = false
 
+# If true, the web ui layout will respond and adapt to the browser's dimensions.
+# if false, the web ui will use a 940px fixed-width layout.
+# http://twitter.github.com/bootstrap/scaffolding.html#responsive
+#
+# SINCE 1.0.0
+web.useResponsiveLayout = true
+
 # Allow Gravatar images to be displayed in Gitblit pages.
 #
 # SINCE 0.8.0
diff --git a/docs/04_releases.mkd b/docs/04_releases.mkd
index 0098197..342d67b 100644
--- a/docs/04_releases.mkd
+++ b/docs/04_releases.mkd
@@ -11,11 +11,14 @@
 
 #### changes
 
+- Changed default layout for web ui from fixed-width layout to responsive (issue 101)  
 - IUserService interface has changed to better accomodate custom authentication and/or custom authorization
 - Updated Japanese translation (Github/zakki)
 
 #### additions
 
+- Added setting to control responsive or fixed-width layout (issue 101)  
+    **New:** *web.useResponsiveLayout = true*  
 - Added setting to control charsets for blob string decoding.  Default encodings are UTF-8, ISO-8859-1, and server's default charset. (issue 97)  
     **New:** *web.blobEncodings = UTF-8 ISO-8859-1*  
 - Exposed JGit's internal configuration settings in gitblit.properties/web.xml (issue 93)  
@@ -32,6 +35,11 @@
 - Added script to facilitate proxy environment setup on Linux (Github/mragab)
 - Added Spanish translation (Eduardo Guervos Narvaez)
 
+#### dependency changes
+
+- updated to Bootstrap 2.0.4
+- added Ivy 2.2.0 (for Grape support in Groovy hook scripts)
+
 **0.9.3** *released 2012-04-11*
 
 #### fixes
diff --git a/resources/bootstrap/css/bootstrap-responsive.css b/resources/bootstrap/css/bootstrap-responsive.css
index 0bc6de9..06e55c0 100644
--- a/resources/bootstrap/css/bootstrap-responsive.css
+++ b/resources/bootstrap/css/bootstrap-responsive.css
@@ -1,5 +1,5 @@
 /*!
- * Bootstrap Responsive v2.0.2
+ * Bootstrap Responsive v2.0.4
  *
  * Copyright 2012 Twitter, Inc
  * Licensed under the Apache License v2.0
@@ -7,85 +7,86 @@
  *
  * Designed and built with all the love in the world @twitter by @mdo and @fat.
  */
+
 .clearfix {
   *zoom: 1;
 }
+
 .clearfix:before,
 .clearfix:after {
   display: table;
   content: "";
 }
+
 .clearfix:after {
   clear: both;
 }
+
 .hide-text {
-  overflow: hidden;
-  text-indent: 100%;
-  white-space: nowrap;
+  font: 0/0 a;
+  color: transparent;
+  text-shadow: none;
+  background-color: transparent;
+  border: 0;
 }
+
 .input-block-level {
   display: block;
   width: 100%;
   min-height: 28px;
-  /* Make inputs at least the height of their button counterpart */
-
-  /* Makes inputs behave like true block-level elements */
-
   -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
+     -moz-box-sizing: border-box;
+      -ms-box-sizing: border-box;
+          box-sizing: border-box;
 }
+
 .hidden {
   display: none;
   visibility: hidden;
 }
+
 .visible-phone {
-  display: none;
+  display: none !important;
 }
+
 .visible-tablet {
-  display: none;
+  display: none !important;
 }
-.visible-desktop {
-  display: block;
-}
-.hidden-phone {
-  display: block;
-}
-.hidden-tablet {
-  display: block;
-}
+
 .hidden-desktop {
-  display: none;
+  display: none !important;
 }
+
 @media (max-width: 767px) {
   .visible-phone {
-    display: block;
+    display: inherit !important;
   }
   .hidden-phone {
-    display: none;
+    display: none !important;
   }
   .hidden-desktop {
-    display: block;
+    display: inherit !important;
   }
   .visible-desktop {
-    display: none;
+    display: none !important;
   }
 }
+
 @media (min-width: 768px) and (max-width: 979px) {
   .visible-tablet {
-    display: block;
+    display: inherit !important;
   }
   .hidden-tablet {
-    display: none;
+    display: none !important;
   }
   .hidden-desktop {
-    display: block;
+    display: inherit !important;
   }
   .visible-desktop {
-    display: none;
+    display: none !important ;
   }
 }
+
 @media (max-width: 480px) {
   .nav-collapse {
     -webkit-transform: translate3d(0, 0, 0);
@@ -111,14 +112,14 @@
     padding-top: 0;
   }
   .form-horizontal .form-actions {
-    padding-left: 10px;
     padding-right: 10px;
+    padding-left: 10px;
   }
   .modal {
     position: absolute;
     top: 10px;
-    left: 10px;
     right: 10px;
+    left: 10px;
     width: auto;
     margin: 0;
   }
@@ -133,14 +134,28 @@
     position: static;
   }
 }
+
 @media (max-width: 767px) {
   body {
-    padding-left: 20px;
     padding-right: 20px;
+    padding-left: 20px;
   }
-  .navbar-fixed-top {
-    margin-left: -20px;
+  .navbar-fixed-top,
+  .navbar-fixed-bottom {
     margin-right: -20px;
+    margin-left: -20px;
+  }
+  .container-fluid {
+    padding: 0;
+  }
+  .dl-horizontal dt {
+    float: none;
+    width: auto;
+    clear: none;
+    text-align: left;
+  }
+  .dl-horizontal dd {
+    margin-left: 0;
   }
   .container {
     width: auto;
@@ -148,19 +163,20 @@
   .row-fluid {
     width: 100%;
   }
-  .row {
+  .row,
+  .thumbnails {
     margin-left: 0;
   }
-  .row > [class*="span"],
-  .row-fluid > [class*="span"] {
-    float: none;
+  [class*="span"],
+  .row-fluid [class*="span"] {
     display: block;
+    float: none;
     width: auto;
-    margin: 0;
+    margin-left: 0;
   }
-  .thumbnails [class*="span"] {
-    width: auto;
-  }
+  .input-large,
+  .input-xlarge,
+  .input-xxlarge,
   input[class*="span"],
   select[class*="span"],
   textarea[class*="span"],
@@ -168,20 +184,20 @@
     display: block;
     width: 100%;
     min-height: 28px;
-    /* Make inputs at least the height of their button counterpart */
-  
-    /* Makes inputs behave like true block-level elements */
-  
     -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    -ms-box-sizing: border-box;
-    box-sizing: border-box;
+       -moz-box-sizing: border-box;
+        -ms-box-sizing: border-box;
+            box-sizing: border-box;
   }
+  .input-prepend input,
+  .input-append input,
   .input-prepend input[class*="span"],
   .input-append input[class*="span"] {
+    display: inline-block;
     width: auto;
   }
 }
+
 @media (min-width: 768px) and (max-width: 979px) {
   .row {
     margin-left: -20px;
@@ -288,205 +304,136 @@
   .row-fluid:after {
     clear: both;
   }
-  .row-fluid > [class*="span"] {
+  .row-fluid [class*="span"] {
+    display: block;
     float: left;
+    width: 100%;
+    min-height: 28px;
     margin-left: 2.762430939%;
+    *margin-left: 2.709239449638298%;
+    -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+        -ms-box-sizing: border-box;
+            box-sizing: border-box;
   }
-  .row-fluid > [class*="span"]:first-child {
+  .row-fluid [class*="span"]:first-child {
     margin-left: 0;
   }
-  .row-fluid > .span12 {
+  .row-fluid .span12 {
     width: 99.999999993%;
+    *width: 99.9468085036383%;
   }
-  .row-fluid > .span11 {
+  .row-fluid .span11 {
     width: 91.436464082%;
+    *width: 91.38327259263829%;
   }
-  .row-fluid > .span10 {
+  .row-fluid .span10 {
     width: 82.87292817100001%;
+    *width: 82.8197366816383%;
   }
-  .row-fluid > .span9 {
+  .row-fluid .span9 {
     width: 74.30939226%;
+    *width: 74.25620077063829%;
   }
-  .row-fluid > .span8 {
+  .row-fluid .span8 {
     width: 65.74585634900001%;
+    *width: 65.6926648596383%;
   }
-  .row-fluid > .span7 {
+  .row-fluid .span7 {
     width: 57.182320438000005%;
+    *width: 57.129128948638304%;
   }
-  .row-fluid > .span6 {
+  .row-fluid .span6 {
     width: 48.618784527%;
+    *width: 48.5655930376383%;
   }
-  .row-fluid > .span5 {
+  .row-fluid .span5 {
     width: 40.055248616%;
+    *width: 40.0020571266383%;
   }
-  .row-fluid > .span4 {
+  .row-fluid .span4 {
     width: 31.491712705%;
+    *width: 31.4385212156383%;
   }
-  .row-fluid > .span3 {
+  .row-fluid .span3 {
     width: 22.928176794%;
+    *width: 22.874985304638297%;
   }
-  .row-fluid > .span2 {
+  .row-fluid .span2 {
     width: 14.364640883%;
+    *width: 14.311449393638298%;
   }
-  .row-fluid > .span1 {
+  .row-fluid .span1 {
     width: 5.801104972%;
+    *width: 5.747913482638298%;
   }
   input,
   textarea,
   .uneditable-input {
     margin-left: 0;
   }
-  input.span12, textarea.span12, .uneditable-input.span12 {
+  input.span12,
+  textarea.span12,
+  .uneditable-input.span12 {
     width: 714px;
   }
-  input.span11, textarea.span11, .uneditable-input.span11 {
+  input.span11,
+  textarea.span11,
+  .uneditable-input.span11 {
     width: 652px;
   }
-  input.span10, textarea.span10, .uneditable-input.span10 {
+  input.span10,
+  textarea.span10,
+  .uneditable-input.span10 {
     width: 590px;
   }
-  input.span9, textarea.span9, .uneditable-input.span9 {
+  input.span9,
+  textarea.span9,
+  .uneditable-input.span9 {
     width: 528px;
   }
-  input.span8, textarea.span8, .uneditable-input.span8 {
+  input.span8,
+  textarea.span8,
+  .uneditable-input.span8 {
     width: 466px;
   }
-  input.span7, textarea.span7, .uneditable-input.span7 {
+  input.span7,
+  textarea.span7,
+  .uneditable-input.span7 {
     width: 404px;
   }
-  input.span6, textarea.span6, .uneditable-input.span6 {
+  input.span6,
+  textarea.span6,
+  .uneditable-input.span6 {
     width: 342px;
   }
-  input.span5, textarea.span5, .uneditable-input.span5 {
+  input.span5,
+  textarea.span5,
+  .uneditable-input.span5 {
     width: 280px;
   }
-  input.span4, textarea.span4, .uneditable-input.span4 {
+  input.span4,
+  textarea.span4,
+  .uneditable-input.span4 {
     width: 218px;
   }
-  input.span3, textarea.span3, .uneditable-input.span3 {
+  input.span3,
+  textarea.span3,
+  .uneditable-input.span3 {
     width: 156px;
   }
-  input.span2, textarea.span2, .uneditable-input.span2 {
+  input.span2,
+  textarea.span2,
+  .uneditable-input.span2 {
     width: 94px;
   }
-  input.span1, textarea.span1, .uneditable-input.span1 {
+  input.span1,
+  textarea.span1,
+  .uneditable-input.span1 {
     width: 32px;
   }
 }
-@media (max-width: 979px) {
-  body {
-    padding-top: 0;
-  }
-  .navbar-fixed-top {
-    position: static;
-    margin-bottom: 18px;
-  }
-  .navbar-fixed-top .navbar-inner {
-    padding: 5px;
-  }
-  .navbar .container {
-    width: auto;
-    padding: 0;
-  }
-  .navbar .brand {
-    padding-left: 10px;
-    padding-right: 10px;
-    margin: 0 0 0 -5px;
-  }
-  .navbar .nav-collapse {
-    clear: left;
-  }
-  .navbar .nav {
-    float: none;
-    margin: 0 0 9px;
-  }
-  .navbar .nav > li {
-    float: none;
-  }
-  .navbar .nav > li > a {
-    margin-bottom: 2px;
-  }
-  .navbar .nav > .divider-vertical {
-    display: none;
-  }
-  .navbar .nav .nav-header {
-    color: #999999;
-    text-shadow: none;
-  }
-  .navbar .nav > li > a,
-  .navbar .dropdown-menu a {
-    padding: 6px 15px;
-    font-weight: bold;
-    color: #999999;
-    -webkit-border-radius: 3px;
-    -moz-border-radius: 3px;
-    border-radius: 3px;
-  }
-  .navbar .dropdown-menu li + li a {
-    margin-bottom: 2px;
-  }
-  .navbar .nav > li > a:hover,
-  .navbar .dropdown-menu a:hover {
-    background-color: #222222;
-  }
-  .navbar .dropdown-menu {
-    position: static;
-    top: auto;
-    left: auto;
-    float: none;
-    display: block;
-    max-width: none;
-    margin: 0 15px;
-    padding: 0;
-    background-color: transparent;
-    border: none;
-    -webkit-border-radius: 0;
-    -moz-border-radius: 0;
-    border-radius: 0;
-    -webkit-box-shadow: none;
-    -moz-box-shadow: none;
-    box-shadow: none;
-  }
-  .navbar .dropdown-menu:before,
-  .navbar .dropdown-menu:after {
-    display: none;
-  }
-  .navbar .dropdown-menu .divider {
-    display: none;
-  }
-  .navbar-form,
-  .navbar-search {
-    float: none;
-    padding: 9px 15px;
-    margin: 9px 0;
-    border-top: 1px solid #222222;
-    border-bottom: 1px solid #222222;
-    -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-    -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-  }
-  .navbar .nav.pull-right {
-    float: none;
-    margin-left: 0;
-  }
-  .navbar-static .navbar-inner {
-    padding-left: 10px;
-    padding-right: 10px;
-  }
-  .btn-navbar {
-    display: block;
-  }
-  .nav-collapse {
-    overflow: hidden;
-    height: 0;
-  }
-}
-@media (min-width: 980px) {
-  .nav-collapse.collapse {
-    height: auto !important;
-    overflow: visible !important;
-  }
-}
+
 @media (min-width: 1200px) {
   .row {
     margin-left: -30px;
@@ -593,88 +540,132 @@
   .row-fluid:after {
     clear: both;
   }
-  .row-fluid > [class*="span"] {
+  .row-fluid [class*="span"] {
+    display: block;
     float: left;
+    width: 100%;
+    min-height: 28px;
     margin-left: 2.564102564%;
+    *margin-left: 2.510911074638298%;
+    -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+        -ms-box-sizing: border-box;
+            box-sizing: border-box;
   }
-  .row-fluid > [class*="span"]:first-child {
+  .row-fluid [class*="span"]:first-child {
     margin-left: 0;
   }
-  .row-fluid > .span12 {
+  .row-fluid .span12 {
     width: 100%;
+    *width: 99.94680851063829%;
   }
-  .row-fluid > .span11 {
+  .row-fluid .span11 {
     width: 91.45299145300001%;
+    *width: 91.3997999636383%;
   }
-  .row-fluid > .span10 {
+  .row-fluid .span10 {
     width: 82.905982906%;
+    *width: 82.8527914166383%;
   }
-  .row-fluid > .span9 {
+  .row-fluid .span9 {
     width: 74.358974359%;
+    *width: 74.30578286963829%;
   }
-  .row-fluid > .span8 {
+  .row-fluid .span8 {
     width: 65.81196581200001%;
+    *width: 65.7587743226383%;
   }
-  .row-fluid > .span7 {
+  .row-fluid .span7 {
     width: 57.264957265%;
+    *width: 57.2117657756383%;
   }
-  .row-fluid > .span6 {
+  .row-fluid .span6 {
     width: 48.717948718%;
+    *width: 48.6647572286383%;
   }
-  .row-fluid > .span5 {
+  .row-fluid .span5 {
     width: 40.170940171000005%;
+    *width: 40.117748681638304%;
   }
-  .row-fluid > .span4 {
+  .row-fluid .span4 {
     width: 31.623931624%;
+    *width: 31.5707401346383%;
   }
-  .row-fluid > .span3 {
+  .row-fluid .span3 {
     width: 23.076923077%;
+    *width: 23.0237315876383%;
   }
-  .row-fluid > .span2 {
+  .row-fluid .span2 {
     width: 14.529914530000001%;
+    *width: 14.4767230406383%;
   }
-  .row-fluid > .span1 {
+  .row-fluid .span1 {
     width: 5.982905983%;
+    *width: 5.929714493638298%;
   }
   input,
   textarea,
   .uneditable-input {
     margin-left: 0;
   }
-  input.span12, textarea.span12, .uneditable-input.span12 {
+  input.span12,
+  textarea.span12,
+  .uneditable-input.span12 {
     width: 1160px;
   }
-  input.span11, textarea.span11, .uneditable-input.span11 {
+  input.span11,
+  textarea.span11,
+  .uneditable-input.span11 {
     width: 1060px;
   }
-  input.span10, textarea.span10, .uneditable-input.span10 {
+  input.span10,
+  textarea.span10,
+  .uneditable-input.span10 {
     width: 960px;
   }
-  input.span9, textarea.span9, .uneditable-input.span9 {
+  input.span9,
+  textarea.span9,
+  .uneditable-input.span9 {
     width: 860px;
   }
-  input.span8, textarea.span8, .uneditable-input.span8 {
+  input.span8,
+  textarea.span8,
+  .uneditable-input.span8 {
     width: 760px;
   }
-  input.span7, textarea.span7, .uneditable-input.span7 {
+  input.span7,
+  textarea.span7,
+  .uneditable-input.span7 {
     width: 660px;
   }
-  input.span6, textarea.span6, .uneditable-input.span6 {
+  input.span6,
+  textarea.span6,
+  .uneditable-input.span6 {
     width: 560px;
   }
-  input.span5, textarea.span5, .uneditable-input.span5 {
+  input.span5,
+  textarea.span5,
+  .uneditable-input.span5 {
     width: 460px;
   }
-  input.span4, textarea.span4, .uneditable-input.span4 {
+  input.span4,
+  textarea.span4,
+  .uneditable-input.span4 {
     width: 360px;
   }
-  input.span3, textarea.span3, .uneditable-input.span3 {
+  input.span3,
+  textarea.span3,
+  .uneditable-input.span3 {
     width: 260px;
   }
-  input.span2, textarea.span2, .uneditable-input.span2 {
+  input.span2,
+  textarea.span2,
+  .uneditable-input.span2 {
     width: 160px;
   }
-  input.span1, textarea.span1, .uneditable-input.span1 {
+  input.span1,
+  textarea.span1,
+  .uneditable-input.span1 {
     width: 60px;
   }
   .thumbnails {
@@ -683,4 +674,142 @@
   .thumbnails > li {
     margin-left: 30px;
   }
+  .row-fluid .thumbnails {
+    margin-left: 0;
+  }
+}
+
+@media (max-width: 979px) {
+  body {
+    padding-top: 0;
+  }
+  .navbar-fixed-top,
+  .navbar-fixed-bottom {
+    position: static;
+  }
+  .navbar-fixed-top {
+    margin-bottom: 18px;
+  }
+  .navbar-fixed-bottom {
+    margin-top: 18px;
+  }
+  .navbar-fixed-top .navbar-inner,
+  .navbar-fixed-bottom .navbar-inner {
+    padding: 5px;
+  }
+  .navbar .container {
+    width: auto;
+    padding: 0;
+  }
+  .navbar .brand {
+    padding-right: 10px;
+    padding-left: 10px;
+    margin: 0 0 0 -5px;
+  }
+  .nav-collapse {
+    clear: both;
+  }
+  .nav-collapse .nav {
+    float: none;
+    margin: 0 0 9px;
+  }
+  .nav-collapse .nav > li {
+    float: none;
+  }
+  .nav-collapse .nav > li > a {
+    margin-bottom: 2px;
+  }
+  .nav-collapse .nav > .divider-vertical {
+    display: none;
+  }
+  .nav-collapse .nav .nav-header {
+    color: #999999;
+    text-shadow: none;
+  }
+  .nav-collapse .nav > li > a,
+  .nav-collapse .dropdown-menu a {
+    padding: 6px 15px;
+    font-weight: bold;
+    color: #999999;
+    -webkit-border-radius: 3px;
+       -moz-border-radius: 3px;
+            border-radius: 3px;
+  }
+  .nav-collapse .btn {
+    padding: 4px 10px 4px;
+    font-weight: normal;
+    -webkit-border-radius: 4px;
+       -moz-border-radius: 4px;
+            border-radius: 4px;
+  }
+  .nav-collapse .dropdown-menu li + li a {
+    margin-bottom: 2px;
+  }
+  .nav-collapse .nav > li > a:hover,
+  .nav-collapse .dropdown-menu a:hover {
+    background-color: #222222;
+  }
+  .nav-collapse.in .btn-group {
+    padding: 0;
+    margin-top: 5px;
+  }
+  .nav-collapse .dropdown-menu {
+    position: static;
+    top: auto;
+    left: auto;
+    display: block;
+    float: none;
+    max-width: none;
+    padding: 0;
+    margin: 0 15px;
+    background-color: transparent;
+    border: none;
+    -webkit-border-radius: 0;
+       -moz-border-radius: 0;
+            border-radius: 0;
+    -webkit-box-shadow: none;
+       -moz-box-shadow: none;
+            box-shadow: none;
+  }
+  .nav-collapse .dropdown-menu:before,
+  .nav-collapse .dropdown-menu:after {
+    display: none;
+  }
+  .nav-collapse .dropdown-menu .divider {
+    display: none;
+  }
+  .nav-collapse .navbar-form,
+  .nav-collapse .navbar-search {
+    float: none;
+    padding: 9px 15px;
+    margin: 9px 0;
+    border-top: 1px solid #222222;
+    border-bottom: 1px solid #222222;
+    -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+       -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+  }
+  .navbar .nav-collapse .nav.pull-right {
+    float: none;
+    margin-left: 0;
+  }
+  .nav-collapse,
+  .nav-collapse.collapse {
+    height: 0;
+    overflow: hidden;
+  }
+  .navbar .btn-navbar {
+    display: block;
+  }
+  .navbar-static .navbar-inner {
+    padding-right: 10px;
+    padding-left: 10px;
+  }
+}
+
+@media (min-width: 980px) {
+  .nav-collapse.collapse {
+    height: auto !important;
+    overflow: visible !important;
+  }
 }
diff --git a/resources/bootstrap/css/bootstrap.css b/resources/bootstrap/css/bootstrap.css
index 495188a..bb40c85 100644
--- a/resources/bootstrap/css/bootstrap.css
+++ b/resources/bootstrap/css/bootstrap.css
@@ -1,5 +1,5 @@
 /*!
- * Bootstrap v2.0.2
+ * Bootstrap v2.0.4
  *
  * Copyright 2012 Twitter, Inc
  * Licensed under the Apache License v2.0
@@ -7,6 +7,7 @@
  *
  * Designed and built with all the love in the world @twitter by @mdo and @fat.
  */
+
 article,
 aside,
 details,
@@ -19,6 +20,7 @@
 section {
   display: block;
 }
+
 audio,
 canvas,
 video {
@@ -26,23 +28,28 @@
   *display: inline;
   *zoom: 1;
 }
+
 audio:not([controls]) {
   display: none;
 }
+
 html {
   font-size: 100%;
   -webkit-text-size-adjust: 100%;
-  -ms-text-size-adjust: 100%;
+      -ms-text-size-adjust: 100%;
 }
+
 a:focus {
   outline: thin dotted #333;
   outline: 5px auto -webkit-focus-ring-color;
   outline-offset: -2px;
 }
+
 a:hover,
 a:active {
   outline: 0;
 }
+
 sub,
 sup {
   position: relative;
@@ -50,18 +57,26 @@
   line-height: 0;
   vertical-align: baseline;
 }
+
 sup {
   top: -0.5em;
 }
+
 sub {
   bottom: -0.25em;
 }
+
 img {
-  height: auto;
+  max-width: 100%;
+  vertical-align: middle;
   border: 0;
   -ms-interpolation-mode: bicubic;
-  vertical-align: middle;
 }
+
+#map_canvas img {
+  max-width: none;
+}
+
 button,
 input,
 select,
@@ -70,16 +85,19 @@
   font-size: 100%;
   vertical-align: middle;
 }
+
 button,
 input {
   *overflow: visible;
   line-height: normal;
 }
+
 button::-moz-focus-inner,
 input::-moz-focus-inner {
   padding: 0;
   border: 0;
 }
+
 button,
 input[type="button"],
 input[type="reset"],
@@ -87,49 +105,56 @@
   cursor: pointer;
   -webkit-appearance: button;
 }
+
 input[type="search"] {
-  -webkit-appearance: textfield;
   -webkit-box-sizing: content-box;
-  -moz-box-sizing: content-box;
-  box-sizing: content-box;
+     -moz-box-sizing: content-box;
+          box-sizing: content-box;
+  -webkit-appearance: textfield;
 }
+
 input[type="search"]::-webkit-search-decoration,
 input[type="search"]::-webkit-search-cancel-button {
   -webkit-appearance: none;
 }
+
 textarea {
   overflow: auto;
   vertical-align: top;
 }
+
 .clearfix {
   *zoom: 1;
 }
+
 .clearfix:before,
 .clearfix:after {
   display: table;
   content: "";
 }
+
 .clearfix:after {
   clear: both;
 }
+
 .hide-text {
-  overflow: hidden;
-  text-indent: 100%;
-  white-space: nowrap;
+  font: 0/0 a;
+  color: transparent;
+  text-shadow: none;
+  background-color: transparent;
+  border: 0;
 }
+
 .input-block-level {
   display: block;
   width: 100%;
   min-height: 28px;
-  /* Make inputs at least the height of their button counterpart */
-
-  /* Makes inputs behave like true block-level elements */
-
   -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
+     -moz-box-sizing: border-box;
+      -ms-box-sizing: border-box;
+          box-sizing: border-box;
 }
+
 body {
   margin: 0;
   font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
@@ -138,204 +163,279 @@
   color: #333333;
   background-color: #ffffff;
 }
+
 a {
   color: #0088cc;
   text-decoration: none;
 }
+
 a:hover {
   color: #005580;
   text-decoration: underline;
 }
+
 .row {
   margin-left: -20px;
   *zoom: 1;
 }
+
 .row:before,
 .row:after {
   display: table;
   content: "";
 }
+
 .row:after {
   clear: both;
 }
+
 [class*="span"] {
   float: left;
   margin-left: 20px;
 }
+
 .container,
 .navbar-fixed-top .container,
 .navbar-fixed-bottom .container {
   width: 940px;
 }
+
 .span12 {
   width: 940px;
 }
+
 .span11 {
   width: 860px;
 }
+
 .span10 {
   width: 780px;
 }
+
 .span9 {
   width: 700px;
 }
+
 .span8 {
   width: 620px;
 }
+
 .span7 {
   width: 540px;
 }
+
 .span6 {
   width: 460px;
 }
+
 .span5 {
   width: 380px;
 }
+
 .span4 {
   width: 300px;
 }
+
 .span3 {
   width: 220px;
 }
+
 .span2 {
   width: 140px;
 }
+
 .span1 {
   width: 60px;
 }
+
 .offset12 {
   margin-left: 980px;
 }
+
 .offset11 {
   margin-left: 900px;
 }
+
 .offset10 {
   margin-left: 820px;
 }
+
 .offset9 {
   margin-left: 740px;
 }
+
 .offset8 {
   margin-left: 660px;
 }
+
 .offset7 {
   margin-left: 580px;
 }
+
 .offset6 {
   margin-left: 500px;
 }
+
 .offset5 {
   margin-left: 420px;
 }
+
 .offset4 {
   margin-left: 340px;
 }
+
 .offset3 {
   margin-left: 260px;
 }
+
 .offset2 {
   margin-left: 180px;
 }
+
 .offset1 {
   margin-left: 100px;
 }
+
 .row-fluid {
   width: 100%;
   *zoom: 1;
 }
+
 .row-fluid:before,
 .row-fluid:after {
   display: table;
   content: "";
 }
+
 .row-fluid:after {
   clear: both;
 }
-.row-fluid > [class*="span"] {
+
+.row-fluid [class*="span"] {
+  display: block;
   float: left;
+  width: 100%;
+  min-height: 28px;
   margin-left: 2.127659574%;
+  *margin-left: 2.0744680846382977%;
+  -webkit-box-sizing: border-box;
+     -moz-box-sizing: border-box;
+      -ms-box-sizing: border-box;
+          box-sizing: border-box;
 }
-.row-fluid > [class*="span"]:first-child {
+
+.row-fluid [class*="span"]:first-child {
   margin-left: 0;
 }
-.row-fluid > .span12 {
+
+.row-fluid .span12 {
   width: 99.99999998999999%;
+  *width: 99.94680850063828%;
 }
-.row-fluid > .span11 {
+
+.row-fluid .span11 {
   width: 91.489361693%;
+  *width: 91.4361702036383%;
 }
-.row-fluid > .span10 {
+
+.row-fluid .span10 {
   width: 82.97872339599999%;
+  *width: 82.92553190663828%;
 }
-.row-fluid > .span9 {
+
+.row-fluid .span9 {
   width: 74.468085099%;
+  *width: 74.4148936096383%;
 }
-.row-fluid > .span8 {
+
+.row-fluid .span8 {
   width: 65.95744680199999%;
+  *width: 65.90425531263828%;
 }
-.row-fluid > .span7 {
+
+.row-fluid .span7 {
   width: 57.446808505%;
+  *width: 57.3936170156383%;
 }
-.row-fluid > .span6 {
+
+.row-fluid .span6 {
   width: 48.93617020799999%;
+  *width: 48.88297871863829%;
 }
-.row-fluid > .span5 {
+
+.row-fluid .span5 {
   width: 40.425531911%;
+  *width: 40.3723404216383%;
 }
-.row-fluid > .span4 {
+
+.row-fluid .span4 {
   width: 31.914893614%;
+  *width: 31.8617021246383%;
 }
-.row-fluid > .span3 {
+
+.row-fluid .span3 {
   width: 23.404255317%;
+  *width: 23.3510638276383%;
 }
-.row-fluid > .span2 {
+
+.row-fluid .span2 {
   width: 14.89361702%;
+  *width: 14.8404255306383%;
 }
-.row-fluid > .span1 {
+
+.row-fluid .span1 {
   width: 6.382978723%;
+  *width: 6.329787233638298%;
 }
+
 .container {
-  margin-left: auto;
   margin-right: auto;
+  margin-left: auto;
   *zoom: 1;
 }
+
 .container:before,
 .container:after {
   display: table;
   content: "";
 }
+
 .container:after {
   clear: both;
 }
+
 .container-fluid {
-  padding-left: 20px;
   padding-right: 20px;
+  padding-left: 20px;
   *zoom: 1;
 }
+
 .container-fluid:before,
 .container-fluid:after {
   display: table;
   content: "";
 }
+
 .container-fluid:after {
   clear: both;
 }
+
 p {
   margin: 0 0 9px;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  line-height: 18px;
 }
+
 p small {
   font-size: 11px;
   color: #999999;
 }
+
 .lead {
   margin-bottom: 18px;
   font-size: 20px;
   font-weight: 200;
   line-height: 27px;
 }
+
 h1,
 h2,
 h3,
@@ -348,6 +448,7 @@
   color: inherit;
   text-rendering: optimizelegibility;
 }
+
 h1 small,
 h2 small,
 h3 small,
@@ -357,227 +458,280 @@
   font-weight: normal;
   color: #999999;
 }
+
 h1 {
   font-size: 30px;
   line-height: 36px;
 }
+
 h1 small {
   font-size: 18px;
 }
+
 h2 {
   font-size: 24px;
   line-height: 36px;
 }
+
 h2 small {
   font-size: 18px;
 }
+
 h3 {
-  line-height: 27px;
   font-size: 18px;
+  line-height: 27px;
 }
+
 h3 small {
   font-size: 14px;
 }
+
 h4,
 h5,
 h6 {
   line-height: 18px;
 }
+
 h4 {
   font-size: 14px;
 }
+
 h4 small {
   font-size: 12px;
 }
+
 h5 {
   font-size: 12px;
 }
+
 h6 {
   font-size: 11px;
   color: #999999;
   text-transform: uppercase;
 }
+
 .page-header {
   padding-bottom: 17px;
   margin: 18px 0;
   border-bottom: 1px solid #eeeeee;
 }
+
 .page-header h1 {
   line-height: 1;
 }
+
 ul,
 ol {
   padding: 0;
   margin: 0 0 9px 25px;
 }
+
 ul ul,
 ul ol,
 ol ol,
 ol ul {
   margin-bottom: 0;
 }
+
 ul {
   list-style: disc;
 }
+
 ol {
   list-style: decimal;
 }
+
 li {
   line-height: 18px;
 }
+
 ul.unstyled,
 ol.unstyled {
   margin-left: 0;
   list-style: none;
 }
+
 dl {
   margin-bottom: 18px;
 }
+
 dt,
 dd {
   line-height: 18px;
 }
+
 dt {
   font-weight: bold;
   line-height: 17px;
 }
+
 dd {
   margin-left: 9px;
 }
+
 .dl-horizontal dt {
   float: left;
-  clear: left;
   width: 120px;
+  overflow: hidden;
+  clear: left;
   text-align: right;
+  text-overflow: ellipsis;
+  white-space: nowrap;
 }
+
 .dl-horizontal dd {
   margin-left: 130px;
 }
+
 hr {
   margin: 18px 0;
   border: 0;
   border-top: 1px solid #eeeeee;
   border-bottom: 1px solid #ffffff;
 }
+
 strong {
   font-weight: bold;
 }
+
 em {
   font-style: italic;
 }
+
 .muted {
   color: #999999;
 }
+
 abbr[title] {
-  border-bottom: 1px dotted #ddd;
   cursor: help;
+  border-bottom: 1px dotted #999999;
 }
+
 abbr.initialism {
   font-size: 90%;
   text-transform: uppercase;
 }
+
 blockquote {
   padding: 0 0 0 15px;
   margin: 0 0 18px;
   border-left: 5px solid #eeeeee;
 }
+
 blockquote p {
   margin-bottom: 0;
   font-size: 16px;
   font-weight: 300;
   line-height: 22.5px;
 }
+
 blockquote small {
   display: block;
   line-height: 18px;
   color: #999999;
 }
+
 blockquote small:before {
   content: '\2014 \00A0';
 }
+
 blockquote.pull-right {
   float: right;
-  padding-left: 0;
   padding-right: 15px;
-  border-left: 0;
+  padding-left: 0;
   border-right: 5px solid #eeeeee;
+  border-left: 0;
 }
+
 blockquote.pull-right p,
 blockquote.pull-right small {
   text-align: right;
 }
+
 q:before,
 q:after,
 blockquote:before,
 blockquote:after {
   content: "";
 }
+
 address {
   display: block;
   margin-bottom: 18px;
-  line-height: 18px;
   font-style: normal;
+  line-height: 18px;
 }
+
 small {
   font-size: 100%;
 }
+
 cite {
   font-style: normal;
 }
+
 code,
 pre {
   padding: 0 3px 2px;
-  font-family: Menlo, Monaco, "Courier New", monospace;
+  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
   font-size: 12px;
   color: #333333;
   -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
 }
+
 code {
   padding: 2px 4px;
   color: #d14;
   background-color: #f7f7f9;
   border: 1px solid #e1e1e8;
 }
+
 pre {
   display: block;
   padding: 8.5px;
   margin: 0 0 9px;
   font-size: 12.025px;
   line-height: 18px;
+  word-break: break-all;
+  word-wrap: break-word;
+  white-space: pre;
+  white-space: pre-wrap;
   background-color: #f5f5f5;
   border: 1px solid #ccc;
   border: 1px solid rgba(0, 0, 0, 0.15);
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  white-space: pre;
-  white-space: pre-wrap;
-  word-break: break-all;
-  word-wrap: break-word;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
 }
+
 pre.prettyprint {
   margin-bottom: 18px;
 }
+
 pre code {
   padding: 0;
   color: inherit;
   background-color: transparent;
   border: 0;
 }
+
 .pre-scrollable {
   max-height: 340px;
   overflow-y: scroll;
 }
+
 form {
   margin: 0 0 18px;
 }
+
 fieldset {
   padding: 0;
   margin: 0;
   border: 0;
 }
+
 legend {
   display: block;
   width: 100%;
@@ -587,12 +741,14 @@
   line-height: 36px;
   color: #333333;
   border: 0;
-  border-bottom: 1px solid #eee;
+  border-bottom: 1px solid #e5e5e5;
 }
+
 legend small {
   font-size: 13.5px;
   color: #999999;
 }
+
 label,
 input,
 button,
@@ -602,82 +758,134 @@
   font-weight: normal;
   line-height: 18px;
 }
+
 input,
 button,
 select,
 textarea {
   font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
 }
+
 label {
   display: block;
   margin-bottom: 5px;
-  color: #333333;
 }
-input,
-textarea,
+
 select,
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
 .uneditable-input {
   display: inline-block;
-  width: 210px;
   height: 18px;
   padding: 4px;
   margin-bottom: 9px;
   font-size: 13px;
   line-height: 18px;
   color: #555555;
+}
+
+input,
+textarea {
+  width: 210px;
+}
+
+textarea {
+  height: auto;
+}
+
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
+.uneditable-input {
+  background-color: #ffffff;
   border: 1px solid #cccccc;
   -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
+     -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
+      -ms-transition: border linear 0.2s, box-shadow linear 0.2s;
+       -o-transition: border linear 0.2s, box-shadow linear 0.2s;
+          transition: border linear 0.2s, box-shadow linear 0.2s;
 }
-.uneditable-textarea {
-  width: auto;
-  height: auto;
+
+textarea:focus,
+input[type="text"]:focus,
+input[type="password"]:focus,
+input[type="datetime"]:focus,
+input[type="datetime-local"]:focus,
+input[type="date"]:focus,
+input[type="month"]:focus,
+input[type="time"]:focus,
+input[type="week"]:focus,
+input[type="number"]:focus,
+input[type="email"]:focus,
+input[type="url"]:focus,
+input[type="search"]:focus,
+input[type="tel"]:focus,
+input[type="color"]:focus,
+.uneditable-input:focus {
+  border-color: rgba(82, 168, 236, 0.8);
+  outline: 0;
+  outline: thin dotted \9;
+  /* IE6-9 */
+
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
 }
-label input,
-label textarea,
-label select {
-  display: block;
-}
-input[type="image"],
-input[type="checkbox"],
-input[type="radio"] {
-  width: auto;
-  height: auto;
-  padding: 0;
+
+input[type="radio"],
+input[type="checkbox"] {
   margin: 3px 0;
   *margin-top: 0;
   /* IE7 */
 
   line-height: normal;
   cursor: pointer;
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-  border: 0 \9;
-  /* IE9 and down */
+}
 
-}
-input[type="image"] {
-  border: 0;
-}
-input[type="file"] {
-  width: auto;
-  padding: initial;
-  line-height: initial;
-  border: initial;
-  background-color: #ffffff;
-  background-color: initial;
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-input[type="button"],
+input[type="submit"],
 input[type="reset"],
-input[type="submit"] {
+input[type="button"],
+input[type="radio"],
+input[type="checkbox"] {
+  width: auto;
+}
+
+.uneditable-textarea {
   width: auto;
   height: auto;
 }
+
 select,
 input[type="file"] {
   height: 28px;
@@ -688,41 +896,43 @@
 
   line-height: 28px;
 }
-input[type="file"] {
-  line-height: 18px \9;
-}
+
 select {
   width: 220px;
-  background-color: #ffffff;
+  border: 1px solid #bbb;
 }
+
 select[multiple],
 select[size] {
   height: auto;
 }
-input[type="image"] {
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
+
+select:focus,
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+  outline: thin dotted #333;
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
 }
-textarea {
-  height: auto;
-}
-input[type="hidden"] {
-  display: none;
-}
+
 .radio,
 .checkbox {
+  min-height: 18px;
   padding-left: 18px;
 }
+
 .radio input[type="radio"],
 .checkbox input[type="checkbox"] {
   float: left;
   margin-left: -18px;
 }
+
 .controls > .radio:first-child,
 .controls > .checkbox:first-child {
   padding-top: 5px;
 }
+
 .radio.inline,
 .checkbox.inline {
   display: inline-block;
@@ -730,290 +940,368 @@
   margin-bottom: 0;
   vertical-align: middle;
 }
+
 .radio.inline + .radio.inline,
 .checkbox.inline + .checkbox.inline {
   margin-left: 10px;
 }
-input,
-textarea {
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
-  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
-  -ms-transition: border linear 0.2s, box-shadow linear 0.2s;
-  -o-transition: border linear 0.2s, box-shadow linear 0.2s;
-  transition: border linear 0.2s, box-shadow linear 0.2s;
-}
-input:focus,
-textarea:focus {
-  border-color: rgba(82, 168, 236, 0.8);
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
-  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
-  outline: 0;
-  outline: thin dotted \9;
-  /* IE6-9 */
 
-}
-input[type="file"]:focus,
-input[type="radio"]:focus,
-input[type="checkbox"]:focus,
-select:focus {
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-  outline: thin dotted #333;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
 .input-mini {
   width: 60px;
 }
+
 .input-small {
   width: 90px;
 }
+
 .input-medium {
   width: 150px;
 }
+
 .input-large {
   width: 210px;
 }
+
 .input-xlarge {
   width: 270px;
 }
+
 .input-xxlarge {
   width: 530px;
 }
+
 input[class*="span"],
 select[class*="span"],
 textarea[class*="span"],
-.uneditable-input {
+.uneditable-input[class*="span"],
+.row-fluid input[class*="span"],
+.row-fluid select[class*="span"],
+.row-fluid textarea[class*="span"],
+.row-fluid .uneditable-input[class*="span"] {
   float: none;
   margin-left: 0;
 }
+
+.input-append input[class*="span"],
+.input-append .uneditable-input[class*="span"],
+.input-prepend input[class*="span"],
+.input-prepend .uneditable-input[class*="span"],
+.row-fluid .input-prepend [class*="span"],
+.row-fluid .input-append [class*="span"] {
+  display: inline-block;
+}
+
 input,
 textarea,
 .uneditable-input {
   margin-left: 0;
 }
-input.span12, textarea.span12, .uneditable-input.span12 {
+
+input.span12,
+textarea.span12,
+.uneditable-input.span12 {
   width: 930px;
 }
-input.span11, textarea.span11, .uneditable-input.span11 {
+
+input.span11,
+textarea.span11,
+.uneditable-input.span11 {
   width: 850px;
 }
-input.span10, textarea.span10, .uneditable-input.span10 {
+
+input.span10,
+textarea.span10,
+.uneditable-input.span10 {
   width: 770px;
 }
-input.span9, textarea.span9, .uneditable-input.span9 {
+
+input.span9,
+textarea.span9,
+.uneditable-input.span9 {
   width: 690px;
 }
-input.span8, textarea.span8, .uneditable-input.span8 {
+
+input.span8,
+textarea.span8,
+.uneditable-input.span8 {
   width: 610px;
 }
-input.span7, textarea.span7, .uneditable-input.span7 {
+
+input.span7,
+textarea.span7,
+.uneditable-input.span7 {
   width: 530px;
 }
-input.span6, textarea.span6, .uneditable-input.span6 {
+
+input.span6,
+textarea.span6,
+.uneditable-input.span6 {
   width: 450px;
 }
-input.span5, textarea.span5, .uneditable-input.span5 {
+
+input.span5,
+textarea.span5,
+.uneditable-input.span5 {
   width: 370px;
 }
-input.span4, textarea.span4, .uneditable-input.span4 {
+
+input.span4,
+textarea.span4,
+.uneditable-input.span4 {
   width: 290px;
 }
-input.span3, textarea.span3, .uneditable-input.span3 {
+
+input.span3,
+textarea.span3,
+.uneditable-input.span3 {
   width: 210px;
 }
-input.span2, textarea.span2, .uneditable-input.span2 {
+
+input.span2,
+textarea.span2,
+.uneditable-input.span2 {
   width: 130px;
 }
-input.span1, textarea.span1, .uneditable-input.span1 {
+
+input.span1,
+textarea.span1,
+.uneditable-input.span1 {
   width: 50px;
 }
+
 input[disabled],
 select[disabled],
 textarea[disabled],
 input[readonly],
 select[readonly],
 textarea[readonly] {
+  cursor: not-allowed;
   background-color: #eeeeee;
   border-color: #ddd;
-  cursor: not-allowed;
 }
+
+input[type="radio"][disabled],
+input[type="checkbox"][disabled],
+input[type="radio"][readonly],
+input[type="checkbox"][readonly] {
+  background-color: transparent;
+}
+
 .control-group.warning > label,
 .control-group.warning .help-block,
 .control-group.warning .help-inline {
   color: #c09853;
 }
+
+.control-group.warning .checkbox,
+.control-group.warning .radio,
 .control-group.warning input,
 .control-group.warning select,
 .control-group.warning textarea {
   color: #c09853;
   border-color: #c09853;
 }
+
+.control-group.warning .checkbox:focus,
+.control-group.warning .radio:focus,
 .control-group.warning input:focus,
 .control-group.warning select:focus,
 .control-group.warning textarea:focus {
   border-color: #a47e3c;
   -webkit-box-shadow: 0 0 6px #dbc59e;
-  -moz-box-shadow: 0 0 6px #dbc59e;
-  box-shadow: 0 0 6px #dbc59e;
+     -moz-box-shadow: 0 0 6px #dbc59e;
+          box-shadow: 0 0 6px #dbc59e;
 }
+
 .control-group.warning .input-prepend .add-on,
 .control-group.warning .input-append .add-on {
   color: #c09853;
   background-color: #fcf8e3;
   border-color: #c09853;
 }
+
 .control-group.error > label,
 .control-group.error .help-block,
 .control-group.error .help-inline {
   color: #b94a48;
 }
+
+.control-group.error .checkbox,
+.control-group.error .radio,
 .control-group.error input,
 .control-group.error select,
 .control-group.error textarea {
   color: #b94a48;
   border-color: #b94a48;
 }
+
+.control-group.error .checkbox:focus,
+.control-group.error .radio:focus,
 .control-group.error input:focus,
 .control-group.error select:focus,
 .control-group.error textarea:focus {
   border-color: #953b39;
   -webkit-box-shadow: 0 0 6px #d59392;
-  -moz-box-shadow: 0 0 6px #d59392;
-  box-shadow: 0 0 6px #d59392;
+     -moz-box-shadow: 0 0 6px #d59392;
+          box-shadow: 0 0 6px #d59392;
 }
+
 .control-group.error .input-prepend .add-on,
 .control-group.error .input-append .add-on {
   color: #b94a48;
   background-color: #f2dede;
   border-color: #b94a48;
 }
+
 .control-group.success > label,
 .control-group.success .help-block,
 .control-group.success .help-inline {
   color: #468847;
 }
+
+.control-group.success .checkbox,
+.control-group.success .radio,
 .control-group.success input,
 .control-group.success select,
 .control-group.success textarea {
   color: #468847;
   border-color: #468847;
 }
+
+.control-group.success .checkbox:focus,
+.control-group.success .radio:focus,
 .control-group.success input:focus,
 .control-group.success select:focus,
 .control-group.success textarea:focus {
   border-color: #356635;
   -webkit-box-shadow: 0 0 6px #7aba7b;
-  -moz-box-shadow: 0 0 6px #7aba7b;
-  box-shadow: 0 0 6px #7aba7b;
+     -moz-box-shadow: 0 0 6px #7aba7b;
+          box-shadow: 0 0 6px #7aba7b;
 }
+
 .control-group.success .input-prepend .add-on,
 .control-group.success .input-append .add-on {
   color: #468847;
   background-color: #dff0d8;
   border-color: #468847;
 }
+
 input:focus:required:invalid,
 textarea:focus:required:invalid,
 select:focus:required:invalid {
   color: #b94a48;
   border-color: #ee5f5b;
 }
+
 input:focus:required:invalid:focus,
 textarea:focus:required:invalid:focus,
 select:focus:required:invalid:focus {
   border-color: #e9322d;
   -webkit-box-shadow: 0 0 6px #f8b9b7;
-  -moz-box-shadow: 0 0 6px #f8b9b7;
-  box-shadow: 0 0 6px #f8b9b7;
+     -moz-box-shadow: 0 0 6px #f8b9b7;
+          box-shadow: 0 0 6px #f8b9b7;
 }
+
 .form-actions {
   padding: 17px 20px 18px;
   margin-top: 18px;
   margin-bottom: 18px;
-  background-color: #eeeeee;
-  border-top: 1px solid #ddd;
+  background-color: #f5f5f5;
+  border-top: 1px solid #e5e5e5;
   *zoom: 1;
 }
+
 .form-actions:before,
 .form-actions:after {
   display: table;
   content: "";
 }
+
 .form-actions:after {
   clear: both;
 }
+
 .uneditable-input {
-  display: block;
+  overflow: hidden;
+  white-space: nowrap;
+  cursor: not-allowed;
   background-color: #ffffff;
   border-color: #eee;
   -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
-  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
-  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
-  cursor: not-allowed;
+     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
+          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
 }
+
 :-moz-placeholder {
   color: #999999;
 }
+
+:-ms-input-placeholder {
+  color: #999999;
+}
+
 ::-webkit-input-placeholder {
   color: #999999;
 }
+
 .help-block,
 .help-inline {
   color: #555555;
 }
+
 .help-block {
   display: block;
   margin-bottom: 9px;
 }
+
 .help-inline {
   display: inline-block;
   *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
-  vertical-align: middle;
   padding-left: 5px;
+  vertical-align: middle;
+  *zoom: 1;
 }
+
 .input-prepend,
 .input-append {
   margin-bottom: 5px;
 }
+
 .input-prepend input,
 .input-append input,
 .input-prepend select,
 .input-append select,
 .input-prepend .uneditable-input,
 .input-append .uneditable-input {
+  position: relative;
+  margin-bottom: 0;
   *margin-left: 0;
+  vertical-align: middle;
   -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
+     -moz-border-radius: 0 3px 3px 0;
+          border-radius: 0 3px 3px 0;
 }
+
 .input-prepend input:focus,
 .input-append input:focus,
 .input-prepend select:focus,
 .input-append select:focus,
 .input-prepend .uneditable-input:focus,
 .input-append .uneditable-input:focus {
-  position: relative;
   z-index: 2;
 }
+
 .input-prepend .uneditable-input,
 .input-append .uneditable-input {
   border-left-color: #ccc;
 }
+
 .input-prepend .add-on,
 .input-append .add-on {
   display: inline-block;
   width: auto;
-  min-width: 16px;
   height: 18px;
+  min-width: 16px;
   padding: 4px 5px;
   font-weight: normal;
   line-height: 18px;
@@ -1023,69 +1311,92 @@
   background-color: #eeeeee;
   border: 1px solid #ccc;
 }
+
 .input-prepend .add-on,
 .input-append .add-on,
 .input-prepend .btn,
 .input-append .btn {
-  -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
+  margin-left: -1px;
+  -webkit-border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
 }
+
 .input-prepend .active,
 .input-append .active {
   background-color: #a9dba9;
   border-color: #46a546;
 }
+
 .input-prepend .add-on,
 .input-prepend .btn {
   margin-right: -1px;
 }
-.input-append input,
-.input-append select .uneditable-input {
+
+.input-prepend .add-on:first-child,
+.input-prepend .btn:first-child {
   -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
+     -moz-border-radius: 3px 0 0 3px;
+          border-radius: 3px 0 0 3px;
 }
+
+.input-append input,
+.input-append select,
 .input-append .uneditable-input {
-  border-left-color: #eee;
+  -webkit-border-radius: 3px 0 0 3px;
+     -moz-border-radius: 3px 0 0 3px;
+          border-radius: 3px 0 0 3px;
+}
+
+.input-append .uneditable-input {
   border-right-color: #ccc;
+  border-left-color: #eee;
 }
-.input-append .add-on,
-.input-append .btn {
-  margin-left: -1px;
+
+.input-append .add-on:last-child,
+.input-append .btn:last-child {
   -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
+     -moz-border-radius: 0 3px 3px 0;
+          border-radius: 0 3px 3px 0;
 }
+
 .input-prepend.input-append input,
 .input-prepend.input-append select,
 .input-prepend.input-append .uneditable-input {
   -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
 }
+
 .input-prepend.input-append .add-on:first-child,
 .input-prepend.input-append .btn:first-child {
   margin-right: -1px;
   -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
+     -moz-border-radius: 3px 0 0 3px;
+          border-radius: 3px 0 0 3px;
 }
+
 .input-prepend.input-append .add-on:last-child,
 .input-prepend.input-append .btn:last-child {
   margin-left: -1px;
   -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
+     -moz-border-radius: 0 3px 3px 0;
+          border-radius: 0 3px 3px 0;
 }
+
 .search-query {
-  padding-left: 14px;
   padding-right: 14px;
+  padding-right: 4px \9;
+  padding-left: 14px;
+  padding-left: 4px \9;
+  /* IE7-8 doesn't have border-radius, so don't indent the padding */
+
   margin-bottom: 0;
   -webkit-border-radius: 14px;
-  -moz-border-radius: 14px;
-  border-radius: 14px;
+     -moz-border-radius: 14px;
+          border-radius: 14px;
 }
+
 .form-search input,
 .form-inline input,
 .form-horizontal input,
@@ -1108,23 +1419,29 @@
 .form-inline .input-append,
 .form-horizontal .input-append {
   display: inline-block;
+  *display: inline;
   margin-bottom: 0;
+  *zoom: 1;
 }
+
 .form-search .hide,
 .form-inline .hide,
 .form-horizontal .hide {
   display: none;
 }
+
 .form-search label,
 .form-inline label {
   display: inline-block;
 }
+
 .form-search .input-append,
 .form-inline .input-append,
 .form-search .input-prepend,
 .form-inline .input-prepend {
   margin-bottom: 0;
 }
+
 .form-search .radio,
 .form-search .checkbox,
 .form-inline .radio,
@@ -1133,64 +1450,79 @@
   margin-bottom: 0;
   vertical-align: middle;
 }
+
 .form-search .radio input[type="radio"],
 .form-search .checkbox input[type="checkbox"],
 .form-inline .radio input[type="radio"],
 .form-inline .checkbox input[type="checkbox"] {
   float: left;
-  margin-left: 0;
   margin-right: 3px;
+  margin-left: 0;
 }
+
 .control-group {
   margin-bottom: 9px;
 }
+
 legend + .control-group {
   margin-top: 18px;
   -webkit-margin-top-collapse: separate;
 }
+
 .form-horizontal .control-group {
   margin-bottom: 18px;
   *zoom: 1;
 }
+
 .form-horizontal .control-group:before,
 .form-horizontal .control-group:after {
   display: table;
   content: "";
 }
+
 .form-horizontal .control-group:after {
   clear: both;
 }
+
 .form-horizontal .control-label {
   float: left;
   width: 140px;
   padding-top: 5px;
   text-align: right;
 }
-.form-horizontal .controls {
-  margin-left: 160px;
-  /* Super jank IE7 fix to ensure the inputs in .input-append and input-prepend don't inherit the margin of the parent, in this case .controls */
 
+.form-horizontal .controls {
   *display: inline-block;
-  *margin-left: 0;
   *padding-left: 20px;
+  margin-left: 160px;
+  *margin-left: 0;
 }
+
+.form-horizontal .controls:first-child {
+  *padding-left: 160px;
+}
+
 .form-horizontal .help-block {
   margin-top: 9px;
   margin-bottom: 0;
 }
+
 .form-horizontal .form-actions {
   padding-left: 160px;
 }
+
 table {
   max-width: 100%;
+  background-color: transparent;
   border-collapse: collapse;
   border-spacing: 0;
-  background-color: transparent;
 }
+
 .table {
   width: 100%;
   margin-bottom: 18px;
 }
+
 .table th,
 .table td {
   padding: 8px;
@@ -1199,646 +1531,907 @@
   vertical-align: top;
   border-top: 1px solid #dddddd;
 }
+
 .table th {
   font-weight: bold;
 }
+
 .table thead th {
   vertical-align: bottom;
 }
+
+.table caption + thead tr:first-child th,
+.table caption + thead tr:first-child td,
 .table colgroup + thead tr:first-child th,
 .table colgroup + thead tr:first-child td,
 .table thead:first-child tr:first-child th,
 .table thead:first-child tr:first-child td {
   border-top: 0;
 }
+
 .table tbody + tbody {
   border-top: 2px solid #dddddd;
 }
+
 .table-condensed th,
 .table-condensed td {
   padding: 4px 5px;
 }
+
 .table-bordered {
   border: 1px solid #dddddd;
-  border-left: 0;
   border-collapse: separate;
   *border-collapse: collapsed;
+  border-left: 0;
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
 }
+
 .table-bordered th,
 .table-bordered td {
   border-left: 1px solid #dddddd;
 }
+
+.table-bordered caption + thead tr:first-child th,
+.table-bordered caption + tbody tr:first-child th,
+.table-bordered caption + tbody tr:first-child td,
+.table-bordered colgroup + thead tr:first-child th,
+.table-bordered colgroup + tbody tr:first-child th,
+.table-bordered colgroup + tbody tr:first-child td,
 .table-bordered thead:first-child tr:first-child th,
 .table-bordered tbody:first-child tr:first-child th,
 .table-bordered tbody:first-child tr:first-child td {
   border-top: 0;
 }
+
 .table-bordered thead:first-child tr:first-child th:first-child,
 .table-bordered tbody:first-child tr:first-child td:first-child {
-  -webkit-border-radius: 4px 0 0 0;
-  -moz-border-radius: 4px 0 0 0;
-  border-radius: 4px 0 0 0;
+  -webkit-border-top-left-radius: 4px;
+          border-top-left-radius: 4px;
+  -moz-border-radius-topleft: 4px;
 }
+
 .table-bordered thead:first-child tr:first-child th:last-child,
 .table-bordered tbody:first-child tr:first-child td:last-child {
-  -webkit-border-radius: 0 4px 0 0;
-  -moz-border-radius: 0 4px 0 0;
-  border-radius: 0 4px 0 0;
+  -webkit-border-top-right-radius: 4px;
+          border-top-right-radius: 4px;
+  -moz-border-radius-topright: 4px;
 }
+
 .table-bordered thead:last-child tr:last-child th:first-child,
 .table-bordered tbody:last-child tr:last-child td:first-child {
   -webkit-border-radius: 0 0 0 4px;
-  -moz-border-radius: 0 0 0 4px;
-  border-radius: 0 0 0 4px;
+     -moz-border-radius: 0 0 0 4px;
+          border-radius: 0 0 0 4px;
+  -webkit-border-bottom-left-radius: 4px;
+          border-bottom-left-radius: 4px;
+  -moz-border-radius-bottomleft: 4px;
 }
+
 .table-bordered thead:last-child tr:last-child th:last-child,
 .table-bordered tbody:last-child tr:last-child td:last-child {
-  -webkit-border-radius: 0 0 4px 0;
-  -moz-border-radius: 0 0 4px 0;
-  border-radius: 0 0 4px 0;
+  -webkit-border-bottom-right-radius: 4px;
+          border-bottom-right-radius: 4px;
+  -moz-border-radius-bottomright: 4px;
 }
+
 .table-striped tbody tr:nth-child(odd) td,
 .table-striped tbody tr:nth-child(odd) th {
   background-color: #f9f9f9;
 }
+
 .table tbody tr:hover td,
 .table tbody tr:hover th {
   background-color: #f5f5f5;
 }
+
 table .span1 {
   float: none;
   width: 44px;
   margin-left: 0;
 }
+
 table .span2 {
   float: none;
   width: 124px;
   margin-left: 0;
 }
+
 table .span3 {
   float: none;
   width: 204px;
   margin-left: 0;
 }
+
 table .span4 {
   float: none;
   width: 284px;
   margin-left: 0;
 }
+
 table .span5 {
   float: none;
   width: 364px;
   margin-left: 0;
 }
+
 table .span6 {
   float: none;
   width: 444px;
   margin-left: 0;
 }
+
 table .span7 {
   float: none;
   width: 524px;
   margin-left: 0;
 }
+
 table .span8 {
   float: none;
   width: 604px;
   margin-left: 0;
 }
+
 table .span9 {
   float: none;
   width: 684px;
   margin-left: 0;
 }
+
 table .span10 {
   float: none;
   width: 764px;
   margin-left: 0;
 }
+
 table .span11 {
   float: none;
   width: 844px;
   margin-left: 0;
 }
+
 table .span12 {
   float: none;
   width: 924px;
   margin-left: 0;
 }
+
 table .span13 {
   float: none;
   width: 1004px;
   margin-left: 0;
 }
+
 table .span14 {
   float: none;
   width: 1084px;
   margin-left: 0;
 }
+
 table .span15 {
   float: none;
   width: 1164px;
   margin-left: 0;
 }
+
 table .span16 {
   float: none;
   width: 1244px;
   margin-left: 0;
 }
+
 table .span17 {
   float: none;
   width: 1324px;
   margin-left: 0;
 }
+
 table .span18 {
   float: none;
   width: 1404px;
   margin-left: 0;
 }
+
 table .span19 {
   float: none;
   width: 1484px;
   margin-left: 0;
 }
+
 table .span20 {
   float: none;
   width: 1564px;
   margin-left: 0;
 }
+
 table .span21 {
   float: none;
   width: 1644px;
   margin-left: 0;
 }
+
 table .span22 {
   float: none;
   width: 1724px;
   margin-left: 0;
 }
+
 table .span23 {
   float: none;
   width: 1804px;
   margin-left: 0;
 }
+
 table .span24 {
   float: none;
   width: 1884px;
   margin-left: 0;
 }
+
 [class^="icon-"],
 [class*=" icon-"] {
   display: inline-block;
   width: 14px;
   height: 14px;
+  *margin-right: .3em;
   line-height: 14px;
   vertical-align: text-top;
   background-image: url("../img/glyphicons-halflings.png");
   background-position: 14px 14px;
   background-repeat: no-repeat;
-  *margin-right: .3em;
 }
+
 [class^="icon-"]:last-child,
 [class*=" icon-"]:last-child {
   *margin-left: 0;
 }
+
 .icon-white {
   background-image: url("../img/glyphicons-halflings-white.png");
 }
+
 .icon-glass {
   background-position: 0      0;
 }
+
 .icon-music {
   background-position: -24px 0;
 }
+
 .icon-search {
   background-position: -48px 0;
 }
+
 .icon-envelope {
   background-position: -72px 0;
 }
+
 .icon-heart {
   background-position: -96px 0;
 }
+
 .icon-star {
   background-position: -120px 0;
 }
+
 .icon-star-empty {
   background-position: -144px 0;
 }
+
 .icon-user {
   background-position: -168px 0;
 }
+
 .icon-film {
   background-position: -192px 0;
 }
+
 .icon-th-large {
   background-position: -216px 0;
 }
+
 .icon-th {
   background-position: -240px 0;
 }
+
 .icon-th-list {
   background-position: -264px 0;
 }
+
 .icon-ok {
   background-position: -288px 0;
 }
+
 .icon-remove {
   background-position: -312px 0;
 }
+
 .icon-zoom-in {
   background-position: -336px 0;
 }
+
 .icon-zoom-out {
   background-position: -360px 0;
 }
+
 .icon-off {
   background-position: -384px 0;
 }
+
 .icon-signal {
   background-position: -408px 0;
 }
+
 .icon-cog {
   background-position: -432px 0;
 }
+
 .icon-trash {
   background-position: -456px 0;
 }
+
 .icon-home {
   background-position: 0 -24px;
 }
+
 .icon-file {
   background-position: -24px -24px;
 }
+
 .icon-time {
   background-position: -48px -24px;
 }
+
 .icon-road {
   background-position: -72px -24px;
 }
+
 .icon-download-alt {
   background-position: -96px -24px;
 }
+
 .icon-download {
   background-position: -120px -24px;
 }
+
 .icon-upload {
   background-position: -144px -24px;
 }
+
 .icon-inbox {
   background-position: -168px -24px;
 }
+
 .icon-play-circle {
   background-position: -192px -24px;
 }
+
 .icon-repeat {
   background-position: -216px -24px;
 }
+
 .icon-refresh {
   background-position: -240px -24px;
 }
+
 .icon-list-alt {
   background-position: -264px -24px;
 }
+
 .icon-lock {
   background-position: -287px -24px;
 }
+
 .icon-flag {
   background-position: -312px -24px;
 }
+
 .icon-headphones {
   background-position: -336px -24px;
 }
+
 .icon-volume-off {
   background-position: -360px -24px;
 }
+
 .icon-volume-down {
   background-position: -384px -24px;
 }
+
 .icon-volume-up {
   background-position: -408px -24px;
 }
+
 .icon-qrcode {
   background-position: -432px -24px;
 }
+
 .icon-barcode {
   background-position: -456px -24px;
 }
+
 .icon-tag {
   background-position: 0 -48px;
 }
+
 .icon-tags {
   background-position: -25px -48px;
 }
+
 .icon-book {
   background-position: -48px -48px;
 }
+
 .icon-bookmark {
   background-position: -72px -48px;
 }
+
 .icon-print {
   background-position: -96px -48px;
 }
+
 .icon-camera {
   background-position: -120px -48px;
 }
+
 .icon-font {
   background-position: -144px -48px;
 }
+
 .icon-bold {
   background-position: -167px -48px;
 }
+
 .icon-italic {
   background-position: -192px -48px;
 }
+
 .icon-text-height {
   background-position: -216px -48px;
 }
+
 .icon-text-width {
   background-position: -240px -48px;
 }
+
 .icon-align-left {
   background-position: -264px -48px;
 }
+
 .icon-align-center {
   background-position: -288px -48px;
 }
+
 .icon-align-right {
   background-position: -312px -48px;
 }
+
 .icon-align-justify {
   background-position: -336px -48px;
 }
+
 .icon-list {
   background-position: -360px -48px;
 }
+
 .icon-indent-left {
   background-position: -384px -48px;
 }
+
 .icon-indent-right {
   background-position: -408px -48px;
 }
+
 .icon-facetime-video {
   background-position: -432px -48px;
 }
+
 .icon-picture {
   background-position: -456px -48px;
 }
+
 .icon-pencil {
   background-position: 0 -72px;
 }
+
 .icon-map-marker {
   background-position: -24px -72px;
 }
+
 .icon-adjust {
   background-position: -48px -72px;
 }
+
 .icon-tint {
   background-position: -72px -72px;
 }
+
 .icon-edit {
   background-position: -96px -72px;
 }
+
 .icon-share {
   background-position: -120px -72px;
 }
+
 .icon-check {
   background-position: -144px -72px;
 }
+
 .icon-move {
   background-position: -168px -72px;
 }
+
 .icon-step-backward {
   background-position: -192px -72px;
 }
+
 .icon-fast-backward {
   background-position: -216px -72px;
 }
+
 .icon-backward {
   background-position: -240px -72px;
 }
+
 .icon-play {
   background-position: -264px -72px;
 }
+
 .icon-pause {
   background-position: -288px -72px;
 }
+
 .icon-stop {
   background-position: -312px -72px;
 }
+
 .icon-forward {
   background-position: -336px -72px;
 }
+
 .icon-fast-forward {
   background-position: -360px -72px;
 }
+
 .icon-step-forward {
   background-position: -384px -72px;
 }
+
 .icon-eject {
   background-position: -408px -72px;
 }
+
 .icon-chevron-left {
   background-position: -432px -72px;
 }
+
 .icon-chevron-right {
   background-position: -456px -72px;
 }
+
 .icon-plus-sign {
   background-position: 0 -96px;
 }
+
 .icon-minus-sign {
   background-position: -24px -96px;
 }
+
 .icon-remove-sign {
   background-position: -48px -96px;
 }
+
 .icon-ok-sign {
   background-position: -72px -96px;
 }
+
 .icon-question-sign {
   background-position: -96px -96px;
 }
+
 .icon-info-sign {
   background-position: -120px -96px;
 }
+
 .icon-screenshot {
   background-position: -144px -96px;
 }
+
 .icon-remove-circle {
   background-position: -168px -96px;
 }
+
 .icon-ok-circle {
   background-position: -192px -96px;
 }
+
 .icon-ban-circle {
   background-position: -216px -96px;
 }
+
 .icon-arrow-left {
   background-position: -240px -96px;
 }
+
 .icon-arrow-right {
   background-position: -264px -96px;
 }
+
 .icon-arrow-up {
   background-position: -289px -96px;
 }
+
 .icon-arrow-down {
   background-position: -312px -96px;
 }
+
 .icon-share-alt {
   background-position: -336px -96px;
 }
+
 .icon-resize-full {
   background-position: -360px -96px;
 }
+
 .icon-resize-small {
   background-position: -384px -96px;
 }
+
 .icon-plus {
   background-position: -408px -96px;
 }
+
 .icon-minus {
   background-position: -433px -96px;
 }
+
 .icon-asterisk {
   background-position: -456px -96px;
 }
+
 .icon-exclamation-sign {
   background-position: 0 -120px;
 }
+
 .icon-gift {
   background-position: -24px -120px;
 }
+
 .icon-leaf {
   background-position: -48px -120px;
 }
+
 .icon-fire {
   background-position: -72px -120px;
 }
+
 .icon-eye-open {
   background-position: -96px -120px;
 }
+
 .icon-eye-close {
   background-position: -120px -120px;
 }
+
 .icon-warning-sign {
   background-position: -144px -120px;
 }
+
 .icon-plane {
   background-position: -168px -120px;
 }
+
 .icon-calendar {
   background-position: -192px -120px;
 }
+
 .icon-random {
   background-position: -216px -120px;
 }
+
 .icon-comment {
   background-position: -240px -120px;
 }
+
 .icon-magnet {
   background-position: -264px -120px;
 }
+
 .icon-chevron-up {
   background-position: -288px -120px;
 }
+
 .icon-chevron-down {
   background-position: -313px -119px;
 }
+
 .icon-retweet {
   background-position: -336px -120px;
 }
+
 .icon-shopping-cart {
   background-position: -360px -120px;
 }
+
 .icon-folder-close {
   background-position: -384px -120px;
 }
+
 .icon-folder-open {
   background-position: -408px -120px;
 }
+
 .icon-resize-vertical {
   background-position: -432px -119px;
 }
+
 .icon-resize-horizontal {
   background-position: -456px -118px;
 }
+
+.icon-hdd {
+  background-position: 0 -144px;
+}
+
+.icon-bullhorn {
+  background-position: -24px -144px;
+}
+
+.icon-bell {
+  background-position: -48px -144px;
+}
+
+.icon-certificate {
+  background-position: -72px -144px;
+}
+
+.icon-thumbs-up {
+  background-position: -96px -144px;
+}
+
+.icon-thumbs-down {
+  background-position: -120px -144px;
+}
+
+.icon-hand-right {
+  background-position: -144px -144px;
+}
+
+.icon-hand-left {
+  background-position: -168px -144px;
+}
+
+.icon-hand-up {
+  background-position: -192px -144px;
+}
+
+.icon-hand-down {
+  background-position: -216px -144px;
+}
+
+.icon-circle-arrow-right {
+  background-position: -240px -144px;
+}
+
+.icon-circle-arrow-left {
+  background-position: -264px -144px;
+}
+
+.icon-circle-arrow-up {
+  background-position: -288px -144px;
+}
+
+.icon-circle-arrow-down {
+  background-position: -312px -144px;
+}
+
+.icon-globe {
+  background-position: -336px -144px;
+}
+
+.icon-wrench {
+  background-position: -360px -144px;
+}
+
+.icon-tasks {
+  background-position: -384px -144px;
+}
+
+.icon-filter {
+  background-position: -408px -144px;
+}
+
+.icon-briefcase {
+  background-position: -432px -144px;
+}
+
+.icon-fullscreen {
+  background-position: -456px -144px;
+}
+
+.dropup,
 .dropdown {
   position: relative;
 }
+
 .dropdown-toggle {
   *margin-bottom: -3px;
 }
+
 .dropdown-toggle:active,
 .open .dropdown-toggle {
   outline: 0;
 }
+
 .caret {
   display: inline-block;
   width: 0;
   height: 0;
   vertical-align: top;
-  border-left: 4px solid transparent;
-  border-right: 4px solid transparent;
   border-top: 4px solid #000000;
+  border-right: 4px solid transparent;
+  border-left: 4px solid transparent;
+  content: "";
   opacity: 0.3;
   filter: alpha(opacity=30);
-  content: "";
 }
+
 .dropdown .caret {
   margin-top: 8px;
   margin-left: 2px;
 }
+
 .dropdown:hover .caret,
-.open.dropdown .caret {
+.open .caret {
   opacity: 1;
   filter: alpha(opacity=100);
 }
+
 .dropdown-menu {
   position: absolute;
   top: 100%;
   left: 0;
   z-index: 1000;
-  float: left;
   display: none;
+  float: left;
   min-width: 160px;
   padding: 4px 0;
-  margin: 0;
+  margin: 1px 0 0;
   list-style: none;
   background-color: #ffffff;
-  border-color: #ccc;
-  border-color: rgba(0, 0, 0, 0.2);
-  border-style: solid;
-  border-width: 1px;
-  -webkit-border-radius: 0 0 5px 5px;
-  -moz-border-radius: 0 0 5px 5px;
-  border-radius: 0 0 5px 5px;
-  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding;
-  background-clip: padding-box;
+  border: 1px solid #ccc;
+  border: 1px solid rgba(0, 0, 0, 0.2);
   *border-right-width: 2px;
   *border-bottom-width: 2px;
+  -webkit-border-radius: 5px;
+     -moz-border-radius: 5px;
+          border-radius: 5px;
+  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+     -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+  -webkit-background-clip: padding-box;
+     -moz-background-clip: padding;
+          background-clip: padding-box;
 }
+
 .dropdown-menu.pull-right {
   right: 0;
   left: auto;
 }
+
 .dropdown-menu .divider {
+  *width: 100%;
   height: 1px;
   margin: 8px 1px;
+  *margin: -5px 0 5px;
   overflow: hidden;
   background-color: #e5e5e5;
   border-bottom: 1px solid #ffffff;
-  *width: 100%;
-  *margin: -5px 0 5px;
 }
+
 .dropdown-menu a {
   display: block;
   padding: 3px 15px;
@@ -1848,6 +2441,7 @@
   color: #333333;
   white-space: nowrap;
 }
+
 .dropdown-menu li > a:hover,
 .dropdown-menu .active > a,
 .dropdown-menu .active > a:hover {
@@ -1855,39 +2449,41 @@
   text-decoration: none;
   background-color: #0088cc;
 }
-.dropdown.open {
+
+.open {
   *z-index: 1000;
 }
-.dropdown.open .dropdown-toggle {
-  color: #ffffff;
-  background: #ccc;
-  background: rgba(0, 0, 0, 0.3);
-}
-.dropdown.open .dropdown-menu {
+
+.open > .dropdown-menu {
   display: block;
 }
-.pull-right .dropdown-menu {
-  left: auto;
+
+.pull-right > .dropdown-menu {
   right: 0;
+  left: auto;
 }
+
 .dropup .caret,
 .navbar-fixed-bottom .dropdown .caret {
   border-top: 0;
   border-bottom: 4px solid #000000;
   content: "\2191";
 }
+
 .dropup .dropdown-menu,
 .navbar-fixed-bottom .dropdown .dropdown-menu {
   top: auto;
   bottom: 100%;
   margin-bottom: 1px;
 }
+
 .typeahead {
   margin-top: 2px;
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
 }
+
 .well {
   min-height: 20px;
   padding: 19px;
@@ -1896,52 +2492,60 @@
   border: 1px solid #eee;
   border: 1px solid rgba(0, 0, 0, 0.05);
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
   -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
 }
+
 .well blockquote {
   border-color: #ddd;
   border-color: rgba(0, 0, 0, 0.15);
 }
+
 .well-large {
   padding: 24px;
   -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
 }
+
 .well-small {
   padding: 9px;
   -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
 }
+
 .fade {
-  -webkit-transition: opacity 0.15s linear;
-  -moz-transition: opacity 0.15s linear;
-  -ms-transition: opacity 0.15s linear;
-  -o-transition: opacity 0.15s linear;
-  transition: opacity 0.15s linear;
   opacity: 0;
+  -webkit-transition: opacity 0.15s linear;
+     -moz-transition: opacity 0.15s linear;
+      -ms-transition: opacity 0.15s linear;
+       -o-transition: opacity 0.15s linear;
+          transition: opacity 0.15s linear;
 }
+
 .fade.in {
   opacity: 1;
 }
+
 .collapse {
-  -webkit-transition: height 0.35s ease;
-  -moz-transition: height 0.35s ease;
-  -ms-transition: height 0.35s ease;
-  -o-transition: height 0.35s ease;
-  transition: height 0.35s ease;
   position: relative;
-  overflow: hidden;
   height: 0;
+  overflow: hidden;
+  -webkit-transition: height 0.35s ease;
+     -moz-transition: height 0.35s ease;
+      -ms-transition: height 0.35s ease;
+       -o-transition: height 0.35s ease;
+          transition: height 0.35s ease;
 }
+
 .collapse.in {
   height: auto;
 }
+
 .close {
   float: right;
   font-size: 20px;
@@ -1952,125 +2556,153 @@
   opacity: 0.2;
   filter: alpha(opacity=20);
 }
+
 .close:hover {
   color: #000000;
   text-decoration: none;
+  cursor: pointer;
   opacity: 0.4;
   filter: alpha(opacity=40);
-  cursor: pointer;
 }
+
+button.close {
+  padding: 0;
+  cursor: pointer;
+  background: transparent;
+  border: 0;
+  -webkit-appearance: none;
+}
+
 .btn {
   display: inline-block;
   *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
   padding: 4px 10px 4px;
   margin-bottom: 0;
+  *margin-left: .3em;
   font-size: 13px;
   line-height: 18px;
+  *line-height: 20px;
   color: #333333;
   text-align: center;
   text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
   vertical-align: middle;
+  cursor: pointer;
   background-color: #f5f5f5;
-  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
+  *background-color: #e6e6e6;
   background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
   background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
   background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
   background-image: linear-gradient(top, #ffffff, #e6e6e6);
+  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);
-  border-color: #e6e6e6 #e6e6e6 #bfbfbf;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
   border: 1px solid #cccccc;
+  *border: 0;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  border-color: #e6e6e6 #e6e6e6 #bfbfbf;
   border-bottom-color: #b3b3b3;
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);
+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
+  *zoom: 1;
   -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-  cursor: pointer;
-  *margin-left: .3em;
+     -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
 }
+
 .btn:hover,
 .btn:active,
 .btn.active,
 .btn.disabled,
 .btn[disabled] {
   background-color: #e6e6e6;
+  *background-color: #d9d9d9;
 }
+
 .btn:active,
 .btn.active {
   background-color: #cccccc \9;
 }
+
 .btn:first-child {
   *margin-left: 0;
 }
+
 .btn:hover {
   color: #333333;
   text-decoration: none;
   background-color: #e6e6e6;
+  *background-color: #d9d9d9;
+  /* Buttons in IE7 don't get borders, so darken on hover */
+
   background-position: 0 -15px;
   -webkit-transition: background-position 0.1s linear;
-  -moz-transition: background-position 0.1s linear;
-  -ms-transition: background-position 0.1s linear;
-  -o-transition: background-position 0.1s linear;
-  transition: background-position 0.1s linear;
+     -moz-transition: background-position 0.1s linear;
+      -ms-transition: background-position 0.1s linear;
+       -o-transition: background-position 0.1s linear;
+          transition: background-position 0.1s linear;
 }
+
 .btn:focus {
   outline: thin dotted #333;
   outline: 5px auto -webkit-focus-ring-color;
   outline-offset: -2px;
 }
+
 .btn.active,
 .btn:active {
-  background-image: none;
-  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
   background-color: #e6e6e6;
   background-color: #d9d9d9 \9;
+  background-image: none;
   outline: 0;
+  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+     -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
 }
+
 .btn.disabled,
 .btn[disabled] {
   cursor: default;
-  background-image: none;
   background-color: #e6e6e6;
+  background-image: none;
   opacity: 0.65;
   filter: alpha(opacity=65);
   -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
+     -moz-box-shadow: none;
+          box-shadow: none;
 }
+
 .btn-large {
   padding: 9px 14px;
   font-size: 15px;
   line-height: normal;
   -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
+     -moz-border-radius: 5px;
+          border-radius: 5px;
 }
+
 .btn-large [class^="icon-"] {
   margin-top: 1px;
 }
+
 .btn-small {
   padding: 5px 9px;
   font-size: 11px;
   line-height: 16px;
 }
+
 .btn-small [class^="icon-"] {
   margin-top: -1px;
 }
+
 .btn-mini {
   padding: 2px 6px;
   font-size: 11px;
   line-height: 14px;
 }
+
 .btn-primary,
 .btn-primary:hover,
 .btn-warning,
@@ -2083,9 +2715,10 @@
 .btn-info:hover,
 .btn-inverse,
 .btn-inverse:hover {
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
   color: #ffffff;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
 }
+
 .btn-primary.active,
 .btn-warning.active,
 .btn-danger.active,
@@ -2094,204 +2727,251 @@
 .btn-inverse.active {
   color: rgba(255, 255, 255, 0.75);
 }
+
+.btn {
+  border-color: #ccc;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+}
+
 .btn-primary {
   background-color: #0074cc;
-  background-image: -moz-linear-gradient(top, #0088cc, #0055cc);
+  *background-color: #0055cc;
   background-image: -ms-linear-gradient(top, #0088cc, #0055cc);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));
   background-image: -webkit-linear-gradient(top, #0088cc, #0055cc);
   background-image: -o-linear-gradient(top, #0088cc, #0055cc);
+  background-image: -moz-linear-gradient(top, #0088cc, #0055cc);
   background-image: linear-gradient(top, #0088cc, #0055cc);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);
   border-color: #0055cc #0055cc #003580;
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);
   filter: progid:dximagetransform.microsoft.gradient(enabled=false);
 }
+
 .btn-primary:hover,
 .btn-primary:active,
 .btn-primary.active,
 .btn-primary.disabled,
 .btn-primary[disabled] {
   background-color: #0055cc;
+  *background-color: #004ab3;
 }
+
 .btn-primary:active,
 .btn-primary.active {
   background-color: #004099 \9;
 }
+
 .btn-warning {
   background-color: #faa732;
-  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
+  *background-color: #f89406;
   background-image: -ms-linear-gradient(top, #fbb450, #f89406);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
   background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
   background-image: -o-linear-gradient(top, #fbb450, #f89406);
+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
   background-image: linear-gradient(top, #fbb450, #f89406);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
   border-color: #f89406 #f89406 #ad6704;
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
   filter: progid:dximagetransform.microsoft.gradient(enabled=false);
 }
+
 .btn-warning:hover,
 .btn-warning:active,
 .btn-warning.active,
 .btn-warning.disabled,
 .btn-warning[disabled] {
   background-color: #f89406;
+  *background-color: #df8505;
 }
+
 .btn-warning:active,
 .btn-warning.active {
   background-color: #c67605 \9;
 }
+
 .btn-danger {
   background-color: #da4f49;
-  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
+  *background-color: #bd362f;
   background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
   background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
   background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
+  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
   background-image: linear-gradient(top, #ee5f5b, #bd362f);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);
   border-color: #bd362f #bd362f #802420;
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);
   filter: progid:dximagetransform.microsoft.gradient(enabled=false);
 }
+
 .btn-danger:hover,
 .btn-danger:active,
 .btn-danger.active,
 .btn-danger.disabled,
 .btn-danger[disabled] {
   background-color: #bd362f;
+  *background-color: #a9302a;
 }
+
 .btn-danger:active,
 .btn-danger.active {
   background-color: #942a25 \9;
 }
+
 .btn-success {
   background-color: #5bb75b;
-  background-image: -moz-linear-gradient(top, #62c462, #51a351);
+  *background-color: #51a351;
   background-image: -ms-linear-gradient(top, #62c462, #51a351);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
   background-image: -webkit-linear-gradient(top, #62c462, #51a351);
   background-image: -o-linear-gradient(top, #62c462, #51a351);
+  background-image: -moz-linear-gradient(top, #62c462, #51a351);
   background-image: linear-gradient(top, #62c462, #51a351);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);
   border-color: #51a351 #51a351 #387038;
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);
   filter: progid:dximagetransform.microsoft.gradient(enabled=false);
 }
+
 .btn-success:hover,
 .btn-success:active,
 .btn-success.active,
 .btn-success.disabled,
 .btn-success[disabled] {
   background-color: #51a351;
+  *background-color: #499249;
 }
+
 .btn-success:active,
 .btn-success.active {
   background-color: #408140 \9;
 }
+
 .btn-info {
   background-color: #49afcd;
-  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
+  *background-color: #2f96b4;
   background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
   background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
   background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
+  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
   background-image: linear-gradient(top, #5bc0de, #2f96b4);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);
   border-color: #2f96b4 #2f96b4 #1f6377;
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);
   filter: progid:dximagetransform.microsoft.gradient(enabled=false);
 }
+
 .btn-info:hover,
 .btn-info:active,
 .btn-info.active,
 .btn-info.disabled,
 .btn-info[disabled] {
   background-color: #2f96b4;
+  *background-color: #2a85a0;
 }
+
 .btn-info:active,
 .btn-info.active {
   background-color: #24748c \9;
 }
+
 .btn-inverse {
   background-color: #414141;
-  background-image: -moz-linear-gradient(top, #555555, #222222);
+  *background-color: #222222;
   background-image: -ms-linear-gradient(top, #555555, #222222);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));
   background-image: -webkit-linear-gradient(top, #555555, #222222);
   background-image: -o-linear-gradient(top, #555555, #222222);
+  background-image: -moz-linear-gradient(top, #555555, #222222);
   background-image: linear-gradient(top, #555555, #222222);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);
   border-color: #222222 #222222 #000000;
   border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);
   filter: progid:dximagetransform.microsoft.gradient(enabled=false);
 }
+
 .btn-inverse:hover,
 .btn-inverse:active,
 .btn-inverse.active,
 .btn-inverse.disabled,
 .btn-inverse[disabled] {
   background-color: #222222;
+  *background-color: #151515;
 }
+
 .btn-inverse:active,
 .btn-inverse.active {
   background-color: #080808 \9;
 }
+
 button.btn,
 input[type="submit"].btn {
   *padding-top: 2px;
   *padding-bottom: 2px;
 }
+
 button.btn::-moz-focus-inner,
 input[type="submit"].btn::-moz-focus-inner {
   padding: 0;
   border: 0;
 }
+
 button.btn.btn-large,
 input[type="submit"].btn.btn-large {
   *padding-top: 7px;
   *padding-bottom: 7px;
 }
+
 button.btn.btn-small,
 input[type="submit"].btn.btn-small {
   *padding-top: 3px;
   *padding-bottom: 3px;
 }
+
 button.btn.btn-mini,
 input[type="submit"].btn.btn-mini {
   *padding-top: 1px;
   *padding-bottom: 1px;
 }
+
 .btn-group {
   position: relative;
-  *zoom: 1;
   *margin-left: .3em;
+  *zoom: 1;
 }
+
 .btn-group:before,
 .btn-group:after {
   display: table;
   content: "";
 }
+
 .btn-group:after {
   clear: both;
 }
+
 .btn-group:first-child {
   *margin-left: 0;
 }
+
 .btn-group + .btn-group {
   margin-left: 5px;
 }
+
 .btn-toolbar {
   margin-top: 9px;
   margin-bottom: 9px;
 }
+
 .btn-toolbar .btn-group {
   display: inline-block;
   *display: inline;
@@ -2299,120 +2979,159 @@
 
   *zoom: 1;
 }
-.btn-group .btn {
+
+.btn-group > .btn {
   position: relative;
   float: left;
   margin-left: -1px;
   -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
 }
-.btn-group .btn:first-child {
+
+.btn-group > .btn:first-child {
   margin-left: 0;
-  -webkit-border-top-left-radius: 4px;
-  -moz-border-radius-topleft: 4px;
-  border-top-left-radius: 4px;
   -webkit-border-bottom-left-radius: 4px;
+          border-bottom-left-radius: 4px;
+  -webkit-border-top-left-radius: 4px;
+          border-top-left-radius: 4px;
   -moz-border-radius-bottomleft: 4px;
-  border-bottom-left-radius: 4px;
+  -moz-border-radius-topleft: 4px;
 }
-.btn-group .btn:last-child,
-.btn-group .dropdown-toggle {
+
+.btn-group > .btn:last-child,
+.btn-group > .dropdown-toggle {
   -webkit-border-top-right-radius: 4px;
-  -moz-border-radius-topright: 4px;
-  border-top-right-radius: 4px;
+          border-top-right-radius: 4px;
   -webkit-border-bottom-right-radius: 4px;
+          border-bottom-right-radius: 4px;
+  -moz-border-radius-topright: 4px;
   -moz-border-radius-bottomright: 4px;
-  border-bottom-right-radius: 4px;
 }
-.btn-group .btn.large:first-child {
+
+.btn-group > .btn.large:first-child {
   margin-left: 0;
-  -webkit-border-top-left-radius: 6px;
-  -moz-border-radius-topleft: 6px;
-  border-top-left-radius: 6px;
   -webkit-border-bottom-left-radius: 6px;
+          border-bottom-left-radius: 6px;
+  -webkit-border-top-left-radius: 6px;
+          border-top-left-radius: 6px;
   -moz-border-radius-bottomleft: 6px;
-  border-bottom-left-radius: 6px;
+  -moz-border-radius-topleft: 6px;
 }
-.btn-group .btn.large:last-child,
-.btn-group .large.dropdown-toggle {
+
+.btn-group > .btn.large:last-child,
+.btn-group > .large.dropdown-toggle {
   -webkit-border-top-right-radius: 6px;
-  -moz-border-radius-topright: 6px;
-  border-top-right-radius: 6px;
+          border-top-right-radius: 6px;
   -webkit-border-bottom-right-radius: 6px;
+          border-bottom-right-radius: 6px;
+  -moz-border-radius-topright: 6px;
   -moz-border-radius-bottomright: 6px;
-  border-bottom-right-radius: 6px;
 }
-.btn-group .btn:hover,
-.btn-group .btn:focus,
-.btn-group .btn:active,
-.btn-group .btn.active {
+
+.btn-group > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group > .btn:active,
+.btn-group > .btn.active {
   z-index: 2;
 }
+
 .btn-group .dropdown-toggle:active,
 .btn-group.open .dropdown-toggle {
   outline: 0;
 }
-.btn-group .dropdown-toggle {
-  padding-left: 8px;
+
+.btn-group > .dropdown-toggle {
+  *padding-top: 4px;
   padding-right: 8px;
+  *padding-bottom: 4px;
+  padding-left: 8px;
   -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-  box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-  *padding-top: 3px;
-  *padding-bottom: 3px;
+     -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+          box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
 }
-.btn-group .btn-mini.dropdown-toggle {
-  padding-left: 5px;
+
+.btn-group > .btn-mini.dropdown-toggle {
   padding-right: 5px;
-  *padding-top: 1px;
-  *padding-bottom: 1px;
+  padding-left: 5px;
 }
-.btn-group .btn-small.dropdown-toggle {
+
+.btn-group > .btn-small.dropdown-toggle {
   *padding-top: 4px;
   *padding-bottom: 4px;
 }
-.btn-group .btn-large.dropdown-toggle {
-  padding-left: 12px;
+
+.btn-group > .btn-large.dropdown-toggle {
   padding-right: 12px;
+  padding-left: 12px;
 }
-.btn-group.open {
-  *z-index: 1000;
-}
-.btn-group.open .dropdown-menu {
-  display: block;
-  margin-top: 1px;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-}
+
 .btn-group.open .dropdown-toggle {
   background-image: none;
-  -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-  box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+     -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
 }
+
+.btn-group.open .btn.dropdown-toggle {
+  background-color: #e6e6e6;
+}
+
+.btn-group.open .btn-primary.dropdown-toggle {
+  background-color: #0055cc;
+}
+
+.btn-group.open .btn-warning.dropdown-toggle {
+  background-color: #f89406;
+}
+
+.btn-group.open .btn-danger.dropdown-toggle {
+  background-color: #bd362f;
+}
+
+.btn-group.open .btn-success.dropdown-toggle {
+  background-color: #51a351;
+}
+
+.btn-group.open .btn-info.dropdown-toggle {
+  background-color: #2f96b4;
+}
+
+.btn-group.open .btn-inverse.dropdown-toggle {
+  background-color: #222222;
+}
+
 .btn .caret {
   margin-top: 7px;
   margin-left: 0;
 }
+
 .btn:hover .caret,
 .open.btn-group .caret {
   opacity: 1;
   filter: alpha(opacity=100);
 }
+
 .btn-mini .caret {
   margin-top: 5px;
 }
+
 .btn-small .caret {
   margin-top: 6px;
 }
+
 .btn-large .caret {
   margin-top: 6px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
-  border-top: 5px solid #000000;
+  border-top-width: 5px;
+  border-right-width: 5px;
+  border-left-width: 5px;
 }
+
+.dropup .btn-large .caret {
+  border-top: 0;
+  border-bottom: 5px solid #000000;
+}
+
 .btn-primary .caret,
 .btn-warning .caret,
 .btn-danger .caret,
@@ -2424,65 +3143,82 @@
   opacity: 0.75;
   filter: alpha(opacity=75);
 }
+
 .alert {
   padding: 8px 35px 8px 14px;
   margin-bottom: 18px;
+  color: #c09853;
   text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
   background-color: #fcf8e3;
   border: 1px solid #fbeed5;
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  color: #c09853;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
 }
+
 .alert-heading {
   color: inherit;
 }
+
 .alert .close {
   position: relative;
   top: -2px;
   right: -21px;
   line-height: 18px;
 }
+
 .alert-success {
+  color: #468847;
   background-color: #dff0d8;
   border-color: #d6e9c6;
-  color: #468847;
 }
+
 .alert-danger,
 .alert-error {
+  color: #b94a48;
   background-color: #f2dede;
   border-color: #eed3d7;
-  color: #b94a48;
 }
+
 .alert-info {
+  color: #3a87ad;
   background-color: #d9edf7;
   border-color: #bce8f1;
-  color: #3a87ad;
 }
+
 .alert-block {
   padding-top: 14px;
   padding-bottom: 14px;
 }
+
 .alert-block > p,
 .alert-block > ul {
   margin-bottom: 0;
 }
+
 .alert-block p + p {
   margin-top: 5px;
 }
+
 .nav {
-  margin-left: 0;
   margin-bottom: 18px;
+  margin-left: 0;
   list-style: none;
 }
+
 .nav > li > a {
   display: block;
 }
+
 .nav > li > a:hover {
   text-decoration: none;
   background-color: #eeeeee;
 }
+
+.nav > .pull-right {
+  float: right;
+}
+
 .nav .nav-header {
   display: block;
   padding: 3px 15px;
@@ -2493,45 +3229,54 @@
   text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
   text-transform: uppercase;
 }
+
 .nav li + .nav-header {
   margin-top: 9px;
 }
+
 .nav-list {
-  padding-left: 15px;
   padding-right: 15px;
+  padding-left: 15px;
   margin-bottom: 0;
 }
+
 .nav-list > li > a,
 .nav-list .nav-header {
-  margin-left: -15px;
   margin-right: -15px;
+  margin-left: -15px;
   text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
 }
+
 .nav-list > li > a {
   padding: 3px 15px;
 }
+
 .nav-list > .active > a,
 .nav-list > .active > a:hover {
   color: #ffffff;
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
   background-color: #0088cc;
 }
+
 .nav-list [class^="icon-"] {
   margin-right: 2px;
 }
+
 .nav-list .divider {
+  *width: 100%;
   height: 1px;
   margin: 8px 1px;
+  *margin: -5px 0 5px;
   overflow: hidden;
   background-color: #e5e5e5;
   border-bottom: 1px solid #ffffff;
-  *width: 100%;
-  *margin: -5px 0 5px;
 }
+
 .nav-tabs,
 .nav-pills {
   *zoom: 1;
 }
+
 .nav-tabs:before,
 .nav-pills:before,
 .nav-tabs:after,
@@ -2539,14 +3284,17 @@
   display: table;
   content: "";
 }
+
 .nav-tabs:after,
 .nav-pills:after {
   clear: both;
 }
+
 .nav-tabs > li,
 .nav-pills > li {
   float: left;
 }
+
 .nav-tabs > li > a,
 .nav-pills > li > a {
   padding-right: 12px;
@@ -2554,234 +3302,283 @@
   margin-right: 2px;
   line-height: 14px;
 }
+
 .nav-tabs {
   border-bottom: 1px solid #ddd;
 }
+
 .nav-tabs > li {
   margin-bottom: -1px;
 }
+
 .nav-tabs > li > a {
   padding-top: 8px;
   padding-bottom: 8px;
   line-height: 18px;
   border: 1px solid transparent;
   -webkit-border-radius: 4px 4px 0 0;
-  -moz-border-radius: 4px 4px 0 0;
-  border-radius: 4px 4px 0 0;
+     -moz-border-radius: 4px 4px 0 0;
+          border-radius: 4px 4px 0 0;
 }
+
 .nav-tabs > li > a:hover {
   border-color: #eeeeee #eeeeee #dddddd;
 }
+
 .nav-tabs > .active > a,
 .nav-tabs > .active > a:hover {
   color: #555555;
+  cursor: default;
   background-color: #ffffff;
   border: 1px solid #ddd;
   border-bottom-color: transparent;
-  cursor: default;
 }
+
 .nav-pills > li > a {
   padding-top: 8px;
   padding-bottom: 8px;
   margin-top: 2px;
   margin-bottom: 2px;
   -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
+     -moz-border-radius: 5px;
+          border-radius: 5px;
 }
+
 .nav-pills > .active > a,
 .nav-pills > .active > a:hover {
   color: #ffffff;
   background-color: #0088cc;
 }
+
 .nav-stacked > li {
   float: none;
 }
+
 .nav-stacked > li > a {
   margin-right: 0;
 }
+
 .nav-tabs.nav-stacked {
   border-bottom: 0;
 }
+
 .nav-tabs.nav-stacked > li > a {
   border: 1px solid #ddd;
   -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
 }
+
 .nav-tabs.nav-stacked > li:first-child > a {
   -webkit-border-radius: 4px 4px 0 0;
-  -moz-border-radius: 4px 4px 0 0;
-  border-radius: 4px 4px 0 0;
+     -moz-border-radius: 4px 4px 0 0;
+          border-radius: 4px 4px 0 0;
 }
+
 .nav-tabs.nav-stacked > li:last-child > a {
   -webkit-border-radius: 0 0 4px 4px;
-  -moz-border-radius: 0 0 4px 4px;
-  border-radius: 0 0 4px 4px;
+     -moz-border-radius: 0 0 4px 4px;
+          border-radius: 0 0 4px 4px;
 }
+
 .nav-tabs.nav-stacked > li > a:hover {
-  border-color: #ddd;
   z-index: 2;
+  border-color: #ddd;
 }
+
 .nav-pills.nav-stacked > li > a {
   margin-bottom: 3px;
 }
+
 .nav-pills.nav-stacked > li:last-child > a {
   margin-bottom: 1px;
 }
-.nav-tabs .dropdown-menu,
-.nav-pills .dropdown-menu {
-  margin-top: 1px;
-  border-width: 1px;
+
+.nav-tabs .dropdown-menu {
+  -webkit-border-radius: 0 0 5px 5px;
+     -moz-border-radius: 0 0 5px 5px;
+          border-radius: 0 0 5px 5px;
 }
+
 .nav-pills .dropdown-menu {
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
 }
+
 .nav-tabs .dropdown-toggle .caret,
 .nav-pills .dropdown-toggle .caret {
+  margin-top: 6px;
   border-top-color: #0088cc;
   border-bottom-color: #0088cc;
-  margin-top: 6px;
 }
+
 .nav-tabs .dropdown-toggle:hover .caret,
 .nav-pills .dropdown-toggle:hover .caret {
   border-top-color: #005580;
   border-bottom-color: #005580;
 }
+
 .nav-tabs .active .dropdown-toggle .caret,
 .nav-pills .active .dropdown-toggle .caret {
   border-top-color: #333333;
   border-bottom-color: #333333;
 }
+
 .nav > .dropdown.active > a:hover {
   color: #000000;
   cursor: pointer;
 }
+
 .nav-tabs .open .dropdown-toggle,
 .nav-pills .open .dropdown-toggle,
-.nav > .open.active > a:hover {
+.nav > li.dropdown.open.active > a:hover {
   color: #ffffff;
   background-color: #999999;
   border-color: #999999;
 }
-.nav .open .caret,
-.nav .open.active .caret,
-.nav .open a:hover .caret {
+
+.nav li.dropdown.open .caret,
+.nav li.dropdown.open.active .caret,
+.nav li.dropdown.open a:hover .caret {
   border-top-color: #ffffff;
   border-bottom-color: #ffffff;
   opacity: 1;
   filter: alpha(opacity=100);
 }
+
 .tabs-stacked .open > a:hover {
   border-color: #999999;
 }
+
 .tabbable {
   *zoom: 1;
 }
+
 .tabbable:before,
 .tabbable:after {
   display: table;
   content: "";
 }
+
 .tabbable:after {
   clear: both;
 }
+
 .tab-content {
-  display: table;
-  width: 100%;
+  overflow: auto;
 }
-.tabs-below .nav-tabs,
-.tabs-right .nav-tabs,
-.tabs-left .nav-tabs {
+
+.tabs-below > .nav-tabs,
+.tabs-right > .nav-tabs,
+.tabs-left > .nav-tabs {
   border-bottom: 0;
 }
+
 .tab-content > .tab-pane,
 .pill-content > .pill-pane {
   display: none;
 }
+
 .tab-content > .active,
 .pill-content > .active {
   display: block;
 }
-.tabs-below .nav-tabs {
+
+.tabs-below > .nav-tabs {
   border-top: 1px solid #ddd;
 }
-.tabs-below .nav-tabs > li {
+
+.tabs-below > .nav-tabs > li {
   margin-top: -1px;
   margin-bottom: 0;
 }
-.tabs-below .nav-tabs > li > a {
+
+.tabs-below > .nav-tabs > li > a {
   -webkit-border-radius: 0 0 4px 4px;
-  -moz-border-radius: 0 0 4px 4px;
-  border-radius: 0 0 4px 4px;
+     -moz-border-radius: 0 0 4px 4px;
+          border-radius: 0 0 4px 4px;
 }
-.tabs-below .nav-tabs > li > a:hover {
-  border-bottom-color: transparent;
+
+.tabs-below > .nav-tabs > li > a:hover {
   border-top-color: #ddd;
+  border-bottom-color: transparent;
 }
-.tabs-below .nav-tabs .active > a,
-.tabs-below .nav-tabs .active > a:hover {
+
+.tabs-below > .nav-tabs > .active > a,
+.tabs-below > .nav-tabs > .active > a:hover {
   border-color: transparent #ddd #ddd #ddd;
 }
-.tabs-left .nav-tabs > li,
-.tabs-right .nav-tabs > li {
+
+.tabs-left > .nav-tabs > li,
+.tabs-right > .nav-tabs > li {
   float: none;
 }
-.tabs-left .nav-tabs > li > a,
-.tabs-right .nav-tabs > li > a {
+
+.tabs-left > .nav-tabs > li > a,
+.tabs-right > .nav-tabs > li > a {
   min-width: 74px;
   margin-right: 0;
   margin-bottom: 3px;
 }
-.tabs-left .nav-tabs {
+
+.tabs-left > .nav-tabs {
   float: left;
   margin-right: 19px;
   border-right: 1px solid #ddd;
 }
-.tabs-left .nav-tabs > li > a {
+
+.tabs-left > .nav-tabs > li > a {
   margin-right: -1px;
   -webkit-border-radius: 4px 0 0 4px;
-  -moz-border-radius: 4px 0 0 4px;
-  border-radius: 4px 0 0 4px;
+     -moz-border-radius: 4px 0 0 4px;
+          border-radius: 4px 0 0 4px;
 }
-.tabs-left .nav-tabs > li > a:hover {
+
+.tabs-left > .nav-tabs > li > a:hover {
   border-color: #eeeeee #dddddd #eeeeee #eeeeee;
 }
-.tabs-left .nav-tabs .active > a,
-.tabs-left .nav-tabs .active > a:hover {
+
+.tabs-left > .nav-tabs .active > a,
+.tabs-left > .nav-tabs .active > a:hover {
   border-color: #ddd transparent #ddd #ddd;
   *border-right-color: #ffffff;
 }
-.tabs-right .nav-tabs {
+
+.tabs-right > .nav-tabs {
   float: right;
   margin-left: 19px;
   border-left: 1px solid #ddd;
 }
-.tabs-right .nav-tabs > li > a {
+
+.tabs-right > .nav-tabs > li > a {
   margin-left: -1px;
   -webkit-border-radius: 0 4px 4px 0;
-  -moz-border-radius: 0 4px 4px 0;
-  border-radius: 0 4px 4px 0;
+     -moz-border-radius: 0 4px 4px 0;
+          border-radius: 0 4px 4px 0;
 }
-.tabs-right .nav-tabs > li > a:hover {
+
+.tabs-right > .nav-tabs > li > a:hover {
   border-color: #eeeeee #eeeeee #eeeeee #dddddd;
 }
-.tabs-right .nav-tabs .active > a,
-.tabs-right .nav-tabs .active > a:hover {
+
+.tabs-right > .nav-tabs .active > a,
+.tabs-right > .nav-tabs .active > a:hover {
   border-color: #ddd #ddd #ddd transparent;
   *border-left-color: #ffffff;
 }
+
 .navbar {
   *position: relative;
   *z-index: 2;
-  overflow: visible;
   margin-bottom: 18px;
+  overflow: visible;
 }
+
 .navbar-inner {
-  padding-left: 20px;
+  min-height: 40px;
   padding-right: 20px;
+  padding-left: 20px;
   background-color: #2c2c2c;
   background-image: -moz-linear-gradient(top, #333333, #222222);
   background-image: -ms-linear-gradient(top, #333333, #222222);
@@ -2790,138 +3587,116 @@
   background-image: -o-linear-gradient(top, #333333, #222222);
   background-image: linear-gradient(top, #333333, #222222);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);
   -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
-  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
+     -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
+          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
 }
+
 .navbar .container {
   width: auto;
 }
-.btn-navbar {
-  display: none;
-  float: right;
-  padding: 7px 10px;
-  margin-left: 5px;
-  margin-right: 5px;
-  background-color: #2c2c2c;
-  background-image: -moz-linear-gradient(top, #333333, #222222);
-  background-image: -ms-linear-gradient(top, #333333, #222222);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));
-  background-image: -webkit-linear-gradient(top, #333333, #222222);
-  background-image: -o-linear-gradient(top, #333333, #222222);
-  background-image: linear-gradient(top, #333333, #222222);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);
-  border-color: #222222 #222222 #000000;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
-  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
-  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
-}
-.btn-navbar:hover,
-.btn-navbar:active,
-.btn-navbar.active,
-.btn-navbar.disabled,
-.btn-navbar[disabled] {
-  background-color: #222222;
-}
-.btn-navbar:active,
-.btn-navbar.active {
-  background-color: #080808 \9;
-}
-.btn-navbar .icon-bar {
-  display: block;
-  width: 18px;
-  height: 2px;
-  background-color: #f5f5f5;
-  -webkit-border-radius: 1px;
-  -moz-border-radius: 1px;
-  border-radius: 1px;
-  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
-  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
-  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
-}
-.btn-navbar .icon-bar + .icon-bar {
-  margin-top: 3px;
-}
+
 .nav-collapse.collapse {
   height: auto;
 }
+
 .navbar {
   color: #999999;
 }
+
 .navbar .brand:hover {
   text-decoration: none;
 }
+
 .navbar .brand {
-  float: left;
   display: block;
+  float: left;
   padding: 8px 20px 12px;
   margin-left: -20px;
   font-size: 20px;
   font-weight: 200;
   line-height: 1;
-  color: #ffffff;
+  color: #999999;
 }
+
 .navbar .navbar-text {
   margin-bottom: 0;
   line-height: 40px;
 }
+
+.navbar .navbar-link {
+  color: #999999;
+}
+
+.navbar .navbar-link:hover {
+  color: #ffffff;
+}
+
 .navbar .btn,
 .navbar .btn-group {
   margin-top: 5px;
 }
+
 .navbar .btn-group .btn {
-  margin-top: 0;
+  margin: 0;
 }
+
 .navbar-form {
   margin-bottom: 0;
   *zoom: 1;
 }
+
 .navbar-form:before,
 .navbar-form:after {
   display: table;
   content: "";
 }
+
 .navbar-form:after {
   clear: both;
 }
+
 .navbar-form input,
 .navbar-form select,
 .navbar-form .radio,
 .navbar-form .checkbox {
   margin-top: 5px;
 }
+
 .navbar-form input,
 .navbar-form select {
   display: inline-block;
   margin-bottom: 0;
 }
+
 .navbar-form input[type="image"],
 .navbar-form input[type="checkbox"],
 .navbar-form input[type="radio"] {
   margin-top: 3px;
 }
+
 .navbar-form .input-append,
 .navbar-form .input-prepend {
   margin-top: 6px;
   white-space: nowrap;
 }
+
 .navbar-form .input-append input,
 .navbar-form .input-prepend input {
   margin-top: 0;
 }
+
 .navbar-search {
   position: relative;
   float: left;
   margin-top: 6px;
   margin-bottom: 0;
 }
+
 .navbar-search .search-query {
   padding: 4px 9px;
   font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
@@ -2931,21 +3706,28 @@
   color: #ffffff;
   background-color: #626262;
   border: 1px solid #151515;
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);
-  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);
-  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);
+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
+     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
+          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
   -webkit-transition: none;
-  -moz-transition: none;
-  -ms-transition: none;
-  -o-transition: none;
-  transition: none;
+     -moz-transition: none;
+      -ms-transition: none;
+       -o-transition: none;
+          transition: none;
 }
+
 .navbar-search .search-query:-moz-placeholder {
   color: #cccccc;
 }
+
+.navbar-search .search-query:-ms-input-placeholder {
+  color: #cccccc;
+}
+
 .navbar-search .search-query::-webkit-input-placeholder {
   color: #cccccc;
 }
+
 .navbar-search .search-query:focus,
 .navbar-search .search-query.focused {
   padding: 5px 10px;
@@ -2953,11 +3735,12 @@
   text-shadow: 0 1px 0 #ffffff;
   background-color: #ffffff;
   border: 0;
-  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
-  -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
-  box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
   outline: 0;
+  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
+     -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
+          box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
 }
+
 .navbar-fixed-top,
 .navbar-fixed-bottom {
   position: fixed;
@@ -2966,24 +3749,29 @@
   z-index: 1030;
   margin-bottom: 0;
 }
+
 .navbar-fixed-top .navbar-inner,
 .navbar-fixed-bottom .navbar-inner {
-  padding-left: 0;
   padding-right: 0;
+  padding-left: 0;
   -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
 }
+
 .navbar-fixed-top .container,
 .navbar-fixed-bottom .container {
   width: 940px;
 }
+
 .navbar-fixed-top {
   top: 0;
 }
+
 .navbar-fixed-bottom {
   bottom: 0;
 }
+
 .navbar .nav {
   position: relative;
   left: 0;
@@ -2991,116 +3779,196 @@
   float: left;
   margin: 0 10px 0 0;
 }
+
 .navbar .nav.pull-right {
   float: right;
 }
+
 .navbar .nav > li {
   display: block;
   float: left;
 }
+
 .navbar .nav > li > a {
   float: none;
-  padding: 10px 10px 11px;
+  padding: 9px 10px 11px;
   line-height: 19px;
   color: #999999;
   text-decoration: none;
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
 }
+
+.navbar .btn {
+  display: inline-block;
+  padding: 4px 10px 4px;
+  margin: 5px 5px 6px;
+  line-height: 18px;
+}
+
+.navbar .btn-group {
+  padding: 5px 5px 6px;
+  margin: 0;
+}
+
 .navbar .nav > li > a:hover {
-  background-color: transparent;
   color: #ffffff;
   text-decoration: none;
+  background-color: transparent;
 }
+
 .navbar .nav .active > a,
 .navbar .nav .active > a:hover {
   color: #ffffff;
   text-decoration: none;
   background-color: #222222;
 }
+
 .navbar .divider-vertical {
-  height: 40px;
   width: 1px;
+  height: 40px;
   margin: 0 9px;
   overflow: hidden;
   background-color: #222222;
   border-right: 1px solid #333333;
 }
+
 .navbar .nav.pull-right {
-  margin-left: 10px;
   margin-right: 0;
+  margin-left: 10px;
 }
-.navbar .dropdown-menu {
-  margin-top: 1px;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+
+.navbar .btn-navbar {
+  display: none;
+  float: right;
+  padding: 7px 10px;
+  margin-right: 5px;
+  margin-left: 5px;
+  background-color: #2c2c2c;
+  *background-color: #222222;
+  background-image: -ms-linear-gradient(top, #333333, #222222);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));
+  background-image: -webkit-linear-gradient(top, #333333, #222222);
+  background-image: -o-linear-gradient(top, #333333, #222222);
+  background-image: linear-gradient(top, #333333, #222222);
+  background-image: -moz-linear-gradient(top, #333333, #222222);
+  background-repeat: repeat-x;
+  border-color: #222222 #222222 #000000;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);
+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
+     -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
 }
+
+.navbar .btn-navbar:hover,
+.navbar .btn-navbar:active,
+.navbar .btn-navbar.active,
+.navbar .btn-navbar.disabled,
+.navbar .btn-navbar[disabled] {
+  background-color: #222222;
+  *background-color: #151515;
+}
+
+.navbar .btn-navbar:active,
+.navbar .btn-navbar.active {
+  background-color: #080808 \9;
+}
+
+.navbar .btn-navbar .icon-bar {
+  display: block;
+  width: 18px;
+  height: 2px;
+  background-color: #f5f5f5;
+  -webkit-border-radius: 1px;
+     -moz-border-radius: 1px;
+          border-radius: 1px;
+  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
+     -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
+          box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
+}
+
+.btn-navbar .icon-bar + .icon-bar {
+  margin-top: 3px;
+}
+
 .navbar .dropdown-menu:before {
-  content: '';
-  display: inline-block;
-  border-left: 7px solid transparent;
-  border-right: 7px solid transparent;
-  border-bottom: 7px solid #ccc;
-  border-bottom-color: rgba(0, 0, 0, 0.2);
   position: absolute;
   top: -7px;
   left: 9px;
-}
-.navbar .dropdown-menu:after {
-  content: '';
   display: inline-block;
-  border-left: 6px solid transparent;
-  border-right: 6px solid transparent;
-  border-bottom: 6px solid #ffffff;
+  border-right: 7px solid transparent;
+  border-bottom: 7px solid #ccc;
+  border-left: 7px solid transparent;
+  border-bottom-color: rgba(0, 0, 0, 0.2);
+  content: '';
+}
+
+.navbar .dropdown-menu:after {
   position: absolute;
   top: -6px;
   left: 10px;
+  display: inline-block;
+  border-right: 6px solid transparent;
+  border-bottom: 6px solid #ffffff;
+  border-left: 6px solid transparent;
+  content: '';
 }
+
 .navbar-fixed-bottom .dropdown-menu:before {
-  border-top: 7px solid #ccc;
-  border-top-color: rgba(0, 0, 0, 0.2);
-  border-bottom: 0;
-  bottom: -7px;
   top: auto;
+  bottom: -7px;
+  border-top: 7px solid #ccc;
+  border-bottom: 0;
+  border-top-color: rgba(0, 0, 0, 0.2);
 }
+
 .navbar-fixed-bottom .dropdown-menu:after {
+  top: auto;
+  bottom: -6px;
   border-top: 6px solid #ffffff;
   border-bottom: 0;
-  bottom: -6px;
-  top: auto;
 }
-.navbar .nav .dropdown-toggle .caret,
-.navbar .nav .open.dropdown .caret {
+
+.navbar .nav li.dropdown .dropdown-toggle .caret,
+.navbar .nav li.dropdown.open .caret {
   border-top-color: #ffffff;
   border-bottom-color: #ffffff;
 }
-.navbar .nav .active .caret {
+
+.navbar .nav li.dropdown.active .caret {
   opacity: 1;
   filter: alpha(opacity=100);
 }
-.navbar .nav .open > .dropdown-toggle,
-.navbar .nav .active > .dropdown-toggle,
-.navbar .nav .open.active > .dropdown-toggle {
+
+.navbar .nav li.dropdown.open > .dropdown-toggle,
+.navbar .nav li.dropdown.active > .dropdown-toggle,
+.navbar .nav li.dropdown.open.active > .dropdown-toggle {
   background-color: transparent;
 }
-.navbar .nav .active > .dropdown-toggle:hover {
+
+.navbar .nav li.dropdown.active > .dropdown-toggle:hover {
   color: #ffffff;
 }
-.navbar .nav.pull-right .dropdown-menu,
-.navbar .nav .dropdown-menu.pull-right {
-  left: auto;
+
+.navbar .pull-right .dropdown-menu,
+.navbar .dropdown-menu.pull-right {
   right: 0;
-}
-.navbar .nav.pull-right .dropdown-menu:before,
-.navbar .nav .dropdown-menu.pull-right:before {
   left: auto;
+}
+
+.navbar .pull-right .dropdown-menu:before,
+.navbar .dropdown-menu.pull-right:before {
   right: 12px;
-}
-.navbar .nav.pull-right .dropdown-menu:after,
-.navbar .nav .dropdown-menu.pull-right:after {
   left: auto;
-  right: 13px;
 }
+
+.navbar .pull-right .dropdown-menu:after,
+.navbar .dropdown-menu.pull-right:after {
+  right: 13px;
+  left: auto;
+}
+
 .breadcrumb {
   padding: 7px 14px;
   margin: 0 0 18px;
@@ -3113,52 +3981,55 @@
   background-image: -o-linear-gradient(top, #ffffff, #f5f5f5);
   background-image: linear-gradient(top, #ffffff, #f5f5f5);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);
   border: 1px solid #ddd;
   -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);
   -webkit-box-shadow: inset 0 1px 0 #ffffff;
-  -moz-box-shadow: inset 0 1px 0 #ffffff;
-  box-shadow: inset 0 1px 0 #ffffff;
+     -moz-box-shadow: inset 0 1px 0 #ffffff;
+          box-shadow: inset 0 1px 0 #ffffff;
 }
+
 .breadcrumb li {
   display: inline-block;
   *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
   text-shadow: 0 1px 0 #ffffff;
+  *zoom: 1;
 }
+
 .breadcrumb .divider {
   padding: 0 5px;
   color: #999999;
 }
+
 .breadcrumb .active a {
   color: #333333;
 }
+
 .pagination {
   height: 36px;
   margin: 18px 0;
 }
+
 .pagination ul {
   display: inline-block;
   *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
-  margin-left: 0;
   margin-bottom: 0;
+  margin-left: 0;
   -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
+  *zoom: 1;
   -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
-  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+     -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
 }
+
 .pagination li {
   display: inline;
 }
+
 .pagination a {
   float: left;
   padding: 0 14px;
@@ -3167,93 +4038,114 @@
   border: 1px solid #ddd;
   border-left-width: 0;
 }
+
 .pagination a:hover,
 .pagination .active a {
   background-color: #f5f5f5;
 }
+
 .pagination .active a {
   color: #999999;
   cursor: default;
 }
+
 .pagination .disabled span,
 .pagination .disabled a,
 .pagination .disabled a:hover {
   color: #999999;
-  background-color: transparent;
   cursor: default;
+  background-color: transparent;
 }
+
 .pagination li:first-child a {
   border-left-width: 1px;
   -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
+     -moz-border-radius: 3px 0 0 3px;
+          border-radius: 3px 0 0 3px;
 }
+
 .pagination li:last-child a {
   -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
+     -moz-border-radius: 0 3px 3px 0;
+          border-radius: 0 3px 3px 0;
 }
+
 .pagination-centered {
   text-align: center;
 }
+
 .pagination-right {
   text-align: right;
 }
+
 .pager {
-  margin-left: 0;
   margin-bottom: 18px;
-  list-style: none;
+  margin-left: 0;
   text-align: center;
+  list-style: none;
   *zoom: 1;
 }
+
 .pager:before,
 .pager:after {
   display: table;
   content: "";
 }
+
 .pager:after {
   clear: both;
 }
+
 .pager li {
   display: inline;
 }
+
 .pager a {
   display: inline-block;
   padding: 5px 14px;
   background-color: #fff;
   border: 1px solid #ddd;
   -webkit-border-radius: 15px;
-  -moz-border-radius: 15px;
-  border-radius: 15px;
+     -moz-border-radius: 15px;
+          border-radius: 15px;
 }
+
 .pager a:hover {
   text-decoration: none;
   background-color: #f5f5f5;
 }
+
 .pager .next a {
   float: right;
 }
+
 .pager .previous a {
   float: left;
 }
+
 .pager .disabled a,
 .pager .disabled a:hover {
   color: #999999;
-  background-color: #fff;
   cursor: default;
+  background-color: #fff;
 }
+
 .modal-open .dropdown-menu {
   z-index: 2050;
 }
+
 .modal-open .dropdown.open {
   *z-index: 2050;
 }
+
 .modal-open .popover {
   z-index: 2060;
 }
+
 .modal-open .tooltip {
   z-index: 2070;
 }
+
 .modal-backdrop {
   position: fixed;
   top: 0;
@@ -3263,64 +4155,72 @@
   z-index: 1040;
   background-color: #000000;
 }
+
 .modal-backdrop.fade {
   opacity: 0;
 }
+
 .modal-backdrop,
 .modal-backdrop.fade.in {
   opacity: 0.8;
   filter: alpha(opacity=80);
 }
+
 .modal {
   position: fixed;
   top: 50%;
   left: 50%;
   z-index: 1050;
-  overflow: auto;
   width: 560px;
   margin: -250px 0 0 -280px;
+  overflow: auto;
   background-color: #ffffff;
   border: 1px solid #999;
   border: 1px solid rgba(0, 0, 0, 0.3);
   *border: 1px solid #999;
-  /* IE6-7 */
-
   -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
   -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+     -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+          box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
   -webkit-background-clip: padding-box;
-  -moz-background-clip: padding-box;
-  background-clip: padding-box;
+     -moz-background-clip: padding-box;
+          background-clip: padding-box;
 }
+
 .modal.fade {
-  -webkit-transition: opacity .3s linear, top .3s ease-out;
-  -moz-transition: opacity .3s linear, top .3s ease-out;
-  -ms-transition: opacity .3s linear, top .3s ease-out;
-  -o-transition: opacity .3s linear, top .3s ease-out;
-  transition: opacity .3s linear, top .3s ease-out;
   top: -25%;
+  -webkit-transition: opacity 0.3s linear, top 0.3s ease-out;
+     -moz-transition: opacity 0.3s linear, top 0.3s ease-out;
+      -ms-transition: opacity 0.3s linear, top 0.3s ease-out;
+       -o-transition: opacity 0.3s linear, top 0.3s ease-out;
+          transition: opacity 0.3s linear, top 0.3s ease-out;
 }
+
 .modal.fade.in {
   top: 50%;
 }
+
 .modal-header {
   padding: 9px 15px;
   border-bottom: 1px solid #eee;
 }
+
 .modal-header .close {
   margin-top: 2px;
 }
+
 .modal-body {
-  overflow-y: auto;
   max-height: 400px;
   padding: 15px;
+  overflow-y: auto;
 }
+
 .modal-form {
   margin-bottom: 0;
 }
+
 .modal-footer {
   padding: 14px 15px 15px;
   margin-bottom: 0;
@@ -3328,62 +4228,74 @@
   background-color: #f5f5f5;
   border-top: 1px solid #ddd;
   -webkit-border-radius: 0 0 6px 6px;
-  -moz-border-radius: 0 0 6px 6px;
-  border-radius: 0 0 6px 6px;
-  -webkit-box-shadow: inset 0 1px 0 #ffffff;
-  -moz-box-shadow: inset 0 1px 0 #ffffff;
-  box-shadow: inset 0 1px 0 #ffffff;
+     -moz-border-radius: 0 0 6px 6px;
+          border-radius: 0 0 6px 6px;
   *zoom: 1;
+  -webkit-box-shadow: inset 0 1px 0 #ffffff;
+     -moz-box-shadow: inset 0 1px 0 #ffffff;
+          box-shadow: inset 0 1px 0 #ffffff;
 }
+
 .modal-footer:before,
 .modal-footer:after {
   display: table;
   content: "";
 }
+
 .modal-footer:after {
   clear: both;
 }
+
 .modal-footer .btn + .btn {
-  margin-left: 5px;
   margin-bottom: 0;
+  margin-left: 5px;
 }
+
 .modal-footer .btn-group .btn + .btn {
   margin-left: -1px;
 }
+
 .tooltip {
   position: absolute;
   z-index: 1020;
   display: block;
-  visibility: visible;
   padding: 5px;
   font-size: 11px;
   opacity: 0;
   filter: alpha(opacity=0);
+  visibility: visible;
 }
+
 .tooltip.in {
   opacity: 0.8;
   filter: alpha(opacity=80);
 }
+
 .tooltip.top {
   margin-top: -2px;
 }
+
 .tooltip.right {
   margin-left: 2px;
 }
+
 .tooltip.bottom {
   margin-top: 2px;
 }
+
 .tooltip.left {
   margin-left: -2px;
 }
+
 .tooltip.top .tooltip-arrow {
   bottom: 0;
   left: 50%;
   margin-left: -5px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
   border-top: 5px solid #000000;
+  border-right: 5px solid transparent;
+  border-left: 5px solid transparent;
 }
+
 .tooltip.left .tooltip-arrow {
   top: 50%;
   right: 0;
@@ -3392,22 +4304,25 @@
   border-bottom: 5px solid transparent;
   border-left: 5px solid #000000;
 }
+
 .tooltip.bottom .tooltip-arrow {
   top: 0;
   left: 50%;
   margin-left: -5px;
-  border-left: 5px solid transparent;
   border-right: 5px solid transparent;
   border-bottom: 5px solid #000000;
+  border-left: 5px solid transparent;
 }
+
 .tooltip.right .tooltip-arrow {
   top: 50%;
   left: 0;
   margin-top: -5px;
   border-top: 5px solid transparent;
-  border-bottom: 5px solid transparent;
   border-right: 5px solid #000000;
+  border-bottom: 5px solid transparent;
 }
+
 .tooltip-inner {
   max-width: 200px;
   padding: 3px 8px;
@@ -3416,14 +4331,16 @@
   text-decoration: none;
   background-color: #000000;
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
 }
+
 .tooltip-arrow {
   position: absolute;
   width: 0;
   height: 0;
 }
+
 .popover {
   position: absolute;
   top: 0;
@@ -3432,42 +4349,50 @@
   display: none;
   padding: 5px;
 }
+
 .popover.top {
   margin-top: -5px;
 }
+
 .popover.right {
   margin-left: 5px;
 }
+
 .popover.bottom {
   margin-top: 5px;
 }
+
 .popover.left {
   margin-left: -5px;
 }
+
 .popover.top .arrow {
   bottom: 0;
   left: 50%;
   margin-left: -5px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
   border-top: 5px solid #000000;
+  border-right: 5px solid transparent;
+  border-left: 5px solid transparent;
 }
+
 .popover.right .arrow {
   top: 50%;
   left: 0;
   margin-top: -5px;
   border-top: 5px solid transparent;
-  border-bottom: 5px solid transparent;
   border-right: 5px solid #000000;
+  border-bottom: 5px solid transparent;
 }
+
 .popover.bottom .arrow {
   top: 0;
   left: 50%;
   margin-left: -5px;
-  border-left: 5px solid transparent;
   border-right: 5px solid transparent;
   border-bottom: 5px solid #000000;
+  border-left: 5px solid transparent;
 }
+
 .popover.left .arrow {
   top: 50%;
   right: 0;
@@ -3476,211 +4401,222 @@
   border-bottom: 5px solid transparent;
   border-left: 5px solid #000000;
 }
+
 .popover .arrow {
   position: absolute;
   width: 0;
   height: 0;
 }
+
 .popover-inner {
-  padding: 3px;
   width: 280px;
+  padding: 3px;
   overflow: hidden;
   background: #000000;
   background: rgba(0, 0, 0, 0.8);
   -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
   -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+     -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+          box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
 }
+
 .popover-title {
   padding: 9px 15px;
   line-height: 1;
   background-color: #f5f5f5;
   border-bottom: 1px solid #eee;
   -webkit-border-radius: 3px 3px 0 0;
-  -moz-border-radius: 3px 3px 0 0;
-  border-radius: 3px 3px 0 0;
+     -moz-border-radius: 3px 3px 0 0;
+          border-radius: 3px 3px 0 0;
 }
+
 .popover-content {
   padding: 14px;
   background-color: #ffffff;
   -webkit-border-radius: 0 0 3px 3px;
-  -moz-border-radius: 0 0 3px 3px;
-  border-radius: 0 0 3px 3px;
+     -moz-border-radius: 0 0 3px 3px;
+          border-radius: 0 0 3px 3px;
   -webkit-background-clip: padding-box;
-  -moz-background-clip: padding-box;
-  background-clip: padding-box;
+     -moz-background-clip: padding-box;
+          background-clip: padding-box;
 }
+
 .popover-content p,
 .popover-content ul,
 .popover-content ol {
   margin-bottom: 0;
 }
+
 .thumbnails {
   margin-left: -20px;
   list-style: none;
   *zoom: 1;
 }
+
 .thumbnails:before,
 .thumbnails:after {
   display: table;
   content: "";
 }
+
 .thumbnails:after {
   clear: both;
 }
+
+.row-fluid .thumbnails {
+  margin-left: 0;
+}
+
 .thumbnails > li {
   float: left;
-  margin: 0 0 18px 20px;
+  margin-bottom: 18px;
+  margin-left: 20px;
 }
+
 .thumbnail {
   display: block;
   padding: 4px;
   line-height: 1;
   border: 1px solid #ddd;
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
   -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
-  -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
-  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
+     -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
+          box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
 }
+
 a.thumbnail:hover {
   border-color: #0088cc;
   -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
-  -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
-  box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
+     -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
+          box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
 }
+
 .thumbnail > img {
   display: block;
   max-width: 100%;
-  margin-left: auto;
   margin-right: auto;
+  margin-left: auto;
 }
+
 .thumbnail .caption {
   padding: 9px;
 }
-.label {
-  padding: 1px 4px 2px;
+
+.label,
+.badge {
   font-size: 10.998px;
   font-weight: bold;
-  line-height: 13px;
+  line-height: 14px;
   color: #ffffff;
-  vertical-align: middle;
-  white-space: nowrap;
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+  white-space: nowrap;
+  vertical-align: baseline;
   background-color: #999999;
+}
+
+.label {
+  padding: 1px 4px 2px;
   -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
 }
-.label:hover {
-  color: #ffffff;
-  text-decoration: none;
-}
-.label-important {
-  background-color: #b94a48;
-}
-.label-important:hover {
-  background-color: #953b39;
-}
-.label-warning {
-  background-color: #f89406;
-}
-.label-warning:hover {
-  background-color: #c67605;
-}
-.label-success {
-  background-color: #468847;
-}
-.label-success:hover {
-  background-color: #356635;
-}
-.label-info {
-  background-color: #3a87ad;
-}
-.label-info:hover {
-  background-color: #2d6987;
-}
-.label-inverse {
-  background-color: #333333;
-}
-.label-inverse:hover {
-  background-color: #1a1a1a;
-}
+
 .badge {
   padding: 1px 9px 2px;
-  font-size: 12.025px;
-  font-weight: bold;
-  white-space: nowrap;
-  color: #ffffff;
-  background-color: #999999;
   -webkit-border-radius: 9px;
-  -moz-border-radius: 9px;
-  border-radius: 9px;
+     -moz-border-radius: 9px;
+          border-radius: 9px;
 }
-.badge:hover {
+
+a.label:hover,
+a.badge:hover {
   color: #ffffff;
   text-decoration: none;
   cursor: pointer;
 }
-.badge-error {
+
+.label-important,
+.badge-important {
   background-color: #b94a48;
 }
-.badge-error:hover {
+
+.label-important[href],
+.badge-important[href] {
   background-color: #953b39;
 }
+
+.label-warning,
 .badge-warning {
   background-color: #f89406;
 }
-.badge-warning:hover {
+
+.label-warning[href],
+.badge-warning[href] {
   background-color: #c67605;
 }
+
+.label-success,
 .badge-success {
   background-color: #468847;
 }
-.badge-success:hover {
+
+.label-success[href],
+.badge-success[href] {
   background-color: #356635;
 }
+
+.label-info,
 .badge-info {
   background-color: #3a87ad;
 }
-.badge-info:hover {
+
+.label-info[href],
+.badge-info[href] {
   background-color: #2d6987;
 }
+
+.label-inverse,
 .badge-inverse {
   background-color: #333333;
 }
-.badge-inverse:hover {
+
+.label-inverse[href],
+.badge-inverse[href] {
   background-color: #1a1a1a;
 }
+
 @-webkit-keyframes progress-bar-stripes {
   from {
-    background-position: 0 0;
-  }
-  to {
     background-position: 40px 0;
   }
+  to {
+    background-position: 0 0;
+  }
 }
+
 @-moz-keyframes progress-bar-stripes {
   from {
-    background-position: 0 0;
-  }
-  to {
     background-position: 40px 0;
   }
+  to {
+    background-position: 0 0;
+  }
 }
+
 @-ms-keyframes progress-bar-stripes {
   from {
-    background-position: 0 0;
-  }
-  to {
     background-position: 40px 0;
   }
+  to {
+    background-position: 0 0;
+  }
 }
-@keyframes progress-bar-stripes {
+
+@-o-keyframes progress-bar-stripes {
   from {
     background-position: 0 0;
   }
@@ -3688,10 +4624,20 @@
     background-position: 40px 0;
   }
 }
+
+@keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+
 .progress {
-  overflow: hidden;
   height: 18px;
   margin-bottom: 18px;
+  overflow: hidden;
   background-color: #f7f7f7;
   background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
   background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9);
@@ -3700,61 +4646,67 @@
   background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
   background-image: linear-gradient(top, #f5f5f5, #f9f9f9);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);
+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
 }
+
 .progress .bar {
-  width: 0%;
+  width: 0;
   height: 18px;
-  color: #ffffff;
   font-size: 12px;
+  color: #ffffff;
   text-align: center;
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
   background-color: #0e90d2;
   background-image: -moz-linear-gradient(top, #149bdf, #0480be);
-  background-image: -ms-linear-gradient(top, #149bdf, #0480be);
   background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
   background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
   background-image: -o-linear-gradient(top, #149bdf, #0480be);
   background-image: linear-gradient(top, #149bdf, #0480be);
+  background-image: -ms-linear-gradient(top, #149bdf, #0480be);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);
   -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-  -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+     -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
   -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
+     -moz-box-sizing: border-box;
+      -ms-box-sizing: border-box;
+          box-sizing: border-box;
   -webkit-transition: width 0.6s ease;
-  -moz-transition: width 0.6s ease;
-  -ms-transition: width 0.6s ease;
-  -o-transition: width 0.6s ease;
-  transition: width 0.6s ease;
+     -moz-transition: width 0.6s ease;
+      -ms-transition: width 0.6s ease;
+       -o-transition: width 0.6s ease;
+          transition: width 0.6s ease;
 }
+
 .progress-striped .bar {
   background-color: #149bdf;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
   background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
   background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
   background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
   background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
   -webkit-background-size: 40px 40px;
-  -moz-background-size: 40px 40px;
-  -o-background-size: 40px 40px;
-  background-size: 40px 40px;
+     -moz-background-size: 40px 40px;
+       -o-background-size: 40px 40px;
+          background-size: 40px 40px;
 }
+
 .progress.active .bar {
   -webkit-animation: progress-bar-stripes 2s linear infinite;
-  -moz-animation: progress-bar-stripes 2s linear infinite;
-  animation: progress-bar-stripes 2s linear infinite;
+     -moz-animation: progress-bar-stripes 2s linear infinite;
+      -ms-animation: progress-bar-stripes 2s linear infinite;
+       -o-animation: progress-bar-stripes 2s linear infinite;
+          animation: progress-bar-stripes 2s linear infinite;
 }
+
 .progress-danger .bar {
   background-color: #dd514c;
   background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
@@ -3764,8 +4716,9 @@
   background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
   background-image: linear-gradient(top, #ee5f5b, #c43c35);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
 }
+
 .progress-danger.progress-striped .bar {
   background-color: #ee5f5b;
   background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
@@ -3775,6 +4728,7 @@
   background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
   background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 }
+
 .progress-success .bar {
   background-color: #5eb95e;
   background-image: -moz-linear-gradient(top, #62c462, #57a957);
@@ -3784,8 +4738,9 @@
   background-image: -o-linear-gradient(top, #62c462, #57a957);
   background-image: linear-gradient(top, #62c462, #57a957);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
 }
+
 .progress-success.progress-striped .bar {
   background-color: #62c462;
   background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
@@ -3795,6 +4750,7 @@
   background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
   background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 }
+
 .progress-info .bar {
   background-color: #4bb1cf;
   background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
@@ -3804,8 +4760,9 @@
   background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
   background-image: linear-gradient(top, #5bc0de, #339bb9);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
 }
+
 .progress-info.progress-striped .bar {
   background-color: #5bc0de;
   background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
@@ -3815,6 +4772,7 @@
   background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
   background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 }
+
 .progress-warning .bar {
   background-color: #faa732;
   background-image: -moz-linear-gradient(top, #fbb450, #f89406);
@@ -3824,8 +4782,9 @@
   background-image: -o-linear-gradient(top, #fbb450, #f89406);
   background-image: linear-gradient(top, #fbb450, #f89406);
   background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
+  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
 }
+
 .progress-warning.progress-striped .bar {
   background-color: #fbb450;
   background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
@@ -3835,80 +4794,102 @@
   background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
   background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 }
+
 .accordion {
   margin-bottom: 18px;
 }
+
 .accordion-group {
   margin-bottom: 2px;
   border: 1px solid #e5e5e5;
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
 }
+
 .accordion-heading {
   border-bottom: 0;
 }
+
 .accordion-heading .accordion-toggle {
   display: block;
   padding: 8px 15px;
 }
+
+.accordion-toggle {
+  cursor: pointer;
+}
+
 .accordion-inner {
   padding: 9px 15px;
   border-top: 1px solid #e5e5e5;
 }
+
 .carousel {
   position: relative;
   margin-bottom: 18px;
   line-height: 1;
 }
+
 .carousel-inner {
-  overflow: hidden;
+  position: relative;
   width: 100%;
-  position: relative;
+  overflow: hidden;
 }
+
 .carousel .item {
-  display: none;
   position: relative;
+  display: none;
   -webkit-transition: 0.6s ease-in-out left;
-  -moz-transition: 0.6s ease-in-out left;
-  -ms-transition: 0.6s ease-in-out left;
-  -o-transition: 0.6s ease-in-out left;
-  transition: 0.6s ease-in-out left;
+     -moz-transition: 0.6s ease-in-out left;
+      -ms-transition: 0.6s ease-in-out left;
+       -o-transition: 0.6s ease-in-out left;
+          transition: 0.6s ease-in-out left;
 }
+
 .carousel .item > img {
   display: block;
   line-height: 1;
 }
+
 .carousel .active,
 .carousel .next,
 .carousel .prev {
   display: block;
 }
+
 .carousel .active {
   left: 0;
 }
+
 .carousel .next,
 .carousel .prev {
   position: absolute;
   top: 0;
   width: 100%;
 }
+
 .carousel .next {
   left: 100%;
 }
+
 .carousel .prev {
   left: -100%;
 }
+
 .carousel .next.left,
 .carousel .prev.right {
   left: 0;
 }
+
 .carousel .active.left {
   left: -100%;
 }
+
 .carousel .active.right {
   left: 100%;
 }
+
 .carousel-control {
   position: absolute;
   top: 40%;
@@ -3924,67 +4905,79 @@
   background: #222222;
   border: 3px solid #ffffff;
   -webkit-border-radius: 23px;
-  -moz-border-radius: 23px;
-  border-radius: 23px;
+     -moz-border-radius: 23px;
+          border-radius: 23px;
   opacity: 0.5;
   filter: alpha(opacity=50);
 }
+
 .carousel-control.right {
-  left: auto;
   right: 15px;
+  left: auto;
 }
+
 .carousel-control:hover {
   color: #ffffff;
   text-decoration: none;
   opacity: 0.9;
   filter: alpha(opacity=90);
 }
+
 .carousel-caption {
   position: absolute;
-  left: 0;
   right: 0;
   bottom: 0;
+  left: 0;
   padding: 10px 15px 5px;
   background: #333333;
   background: rgba(0, 0, 0, 0.75);
 }
+
 .carousel-caption h4,
 .carousel-caption p {
   color: #ffffff;
 }
+
 .hero-unit {
   padding: 60px;
   margin-bottom: 30px;
   background-color: #eeeeee;
   -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
 }
+
 .hero-unit h1 {
   margin-bottom: 0;
   font-size: 60px;
   line-height: 1;
-  color: inherit;
   letter-spacing: -1px;
+  color: inherit;
 }
+
 .hero-unit p {
   font-size: 18px;
   font-weight: 200;
   line-height: 27px;
   color: inherit;
 }
+
 .pull-right {
   float: right;
 }
+
 .pull-left {
   float: left;
 }
+
 .hide {
   display: none;
 }
+
 .show {
   display: block;
 }
+
 .invisible {
   visibility: hidden;
 }
diff --git a/resources/bootstrap/img/glyphicons-halflings-white.png b/resources/bootstrap/img/glyphicons-halflings-white.png
index a20760b..3bf6484 100644
--- a/resources/bootstrap/img/glyphicons-halflings-white.png
+++ b/resources/bootstrap/img/glyphicons-halflings-white.png
Binary files differ
diff --git a/resources/bootstrap/img/glyphicons-halflings.png b/resources/bootstrap/img/glyphicons-halflings.png
index 92d4445..79bc568 100644
--- a/resources/bootstrap/img/glyphicons-halflings.png
+++ b/resources/bootstrap/img/glyphicons-halflings.png
Binary files differ
diff --git a/resources/bootstrap/js/bootstrap.js b/resources/bootstrap/js/bootstrap.js
index ca86867..5d6e65b 100644
--- a/resources/bootstrap/js/bootstrap.js
+++ b/resources/bootstrap/js/bootstrap.js
@@ -1,5 +1,5 @@
 /* ===================================================
- * bootstrap-transition.js v2.0.2
+ * bootstrap-transition.js v2.0.4
  * http://twitter.github.com/bootstrap/javascript.html#transitions
  * ===================================================
  * Copyright 2012 Twitter, Inc.
@@ -17,39 +17,49 @@
  * limitations under the License.
  * ========================================================== */
 
-!function( $ ) {
+
+!function ($) {
 
   $(function () {
 
-    "use strict"
+    "use strict"; // jshint ;_;
 
-    /* CSS TRANSITION SUPPORT (https://gist.github.com/373874)
+
+    /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
      * ======================================================= */
 
     $.support.transition = (function () {
-      var thisBody = document.body || document.documentElement
-        , thisStyle = thisBody.style
-        , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined
 
-      return support && {
-        end: (function () {
-          var transitionEnd = "TransitionEnd"
-          if ( $.browser.webkit ) {
-          	transitionEnd = "webkitTransitionEnd"
-          } else if ( $.browser.mozilla ) {
-          	transitionEnd = "transitionend"
-          } else if ( $.browser.opera ) {
-          	transitionEnd = "oTransitionEnd"
+      var transitionEnd = (function () {
+
+        var el = document.createElement('bootstrap')
+          , transEndEventNames = {
+               'WebkitTransition' : 'webkitTransitionEnd'
+            ,  'MozTransition'    : 'transitionend'
+            ,  'OTransition'      : 'oTransitionEnd'
+            ,  'msTransition'     : 'MSTransitionEnd'
+            ,  'transition'       : 'transitionend'
+            }
+          , name
+
+        for (name in transEndEventNames){
+          if (el.style[name] !== undefined) {
+            return transEndEventNames[name]
           }
-          return transitionEnd
-        }())
+        }
+
+      }())
+
+      return transitionEnd && {
+        end: transitionEnd
       }
+
     })()
 
   })
 
-}( window.jQuery );/* ==========================================================
- * bootstrap-alert.js v2.0.2
+}(window.jQuery);/* ==========================================================
+ * bootstrap-alert.js v2.0.4
  * http://twitter.github.com/bootstrap/javascript.html#alerts
  * ==========================================================
  * Copyright 2012 Twitter, Inc.
@@ -68,61 +78,57 @@
  * ========================================================== */
 
 
-!function( $ ){
+!function ($) {
 
-  "use strict"
+  "use strict"; // jshint ;_;
+
 
  /* ALERT CLASS DEFINITION
   * ====================== */
 
   var dismiss = '[data-dismiss="alert"]'
-    , Alert = function ( el ) {
+    , Alert = function (el) {
         $(el).on('click', dismiss, this.close)
       }
 
-  Alert.prototype = {
+  Alert.prototype.close = function (e) {
+    var $this = $(this)
+      , selector = $this.attr('data-target')
+      , $parent
 
-    constructor: Alert
-
-  , close: function ( e ) {
-      var $this = $(this)
-        , selector = $this.attr('data-target')
-        , $parent
-
-      if (!selector) {
-        selector = $this.attr('href')
-        selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
-      }
-
-      $parent = $(selector)
-      $parent.trigger('close')
-
-      e && e.preventDefault()
-
-      $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
-
-      $parent
-        .trigger('close')
-        .removeClass('in')
-
-      function removeElement() {
-        $parent
-          .trigger('closed')
-          .remove()
-      }
-
-      $.support.transition && $parent.hasClass('fade') ?
-        $parent.on($.support.transition.end, removeElement) :
-        removeElement()
+    if (!selector) {
+      selector = $this.attr('href')
+      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
     }
 
+    $parent = $(selector)
+
+    e && e.preventDefault()
+
+    $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
+
+    $parent.trigger(e = $.Event('close'))
+
+    if (e.isDefaultPrevented()) return
+
+    $parent.removeClass('in')
+
+    function removeElement() {
+      $parent
+        .trigger('closed')
+        .remove()
+    }
+
+    $.support.transition && $parent.hasClass('fade') ?
+      $parent.on($.support.transition.end, removeElement) :
+      removeElement()
   }
 
 
  /* ALERT PLUGIN DEFINITION
   * ======================= */
 
-  $.fn.alert = function ( option ) {
+  $.fn.alert = function (option) {
     return this.each(function () {
       var $this = $(this)
         , data = $this.data('alert')
@@ -141,8 +147,8 @@
     $('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
   })
 
-}( window.jQuery );/* ============================================================
- * bootstrap-button.js v2.0.2
+}(window.jQuery);/* ============================================================
+ * bootstrap-button.js v2.0.4
  * http://twitter.github.com/bootstrap/javascript.html#buttons
  * ============================================================
  * Copyright 2012 Twitter, Inc.
@@ -160,58 +166,54 @@
  * limitations under the License.
  * ============================================================ */
 
-!function( $ ){
 
-  "use strict"
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
 
  /* BUTTON PUBLIC CLASS DEFINITION
   * ============================== */
 
-  var Button = function ( element, options ) {
+  var Button = function (element, options) {
     this.$element = $(element)
     this.options = $.extend({}, $.fn.button.defaults, options)
   }
 
-  Button.prototype = {
+  Button.prototype.setState = function (state) {
+    var d = 'disabled'
+      , $el = this.$element
+      , data = $el.data()
+      , val = $el.is('input') ? 'val' : 'html'
 
-      constructor: Button
+    state = state + 'Text'
+    data.resetText || $el.data('resetText', $el[val]())
 
-    , setState: function ( state ) {
-        var d = 'disabled'
-          , $el = this.$element
-          , data = $el.data()
-          , val = $el.is('input') ? 'val' : 'html'
+    $el[val](data[state] || this.options[state])
 
-        state = state + 'Text'
-        data.resetText || $el.data('resetText', $el[val]())
+    // push to event loop to allow forms to submit
+    setTimeout(function () {
+      state == 'loadingText' ?
+        $el.addClass(d).attr(d, d) :
+        $el.removeClass(d).removeAttr(d)
+    }, 0)
+  }
 
-        $el[val](data[state] || this.options[state])
+  Button.prototype.toggle = function () {
+    var $parent = this.$element.parent('[data-toggle="buttons-radio"]')
 
-        // push to event loop to allow forms to submit
-        setTimeout(function () {
-          state == 'loadingText' ?
-            $el.addClass(d).attr(d, d) :
-            $el.removeClass(d).removeAttr(d)
-        }, 0)
-      }
+    $parent && $parent
+      .find('.active')
+      .removeClass('active')
 
-    , toggle: function () {
-        var $parent = this.$element.parent('[data-toggle="buttons-radio"]')
-
-        $parent && $parent
-          .find('.active')
-          .removeClass('active')
-
-        this.$element.toggleClass('active')
-      }
-
+    this.$element.toggleClass('active')
   }
 
 
  /* BUTTON PLUGIN DEFINITION
   * ======================== */
 
-  $.fn.button = function ( option ) {
+  $.fn.button = function (option) {
     return this.each(function () {
       var $this = $(this)
         , data = $this.data('button')
@@ -240,8 +242,8 @@
     })
   })
 
-}( window.jQuery );/* ==========================================================
- * bootstrap-carousel.js v2.0.2
+}(window.jQuery);/* ==========================================================
+ * bootstrap-carousel.js v2.0.4
  * http://twitter.github.com/bootstrap/javascript.html#carousel
  * ==========================================================
  * Copyright 2012 Twitter, Inc.
@@ -260,16 +262,17 @@
  * ========================================================== */
 
 
-!function( $ ){
+!function ($) {
 
-  "use strict"
+  "use strict"; // jshint ;_;
+
 
  /* CAROUSEL CLASS DEFINITION
   * ========================= */
 
   var Carousel = function (element, options) {
     this.$element = $(element)
-    this.options = $.extend({}, $.fn.carousel.defaults, options)
+    this.options = options
     this.options.slide && this.slide(this.options.slide)
     this.options.pause == 'hover' && this.$element
       .on('mouseenter', $.proxy(this.pause, this))
@@ -278,8 +281,11 @@
 
   Carousel.prototype = {
 
-    cycle: function () {
-      this.interval = setInterval($.proxy(this.next, this), this.options.interval)
+    cycle: function (e) {
+      if (!e) this.paused = false
+      this.options.interval
+        && !this.paused
+        && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
       return this
     }
 
@@ -304,7 +310,8 @@
       return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos]))
     }
 
-  , pause: function () {
+  , pause: function (e) {
+      if (!e) this.paused = true
       clearInterval(this.interval)
       this.interval = null
       return this
@@ -327,6 +334,7 @@
         , direction = type == 'next' ? 'left' : 'right'
         , fallback  = type == 'next' ? 'first' : 'last'
         , that = this
+        , e = $.Event('slide')
 
       this.sliding = true
 
@@ -336,24 +344,26 @@
 
       if ($next.hasClass('active')) return
 
-      if (!$.support.transition && this.$element.hasClass('slide')) {
-        this.$element.trigger('slide')
-        $active.removeClass('active')
-        $next.addClass('active')
-        this.sliding = false
-        this.$element.trigger('slid')
-      } else {
+      if ($.support.transition && this.$element.hasClass('slide')) {
+        this.$element.trigger(e)
+        if (e.isDefaultPrevented()) return
         $next.addClass(type)
         $next[0].offsetWidth // force reflow
         $active.addClass(direction)
         $next.addClass(direction)
-        this.$element.trigger('slide')
         this.$element.one($.support.transition.end, function () {
           $next.removeClass([type, direction].join(' ')).addClass('active')
           $active.removeClass(['active', direction].join(' '))
           that.sliding = false
           setTimeout(function () { that.$element.trigger('slid') }, 0)
         })
+      } else {
+        this.$element.trigger(e)
+        if (e.isDefaultPrevented()) return
+        $active.removeClass('active')
+        $next.addClass('active')
+        this.sliding = false
+        this.$element.trigger('slid')
       }
 
       isCycling && this.cycle()
@@ -367,15 +377,15 @@
  /* CAROUSEL PLUGIN DEFINITION
   * ========================== */
 
-  $.fn.carousel = function ( option ) {
+  $.fn.carousel = function (option) {
     return this.each(function () {
       var $this = $(this)
         , data = $this.data('carousel')
-        , options = typeof option == 'object' && option
+        , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
       if (!data) $this.data('carousel', (data = new Carousel(this, options)))
       if (typeof option == 'number') data.to(option)
       else if (typeof option == 'string' || (option = options.slide)) data[option]()
-      else data.cycle()
+      else if (options.interval) data.cycle()
     })
   }
 
@@ -400,8 +410,8 @@
     })
   })
 
-}( window.jQuery );/* =============================================================
- * bootstrap-collapse.js v2.0.2
+}(window.jQuery);/* =============================================================
+ * bootstrap-collapse.js v2.0.4
  * http://twitter.github.com/bootstrap/javascript.html#collapse
  * =============================================================
  * Copyright 2012 Twitter, Inc.
@@ -419,16 +429,21 @@
  * limitations under the License.
  * ============================================================ */
 
-!function( $ ){
 
-  "use strict"
+!function ($) {
 
-  var Collapse = function ( element, options ) {
-  	this.$element = $(element)
+  "use strict"; // jshint ;_;
+
+
+ /* COLLAPSE PUBLIC CLASS DEFINITION
+  * ================================ */
+
+  var Collapse = function (element, options) {
+    this.$element = $(element)
     this.options = $.extend({}, $.fn.collapse.defaults, options)
 
-    if (this.options["parent"]) {
-      this.$parent = $(this.options["parent"])
+    if (this.options.parent) {
+      this.$parent = $(this.options.parent)
     }
 
     this.options.toggle && this.toggle()
@@ -444,31 +459,39 @@
     }
 
   , show: function () {
-      var dimension = this.dimension()
-        , scroll = $.camelCase(['scroll', dimension].join('-'))
-        , actives = this.$parent && this.$parent.find('.in')
+      var dimension
+        , scroll
+        , actives
         , hasData
+
+      if (this.transitioning) return
+
+      dimension = this.dimension()
+      scroll = $.camelCase(['scroll', dimension].join('-'))
+      actives = this.$parent && this.$parent.find('> .accordion-group > .in')
 
       if (actives && actives.length) {
         hasData = actives.data('collapse')
+        if (hasData && hasData.transitioning) return
         actives.collapse('hide')
         hasData || actives.data('collapse', null)
       }
 
       this.$element[dimension](0)
-      this.transition('addClass', 'show', 'shown')
+      this.transition('addClass', $.Event('show'), 'shown')
       this.$element[dimension](this.$element[0][scroll])
-
     }
 
   , hide: function () {
-      var dimension = this.dimension()
+      var dimension
+      if (this.transitioning) return
+      dimension = this.dimension()
       this.reset(this.$element[dimension]())
-      this.transition('removeClass', 'hide', 'hidden')
+      this.transition('removeClass', $.Event('hide'), 'hidden')
       this.$element[dimension](0)
     }
 
-  , reset: function ( size ) {
+  , reset: function (size) {
       var dimension = this.dimension()
 
       this.$element
@@ -476,37 +499,43 @@
         [dimension](size || 'auto')
         [0].offsetWidth
 
-      this.$element[size ? 'addClass' : 'removeClass']('collapse')
+      this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
 
       return this
     }
 
-  , transition: function ( method, startEvent, completeEvent ) {
+  , transition: function (method, startEvent, completeEvent) {
       var that = this
         , complete = function () {
-            if (startEvent == 'show') that.reset()
+            if (startEvent.type == 'show') that.reset()
+            that.transitioning = 0
             that.$element.trigger(completeEvent)
           }
 
-      this.$element
-        .trigger(startEvent)
-        [method]('in')
+      this.$element.trigger(startEvent)
+
+      if (startEvent.isDefaultPrevented()) return
+
+      this.transitioning = 1
+
+      this.$element[method]('in')
 
       $.support.transition && this.$element.hasClass('collapse') ?
         this.$element.one($.support.transition.end, complete) :
         complete()
-  	}
+    }
 
   , toggle: function () {
       this[this.$element.hasClass('in') ? 'hide' : 'show']()
-  	}
+    }
 
   }
 
-  /* COLLAPSIBLE PLUGIN DEFINITION
+
+ /* COLLAPSIBLE PLUGIN DEFINITION
   * ============================== */
 
-  $.fn.collapse = function ( option ) {
+  $.fn.collapse = function (option) {
     return this.each(function () {
       var $this = $(this)
         , data = $this.data('collapse')
@@ -537,8 +566,8 @@
     })
   })
 
-}( window.jQuery );/* ============================================================
- * bootstrap-dropdown.js v2.0.2
+}(window.jQuery);/* ============================================================
+ * bootstrap-dropdown.js v2.0.4
  * http://twitter.github.com/bootstrap/javascript.html#dropdowns
  * ============================================================
  * Copyright 2012 Twitter, Inc.
@@ -557,15 +586,16 @@
  * ============================================================ */
 
 
-!function( $ ){
+!function ($) {
 
-  "use strict"
+  "use strict"; // jshint ;_;
+
 
  /* DROPDOWN CLASS DEFINITION
   * ========================= */
 
   var toggle = '[data-toggle="dropdown"]'
-    , Dropdown = function ( element ) {
+    , Dropdown = function (element) {
         var $el = $(element).on('click.dropdown.data-api', this.toggle)
         $('html').on('click.dropdown.data-api', function () {
           $el.parent().removeClass('open')
@@ -576,11 +606,15 @@
 
     constructor: Dropdown
 
-  , toggle: function ( e ) {
+  , toggle: function (e) {
       var $this = $(this)
-        , selector = $this.attr('data-target')
         , $parent
+        , selector
         , isActive
+
+      if ($this.is('.disabled, :disabled')) return
+
+      selector = $this.attr('data-target')
 
       if (!selector) {
         selector = $this.attr('href')
@@ -593,7 +627,8 @@
       isActive = $parent.hasClass('open')
 
       clearMenus()
-      !isActive && $parent.toggleClass('open')
+
+      if (!isActive) $parent.toggleClass('open')
 
       return false
     }
@@ -608,7 +643,7 @@
   /* DROPDOWN PLUGIN DEFINITION
    * ========================== */
 
-  $.fn.dropdown = function ( option ) {
+  $.fn.dropdown = function (option) {
     return this.each(function () {
       var $this = $(this)
         , data = $this.data('dropdown')
@@ -625,11 +660,13 @@
 
   $(function () {
     $('html').on('click.dropdown.data-api', clearMenus)
-    $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle)
+    $('body')
+      .on('click.dropdown', '.dropdown form', function (e) { e.stopPropagation() })
+      .on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle)
   })
 
-}( window.jQuery );/* =========================================================
- * bootstrap-modal.js v2.0.2
+}(window.jQuery);/* =========================================================
+ * bootstrap-modal.js v2.0.4
  * http://twitter.github.com/bootstrap/javascript.html#modals
  * =========================================================
  * Copyright 2012 Twitter, Inc.
@@ -648,14 +685,15 @@
  * ========================================================= */
 
 
-!function( $ ){
+!function ($) {
 
-  "use strict"
+  "use strict"; // jshint ;_;
+
 
  /* MODAL CLASS DEFINITION
   * ====================== */
 
-  var Modal = function ( content, options ) {
+  var Modal = function (content, options) {
     this.options = options
     this.$element = $(content)
       .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
@@ -671,19 +709,23 @@
 
     , show: function () {
         var that = this
+          , e = $.Event('show')
 
-        if (this.isShown) return
+        this.$element.trigger(e)
+
+        if (this.isShown || e.isDefaultPrevented()) return
 
         $('body').addClass('modal-open')
 
         this.isShown = true
-        this.$element.trigger('show')
 
         escape.call(this)
         backdrop.call(this, function () {
           var transition = $.support.transition && that.$element.hasClass('fade')
 
-          !that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position
+          if (!that.$element.parent().length) {
+            that.$element.appendTo(document.body) //don't move modals dom position
+          }
 
           that.$element
             .show()
@@ -701,21 +743,24 @@
         })
       }
 
-    , hide: function ( e ) {
+    , hide: function (e) {
         e && e.preventDefault()
 
-        if (!this.isShown) return
-
         var that = this
+
+        e = $.Event('hide')
+
+        this.$element.trigger(e)
+
+        if (!this.isShown || e.isDefaultPrevented()) return
+
         this.isShown = false
 
         $('body').removeClass('modal-open')
 
         escape.call(this)
 
-        this.$element
-          .trigger('hide')
-          .removeClass('in')
+        this.$element.removeClass('in')
 
         $.support.transition && this.$element.hasClass('fade') ?
           hideWithTransition.call(this) :
@@ -741,7 +786,7 @@
     })
   }
 
-  function hideModal( that ) {
+  function hideModal(that) {
     this.$element
       .hide()
       .trigger('hidden')
@@ -749,7 +794,7 @@
     backdrop.call(this)
   }
 
-  function backdrop( callback ) {
+  function backdrop(callback) {
     var that = this
       , animate = this.$element.hasClass('fade') ? 'fade' : ''
 
@@ -803,7 +848,7 @@
  /* MODAL PLUGIN DEFINITION
   * ======================= */
 
-  $.fn.modal = function ( option ) {
+  $.fn.modal = function (option) {
     return this.each(function () {
       var $this = $(this)
         , data = $this.data('modal')
@@ -837,8 +882,8 @@
     })
   })
 
-}( window.jQuery );/* ===========================================================
- * bootstrap-tooltip.js v2.0.2
+}(window.jQuery);/* ===========================================================
+ * bootstrap-tooltip.js v2.0.4
  * http://twitter.github.com/bootstrap/javascript.html#tooltips
  * Inspired by the original jQuery.tipsy by Jason Frame
  * ===========================================================
@@ -857,14 +902,16 @@
  * limitations under the License.
  * ========================================================== */
 
-!function( $ ) {
 
-  "use strict"
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
 
  /* TOOLTIP PUBLIC CLASS DEFINITION
   * =============================== */
 
-  var Tooltip = function ( element, options ) {
+  var Tooltip = function (element, options) {
     this.init('tooltip', element, options)
   }
 
@@ -872,7 +919,7 @@
 
     constructor: Tooltip
 
-  , init: function ( type, element, options ) {
+  , init: function (type, element, options) {
       var eventIn
         , eventOut
 
@@ -893,7 +940,7 @@
         this.fixTitle()
     }
 
-  , getOptions: function ( options ) {
+  , getOptions: function (options) {
       options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
 
       if (options.delay && typeof options.delay == 'number') {
@@ -906,34 +953,28 @@
       return options
     }
 
-  , enter: function ( e ) {
+  , enter: function (e) {
       var self = $(e.currentTarget)[this.type](this._options).data(this.type)
 
-      if (!self.options.delay || !self.options.delay.show) {
-        self.show()
-      } else {
-        self.hoverState = 'in'
-        setTimeout(function() {
-          if (self.hoverState == 'in') {
-            self.show()
-          }
-        }, self.options.delay.show)
-      }
+      if (!self.options.delay || !self.options.delay.show) return self.show()
+
+      clearTimeout(this.timeout)
+      self.hoverState = 'in'
+      this.timeout = setTimeout(function() {
+        if (self.hoverState == 'in') self.show()
+      }, self.options.delay.show)
     }
 
-  , leave: function ( e ) {
+  , leave: function (e) {
       var self = $(e.currentTarget)[this.type](this._options).data(this.type)
 
-      if (!self.options.delay || !self.options.delay.hide) {
-        self.hide()
-      } else {
-        self.hoverState = 'out'
-        setTimeout(function() {
-          if (self.hoverState == 'out') {
-            self.hide()
-          }
-        }, self.options.delay.hide)
-      }
+      if (this.timeout) clearTimeout(this.timeout)
+      if (!self.options.delay || !self.options.delay.hide) return self.hide()
+
+      self.hoverState = 'out'
+      this.timeout = setTimeout(function() {
+        if (self.hoverState == 'out') self.hide()
+      }, self.options.delay.hide)
     }
 
   , show: function () {
@@ -991,9 +1032,20 @@
       }
     }
 
+  , isHTML: function(text) {
+      // html string detection logic adapted from jQuery
+      return typeof text != 'string'
+        || ( text.charAt(0) === "<"
+          && text.charAt( text.length - 1 ) === ">"
+          && text.length >= 3
+        ) || /^(?:[^<]*<[\w\W]+>[^>]*$)/.exec(text)
+    }
+
   , setContent: function () {
       var $tip = this.tip()
-      $tip.find('.tooltip-inner').html(this.getTitle())
+        , title = this.getTitle()
+
+      $tip.find('.tooltip-inner')[this.isHTML(title) ? 'html' : 'text'](title)
       $tip.removeClass('fade in top bottom left right')
     }
 
@@ -1044,8 +1096,6 @@
 
       title = $e.attr('data-original-title')
         || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)
-
-      title = (title || '').toString().replace(/(^\s*|\s*$)/, "")
 
       return title
     }
@@ -1098,16 +1148,17 @@
 
   $.fn.tooltip.defaults = {
     animation: true
-  , delay: 0
-  , selector: false
   , placement: 'top'
+  , selector: false
+  , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
   , trigger: 'hover'
   , title: ''
-  , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
+  , delay: 0
   }
 
-}( window.jQuery );/* ===========================================================
- * bootstrap-popover.js v2.0.2
+}(window.jQuery);
+/* ===========================================================
+ * bootstrap-popover.js v2.0.4
  * http://twitter.github.com/bootstrap/javascript.html#popovers
  * ===========================================================
  * Copyright 2012 Twitter, Inc.
@@ -1126,13 +1177,18 @@
  * =========================================================== */
 
 
-!function( $ ) {
+!function ($) {
 
- "use strict"
+  "use strict"; // jshint ;_;
+
+
+ /* POPOVER PUBLIC CLASS DEFINITION
+  * =============================== */
 
   var Popover = function ( element, options ) {
     this.init('popover', element, options)
   }
+
 
   /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
      ========================================== */
@@ -1146,8 +1202,8 @@
         , title = this.getTitle()
         , content = this.getContent()
 
-      $tip.find('.popover-title')[ $.type(title) == 'object' ? 'append' : 'html' ](title)
-      $tip.find('.popover-content > *')[ $.type(content) == 'object' ? 'append' : 'html' ](content)
+      $tip.find('.popover-title')[this.isHTML(title) ? 'html' : 'text'](title)
+      $tip.find('.popover-content > *')[this.isHTML(content) ? 'html' : 'text'](content)
 
       $tip.removeClass('fade top bottom left right in')
     }
@@ -1164,12 +1220,10 @@
       content = $e.attr('data-content')
         || (typeof o.content == 'function' ? o.content.call($e[0]) :  o.content)
 
-      content = content.toString().replace(/(^\s*|\s*$)/, "")
-
       return content
     }
 
-  , tip: function() {
+  , tip: function () {
       if (!this.$tip) {
         this.$tip = $(this.options.template)
       }
@@ -1182,7 +1236,7 @@
  /* POPOVER PLUGIN DEFINITION
   * ======================= */
 
-  $.fn.popover = function ( option ) {
+  $.fn.popover = function (option) {
     return this.each(function () {
       var $this = $(this)
         , data = $this.data('popover')
@@ -1200,8 +1254,8 @@
   , template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'
   })
 
-}( window.jQuery );/* =============================================================
- * bootstrap-scrollspy.js v2.0.2
+}(window.jQuery);/* =============================================================
+ * bootstrap-scrollspy.js v2.0.4
  * http://twitter.github.com/bootstrap/javascript.html#scrollspy
  * =============================================================
  * Copyright 2012 Twitter, Inc.
@@ -1219,9 +1273,11 @@
  * limitations under the License.
  * ============================================================== */
 
-!function ( $ ) {
 
-  "use strict"
+!function ($) {
+
+  "use strict"; // jshint ;_;
+
 
   /* SCROLLSPY CLASS DEFINITION
    * ========================== */
@@ -1235,7 +1291,7 @@
     this.selector = (this.options.target
       || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
       || '') + ' .nav li > a'
-    this.$body = $('body').on('click.scroll.data-api', this.selector, process)
+    this.$body = $('body')
     this.refresh()
     this.process()
   }
@@ -1245,24 +1301,42 @@
       constructor: ScrollSpy
 
     , refresh: function () {
-        this.targets = this.$body
+        var self = this
+          , $targets
+
+        this.offsets = $([])
+        this.targets = $([])
+
+        $targets = this.$body
           .find(this.selector)
           .map(function () {
-            var href = $(this).attr('href')
-            return /^#\w/.test(href) && $(href).length ? href : null
+            var $el = $(this)
+              , href = $el.data('target') || $el.attr('href')
+              , $href = /^#\w/.test(href) && $(href)
+            return ( $href
+              && href.length
+              && [[ $href.position().top, href ]] ) || null
           })
-
-        this.offsets = $.map(this.targets, function (id) {
-          return $(id).position().top
-        })
+          .sort(function (a, b) { return a[0] - b[0] })
+          .each(function () {
+            self.offsets.push(this[0])
+            self.targets.push(this[1])
+          })
       }
 
     , process: function () {
         var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
+          , scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
+          , maxScroll = scrollHeight - this.$scrollElement.height()
           , offsets = this.offsets
           , targets = this.targets
           , activeTarget = this.activeTarget
           , i
+
+        if (scrollTop >= maxScroll) {
+          return activeTarget != (i = targets.last()[0])
+            && this.activate ( i )
+        }
 
         for (i = offsets.length; i--;) {
           activeTarget != targets[i]
@@ -1274,21 +1348,27 @@
 
     , activate: function (target) {
         var active
+          , selector
 
         this.activeTarget = target
 
-        this.$body
-          .find(this.selector).parent('.active')
+        $(this.selector)
+          .parent('.active')
           .removeClass('active')
 
-        active = this.$body
-          .find(this.selector + '[href="' + target + '"]')
+        selector = this.selector
+          + '[data-target="' + target + '"],'
+          + this.selector + '[href="' + target + '"]'
+
+        active = $(selector)
           .parent('li')
           .addClass('active')
 
-        if ( active.parent('.dropdown-menu') )  {
-          active.closest('li.dropdown').addClass('active')
+        if (active.parent('.dropdown-menu'))  {
+          active = active.closest('li.dropdown').addClass('active')
         }
+
+        active.trigger('activate')
       }
 
   }
@@ -1324,8 +1404,8 @@
     })
   })
 
-}( window.jQuery );/* ========================================================
- * bootstrap-tab.js v2.0.2
+}(window.jQuery);/* ========================================================
+ * bootstrap-tab.js v2.0.4
  * http://twitter.github.com/bootstrap/javascript.html#tabs
  * ========================================================
  * Copyright 2012 Twitter, Inc.
@@ -1344,9 +1424,10 @@
  * ======================================================== */
 
 
-!function( $ ){
+!function ($) {
 
-  "use strict"
+  "use strict"; // jshint ;_;
+
 
  /* TAB CLASS DEFINITION
   * ==================== */
@@ -1365,6 +1446,7 @@
         , selector = $this.attr('data-target')
         , previous
         , $target
+        , e
 
       if (!selector) {
         selector = $this.attr('href')
@@ -1375,10 +1457,13 @@
 
       previous = $ul.find('.active a').last()[0]
 
-      $this.trigger({
-        type: 'show'
-      , relatedTarget: previous
+      e = $.Event('show', {
+        relatedTarget: previous
       })
+
+      $this.trigger(e)
+
+      if (e.isDefaultPrevented()) return
 
       $target = $(selector)
 
@@ -1453,8 +1538,8 @@
     })
   })
 
-}( window.jQuery );/* =============================================================
- * bootstrap-typeahead.js v2.0.2
+}(window.jQuery);/* =============================================================
+ * bootstrap-typeahead.js v2.0.4
  * http://twitter.github.com/bootstrap/javascript.html#typeahead
  * =============================================================
  * Copyright 2012 Twitter, Inc.
@@ -1472,16 +1557,22 @@
  * limitations under the License.
  * ============================================================ */
 
-!function( $ ){
 
-  "use strict"
+!function($){
 
-  var Typeahead = function ( element, options ) {
+  "use strict"; // jshint ;_;
+
+
+ /* TYPEAHEAD PUBLIC CLASS DEFINITION
+  * ================================= */
+
+  var Typeahead = function (element, options) {
     this.$element = $(element)
     this.options = $.extend({}, $.fn.typeahead.defaults, options)
     this.matcher = this.options.matcher || this.matcher
     this.sorter = this.options.sorter || this.sorter
     this.highlighter = this.options.highlighter || this.highlighter
+    this.updater = this.options.updater || this.updater
     this.$menu = $(this.options.menu).appendTo('body')
     this.source = this.options.source
     this.shown = false
@@ -1494,9 +1585,14 @@
 
   , select: function () {
       var val = this.$menu.find('.active').attr('data-value')
-      this.$element.val(val)
-      this.$element.change();
+      this.$element
+        .val(this.updater(val))
+        .change()
       return this.hide()
+    }
+
+  , updater: function (item) {
+      return item
     }
 
   , show: function () {
@@ -1532,7 +1628,7 @@
       }
 
       items = $.grep(this.source, function (item) {
-        if (that.matcher(item)) return item
+        return that.matcher(item)
       })
 
       items = this.sorter(items)
@@ -1564,7 +1660,8 @@
     }
 
   , highlighter: function (item) {
-      return item.replace(new RegExp('(' + this.query + ')', 'ig'), function ($1, match) {
+      var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
+      return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
         return '<strong>' + match + '</strong>'
       })
     }
@@ -1656,11 +1753,13 @@
           break
 
         case 38: // up arrow
+          if (e.type != 'keydown') break
           e.preventDefault()
           this.prev()
           break
 
         case 40: // down arrow
+          if (e.type != 'keydown') break
           e.preventDefault()
           this.next()
           break
@@ -1691,7 +1790,7 @@
   /* TYPEAHEAD PLUGIN DEFINITION
    * =========================== */
 
-  $.fn.typeahead = function ( option ) {
+  $.fn.typeahead = function (option) {
     return this.each(function () {
       var $this = $(this)
         , data = $this.data('typeahead')
@@ -1723,4 +1822,4 @@
     })
   })
 
-}( window.jQuery );
\ No newline at end of file
+}(window.jQuery);
\ No newline at end of file
diff --git a/resources/gitblit.css b/resources/gitblit.css
index 7aa208e..e2a4941 100644
--- a/resources/gitblit.css
+++ b/resources/gitblit.css
@@ -40,8 +40,16 @@
 	color: #0069D6;
 }
 
-.navbar {
-	height:40px !important;
+.navbar .brand {
+	padding: 7px 20px;
+}
+
+.navbar .pull-right {
+	margin: 0;
+}
+
+.navbar ul.nav {
+	margin: 0 !important;
 }
 
 .navbar ul.nav li a {
@@ -52,10 +60,14 @@
 
 .navbar ul.nav li a:hover {
 	color: #abd4ff !important;
+	text-decoration: underline;
+}
+
+.navbar .nav .active > a:hover {
+	text-decoration: underline;
 }
 
 .navbar-inner {
-	height:40px !important;
 	background-color:#000050;
 	background-repeat:repeat-x;
 	background-image:-khtml-gradient(linear, left top, left bottom, from(#000060), to(#000040));
@@ -77,6 +89,7 @@
 	background-image: url(arrow_page.png);
 	background-position: center bottom;
 	outline: 0;
+	padding-bottom:1px;
 }
 
 .navbar .active a {
@@ -811,7 +824,7 @@
 }
 
 td.date {
-	/*font-style: italic !important;*/	
+	/*font-style: italic !important;*/
 }
 
 span.sha1, span.sha1 a, span.sha1 a span, pre.commit_message {
diff --git a/src/com/gitblit/utils/ActivityUtils.java b/src/com/gitblit/utils/ActivityUtils.java
index d603a49..718ca90 100644
--- a/src/com/gitblit/utils/ActivityUtils.java
+++ b/src/com/gitblit/utils/ActivityUtils.java
@@ -151,12 +151,12 @@
 	 * @param email
 	 *            address to query Gravatar
 	 * @param width
-	 *            size of thumbnail. if width <= 0, the defalt of 60 is used.
+	 *            size of thumbnail. if width <= 0, the default of 50 is used.
 	 * @return
 	 */
 	public static String getGravatarThumbnailUrl(String email, int width) {
 		if (width <= 0) {
-			width = 60;
+			width = 50;
 		}
 		String emailHash = StringUtils.getMD5(email);
 		String url = MessageFormat.format(
diff --git a/src/com/gitblit/wicket/pages/ActivityPage.html b/src/com/gitblit/wicket/pages/ActivityPage.html
index 9db6330..ab8a53a 100644
--- a/src/com/gitblit/wicket/pages/ActivityPage.html
+++ b/src/com/gitblit/wicket/pages/ActivityPage.html
@@ -8,10 +8,10 @@
 	<div class="pageTitle">
 		<h2><wicket:message key="gb.recentActivity"></wicket:message><small> / <span wicket:id="subheader">[days back]</span></small></h2>
 	</div>
-	<div style="height: 155px;text-align: center;">
+	<div class="hidden-phone" style="height: 155px;text-align: center;">
 		<table>
 		<tr>
-		<td><span id="chartDaily"></span></td>
+		<td><span class="hidden-tablet" id="chartDaily"></span></td>
 		<td><span id="chartRepositories"></span></td>
 		<td><span id="chartAuthors"></span></td>
 		</tr>
diff --git a/src/com/gitblit/wicket/pages/BasePage.html b/src/com/gitblit/wicket/pages/BasePage.html
index 6eefa17..1279d44 100644
--- a/src/com/gitblit/wicket/pages/BasePage.html
+++ b/src/com/gitblit/wicket/pages/BasePage.html
@@ -8,14 +8,10 @@
 	<wicket:head>
 		<meta name="viewport" content="width=device-width, initial-scale=1.0">
    		<title wicket:id="title">[page title]</title>
-		<link rel="stylesheet" href="bootstrap/css/bootstrap.css"/>
-		<link rel="stylesheet" type="text/css" href="gitblit.css"/>
-		<!-- Responsive CSS must be included after the above body css! -->
-		<!-- <link rel="stylesheet" href="bootstrap/css/bootstrap-responsive.css"/> -->
 		<link rel="icon" href="gitblt-favicon.png" type="image/png" />
 		
-		<script type="text/javascript" src="bootstrap/js/jquery.js"></script>
-		<script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>		
+		<link rel="stylesheet" href="bootstrap/css/bootstrap.css"/>
+		<link rel="stylesheet" type="text/css" href="gitblit.css"/>
 	</wicket:head>
 
 	<body>
@@ -34,7 +30,23 @@
 				<div wicket:id="userPanel">[user panel]</div>
 			</footer>
 		</div>
+
+		<!-- Override Bootstrap's responsive menu background highlighting -->
+		<style>
+		@media (max-width: 979px) {
+			.nav-collapse .nav > li > a:hover, .nav-collapse .dropdown-menu a:hover {
+				background-color: #000070;
+			}
+			
+			.navbar div > ul .dropdown-menu li a {
+				color: #ccc;
+			}
+		}
+		</style>
 		
+		<!-- Include scripts at end for faster page loading -->
+		<script type="text/javascript" src="bootstrap/js/jquery.js"></script>
+		<script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>		
 	</body>
 	
 	<!-- user fragment -->
diff --git a/src/com/gitblit/wicket/pages/BasePage.java b/src/com/gitblit/wicket/pages/BasePage.java
index 94ed633..31da3a6 100644
--- a/src/com/gitblit/wicket/pages/BasePage.java
+++ b/src/com/gitblit/wicket/pages/BasePage.java
@@ -27,6 +27,7 @@
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.RestartResponseAtInterceptPageException;
 import org.apache.wicket.RestartResponseException;
+import org.apache.wicket.markup.html.CSSPackageResource;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
@@ -57,15 +58,23 @@
 	public BasePage() {
 		super();
 		logger = LoggerFactory.getLogger(getClass());
+		customizeHeader();
 		loginByCookie();
 	}
 
 	public BasePage(PageParameters params) {
 		super(params);
 		logger = LoggerFactory.getLogger(getClass());
+		customizeHeader();
 		loginByCookie();
 	}
 	
+	private void customizeHeader() {
+		if (GitBlit.getBoolean(Keys.web.useResponsiveLayout, true)) {
+			add(CSSPackageResource.getHeaderContribution("bootstrap/css/bootstrap-responsive.css"));
+		}
+	}
+	
 	@Override
 	protected void onBeforeRender() {
 		if (GitBlit.isDebugMode()) {
diff --git a/src/com/gitblit/wicket/pages/CommitDiffPage.html b/src/com/gitblit/wicket/pages/CommitDiffPage.html
index 610b017..a0fb559 100644
--- a/src/com/gitblit/wicket/pages/CommitDiffPage.html
+++ b/src/com/gitblit/wicket/pages/CommitDiffPage.html
@@ -27,7 +27,7 @@
 		<tr wicket:id="changedPath">
 			<td class="changeType"><span wicket:id="changeType">[change type]</span></td>		
 			<td class="path"><span wicket:id="pathName">[commit path]</span></td>			
-			<td class="rightAlign">
+			<td class="hidden-phone rightAlign">
 				<span class="link">
 					<a wicket:id="patch"><wicket:message key="gb.patch"></wicket:message></a> | <a wicket:id="view"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="blame"><wicket:message key="gb.blame"></wicket:message></a> | <a wicket:id="history"><wicket:message key="gb.history"></wicket:message></a>
 				</span>
diff --git a/src/com/gitblit/wicket/pages/CommitPage.html b/src/com/gitblit/wicket/pages/CommitPage.html
index a6af2d3..9555ddd 100644
--- a/src/com/gitblit/wicket/pages/CommitPage.html
+++ b/src/com/gitblit/wicket/pages/CommitPage.html
@@ -15,9 +15,10 @@
 	<!-- commit header -->
 	<div wicket:id="commitHeader">[commit header]</div>
 	
-	<!--  Author Gravatar -->
-	<span style="float:right;vertical-align: top;" wicket:id="authorAvatar" />
+	<div class="row">
 	
+	
+	<div class="span10">
 	<!-- commit info -->
 	<table class="plain">
 		<tr><th><wicket:message key="gb.refs">refs</wicket:message></th><td><div wicket:id="refsPanel">[references]</div></td></tr>
@@ -43,6 +44,9 @@
 			</td>
 		</tr>
 	</table>
+	</div>
+	
+	</div>
 	
 	<!-- full message -->
 	<pre class="commit_message" wicket:id="fullMessage">[commit message]</pre>
@@ -74,7 +78,7 @@
 		<tr wicket:id="changedPath">
 			<td class="changeType"><span wicket:id="changeType">[change type]</span></td>
 			<td class="path"><span wicket:id="pathName">[commit path]</span></td>			
-			<td class="rightAlign">
+			<td class="hidden-phone rightAlign">
 				<span class="link">
 					<a wicket:id="diff"><wicket:message key="gb.diff"></wicket:message></a> | <a wicket:id="view"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="blame"><wicket:message key="gb.blame"></wicket:message></a> | <a wicket:id="history"><wicket:message key="gb.history"></wicket:message></a>
 				</span>
diff --git a/src/com/gitblit/wicket/pages/CommitPage.java b/src/com/gitblit/wicket/pages/CommitPage.java
index 1fd2653..0e250b8 100644
--- a/src/com/gitblit/wicket/pages/CommitPage.java
+++ b/src/com/gitblit/wicket/pages/CommitPage.java
@@ -82,7 +82,6 @@
 		add(createPersonPanel("commitAuthor", c.getAuthorIdent(), Constants.SearchType.AUTHOR));
 		add(WicketUtils.createTimestampLabel("commitAuthorDate", c.getAuthorIdent().getWhen(),
 				getTimeZone()));
-		add(new GravatarImage("authorAvatar", c.getAuthorIdent()));
 		
 		// committer
 		add(createPersonPanel("commitCommitter", c.getCommitterIdent(), Constants.SearchType.COMMITTER));
diff --git a/src/com/gitblit/wicket/pages/LuceneSearchPage.html b/src/com/gitblit/wicket/pages/LuceneSearchPage.html
index fab9ddd..d6c7622 100644
--- a/src/com/gitblit/wicket/pages/LuceneSearchPage.html
+++ b/src/com/gitblit/wicket/pages/LuceneSearchPage.html
@@ -17,8 +17,8 @@
 	<div class="pageTitle">
 		<h2><wicket:message key="gb.search"></wicket:message></h2>
 	</div>
-	<form class="form-inline" style="margin:0px;" wicket:id="searchForm">
-		<div class="row-fluid">
+	<form class="form-inline" wicket:id="searchForm">
+		<div class="row">
 			<div class="span3">
 				<h3><wicket:message key="gb.repositories"></wicket:message></h3>
 				<select wicket:id="repositories" ></select>
diff --git a/src/com/gitblit/wicket/pages/RepositoryPage.html b/src/com/gitblit/wicket/pages/RepositoryPage.html
index 169d4f0..f4ff638 100644
--- a/src/com/gitblit/wicket/pages/RepositoryPage.html
+++ b/src/com/gitblit/wicket/pages/RepositoryPage.html
@@ -21,30 +21,32 @@
 				
 					<div class="nav-collapse" wicket:id="navPanel"></div>
 				
-					<a class="brand" style="text-decoration: none;" wicket:id="syndication">
+					<a class="hidden-phone hidden-tablet brand" style="text-decoration: none;" wicket:id="syndication">
 						<img style="border:0px;vertical-align:middle;" src="feed_16x16.png"></img>
 					</a>
 				
-						<form class="pull-right" style="margin-top:7px;" wicket:id="searchForm">
-							<span class="search">
-								<select class="small" wicket:id="searchType"/>			
-								<input type="text" id="searchBox" wicket:id="searchBox" value=""/>
-							</span>
-						</form>
+					<form class="hidden-phone hidden-tablet pull-right" style="margin-top:7px;" wicket:id="searchForm">
+						<span class="search">
+							<select class="small" wicket:id="searchType"/>			
+							<input type="text" id="searchBox" wicket:id="searchBox" value=""/>
+						</span>
+					</form>
 				</div>
 			</div>
 		</div>
 				
 		<!-- page content -->
 		<div class="container">
-			<div style="text-align:center;padding-top:5px;" wicket:id="feedback">[Feedback Panel]</div>
+			<div style="text-align:center;" wicket:id="feedback">[Feedback Panel]</div>
 
 			<!-- page header -->
 			<div class="pageTitle">
-				
-				<span wicket:id="workingCopy"></span>
-				
-				<h2><span wicket:id="repositoryName">[repository name]</span> <small><span wicket:id="pageName">[page name]</span></small></h2>
+				<div class="row">
+					<div wicket:id="workingCopy"></div>
+					<div class="span9">
+						<h2><span wicket:id="repositoryName">[repository name]</span> <small><span wicket:id="pageName">[page name]</span></small></h2>
+					</div>
+				</div>
 			</div>
 
 			<wicket:child />
diff --git a/src/com/gitblit/wicket/pages/RepositoryPage.java b/src/com/gitblit/wicket/pages/RepositoryPage.java
index 3f57fbf..d6cc51c 100644
--- a/src/com/gitblit/wicket/pages/RepositoryPage.java
+++ b/src/com/gitblit/wicket/pages/RepositoryPage.java
@@ -153,7 +153,7 @@
 	protected void setupPage(String repositoryName, String pageName) {
 		add(new LinkPanel("repositoryName", null, StringUtils.stripDotGit(repositoryName),
 				SummaryPage.class, WicketUtils.newRepositoryParameter(repositoryName)));
-		add(new Label("pageName", pageName));
+		add(new Label("pageName", pageName).setRenderBodyOnly(true));
 		if (getRepositoryModel().isBare) {
 			add(new Label("workingCopy").setVisible(false));
 		} else {
diff --git a/src/com/gitblit/wicket/pages/RootPage.html b/src/com/gitblit/wicket/pages/RootPage.html
index f1bc4de..5c92f90 100644
--- a/src/com/gitblit/wicket/pages/RootPage.html
+++ b/src/com/gitblit/wicket/pages/RootPage.html
@@ -19,21 +19,21 @@
 				
 				<div class="nav-collapse" wicket:id="navPanel"></div>
 				
-				<form class="pull-right" style="margin-top:5px;" wicket:id="loginForm">
+				<form class="pull-right" wicket:id="loginForm">
 					<span class="form-search">
 						<input wicket:id="username" class="input-small" type="text" />
 						<input wicket:id="password" class="input-small" type="password" />
-						<button class="btn btn-primary" style="margin-top:0px; "type="submit"><wicket:message key="gb.login"></wicket:message></button>
+						<button class="btn btn-primary" type="submit"><wicket:message key="gb.login"></wicket:message></button>
 					</span>
 				</form>
 			</div>
 		</div>
 	</div>
-	
-	<div style="text-align:center;padding-top:5px;" wicket:id="feedback">[Feedback Panel]</div>
-	
+				
 	<!-- subclass content -->
 	<div class="container">
+		<div style="text-align:center" wicket:id="feedback">[Feedback Panel]</div>
+		
 		<wicket:child/>
 	</div>
 </wicket:extend>
diff --git a/src/com/gitblit/wicket/pages/SummaryPage.html b/src/com/gitblit/wicket/pages/SummaryPage.html
index 0ab0857..16e8aca 100644
--- a/src/com/gitblit/wicket/pages/SummaryPage.html
+++ b/src/com/gitblit/wicket/pages/SummaryPage.html
@@ -8,7 +8,7 @@
 	
 	<div style="clear:both;">
 		<!-- Repository Activity Chart -->	
-		<div style="float:right;">
+		<div class="hidden-phone" style="float:right;">
 			<img class="activityGraph" wicket:id="commitsChart" />
 		</div>	
 	
@@ -17,8 +17,8 @@
 			<table class="plain">
 				<tr><th><wicket:message key="gb.description">[description]</wicket:message></th><td><span wicket:id="repositoryDescription">[repository description]</span></td></tr>
 				<tr><th><wicket:message key="gb.owner">[owner]</wicket:message></th><td><span wicket:id="repositoryOwner">[repository owner]</span></td></tr>
-				<tr><th><wicket:message key="gb.lastChange">[last change]</wicket:message></th><td><span wicket:id="repositoryLastChange">[repository last change]</span></td></tr>
-				<tr><th><wicket:message key="gb.stats">[stats]</wicket:message></th><td><span wicket:id="branchStats">[branch stats]</span> <span class="link"><a wicket:id="metrics"><wicket:message key="gb.metrics">[metrics]</wicket:message></a></span></td></tr>
+				<tr class="hidden-phone"><th><wicket:message key="gb.lastChange">[last change]</wicket:message></th><td><span wicket:id="repositoryLastChange">[repository last change]</span></td></tr>
+				<tr class="hidden-phone"><th><wicket:message key="gb.stats">[stats]</wicket:message></th><td><span wicket:id="branchStats">[branch stats]</span> <span class="link"><a wicket:id="metrics"><wicket:message key="gb.metrics">[metrics]</wicket:message></a></span></td></tr>
 				<tr><th valign="middle"><wicket:message key="gb.repositoryUrl">[URL]</wicket:message></th><td><img style="vertical-align: middle;" wicket:id="accessRestrictionIcon" /><span wicket:id="repositoryCloneUrl">[repository clone url]</span><div wicket:id="otherUrls" style="margin-left:20px;"></div></td></tr>
 			</table>
 		</div>
diff --git a/src/com/gitblit/wicket/pages/SummaryPage.java b/src/com/gitblit/wicket/pages/SummaryPage.java
index 8e145c8..ef2ee55 100644
--- a/src/com/gitblit/wicket/pages/SummaryPage.java
+++ b/src/com/gitblit/wicket/pages/SummaryPage.java
@@ -189,7 +189,7 @@
 				&& GitBlit.getBoolean(Keys.web.generateActivityGraph, true)) {
 			IChartData data = WicketUtils.getChartData(metrics);
 
-			ChartProvider provider = new ChartProvider(new Dimension(340, 100), ChartType.LINE,
+			ChartProvider provider = new ChartProvider(new Dimension(290, 100), ChartType.LINE,
 					data);
 			ChartAxis dateAxis = new ChartAxis(ChartAxisType.BOTTOM);
 			dateAxis.setLabels(new String[] { metrics.get(0).name,
diff --git a/src/com/gitblit/wicket/pages/TreePage.html b/src/com/gitblit/wicket/pages/TreePage.html
index 8d706ee..7e7f1fa 100644
--- a/src/com/gitblit/wicket/pages/TreePage.html
+++ b/src/com/gitblit/wicket/pages/TreePage.html
@@ -24,7 +24,7 @@
 			<td class="icon"><img wicket:id="pathIcon" /></td>
 			<td><span wicket:id="pathName"></span></td>			
 			<td class="size"><span wicket:id="pathSize">[path size]</span></td>
-			<td class="mode"><span wicket:id="pathPermissions">[path permissions]</span></td>
+			<td class="hidden-phone mode"><span wicket:id="pathPermissions">[path permissions]</span></td>
 			<td class="treeLinks"><span wicket:id="pathLinks">[path links]</span></td>
 		</tr>
 	</table>
diff --git a/src/com/gitblit/wicket/panels/ActivityPanel.html b/src/com/gitblit/wicket/panels/ActivityPanel.html
index 41541df..eb2269b 100644
--- a/src/com/gitblit/wicket/panels/ActivityPanel.html
+++ b/src/com/gitblit/wicket/panels/ActivityPanel.html
@@ -11,11 +11,11 @@
 		<div class="header"><i class="icon-refresh" style="vertical-align: middle;"></i> <span style="font-weight:bold;" wicket:id="title">[title]</span></div>
 		<table class="activity">
 			<tr wicket:id="commit">
-				<td class="date" style="width:60px; vertical-align: middle;text-align: right;padding-right:10px;" ><span wicket:id="time">[time of day]</span></td>
+				<td class="hidden-phone date" style="width:60px; vertical-align: middle;text-align: right;padding-right:10px;" ><span wicket:id="time">[time of day]</span></td>
 				<td style="width:10em;text-align:left;vertical-align: middle;">
 					<span wicket:id="repository" class="repositorySwatch">[repository link]</span>
 				</td>
-				<td style="width:30px;vertical-align: middle;"><span wicket:id="avatar" style="vertical-align: middle;"></span></td>
+				<td class="hidden-phone" style="width:30px;vertical-align: middle;"><span wicket:id="avatar" style="vertical-align: middle;"></span></td>
 				<td style="vertical-align: middle;">
 					<img wicket:id="commitIcon" style="vertical-align: middle;"></img>
 					<span wicket:id="message">[shortlog commit link]</span><br/>
@@ -24,7 +24,7 @@
 				<td style="text-align:right;vertical-align: middle;">
 					<div wicket:id="commitRefs">[commit refs]</div>
 				</td>
-				<td class="rightAlign" style="width:7em;vertical-align: middle;">
+				<td class="hidden-phone rightAlign" style="width:7em;vertical-align: middle;">
         			<span class="link">
 						<a wicket:id="view" target="_blank"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="diff" target="_blank"><wicket:message key="gb.diff"></wicket:message></a> | <a wicket:id="tree" target="_blank"><wicket:message key="gb.tree"></wicket:message></a>
 					</span>
diff --git a/src/com/gitblit/wicket/panels/BranchesPanel.html b/src/com/gitblit/wicket/panels/BranchesPanel.html
index 114541f..1322eef 100644
--- a/src/com/gitblit/wicket/panels/BranchesPanel.html
+++ b/src/com/gitblit/wicket/panels/BranchesPanel.html
@@ -15,9 +15,9 @@
        		<tr wicket:id="branch">
          		<td class="date"><span wicket:id="branchDate">[branch date]</span></td>
          		<td><span wicket:id="branchName">[branch name]</span></td>
-         		<td class="author"><span wicket:id="branchAuthor">[branch author]</span></td>
-         		<td><span wicket:id="branchLog">[branch log]</span></td>
-         		<td class="rightAlign">
+         		<td class="hidden-phone hidden-tablet author"><span wicket:id="branchAuthor">[branch author]</span></td>
+         		<td class="hidden-phone"><span wicket:id="branchLog">[branch log]</span></td>
+         		<td class="hidden-phone rightAlign">
          			<span wicket:id="branchLinks"></span>
 				</td>
        		</tr>
diff --git a/src/com/gitblit/wicket/panels/CommitHeaderPanel.html b/src/com/gitblit/wicket/panels/CommitHeaderPanel.html
index e02fc25..9530440 100644
--- a/src/com/gitblit/wicket/panels/CommitHeaderPanel.html
+++ b/src/com/gitblit/wicket/panels/CommitHeaderPanel.html
@@ -6,10 +6,19 @@
 
 <wicket:panel>	
 	<div class="commitHeader">
-		<div style="float:right;">
-			<span wicket:id="author">[author]</span> &nbsp; &nbsp;<span wicket:id="date">[date]</span>
+		<div class="row">
+			<div>
+				<span class="pull-right" wicket:id="authorAvatar"></span>
+			</div>
+			<div class="span9">
+					<div wicket:id="shortmessage">[short message]</div>
+					<div wicket:id="author">[author]</div>
+					<div>
+			 			<span wicket:id="date">[date]</span>
+			 			<span class="hidden-phone" style="padding-left:20px;color:#888;" wicket:id="commitid">[commit id]</span>
+			 		</div>
+			</div>
 		</div>
-		<span wicket:id="shortmessage">[short message]</span> <span wicket:id="commitid">[commit id]</span>
 	</div>
 </wicket:panel>
 </html>
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/panels/CommitHeaderPanel.java b/src/com/gitblit/wicket/panels/CommitHeaderPanel.java
index da9b9ad..f411397 100644
--- a/src/com/gitblit/wicket/panels/CommitHeaderPanel.java
+++ b/src/com/gitblit/wicket/panels/CommitHeaderPanel.java
@@ -40,8 +40,9 @@
 		add(new LinkPanel("shortmessage", "title", StringUtils.trimString(c.getShortMessage(),
 				Constants.LEN_SHORTLOG), CommitPage.class,
 				WicketUtils.newObjectParameter(repositoryName, c.getName())));
-		add(new Label("commitid", "(" + c.getName().substring(0, 8) + ")"));
+		add(new Label("commitid", c.getName()));
 		add(new Label("author", c.getAuthorIdent().getName()));
 		add(WicketUtils.createDateLabel("date", c.getAuthorIdent().getWhen(), getTimeZone()));
+		add(new GravatarImage("authorAvatar", c.getAuthorIdent()));
 	}
 }
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/panels/HistoryPanel.html b/src/com/gitblit/wicket/panels/HistoryPanel.html
index 3ae8a8f..d81d948 100644
--- a/src/com/gitblit/wicket/panels/HistoryPanel.html
+++ b/src/com/gitblit/wicket/panels/HistoryPanel.html
@@ -18,9 +18,9 @@
        		<tr wicket:id="commit">
          		<td class="date"><span wicket:id="commitDate">[commit date]</span></td>
          		<td class="icon"><img wicket:id="commitIcon" /></td>
-         		<td class="author"><span wicket:id="commitAuthor">[commit author]</span></td>
+         		<td class="hidden-phone author"><span wicket:id="commitAuthor">[commit author]</span></td>
          		<td class="message"><table class="nestedTable"><tr><td><span style="vertical-align:middle;" wicket:id="commitShortMessage">[commit short message]</span></td><td><div style="text-align:right;" wicket:id="commitRefs">[commit refs]</div></td></tr></table></td>
-         		<td class="rightAlign">
+         		<td class="hidden-phone rightAlign">
          			<span wicket:id="historyLinks">[history links]</span>
 				</td>
        		</tr>
diff --git a/src/com/gitblit/wicket/panels/LinkPanel.java b/src/com/gitblit/wicket/panels/LinkPanel.java
index 1e54a90..688a957 100644
--- a/src/com/gitblit/wicket/panels/LinkPanel.java
+++ b/src/com/gitblit/wicket/panels/LinkPanel.java
@@ -83,7 +83,7 @@
 			WicketUtils.setCssClass(icon, bootstrapIcon);
 			link.add(icon);
 		}
-		link.add(new Label("label", labelModel));
+		link.add(new Label("label", labelModel).setRenderBodyOnly(true));
 		add(link);
 	}
 
diff --git a/src/com/gitblit/wicket/panels/LogPanel.html b/src/com/gitblit/wicket/panels/LogPanel.html
index 7036fa4..c5ae71c 100644
--- a/src/com/gitblit/wicket/panels/LogPanel.html
+++ b/src/com/gitblit/wicket/panels/LogPanel.html
@@ -12,11 +12,11 @@
 	<table class="pretty">
 		<tbody>
        		<tr wicket:id="commit">
-         		<td class="date"><span wicket:id="commitDate">[commit date]</span></td>
-         		<td class="author"><span wicket:id="commitAuthor">[commit author]</span></td>
-         		<td class="icon"><img wicket:id="commitIcon" /></td>
+         		<td class="date" style="width:6em;"><span wicket:id="commitDate">[commit date]</span></td>
+         		<td class="hidden-phone author"><span wicket:id="commitAuthor">[commit author]</span></td>
+         		<td class="hidden-phone icon"><img wicket:id="commitIcon" /></td>
          		<td class="message"><table class="nestedTable"><tr><td><span style="vertical-align:middle;" wicket:id="commitShortMessage">[commit short message]</span></td><td><div style="text-align:right;" wicket:id="commitRefs">[commit refs]</div></td></tr></table></td>
-         		<td class="rightAlign">
+         		<td class="hidden-phone hidden-tablet rightAlign">
          			<span class="link">
 						<a wicket:id="view"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="diff"><wicket:message key="gb.diff"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a>
 					</span>
diff --git a/src/com/gitblit/wicket/panels/RepositoriesPanel.html b/src/com/gitblit/wicket/panels/RepositoriesPanel.html
index e361a39..7e1f187 100644
--- a/src/com/gitblit/wicket/panels/RepositoriesPanel.html
+++ b/src/com/gitblit/wicket/panels/RepositoriesPanel.html
@@ -42,12 +42,12 @@
 				<img style="vertical-align: middle;" src="git-black-16x16.png"/>
 				<wicket:message key="gb.repository">Repository</wicket:message>
 			</th>
-			<th wicket:id="orderByDescription"><wicket:message key="gb.description">Description</wicket:message></th>
-			<th wicket:id="orderByOwner"><wicket:message key="gb.owner">Owner</wicket:message></th>
-			<th></th>
+			<th class="hidden-phone" wicket:id="orderByDescription"><wicket:message key="gb.description">Description</wicket:message></th>
+			<th class="hidden-tablet hidden-phone" wicket:id="orderByOwner"><wicket:message key="gb.owner">Owner</wicket:message></th>
+			<th class="hidden-phone"></th>
 			<th wicket:id="orderByDate"><wicket:message key="gb.lastChange">Last Change</wicket:message></th>
-			<th></th>
-			<th class="right"></th>
+			<th class="hidden-phone"></th>
+			<th class="hidden-phone right"></th>
 		</tr>
 	</wicket:fragment>
 	
@@ -57,12 +57,12 @@
 				<img style="vertical-align: middle;" src="git-black-16x16.png"/>
 				<wicket:message key="gb.repository">Repository</wicket:message>
 			</th>
-			<th><wicket:message key="gb.description">Description</wicket:message></th>
-			<th><wicket:message key="gb.owner">Owner</wicket:message></th>
-			<th></th>
+			<th class="hidden-phone" ><span><wicket:message key="gb.description">Description</wicket:message></span></th>
+			<th class="hidden-tablet hidden-phone"><span><wicket:message key="gb.owner">Owner</wicket:message></span></th>
+			<th class="hidden-phone"></th>
 			<th><wicket:message key="gb.lastChange">Last Change</wicket:message></th>
-			<th></th>
-			<th class="right"></th>
+			<th class="hidden-phone"></th>
+			<th class="hidden-phone right"></th>
 		</tr>
 	</wicket:fragment>
 	
@@ -72,12 +72,12 @@
 		
 	<wicket:fragment wicket:id="repositoryRow">
         <td class="left" style="padding-left:3px;" ><b><span class="repositorySwatch" wicket:id="repositorySwatch"></span></b> <span style="padding-left:3px;" wicket:id="repositoryName">[repository name]</span></td>
-        <td><div class="list" wicket:id="repositoryDescription">[repository description]</div></td>
-        <td class="author"><span wicket:id="repositoryOwner">[repository owner]</span></td>
-        <td style="text-align: right;padding-right:10px;"><img class="inlineIcon" wicket:id="ticketsIcon" /><img class="inlineIcon" wicket:id="docsIcon" /><img class="inlineIcon" wicket:id="frozenIcon" /><img class="inlineIcon" wicket:id="federatedIcon" /><img class="inlineIcon" wicket:id="accessRestrictionIcon" /></td>
+        <td class="hidden-phone"><span class="list" wicket:id="repositoryDescription">[repository description]</span></td>
+        <td class="hidden-tablet hidden-phone author"><span wicket:id="repositoryOwner">[repository owner]</span></td>
+        <td class="hidden-phone" style="text-align: right;padding-right:10px;"><img class="inlineIcon" wicket:id="ticketsIcon" /><img class="inlineIcon" wicket:id="docsIcon" /><img class="inlineIcon" wicket:id="frozenIcon" /><img class="inlineIcon" wicket:id="federatedIcon" /><img class="inlineIcon" wicket:id="accessRestrictionIcon" /></td>
         <td><span wicket:id="repositoryLastChange">[last change]</span></td>
-        <td style="text-align: right;padding-right:15px;"><span style="font-size:0.8em;" wicket:id="repositorySize">[repository size]</span></td>
-        <td class="rightAlign">
+        <td class="hidden-phone" style="text-align: right;padding-right:15px;"><span style="font-size:0.8em;" wicket:id="repositorySize">[repository size]</span></td>
+        <td class="hidden-phone rightAlign">
         	<span wicket:id="repositoryLinks"></span>
 			<a style="text-decoration: none;" wicket:id="syndication">
 				<img style="border:0px;vertical-align:middle;" src="feed_16x16.png"></img>
diff --git a/src/com/gitblit/wicket/panels/RepositoryUrlPanel.html b/src/com/gitblit/wicket/panels/RepositoryUrlPanel.html
index 22074bd..32f79de 100644
--- a/src/com/gitblit/wicket/panels/RepositoryUrlPanel.html
+++ b/src/com/gitblit/wicket/panels/RepositoryUrlPanel.html
@@ -5,7 +5,7 @@
       lang="en"> 
 
 <wicket:panel>
-	<span wicket:id="repositoryUrl" style="color: blue;">[repository url]</span><span wicket:id="copyFunction"></span>
+	<span wicket:id="repositoryUrl" style="color: blue;">[repository url]</span><span class="hidden-phone hidden-tablet" wicket:id="copyFunction"></span>
     
     <!-- Plain JavaScript manual copy & paste -->
     <wicket:fragment wicket:id="jsPanel">
diff --git a/src/com/gitblit/wicket/panels/TagsPanel.html b/src/com/gitblit/wicket/panels/TagsPanel.html
index 899f9cb..ba9f15d 100644
--- a/src/com/gitblit/wicket/panels/TagsPanel.html
+++ b/src/com/gitblit/wicket/panels/TagsPanel.html
@@ -14,9 +14,9 @@
     		<tr wicket:id="tag">
     			<td class="date"><span wicket:id="tagDate">[tag date]</span></td>    			
     			<td><b><span wicket:id="tagName">[tag name]</span></b></td>
-    			<td class="icon"><img wicket:id="tagIcon" /></td>
-    			<td><span wicket:id="tagDescription">[tag description]</span></td>
-    			<td class="rightAlign">
+    			<td class="hidden-phone icon"><img wicket:id="tagIcon" /></td>
+    			<td class="hidden-phone"><span wicket:id="tagDescription">[tag description]</span></td>
+    			<td class="hidden-phone rightAlign">
     				<span wicket:id="tagLinks"></span>
 				</td>
     		</tr>
diff --git a/src/com/gitblit/wicket/panels/UsersPanel.html b/src/com/gitblit/wicket/panels/UsersPanel.html
index 0b7dd51..24911cd 100644
--- a/src/com/gitblit/wicket/panels/UsersPanel.html
+++ b/src/com/gitblit/wicket/panels/UsersPanel.html
@@ -15,19 +15,19 @@
 				<img style="vertical-align: middle; border: 1px solid #888; background-color: white;" src="user_16x16.png"/>
 				<wicket:message key="gb.users">[users]</wicket:message>
 			</th>
-			<th class="left"><wicket:message key="gb.displayName">[display name]</wicket:message></th>
+			<th class="hidden-phone hidden-tablet left"><wicket:message key="gb.displayName">[display name]</wicket:message></th>
 			<th style="width:120px;"><wicket:message key="gb.accessLevel">[access level]</wicket:message></th>
 			<th style="width:140px;"><wicket:message key="gb.teamMemberships">[team memberships]</wicket:message></th>
-			<th style="width:100px;"><wicket:message key="gb.repositories">[repositories]</wicket:message></th>
+			<th class="hidden-phone" style="width:100px;"><wicket:message key="gb.repositories">[repositories]</wicket:message></th>
 			<th style="width:80px;" class="right"></th>
 		</tr>
 		<tbody>		
        		<tr wicket:id="userRow">
        			<td class="left" ><span class="list" wicket:id="username">[username]</span></td>
-       			<td class="left" ><span class="list" wicket:id="displayName">[display name]</span></td>
+       			<td class="hidden-phone hidden-tablet left" ><span class="list" wicket:id="displayName">[display name]</span></td>
        			<td class="left" ><span class="list" wicket:id="accesslevel">[access level]</span></td>
        			<td class="left" ><span class="list" wicket:id="teams">[team memberships]</span></td>
-       			<td class="left" ><span class="list" wicket:id="repositories">[repositories]</span></td>
+       			<td class="hidden-phone left" ><span class="list" wicket:id="repositories">[repositories]</span></td>
        			<td class="rightAlign"><span wicket:id="userLinks"></span></td>      			
        		</tr>
     	</tbody>

--
Gitblit v1.9.1