diff --git a/app/soc/content/less/gci/account_deletion.less b/app/soc/content/less/gci/account_deletion.less
index 96e2d99..0ef921d 100644
--- a/app/soc/content/less/gci/account_deletion.less
+++ b/app/soc/content/less/gci/account_deletion.less
@@ -1,7 +1,7 @@
 .delete-info {
-    color: #000;
+  color: #000;
 }
 
 .moderate-delete-message {
-    padding: 10px 0 10px 0;
+  padding: 10px 0 10px 0;
 }
diff --git a/app/soc/content/less/gci/style_avatar_picker.less b/app/soc/content/less/gci/style_avatar_picker.less
index 861e5d6..56c97fd 100644
--- a/app/soc/content/less/gci/style_avatar_picker.less
+++ b/app/soc/content/less/gci/style_avatar_picker.less
@@ -1,29 +1,33 @@
 #avatar-preview {
   background: #fff;
   border: 1px solid #c5c5c5;
-    -moz-border-radius: 3px;
-    -webkit-border-radius: 3px;
-    border-radius: 3px;
+  border-radius: 3px;
+  -moz-border-radius: 3px;
+  -webkit-border-radius: 3px;
   float: left;
   height: 80px;
   padding: 5px;
   width: 80px;
 }
+
 #avatar-picker-container {
   float: left;
   margin-left: 10px;
 }
+
 #avatar-picker {
   float: left;
 }
+
 #avatar-color-picker {
-  float: left;
   clear: left;
+  float: left;
   margin-top: 10px;
 }
+
 span.current-avatar-text {
   color: #656565;
   display: block;
-  margin: 5px 0 5px 0;
   font-size: 14px;
+  margin: 5px 0 5px 0;
 }
diff --git a/app/soc/content/less/gci/style_forms.less b/app/soc/content/less/gci/style_forms.less
index 5746ae3..b11a05b 100644
--- a/app/soc/content/less/gci/style_forms.less
+++ b/app/soc/content/less/gci/style_forms.less
@@ -1,187 +1,270 @@
 .block-form {
-    background: #e0e0e0 url(@image_block_form_bg) 0 0 repeat-x;
-    border: 1px solid #b4b4b4;
-    padding: 13px 20px;
+  background: #e0e0e0 url(@image_block_form_bg) 0 0 repeat-x;
+  border: 1px solid #b4b4b4;
+  padding: 13px 20px;
 }
-    .block-form-title {
-        margin-bottom: 15px;
-    }
-        .block-form-title .title {
-            color: #c53926;
-            font-family: 'Oswald', sans-serif;
-            font-size: 38px;
-            line-height: 40px;
-            text-transform: uppercase;
-        }
-        .block-form-title .req {
-            color: #d5620e;
-            font-size: 10px;
-            font-style: italic;
-            font-weight: bold;
-            line-height: 13px;
-            padding-left: 15px;
-            vertical-align: top;
-        }
+
+.block-form-title {
+  margin-bottom: 15px;
+
+  .title {
+    color: #c53926;
+    font-family: 'Oswald', sans-serif;
+    font-size: 38px;
+    line-height: 40px;
+    text-transform: uppercase;
+  }
+
+  .req {
+    color: #d5620e;
+    font-size: 10px;
+    font-style: italic;
+    font-weight: bold;
+    line-height: 13px;
+    padding-left: 15px;
+    vertical-align: top;
+  }
+}
 
 form {
-
-}
-form fieldset {
-  margin-bottom: 15px;
-  position: relative;
-}
-form fieldset legend {
-    display: block;
-    float: left;
-    height: 36px;
-    position: relative;
-    width: 100%;
-}
-  form fieldset legend span {
-    color: #0f649d;
-    font-family: "Trebuchet MS", "Lucida Sans Unicode", "Lucida Grande", "Lucida Sans", Arial, sans-serif;
-    font-size: 25px;
-    font-weight: bold;
-    line-height: 32px;
-    position: absolute;
-    top: 0;
-    left: 2px;
-  }
-.form-row {/*Default form row styles*/
-    color: #666;
-    font-family: "Trebuchet MS", "Lucida Sans Unicode", "Lucida Grande", "Lucida Sans", Arial, sans-serif;
-    font-size: 13px;
-    line-height: 15px;
+  fieldset {
     margin-bottom: 15px;
-    width: 100%;
+    position: relative;
+
+    legend {
+      display: block;
+      float: left;
+      height: 36px;
+      position: relative;
+      width: 100%;
+
+      span {
+        color: #0f649d;
+        font-family: "Trebuchet MS", "Lucida Sans Unicode", "Lucida Grande", "Lucida Sans", Arial, sans-serif;
+        font-size: 25px;
+        font-weight: bold;
+        left: 2px;
+        line-height: 32px;
+        position: absolute;
+        top: 0;
+      }
+    }
+  }
 }
-  .form-row:last-child {
+
+.form-row {
+  /*Default form row styles*/
+  color: #666;
+  font-family: "Trebuchet MS", "Lucida Sans Unicode", "Lucida Grande", "Lucida Sans", Arial, sans-serif;
+  font-size: 13px;
+  line-height: 15px;
+  margin-bottom: 15px;
+  width: 100%;
+
+  &:last-child {
     margin-bottom: 0;
   }
-    .form-row .add-field-link {
-        clear: both;
-        display: block;
-        padding: 4px 0 0 4px;
+
+  .add-field-link {
+    clear: both;
+    display: block;
+    padding: 4px 0 0 4px;
+
+    a {
+      color: #238bd2;
     }
-        .form-row .add-field-link a {
-            color: #238bd2;
-        }
-    .form-row label.form-label {/*Default form label*/
-        color: #0f649d;
-        display: block;
-        font-family: "Trebuchet MS", "Lucida Sans Unicode", "Lucida Grande", "Lucida Sans", Arial, sans-serif;
-        font-size: 18px;
-        line-height: 22px;
-        padding: 0 0 0 2px;
-    }
-    .form-row label.form-label em {/*Required asterisk*/
+  }
+
+  label {
+    &.form-label {
+      /*Default form label*/
+      color: #0f649d;
+      display: block;
+      font-family: "Trebuchet MS", "Lucida Sans Unicode", "Lucida Grande", "Lucida Sans", Arial, sans-serif;
+      font-size: 18px;
+      line-height: 22px;
+      padding: 0 0 0 2px;
+
+      em {
+        /*Required asterisk*/
         color: #d5620e;
         font-family: Arial, "Helvetica Neue", "Liberation Sans", FreeSans, sans-serif;
         font-size: 12px;
         font-style: italic;
         font-weight: bold;
         vertical-align: top;
+      }
     }
-    .form-row .note {/*Default form note*/
-        color: #d5620e;
-        display: block;
-        font-size: 10px;
-        font-style: italic;
-        font-weight: bold;
-        padding-left: 2px;
-    }
-    .form-row input[type=text],
-    .form-row textarea {
-        background: #f6f6f6;
-        border: 1px solid #d2d2d2;
-            box-shadow: inset 2px 2px 5px rgba(0, 0, 0, .09);
-            -webkit-box-shadow: inset 2px 2px 5px rgba(0, 0, 0, .09);
-            -moz-box-shadow: inset 2px 2px 5px rgba(0, 0, 0, .09);
-        font-size: 13px;
-    }
-    .form-row input[type=text] {
-        height: 28px;
-        line-height: 28px;
-        padding: 0;
-        text-indent: 5px;
-        width: 656px;
-    }
-    .form-row textarea {
-        line-height: 20px;
-        padding: 8px;
-        width: 640px;
-    }
+  }
 
-.form-row.grid_1 input[type=text] { width: 58px; }
-.form-row.grid_2 input[type=text] { width: 138px; }
-.form-row.grid_3 input[type=text] { width: 218px; }
-.form-row.grid_4 input[type=text] { width: 298px; }
-.form-row.grid_5 input[type=text] { width: 378px; }
-.form-row.grid_6 input[type=text] { width: 458px; }
-.form-row.grid_7 input[type=text] { width: 538px; }
-.form-row.grid_8 input[type=text] { width: 618px; }
-.form-row.grid_1 textarea { width: 42px; }
-.form-row.grid_2 textarea { width: 122px; }
-.form-row.grid_3 textarea { width: 202px; }
-.form-row.grid_4 textarea { width: 284px; }
-.form-row.grid_5 textarea { width: 362px; }
-.form-row.grid_6 textarea { width: 442px; }
-.form-row.grid_7 textarea { width: 522px; }
-.form-row.grid_8 textarea { width: 602px; }
+  .note {
+    /*Default form note*/
+    color: #d5620e;
+    display: block;
+    font-size: 10px;
+    font-style: italic;
+    font-weight: bold;
+    padding-left: 2px;
+  }
+
+  input[type=text],
+  textarea {
+    background: #f6f6f6;
+    border: 1px solid #d2d2d2;
+    box-shadow: inset 2px 2px 5px rgba(0, 0, 0, .09);
+    -webkit-box-shadow: inset 2px 2px 5px rgba(0, 0, 0, .09);
+    -moz-box-shadow: inset 2px 2px 5px rgba(0, 0, 0, .09);
+    font-size: 13px;
+  }
+
+  input[type=text] {
+    height: 28px;
+    line-height: 28px;
+    padding: 0;
+    text-indent: 5px;
+    width: 656px;
+  }
+
+  textarea {
+    line-height: 20px;
+    padding: 8px;
+    width: 640px;
+  }
+
+  &.grid_1 {
+    input[type=text] {
+      width: 58px;
+    }
+    textarea {
+      width: 42px;
+    }
+  }
+
+  &.grid_2 {
+    input[type=text] {
+      width: 138px;
+    }
+    textarea {
+      width: 122px;
+    }
+  }
+
+  &.grid_3 {
+    input[type=text] {
+      width: 218px;
+    }
+    textarea {
+      width: 202px;
+    }
+  }
+
+  &.grid_4 {
+    input[type=text] {
+      width: 298px;
+    }
+    textarea {
+      width: 284px;
+    }
+  }
+
+  &.grid_5 {
+    input[type=text] {
+      width: 378px;
+    }
+    textarea {
+      width: 362px;
+    }
+  }
+
+  &.grid_6 {
+    input[type=text] {
+      width: 458px;
+    }
+    textarea {
+      width: 442px;
+    }
+  }
+
+  &.grid_7 {
+    input[type=text] {
+      width: 538px;
+    }
+    textarea {
+      width: 522px;
+    }
+  }
+
+  &.grid_8 {
+    input[type=text] {
+      width: 618px;
+    }
+    textarea {
+      width: 602px;
+    }
+  }
+}
+
 
 .form-checkbox {
-
+  .form-checkbox-item .checker {
+    margin-right: 0;
+  }
 }
-    .form-checkbox .form-checkbox-item,
-    .form-radio .form-radio-item {
-        display: block;
-        margin: 5px 0;
-    }
-    .form-checkbox .form-checkbox-item .checker {
-        margin-right: 0;
-    }
-    .form-checkbox input {
-    }
-    .form-checkbox label,
-    .form-radio label {
-        cursor: pointer;
-    }
-    .form-radio .form-radio-item label {
-        vertical-align: middle;
-    }
-.form-row.error {/*Row with error*/
 
+.form-radio .form-radio-item label {
+  vertical-align: middle;
 }
-    .form-row.error .form-row-error-msg {
-        color: #ff0000;
-        font-family: Arial, "Helvetica Neue", "Liberation Sans", FreeSans, sans-serif;
-        font-size: 12px;
-        font-weight: bold;
-        padding-left: 10px;
-    }
-    .form-row.error input[type=text] {
-        background: #fce6e6;
-        border: 1px solid #ff0000;
-            box-shadow: inset 2px 2px 5px rgba(255, 0, 0, .16);
-            -webkit-box-shadow: inset 2px 2px 5px rgba(255, 0, 0, .16);
-            -moz-box-shadow: inset 2px 2px 5px rgba(255, 0, 0, .16);
-    }
+
+.form-checkbox .form-checkbox-item,
+.form-radio .form-radio-item {
+  display: block;
+  margin: 5px 0;
+}
+
+.form-checkbox label,
+.form-radio label {
+  cursor: pointer;
+}
+
+.form-row.error {
+  /*Row with error*/
+
+  .form-row-error-msg {
+    color: #ff0000;
+    font-family: Arial, "Helvetica Neue", "Liberation Sans", FreeSans, sans-serif;
+    font-size: 12px;
+    font-weight: bold;
+    padding-left: 10px;
+  }
+
+  input[type=text] {
+    background: #fce6e6;
+    border: 1px solid #ff0000;
+    box-shadow: inset 2px 2px 5px rgba(255, 0, 0, .16);
+    -webkit-box-shadow: inset 2px 2px 5px rgba(255, 0, 0, .16);
+    -moz-box-shadow: inset 2px 2px 5px rgba(255, 0, 0, .16);
+  }
+}
+
 .form-row-buttons {
-    clear: both;
-    margin-top: 10px;
+  clear: both;
+  margin-top: 10px;
+
+  input.button {
+    background-position: 90% 50%;
+
+    &:first-child {
+      margin-right: 20px;
+    }
+  }
 }
-    .form-row-buttons input.button:first-child {
-        margin-right: 20px;
-    }
-    .form-row-buttons input.button {
-  background-position: 90% 50%;
-    }
+
 div.tos {
   border: 2px solid #D2D2D2;
+  float: left;
   height: 250px;
   margin-bottom: 10px;
   overflow: auto;
-  float: left;
   padding: 10px;
   width: 640px;
 }
@@ -192,34 +275,39 @@
 .form-row-task-assigned-mentor {
     float: left;
 }
+
 .form-row-task-completion-time {
-    margin-right: 20px;
-    width: 220px;
+  margin-right: 20px;
+  width: 220px;
+
+  .form-row-task-completion-time-inner {
+    background: #b6dcf7 url(@image_block_stopwatch_sm) 5px 5px no-repeat;
+    font-size: 18px;
+    padding: 10px 0 10px 50px;
+  }
+
+  input[type=text] {
+      width: 30px;
+  }
 }
-    .form-row-task-completion-time .form-row-task-completion-time-inner {
-        background: #b6dcf7 url(@image_block_stopwatch_sm) 5px 5px no-repeat;
-        font-size: 18px;
-        padding: 10px 0 10px 50px;
-    }
-        .form-row-task-completion-time input[type=text] {
-            width: 30px;
-        }
+
 .form-row-task-difficulty {
-    margin-right: 20px;
-    width: 165px;
+  margin-right: 20px;
+  width: 165px;
 }
-    .form-row-task-difficulty-inner {
-        background: #b6dcf7 url(@image_cog_grey_sm) 5px 5px no-repeat;
-        padding: 10px 0 10px 50px;
-    }
+
+.form-row-task-difficulty-inner {
+  background: #b6dcf7 url(@image_cog_grey_sm) 5px 5px no-repeat;
+  padding: 10px 0 10px 50px;
+}
+
 .form-row-task-assigned-mentor {
     width: 215px;
 }
-    .form-row-task-assigned-mentor-inner {
-        background: #b6dcf7;
-        padding: 10px;
-        width: 215px;
-    }
-    .form-row-task-assigned-mentor #uniform-undefined {
-    }
+
+.form-row-task-assigned-mentor-inner {
+  background: #b6dcf7;
+  padding: 10px;
+  width: 215px;
+}
 /* @end */
diff --git a/app/soc/content/less/gci/style_jqgrid_cleanup.less b/app/soc/content/less/gci/style_jqgrid_cleanup.less
index 0c72940..4c183ad 100644
--- a/app/soc/content/less/gci/style_jqgrid_cleanup.less
+++ b/app/soc/content/less/gci/style_jqgrid_cleanup.less
@@ -2,22 +2,30 @@
 .ui-jqgrid .ui-widget-content {
   border: none;
 }
+
 .ui-jqgrid tr.jqgrow td {
   border: none;
   padding: 0;
 }
+
 .task-single-content-bottom {
   font-size: 12px;
 }
-.ui-widget-content .task-single a {
-  color: #0F649D;
+
+.ui-widget-content {
+  .task-single a {
+    color: #0F649D;
+
+    &:hover {
+      color: #D14936;
+    }
+  }
 }
-.ui-widget-content .task-single a:hover {
-  color: #D14936;
-}
+
 .altrow .task-single {
   background-color: #EBEBEB;
 }
+
 .disabled {
   color: grey !important;
 }
diff --git a/app/soc/content/less/gsoc/buttons.less b/app/soc/content/less/gsoc/buttons.less
index 96f0aca..885586a 100644
--- a/app/soc/content/less/gsoc/buttons.less
+++ b/app/soc/content/less/gsoc/buttons.less
@@ -1,17 +1,12 @@
 @import "common.less";
-/*////////////////
-
-  LessCSS
-
-////////////////*/
 
 // Images locations
-@image_user_menu_question: "@{images_gsoc_location}/user-menu-question.png";
-@image_switch_on: "@{images_gsoc_location}/ui_switch_on.png";
 @image_switch_off: "@{images_gsoc_location}/ui_switch_off.png";
+@image_switch_on: "@{images_gsoc_location}/ui_switch_on.png";
+@image_switch_slider_center: "@{images_gsoc_location}/ui_switch_slider_center.png";
 @image_switch_slider_left: "@{images_gsoc_location}/ui_switch_slider_left.png";
 @image_switch_slider_right: "@{images_gsoc_location}/ui_switch_slider_right.png";
-@image_switch_slider_center: "@{images_gsoc_location}/ui_switch_slider_center.png";
+@image_user_menu_question: "@{images_gsoc_location}/user-menu-question.png";
 
 @darkblue: #00538b;
 @orange: #d5620e;
@@ -25,211 +20,215 @@
 
 ////////////////*/
 
-/* User menu container */
 #user-menu-container {
-    clear: left;
-    float: left;
-    position: relative;
-    width: 220px;
+  /* User menu container */
+  clear: left;
+  float: left;
+  position: relative;
+  width: 220px;
 }
-/* User menu container */
 
-/* User menu */
 #floatMenu {
-    margin-top: 30px;
-    /*
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 220px;
-    */
+  /* User menu */
+  margin-top: 30px;
 
-    #user-menu-inner {
-        background: rgba(246, 246, 246, 0.6);
-        color: #333;
-        padding: 13px 10px 13px 20px;
-    }
-    p.user-menu-inner-title {
-        color: #008dd2;
-        font-size: 18px;
-        font-weight: bold;
-        line-height: 1.5em;
-        margin: 0 0 10px 0;
-    }
-    #user-menu-list li {
-        display: block;
-        margin: 0 0 10px 0;
-        overflow: hidden;
-
-        p.user-menu-row-title {
-            display: block;
-            float: left;
-            font-size: 14px;
-            font-weight: bold;
-            line-height: 1.2em;
-            margin: 0 0 4px 0;
-        }
-        span {
-            &#user-menu-question {
-                background:url(@image_user_menu_question) 0 0 no-repeat;
-                display: block;
-                float: left;
-                font-size: 1px;
-                line-height: 0;
-                height: 14px;
-                overflow: hidden;
-                margin: 0 0 0 5px;
-                text-indent: -9999em;
-                width: 11px;
-
-                a {
-                    display: block;
-                    height: 14px;
-                    width: 11px;
-                }
-            }
-            &.user-menu-note {
-                display: block;
-                clear: both;
-                font-size: 12px;
-                font-style: italic;
-                line-height: 1.3em;
-                margin: 0 0 4px 0;
-            }
-        }
-        form select {
-            width: 100%;
-        }
-    }
-}
-/* User menu */
-
-/* Tooltip */
-.tooltip {
-    background: #e2f1f9;
-    border: 1px solid #c8d7df;
-    box-shadow: inset 0 0 10px rgba(0, 0, 0, .1);
-    -moz-box-shadow: inset 0 0 10px rgba(0, 0, 0, .1);
-    -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, .1);
+  #user-menu-inner {
+    background: rgba(246, 246, 246, 0.6);
     color: #333;
-    font-size: 12px;
-    line-height: 1.4em;
-    padding: 7px 10px;
+    padding: 13px 10px 13px 20px;
+  }
+
+  p.user-menu-inner-title {
+    color: #008dd2;
+    font-size: 18px;
+    font-weight: bold;
+    line-height: 1.5em;
+    margin: 0 0 10px 0;
+  }
+
+  #user-menu-list li {
+    display: block;
+    margin: 0 0 10px 0;
+    overflow: hidden;
+
+    p.user-menu-row-title {
+      display: block;
+      float: left;
+      font-size: 14px;
+      font-weight: bold;
+      line-height: 1.2em;
+      margin: 0 0 4px 0;
+    }
+
+    span {
+      &#user-menu-question {
+        background:url(@image_user_menu_question) 0 0 no-repeat;
+        display: block;
+        float: left;
+        font-size: 1px;
+        line-height: 0;
+        height: 14px;
+        margin: 0 0 0 5px;
+        overflow: hidden;
+        text-indent: -9999em;
+        width: 11px;
+
+        a {
+          display: block;
+          height: 14px;
+          width: 11px;
+        }
+      }
+
+      &.user-menu-note {
+        clear: both;
+        display: block;
+        font-size: 12px;
+        font-style: italic;
+        line-height: 1.3em;
+        margin: 0 0 4px 0;
+        }
+      }
+
+      form select {
+        width: 100%;
+      }
+    }
 }
-/* Tooltip */
+
+.tooltip {
+  /* Tooltip */
+  background: #e2f1f9;
+  border: 1px solid #c8d7df;
+  box-shadow: inset 0 0 10px rgba(0, 0, 0, .1);
+  -moz-box-shadow: inset 0 0 10px rgba(0, 0, 0, .1);
+  -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, .1);
+  color: #333;
+  font-size: 12px;
+  line-height: 1.4em;
+  padding: 7px 10px;
+}
 
 /* Slide checkboxes */
 .iPhoneCheckContainer {
-    display: block;
-    clear: both;
-    position: relative;
-    height: 27px;
-    cursor: pointer;
-    overflow: hidden;
+  clear: both;
+  cursor: pointer;
+  display: block;
+  height: 27px;
+  overflow: hidden;
+  position: relative;
 
-    input {
-        position: absolute;
-        top: 5px;
-        left: 30px;
-        opacity: 0;
-        -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
-        filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
-    }
-    label {
-        white-space: nowrap;
-        font-size: 15px;
-        line-height: 17px;
-        font-weight: bold;
-        font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
-        text-transform: uppercase;
-        cursor: pointer;
-        display: block;
-        height: 27px;
-        position: absolute;
-        width: auto;
-        top: 0;
-        padding-top: 5px;
-        overflow: hidden;
-    }
+  input {
+    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
+    -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
+    left: 30px;
+    opacity: 0;
+    position: absolute;
+    top: 5px;
+  }
+
+  label {
+    cursor: pointer;
+    font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
+    font-size: 15px;
+    font-weight: bold;
+    display: block;
+    height: 27px;
+    line-height: 17px;
+    overflow: hidden;
+    padding-top: 5px;
+    position: absolute;
+    text-transform: uppercase;
+    top: 0;
+    white-space: nowrap;
+    width: auto;
+  }
 }
+
 .iPhoneCheckContainer, .iPhoneCheckContainer label {
-    user-select: none;
-    -moz-user-select: none;
-    -khtml-user-select: none;
+  user-select: none;
+  -moz-user-select: none;
+  -khtml-user-select: none;
 }
 
 .iPhoneCheckDisabled {
-    opacity: 0.5;
-    -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
-    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
+  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
+  -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
+  opacity: 0.5;
 }
 
-label.iPhoneCheckLabelOn {
-    color: white;
+label {
+  &.iPhoneCheckLabelOn {
     background: url(@image_switch_on) no-repeat;
-    text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6);
+    color: white;
     left: 0;
     padding-top: 5px;
+    text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6);
 
     span {
         padding-left: 8px;
     }
-}
+  }
 
-label.iPhoneCheckLabelOff {
-    color: #8b8b8b;
+  &.iPhoneCheckLabelOff {
     background: url(@image_switch_off) no-repeat right 0;
-    text-shadow: 0px 0px 2px rgba(255, 255, 255, 0.6);
-    text-align: right;
+    color: #8b8b8b;
     right: 0;
+    text-align: right;
+    text-shadow: 0px 0px 2px rgba(255, 255, 255, 0.6);
 
     span {
         padding-right: 8px;
     }
+  }
 }
 
+
 .iPhoneCheckHandle {
-    display: block;
-    height: 27px;
-    cursor: pointer;
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 0;
-    background: url(@image_switch_slider_left) no-repeat;
-    padding-left: 3px;
+  background: url(@image_switch_slider_left) no-repeat;
+  cursor: pointer;
+  display: block;
+  height: 27px;
+  left: 0;
+  padding-left: 3px;
+  position: absolute;
+  top: 0;
+  width: 0;
 }
+
 .iPhoneCheckHandleRight {
-    height: 100%;
-    width: 100%;
-    padding-right: 3px;
-    background: url(@image_switch_slider_right) no-repeat right 0;
+  background: url(@image_switch_slider_right) no-repeat right 0;
+  height: 100%;
+  padding-right: 3px;
+  width: 100%;
 }
+
 .iPhoneCheckHandleCenter {
-    height: 100%;
-    width: 100%;
-    background: url(@image_switch_slider_center);
+  background: url(@image_switch_slider_center);
+  height: 100%;
+  width: 100%;
 }
 /* Slide checkboxes */
 
 #user-menu-add-another-link {
-    display: block;
-    clear: both;
-    font-size: 11px;
-    padding-right: 5px;
-    text-align: right;
+  clear: both;
+  display: block;
+  font-size: 11px;
+  padding-right: 5px;
+  text-align: right;
 }
-#newlink {
-    .user-menu-remove-link {
-        display: block;
-        font-size: 11px;
-        margin-bottom: 5px;
 
-        &:last {
-            margin-bottom: 0;
-        }
+#newlink {
+  .user-menu-remove-link {
+    display: block;
+    font-size: 11px;
+    margin-bottom: 5px;
+
+    &:last {
+      margin-bottom: 0;
     }
-    > select {
-        margin-bottom: 5px;
-    }
+  }
+  > select {
+    margin-bottom: 5px;
+  }
 }
diff --git a/app/soc/content/less/gsoc/dashboard.less b/app/soc/content/less/gsoc/dashboard.less
index 5501547..f2ae0f2 100644
--- a/app/soc/content/less/gsoc/dashboard.less
+++ b/app/soc/content/less/gsoc/dashboard.less
@@ -32,181 +32,205 @@
 .dashboard {
   min-height: 500px;
 }
-/* disabled dashboard */
+
 .dashboard.disabled {
+  /* disabled dashboard */
   display: none;
 }
-/* dashboard head or title */
+
 .dashboard-head {
+  /* dashboard head or title */
   border-top: 1px solid #238BD2;
-  font-weight:bold;
-  line-height:1.7em;
-  margin-bottom:0;
-  font-size:1em;
-  color: #238BD2;
-  margin-top:1.2em;
-}
-.dashboard-head span {
-  background-color: #F6F6F6;
-  color: #238BD2;
-  left: 0;
-  padding-right: 0.4em;
-  position: relative;
-  top: -0.8em;
-}
-/* admin dashboard container */
-.block-dashboard {
-  width: 100%;
-  display: inline-block;
-  box-shadow: 0 4px 18px #C8C8C8;
-}
-/* column for admin dashboard that take half block-dashboard */
-.block-dashboard .column {
-  float: right;
-  width: 50%;
-}
-/* first column */
-.block-dashboard .column.first {
-  float: left;
-  width: 50%;
-}
-/* entry inside column that hold iconic information */
-.block-dashboard .column .column-entry {
-  margin: 1.3em 0;
-  padding: 2px 4px 2px 34px;
-  background-repeat: no-repeat;
-  background-position: 4px 4px;
-}
-.block-dashboard .column .column-entry:hover {
-  background-color: #E0F1FC;
-}
-.block-dashboard .column .column-entry h4,
-.block-dashboard .column .column-entry p,
-.block-dashboard .column .column-entry div
-{
-  padding-left: 10px;
-}
-/* title for column-entry */
-#main .column-entry h4 {
-  background: transparent;
-  text-transform: none;
-  padding: 0 0 0 10px;
-  line-height: normal;
-  font-size: 110%;
+  font-size: 1em;
   font-weight: bold;
-}
-/* description of column-entry */
-#main .column-entry p {
+  line-height: 1.7em;
   margin-bottom: 0;
+  color: #238BD2;
+  margin-top: 1.2em;
+
+  span {
+    background-color: #F6F6F6;
+    color: #238BD2;
+    left: 0;
+    padding-right: 0.4em;
+    position: relative;
+    top: -0.8em;
+  }
 }
-/* container for column-entry's sublinks */
-#main .column-entry div {
-  font-size: 10px;
-  color: #999;
+
+.block-dashboard {
+  /* admin dashboard container */
+  box-shadow: 0 4px 18px #C8C8C8;
+  display: inline-block;
+  width: 100%;
+
+  .column {
+    /* column for admin dashboard that take half block-dashboard */
+    float: right;
+    width: 50%;
+
+    &.first {
+      /* first column */
+      float: left;
+      width: 50%;
+    }
+
+    .column-entry {
+      /* entry inside column that hold iconic information */
+      background-position: 4px 4px;
+      background-repeat: no-repeat;
+      margin: 1.3em 0;
+      padding: 2px 4px 2px 34px;
+
+      &:hover {
+        background-color: #E0F1FC;
+      }
+
+      div,
+      h4,
+      p {
+        padding-left: 10px;
+      }
+    }
+  }
+}
+
+
+#main .column-entry {
+  h4 {
+    /* title for column-entry */
+    background: transparent;
+    font-size: 110%;
+    font-weight: bold;
+    line-height: normal;
+    padding: 0 0 0 10px;
+    text-transform: none;
+  }
+
+  p {
+    /* description of column-entry */
+    margin-bottom: 0;
+  }
+
+  div {
+    /* container for column-entry's sublinks */
+    color: #999;
+    font-size: 10px;
+  }
 }
 
 /* icons entry */
-.column-entry.lookup_profile {
-  background-image: url(@image_lookup);
-}
-.column-entry.allocate_slots,
-.column-entry.slots_allocation
-{
-  background-image: url(@image_allocate);
-}
-.column-entry.slots_transfer {
-  background-image: url(@image_transfer);
-}
-.column-entry.duplicates {
-  background-image: url(@image_duplicates);
-}
-.column-entry.proposals_submitted,
-.column-entry.manage_proposals,
-.column-entry.proposals {
-  background-image: url(@image_proposals);
-}
-.column-entry.accept_proposals,
-.column-entry.manage_projects,
-.column-entry.mentoring_projects
-{
-  background-image: url(@image_accept_proposals);
-}
-.column-entry.withdraw_projects {
-  background-image: url(@image_withdraw);
-}
-.column-entry.reminder_emails {
-  background-image: url(@image_mail);
-}
-.column-entry.program_settings,
-.column-entry.edit_program
-{
-  background-image: url(@image_settings);
-}
-.column-entry.edit_timeline {
-  background-image: url(@image_date);
-}
+.column-entry {
+  &.lookup_profile {
+    background-image: url(@image_lookup);
+  }
 
-.column-entry.adminning_organizations,
-.column-entry.participants,
-.column-entry.students,
-.column-entry.manage_organizations
-{
-  background-image: url(@image_users);
-}
-.column-entry.participant_locations {
-  background-image: url(@image_marker);
-}
-.column-entry.report_statistic {
-  background-image: url(@image_report);
-}
-.column-entry.todo,
-.column-entry.org_app,
-.column-entry.documents,
-.column-entry.evaluations,
-.column-entry.mentor_evaluations,
-.column-entry.student_evaluations
-{
-  background-image: url(@image_todo);
-}
-.column-entry.evaluation_group
-{
-  background-image: url(@image_grade);
-}
-.column-entry.create_mentor_evaluation,
-.column-entry.create_student_evaluation,
-.column-entry.create_evaluation_group
-{
-  background-image: url(@image_create);
-}
-.column-entry.edit_mentor_evaluation,
-.column-entry.edit_student_evaluation,
-.column-entry.edit_evaluation_group
-{
-  background-image: url(@image_edit);
-}
-.column-entry.view_mentor_evaluation,
-.column-entry.view_student_evaluation,
-.column-entry.view_evaluation_group,
-.column-entry.projects
-{
-  background-image: url(@image_view);
-}
-.column-entry.requests,
-.column-entry.org_admin_requests
-{
-  background-image: url(@image_requests);
-}
+  &.allocate_slots,
+  &.slots_allocation
+  {
+    background-image: url(@image_allocate);
+  }
 
-/* notify icon */
-.column-entry .notificon {
-  background-color: #F03D25;
-  border-color: -moz-use-text-color #DD3822 #DD3822;
-  border-radius: 2px 2px 2px 2px;
-  border-right: 1px solid #DD3822;
-  border-style: none solid solid;
-  border-width: 0 1px 1px;
-  display: inline-block;
-  padding: 2px 2px 0;
-  font-size: 9px;
-  font-weight: bold;
+  &.slots_transfer {
+    background-image: url(@image_transfer);
+  }
+
+  &.duplicates {
+    background-image: url(@image_duplicates);
+  }
+
+  &.manage_proposals,
+  &.proposals,
+  &.proposals_submitted {
+    background-image: url(@image_proposals);
+  }
+
+  &.accept_proposals,
+  &.manage_projects,
+  &.mentoring_projects {
+    background-image: url(@image_accept_proposals);
+  }
+
+  &.withdraw_projects {
+    background-image: url(@image_withdraw);
+  }
+
+  &.reminder_emails {
+    background-image: url(@image_mail);
+  }
+
+  &.edit_program,
+  &.program_settings {
+    background-image: url(@image_settings);
+  }
+
+  &.edit_timeline {
+    background-image: url(@image_date);
+  }
+
+  &.adminning_organizations,
+  &.manage_organizations,
+  &.participants,
+  &.students {
+    background-image: url(@image_users);
+  }
+
+  &.participant_locations {
+    background-image: url(@image_marker);
+  }
+
+  &.report_statistic {
+    background-image: url(@image_report);
+  }
+
+  &.documents,
+  &.evaluations,
+  &.mentor_evaluations,
+  &.org_app,
+  &.student_evaluations,
+  &.todo {
+    background-image: url(@image_todo);
+  }
+
+  &.evaluation_group {
+    background-image: url(@image_grade);
+  }
+
+  &.create_evaluation_group,
+  &.create_mentor_evaluation,
+  &.create_student_evaluation {
+    background-image: url(@image_create);
+  }
+
+  &.edit_evaluation_group,
+  &.edit_mentor_evaluation,
+  &.edit_student_evaluation {
+    background-image: url(@image_edit);
+  }
+
+  &.projects,
+  &.view_evaluation_group,
+  &.view_mentor_evaluation,
+  &.view_student_evaluation {
+    background-image: url(@image_view);
+  }
+
+  &.org_admin_requests,
+  &.requests {
+    background-image: url(@image_requests);
+  }
+
+  .notificon {
+    /* notify icon */
+    background-color: #F03D25;
+    border-color: -moz-use-text-color #DD3822 #DD3822;
+    border-radius: 2px 2px 2px 2px;
+    border-right: 1px solid #DD3822;
+    border-style: none solid solid;
+    border-width: 0 1px 1px;
+    display: inline-block;
+    font-size: 9px;
+    font-weight: bold;
+    padding: 2px 2px 0;
+  }
 }
diff --git a/app/soc/content/less/gsoc/forms.less b/app/soc/content/less/gsoc/forms.less
index 2b07df7..6787116 100644
--- a/app/soc/content/less/gsoc/forms.less
+++ b/app/soc/content/less/gsoc/forms.less
@@ -1,9 +1,4 @@
 @import "common.less";
-/*////////////////
-
-  LessCSS
-
-////////////////*/
 
 // Images locations
 @image_flash_error: "@{images_gsoc_location}/flash-error.png";
@@ -18,10 +13,10 @@
 @grey: #f6f6f6;
 
 .imagereplace {
-    display: block;
-    font-size: 0;
-    line-height: 0;
-    text-indent: -9999em;
+  display: block;
+  font-size: 0;
+  line-height: 0;
+  text-indent: -9999em;
 }
 
 /*////////////////
@@ -30,667 +25,817 @@
 
 ////////////////*/
 
-.form-register {/*register form*/
-    background: #e1edf5;
-    margin: 0 auto 39px auto;
-    width: 570px;
+.form-register {
+  /*register form*/
+  background: #e1edf5;
+  margin: 0 auto 39px auto;
+  width: 570px;
 
-    .loggedin {/*logged in message*/
-        background: #cee5f5;
-        padding: 11px 0;
-        text-align: center;
+  .loggedin {
+    /*logged in message*/
+    background: #cee5f5;
+    padding: 11px 0;
+    text-align: center;
 
-        p {
-            margin: 0;
-        }
+    p {
+      margin: 0;
     }
-    h2 {/*heading*/
+  }
+
+  h2 {
+    /*heading*/
+    float: left;
+    font-size: 27px;
+    line-height: 1.8em;
+    margin: 10px 0 0 23px;
+  }
+
+  h3 {
+    /*heading*/
+    clear: left;
+    font-size: 18px;
+    line-height: 1.2em;
+    margin: 10px 0 0 23px;
+    padding: 0 0 10px 5px;
+
+    &.rejected {
+      color: red;
+    }
+  }
+
+  .req {
+    /*required text*/
+    color: @orange;
+    display: block;
+    float: left;
+    font-size: 10px;
+    font-style: italic;
+    font-weight: bold;
+    margin: 25px 0 0 10px;
+  }
+
+  fieldset {
+    background: #cde5f5;
+    clear: left;
+    margin: 0 23px 16px 23px;
+    padding: 30px 0 11px 0;
+
+    .row {
+      /*every row*/
+      margin: 0 0 6px 11px;
+      width: 497px;
+
+      &.given_name {
         float: left;
-        font-size: 27px;
-        line-height: 1.8em;
-        margin: 10px 0 0 23px;
-    }
-    h3 {
-      /*heading*/
+        width: 215px;
 
-      clear: left;
-      font-size: 18px;
-      line-height: 1.2em;
-      margin: 10px 0 0 23px;
-      padding: 0 0 10px 5px;
+        .text {
+          width: 215px;
+        }
+      }
 
-      &.rejected {
-          color: red;
+      &.surname {
+        float: left;
+        width: 276px;
+
+        .text {
+          width: 276px;
+        }
+      }
+
+      &.email {
+        clear: both;
+        float: left;
+        width: 310px;
+
+        .text {
+          width: 310px;
+        }
+      }
+
+      &.phone {
+        float: left;
+        width: 180px;
+
+        .text {
+          width: 180px;
+        }
+      }
+
+      &.bday {
+        clear: both;
+        float: left;
+        width: 121px;
+
+        .text {
+          width: 121px;
+        }
+      }
+
+      &.address2 {
+        float: left;
+        width: 313px;
+
+        .text {
+          width: 313px;
+        }
+      }
+
+      &.city {
+        float: left;
+        width: 175px;
+
+        .text {
+          width: 175px;
+        }
+      }
+
+      &.stateprovince {
+        clear: both;
+        float: left;
+        width: 175px;
+
+        .text {
+          width: 175px;
+        }
+      }
+
+      &.zip {
+        float: left;
+        width: 138px;
+
+        label {
+          padding: 0;
+        }
+
+        .text {
+          width: 138px;
+        }
+      }
+
+      &.country {
+        clear: both;
+        padding-top: 5px;
+        width: 100%;
+
+        .selector {
+          select {
+            width: 100%;
+          }
+
+          span {
+            padding-right: 40px;
+            width: auto; /* desired width (w/ borders) - 33px = value */
+          }
+        }
+      }
+
+      &.schoolname {
+        float: left;
+        width: 100%;
+
+        .selector {
+          select {
+            width: 100%;
+          }
+
+          span {
+            padding-right: 40px;
+            width: auto; /* desired width (w/ borders) - 33px = value */
+          }
+        }
+      }
+
+      &.gradyear {
+        clear: left;
+        float: left;
+        width: 175px;
+
+        .selector {
+          span {
+            width: 127px;
+          }
+        }
+      }
+
+      &.schoollocation {
+        float: left;
+        width: 175px;
+
+        .selector {
+          span {
+            width: 127px;
+          }
+        }
+      }
+
+      &.schoolurl {
+        clear: both;
+        width: 254px;
+
+        .text {
+          width: 254px;
+        }
       }
     }
-    .req {/*required text*/
-        color: @orange;
-        display: block;
-        float: left;
-        font-size: 10px;
-        font-style: italic;
-        font-weight: bold;
-        margin: 25px 0 0 10px;
-    }
-    fieldset {
-        background: #cde5f5;
-        margin: 0 23px 16px 23px;
-        padding: 30px 0 11px 0;
-        clear: left;
 
-        .row {/*every row*/
-            margin: 0 0 6px 11px;
-            width: 497px;
-        }
-        .row.given_name {
-            float: left;
-            width: 215px;
-            .text { width: 215px; }
-        }
-        .row.surname {
-            float: left;
-            width: 276px;
-            .text { width: 276px; }
-        }
-        .row.email {
-            clear: both;
-            float: left;
-            width: 310px;
-            .text { width: 310px; }
-        }
-        .row.phone {
-            float: left;
-            width: 180px;
-            .text { width: 180px; }
-        }
-        .row.bday {
-            clear: both;
-            float: left;
-            width: 121px;
-            .text { width: 121px; }
-        }
-        .row.address2 {
-            float: left;
-            width: 313px;
-            .text { width: 313px; }
-        }
-        .row.city {
-            float: left;
-            width: 175px;
-            .text { width: 175px; }
-        }
-        .row.stateprovince {
-            clear: both;
-            float: left;
-            width: 175px;
-            .text { width: 175px; }
-        }
-        .row.zip {
-            float: left;
-            width: 138px;
-            label { padding: 0; }
-            .text { width: 138px; }
-        }
-        .row.country {
-            clear: both;
-            padding-top: 5px;
-            width: 100%;
-            .selector {
-                select {
-                    width: 100%;
-                }
-                span {
-                    padding-right: 40px;
-                    width: auto; /* desired width (w/ borders) - 33px = value */
-                }
-            }
-        }
-        .row.schoolname {
-            float: left;
-            width: 100%;
-            .selector {
-                select {
-                    width: 100%;
-                }
-                span {
-                    padding-right: 40px;
-                    width: auto; /* desired width (w/ borders) - 33px = value */
-                }
-            }
-        }
-        .row.gradyear {
-            clear: left;
-            float: left;
-            width: 175px;
-            .selector {
-                span {
-                    width: 127px;
-                }
-            }
-        }
-        .row.schoollocation {
-            float: left;
-            width: 175px;
-            .selector {
-                span {
-                    width: 127px;
-                }
-            }
-        }
-        .row.schoolurl {
-            clear: both;
-            width: 254px;
-            .text {
-                width: 254px;
-            }
-        }
-        #abstract_counter {
-            color: #d5620e;
-            display: block;
-            font-size: 10px;
-            font-style: italic;
-            font-weight: bold;
-            margin: 0 0 0 4px;
-        }
+    #abstract_counter {
+      color: #d5620e;
+      display: block;
+      font-size: 10px;
+      font-style: italic;
+      font-weight: bold;
+      margin: 0 0 0 4px;
     }
-    fieldset.nolegend {
-        padding: 11px 0;
-    }
-    .fieldset-basicinfo {/*first fieldset on the registration page*/
-        clear: both;
-    }
-    .fieldset-referral {/*referral fieldset*/
-        background: none;
-        padding: 0;
+  }
 
-        .row.radio {
-            margin: 0 0 6px 35px;
+  fieldset.nolegend {
+    padding: 11px 0;
+  }
 
-            label {
-                color: #666;
-                font-size: 15px;
-            }
-        }
-    }
-    .row.button-row {
-        padding: 0 0 28px 28px;
-    }
-    div.back-links {
-        clear: left;
-        font-size: 12px;
-        font-weight: bold;
-        margin: 0 0 0 23px;
-        padding: 0 0 10px 5px;
-    }
+  .fieldset-basicinfo {
+    /*first fieldset on the registration page*/
+    clear: both;
+  }
+
+  .fieldset-referral {
+    /*referral fieldset*/
+    background: none;
+    padding: 0;
+
     .row.radio {
-        margin: 0 0 6px 15px;
+      margin: 0 0 6px 35px;
 
-        label {
-            color: #666;
-            font-size: 15px;
-
-            div.radio-content {
-                display: table-cell;
-            }
-        }
+      label {
+        color: #666;
+        font-size: 15px;
+      }
     }
-    .row.checkbox {
-        margin: 0 0 6px 15px;
+  }
 
-        label {
-            color: #666;
-            font-size: 15px;
+  div.back-links {
+    clear: left;
+    font-size: 12px;
+    font-weight: bold;
+    margin: 0 0 0 23px;
+    padding: 0 0 10px 5px;
+  }
 
-            div.checkbox-content {
-                display: table-cell;
-            }
-        }
+  .row {
+    &.button-row {
+      padding: 0 0 28px 28px;
     }
-    .row.other {
-        margin: 0 0 6px 51px;
+
+    &.radio {
+      margin: 0 0 6px 15px;
+
+      label {
+        color: #666;
+        font-size: 15px;
+
+        div.radio-content {
+          display: table-cell;
+        }
+      }
+    }
+
+    &.checkbox {
+      margin: 0 0 6px 15px;
+
+      label {
+        color: #666;
+        font-size: 15px;
+
+        div.checkbox-content {
+          display: table-cell;
+        }
+      }
+    }
+
+    &.other {
+      margin: 0 0 6px 51px;
+      width: 400px;
+
+      input {
         width: 400px;
-
-        input {
-            width: 400px;
-        }
+      }
     }
+  }
 }
 
-#form.form-search {/*search form*/
+#form {
+  &.form-search {
+    /*search form*/
     background: #e0edf5;
-    padding: 5px 15px 10px 15px;
     margin: 0 0 13px 0;
+    padding: 5px 15px 10px 15px;
 
-    h2 {/*heading*/
-        font-size: 22px;
-        font-weight: normal;
-        margin: 0;
+    h2 {
+      /*heading*/
+      font-size: 22px;
+      font-weight: normal;
+      margin: 0;
     }
-    .row {/*every row*/
-        margin: 0 10px 0 0;
-    }
-    .row.search-field {/*search text field*/
+
+    .row {
+      /*every row*/
+      margin: 0 10px 0 0;
+
+      &.search-field {
+        /*search text field*/
         float: left;
         width: 300px;
         .text {
-            margin-top: 1px;
-            width: 300px;
+          margin-top: 1px;
+          width: 300px;
         }
-    }
-    .row.search-filter {/*filter select field*/
+      }
+
+      &.search-filter {
+        /*filter select field*/
         float: left;
         width: 138px;
         .selector {
-            span {
-                font-size: 14px;
-                width: 105px; /* desired width (w/ borders) - 33px = value */
-            }
+          span {
+            font-size: 14px;
+            width: 105px; /* desired width (w/ borders) - 33px = value */
+          }
         }
-    }
-    .row.button-row {/*submit btn*/
+      }
+
+      &.button-row {
+        /*submit btn*/
         float: left;
         width: 77px;
-        input {
-            height: 26px;
-            line-height: 26px;
-            margin-top: 2px;
-            padding: 0;
-            width: 77px;
-        }
-    }
-}
 
-/* Proposal form comments */
-#form.form-project-comment {/*project comment form*/
+        input {
+          height: 26px;
+          line-height: 26px;
+          margin-top: 2px;
+          padding: 0;
+          width: 77px;
+        }
+      }
+    }
+  }
+
+  &.form-project-comment {
+    /* Proposal form comments */
+    /*project comment form*/
     margin: 0 auto;
     width: 524px;
 
     fieldset {
-        background: #cde5f5;
-        margin: 0;
-        padding: 30px 0 10px 0;
-        width: auto;
+      background: #cde5f5;
+      margin: 0;
+      padding: 30px 0 10px 0;
+      width: auto;
 
-        .row {
-            /*every row*/
-            display: block;
-            margin: 0 0 6px 11px;
-            width: 497px;
+      .row {
+        /*every row*/
+        display: block;
+        margin: 0 0 6px 11px;
+        width: 497px;
 
-            &.project-comment-add-rating #score-add-stars {
-                margin: 5px 0 0 5px;
-            }
-            &.button-row {
-                padding: 5px 0 0 5px;
-
-                input {
-                    height: 30px;
-                    line-height: 30px;
-                }
-            }
+        &.project-comment-add-rating #score-add-stars {
+          margin: 5px 0 0 5px;
         }
-    }
-    p.reply-logged-in {
-        margin: 5px 0 0 4px;
-    }
-    textarea {
-        height: 200px;
-        width: 489px;
-    }
-}
 
-/* Proposal form comment replies */
-#form.form-project-comment-reply {/*project comment reply form*/
+        &.button-row {
+          padding: 5px 0 0 5px;
+
+          input {
+            height: 30px;
+            line-height: 30px;
+          }
+        }
+      }
+    }
+
+    p.reply-logged-in {
+      margin: 5px 0 0 4px;
+    }
+
+    textarea {
+      height: 200px;
+      width: 489px;
+    }
+  }
+
+  &.form-project-comment-reply {
+    /* Proposal form comment replies */
+    /*project comment reply form*/
     margin: 0;
     width: auto;
 
     fieldset {
-        width: auto;
+      width: auto;
     }
-    textarea {
-        height: 200px;
-        width: 458px;
-    }
-    .row {
-        &.project-comment-reply-full {
-            display: block;
-            width: 472px;
-        }
-        &.button-row {
-            text-align: right;
-            padding: 5px 0 0 5px;
-            input {
-                height: 30px;
-                line-height: 30px;
-            }
-        }
-    }
-}
-#form.form-project-comment-reply .row.button-row input {
-  height: 30px;
-  line-height: 30px;
-}
-/* Proposal form comment replies */
-/* Proposal form comments */
 
-#form.form-proposal {/*application/proposal form*/
+    textarea {
+      height: 200px;
+      width: 458px;
+    }
+
+    .row {
+      &.project-comment-reply-full {
+        display: block;
+        width: 472px;
+      }
+      &.button-row {
+        padding: 5px 0 0 5px;
+        text-align: right;
+
+        input {
+          height: 30px;
+          line-height: 30px;
+        }
+      }
+    }
+  }
+
+  &.form-proposal {
+    /*application/proposal form*/
     background: #e1edf5;
     width: 500px;
 
     fieldset {
-        margin: 0 auto;
-        padding: 5px 0;
-        width: 440px;
+      margin: 0 auto;
+      padding: 5px 0;
+      width: 440px;
 
-        .row {/*every row*/
-            margin: 10px 0;
-            .text {
-                width: 440px;
-            }
+      .row {
+        /*every row*/
+        margin: 10px 0;
+        .text {
+          width: 440px;
         }
-        .row.gsoc_proposal_abstract {
-            .textarea {
-                height: 200px;
-                width: 430px;
-            }
+
+        &.gsoc_proposal_abstract {
+          .textarea {
+            height: 200px;
+            width: 430px;
+          }
         }
-        .row.gsoc_proposal_content {
-            .textarea {
-                height: 500px;
-                width: 430px;
-            }
+
+        &.gsoc_proposal_content {
+          .textarea {
+            height: 500px;
+            width: 430px;
+          }
         }
-        .row.project-sponsor {
+
+        &.project-sponsor {
+          width: 320px;
+
+          .text {
             width: 320px;
-            .text {
-                width: 320px;
-            }
+          }
         }
-        .row.project-os {
-            float: left;
-            width: 191px;
-            .text {
-                width: 191px;
-            }
-        }
-        .row.project-lang {
-            float: right;
-            width: 191px;
-            .text {
-                width: 191px;
-            }
-        }
-        .row.project-tags {
-            clear: both;
-        }
-        #form-proposal-textfield-project-short_counter, #form-proposal-textfield-project-full_counter {
-            color: @orange;
-            display: block;
-            font-size: 10px;
-            font-style: italic;
-            font-weight: bold;
-            margin: 0 0 0 4px;
-        }
-    }
-    .row.button-row {
-        background: @grey;
-        display: block;
-        padding-bottom: 20px;
-        width: 100%;
-        .submit {
-            margin: 20px 0 0 20px;
-        }
-        .save {
-            background:url(@image_form_submit_bg_blue) 0 0 repeat;
-            margin-left: 15px;
-        }
-    }
-}
 
-#form, .form-register {/*form defaults*/
-    margin: 0 auto;
+        &.project-os {
+          float: left;
+          width: 191px;
 
-    .note {/*for adding a note below a text field*/
+          .text {
+            width: 191px;
+          }
+        }
+
+        &.project-lang {
+          float: right;
+          width: 191px;
+
+          .text {
+            width: 191px;
+          }
+        }
+
+        &.project-tags {
+          clear: both;
+        }
+      }
+
+      #form-proposal-textfield-project-short_counter,
+      #form-proposal-textfield-project-full_counter {
         color: @orange;
         display: block;
         font-size: 10px;
         font-style: italic;
         font-weight: bold;
         margin: 0 0 0 4px;
+      }
     }
-    .input-submit-mixin (@height: 30px, @line-height: 30px) {
-        background: url(@image_form_submit_bg) 0 0 repeat;
-        border: 0;
-        color: #fff;
+
+    .row.button-row {
+      background: @grey;
+      display: block;
+      padding-bottom: 20px;
+      width: 100%;
+
+      .submit {
+        margin: 20px 0 0 20px;
+      }
+
+      .save {
+        background: url(@image_form_submit_bg_blue) 0 0 repeat;
+        margin-left: 15px;
+      }
+    }
+  }
+}
+
+#form,
+.form-register {
+  /*form defaults*/
+  margin: 0 auto;
+
+  .note {
+    /*for adding a note below a text field*/
+    color: @orange;
+    display: block;
+    font-size: 10px;
+    font-style: italic;
+    font-weight: bold;
+    margin: 0 0 0 4px;
+  }
+
+  .input-submit-mixin (@height: 30px, @line-height: 30px) {
+    background: url(@image_form_submit_bg) 0 0 repeat;
+    border: 0;
+    color: #fff;
+    font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
+    font-size: 14px;
+    font-weight: bold;
+    height: @height;
+    line-height: @line-height;
+    padding: 0 15px;
+    text-transform: uppercase;
+
+    &:hover {
+      cursor: pointer;
+    }
+  }
+
+  input.submit {
+    .input-submit-mixin;
+  }
+
+  fieldset {
+    position: relative;
+    width: 524px;
+
+    legend {
+      display: block;
+      float: left;
+      position: relative;
+      width: 100%;
+
+      span {
+        color: #799eb8;
+        font-size: 12px;
+        font-weight: bold;
+        left: 10px;
+        position: absolute;
+        text-transform: uppercase;
+        top: -22px;
+      }
+    }
+
+    .row {
+      label {
+        /*labels*/
+        color: @lightblue;
+        display: block;
+        font-size: 18px;
+        line-height: 1.3em;
+        padding: 0 0 0 5px;
+      }
+
+      .req {
+        /*required text*/
+        bottom: 1px;
+        color: @orange;
+        display: inline;
+        float: none;
+        font-size: 16px;
+        font-weight: bold;
+        height: 0;
+        line-height: 1;
+        margin: 0;
+        position: relative;
+        vertical-align: baseline;
+      }
+
+      .text,
+      .textarea {
+        /*text fields and textareas*/
+        background: #fff;
+        border: 1px solid #d2d2d2;
+        box-shadow: inset 2px 2px 10px #e6e6e6;
+        -moz-box-shadow: inset 2px 2px 10px #e6e6e6;
+        -webkit-box-shadow: inset 2px 2px 10px #e6e6e6;
+        color: #000;
         font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
         font-size: 14px;
+        padding: 0;
+      }
+
+      .text {
+        /*text fields*/
+        height: 26px;
+        text-indent: 5px;
+        width: 497px;
+      }
+
+      .textarea {
+        /*textareas*/
+        padding: 5px;
+      }
+
+      select {
+        /*select fields*/
+        background: #fff;
+        border: 0px;
+      }
+
+      .selector {
+        select {
+          font-size: 13px;
+          width: 100% !important;
+        }
+
+        span {
+          font-size: 16px;
+        }
+      }
+
+      .checker {
+        /*checkbox*/
+        margin-right: 0px;
+
+        span {
+          background-position: -62px -41px;
+
+          &.checked {
+            background-position: -86px -41px;
+          }
+        }
+      }
+
+      div.uploader {
+        /*file upload field*/
+        height: 30px;
+        width: 440px;
+
+        input {
+          height: 30px;
+          left: 0;
+          top: 0;
+          width: 100%;
+        }
+
+        span {
+          &.action {
+            background: url(@image_form_submit_bg) 0 0 repeat;
+            color: #fff;
+            font-family: Arial,'Helvetica Neue',Helvetica,sans-serif;
+            font-size: 14px;
+            font-weight: bold;
+            margin: 2px 0 0 0;
+            padding: 2px 7px;
+            text-transform: none;
+          }
+
+          &.filename {
+            background: #fff;
+            border: 1px solid #d2d2d2;
+            border-right: 0px;
+            box-shadow: inset 2px 2px 10px #e6e6e6;
+            -moz-box-shadow: inset 2px 2px 10px #e6e6e6;
+            -webkit-box-shadow: inset 2px 2px 10px #e6e6e6;
+            font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
+            font-size: 14px;
+            height: 26px;
+            padding: 0 5px 0 0;
+            text-indent: 5px;
+            width: auto;
+          }
+        }
+      }
+    }
+
+    .row.error {
+      /*error on submission*/
+      .error-message {
+        clear: both;
+        color: #ff0000;
+        display: block;
+        font-size: 12px;
         font-weight: bold;
-        height: @height;
-        line-height: @line-height;
-        padding: 0 15px;
-        text-transform: uppercase;
+        margin: 2px 0 0 7px;
+      }
 
-        &:hover {
-            cursor: pointer;
-        }
+      .text,
+      .textarea {
+        background: #fce6e6;
+        border: 1px solid #ff0000;
+        box-shadow: inset 2px 2px 10px #fccaca;
+        -moz-box-shadow: inset 2px 2px 10px #fccaca;
+        -webkit-box-shadow: inset 2px 2px 10px #fccaca;
+      }
     }
-    input.submit {
-        .input-submit-mixin;
-    }
-    fieldset {
-        position: relative;
-        width: 524px;
-
-        legend {
-            display: block;
-            float: left;
-            position: relative;
-            width: 100%;
-            span {
-                color: #799eb8;
-                font-size: 12px;
-                font-weight: bold;
-                text-transform: uppercase;
-                position: absolute;
-                top: -22px;
-                left: 10px;
-            }
-        }
-        .row {
-            label {/*labels*/
-                color: @lightblue;
-                display: block;
-                font-size: 18px;
-                line-height: 1.3em;
-                padding: 0 0 0 5px;
-            }
-            .req {/*required text*/
-                bottom: 1px;
-                color: @orange;
-                display: inline;
-                float: none;
-                font-size: 16px;
-                font-weight: bold;
-                height: 0;
-                line-height: 1;
-                margin: 0;
-                position: relative;
-                vertical-align: baseline;
-            }
-            .text, .textarea {/*text fields and textareas*/
-                color: #000;
-                background: #fff;
-                border: 1px solid #d2d2d2;
-                box-shadow: inset 2px 2px 10px #e6e6e6;
-                -moz-box-shadow: inset 2px 2px 10px #e6e6e6;
-                -webkit-box-shadow: inset 2px 2px 10px #e6e6e6;
-                font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
-                font-size: 14px;
-                padding: 0;
-            }
-            .text {/*text fields*/
-                height: 26px;
-                text-indent: 5px;
-                width: 497px;
-            }
-            .textarea {/*textareas*/
-                padding: 5px;
-            }
-            select {/*select fields*/
-                background: #fff;
-                border: 0px;
-            }
-            .selector select {
-                font-size: 13px;
-                width: 100% !important;
-            }
-            .selector span {
-                font-size: 16px;
-            }
-            .checker {/*checkbox*/
-                margin-right: 0px;
-                span {
-                    background-position: -62px -41px;
-                }
-                span.checked {
-                    background-position: -86px -41px;
-                }
-            }
-            div.uploader {/*file upload field*/
-                height: 30px;
-                width: 440px;
-
-                input {
-                    height: 30px;
-                    top: 0;
-                    left: 0;
-                    width: 100%;
-                }
-                span.action {
-                    background: url(@image_form_submit_bg) 0 0 repeat;
-                    color: #fff;
-                    font-family: Arial,'Helvetica Neue',Helvetica,sans-serif;
-                    font-size: 14px;
-                    font-weight: bold;
-                    margin: 2px 0 0 0;
-                    padding: 2px 7px;
-                    text-transform: none;
-                }
-                span.filename {
-                  background: #fff;
-                  border: 1px solid #d2d2d2;
-                  border-right: 0px;
-                  box-shadow: inset 2px 2px 10px #e6e6e6;
-                  -moz-box-shadow: inset 2px 2px 10px #e6e6e6;
-                  -webkit-box-shadow: inset 2px 2px 10px #e6e6e6;
-                  font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
-                  font-size: 14px;
-                  height: 26px;
-                  padding: 0 5px 0 0;
-                  text-indent: 5px;
-                  width: auto;
-                }
-            }
-        }
-        .row.error {/*error on submission*/
-            .error-message {
-                color: #ff0000;
-                display: block;
-                clear: both;
-                font-size: 12px;
-                font-weight: bold;
-                margin: 2px 0 0 7px;
-            }
-            .text, .textarea {
-                background: #fce6e6;
-                border: 1px solid #ff0000;
-                box-shadow: inset 2px 2px 10px #fccaca;
-                -moz-box-shadow: inset 2px 2px 10px #fccaca;
-                -webkit-box-shadow: inset 2px 2px 10px #fccaca;
-            }
-        }
-    }
+  }
 }
+
 fieldset .row.error .textarea {
-    background: #fce6e6;
-    border: 1px solid #ff0000;
-    box-shadow: inset 2px 2px 10px #fccaca;
-    -moz-box-shadow: inset 2px 2px 10px #fccaca;
-    -webkit-box-shadow: inset 2px 2px 10px #fccaca;
-}
-.row.button-row {/*submit btn row*/
-    input {
-        #form.input-submit-mixin(40px, 40px);
-    }
+  background: #fce6e6;
+  border: 1px solid #ff0000;
+  box-shadow: inset 2px 2px 10px #fccaca;
+  -moz-box-shadow: inset 2px 2px 10px #fccaca;
+  -webkit-box-shadow: inset 2px 2px 10px #fccaca;
 }
 
+.row.button-row {
+  /*submit btn row*/
+  input {
+    #form.input-submit-mixin(40px, 40px);
+  }
+}
 
-/* Submit button */
 .form-user-proposal-assign-mentor {
-    clear: both;
+  /* Submit button */
+  clear: both;
 
-    div.selector span {
-        width: 150px;
-    }
-    input.submit {
-        margin: 3px 0 0 3px;
-    }
+  div.selector span {
+    width: 150px;
+  }
+
+  input.submit {
+    margin: 3px 0 0 3px;
+  }
 }
-/* Submit button */
 
-/* Form submission success or failure flash messages  */
 #flash-message {
-    /*save confirmation banner*/
-    font-weight: bold;
-    left: 0;
-    margin-bottom: 10px;
-    padding: 10px 5px 8px 36px;
-    position: relative;
-    width: auto;
-    border-width: 2px;
-    border-style: solid;
+  /* Form submission success or failure flash messages  */
+  /*save confirmation banner*/
+  border-style: solid;
+  border-width: 2px;
+  font-weight: bold;
+  left: 0;
+  margin-bottom: 10px;
+  padding: 10px 5px 8px 36px;
+  position: relative;
+  width: auto;
 
-    p {
-        margin-bottom: 0;
-    }
-    &.flash-error {
-        /*save confirmation banner notifies error*/
-        background: url(@image_flash_error) no-repeat 10px 50% #CF3333;
-        color: #FFF;
-        border-color: #990000;
-    }
-    &.flash-success {
-        /*save confirmation banner notifies success*/
-        background: url(@image_flash_success) no-repeat 10px 50% #C6F9C9;
-        color: #4F7F51;
-        border-color: #9BD39E;
-    }
+  p {
+    margin-bottom: 0;
+  }
+
+  &.flash-error {
+    /*save confirmation banner notifies error*/
+    background: url(@image_flash_error) no-repeat 10px 50% #CF3333;
+    border-color: #990000;
+    color: #FFF;
+  }
+
+  &.flash-success {
+    /*save confirmation banner notifies success*/
+    background: url(@image_flash_success) no-repeat 10px 50% #C6F9C9;
+    border-color: #9BD39E;
+    color: #4F7F51;
+  }
 }
-/* Form submission success or failure flash messages  */
 
 #pre-form-header {
-    h2 {/*heading*/
-        float: left;
-        font-size: 27px;
-        line-height: 1.3em;
-        margin: 10px 0 0 23px;
-    }
-    h3 {/*heading*/
-        clear: both;
-        font-size: 21px;
-        margin-left: 23px;
-    }
-    .req {/*required text*/
-        color: @orange;
-        display: block;
-        font-size: 10px;
-        font-style: italic;
-        font-weight: bold;
-    }
-    .description {
-        clear: both;
-        padding-top: 10px;
-        margin: 0 25px 0 25px;
-        text-align: justify;
-    }
+  h2 {
+    /*heading*/
+    float: left;
+    font-size: 27px;
+    line-height: 1.3em;
+    margin: 10px 0 0 23px;
+  }
+
+  h3 {
+    /*heading*/
+    clear: both;
+    font-size: 21px;
+    margin-left: 23px;
+  }
+
+  .req {
+    /*required text*/
+    color: @orange;
+    display: block;
+    font-size: 10px;
+    font-style: italic;
+    font-weight: bold;
+  }
+
+  .description {
+    clear: both;
+    margin: 0 25px 0 25px;
+    padding-top: 10px;
+    text-align: justify;
+  }
 }
diff --git a/app/soc/content/less/gsoc/global.less b/app/soc/content/less/gsoc/global.less
index d873075..50563cc 100644
--- a/app/soc/content/less/gsoc/global.less
+++ b/app/soc/content/less/gsoc/global.less
@@ -4,24 +4,38 @@
    Global styles
 
 //////////////////*/
+
 // Images locations
 @image_body_bg: "@{images_gsoc_location}/body-bg.png";
 
 body {
-    background:url(@image_body_bg) repeat;
-    color: #000;
-    font: ~"13px/1.5em" Arial, 'Helvetica Neue', Helvetica, sans-serif;
+  background:url(@image_body_bg) repeat;
+  color: #000;
+  font: ~"13px/1.5em" Arial, 'Helvetica Neue', Helvetica, sans-serif;
 }
-img.alignright {
+
+img {
+  &.alignright {
     float: right;
     padding: 0 0 5px 10px;
-}
-img.alignleft {
+  }
+
+  &.alignleft {
     float: left;
     padding: 0 10px 5px 0;
+  }
 }
+
 .disabled {
-    color: grey !important;
+  color: grey !important;
 }
-::selection	{ background: #efac4c; color: #fff; }
-::-moz-selection { background: #efac4c; color: #fff; }
+
+::selection	{
+  background: #efac4c;
+  color: #fff;
+}
+
+::-moz-selection {
+  background: #efac4c;
+  color: #fff;
+}
diff --git a/app/soc/content/less/gsoc/menu.less b/app/soc/content/less/gsoc/menu.less
index 9ab9796..a0932a9 100644
--- a/app/soc/content/less/gsoc/menu.less
+++ b/app/soc/content/less/gsoc/menu.less
@@ -4,76 +4,92 @@
   Menu
 
 ////////////////*/
+
 // Images locations
 @image_nav_bg: "@{images_gsoc_location}/nav-bg.gif";
 
-/* New menu container */
 #menu-container {
-    margin-right: 0;
+  /* New menu container */
+  margin-right: 0;
 }
-/* New menu container */
 
 #main-menu {
-    background:url(@image_nav_bg) 0 0 repeat;
-    margin-right: 0;
-    float: left;
-    width: 220px;
-    ul {
-        margin: 13px 0;
+  background: url(@image_nav_bg) 0 0 repeat;
+  float: left;
+  margin-right: 0;
+  width: 220px;
 
-        li {/*top level list item*/
-            font-size: 15px;
-            font-weight: bold;
-            margin: 0 0 3px 0;
-            padding: 0;
+  ul {
+    margin: 13px 0;
 
-            a {/*top level link*/
-                display: block;
-                color: #fff;
-                margin: 0;
-                padding: 4px 0 4px 20px;
-                text-decoration: none;
-            }
-            a:hover {
-                background: #e67a25;
-            }
+    li {
+      /*top level list item*/
+      font-size: 15px;
+      font-weight: bold;
+      margin: 0 0 3px 0;
+      padding: 0;
 
-            ul {/*submenu*/
-                margin: 0;
-                padding: 0;
+      a {
+        /*top level link*/
+        color: #fff;
+        display: block;
+        margin: 0;
+        padding: 4px 0 4px 20px;
+        text-decoration: none;
 
-                li {/*submenu list item*/
-                    font-size: 12px;
-                    margin: 0;
-
-                    a {/*submenu link*/
-                        display: block;
-                        margin: 0;
-                        padding-left: 40px;
-                    }
-                    a:hover {
-                        background: #e67a25;
-                    }
-                }
-                li.active {/*submenu active list item*/
-                    background: #e67a25;
-                }
-            }
+        &:hover {
+          background: #e67a25;
         }
-        li.active {/*top level active list item*/
+      }
+
+      ul {
+        /*submenu*/
+        margin: 0;
+        padding: 0;
+
+        li {
+          /*submenu list item*/
+          font-size: 12px;
+          margin: 0;
+
+          a {
+            /*submenu link*/
+            display: block;
+            margin: 0;
+            padding-left: 40px;
+
+            &:hover {
+              background: #e67a25;
+            }
+          }
+
+          &.active {
+            /*submenu active list item*/
             background: #e67a25;
+          }
+        }
+      }
 
-            ul {/*submenu under an active top level*/
-                background:url(@image_nav_bg) 0 0 repeat;
-            }
+      &.active {
+        /*top level active list item*/
+        background: #e67a25;
+
+        ul {
+          /*submenu under an active top level*/
+          background: url(@image_nav_bg) 0 0 repeat;
         }
-        li.parent.active {/*top level active list item w/ submenu - for use when the top level is highlighted but the submenu is not*/
-            padding-bottom: 0px;
-        }
-        &#main-menu-list {
-            margin-top: 0;
-            padding-top: 13px;
-            padding-bottom: 13px;
-        }
+      }
+
+      &.parent.active {
+        /*top level active list item w/ submenu - for use when the top level is highlighted but the submenu is not*/
+        padding-bottom: 0px;
+      }
     }
+
+    &#main-menu-list {
+      margin-top: 0;
+      padding-bottom: 13px;
+      padding-top: 13px;
+    }
+  }
 }
diff --git a/app/soc/content/less/gsoc/others.less b/app/soc/content/less/gsoc/others.less
index 1de2dc5..a133417 100644
--- a/app/soc/content/less/gsoc/others.less
+++ b/app/soc/content/less/gsoc/others.less
@@ -1,9 +1,18 @@
-/* No underline for <a> elements inside lists */
 .ui-jqgrid a.listsnoul {
+  /* No underline for <a> elements inside lists */
   text-decoration: none;
 }
+
 .alternate_row {
   background: #F0F0F0;
 }
-table.ui-jqgrid-btable tr.jqgfirstrow td { border: none; }
-table.ui-jqgrid-btable { height: 1px; }
+
+table {
+  &.ui-jqgrid-btable {
+    height: 1px;
+
+    tr.jqgfirstrow td {
+      border: none;
+    }
+  }
+}
diff --git a/app/soc/content/less/gsoc/readonly.less b/app/soc/content/less/gsoc/readonly.less
index 84b1da0..98e7cef 100644
--- a/app/soc/content/less/gsoc/readonly.less
+++ b/app/soc/content/less/gsoc/readonly.less
@@ -1,9 +1,3 @@
-/*////////////////
-
-  LessCSS
-
-////////////////*/
-
 @lightblue: #238bd2;
 @grey: #f6f6f6;
 
@@ -13,37 +7,46 @@
 
 //////////////////////////*/
 
-.model-readonly {/*all model read-only page styling elements*/
-    .row-mixins (@backgroundcolor) {/*styling for each property in the model*/
-        background: @backgroundcolor;
-        padding-top: 5px;
-        padding-bottom: 5px;
-        display: block;
-        overflow: hidden;
-        width: 100%;
+.model-readonly {
+  /*all model read-only page styling elements*/
+  .row-mixins (@backgroundcolor) {
+    /*styling for each property in the model*/
+    background: @backgroundcolor;
+    padding-top: 5px;
+    padding-bottom: 5px;
+    display: block;
+    overflow: hidden;
+    width: 100%;
 
-        label {/*verbose name of each model property*/
-            clear: left;
-            float: left;
-            font-weight: bold;
-            color: @lightblue;
-            margin-right: 10px;
-            padding-right: 20px;
-            text-align: right;
-            width: 200px;
-        }
-        span.readonly-row-content {/*actual value stored in the property*/
-            float: right;
-            padding: 0;
-            width: 390px;
-        }
+    label {
+      /*verbose name of each model property*/
+      clear: left;
+      float: left;
+      font-weight: bold;
+      color: @lightblue;
+      margin-right: 10px;
+      padding-right: 20px;
+      text-align: right;
+      width: 200px;
     }
-    .row-odd {/*styling for odd rows*/
-        .row-mixins(@grey);
+
+    span.readonly-row-content {
+      /*actual value stored in the property*/
+      float: right;
+      padding: 0;
+      width: 390px;
     }
-    .row-even {/*styling for odd rows*/
-        .row-mixins(white);
-    }
+  }
+
+  .row-odd {
+    /*styling for odd rows*/
+    .row-mixins(@grey);
+  }
+
+  .row-even {
+    /*styling for odd rows*/
+    .row-mixins(white);
+  }
 }
 
 .hidden-row {
diff --git a/app/soc/content/less/gsoc/structure.less b/app/soc/content/less/gsoc/structure.less
index e6bab93..db179b8 100644
--- a/app/soc/content/less/gsoc/structure.less
+++ b/app/soc/content/less/gsoc/structure.less
@@ -1,9 +1,4 @@
 @import "common.less";
-/*////////////////
-
-  LessCSS
-
-////////////////*/
 
 // Images locations
 @image_form_submit_bg: "@{images_gsoc_location}/form-submit-bg.png";
@@ -23,594 +18,667 @@
 @grey: #f6f6f6;
 
 .imagereplace {
-    display: block;
-    font-size: 0;
-    line-height: 0;
-    text-indent: -9999em;
+  display: block;
+  font-size: 0;
+  line-height: 0;
+  text-indent: -9999em;
 }
 
-
 /*////////////////
 
   Structure
 
 ////////////////*/
 
-#page-header {/*logo and globe*/
-    background: #fff url(@image_header_bg) bottom left repeat-x;
-    height: 181px;
-    width: 100%;
-    .grid_12 {
-        height: 158px;
-        #gci {
-            height:15px;
-            padding: 5px 20px 5px 0;
-            text-align:right;
-            a {
-                font-size:12px;
-                font-weight:normal;
-                color: @lightblue;
-                text-decoration:none;
-            }
-        }
-    }
-    h1, p {
+#page-header {
+  /*logo and globe*/
+  background: #fff url(@image_header_bg) bottom left repeat-x;
+  height: 181px;
+  width: 100%;
+
+  .grid_12 {
+    height: 158px;
+
+    #gci {
+      height:15px;
+      padding: 5px 20px 5px 0;
+      text-align:right;
+
+      a {
         color: @lightblue;
+        font-size:12px;
+        font-weight:normal;
+        text-decoration:none;
+        }
+      }
+    }
+
+    h1,
+    p {
+      color: @lightblue;
+      font-size: 35px;
+      font-weight: bold;
+      line-height: 1em;
+      margin-left: 10px;
+
+      a {
+        color: @lightblue;
+        text-decoration: none;
+      }
+  }
+}
+
+#main {
+  /*main content container*/
+
+  .grid_9 {
+    background: @grey;
+    margin-left: 0;
+  }
+
+  .content {
+    overflow: hidden;
+    padding: 19px;
+  }
+
+  .block {
+    /*every block*/
+    background: #fff;
+    margin-bottom: 20px;
+
+    h4 {
+      /*block title*/
+      background: @lightbluebg;
+      color: #fff;
+      font-size: 15px;
+      line-height: 30px;
+      margin: 0;
+      padding: 0 0 0 7px;
+      text-transform: uppercase;
+    }
+
+    .block-content {
+      /*block content*/
+      overflow: hidden;
+      padding: 12px;
+
+      h5 {
+        color: @darkblue;
+        font-size: 20px;
+        font-weight: bold;
+        line-height: 1.1em;
+        margin: 0 0 8px 0;
+      }
+
+      p {
+        color: #000;
+        font-size: 12px;
+        line-height: 1.5em;
+      }
+    }
+
+    .readmore {
+      /*read more link in block*/
+      background: #dedede;
+      font-size: 13px;
+      font-weight: bold;
+      line-height: 25px;
+      padding: 3px 0 3px 9px;
+
+      a {
+        color: @orange;
+        text-decoration: none;
+      }
+    }
+
+    .org-home-readmore {
+      .readmore;
+      font-size: 13px;
+      padding: 3px 10px 3px 9px;
+      text-align: right;
+    }
+
+    div.block-title {
+      /*block title*/
+      background: #6eb5e5;
+      color: #fff;
+      font-size: 15px;
+      font-weight: bold;
+      line-height: 30px;
+      margin: 0;
+      padding: 0 0 0 7px;
+      text-transform: uppercase;
+    }
+  }
+
+  .home-block-1 {
+    /*how summer of code works*/
+    overflow: hidden;
+    width: 100%;
+
+    h2 {
+      color: @lightblue;
+      font-size: 27px;
+      font-weight: bold;
+      line-height: 1.7em;
+      margin: 0 0 0 12px;
+    }
+
+    h3 {
+      color: @lightblue;
+      font-size: 21px;
+      font-weight: normal;
+      margin: 0 0 0 12px;
+    }
+
+    ol {
+      /*numbered list*/
+      background: url(@image_home_block_1_bg_center) center center no-repeat;
+      float: left;
+      height: 218px;
+      list-style-type: none;
+      margin: 0 15px 0 0;
+      width: 429px;
+
+      li {
+        background-position: 13px center;
+        background-repeat: no-repeat;
+        color: @lightblue;
+        height: 72px;
+        font-size: 23px;
+        font-weight: bold;
+        padding: 0 0 0 136px;
+
+        strong {
+          display: block;
+          padding: 17px 10px 0 0;
+        }
+
+        span {
+          font-size: 13px;
+        }
+      }
+
+      li {
+        &.first {
+          background-image: url(@image_home_block_1_list_1);
+        }
+
+        &.second {
+          background-image: url(@image_home_block_1_list_2);
+
+          strong {
+            padding-top: 22px;
+          }
+        }
+
+        &.third {
+          background-image:url(@image_home_block_1_list_3);
+        }
+      }
+    }
+
+    .description p {
+      color: @orange;
+      font-size: 14px;
+      font-weight: bold;
+      margin: 10px 0 0 0;
+      padding-right: 10px;
+    }
+  }
+
+  .content_column_1 {
+    /*homepage left column*/
+    float: left;
+    width: 429px;
+
+    .block-students {
+      /*students apply now block*/
+      background: url(@image_home_block_students) 0 0 repeat-y;
+      color: #004371;
+      padding-bottom: 5px;
+      text-align: center;
+
+      h3 {
+        *background: url(@image_home_block_students) 0 0 no-repeat;
         font-size: 35px;
         font-weight: bold;
-        line-height: 1em;
-        margin-left: 10px;
+        line-height: 1.9em;
+        margin: 0;
+        text-transform: lowercase;
+      }
 
-        a {
-            color: @lightblue;
-            text-decoration: none;
-        }
-    }
-}
-#main {/*main content container*/
-
-    .grid_9 {
-        background: @grey;
-        margin-left: 0;
-    }
-    .content {
-        overflow: hidden;
-        padding: 19px;
-    }
-    .block {/*every block*/
-        background: #fff;
-        margin-bottom: 20px;
-        h4 {/*block title*/
-            background: @lightbluebg;
-            color: #fff;
-            font-size: 15px;
-            line-height: 30px;
-            margin: 0;
-            padding: 0 0 0 7px;
-            text-transform: uppercase;
-        }
-        .block-content {/*block content*/
-            overflow: hidden;
-            padding: 12px;
-            h5 {
-                color: @darkblue;
-                font-size: 20px;
-                font-weight: bold;
-                line-height: 1.1em;
-                margin: 0 0 8px 0;
-            }
-            p {
-                color: #000;
-                font-size: 12px;
-                line-height: 1.5em;
-            }
-        }
-        .readmore {/*read more link in block*/
-            background: #dedede;
-            font-size: 13px;
-            font-weight: bold;
-            line-height: 25px;
-            padding: 3px 0 3px 9px;
-            a {
-                color: @orange;
-                text-decoration: none;
-            }
-        }
-        .org-home-readmore {
-            .readmore;
-            text-align: right;
-            font-size: 13px;
-            padding: 3px 10px 3px 9px;
-        }
-        div.block-title {
-            /*block title*/
-            font-weight: bold;
-            background: #6eb5e5;
-            color: #fff;
-            font-size: 15px;
-            line-height: 30px;
-            margin: 0;
-            padding: 0 0 0 7px;
-            text-transform: uppercase;
-        }
-    }
-    .home-block-1 {/*how summer of code works*/
-        overflow: hidden;
-        width: 100%;
-            h2 {
-                color: @lightblue;
-                font-size: 27px;
-                font-weight: bold;
-                line-height: 1.7em;
-                margin: 0 0 0 12px;
-            }
-            h3 {
-                color: @lightblue;
-                font-size: 21px;
-                font-weight: normal;
-                margin: 0 0 0 12px;
-            }
-            ol {/*numbered list*/
-                background:url(@image_home_block_1_bg_center) center center no-repeat;
-                float: left;
-                height: 218px;
-                list-style-type: none;
-                margin: 0 15px 0 0;
-                width: 429px;
-                li {
-                    background-position: 13px center;
-                    background-repeat: no-repeat;
-                    color: @lightblue;
-                    height: 72px;
-                    font-size: 23px;
-                    font-weight: bold;
-                    padding: 0 0 0 136px;
-
-                    strong {
-                        display: block;
-                        padding: 17px 10px 0 0;
-                    }
-
-                    span {
-                        font-size: 13px;
-                    }
-                }
-                li.first {
-                    background-image:url(@image_home_block_1_list_1);
-                }
-                li.second {
-                    background-image:url(@image_home_block_1_list_2);
-
-                    strong {
-                        padding-top: 22px;
-                    }
-                }
-                li.third {
-                    background-image:url(@image_home_block_1_list_3);
-                }
-            }
-            .description p {
-                color: @orange;
-                font-size: 14px;
-                font-weight: bold;
-                margin: 10px 0 0 0;
-                padding-right: 10px;
-
-            }
-    }
-
-    .content_column_1 {/*homepage left column*/
-        float: left;
-        width: 429px;
-
-        .block-students {/*students apply now block*/
-            background:url(@image_home_block_students) 0 0 repeat-y;
-            color: #004371;
-            padding-bottom: 5px;
-            text-align: center;
-
-            h3 {
-                *background:url(@image_home_block_students) 0 0 no-repeat;
-                font-size: 35px;
-                font-weight: bold;
-                line-height: 1.9em;
-                margin: 0;
-                text-transform: lowercase;
-            }
-
-            p {
-                font-size: 14px;
-                font-weight: bold;
-                line-height: 1.5em;
-                margin: 0;
-
-                a {
-                    color: #004371;
-                    text-decoration: none;
-                }
-            }
-
-            p.action {
-                font-size: 20px;
-                margin-bottom: 5px;
-
-                a {
-                    background: #e57e30;
-                    color: #fff;
-                    padding: 3px 7px;
-                }
-
-                span {
-                    padding: 0 8px;
-                }
-            }
-            p.small {
-                color: #000;
-                font-size: 11px;
-                font-weight: normal;
-                margin-bottom: 5px;
-            }
-        }
-
-        .block-featured-project {/*featured project block*/
-            .block-content {
-                padding-bottom: 0;
-            }
-        }
-
-        #block-participants-content {
-            text-align: center;
-        }
-        .block-participants {/*participating orgs block*/
-            img {
-                margin: 0 10px 0 0;
-                vertical-align: middle;
-                max-height: 65px;
-                max-width: 65px;
-            }
-        }
-
-        .block-mentors {/*mentors apply now block*/
-            background:url(@image_home_block_students) 0 0 no-repeat;
-            color: #004371;
-            text-align: center;
-            padding-bottom: 15px;
-
-            h3 {
-                *background:url(@image_home_block_students) 0 0 no-repeat;
-                font-size: 35px;
-                font-weight: bold;
-                line-height: 1.9em;
-                margin: 0;
-                text-transform: lowercase;
-            }
-
-            p {
-                font-size: 14px;
-                font-weight: bold;
-                line-height: 1.5em;
-                margin: 0;
-
-                a {
-                    color: #004371;
-                    text-decoration: none;
-                }
-            }
-
-            p.action {
-                font-size: 20px;
-                margin-bottom: 5px;
-
-                a {
-                    background: #e57e30;
-                    color: #fff;
-                    padding: 3px 7px;
-                }
-
-                span {
-                    padding: 0 8px;
-                }
-            }
-            p.small {
-                color: #000;
-                font-size: 11px;
-                font-weight: normal;
-                margin-bottom: 5px;
-            }
-        }
-        .block-orgs {/*orgs apply now block*/
-            background:url(@image_home_block_students) 0 0 no-repeat;
-            color: #004371;
-            text-align: center;
-            padding-bottom: 15px;
-
-            h3 {
-                *background:url(@image_home_block_students) 0 0 no-repeat;
-                font-size: 33px;
-                font-weight: bold;
-                line-height: 1.9em;
-                margin: 0;
-                text-transform: lowercase;
-            }
-
-            p {
-                font-size: 14px;
-                font-weight: bold;
-                line-height: 1.5em;
-                margin: 0;
-
-                a {
-                    color: #004371;
-                    text-decoration: none;
-                }
-            }
-
-            p.action {
-                font-size: 20px;
-                margin-bottom: 5px;
-
-                a {
-                    background: #e57e30;
-                    color: #fff;
-                    padding: 3px 7px;
-                }
-
-                span {
-                    padding: 0 8px;
-                }
-            }
-            p.small {
-                color: #000;
-                font-size: 11px;
-                font-weight: normal;
-                margin-bottom: 5px;
-            }
-        }
-
-    }
-
-    .content_column_2 {/*homepage right column*/
-        float: right;
-        width: 213px;
-
-        .block-project-timeline {
-
-            .block-content {
-                padding: 12px 0 0 0;
-
-                .block-project-timeline-countdown {
-                    margin-top: 10px;
-                    text-align: center;
-
-                    .deadline {
-                        color: #3ba3dc;
-                        display: block;
-                        line-height: 1.2em;
-                    }
-                    .countdown {
-                        color: #D5620E;
-                        display: block;
-                        font-size: 16px;
-                        margin: 10px 0 15px 0;
-                    }
-                }
-            }
-        }
-
-        .block-connect {/*social network block*/
-
-            .social {
-                background-image:url(@image_social_icons);
-                background-position: 0 0;
-                background-repeat: no-repeat;
-                height: 31px;
-                float: left;
-                .imagereplace;
-            }
-
-            .fb {
-                margin-right: 13px;
-                width: 22px;
-            }
-            .tw {
-                background-position: -36px 0;
-                margin-right: 14px;
-                width: 27px;
-            }
-            .bl {
-                background-position: -77px 0;
-                margin-right: 11px;
-                width: 26px;
-            }
-            .em {
-                background-position: -114px 0;
-                margin-right: 11px;
-                width: 28px;
-            }
-            .irc {
-                background-position: -153px 0;
-                width: 29px;
-            }
-            .gp {
-                background-position: -193px 0;
-                width: 29px;
-            }
-        }
-
-        .block-blog-feed {/*recent blog posts block*/
-
-            .block-content {
-                padding-bottom: 2px;
-            }
-
-            .blog-item {
-                margin-bottom: 10px;
-
-                span {
-                    display: block;
-                    font-weight: bold;
-                }
-
-                .date {
-                    color: #999;
-                    font-size: 10px;
-                    line-height: 1.1em;
-                    text-transform: uppercase;
-                }
-
-                .title {
-                    font-size: 13px;
-                    line-height: 1.2em;
-
-                    a {
-                        text-decoration: none;
-                    }
-                }
-
-            }
-
-        }
-
-    }
-
-    .block-text {
-        p {
-            margin: 0;
-            a {
-                color: @lightblue;
-                font-weight: bold;
-            }
-        }
-    }
-
-    .action-link {
-        background: #EFAC4C;
-        padding: 3px 7px;
-
-        a {
-            color: white;
-            text-decoration: none;
-        }
-        a:link {
-            color: white;
-            text-decoration: none;
-        }
-    }
-    .action-button {
-        font-size: 21px;
-        font-weight: normal;
-        line-height: 1.3em;
-        margin: 0 0 1em 0;
-
-        .text {
-            color: #238BD2;
-            clear: left;
-            float: left;
-            width: 250px;
-            text-align: right;
-            margin-right: 10px;
-            padding-right: 10px;
-        }
-        .button-mixin (@button-background: url(@image_form_submit_bg) repeat scroll 0 0 transparent, @button-color: white) {
-            background: @button-background;
-            color: @button-color;
-            width: 90px;
-            padding: 3px;
-            text-decoration: none;
-            text-align: center;
-        }
-        .button {
-            .button-mixin;
-            cursor: pointer;
-        }
-        .button.disabled {
-            .button-mixin(url(@image_form_submit_bg_blue) repeat scroll 0 0 transparent, @grey);
-            cursor: default;
-        }
-    }
-
-    #organization-name {
-        padding-left: 10px;
-
-        h2 {
-            padding-top: 10px;
-            line-height: 1em;
-        }
-    }
-
-    .org-page-link {
-        margin: 5px 0 0 12px;
-    }
-    .project-long {/* Specifically applied to proposals detailed description. The rest is separate. */
-        pre {
-            background: none;
-            color: #000;
-            font: ~"12px/1.5em" Arial,'Helvetica Neue',Helvetica,sans-serif;
-            margin: 0;
-            code {
-                color: #000;
-                display: inline;
-                font: ~"12px/1.5em" Arial,'Helvetica Neue',Helvetica,sans-serif;
-                margin: 0;
-                padding: 0;
-            }
-        }
-        strong {
-            font-weight: bold;
-        }
-        em {
-            font-style: italic;
-        }
-        q {
-            margin-bottom: 10px;
-            border-left: 2px solid #CCCCCC;
-            font-style: normal;
-            margin-left: 2em;
-            padding-left: 1em;
-        }
-        blockquote {
-            margin-bottom: 10px;
-        }
-        h1, h2, h3, h4, h5, h6 {
-            color: #000;
-            margin-top: 10px;
-            margin-bottom: 10px;
-        }
-        h1 {
-            font-size: 20px;
-            line-height: 1.5em;
-        }
-        h2 {
-            font-size: 18px;
-            line-height: 1.5em;
-        }
-        h3 {
-            font-size: 16px;
-            line-height: 1.5em;
-        }
-        h4 {
-            font-size: 14px;
-            line-height: 1.5em;
-        }
-        h5 {
-            font-size: 13px;
-            line-height: 1.5em;
-        }
-        h6 {
-            font-size: 12px;
-            line-height: 1.5em;
-        }
-    }
-
-    #description-section-redirect-message a {
-        text-decoration: none;
-        background: @orange;
-        color: #fff;
-        padding: 3px 7px;
-        font-size: 13px;
+      p {
+        font-size: 14px;
         font-weight: bold;
+        line-height: 1.5em;
+        margin: 0;
+
+        a {
+          color: #004371;
+          text-decoration: none;
+        }
+
+        &.action {
+          font-size: 20px;
+          margin-bottom: 5px;
+
+          a {
+            background: #e57e30;
+            color: #fff;
+            padding: 3px 7px;
+          }
+
+          span {
+            padding: 0 8px;
+          }
+        }
+
+        &.small {
+          color: #000;
+          font-size: 11px;
+          font-weight: normal;
+          margin-bottom: 5px;
+        }
+      }
     }
 
+    .block-featured-project {
+      /*featured project block*/
+      .block-content {
+        padding-bottom: 0;
+      }
+    }
+
+    #block-participants-content {
+      text-align: center;
+    }
+
+    .block-participants {
+      /*participating orgs block*/
+      img {
+        margin: 0 10px 0 0;
+        max-height: 65px;
+        max-width: 65px;
+        vertical-align: middle;
+      }
+    }
+
+    .block-mentors {
+      /*mentors apply now block*/
+      background: url(@image_home_block_students) 0 0 no-repeat;
+      color: #004371;
+      text-align: center;
+      padding-bottom: 15px;
+
+      h3 {
+        *background: url(@image_home_block_students) 0 0 no-repeat;
+        font-size: 35px;
+        font-weight: bold;
+        line-height: 1.9em;
+        margin: 0;
+        text-transform: lowercase;
+      }
+
+      p {
+        font-size: 14px;
+        font-weight: bold;
+        line-height: 1.5em;
+        margin: 0;
+
+        a {
+          color: #004371;
+          text-decoration: none;
+        }
+      }
+
+      p {
+        &.action {
+          font-size: 20px;
+          margin-bottom: 5px;
+
+          a {
+            background: #e57e30;
+            color: #fff;
+            padding: 3px 7px;
+          }
+
+          span {
+            padding: 0 8px;
+          }
+        }
+
+        &.small {
+          color: #000;
+          font-size: 11px;
+          font-weight: normal;
+          margin-bottom: 5px;
+        }
+      }
+    }
+
+    .block-orgs {
+      /*orgs apply now block*/
+      background: url(@image_home_block_students) 0 0 no-repeat;
+      color: #004371;
+      text-align: center;
+      padding-bottom: 15px;
+
+      h3 {
+        *background: url(@image_home_block_students) 0 0 no-repeat;
+        font-size: 33px;
+        font-weight: bold;
+        line-height: 1.9em;
+        margin: 0;
+        text-transform: lowercase;
+      }
+
+      p {
+        font-size: 14px;
+        font-weight: bold;
+        line-height: 1.5em;
+        margin: 0;
+
+        a {
+          color: #004371;
+          text-decoration: none;
+        }
+      }
+
+      p {
+        &.action {
+          font-size: 20px;
+          margin-bottom: 5px;
+
+          a {
+            background: #e57e30;
+            color: #fff;
+            padding: 3px 7px;
+          }
+
+          span {
+            padding: 0 8px;
+          }
+        }
+
+        &.small {
+          color: #000;
+          font-size: 11px;
+          font-weight: normal;
+          margin-bottom: 5px;
+        }
+      }
+    }
+  }
+
+  .content_column_2 {
+    /*homepage right column*/
+    float: right;
+    width: 213px;
+
+    .block-project-timeline {
+      .block-content {
+        padding: 12px 0 0 0;
+
+        .block-project-timeline-countdown {
+          margin-top: 10px;
+          text-align: center;
+
+          .deadline {
+            color: #3ba3dc;
+            display: block;
+            line-height: 1.2em;
+          }
+
+          .countdown {
+            color: #D5620E;
+            display: block;
+            font-size: 16px;
+            margin: 10px 0 15px 0;
+          }
+        }
+      }
+    }
+
+    .block-connect {
+      /*social network block*/
+      .social {
+        background-image: url(@image_social_icons);
+        background-position: 0 0;
+        background-repeat: no-repeat;
+        height: 31px;
+        float: left;
+        .imagereplace;
+      }
+
+      .fb {
+        margin-right: 13px;
+        width: 22px;
+      }
+
+      .tw {
+        background-position: -36px 0;
+        margin-right: 14px;
+        width: 27px;
+      }
+
+      .bl {
+        background-position: -77px 0;
+        margin-right: 11px;
+        width: 26px;
+      }
+
+      .em {
+        background-position: -114px 0;
+        margin-right: 11px;
+        width: 28px;
+      }
+
+      .irc {
+        background-position: -153px 0;
+        width: 29px;
+      }
+
+      .gp {
+        background-position: -193px 0;
+        width: 29px;
+      }
+    }
+
+    .block-blog-feed {
+      /*recent blog posts block*/
+      .block-content {
+        padding-bottom: 2px;
+      }
+
+      .blog-item {
+        margin-bottom: 10px;
+
+        span {
+          display: block;
+          font-weight: bold;
+        }
+
+        .date {
+          color: #999;
+          font-size: 10px;
+          line-height: 1.1em;
+          text-transform: uppercase;
+        }
+
+        .title {
+          font-size: 13px;
+          line-height: 1.2em;
+
+          a {
+            text-decoration: none;
+          }
+        }
+      }
+    }
+  }
+
+  .block-text {
+    p {
+      margin: 0;
+      a {
+        color: @lightblue;
+        font-weight: bold;
+      }
+    }
+  }
+
+  .action-link {
+    background: #EFAC4C;
+    padding: 3px 7px;
+
+    a {
+      color: white;
+      text-decoration: none;
+
+      &:link {
+        color: white;
+        text-decoration: none;
+      }
+    }
+  }
+
+  .action-button {
+    font-size: 21px;
+    font-weight: normal;
+    line-height: 1.3em;
+    margin: 0 0 1em 0;
+
+    .text {
+      clear: left;
+      color: #238BD2;
+      float: left;
+      margin-right: 10px;
+      padding-right: 10px;
+      text-align: right;
+      width: 250px;
+    }
+
+    .button-mixin (@button-background: url(@image_form_submit_bg) repeat scroll 0 0 transparent, @button-color: white) {
+      background: @button-background;
+      color: @button-color;
+      padding: 3px;
+      text-decoration: none;
+      text-align: center;
+      width: 90px;
+    }
+
+    .button {
+      .button-mixin;
+      cursor: pointer;
+
+      &.disabled {
+        .button-mixin(url(@image_form_submit_bg_blue) repeat scroll 0 0 transparent, @grey);
+        cursor: default;
+      }
+    }
+  }
+
+  #organization-name {
+    padding-left: 10px;
+
+    h2 {
+      line-height: 1em;
+      padding-top: 10px;
+    }
+  }
+
+  .org-page-link {
+    margin: 5px 0 0 12px;
+  }
+  .project-long {
+    /* Specifically applied to proposals detailed description. The rest is separate. */
+    pre {
+      background: none;
+      color: #000;
+      font: ~"12px/1.5em" Arial,'Helvetica Neue',Helvetica,sans-serif;
+      margin: 0;
+
+      code {
+        color: #000;
+        display: inline;
+        font: ~"12px/1.5em" Arial,'Helvetica Neue',Helvetica,sans-serif;
+        margin: 0;
+        padding: 0;
+      }
+    }
+
+    strong {
+      font-weight: bold;
+    }
+
+    em {
+      font-style: italic;
+    }
+
+    q {
+      border-left: 2px solid #CCCCCC;
+      font-style: normal;
+      margin-bottom: 10px;
+      margin-left: 2em;
+      padding-left: 1em;
+    }
+
+    blockquote {
+      margin-bottom: 10px;
+    }
+
+    h1,
+    h2,
+    h3,
+    h4,
+    h5,
+    h6 {
+      color: #000;
+      margin-bottom: 10px;
+      margin-top: 10px;
+    }
+
+    h1 {
+      font-size: 20px;
+      line-height: 1.5em;
+    }
+
+    h2 {
+      font-size: 18px;
+      line-height: 1.5em;
+    }
+
+    h3 {
+      font-size: 16px;
+      line-height: 1.5em;
+    }
+
+    h4 {
+      font-size: 14px;
+      line-height: 1.5em;
+    }
+
+    h5 {
+      font-size: 13px;
+      line-height: 1.5em;
+    }
+
+    h6 {
+      font-size: 12px;
+      line-height: 1.5em;
+    }
+  }
+
+  #description-section-redirect-message a {
+    background: @orange;
+    color: #fff;
+    font-size: 13px;
+    font-weight: bold;
+    padding: 3px 7px;
+    text-decoration: none;
+  }
+
 }
 
 /*////////////////
@@ -618,385 +686,425 @@
   Footer
 
 ////////////////*/
-#footer {/*footer container*/
-    .grid_3 {
-        margin-right: 0;
-    }
-    .grid_9 {
-        font-size: 14px;
-        font-weight: bold;
-        margin-left: 0;
-        padding: 20px 0 25px 0;
-        text-align: center;
-        text-transform: uppercase;
+#footer {
+  /*footer container*/
+  .grid_3 {
+    margin-right: 0;
+  }
+
+  .grid_9 {
+    font-size: 14px;
+    font-weight: bold;
+    margin-left: 0;
+    padding: 20px 0 25px 0;
+    text-align: center;
+    text-transform: uppercase;
+  }
+
+  .footer-meta {
+    /*powered by/empowered by*/
+    color: #4496ce;
+
+    a {
+      color: #4496ce;
+      text-decoration: none;
     }
 
-    .footer-meta {/*powered by/empowered by*/
-        color: #4496ce;
+    .powered {
+      padding-right: 15px;
+    }
+
+    img {
+      vertical-align: bottom;
+    }
+
+    .version {
+      font-size: 10px;
+    }
+  }
+
+  .footer-menu {
+    /*menu in footer*/
+    float: left;
+    margin: 0 0 12px 0;
+    overflow: hidden;
+    position: relative;
+    width: 100%;
+
+    ul {
+      clear: left;
+      float: left;
+      left: 50%;
+      list-style: none;
+      margin: 0;
+      padding: 0;
+      position: relative;
+      text-align: center;
+
+      li {
+        display: block;
+        float: left;
+        list-style: none;
+        margin: 0;
+        padding: 0 20px 0 0;
+        position: relative;
+        right: 50%;
 
         a {
-            color: #4496ce;
-            text-decoration: none;
-        }
-        .powered {
-            padding-right: 15px;
-        }
-        img {
-            vertical-align: bottom;
-        }
-        .version {
-            font-size: 10px;
-        }
-    }
-    .footer-menu {/*menu in footer*/
-        float: left;
-        overflow:hidden;
-        margin: 0 0 12px 0;
-        position:relative;
-        width: 100%;
-
-        ul {
-            clear:left;
-            float:left;
-            left:50%;
-            list-style:none;
-            margin:0;
-            padding:0;
-            position:relative;
-            text-align:center;
+          display: block;
+          text-decoration: none;
         }
 
-        ul li {
-            display:block;
-            float:left;
-            list-style:none;
-            margin:0;
-            padding:0 20px 0 0;
-            position:relative;
-            right:50%;
-
-            a {
-                display:block;
-                text-decoration: none;
-            }
-
+        &.last {
+          padding-right: 0px;
         }
-
-        ul li.last {
-            padding-right: 0px;
-        }
-
-        .social {/*social network links in footer*/
-            padding: 3px 0 0 0;
-
-            a {
-                background-image:url(@image_social_icons);
-                background-position: 0 -34px;
-                background-repeat: no-repeat;
-                height: 14px;
-                .imagereplace;
-            }
-
-            .gp {
-                background-position: -100px -34px;
-                width: 22px;
-            }
-            .fb {
-                width: 16px;
-            }
-            .tw {
-                background-position: -16px -34px;
-                width: 20px;
-            }
-            .bl {
-                background-position: -36px -34px;
-                width: 20px;
-            }
-            .em {
-                background-position: -56px -34px;
-                width: 24px;
-            }
-            .irc {
-                background-position: -80px -34px;
-                margin-right: 20px;
-                width: 22px;
-            }
-        }
-
+      }
     }
 
+    .social {
+      /*social network links in footer*/
+      padding: 3px 0 0 0;
+
+      a {
+        background-image: url(@image_social_icons);
+        background-position: 0 -34px;
+        background-repeat: no-repeat;
+        height: 14px;
+        .imagereplace;
+      }
+
+      .gp {
+        background-position: -100px -34px;
+        width: 22px;
+      }
+
+      .fb {
+        width: 16px;
+      }
+
+      .tw {
+        background-position: -16px -34px;
+        width: 20px;
+      }
+
+      .bl {
+        background-position: -36px -34px;
+        width: 20px;
+      }
+
+      .em {
+        background-position: -56px -34px;
+        width: 24px;
+      }
+
+      .irc {
+        background-position: -80px -34px;
+        margin-right: 20px;
+        width: 22px;
+      }
+    }
+  }
 }
+
 /*////////////////
 
   Projects pages
 
 ////////////////*/
+
 h2#project-page-student-name {
-    font-size: 21px;
-    font-weight: normal;
-    line-height: 1.3em;
-    margin: 0 0 10px 0;
+  font-size: 21px;
+  font-weight: normal;
+  line-height: 1.3em;
+  margin: 0 0 10px 0;
 }
 
-.project-edit-link {/* Edit link styling on proposal review page*/
-    font-size: 12px;
-    margin: 0 0 15px 0;
+.project-edit-link {
+  /* Edit link styling on proposal review page*/
+  font-size: 12px;
+  margin: 0 0 15px 0;
 }
 
 .project-long {
-    padding: 15px 15px 0 15px;
+  padding: 15px 15px 0 15px;
 
-    p {
-        line-height: 1.6em;
-        margin: 0 0 10px 0;
-    }
+  p {
+    line-height: 1.6em;
+    margin: 0 0 10px 0;
+  }
 }
 
 .project-short {
-    background: #fff;
-    border: 1px solid #ebebeb;
-    padding: 15px;
+  background: #fff;
+  border: 1px solid #ebebeb;
+  padding: 15px;
 
-    p {
-        line-height: 1.6em;
-        margin: 0;
+  p {
+    line-height: 1.6em;
+    margin: 0;
 
-        &.project-possible-mentor {
-            margin: 0 0 10px 0;
-        }
+    &.project-possible-mentor {
+      margin: 0 0 10px 0;
     }
+  }
 }
 
 .score {
-    display: block;
-    overflow: hidden;
-    padding: 0 0 0 18px;
+  display: block;
+  overflow: hidden;
+  padding: 0 0 0 18px;
 
-    .score-cumulative {
-        margin-left: 50px;
+  .score-cumulative {
+    margin-left: 50px;
 
-        .score-cumulative-edit {
-            font-weight: bold;
-            line-height: 1em;
-            margin: 5px 0 0 0;
-        }
+    .score-cumulative-edit {
+      font-weight: bold;
+      line-height: 1em;
+      margin: 5px 0 0 0;
     }
-    .score-average, .score-cumulative {
-        float: left;
+  }
 
-        em {
-            color: #989898;
-            font-size: 11px;
-            font-weight: bold;
-        }
+  .score-average,
+  .score-cumulative {
+    float: left;
+
+    em {
+      color: #989898;
+      font-size: 11px;
+      font-weight: bold;
     }
-    .score-add {
-        float: left;
-        margin-left: 50px;
-    }
-    .stars img {
-        vertical-align: text-bottom;
-    }
+  }
+
+  .score-add {
+    float: left;
+    margin-left: 50px;
+  }
+
+  .stars img {
+    vertical-align: text-bottom;
+  }
 }
+
 .project-meta {
-    color: #238bd2;
-    display: block;
-    font-size: 11px;
-    line-height: 1em;
-    margin: 15px 0 10px 0;
-    overflow: hidden;
+  color: #238bd2;
+  display: block;
+  font-size: 11px;
+  line-height: 1em;
+  margin: 15px 0 10px 0;
+  overflow: hidden;
 
-    a {
-        color: #238bd2;
-        font-weight: bold;
-        padding: 0 3px;
-        text-decoration: none;
-        text-transform: uppercase;
-    }
-    .comment-link {
-        float: left;
-        padding-left: 18px;
-        width: 410px;
-    }
-    .subscribe-link {
-        float: right;
-        padding-right: 10px;
-        text-align: right;
-        width: 200px;
-    }
+  a {
+    color: #238bd2;
+    font-weight: bold;
+    padding: 0 3px;
+    text-decoration: none;
+    text-transform: uppercase;
+  }
+
+  .comment-link {
+    float: left;
+    padding-left: 18px;
+    width: 410px;
+  }
+
+  .subscribe-link {
+    float: right;
+    padding-right: 10px;
+    text-align: right;
+    width: 200px;
+  }
 }
+
 /*////////////////
 
   Comments
 
 ////////////////*/
 .project-comment-container {
-    background: #e1edf5;
-    margin: 20px auto 30px auto;
-    padding: 20px 0;
-    width: 570px;
+  background: #e1edf5;
+  margin: 20px auto 30px auto;
+  padding: 20px 0;
+  width: 570px;
 
-    .project-comment-box {
-        background: #cde5f5;
-        display: block;
-        margin: 0 auto 16px auto;
-        overflow: hidden;
-        padding: 0;
-        width: 524px;
+  .project-comment-box {
+    background: #cde5f5;
+    display: block;
+    margin: 0 auto 16px auto;
+    overflow: hidden;
+    padding: 0;
+    width: 524px;
 
-        h3 {
-            color: #799EB8;
-            font-size: 12px;
-            font-weight: bold;
-            margin: 0 0 10px 0;
-            padding: 10px 0 0 10px;
+    h3 {
+      color: #799EB8;
+      font-size: 12px;
+      font-weight: bold;
+      margin: 0 0 10px 0;
+      padding: 10px 0 0 10px;
+      text-transform: uppercase;
+    }
+
+    .project-comment-single {
+      background: #f0f7fc;
+      display: block;
+      margin: 0 0 15px 0;
+      overflow: hidden;
+      padding: 15px;
+
+      .project-comment-score {
+        color: #4d4d4d;
+        font-style: italic;
+        margin: 0 0 3px 0;
+      }
+
+      .project-comment-meta {
+        margin: 0 0 3px 0;
+
+        strong {
+          color: #4d4d4d;
+          font-style: italic;
+          padding-right: 5px;
+        }
+
+        a {
+          color: #208ad3;
+          text-decoration: none;
+        }
+
+        span {
+          color: #919191;
+          font-style: italic;
+          padding-left: 4px;
+        }
+      }
+
+      p {
+        line-height: 1.6em;
+        margin: 0 0 8px 0;
+
+        &.comment-reply-link {
+          display: block;
+          float: right;
+          font-size: 11px;
+          line-height: 1em;
+          margin: 0;
+
+          a {
+            display: block;
+            color: #208ad3;
+            text-decoration: none;
             text-transform: uppercase;
-        }
-        .project-comment-single {
-            background: #f0f7fc;
-            display: block;
-            margin: 0 0 15px 0;
-            overflow: hidden;
-            padding: 15px;
+            padding: 5px 7px 5px 7px;
+          }
 
-            .project-comment-score {
-                color: #4d4d4d;
-                font-style: italic;
-                margin: 0 0 3px 0;
-            }
-            .project-comment-meta {
-                margin: 0 0 3px 0;
-
-                strong {
-                    color: #4d4d4d;
-                    font-style: italic;
-                    padding-right: 5px;
-                }
-                a {
-                    color: #208ad3;
-                    text-decoration: none;
-                }
-                span {
-                    color: #919191;
-                    font-style: italic;
-                    padding-left: 4px;
-                }
-            }
-            p {
-                line-height: 1.6em;
-                margin: 0 0 8px 0;
-
-                &.comment-reply-link {
-                    display: block;
-                    float: right;
-                    font-size: 11px;
-                    line-height: 1em;
-                    margin: 0;
-
-                    a {
-                        display: block;
-                        color: #208ad3;
-                        text-decoration: none;
-                        text-transform: uppercase;
-                        padding: 5px 7px 5px 7px;
-                    }
-                    &.active a {
-                        background: #cde5f5;
-                    }
-                }
-            }
-        }
-        .project-comment-single-reply {
-            display: block;
-            clear: both;
-            overflow: hidden;
-            padding: 15px 0 0 0;
-        }
-        .comment-reply {
+          &.active a {
             background: #cde5f5;
-            clear: both;
-            display: block;
-            padding: 10px 12px;
+          }
         }
+      }
     }
-    .project-comment-private-container {
-        background: #dddddd;
 
-        h3 {
-            color: #666;
-        }
-        .project-comment-single {
-            background: #f5f5f5;
-        }
+    .project-comment-single-reply {
+      clear: both;
+      display: block;
+      overflow: hidden;
+      padding: 15px 0 0 0;
     }
+
+    .comment-reply {
+      background: #cde5f5;
+      clear: both;
+      display: block;
+      padding: 10px 12px;
+    }
+  }
+
+  .project-comment-private-container {
+    background: #dddddd;
+
+    h3 {
+      color: #666;
+    }
+    .project-comment-single {
+      background: #f5f5f5;
+    }
+  }
 }
 
 p.reply-logged-in {
-    color: #666;
-    font-style: italic;
-    font-weight: bold;
-    margin: 0 0 3px 0;
+  color: #666;
+  font-style: italic;
+  font-weight: bold;
+  margin: 0 0 3px 0;
 
-    a {
-        font-style: normal;
-        font-weight: normal;
-    }
+  a {
+    font-style: normal;
+    font-weight: normal;
+  }
 }
+
 /*////////////////
 
   Requests
 
 ////////////////*/
 .request-message {
-    p {
-        line-height: 1.6em;
-        margin: 0 0 10px 0;
-    }
+  p {
+    line-height: 1.6em;
+    margin: 0 0 10px 0;
+  }
 }
 
 .request-summary {
-    background: #fff;
-    border: 1px solid #ebebeb;
-    padding: 15px;
+  background: #fff;
+  border: 1px solid #ebebeb;
+  padding: 15px;
 
-    p {
-        line-height: 1.6em;
-        margin: 0;
-    }
+  p {
+    line-height: 1.6em;
+    margin: 0;
+  }
 }
 
 .request-response {
-    padding: 20px 0 0 0;
+  padding: 20px 0 0 0;
 }
+
 /*////////////////
 
   User Login
 
 ////////////////*/
 #user-login {
-    margin: 0 0 10px 0;
-    text-align: right;
-    p {
-        color: #989898;
-        font-style: italic;
-        margin: 0;
-    }
-    a {
-        font-style: normal;
-        font-weight: normal;
-    }
-}
-#sort {
-    text-align: right;
-    margin-bottom: 7px;
-    vertical-align: bottom;
+  margin: 0 0 10px 0;
+  text-align: right;
 
-    .selector {/* make this class explicitly blank*/}
-    select {
-        min-width: 0;
-    }
-    span {
-        width: 85px;
-        text-align: left;
-    }
+  p {
+    color: #989898;
+    font-style: italic;
+    margin: 0;
+  }
+
+  a {
+    font-style: normal;
+    font-weight: normal;
+  }
+}
+
+#sort {
+  margin-bottom: 7px;
+  text-align: right;
+  vertical-align: bottom;
+
+  .selector {
+    /* make this class explicitly blank*/
+  }
+
+  select {
+    min-width: 0;
+  }
+
+  span {
+    text-align: left;
+    width: 85px;
+  }
 }
diff --git a/app/soc/content/less/gsoc/surveys.less b/app/soc/content/less/gsoc/surveys.less
index efc6451..86f5873 100644
--- a/app/soc/content/less/gsoc/surveys.less
+++ b/app/soc/content/less/gsoc/surveys.less
@@ -1,264 +1,314 @@
 @import "common.less";
-/*////////////////
-
-  LessCSS
-
-////////////////*/
 
 // Images locations
-@image_survey_background: "@{images_location}/ui-icons_ef8c08_256x240.png";
 @image_grippie: "@{images_gsoc_location}/grippie.png";
+@image_survey_background: "@{images_location}/ui-icons_ef8c08_256x240.png";
 
 /* @group Global */
-button, input, textarea {
-    font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
-    font-size: 13px;
+button,
+input,
+textarea {
+  font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
+  font-size: 13px;
 }
-a, a:active, a:visited {
-    color: #f28c00;
-    text-decoration: none;
+
+a,
+a:active,
+a:visited {
+  color: #f28c00;
+  text-decoration: none;
 }
-input::-moz-focus-inner {/*Remove FF button padding*/
-    border: 0;
-    padding: 0;
+
+input::-moz-focus-inner {
+  /*Remove FF button padding*/
+  border: 0;
+  padding: 0;
 }
+
 .clearfix {
-    zoom: 1; /* IE < 8 */
-    &:before, &:after {
-        content: ".";
-        display: block;
-        height: 0;
-        visibility: hidden;
-    }
-    &:after {
-        clear: both;
-    }
+  zoom: 1; /* IE < 8 */
+
+  &:before,
+  &:after {
+    content: ".";
+    display: block;
+    height: 0;
+    visibility: hidden;
+  }
+
+  &:after {
+    clear: both;
+  }
 }
 /* @end */
 
 /* @group Wrappers */
-#form-wrap {/*Form wrap DIV*/
-    margin: 0 auto;
-    width: 550px;
+#form-wrap {
+  /*Form wrap DIV*/
+  margin: 0 auto;
+  width: 550px;
 }
-#form-builder {/*Parent UL*/
-    margin: 10px 0;
+
+#form-builder {
+  /*Parent UL*/
+  margin: 10px 0;
+  padding: 0;
+
+  ul,
+  ul li {
+    margin: 0;
+    list-style-type: none;
     padding: 0;
+  }
 
-    ul, ul li {
-        margin: 0;
-        padding: 0;
-        list-style-type: none;
+  .frmb {
+    /*Each form item*/
+    li {
+      margin: 10px 0;
     }
-    .frmb {/*Each form item*/
-        li {
-            margin: 10px 0;
-        }
-    }
-    .legend {/*Form item title*/
-        background: #6EB5E5;
-        color: #fff;
-        cursor: move;
-        font-size: 14px;
-        padding: 5px;
-    }
-    .legend .toggle-form {
-        background: #f6f6f6 url(@image_survey_background) 0 0 no-repeat;
-        border: 1px solid #ccc;
-        border-radius: 4px;
-        -moz-border-radius: 4px;
-        -webkit-border-radius: 4px;
-        height: 16px;
-        width: 16px;
-        display: block;
-        text-indent: -9999em;
-        font-size: 1px;
-        overflow: hidden;
-        line-height: 0;
-        background-position: -16px -192px;
-        float: right;
+  }
 
-        &.closed {/*Show*/
-            background-position: 0 -192px;
-        }
-    }
-    .del-button {/*Delete*/
-        background: #f6f6f6;
-        border: 1px solid #ccc;
-        border-radius: 4px;
-        -moz-border-radius: 4px;
-        -webkit-border-radius: 4px;
-        clear: both;
-        color: #b6b6b6;
-        display: block;
-        float: right;
-        font-size: 11px;
-        font-weight: bold;
-        height: 16px;
-        line-height: 16px;
-        margin: 0 5px 0 0;
-        padding: 0 4px;
-        text-decoration: none;
-        text-transform: uppercase;
-    }
-    a {
+  .legend {
+    /*Form item title*/
+    background: #6EB5E5;
+    color: #fff;
+    cursor: move;
+    font-size: 14px;
+    padding: 5px;
 
-        &.remove, &.add {/*Checkbox Add & Remove*/
-            background: #f6f6f6;
-            border: 1px solid #ccc;
-            border-radius: 4px;
-            -moz-border-radius: 4px;
-            -webkit-border-radius: 4px;
-            display: block;
-            float: left;
-            font-size: 11px;
-            font-weight: bold;
-            height: 16px;
-            line-height: 16px;
-            margin: 3px 0 0 5px;
-            padding: 0 4px;
-            text-transform: uppercase;
-            color: #f28c00;
-            text-decoration: none;
-        }
-        &.add {
-            margin: 0;
+    .toggle-form {
+      background: #f6f6f6 url(@image_survey_background) 0 0 no-repeat;
+      background-position: -16px -192px;
+      border: 1px solid #ccc;
+      border-radius: 4px;
+      -moz-border-radius: 4px;
+      -webkit-border-radius: 4px;
+      display: block;
+      float: right;
+      font-size: 1px;
+      height: 16px;
+      line-height: 0;
+      overflow: hidden;
+      text-indent: -9999em;
+      width: 16px;
 
-            &:hover {/*Hover states*/
-                border: 1px solid #fbcb09;
-                background-color: #fdf5ce;
-            }
-        }
+      &.closed {
+        /*Show*/
+        background-position: 0 -192px;
+      }
     }
-    .legend .toggle-form:hover,
-    .del-button:hover,
-    a.remove:hover {/*Hover states*/
-        border: 1px solid #fbcb09;
+  }
+
+  .del-button {
+    /*Delete*/
+    background: #f6f6f6;
+    border: 1px solid #ccc;
+    border-radius: 4px;
+    -moz-border-radius: 4px;
+    -webkit-border-radius: 4px;
+    color: #b6b6b6;
+    clear: both;
+    display: block;
+    float: right;
+    font-size: 11px;
+    font-weight: bold;
+    height: 16px;
+    line-height: 16px;
+    margin: 0 5px 0 0;
+    padding: 0 4px;
+    text-decoration: none;
+    text-transform: uppercase;
+  }
+
+  a {
+    &.remove,
+    &.add {
+      /*Checkbox Add & Remove*/
+      background: #f6f6f6;
+      border: 1px solid #ccc;
+      border-radius: 4px;
+      -moz-border-radius: 4px;
+      -webkit-border-radius: 4px;
+      color: #f28c00;
+      display: block;
+      float: left;
+      font-size: 11px;
+      font-weight: bold;
+      height: 16px;
+      line-height: 16px;
+      margin: 3px 0 0 5px;
+      padding: 0 4px;
+      text-decoration: none;
+      text-transform: uppercase;
+    }
+
+    &.add {
+      margin: 0;
+
+      &:hover {
+        /*Hover states*/
         background-color: #fdf5ce;
+        border: 1px solid #fbcb09;
+      }
     }
-    .del-button:hover {
-        color: #f28c00;
-    }
+  }
+
+  .legend .toggle-form:hover,
+  .del-button:hover,
+  a.remove:hover {
+    /*Hover states*/
+    background-color: #fdf5ce;
+    border: 1px solid #fbcb09;
+  }
+
+  .del-button:hover {
+    color: #f28c00;
+  }
 }
 /* @end */
 
 /* @group Buttons/Triggers */
 #form-wrap {
-    .frmb-submit {/*Style all button elements*/
-        background: #E57E30;
-        border: 0;
-        color: #fff;
-        display: block;
-        float: left;
-        font-size: 14px;
-        font-weight: bold;
-        margin-top: 10px;
-        padding: 3px 7px;
-    }
+  .frmb-submit {
+    /*Style all button elements*/
+    background: #E57E30;
+    border: 0;
+    color: #fff;
+    display: block;
+    float: left;
+    font-size: 14px;
+    font-weight: bold;
+    margin-top: 10px;
+    padding: 3px 7px;
+  }
 
-    #preview-form {
-        margin-left: 10px;
-    }
+  #preview-form {
+    margin-left: 10px;
+  }
 }
 /* @end */
 
 /* @group Form Items */
-.frm-holder {/*Container for .frm-elements*/
-    background: #fff;
-    border-left: 1px solid #DEDEDE;
-    border-right: 1px solid #DEDEDE;
-    border-bottom: 1px solid #DEDEDE;
-    display: block;
-    overflow: hidden;
-    padding: 8px 0;
+.frm-holder {
+  /*Container for .frm-elements*/
+  background: #fff;
+  border-bottom: 1px solid #DEDEDE;
+  border-left: 1px solid #DEDEDE;
+  border-right: 1px solid #DEDEDE;
+  display: block;
+  overflow: hidden;
+  padding: 8px 0;
 }
-.frm-elements {/*Inner form item contrainer*/
-    label {
-        width: 120px;
-        float: left;
-        margin: 0 15px;
-        line-height: 24px;
-    }
-    .false-label {
-        width: 120px;
-        float: left;
-        margin: 0 15px;
-        line-height: 24px;
-    }
-    input[type=text] {
-        float: left;
-        width: 280px;
-    }
-    .fields {
-        float: left;
 
-        input[type=checkbox], input[type=radio] {
-            float: left;
-            margin: 5px 10px 0 0;
-        }
-        input[type=text] {
-            width: 220px;
-            margin-top: 0;
-        }
-        div {
-            background:url(@image_grippie) 0 0 repeat-y;
-            clear: both;
-            float: left;
-            width: 350px;
-            padding-left: 10px;
-            margin-bottom: 5px;
-            &.add-area {
-                background: none;
-            }
-            &:hover {
-                cursor: move;
-            }
-        }
-        label.auto {
-            width: auto;
-            margin: 0 0 5px 0;
-        }
-        .remove {
-            float: right;
-        }
-        .add-area {
-            display: block;
-            margin-top: 5px;
-            overflow: hidden;
-            width: 295px;
-        }
+.frm-elements {
+  /*Inner form item contrainer*/
+  label {
+    float: left;
+    line-height: 24px;
+    margin: 0 15px;
+    width: 120px;
+  }
+
+  .false-label {
+    float: left;
+    line-height: 24px;
+    margin: 0 15px;
+    width: 120px;
+  }
+
+  input[type=text] {
+    float: left;
+    width: 280px;
+  }
+
+  .fields {
+    float: left;
+
+    input[type=checkbox],
+    input[type=radio] {
+      float: left;
+      margin: 5px 10px 0 0;
     }
-    .false-label, .fields {
-        margin-top: 10px;
+
+    input[type=text] {
+      width: 220px;
+      margin-top: 0;
     }
+
+    div {
+      background: url(@image_grippie) 0 0 repeat-y;
+      clear: both;
+      float: left;
+      margin-bottom: 5px;
+      padding-left: 10px;
+      width: 350px;
+
+      &.add-area {
+        background: none;
+      }
+
+      &:hover {
+        cursor: move;
+      }
+    }
+
+    label.auto {
+      margin: 0 0 5px 0;
+      width: auto;
+    }
+
+    .remove {
+      float: right;
+    }
+
+    .add-area {
+      display: block;
+      margin-top: 5px;
+      overflow: hidden;
+      width: 295px;
+    }
+  }
+
+  .false-label, .fields {
+    margin-top: 10px;
+  }
 }
+
 .frm-fld-req {
-    clear: both;
-    display: block;
-    padding-top: 10px;
-    input {
-        margin: 4px 0 0 0;
-    }
+  clear: both;
+  display: block;
+  padding-top: 10px;
+
+  input {
+    margin: 4px 0 0 0;
+  }
 }
+
 .frm-fld-other {
-    clear: both;
-    display: block;
-    padding-top: 10px;
-    input {
-        margin: 4px 0 0 0;
-    }
+  clear: both;
+  display: block;
+  padding-top: 10px;
+  input {
+    margin: 4px 0 0 0;
+  }
 }
-.frm-elements:after, .frm-fld:after {
-    content:".";
-    display:block;
-    height:0;
-    clear:both;
-    visibility:hidden;
+
+.frm-elements:after,
+.frm-fld:after {
+  clear: both;
+  content: ".";
+  display: block;
+  height: 0;
+  visibility: hidden;
 }
-.frm-elements, .frm-fld {
-    display:inline-block;
+
+.frm-elements,
+.frm-fld {
+  display: inline-block;
 }
-.frm-elements, .frm-fld {
-    display:block;
+
+.frm-elements,
+.frm-fld {
+  display: block;
 }
 /* @end */
diff --git a/app/soc/content/less/gsoc/tables.less b/app/soc/content/less/gsoc/tables.less
index 2877fde..4388def 100644
--- a/app/soc/content/less/gsoc/tables.less
+++ b/app/soc/content/less/gsoc/tables.less
@@ -6,84 +6,112 @@
 ////////////////*/
 
 // Images locations
+@image_ranking: "@{images_gsoc_location}/ranking.png";
 @image_table_sort_asc: "@{images_gsoc_location}/table-sort-asc.gif";
 @image_table_sort_desc: "@{images_gsoc_location}/table-sort-desc.gif";
-@image_ranking: "@{images_gsoc_location}/ranking.png";
 
-.tablesorter {/*all tables used in the dashboard*/
-    border: 1px solid #e7e7e7;
-    width: 100%;
+.tablesorter {
+  /*all tables used in the dashboard*/
+  border: 1px solid #e7e7e7;
+  width: 100%;
 
-    th.header {/*header cells*/
-        background: #e7e7e7;
-        color: #000;
-        cursor: pointer;
-        font-size: 11px;
-        font-weight: normal;
-        padding: 4px;
-        text-align: left;
-        span {/*padding for the arrow*/
-            padding-right: 20px;
+  th.header {
+    /*header cells*/
+    background: #e7e7e7;
+    color: #000;
+    cursor: pointer;
+    font-size: 11px;
+    font-weight: normal;
+    padding: 4px;
+    text-align: left;
+
+    span {
+      /*padding for the arrow*/
+      padding-right: 20px;
+    }
+  }
+
+  .headerSortUp span,
+  .headerSortDown span {
+    background-position: right center;
+    background-repeat: no-repeat;
+  }
+
+  .headerSortUp span {
+    /*asc arrow*/
+    background-image: url(@image_table_sort_asc);
+  }
+
+  .headerSortDown span {
+    /*desc arrow*/
+    background-image: url(@image_table_sort_desc);
+  }
+
+  tbody {
+    /*table body*/
+    td {
+      font-size: 12px;
+      padding: 2px 4px;
+
+      a {
+        color: #188dd0;
+        font-weight: bold;
+        text-decoration: none;
+
+        &.rank {
+          /*ranking arrows - default is down on*/
+          background: url(@image_ranking) 0 0 no-repeat;
+          display: block;
+          float: left;
+          height: 6px;
+          width: 11px;
+
+          &.up {
+            /*upward arrow - default is on*/
+            background-position: -12px 0;
+            margin-right: 5px;
+
+            &.off {
+              /*stack the "off" class to turn the arrow off*/
+              background-position: -12px -7px;
+            }
+          }
+
+          &.down.off {
+            background-position: 0 -7px;
+          }
         }
-    }
-    .headerSortUp span, .headerSortDown span {
-        background-position: right center;
-        background-repeat: no-repeat;
-    }
-    .headerSortUp span {/*asc arrow*/
-        background-image:url(@image_table_sort_asc);
-    }
-    .headerSortDown span {/*desc arrow*/
-        background-image: url(@image_table_sort_desc);
+      }
+
+      &.emph {
+        /*emphasized text*/
+        font-weight: bold;
+      }
+
+      &.flag {
+        /*flagged text*/
+        color: #f6120f;
+      }
     }
 
-    tbody {/*table body*/
-        td {
-            font-size: 12px;
-            padding: 2px 4px;
-            a {
-                color: #188dd0;
-                font-weight: bold;
-                text-decoration: none;
-            }
-            a.rank {/*ranking arrows - default is down on*/
-                background:url(@image_ranking) 0 0 no-repeat;
-                display: block;
-                float: left;
-                height: 6px;
-                width: 11px;
-            }
-            a.rank.up {/*upward arrow - default is on*/
-                background-position: -12px 0;
-                margin-right: 5px;
-            }
-            a.rank.up.off {/*stack the "off" class to turn the arrow off*/
-                background-position: -12px -7px;
-            }
-            a.rank.down.off {
-                background-position: 0 -7px;
-            }
-        }
-        td.emph {/*emphasized text*/
-            font-weight: bold;
-        }
-        td.flag {/*flagged text*/
-            color: #f6120f;
-        }
-        .stars {/*rating stars*/
-            float: left;
-            width: 75px !important;
-        }
-        tr.even {/*zebra striping in table*/
-            background: #eee;
-        }
+    .stars {
+      /*rating stars*/
+      float: left;
+      width: 75px !important;
     }
+
+    tr.even {
+      /*zebra striping in table*/
+      background: #eee;
+    }
+  }
 }
 
-.table-submitted-google {/*when multiple tables are stacked, add this bottom margin to the top table*/
-    margin: 0 0 10px 0;
+.table-submitted-google {
+  /*when multiple tables are stacked, add this bottom margin to the top table*/
+  margin: 0 0 10px 0;
 }
 
 .table-projects tbody tr:hover {
-    background: #E0EDF5;
+  background: #E0EDF5;
 }
diff --git a/app/soc/content/less/gsoc/typography.less b/app/soc/content/less/gsoc/typography.less
index 730ee53..c59436f 100644
--- a/app/soc/content/less/gsoc/typography.less
+++ b/app/soc/content/less/gsoc/typography.less
@@ -1,19 +1,13 @@
-/*////////////////
-
-  LessCSS
-
-////////////////*/
-
 @darkblue: #00538b;
 @lightblue: #238bd2;
 @lightbluebg: #6eb5e5;
 @grey: #f6f6f6;
 
 .imagereplace {
-    display: block;
-    font-size: 0;
-    line-height: 0;
-    text-indent: -9999em;
+  display: block;
+  font-size: 0;
+  line-height: 0;
+  text-indent: -9999em;
 }
 
 /*////////////////
@@ -29,113 +23,224 @@
 	height: 0;
 }
 
-a, a:link {
-    color: @darkblue;
-    text-decoration: underline;
+a,
+a:link {
+  color: @darkblue;
+  text-decoration: underline;
 }
 
 
-h1, h2, h3, h4, h5, h6, p, ul, ol, pre, code, dl {
-    line-height: 1.5em;
-    margin: 0 0 1.5em 0;
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p,
+ul,
+ol,
+pre,
+code,
+dl {
+  line-height: 1.5em;
+  margin: 0 0 1.5em 0;
 }
-h1, h2, h3, h4, h5, h6 {
-    color: @lightblue;
-    font-weight: bold;
-}
-h1 {
-    font-size: 27px;
-    margin: 0 0 5px 0;
-}
-h1.dashboard-title {
-    margin: 0;
-}
+
+h1,
+h2,
+h3,
+h4,
+h5,
 h6 {
-    font-size: 14px;
-    margin: 0;
+  color: @lightblue;
+  font-weight: bold;
 }
+
+h1 {
+  font-size: 27px;
+  margin: 0 0 5px 0;
+
+  &.dashboard-title {
+    margin: 0;
+  }
+}
+
+h6 {
+  font-size: 14px;
+  margin: 0;
+}
+
 p {
-    font-size: 12px;
+  font-size: 12px;
 }
 
 #main .grid_9 {
-    ul, ol { margin-left: 1.1em; }
-    ol { margin-left: 1.5em; }
-    ul li, ol li { list-style-position: outside; }
-    ul { list-style: disc; }
-    ul ul { margin-left: 1em; font-size: 1em; list-style: circle;}
-    ul ul ul { list-style: square; }
-    ol ol { margin-left: 1.5em; font-size: 1em; }
-    ol { list-style-type: decimal; }
-    ol ol { list-style: upper-alpha; }
-    ol ol ol { list-style: lower-roman; }
-    ol ol ol ol { list-style: lower-alpha; }
-    ul ul, ul ul ul, ol ol, ol ol ol, ul ol, ol ul { margin-bottom:0; }
-    dt { font-weight: bold; }
-    dd { margin-bottom: 1.5em; }
-    strong { font-weight: bold; }
-    cite, em, i { font-style: italic; }
-    ins { text-decoration:none; }
-    abbr { border-bottom: 1px dotted #000; cursor: help; }
-    sup, sub { height: 0; line-height: 1; vertical-align: baseline; _vertical-align: bottom; position: relative; font-size: .8em; }
-    sup { bottom: 1ex; }
-    sub { top: .5ex; }
-    code { line-height: 1.5em; }
-    pre { background: #000; color: #fff; display: block; line-height: 1.5em; margin: 0 0 1.5em 2em; padding: 0;
-        white-space: pre-wrap;
-        white-space: -moz-pre-wrap !important;
-        white-space: -pre-wrap;
-        white-space: -o-pre-wrap;
-        word-wrap: break-word;
+  ul,
+  ol {
+    margin-left: 1.1em;
+  }
+
+  ol {
+    list-style-type: decimal;
+    margin-left: 1.5em;
+    ol {
+      list-style: upper-alpha;
+      margin-left: 1.5em;
+      font-size: 1em;
+
+      ol {
+        list-style: lower-roman;
+
+        ol {
+          list-style: lower-alpha;
+        }
+      }
     }
-    pre code {
+  }
+
+  ul li,
+  ol li {
+    list-style-position: outside;
+  }
+
+  ul {
+    list-style: disc;
+
+    ul {
+      font-size: 1em;
+      list-style: circle;
+      margin-left: 1em;
+
+      ul {
+        list-style: square;
+      }
+    }
+  }
+
+  ul ul,
+  ul ul ul,
+  ol ol,
+  ol ol ol,
+  ul ol,
+  ol ul {
+    margin-bottom:0;
+  }
+
+  dt {
+    font-weight: bold;
+  }
+
+  dd {
+    margin-bottom: 1.5em;
+  }
+
+  strong {
+    font-weight: bold;
+  }
+
+  cite,
+  em,
+  i {
+    font-style: italic;
+  }
+
+  ins {
+    text-decoration: none;
+  }
+
+  abbr {
+    border-bottom: 1px dotted #000;
+    cursor: help;
+  }
+
+  sup,
+  sub {
+    font-size: .8em;
+    height: 0;
+    line-height: 1;
+    position: relative;
+    vertical-align: baseline;
+    _vertical-align: bottom;
+  }
+
+  sup {
+    bottom: 1ex;
+  }
+
+  sub {
+    top: .5ex;
+  }
+
+  code {
+    line-height: 1.5em;
+  }
+
+  pre {
+    background: #000;
+    color: #fff;
+    display: block;
+    line-height: 1.5em;
+    margin: 0 0 1.5em 2em;
+    padding: 0;
+    white-space: pre-wrap;
+    white-space: -moz-pre-wrap !important;
+    white-space: -pre-wrap;
+    white-space: -o-pre-wrap;
+    word-wrap: break-word;
+
+    code {
+      color: #fff;
+      display: block;
+      margin: 0 0 0 2em;
+      padding: 1.2em 0;
+    }
+  }
+
+  blockquote {
+    border-left: 2px solid #ccc;
+    margin: 0 0 0 2em;
+    padding: 0 0 0 1em;
+
+    cite {
+      display: block;
+      font-size: .9em;
+      margin: .4em 0 0 0;
+    }
+  }
+
+  q {
+    font-style: italic;
+  }
+
+  .pager {
+    padding: 10px 0;
+
+    p {
+      font-size: 14px;
+      margin: 0;
+      text-align: center;
+      text-transform: uppercase;
+
+      span {
+        color: #188dd0;
+        font-weight: bold;
+      }
+
+      a.prev,
+      a.next {
+        background: #a5cadd;
         color: #fff;
-    	margin: 0 0 0 2em;
-    	padding: 1.2em 0;
-    	display: block;
+        font-weight: bold;
+        padding: 3px 7px;
+      }
     }
-    blockquote {
-        border-left:  2px solid #ccc;
-        margin: 0 0 0 2em;
-        padding: 0 0 0 1em;
-
-        cite {
-            display: block;
-            font-size: .9em;
-            margin: .4em 0 0 0;
-        }
-    }
-    q {
-        font-style: italic;
-    }
-    .pager {
-        padding: 10px 0;
-        p {
-            font-size: 14px;
-            margin: 0;
-            text-align: center;
-            text-transform: uppercase;
-
-            span {
-                color: #188dd0;
-                font-weight: bold;
-            }
-
-            a.prev, a.next {
-                background: #a5cadd;
-                color: #fff;
-                font-weight: bold;
-                padding: 3px 7px;
-            }
-        }
-    }
-
+  }
 }
 
 
 /*////////////////
 
-    Melange custom styles
+  Melange custom styles
 
 ////////////////*/
 
@@ -143,26 +248,31 @@
 h1#project-page-title {
   margin: 0;
 }
+
 h2#project-page-student-name {
   font-size: 21px;
   font-weight: normal;
   line-height: 1.3em;
   margin: 0 0 1em 0;
 }
-/* Override color for embedded document */
-#document-content div {
-  color: black;
-}
+
 #document-content {
   padding-top: 0.5em;
+
+  div {
+    /* Override color for embedded document */
+    color: black;
+  }
 }
-#tos-content div {
+
+#tos-content {
+  height: 400px;
+  margin-bottom:10px;
+  overflow: auto;
+  padding-top: 0.5em;
+
+  div {
     color: black;
     font-size: 10px;
-}
-#tos-content {
-  padding-top: 0.5em;
-    height: 400px;
-    overflow: auto;
-    margin-bottom:10px;
+  }
 }
diff --git a/app/soc/content/less/gsoc/user-messages.less b/app/soc/content/less/gsoc/user-messages.less
index da39053..c998cd0 100644
--- a/app/soc/content/less/gsoc/user-messages.less
+++ b/app/soc/content/less/gsoc/user-messages.less
@@ -5,13 +5,13 @@
 ////////////////////////////////*/
 
 #user-message {
-    display: block;
-    font-size: 12px;
-    margin: 0 0 15px 0;
-    padding: 10px;
-    text-align: center;
-}
-#user-message.error {
+  display: block;
+  font-size: 12px;
+  margin: 0 0 15px 0;
+  padding: 10px;
+  text-align: center;
+
+  &.error {
     background: #f7eae1;
     border: 1px solid #f86800;
     box-shadow: inset 0 0 10px #f8d6c0;
@@ -19,43 +19,48 @@
     -webkit-box-shadow: inset 0 0 10px #f8d6c0;
 
     table.proposal-duplicates {
-        background: #fff;
-        border: 1px solid #f58236;
-        margin-top: 10px;
+      background: #fff;
+      border: 1px solid #f58236;
+      margin-top: 10px;
 
-        th {
-            background: #f58236;
-            border: none;
-            color: #fff;
-            font-size: 12px;
-            line-height: 1.2em;
-            text-align: center;
-            vertical-align: middle;
-            padding: 0;
-        }
-        td {
-            background: #faf4f1;
-            padding: 2px 4px;
-            border: 1px solid #efcab2;
+      th {
+        background: #f58236;
+        border: none;
+        color: #fff;
+        font-size: 12px;
+        line-height: 1.2em;
+        padding: 0;
+        text-align: center;
+        vertical-align: middle;
+      }
 
-            a {
-                color: #188dd0;
-                font-weight: bold;
-                text-decoration: none;
-                &:hover {
-                    text-decoration: underline;
-                }
-            }
+      td {
+        background: #faf4f1;
+        border: 1px solid #efcab2;
+        padding: 2px 4px;
+
+        a {
+          color: #188dd0;
+          font-weight: bold;
+          text-decoration: none;
+
+          &:hover {
+            text-decoration: underline;
+          }
         }
+      }
     }
+  }
 }
+
 #main .grid_9 p#user-logged-in {
-    color: #989898;
-    font-style: italic;
-    font-weight: bold;
-    margin-bottom: 10px;
+  color: #989898;
+  font-style: italic;
+  font-weight: bold;
+  margin-bottom: 10px;
 }
+
 p#user-logged-in a {
-    font-style: normal;
-    font-weight: normal;
+  font-style: normal;
+  font-weight: normal;
 }
