diff --git a/.jshintrc b/.jshintrc index 40377ba..d7cf568 100644 --- a/.jshintrc +++ b/.jshintrc @@ -1,24 +1,63 @@ { - "node": true, - "browser": true, - "esnext": true, - "bitwise": true, - "camelcase": true, - "curly": true, - "eqeqeq": true, - "immed": true, - "indent": 2, - "latedef": true, - "newcap": true, - "noarg": true, - "quotmark": "single", - "regexp": true, - "undef": true, - "unused": true, - "strict": true, - "trailing": true, - "smarttabs": true, - "globals": { - "angular": false - } -} + "bitwise": true, + "camelcase": true, + "curly": true, + "eqeqeq": true, + "es3": false, + "forin": true, + "freeze": true, + "immed": true, + "indent": 4, + "latedef": "nofunc", + "newcap": true, + "noarg": true, + "noempty": true, + "nonbsp": true, + "nonew": true, + "plusplus": false, + "quotmark": "single", + "undef": true, + "unused": false, + "strict": false, + "maxparams": 10, + "maxdepth": 5, + "maxstatements": 40, + "maxcomplexity": 8, + "maxlen": 220, + + "asi": false, + "boss": false, + "debug": false, + "eqnull": true, + "esnext": false, + "evil": false, + "expr": false, + "funcscope": false, + "globalstrict": false, + "iterator": false, + "lastsemic": false, + "laxbreak": false, + "laxcomma": false, + "loopfunc": true, + "maxerr": false, + "moz": false, + "multistr": false, + "notypeof": false, + "proto": false, + "scripturl": false, + "shadow": false, + "sub": true, + "supernew": false, + "validthis": false, + "noyield": false, + + "browser": true, + "node": true, + + "globals": { + "angular": false, + "$": false, + "_":false, + "google":false + } +} \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js index d3842cb..68090b8 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -24,7 +24,7 @@ module.exports = function (grunt) { // Configurable paths for the application var appConfig = { - app: require('./bower.json').appPath || 'app', + app: 'app', dist: 'dist' }; @@ -180,6 +180,8 @@ module.exports = function (grunt) { // Automatically inject Bower components into the app wiredep: { + directory: '../.bowerrc', + bowerJson: '../bower.json', options: { cwd: '<%= yeoman.app %>' }, @@ -211,7 +213,7 @@ module.exports = function (grunt) { flow: { html: { steps: { - js: ['concat', 'uglifyjs'], + js: ['concat'], css: ['cssmin'] }, post: {} @@ -280,7 +282,7 @@ module.exports = function (grunt) { htmlmin: { dist: { options: { - collapseWhitespace: true, + collapseWhitespace: false, conservativeCollapse: true, collapseBooleanAttributes: true, removeCommentsFromCDATA: true, @@ -330,7 +332,7 @@ module.exports = function (grunt) { '*.html', 'views/{,*/}*.html', 'images/{,*/}*.{webp}', - 'fonts/*' + '.tmp/fonts/*' ] }, { expand: true, @@ -339,9 +341,9 @@ module.exports = function (grunt) { src: ['generated/*'] }, { expand: true, - cwd: 'bower_components/bootstrap/dist', - src: 'fonts/*', - dest: '<%= yeoman.dist %>' + cwd: 'bower_components/fontawesome/fonts', + src: '*', + dest: '<%= yeoman.dist %>/fonts' }] }, styles: { @@ -373,7 +375,6 @@ module.exports = function (grunt) { dist: [ 'less:development', 'copy:styles', - 'copy:fonts', 'imagemin', 'svgmin' ] @@ -396,7 +397,7 @@ module.exports = function (grunt) { grunt.task.run([ 'clean:server', - 'wiredep', + //'wiredep', 'concurrent:server', 'autoprefixer', 'connect:livereload', @@ -429,7 +430,7 @@ module.exports = function (grunt) { 'copy:dist', 'cdnify', 'cssmin', - 'uglify', + //'uglify', 'filerev', 'usemin', 'htmlmin' diff --git a/app/images/faw-computer-animation.gif b/app/images/faw-computer-animation.gif new file mode 100644 index 0000000..585c1e1 Binary files /dev/null and b/app/images/faw-computer-animation.gif differ diff --git a/app/images/ocean.jpg b/app/images/ocean.jpg new file mode 100644 index 0000000..0a80ebe Binary files /dev/null and b/app/images/ocean.jpg differ diff --git a/app/images/water.jpg b/app/images/water.jpg new file mode 100644 index 0000000..accf669 Binary files /dev/null and b/app/images/water.jpg differ diff --git a/app/index.html b/app/index.html index f1cdbd3..fbdf775 100644 --- a/app/index.html +++ b/app/index.html @@ -9,94 +9,91 @@ + - - + +
- - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - + - - - + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - diff --git a/app/scripts/app.js b/app/scripts/app.js index 89fb073..ef5310e 100644 --- a/app/scripts/app.js +++ b/app/scripts/app.js @@ -1,4 +1,5 @@ -'use strict'; +(function(){ + 'use strict'; /** * @ngdoc overview @@ -8,131 +9,184 @@ * * Main module of the application. */ -var app = angular.module('findawakeApp', [ - 'ngCookies', - 'ngResource', - 'ngRoute', - 'ngSanitize', - 'firebase', - 'ui.bootstrap', - 'angularfire.firebase', - 'angularfire.login', - 'simpleLoginTools', - 'imgur', - 'geolocation', - 'google.geocoder' -]); + angular + .module('findAWake', [ + 'ngCookies', + 'ngResource', + 'ngRoute', + 'ngSanitize', + 'firebase', + 'ui.bootstrap', + 'imgur', + 'geolocation', + 'google.geocoder', + 'ks.activeLink' + ]) + .config(findAWakeConfig) + .constant('angularFireVersion', '1.1.1') + .constant('loginRedirectPath', '/login') + .constant('loginProviders', '') + .constant('FBURL', 'https://findawake.firebaseio.com'); + findAWakeConfig.$inject = ['$routeProvider', '$locationProvider']; -app.config(function($routeProvider, $locationProvider) { - $locationProvider.html5Mode(true); - $routeProvider - .when('/', { - templateUrl: '/views/index.html', - controller: 'IndexCtrl', - authRequired: false, - resolve: { - auth: function(SimpleLogin){ - return SimpleLogin.currentUser(); - }, - wakes: function(Wakes){ - return Wakes.query(); + function findAWakeConfig($routeProvider, $locationProvider) { + authResolve.$inject = ['SimpleLogin']; + wakesResolve.$inject = ['Wakes']; + authUserResolve.$inject = ['SimpleLogin', 'Users']; + wakeResolve.$inject = ['Wakes', '$route']; + wakeRequestsResolve.$inject = ['Requests', '$route']; + profileResolve.$inject = ['Users', '$route']; + + $locationProvider.html5Mode(true); + + function authResolve(SimpleLogin){ + return SimpleLogin.currentUser(); + } + + function wakesResolve(Wakes) { + return Wakes.query(); + } + + function authUserResolve(SimpleLogin, Users){ + return SimpleLogin.currentUser().then(function(user){ + if(user){ + return Users.get(user.uid); + } + }); + } + + function wakeResolve(Wakes, $route){ + return Wakes.get($route.current.params.id); + } + + function wakeRequestsResolve(Requests, $route) { + return Requests.query($route.current.params.id); + } + + function profileResolve(Users, $route){ + return Users.getProfile($route.current.params.id); + } + + $routeProvider + .when('/wakes/find', { + templateUrl: '/views/wakes/index.html', + controller: 'WakesIndexController', + authRequired: false, + resolve: { + wakes: wakesResolve + } + }) + .when('/wakes/share', { + templateUrl: '/views/wakes/new.html', + controller: 'WakesNewController', + authRequired: true, + resolve: { + auth: authResolve + } + }) + .when('/wakes/:id', { + templateUrl: '/views/wakes/show.html', + controller: 'WakesShowController', + authRequired: false, + resolve: { + wake: wakeResolve + } + }) + .when('/wakes/:id/ride', { + templateUrl: '/views/wakes/ride.html', + controller: 'WakesRideController', + authRequired: true, + resolve: { + wake: wakeResolve, + auth: authResolve + } + }) + .when('/wakes/:id/edit', { + templateUrl: '/views/wakes/edit.html', + controller: 'WakesEditController', + authRequired: true, + resolve: { + auth: authResolve, + wake: wakeResolve + } + }) + .when('/wakes/:id/requests', { + templateUrl: '/views/wakes/requests.html', + controller: 'WakesRequestsController', + authRequired: true, + resolve: { + auth: authResolve, + wake: wakeResolve, + requests: wakeRequestsResolve } - } - }) - .when('/wakes/new', { - templateUrl: '/views/wakes/new.html', - controller: 'NewWakeCtrl', - authRequired: false, - resolve: { - auth: function(SimpleLogin){ - return SimpleLogin.currentUser(); + }) + .when('/account/:id/wakes', { + templateUrl: '/views/user/wakes.html', + controller: 'UsersWakesController', + authRequired: true, + resolve: { + profile: authUserResolve } - } - }) - .when('/wakes/:id', { - templateUrl: '/views/wakes/show.html', - controller: 'WakeCtrl', - authRequired: false, - resolve: { - auth: function(SimpleLogin, Users){ - return SimpleLogin.currentUser().then(function(user){ - if(user){ - return Users.get(user.id); - } - }); - }, - wake: function(Wakes, $route){ - return Wakes.get($route.current.params.id); + }) + .when('/account/:id/requests', { + templateUrl: '/views/user/requests.html', + controller: 'UsersRequestsController', + authRequired: true, + resolve: { + profile: authUserResolve } - } - }) - .when('/wakes/:id/edit', { - templateUrl: '/views/wakes/edit.html', - controller: 'EditWakeCtrl', - authRequired: true, - resolve: { - auth: function(SimpleLogin){ - return SimpleLogin.currentUser(); - }, - wake: function(Wakes, $route){ - return Wakes.get($route.current.params.id); + }) + .when('/account/:id/edit', { + templateUrl: '/views/user/edit.html', + controller: 'UsersEditController', + authRequired: true, + resolve: { + profile: authUserResolve } - } - }) - .when('/my/account', { - templateUrl: '/views/user/show.html', - controller: 'UserCtrl', - authRequired: true, - resolve: { - profile: function(SimpleLogin, Users){ - return SimpleLogin.currentUser().then(function(user){ - if(user){ - return Users.get(user.id); - } - }); + }) + .when('/profile/:id', { + templateUrl: '/views/user/show.html', + controller: 'ProfileCtrl', + authRequired: false, + resolve: { + profile: profileResolve, + auth: authResolve } - } - }) - .when('/profile/:id', { - templateUrl: '/views/user/profile.html', - controller: 'ProfileCtrl', - authRequired: false, - resolve: { - profile: function(Users, $route){ - return Users.getProfile($route.current.params.id); - }, - auth: function(SimpleLogin){ - return SimpleLogin.currentUser(); + }) + .when('/legal', { + templateUrl: '/views/legal/index.html', + authRequired: false + }) + .when('/login', { + templateUrl: '/views/auth/login.html', + controller: 'LoginController', + authRequired: false + }) + .when('/signup', { + templateUrl: '/views/auth/signup.html', + controller: 'SignupController', + authRequired: false + }) + .when('/signup/success', { + templateUrl: '/views/auth/signup.success.html', + controller: 'SignupSuccessController', + authRequired: true, + resolve: { + auth: authResolve } - } - }) - .when('/login', { - templateUrl: '/views/login.html', - controller: 'LoginCtrl', - authRequired: false - }) - .when('/welcome', { - templateUrl: '/views/user/welcome.html', - controller: 'UserWelcomeCtrl', - authRequired: true, - resolve: { - profile: function(SimpleLogin, Users){ - return SimpleLogin.currentUser().then(function(user){ - if(user){ - return Users.get(user.id); - } - }); + }) + .when('/welcome', { + templateUrl: '/views/user/welcome.html', + controller: 'UserWelcomeCtrl', + authRequired: true, + resolve: { + profile: authUserResolve } - } - }) - .otherwise({ - redirectTo: '/' - }); -}); + }) + .otherwise({ + redirectTo: '/wakes/find' + }); + } -app.constant('angularFireVersion', '0.7.1') - .constant('loginRedirectPath', '/login') - .constant('loginProviders', '') - .constant('FBURL', 'https://findawake.firebaseio.com') - .constant('IMGUR', 'https://api.imgur.com/3/'); +})(); \ No newline at end of file diff --git a/app/scripts/controllers/global.js b/app/scripts/controllers/global.js deleted file mode 100644 index 792f376..0000000 --- a/app/scripts/controllers/global.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -/** - * @ngdoc function - * @name findawakeApp.controller:MainCtrl - * @description - * # MainCtrl - * Controller of the findawakeApp - */ -var app = angular.module('findawakeApp'); - -app.controller('NavCtrl', function( - $scope, - SimpleLogin -){ - SimpleLogin.currentUser().then(function(user){ - $scope.user = user; - }); -}); \ No newline at end of file diff --git a/app/scripts/controllers/index.js b/app/scripts/controllers/index.js deleted file mode 100644 index fbe7ef4..0000000 --- a/app/scripts/controllers/index.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict'; -/*global _:false */ - -/** - * @ngdoc function - * @name findawakeApp.controller:MainCtrl - * @description - * # MainCtrl - * Controller of the findawakeApp - */ -var app = angular.module('findawakeApp'); - -app.controller('IndexCtrl', function( - $scope, - $timeout, - auth, - wakes, - geolocation, - Geocoder, - Wakes -){ - $scope.auth = auth; - $scope.wakes = wakes; - - /* - $scope.distances = ['5','15','25','50','100','150']; - $scope.selectedDistance = '50'; - - geolocation.getLocation().then(function(data){ - $scope.currentLocation = data.coords; - formattedCurrentLocation(data); - }); - - $scope.selectDistance = function(distance){ - $scope.selectedDistance = distance; - }; - - $scope.isDistanceSelected = function(distance){ - return distance === $scope.selectedDistance; - }; - - $scope.filterWakes = function(wake){ - var currentLocation = $scope.currentLocation, - wakeLocation = _.pick(wake.location, 'lat','lng'); - return Wakes.getDistance(currentLocation, wakeLocation) <= parseInt($scope.selectedDistance); - }; - - function formattedCurrentLocation(data){ - $scope.loadingLocation = true; - Geocoder.latlng(data.coords).then(function(results){ - $scope.formattedCurrentLocation = _.first(results).formatted_address; - }).finally(function(){ - $scope.loadingLocation = false; - }); - } - */ - -}); - - diff --git a/app/scripts/controllers/login.js b/app/scripts/controllers/login.js index 7d4cd44..2457aa4 100644 --- a/app/scripts/controllers/login.js +++ b/app/scripts/controllers/login.js @@ -1,97 +1,121 @@ -'use strict'; +(function(){ + 'use strict'; -/** - * @ngdoc function - * @name findawakeApp.controller:MainCtrl - * @description - * # MainCtrl - * Controller of the findawakeApp - */ -var app = angular.module('findawakeApp'); + angular + .module('findAWake') + .controller('LoginController', LoginController); -app.controller('LoginCtrl', function( - $scope, - SimpleLogin, - Users, - $location -){ - $scope.login = function(service) { - $scope.loading = true; - SimpleLogin.login(service, function(err) { - $scope.loading = false; - $scope.err = err? err + '' : null; - }); - }; + LoginController.$inject = ['$scope', 'SimpleLogin', 'Users', '$location', '$window']; - $scope.loginPassword = function(cb) { - $scope.loading = true; - $scope.err = null; - if( assertValidLoginAttempt() ) { - SimpleLogin.loginPassword($scope.email, $scope.pass, function(err, user) { - $scope.loading = false; - $scope.err = parseErrorMessages(err); - if( !err && cb ) { - cb(user); - } - }); - } - }; + function LoginController($scope, SimpleLogin, Users, $location, $window){ + $scope.redirect = $location.search().redirect || false; + $scope.login = login; + $scope.loginPassword = loginPassword; - $scope.logout = SimpleLogin.logout; - $scope.createAccount = function() { - $scope.loading = true; - $scope.err = null; - if( assertValidCreateAccountAttempt() ) { - SimpleLogin.createAccount($scope.email, $scope.pass, function(err) { - $scope.loading = false; - if( err ) { - $scope.err = parseErrorMessages(err); - } else { - $scope.creatingProfile = true; - // must be logged in before I can write to my profile - SimpleLogin.loginPassword($scope.email, $scope.pass, function(err, user) { - if(err){ - $scope.creatingProfile = false; - $scope.err = err; - } else { - SimpleLogin.createProfile(user.id, user.email).then(function(user) { - Users.createPublicProfile(user).then(function(){ - $location.path('/welcome'); - }); - }); - } - }); - } - }); + function login(service) { + _reset(); + $scope.loading = true; + + SimpleLogin.login(service).then(_handleSuccess, _handleError); } - }; - function parseErrorMessages(err){ - if(err){ - return err.message.replace(/FirebaseSimpleLogin:\s/g,''); - } else { - return null; + function _handleSuccess() { + console.debug('you are now logged in.'); + if ($scope.redirect) { + $location.path($scope.redirect).search(''); + } else { + $location.path('/'); + } } - } - function assertValidLoginAttempt(){ - if( !$scope.email ) { - $scope.err = 'Please enter an email address'; - } else if( !$scope.pass ) { - $scope.err = 'Please enter a password'; + function _handleError(error) { + $scope.loading = false; + $scope.error = error; } - return !$scope.err; - } - function assertValidCreateAccountAttempt() { - if( !$scope.email ) { - $scope.err = 'Please enter an email address'; - } else if( !$scope.pass ) { - $scope.err = 'Please enter a password'; - } else if( $scope.pass !== $scope.confirm ) { - $scope.err = 'Passwords do not match'; + function _reset() { + $scope.error = false; + } + + function loginPassword(cb) { + _reset(); + $scope.loading = true; + + var invalidLogin = SimpleLogin.assertValidLoginAttempt($scope.email, $scope.pass); + + if(invalidLogin) { + $scope.loading = false; + $scope.error = invalidLogin; + return false; + } + + SimpleLogin.loginPassword($scope.email, $scope.pass).then(_handleSuccess, _handleError); } - return !$scope.err; } -}); \ No newline at end of file + + // app.controller('LoginModalCtrl', function( + // $scope, + // SimpleLogin, + // Users, + // $location, + // $modalInstance + // ){ + // $scope.cancel = function(){ + // $modalInstance.dismiss(); + // }; + + // $scope.loginPassword = function(cb) { + // $scope.loading = true; + // $scope.err = null; + // var invalidLogin = SimpleLogin.assertValidLoginAttempt($scope.email, $scope.pass); + // if(invalidLogin) { + // $scope.loading = false; + // $scope.err = invalidLogin; + // } else { + // SimpleLogin.loginPassword($scope.email, $scope.pass, function(err, user) { + // $scope.loading = false; + // $scope.err = SimpleLogin.parseErrorMessages(err); + // if( !err && cb ) { + // cb(user); + // } + // if(!err){ + // $modalInstance.close(user); + // } + // }); + // } + // }; + + // $scope.createAccount = function() { + // $scope.loading = true; + // $scope.err = null; + // var invalidLogin = SimpleLogin.assertValidCreateAccountAttempt($scope.email, $scope.pass, $scope.confirm); + // if(invalidLogin) { + // $scope.loading = false; + // $scope.err = invalidLogin; + // } else { + // SimpleLogin.createAccount($scope.email, $scope.pass, function(err) { + // $scope.loading = false; + // if( err ) { + // $scope.err = SimpleLogin.parseErrorMessages(err); + // } else { + // $scope.creatingProfile = true; + // // must be logged in before I can write to my profile + // SimpleLogin.loginPassword($scope.email, $scope.pass, function(err, user) { + // if(err){ + // $scope.creatingProfile = false; + // $scope.err = err; + // } else { + // SimpleLogin.createProfile(user.id, user.email).then(function(user) { + // Users.createPublicProfile(user).then(function(){ + // $modalInstance.resolve(); + // }); + // }); + // } + // }); + // } + // }); + // } + // }; + // }); +})(); \ No newline at end of file diff --git a/app/scripts/controllers/profile.js b/app/scripts/controllers/profile.js index c74293c..8ab126c 100644 --- a/app/scripts/controllers/profile.js +++ b/app/scripts/controllers/profile.js @@ -7,7 +7,7 @@ * # MainCtrl * Controller of the findawakeApp */ -var app = angular.module('findawakeApp'); +var app = angular.module('findAWake'); app.controller('ProfileCtrl', function( $scope, diff --git a/app/scripts/controllers/request.js b/app/scripts/controllers/request.js index 6917f61..007baf2 100644 --- a/app/scripts/controllers/request.js +++ b/app/scripts/controllers/request.js @@ -7,7 +7,7 @@ * # MainCtrl * Controller of the findawakeApp */ -var app = angular.module('findawakeApp'); +var app = angular.module('findAWake'); app.controller('RequestCtrl', function( $scope, diff --git a/app/scripts/controllers/signup-success.controller.js b/app/scripts/controllers/signup-success.controller.js new file mode 100644 index 0000000..e9feee3 --- /dev/null +++ b/app/scripts/controllers/signup-success.controller.js @@ -0,0 +1,24 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .controller('SignupSuccessController', SignupSuccessController); + + SignupSuccessController.$inject = ['$scope', 'auth', 'SimpleLogin', 'Users', '$location']; + + function SignupSuccessController($scope, auth, SimpleLogin, Users, $location) { + $scope.loading = true; + $scope.user = auth; + + SimpleLogin.createProfile($scope.user.id, $scope.user.email).then(function(user) { + Users.createPublicProfile(user).then(function(res){ + $location.path('/welcome'); + }, function(res){ + console.debug('error creating public profile: ', res); + }).finally(function(){ + $scope.loading = false; + }); + }); + } +})(); \ No newline at end of file diff --git a/app/scripts/controllers/signup.controller.js b/app/scripts/controllers/signup.controller.js new file mode 100644 index 0000000..84158ff --- /dev/null +++ b/app/scripts/controllers/signup.controller.js @@ -0,0 +1,44 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .controller('SignupController', SignupController); + + SignupController.$inject = ['$scope', 'SimpleLogin', '$location']; + + function SignupController($scope, SimpleLogin, $location) { + $scope.submit = submit; + + function submit() { + $scope.loading = true; + $scope.error = false; + + var invalid = SimpleLogin.assertValidCreateAccountAttempt($scope.email, $scope.pass, $scope.confirm); + + if (invalid) { + $scope.error = invalid; + _resetPasswords(); + return false; + } + + SimpleLogin.createAccount($scope.email, $scope.pass, _handleCreateAccount); + } + + function _handleCreateAccount(error) { + $scope.loading = false; + + if (error) { + $scope.error = SimpleLogin.parseErrorMessages(error); + return false; + } + + $location.path('/signup/success'); + } + + function _resetPasswords(){ + $scope.pass = null; + $scope.confirm = null; + } + } +})(); \ No newline at end of file diff --git a/app/scripts/controllers/user.js b/app/scripts/controllers/user.js deleted file mode 100644 index b298141..0000000 --- a/app/scripts/controllers/user.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict'; - -/** - * @ngdoc function - * @name findawakeApp.controller:MainCtrl - * @description - * # MainCtrl - * Controller of the findawakeApp - */ -var app = angular.module('findawakeApp'); - -app.controller('UserCtrl', function( - $scope, - $timeout, - UserSettings, - Users, - Imgur, - profile -){ - $scope.profile = profile; - UserSettings.init($scope); - - $scope.addGear = function(gear){ - $scope.profile.gear.push(angular.copy(gear)); - $scope.gear = null; - }; - - $scope.removeGear = function(index){ - $scope.profile.gear.splice(index,1); - }; - - $scope.changeAvatar = function(){ - $scope.existingAvatar = angular.copy($scope.profile.avatar); - $scope.profile.avatar = false; - }; - - $scope.cancelChangeAvatar = function(){ - $scope.profile.avatar = $scope.existingAvatar; - $scope.existingAvatar = false; - }; - - $scope.uploadAvatar = function(){ - $scope.uploadingAvatar = true; - Imgur.upload($scope.avatar).then(function(res){ - $scope.profile.avatar = res.data.link; - }, function(res){ - $scope.errors = res; - }).finally(function(){ - $scope.uploadingAvatar = false; - }); - }; - - $scope.updateProfile = function(){ - $scope.savingProfile = true; - $scope.profileSaved = false; - - $scope.profile.$save().then(function(){ - Users.updatePublicProfile($scope.profile); - }).finally(function(){ - $timeout(function(){ - $scope.savingProfile = false; - $scope.profileSaved = true; - resetUpdateState(); - },150); - }); - }; - - function resetUpdateState(){ - $timeout(function(){ - $scope.profileSaved = false; - }, 500); - } -}); - -app.controller('UserWelcomeCtrl', function( - $scope, - profile -){ - $scope.profile = profile; -}); \ No newline at end of file diff --git a/app/scripts/controllers/users-edit.controller.js b/app/scripts/controllers/users-edit.controller.js new file mode 100644 index 0000000..7fec99b --- /dev/null +++ b/app/scripts/controllers/users-edit.controller.js @@ -0,0 +1,49 @@ +(function(){ + 'use strict'; + + /** + * @ngdoc function + * @name findawakeApp.controller:MainCtrl + * @description + * # MainCtrl + * Controller of the findawakeApp + */ + angular + .module('findAWake') + .controller('UsersEditController', UsersEditController); + + UsersEditController.$inject = ['$scope','$timeout','Users','profile']; + + function UsersEditController($scope, $timeout, Users, profile){ + $scope.profile = profile; + $scope.updateProfile = updateProfile; + + function updateProfile(){ + $scope.savingProfile = true; + $scope.profileSaved = false; + + $scope.profile.$save().then(function(){ + Users.updatePublicProfile($scope.profile); + }).finally(function(){ + $timeout(function(){ + $scope.savingProfile = false; + $scope.profileSaved = true; + resetUpdateState(); + },150); + }); + } + + function resetUpdateState(){ + $timeout(function(){ + $scope.profileSaved = false; + }, 500); + } + } + + // app.controller('UserWelcomeCtrl', function( + // $scope, + // profile + // ){ + // $scope.profile = profile; + // }); +})(); diff --git a/app/scripts/controllers/users-requests.controller.js b/app/scripts/controllers/users-requests.controller.js new file mode 100644 index 0000000..0908dad --- /dev/null +++ b/app/scripts/controllers/users-requests.controller.js @@ -0,0 +1,13 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .controller('UsersRequestsController', UsersRequestsController); + + UsersRequestsController.$inject = []; + + function UsersRequestsController() { + + } +})(); \ No newline at end of file diff --git a/app/scripts/controllers/users-wakes.controller.js b/app/scripts/controllers/users-wakes.controller.js new file mode 100644 index 0000000..2ba3203 --- /dev/null +++ b/app/scripts/controllers/users-wakes.controller.js @@ -0,0 +1,13 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .controller('UsersWakesController', UsersWakesController); + + UsersWakesController.$inject = ['$scope', '$timeout', 'Users', 'profile']; + + function UsersWakesController($scope, $timeout, Users, profile) { + $scope.profile = profile; + } +})(); \ No newline at end of file diff --git a/app/scripts/controllers/wake.js b/app/scripts/controllers/wake.js deleted file mode 100644 index 37ae0c7..0000000 --- a/app/scripts/controllers/wake.js +++ /dev/null @@ -1,194 +0,0 @@ -'use strict'; -/*global _:false */ - -/** - * @ngdoc function - * @name findawakeApp.controller:MainCtrl - * @description - * # MainCtrl - * Controller of the findawakeApp - */ -var app = angular.module('findawakeApp'); - -app.controller('WakeCtrl', function( - $scope, - wake, - auth, - $modal, - $location, - Users -){ - $scope.auth = auth; - $scope.wake = wake.$on('value', function(dataSnapshot){ - $scope.profile = Users.getProfile(dataSnapshot.snapshot.value.userId); - }); - - $scope.requestRide = function(){ - var modalInstance = $modal.open({ - templateUrl: '/views/wakes/requestModal.html', - controller: 'RequestCtrl', - size: 'lg', - resolve: { - auth: function(){ - return $scope.auth; - }, - wake: function(){ - return $scope.wake; - } - } - }); - - modalInstance.result.then(function(){ - - }); - }; - - $scope.rideRequested = function(){ - if(_.isUndefined(auth) || _.isEmpty(auth)){ return false; } - if(_.isObject(auth.requests)){ - return !_.isUndefined(auth.requests[wake.id]); - } - if(_.isArray(auth.requests)){ - return _.indexOf(auth.requests, wake.id) === -1; - } - }; - - $scope.removeWake = function(wake){ - var modalInstance = $modal.open({ - templateUrl: '/views/wakes/removeModal.html', - controller: 'DeleteWakeCtrl', - size: 'sm', - resolve: { - wake: function () { - return wake; - } - } - }); - - modalInstance.result.then(function(res){ - if(!res){ - $location.path('/wakes'); - } - }); - }; -}); - -app.controller('EditWakeCtrl', function( - $scope, - WakeSettings, - $window, - Imgur, - Wakes, - wake, - auth -){ - var origWake = angular.copy(wake); - $scope.auth = auth; - $scope.wake = wake; - - WakeSettings.init($scope); - - if(wake.userId !== auth.id){ - $window.history.back(); - } - - $scope.addSchedule = function(schedule){ - $scope.wake.schedules.push(angular.copy(schedule)); - }; - - $scope.removeSchedule = function(index){ - $scope.wake.schedules.splice(index, 1); - }; - - $scope.validateLocation = function(){ - $scope.validating = true; - WakeSettings.validateLocation($scope.location, function(res){ - $scope.validating = false; - $scope.validatedLocations = res; - }); - }; - - $scope.update = function(){ - $scope.saving = true; - - if(origWake.location !== $scope.wake.location) { - Wakes.updateLocation($scope.wake); - } - - if(!$scope.wake.thumbnail){ - Imgur.upload($scope.thumbnail).then(function(res){ - if(res.data){ - $scope.wake.thumbnail = res.data.link; - } - }).finally(function(){ - $scope.wake.$save(); - }); - } else { - $scope.wake.$save(); - } - }; -}); - - -app.controller('NewWakeCtrl', function( - $scope, - $timeout, - $location, - WakeSettings, - Wakes, - Imgur, - auth -){ - $scope.auth = auth; - WakeSettings.init($scope); - - $scope.addSchedule = function(schedule){ - $scope.wake.schedules.push(angular.copy(schedule)); - }; - - $scope.removeSchedule = function(index){ - $scope.wake.schedules.splice(index, 1); - }; - - $scope.validateLocation = function(){ - $scope.validating = true; - WakeSettings.validateLocation($scope.location, function(res){ - $scope.validating = false; - $scope.validatedLocations = res; - }); - }; - - $scope.submit = function(){ - $scope.saving = true; - $scope.wake.userId = auth.id; - Imgur.upload($scope.thumbnail).then(function(res){ - if(res.data){ - $scope.wake.thumbnail = res.data.link; - } - }).finally(function(){ - Wakes.create($scope.wake).then(function(){ - $location.path('/'); - }); - }); - - }; -}); - -app.controller('DeleteWakeCtrl', function( - $scope, - $modalInstance, - wake, - Wakes -){ - $scope.wake = wake; - - $scope.delete = function(){ - Wakes.remove(wake).then(function(res){ - $modalInstance.close(res); - }); - }; - - $scope.cancel = function(){ - $modalInstance.dismiss(); - }; -}); \ No newline at end of file diff --git a/app/scripts/controllers/wakes-delete.controller.js b/app/scripts/controllers/wakes-delete.controller.js new file mode 100644 index 0000000..b9f51f1 --- /dev/null +++ b/app/scripts/controllers/wakes-delete.controller.js @@ -0,0 +1,23 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .controller('WakesDeleteController', WakesDeleteController); + + WakesDeleteController.$inject = ['$scope', '$modalInstance', 'wake', 'Wakes']; + + function WakesDeleteController($scope, $modalInstance, wake, Wakes) { + $scope.wake = wake; + + $scope.delete = function(){ + Wakes.remove(wake).then(function(res){ + $modalInstance.close(res); + }); + }; + + $scope.cancel = function(){ + $modalInstance.dismiss(); + }; + } +})(); \ No newline at end of file diff --git a/app/scripts/controllers/wakes-edit.controller.js b/app/scripts/controllers/wakes-edit.controller.js new file mode 100644 index 0000000..da25deb --- /dev/null +++ b/app/scripts/controllers/wakes-edit.controller.js @@ -0,0 +1,29 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .controller('WakesEditController', WakesEditController); + + WakesEditController.$inject = ['$scope', 'wake', 'auth', '$location']; + + function WakesEditController($scope, wake, auth, $location) { + $scope.auth = auth; + $scope.wake = wake; + + $scope.update = update; + + function update() { + $scope.errors = false; + $scope.saving = true; + + $scope.wake.$save().then(function(res){ + //$location.path('/wakes/' + res.id); + }, function(res){ + $scope.errors = res; + }).finally(function(){ + $scope.saving = false; + }); + } + } +})(); \ No newline at end of file diff --git a/app/scripts/controllers/wakes-index.controller.js b/app/scripts/controllers/wakes-index.controller.js new file mode 100644 index 0000000..83a4c74 --- /dev/null +++ b/app/scripts/controllers/wakes-index.controller.js @@ -0,0 +1,46 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .controller('WakesIndexController', WakesIndexController); + + WakesIndexController.$inject = ['$scope','wakes','LocationGeocode']; + + function WakesIndexController($scope, wakes, LocationGeocode) { + $scope.wakes = wakes; + + /* + $scope.distances = ['5','15','25','50','100','150']; + $scope.selectedDistance = '50'; + + geolocation.getLocation().then(function(data){ + $scope.currentLocation = data.coords; + formattedCurrentLocation(data); + }); + + $scope.selectDistance = function(distance){ + $scope.selectedDistance = distance; + }; + + $scope.isDistanceSelected = function(distance){ + return distance === $scope.selectedDistance; + }; + + $scope.filterWakes = function(wake){ + var currentLocation = $scope.currentLocation, + wakeLocation = _.pick(wake.location, 'lat','lng'); + return Wakes.getDistance(currentLocation, wakeLocation) <= parseInt($scope.selectedDistance); + }; + + function formattedCurrentLocation(data){ + $scope.loadingLocation = true; + Geocoder.latlng(data.coords).then(function(results){ + $scope.formattedCurrentLocation = _.first(results).formatted_address; + }).finally(function(){ + $scope.loadingLocation = false; + }); + } + */ + } +})(); \ No newline at end of file diff --git a/app/scripts/controllers/wakes-new.controller.js b/app/scripts/controllers/wakes-new.controller.js new file mode 100644 index 0000000..1cd31a4 --- /dev/null +++ b/app/scripts/controllers/wakes-new.controller.js @@ -0,0 +1,34 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .controller('WakesNewController', WakesNewController); + + WakesNewController.$inject = ['$scope', 'Wakes', 'auth', '$location']; + + function WakesNewController($scope, Wakes, auth, $location) { + $scope.wake = {}; + $scope.auth = auth; + $scope.submit = submit; + + function submit(){ + $scope.errors = false; + $scope.saving = true; + + Wakes.create($scope.wake).then(function(res) { + $location.path('/wakes/' + res.id); + }, function(res) { + $scope.errors = res; + }).finally(function(){ + $scope.saving = false; + }); + } + + function _defaultValues() { + $scope.wake.userId = auth.uid; + } + + _defaultValues(); + } +})(); \ No newline at end of file diff --git a/app/scripts/controllers/wakes-requests.controller.js b/app/scripts/controllers/wakes-requests.controller.js new file mode 100644 index 0000000..36723d6 --- /dev/null +++ b/app/scripts/controllers/wakes-requests.controller.js @@ -0,0 +1,15 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .controller('WakesRequestsController', WakesRequestsController); + + WakesRequestsController.$inject = ['$scope', 'auth', 'wake', 'requests']; + + function WakesRequestsController($scope, auth, wake, requests) { + $scope.wake = wake; + $scope.auth = auth; + $scope.requests = requests; + } +})(); \ No newline at end of file diff --git a/app/scripts/controllers/wakes-ride.controller.js b/app/scripts/controllers/wakes-ride.controller.js new file mode 100644 index 0000000..2b11039 --- /dev/null +++ b/app/scripts/controllers/wakes-ride.controller.js @@ -0,0 +1,45 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .controller('WakesRideController', WakesRideController); + + WakesRideController.$inject = ['$scope', 'wake', 'Requests', '$location', 'auth']; + + function WakesRideController($scope, wake, Requests, $location, auth) { + $scope.auth = auth; + $scope.wake = wake; + $scope.request = {}; + + $scope.submit = function(){ + // $scope.request.userId = auth.userId; + // $scope.request.wakeId = wake.id; + // Wakes.request($scope.request); + $scope.loading = true; + + Requests.create($scope.request).then(function(data){ + console.log('request success'); + }, function(ref){ + $scope.error = ref; + }).finally(function(){ + $scope.loading = false; + }); + }; + + function _defaultValues() { + var hash = $location.hash(); + + if (hash) { + $scope.request.types = {}; + $scope.request.types[hash] = true; + } + + $scope.request.expenses = 20; + $scope.request.wakeId = wake.id; + $scope.request.userId = auth.uid; + } + + _defaultValues(); + } +})(); \ No newline at end of file diff --git a/app/scripts/controllers/wakes-show.controller.js b/app/scripts/controllers/wakes-show.controller.js new file mode 100644 index 0000000..ea7ea35 --- /dev/null +++ b/app/scripts/controllers/wakes-show.controller.js @@ -0,0 +1,37 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .controller('WakesShowController', WakesShowController); + + WakesShowController.$inject = ['$scope', 'wake', 'Users']; + + function WakesShowController($scope, wake, Users) { + $scope.wake = wake; + $scope.profile = Users.getProfile(wake.userId); + + // $scope.wake = wake.$on('value', function(dataSnapshot){ + // $scope.profile = Users.getProfile(dataSnapshot.snapshot.value.userId); + // }); + + // $scope.removeWake = function(wake){ + // var modalInstance = $modal.open({ + // templateUrl: '/views/wakes/removeModal.html', + // controller: 'DeleteWakeCtrl', + // size: 'sm', + // resolve: { + // wake: function () { + // return wake; + // } + // } + // }); + + // modalInstance.result.then(function(res){ + // if(!res){ + // $location.path('/wakes'); + // } + // }); + // }; + } +})(); \ No newline at end of file diff --git a/app/scripts/directives/avatar.directive.js b/app/scripts/directives/avatar.directive.js new file mode 100644 index 0000000..95c976a --- /dev/null +++ b/app/scripts/directives/avatar.directive.js @@ -0,0 +1,47 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .directive('avatar', avatar); + + function avatar() { + var directive = { + link: avatarController, + restrict: 'AE' + }; + + return directive; + + /** + * Size: + * s Small Square 90x90 + * b Big Square 160x160 + * t Small Thumbnail 160x160 (Keeps image proportions) + * m Medium Thumbnail 320x320 (Keeps image proportions) + * l Large Thumbnail 640x640 (Keeps image proportions) + * h Huge Thumbnail 1024x1024 (Keeps image proportions) + */ + function avatarController($scope, $element, $attrs) { + var size = $attrs.size || 's'; + var style = $attrs.style || 'circle'; + + $attrs.$observe('avatar', function(value){ + if(!value) { return false; } + $attrs.$set('src', _imgurUrl(value)); + }); + + if (style && style !== 'false') { + $attrs.$addClass(_thumbnailStyle()); + } + + function _thumbnailStyle() { + return 'img-' + style; + } + + function _imgurUrl(value) { + return 'http://i.imgur.com/' + value + size + '.jpg'; + } + } + } +})(); \ No newline at end of file diff --git a/app/scripts/directives/fileUpload.js b/app/scripts/directives/file-upload.directive.js similarity index 93% rename from app/scripts/directives/fileUpload.js rename to app/scripts/directives/file-upload.directive.js index 29f55b2..46c1858 100644 --- a/app/scripts/directives/fileUpload.js +++ b/app/scripts/directives/file-upload.directive.js @@ -7,7 +7,7 @@ * # MainCtrl * Controller of the findawakeApp */ -var app = angular.module('findawakeApp'); +var app = angular.module('findAWake'); app.directive('fileUpload', function(){ return { diff --git a/app/scripts/directives/navigation.directive.js b/app/scripts/directives/navigation.directive.js new file mode 100644 index 0000000..3d74457 --- /dev/null +++ b/app/scripts/directives/navigation.directive.js @@ -0,0 +1,80 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .directive('navigation', navigation); + + navigation.$inject = ['SimpleLogin']; + + function navigation(SimpleLogin) { + var _html = '
'; + _html += ' '; + _html += ' '; + _html += '
'; + + var directive = { + template: _html, + controller: navigationController + }; + + navigationController.$inject = ['$scope','$element','$attrs']; + + return directive; + + function navigationController($scope, $element, $attrs) { + _checkCurrentUser(); + + $scope.routes = [ + {href:'/wakes/find', label:'Find A Wake', icon: 'fa-search'}, + {href:'/wakes/share', label:'Share A Wake', icon: 'fa-plus'}, + ]; + $scope.logout = SimpleLogin.logout; + + SimpleLogin.onAuth(function(auth){ + console.log(auth, $scope.user); + + if (auth) { + _checkCurrentUser(); + } else { + $scope.user = false; + } + }); + + function _checkCurrentUser() { + SimpleLogin.currentUser().then(function(user){ + $scope.user = user; + }); + } + + } + } +})(); \ No newline at end of file diff --git a/app/scripts/directives/profile-avatar-form.directive.js b/app/scripts/directives/profile-avatar-form.directive.js new file mode 100644 index 0000000..8ee4697 --- /dev/null +++ b/app/scripts/directives/profile-avatar-form.directive.js @@ -0,0 +1,92 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .directive('profileAvatarForm', profileAvatarForm); + + profileAvatarForm.$inject = ['Imgur', 'Users']; + + function profileAvatarForm(Imgur, Users) { + var _html = '
'; + _html += '

Avatar

'; + _html += '
'; + _html += '
'; + _html += '
{{errors}}
'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += ' '; + _html += ' '; + _html += '
'; + _html += '
'; + _html += '
'; + _html += ' '; + _html += ' '; + _html += '
'; + _html += '
'; + _html += '
'; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + + var directive = { + template: _html, + scope: { + profile: '=' + }, + controller: profileAvatarController + }; + + profileAvatarController.$inject = ['$scope', '$element', '$attrs']; + + return directive; + + function profileAvatarController($scope, $element, $attrs) { + $scope.uploadAvatar = uploadAvatar; + $scope.changeAvatar = changeAvatar; + $scope.cancelChangeAvatar = cancelChangeAvatar; + $scope.deleteAvatar = deleteAvatar; + + function deleteAvatar() { + delete $scope.profile.avatar; + updateProfile(); + } + + function changeAvatar(){ + $scope.existingAvatar = angular.copy($scope.profile.avatar); + } + + function cancelChangeAvatar(){ + $scope.profile.avatar = $scope.existingAvatar; + $scope.existingAvatar = false; + } + + function uploadAvatar(){ + $scope.uploadingAvatar = true; + $scope.errors = false; + + Imgur.upload($scope.avatar).then(function(res){ + $scope.profile.avatar = res.data.id; + updateProfile(); + }, function(res){ + $scope.errors = res; + }).finally(function(){ + $scope.uploadingAvatar = false; + $scope.existingAvatar = false; + }); + } + + function updateProfile(){ + $scope.profile.$save().then(function(){ + Users.updatePublicProfile($scope.profile); + }); + } + } + } +})(); \ No newline at end of file diff --git a/app/scripts/directives/profile-gear-form.directive.js b/app/scripts/directives/profile-gear-form.directive.js new file mode 100644 index 0000000..fb69464 --- /dev/null +++ b/app/scripts/directives/profile-gear-form.directive.js @@ -0,0 +1,101 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .directive('profileGearForm', profileGearForm); + + profileGearForm.$inject = ['Users']; + + function profileGearForm(Users) { + var _gearTypes = ['Wakeboard','Wakesurf','Wakeskate','Helmet','Bindings','Camera','Handle','Rope','Fins','Shoes','Vest']; + + var _html = '
'; + _html += '
'; + _html += '

Your Gear

'; + _html += '
'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + _html += ''; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += '
{{gear.type}}{{gear.desc}}'; + _html += ' '; + _html += '
'; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += '
'; + + var directive = { + template: _html, + controller: profileGearController, + scope: { + profile: '=' + } + }; + + profileGearController.$inject = ['$scope', '$element', '$attrs']; + + return directive; + + function profileGearController($scope, $element, $attrs) { + $scope.gearTypes = _gearTypes; + $scope.addGear = addGear; + $scope.removeGear = removeGear; + $scope.updateGear = updateGear; + + $scope.dirty = false; + + function updateGear() { + $scope.saving = true; + $scope.profile.$save().then(function(){ + Users.updatePublicProfile($scope.profile); + }, function(res){ + console.debug('unable to update gear: ', res); + }).finally(function(){ + $scope.saving = false; + $scope.dirty = false; + }); + } + + function addGear(gear){ + if (!gear) { return false; } + $scope.dirty = true; + + if ($scope.profile && !$scope.profile.gear) { + $scope.profile.gear = []; + } + + $scope.profile.gear.push(angular.copy(gear)); + _resetNewGear(); + } + + function removeGear(index){ + $scope.dirty = true; + $scope.profile.gear.splice(index,1); + } + + function _resetNewGear() { + $scope.newGear = {}; + } + } + } +})(); \ No newline at end of file diff --git a/app/scripts/directives/request-panel.directive.js b/app/scripts/directives/request-panel.directive.js new file mode 100644 index 0000000..51a7940 --- /dev/null +++ b/app/scripts/directives/request-panel.directive.js @@ -0,0 +1,66 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .directive('requestPanel', requestPanel); + + requestPanel.$inject = ['Users', 'Requests']; + + function requestPanel(Users, Requests) { + var _html = '
'; + _html += ' '; + _html += '

{{profile.name}}

'; + _html += '
'; + _html += ' ${{request.expenses || \'0\'}}.00'; + _html += '
'; + _html += '
'; + _html += ' will help with'; + _html += '
    '; + _html += '
  • {{key}}
  • '; + _html += '
'; + _html += '
'; + _html += '
'; + _html += ' will be'; + _html += '
    '; + _html += '
  • {{key}}
  • '; + _html += '
'; + _html += '
'; + _html += '
'; + _html += ' '; + _html += ' '; + _html += '
'; + _html += '
'; + _html += ' ' + _html += ' ' + _html += '
'; + _html += '
'; + + var directive = { + template: _html, + scope: { + request: '=' + }, + controller: requestPanelController + }; + + requestPanelController.$inject = ['$scope']; + + return directive; + + function requestPanelController($scope) { + $scope.declineRequest = Requests.decline; + $scope.acceptRequest = Requests.accept; + $scope.acceptedOrDeclined = acceptedOrDeclined; + + Users.getProfile($scope.request.userId).then(function(data){ + $scope.profile = data; + }); + + function acceptedOrDeclined() { + return $scope.request.accepted || $scope.request.declined; + } + + } + } +})(); \ No newline at end of file diff --git a/app/scripts/directives/wake-info-form.directive.js b/app/scripts/directives/wake-info-form.directive.js new file mode 100644 index 0000000..7b2aa26 --- /dev/null +++ b/app/scripts/directives/wake-info-form.directive.js @@ -0,0 +1,49 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .directive('wakeInfoForm', wakeInfoForm); + + wakeInfoForm.$inject = ['WakeSettings']; + + function wakeInfoForm(WakeSettings) { + var _html = '
'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + + var directive = { + template: _html, + controller: wakeInfoController, + scope: { + wake: '=' + } + }; + + wakeInfoController.$inject = ['$scope']; + + return directive; + + function wakeInfoController($scope) { + $scope.years = WakeSettings.years(); + $scope.inputFeedback = inputFeedback; + + function inputFeedback(model) { + return model ? 'has-success' : 'has-error'; + } + } + } +})(); \ No newline at end of file diff --git a/app/scripts/directives/wake-location-form.directive.js b/app/scripts/directives/wake-location-form.directive.js new file mode 100644 index 0000000..abc41f7 --- /dev/null +++ b/app/scripts/directives/wake-location-form.directive.js @@ -0,0 +1,90 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .directive('wakeLocationForm', wakeLocationForm); + + wakeLocationForm.$inject = ['LocationGeocode']; + + function wakeLocationForm(LocationGeocode) { + /* jshint maxstatements:43 */ + var _html = '
'; + _html += '
'; + _html += '
'; + _html += '
{{wake.location.formatted}} Verified
'; + _html += '
'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + _html += '
'; + _html += '
'; + _html += '
'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + _html += '
'; + _html += '
{{errors}}
'; + _html += '
'; + _html += ' Verifying the location...'; + _html += '
'; + _html += '
'; + _html += ' Please select a verified location:'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + + var directive = { + template: _html, + controller: wakeLocationController, + scope: { + wake: '=' + } + }; + + wakeLocationController.$inject = ['$scope','$element','$attrs']; + + return directive; + + function wakeLocationController($scope, $element, $attrs) { + $scope.modelOptions = { + debounce: 500 + }; + + $scope.validateLocation = validateLocation; + $scope.removeLocation = removeLocation; + + function removeLocation() { + delete $scope.wake.location; + } + + function validateLocation() { + $scope.validating = true; + $scope.errors = false; + + LocationGeocode.validate($scope.location).then(function(res){ + $scope.validatedLocations = res; + }, function(res){ + $scope.errors = res; + }).finally(function(){ + $scope.validating = false; + }); + } + } + } +})(); \ No newline at end of file diff --git a/app/scripts/directives/wake-panel.directive.js b/app/scripts/directives/wake-panel.directive.js new file mode 100644 index 0000000..3ce9a98 --- /dev/null +++ b/app/scripts/directives/wake-panel.directive.js @@ -0,0 +1,65 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .directive('wakePanel', wakePanel); + + wakePanel.$inject = ['Wakes']; + + function wakePanel(Wakes) { + var _html = '
'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + _html += '
'; + _html += ' '; + _html += '
'; + + var directive = { + template: _html, + scope: { + wakeId: '=', + user: '=' + }, + controller: wakePanelController + }; + + wakePanelController.$inject = ['$scope']; + + return directive; + + function wakePanelController($scope) { + $scope.authorized = isUserAuthorized; + + Wakes.get($scope.wakeId).then(function(data){ + $scope.wake = data; + }); + + function isUserAuthorized() { + return $scope.user && $scope.wake && $scope.user.$id === $scope.wake.userId; + } + } + } +})(); \ No newline at end of file diff --git a/app/scripts/directives/wake-schedule-form.directive.js b/app/scripts/directives/wake-schedule-form.directive.js new file mode 100644 index 0000000..e0a2a8e --- /dev/null +++ b/app/scripts/directives/wake-schedule-form.directive.js @@ -0,0 +1,80 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .directive('wakeScheduleForm', wakeScheduleForm); + + wakeScheduleForm.$inject = ['WakeSettings']; + + function wakeScheduleForm(WakeSettings) { + var _html = ''; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += '
DayFromTo
{{s.day}}{{s.from.hour}}{{s.from.period}}{{s.to.hour}}{{s.to.period}}
'; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += '
'; + + var directive = { + controller: wakeScheduleController, + template: _html, + scope: { + wake: '=' + } + }; + + wakeScheduleController.$inject = ['$scope','$element','$attrs']; + + return directive; + + function wakeScheduleController($scope, $element, $attrs) { + $scope.wake.schedules = $scope.wake.schedules || []; + $scope.removeSchedule = removeSchedule; + $scope.addSchedule = addSchedule; + $scope.isInvalid = isInvalid; + $scope.days = WakeSettings.days(); + $scope.hours = WakeSettings.hours(); + $scope.timePeriods = WakeSettings.timePeriods(); + + function addSchedule(schedule) { + $scope.wake.schedules.push(angular.copy(schedule)); + $scope.schedule = {}; + } + + function removeSchedule(index) { + $scope.wake.schedules.splice(index, 1); + } + + function isInvalid(schedule) { + if (!schedule) { return true; } + return !schedule.day || !schedule.from || !schedule.to; + } + } + } +})(); \ No newline at end of file diff --git a/app/scripts/directives/wake-thumbnail-form.directive.js b/app/scripts/directives/wake-thumbnail-form.directive.js new file mode 100644 index 0000000..cc17137 --- /dev/null +++ b/app/scripts/directives/wake-thumbnail-form.directive.js @@ -0,0 +1,81 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .directive('wakeThumbnailForm', wakeThumbnailForm); + + wakeThumbnailForm.$inject = ['Imgur']; + + function wakeThumbnailForm(Imgur) { + var _html = '
'; + _html += '
{{errors}}
'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += ' No
Thumbnail
'; + _html += ' '; + _html += '
'; + _html += '
'; + _html += '
'; + _html += ' '; + _html += ' '; + _html += '
'; + _html += '
'; + _html += '
'; + _html += ' '; + _html += ' '; + _html += ' '; + _html += ' '; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + + var directive = { + template: _html, + controller: wakeThumbnailController, + scope: { + wake: '=' + } + }; + + wakeThumbnailController.$inject = ['$scope','$element','$attrs']; + + return directive; + + function wakeThumbnailController($scope, $element, $attrs) { + $scope.uploadThumbnail = uploadThumbnail; + $scope.changeThumbnail = changeThumbnail; + $scope.cancelChangeThumbnail = cancelChangeThumbnail; + $scope.deleteThumbnail = deleteThumbnail; + + function deleteThumbnail() { + delete $scope.wake.thumbnail; + } + + function changeThumbnail(){ + $scope.existingThumbnail = angular.copy($scope.wake.thumbnail); + } + + function cancelChangeThumbnail(){ + $scope.wake.thumbnail = $scope.existingThumbnail; + $scope.existingThumbnail = false; + } + + function uploadThumbnail(){ + $scope.uploadingThumbnail = true; + $scope.errors = false; + + Imgur.upload($scope.thumbnail).then(function(res){ + $scope.wake.thumbnail = res.data.id; + }, function(res){ + $scope.errors = res; + }).finally(function(){ + $scope.uploadingThumbnail = false; + $scope.existingThumbnail = false; + }); + } + } + } +})(); \ No newline at end of file diff --git a/app/scripts/directives/wake-thumbnail.directive.js b/app/scripts/directives/wake-thumbnail.directive.js new file mode 100644 index 0000000..6592c68 --- /dev/null +++ b/app/scripts/directives/wake-thumbnail.directive.js @@ -0,0 +1,43 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .directive('wakeThumbnail', wakeThumbnail); + + wakeThumbnail.$inject = ['Wakes']; + + function wakeThumbnail(Wakes) { + var _html = ''; + _html += '
'; + _html += '
'; + _html += ' {{wake.boat.year}} {{wake.boat.make}} {{wake.boat.model}}'; + _html += '
'; + _html += ' '; + _html += '
'; + _html += '
'; + _html += ' {{wake.location.formatted}}'; + _html += ' {{wake.location.distance}} miles'; + _html += '
'; + _html += '
'; + + var directive = { + template: _html, + controller: wakeThumbnailController + }; + + wakeThumbnailController.$inject = ['$scope', '$element', '$attrs']; + + return directive; + + function wakeThumbnailController($scope, $element, $attrs) { + $attrs.$observe('wakeId', function(value){ + if (!value) { return false; } + + Wakes.get(value).then(function(data){ + $scope.wake = data; + }); + }); + } + } +})(); \ No newline at end of file diff --git a/app/scripts/directives/wake-types-form.directive.js b/app/scripts/directives/wake-types-form.directive.js new file mode 100644 index 0000000..ee6e6bd --- /dev/null +++ b/app/scripts/directives/wake-types-form.directive.js @@ -0,0 +1,38 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .directive('wakeTypesForm', wakeTypesForm); + + wakeTypesForm.$inject = ['WakeSettings']; + + function wakeTypesForm(WakeSettings) { + var _html = '
'; + _html += '
'; + _html += ' '; + _html += ' '; + _html += '
{{type}}
'; + _html += '
'; + _html += '
'; + _html += '
'; + + //ng-class="{true: 'active color3'}[request.type[type.name].selected]" ng-click="request.type[type.name].selected = !request.type[type.name].selected + + var directive = { + template: _html, + controller: wakeTypesController, + scope: { + wake: '=' + } + }; + + wakeTypesController.$inject = ['$scope']; + + return directive; + + function wakeTypesController($scope) { + $scope.wakeTypes = WakeSettings.wakeTypes(); + } + } +})(); \ No newline at end of file diff --git a/app/scripts/modules/firebase.js b/app/scripts/modules/firebase.js deleted file mode 100644 index 28f3c44..0000000 --- a/app/scripts/modules/firebase.js +++ /dev/null @@ -1,64 +0,0 @@ -'use strict'; - -var app = angular.module('angularfire.firebase', ['firebase']); - - // A quick wrapper to abstract creating Firebase references -app.factory('firebaseRef', function (Firebase, FBURL) { - function pathRef(args) { - for (var i = 0; i < args.length; i++) { - if (typeof(args[i]) === 'object') { - args[i] = pathRef(args[i]); - } - } - return args.join('/'); - } - - /** - * Example: - * - * function(firebaseRef) { - * var ref = firebaseRef('path/to/data'); - * } - * - * - * @function - * @name firebaseRef - * @param {String|Array...} path relative path to the root folder in Firebase instance - * @return a Firebase instance - */ - return function () { - return new Firebase(pathRef([FBURL].concat(Array.prototype.slice.call(arguments)))); - }; -}); - -/** - * A quick wrapper to abstract creating $firebase objects (see example below) - */ -app.service('syncData', function ($firebase, firebaseRef) { - /** - * Create a $firebase reference with just a relative path. For example: - * - * - * function(syncData) { - * // a regular $firebase ref - * $scope.widget = syncData('widgets/alpha'); - * - * // or automatic 3-way binding - * syncData('widgets/alpha').$bind($scope, 'widget'); - * } - * - * - * @function - * @name syncData - * @param {String|Array...} path relative path to the root folder in Firebase instance - * @param {int} [limit] - * @return a Firebase instance - */ - return function (path, limit) { - var ref = firebaseRef(path); - if( limit ) { - ref = ref.limit(limit); - } - return $firebase(ref); - }; -}); \ No newline at end of file diff --git a/app/scripts/modules/imgur.js b/app/scripts/modules/imgur.js index ad88191..d0b7835 100644 --- a/app/scripts/modules/imgur.js +++ b/app/scripts/modules/imgur.js @@ -1,32 +1,45 @@ -'use strict'; +(function(){ + 'use strict'; + + angular + .module('imgur', []) + .constant('IMGUR_API', 'https://api.imgur.com/3/') + .run(imgurRunConfig) + .factory('Imgur', Imgur) + .factory('ImgurImageApi', ImgurImageApi); + + imgurRunConfig.$inject = ['$http']; + Imgur.$inject = ['ImgurImageApi']; + ImgurImageApi.$inject = ['$resource', 'IMGUR_API']; + + function imgurRunConfig($http) { + $http.defaults.useXDomain = true; + $http.defaults.headers.common.Authorization = 'Client-ID 64973c9d57c6457'; + } -var app = angular.module('imgur', []); + function Imgur(ImgurImageApi) { + var service = { + upload: upload + }; -app.run(function($http) { - $http.defaults.useXDomain = true; - $http.defaults.headers.common.Authorization = 'Client-ID 64973c9d57c6457'; -}); + return service; -app.factory('Imgur', function ($http, ImgurImageApi) { - var imgurService = {}; + function upload(img) { + var newUpload = new ImgurImageApi(); + newUpload.image = _base64EncodeImage(img); - imgurService.upload = function(img){ - var newUpload = new ImgurImageApi(); - newUpload.image = base64EncodeImage(img); + return newUpload.$save(); + } + } - return newUpload.$save(); - }; + function ImgurImageApi($resource, IMGUR_API) { + var url = IMGUR_API + 'image.json'; + return $resource(url); + } - function base64EncodeImage(image){ + function _base64EncodeImage(image){ if(image){ return image.replace(/^data:image\/(png|jpg|jpeg);base64,/, ''); } } - - return imgurService; -}); - -app.factory('ImgurImageApi', function($resource, IMGUR){ - var url = IMGUR + 'image.json'; - return $resource(url); -}); \ No newline at end of file +})(); \ No newline at end of file diff --git a/app/scripts/modules/simpleLogin.js b/app/scripts/modules/simpleLogin.js deleted file mode 100644 index e7b7db7..0000000 --- a/app/scripts/modules/simpleLogin.js +++ /dev/null @@ -1,146 +0,0 @@ -'use strict'; - -var app = angular.module('angularfire.login', ['firebase', 'angularfire.firebase']); - -app.run(function(SimpleLogin) { - SimpleLogin.init(); -}); - -app.factory('SimpleLogin', function( - $rootScope, - $firebaseSimpleLogin, - firebaseRef, - ProfileCreator, - $timeout, - $q -){ - var auth = null, simpleLoginService = {}; - - simpleLoginService.init = function() { - var dfr = $q.defer(); - auth = $firebaseSimpleLogin(firebaseRef(), function(error, user){ - if(error){ - dfr.reject(error); - } else { - dfr.resolve(user); - } - }); - return dfr.promise; - }; - - simpleLoginService.currentUser = function(){ - assertAuth(); - return auth.$getCurrentUser(); - }; - - simpleLoginService.logout = function() { - assertAuth(); - auth.$logout(); - }; - - /** - * @param {string} provider - * @param {Function} [callback] - * @returns {*} - */ - simpleLoginService.login = function(provider, callback) { - assertAuth(); - auth.$login(provider, {rememberMe: true}).then(function(user) { - if( callback ) { - //todo-bug https://github.com/firebase/angularFire/issues/199 - $timeout(function() { - callback(null, user); - }); - } - }, callback); - }; - - /** - * @param {string} email - * @param {string} pass - * @param {Function} [callback] - * @returns {*} - */ - simpleLoginService.loginPassword = function(email, pass, callback) { - assertAuth(); - auth.$login('password', { - email: email, - password: pass, - rememberMe: true - }).then(function(user) { - if( callback ) { - //todo-bug https://github.com/firebase/angularFire/issues/199 - $timeout(function() { - callback(null, user); - }); - } - }, callback); - }; - - simpleLoginService.changePassword = function(opts) { - assertAuth(); - var cb = opts.callback || function() {}; - if( !opts.oldpass || !opts.newpass ) { - $timeout(function(){ cb('Please enter a password'); }); - } - else if( opts.newpass !== opts.confirm ) { - $timeout(function() { cb('Passwords do not match'); }); - } - else { - auth.$changePassword(opts.email, opts.oldpass, opts.newpass) - .then(function() { cb(null); }, cb); - } - }; - - simpleLoginService.createAccount = function(email, pass, callback) { - assertAuth(); - auth.$createUser(email, pass).then(function(user) { - callback(null, user); - }, callback); - }; - - simpleLoginService.createProfile = ProfileCreator; - - function assertAuth() { - if( auth === null ) { throw new Error('Must call loginService.init() before using its methods'); } - } - - return simpleLoginService; -}); - -app.factory('ProfileCreator', function( - firebaseRef, - $q -) { - function firstPartOfEmail(email) { - return ucfirst(email.substr(0, email.indexOf('@'))||''); - } - - function ucfirst (str) { - // credits: http://kevin.vanzonneveld.net - str += ''; - var f = str.charAt(0).toUpperCase(); - return f + str.substr(1); - } - - return function(id, email) { - var dfr = $q.defer(), - ref = firebaseRef('users/' + id); - - var refData = { - email: email, - name: firstPartOfEmail(email), - userId: id - }; - - ref.set(refData, function(err){ - if(err){ - dfr.reject(err); - } else { - dfr.resolve(refData); - } - }); - - return dfr.promise; - }; -}); \ No newline at end of file diff --git a/app/scripts/services/firebase-models.factory.js b/app/scripts/services/firebase-models.factory.js new file mode 100644 index 0000000..7ba37c2 --- /dev/null +++ b/app/scripts/services/firebase-models.factory.js @@ -0,0 +1,112 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .factory('FirebaseModels', FirebaseModels); + + FirebaseModels.$inject = ['firebaseRef', '$q', 'SimpleLogin']; + + function FirebaseModels(firebaseRef, $q, SimpleLogin) { + var _currentUser; + + var service = { + createRef: createRef, + createUserAssociation: createUserAssociation, + removeUserAssociation: removeUserAssociation, + createLocationAssociation: createLocationAssociation, + removeLocationAssociation: removeLocationAssociation + }; + + return service; + + function createRef(target, data){ + var dfr = $q.defer(), + ref = firebaseRef(target).push(), + refData = JSON.parse(angular.toJson(data)); + + ref.set(_.assign(refData, {'id': ref.key()}), function(err){ + if(err){ + dfr.reject(err); + } else { + dfr.resolve(ref.key()); + } + }); + + return dfr.promise; + } + + function createUserAssociation(root, target, ref, method){ + var dfr = $q.defer(); + + _auth().then(function(user){ + firebaseRef(root + '/' + user.uid + '/' + target)[method](ref, function(err){ + if(err){ + dfr.reject(err); + } else { + dfr.resolve(); + } + }); + }, function(err){ + dfr.reject(err); + }); + + return dfr.promise; + } + + function createLocationAssociation(state, city, ref) { + var dfr = $q.defer(); + var path = ['locations', state, city].join('/'); + + firebaseRef(path).push(ref, function(err){ + if (err) { + dfr.reject(err); + } else { + dfr.resolve(); + } + }); + + return dfr.promise; + } + + function removeLocationAssociation(state, city, ref) { + var dfr = $q.defer(); + var path = ['locations', state, city, ref].join('/'); + + firebaseRef(path).remove(function(err){ + if (err) { + dfr.reject(err); + } else { + dfr.resolve(); + } + }); + + return dfr.promise; + } + + function removeUserAssociation(root, target, ref){ + var dfr = $q.defer(); + + _auth().then(function(user) { + firebaseRef(root + '/' + user.uid + '/' + target + '/' + ref).remove(function(err){ + if(err){ + dfr.reject(err); + } else { + dfr.resolve(); + } + }); + }, function(err) { + dfr.reject(err); + }); + + return dfr.promise; + } + + function _auth() { + if (!_currentUser) { + _currentUser = SimpleLogin.currentUser(); + } + return _currentUser; + } + } +})(); \ No newline at end of file diff --git a/app/scripts/services/firebase-ref.factory.js b/app/scripts/services/firebase-ref.factory.js new file mode 100644 index 0000000..654211d --- /dev/null +++ b/app/scripts/services/firebase-ref.factory.js @@ -0,0 +1,24 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .factory('firebaseRef', firebaseRef); + + firebaseRef.$inject = ['Firebase', 'FBURL']; + + function firebaseRef (Firebase, FBURL) { + return function () { + return new Firebase(_pathRef([FBURL].concat(Array.prototype.slice.call(arguments)))); + }; + + function _pathRef(args) { + for (var i = 0; i < args.length; i++) { + if (typeof(args[i]) === 'object') { + args[i] = _pathRef(args[i]); + } + } + return args.join('/'); + } + } +})(); \ No newline at end of file diff --git a/app/scripts/services/location-geocode.factory.js b/app/scripts/services/location-geocode.factory.js new file mode 100644 index 0000000..5df21ca --- /dev/null +++ b/app/scripts/services/location-geocode.factory.js @@ -0,0 +1,67 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .factory('LocationGeocode', locationGeocode); + + locationGeocode.$inject = ['$q', 'Geocoder', '$timeout','syncData']; + + function locationGeocode($q, Geocoder, $timeout, syncData) { + var service = { + validate: validate, + states: states + }; + + return service; + + function states() { + return syncData.array('locations').$loaded(); + } + + function cities(state) { + + } + + function validate(address) { + var dfr = $q.defer(); + + if (!address || address && !address.city || address && !address.state) { + dfr.reject('City and State are required.'); + } + + Geocoder.geocode('address', address).then(function(res){ + dfr.resolve(_formatGeocoderResults(res)); + }, function(res){ + dfr.reject(res); + }); + + return dfr.promise; + } + + function getDistance(current, target) { + var fromLatLng = new google.maps.LatLng(current.lat, current.lng); + var toLatlng = new google.maps.Latlng(target.lat, target.lng); + + return Math.round(google.maps.geometry.spherical.computeDistanceBetween(fromLatLng, toLatlng) * 0.000621371192); + } + + + function _formatGeocoderResults(data) { + /*jshint camelcase: false */ + return _.map(data, function(datum){ + var datumObj = {}; + + datum.address_components.forEach(function(address){ + datumObj[_.first(address.types)] = address.long_name; + }); + + datumObj.formatted = datum.formatted_address; + datumObj.lat = datum.geometry.location.lat(); + datumObj.lng = datum.geometry.location.lng(); + + return datumObj; + }); + } + } +})(); \ No newline at end of file diff --git a/app/scripts/services/requests.factory.js b/app/scripts/services/requests.factory.js new file mode 100644 index 0000000..8e8bf55 --- /dev/null +++ b/app/scripts/services/requests.factory.js @@ -0,0 +1,72 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .factory('Requests', Requests); + + Requests.$inject = ['syncData', 'FirebaseModels','$q']; + + function Requests(syncData, FirebaseModels, $q) { + var service = { + get: get, + query: query, + create: createRequest, + accept: acceptRequest, + decline: declineRequest + }; + + return service; + + function query(id) { + return syncData.array('requests/' + id).$loaded(); + } + + function get(request) { + // if(_.isUndefined(auth) || _.isEmpty(auth)){ return false; } + // if(_.isObject(auth.requests)){ + // return !_.isUndefined(auth.requests[wake.id]); + // } + // if(_.isArray(auth.requests)){ + // return _.indexOf(auth.requests, wake.id) === -1; + // } + return syncData.object('requests/' + request.wakeId + '/' + request.id).$loaded(); + } + + function createRequest(request) { + // first create a top level request reference of the wake id. + return FirebaseModels.createRef('requests/' + request.wakeId, request).then(function(requestRef){ + // second update the user with his new request reference + return FirebaseModels.createUserAssociation('users', 'requests/' + request.wakeId, requestRef, 'set'); + }); + } + + function acceptRequest(request) { + return FirebaseModels.createRef('accepted_requests/' + request.wakeId, request.id).then(function(acceptedRef){ + get(request).then(function(userRequestRef){ + userRequestRef.accepted = acceptedRef; + userRequestRef.declined = false; + return userRequestRef.$save(); + }); + }); + } + + function declineRequest(request) { + return FirebaseModels.createRef('declined_requests/' + request.wakeId, request.id).then(function(declinedRef){ + get(request).then(function(userRequestRef){ + userRequestRef.declined = declinedRef; + userRequestRef.accepted = false; + return userRequestRef.$save(); + }); + }); + } + + function _resetAcceptedDeclined() { + + } + + function _handleError(error) { + console.debug(error); + } + } +})(); \ No newline at end of file diff --git a/app/scripts/services/route-security-manager.factory.js b/app/scripts/services/route-security-manager.factory.js new file mode 100644 index 0000000..b2b16b6 --- /dev/null +++ b/app/scripts/services/route-security-manager.factory.js @@ -0,0 +1,126 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .run(runConfig) + .factory('RouteSecurityManager', RouteSecurityManager); + + runConfig.$inject = ['RouteSecurityManager']; + RouteSecurityManager.$inject = ['$location', '$rootScope', '$route', 'loginRedirectPath', 'SimpleLogin']; + + function runConfig (RouteSecurityManager) { + RouteSecurityManager.init(); + } + + function RouteSecurityManager($location, $rootScope, $route, loginRedirectPath, SimpleLogin) { + var service = { + init: init + }; + + return service; + + function init() { + $rootScope.$on('$routeChangeStart', function (event, current, prev) { + _checkCurrentRoute(current, event); + }); + + // SimpleLogin.onAuth(function(auth){ + // if (!auth) { + // _checkCurrentRoute($route); + // } + // }); + } + + function _checkCurrentRoute(current, event) { + + if(current && current.authRequired) { + SimpleLogin.currentUser().then(function(auth){ + if (!auth) { + _handleAuthRequired(current, event); + } + }, _handleAuthRequired.bind(null, current, event)); + } + } + + function _handleAuthRequired(current, event) { + console.debug('this route requires you to be authenticated.'); + + if (event) { + event.preventDefault(); + } + + $location.path(loginRedirectPath).search('redirect', window.location.pathname); + } + } + + // function RouteSecurityManager($location, $rootScope, $route, path) { + // this._route = $route; + // this._location = $location; + // this._rootScope = $rootScope; + // this._loginPath = path; + // this._redirectTo = null; + // this._authenticated = !!($rootScope.auth && $rootScope.auth.user); + // this._init(); + // } + + // RouteSecurityManager.prototype._init = function () { + // var self = this; + // this._checkCurrent(); + + // // Set up a handler for all future route changes, so we can check + // // if authentication is required. + // self._rootScope.$on('$routeChangeStart', function (e, next) { + // self._authRequiredRedirect(next, self._loginPath); + // }); + + // self._rootScope.$on('$firebaseSimpleLogin:login', angular.bind(this, this._login)); + // self._rootScope.$on('$firebaseSimpleLogin:logout', angular.bind(this, this._logout)); + // self._rootScope.$on('$firebaseSimpleLogin:error', angular.bind(this, this._logout)); + // }; + + // RouteSecurityManager.prototype._checkCurrent = function () { + // // Check if the current page requires authentication. + // if (this._route.current) { + // this._authRequiredRedirect(this._route.current, this._loginPath); + // } + // }; + + // RouteSecurityManager.prototype._login = function () { + // this._authenticated = true; + // if (this._redirectTo) { + // this._redirect(this._redirectTo); + // this._redirectTo = null; + // } + // else if (this._location.path() === this._loginPath) { + // this._location.replace(); + // this._location.path('/'); + // } + // }; + + // RouteSecurityManager.prototype._logout = function () { + // this._authenticated = false; + // this._checkCurrent(); + // }; + + // RouteSecurityManager.prototype._redirect = function (path) { + // this._location.replace(); + // this._location.path(path); + // }; + + // // A function to check whether the current path requires authentication, + // // and if so, whether a redirect to a login page is needed. + // RouteSecurityManager.prototype._authRequiredRedirect = function (route, path) { + // if (route.authRequired && !this._authenticated) { + // if (route.pathTo === undefined) { + // this._redirectTo = this._location.path(); + // } else { + // this._redirectTo = route.pathTo === path ? '/' : route.pathTo; + // } + // this._redirect(path); + // } + // else if (this._authenticated && this._location.path() === this._loginPath) { + // this._redirect('/'); + // } + // }; +})(); \ No newline at end of file diff --git a/app/scripts/services/security.js b/app/scripts/services/security.js deleted file mode 100644 index 4abc623..0000000 --- a/app/scripts/services/security.js +++ /dev/null @@ -1,81 +0,0 @@ -(function (angular) { - 'use strict'; - angular.module('findawakeApp') - .run(function ($injector, $location, $rootScope, loginRedirectPath) { - if ($injector.has('$route')) { - new RouteSecurityManager($location, $rootScope, $injector.get('$route'), loginRedirectPath); - } - }); - - function RouteSecurityManager($location, $rootScope, $route, path) { - this._route = $route; - this._location = $location; - this._rootScope = $rootScope; - this._loginPath = path; - this._redirectTo = null; - this._authenticated = !!($rootScope.auth && $rootScope.auth.user); - this._init(); - } - - RouteSecurityManager.prototype = { - _init: function () { - var self = this; - this._checkCurrent(); - - // Set up a handler for all future route changes, so we can check - // if authentication is required. - self._rootScope.$on('$routeChangeStart', function (e, next) { - self._authRequiredRedirect(next, self._loginPath); - }); - - self._rootScope.$on('$firebaseSimpleLogin:login', angular.bind(this, this._login)); - self._rootScope.$on('$firebaseSimpleLogin:logout', angular.bind(this, this._logout)); - self._rootScope.$on('$firebaseSimpleLogin:error', angular.bind(this, this._logout)); - }, - - _checkCurrent: function () { - // Check if the current page requires authentication. - if (this._route.current) { - this._authRequiredRedirect(this._route.current, this._loginPath); - } - }, - - _login: function () { - this._authenticated = true; - if (this._redirectTo) { - this._redirect(this._redirectTo); - this._redirectTo = null; - } - else if (this._location.path() === this._loginPath) { - this._location.replace(); - this._location.path('/'); - } - }, - - _logout: function () { - this._authenticated = false; - this._checkCurrent(); - }, - - _redirect: function (path) { - this._location.replace(); - this._location.path(path); - }, - - // A function to check whether the current path requires authentication, - // and if so, whether a redirect to a login page is needed. - _authRequiredRedirect: function (route, path) { - if (route.authRequired && !this._authenticated) { - if (route.pathTo === undefined) { - this._redirectTo = this._location.path(); - } else { - this._redirectTo = route.pathTo === path ? '/' : route.pathTo; - } - this._redirect(path); - } - else if (this._authenticated && this._location.path() === this._loginPath) { - this._redirect('/'); - } - } - }; -})(angular); \ No newline at end of file diff --git a/app/scripts/services/simple-login.factory.js b/app/scripts/services/simple-login.factory.js new file mode 100644 index 0000000..c9c0d4c --- /dev/null +++ b/app/scripts/services/simple-login.factory.js @@ -0,0 +1,202 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .run(angularfireRun) + .factory('SimpleLogin', SimpleLogin) + .factory('ProfileCreator', ProfileCreator); + + SimpleLogin.$inject = ['$rootScope', 'firebaseRef', 'ProfileCreator', '$timeout', '$q', '$firebaseAuth']; + ProfileCreator.$inject = ['firebaseRef', '$q']; + + function angularfireRun(SimpleLogin){ + SimpleLogin.init(); + } + + function SimpleLogin($rootScope, firebaseRef, ProfileCreator, $timeout, $q, $firebaseAuth){ + var _auth = null; + + var service = { + init: init, + currentUser: currentUser, + onAuth: onAuth, + logout: logout, + login: login, + loginPassword: loginPassword, + changePassword: changePassword, + createAccount: createAccount, + createProfile: ProfileCreator, + parseErrorMessages: parseErrorMessages, + assertValidLoginAttempt: assertValidLoginAttempt, + assertValidCreateAccountAttempt: assertValidCreateAccountAttempt + }; + + return service; + + function init() { + var dfr = $q.defer(); + _auth = $firebaseAuth(firebaseRef(), function(error, user){ + if(error){ + dfr.reject(error); + } else { + dfr.resolve(user); + } + }); + return dfr.promise; + } + + function currentUser() { + _ensureAuth(); + return _auth.$waitForAuth(); + } + + function onAuth(callback) { + _ensureAuth(); + return _auth.$onAuth(callback); + } + + function logout() { + _ensureAuth(); + return _auth.$unauth(); + } + + /** + * @param {string} provider + * @param {Function} [callback] + * @returns {*} + */ + function login(provider, credentials, callback) { + _ensureAuth(); + return _auth.$authWithOAuthToken(provider, credentials, {rememberMe: true}).then(function(user) { + if( callback ) { + //todo-bug https://github.com/firebase/angularFire/issues/199 + $timeout(function() { + callback(null, user); + }); + } + }, callback); + } + + /** + * @param {string} email + * @param {string} pass + * @param {Function} [callback] + * @returns {*} + */ + function loginPassword(email, pass, callback) { + _ensureAuth(); + return _auth.$authWithPassword({ + email: email, + password: pass, + rememberMe: true + }).then(function(user) { + if( callback ) { + //todo-bug https://github.com/firebase/angularFire/issues/199 + $timeout(function() { + callback(null, user); + }); + } + }, callback); + } + + function changePassword(user) { + _ensureAuth(); + var dfr = $q.defer(); + + if( !user.oldpass || !user.newpass ) { + dfr.reject('Please enter a password'); + } else if( user.newpass !== user.confirm ) { + dfr.reject('Passwords do not match'); + } else { + _auth.$changePassword({ + 'email': user.email, + 'oldPassword': user.oldpass, + 'newPassword': user.newpass + }).then(dfr.resolve, dfr.reject); + } + + return dfr.promise; + } + + function createAccount(email, password, callback) { + _ensureAuth(); + var dfr = $q.defer(); + + _auth.$createUser({ + 'email': email, + 'password': password + }).then(dfr.resolve, dfr.reject); + + return dfr.promise; + } + + function parseErrorMessages(err){ + if(err){ + return err.message.replace(/FirebaseSimpleLogin:\s/g,''); + } else { + return null; + } + } + + function assertValidLoginAttempt(email, pass){ + if( !email ) { + return 'Please enter an email address'; + } else if( !pass ) { + return 'Please enter a password'; + } + return false; + } + + function assertValidCreateAccountAttempt(email, pass, confirm) { + if( !email ) { + return 'Please enter an email address'; + } else if( !pass ) { + return 'Please enter a password'; + } else if( pass !== confirm ) { + return 'Passwords do not match'; + } + return false; + } + + function _ensureAuth() { + if( _auth === null ) { + throw new Error('Must call loginService.init() before using its methods'); + } + } + } + + function ProfileCreator(firebaseRef, $q) { + function _firstPartOfEmail(email) { + return _ucfirst(email.substr(0, email.indexOf('@'))||''); + } + + function _ucfirst (str) { + // credits: http://kevin.vanzonneveld.net + str += ''; + var f = str.charAt(0).toUpperCase(); + return f + str.substr(1); + } + + return function(id, email) { + var dfr = $q.defer(), + ref = firebaseRef('users/' + id); + + var refData = { + email: email, + name: _firstPartOfEmail(email), + userId: id + }; + + ref.set(refData, function(err){ + if(err){ + dfr.reject(err); + } else { + dfr.resolve(refData); + } + }); + + return dfr.promise; + }; + } +})(); \ No newline at end of file diff --git a/app/scripts/services/sync-data.factory.js b/app/scripts/services/sync-data.factory.js new file mode 100644 index 0000000..46539cf --- /dev/null +++ b/app/scripts/services/sync-data.factory.js @@ -0,0 +1,38 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .factory('syncData', syncData); + + syncData.$inject = ['$firebaseObject', '$firebaseArray','firebaseRef']; + + function syncData($firebaseObject, $firebaseArray, firebaseRef) { + var service = { + array: array, + object: object + }; + + return service; + + function array(path, limit) { + var ref = firebaseRef(path); + + return $firebaseArray(ref); + } + + function object(path, limit) { + var ref = firebaseRef(path); + + return $firebaseObject(ref); + } + + // return function (path, limit) { + // var ref = firebaseRef(path); + // if( limit ) { + // ref = ref.limit(limit); + // } + // return $firebaseObject(ref); + // }; + } +})(); \ No newline at end of file diff --git a/app/scripts/services/user-settings.factory.js b/app/scripts/services/user-settings.factory.js new file mode 100644 index 0000000..981ab02 --- /dev/null +++ b/app/scripts/services/user-settings.factory.js @@ -0,0 +1,44 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .factory('UserSettings', UserSettings); + + UserSettings.$inject = []; + + function UserSettings() { + var _gearKeys = ['Wakeboard','Wakesurf','Wakeskate','Helmet','Bindings','Camera','Handle','Rope','Fins','Shoes','Vest']; + + var service = { + gear: listGearTypes + }; + + return service; + + function init($scope) { + assertProfile($scope.profile); + + if(_.isUndefined($scope.profile.gear)) { + $scope.profile.gear = []; + } + + $scope.gearTypes = listGearTypes(); + } + + function listGearTypes(){ + return _gearKeys; + } + + function assertProfile(profile){ + if(_.isUndefined(profile) || _.isNull(profile)) { throw new Error('Profile must be loaded before calling UserSettings'); } + + // these are required and never should be empty, but in case the profile was deleted this will re-create it. + //if(_.isUndefined(profile.email) && _.isUndefined(profile.id) && _.isUndefined(profile.name)) { + //SimpleLogin.currentUser().then(function(user){ + // SimpleLogin.createProfile(user.id, user.email); + //}); + //} + } + } +})(); \ No newline at end of file diff --git a/app/scripts/services/userSettings.js b/app/scripts/services/userSettings.js deleted file mode 100644 index 3ace82f..0000000 --- a/app/scripts/services/userSettings.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; -/*global _:false */ - -/** - * @ngdoc function - * @name findawakeApp.controller:MainCtrl - * @description - * # MainCtrl - * Controller of the findawakeApp - */ - -var app = angular.module('findawakeApp'); - -app.factory('UserSettings', function(){ - var usersSettingsService = {}; - - usersSettingsService.init = function($scope){ - assertProfile($scope.profile); - - if(_.isUndefined($scope.profile.gear)) { - $scope.profile.gear = []; - } - - $scope.gearTypes = listGearTypes(); - }; - - function listGearTypes(){ - return ['Wakeboard','Wakesurf','Wakeskate','Helmet','Bindings','Camera','Handle','Rope','Fins','Shoes','Vest']; - } - - function assertProfile(profile){ - if(_.isUndefined(profile) || _.isNull(profile)) { throw new Error('Profile must be loaded before calling UserSettings'); } - - // these are required and never should be empty, but in case the profile was deleted this will re-create it. - if(_.isUndefined(profile.email) && _.isUndefined(profile.id) && _.isUndefined(profile.name)) { - //SimpleLogin.currentUser().then(function(user){ - // SimpleLogin.createProfile(user.id, user.email); - //}); - } - } - - - - return usersSettingsService; -}); \ No newline at end of file diff --git a/app/scripts/services/users.factory.js b/app/scripts/services/users.factory.js new file mode 100644 index 0000000..2fcb735 --- /dev/null +++ b/app/scripts/services/users.factory.js @@ -0,0 +1,103 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .factory('Users', Users); + + Users.$inject = ['syncData', 'firebaseRef', '$q']; + + function Users(syncData, firebaseRef, $q) { + var profiles = {}; + + var service = { + get: get, + getProfile: getProfile, + updatePublicProfile: updatePublicProfile, + createPublicProfile: createPublicProfile + }; + + return service; + + function get(id){ + if (!id) { return false; } + return syncData.object('users/' + id).$loaded(); + } + + function getProfile(id){ + if(!id){ return false; } + if(!profiles[id]){ + profiles[id] = syncData.object('profiles/' + id).$loaded(); + } + return profiles[id]; + } + + function updatePublicProfile(user){ + var dfr = $q.defer(); + var id = user.uid || user.$id; + var profile = firebaseRef('profiles/' + id); + var datum = JSON.parse( + angular.toJson( + _.pick(user, 'avatar','bio','gear','location','name','boats') + ) + ); + + profile.update(datum, function(error) { + if (error) { + console.debug('unable to update profile: ', error); + dfr.reject(error); + } else { + dfr.resolve(); + } + }); + + return dfr.promise; + } + + function createPublicProfile(user){ + // ensure user does not have a profile. + var id = user.uid || user.$id; + return _checkExistingProfile(id).then(function(data){ + console.debug('profile already exists'); + }, function(){ + return _createRef('profiles/' + id, user); + }); + } + + function _createRef(target, data){ + var dfr = $q.defer(); + var ref = firebaseRef(target); + var datum = JSON.parse( + angular.toJson( + _.pick(data, 'name') + ) + ); + + ref.set(datum, function(error){ + if(error){ + console.debug('unable to create reference: ', error); + dfr.reject(error); + } else { + dfr.resolve(ref.name()); + } + }); + + return dfr.promise; + } + + function _checkExistingProfile(id) { + var dfr = $q.defer(); + var profiles = firebaseRef('profiles'); + + profiles.child(id).once('value', function(snapshot){ + if (snapshot.val() !== null) { + dfr.resolve(snapshot); + } else { + dfr.reject(); + } + }); + + return dfr.promise; + } + } +})(); \ No newline at end of file diff --git a/app/scripts/services/users.js b/app/scripts/services/users.js deleted file mode 100644 index 7ed8b9f..0000000 --- a/app/scripts/services/users.js +++ /dev/null @@ -1,62 +0,0 @@ -'use strict'; -/*global _:false */ - -/** - * @ngdoc function - * @name findawakeApp.controller:MainCtrl - * @description - * # MainCtrl - * Controller of the findawakeApp - */ - -var app = angular.module('findawakeApp'); - -app.factory('Users', function( - syncData, - firebaseRef, - $q -){ - var usersService = {}, profiles = {}; - - usersService.get = function(id){ - return syncData('users/' + id); - }; - - usersService.getProfile = function(id){ - if(!id){ return false; } - if(!profiles[id]){ - profiles[id] = syncData('profiles/' + id); - } - return profiles[id]; - }; - - usersService.updatePublicProfile = function(user){ - var profile = firebaseRef('profiles/' + user.userId); - - profile.update( - _.assign(JSON.parse(angular.toJson(_.pick(user, 'avatar','bio','gear','location','name','boats')))) - ); - }; - - usersService.createPublicProfile = function(user){ - return createRef('profiles/' + user.userId, user); - }; - - function createRef(target, data){ - var dfr = $q.defer(), - ref = firebaseRef(target), - refData = JSON.parse(angular.toJson(_.pick(data, 'name'))); - - ref.set(refData, function(err){ - if(err){ - dfr.reject(err); - } else { - dfr.resolve(ref.name()); - } - }); - - return dfr.promise; - } - - return usersService; -}); \ No newline at end of file diff --git a/app/scripts/services/wake-settings.factory.js b/app/scripts/services/wake-settings.factory.js new file mode 100644 index 0000000..767f898 --- /dev/null +++ b/app/scripts/services/wake-settings.factory.js @@ -0,0 +1,63 @@ +(function(){ + 'use strict'; + + angular + .module('findAWake') + .factory('WakeSettings', WakeSettings); + + WakeSettings.$inject = ['$timeout', '$q', 'Geocoder']; + + // this should really be a directive, just saying. + function WakeSettings($timeout, $q, Geocoder) { + var service = { + years: listYears, + days: listDays, + hours: listHours, + timePeriods: listTimePeriods, + wakeTypes: listBoardTypes + }; + + return service; + + function listYears(){ + var currentYear = new Date().getFullYear()+1, + years = [], + startYear = 1970; + while ( startYear <= currentYear ) { + years.unshift(startYear++); + } + return years; + } + + function listDays(){ + var days = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']; + return days; + } + + function listHours(){ + var hours = [], + startHour = 1, + endHour = 12; + while(startHour <= endHour) { + hours.push(startHour++); + } + return hours; + } + + function listTimePeriods(){ + var periods = ['AM','PM']; + return periods; + } + + function listBoardTypes(){ + // var types = [ + // {name:'wakeboarding', selected:true}, + // {name:'wakesurfing', selected:false}, + // {name:'wakeskating', selected:false} + // ]; + + var types = ['wakeboarding','wakesurfing','wakeskating']; + return types; + } + } +})(); \ No newline at end of file diff --git a/app/scripts/services/wakeSettings.js b/app/scripts/services/wakeSettings.js deleted file mode 100644 index 9976d2b..0000000 --- a/app/scripts/services/wakeSettings.js +++ /dev/null @@ -1,102 +0,0 @@ -'use strict'; -/*global _:false */ - -/** - * @ngdoc function - * @name findawakeApp.controller:MainCtrl - * @description - * # MainCtrl - * Controller of the findawakeApp - */ - -var app = angular.module('findawakeApp'); - -app.factory('WakeSettings', function($timeout, $q, Geocoder){ - var wakeSettingsService = {}, validationTimeout; - - wakeSettingsService.init = function($scope){ - if(_.isNull($scope.wake) || _.isUndefined($scope.wake)){ - $scope.wake = {}; - $scope.wake.schedules = []; - $scope.wake.types = listBoardTypes(); - } - $scope.location = {}; - $scope.years = listYears(); - $scope.days = listDays(); - $scope.hours = listHours(); - $scope.timePeriods = listTimePeriods(); - }; - - wakeSettingsService.validateLocation = function(location, callback){ - /*jshint camelcase: false */ - var l = location; - if(_.isEmpty(l) || _.isEmpty(l.city) || _.isEmpty(l.state)) { return false; } - - if(!_.isUndefined(validationTimeout)){ - $timeout.cancel(validationTimeout); - validationTimeout = undefined; - } - validationTimeout = $timeout(function(){ - Geocoder.geocode('address', location).then(function(res){ - if(callback){ - callback(formatGeocodeResults(res)); - } - }); - }, 1000); - }; - - function formatGeocodeResults(results){ - return _.map(results, function(result){ - var obj = {}; - /*jshint camelcase: false */ - _.each(result.address_components, function(address){ - obj[_.first(address.types)] = address.long_name; - }); - obj.formatted = result.formatted_address; - obj.lat = result.geometry.location.lat(); - obj.lng = result.geometry.location.lng(); - return obj; - }); - } - - function listYears(){ - var currentYear = new Date().getFullYear()+1, - years = [], - startYear = 1970; - while ( startYear <= currentYear ) { - years.unshift(startYear++); - } - return years; - } - - function listDays(){ - var days = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']; - return days; - } - - function listHours(){ - var hours = [], - startHour = 1, - endHour = 12; - while(startHour <= endHour) { - hours.push(startHour++); - } - return hours; - } - - function listTimePeriods(){ - var periods = ['AM','PM']; - return periods; - } - - function listBoardTypes(){ - var types = [ - {name:'wakeboarding',selected:true}, - {name:'wakesurfing',selected:false}, - {name:'wakeskating',selected:false} - ]; - return types; - } - - return wakeSettingsService; -}); \ No newline at end of file diff --git a/app/scripts/services/wakes.factory.js b/app/scripts/services/wakes.factory.js new file mode 100644 index 0000000..b15b3dd --- /dev/null +++ b/app/scripts/services/wakes.factory.js @@ -0,0 +1,67 @@ +/*jshint camelcase: false */ + +(function(){ + 'use strict'; + + angular + .module('findAWake') + .factory('Wakes', Wakes); + + Wakes.$inject = ['syncData', 'FirebaseModels','$q']; + + function Wakes(syncData, FirebaseModels, $q) { + var service = { + query: query, + get: get, + remove: removeWake, + create: createWake, + update: updateWake + }; + + return service; + + function query() { + return syncData.array('wakes').$loaded(); + } + + function get(id) { + return syncData.object('wakes/' + id).$loaded(); + } + + function updateWake(wake) { + + } + + function removeWake(wake) { + return $q.all([ + FirebaseModels.removeUserAssociation('users', 'wakes', wake.id), + FirebaseModels.removeUserAssociation('profiles', 'wakes', wake.id), + FirebaseModels.removeLocationAssociation(_state(wake), _city(wake), wake.id) + ]).then(function(){ + return wake.$remove(); + }); + } + + function createWake(wake) { + return FirebaseModels.createRef('wakes', wake).then(function(wakeRef){ + return $q.all([ + FirebaseModels.createUserAssociation('users', 'wakes', wakeRef, 'push'), + FirebaseModels.createUserAssociation('profiles', 'wakes', wakeRef, 'push'), + FirebaseModels.createLocationAssociation(_state(wake), _city(wake), wakeRef) + ]); + }); + } + + function _city(wake) { + return wake.location.locality || wake.location.administrative_area_level_2; + } + + function _state(wake) { + return wake.location.administrative_area_level_1; + } + + function _handleError(error) { + console.debug(error); + } + } +})(); \ No newline at end of file diff --git a/app/scripts/services/wakes.js b/app/scripts/services/wakes.js deleted file mode 100644 index b1c86c2..0000000 --- a/app/scripts/services/wakes.js +++ /dev/null @@ -1,220 +0,0 @@ -'use strict'; -/*global _:false */ -/*global google:false */ - -/** - * @ngdoc function - * @name findawakeApp.controller:MainCtrl - * @description - * # MainCtrl - * Controller of the findawakeApp - */ - -var app = angular.module('findawakeApp'); - -app.factory('Wakes', function( - syncData, - firebaseRef, - $timeout, - $q -){ - var wakesService = {}; - - wakesService.query = function(){ - return syncData('wakes'); - }; - - wakesService.get = function(id){ - return syncData('wakes/' + id); - }; - - wakesService.requests = function(id){ - return syncData('requests/' + id); - }; - - wakesService.remove = function(wake){ - return $q.all([ - removeAssociation('users', 'wakes', wake.userId, wake.id), - removeAssociation('profiles', 'wakes', wake.userId, wake.id) - ]).then(function(){ - return wake.$remove(); - }); - }; - - wakesService.request = function(request){ - return createRef('requests/' + request.wakeId, request).then(function(requestRef){ - createAssociation('users', 'requests/' + request.wakeId, request.userId, requestRef, 'set'); - }); - }; - - wakesService.create = function(wake){ - /*jshint camelcase: false */ - return createRef('wakes', wake).then(function(wakeRef){ - return $q.all([ - createAssociation('users', 'wakes', wake.userId, wakeRef, 'push'), - createAssociation('profiles', 'wakes', wake.userId, wakeRef, 'push'), - createAssociation('locations', wake.location.administrative_area_level_2, wake.location.administrative_area_level_1, wakeRef, 'push') - ]); - }); - }; - - wakesService.updateLocation = function(wake){ - /*jshint camelcase: false */ - return createAssociation('locations', wake.location.administrative_area_level_2, wake.location.administrative_area_level_1, wake.id, 'push'); - }; - - wakesService.getDistance = function(current, target){ - var fromLatLng = new google.maps.LatLng(current.lat, current.lng), - toLatlng = new google.maps.Latlng(target.lat, target.lng); - - return Math.round(google.maps.geometry.spherical.computeDistanceBetween(fromLatLng, toLatlng) * 0.000621371192); - }; - - function createRef(target, data){ - var dfr = $q.defer(), - ref = firebaseRef(target).push(), - refData = JSON.parse(angular.toJson(data)); - - ref.set(_.assign(refData, {'id': ref.name()}), function(err){ - if(err){ - dfr.reject(err); - } else { - dfr.resolve(ref.name()); - } - }); - - return dfr.promise; - } - - function createAssociation(root, target, id, ref, method){ - var dfr = $q.defer(); - - firebaseRef(root + '/' + id + '/' + target)[method](ref, function(err){ - if(err){ - dfr.reject(err); - } else { - dfr.resolve(); - } - }); - - return dfr.promise; - } - - function removeAssociation(root, target, id, ref){ - var dfr = $q.defer(); - - firebaseRef(root + '/' + id + '/' + target + '/' + ref).remove(function(err){ - if(err){ - dfr.reject(err); - } else { - dfr.resolve(); - } - }); - - return dfr.promise; - } - - return wakesService; -}); - -/** - * @ngdoc function - * @name findawakeApp.controller:MainCtrl - * @description - * # MainCtrl - * Controller of the findawakeApp - */ - /* -var app = angular.module('findawakeApp'); - -app.service('Pulls', function ( - $timeout, - $location, - FIREBASE_URL, - angularFireCollection, - angularFire, - ImgurManager -){ - var pullsService = {}, client = new Firebase(FIREBASE_URL), imgur = new ImgurManager(); - - pullsService.get = function(user){ - if(user){ - return angularFire(FIREBASE_URL + 'users/' + user + '/pulls', $scope, 'pulls', {}); - } else { - return angularFireCollection(FIREBASE_URL+'pulls'); - } - }; - - pullsService.add = function(){ - var auth = $scope.auth, - newPull = _client.child('/pulls').push(); - - newPullData = { - id: newPull.name(), - boat: $scope.boat, - schedule: $scope.schedules, - pulltypes: $scope.pulltypes, - location: $scope.location, - user_id: auth.user, - thumbnail: undefined - }; - - _imgur.uploadImage($scope.thumbnail, function(data){ - newPullData.thumbnail = data.data.link; - _setData(); - }); - - var _setData = function(){ - newPull.set(JSON.parse(angular.toJson(newPullData)), function(error){ - if(error){ - $scope.loading = false; - $scope.$broadcast('pulls.add.error', {error: error}); - } else { - $scope.loading = false; - _client.child('/users/'+auth.user+'/pulls/'+newPull.name()).set({id:newPull.name()}); - $scope.$broadcast('pulls.add.success', {pull: newPull.name()}); - } - }); - }; - }; - - pullsService.remove = function(){ - var auth = $scope.auth; - if(pullId){ - _client.child('/pulls/'+pullId).remove(function(error){ - if(error){ - $scope.$broadcast('pulls.remove.error', {error: error}); - } else { - _client.child('/users/'+auth.user+'/pulls/'+pullId).remove(); - $scope.$broadcast('pulls.remove.success', {}); - } - }); - } - }; - - pullsService.request = function(){ - $scope.loading = true; - var auth = $scope.auth, - newRequest = _client.child('/pulls/'+pullId+'/requests').push(); - - newRequest.set(JSON.parse(angular.toJson($scope.request)), function(error){ - if(error){ - $timeout(function(){ - $scope.loading = false; - }); - $scope.$broadcast('requests.add.error', {error: error}); - } else { - $timeout(function(){ - $scope.loading = false; - }); - _client.child('/users/'+auth.user+'/requests/'+newRequest.name()).set({id:newRequest.name()}); - $scope.$broadcast('requests.add.success', {pull: newRequest.name()}); - } - }) - }; - - return pullsService; - - -}); -*/ \ No newline at end of file diff --git a/app/styles/1pxdeep.less b/app/styles/1pxdeep.less new file mode 100755 index 0000000..7d42093 --- /dev/null +++ b/app/styles/1pxdeep.less @@ -0,0 +1,1553 @@ +///////////////////////////////////////////////// +///////////////////////////////////////////////// +//// +//// 1pxdeep v1.0.1 +//// +//// Copyright 2013 Rex Riepe +//// Licensed under the Apache License v2.0 +//// http://www.apache.org/licenses/LICENSE-2.0 +//// +///////////////////////////////////////////////// +///////////////////////////////////////////////// + +//// Bootstrap variable overrides +@white: #f7f7f7; +@font-size-base: 16px; + +@border-radius-base: 6px; +@border-radius-large: 8px; +@border-radius-small: 4px; + +@font-family-sans-serif: 'Open Sans', sans-serif; +@font-family-serif: 'Merriweather', serif; +//** Default monospace fonts for ``, ``, and `
`.
+@font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace;
+@font-family-base:        @font-family-sans-serif;
+
+// @link-color:            white;
+// @link-hover-color:      white;
+// @link-hover-decoration: underline;
+
+@list-group-bg:                     transparent;
+
+@table-border-color:                transparent;
+
+@modal-backdrop-bg:                 @color1a;
+
+@input-height-base:                 (@line-height-computed + (@padding-base-vertical * 2) + 4);
+
+@btn-default-bg:                    @white;
+@btn-default-border:                @btn-default-bg;
+@btn-font-weight:                   normal;
+
+@brand-primary:                     hsl(hue(#428bca),@sat,@l-factor);
+@brand-info:                        hsl(hue(#5bc0de),@sat,@l-factor);
+@brand-success:                     hsl(hue(#5cb85c),((saturation(#5cb85c) + @sat)/2),((luma(#5cb85c) + @luma - 10)/2));
+@brand-warning:                     hsl(hue(#f0ad4e),((saturation(#f0ad4e) + @sat + 16)/2),((luma(#f0ad4e) + @luma - 10)/2));
+@brand-danger:                      hsl(hue(#d9534f),((saturation(#d9534f) + @sat)/2),((luma(#d9534f) + @luma + 10)/2));
+
+//@navbar-link-color:                 white;
+@navbar-default-link-color:         @white;
+//@navbar-link-hover-color:           white;
+@navbar-default-link-hover-color:   @white;
+//@navbar-link-hover-bg:              transparent;
+@navbar-default-link-active-color:  @color1b;
+//@navbar-link-active-color:          white;
+@navbar-default-link-active-bg:     @1pxdeep-bg;
+//@navbar-link-active-bg:             @1pxdeep-bg;
+@navbar-default-link-hover-bg:      @color1b;
+@navbar-link-disabled-color:        #ccc;
+@navbar-link-disabled-bg:           transparent;
+
+//// SchemeLESS variable overrides
+
+@luma-upper-break:72;
+
+@contrast:(@luma/50);
+
+//// Theme variables
+
+@1pxdeep-default-button-color:      @color1b;
+@1pxdeep-bg:                        @white;
+@highlight:                         lighten(@1pxdeep-bg,6%);
+@monochrome:                        greyscale(@color1);
+@body-bg:                           @white;
+
+@sectional-padding-top:             90px;
+@sectional-padding-bottom:          90px;
+
+
+//// Mix-ins
+
+.button-text (@color) when (luma(@color1) >= @luma-upper-break) {
+    color:average(darken(@color,30%),#222);
+}
+
+.button-text (@color) when (luma(@color1) < @luma-upper-break) {
+    color:#ffffff;
+}
+
+.contrast (@color) when (luma(@color) >= @luma-upper-break) {
+    color:mix(darken(@color,18%),#111,50%);
+}
+
+.contrast (@color) when (luma(@color) < @luma-upper-break) {
+    color:hsl(hue(@color),@sat,97%);
+}
+
+.contrast-dim (@color) when (luma(@color) >= @luma-upper-break) {
+    color:mix(darken(@color,5%),#111,65%);
+}
+
+.contrast-dim (@color) when (luma(@color) < @luma-upper-break) {
+    color:mix(@color,#ffffff,25%);
+}
+
+.contrast-link (@color) when (luma(@color) >= @luma-upper-break) {
+    color:average(darken(@color,80%),#222);
+}
+
+.contrast-link (@color) when (luma(@color) < @luma-upper-break) {
+    color:mix(#ffffff,@color1,75%);
+}
+
+.btn-borders(@color) {
+    border:1px solid transparent;
+    border-top-color:mix(softlight(white,@color),@color,30%);
+}
+
+.btn-borders(@color) when (luma(@seed-color) > @luma-upper-break) {
+    border:1px solid transparent;
+    border-bottom-color:mix(#333,@color,30%);
+}
+
+.btn-borders(@color) when (luma(@seed-color) < 10%) {
+    border:1px solid transparent;
+    border-top-color:mix(softlight(white,@color),@color,30%);
+}
+
+.btn-pseudo-states(@color, @background, @border) { // overwrites bootstrap mix-in
+    .contrast(@background);
+    .btn-borders(@background);
+
+    &:hover,
+    &:focus,
+    &:active,
+    &.active {
+        background-color: darken(@background, 2%);
+        .btn-borders(darken(@background, 2%));
+        border-top:1px solid darken(@background, 2%);
+        .1pxdeep-shadow(1.5);
+    }
+
+    &.disabled,
+    &[disabled],
+    fieldset[disabled] & {
+        &,
+        &:hover,
+        &:focus,
+        &:active,
+        &.active {
+            background-color: @background;
+            border-color:transparent;
+        }
+    }
+}
+
+//shadows
+
+@1pxdeep-shadow-intensity:.1;
+
+@1pxdeep-shadow-color:mix(darken(@color1,33%),#222,50%);
+
+@1pxdeep-shadow-r:red(@1pxdeep-shadow-color);
+@1pxdeep-shadow-g:green(@1pxdeep-shadow-color);
+@1pxdeep-shadow-b:blue(@1pxdeep-shadow-color);
+
+.1pxdeep-shadow(@intensity:1) {
+    .box-shadow(0px 1px 2px rgba(@1pxdeep-shadow-r,@1pxdeep-shadow-g,@1pxdeep-shadow-b,(@intensity*@1pxdeep-shadow-intensity)));
+    //.box-shadow(none);
+}
+
+.1pxdeep-shadow(@intensity:1) when (luma(@color1) > @luma-upper-break)  {
+    @1pxdeep-shadow-intensity:.05;
+    .box-shadow(0px 1px 2px rgba(@1pxdeep-shadow-r,@1pxdeep-shadow-g,@1pxdeep-shadow-b,(@intensity*@1pxdeep-shadow-intensity)));
+    //.box-shadow(none);
+}
+
+.1pxdeep-shadow-inset(@intensity:1) {
+    .box-shadow(inset 0px 0px 3px rgba(@1pxdeep-shadow-r,@1pxdeep-shadow-g,@1pxdeep-shadow-b,(@intensity*@1pxdeep-shadow-intensity)));
+    //.box-shadow(none);
+}
+
+.1pxdeep-shadow-inset(@intensity:1) when (luma(@color1) > @luma-upper-break) {
+    @1pxdeep-shadow-intensity:.05;
+    .box-shadow(inset 0px 0px 3px rgba(@1pxdeep-shadow-r,@1pxdeep-shadow-g,@1pxdeep-shadow-b,(@intensity*@1pxdeep-shadow-intensity)));
+    //.box-shadow(none);
+}
+
+
+.btn {
+    .1pxdeep-shadow();
+
+    &:active,
+    &.active {
+        .box-shadow(none);
+    }
+
+    &.disabled,
+    &[disabled],
+        fieldset[disabled] & {
+        .opacity(.65);
+        .box-shadow(none);
+    }
+
+    .btn-color(@color) {
+        background:@color;
+        .contrast(@color);
+        .btn-borders(@color);
+
+        &:hover,
+        &:focus {
+            background:lighten(@color,2%);
+            .btn-borders(lighten(@color,2%));
+            .contrast(@color);
+        }
+
+        &:active,
+        &.active {
+            .contrast-dim(@color);
+            background:darken(@color,2%);
+            border:1px solid darken(@color,2%);
+        }
+    }
+
+    .btn-color(@color) when (luma(@color) > @luma-upper-break) {
+        background:@color;
+        .contrast(@color);
+        .btn-borders(@color);
+
+        &:hover,
+        &:focus {
+            background:lighten(@color,2%);
+            .contrast(@color);
+        }
+
+        &:active,
+        &.active {
+            background:darken(@color,2%);
+            border:1px solid darken(@color,2%);
+        }
+    }
+
+    .btn-color(@1pxdeep-default-button-color);
+    &.color1 {.btn-color(@color1);}
+    &.color1a {.btn-color(@color1a);}
+    &.color1b {.btn-color(@color1b);}
+    &.color1c {.btn-color(@color1c);}
+    &.color2 {.btn-color(@color2);}
+    &.color2a {.btn-color(@color2a);}
+    &.color2b {.btn-color(@color2b);}
+    &.color2c {.btn-color(@color2c);}
+    &.color3 {.btn-color(@color3);}
+    &.color3a {.btn-color(@color3a);}
+    &.color3b {.btn-color(@color3b);}
+    &.color3c {.btn-color(@color3c);}
+    &.color4 {.btn-color(@color4);}
+    &.color4a {.btn-color(@color4a);}
+    &.color4b {.btn-color(@color4b);}
+    &.color4c {.btn-color(@color4c);}
+
+    &.btn-primary {.btn-color(@brand-primary);}
+    &.btn-info {.btn-color(@brand-info);}
+    &.btn-success {.btn-color(@brand-success);}
+    &.btn-warning {.btn-color(@brand-warning);}
+    &.btn-danger {.btn-color(@brand-danger);}
+    &.btn-inverse {.btn-color(desaturate(@color1a,100%));}
+}
+
+.schemify(@color) {
+    @mix-weight:60%;
+    @new-color:mix(hsl(hue(@color),@sat,@luma),@color,@mix-weight);
+    background:@new-color;
+    .contrast(@new-color);
+}
+
+
+//elements
+
+body,html {
+    background:@1pxdeep-bg;
+    .contrast(@1pxdeep-bg);
+
+    -webkit-font-smoothing: antialiased;
+    -moz-font-smoothing: antialiased;
+    font-smoothing: antialiased;
+}
+
+a {
+    .contrast-link(@1pxdeep-bg);
+
+    &:hover {
+        .contrast-link(@1pxdeep-bg);
+    }
+}
+
+blockquote {
+
+    padding:6px 8px;
+
+    cite {
+        font-style:italic;
+    }
+
+    .blockquote-color(@color,@alt-color) {
+        background:@color;
+        border-left:4px solid @alt-color;
+        .contrast(@color);
+
+        &.pull-right {
+            border-left:none;
+            border-right:4px solid @alt-color;
+        }
+
+        small {
+            .contrast(@color);
+            text-shadow:none;
+        }
+    }
+
+    .blockquote-color(@color1c,@color1a);
+    &.color1 { .blockquote-color(@color1c,@color1a)}
+    &.color2 { .blockquote-color(@color2c,@color2a)}
+    &.color3 { .blockquote-color(@color3c,@color3a)}
+    &.color4 { .blockquote-color(@color4c,@color4a)}
+}
+
+/*input[type="checkbox"] { //experimental flat look for checkboxes
+    margin-right:13px;
+    margin-top:5px;
+    background:white;
+
+    &:before {
+        display:block;
+        content:"";
+        width:22px;
+        height:22px;
+        //border:2px solid @1pxdeep-bg;
+        border-radius:@border-radius-base;
+        background:white;
+        position:relative;
+        top:-4px;
+        left:-1px;
+        .box-shadow(inset 1px 1px 0px @1pxdeep-bg);
+    }
+
+    &:checked {
+        &:after {
+            display:block;
+            content:"";
+            width:8px;
+            height:13px;
+            border-radius:0;
+            background:white;
+            position:relative;
+            top:-23px;
+            left:7px;
+            .box-shadow(inset -3px -3px 0px @1pxdeep-bg);
+            border:none;
+            border-radius:0;
+            .rotate(45deg);
+        }
+    }
+}*/
+
+.form-control {
+    .box-shadow(none);
+}
+
+// small fix in headlines
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+  small {
+    color:inherit;
+  }
+}
+
+//dropdown
+
+.dropdown-menu {
+    .box-shadow(none);
+    border:none;
+
+    li {
+        border:none;
+    }
+
+    .dropdown-menu-color(@color) {
+        li {
+            &:hover {
+                a {
+                    background:@color;
+                    .contrast(@color);
+                }
+
+            }
+        }
+    }
+
+    .dropdown-menu-color(@color1b);
+
+    &.color1 {.dropdown-menu-color(@color1b);}
+    &.color2 {.dropdown-menu-color(@color2b);}
+    &.color3 {.dropdown-menu-color(@color3b);}
+    &.color4 {.dropdown-menu-color(@color4b);}
+
+}
+
+.btn-group.open .dropdown-toggle {
+  .box-shadow(none);
+}
+
+.dropup .caret, .navbar-fixed-bottom .dropdown .caret {
+    border-top:none;
+    border-bottom-color:white;
+}
+
+.btn-default .caret {
+    border-top-color:white;
+}
+
+//well
+
+.well {
+    border:none;
+
+    .well-color(@color) {
+        .1pxdeep-shadow-inset(2.5);
+        background:@color;
+        .contrast(@color);
+
+        a {
+            .contrast-link(@color);
+        }
+    }
+
+    .well-color(@modal-backdrop-bg);
+}
+
+//navbar
+
+.navbar {
+
+    border:none;
+
+    .navbar-color(@color) {
+        background:@color;
+        .contrast(@color);
+    }
+
+    .navbar-color(@color1a);
+
+    &.color1 { .navbar-color(@color1a);}
+    &.color2 { .navbar-color(@color2a);}
+    &.color3 { .navbar-color(@color3a);}
+    &.color4 { .navbar-color(@color4a);}
+}
+
+.navbar-brand {
+    color:inherit;
+}
+
+.navbar-nav {
+
+    .active {
+        overflow-y:hidden;
+    }
+
+    .navbar-nav-color(@color) {
+        .active > a {
+            .1pxdeep-shadow(5);
+            .contrast(@color);
+            background-color: @color;
+
+            &:hover {
+                .contrast(@color);
+                background-color: @color;
+            }
+        }
+
+        li > a {
+            .contrast-dim(darken(@color,10%));
+            line-height: 25px;
+            z-index:100;
+
+            &:hover,
+            &:focus {
+                @ncolor:lighten(@color,4%);
+                .contrast(@ncolor);
+                background-color: @ncolor;
+            }
+        }
+    }
+
+    .navbar-nav-color(@1pxdeep-bg);    
+
+    &.color1 { .navbar-nav-color(@color1);}
+    &.color2 { .navbar-nav-color(@color2);}
+    &.color3 { .navbar-nav-color(@color3);}
+    &.color4 { .navbar-nav-color(@color4);}    
+}
+
+.navbar-fixed-top, .navbar-fixed-bottom {
+    .1pxdeep-shadow-inset(2);
+
+    .navbar-inner {
+        //.box-shadow(none);
+        padding:0;
+        //margin-bottom:12px;
+    }
+}
+
+.navbar-toggle {
+    @color:@color1;
+    background-color: @color;
+    .btn-borders(@color);
+
+    &:hover,
+    &:focus {
+        background-color: lighten(@color,2%);
+    }
+
+    &:active,
+    .active {
+        background-color:darken(@color,2%);
+        border-top-color:darken(@color,2%);
+    }
+
+    .icon-bar-color(@color) when (luma(@color) > @luma-upper-break) {
+        background-color:#333;
+    }
+
+    .icon-bar-color(@color) when (luma(@color) =< @luma-upper-break) {
+        background-color:white;
+    }
+
+    .icon-bar {
+        .icon-bar-color(@color);
+    }
+}
+
+.navbar-collapse {
+    border-top:none;
+}
+
+//pills
+
+.nav-pills {
+    text-shadow:none;
+    color:black;
+
+    .pills-color(@color,@active-color) {
+        > li > a {
+            &:hover {
+                background:lighten(@color,10%);
+                .contrast(lighten(@color,10%));
+            }
+        }
+
+        > li.active > a {
+            background:@active-color;
+            .contrast(@active-color);
+
+            &:hover {
+                background:lighten(@active-color,2%);
+                .contrast(lighten(@active-color,2%));
+            }
+        }
+    }
+
+    .pills-color(@color1,@color1c);
+
+    &.color1 { .pills-color(@color1,@color1c);}
+    &.color2 { .pills-color(@color2,@color2c);}
+    &.color3 { .pills-color(@color3,@color2c);}
+    &.color4 { .pills-color(@color4,@color2c);}
+}
+
+//alert
+
+.alert {
+    border:none;
+    text-shadow:none;
+
+    .close {
+        .opacity(100);
+        text-shadow:none;
+        margin-top:-1px;
+    }
+
+    .alert-color(@color) {
+        background:@color;
+        .contrast(@color);
+
+        .close {
+            .contrast(@color);
+        }
+    }
+
+    .alert-color-schemify(@color) {
+        .alert-color(@color);
+        .schemify(@color);
+
+        .close {
+            .contrast(mix(hsl(hue(@color),@sat,@luma),@color,60%););
+        }
+    }
+
+    .alert-color-schemify(#fbfcd6);
+
+    &.color1 { .alert-color(@color1);}
+    &.color2 { .alert-color(@color2);}
+    &.color3 { .alert-color(@color3);}
+    &.color4 { .alert-color(@color4);}
+
+    &.alert-error,&.alert-danger {.alert-color-schemify(#ee5f5b);}
+    &.alert-info {.alert-color-schemify(#08c);}
+    &.alert-success {.alert-color-schemify(#62c462);}
+}
+
+//progress bars
+
+.progress {
+    background:darken(@1pxdeep-bg,5%);
+    .1pxdeep-shadow-inset(2);
+
+    .progress-color(@color) {
+        background:darken(@color,5%);
+    }
+
+    &.color1 { .progress-color(@color1);}
+    &.color2 { .progress-color(@color2);}
+    &.color3 { .progress-color(@color3);}
+    &.color4 { .progress-color(@color4);}
+}
+
+.progress-bar {
+    .box-shadow(none);
+
+    .progress-bar-color(@color) {
+        background:@color;
+        .contrast(@color);
+    }   
+
+    .progress-bar-color(@color1c);
+    &.color1 { .progress-bar-color(@color1c);}
+    &.color2 { .progress-bar-color(@color2c);}
+    &.color3 { .progress-bar-color(@color3c);}
+    &.color4 { .progress-bar-color(@color4c);}
+    &.progress-bar-success { .progress-bar-color(@brand-success);}
+    &.progress-bar-warning { .progress-bar-color(@brand-warning);}
+    &.progress-bar-danger { .progress-bar-color(@brand-danger);}
+    &.progress-bar-info { .progress-bar-color(@brand-info);}
+}
+
+//accordion
+
+.accordion {
+    .accordion-heading {
+        border-bottom: 0;
+        border-radius:6px;
+        a {
+            &:hover {
+                text-decoration:none;
+            }
+        }
+    }
+
+    .accordion-group {
+        border:none;
+    }
+
+    .accordion-inner {
+        margin:12px;
+        padding:15px;
+        border-radius:6px;
+    }
+
+    .accordion-inner-color(@color) {
+        .accordion-inner {
+            background:@color;
+            .contrast(@color);
+            //text-shadow:none;
+        }
+    }
+
+    .accordion-heading-color(@color) {
+        .accordion-heading {
+            background:@color;
+            .contrast(@color);
+            .btn-borders(@color);
+
+            a {
+                .contrast(@color);
+            }
+        }
+    }
+
+    .accordion-heading-color(@color1b);
+    .accordion-inner-color(@color1c);
+
+    &.color1 {  .accordion-heading-color(@color1b);
+                .accordion-inner-color(@color1c);}
+    &.color2 {  .accordion-heading-color(@color2b);
+                .accordion-inner-color(@color2c);}
+    &.color3 {  .accordion-heading-color(@color3b);
+                .accordion-inner-color(@color3c);}
+    &.color4 {  .accordion-heading-color(@color4b);
+                .accordion-inner-color(@color4c);}
+}
+
+//jumbotron
+
+.jumbotron {
+    font-size: 24px;
+    line-height:32px;
+    font-weight: normal;
+
+    .jumbotron-color(@color) {
+        background:@color;
+        .contrast(@color);
+    }
+
+    .jumbotron-color(@color1b);
+
+    &.color1 {.jumbotron-color(@color1b);}
+    &.color2 {.jumbotron-color(@color2b);}
+    &.color3 {.jumbotron-color(@color3b);}
+    &.color4 {.jumbotron-color(@color4b);}
+
+    h1 {
+        margin-bottom: 12px;
+        font-size: 60px;
+        line-height: 1;
+        color: @jumbotron-heading-color;
+        letter-spacing: -1px;
+    }
+}
+
+//breadcrumbs
+
+.breadcrumb {
+
+    > .active {
+        font-weight:bold;
+    }
+
+    .breadcrumb-color(@color) {
+        background:@color;
+        li {
+            .contrast(@color);
+
+            > a {
+                .contrast(@color);
+            }
+        }
+
+        > .active {
+            .contrast(@color)
+        }
+
+    }
+
+    .breadcrumb-color(@color1b);
+
+    &.color1 { .breadcrumb-color(@color1b);}
+    &.color2 { .breadcrumb-color(@color2b);}
+    &.color3 { .breadcrumb-color(@color3b);}
+    &.color4 { .breadcrumb-color(@color4b);}
+
+
+}
+
+//pager
+
+.pager {
+    > li {
+        > a {
+            border:none;
+        }
+    }
+
+    .pager-color(@color) {
+        > li {
+            > a {
+                background:@color;
+                .contrast(@color);
+            }
+
+            > a:hover,
+            > a:focus {
+                background-color: lighten(@color,2%);
+            }
+        }
+
+        > .disabled {
+            > a {
+                background:@color;
+                .contrast-dim(@color);
+                .opacity(.5);
+            }
+
+            > a:hover,
+            > a:focus {
+                background-color:@color;
+                .contrast-dim(@color);
+            }
+        
+        }
+    }
+
+    .pager-color(@color1b);
+
+    &.color1 { .pager-color(@color1b);}
+    &.color2 { .pager-color(@color2b);}
+    &.color3 { .pager-color(@color3b);}
+    &.color4 { .pager-color(@color4b);}
+
+    &.disabled { .pager-color(#ddd);}
+}
+
+//pagination
+
+.pagination {
+    background:none;
+
+    .page-color(@color,@active-color) {
+
+        > li > a {
+            background:@color;
+            .contrast(@color);
+            .btn-borders(@color);
+        }
+
+        > li > a:hover,
+        > li > a:focus,
+        > li > a:active,
+        > .active > a,
+        > .active > span {
+            .contrast(lighten(@color,2%));
+            background-color:lighten(@color,2%);
+        }
+        > .active > a,
+        > .active > span {
+            .contrast(@active-color);
+            background-color:lighten(@active-color,2%);
+        }
+    }
+
+    .page-color(@color1b,@color1c);
+
+    &.color1 {.page-color(@color1b,@color1c);}
+    &.color2 {.page-color(@color2b,@color2c);}
+    &.color3 {.page-color(@color3b,@color3c);}
+    &.color4 {.page-color(@color4b,@color4c);}
+
+    > .disabled {
+        > span,
+        > a,
+        > a:hover,
+        > a:focus {
+            color:inherit;
+            background-color:inherit;
+            .opacity(.5);
+        }
+    }
+}
+
+//thumbnail
+
+.thumbnail,
+.img-thumbnail {
+    border: 1px solid transparent;
+
+    .thumbnail-color(@color) {
+        background-color:@color;
+        
+        &.active {
+            border-color:darken(@color,4%); 
+        }
+        .caption {
+            .contrast(@color);
+            text-decoration: none;
+        }
+    }
+
+    .thumbnail-color(@color1b);
+
+    &.color1 {.thumbnail-color(@color1b);}
+    &.color2 {.thumbnail-color(@color2b);}
+    &.color3 {.thumbnail-color(@color3b);}
+    &.color4 {.thumbnail-color(@color4b);}
+    &.highlight {.thumbnail-color(@highlight);}
+}
+
+//form
+
+.form-horizontal {
+    font-size:18px;
+}
+
+legend {
+    .contrast(@1pxdeep-bg);
+}
+
+.help-block {
+    .contrast(@1pxdeep-bg);
+}
+
+.form-color(@color) {
+    legend {
+        .contrast(@color);
+    }
+
+    .help-block {
+        .contrast(@color);
+    }
+}
+
+.color1 {
+    .form-color(@color1);
+}
+
+//input group
+
+.input-group {
+  position: relative; // For dropdowns
+  display: table;
+  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
+
+  // Undo padding and float of grid classes
+  &.col {
+    float: none;
+    padding-left: 0;
+    padding-right: 0;
+  }
+
+  .form-control {
+    width: 100%;
+    margin-bottom: 0;
+  }
+}
+
+.input-group-addon {
+  border: none;
+  border-radius: @border-radius-base;
+
+  .input-group-addon-color(@color) {
+    background:@color;
+    .contrast(@color);
+  }
+
+  .input-group-addon-color(@color1b);
+
+  &.color1 {.input-group-addon-color(@color1b)}
+  
+}
+
+//code
+
+code, pre {
+    font-size:14px;
+    text-shadow:none;
+
+    .code-color(@color) {
+        background:@color;
+        .contrast(@color);
+        border-color:@color;
+    }
+
+    .code-color(@color1c);
+
+    &.color1 { .code-color(@color1b)}
+    &.color2 { .code-color(@color2b)}
+    &.color3 { .code-color(@color3b)}
+    &.color4 { .code-color(@color4b)}
+}
+
+//labels and badges
+
+.label, .badge {
+    .label-color(@color) {
+        background:@color;
+        .contrast(@color);
+        text-shadow:none;
+    }
+
+    .label-color(@color1a);
+
+    &.color1 { .label-color(@color1);}
+    &.color2 { .label-color(@color2);}
+    &.color3 { .label-color(@color3);}
+    &.color4 { .label-color(@color4);}
+
+    &.label-success { .label-color(@brand-success);}
+    &.label-info { .label-color(@brand-info);}
+    &.label-warning { .label-color(@brand-warning);}
+    &.label-danger { .label-color(@brand-danger);}
+}
+
+//nav tabs
+
+.nav-tabs {
+    > li {
+        > a {
+            border: none;
+            
+            &:hover {
+                border:none;
+            }
+        }
+
+        &.active > a {
+            &,
+            &:hover,
+            &:focus {
+                border:none;
+            }
+        }
+    }
+
+    .nav-tabs-color(@color) {
+        border-bottom:2px solid @color;
+
+        > li {
+
+            > a {
+                &:hover {
+                    background:lighten(@color,2%);
+                }
+            }
+
+            &.active > a {
+                &,
+                &:hover,
+                &:focus {
+                    .contrast(@color);
+                    background-color:@color;
+                }
+            }
+        }
+    }
+
+    .nav-tabs-color(@color1c);
+
+    &.color1 { .nav-tabs-color(@color1a);}
+    &.color2 { .nav-tabs-color(@color2a);}
+    &.color3 { .nav-tabs-color(@color3a);}
+    &.color4 { .nav-tabs-color(@color4a);}
+    &.highlight { .nav-tabs-color(@highlight);}
+
+
+}
+
+//table
+
+table {
+    max-width: 100%;
+    text-shadow:none;
+    border-collapse: collapse;
+    border-spacing: 0;
+    border-color:transparent;
+    border-radius:@border-radius-base;
+
+    thead,
+    tbody,
+    tfoot {
+        > tr {
+            > th,
+            > td {
+                border-top:none;
+            }
+        }
+    }
+
+    tbody + tbody {
+        border-top: none;
+    }
+
+    .table-color(@color) {
+        background-color:@color;
+        .contrast(@color);
+
+        &.table { 
+            th,
+            td {
+                border-top-color: @color;
+            }
+            tbody + tbody {
+                border-top-color:@color;
+            }
+        }
+
+        &.table-bordered {
+            border:none;
+        }
+
+        &.table-striped {
+            .table-striped-color(darken(@color,5%));
+        }
+
+        .table-striped-color(@color) {
+            tbody {
+                > tr:nth-child(odd) > td,
+                > tr:nth-child(odd) > th {
+                    background-color:darken(@color,1%);
+                }
+            }
+        }
+
+        .table-striped-color (@color) when (luma(@color) > @luma-upper-break) {
+            tbody {
+                > tr:nth-child(odd) > td,
+                > tr:nth-child(odd) > th {
+                    background-color:darken(@color,1%);
+                }
+            }
+        }
+
+        .table-striped-color (@color) when (luma(@color) < @luma-lower-break) {
+            tbody {
+                > tr:nth-child(odd) > td,
+                > tr:nth-child(odd) > th {
+                    background-color:lighten(@color,1%);
+                }
+            }
+        }
+
+        &.table-hover {
+            tbody {
+                tr:hover > td,
+                tr:hover > th {
+                    background-color: lighten(@color,5%);
+                }
+            }
+        }
+    }
+
+    .table-color(@color1b);
+
+    &.color1 { .table-color(@color1b);}
+    &.color2 { .table-color(@color2b);}
+    &.color3 { .table-color(@color3b);}
+    &.color4 { .table-color(@color4b);}
+    &.highlight { .table-color(@highlight);}
+}
+
+//hr
+
+hr {
+    .hr-color(@color) {
+        background:@color;
+        color:@color;
+        border-color:@color;
+    }
+
+    .hr-color(color1c);
+    &.color1 {.hr-color(@color1c);}
+    &.color2 {.hr-color(@color2c);}
+    &.color3 {.hr-color(@color3c);}
+    &.color4 {.hr-color(@color4c);}
+}
+
+//page header
+
+.page-header {
+    border-width:2px;
+
+    .page-header-color(@color) {
+        border-color:@color;
+        .contrast(@1pxdeep-bg);
+
+        small {
+            .contrast(@1pxdeep-bg);
+        }
+    }
+
+    .page-header-color(@color1c);
+    &.color1 {.page-header-color(@color1c);}
+    &.color2 {.page-header-color(@color2c);}
+    &.color3 {.page-header-color(@color3c);}
+    &.color4 {.page-header-color(@color4c);}
+}
+
+//modal
+
+.modal-dialog {
+    padding-right:0;
+    padding-left:0;
+    width:100%;
+}
+
+.modal-content {
+    .box-shadow(none);
+    border:none;
+    background:none;
+    width:100%;
+}
+
+.modal-header {
+    border:none;
+    width:60%;
+    margin-left:20%;
+    padding-left:0;
+    padding-right:0;
+
+    > .close {
+        .contrast(@modal-backdrop-bg);
+        margin-top:0;
+        .opacity(1);
+        padding:14px; //more touch-friendly
+        position:relative;
+        top:-12px;
+        right:-14px;
+    }
+}
+
+.modal-title {
+    .contrast(@modal-backdrop-bg);
+    //text-shadow:none;
+    margin-left:0;
+}
+
+.modal-body {
+    border-radius:0;
+    width:100%;
+    padding-left:20%;
+    padding-right:20%;
+    margin:0;
+
+    .modal-body-color(@color) {
+        background:@color;
+        .contrast(@color); 
+    }
+
+    .modal-body-color(@color1);
+
+    &.color1 { .modal-body-color(@color1);}
+    &.color1a { .modal-body-color(@color1a);}
+    &.color1b { .modal-body-color(@color1b);}
+    &.color1c { .modal-body-color(@color1c);}
+    &.color2 { .modal-body-color(@color2);}
+    &.color2a { .modal-body-color(@color2a);}
+    &.color2b { .modal-body-color(@color2b);}
+    &.color2c { .modal-body-color(@color2c);}
+    &.color3 { .modal-body-color(@color3);}
+    &.color3a { .modal-body-color(@color3a);}
+    &.color3b { .modal-body-color(@color3b);}
+    &.color3c { .modal-body-color(@color3c);}
+    &.color4 { .modal-body-color(@color4);}
+    &.color4a { .modal-body-color(@color4a);}
+    &.color4b { .modal-body-color(@color4b);}
+    &.color4c { .modal-body-color(@color4c);}
+}
+
+.modal-footer {
+    background:transparent;
+    margin-top:0;
+    border:none;
+    width:60%;
+    margin-left:20%;
+    padding-left:0;
+    padding-right:0;
+}
+
+.modal-backdrop {
+    background-color: @modal-backdrop-bg;
+    &.fade { .opacity(0); }
+    &.in { .opacity(1); }
+
+    &:before {
+        display:block;
+        content:"";
+        background:@modal-backdrop-bg;
+        width:100%;
+        height:50%;
+        position:absolute;
+        top:0;
+        left:0;
+    }
+}
+
+.close {
+    text-shadow:none;
+}
+
+@media screen and (max-width: @screen-tablet) {
+
+    .modal-header, .modal-footer {
+        margin-left:4%;
+        margin-right:4%;
+        width:92%;
+    }
+
+    .modal-body {
+        padding-left:4%;
+        padding-right:4%;
+    }
+
+}
+
+//panel
+.panel {
+    border:none;
+    .box-shadow(none);
+
+    .panel-color(@color) {
+        background:@color;
+        .contrast(@color);
+    }
+
+    .panel-color(@color1c);
+
+    &.color1 { .panel-color(@color1);}
+    &.color1a { .panel-color(@color1a);}
+    &.color1b { .panel-color(@color1b);}
+    &.color1c { .panel-color(@color1c);}
+    &.color2 { .panel-color(@color2);}
+    &.color2a { .panel-color(@color2a);}
+    &.color2b { .panel-color(@color2b);}
+    &.color2c { .panel-color(@color2c);}
+    &.color3 { .panel-color(@color3);}
+    &.color3a { .panel-color(@color3a);}
+    &.color3b { .panel-color(@color3b);}
+    &.color3c { .panel-color(@color3c);}
+    &.color4 { .panel-color(@color4);}
+    &.color4a { .panel-color(@color4a);}
+    &.color4b { .panel-color(@color4b);}
+    &.color4c { .panel-color(@color4c);}
+    &.highlight { .panel-color(@highlight);}
+    &.monochrome { .panel-color(@monochrome);}
+}
+
+.panel-heading, .panel-footer {
+    border:none;
+
+}
+
+.panel-body {
+    padding-bottom:0;
+}
+
+.panel-footer {
+    padding-bottom:15px;
+}
+
+.panel-heading, .panel-body, .panel-footer {
+    
+    .panel-heading-color(@color) {
+        background:@color;
+        .contrast(@color);
+    }
+
+    .panel-heading-color(@color1c);
+
+    &.color1 { .panel-heading-color(@color1);}
+    &.color1a { .panel-heading-color(@color1a);}
+    &.color1b { .panel-heading-color(@color1b);}
+    &.color1c { .panel-heading-color(@color1c);}
+    &.color2 { .panel-heading-color(@color2);}
+    &.color2a { .panel-heading-color(@color2a);}
+    &.color2b { .panel-heading-color(@color2b);}
+    &.color2c { .panel-heading-color(@color2c);}
+    &.color3 { .panel-heading-color(@color3);}
+    &.color3a { .panel-heading-color(@color3a);}
+    &.color3b { .panel-heading-color(@color3b);}
+    &.color3c { .panel-heading-color(@color3c);}
+    &.color4 { .panel-heading-color(@color4);}
+    &.color4a { .panel-heading-color(@color4a);}
+    &.color4b { .panel-heading-color(@color4b);}
+    &.color4c { .panel-heading-color(@color4c);}
+    &.highlight { .panel-heading-color(@highlight);}
+    &.monochrome { .panel-heading-color(@monochrome);}
+}
+
+//carousel
+
+.carousel-control {
+    &.left {
+        background:transparent;
+    }
+    
+    &.right {
+        left: auto;
+        right: 0;
+        background:transparent;
+    }
+
+    .icon-nav-defaults() {
+        @size:44px;
+        font-size:@size;
+        line-height:@size;
+        text-shadow:none;
+        font-weight:bold;
+    }
+
+    .icon-prev {
+        &:before {
+            content: '\00ab';// DOUBLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
+            .icon-nav-defaults();
+        }
+    }
+
+    .icon-next {
+        &:before {
+            content: '\00bb';// DOUBLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
+            .icon-nav-defaults();
+        }
+    }
+}
+
+.carousel-indicators {
+    @size:24px;
+    @border-radius:2px;
+
+    li {
+        width: (@size - @border-radius);
+        height: (@size - @border-radius);
+        border-radius: @size;
+        margin:@border-radius;
+    }
+
+    .active {
+        width: (@size + @border-radius);
+        height: (@size + @border-radius);
+    }
+
+    .carousel-indicators-color(@color) {
+        li {
+            border: @border-radius solid @color;
+        }
+
+        .active {
+            background-color:@color;
+        }
+    }
+
+    .carousel-indicators-color(@color1c);
+
+    &.color1{ .carousel-indicators-color(@color1c);}
+    &.color2{ .carousel-indicators-color(@color2c);}
+    &.color3{ .carousel-indicators-color(@color3c);}
+    &.color4{ .carousel-indicators-color(@color4c);}
+}
+
+//list groups
+
+.list-group {
+    background:transparent;
+}
+
+.list-group-item {
+    .list-group-item-color(@color,@active-color) {
+        
+        background:@color;
+        .contrast(@color);
+        border-color:darken(@color,4%);
+
+        a& {
+            .contrast(@color);
+
+            &:hover,
+            &:focus {
+                background-color: lighten(@color,2%);
+            }
+
+            > .list-group-item-heading {
+                .contrast(@color);
+            }
+        }
+
+        &.active,
+        &.active:hover,
+        &.active:focus {
+            .contrast(@active-color);
+            background-color: @active-color;
+            .btn-borders(@active-color);
+
+            .list-group-item-text {
+                color: lighten(@active-color, 40%);
+            }
+        }
+    }
+
+    .list-group-item-color(@color1b,@color1c);
+
+    &.color1 { .list-group-item-color(@color1b,@color1c);}
+    &.color2 { .list-group-item-color(@color2b,@color2c);}
+    &.color3 { .list-group-item-color(@color3b,@color3c);}
+    &.color4 { .list-group-item-color(@color4b,@color4c);}
+}
+
+// sectionals
+.sectional {
+    position:relative;
+    padding-top: @sectional-padding-top;
+    padding-bottom: @sectional-padding-bottom;
+    &.sectional-sm {
+        padding-top: unit(unit(@sectional-padding-top)/2,px) ;
+        padding-bottom: unit(unit(@sectional-padding-bottom)/2,px);
+    }
+    &.sectional-nav {
+        padding-bottom: 0px;
+    }
+
+    .sectional-title {
+        position:absolute;
+        top:12px;
+        width:100%;
+        text-align:center;
+        text-transform:uppercase;
+        font-size:14px;
+        .opacity(.65);
+    }
+
+    .sectional-color(@color) {
+        background:@color;
+        .contrast(@color);
+    }
+
+    .sectional-color(@1pxdeep-bg);
+
+    &.monochrome {.sectional-color(@monochrome);}
+    &.highlight {.sectional-color(@highlight);}
+
+    &.color1 {.sectional-color(@color1);}
+    &.color1a {.sectional-color(@color1a);}
+    &.color1b {.sectional-color(@color1b);}
+    &.color1c {.sectional-color(@color1c);}
+    &.color2 {.sectional-color(@color2);}
+    &.color2a {.sectional-color(@color2a);}
+    &.color2b {.sectional-color(@color2b);}
+    &.color2c {.sectional-color(@color2c);}
+    &.color3 {.sectional-color(@color3);}
+    &.color3a {.sectional-color(@color3a);}
+    &.color3b {.sectional-color(@color3b);}
+    &.color3c {.sectional-color(@color3c);}
+    &.color4 {.sectional-color(@color4);}
+    &.color4a {.sectional-color(@color4a);}
+    &.color4b {.sectional-color(@color4b);}
+    &.color4c {.sectional-color(@color4c);}
+}
+
+//well headline fix
+
+.well {
+    h1,h2,h3,h4,h5,h6 {
+        &:first-child {
+            margin-top:0;
+        }
+    }
+}
+
diff --git a/app/styles/bootstrap.less b/app/styles/bootstrap.less
index 9009d38..ea8dc33 100644
--- a/app/styles/bootstrap.less
+++ b/app/styles/bootstrap.less
@@ -1,10 +1,13 @@
 // Core variables and mixins
-@import "variables.less";
+//@import "variables.less";
+@import "bower_components/bootstrap/less/variables.less";
 @import "bower_components/bootstrap/less/mixins.less";
 
 // Reset
 @import "bower_components/bootstrap/less/normalize.less";
 @import "bower_components/bootstrap/less/print.less";
+//@import "bower_components/bootstrap/less/glyphicons.less";
+@import "bower_components/fontawesome/less/font-awesome.less";
 
 // Core CSS
 @import "bower_components/bootstrap/less/scaffolding.less";
@@ -17,8 +20,6 @@
 
 // Components
 @import "bower_components/bootstrap/less/component-animations.less";
-//@import "bower_components/bootstrap/less/glyphicons.less";
-@import "bower_components/fontawesome/less/font-awesome.less";
 @import "bower_components/bootstrap/less/dropdowns.less";
 @import "bower_components/bootstrap/less/button-groups.less";
 @import "bower_components/bootstrap/less/input-groups.less";
@@ -36,6 +37,7 @@
 @import "bower_components/bootstrap/less/media.less";
 @import "bower_components/bootstrap/less/list-group.less";
 @import "bower_components/bootstrap/less/panels.less";
+@import "bower_components/bootstrap/less/responsive-embed.less";
 @import "bower_components/bootstrap/less/wells.less";
 @import "bower_components/bootstrap/less/close.less";
 
@@ -47,4 +49,4 @@
 
 // Utility classes
 @import "bower_components/bootstrap/less/utilities.less";
-@import "bower_components/bootstrap/less/responsive-utilities.less";
+@import "bower_components/bootstrap/less/responsive-utilities.less";
\ No newline at end of file
diff --git a/app/styles/main.css b/app/styles/main.css
index 7bb45e4..8b40b6d 100644
--- a/app/styles/main.css
+++ b/app/styles/main.css
@@ -1,3 +1,4 @@
+@import url(http://fonts.googleapis.com/css?family=Merriweather:400,300,700|Open+Sans:400,300,600,700);
 [ng\:cloak],
 [ng-cloak],
 [data-ng-cloak],
@@ -6,7 +7,7 @@
 .x-ng-cloak {
   display: none !important;
 }
-/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
 html {
   font-family: sans-serif;
   -ms-text-size-adjust: 100%;
@@ -24,6 +25,7 @@ footer,
 header,
 hgroup,
 main,
+menu,
 nav,
 section,
 summary {
@@ -45,7 +47,7 @@ template {
   display: none;
 }
 a {
-  background: transparent;
+  background-color: transparent;
 }
 a:active,
 a:hover {
@@ -95,7 +97,6 @@ figure {
   margin: 1em 40px;
 }
 hr {
-  -moz-box-sizing: content-box;
   box-sizing: content-box;
   height: 0;
 }
@@ -155,8 +156,6 @@ input[type="number"]::-webkit-outer-spin-button {
 }
 input[type="search"] {
   -webkit-appearance: textfield;
-  -moz-box-sizing: content-box;
-  -webkit-box-sizing: content-box;
   box-sizing: content-box;
 }
 input[type="search"]::-webkit-search-cancel-button,
@@ -186,12 +185,15 @@ td,
 th {
   padding: 0;
 }
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
 @media print {
-  * {
-    text-shadow: none !important;
-    color: #000 !important;
+  *,
+  *:before,
+  *:after {
     background: transparent !important;
+    color: #000 !important;
     box-shadow: none !important;
+    text-shadow: none !important;
   }
   a,
   a:visited {
@@ -203,8 +205,8 @@ th {
   abbr[title]:after {
     content: " (" attr(title) ")";
   }
-  a[href^="javascript:"]:after,
-  a[href^="#"]:after {
+  a[href^="#"]:after,
+  a[href^="javascript:"]:after {
     content: "";
   }
   pre,
@@ -232,16 +234,9 @@ th {
   h3 {
     page-break-after: avoid;
   }
-  select {
-    background: #fff !important;
-  }
   .navbar {
     display: none;
   }
-  .table td,
-  .table th {
-    background-color: #fff !important;
-  }
   .btn > .caret,
   .dropup > .btn > .caret {
     border-top-color: #000 !important;
@@ -252,607 +247,2215 @@ th {
   .table {
     border-collapse: collapse !important;
   }
+  .table td,
+  .table th {
+    background-color: #fff !important;
+  }
   .table-bordered th,
   .table-bordered td {
     border: 1px solid #ddd !important;
   }
 }
-* {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-*:before,
-*:after {
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
+/*!
+ *  Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+/* FONT PATH
+ * -------------------------- */
+@font-face {
+  font-family: 'FontAwesome';
+  src: url('../fonts/fontawesome-webfont.eot?v=4.1.0');
+  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');
+  font-weight: normal;
+  font-style: normal;
 }
-html {
-  font-size: 62.5%;
-  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+.fa {
+  display: inline-block;
+  font-family: FontAwesome;
+  font-style: normal;
+  font-weight: normal;
+  line-height: 1;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
 }
-body {
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 14px;
-  line-height: 1.42857143;
-  color: #808080;
-  background-color: #fcfcfc;
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+  font-size: 1.33333333em;
+  line-height: 0.75em;
+  vertical-align: -15%;
 }
-input,
-button,
-select,
-textarea {
-  font-family: inherit;
-  font-size: inherit;
-  line-height: inherit;
+.fa-2x {
+  font-size: 2em;
 }
-a {
-  color: #d9230f;
-  text-decoration: none;
+.fa-3x {
+  font-size: 3em;
 }
-a:hover,
-a:focus {
-  color: #91170a;
-  text-decoration: underline;
+.fa-4x {
+  font-size: 4em;
 }
-a:focus {
-  outline: thin dotted;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
+.fa-5x {
+  font-size: 5em;
 }
-figure {
-  margin: 0;
+.fa-fw {
+  width: 1.28571429em;
+  text-align: center;
 }
-img {
-  vertical-align: middle;
+.fa-ul {
+  padding-left: 0;
+  margin-left: 2.14285714em;
+  list-style-type: none;
 }
-.img-responsive,
-.thumbnail > img,
-.thumbnail a > img,
-.carousel-inner > .item > img,
-.carousel-inner > .item > a > img {
-  display: block;
-  max-width: 100%;
-  height: auto;
+.fa-ul > li {
+  position: relative;
 }
-.img-rounded {
-  border-radius: 6px;
+.fa-li {
+  position: absolute;
+  left: -2.14285714em;
+  width: 2.14285714em;
+  top: 0.14285714em;
+  text-align: center;
 }
-.img-thumbnail {
-  padding: 4px;
-  line-height: 1.42857143;
-  background-color: #fcfcfc;
-  border: 1px solid #dddddd;
-  border-radius: 4px;
-  -webkit-transition: all 0.2s ease-in-out;
-  transition: all 0.2s ease-in-out;
-  display: inline-block;
-  max-width: 100%;
-  height: auto;
+.fa-li.fa-lg {
+  left: -1.85714286em;
 }
-.img-circle {
-  border-radius: 50%;
+.fa-border {
+  padding: .2em .25em .15em;
+  border: solid 0.08em #eeeeee;
+  border-radius: .1em;
 }
-hr {
-  margin-top: 20px;
-  margin-bottom: 20px;
-  border: 0;
-  border-top: 1px solid #dddddd;
+.pull-right {
+  float: right;
 }
-.sr-only {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
+.pull-left {
+  float: left;
 }
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-.h1,
-.h2,
-.h3,
-.h4,
-.h5,
-.h6 {
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-weight: 300;
-  line-height: 1.1;
-  color: #333333;
+.fa.pull-left {
+  margin-right: .3em;
 }
-h1 small,
-h2 small,
-h3 small,
-h4 small,
-h5 small,
-h6 small,
-.h1 small,
-.h2 small,
-.h3 small,
-.h4 small,
-.h5 small,
-.h6 small,
-h1 .small,
-h2 .small,
-h3 .small,
-h4 .small,
-h5 .small,
-h6 .small,
-.h1 .small,
-.h2 .small,
-.h3 .small,
-.h4 .small,
-.h5 .small,
-.h6 .small {
-  font-weight: normal;
-  line-height: 1;
-  color: #808080;
+.fa.pull-right {
+  margin-left: .3em;
 }
-h1,
-.h1,
-h2,
-.h2,
-h3,
-.h3 {
-  margin-top: 20px;
-  margin-bottom: 10px;
+.fa-spin {
+  -webkit-animation: spin 2s infinite linear;
+  -moz-animation: spin 2s infinite linear;
+  -o-animation: spin 2s infinite linear;
+  animation: spin 2s infinite linear;
 }
-h1 small,
-.h1 small,
-h2 small,
-.h2 small,
-h3 small,
-.h3 small,
-h1 .small,
-.h1 .small,
-h2 .small,
-.h2 .small,
-h3 .small,
-.h3 .small {
-  font-size: 65%;
+@-moz-keyframes spin {
+  0% {
+    -moz-transform: rotate(0deg);
+  }
+  100% {
+    -moz-transform: rotate(359deg);
+  }
 }
-h4,
-.h4,
-h5,
-.h5,
-h6,
-.h6 {
-  margin-top: 10px;
-  margin-bottom: 10px;
+@-webkit-keyframes spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+  }
 }
-h4 small,
-.h4 small,
-h5 small,
-.h5 small,
-h6 small,
-.h6 small,
-h4 .small,
-.h4 .small,
-h5 .small,
-.h5 .small,
-h6 .small,
-.h6 .small {
-  font-size: 75%;
+@-o-keyframes spin {
+  0% {
+    -o-transform: rotate(0deg);
+  }
+  100% {
+    -o-transform: rotate(359deg);
+  }
 }
-h1,
-.h1 {
-  font-size: 36px;
-}
-h2,
-.h2 {
-  font-size: 30px;
+@keyframes spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
 }
-h3,
-.h3 {
-  font-size: 24px;
+.fa-rotate-90 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+  -webkit-transform: rotate(90deg);
+  -moz-transform: rotate(90deg);
+  -ms-transform: rotate(90deg);
+  -o-transform: rotate(90deg);
+  transform: rotate(90deg);
 }
-h4,
-.h4 {
-  font-size: 18px;
+.fa-rotate-180 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+  -webkit-transform: rotate(180deg);
+  -moz-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  -o-transform: rotate(180deg);
+  transform: rotate(180deg);
 }
-h5,
-.h5 {
-  font-size: 14px;
+.fa-rotate-270 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+  -webkit-transform: rotate(270deg);
+  -moz-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  -o-transform: rotate(270deg);
+  transform: rotate(270deg);
 }
-h6,
-.h6 {
-  font-size: 12px;
+.fa-flip-horizontal {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
+  -webkit-transform: scale(-1, 1);
+  -moz-transform: scale(-1, 1);
+  -ms-transform: scale(-1, 1);
+  -o-transform: scale(-1, 1);
+  transform: scale(-1, 1);
 }
-p {
-  margin: 0 0 10px;
+.fa-flip-vertical {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
+  -webkit-transform: scale(1, -1);
+  -moz-transform: scale(1, -1);
+  -ms-transform: scale(1, -1);
+  -o-transform: scale(1, -1);
+  transform: scale(1, -1);
 }
-.lead {
-  margin-bottom: 20px;
-  font-size: 16px;
-  font-weight: 200;
-  line-height: 1.4;
+.fa-stack {
+  position: relative;
+  display: inline-block;
+  width: 2em;
+  height: 2em;
+  line-height: 2em;
+  vertical-align: middle;
 }
-@media (min-width: 768px) {
-  .lead {
-    font-size: 21px;
-  }
+.fa-stack-1x,
+.fa-stack-2x {
+  position: absolute;
+  left: 0;
+  width: 100%;
+  text-align: center;
 }
-small,
-.small {
-  font-size: 85%;
+.fa-stack-1x {
+  line-height: inherit;
 }
-cite {
-  font-style: normal;
+.fa-stack-2x {
+  font-size: 2em;
 }
-.text-left {
-  text-align: left;
+.fa-inverse {
+  color: #ffffff;
 }
-.text-right {
-  text-align: right;
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+   readers do not read off random characters that represent icons */
+.fa-glass:before {
+  content: "\f000";
 }
-.text-center {
-  text-align: center;
+.fa-music:before {
+  content: "\f001";
 }
-.text-justify {
-  text-align: justify;
+.fa-search:before {
+  content: "\f002";
 }
-.text-muted {
-  color: #808080;
+.fa-envelope-o:before {
+  content: "\f003";
 }
-.text-primary {
-  color: #d9230f;
+.fa-heart:before {
+  content: "\f004";
 }
-a.text-primary:hover {
-  color: #a91b0c;
+.fa-star:before {
+  content: "\f005";
 }
-.text-success {
-  color: #468847;
+.fa-star-o:before {
+  content: "\f006";
 }
-a.text-success:hover {
-  color: #356635;
+.fa-user:before {
+  content: "\f007";
 }
-.text-info {
-  color: #3a87ad;
+.fa-film:before {
+  content: "\f008";
 }
-a.text-info:hover {
-  color: #2d6987;
+.fa-th-large:before {
+  content: "\f009";
 }
-.text-warning {
-  color: #c09853;
+.fa-th:before {
+  content: "\f00a";
 }
-a.text-warning:hover {
-  color: #a47e3c;
+.fa-th-list:before {
+  content: "\f00b";
 }
-.text-danger {
-  color: #b94a48;
+.fa-check:before {
+  content: "\f00c";
 }
-a.text-danger:hover {
-  color: #953b39;
+.fa-times:before {
+  content: "\f00d";
 }
-.bg-primary {
-  color: #fff;
-  background-color: #d9230f;
+.fa-search-plus:before {
+  content: "\f00e";
 }
-a.bg-primary:hover {
-  background-color: #a91b0c;
+.fa-search-minus:before {
+  content: "\f010";
 }
-.bg-success {
-  background-color: #dff0d8;
+.fa-power-off:before {
+  content: "\f011";
 }
-a.bg-success:hover {
-  background-color: #c1e2b3;
+.fa-signal:before {
+  content: "\f012";
 }
-.bg-info {
-  background-color: #d9edf7;
+.fa-gear:before,
+.fa-cog:before {
+  content: "\f013";
 }
-a.bg-info:hover {
-  background-color: #afd9ee;
+.fa-trash-o:before {
+  content: "\f014";
 }
-.bg-warning {
-  background-color: #fcf8e3;
+.fa-home:before {
+  content: "\f015";
 }
-a.bg-warning:hover {
-  background-color: #f7ecb5;
+.fa-file-o:before {
+  content: "\f016";
 }
-.bg-danger {
-  background-color: #f2dede;
+.fa-clock-o:before {
+  content: "\f017";
 }
-a.bg-danger:hover {
-  background-color: #e4b9b9;
+.fa-road:before {
+  content: "\f018";
 }
-.page-header {
-  padding-bottom: 9px;
-  margin: 40px 0 20px;
-  border-bottom: 1px solid #dddddd;
+.fa-download:before {
+  content: "\f019";
 }
-ul,
-ol {
-  margin-top: 0;
-  margin-bottom: 10px;
+.fa-arrow-circle-o-down:before {
+  content: "\f01a";
 }
-ul ul,
-ol ul,
-ul ol,
-ol ol {
-  margin-bottom: 0;
+.fa-arrow-circle-o-up:before {
+  content: "\f01b";
 }
-.list-unstyled {
-  padding-left: 0;
-  list-style: none;
+.fa-inbox:before {
+  content: "\f01c";
 }
-.list-inline {
-  padding-left: 0;
-  list-style: none;
-  margin-left: -5px;
+.fa-play-circle-o:before {
+  content: "\f01d";
 }
-.list-inline > li {
-  display: inline-block;
-  padding-left: 5px;
-  padding-right: 5px;
+.fa-rotate-right:before,
+.fa-repeat:before {
+  content: "\f01e";
 }
-dl {
-  margin-top: 0;
-  margin-bottom: 20px;
+.fa-refresh:before {
+  content: "\f021";
 }
-dt,
-dd {
-  line-height: 1.42857143;
+.fa-list-alt:before {
+  content: "\f022";
 }
-dt {
-  font-weight: bold;
+.fa-lock:before {
+  content: "\f023";
 }
-dd {
-  margin-left: 0;
+.fa-flag:before {
+  content: "\f024";
 }
-@media (min-width: 768px) {
-  .dl-horizontal dt {
-    float: left;
-    width: 160px;
-    clear: left;
-    text-align: right;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-  }
-  .dl-horizontal dd {
-    margin-left: 180px;
-  }
+.fa-headphones:before {
+  content: "\f025";
 }
-abbr[title],
-abbr[data-original-title] {
-  cursor: help;
-  border-bottom: 1px dotted #808080;
+.fa-volume-off:before {
+  content: "\f026";
 }
-.initialism {
-  font-size: 90%;
-  text-transform: uppercase;
+.fa-volume-down:before {
+  content: "\f027";
 }
-blockquote {
-  padding: 10px 20px;
-  margin: 0 0 20px;
-  font-size: 17.5px;
-  border-left: 5px solid #dddddd;
+.fa-volume-up:before {
+  content: "\f028";
 }
-blockquote p:last-child,
-blockquote ul:last-child,
-blockquote ol:last-child {
-  margin-bottom: 0;
+.fa-qrcode:before {
+  content: "\f029";
 }
-blockquote footer,
-blockquote small,
-blockquote .small {
-  display: block;
-  font-size: 80%;
-  line-height: 1.42857143;
-  color: #808080;
-}
-blockquote footer:before,
-blockquote small:before,
-blockquote .small:before {
-  content: '\2014 \00A0';
+.fa-barcode:before {
+  content: "\f02a";
 }
-.blockquote-reverse,
-blockquote.pull-right {
-  padding-right: 15px;
-  padding-left: 0;
-  border-right: 5px solid #dddddd;
-  border-left: 0;
-  text-align: right;
+.fa-tag:before {
+  content: "\f02b";
 }
-.blockquote-reverse footer:before,
-blockquote.pull-right footer:before,
-.blockquote-reverse small:before,
-blockquote.pull-right small:before,
-.blockquote-reverse .small:before,
-blockquote.pull-right .small:before {
-  content: '';
+.fa-tags:before {
+  content: "\f02c";
 }
-.blockquote-reverse footer:after,
-blockquote.pull-right footer:after,
-.blockquote-reverse small:after,
-blockquote.pull-right small:after,
-.blockquote-reverse .small:after,
-blockquote.pull-right .small:after {
-  content: '\00A0 \2014';
+.fa-book:before {
+  content: "\f02d";
 }
-blockquote:before,
-blockquote:after {
-  content: "";
+.fa-bookmark:before {
+  content: "\f02e";
 }
-address {
-  margin-bottom: 20px;
-  font-style: normal;
-  line-height: 1.42857143;
+.fa-print:before {
+  content: "\f02f";
 }
-code,
-kbd,
-pre,
-samp {
-  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+.fa-camera:before {
+  content: "\f030";
 }
-code {
-  padding: 2px 4px;
-  font-size: 90%;
-  color: #c7254e;
-  background-color: #f9f2f4;
-  white-space: nowrap;
-  border-radius: 4px;
+.fa-font:before {
+  content: "\f031";
 }
-kbd {
-  padding: 2px 4px;
-  font-size: 90%;
-  color: #ffffff;
-  background-color: #333333;
-  border-radius: 3px;
-  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+.fa-bold:before {
+  content: "\f032";
 }
-pre {
-  display: block;
-  padding: 9.5px;
-  margin: 0 0 10px;
-  font-size: 13px;
-  line-height: 1.42857143;
-  word-break: break-all;
-  word-wrap: break-word;
-  color: #333333;
-  background-color: #f5f5f5;
-  border: 1px solid #cccccc;
-  border-radius: 4px;
+.fa-italic:before {
+  content: "\f033";
 }
-pre code {
-  padding: 0;
-  font-size: inherit;
-  color: inherit;
-  white-space: pre-wrap;
-  background-color: transparent;
-  border-radius: 0;
+.fa-text-height:before {
+  content: "\f034";
 }
-.pre-scrollable {
-  max-height: 340px;
-  overflow-y: scroll;
+.fa-text-width:before {
+  content: "\f035";
 }
-.container {
-  margin-right: auto;
-  margin-left: auto;
-  padding-left: 15px;
-  padding-right: 15px;
+.fa-align-left:before {
+  content: "\f036";
 }
-@media (min-width: 768px) {
-  .container {
-    width: 750px;
-  }
+.fa-align-center:before {
+  content: "\f037";
 }
-@media (min-width: 992px) {
-  .container {
-    width: 970px;
-  }
+.fa-align-right:before {
+  content: "\f038";
 }
-@media (min-width: 1200px) {
-  .container {
-    width: 1170px;
-  }
+.fa-align-justify:before {
+  content: "\f039";
 }
-.container-fluid {
-  margin-right: auto;
-  margin-left: auto;
-  padding-left: 15px;
-  padding-right: 15px;
+.fa-list:before {
+  content: "\f03a";
 }
-.row {
-  margin-left: -15px;
-  margin-right: -15px;
+.fa-dedent:before,
+.fa-outdent:before {
+  content: "\f03b";
 }
-.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
-  position: relative;
-  min-height: 1px;
-  padding-left: 15px;
-  padding-right: 15px;
+.fa-indent:before {
+  content: "\f03c";
 }
-.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
-  float: left;
+.fa-video-camera:before {
+  content: "\f03d";
 }
-.col-xs-12 {
-  width: 100%;
+.fa-photo:before,
+.fa-image:before,
+.fa-picture-o:before {
+  content: "\f03e";
 }
-.col-xs-11 {
-  width: 91.66666667%;
+.fa-pencil:before {
+  content: "\f040";
 }
-.col-xs-10 {
-  width: 83.33333333%;
+.fa-map-marker:before {
+  content: "\f041";
 }
-.col-xs-9 {
-  width: 75%;
+.fa-adjust:before {
+  content: "\f042";
 }
-.col-xs-8 {
-  width: 66.66666667%;
+.fa-tint:before {
+  content: "\f043";
 }
-.col-xs-7 {
-  width: 58.33333333%;
+.fa-edit:before,
+.fa-pencil-square-o:before {
+  content: "\f044";
 }
-.col-xs-6 {
-  width: 50%;
+.fa-share-square-o:before {
+  content: "\f045";
 }
-.col-xs-5 {
-  width: 41.66666667%;
+.fa-check-square-o:before {
+  content: "\f046";
 }
-.col-xs-4 {
-  width: 33.33333333%;
+.fa-arrows:before {
+  content: "\f047";
 }
-.col-xs-3 {
-  width: 25%;
+.fa-step-backward:before {
+  content: "\f048";
 }
-.col-xs-2 {
-  width: 16.66666667%;
+.fa-fast-backward:before {
+  content: "\f049";
 }
-.col-xs-1 {
-  width: 8.33333333%;
+.fa-backward:before {
+  content: "\f04a";
 }
-.col-xs-pull-12 {
-  right: 100%;
+.fa-play:before {
+  content: "\f04b";
 }
-.col-xs-pull-11 {
-  right: 91.66666667%;
+.fa-pause:before {
+  content: "\f04c";
 }
-.col-xs-pull-10 {
-  right: 83.33333333%;
+.fa-stop:before {
+  content: "\f04d";
 }
-.col-xs-pull-9 {
-  right: 75%;
+.fa-forward:before {
+  content: "\f04e";
 }
-.col-xs-pull-8 {
-  right: 66.66666667%;
+.fa-fast-forward:before {
+  content: "\f050";
 }
-.col-xs-pull-7 {
-  right: 58.33333333%;
+.fa-step-forward:before {
+  content: "\f051";
 }
-.col-xs-pull-6 {
-  right: 50%;
+.fa-eject:before {
+  content: "\f052";
 }
-.col-xs-pull-5 {
-  right: 41.66666667%;
+.fa-chevron-left:before {
+  content: "\f053";
 }
-.col-xs-pull-4 {
-  right: 33.33333333%;
+.fa-chevron-right:before {
+  content: "\f054";
 }
-.col-xs-pull-3 {
-  right: 25%;
+.fa-plus-circle:before {
+  content: "\f055";
 }
-.col-xs-pull-2 {
-  right: 16.66666667%;
+.fa-minus-circle:before {
+  content: "\f056";
 }
-.col-xs-pull-1 {
-  right: 8.33333333%;
+.fa-times-circle:before {
+  content: "\f057";
 }
-.col-xs-pull-0 {
-  right: 0%;
+.fa-check-circle:before {
+  content: "\f058";
 }
-.col-xs-push-12 {
-  left: 100%;
+.fa-question-circle:before {
+  content: "\f059";
 }
-.col-xs-push-11 {
-  left: 91.66666667%;
+.fa-info-circle:before {
+  content: "\f05a";
+}
+.fa-crosshairs:before {
+  content: "\f05b";
+}
+.fa-times-circle-o:before {
+  content: "\f05c";
+}
+.fa-check-circle-o:before {
+  content: "\f05d";
+}
+.fa-ban:before {
+  content: "\f05e";
+}
+.fa-arrow-left:before {
+  content: "\f060";
+}
+.fa-arrow-right:before {
+  content: "\f061";
+}
+.fa-arrow-up:before {
+  content: "\f062";
+}
+.fa-arrow-down:before {
+  content: "\f063";
+}
+.fa-mail-forward:before,
+.fa-share:before {
+  content: "\f064";
+}
+.fa-expand:before {
+  content: "\f065";
+}
+.fa-compress:before {
+  content: "\f066";
+}
+.fa-plus:before {
+  content: "\f067";
+}
+.fa-minus:before {
+  content: "\f068";
+}
+.fa-asterisk:before {
+  content: "\f069";
+}
+.fa-exclamation-circle:before {
+  content: "\f06a";
+}
+.fa-gift:before {
+  content: "\f06b";
+}
+.fa-leaf:before {
+  content: "\f06c";
+}
+.fa-fire:before {
+  content: "\f06d";
+}
+.fa-eye:before {
+  content: "\f06e";
+}
+.fa-eye-slash:before {
+  content: "\f070";
+}
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+  content: "\f071";
+}
+.fa-plane:before {
+  content: "\f072";
+}
+.fa-calendar:before {
+  content: "\f073";
+}
+.fa-random:before {
+  content: "\f074";
+}
+.fa-comment:before {
+  content: "\f075";
+}
+.fa-magnet:before {
+  content: "\f076";
+}
+.fa-chevron-up:before {
+  content: "\f077";
+}
+.fa-chevron-down:before {
+  content: "\f078";
+}
+.fa-retweet:before {
+  content: "\f079";
+}
+.fa-shopping-cart:before {
+  content: "\f07a";
+}
+.fa-folder:before {
+  content: "\f07b";
+}
+.fa-folder-open:before {
+  content: "\f07c";
+}
+.fa-arrows-v:before {
+  content: "\f07d";
+}
+.fa-arrows-h:before {
+  content: "\f07e";
+}
+.fa-bar-chart-o:before {
+  content: "\f080";
+}
+.fa-twitter-square:before {
+  content: "\f081";
+}
+.fa-facebook-square:before {
+  content: "\f082";
+}
+.fa-camera-retro:before {
+  content: "\f083";
+}
+.fa-key:before {
+  content: "\f084";
+}
+.fa-gears:before,
+.fa-cogs:before {
+  content: "\f085";
+}
+.fa-comments:before {
+  content: "\f086";
+}
+.fa-thumbs-o-up:before {
+  content: "\f087";
+}
+.fa-thumbs-o-down:before {
+  content: "\f088";
+}
+.fa-star-half:before {
+  content: "\f089";
+}
+.fa-heart-o:before {
+  content: "\f08a";
+}
+.fa-sign-out:before {
+  content: "\f08b";
+}
+.fa-linkedin-square:before {
+  content: "\f08c";
+}
+.fa-thumb-tack:before {
+  content: "\f08d";
+}
+.fa-external-link:before {
+  content: "\f08e";
+}
+.fa-sign-in:before {
+  content: "\f090";
+}
+.fa-trophy:before {
+  content: "\f091";
+}
+.fa-github-square:before {
+  content: "\f092";
+}
+.fa-upload:before {
+  content: "\f093";
+}
+.fa-lemon-o:before {
+  content: "\f094";
+}
+.fa-phone:before {
+  content: "\f095";
+}
+.fa-square-o:before {
+  content: "\f096";
+}
+.fa-bookmark-o:before {
+  content: "\f097";
+}
+.fa-phone-square:before {
+  content: "\f098";
+}
+.fa-twitter:before {
+  content: "\f099";
+}
+.fa-facebook:before {
+  content: "\f09a";
+}
+.fa-github:before {
+  content: "\f09b";
+}
+.fa-unlock:before {
+  content: "\f09c";
+}
+.fa-credit-card:before {
+  content: "\f09d";
+}
+.fa-rss:before {
+  content: "\f09e";
+}
+.fa-hdd-o:before {
+  content: "\f0a0";
+}
+.fa-bullhorn:before {
+  content: "\f0a1";
+}
+.fa-bell:before {
+  content: "\f0f3";
+}
+.fa-certificate:before {
+  content: "\f0a3";
+}
+.fa-hand-o-right:before {
+  content: "\f0a4";
+}
+.fa-hand-o-left:before {
+  content: "\f0a5";
+}
+.fa-hand-o-up:before {
+  content: "\f0a6";
+}
+.fa-hand-o-down:before {
+  content: "\f0a7";
+}
+.fa-arrow-circle-left:before {
+  content: "\f0a8";
+}
+.fa-arrow-circle-right:before {
+  content: "\f0a9";
+}
+.fa-arrow-circle-up:before {
+  content: "\f0aa";
+}
+.fa-arrow-circle-down:before {
+  content: "\f0ab";
+}
+.fa-globe:before {
+  content: "\f0ac";
+}
+.fa-wrench:before {
+  content: "\f0ad";
+}
+.fa-tasks:before {
+  content: "\f0ae";
+}
+.fa-filter:before {
+  content: "\f0b0";
+}
+.fa-briefcase:before {
+  content: "\f0b1";
+}
+.fa-arrows-alt:before {
+  content: "\f0b2";
+}
+.fa-group:before,
+.fa-users:before {
+  content: "\f0c0";
+}
+.fa-chain:before,
+.fa-link:before {
+  content: "\f0c1";
+}
+.fa-cloud:before {
+  content: "\f0c2";
+}
+.fa-flask:before {
+  content: "\f0c3";
+}
+.fa-cut:before,
+.fa-scissors:before {
+  content: "\f0c4";
+}
+.fa-copy:before,
+.fa-files-o:before {
+  content: "\f0c5";
+}
+.fa-paperclip:before {
+  content: "\f0c6";
+}
+.fa-save:before,
+.fa-floppy-o:before {
+  content: "\f0c7";
+}
+.fa-square:before {
+  content: "\f0c8";
+}
+.fa-navicon:before,
+.fa-reorder:before,
+.fa-bars:before {
+  content: "\f0c9";
+}
+.fa-list-ul:before {
+  content: "\f0ca";
+}
+.fa-list-ol:before {
+  content: "\f0cb";
+}
+.fa-strikethrough:before {
+  content: "\f0cc";
+}
+.fa-underline:before {
+  content: "\f0cd";
+}
+.fa-table:before {
+  content: "\f0ce";
+}
+.fa-magic:before {
+  content: "\f0d0";
+}
+.fa-truck:before {
+  content: "\f0d1";
+}
+.fa-pinterest:before {
+  content: "\f0d2";
+}
+.fa-pinterest-square:before {
+  content: "\f0d3";
+}
+.fa-google-plus-square:before {
+  content: "\f0d4";
+}
+.fa-google-plus:before {
+  content: "\f0d5";
+}
+.fa-money:before {
+  content: "\f0d6";
+}
+.fa-caret-down:before {
+  content: "\f0d7";
+}
+.fa-caret-up:before {
+  content: "\f0d8";
+}
+.fa-caret-left:before {
+  content: "\f0d9";
+}
+.fa-caret-right:before {
+  content: "\f0da";
+}
+.fa-columns:before {
+  content: "\f0db";
+}
+.fa-unsorted:before,
+.fa-sort:before {
+  content: "\f0dc";
+}
+.fa-sort-down:before,
+.fa-sort-desc:before {
+  content: "\f0dd";
+}
+.fa-sort-up:before,
+.fa-sort-asc:before {
+  content: "\f0de";
+}
+.fa-envelope:before {
+  content: "\f0e0";
+}
+.fa-linkedin:before {
+  content: "\f0e1";
+}
+.fa-rotate-left:before,
+.fa-undo:before {
+  content: "\f0e2";
+}
+.fa-legal:before,
+.fa-gavel:before {
+  content: "\f0e3";
+}
+.fa-dashboard:before,
+.fa-tachometer:before {
+  content: "\f0e4";
+}
+.fa-comment-o:before {
+  content: "\f0e5";
+}
+.fa-comments-o:before {
+  content: "\f0e6";
+}
+.fa-flash:before,
+.fa-bolt:before {
+  content: "\f0e7";
+}
+.fa-sitemap:before {
+  content: "\f0e8";
+}
+.fa-umbrella:before {
+  content: "\f0e9";
+}
+.fa-paste:before,
+.fa-clipboard:before {
+  content: "\f0ea";
+}
+.fa-lightbulb-o:before {
+  content: "\f0eb";
+}
+.fa-exchange:before {
+  content: "\f0ec";
+}
+.fa-cloud-download:before {
+  content: "\f0ed";
+}
+.fa-cloud-upload:before {
+  content: "\f0ee";
+}
+.fa-user-md:before {
+  content: "\f0f0";
+}
+.fa-stethoscope:before {
+  content: "\f0f1";
+}
+.fa-suitcase:before {
+  content: "\f0f2";
+}
+.fa-bell-o:before {
+  content: "\f0a2";
+}
+.fa-coffee:before {
+  content: "\f0f4";
+}
+.fa-cutlery:before {
+  content: "\f0f5";
+}
+.fa-file-text-o:before {
+  content: "\f0f6";
+}
+.fa-building-o:before {
+  content: "\f0f7";
+}
+.fa-hospital-o:before {
+  content: "\f0f8";
+}
+.fa-ambulance:before {
+  content: "\f0f9";
+}
+.fa-medkit:before {
+  content: "\f0fa";
+}
+.fa-fighter-jet:before {
+  content: "\f0fb";
+}
+.fa-beer:before {
+  content: "\f0fc";
+}
+.fa-h-square:before {
+  content: "\f0fd";
+}
+.fa-plus-square:before {
+  content: "\f0fe";
+}
+.fa-angle-double-left:before {
+  content: "\f100";
+}
+.fa-angle-double-right:before {
+  content: "\f101";
+}
+.fa-angle-double-up:before {
+  content: "\f102";
+}
+.fa-angle-double-down:before {
+  content: "\f103";
+}
+.fa-angle-left:before {
+  content: "\f104";
+}
+.fa-angle-right:before {
+  content: "\f105";
+}
+.fa-angle-up:before {
+  content: "\f106";
+}
+.fa-angle-down:before {
+  content: "\f107";
+}
+.fa-desktop:before {
+  content: "\f108";
+}
+.fa-laptop:before {
+  content: "\f109";
+}
+.fa-tablet:before {
+  content: "\f10a";
+}
+.fa-mobile-phone:before,
+.fa-mobile:before {
+  content: "\f10b";
+}
+.fa-circle-o:before {
+  content: "\f10c";
+}
+.fa-quote-left:before {
+  content: "\f10d";
+}
+.fa-quote-right:before {
+  content: "\f10e";
+}
+.fa-spinner:before {
+  content: "\f110";
+}
+.fa-circle:before {
+  content: "\f111";
+}
+.fa-mail-reply:before,
+.fa-reply:before {
+  content: "\f112";
+}
+.fa-github-alt:before {
+  content: "\f113";
+}
+.fa-folder-o:before {
+  content: "\f114";
+}
+.fa-folder-open-o:before {
+  content: "\f115";
+}
+.fa-smile-o:before {
+  content: "\f118";
+}
+.fa-frown-o:before {
+  content: "\f119";
+}
+.fa-meh-o:before {
+  content: "\f11a";
+}
+.fa-gamepad:before {
+  content: "\f11b";
+}
+.fa-keyboard-o:before {
+  content: "\f11c";
+}
+.fa-flag-o:before {
+  content: "\f11d";
+}
+.fa-flag-checkered:before {
+  content: "\f11e";
+}
+.fa-terminal:before {
+  content: "\f120";
+}
+.fa-code:before {
+  content: "\f121";
+}
+.fa-mail-reply-all:before,
+.fa-reply-all:before {
+  content: "\f122";
+}
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+  content: "\f123";
+}
+.fa-location-arrow:before {
+  content: "\f124";
+}
+.fa-crop:before {
+  content: "\f125";
+}
+.fa-code-fork:before {
+  content: "\f126";
+}
+.fa-unlink:before,
+.fa-chain-broken:before {
+  content: "\f127";
+}
+.fa-question:before {
+  content: "\f128";
+}
+.fa-info:before {
+  content: "\f129";
+}
+.fa-exclamation:before {
+  content: "\f12a";
+}
+.fa-superscript:before {
+  content: "\f12b";
+}
+.fa-subscript:before {
+  content: "\f12c";
+}
+.fa-eraser:before {
+  content: "\f12d";
+}
+.fa-puzzle-piece:before {
+  content: "\f12e";
+}
+.fa-microphone:before {
+  content: "\f130";
+}
+.fa-microphone-slash:before {
+  content: "\f131";
+}
+.fa-shield:before {
+  content: "\f132";
+}
+.fa-calendar-o:before {
+  content: "\f133";
+}
+.fa-fire-extinguisher:before {
+  content: "\f134";
+}
+.fa-rocket:before {
+  content: "\f135";
+}
+.fa-maxcdn:before {
+  content: "\f136";
+}
+.fa-chevron-circle-left:before {
+  content: "\f137";
+}
+.fa-chevron-circle-right:before {
+  content: "\f138";
+}
+.fa-chevron-circle-up:before {
+  content: "\f139";
+}
+.fa-chevron-circle-down:before {
+  content: "\f13a";
+}
+.fa-html5:before {
+  content: "\f13b";
+}
+.fa-css3:before {
+  content: "\f13c";
+}
+.fa-anchor:before {
+  content: "\f13d";
+}
+.fa-unlock-alt:before {
+  content: "\f13e";
+}
+.fa-bullseye:before {
+  content: "\f140";
+}
+.fa-ellipsis-h:before {
+  content: "\f141";
+}
+.fa-ellipsis-v:before {
+  content: "\f142";
+}
+.fa-rss-square:before {
+  content: "\f143";
+}
+.fa-play-circle:before {
+  content: "\f144";
+}
+.fa-ticket:before {
+  content: "\f145";
+}
+.fa-minus-square:before {
+  content: "\f146";
+}
+.fa-minus-square-o:before {
+  content: "\f147";
+}
+.fa-level-up:before {
+  content: "\f148";
+}
+.fa-level-down:before {
+  content: "\f149";
+}
+.fa-check-square:before {
+  content: "\f14a";
+}
+.fa-pencil-square:before {
+  content: "\f14b";
+}
+.fa-external-link-square:before {
+  content: "\f14c";
+}
+.fa-share-square:before {
+  content: "\f14d";
+}
+.fa-compass:before {
+  content: "\f14e";
+}
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+  content: "\f150";
+}
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+  content: "\f151";
+}
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+  content: "\f152";
+}
+.fa-euro:before,
+.fa-eur:before {
+  content: "\f153";
+}
+.fa-gbp:before {
+  content: "\f154";
+}
+.fa-dollar:before,
+.fa-usd:before {
+  content: "\f155";
+}
+.fa-rupee:before,
+.fa-inr:before {
+  content: "\f156";
+}
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+  content: "\f157";
+}
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+  content: "\f158";
+}
+.fa-won:before,
+.fa-krw:before {
+  content: "\f159";
+}
+.fa-bitcoin:before,
+.fa-btc:before {
+  content: "\f15a";
+}
+.fa-file:before {
+  content: "\f15b";
+}
+.fa-file-text:before {
+  content: "\f15c";
+}
+.fa-sort-alpha-asc:before {
+  content: "\f15d";
+}
+.fa-sort-alpha-desc:before {
+  content: "\f15e";
+}
+.fa-sort-amount-asc:before {
+  content: "\f160";
+}
+.fa-sort-amount-desc:before {
+  content: "\f161";
+}
+.fa-sort-numeric-asc:before {
+  content: "\f162";
+}
+.fa-sort-numeric-desc:before {
+  content: "\f163";
+}
+.fa-thumbs-up:before {
+  content: "\f164";
+}
+.fa-thumbs-down:before {
+  content: "\f165";
+}
+.fa-youtube-square:before {
+  content: "\f166";
+}
+.fa-youtube:before {
+  content: "\f167";
+}
+.fa-xing:before {
+  content: "\f168";
+}
+.fa-xing-square:before {
+  content: "\f169";
+}
+.fa-youtube-play:before {
+  content: "\f16a";
+}
+.fa-dropbox:before {
+  content: "\f16b";
+}
+.fa-stack-overflow:before {
+  content: "\f16c";
+}
+.fa-instagram:before {
+  content: "\f16d";
+}
+.fa-flickr:before {
+  content: "\f16e";
+}
+.fa-adn:before {
+  content: "\f170";
+}
+.fa-bitbucket:before {
+  content: "\f171";
+}
+.fa-bitbucket-square:before {
+  content: "\f172";
+}
+.fa-tumblr:before {
+  content: "\f173";
+}
+.fa-tumblr-square:before {
+  content: "\f174";
+}
+.fa-long-arrow-down:before {
+  content: "\f175";
+}
+.fa-long-arrow-up:before {
+  content: "\f176";
+}
+.fa-long-arrow-left:before {
+  content: "\f177";
+}
+.fa-long-arrow-right:before {
+  content: "\f178";
+}
+.fa-apple:before {
+  content: "\f179";
+}
+.fa-windows:before {
+  content: "\f17a";
+}
+.fa-android:before {
+  content: "\f17b";
+}
+.fa-linux:before {
+  content: "\f17c";
+}
+.fa-dribbble:before {
+  content: "\f17d";
+}
+.fa-skype:before {
+  content: "\f17e";
+}
+.fa-foursquare:before {
+  content: "\f180";
+}
+.fa-trello:before {
+  content: "\f181";
+}
+.fa-female:before {
+  content: "\f182";
+}
+.fa-male:before {
+  content: "\f183";
+}
+.fa-gittip:before {
+  content: "\f184";
+}
+.fa-sun-o:before {
+  content: "\f185";
+}
+.fa-moon-o:before {
+  content: "\f186";
+}
+.fa-archive:before {
+  content: "\f187";
+}
+.fa-bug:before {
+  content: "\f188";
+}
+.fa-vk:before {
+  content: "\f189";
+}
+.fa-weibo:before {
+  content: "\f18a";
+}
+.fa-renren:before {
+  content: "\f18b";
+}
+.fa-pagelines:before {
+  content: "\f18c";
+}
+.fa-stack-exchange:before {
+  content: "\f18d";
+}
+.fa-arrow-circle-o-right:before {
+  content: "\f18e";
+}
+.fa-arrow-circle-o-left:before {
+  content: "\f190";
+}
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+  content: "\f191";
+}
+.fa-dot-circle-o:before {
+  content: "\f192";
+}
+.fa-wheelchair:before {
+  content: "\f193";
+}
+.fa-vimeo-square:before {
+  content: "\f194";
+}
+.fa-turkish-lira:before,
+.fa-try:before {
+  content: "\f195";
+}
+.fa-plus-square-o:before {
+  content: "\f196";
+}
+.fa-space-shuttle:before {
+  content: "\f197";
+}
+.fa-slack:before {
+  content: "\f198";
+}
+.fa-envelope-square:before {
+  content: "\f199";
+}
+.fa-wordpress:before {
+  content: "\f19a";
+}
+.fa-openid:before {
+  content: "\f19b";
+}
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before {
+  content: "\f19c";
+}
+.fa-mortar-board:before,
+.fa-graduation-cap:before {
+  content: "\f19d";
+}
+.fa-yahoo:before {
+  content: "\f19e";
+}
+.fa-google:before {
+  content: "\f1a0";
+}
+.fa-reddit:before {
+  content: "\f1a1";
+}
+.fa-reddit-square:before {
+  content: "\f1a2";
+}
+.fa-stumbleupon-circle:before {
+  content: "\f1a3";
+}
+.fa-stumbleupon:before {
+  content: "\f1a4";
+}
+.fa-delicious:before {
+  content: "\f1a5";
+}
+.fa-digg:before {
+  content: "\f1a6";
+}
+.fa-pied-piper-square:before,
+.fa-pied-piper:before {
+  content: "\f1a7";
+}
+.fa-pied-piper-alt:before {
+  content: "\f1a8";
+}
+.fa-drupal:before {
+  content: "\f1a9";
+}
+.fa-joomla:before {
+  content: "\f1aa";
+}
+.fa-language:before {
+  content: "\f1ab";
+}
+.fa-fax:before {
+  content: "\f1ac";
+}
+.fa-building:before {
+  content: "\f1ad";
+}
+.fa-child:before {
+  content: "\f1ae";
+}
+.fa-paw:before {
+  content: "\f1b0";
+}
+.fa-spoon:before {
+  content: "\f1b1";
+}
+.fa-cube:before {
+  content: "\f1b2";
+}
+.fa-cubes:before {
+  content: "\f1b3";
+}
+.fa-behance:before {
+  content: "\f1b4";
+}
+.fa-behance-square:before {
+  content: "\f1b5";
+}
+.fa-steam:before {
+  content: "\f1b6";
+}
+.fa-steam-square:before {
+  content: "\f1b7";
+}
+.fa-recycle:before {
+  content: "\f1b8";
+}
+.fa-automobile:before,
+.fa-car:before {
+  content: "\f1b9";
+}
+.fa-cab:before,
+.fa-taxi:before {
+  content: "\f1ba";
+}
+.fa-tree:before {
+  content: "\f1bb";
+}
+.fa-spotify:before {
+  content: "\f1bc";
+}
+.fa-deviantart:before {
+  content: "\f1bd";
+}
+.fa-soundcloud:before {
+  content: "\f1be";
+}
+.fa-database:before {
+  content: "\f1c0";
+}
+.fa-file-pdf-o:before {
+  content: "\f1c1";
+}
+.fa-file-word-o:before {
+  content: "\f1c2";
+}
+.fa-file-excel-o:before {
+  content: "\f1c3";
+}
+.fa-file-powerpoint-o:before {
+  content: "\f1c4";
+}
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before {
+  content: "\f1c5";
+}
+.fa-file-zip-o:before,
+.fa-file-archive-o:before {
+  content: "\f1c6";
+}
+.fa-file-sound-o:before,
+.fa-file-audio-o:before {
+  content: "\f1c7";
+}
+.fa-file-movie-o:before,
+.fa-file-video-o:before {
+  content: "\f1c8";
+}
+.fa-file-code-o:before {
+  content: "\f1c9";
+}
+.fa-vine:before {
+  content: "\f1ca";
+}
+.fa-codepen:before {
+  content: "\f1cb";
+}
+.fa-jsfiddle:before {
+  content: "\f1cc";
+}
+.fa-life-bouy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before {
+  content: "\f1cd";
+}
+.fa-circle-o-notch:before {
+  content: "\f1ce";
+}
+.fa-ra:before,
+.fa-rebel:before {
+  content: "\f1d0";
+}
+.fa-ge:before,
+.fa-empire:before {
+  content: "\f1d1";
+}
+.fa-git-square:before {
+  content: "\f1d2";
+}
+.fa-git:before {
+  content: "\f1d3";
+}
+.fa-hacker-news:before {
+  content: "\f1d4";
+}
+.fa-tencent-weibo:before {
+  content: "\f1d5";
+}
+.fa-qq:before {
+  content: "\f1d6";
+}
+.fa-wechat:before,
+.fa-weixin:before {
+  content: "\f1d7";
+}
+.fa-send:before,
+.fa-paper-plane:before {
+  content: "\f1d8";
+}
+.fa-send-o:before,
+.fa-paper-plane-o:before {
+  content: "\f1d9";
+}
+.fa-history:before {
+  content: "\f1da";
+}
+.fa-circle-thin:before {
+  content: "\f1db";
+}
+.fa-header:before {
+  content: "\f1dc";
+}
+.fa-paragraph:before {
+  content: "\f1dd";
+}
+.fa-sliders:before {
+  content: "\f1de";
+}
+.fa-share-alt:before {
+  content: "\f1e0";
+}
+.fa-share-alt-square:before {
+  content: "\f1e1";
+}
+.fa-bomb:before {
+  content: "\f1e2";
+}
+* {
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+*:before,
+*:after {
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+html {
+  font-size: 10px;
+  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+body {
+  font-family: 'Open Sans', sans-serif;
+  font-size: 16px;
+  line-height: 1.42857143;
+  color: #333333;
+  background-color: #f7f7f7;
+}
+input,
+button,
+select,
+textarea {
+  font-family: inherit;
+  font-size: inherit;
+  line-height: inherit;
+}
+a {
+  color: #419ae7;
+  text-decoration: none;
+}
+a:hover,
+a:focus {
+  color: #1874c4;
+  text-decoration: underline;
+}
+a:focus {
+  outline: thin dotted;
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
+}
+figure {
+  margin: 0;
+}
+img {
+  vertical-align: middle;
+}
+.img-responsive,
+.thumbnail > img,
+.thumbnail a > img,
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+  display: block;
+  max-width: 100%;
+  height: auto;
+}
+.img-rounded {
+  border-radius: 8px;
+}
+.img-thumbnail {
+  padding: 4px;
+  line-height: 1.42857143;
+  background-color: #f7f7f7;
+  border: 1px solid #dddddd;
+  border-radius: 6px;
+  -webkit-transition: all 0.2s ease-in-out;
+  -o-transition: all 0.2s ease-in-out;
+  transition: all 0.2s ease-in-out;
+  display: inline-block;
+  max-width: 100%;
+  height: auto;
+}
+.img-circle {
+  border-radius: 50%;
+}
+hr {
+  margin-top: 22px;
+  margin-bottom: 22px;
+  border: 0;
+  border-top: 1px solid #eeeeee;
+}
+.sr-only {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  margin: -1px;
+  padding: 0;
+  overflow: hidden;
+  clip: rect(0, 0, 0, 0);
+  border: 0;
+}
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+  position: static;
+  width: auto;
+  height: auto;
+  margin: 0;
+  overflow: visible;
+  clip: auto;
+}
+[role="button"] {
+  cursor: pointer;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+  font-family: inherit;
+  font-weight: 500;
+  line-height: 1.1;
+  color: inherit;
+}
+h1 small,
+h2 small,
+h3 small,
+h4 small,
+h5 small,
+h6 small,
+.h1 small,
+.h2 small,
+.h3 small,
+.h4 small,
+.h5 small,
+.h6 small,
+h1 .small,
+h2 .small,
+h3 .small,
+h4 .small,
+h5 .small,
+h6 .small,
+.h1 .small,
+.h2 .small,
+.h3 .small,
+.h4 .small,
+.h5 .small,
+.h6 .small {
+  font-weight: normal;
+  line-height: 1;
+  color: #777777;
+}
+h1,
+.h1,
+h2,
+.h2,
+h3,
+.h3 {
+  margin-top: 22px;
+  margin-bottom: 11px;
+}
+h1 small,
+.h1 small,
+h2 small,
+.h2 small,
+h3 small,
+.h3 small,
+h1 .small,
+.h1 .small,
+h2 .small,
+.h2 .small,
+h3 .small,
+.h3 .small {
+  font-size: 65%;
+}
+h4,
+.h4,
+h5,
+.h5,
+h6,
+.h6 {
+  margin-top: 11px;
+  margin-bottom: 11px;
+}
+h4 small,
+.h4 small,
+h5 small,
+.h5 small,
+h6 small,
+.h6 small,
+h4 .small,
+.h4 .small,
+h5 .small,
+.h5 .small,
+h6 .small,
+.h6 .small {
+  font-size: 75%;
+}
+h1,
+.h1 {
+  font-size: 41px;
+}
+h2,
+.h2 {
+  font-size: 34px;
+}
+h3,
+.h3 {
+  font-size: 28px;
+}
+h4,
+.h4 {
+  font-size: 20px;
+}
+h5,
+.h5 {
+  font-size: 16px;
+}
+h6,
+.h6 {
+  font-size: 14px;
+}
+p {
+  margin: 0 0 11px;
+}
+.lead {
+  margin-bottom: 22px;
+  font-size: 18px;
+  font-weight: 300;
+  line-height: 1.4;
+}
+@media (min-width: 768px) {
+  .lead {
+    font-size: 24px;
+  }
+}
+small,
+.small {
+  font-size: 87%;
+}
+mark,
+.mark {
+  background-color: #fcf8e3;
+  padding: .2em;
+}
+.text-left {
+  text-align: left;
+}
+.text-right {
+  text-align: right;
+}
+.text-center {
+  text-align: center;
+}
+.text-justify {
+  text-align: justify;
+}
+.text-nowrap {
+  white-space: nowrap;
+}
+.text-lowercase {
+  text-transform: lowercase;
+}
+.text-uppercase {
+  text-transform: uppercase;
+}
+.text-capitalize {
+  text-transform: capitalize;
+}
+.text-muted {
+  color: #777777;
+}
+.text-primary {
+  color: #419ae7;
+}
+a.text-primary:hover,
+a.text-primary:focus {
+  color: #1b82da;
+}
+.text-success {
+  color: #3c763d;
+}
+a.text-success:hover,
+a.text-success:focus {
+  color: #2b542c;
+}
+.text-info {
+  color: #31708f;
+}
+a.text-info:hover,
+a.text-info:focus {
+  color: #245269;
+}
+.text-warning {
+  color: #8a6d3b;
+}
+a.text-warning:hover,
+a.text-warning:focus {
+  color: #66512c;
+}
+.text-danger {
+  color: #a94442;
+}
+a.text-danger:hover,
+a.text-danger:focus {
+  color: #843534;
+}
+.bg-primary {
+  color: #fff;
+  background-color: #419ae7;
+}
+a.bg-primary:hover,
+a.bg-primary:focus {
+  background-color: #1b82da;
+}
+.bg-success {
+  background-color: #dff0d8;
+}
+a.bg-success:hover,
+a.bg-success:focus {
+  background-color: #c1e2b3;
+}
+.bg-info {
+  background-color: #d9edf7;
+}
+a.bg-info:hover,
+a.bg-info:focus {
+  background-color: #afd9ee;
+}
+.bg-warning {
+  background-color: #fcf8e3;
+}
+a.bg-warning:hover,
+a.bg-warning:focus {
+  background-color: #f7ecb5;
+}
+.bg-danger {
+  background-color: #f2dede;
+}
+a.bg-danger:hover,
+a.bg-danger:focus {
+  background-color: #e4b9b9;
+}
+.page-header {
+  padding-bottom: 10px;
+  margin: 44px 0 22px;
+  border-bottom: 1px solid #eeeeee;
+}
+ul,
+ol {
+  margin-top: 0;
+  margin-bottom: 11px;
+}
+ul ul,
+ol ul,
+ul ol,
+ol ol {
+  margin-bottom: 0;
+}
+.list-unstyled {
+  padding-left: 0;
+  list-style: none;
+}
+.list-inline {
+  padding-left: 0;
+  list-style: none;
+  margin-left: -5px;
+}
+.list-inline > li {
+  display: inline-block;
+  padding-left: 5px;
+  padding-right: 5px;
+}
+dl {
+  margin-top: 0;
+  margin-bottom: 22px;
+}
+dt,
+dd {
+  line-height: 1.42857143;
+}
+dt {
+  font-weight: bold;
+}
+dd {
+  margin-left: 0;
+}
+@media (min-width: 768px) {
+  .dl-horizontal dt {
+    float: left;
+    width: 160px;
+    clear: left;
+    text-align: right;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+  .dl-horizontal dd {
+    margin-left: 180px;
+  }
+}
+abbr[title],
+abbr[data-original-title] {
+  cursor: help;
+  border-bottom: 1px dotted #777777;
+}
+.initialism {
+  font-size: 90%;
+  text-transform: uppercase;
+}
+blockquote {
+  padding: 11px 22px;
+  margin: 0 0 22px;
+  font-size: 20px;
+  border-left: 5px solid #eeeeee;
+}
+blockquote p:last-child,
+blockquote ul:last-child,
+blockquote ol:last-child {
+  margin-bottom: 0;
+}
+blockquote footer,
+blockquote small,
+blockquote .small {
+  display: block;
+  font-size: 80%;
+  line-height: 1.42857143;
+  color: #777777;
+}
+blockquote footer:before,
+blockquote small:before,
+blockquote .small:before {
+  content: '\2014 \00A0';
+}
+.blockquote-reverse,
+blockquote.pull-right {
+  padding-right: 15px;
+  padding-left: 0;
+  border-right: 5px solid #eeeeee;
+  border-left: 0;
+  text-align: right;
+}
+.blockquote-reverse footer:before,
+blockquote.pull-right footer:before,
+.blockquote-reverse small:before,
+blockquote.pull-right small:before,
+.blockquote-reverse .small:before,
+blockquote.pull-right .small:before {
+  content: '';
+}
+.blockquote-reverse footer:after,
+blockquote.pull-right footer:after,
+.blockquote-reverse small:after,
+blockquote.pull-right small:after,
+.blockquote-reverse .small:after,
+blockquote.pull-right .small:after {
+  content: '\00A0 \2014';
+}
+address {
+  margin-bottom: 22px;
+  font-style: normal;
+  line-height: 1.42857143;
+}
+code,
+kbd,
+pre,
+samp {
+  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+}
+code {
+  padding: 2px 4px;
+  font-size: 90%;
+  color: #c7254e;
+  background-color: #f9f2f4;
+  border-radius: 6px;
+}
+kbd {
+  padding: 2px 4px;
+  font-size: 90%;
+  color: #ffffff;
+  background-color: #333333;
+  border-radius: 4px;
+  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+kbd kbd {
+  padding: 0;
+  font-size: 100%;
+  font-weight: bold;
+  box-shadow: none;
+}
+pre {
+  display: block;
+  padding: 10.5px;
+  margin: 0 0 11px;
+  font-size: 15px;
+  line-height: 1.42857143;
+  word-break: break-all;
+  word-wrap: break-word;
+  color: #333333;
+  background-color: #f5f5f5;
+  border: 1px solid #cccccc;
+  border-radius: 6px;
+}
+pre code {
+  padding: 0;
+  font-size: inherit;
+  color: inherit;
+  white-space: pre-wrap;
+  background-color: transparent;
+  border-radius: 0;
+}
+.pre-scrollable {
+  max-height: 340px;
+  overflow-y: scroll;
+}
+.container {
+  margin-right: auto;
+  margin-left: auto;
+  padding-left: 15px;
+  padding-right: 15px;
+}
+@media (min-width: 768px) {
+  .container {
+    width: 750px;
+  }
+}
+@media (min-width: 992px) {
+  .container {
+    width: 970px;
+  }
+}
+@media (min-width: 1200px) {
+  .container {
+    width: 1170px;
+  }
+}
+.container-fluid {
+  margin-right: auto;
+  margin-left: auto;
+  padding-left: 15px;
+  padding-right: 15px;
+}
+.row {
+  margin-left: -15px;
+  margin-right: -15px;
+}
+.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
+  position: relative;
+  min-height: 1px;
+  padding-left: 15px;
+  padding-right: 15px;
+}
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
+  float: left;
+}
+.col-xs-12 {
+  width: 100%;
+}
+.col-xs-11 {
+  width: 91.66666667%;
+}
+.col-xs-10 {
+  width: 83.33333333%;
+}
+.col-xs-9 {
+  width: 75%;
+}
+.col-xs-8 {
+  width: 66.66666667%;
+}
+.col-xs-7 {
+  width: 58.33333333%;
+}
+.col-xs-6 {
+  width: 50%;
+}
+.col-xs-5 {
+  width: 41.66666667%;
+}
+.col-xs-4 {
+  width: 33.33333333%;
+}
+.col-xs-3 {
+  width: 25%;
+}
+.col-xs-2 {
+  width: 16.66666667%;
+}
+.col-xs-1 {
+  width: 8.33333333%;
+}
+.col-xs-pull-12 {
+  right: 100%;
+}
+.col-xs-pull-11 {
+  right: 91.66666667%;
+}
+.col-xs-pull-10 {
+  right: 83.33333333%;
+}
+.col-xs-pull-9 {
+  right: 75%;
+}
+.col-xs-pull-8 {
+  right: 66.66666667%;
+}
+.col-xs-pull-7 {
+  right: 58.33333333%;
+}
+.col-xs-pull-6 {
+  right: 50%;
+}
+.col-xs-pull-5 {
+  right: 41.66666667%;
+}
+.col-xs-pull-4 {
+  right: 33.33333333%;
+}
+.col-xs-pull-3 {
+  right: 25%;
+}
+.col-xs-pull-2 {
+  right: 16.66666667%;
+}
+.col-xs-pull-1 {
+  right: 8.33333333%;
+}
+.col-xs-pull-0 {
+  right: auto;
+}
+.col-xs-push-12 {
+  left: 100%;
+}
+.col-xs-push-11 {
+  left: 91.66666667%;
 }
 .col-xs-push-10 {
   left: 83.33333333%;
@@ -885,7 +2488,7 @@ pre code {
   left: 8.33333333%;
 }
 .col-xs-push-0 {
-  left: 0%;
+  left: auto;
 }
 .col-xs-offset-12 {
   margin-left: 100%;
@@ -1003,7 +2606,7 @@ pre code {
     right: 8.33333333%;
   }
   .col-sm-pull-0 {
-    right: 0%;
+    right: auto;
   }
   .col-sm-push-12 {
     left: 100%;
@@ -1042,7 +2645,7 @@ pre code {
     left: 8.33333333%;
   }
   .col-sm-push-0 {
-    left: 0%;
+    left: auto;
   }
   .col-sm-offset-12 {
     margin-left: 100%;
@@ -1161,7 +2764,7 @@ pre code {
     right: 8.33333333%;
   }
   .col-md-pull-0 {
-    right: 0%;
+    right: auto;
   }
   .col-md-push-12 {
     left: 100%;
@@ -1200,7 +2803,7 @@ pre code {
     left: 8.33333333%;
   }
   .col-md-push-0 {
-    left: 0%;
+    left: auto;
   }
   .col-md-offset-12 {
     margin-left: 100%;
@@ -1319,7 +2922,7 @@ pre code {
     right: 8.33333333%;
   }
   .col-lg-pull-0 {
-    right: 0%;
+    right: auto;
   }
   .col-lg-push-12 {
     left: 100%;
@@ -1358,7 +2961,7 @@ pre code {
     left: 8.33333333%;
   }
   .col-lg-push-0 {
-    left: 0%;
+    left: auto;
   }
   .col-lg-offset-12 {
     margin-left: 100%;
@@ -1401,15 +3004,21 @@ pre code {
   }
 }
 table {
-  max-width: 100%;
   background-color: transparent;
 }
+caption {
+  padding-top: 8px;
+  padding-bottom: 8px;
+  color: #777777;
+  text-align: left;
+}
 th {
   text-align: left;
 }
 .table {
   width: 100%;
-  margin-bottom: 20px;
+  max-width: 100%;
+  margin-bottom: 22px;
 }
 .table > thead > tr > th,
 .table > tbody > tr > th,
@@ -1420,11 +3029,11 @@ th {
   padding: 8px;
   line-height: 1.42857143;
   vertical-align: top;
-  border-top: 1px solid #dddddd;
+  border-top: 1px solid transparent;
 }
 .table > thead > tr > th {
   vertical-align: bottom;
-  border-bottom: 2px solid #dddddd;
+  border-bottom: 2px solid transparent;
 }
 .table > caption + thead > tr:first-child > th,
 .table > colgroup + thead > tr:first-child > th,
@@ -1435,10 +3044,10 @@ th {
   border-top: 0;
 }
 .table > tbody + tbody {
-  border-top: 2px solid #dddddd;
+  border-top: 2px solid transparent;
 }
 .table .table {
-  background-color: #fcfcfc;
+  background-color: #f7f7f7;
 }
 .table-condensed > thead > tr > th,
 .table-condensed > tbody > tr > th,
@@ -1449,7 +3058,7 @@ th {
   padding: 5px;
 }
 .table-bordered {
-  border: 1px solid #dddddd;
+  border: 1px solid transparent;
 }
 .table-bordered > thead > tr > th,
 .table-bordered > tbody > tr > th,
@@ -1457,18 +3066,16 @@ th {
 .table-bordered > thead > tr > td,
 .table-bordered > tbody > tr > td,
 .table-bordered > tfoot > tr > td {
-  border: 1px solid #dddddd;
+  border: 1px solid transparent;
 }
 .table-bordered > thead > tr > th,
 .table-bordered > thead > tr > td {
   border-bottom-width: 2px;
 }
-.table-striped > tbody > tr:nth-child(odd) > td,
-.table-striped > tbody > tr:nth-child(odd) > th {
+.table-striped > tbody > tr:nth-of-type(odd) {
   background-color: #f9f9f9;
 }
-.table-hover > tbody > tr:hover > td,
-.table-hover > tbody > tr:hover > th {
+.table-hover > tbody > tr:hover {
   background-color: #f5f5f5;
 }
 table col[class*="col-"] {
@@ -1499,6 +3106,7 @@ table th[class*="col-"] {
 .table-hover > tbody > tr > td.active:hover,
 .table-hover > tbody > tr > th.active:hover,
 .table-hover > tbody > tr.active:hover > td,
+.table-hover > tbody > tr:hover > .active,
 .table-hover > tbody > tr.active:hover > th {
   background-color: #e8e8e8;
 }
@@ -1519,6 +3127,7 @@ table th[class*="col-"] {
 .table-hover > tbody > tr > td.success:hover,
 .table-hover > tbody > tr > th.success:hover,
 .table-hover > tbody > tr.success:hover > td,
+.table-hover > tbody > tr:hover > .success,
 .table-hover > tbody > tr.success:hover > th {
   background-color: #d0e9c6;
 }
@@ -1539,6 +3148,7 @@ table th[class*="col-"] {
 .table-hover > tbody > tr > td.info:hover,
 .table-hover > tbody > tr > th.info:hover,
 .table-hover > tbody > tr.info:hover > td,
+.table-hover > tbody > tr:hover > .info,
 .table-hover > tbody > tr.info:hover > th {
   background-color: #c4e3f3;
 }
@@ -1559,6 +3169,7 @@ table th[class*="col-"] {
 .table-hover > tbody > tr > td.warning:hover,
 .table-hover > tbody > tr > th.warning:hover,
 .table-hover > tbody > tr.warning:hover > td,
+.table-hover > tbody > tr:hover > .warning,
 .table-hover > tbody > tr.warning:hover > th {
   background-color: #faf2cc;
 }
@@ -1579,18 +3190,21 @@ table th[class*="col-"] {
 .table-hover > tbody > tr > td.danger:hover,
 .table-hover > tbody > tr > th.danger:hover,
 .table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr:hover > .danger,
 .table-hover > tbody > tr.danger:hover > th {
   background-color: #ebcccc;
 }
-@media (max-width: 767px) {
+.table-responsive {
+  overflow-x: auto;
+  min-height: 0.01%;
+}
+@media screen and (max-width: 767px) {
   .table-responsive {
     width: 100%;
-    margin-bottom: 15px;
+    margin-bottom: 16.5px;
     overflow-y: hidden;
-    overflow-x: scroll;
     -ms-overflow-style: -ms-autohiding-scrollbar;
-    border: 1px solid #dddddd;
-    -webkit-overflow-scrolling: touch;
+    border: 1px solid transparent;
   }
   .table-responsive > .table {
     margin-bottom: 0;
@@ -1639,15 +3253,16 @@ legend {
   display: block;
   width: 100%;
   padding: 0;
-  margin-bottom: 20px;
-  font-size: 21px;
+  margin-bottom: 22px;
+  font-size: 24px;
   line-height: inherit;
-  color: #808080;
+  color: #333333;
   border: 0;
   border-bottom: 1px solid #e5e5e5;
 }
 label {
   display: inline-block;
+  max-width: 100%;
   margin-bottom: 5px;
   font-weight: bold;
 }
@@ -1660,7 +3275,6 @@ input[type="radio"],
 input[type="checkbox"] {
   margin: 4px 0 0;
   margin-top: 1px \9;
-  /* IE8-9 */
   line-height: normal;
 }
 input[type="file"] {
@@ -1683,26 +3297,27 @@ input[type="checkbox"]:focus {
 }
 output {
   display: block;
-  padding-top: 9px;
-  font-size: 14px;
+  padding-top: 7px;
+  font-size: 16px;
   line-height: 1.42857143;
-  color: #808080;
+  color: #555555;
 }
 .form-control {
   display: block;
   width: 100%;
   height: 38px;
-  padding: 8px 12px;
-  font-size: 14px;
+  padding: 6px 12px;
+  font-size: 16px;
   line-height: 1.42857143;
-  color: #808080;
+  color: #555555;
   background-color: #ffffff;
   background-image: none;
-  border: 1px solid #dddddd;
-  border-radius: 4px;
+  border: 1px solid #cccccc;
+  border-radius: 6px;
   -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
   box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
   -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
   transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
 }
 .form-control:focus {
@@ -1712,45 +3327,74 @@ output {
   box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
 }
 .form-control::-moz-placeholder {
-  color: #dddddd;
+  color: #999999;
   opacity: 1;
 }
 .form-control:-ms-input-placeholder {
-  color: #dddddd;
+  color: #999999;
 }
 .form-control::-webkit-input-placeholder {
-  color: #dddddd;
+  color: #999999;
 }
 .form-control[disabled],
 .form-control[readonly],
 fieldset[disabled] .form-control {
-  cursor: not-allowed;
-  background-color: #dddddd;
+  background-color: #eeeeee;
   opacity: 1;
 }
+.form-control[disabled],
+fieldset[disabled] .form-control {
+  cursor: not-allowed;
+}
 textarea.form-control {
   height: auto;
 }
 input[type="search"] {
   -webkit-appearance: none;
 }
-input[type="date"] {
-  line-height: 38px;
+@media screen and (-webkit-min-device-pixel-ratio: 0) {
+  input[type="date"].form-control,
+  input[type="time"].form-control,
+  input[type="datetime-local"].form-control,
+  input[type="month"].form-control {
+    line-height: 38px;
+  }
+  input[type="date"].input-sm,
+  input[type="time"].input-sm,
+  input[type="datetime-local"].input-sm,
+  input[type="month"].input-sm,
+  .input-group-sm input[type="date"],
+  .input-group-sm input[type="time"],
+  .input-group-sm input[type="datetime-local"],
+  .input-group-sm input[type="month"] {
+    line-height: 33px;
+  }
+  input[type="date"].input-lg,
+  input[type="time"].input-lg,
+  input[type="datetime-local"].input-lg,
+  input[type="month"].input-lg,
+  .input-group-lg input[type="date"],
+  .input-group-lg input[type="time"],
+  .input-group-lg input[type="datetime-local"],
+  .input-group-lg input[type="month"] {
+    line-height: 49px;
+  }
 }
 .form-group {
   margin-bottom: 15px;
 }
 .radio,
 .checkbox {
+  position: relative;
   display: block;
-  min-height: 20px;
   margin-top: 10px;
   margin-bottom: 10px;
-  padding-left: 20px;
 }
 .radio label,
 .checkbox label {
-  display: inline;
+  min-height: 22px;
+  padding-left: 20px;
+  margin-bottom: 0;
   font-weight: normal;
   cursor: pointer;
 }
@@ -1758,8 +3402,9 @@ input[type="date"] {
 .radio-inline input[type="radio"],
 .checkbox input[type="checkbox"],
 .checkbox-inline input[type="checkbox"] {
-  float: left;
+  position: absolute;
   margin-left: -20px;
+  margin-top: 4px \9;
 }
 .radio + .radio,
 .checkbox + .checkbox {
@@ -1767,6 +3412,7 @@ input[type="date"] {
 }
 .radio-inline,
 .checkbox-inline {
+  position: relative;
   display: inline-block;
   padding-left: 20px;
   margin-bottom: 0;
@@ -1781,150 +3427,242 @@ input[type="date"] {
 }
 input[type="radio"][disabled],
 input[type="checkbox"][disabled],
-.radio[disabled],
-.radio-inline[disabled],
-.checkbox[disabled],
-.checkbox-inline[disabled],
+input[type="radio"].disabled,
+input[type="checkbox"].disabled,
 fieldset[disabled] input[type="radio"],
-fieldset[disabled] input[type="checkbox"],
-fieldset[disabled] .radio,
+fieldset[disabled] input[type="checkbox"] {
+  cursor: not-allowed;
+}
+.radio-inline.disabled,
+.checkbox-inline.disabled,
 fieldset[disabled] .radio-inline,
-fieldset[disabled] .checkbox,
 fieldset[disabled] .checkbox-inline {
   cursor: not-allowed;
 }
+.radio.disabled label,
+.checkbox.disabled label,
+fieldset[disabled] .radio label,
+fieldset[disabled] .checkbox label {
+  cursor: not-allowed;
+}
+.form-control-static {
+  padding-top: 7px;
+  padding-bottom: 7px;
+  margin-bottom: 0;
+  min-height: 38px;
+}
+.form-control-static.input-lg,
+.form-control-static.input-sm {
+  padding-left: 0;
+  padding-right: 0;
+}
 .input-sm {
-  height: 30px;
+  height: 33px;
   padding: 5px 10px;
-  font-size: 12px;
+  font-size: 14px;
   line-height: 1.5;
-  border-radius: 3px;
+  border-radius: 4px;
 }
 select.input-sm {
-  height: 30px;
-  line-height: 30px;
+  height: 33px;
+  line-height: 33px;
 }
 textarea.input-sm,
 select[multiple].input-sm {
   height: auto;
 }
+.form-group-sm .form-control {
+  height: 33px;
+  padding: 5px 10px;
+  font-size: 14px;
+  line-height: 1.5;
+  border-radius: 4px;
+}
+.form-group-sm select.form-control {
+  height: 33px;
+  line-height: 33px;
+}
+.form-group-sm textarea.form-control,
+.form-group-sm select[multiple].form-control {
+  height: auto;
+}
+.form-group-sm .form-control-static {
+  height: 33px;
+  min-height: 36px;
+  padding: 6px 10px;
+  font-size: 14px;
+  line-height: 1.5;
+}
 .input-lg {
-  height: 54px;
-  padding: 14px 16px;
-  font-size: 18px;
-  line-height: 1.33;
-  border-radius: 6px;
+  height: 49px;
+  padding: 10px 16px;
+  font-size: 20px;
+  line-height: 1.3333333;
+  border-radius: 8px;
 }
 select.input-lg {
-  height: 54px;
-  line-height: 54px;
+  height: 49px;
+  line-height: 49px;
 }
 textarea.input-lg,
 select[multiple].input-lg {
   height: auto;
 }
+.form-group-lg .form-control {
+  height: 49px;
+  padding: 10px 16px;
+  font-size: 20px;
+  line-height: 1.3333333;
+  border-radius: 8px;
+}
+.form-group-lg select.form-control {
+  height: 49px;
+  line-height: 49px;
+}
+.form-group-lg textarea.form-control,
+.form-group-lg select[multiple].form-control {
+  height: auto;
+}
+.form-group-lg .form-control-static {
+  height: 49px;
+  min-height: 42px;
+  padding: 11px 16px;
+  font-size: 20px;
+  line-height: 1.3333333;
+}
 .has-feedback {
   position: relative;
 }
 .has-feedback .form-control {
   padding-right: 47.5px;
 }
-.has-feedback .form-control-feedback {
+.form-control-feedback {
   position: absolute;
-  top: 25px;
+  top: 0;
   right: 0;
+  z-index: 2;
   display: block;
   width: 38px;
   height: 38px;
   line-height: 38px;
   text-align: center;
+  pointer-events: none;
+}
+.input-lg + .form-control-feedback,
+.input-group-lg + .form-control-feedback,
+.form-group-lg .form-control + .form-control-feedback {
+  width: 49px;
+  height: 49px;
+  line-height: 49px;
+}
+.input-sm + .form-control-feedback,
+.input-group-sm + .form-control-feedback,
+.form-group-sm .form-control + .form-control-feedback {
+  width: 33px;
+  height: 33px;
+  line-height: 33px;
 }
 .has-success .help-block,
 .has-success .control-label,
 .has-success .radio,
 .has-success .checkbox,
 .has-success .radio-inline,
-.has-success .checkbox-inline {
-  color: #468847;
+.has-success .checkbox-inline,
+.has-success.radio label,
+.has-success.checkbox label,
+.has-success.radio-inline label,
+.has-success.checkbox-inline label {
+  color: #3c763d;
 }
 .has-success .form-control {
-  border-color: #468847;
+  border-color: #3c763d;
   -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
   box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 }
 .has-success .form-control:focus {
-  border-color: #356635;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
+  border-color: #2b542c;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
 }
 .has-success .input-group-addon {
-  color: #468847;
-  border-color: #468847;
+  color: #3c763d;
+  border-color: #3c763d;
   background-color: #dff0d8;
 }
 .has-success .form-control-feedback {
-  color: #468847;
+  color: #3c763d;
 }
 .has-warning .help-block,
 .has-warning .control-label,
 .has-warning .radio,
 .has-warning .checkbox,
 .has-warning .radio-inline,
-.has-warning .checkbox-inline {
-  color: #c09853;
+.has-warning .checkbox-inline,
+.has-warning.radio label,
+.has-warning.checkbox label,
+.has-warning.radio-inline label,
+.has-warning.checkbox-inline label {
+  color: #8a6d3b;
 }
 .has-warning .form-control {
-  border-color: #c09853;
+  border-color: #8a6d3b;
   -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
   box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 }
 .has-warning .form-control:focus {
-  border-color: #a47e3c;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
+  border-color: #66512c;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
 }
 .has-warning .input-group-addon {
-  color: #c09853;
-  border-color: #c09853;
+  color: #8a6d3b;
+  border-color: #8a6d3b;
   background-color: #fcf8e3;
 }
 .has-warning .form-control-feedback {
-  color: #c09853;
+  color: #8a6d3b;
 }
 .has-error .help-block,
 .has-error .control-label,
 .has-error .radio,
 .has-error .checkbox,
 .has-error .radio-inline,
-.has-error .checkbox-inline {
-  color: #b94a48;
+.has-error .checkbox-inline,
+.has-error.radio label,
+.has-error.checkbox label,
+.has-error.radio-inline label,
+.has-error.checkbox-inline label {
+  color: #a94442;
 }
 .has-error .form-control {
-  border-color: #b94a48;
+  border-color: #a94442;
   -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
   box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 }
 .has-error .form-control:focus {
-  border-color: #953b39;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
+  border-color: #843534;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
 }
 .has-error .input-group-addon {
-  color: #b94a48;
-  border-color: #b94a48;
+  color: #a94442;
+  border-color: #a94442;
   background-color: #f2dede;
 }
 .has-error .form-control-feedback {
-  color: #b94a48;
+  color: #a94442;
 }
-.form-control-static {
-  margin-bottom: 0;
+.has-feedback label ~ .form-control-feedback {
+  top: 27px;
+}
+.has-feedback label.sr-only ~ .form-control-feedback {
+  top: 0;
 }
 .help-block {
   display: block;
   margin-top: 5px;
   margin-bottom: 10px;
-  color: #c0c0c0;
+  color: #737373;
 }
 @media (min-width: 768px) {
   .form-inline .form-group {
@@ -1937,6 +3675,18 @@ select[multiple].input-lg {
     width: auto;
     vertical-align: middle;
   }
+  .form-inline .form-control-static {
+    display: inline-block;
+  }
+  .form-inline .input-group {
+    display: inline-table;
+    vertical-align: middle;
+  }
+  .form-inline .input-group .input-group-addon,
+  .form-inline .input-group .input-group-btn,
+  .form-inline .input-group .form-control {
+    width: auto;
+  }
   .form-inline .input-group > .form-control {
     width: 100%;
   }
@@ -1949,26 +3699,28 @@ select[multiple].input-lg {
     display: inline-block;
     margin-top: 0;
     margin-bottom: 0;
-    padding-left: 0;
     vertical-align: middle;
   }
+  .form-inline .radio label,
+  .form-inline .checkbox label {
+    padding-left: 0;
+  }
   .form-inline .radio input[type="radio"],
   .form-inline .checkbox input[type="checkbox"] {
-    float: none;
+    position: relative;
     margin-left: 0;
   }
   .form-inline .has-feedback .form-control-feedback {
     top: 0;
   }
 }
-.form-horizontal .control-label,
 .form-horizontal .radio,
 .form-horizontal .checkbox,
 .form-horizontal .radio-inline,
 .form-horizontal .checkbox-inline {
   margin-top: 0;
   margin-bottom: 0;
-  padding-top: 9px;
+  padding-top: 7px;
 }
 .form-horizontal .radio,
 .form-horizontal .checkbox {
@@ -1978,32 +3730,43 @@ select[multiple].input-lg {
   margin-left: -15px;
   margin-right: -15px;
 }
-.form-horizontal .form-control-static {
-  padding-top: 9px;
-}
 @media (min-width: 768px) {
   .form-horizontal .control-label {
     text-align: right;
+    margin-bottom: 0;
+    padding-top: 7px;
   }
 }
 .form-horizontal .has-feedback .form-control-feedback {
-  top: 0;
   right: 15px;
 }
+@media (min-width: 768px) {
+  .form-horizontal .form-group-lg .control-label {
+    padding-top: 14.333333px;
+    font-size: 20px;
+  }
+}
+@media (min-width: 768px) {
+  .form-horizontal .form-group-sm .control-label {
+    padding-top: 6px;
+    font-size: 14px;
+  }
+}
 .btn {
   display: inline-block;
   margin-bottom: 0;
   font-weight: normal;
   text-align: center;
   vertical-align: middle;
+  touch-action: manipulation;
   cursor: pointer;
   background-image: none;
   border: 1px solid transparent;
   white-space: nowrap;
-  padding: 8px 12px;
-  font-size: 14px;
+  padding: 6px 12px;
+  font-size: 16px;
   line-height: 1.42857143;
-  border-radius: 4px;
+  border-radius: 6px;
   -webkit-user-select: none;
   -moz-user-select: none;
   -ms-user-select: none;
@@ -2011,14 +3774,18 @@ select[multiple].input-lg {
 }
 .btn:focus,
 .btn:active:focus,
-.btn.active:focus {
+.btn.active:focus,
+.btn.focus,
+.btn:active.focus,
+.btn.active.focus {
   outline: thin dotted;
   outline: 5px auto -webkit-focus-ring-color;
   outline-offset: -2px;
 }
 .btn:hover,
-.btn:focus {
-  color: #ffffff;
+.btn:focus,
+.btn.focus {
+  color: #333333;
   text-decoration: none;
 }
 .btn:active,
@@ -2032,29 +3799,54 @@ select[multiple].input-lg {
 .btn[disabled],
 fieldset[disabled] .btn {
   cursor: not-allowed;
-  pointer-events: none;
   opacity: 0.65;
   filter: alpha(opacity=65);
   -webkit-box-shadow: none;
   box-shadow: none;
 }
+a.btn.disabled,
+fieldset[disabled] a.btn {
+  pointer-events: none;
+}
 .btn-default {
-  color: #ffffff;
-  background-color: #474949;
-  border-color: #474949;
+  color: #333333;
+  background-color: #f7f7f7;
+  border-color: #f7f7f7;
 }
-.btn-default:hover,
 .btn-default:focus,
+.btn-default.focus {
+  color: #333333;
+  background-color: #dedede;
+  border-color: #b7b7b7;
+}
+.btn-default:hover {
+  color: #333333;
+  background-color: #dedede;
+  border-color: #d8d8d8;
+}
 .btn-default:active,
 .btn-default.active,
-.open .dropdown-toggle.btn-default {
-  color: #ffffff;
-  background-color: #333434;
-  border-color: #292a2a;
+.open > .dropdown-toggle.btn-default {
+  color: #333333;
+  background-color: #dedede;
+  border-color: #d8d8d8;
+}
+.btn-default:active:hover,
+.btn-default.active:hover,
+.open > .dropdown-toggle.btn-default:hover,
+.btn-default:active:focus,
+.btn-default.active:focus,
+.open > .dropdown-toggle.btn-default:focus,
+.btn-default:active.focus,
+.btn-default.active.focus,
+.open > .dropdown-toggle.btn-default.focus {
+  color: #333333;
+  background-color: #cccccc;
+  border-color: #b7b7b7;
 }
 .btn-default:active,
 .btn-default.active,
-.open .dropdown-toggle.btn-default {
+.open > .dropdown-toggle.btn-default {
   background-image: none;
 }
 .btn-default.disabled,
@@ -2066,36 +3858,61 @@ fieldset[disabled] .btn-default:hover,
 .btn-default.disabled:focus,
 .btn-default[disabled]:focus,
 fieldset[disabled] .btn-default:focus,
+.btn-default.disabled.focus,
+.btn-default[disabled].focus,
+fieldset[disabled] .btn-default.focus,
 .btn-default.disabled:active,
 .btn-default[disabled]:active,
 fieldset[disabled] .btn-default:active,
 .btn-default.disabled.active,
 .btn-default[disabled].active,
 fieldset[disabled] .btn-default.active {
-  background-color: #474949;
-  border-color: #474949;
+  background-color: #f7f7f7;
+  border-color: #f7f7f7;
 }
 .btn-default .badge {
-  color: #474949;
-  background-color: #ffffff;
+  color: #f7f7f7;
+  background-color: #333333;
 }
 .btn-primary {
   color: #ffffff;
-  background-color: #d9230f;
-  border-color: #d9230f;
+  background-color: #419ae7;
+  border-color: #2a8ee5;
 }
-.btn-primary:hover,
 .btn-primary:focus,
+.btn-primary.focus {
+  color: #ffffff;
+  background-color: #1b82da;
+  border-color: #104c80;
+}
+.btn-primary:hover {
+  color: #ffffff;
+  background-color: #1b82da;
+  border-color: #176fbb;
+}
 .btn-primary:active,
 .btn-primary.active,
-.open .dropdown-toggle.btn-primary {
+.open > .dropdown-toggle.btn-primary {
   color: #ffffff;
-  background-color: #b31d0c;
-  border-color: #a01a0b;
+  background-color: #1b82da;
+  border-color: #176fbb;
+}
+.btn-primary:active:hover,
+.btn-primary.active:hover,
+.open > .dropdown-toggle.btn-primary:hover,
+.btn-primary:active:focus,
+.btn-primary.active:focus,
+.open > .dropdown-toggle.btn-primary:focus,
+.btn-primary:active.focus,
+.btn-primary.active.focus,
+.open > .dropdown-toggle.btn-primary.focus {
+  color: #ffffff;
+  background-color: #176fbb;
+  border-color: #104c80;
 }
 .btn-primary:active,
 .btn-primary.active,
-.open .dropdown-toggle.btn-primary {
+.open > .dropdown-toggle.btn-primary {
   background-image: none;
 }
 .btn-primary.disabled,
@@ -2107,36 +3924,61 @@ fieldset[disabled] .btn-primary:hover,
 .btn-primary.disabled:focus,
 .btn-primary[disabled]:focus,
 fieldset[disabled] .btn-primary:focus,
+.btn-primary.disabled.focus,
+.btn-primary[disabled].focus,
+fieldset[disabled] .btn-primary.focus,
 .btn-primary.disabled:active,
 .btn-primary[disabled]:active,
 fieldset[disabled] .btn-primary:active,
 .btn-primary.disabled.active,
 .btn-primary[disabled].active,
 fieldset[disabled] .btn-primary.active {
-  background-color: #d9230f;
-  border-color: #d9230f;
+  background-color: #419ae7;
+  border-color: #2a8ee5;
 }
 .btn-primary .badge {
-  color: #d9230f;
+  color: #419ae7;
   background-color: #ffffff;
 }
 .btn-success {
   color: #ffffff;
-  background-color: #469408;
-  border-color: #469408;
+  background-color: #2dad2d;
+  border-color: #289928;
 }
-.btn-success:hover,
 .btn-success:focus,
+.btn-success.focus {
+  color: #ffffff;
+  background-color: #238423;
+  border-color: #0d340d;
+}
+.btn-success:hover {
+  color: #ffffff;
+  background-color: #238423;
+  border-color: #1b681b;
+}
 .btn-success:active,
 .btn-success.active,
-.open .dropdown-toggle.btn-success {
+.open > .dropdown-toggle.btn-success {
   color: #ffffff;
-  background-color: #346d06;
-  border-color: #2b5a05;
+  background-color: #238423;
+  border-color: #1b681b;
+}
+.btn-success:active:hover,
+.btn-success.active:hover,
+.open > .dropdown-toggle.btn-success:hover,
+.btn-success:active:focus,
+.btn-success.active:focus,
+.open > .dropdown-toggle.btn-success:focus,
+.btn-success:active.focus,
+.btn-success.active.focus,
+.open > .dropdown-toggle.btn-success.focus {
+  color: #ffffff;
+  background-color: #1b681b;
+  border-color: #0d340d;
 }
 .btn-success:active,
 .btn-success.active,
-.open .dropdown-toggle.btn-success {
+.open > .dropdown-toggle.btn-success {
   background-image: none;
 }
 .btn-success.disabled,
@@ -2148,36 +3990,61 @@ fieldset[disabled] .btn-success:hover,
 .btn-success.disabled:focus,
 .btn-success[disabled]:focus,
 fieldset[disabled] .btn-success:focus,
+.btn-success.disabled.focus,
+.btn-success[disabled].focus,
+fieldset[disabled] .btn-success.focus,
 .btn-success.disabled:active,
 .btn-success[disabled]:active,
 fieldset[disabled] .btn-success:active,
 .btn-success.disabled.active,
 .btn-success[disabled].active,
 fieldset[disabled] .btn-success.active {
-  background-color: #469408;
-  border-color: #469408;
+  background-color: #2dad2d;
+  border-color: #289928;
 }
 .btn-success .badge {
-  color: #469408;
+  color: #2dad2d;
   background-color: #ffffff;
 }
 .btn-info {
   color: #ffffff;
-  background-color: #029acf;
-  border-color: #029acf;
+  background-color: #41c1e7;
+  border-color: #2abae5;
 }
-.btn-info:hover,
 .btn-info:focus,
+.btn-info.focus {
+  color: #ffffff;
+  background-color: #1bafda;
+  border-color: #106680;
+}
+.btn-info:hover {
+  color: #ffffff;
+  background-color: #1bafda;
+  border-color: #1795bb;
+}
 .btn-info:active,
 .btn-info.active,
-.open .dropdown-toggle.btn-info {
+.open > .dropdown-toggle.btn-info {
   color: #ffffff;
-  background-color: #027ca7;
-  border-color: #016d92;
+  background-color: #1bafda;
+  border-color: #1795bb;
+}
+.btn-info:active:hover,
+.btn-info.active:hover,
+.open > .dropdown-toggle.btn-info:hover,
+.btn-info:active:focus,
+.btn-info.active:focus,
+.open > .dropdown-toggle.btn-info:focus,
+.btn-info:active.focus,
+.btn-info.active.focus,
+.open > .dropdown-toggle.btn-info.focus {
+  color: #ffffff;
+  background-color: #1795bb;
+  border-color: #106680;
 }
 .btn-info:active,
 .btn-info.active,
-.open .dropdown-toggle.btn-info {
+.open > .dropdown-toggle.btn-info {
   background-image: none;
 }
 .btn-info.disabled,
@@ -2189,36 +4056,61 @@ fieldset[disabled] .btn-info:hover,
 .btn-info.disabled:focus,
 .btn-info[disabled]:focus,
 fieldset[disabled] .btn-info:focus,
+.btn-info.disabled.focus,
+.btn-info[disabled].focus,
+fieldset[disabled] .btn-info.focus,
 .btn-info.disabled:active,
 .btn-info[disabled]:active,
 fieldset[disabled] .btn-info:active,
 .btn-info.disabled.active,
 .btn-info[disabled].active,
 fieldset[disabled] .btn-info.active {
-  background-color: #029acf;
-  border-color: #029acf;
+  background-color: #41c1e7;
+  border-color: #2abae5;
 }
 .btn-info .badge {
-  color: #029acf;
+  color: #41c1e7;
   background-color: #ffffff;
 }
 .btn-warning {
   color: #ffffff;
-  background-color: #9b479f;
-  border-color: #9b479f;
+  background-color: #ea8f0d;
+  border-color: #d2800c;
 }
-.btn-warning:hover,
 .btn-warning:focus,
+.btn-warning.focus {
+  color: #ffffff;
+  background-color: #ba710b;
+  border-color: #593705;
+}
+.btn-warning:hover {
+  color: #ffffff;
+  background-color: #ba710b;
+  border-color: #985d09;
+}
 .btn-warning:active,
 .btn-warning.active,
-.open .dropdown-toggle.btn-warning {
+.open > .dropdown-toggle.btn-warning {
   color: #ffffff;
-  background-color: #803a83;
-  border-color: #723475;
+  background-color: #ba710b;
+  border-color: #985d09;
+}
+.btn-warning:active:hover,
+.btn-warning.active:hover,
+.open > .dropdown-toggle.btn-warning:hover,
+.btn-warning:active:focus,
+.btn-warning.active:focus,
+.open > .dropdown-toggle.btn-warning:focus,
+.btn-warning:active.focus,
+.btn-warning.active.focus,
+.open > .dropdown-toggle.btn-warning.focus {
+  color: #ffffff;
+  background-color: #985d09;
+  border-color: #593705;
 }
 .btn-warning:active,
 .btn-warning.active,
-.open .dropdown-toggle.btn-warning {
+.open > .dropdown-toggle.btn-warning {
   background-image: none;
 }
 .btn-warning.disabled,
@@ -2230,36 +4122,61 @@ fieldset[disabled] .btn-warning:hover,
 .btn-warning.disabled:focus,
 .btn-warning[disabled]:focus,
 fieldset[disabled] .btn-warning:focus,
+.btn-warning.disabled.focus,
+.btn-warning[disabled].focus,
+fieldset[disabled] .btn-warning.focus,
 .btn-warning.disabled:active,
 .btn-warning[disabled]:active,
 fieldset[disabled] .btn-warning:active,
 .btn-warning.disabled.active,
 .btn-warning[disabled].active,
 fieldset[disabled] .btn-warning.active {
-  background-color: #9b479f;
-  border-color: #9b479f;
+  background-color: #ea8f0d;
+  border-color: #d2800c;
 }
 .btn-warning .badge {
-  color: #9b479f;
+  color: #ea8f0d;
   background-color: #ffffff;
 }
 .btn-danger {
   color: #ffffff;
-  background-color: #d9831f;
-  border-color: #d9831f;
+  background-color: #c42621;
+  border-color: #ae211d;
 }
-.btn-danger:hover,
 .btn-danger:focus,
+.btn-danger.focus {
+  color: #ffffff;
+  background-color: #981d1a;
+  border-color: #410c0b;
+}
+.btn-danger:hover {
+  color: #ffffff;
+  background-color: #981d1a;
+  border-color: #791714;
+}
 .btn-danger:active,
 .btn-danger.active,
-.open .dropdown-toggle.btn-danger {
+.open > .dropdown-toggle.btn-danger {
   color: #ffffff;
-  background-color: #b56d1a;
-  border-color: #a36317;
+  background-color: #981d1a;
+  border-color: #791714;
+}
+.btn-danger:active:hover,
+.btn-danger.active:hover,
+.open > .dropdown-toggle.btn-danger:hover,
+.btn-danger:active:focus,
+.btn-danger.active:focus,
+.open > .dropdown-toggle.btn-danger:focus,
+.btn-danger:active.focus,
+.btn-danger.active.focus,
+.open > .dropdown-toggle.btn-danger.focus {
+  color: #ffffff;
+  background-color: #791714;
+  border-color: #410c0b;
 }
 .btn-danger:active,
 .btn-danger.active,
-.open .dropdown-toggle.btn-danger {
+.open > .dropdown-toggle.btn-danger {
   background-image: none;
 }
 .btn-danger.disabled,
@@ -2271,27 +4188,30 @@ fieldset[disabled] .btn-danger:hover,
 .btn-danger.disabled:focus,
 .btn-danger[disabled]:focus,
 fieldset[disabled] .btn-danger:focus,
+.btn-danger.disabled.focus,
+.btn-danger[disabled].focus,
+fieldset[disabled] .btn-danger.focus,
 .btn-danger.disabled:active,
 .btn-danger[disabled]:active,
 fieldset[disabled] .btn-danger:active,
 .btn-danger.disabled.active,
 .btn-danger[disabled].active,
 fieldset[disabled] .btn-danger.active {
-  background-color: #d9831f;
-  border-color: #d9831f;
+  background-color: #c42621;
+  border-color: #ae211d;
 }
 .btn-danger .badge {
-  color: #d9831f;
+  color: #c42621;
   background-color: #ffffff;
 }
 .btn-link {
-  color: #d9230f;
+  color: #419ae7;
   font-weight: normal;
-  cursor: pointer;
   border-radius: 0;
 }
 .btn-link,
 .btn-link:active,
+.btn-link.active,
 .btn-link[disabled],
 fieldset[disabled] .btn-link {
   background-color: transparent;
@@ -2306,7 +4226,7 @@ fieldset[disabled] .btn-link {
 }
 .btn-link:hover,
 .btn-link:focus {
-  color: #91170a;
+  color: #1874c4;
   text-decoration: underline;
   background-color: transparent;
 }
@@ -2314,35 +4234,33 @@ fieldset[disabled] .btn-link {
 fieldset[disabled] .btn-link:hover,
 .btn-link[disabled]:focus,
 fieldset[disabled] .btn-link:focus {
-  color: #808080;
+  color: #777777;
   text-decoration: none;
 }
 .btn-lg,
 .btn-group-lg > .btn {
-  padding: 14px 16px;
-  font-size: 18px;
-  line-height: 1.33;
-  border-radius: 6px;
+  padding: 10px 16px;
+  font-size: 20px;
+  line-height: 1.3333333;
+  border-radius: 8px;
 }
 .btn-sm,
 .btn-group-sm > .btn {
   padding: 5px 10px;
-  font-size: 12px;
+  font-size: 14px;
   line-height: 1.5;
-  border-radius: 3px;
+  border-radius: 4px;
 }
 .btn-xs,
 .btn-group-xs > .btn {
   padding: 1px 5px;
-  font-size: 12px;
+  font-size: 14px;
   line-height: 1.5;
-  border-radius: 3px;
+  border-radius: 4px;
 }
 .btn-block {
   display: block;
   width: 100%;
-  padding-left: 0;
-  padding-right: 0;
 }
 .btn-block + .btn-block {
   margin-top: 5px;
@@ -2355,6 +4273,7 @@ input[type="button"].btn-block {
 .fade {
   opacity: 0;
   -webkit-transition: opacity 0.15s linear;
+  -o-transition: opacity 0.15s linear;
   transition: opacity 0.15s linear;
 }
 .fade.in {
@@ -2366,4533 +4285,6183 @@ input[type="button"].btn-block {
 .collapse.in {
   display: block;
 }
+tr.collapse.in {
+  display: table-row;
+}
+tbody.collapse.in {
+  display: table-row-group;
+}
 .collapsing {
   position: relative;
   height: 0;
   overflow: hidden;
-  -webkit-transition: height 0.35s ease;
-  transition: height 0.35s ease;
-}
-/*!
- *  Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
- *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-/* FONT PATH
- * -------------------------- */
-@font-face {
-  font-family: 'FontAwesome';
-  src: url('../fonts/fontawesome-webfont.eot?v=4.1.0');
-  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');
-  font-weight: normal;
-  font-style: normal;
+  -webkit-transition-property: height, visibility;
+  transition-property: height, visibility;
+  -webkit-transition-duration: 0.35s;
+  transition-duration: 0.35s;
+  -webkit-transition-timing-function: ease;
+  transition-timing-function: ease;
 }
-.fa {
+.caret {
   display: inline-block;
-  font-family: FontAwesome;
-  font-style: normal;
+  width: 0;
+  height: 0;
+  margin-left: 2px;
+  vertical-align: middle;
+  border-top: 4px dashed;
+  border-top: 4px solid \9;
+  border-right: 4px solid transparent;
+  border-left: 4px solid transparent;
+}
+.dropup,
+.dropdown {
+  position: relative;
+}
+.dropdown-toggle:focus {
+  outline: 0;
+}
+.dropdown-menu {
+  position: absolute;
+  top: 100%;
+  left: 0;
+  z-index: 1000;
+  display: none;
+  float: left;
+  min-width: 160px;
+  padding: 5px 0;
+  margin: 2px 0 0;
+  list-style: none;
+  font-size: 16px;
+  text-align: left;
+  background-color: #ffffff;
+  border: 1px solid #cccccc;
+  border: 1px solid rgba(0, 0, 0, 0.15);
+  border-radius: 6px;
+  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+  background-clip: padding-box;
+}
+.dropdown-menu.pull-right {
+  right: 0;
+  left: auto;
+}
+.dropdown-menu .divider {
+  height: 1px;
+  margin: 10px 0;
+  overflow: hidden;
+  background-color: #e5e5e5;
+}
+.dropdown-menu > li > a {
+  display: block;
+  padding: 3px 20px;
+  clear: both;
   font-weight: normal;
-  line-height: 1;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
+  line-height: 1.42857143;
+  color: #333333;
+  white-space: nowrap;
 }
-/* makes the font 33% larger relative to the icon container */
-.fa-lg {
-  font-size: 1.33333333em;
-  line-height: 0.75em;
-  vertical-align: -15%;
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+  text-decoration: none;
+  color: #262626;
+  background-color: #f5f5f5;
 }
-.fa-2x {
-  font-size: 2em;
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+  color: #ffffff;
+  text-decoration: none;
+  outline: 0;
+  background-color: #419ae7;
 }
-.fa-3x {
-  font-size: 3em;
+.dropdown-menu > .disabled > a,
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+  color: #777777;
 }
-.fa-4x {
-  font-size: 4em;
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+  text-decoration: none;
+  background-color: transparent;
+  background-image: none;
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  cursor: not-allowed;
 }
-.fa-5x {
-  font-size: 5em;
+.open > .dropdown-menu {
+  display: block;
 }
-.fa-fw {
-  width: 1.28571429em;
-  text-align: center;
+.open > a {
+  outline: 0;
 }
-.fa-ul {
-  padding-left: 0;
-  margin-left: 2.14285714em;
-  list-style-type: none;
+.dropdown-menu-right {
+  left: auto;
+  right: 0;
 }
-.fa-ul > li {
+.dropdown-menu-left {
+  left: 0;
+  right: auto;
+}
+.dropdown-header {
+  display: block;
+  padding: 3px 20px;
+  font-size: 14px;
+  line-height: 1.42857143;
+  color: #777777;
+  white-space: nowrap;
+}
+.dropdown-backdrop {
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  top: 0;
+  z-index: 990;
+}
+.pull-right > .dropdown-menu {
+  right: 0;
+  left: auto;
+}
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+  border-top: 0;
+  border-bottom: 4px dashed;
+  border-bottom: 4px solid \9;
+  content: "";
+}
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+  top: auto;
+  bottom: 100%;
+  margin-bottom: 2px;
+}
+@media (min-width: 768px) {
+  .navbar-right .dropdown-menu {
+    left: auto;
+    right: 0;
+  }
+  .navbar-right .dropdown-menu-left {
+    left: 0;
+    right: auto;
+  }
+}
+.btn-group,
+.btn-group-vertical {
   position: relative;
+  display: inline-block;
+  vertical-align: middle;
 }
-.fa-li {
-  position: absolute;
-  left: -2.14285714em;
-  width: 2.14285714em;
-  top: 0.14285714em;
-  text-align: center;
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+  position: relative;
+  float: left;
 }
-.fa-li.fa-lg {
-  left: -1.85714286em;
+.btn-group > .btn:hover,
+.btn-group-vertical > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group-vertical > .btn:focus,
+.btn-group > .btn:active,
+.btn-group-vertical > .btn:active,
+.btn-group > .btn.active,
+.btn-group-vertical > .btn.active {
+  z-index: 2;
+}
+.btn-group .btn + .btn,
+.btn-group .btn + .btn-group,
+.btn-group .btn-group + .btn,
+.btn-group .btn-group + .btn-group {
+  margin-left: -1px;
+}
+.btn-toolbar {
+  margin-left: -5px;
+}
+.btn-toolbar .btn,
+.btn-toolbar .btn-group,
+.btn-toolbar .input-group {
+  float: left;
+}
+.btn-toolbar > .btn,
+.btn-toolbar > .btn-group,
+.btn-toolbar > .input-group {
+  margin-left: 5px;
+}
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+  border-radius: 0;
+}
+.btn-group > .btn:first-child {
+  margin-left: 0;
+}
+.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+  border-bottom-right-radius: 0;
+  border-top-right-radius: 0;
+}
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+  border-bottom-left-radius: 0;
+  border-top-left-radius: 0;
+}
+.btn-group > .btn-group {
+  float: left;
+}
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+  border-radius: 0;
+}
+.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+  border-bottom-right-radius: 0;
+  border-top-right-radius: 0;
+}
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+  border-bottom-left-radius: 0;
+  border-top-left-radius: 0;
+}
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+  outline: 0;
+}
+.btn-group > .btn + .dropdown-toggle {
+  padding-left: 8px;
+  padding-right: 8px;
+}
+.btn-group > .btn-lg + .dropdown-toggle {
+  padding-left: 12px;
+  padding-right: 12px;
+}
+.btn-group.open .dropdown-toggle {
+  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.btn-group.open .dropdown-toggle.btn-link {
+  -webkit-box-shadow: none;
+  box-shadow: none;
 }
-.fa-border {
-  padding: .2em .25em .15em;
-  border: solid 0.08em #eeeeee;
-  border-radius: .1em;
+.btn .caret {
+  margin-left: 0;
 }
-.pull-right {
-  float: right;
+.btn-lg .caret {
+  border-width: 5px 5px 0;
+  border-bottom-width: 0;
 }
-.pull-left {
-  float: left;
+.dropup .btn-lg .caret {
+  border-width: 0 5px 5px;
 }
-.fa.pull-left {
-  margin-right: .3em;
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group,
+.btn-group-vertical > .btn-group > .btn {
+  display: block;
+  float: none;
+  width: 100%;
+  max-width: 100%;
 }
-.fa.pull-right {
-  margin-left: .3em;
+.btn-group-vertical > .btn-group > .btn {
+  float: none;
 }
-.fa-spin {
-  -webkit-animation: spin 2s infinite linear;
-  -moz-animation: spin 2s infinite linear;
-  -o-animation: spin 2s infinite linear;
-  animation: spin 2s infinite linear;
+.btn-group-vertical > .btn + .btn,
+.btn-group-vertical > .btn + .btn-group,
+.btn-group-vertical > .btn-group + .btn,
+.btn-group-vertical > .btn-group + .btn-group {
+  margin-top: -1px;
+  margin-left: 0;
 }
-@-moz-keyframes spin {
-  0% {
-    -moz-transform: rotate(0deg);
-  }
-  100% {
-    -moz-transform: rotate(359deg);
-  }
+.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+  border-radius: 0;
 }
-@-webkit-keyframes spin {
-  0% {
-    -webkit-transform: rotate(0deg);
-  }
-  100% {
-    -webkit-transform: rotate(359deg);
-  }
+.btn-group-vertical > .btn:first-child:not(:last-child) {
+  border-top-right-radius: 6px;
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
 }
-@-o-keyframes spin {
-  0% {
-    -o-transform: rotate(0deg);
-  }
-  100% {
-    -o-transform: rotate(359deg);
-  }
+.btn-group-vertical > .btn:last-child:not(:first-child) {
+  border-bottom-left-radius: 6px;
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
 }
-@keyframes spin {
-  0% {
-    -webkit-transform: rotate(0deg);
-    transform: rotate(0deg);
-  }
-  100% {
-    -webkit-transform: rotate(359deg);
-    transform: rotate(359deg);
-  }
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+  border-radius: 0;
 }
-.fa-rotate-90 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-  -webkit-transform: rotate(90deg);
-  -moz-transform: rotate(90deg);
-  -ms-transform: rotate(90deg);
-  -o-transform: rotate(90deg);
-  transform: rotate(90deg);
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
 }
-.fa-rotate-180 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-  -webkit-transform: rotate(180deg);
-  -moz-transform: rotate(180deg);
-  -ms-transform: rotate(180deg);
-  -o-transform: rotate(180deg);
-  transform: rotate(180deg);
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
 }
-.fa-rotate-270 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-  -webkit-transform: rotate(270deg);
-  -moz-transform: rotate(270deg);
-  -ms-transform: rotate(270deg);
-  -o-transform: rotate(270deg);
-  transform: rotate(270deg);
+.btn-group-justified {
+  display: table;
+  width: 100%;
+  table-layout: fixed;
+  border-collapse: separate;
 }
-.fa-flip-horizontal {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
-  -webkit-transform: scale(-1, 1);
-  -moz-transform: scale(-1, 1);
-  -ms-transform: scale(-1, 1);
-  -o-transform: scale(-1, 1);
-  transform: scale(-1, 1);
+.btn-group-justified > .btn,
+.btn-group-justified > .btn-group {
+  float: none;
+  display: table-cell;
+  width: 1%;
 }
-.fa-flip-vertical {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
-  -webkit-transform: scale(1, -1);
-  -moz-transform: scale(1, -1);
-  -ms-transform: scale(1, -1);
-  -o-transform: scale(1, -1);
-  transform: scale(1, -1);
+.btn-group-justified > .btn-group .btn {
+  width: 100%;
 }
-.fa-stack {
-  position: relative;
-  display: inline-block;
-  width: 2em;
-  height: 2em;
-  line-height: 2em;
-  vertical-align: middle;
+.btn-group-justified > .btn-group .dropdown-menu {
+  left: auto;
 }
-.fa-stack-1x,
-.fa-stack-2x {
+[data-toggle="buttons"] > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn input[type="checkbox"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
   position: absolute;
-  left: 0;
-  width: 100%;
-  text-align: center;
+  clip: rect(0, 0, 0, 0);
+  pointer-events: none;
 }
-.fa-stack-1x {
-  line-height: inherit;
+.input-group {
+  position: relative;
+  display: table;
+  border-collapse: separate;
 }
-.fa-stack-2x {
-  font-size: 2em;
+.input-group[class*="col-"] {
+  float: none;
+  padding-left: 0;
+  padding-right: 0;
 }
-.fa-inverse {
-  color: #ffffff;
+.input-group .form-control {
+  position: relative;
+  z-index: 2;
+  float: left;
+  width: 100%;
+  margin-bottom: 0;
 }
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
-   readers do not read off random characters that represent icons */
-.fa-glass:before {
-  content: "\f000";
+.input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+  height: 49px;
+  padding: 10px 16px;
+  font-size: 20px;
+  line-height: 1.3333333;
+  border-radius: 8px;
 }
-.fa-music:before {
-  content: "\f001";
+select.input-group-lg > .form-control,
+select.input-group-lg > .input-group-addon,
+select.input-group-lg > .input-group-btn > .btn {
+  height: 49px;
+  line-height: 49px;
 }
-.fa-search:before {
-  content: "\f002";
+textarea.input-group-lg > .form-control,
+textarea.input-group-lg > .input-group-addon,
+textarea.input-group-lg > .input-group-btn > .btn,
+select[multiple].input-group-lg > .form-control,
+select[multiple].input-group-lg > .input-group-addon,
+select[multiple].input-group-lg > .input-group-btn > .btn {
+  height: auto;
 }
-.fa-envelope-o:before {
-  content: "\f003";
+.input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+  height: 33px;
+  padding: 5px 10px;
+  font-size: 14px;
+  line-height: 1.5;
+  border-radius: 4px;
 }
-.fa-heart:before {
-  content: "\f004";
+select.input-group-sm > .form-control,
+select.input-group-sm > .input-group-addon,
+select.input-group-sm > .input-group-btn > .btn {
+  height: 33px;
+  line-height: 33px;
 }
-.fa-star:before {
-  content: "\f005";
+textarea.input-group-sm > .form-control,
+textarea.input-group-sm > .input-group-addon,
+textarea.input-group-sm > .input-group-btn > .btn,
+select[multiple].input-group-sm > .form-control,
+select[multiple].input-group-sm > .input-group-addon,
+select[multiple].input-group-sm > .input-group-btn > .btn {
+  height: auto;
 }
-.fa-star-o:before {
-  content: "\f006";
+.input-group-addon,
+.input-group-btn,
+.input-group .form-control {
+  display: table-cell;
 }
-.fa-user:before {
-  content: "\f007";
+.input-group-addon:not(:first-child):not(:last-child),
+.input-group-btn:not(:first-child):not(:last-child),
+.input-group .form-control:not(:first-child):not(:last-child) {
+  border-radius: 0;
 }
-.fa-film:before {
-  content: "\f008";
+.input-group-addon,
+.input-group-btn {
+  width: 1%;
+  white-space: nowrap;
+  vertical-align: middle;
 }
-.fa-th-large:before {
-  content: "\f009";
+.input-group-addon {
+  padding: 6px 12px;
+  font-size: 16px;
+  font-weight: normal;
+  line-height: 1;
+  color: #555555;
+  text-align: center;
+  background-color: #eeeeee;
+  border: 1px solid #cccccc;
+  border-radius: 6px;
 }
-.fa-th:before {
-  content: "\f00a";
+.input-group-addon.input-sm {
+  padding: 5px 10px;
+  font-size: 14px;
+  border-radius: 4px;
 }
-.fa-th-list:before {
-  content: "\f00b";
+.input-group-addon.input-lg {
+  padding: 10px 16px;
+  font-size: 20px;
+  border-radius: 8px;
 }
-.fa-check:before {
-  content: "\f00c";
+.input-group-addon input[type="radio"],
+.input-group-addon input[type="checkbox"] {
+  margin-top: 0;
 }
-.fa-times:before {
-  content: "\f00d";
+.input-group .form-control:first-child,
+.input-group-addon:first-child,
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group > .btn,
+.input-group-btn:first-child > .dropdown-toggle,
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+  border-bottom-right-radius: 0;
+  border-top-right-radius: 0;
 }
-.fa-search-plus:before {
-  content: "\f00e";
+.input-group-addon:first-child {
+  border-right: 0;
 }
-.fa-search-minus:before {
-  content: "\f010";
+.input-group .form-control:last-child,
+.input-group-addon:last-child,
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group > .btn,
+.input-group-btn:last-child > .dropdown-toggle,
+.input-group-btn:first-child > .btn:not(:first-child),
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+  border-bottom-left-radius: 0;
+  border-top-left-radius: 0;
 }
-.fa-power-off:before {
-  content: "\f011";
+.input-group-addon:last-child {
+  border-left: 0;
 }
-.fa-signal:before {
-  content: "\f012";
+.input-group-btn {
+  position: relative;
+  font-size: 0;
+  white-space: nowrap;
 }
-.fa-gear:before,
-.fa-cog:before {
-  content: "\f013";
+.input-group-btn > .btn {
+  position: relative;
 }
-.fa-trash-o:before {
-  content: "\f014";
+.input-group-btn > .btn + .btn {
+  margin-left: -1px;
 }
-.fa-home:before {
-  content: "\f015";
+.input-group-btn > .btn:hover,
+.input-group-btn > .btn:focus,
+.input-group-btn > .btn:active {
+  z-index: 2;
 }
-.fa-file-o:before {
-  content: "\f016";
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group {
+  margin-right: -1px;
 }
-.fa-clock-o:before {
-  content: "\f017";
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group {
+  z-index: 2;
+  margin-left: -1px;
 }
-.fa-road:before {
-  content: "\f018";
+.nav {
+  margin-bottom: 0;
+  padding-left: 0;
+  list-style: none;
 }
-.fa-download:before {
-  content: "\f019";
+.nav > li {
+  position: relative;
+  display: block;
 }
-.fa-arrow-circle-o-down:before {
-  content: "\f01a";
+.nav > li > a {
+  position: relative;
+  display: block;
+  padding: 10px 15px;
 }
-.fa-arrow-circle-o-up:before {
-  content: "\f01b";
+.nav > li > a:hover,
+.nav > li > a:focus {
+  text-decoration: none;
+  background-color: #eeeeee;
 }
-.fa-inbox:before {
-  content: "\f01c";
+.nav > li.disabled > a {
+  color: #777777;
 }
-.fa-play-circle-o:before {
-  content: "\f01d";
+.nav > li.disabled > a:hover,
+.nav > li.disabled > a:focus {
+  color: #777777;
+  text-decoration: none;
+  background-color: transparent;
+  cursor: not-allowed;
 }
-.fa-rotate-right:before,
-.fa-repeat:before {
-  content: "\f01e";
+.nav .open > a,
+.nav .open > a:hover,
+.nav .open > a:focus {
+  background-color: #eeeeee;
+  border-color: #419ae7;
 }
-.fa-refresh:before {
-  content: "\f021";
+.nav .nav-divider {
+  height: 1px;
+  margin: 10px 0;
+  overflow: hidden;
+  background-color: #e5e5e5;
 }
-.fa-list-alt:before {
-  content: "\f022";
+.nav > li > a > img {
+  max-width: none;
 }
-.fa-lock:before {
-  content: "\f023";
+.nav-tabs {
+  border-bottom: 1px solid #dddddd;
 }
-.fa-flag:before {
-  content: "\f024";
+.nav-tabs > li {
+  float: left;
+  margin-bottom: -1px;
 }
-.fa-headphones:before {
-  content: "\f025";
+.nav-tabs > li > a {
+  margin-right: 2px;
+  line-height: 1.42857143;
+  border: 1px solid transparent;
+  border-radius: 6px 6px 0 0;
 }
-.fa-volume-off:before {
-  content: "\f026";
+.nav-tabs > li > a:hover {
+  border-color: #eeeeee #eeeeee #dddddd;
 }
-.fa-volume-down:before {
-  content: "\f027";
+.nav-tabs > li.active > a,
+.nav-tabs > li.active > a:hover,
+.nav-tabs > li.active > a:focus {
+  color: #555555;
+  background-color: #f7f7f7;
+  border: 1px solid #dddddd;
+  border-bottom-color: transparent;
+  cursor: default;
 }
-.fa-volume-up:before {
-  content: "\f028";
+.nav-tabs.nav-justified {
+  width: 100%;
+  border-bottom: 0;
 }
-.fa-qrcode:before {
-  content: "\f029";
+.nav-tabs.nav-justified > li {
+  float: none;
 }
-.fa-barcode:before {
-  content: "\f02a";
+.nav-tabs.nav-justified > li > a {
+  text-align: center;
+  margin-bottom: 5px;
 }
-.fa-tag:before {
-  content: "\f02b";
+.nav-tabs.nav-justified > .dropdown .dropdown-menu {
+  top: auto;
+  left: auto;
 }
-.fa-tags:before {
-  content: "\f02c";
+@media (min-width: 768px) {
+  .nav-tabs.nav-justified > li {
+    display: table-cell;
+    width: 1%;
+  }
+  .nav-tabs.nav-justified > li > a {
+    margin-bottom: 0;
+  }
 }
-.fa-book:before {
-  content: "\f02d";
+.nav-tabs.nav-justified > li > a {
+  margin-right: 0;
+  border-radius: 6px;
 }
-.fa-bookmark:before {
-  content: "\f02e";
+.nav-tabs.nav-justified > .active > a,
+.nav-tabs.nav-justified > .active > a:hover,
+.nav-tabs.nav-justified > .active > a:focus {
+  border: 1px solid #dddddd;
 }
-.fa-print:before {
-  content: "\f02f";
+@media (min-width: 768px) {
+  .nav-tabs.nav-justified > li > a {
+    border-bottom: 1px solid #dddddd;
+    border-radius: 6px 6px 0 0;
+  }
+  .nav-tabs.nav-justified > .active > a,
+  .nav-tabs.nav-justified > .active > a:hover,
+  .nav-tabs.nav-justified > .active > a:focus {
+    border-bottom-color: #f7f7f7;
+  }
 }
-.fa-camera:before {
-  content: "\f030";
+.nav-pills > li {
+  float: left;
 }
-.fa-font:before {
-  content: "\f031";
+.nav-pills > li > a {
+  border-radius: 6px;
 }
-.fa-bold:before {
-  content: "\f032";
+.nav-pills > li + li {
+  margin-left: 2px;
 }
-.fa-italic:before {
-  content: "\f033";
+.nav-pills > li.active > a,
+.nav-pills > li.active > a:hover,
+.nav-pills > li.active > a:focus {
+  color: #ffffff;
+  background-color: #419ae7;
 }
-.fa-text-height:before {
-  content: "\f034";
+.nav-stacked > li {
+  float: none;
 }
-.fa-text-width:before {
-  content: "\f035";
+.nav-stacked > li + li {
+  margin-top: 2px;
+  margin-left: 0;
 }
-.fa-align-left:before {
-  content: "\f036";
+.nav-justified {
+  width: 100%;
 }
-.fa-align-center:before {
-  content: "\f037";
+.nav-justified > li {
+  float: none;
 }
-.fa-align-right:before {
-  content: "\f038";
+.nav-justified > li > a {
+  text-align: center;
+  margin-bottom: 5px;
 }
-.fa-align-justify:before {
-  content: "\f039";
+.nav-justified > .dropdown .dropdown-menu {
+  top: auto;
+  left: auto;
 }
-.fa-list:before {
-  content: "\f03a";
+@media (min-width: 768px) {
+  .nav-justified > li {
+    display: table-cell;
+    width: 1%;
+  }
+  .nav-justified > li > a {
+    margin-bottom: 0;
+  }
 }
-.fa-dedent:before,
-.fa-outdent:before {
-  content: "\f03b";
+.nav-tabs-justified {
+  border-bottom: 0;
+}
+.nav-tabs-justified > li > a {
+  margin-right: 0;
+  border-radius: 6px;
 }
-.fa-indent:before {
-  content: "\f03c";
+.nav-tabs-justified > .active > a,
+.nav-tabs-justified > .active > a:hover,
+.nav-tabs-justified > .active > a:focus {
+  border: 1px solid #dddddd;
 }
-.fa-video-camera:before {
-  content: "\f03d";
+@media (min-width: 768px) {
+  .nav-tabs-justified > li > a {
+    border-bottom: 1px solid #dddddd;
+    border-radius: 6px 6px 0 0;
+  }
+  .nav-tabs-justified > .active > a,
+  .nav-tabs-justified > .active > a:hover,
+  .nav-tabs-justified > .active > a:focus {
+    border-bottom-color: #f7f7f7;
+  }
 }
-.fa-photo:before,
-.fa-image:before,
-.fa-picture-o:before {
-  content: "\f03e";
+.tab-content > .tab-pane {
+  display: none;
 }
-.fa-pencil:before {
-  content: "\f040";
+.tab-content > .active {
+  display: block;
 }
-.fa-map-marker:before {
-  content: "\f041";
+.nav-tabs .dropdown-menu {
+  margin-top: -1px;
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
 }
-.fa-adjust:before {
-  content: "\f042";
+.navbar {
+  position: relative;
+  min-height: 50px;
+  margin-bottom: 22px;
+  border: 1px solid transparent;
 }
-.fa-tint:before {
-  content: "\f043";
+@media (min-width: 768px) {
+  .navbar {
+    border-radius: 6px;
+  }
 }
-.fa-edit:before,
-.fa-pencil-square-o:before {
-  content: "\f044";
+@media (min-width: 768px) {
+  .navbar-header {
+    float: left;
+  }
 }
-.fa-share-square-o:before {
-  content: "\f045";
+.navbar-collapse {
+  overflow-x: visible;
+  padding-right: 15px;
+  padding-left: 15px;
+  border-top: 1px solid transparent;
+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+  -webkit-overflow-scrolling: touch;
 }
-.fa-check-square-o:before {
-  content: "\f046";
+.navbar-collapse.in {
+  overflow-y: auto;
 }
-.fa-arrows:before {
-  content: "\f047";
+@media (min-width: 768px) {
+  .navbar-collapse {
+    width: auto;
+    border-top: 0;
+    box-shadow: none;
+  }
+  .navbar-collapse.collapse {
+    display: block !important;
+    height: auto !important;
+    padding-bottom: 0;
+    overflow: visible !important;
+  }
+  .navbar-collapse.in {
+    overflow-y: visible;
+  }
+  .navbar-fixed-top .navbar-collapse,
+  .navbar-static-top .navbar-collapse,
+  .navbar-fixed-bottom .navbar-collapse {
+    padding-left: 0;
+    padding-right: 0;
+  }
 }
-.fa-step-backward:before {
-  content: "\f048";
+.navbar-fixed-top .navbar-collapse,
+.navbar-fixed-bottom .navbar-collapse {
+  max-height: 340px;
 }
-.fa-fast-backward:before {
-  content: "\f049";
+@media (max-device-width: 480px) and (orientation: landscape) {
+  .navbar-fixed-top .navbar-collapse,
+  .navbar-fixed-bottom .navbar-collapse {
+    max-height: 200px;
+  }
 }
-.fa-backward:before {
-  content: "\f04a";
+.container > .navbar-header,
+.container-fluid > .navbar-header,
+.container > .navbar-collapse,
+.container-fluid > .navbar-collapse {
+  margin-right: -15px;
+  margin-left: -15px;
 }
-.fa-play:before {
-  content: "\f04b";
+@media (min-width: 768px) {
+  .container > .navbar-header,
+  .container-fluid > .navbar-header,
+  .container > .navbar-collapse,
+  .container-fluid > .navbar-collapse {
+    margin-right: 0;
+    margin-left: 0;
+  }
 }
-.fa-pause:before {
-  content: "\f04c";
+.navbar-static-top {
+  z-index: 1000;
+  border-width: 0 0 1px;
 }
-.fa-stop:before {
-  content: "\f04d";
+@media (min-width: 768px) {
+  .navbar-static-top {
+    border-radius: 0;
+  }
 }
-.fa-forward:before {
-  content: "\f04e";
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+  position: fixed;
+  right: 0;
+  left: 0;
+  z-index: 1030;
 }
-.fa-fast-forward:before {
-  content: "\f050";
+@media (min-width: 768px) {
+  .navbar-fixed-top,
+  .navbar-fixed-bottom {
+    border-radius: 0;
+  }
 }
-.fa-step-forward:before {
-  content: "\f051";
+.navbar-fixed-top {
+  top: 0;
+  border-width: 0 0 1px;
 }
-.fa-eject:before {
-  content: "\f052";
+.navbar-fixed-bottom {
+  bottom: 0;
+  margin-bottom: 0;
+  border-width: 1px 0 0;
 }
-.fa-chevron-left:before {
-  content: "\f053";
+.navbar-brand {
+  float: left;
+  padding: 14px 15px;
+  font-size: 20px;
+  line-height: 22px;
+  height: 50px;
 }
-.fa-chevron-right:before {
-  content: "\f054";
+.navbar-brand:hover,
+.navbar-brand:focus {
+  text-decoration: none;
 }
-.fa-plus-circle:before {
-  content: "\f055";
+.navbar-brand > img {
+  display: block;
 }
-.fa-minus-circle:before {
-  content: "\f056";
+@media (min-width: 768px) {
+  .navbar > .container .navbar-brand,
+  .navbar > .container-fluid .navbar-brand {
+    margin-left: -15px;
+  }
 }
-.fa-times-circle:before {
-  content: "\f057";
+.navbar-toggle {
+  position: relative;
+  float: right;
+  margin-right: 15px;
+  padding: 9px 10px;
+  margin-top: 8px;
+  margin-bottom: 8px;
+  background-color: transparent;
+  background-image: none;
+  border: 1px solid transparent;
+  border-radius: 6px;
 }
-.fa-check-circle:before {
-  content: "\f058";
+.navbar-toggle:focus {
+  outline: 0;
 }
-.fa-question-circle:before {
-  content: "\f059";
+.navbar-toggle .icon-bar {
+  display: block;
+  width: 22px;
+  height: 2px;
+  border-radius: 1px;
 }
-.fa-info-circle:before {
-  content: "\f05a";
+.navbar-toggle .icon-bar + .icon-bar {
+  margin-top: 4px;
 }
-.fa-crosshairs:before {
-  content: "\f05b";
+@media (min-width: 768px) {
+  .navbar-toggle {
+    display: none;
+  }
 }
-.fa-times-circle-o:before {
-  content: "\f05c";
+.navbar-nav {
+  margin: 7px -15px;
 }
-.fa-check-circle-o:before {
-  content: "\f05d";
+.navbar-nav > li > a {
+  padding-top: 10px;
+  padding-bottom: 10px;
+  line-height: 22px;
 }
-.fa-ban:before {
-  content: "\f05e";
+@media (max-width: 767px) {
+  .navbar-nav .open .dropdown-menu {
+    position: static;
+    float: none;
+    width: auto;
+    margin-top: 0;
+    background-color: transparent;
+    border: 0;
+    box-shadow: none;
+  }
+  .navbar-nav .open .dropdown-menu > li > a,
+  .navbar-nav .open .dropdown-menu .dropdown-header {
+    padding: 5px 15px 5px 25px;
+  }
+  .navbar-nav .open .dropdown-menu > li > a {
+    line-height: 22px;
+  }
+  .navbar-nav .open .dropdown-menu > li > a:hover,
+  .navbar-nav .open .dropdown-menu > li > a:focus {
+    background-image: none;
+  }
 }
-.fa-arrow-left:before {
-  content: "\f060";
+@media (min-width: 768px) {
+  .navbar-nav {
+    float: left;
+    margin: 0;
+  }
+  .navbar-nav > li {
+    float: left;
+  }
+  .navbar-nav > li > a {
+    padding-top: 14px;
+    padding-bottom: 14px;
+  }
 }
-.fa-arrow-right:before {
-  content: "\f061";
+.navbar-form {
+  margin-left: -15px;
+  margin-right: -15px;
+  padding: 10px 15px;
+  border-top: 1px solid transparent;
+  border-bottom: 1px solid transparent;
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+  margin-top: 6px;
+  margin-bottom: 6px;
+}
+@media (min-width: 768px) {
+  .navbar-form .form-group {
+    display: inline-block;
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .navbar-form .form-control {
+    display: inline-block;
+    width: auto;
+    vertical-align: middle;
+  }
+  .navbar-form .form-control-static {
+    display: inline-block;
+  }
+  .navbar-form .input-group {
+    display: inline-table;
+    vertical-align: middle;
+  }
+  .navbar-form .input-group .input-group-addon,
+  .navbar-form .input-group .input-group-btn,
+  .navbar-form .input-group .form-control {
+    width: auto;
+  }
+  .navbar-form .input-group > .form-control {
+    width: 100%;
+  }
+  .navbar-form .control-label {
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .navbar-form .radio,
+  .navbar-form .checkbox {
+    display: inline-block;
+    margin-top: 0;
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .navbar-form .radio label,
+  .navbar-form .checkbox label {
+    padding-left: 0;
+  }
+  .navbar-form .radio input[type="radio"],
+  .navbar-form .checkbox input[type="checkbox"] {
+    position: relative;
+    margin-left: 0;
+  }
+  .navbar-form .has-feedback .form-control-feedback {
+    top: 0;
+  }
 }
-.fa-arrow-up:before {
-  content: "\f062";
+@media (max-width: 767px) {
+  .navbar-form .form-group {
+    margin-bottom: 5px;
+  }
+  .navbar-form .form-group:last-child {
+    margin-bottom: 0;
+  }
 }
-.fa-arrow-down:before {
-  content: "\f063";
+@media (min-width: 768px) {
+  .navbar-form {
+    width: auto;
+    border: 0;
+    margin-left: 0;
+    margin-right: 0;
+    padding-top: 0;
+    padding-bottom: 0;
+    -webkit-box-shadow: none;
+    box-shadow: none;
+  }
 }
-.fa-mail-forward:before,
-.fa-share:before {
-  content: "\f064";
+.navbar-nav > li > .dropdown-menu {
+  margin-top: 0;
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
 }
-.fa-expand:before {
-  content: "\f065";
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+  margin-bottom: 0;
+  border-top-right-radius: 6px;
+  border-top-left-radius: 6px;
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
 }
-.fa-compress:before {
-  content: "\f066";
+.navbar-btn {
+  margin-top: 6px;
+  margin-bottom: 6px;
 }
-.fa-plus:before {
-  content: "\f067";
+.navbar-btn.btn-sm {
+  margin-top: 8.5px;
+  margin-bottom: 8.5px;
 }
-.fa-minus:before {
-  content: "\f068";
+.navbar-btn.btn-xs {
+  margin-top: 14px;
+  margin-bottom: 14px;
 }
-.fa-asterisk:before {
-  content: "\f069";
+.navbar-text {
+  margin-top: 14px;
+  margin-bottom: 14px;
 }
-.fa-exclamation-circle:before {
-  content: "\f06a";
+@media (min-width: 768px) {
+  .navbar-text {
+    float: left;
+    margin-left: 15px;
+    margin-right: 15px;
+  }
 }
-.fa-gift:before {
-  content: "\f06b";
+@media (min-width: 768px) {
+  .navbar-left {
+    float: left;
+    float: left !important;
+  }
+  .navbar-right {
+    float: right;
+    float: right !important;
+    margin-right: -15px;
+  }
+  .navbar-right ~ .navbar-right {
+    margin-right: 0;
+  }
 }
-.fa-leaf:before {
-  content: "\f06c";
+.navbar-default {
+  background-color: #f8f8f8;
+  border-color: #e7e7e7;
 }
-.fa-fire:before {
-  content: "\f06d";
+.navbar-default .navbar-brand {
+  color: #f7f7f7;
 }
-.fa-eye:before {
-  content: "\f06e";
+.navbar-default .navbar-brand:hover,
+.navbar-default .navbar-brand:focus {
+  color: #dedede;
+  background-color: transparent;
 }
-.fa-eye-slash:before {
-  content: "\f070";
+.navbar-default .navbar-text {
+  color: #777777;
 }
-.fa-warning:before,
-.fa-exclamation-triangle:before {
-  content: "\f071";
+.navbar-default .navbar-nav > li > a {
+  color: #f7f7f7;
 }
-.fa-plane:before {
-  content: "\f072";
+.navbar-default .navbar-nav > li > a:hover,
+.navbar-default .navbar-nav > li > a:focus {
+  color: #f7f7f7;
+  background-color: #1db1ee;
 }
-.fa-calendar:before {
-  content: "\f073";
+.navbar-default .navbar-nav > .active > a,
+.navbar-default .navbar-nav > .active > a:hover,
+.navbar-default .navbar-nav > .active > a:focus {
+  color: #1db1ee;
+  background-color: #f7f7f7;
 }
-.fa-random:before {
-  content: "\f074";
+.navbar-default .navbar-nav > .disabled > a,
+.navbar-default .navbar-nav > .disabled > a:hover,
+.navbar-default .navbar-nav > .disabled > a:focus {
+  color: #cccccc;
+  background-color: transparent;
 }
-.fa-comment:before {
-  content: "\f075";
+.navbar-default .navbar-toggle {
+  border-color: #dddddd;
 }
-.fa-magnet:before {
-  content: "\f076";
+.navbar-default .navbar-toggle:hover,
+.navbar-default .navbar-toggle:focus {
+  background-color: #dddddd;
 }
-.fa-chevron-up:before {
-  content: "\f077";
+.navbar-default .navbar-toggle .icon-bar {
+  background-color: #888888;
 }
-.fa-chevron-down:before {
-  content: "\f078";
+.navbar-default .navbar-collapse,
+.navbar-default .navbar-form {
+  border-color: #e7e7e7;
 }
-.fa-retweet:before {
-  content: "\f079";
+.navbar-default .navbar-nav > .open > a,
+.navbar-default .navbar-nav > .open > a:hover,
+.navbar-default .navbar-nav > .open > a:focus {
+  background-color: #f7f7f7;
+  color: #1db1ee;
 }
-.fa-shopping-cart:before {
-  content: "\f07a";
+@media (max-width: 767px) {
+  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+    color: #f7f7f7;
+  }
+  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
+  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+    color: #f7f7f7;
+    background-color: #1db1ee;
+  }
+  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
+  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
+  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
+    color: #1db1ee;
+    background-color: #f7f7f7;
+  }
+  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
+  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+    color: #cccccc;
+    background-color: transparent;
+  }
 }
-.fa-folder:before {
-  content: "\f07b";
+.navbar-default .navbar-link {
+  color: #f7f7f7;
 }
-.fa-folder-open:before {
-  content: "\f07c";
+.navbar-default .navbar-link:hover {
+  color: #f7f7f7;
 }
-.fa-arrows-v:before {
-  content: "\f07d";
+.navbar-default .btn-link {
+  color: #f7f7f7;
 }
-.fa-arrows-h:before {
-  content: "\f07e";
+.navbar-default .btn-link:hover,
+.navbar-default .btn-link:focus {
+  color: #f7f7f7;
 }
-.fa-bar-chart-o:before {
-  content: "\f080";
+.navbar-default .btn-link[disabled]:hover,
+fieldset[disabled] .navbar-default .btn-link:hover,
+.navbar-default .btn-link[disabled]:focus,
+fieldset[disabled] .navbar-default .btn-link:focus {
+  color: #cccccc;
 }
-.fa-twitter-square:before {
-  content: "\f081";
+.navbar-inverse {
+  background-color: #222222;
+  border-color: #080808;
 }
-.fa-facebook-square:before {
-  content: "\f082";
+.navbar-inverse .navbar-brand {
+  color: #9d9d9d;
 }
-.fa-camera-retro:before {
-  content: "\f083";
+.navbar-inverse .navbar-brand:hover,
+.navbar-inverse .navbar-brand:focus {
+  color: #ffffff;
+  background-color: transparent;
 }
-.fa-key:before {
-  content: "\f084";
+.navbar-inverse .navbar-text {
+  color: #9d9d9d;
 }
-.fa-gears:before,
-.fa-cogs:before {
-  content: "\f085";
+.navbar-inverse .navbar-nav > li > a {
+  color: #9d9d9d;
 }
-.fa-comments:before {
-  content: "\f086";
+.navbar-inverse .navbar-nav > li > a:hover,
+.navbar-inverse .navbar-nav > li > a:focus {
+  color: #ffffff;
+  background-color: transparent;
 }
-.fa-thumbs-o-up:before {
-  content: "\f087";
+.navbar-inverse .navbar-nav > .active > a,
+.navbar-inverse .navbar-nav > .active > a:hover,
+.navbar-inverse .navbar-nav > .active > a:focus {
+  color: #ffffff;
+  background-color: #080808;
 }
-.fa-thumbs-o-down:before {
-  content: "\f088";
+.navbar-inverse .navbar-nav > .disabled > a,
+.navbar-inverse .navbar-nav > .disabled > a:hover,
+.navbar-inverse .navbar-nav > .disabled > a:focus {
+  color: #444444;
+  background-color: transparent;
 }
-.fa-star-half:before {
-  content: "\f089";
+.navbar-inverse .navbar-toggle {
+  border-color: #333333;
 }
-.fa-heart-o:before {
-  content: "\f08a";
+.navbar-inverse .navbar-toggle:hover,
+.navbar-inverse .navbar-toggle:focus {
+  background-color: #333333;
 }
-.fa-sign-out:before {
-  content: "\f08b";
+.navbar-inverse .navbar-toggle .icon-bar {
+  background-color: #ffffff;
 }
-.fa-linkedin-square:before {
-  content: "\f08c";
+.navbar-inverse .navbar-collapse,
+.navbar-inverse .navbar-form {
+  border-color: #101010;
 }
-.fa-thumb-tack:before {
-  content: "\f08d";
+.navbar-inverse .navbar-nav > .open > a,
+.navbar-inverse .navbar-nav > .open > a:hover,
+.navbar-inverse .navbar-nav > .open > a:focus {
+  background-color: #080808;
+  color: #ffffff;
 }
-.fa-external-link:before {
-  content: "\f08e";
+@media (max-width: 767px) {
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+    border-color: #080808;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
+    background-color: #080808;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
+    color: #9d9d9d;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
+    color: #ffffff;
+    background-color: transparent;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
+    color: #ffffff;
+    background-color: #080808;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+    color: #444444;
+    background-color: transparent;
+  }
 }
-.fa-sign-in:before {
-  content: "\f090";
+.navbar-inverse .navbar-link {
+  color: #9d9d9d;
 }
-.fa-trophy:before {
-  content: "\f091";
+.navbar-inverse .navbar-link:hover {
+  color: #ffffff;
 }
-.fa-github-square:before {
-  content: "\f092";
+.navbar-inverse .btn-link {
+  color: #9d9d9d;
 }
-.fa-upload:before {
-  content: "\f093";
+.navbar-inverse .btn-link:hover,
+.navbar-inverse .btn-link:focus {
+  color: #ffffff;
 }
-.fa-lemon-o:before {
-  content: "\f094";
+.navbar-inverse .btn-link[disabled]:hover,
+fieldset[disabled] .navbar-inverse .btn-link:hover,
+.navbar-inverse .btn-link[disabled]:focus,
+fieldset[disabled] .navbar-inverse .btn-link:focus {
+  color: #444444;
 }
-.fa-phone:before {
-  content: "\f095";
+.breadcrumb {
+  padding: 8px 15px;
+  margin-bottom: 22px;
+  list-style: none;
+  background-color: #f5f5f5;
+  border-radius: 6px;
 }
-.fa-square-o:before {
-  content: "\f096";
+.breadcrumb > li {
+  display: inline-block;
 }
-.fa-bookmark-o:before {
-  content: "\f097";
+.breadcrumb > li + li:before {
+  content: "/\00a0";
+  padding: 0 5px;
+  color: #cccccc;
 }
-.fa-phone-square:before {
-  content: "\f098";
+.breadcrumb > .active {
+  color: #777777;
 }
-.fa-twitter:before {
-  content: "\f099";
+.pagination {
+  display: inline-block;
+  padding-left: 0;
+  margin: 22px 0;
+  border-radius: 6px;
 }
-.fa-facebook:before {
-  content: "\f09a";
+.pagination > li {
+  display: inline;
 }
-.fa-github:before {
-  content: "\f09b";
+.pagination > li > a,
+.pagination > li > span {
+  position: relative;
+  float: left;
+  padding: 6px 12px;
+  line-height: 1.42857143;
+  text-decoration: none;
+  color: #419ae7;
+  background-color: #ffffff;
+  border: 1px solid #dddddd;
+  margin-left: -1px;
 }
-.fa-unlock:before {
-  content: "\f09c";
+.pagination > li:first-child > a,
+.pagination > li:first-child > span {
+  margin-left: 0;
+  border-bottom-left-radius: 6px;
+  border-top-left-radius: 6px;
 }
-.fa-credit-card:before {
-  content: "\f09d";
+.pagination > li:last-child > a,
+.pagination > li:last-child > span {
+  border-bottom-right-radius: 6px;
+  border-top-right-radius: 6px;
 }
-.fa-rss:before {
-  content: "\f09e";
+.pagination > li > a:hover,
+.pagination > li > span:hover,
+.pagination > li > a:focus,
+.pagination > li > span:focus {
+  z-index: 3;
+  color: #1874c4;
+  background-color: #eeeeee;
+  border-color: #dddddd;
 }
-.fa-hdd-o:before {
-  content: "\f0a0";
+.pagination > .active > a,
+.pagination > .active > span,
+.pagination > .active > a:hover,
+.pagination > .active > span:hover,
+.pagination > .active > a:focus,
+.pagination > .active > span:focus {
+  z-index: 2;
+  color: #ffffff;
+  background-color: #419ae7;
+  border-color: #419ae7;
+  cursor: default;
 }
-.fa-bullhorn:before {
-  content: "\f0a1";
+.pagination > .disabled > span,
+.pagination > .disabled > span:hover,
+.pagination > .disabled > span:focus,
+.pagination > .disabled > a,
+.pagination > .disabled > a:hover,
+.pagination > .disabled > a:focus {
+  color: #777777;
+  background-color: #ffffff;
+  border-color: #dddddd;
+  cursor: not-allowed;
 }
-.fa-bell:before {
-  content: "\f0f3";
+.pagination-lg > li > a,
+.pagination-lg > li > span {
+  padding: 10px 16px;
+  font-size: 20px;
+  line-height: 1.3333333;
 }
-.fa-certificate:before {
-  content: "\f0a3";
+.pagination-lg > li:first-child > a,
+.pagination-lg > li:first-child > span {
+  border-bottom-left-radius: 8px;
+  border-top-left-radius: 8px;
 }
-.fa-hand-o-right:before {
-  content: "\f0a4";
+.pagination-lg > li:last-child > a,
+.pagination-lg > li:last-child > span {
+  border-bottom-right-radius: 8px;
+  border-top-right-radius: 8px;
 }
-.fa-hand-o-left:before {
-  content: "\f0a5";
+.pagination-sm > li > a,
+.pagination-sm > li > span {
+  padding: 5px 10px;
+  font-size: 14px;
+  line-height: 1.5;
 }
-.fa-hand-o-up:before {
-  content: "\f0a6";
+.pagination-sm > li:first-child > a,
+.pagination-sm > li:first-child > span {
+  border-bottom-left-radius: 4px;
+  border-top-left-radius: 4px;
 }
-.fa-hand-o-down:before {
-  content: "\f0a7";
+.pagination-sm > li:last-child > a,
+.pagination-sm > li:last-child > span {
+  border-bottom-right-radius: 4px;
+  border-top-right-radius: 4px;
 }
-.fa-arrow-circle-left:before {
-  content: "\f0a8";
+.pager {
+  padding-left: 0;
+  margin: 22px 0;
+  list-style: none;
+  text-align: center;
 }
-.fa-arrow-circle-right:before {
-  content: "\f0a9";
+.pager li {
+  display: inline;
 }
-.fa-arrow-circle-up:before {
-  content: "\f0aa";
+.pager li > a,
+.pager li > span {
+  display: inline-block;
+  padding: 5px 14px;
+  background-color: #ffffff;
+  border: 1px solid #dddddd;
+  border-radius: 15px;
 }
-.fa-arrow-circle-down:before {
-  content: "\f0ab";
+.pager li > a:hover,
+.pager li > a:focus {
+  text-decoration: none;
+  background-color: #eeeeee;
 }
-.fa-globe:before {
-  content: "\f0ac";
+.pager .next > a,
+.pager .next > span {
+  float: right;
 }
-.fa-wrench:before {
-  content: "\f0ad";
+.pager .previous > a,
+.pager .previous > span {
+  float: left;
 }
-.fa-tasks:before {
-  content: "\f0ae";
+.pager .disabled > a,
+.pager .disabled > a:hover,
+.pager .disabled > a:focus,
+.pager .disabled > span {
+  color: #777777;
+  background-color: #ffffff;
+  cursor: not-allowed;
 }
-.fa-filter:before {
-  content: "\f0b0";
+.label {
+  display: inline;
+  padding: .2em .6em .3em;
+  font-size: 75%;
+  font-weight: bold;
+  line-height: 1;
+  color: #ffffff;
+  text-align: center;
+  white-space: nowrap;
+  vertical-align: baseline;
+  border-radius: .25em;
 }
-.fa-briefcase:before {
-  content: "\f0b1";
+a.label:hover,
+a.label:focus {
+  color: #ffffff;
+  text-decoration: none;
+  cursor: pointer;
 }
-.fa-arrows-alt:before {
-  content: "\f0b2";
+.label:empty {
+  display: none;
 }
-.fa-group:before,
-.fa-users:before {
-  content: "\f0c0";
+.btn .label {
+  position: relative;
+  top: -1px;
 }
-.fa-chain:before,
-.fa-link:before {
-  content: "\f0c1";
+.label-default {
+  background-color: #777777;
 }
-.fa-cloud:before {
-  content: "\f0c2";
+.label-default[href]:hover,
+.label-default[href]:focus {
+  background-color: #5e5e5e;
 }
-.fa-flask:before {
-  content: "\f0c3";
+.label-primary {
+  background-color: #419ae7;
 }
-.fa-cut:before,
-.fa-scissors:before {
-  content: "\f0c4";
+.label-primary[href]:hover,
+.label-primary[href]:focus {
+  background-color: #1b82da;
 }
-.fa-copy:before,
-.fa-files-o:before {
-  content: "\f0c5";
+.label-success {
+  background-color: #2dad2d;
 }
-.fa-paperclip:before {
-  content: "\f0c6";
+.label-success[href]:hover,
+.label-success[href]:focus {
+  background-color: #238423;
 }
-.fa-save:before,
-.fa-floppy-o:before {
-  content: "\f0c7";
+.label-info {
+  background-color: #41c1e7;
+}
+.label-info[href]:hover,
+.label-info[href]:focus {
+  background-color: #1bafda;
 }
-.fa-square:before {
-  content: "\f0c8";
+.label-warning {
+  background-color: #ea8f0d;
 }
-.fa-navicon:before,
-.fa-reorder:before,
-.fa-bars:before {
-  content: "\f0c9";
+.label-warning[href]:hover,
+.label-warning[href]:focus {
+  background-color: #ba710b;
 }
-.fa-list-ul:before {
-  content: "\f0ca";
+.label-danger {
+  background-color: #c42621;
 }
-.fa-list-ol:before {
-  content: "\f0cb";
+.label-danger[href]:hover,
+.label-danger[href]:focus {
+  background-color: #981d1a;
 }
-.fa-strikethrough:before {
-  content: "\f0cc";
+.badge {
+  display: inline-block;
+  min-width: 10px;
+  padding: 3px 7px;
+  font-size: 14px;
+  font-weight: bold;
+  color: #ffffff;
+  line-height: 1;
+  vertical-align: middle;
+  white-space: nowrap;
+  text-align: center;
+  background-color: #777777;
+  border-radius: 10px;
 }
-.fa-underline:before {
-  content: "\f0cd";
+.badge:empty {
+  display: none;
 }
-.fa-table:before {
-  content: "\f0ce";
+.btn .badge {
+  position: relative;
+  top: -1px;
 }
-.fa-magic:before {
-  content: "\f0d0";
+.btn-xs .badge,
+.btn-group-xs > .btn .badge {
+  top: 0;
+  padding: 1px 5px;
 }
-.fa-truck:before {
-  content: "\f0d1";
+a.badge:hover,
+a.badge:focus {
+  color: #ffffff;
+  text-decoration: none;
+  cursor: pointer;
 }
-.fa-pinterest:before {
-  content: "\f0d2";
+.list-group-item.active > .badge,
+.nav-pills > .active > a > .badge {
+  color: #419ae7;
+  background-color: #ffffff;
 }
-.fa-pinterest-square:before {
-  content: "\f0d3";
+.list-group-item > .badge {
+  float: right;
 }
-.fa-google-plus-square:before {
-  content: "\f0d4";
+.list-group-item > .badge + .badge {
+  margin-right: 5px;
 }
-.fa-google-plus:before {
-  content: "\f0d5";
+.nav-pills > li > a > .badge {
+  margin-left: 3px;
 }
-.fa-money:before {
-  content: "\f0d6";
+.jumbotron {
+  padding-top: 30px;
+  padding-bottom: 30px;
+  margin-bottom: 30px;
+  color: inherit;
+  background-color: #eeeeee;
 }
-.fa-caret-down:before {
-  content: "\f0d7";
+.jumbotron h1,
+.jumbotron .h1 {
+  color: inherit;
 }
-.fa-caret-up:before {
-  content: "\f0d8";
+.jumbotron p {
+  margin-bottom: 15px;
+  font-size: 24px;
+  font-weight: 200;
 }
-.fa-caret-left:before {
-  content: "\f0d9";
+.jumbotron > hr {
+  border-top-color: #d5d5d5;
 }
-.fa-caret-right:before {
-  content: "\f0da";
+.container .jumbotron,
+.container-fluid .jumbotron {
+  border-radius: 8px;
 }
-.fa-columns:before {
-  content: "\f0db";
+.jumbotron .container {
+  max-width: 100%;
 }
-.fa-unsorted:before,
-.fa-sort:before {
-  content: "\f0dc";
+@media screen and (min-width: 768px) {
+  .jumbotron {
+    padding-top: 48px;
+    padding-bottom: 48px;
+  }
+  .container .jumbotron,
+  .container-fluid .jumbotron {
+    padding-left: 60px;
+    padding-right: 60px;
+  }
+  .jumbotron h1,
+  .jumbotron .h1 {
+    font-size: 72px;
+  }
 }
-.fa-sort-down:before,
-.fa-sort-desc:before {
-  content: "\f0dd";
+.thumbnail {
+  display: block;
+  padding: 4px;
+  margin-bottom: 22px;
+  line-height: 1.42857143;
+  background-color: #f7f7f7;
+  border: 1px solid #dddddd;
+  border-radius: 6px;
+  -webkit-transition: border 0.2s ease-in-out;
+  -o-transition: border 0.2s ease-in-out;
+  transition: border 0.2s ease-in-out;
 }
-.fa-sort-up:before,
-.fa-sort-asc:before {
-  content: "\f0de";
+.thumbnail > img,
+.thumbnail a > img {
+  margin-left: auto;
+  margin-right: auto;
 }
-.fa-envelope:before {
-  content: "\f0e0";
+a.thumbnail:hover,
+a.thumbnail:focus,
+a.thumbnail.active {
+  border-color: #419ae7;
 }
-.fa-linkedin:before {
-  content: "\f0e1";
+.thumbnail .caption {
+  padding: 9px;
+  color: #333333;
 }
-.fa-rotate-left:before,
-.fa-undo:before {
-  content: "\f0e2";
+.alert {
+  padding: 15px;
+  margin-bottom: 22px;
+  border: 1px solid transparent;
+  border-radius: 6px;
 }
-.fa-legal:before,
-.fa-gavel:before {
-  content: "\f0e3";
+.alert h4 {
+  margin-top: 0;
+  color: inherit;
 }
-.fa-dashboard:before,
-.fa-tachometer:before {
-  content: "\f0e4";
+.alert .alert-link {
+  font-weight: bold;
 }
-.fa-comment-o:before {
-  content: "\f0e5";
+.alert > p,
+.alert > ul {
+  margin-bottom: 0;
 }
-.fa-comments-o:before {
-  content: "\f0e6";
+.alert > p + p {
+  margin-top: 5px;
 }
-.fa-flash:before,
-.fa-bolt:before {
-  content: "\f0e7";
+.alert-dismissable,
+.alert-dismissible {
+  padding-right: 35px;
 }
-.fa-sitemap:before {
-  content: "\f0e8";
+.alert-dismissable .close,
+.alert-dismissible .close {
+  position: relative;
+  top: -2px;
+  right: -21px;
+  color: inherit;
 }
-.fa-umbrella:before {
-  content: "\f0e9";
+.alert-success {
+  background-color: #dff0d8;
+  border-color: #d6e9c6;
+  color: #3c763d;
 }
-.fa-paste:before,
-.fa-clipboard:before {
-  content: "\f0ea";
+.alert-success hr {
+  border-top-color: #c9e2b3;
 }
-.fa-lightbulb-o:before {
-  content: "\f0eb";
+.alert-success .alert-link {
+  color: #2b542c;
 }
-.fa-exchange:before {
-  content: "\f0ec";
+.alert-info {
+  background-color: #d9edf7;
+  border-color: #bce8f1;
+  color: #31708f;
 }
-.fa-cloud-download:before {
-  content: "\f0ed";
+.alert-info hr {
+  border-top-color: #a6e1ec;
 }
-.fa-cloud-upload:before {
-  content: "\f0ee";
+.alert-info .alert-link {
+  color: #245269;
 }
-.fa-user-md:before {
-  content: "\f0f0";
+.alert-warning {
+  background-color: #fcf8e3;
+  border-color: #faebcc;
+  color: #8a6d3b;
 }
-.fa-stethoscope:before {
-  content: "\f0f1";
+.alert-warning hr {
+  border-top-color: #f7e1b5;
 }
-.fa-suitcase:before {
-  content: "\f0f2";
+.alert-warning .alert-link {
+  color: #66512c;
 }
-.fa-bell-o:before {
-  content: "\f0a2";
+.alert-danger {
+  background-color: #f2dede;
+  border-color: #ebccd1;
+  color: #a94442;
 }
-.fa-coffee:before {
-  content: "\f0f4";
+.alert-danger hr {
+  border-top-color: #e4b9c0;
 }
-.fa-cutlery:before {
-  content: "\f0f5";
+.alert-danger .alert-link {
+  color: #843534;
 }
-.fa-file-text-o:before {
-  content: "\f0f6";
+@-webkit-keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
 }
-.fa-building-o:before {
-  content: "\f0f7";
+@keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
 }
-.fa-hospital-o:before {
-  content: "\f0f8";
+.progress {
+  overflow: hidden;
+  height: 22px;
+  margin-bottom: 22px;
+  background-color: #f5f5f5;
+  border-radius: 6px;
+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
 }
-.fa-ambulance:before {
-  content: "\f0f9";
+.progress-bar {
+  float: left;
+  width: 0%;
+  height: 100%;
+  font-size: 14px;
+  line-height: 22px;
+  color: #ffffff;
+  text-align: center;
+  background-color: #419ae7;
+  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+  -webkit-transition: width 0.6s ease;
+  -o-transition: width 0.6s ease;
+  transition: width 0.6s ease;
 }
-.fa-medkit:before {
-  content: "\f0fa";
+.progress-striped .progress-bar,
+.progress-bar-striped {
+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-size: 40px 40px;
 }
-.fa-fighter-jet:before {
-  content: "\f0fb";
+.progress.active .progress-bar,
+.progress-bar.active {
+  -webkit-animation: progress-bar-stripes 2s linear infinite;
+  -o-animation: progress-bar-stripes 2s linear infinite;
+  animation: progress-bar-stripes 2s linear infinite;
 }
-.fa-beer:before {
-  content: "\f0fc";
+.progress-bar-success {
+  background-color: #2dad2d;
 }
-.fa-h-square:before {
-  content: "\f0fd";
+.progress-striped .progress-bar-success {
+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 }
-.fa-plus-square:before {
-  content: "\f0fe";
+.progress-bar-info {
+  background-color: #41c1e7;
 }
-.fa-angle-double-left:before {
-  content: "\f100";
+.progress-striped .progress-bar-info {
+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 }
-.fa-angle-double-right:before {
-  content: "\f101";
+.progress-bar-warning {
+  background-color: #ea8f0d;
 }
-.fa-angle-double-up:before {
-  content: "\f102";
+.progress-striped .progress-bar-warning {
+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 }
-.fa-angle-double-down:before {
-  content: "\f103";
+.progress-bar-danger {
+  background-color: #c42621;
 }
-.fa-angle-left:before {
-  content: "\f104";
+.progress-striped .progress-bar-danger {
+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
 }
-.fa-angle-right:before {
-  content: "\f105";
+.media {
+  margin-top: 15px;
 }
-.fa-angle-up:before {
-  content: "\f106";
+.media:first-child {
+  margin-top: 0;
 }
-.fa-angle-down:before {
-  content: "\f107";
+.media,
+.media-body {
+  zoom: 1;
+  overflow: hidden;
 }
-.fa-desktop:before {
-  content: "\f108";
+.media-body {
+  width: 10000px;
 }
-.fa-laptop:before {
-  content: "\f109";
+.media-object {
+  display: block;
 }
-.fa-tablet:before {
-  content: "\f10a";
+.media-object.img-thumbnail {
+  max-width: none;
 }
-.fa-mobile-phone:before,
-.fa-mobile:before {
-  content: "\f10b";
+.media-right,
+.media > .pull-right {
+  padding-left: 10px;
 }
-.fa-circle-o:before {
-  content: "\f10c";
+.media-left,
+.media > .pull-left {
+  padding-right: 10px;
 }
-.fa-quote-left:before {
-  content: "\f10d";
+.media-left,
+.media-right,
+.media-body {
+  display: table-cell;
+  vertical-align: top;
 }
-.fa-quote-right:before {
-  content: "\f10e";
+.media-middle {
+  vertical-align: middle;
 }
-.fa-spinner:before {
-  content: "\f110";
+.media-bottom {
+  vertical-align: bottom;
 }
-.fa-circle:before {
-  content: "\f111";
+.media-heading {
+  margin-top: 0;
+  margin-bottom: 5px;
 }
-.fa-mail-reply:before,
-.fa-reply:before {
-  content: "\f112";
+.media-list {
+  padding-left: 0;
+  list-style: none;
 }
-.fa-github-alt:before {
-  content: "\f113";
+.list-group {
+  margin-bottom: 20px;
+  padding-left: 0;
 }
-.fa-folder-o:before {
-  content: "\f114";
+.list-group-item {
+  position: relative;
+  display: block;
+  padding: 10px 15px;
+  margin-bottom: -1px;
+  background-color: transparent;
+  border: 1px solid #dddddd;
 }
-.fa-folder-open-o:before {
-  content: "\f115";
+.list-group-item:first-child {
+  border-top-right-radius: 6px;
+  border-top-left-radius: 6px;
 }
-.fa-smile-o:before {
-  content: "\f118";
+.list-group-item:last-child {
+  margin-bottom: 0;
+  border-bottom-right-radius: 6px;
+  border-bottom-left-radius: 6px;
 }
-.fa-frown-o:before {
-  content: "\f119";
+a.list-group-item,
+button.list-group-item {
+  color: #555555;
 }
-.fa-meh-o:before {
-  content: "\f11a";
+a.list-group-item .list-group-item-heading,
+button.list-group-item .list-group-item-heading {
+  color: #333333;
 }
-.fa-gamepad:before {
-  content: "\f11b";
+a.list-group-item:hover,
+button.list-group-item:hover,
+a.list-group-item:focus,
+button.list-group-item:focus {
+  text-decoration: none;
+  color: #555555;
+  background-color: #f5f5f5;
 }
-.fa-keyboard-o:before {
-  content: "\f11c";
+button.list-group-item {
+  width: 100%;
+  text-align: left;
 }
-.fa-flag-o:before {
-  content: "\f11d";
+.list-group-item.disabled,
+.list-group-item.disabled:hover,
+.list-group-item.disabled:focus {
+  background-color: #eeeeee;
+  color: #777777;
+  cursor: not-allowed;
 }
-.fa-flag-checkered:before {
-  content: "\f11e";
+.list-group-item.disabled .list-group-item-heading,
+.list-group-item.disabled:hover .list-group-item-heading,
+.list-group-item.disabled:focus .list-group-item-heading {
+  color: inherit;
 }
-.fa-terminal:before {
-  content: "\f120";
+.list-group-item.disabled .list-group-item-text,
+.list-group-item.disabled:hover .list-group-item-text,
+.list-group-item.disabled:focus .list-group-item-text {
+  color: #777777;
 }
-.fa-code:before {
-  content: "\f121";
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+  z-index: 2;
+  color: #ffffff;
+  background-color: #419ae7;
+  border-color: #419ae7;
+}
+.list-group-item.active .list-group-item-heading,
+.list-group-item.active:hover .list-group-item-heading,
+.list-group-item.active:focus .list-group-item-heading,
+.list-group-item.active .list-group-item-heading > small,
+.list-group-item.active:hover .list-group-item-heading > small,
+.list-group-item.active:focus .list-group-item-heading > small,
+.list-group-item.active .list-group-item-heading > .small,
+.list-group-item.active:hover .list-group-item-heading > .small,
+.list-group-item.active:focus .list-group-item-heading > .small {
+  color: inherit;
 }
-.fa-mail-reply-all:before,
-.fa-reply-all:before {
-  content: "\f122";
+.list-group-item.active .list-group-item-text,
+.list-group-item.active:hover .list-group-item-text,
+.list-group-item.active:focus .list-group-item-text {
+  color: #f7fbfe;
 }
-.fa-star-half-empty:before,
-.fa-star-half-full:before,
-.fa-star-half-o:before {
-  content: "\f123";
+.list-group-item-success {
+  color: #3c763d;
+  background-color: #dff0d8;
 }
-.fa-location-arrow:before {
-  content: "\f124";
+a.list-group-item-success,
+button.list-group-item-success {
+  color: #3c763d;
 }
-.fa-crop:before {
-  content: "\f125";
+a.list-group-item-success .list-group-item-heading,
+button.list-group-item-success .list-group-item-heading {
+  color: inherit;
 }
-.fa-code-fork:before {
-  content: "\f126";
+a.list-group-item-success:hover,
+button.list-group-item-success:hover,
+a.list-group-item-success:focus,
+button.list-group-item-success:focus {
+  color: #3c763d;
+  background-color: #d0e9c6;
 }
-.fa-unlink:before,
-.fa-chain-broken:before {
-  content: "\f127";
+a.list-group-item-success.active,
+button.list-group-item-success.active,
+a.list-group-item-success.active:hover,
+button.list-group-item-success.active:hover,
+a.list-group-item-success.active:focus,
+button.list-group-item-success.active:focus {
+  color: #fff;
+  background-color: #3c763d;
+  border-color: #3c763d;
 }
-.fa-question:before {
-  content: "\f128";
+.list-group-item-info {
+  color: #31708f;
+  background-color: #d9edf7;
 }
-.fa-info:before {
-  content: "\f129";
+a.list-group-item-info,
+button.list-group-item-info {
+  color: #31708f;
 }
-.fa-exclamation:before {
-  content: "\f12a";
+a.list-group-item-info .list-group-item-heading,
+button.list-group-item-info .list-group-item-heading {
+  color: inherit;
 }
-.fa-superscript:before {
-  content: "\f12b";
+a.list-group-item-info:hover,
+button.list-group-item-info:hover,
+a.list-group-item-info:focus,
+button.list-group-item-info:focus {
+  color: #31708f;
+  background-color: #c4e3f3;
 }
-.fa-subscript:before {
-  content: "\f12c";
+a.list-group-item-info.active,
+button.list-group-item-info.active,
+a.list-group-item-info.active:hover,
+button.list-group-item-info.active:hover,
+a.list-group-item-info.active:focus,
+button.list-group-item-info.active:focus {
+  color: #fff;
+  background-color: #31708f;
+  border-color: #31708f;
 }
-.fa-eraser:before {
-  content: "\f12d";
+.list-group-item-warning {
+  color: #8a6d3b;
+  background-color: #fcf8e3;
 }
-.fa-puzzle-piece:before {
-  content: "\f12e";
+a.list-group-item-warning,
+button.list-group-item-warning {
+  color: #8a6d3b;
 }
-.fa-microphone:before {
-  content: "\f130";
+a.list-group-item-warning .list-group-item-heading,
+button.list-group-item-warning .list-group-item-heading {
+  color: inherit;
 }
-.fa-microphone-slash:before {
-  content: "\f131";
+a.list-group-item-warning:hover,
+button.list-group-item-warning:hover,
+a.list-group-item-warning:focus,
+button.list-group-item-warning:focus {
+  color: #8a6d3b;
+  background-color: #faf2cc;
 }
-.fa-shield:before {
-  content: "\f132";
+a.list-group-item-warning.active,
+button.list-group-item-warning.active,
+a.list-group-item-warning.active:hover,
+button.list-group-item-warning.active:hover,
+a.list-group-item-warning.active:focus,
+button.list-group-item-warning.active:focus {
+  color: #fff;
+  background-color: #8a6d3b;
+  border-color: #8a6d3b;
 }
-.fa-calendar-o:before {
-  content: "\f133";
+.list-group-item-danger {
+  color: #a94442;
+  background-color: #f2dede;
 }
-.fa-fire-extinguisher:before {
-  content: "\f134";
+a.list-group-item-danger,
+button.list-group-item-danger {
+  color: #a94442;
 }
-.fa-rocket:before {
-  content: "\f135";
+a.list-group-item-danger .list-group-item-heading,
+button.list-group-item-danger .list-group-item-heading {
+  color: inherit;
 }
-.fa-maxcdn:before {
-  content: "\f136";
+a.list-group-item-danger:hover,
+button.list-group-item-danger:hover,
+a.list-group-item-danger:focus,
+button.list-group-item-danger:focus {
+  color: #a94442;
+  background-color: #ebcccc;
 }
-.fa-chevron-circle-left:before {
-  content: "\f137";
+a.list-group-item-danger.active,
+button.list-group-item-danger.active,
+a.list-group-item-danger.active:hover,
+button.list-group-item-danger.active:hover,
+a.list-group-item-danger.active:focus,
+button.list-group-item-danger.active:focus {
+  color: #fff;
+  background-color: #a94442;
+  border-color: #a94442;
 }
-.fa-chevron-circle-right:before {
-  content: "\f138";
+.list-group-item-heading {
+  margin-top: 0;
+  margin-bottom: 5px;
 }
-.fa-chevron-circle-up:before {
-  content: "\f139";
+.list-group-item-text {
+  margin-bottom: 0;
+  line-height: 1.3;
 }
-.fa-chevron-circle-down:before {
-  content: "\f13a";
+.panel {
+  margin-bottom: 22px;
+  background-color: #ffffff;
+  border: 1px solid transparent;
+  border-radius: 6px;
+  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
 }
-.fa-html5:before {
-  content: "\f13b";
+.panel-body {
+  padding: 15px;
 }
-.fa-css3:before {
-  content: "\f13c";
+.panel-heading {
+  padding: 10px 15px;
+  border-bottom: 1px solid transparent;
+  border-top-right-radius: 5px;
+  border-top-left-radius: 5px;
 }
-.fa-anchor:before {
-  content: "\f13d";
+.panel-heading > .dropdown .dropdown-toggle {
+  color: inherit;
 }
-.fa-unlock-alt:before {
-  content: "\f13e";
+.panel-title {
+  margin-top: 0;
+  margin-bottom: 0;
+  font-size: 18px;
+  color: inherit;
 }
-.fa-bullseye:before {
-  content: "\f140";
+.panel-title > a,
+.panel-title > small,
+.panel-title > .small,
+.panel-title > small > a,
+.panel-title > .small > a {
+  color: inherit;
 }
-.fa-ellipsis-h:before {
-  content: "\f141";
+.panel-footer {
+  padding: 10px 15px;
+  background-color: #f5f5f5;
+  border-top: 1px solid #dddddd;
+  border-bottom-right-radius: 5px;
+  border-bottom-left-radius: 5px;
 }
-.fa-ellipsis-v:before {
-  content: "\f142";
+.panel > .list-group,
+.panel > .panel-collapse > .list-group {
+  margin-bottom: 0;
 }
-.fa-rss-square:before {
-  content: "\f143";
+.panel > .list-group .list-group-item,
+.panel > .panel-collapse > .list-group .list-group-item {
+  border-width: 1px 0;
+  border-radius: 0;
 }
-.fa-play-circle:before {
-  content: "\f144";
+.panel > .list-group:first-child .list-group-item:first-child,
+.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
+  border-top: 0;
+  border-top-right-radius: 5px;
+  border-top-left-radius: 5px;
 }
-.fa-ticket:before {
-  content: "\f145";
+.panel > .list-group:last-child .list-group-item:last-child,
+.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
+  border-bottom: 0;
+  border-bottom-right-radius: 5px;
+  border-bottom-left-radius: 5px;
 }
-.fa-minus-square:before {
-  content: "\f146";
+.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
 }
-.fa-minus-square-o:before {
-  content: "\f147";
+.panel-heading + .list-group .list-group-item:first-child {
+  border-top-width: 0;
 }
-.fa-level-up:before {
-  content: "\f148";
+.list-group + .panel-footer {
+  border-top-width: 0;
 }
-.fa-level-down:before {
-  content: "\f149";
+.panel > .table,
+.panel > .table-responsive > .table,
+.panel > .panel-collapse > .table {
+  margin-bottom: 0;
 }
-.fa-check-square:before {
-  content: "\f14a";
+.panel > .table caption,
+.panel > .table-responsive > .table caption,
+.panel > .panel-collapse > .table caption {
+  padding-left: 15px;
+  padding-right: 15px;
 }
-.fa-pencil-square:before {
-  content: "\f14b";
+.panel > .table:first-child,
+.panel > .table-responsive:first-child > .table:first-child {
+  border-top-right-radius: 5px;
+  border-top-left-radius: 5px;
 }
-.fa-external-link-square:before {
-  content: "\f14c";
+.panel > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
+  border-top-left-radius: 5px;
+  border-top-right-radius: 5px;
 }
-.fa-share-square:before {
-  content: "\f14d";
+.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
+  border-top-left-radius: 5px;
 }
-.fa-compass:before {
-  content: "\f14e";
+.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+  border-top-right-radius: 5px;
 }
-.fa-toggle-down:before,
-.fa-caret-square-o-down:before {
-  content: "\f150";
+.panel > .table:last-child,
+.panel > .table-responsive:last-child > .table:last-child {
+  border-bottom-right-radius: 5px;
+  border-bottom-left-radius: 5px;
 }
-.fa-toggle-up:before,
-.fa-caret-square-o-up:before {
-  content: "\f151";
+.panel > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
+  border-bottom-left-radius: 5px;
+  border-bottom-right-radius: 5px;
 }
-.fa-toggle-right:before,
-.fa-caret-square-o-right:before {
-  content: "\f152";
+.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+  border-bottom-left-radius: 5px;
 }
-.fa-euro:before,
-.fa-eur:before {
-  content: "\f153";
+.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+  border-bottom-right-radius: 5px;
 }
-.fa-gbp:before {
-  content: "\f154";
+.panel > .panel-body + .table,
+.panel > .panel-body + .table-responsive,
+.panel > .table + .panel-body,
+.panel > .table-responsive + .panel-body {
+  border-top: 1px solid transparent;
 }
-.fa-dollar:before,
-.fa-usd:before {
-  content: "\f155";
+.panel > .table > tbody:first-child > tr:first-child th,
+.panel > .table > tbody:first-child > tr:first-child td {
+  border-top: 0;
 }
-.fa-rupee:before,
-.fa-inr:before {
-  content: "\f156";
+.panel > .table-bordered,
+.panel > .table-responsive > .table-bordered {
+  border: 0;
 }
-.fa-cny:before,
-.fa-rmb:before,
-.fa-yen:before,
-.fa-jpy:before {
-  content: "\f157";
+.panel > .table-bordered > thead > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+.panel > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-bordered > thead > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+.panel > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-bordered > tfoot > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+  border-left: 0;
 }
-.fa-ruble:before,
-.fa-rouble:before,
-.fa-rub:before {
-  content: "\f158";
+.panel > .table-bordered > thead > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+.panel > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-bordered > thead > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+.panel > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-bordered > tfoot > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+  border-right: 0;
 }
-.fa-won:before,
-.fa-krw:before {
-  content: "\f159";
+.panel > .table-bordered > thead > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+.panel > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-bordered > thead > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+.panel > .table-bordered > tbody > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
+  border-bottom: 0;
 }
-.fa-bitcoin:before,
-.fa-btc:before {
-  content: "\f15a";
+.panel > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-bordered > tfoot > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
+  border-bottom: 0;
 }
-.fa-file:before {
-  content: "\f15b";
+.panel > .table-responsive {
+  border: 0;
+  margin-bottom: 0;
 }
-.fa-file-text:before {
-  content: "\f15c";
+.panel-group {
+  margin-bottom: 22px;
 }
-.fa-sort-alpha-asc:before {
-  content: "\f15d";
+.panel-group .panel {
+  margin-bottom: 0;
+  border-radius: 6px;
 }
-.fa-sort-alpha-desc:before {
-  content: "\f15e";
+.panel-group .panel + .panel {
+  margin-top: 5px;
 }
-.fa-sort-amount-asc:before {
-  content: "\f160";
+.panel-group .panel-heading {
+  border-bottom: 0;
 }
-.fa-sort-amount-desc:before {
-  content: "\f161";
+.panel-group .panel-heading + .panel-collapse > .panel-body,
+.panel-group .panel-heading + .panel-collapse > .list-group {
+  border-top: 1px solid #dddddd;
 }
-.fa-sort-numeric-asc:before {
-  content: "\f162";
+.panel-group .panel-footer {
+  border-top: 0;
 }
-.fa-sort-numeric-desc:before {
-  content: "\f163";
+.panel-group .panel-footer + .panel-collapse .panel-body {
+  border-bottom: 1px solid #dddddd;
 }
-.fa-thumbs-up:before {
-  content: "\f164";
+.panel-default {
+  border-color: #dddddd;
 }
-.fa-thumbs-down:before {
-  content: "\f165";
+.panel-default > .panel-heading {
+  color: #333333;
+  background-color: #f5f5f5;
+  border-color: #dddddd;
 }
-.fa-youtube-square:before {
-  content: "\f166";
+.panel-default > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #dddddd;
 }
-.fa-youtube:before {
-  content: "\f167";
+.panel-default > .panel-heading .badge {
+  color: #f5f5f5;
+  background-color: #333333;
 }
-.fa-xing:before {
-  content: "\f168";
+.panel-default > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #dddddd;
 }
-.fa-xing-square:before {
-  content: "\f169";
+.panel-primary {
+  border-color: #419ae7;
 }
-.fa-youtube-play:before {
-  content: "\f16a";
+.panel-primary > .panel-heading {
+  color: #ffffff;
+  background-color: #419ae7;
+  border-color: #419ae7;
 }
-.fa-dropbox:before {
-  content: "\f16b";
+.panel-primary > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #419ae7;
 }
-.fa-stack-overflow:before {
-  content: "\f16c";
+.panel-primary > .panel-heading .badge {
+  color: #419ae7;
+  background-color: #ffffff;
 }
-.fa-instagram:before {
-  content: "\f16d";
+.panel-primary > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #419ae7;
 }
-.fa-flickr:before {
-  content: "\f16e";
+.panel-success {
+  border-color: #d6e9c6;
 }
-.fa-adn:before {
-  content: "\f170";
+.panel-success > .panel-heading {
+  color: #3c763d;
+  background-color: #dff0d8;
+  border-color: #d6e9c6;
 }
-.fa-bitbucket:before {
-  content: "\f171";
+.panel-success > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #d6e9c6;
 }
-.fa-bitbucket-square:before {
-  content: "\f172";
+.panel-success > .panel-heading .badge {
+  color: #dff0d8;
+  background-color: #3c763d;
 }
-.fa-tumblr:before {
-  content: "\f173";
+.panel-success > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #d6e9c6;
 }
-.fa-tumblr-square:before {
-  content: "\f174";
+.panel-info {
+  border-color: #bce8f1;
 }
-.fa-long-arrow-down:before {
-  content: "\f175";
+.panel-info > .panel-heading {
+  color: #31708f;
+  background-color: #d9edf7;
+  border-color: #bce8f1;
 }
-.fa-long-arrow-up:before {
-  content: "\f176";
+.panel-info > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #bce8f1;
 }
-.fa-long-arrow-left:before {
-  content: "\f177";
+.panel-info > .panel-heading .badge {
+  color: #d9edf7;
+  background-color: #31708f;
 }
-.fa-long-arrow-right:before {
-  content: "\f178";
+.panel-info > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #bce8f1;
 }
-.fa-apple:before {
-  content: "\f179";
+.panel-warning {
+  border-color: #faebcc;
 }
-.fa-windows:before {
-  content: "\f17a";
+.panel-warning > .panel-heading {
+  color: #8a6d3b;
+  background-color: #fcf8e3;
+  border-color: #faebcc;
 }
-.fa-android:before {
-  content: "\f17b";
+.panel-warning > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #faebcc;
 }
-.fa-linux:before {
-  content: "\f17c";
+.panel-warning > .panel-heading .badge {
+  color: #fcf8e3;
+  background-color: #8a6d3b;
 }
-.fa-dribbble:before {
-  content: "\f17d";
+.panel-warning > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #faebcc;
 }
-.fa-skype:before {
-  content: "\f17e";
+.panel-danger {
+  border-color: #ebccd1;
 }
-.fa-foursquare:before {
-  content: "\f180";
+.panel-danger > .panel-heading {
+  color: #a94442;
+  background-color: #f2dede;
+  border-color: #ebccd1;
 }
-.fa-trello:before {
-  content: "\f181";
+.panel-danger > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #ebccd1;
 }
-.fa-female:before {
-  content: "\f182";
+.panel-danger > .panel-heading .badge {
+  color: #f2dede;
+  background-color: #a94442;
 }
-.fa-male:before {
-  content: "\f183";
+.panel-danger > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #ebccd1;
 }
-.fa-gittip:before {
-  content: "\f184";
+.embed-responsive {
+  position: relative;
+  display: block;
+  height: 0;
+  padding: 0;
+  overflow: hidden;
 }
-.fa-sun-o:before {
-  content: "\f185";
+.embed-responsive .embed-responsive-item,
+.embed-responsive iframe,
+.embed-responsive embed,
+.embed-responsive object,
+.embed-responsive video {
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  height: 100%;
+  width: 100%;
+  border: 0;
 }
-.fa-moon-o:before {
-  content: "\f186";
+.embed-responsive-16by9 {
+  padding-bottom: 56.25%;
 }
-.fa-archive:before {
-  content: "\f187";
+.embed-responsive-4by3 {
+  padding-bottom: 75%;
 }
-.fa-bug:before {
-  content: "\f188";
+.well {
+  min-height: 20px;
+  padding: 19px;
+  margin-bottom: 20px;
+  background-color: #f5f5f5;
+  border: 1px solid #e3e3e3;
+  border-radius: 6px;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
 }
-.fa-vk:before {
-  content: "\f189";
+.well blockquote {
+  border-color: #ddd;
+  border-color: rgba(0, 0, 0, 0.15);
 }
-.fa-weibo:before {
-  content: "\f18a";
+.well-lg {
+  padding: 24px;
+  border-radius: 8px;
 }
-.fa-renren:before {
-  content: "\f18b";
+.well-sm {
+  padding: 9px;
+  border-radius: 4px;
 }
-.fa-pagelines:before {
-  content: "\f18c";
+.close {
+  float: right;
+  font-size: 24px;
+  font-weight: bold;
+  line-height: 1;
+  color: #000000;
+  text-shadow: 0 1px 0 #ffffff;
+  opacity: 0.2;
+  filter: alpha(opacity=20);
 }
-.fa-stack-exchange:before {
-  content: "\f18d";
+.close:hover,
+.close:focus {
+  color: #000000;
+  text-decoration: none;
+  cursor: pointer;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
 }
-.fa-arrow-circle-o-right:before {
-  content: "\f18e";
+button.close {
+  padding: 0;
+  cursor: pointer;
+  background: transparent;
+  border: 0;
+  -webkit-appearance: none;
 }
-.fa-arrow-circle-o-left:before {
-  content: "\f190";
+.modal-open {
+  overflow: hidden;
 }
-.fa-toggle-left:before,
-.fa-caret-square-o-left:before {
-  content: "\f191";
+.modal {
+  display: none;
+  overflow: hidden;
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1050;
+  -webkit-overflow-scrolling: touch;
+  outline: 0;
 }
-.fa-dot-circle-o:before {
-  content: "\f192";
+.modal.fade .modal-dialog {
+  -webkit-transform: translate(0, -25%);
+  -ms-transform: translate(0, -25%);
+  -o-transform: translate(0, -25%);
+  transform: translate(0, -25%);
+  -webkit-transition: -webkit-transform 0.3s ease-out;
+  -moz-transition: -moz-transform 0.3s ease-out;
+  -o-transition: -o-transform 0.3s ease-out;
+  transition: transform 0.3s ease-out;
 }
-.fa-wheelchair:before {
-  content: "\f193";
+.modal.in .modal-dialog {
+  -webkit-transform: translate(0, 0);
+  -ms-transform: translate(0, 0);
+  -o-transform: translate(0, 0);
+  transform: translate(0, 0);
 }
-.fa-vimeo-square:before {
-  content: "\f194";
+.modal-open .modal {
+  overflow-x: hidden;
+  overflow-y: auto;
 }
-.fa-turkish-lira:before,
-.fa-try:before {
-  content: "\f195";
+.modal-dialog {
+  position: relative;
+  width: auto;
+  margin: 10px;
 }
-.fa-plus-square-o:before {
-  content: "\f196";
+.modal-content {
+  position: relative;
+  background-color: #ffffff;
+  border: 1px solid #999999;
+  border: 1px solid rgba(0, 0, 0, 0.2);
+  border-radius: 8px;
+  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+  background-clip: padding-box;
+  outline: 0;
 }
-.fa-space-shuttle:before {
-  content: "\f197";
+.modal-backdrop {
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1040;
+  background-color: #0d8ec2;
 }
-.fa-slack:before {
-  content: "\f198";
+.modal-backdrop.fade {
+  opacity: 0;
+  filter: alpha(opacity=0);
 }
-.fa-envelope-square:before {
-  content: "\f199";
+.modal-backdrop.in {
+  opacity: 0.5;
+  filter: alpha(opacity=50);
 }
-.fa-wordpress:before {
-  content: "\f19a";
+.modal-header {
+  padding: 15px;
+  border-bottom: 1px solid #e5e5e5;
+  min-height: 16.42857143px;
 }
-.fa-openid:before {
-  content: "\f19b";
+.modal-header .close {
+  margin-top: -2px;
 }
-.fa-institution:before,
-.fa-bank:before,
-.fa-university:before {
-  content: "\f19c";
+.modal-title {
+  margin: 0;
+  line-height: 1.42857143;
 }
-.fa-mortar-board:before,
-.fa-graduation-cap:before {
-  content: "\f19d";
+.modal-body {
+  position: relative;
+  padding: 15px;
 }
-.fa-yahoo:before {
-  content: "\f19e";
+.modal-footer {
+  padding: 15px;
+  text-align: right;
+  border-top: 1px solid #e5e5e5;
 }
-.fa-google:before {
-  content: "\f1a0";
+.modal-footer .btn + .btn {
+  margin-left: 5px;
+  margin-bottom: 0;
 }
-.fa-reddit:before {
-  content: "\f1a1";
+.modal-footer .btn-group .btn + .btn {
+  margin-left: -1px;
 }
-.fa-reddit-square:before {
-  content: "\f1a2";
+.modal-footer .btn-block + .btn-block {
+  margin-left: 0;
 }
-.fa-stumbleupon-circle:before {
-  content: "\f1a3";
+.modal-scrollbar-measure {
+  position: absolute;
+  top: -9999px;
+  width: 50px;
+  height: 50px;
+  overflow: scroll;
 }
-.fa-stumbleupon:before {
-  content: "\f1a4";
+@media (min-width: 768px) {
+  .modal-dialog {
+    width: 600px;
+    margin: 30px auto;
+  }
+  .modal-content {
+    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+  }
+  .modal-sm {
+    width: 300px;
+  }
 }
-.fa-delicious:before {
-  content: "\f1a5";
+@media (min-width: 992px) {
+  .modal-lg {
+    width: 900px;
+  }
+}
+.tooltip {
+  position: absolute;
+  z-index: 1070;
+  display: block;
+  font-family: 'Open Sans', sans-serif;
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: normal;
+  line-break: auto;
+  line-height: 1.42857143;
+  text-align: left;
+  text-align: start;
+  text-decoration: none;
+  text-shadow: none;
+  text-transform: none;
+  white-space: normal;
+  word-break: normal;
+  word-spacing: normal;
+  word-wrap: normal;
+  font-size: 14px;
+  opacity: 0;
+  filter: alpha(opacity=0);
 }
-.fa-digg:before {
-  content: "\f1a6";
+.tooltip.in {
+  opacity: 0.9;
+  filter: alpha(opacity=90);
 }
-.fa-pied-piper-square:before,
-.fa-pied-piper:before {
-  content: "\f1a7";
+.tooltip.top {
+  margin-top: -3px;
+  padding: 5px 0;
 }
-.fa-pied-piper-alt:before {
-  content: "\f1a8";
+.tooltip.right {
+  margin-left: 3px;
+  padding: 0 5px;
 }
-.fa-drupal:before {
-  content: "\f1a9";
+.tooltip.bottom {
+  margin-top: 3px;
+  padding: 5px 0;
 }
-.fa-joomla:before {
-  content: "\f1aa";
+.tooltip.left {
+  margin-left: -3px;
+  padding: 0 5px;
 }
-.fa-language:before {
-  content: "\f1ab";
+.tooltip-inner {
+  max-width: 200px;
+  padding: 3px 8px;
+  color: #ffffff;
+  text-align: center;
+  background-color: #000000;
+  border-radius: 6px;
 }
-.fa-fax:before {
-  content: "\f1ac";
+.tooltip-arrow {
+  position: absolute;
+  width: 0;
+  height: 0;
+  border-color: transparent;
+  border-style: solid;
 }
-.fa-building:before {
-  content: "\f1ad";
+.tooltip.top .tooltip-arrow {
+  bottom: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-width: 5px 5px 0;
+  border-top-color: #000000;
 }
-.fa-child:before {
-  content: "\f1ae";
+.tooltip.top-left .tooltip-arrow {
+  bottom: 0;
+  right: 5px;
+  margin-bottom: -5px;
+  border-width: 5px 5px 0;
+  border-top-color: #000000;
 }
-.fa-paw:before {
-  content: "\f1b0";
+.tooltip.top-right .tooltip-arrow {
+  bottom: 0;
+  left: 5px;
+  margin-bottom: -5px;
+  border-width: 5px 5px 0;
+  border-top-color: #000000;
 }
-.fa-spoon:before {
-  content: "\f1b1";
+.tooltip.right .tooltip-arrow {
+  top: 50%;
+  left: 0;
+  margin-top: -5px;
+  border-width: 5px 5px 5px 0;
+  border-right-color: #000000;
 }
-.fa-cube:before {
-  content: "\f1b2";
+.tooltip.left .tooltip-arrow {
+  top: 50%;
+  right: 0;
+  margin-top: -5px;
+  border-width: 5px 0 5px 5px;
+  border-left-color: #000000;
 }
-.fa-cubes:before {
-  content: "\f1b3";
+.tooltip.bottom .tooltip-arrow {
+  top: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-width: 0 5px 5px;
+  border-bottom-color: #000000;
 }
-.fa-behance:before {
-  content: "\f1b4";
+.tooltip.bottom-left .tooltip-arrow {
+  top: 0;
+  right: 5px;
+  margin-top: -5px;
+  border-width: 0 5px 5px;
+  border-bottom-color: #000000;
 }
-.fa-behance-square:before {
-  content: "\f1b5";
+.tooltip.bottom-right .tooltip-arrow {
+  top: 0;
+  left: 5px;
+  margin-top: -5px;
+  border-width: 0 5px 5px;
+  border-bottom-color: #000000;
 }
-.fa-steam:before {
-  content: "\f1b6";
+.popover {
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: 1060;
+  display: none;
+  max-width: 276px;
+  padding: 1px;
+  font-family: 'Open Sans', sans-serif;
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: normal;
+  line-break: auto;
+  line-height: 1.42857143;
+  text-align: left;
+  text-align: start;
+  text-decoration: none;
+  text-shadow: none;
+  text-transform: none;
+  white-space: normal;
+  word-break: normal;
+  word-spacing: normal;
+  word-wrap: normal;
+  font-size: 16px;
+  background-color: #ffffff;
+  background-clip: padding-box;
+  border: 1px solid #cccccc;
+  border: 1px solid rgba(0, 0, 0, 0.2);
+  border-radius: 8px;
+  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
 }
-.fa-steam-square:before {
-  content: "\f1b7";
+.popover.top {
+  margin-top: -10px;
 }
-.fa-recycle:before {
-  content: "\f1b8";
+.popover.right {
+  margin-left: 10px;
 }
-.fa-automobile:before,
-.fa-car:before {
-  content: "\f1b9";
+.popover.bottom {
+  margin-top: 10px;
 }
-.fa-cab:before,
-.fa-taxi:before {
-  content: "\f1ba";
+.popover.left {
+  margin-left: -10px;
 }
-.fa-tree:before {
-  content: "\f1bb";
+.popover-title {
+  margin: 0;
+  padding: 8px 14px;
+  font-size: 16px;
+  background-color: #f7f7f7;
+  border-bottom: 1px solid #ebebeb;
+  border-radius: 7px 7px 0 0;
 }
-.fa-spotify:before {
-  content: "\f1bc";
+.popover-content {
+  padding: 9px 14px;
 }
-.fa-deviantart:before {
-  content: "\f1bd";
+.popover > .arrow,
+.popover > .arrow:after {
+  position: absolute;
+  display: block;
+  width: 0;
+  height: 0;
+  border-color: transparent;
+  border-style: solid;
 }
-.fa-soundcloud:before {
-  content: "\f1be";
+.popover > .arrow {
+  border-width: 11px;
 }
-.fa-database:before {
-  content: "\f1c0";
+.popover > .arrow:after {
+  border-width: 10px;
+  content: "";
 }
-.fa-file-pdf-o:before {
-  content: "\f1c1";
+.popover.top > .arrow {
+  left: 50%;
+  margin-left: -11px;
+  border-bottom-width: 0;
+  border-top-color: #999999;
+  border-top-color: rgba(0, 0, 0, 0.25);
+  bottom: -11px;
 }
-.fa-file-word-o:before {
-  content: "\f1c2";
+.popover.top > .arrow:after {
+  content: " ";
+  bottom: 1px;
+  margin-left: -10px;
+  border-bottom-width: 0;
+  border-top-color: #ffffff;
 }
-.fa-file-excel-o:before {
-  content: "\f1c3";
+.popover.right > .arrow {
+  top: 50%;
+  left: -11px;
+  margin-top: -11px;
+  border-left-width: 0;
+  border-right-color: #999999;
+  border-right-color: rgba(0, 0, 0, 0.25);
 }
-.fa-file-powerpoint-o:before {
-  content: "\f1c4";
+.popover.right > .arrow:after {
+  content: " ";
+  left: 1px;
+  bottom: -10px;
+  border-left-width: 0;
+  border-right-color: #ffffff;
 }
-.fa-file-photo-o:before,
-.fa-file-picture-o:before,
-.fa-file-image-o:before {
-  content: "\f1c5";
+.popover.bottom > .arrow {
+  left: 50%;
+  margin-left: -11px;
+  border-top-width: 0;
+  border-bottom-color: #999999;
+  border-bottom-color: rgba(0, 0, 0, 0.25);
+  top: -11px;
 }
-.fa-file-zip-o:before,
-.fa-file-archive-o:before {
-  content: "\f1c6";
+.popover.bottom > .arrow:after {
+  content: " ";
+  top: 1px;
+  margin-left: -10px;
+  border-top-width: 0;
+  border-bottom-color: #ffffff;
 }
-.fa-file-sound-o:before,
-.fa-file-audio-o:before {
-  content: "\f1c7";
+.popover.left > .arrow {
+  top: 50%;
+  right: -11px;
+  margin-top: -11px;
+  border-right-width: 0;
+  border-left-color: #999999;
+  border-left-color: rgba(0, 0, 0, 0.25);
 }
-.fa-file-movie-o:before,
-.fa-file-video-o:before {
-  content: "\f1c8";
+.popover.left > .arrow:after {
+  content: " ";
+  right: 1px;
+  border-right-width: 0;
+  border-left-color: #ffffff;
+  bottom: -10px;
 }
-.fa-file-code-o:before {
-  content: "\f1c9";
+.carousel {
+  position: relative;
 }
-.fa-vine:before {
-  content: "\f1ca";
+.carousel-inner {
+  position: relative;
+  overflow: hidden;
+  width: 100%;
 }
-.fa-codepen:before {
-  content: "\f1cb";
+.carousel-inner > .item {
+  display: none;
+  position: relative;
+  -webkit-transition: 0.6s ease-in-out left;
+  -o-transition: 0.6s ease-in-out left;
+  transition: 0.6s ease-in-out left;
 }
-.fa-jsfiddle:before {
-  content: "\f1cc";
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+  line-height: 1;
 }
-.fa-life-bouy:before,
-.fa-life-saver:before,
-.fa-support:before,
-.fa-life-ring:before {
-  content: "\f1cd";
+@media all and (transform-3d), (-webkit-transform-3d) {
+  .carousel-inner > .item {
+    -webkit-transition: -webkit-transform 0.6s ease-in-out;
+    -moz-transition: -moz-transform 0.6s ease-in-out;
+    -o-transition: -o-transform 0.6s ease-in-out;
+    transition: transform 0.6s ease-in-out;
+    -webkit-backface-visibility: hidden;
+    -moz-backface-visibility: hidden;
+    backface-visibility: hidden;
+    -webkit-perspective: 1000px;
+    -moz-perspective: 1000px;
+    perspective: 1000px;
+  }
+  .carousel-inner > .item.next,
+  .carousel-inner > .item.active.right {
+    -webkit-transform: translate3d(100%, 0, 0);
+    transform: translate3d(100%, 0, 0);
+    left: 0;
+  }
+  .carousel-inner > .item.prev,
+  .carousel-inner > .item.active.left {
+    -webkit-transform: translate3d(-100%, 0, 0);
+    transform: translate3d(-100%, 0, 0);
+    left: 0;
+  }
+  .carousel-inner > .item.next.left,
+  .carousel-inner > .item.prev.right,
+  .carousel-inner > .item.active {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+    left: 0;
+  }
 }
-.fa-circle-o-notch:before {
-  content: "\f1ce";
+.carousel-inner > .active,
+.carousel-inner > .next,
+.carousel-inner > .prev {
+  display: block;
 }
-.fa-ra:before,
-.fa-rebel:before {
-  content: "\f1d0";
+.carousel-inner > .active {
+  left: 0;
 }
-.fa-ge:before,
-.fa-empire:before {
-  content: "\f1d1";
+.carousel-inner > .next,
+.carousel-inner > .prev {
+  position: absolute;
+  top: 0;
+  width: 100%;
 }
-.fa-git-square:before {
-  content: "\f1d2";
+.carousel-inner > .next {
+  left: 100%;
 }
-.fa-git:before {
-  content: "\f1d3";
+.carousel-inner > .prev {
+  left: -100%;
 }
-.fa-hacker-news:before {
-  content: "\f1d4";
+.carousel-inner > .next.left,
+.carousel-inner > .prev.right {
+  left: 0;
 }
-.fa-tencent-weibo:before {
-  content: "\f1d5";
+.carousel-inner > .active.left {
+  left: -100%;
 }
-.fa-qq:before {
-  content: "\f1d6";
+.carousel-inner > .active.right {
+  left: 100%;
 }
-.fa-wechat:before,
-.fa-weixin:before {
-  content: "\f1d7";
+.carousel-control {
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  width: 15%;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
+  font-size: 20px;
+  color: #ffffff;
+  text-align: center;
+  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
 }
-.fa-send:before,
-.fa-paper-plane:before {
-  content: "\f1d8";
+.carousel-control.left {
+  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
 }
-.fa-send-o:before,
-.fa-paper-plane-o:before {
-  content: "\f1d9";
+.carousel-control.right {
+  left: auto;
+  right: 0;
+  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
 }
-.fa-history:before {
-  content: "\f1da";
+.carousel-control:hover,
+.carousel-control:focus {
+  outline: 0;
+  color: #ffffff;
+  text-decoration: none;
+  opacity: 0.9;
+  filter: alpha(opacity=90);
 }
-.fa-circle-thin:before {
-  content: "\f1db";
+.carousel-control .icon-prev,
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-left,
+.carousel-control .glyphicon-chevron-right {
+  position: absolute;
+  top: 50%;
+  margin-top: -10px;
+  z-index: 5;
+  display: inline-block;
 }
-.fa-header:before {
-  content: "\f1dc";
+.carousel-control .icon-prev,
+.carousel-control .glyphicon-chevron-left {
+  left: 50%;
+  margin-left: -10px;
 }
-.fa-paragraph:before {
-  content: "\f1dd";
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-right {
+  right: 50%;
+  margin-right: -10px;
 }
-.fa-sliders:before {
-  content: "\f1de";
+.carousel-control .icon-prev,
+.carousel-control .icon-next {
+  width: 20px;
+  height: 20px;
+  line-height: 1;
+  font-family: serif;
 }
-.fa-share-alt:before {
-  content: "\f1e0";
+.carousel-control .icon-prev:before {
+  content: '\2039';
 }
-.fa-share-alt-square:before {
-  content: "\f1e1";
+.carousel-control .icon-next:before {
+  content: '\203a';
 }
-.fa-bomb:before {
-  content: "\f1e2";
+.carousel-indicators {
+  position: absolute;
+  bottom: 10px;
+  left: 50%;
+  z-index: 15;
+  width: 60%;
+  margin-left: -30%;
+  padding-left: 0;
+  list-style: none;
+  text-align: center;
 }
-.caret {
+.carousel-indicators li {
   display: inline-block;
-  width: 0;
-  height: 0;
-  margin-left: 2px;
-  vertical-align: middle;
-  border-top: 4px solid;
-  border-right: 4px solid transparent;
-  border-left: 4px solid transparent;
-}
-.dropdown {
-  position: relative;
+  width: 10px;
+  height: 10px;
+  margin: 1px;
+  text-indent: -999px;
+  border: 1px solid #ffffff;
+  border-radius: 10px;
+  cursor: pointer;
+  background-color: #000 \9;
+  background-color: rgba(0, 0, 0, 0);
 }
-.dropdown-toggle:focus {
-  outline: 0;
+.carousel-indicators .active {
+  margin: 0;
+  width: 12px;
+  height: 12px;
+  background-color: #ffffff;
 }
-.dropdown-menu {
+.carousel-caption {
   position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: 1000;
-  display: none;
-  float: left;
-  min-width: 160px;
-  padding: 5px 0;
-  margin: 2px 0 0;
-  list-style: none;
-  font-size: 14px;
-  background-color: #ffffff;
-  border: 1px solid #cccccc;
-  border: 1px solid rgba(0, 0, 0, 0.15);
-  border-radius: 4px;
-  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
-  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
-  background-clip: padding-box;
+  left: 15%;
+  right: 15%;
+  bottom: 20px;
+  z-index: 10;
+  padding-top: 20px;
+  padding-bottom: 20px;
+  color: #ffffff;
+  text-align: center;
+  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
 }
-.dropdown-menu.pull-right {
-  right: 0;
-  left: auto;
+.carousel-caption .btn {
+  text-shadow: none;
 }
-.dropdown-menu .divider {
-  height: 1px;
-  margin: 9px 0;
-  overflow: hidden;
-  background-color: #e5e5e5;
+@media screen and (min-width: 768px) {
+  .carousel-control .glyphicon-chevron-left,
+  .carousel-control .glyphicon-chevron-right,
+  .carousel-control .icon-prev,
+  .carousel-control .icon-next {
+    width: 30px;
+    height: 30px;
+    margin-top: -15px;
+    font-size: 30px;
+  }
+  .carousel-control .glyphicon-chevron-left,
+  .carousel-control .icon-prev {
+    margin-left: -15px;
+  }
+  .carousel-control .glyphicon-chevron-right,
+  .carousel-control .icon-next {
+    margin-right: -15px;
+  }
+  .carousel-caption {
+    left: 20%;
+    right: 20%;
+    padding-bottom: 30px;
+  }
+  .carousel-indicators {
+    bottom: 20px;
+  }
+}
+.clearfix:before,
+.clearfix:after,
+.dl-horizontal dd:before,
+.dl-horizontal dd:after,
+.container:before,
+.container:after,
+.container-fluid:before,
+.container-fluid:after,
+.row:before,
+.row:after,
+.form-horizontal .form-group:before,
+.form-horizontal .form-group:after,
+.btn-toolbar:before,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:before,
+.btn-group-vertical > .btn-group:after,
+.nav:before,
+.nav:after,
+.navbar:before,
+.navbar:after,
+.navbar-header:before,
+.navbar-header:after,
+.navbar-collapse:before,
+.navbar-collapse:after,
+.pager:before,
+.pager:after,
+.panel-body:before,
+.panel-body:after,
+.modal-footer:before,
+.modal-footer:after {
+  content: " ";
+  display: table;
 }
-.dropdown-menu > li > a {
-  display: block;
-  padding: 3px 20px;
+.clearfix:after,
+.dl-horizontal dd:after,
+.container:after,
+.container-fluid:after,
+.row:after,
+.form-horizontal .form-group:after,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:after,
+.nav:after,
+.navbar:after,
+.navbar-header:after,
+.navbar-collapse:after,
+.pager:after,
+.panel-body:after,
+.modal-footer:after {
   clear: both;
-  font-weight: normal;
-  line-height: 1.42857143;
-  color: #333333;
-  white-space: nowrap;
-}
-.dropdown-menu > li > a:hover,
-.dropdown-menu > li > a:focus {
-  text-decoration: none;
-  color: #ffffff;
-  background-color: #d9230f;
 }
-.dropdown-menu > .active > a,
-.dropdown-menu > .active > a:hover,
-.dropdown-menu > .active > a:focus {
-  color: #ffffff;
-  text-decoration: none;
-  outline: 0;
-  background-color: #d9230f;
+.center-block {
+  display: block;
+  margin-left: auto;
+  margin-right: auto;
 }
-.dropdown-menu > .disabled > a,
-.dropdown-menu > .disabled > a:hover,
-.dropdown-menu > .disabled > a:focus {
-  color: #808080;
+.pull-right {
+  float: right !important;
 }
-.dropdown-menu > .disabled > a:hover,
-.dropdown-menu > .disabled > a:focus {
-  text-decoration: none;
-  background-color: transparent;
-  background-image: none;
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  cursor: not-allowed;
+.pull-left {
+  float: left !important;
 }
-.open > .dropdown-menu {
-  display: block;
+.hide {
+  display: none !important;
 }
-.open > a {
-  outline: 0;
+.show {
+  display: block !important;
 }
-.dropdown-menu-right {
-  left: auto;
-  right: 0;
+.invisible {
+  visibility: hidden;
 }
-.dropdown-menu-left {
-  left: 0;
-  right: auto;
+.text-hide {
+  font: 0/0 a;
+  color: transparent;
+  text-shadow: none;
+  background-color: transparent;
+  border: 0;
 }
-.dropdown-header {
-  display: block;
-  padding: 3px 20px;
-  font-size: 12px;
-  line-height: 1.42857143;
-  color: #808080;
+.hidden {
+  display: none !important;
 }
-.dropdown-backdrop {
+.affix {
   position: fixed;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  top: 0;
-  z-index: 990;
 }
-.pull-right > .dropdown-menu {
-  right: 0;
-  left: auto;
+@-ms-viewport {
+  width: device-width;
 }
-.dropup .caret,
-.navbar-fixed-bottom .dropdown .caret {
-  border-top: 0;
-  border-bottom: 4px solid;
-  content: "";
+.visible-xs,
+.visible-sm,
+.visible-md,
+.visible-lg {
+  display: none !important;
 }
-.dropup .dropdown-menu,
-.navbar-fixed-bottom .dropdown .dropdown-menu {
-  top: auto;
-  bottom: 100%;
-  margin-bottom: 1px;
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+  display: none !important;
 }
-@media (min-width: 768px) {
-  .navbar-right .dropdown-menu {
-    left: auto;
-    right: 0;
+@media (max-width: 767px) {
+  .visible-xs {
+    display: block !important;
   }
-  .navbar-right .dropdown-menu-left {
-    left: 0;
-    right: auto;
+  table.visible-xs {
+    display: table !important;
+  }
+  tr.visible-xs {
+    display: table-row !important;
+  }
+  th.visible-xs,
+  td.visible-xs {
+    display: table-cell !important;
   }
 }
-.btn-group,
-.btn-group-vertical {
-  position: relative;
-  display: inline-block;
-  vertical-align: middle;
-}
-.btn-group > .btn,
-.btn-group-vertical > .btn {
-  position: relative;
-  float: left;
-}
-.btn-group > .btn:hover,
-.btn-group-vertical > .btn:hover,
-.btn-group > .btn:focus,
-.btn-group-vertical > .btn:focus,
-.btn-group > .btn:active,
-.btn-group-vertical > .btn:active,
-.btn-group > .btn.active,
-.btn-group-vertical > .btn.active {
-  z-index: 2;
-}
-.btn-group > .btn:focus,
-.btn-group-vertical > .btn:focus {
-  outline: none;
+@media (max-width: 767px) {
+  .visible-xs-block {
+    display: block !important;
+  }
 }
-.btn-group .btn + .btn,
-.btn-group .btn + .btn-group,
-.btn-group .btn-group + .btn,
-.btn-group .btn-group + .btn-group {
-  margin-left: -1px;
+@media (max-width: 767px) {
+  .visible-xs-inline {
+    display: inline !important;
+  }
 }
-.btn-toolbar {
-  margin-left: -5px;
+@media (max-width: 767px) {
+  .visible-xs-inline-block {
+    display: inline-block !important;
+  }
 }
-.btn-toolbar .btn-group,
-.btn-toolbar .input-group {
-  float: left;
+@media (min-width: 768px) and (max-width: 991px) {
+  .visible-sm {
+    display: block !important;
+  }
+  table.visible-sm {
+    display: table !important;
+  }
+  tr.visible-sm {
+    display: table-row !important;
+  }
+  th.visible-sm,
+  td.visible-sm {
+    display: table-cell !important;
+  }
 }
-.btn-toolbar > .btn,
-.btn-toolbar > .btn-group,
-.btn-toolbar > .input-group {
-  margin-left: 5px;
+@media (min-width: 768px) and (max-width: 991px) {
+  .visible-sm-block {
+    display: block !important;
+  }
 }
-.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
-  border-radius: 0;
+@media (min-width: 768px) and (max-width: 991px) {
+  .visible-sm-inline {
+    display: inline !important;
+  }
 }
-.btn-group > .btn:first-child {
-  margin-left: 0;
+@media (min-width: 768px) and (max-width: 991px) {
+  .visible-sm-inline-block {
+    display: inline-block !important;
+  }
 }
-.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
-  border-bottom-right-radius: 0;
-  border-top-right-radius: 0;
+@media (min-width: 992px) and (max-width: 1199px) {
+  .visible-md {
+    display: block !important;
+  }
+  table.visible-md {
+    display: table !important;
+  }
+  tr.visible-md {
+    display: table-row !important;
+  }
+  th.visible-md,
+  td.visible-md {
+    display: table-cell !important;
+  }
 }
-.btn-group > .btn:last-child:not(:first-child),
-.btn-group > .dropdown-toggle:not(:first-child) {
-  border-bottom-left-radius: 0;
-  border-top-left-radius: 0;
+@media (min-width: 992px) and (max-width: 1199px) {
+  .visible-md-block {
+    display: block !important;
+  }
 }
-.btn-group > .btn-group {
-  float: left;
+@media (min-width: 992px) and (max-width: 1199px) {
+  .visible-md-inline {
+    display: inline !important;
+  }
 }
-.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
-  border-radius: 0;
+@media (min-width: 992px) and (max-width: 1199px) {
+  .visible-md-inline-block {
+    display: inline-block !important;
+  }
 }
-.btn-group > .btn-group:first-child > .btn:last-child,
-.btn-group > .btn-group:first-child > .dropdown-toggle {
-  border-bottom-right-radius: 0;
-  border-top-right-radius: 0;
+@media (min-width: 1200px) {
+  .visible-lg {
+    display: block !important;
+  }
+  table.visible-lg {
+    display: table !important;
+  }
+  tr.visible-lg {
+    display: table-row !important;
+  }
+  th.visible-lg,
+  td.visible-lg {
+    display: table-cell !important;
+  }
 }
-.btn-group > .btn-group:last-child > .btn:first-child {
-  border-bottom-left-radius: 0;
-  border-top-left-radius: 0;
+@media (min-width: 1200px) {
+  .visible-lg-block {
+    display: block !important;
+  }
 }
-.btn-group .dropdown-toggle:active,
-.btn-group.open .dropdown-toggle {
-  outline: 0;
+@media (min-width: 1200px) {
+  .visible-lg-inline {
+    display: inline !important;
+  }
 }
-.btn-group > .btn + .dropdown-toggle {
-  padding-left: 8px;
-  padding-right: 8px;
+@media (min-width: 1200px) {
+  .visible-lg-inline-block {
+    display: inline-block !important;
+  }
 }
-.btn-group > .btn-lg + .dropdown-toggle {
-  padding-left: 12px;
-  padding-right: 12px;
+@media (max-width: 767px) {
+  .hidden-xs {
+    display: none !important;
+  }
 }
-.btn-group.open .dropdown-toggle {
-  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
-  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+@media (min-width: 768px) and (max-width: 991px) {
+  .hidden-sm {
+    display: none !important;
+  }
 }
-.btn-group.open .dropdown-toggle.btn-link {
-  -webkit-box-shadow: none;
-  box-shadow: none;
+@media (min-width: 992px) and (max-width: 1199px) {
+  .hidden-md {
+    display: none !important;
+  }
 }
-.btn .caret {
-  margin-left: 0;
+@media (min-width: 1200px) {
+  .hidden-lg {
+    display: none !important;
+  }
 }
-.btn-lg .caret {
-  border-width: 5px 5px 0;
-  border-bottom-width: 0;
+.visible-print {
+  display: none !important;
 }
-.dropup .btn-lg .caret {
-  border-width: 0 5px 5px;
+@media print {
+  .visible-print {
+    display: block !important;
+  }
+  table.visible-print {
+    display: table !important;
+  }
+  tr.visible-print {
+    display: table-row !important;
+  }
+  th.visible-print,
+  td.visible-print {
+    display: table-cell !important;
+  }
 }
-.btn-group-vertical > .btn,
-.btn-group-vertical > .btn-group,
-.btn-group-vertical > .btn-group > .btn {
-  display: block;
-  float: none;
-  width: 100%;
-  max-width: 100%;
+.visible-print-block {
+  display: none !important;
 }
-.btn-group-vertical > .btn-group > .btn {
-  float: none;
+@media print {
+  .visible-print-block {
+    display: block !important;
+  }
 }
-.btn-group-vertical > .btn + .btn,
-.btn-group-vertical > .btn + .btn-group,
-.btn-group-vertical > .btn-group + .btn,
-.btn-group-vertical > .btn-group + .btn-group {
-  margin-top: -1px;
-  margin-left: 0;
+.visible-print-inline {
+  display: none !important;
 }
-.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
-  border-radius: 0;
+@media print {
+  .visible-print-inline {
+    display: inline !important;
+  }
 }
-.btn-group-vertical > .btn:first-child:not(:last-child) {
-  border-top-right-radius: 4px;
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 0;
+.visible-print-inline-block {
+  display: none !important;
 }
-.btn-group-vertical > .btn:last-child:not(:first-child) {
-  border-bottom-left-radius: 4px;
-  border-top-right-radius: 0;
-  border-top-left-radius: 0;
+@media print {
+  .visible-print-inline-block {
+    display: inline-block !important;
+  }
 }
-.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
-  border-radius: 0;
+@media print {
+  .hidden-print {
+    display: none !important;
+  }
 }
-.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
-.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 0;
+.btn {
+  -webkit-box-shadow: 0px 1px 2px rgba(22, 49, 60, 0.1);
+  box-shadow: 0px 1px 2px rgba(22, 49, 60, 0.1);
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
+  border: 1px solid transparent;
+  border-top-color: #61c9f3;
 }
-.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
-  border-top-right-radius: 0;
-  border-top-left-radius: 0;
+.btn:active,
+.btn.active {
+  -webkit-box-shadow: none;
+  box-shadow: none;
 }
-.btn-group-justified {
-  display: table;
-  width: 100%;
-  table-layout: fixed;
-  border-collapse: separate;
+.btn.disabled,
+.btn[disabled],
+fieldset[disabled] .btn {
+  opacity: 0.65;
+  filter: alpha(opacity=65);
+  -webkit-box-shadow: none;
+  box-shadow: none;
 }
-.btn-group-justified > .btn,
-.btn-group-justified > .btn-group {
-  float: none;
-  display: table-cell;
-  width: 1%;
+.btn:hover,
+.btn:focus {
+  background: #26b5ef;
+  border: 1px solid transparent;
+  border-top-color: #67cbf4;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.btn-group-justified > .btn-group .btn {
-  width: 100%;
+.btn:active,
+.btn.active {
+  color: #c6ecfb;
+  background: #13aeed;
+  border: 1px solid #13aeed;
 }
-[data-toggle="buttons"] > .btn > input[type="radio"],
-[data-toggle="buttons"] > .btn > input[type="checkbox"] {
-  display: none;
+.btn.color1 {
+  background: #26ade4;
+  color: #ffffff;
+  color: #f1fafd;
+  border: 1px solid transparent;
+  border-top-color: #67c6ec;
 }
-.input-group {
-  position: relative;
-  display: table;
-  border-collapse: separate;
+.btn.color1:hover,
+.btn.color1:focus {
+  background: #2fb0e5;
+  border: 1px solid transparent;
+  border-top-color: #6dc8ed;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.input-group[class*="col-"] {
-  float: none;
-  padding-left: 0;
-  padding-right: 0;
+.btn.color1:active,
+.btn.color1.active {
+  color: #c9ebf8;
+  background: #1daae3;
+  border: 1px solid #1daae3;
 }
-.input-group .form-control {
-  position: relative;
-  z-index: 2;
-  float: left;
-  width: 100%;
-  margin-bottom: 0;
+.btn.color1a {
+  background: #0d8ec2;
+  color: #ffffff;
+  color: #f1fafd;
+  border: 1px solid transparent;
+  border-top-color: #56b0d4;
 }
-.input-group-lg > .form-control,
-.input-group-lg > .input-group-addon,
-.input-group-lg > .input-group-btn > .btn {
-  height: 54px;
-  padding: 14px 16px;
-  font-size: 18px;
-  line-height: 1.33;
-  border-radius: 6px;
+.btn.color1a:hover,
+.btn.color1a:focus {
+  background: #0e95cc;
+  border: 1px solid transparent;
+  border-top-color: #56b5db;
+  color: #ffffff;
+  color: #f1fafd;
 }
-select.input-group-lg > .form-control,
-select.input-group-lg > .input-group-addon,
-select.input-group-lg > .input-group-btn > .btn {
-  height: 54px;
-  line-height: 54px;
+.btn.color1a:active,
+.btn.color1a.active {
+  color: #c3e3f0;
+  background: #0d87b9;
+  border: 1px solid #0d87b9;
 }
-textarea.input-group-lg > .form-control,
-textarea.input-group-lg > .input-group-addon,
-textarea.input-group-lg > .input-group-btn > .btn,
-select[multiple].input-group-lg > .form-control,
-select[multiple].input-group-lg > .input-group-addon,
-select[multiple].input-group-lg > .input-group-btn > .btn {
-  height: auto;
+.btn.color1b {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
+  border: 1px solid transparent;
+  border-top-color: #61c9f3;
 }
-.input-group-sm > .form-control,
-.input-group-sm > .input-group-addon,
-.input-group-sm > .input-group-btn > .btn {
-  height: 30px;
-  padding: 5px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 3px;
+.btn.color1b:hover,
+.btn.color1b:focus {
+  background: #26b5ef;
+  border: 1px solid transparent;
+  border-top-color: #67cbf4;
+  color: #ffffff;
+  color: #f1fafd;
 }
-select.input-group-sm > .form-control,
-select.input-group-sm > .input-group-addon,
-select.input-group-sm > .input-group-btn > .btn {
-  height: 30px;
-  line-height: 30px;
+.btn.color1b:active,
+.btn.color1b.active {
+  color: #c6ecfb;
+  background: #13aeed;
+  border: 1px solid #13aeed;
 }
-textarea.input-group-sm > .form-control,
-textarea.input-group-sm > .input-group-addon,
-textarea.input-group-sm > .input-group-btn > .btn,
-select[multiple].input-group-sm > .form-control,
-select[multiple].input-group-sm > .input-group-addon,
-select[multiple].input-group-sm > .input-group-btn > .btn {
-  height: auto;
+.btn.color1c {
+  background: #6ec6ea;
+  color: #ffffff;
+  color: #f1fafd;
+  border: 1px solid transparent;
+  border-top-color: #9ad7f0;
 }
-.input-group-addon,
-.input-group-btn,
-.input-group .form-control {
-  display: table-cell;
+.btn.color1c:hover,
+.btn.color1c:focus {
+  background: #77c9eb;
+  border: 1px solid transparent;
+  border-top-color: #a0daf1;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.input-group-addon:not(:first-child):not(:last-child),
-.input-group-btn:not(:first-child):not(:last-child),
-.input-group .form-control:not(:first-child):not(:last-child) {
-  border-radius: 0;
+.btn.color1c:active,
+.btn.color1c.active {
+  color: #dbf1fa;
+  background: #65c2e8;
+  border: 1px solid #65c2e8;
 }
-.input-group-addon,
-.input-group-btn {
-  width: 1%;
-  white-space: nowrap;
-  vertical-align: middle;
+.btn.color2 {
+  background: #4841e7;
+  color: #ffffff;
+  color: #f2f1fd;
+  border: 1px solid transparent;
+  border-top-color: #7f7aee;
 }
-.input-group-addon {
-  padding: 8px 12px;
-  font-size: 14px;
-  font-weight: normal;
-  line-height: 1;
-  color: #808080;
-  text-align: center;
-  background-color: #dddddd;
-  border: 1px solid #dddddd;
-  border-radius: 4px;
+.btn.color2:hover,
+.btn.color2:focus {
+  background: #504ae9;
+  border: 1px solid transparent;
+  border-top-color: #8580ef;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.input-group-addon.input-sm {
-  padding: 5px 10px;
-  font-size: 12px;
-  border-radius: 3px;
+.btn.color2:active,
+.btn.color2.active {
+  color: #d1d0f9;
+  background: #3f38e6;
+  border: 1px solid #3f38e6;
 }
-.input-group-addon.input-lg {
-  padding: 14px 16px;
-  font-size: 18px;
-  border-radius: 6px;
+.btn.color2a {
+  background: #140dc2;
+  color: #ffffff;
+  color: #f2f1fd;
+  border: 1px solid transparent;
+  border-top-color: #5b56d4;
 }
-.input-group-addon input[type="radio"],
-.input-group-addon input[type="checkbox"] {
-  margin-top: 0;
+.btn.color2a:hover,
+.btn.color2a:focus {
+  background: #150ecc;
+  border: 1px solid transparent;
+  border-top-color: #5c56db;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.input-group .form-control:first-child,
-.input-group-addon:first-child,
-.input-group-btn:first-child > .btn,
-.input-group-btn:first-child > .btn-group > .btn,
-.input-group-btn:first-child > .dropdown-toggle,
-.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
-.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
-  border-bottom-right-radius: 0;
-  border-top-right-radius: 0;
+.btn.color2a:active,
+.btn.color2a.active {
+  color: #c4c3f0;
+  background: #130db9;
+  border: 1px solid #130db9;
 }
-.input-group-addon:first-child {
-  border-right: 0;
+.btn.color2b {
+  background: #251dee;
+  color: #ffffff;
+  color: #f2f1fd;
+  border: 1px solid transparent;
+  border-top-color: #6761f3;
 }
-.input-group .form-control:last-child,
-.input-group-addon:last-child,
-.input-group-btn:last-child > .btn,
-.input-group-btn:last-child > .btn-group > .btn,
-.input-group-btn:last-child > .dropdown-toggle,
-.input-group-btn:first-child > .btn:not(:first-child),
-.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
-  border-bottom-left-radius: 0;
-  border-top-left-radius: 0;
+.btn.color2b:hover,
+.btn.color2b:focus {
+  background: #2e26ef;
+  border: 1px solid transparent;
+  border-top-color: #6d67f4;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.input-group-addon:last-child {
-  border-left: 0;
+.btn.color2b:active,
+.btn.color2b.active {
+  color: #c9c6fb;
+  background: #1c13ed;
+  border: 1px solid #1c13ed;
 }
-.input-group-btn {
-  position: relative;
-  font-size: 0;
-  white-space: nowrap;
+.btn.color2c {
+  background: #736eea;
+  color: #ffffff;
+  color: #f2f1fd;
+  border: 1px solid transparent;
+  border-top-color: #9d9af0;
 }
-.input-group-btn > .btn {
-  position: relative;
+.btn.color2c:hover,
+.btn.color2c:focus {
+  background: #7c77eb;
+  border: 1px solid transparent;
+  border-top-color: #a3a0f1;
+  color: #ffffff;
+  color: #f2f1fd;
+}
+.btn.color2c:active,
+.btn.color2c.active {
+  color: #dcdbfa;
+  background: #6b65e8;
+  border: 1px solid #6b65e8;
+}
+.btn.color3 {
+  background: #41e79b;
+  color: #195137;
+  color: #f1fdf8;
+  border: 1px solid transparent;
+  border-top-color: #7aeeb9;
 }
-.input-group-btn > .btn + .btn {
-  margin-left: -1px;
+.btn.color3:hover,
+.btn.color3:focus {
+  background: #4ae9a0;
+  border: 1px solid transparent;
+  border-top-color: #80efbc;
+  color: #195137;
+  color: #f1fdf8;
+}
+.btn.color3:active,
+.btn.color3.active {
+  color: #d0f9e6;
+  background: #38e696;
+  border: 1px solid #38e696;
+}
+.btn.color3a {
+  background: #0dc26f;
+  color: #ffffff;
+  color: #f1fdf8;
+  border: 1px solid transparent;
+  border-top-color: #56d49a;
 }
-.input-group-btn > .btn:hover,
-.input-group-btn > .btn:focus,
-.input-group-btn > .btn:active {
-  z-index: 2;
+.btn.color3a:hover,
+.btn.color3a:focus {
+  background: #0ecc74;
+  border: 1px solid transparent;
+  border-top-color: #56db9e;
+  color: #ffffff;
+  color: #f1fdf8;
+}
+.btn.color3a:active,
+.btn.color3a.active {
+  color: #c3f0db;
+  background: #0db969;
+  border: 1px solid #0db969;
+}
+.btn.color3b {
+  background: #1dee8e;
+  color: #15462f;
+  color: #f1fdf8;
+  border: 1px solid transparent;
+  border-top-color: #61f3b0;
 }
-.input-group-btn:first-child > .btn,
-.input-group-btn:first-child > .btn-group {
-  margin-right: -1px;
+.btn.color3b:hover,
+.btn.color3b:focus {
+  background: #26ef92;
+  border: 1px solid transparent;
+  border-top-color: #67f4b3;
+  color: #15462f;
+  color: #f1fdf8;
+}
+.btn.color3b:active,
+.btn.color3b.active {
+  color: #c6fbe3;
+  background: #13ed89;
+  border: 1px solid #13ed89;
+}
+.btn.color3c {
+  background: #6eeab1;
+  color: #1d6444;
+  color: #f1fdf8;
+  border: 1px solid transparent;
+  border-top-color: #9af0c8;
 }
-.input-group-btn:last-child > .btn,
-.input-group-btn:last-child > .btn-group {
-  margin-left: -1px;
+.btn.color3c:hover,
+.btn.color3c:focus {
+  background: #77ebb6;
+  border: 1px solid transparent;
+  border-top-color: #a0f1cc;
+  color: #1d6444;
+  color: #f1fdf8;
+}
+.btn.color3c:active,
+.btn.color3c.active {
+  color: #dbfaeb;
+  background: #65e8ac;
+  border: 1px solid #65e8ac;
+}
+.btn.color4 {
+  background: #e77141;
+  color: #ffffff;
+  color: #fdf5f1;
+  border: 1px solid transparent;
+  border-top-color: #ee9c7a;
 }
-.nav {
-  margin-bottom: 0;
-  padding-left: 0;
-  list-style: none;
+.btn.color4:hover,
+.btn.color4:focus {
+  background: #e9784a;
+  border: 1px solid transparent;
+  border-top-color: #efa180;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.nav > li {
-  position: relative;
-  display: block;
+.btn.color4:active,
+.btn.color4.active {
+  color: #f9dcd0;
+  background: #e66b38;
+  border: 1px solid #e66b38;
 }
-.nav > li > a {
-  position: relative;
-  display: block;
-  padding: 10px 15px;
+.btn.color4a {
+  background: #c2420d;
+  color: #ffffff;
+  color: #fdf5f1;
+  border: 1px solid transparent;
+  border-top-color: #d47a56;
 }
-.nav > li > a:hover,
-.nav > li > a:focus {
-  text-decoration: none;
-  background-color: #dddddd;
+.btn.color4a:hover,
+.btn.color4a:focus {
+  background: #cc450e;
+  border: 1px solid transparent;
+  border-top-color: #db7d56;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.nav > li.disabled > a {
-  color: #808080;
+.btn.color4a:active,
+.btn.color4a.active {
+  color: #f0d0c3;
+  background: #b93e0d;
+  border: 1px solid #b93e0d;
 }
-.nav > li.disabled > a:hover,
-.nav > li.disabled > a:focus {
-  color: #808080;
-  text-decoration: none;
-  background-color: transparent;
-  cursor: not-allowed;
+.btn.color4b {
+  background: #ee591d;
+  color: #ffffff;
+  color: #fdf5f1;
+  border: 1px solid transparent;
+  border-top-color: #f38b61;
 }
-.nav .open > a,
-.nav .open > a:hover,
-.nav .open > a:focus {
-  background-color: #dddddd;
-  border-color: #d9230f;
+.btn.color4b:hover,
+.btn.color4b:focus {
+  background: #ef6026;
+  border: 1px solid transparent;
+  border-top-color: #f49067;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.nav .nav-divider {
-  height: 1px;
-  margin: 9px 0;
-  overflow: hidden;
-  background-color: #e5e5e5;
+.btn.color4b:active,
+.btn.color4b.active {
+  color: #fbd6c6;
+  background: #ed5213;
+  border: 1px solid #ed5213;
 }
-.nav > li > a > img {
-  max-width: none;
+.btn.color4c {
+  background: #ea926e;
+  color: #ffffff;
+  color: #fdf5f1;
+  border: 1px solid transparent;
+  border-top-color: #f0b39a;
 }
-.nav-tabs {
-  border-bottom: 1px solid #dddddd;
+.btn.color4c:hover,
+.btn.color4c:focus {
+  background: #eb9977;
+  border: 1px solid transparent;
+  border-top-color: #f1b7a0;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.nav-tabs > li {
-  float: left;
-  margin-bottom: -1px;
+.btn.color4c:active,
+.btn.color4c.active {
+  color: #fae4db;
+  background: #e88b65;
+  border: 1px solid #e88b65;
 }
-.nav-tabs > li > a {
-  margin-right: 2px;
-  line-height: 1.42857143;
+.btn.btn-primary {
+  background: #419ae7;
+  color: #ffffff;
+  color: #f1f8fd;
   border: 1px solid transparent;
-  border-radius: 4px 4px 0 0;
+  border-top-color: #7ab9ee;
 }
-.nav-tabs > li > a:hover {
-  border-color: #dddddd #dddddd #dddddd;
+.btn.btn-primary:hover,
+.btn.btn-primary:focus {
+  background: #4a9fe9;
+  border: 1px solid transparent;
+  border-top-color: #80bcef;
+  color: #ffffff;
+  color: #f1f8fd;
 }
-.nav-tabs > li.active > a,
-.nav-tabs > li.active > a:hover,
-.nav-tabs > li.active > a:focus {
-  color: #555555;
-  background-color: #fcfcfc;
-  border: 1px solid #dddddd;
-  border-bottom-color: transparent;
-  cursor: default;
+.btn.btn-primary:active,
+.btn.btn-primary.active {
+  color: #d0e6f9;
+  background: #3896e6;
+  border: 1px solid #3896e6;
 }
-.nav-tabs.nav-justified {
-  width: 100%;
-  border-bottom: 0;
+.btn.btn-info {
+  background: #41c1e7;
+  color: #ffffff;
+  color: #f1fbfd;
+  border: 1px solid transparent;
+  border-top-color: #7ad4ee;
 }
-.nav-tabs.nav-justified > li {
-  float: none;
+.btn.btn-info:hover,
+.btn.btn-info:focus {
+  background: #4ac4e9;
+  border: 1px solid transparent;
+  border-top-color: #80d6ef;
+  color: #ffffff;
+  color: #f1fbfd;
 }
-.nav-tabs.nav-justified > li > a {
-  text-align: center;
-  margin-bottom: 5px;
+.btn.btn-info:active,
+.btn.btn-info.active {
+  color: #d0f0f9;
+  background: #38bee6;
+  border: 1px solid #38bee6;
 }
-.nav-tabs.nav-justified > .dropdown .dropdown-menu {
-  top: auto;
-  left: auto;
+.btn.btn-success {
+  background: #2dad2d;
+  color: #ffffff;
+  color: #f1fdf1;
+  border: 1px solid transparent;
+  border-top-color: #6cc56c;
 }
-@media (min-width: 768px) {
-  .nav-tabs.nav-justified > li {
-    display: table-cell;
-    width: 1%;
-  }
-  .nav-tabs.nav-justified > li > a {
-    margin-bottom: 0;
-  }
+.btn.btn-success:hover,
+.btn.btn-success:focus {
+  background: #2fb52f;
+  border: 1px solid transparent;
+  border-top-color: #6ecb6e;
+  color: #ffffff;
+  color: #f1fdf1;
 }
-.nav-tabs.nav-justified > li > a {
-  margin-right: 0;
-  border-radius: 4px;
+.btn.btn-success:active,
+.btn.btn-success.active {
+  color: #cbeacb;
+  background: #2ba52b;
+  border: 1px solid #2ba52b;
 }
-.nav-tabs.nav-justified > .active > a,
-.nav-tabs.nav-justified > .active > a:hover,
-.nav-tabs.nav-justified > .active > a:focus {
-  border: 1px solid #dddddd;
+.btn.btn-warning {
+  background: #ea8f0d;
+  color: #ffffff;
+  color: #fdf8f1;
+  border: 1px solid transparent;
+  border-top-color: #f0b156;
 }
-@media (min-width: 768px) {
-  .nav-tabs.nav-justified > li > a {
-    border-bottom: 1px solid #dddddd;
-    border-radius: 4px 4px 0 0;
-  }
-  .nav-tabs.nav-justified > .active > a,
-  .nav-tabs.nav-justified > .active > a:hover,
-  .nav-tabs.nav-justified > .active > a:focus {
-    border-bottom-color: #fcfcfc;
-  }
+.btn.btn-warning:hover,
+.btn.btn-warning:focus {
+  background: #f19411;
+  border: 1px solid transparent;
+  border-top-color: #f5b458;
+  color: #ffffff;
+  color: #fdf8f1;
 }
-.nav-pills > li {
-  float: left;
+.btn.btn-warning:active,
+.btn.btn-warning.active {
+  color: #fae3c3;
+  background: #e1890d;
+  border: 1px solid #e1890d;
 }
-.nav-pills > li > a {
-  border-radius: 4px;
+.btn.btn-danger {
+  background: #c42621;
+  color: #ffffff;
+  color: #fdf2f1;
+  border: 1px solid transparent;
+  border-top-color: #d56764;
 }
-.nav-pills > li + li {
-  margin-left: 2px;
+.btn.btn-danger:hover,
+.btn.btn-danger:focus {
+  background: #cc2722;
+  border: 1px solid transparent;
+  border-top-color: #dc6865;
+  color: #ffffff;
+  color: #fdf2f1;
 }
-.nav-pills > li.active > a,
-.nav-pills > li.active > a:hover,
-.nav-pills > li.active > a:focus {
+.btn.btn-danger:active,
+.btn.btn-danger.active {
+  color: #f0c9c7;
+  background: #bb241f;
+  border: 1px solid #bb241f;
+}
+.btn.btn-inverse {
+  background: #686868;
   color: #ffffff;
-  background-color: #d9230f;
+  color: #fdf1f1;
+  border: 1px solid transparent;
+  border-top-color: #959595;
 }
-.nav-stacked > li {
-  float: none;
+.btn.btn-inverse:hover,
+.btn.btn-inverse:focus {
+  background: #6d6d6d;
+  border: 1px solid transparent;
+  border-top-color: #999999;
+  color: #ffffff;
+  color: #fdf1f1;
 }
-.nav-stacked > li + li {
-  margin-top: 2px;
-  margin-left: 0;
+.btn.btn-inverse:active,
+.btn.btn-inverse.active {
+  color: #d9d9d9;
+  background: #636363;
+  border: 1px solid #636363;
 }
-.nav-justified {
-  width: 100%;
+body,
+html {
+  background: #f7f7f7;
+  color: #666666;
+  color: #6d6d6d;
+  -webkit-font-smoothing: antialiased;
+  -moz-font-smoothing: antialiased;
+  font-smoothing: antialiased;
 }
-.nav-justified > li {
-  float: none;
+a {
+  color: #272727;
 }
-.nav-justified > li > a {
-  text-align: center;
-  margin-bottom: 5px;
+a:hover {
+  color: #272727;
 }
-.nav-justified > .dropdown .dropdown-menu {
-  top: auto;
-  left: auto;
+blockquote {
+  padding: 6px 8px;
+  background: #6ec6ea;
+  border-left: 4px solid #0d8ec2;
+  color: #ffffff;
+  color: #f1fafd;
 }
-@media (min-width: 768px) {
-  .nav-justified > li {
-    display: table-cell;
-    width: 1%;
-  }
-  .nav-justified > li > a {
-    margin-bottom: 0;
-  }
+blockquote cite {
+  font-style: italic;
 }
-.nav-tabs-justified {
-  border-bottom: 0;
+blockquote.pull-right {
+  border-left: none;
+  border-right: 4px solid #0d8ec2;
 }
-.nav-tabs-justified > li > a {
-  margin-right: 0;
-  border-radius: 4px;
+blockquote small {
+  color: #ffffff;
+  color: #f1fafd;
+  text-shadow: none;
 }
-.nav-tabs-justified > .active > a,
-.nav-tabs-justified > .active > a:hover,
-.nav-tabs-justified > .active > a:focus {
-  border: 1px solid #dddddd;
+blockquote.color1 {
+  background: #6ec6ea;
+  border-left: 4px solid #0d8ec2;
+  color: #ffffff;
+  color: #f1fafd;
 }
-@media (min-width: 768px) {
-  .nav-tabs-justified > li > a {
-    border-bottom: 1px solid #dddddd;
-    border-radius: 4px 4px 0 0;
-  }
-  .nav-tabs-justified > .active > a,
-  .nav-tabs-justified > .active > a:hover,
-  .nav-tabs-justified > .active > a:focus {
-    border-bottom-color: #fcfcfc;
-  }
+blockquote.color1.pull-right {
+  border-left: none;
+  border-right: 4px solid #0d8ec2;
 }
-.tab-content > .tab-pane {
-  display: none;
+blockquote.color1 small {
+  color: #ffffff;
+  color: #f1fafd;
+  text-shadow: none;
 }
-.tab-content > .active {
-  display: block;
+blockquote.color2 {
+  background: #736eea;
+  border-left: 4px solid #140dc2;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.nav-tabs .dropdown-menu {
-  margin-top: -1px;
-  border-top-right-radius: 0;
-  border-top-left-radius: 0;
+blockquote.color2.pull-right {
+  border-left: none;
+  border-right: 4px solid #140dc2;
 }
-.navbar {
-  position: relative;
-  min-height: 40px;
-  margin-bottom: 20px;
-  border: 1px solid transparent;
+blockquote.color2 small {
+  color: #ffffff;
+  color: #f2f1fd;
+  text-shadow: none;
 }
-@media (min-width: 768px) {
-  .navbar {
-    border-radius: 4px;
-  }
+blockquote.color3 {
+  background: #6eeab1;
+  border-left: 4px solid #0dc26f;
+  color: #1d6444;
+  color: #f1fdf8;
 }
-@media (min-width: 768px) {
-  .navbar-header {
-    float: left;
-  }
+blockquote.color3.pull-right {
+  border-left: none;
+  border-right: 4px solid #0dc26f;
+}
+blockquote.color3 small {
+  color: #1d6444;
+  color: #f1fdf8;
+  text-shadow: none;
 }
-.navbar-collapse {
-  max-height: 340px;
-  overflow-x: visible;
-  padding-right: 15px;
-  padding-left: 15px;
-  border-top: 1px solid transparent;
-  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
-  -webkit-overflow-scrolling: touch;
+blockquote.color4 {
+  background: #ea926e;
+  border-left: 4px solid #c2420d;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.navbar-collapse.in {
-  overflow-y: auto;
+blockquote.color4.pull-right {
+  border-left: none;
+  border-right: 4px solid #c2420d;
 }
-@media (min-width: 768px) {
-  .navbar-collapse {
-    width: auto;
-    border-top: 0;
-    box-shadow: none;
-  }
-  .navbar-collapse.collapse {
-    display: block !important;
-    height: auto !important;
-    padding-bottom: 0;
-    overflow: visible !important;
-  }
-  .navbar-collapse.in {
-    overflow-y: visible;
-  }
-  .navbar-fixed-top .navbar-collapse,
-  .navbar-static-top .navbar-collapse,
-  .navbar-fixed-bottom .navbar-collapse {
-    padding-left: 0;
-    padding-right: 0;
-  }
+blockquote.color4 small {
+  color: #ffffff;
+  color: #fdf5f1;
+  text-shadow: none;
 }
-.container > .navbar-header,
-.container-fluid > .navbar-header,
-.container > .navbar-collapse,
-.container-fluid > .navbar-collapse {
-  margin-right: -15px;
-  margin-left: -15px;
+/*input[type="checkbox"] { //experimental flat look for checkboxes
+    margin-right:13px;
+    margin-top:5px;
+    background:white;
+
+    &:before {
+        display:block;
+        content:"";
+        width:22px;
+        height:22px;
+        //border:2px solid @1pxdeep-bg;
+        border-radius:@border-radius-base;
+        background:white;
+        position:relative;
+        top:-4px;
+        left:-1px;
+        .box-shadow(inset 1px 1px 0px @1pxdeep-bg);
+    }
+
+    &:checked {
+        &:after {
+            display:block;
+            content:"";
+            width:8px;
+            height:13px;
+            border-radius:0;
+            background:white;
+            position:relative;
+            top:-23px;
+            left:7px;
+            .box-shadow(inset -3px -3px 0px @1pxdeep-bg);
+            border:none;
+            border-radius:0;
+            .rotate(45deg);
+        }
+    }
+}*/
+.form-control {
+  -webkit-box-shadow: none;
+  box-shadow: none;
 }
-@media (min-width: 768px) {
-  .container > .navbar-header,
-  .container-fluid > .navbar-header,
-  .container > .navbar-collapse,
-  .container-fluid > .navbar-collapse {
-    margin-right: 0;
-    margin-left: 0;
-  }
+h1 small,
+h2 small,
+h3 small,
+h4 small,
+h5 small,
+h6 small,
+.h1 small,
+.h2 small,
+.h3 small,
+.h4 small,
+.h5 small,
+.h6 small {
+  color: inherit;
 }
-.navbar-static-top {
-  z-index: 1000;
-  border-width: 0 0 1px;
+.dropdown-menu {
+  -webkit-box-shadow: none;
+  box-shadow: none;
+  border: none;
 }
-@media (min-width: 768px) {
-  .navbar-static-top {
-    border-radius: 0;
-  }
+.dropdown-menu li {
+  border: none;
 }
-.navbar-fixed-top,
-.navbar-fixed-bottom {
-  position: fixed;
-  right: 0;
-  left: 0;
-  z-index: 1030;
+.dropdown-menu li:hover a {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
 }
-@media (min-width: 768px) {
-  .navbar-fixed-top,
-  .navbar-fixed-bottom {
-    border-radius: 0;
-  }
+.dropdown-menu.color1 li:hover a {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.navbar-fixed-top {
-  top: 0;
-  border-width: 0 0 1px;
+.dropdown-menu.color2 li:hover a {
+  background: #251dee;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.navbar-fixed-bottom {
-  bottom: 0;
-  margin-bottom: 0;
-  border-width: 1px 0 0;
+.dropdown-menu.color3 li:hover a {
+  background: #1dee8e;
+  color: #15462f;
+  color: #f1fdf8;
 }
-.navbar-brand {
-  float: left;
-  padding: 10px 15px;
-  font-size: 18px;
-  line-height: 20px;
-  height: 40px;
+.dropdown-menu.color4 li:hover a {
+  background: #ee591d;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.navbar-brand:hover,
-.navbar-brand:focus {
-  text-decoration: none;
+.btn-group.open .dropdown-toggle {
+  -webkit-box-shadow: none;
+  box-shadow: none;
 }
-@media (min-width: 768px) {
-  .navbar > .container .navbar-brand,
-  .navbar > .container-fluid .navbar-brand {
-    margin-left: -15px;
-  }
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+  border-top: none;
+  border-bottom-color: white;
 }
-.navbar-toggle {
-  position: relative;
-  float: right;
-  margin-right: 15px;
-  padding: 9px 10px;
-  margin-top: 3px;
-  margin-bottom: 3px;
-  background-color: transparent;
-  background-image: none;
-  border: 1px solid transparent;
-  border-radius: 4px;
+.btn-default .caret {
+  border-top-color: white;
 }
-.navbar-toggle:focus {
-  outline: none;
+.well {
+  border: none;
+  -webkit-box-shadow: inset 0px 0px 3px rgba(22, 49, 60, 0.25);
+  box-shadow: inset 0px 0px 3px rgba(22, 49, 60, 0.25);
+  background: #0d8ec2;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.navbar-toggle .icon-bar {
-  display: block;
-  width: 22px;
-  height: 2px;
-  border-radius: 1px;
+.well a {
+  color: #c9ebf8;
 }
-.navbar-toggle .icon-bar + .icon-bar {
-  margin-top: 4px;
+.navbar {
+  border: none;
+  background: #0d8ec2;
+  color: #ffffff;
+  color: #f1fafd;
 }
-@media (min-width: 768px) {
-  .navbar-toggle {
-    display: none;
-  }
+.navbar.color1 {
+  background: #0d8ec2;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.navbar-nav {
-  margin: 5px -15px;
+.navbar.color2 {
+  background: #140dc2;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.navbar-nav > li > a {
-  padding-top: 10px;
-  padding-bottom: 10px;
-  line-height: 20px;
+.navbar.color3 {
+  background: #0dc26f;
+  color: #ffffff;
+  color: #f1fdf8;
 }
-@media (max-width: 767px) {
-  .navbar-nav .open .dropdown-menu {
-    position: static;
-    float: none;
-    width: auto;
-    margin-top: 0;
-    background-color: transparent;
-    border: 0;
-    box-shadow: none;
-  }
-  .navbar-nav .open .dropdown-menu > li > a,
-  .navbar-nav .open .dropdown-menu .dropdown-header {
-    padding: 5px 15px 5px 25px;
-  }
-  .navbar-nav .open .dropdown-menu > li > a {
-    line-height: 20px;
-  }
-  .navbar-nav .open .dropdown-menu > li > a:hover,
-  .navbar-nav .open .dropdown-menu > li > a:focus {
-    background-image: none;
-  }
+.navbar.color4 {
+  background: #c2420d;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-@media (min-width: 768px) {
-  .navbar-nav {
-    float: left;
-    margin: 0;
-  }
-  .navbar-nav > li {
-    float: left;
-  }
-  .navbar-nav > li > a {
-    padding-top: 10px;
-    padding-bottom: 10px;
-  }
-  .navbar-nav.navbar-right:last-child {
-    margin-right: -15px;
-  }
+.navbar-brand {
+  color: inherit;
 }
-@media (min-width: 768px) {
-  .navbar-left {
-    float: left;
-    float: left !important;
-  }
-  .navbar-right {
-    float: right;
-    float: right !important;
-  }
+.navbar-nav .active {
+  overflow-y: hidden;
 }
-.navbar-form {
-  margin-left: -15px;
-  margin-right: -15px;
-  padding: 10px 15px;
-  border-top: 1px solid transparent;
-  border-bottom: 1px solid transparent;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
-  margin-top: 1px;
-  margin-bottom: 1px;
+.navbar-nav .active > a {
+  -webkit-box-shadow: 0px 1px 2px rgba(22, 49, 60, 0.5);
+  box-shadow: 0px 1px 2px rgba(22, 49, 60, 0.5);
+  color: #666666;
+  color: #6d6d6d;
+  background-color: #f7f7f7;
 }
-@media (min-width: 768px) {
-  .navbar-form .form-group {
-    display: inline-block;
-    margin-bottom: 0;
-    vertical-align: middle;
-  }
-  .navbar-form .form-control {
-    display: inline-block;
-    width: auto;
-    vertical-align: middle;
-  }
-  .navbar-form .input-group > .form-control {
-    width: 100%;
-  }
-  .navbar-form .control-label {
-    margin-bottom: 0;
-    vertical-align: middle;
-  }
-  .navbar-form .radio,
-  .navbar-form .checkbox {
-    display: inline-block;
-    margin-top: 0;
-    margin-bottom: 0;
-    padding-left: 0;
-    vertical-align: middle;
-  }
-  .navbar-form .radio input[type="radio"],
-  .navbar-form .checkbox input[type="checkbox"] {
-    float: none;
-    margin-left: 0;
-  }
-  .navbar-form .has-feedback .form-control-feedback {
-    top: 0;
-  }
+.navbar-nav .active > a:hover {
+  color: #666666;
+  color: #6d6d6d;
+  background-color: #f7f7f7;
 }
-@media (max-width: 767px) {
-  .navbar-form .form-group {
-    margin-bottom: 5px;
-  }
+.navbar-nav li > a {
+  color: #8e8e8e;
+  line-height: 25px;
+  z-index: 100;
 }
-@media (min-width: 768px) {
-  .navbar-form {
-    width: auto;
-    border: 0;
-    margin-left: 0;
-    margin-right: 0;
-    padding-top: 0;
-    padding-bottom: 0;
-    -webkit-box-shadow: none;
-    box-shadow: none;
-  }
-  .navbar-form.navbar-right:last-child {
-    margin-right: -15px;
-  }
+.navbar-nav li > a:hover,
+.navbar-nav li > a:focus {
+  color: #6a6a6a;
+  color: #717171;
+  background-color: #ffffff;
 }
-.navbar-nav > li > .dropdown-menu {
-  margin-top: 0;
-  border-top-right-radius: 0;
-  border-top-left-radius: 0;
+.navbar-nav.color1 .active > a {
+  -webkit-box-shadow: 0px 1px 2px rgba(22, 49, 60, 0.5);
+  box-shadow: 0px 1px 2px rgba(22, 49, 60, 0.5);
+  color: #ffffff;
+  color: #f1fafd;
+  background-color: #26ade4;
 }
-.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 0;
+.navbar-nav.color1 .active > a:hover {
+  color: #ffffff;
+  color: #f1fafd;
+  background-color: #26ade4;
 }
-.navbar-btn {
-  margin-top: 1px;
-  margin-bottom: 1px;
+.navbar-nav.color1 li > a {
+  color: #c5e3ef;
+  line-height: 25px;
+  z-index: 100;
 }
-.navbar-btn.btn-sm {
-  margin-top: 5px;
-  margin-bottom: 5px;
+.navbar-nav.color1 li > a:hover,
+.navbar-nav.color1 li > a:focus {
+  color: #ffffff;
+  color: #f1fafd;
+  background-color: #38b4e6;
 }
-.navbar-btn.btn-xs {
-  margin-top: 9px;
-  margin-bottom: 9px;
+.navbar-nav.color2 .active > a {
+  -webkit-box-shadow: 0px 1px 2px rgba(22, 49, 60, 0.5);
+  box-shadow: 0px 1px 2px rgba(22, 49, 60, 0.5);
+  color: #ffffff;
+  color: #f2f1fd;
+  background-color: #4841e7;
 }
-.navbar-text {
-  margin-top: 10px;
-  margin-bottom: 10px;
+.navbar-nav.color2 .active > a:hover {
+  color: #ffffff;
+  color: #f2f1fd;
+  background-color: #4841e7;
 }
-@media (min-width: 768px) {
-  .navbar-text {
-    float: left;
-    margin-left: 15px;
-    margin-right: 15px;
-  }
-  .navbar-text.navbar-right:last-child {
-    margin-right: 0;
-  }
+.navbar-nav.color2 li > a {
+  color: #c8c6f6;
+  line-height: 25px;
+  z-index: 100;
 }
-.navbar-default {
-  background-color: #ffffff;
-  border-color: #eeeeee;
+.navbar-nav.color2 li > a:hover,
+.navbar-nav.color2 li > a:focus {
+  color: #ffffff;
+  color: #f2f1fd;
+  background-color: #5953ea;
+}
+.navbar-nav.color3 .active > a {
+  -webkit-box-shadow: 0px 1px 2px rgba(22, 49, 60, 0.5);
+  box-shadow: 0px 1px 2px rgba(22, 49, 60, 0.5);
+  color: #195137;
+  color: #f1fdf8;
+  background-color: #41e79b;
+}
+.navbar-nav.color3 .active > a:hover {
+  color: #195137;
+  color: #f1fdf8;
+  background-color: #41e79b;
+}
+.navbar-nav.color3 li > a {
+  color: #c6f6e0;
+  line-height: 25px;
+  z-index: 100;
 }
-.navbar-default .navbar-brand {
-  color: #333333;
+.navbar-nav.color3 li > a:hover,
+.navbar-nav.color3 li > a:focus {
+  color: #1a5a3d;
+  color: #f1fdf8;
+  background-color: #53eaa4;
 }
-.navbar-default .navbar-brand:hover,
-.navbar-default .navbar-brand:focus {
-  color: #d9230f;
-  background-color: transparent;
+.navbar-nav.color4 .active > a {
+  -webkit-box-shadow: 0px 1px 2px rgba(22, 49, 60, 0.5);
+  box-shadow: 0px 1px 2px rgba(22, 49, 60, 0.5);
+  color: #ffffff;
+  color: #fdf5f1;
+  background-color: #e77141;
 }
-.navbar-default .navbar-text {
-  color: #808080;
+.navbar-nav.color4 .active > a:hover {
+  color: #ffffff;
+  color: #fdf5f1;
+  background-color: #e77141;
 }
-.navbar-default .navbar-nav > li > a {
-  color: #333333;
+.navbar-nav.color4 li > a {
+  color: #f6d4c6;
+  line-height: 25px;
+  z-index: 100;
 }
-.navbar-default .navbar-nav > li > a:hover,
-.navbar-default .navbar-nav > li > a:focus {
-  color: #d9230f;
-  background-color: transparent;
+.navbar-nav.color4 li > a:hover,
+.navbar-nav.color4 li > a:focus {
+  color: #ffffff;
+  color: #fdf5f1;
+  background-color: #ea7f53;
 }
-.navbar-default .navbar-nav > .active > a,
-.navbar-default .navbar-nav > .active > a:hover,
-.navbar-default .navbar-nav > .active > a:focus {
-  color: #d9230f;
-  background-color: transparent;
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+  -webkit-box-shadow: inset 0px 0px 3px rgba(22, 49, 60, 0.2);
+  box-shadow: inset 0px 0px 3px rgba(22, 49, 60, 0.2);
 }
-.navbar-default .navbar-nav > .disabled > a,
-.navbar-default .navbar-nav > .disabled > a:hover,
-.navbar-default .navbar-nav > .disabled > a:focus {
-  color: #444444;
-  background-color: transparent;
+.navbar-fixed-top .navbar-inner,
+.navbar-fixed-bottom .navbar-inner {
+  padding: 0;
 }
-.navbar-default .navbar-toggle {
-  border-color: #dddddd;
+.navbar-toggle {
+  background-color: #26ade4;
+  border: 1px solid transparent;
+  border-top-color: #67c6ec;
 }
-.navbar-default .navbar-toggle:hover,
-.navbar-default .navbar-toggle:focus {
-  background-color: #dddddd;
+.navbar-toggle:hover,
+.navbar-toggle:focus {
+  background-color: #2fb0e5;
 }
-.navbar-default .navbar-toggle .icon-bar {
-  background-color: #cccccc;
+.navbar-toggle:active,
+.navbar-toggle .active {
+  background-color: #1daae3;
+  border-top-color: #1daae3;
 }
-.navbar-default .navbar-collapse,
-.navbar-default .navbar-form {
-  border-color: #eeeeee;
+.navbar-toggle .icon-bar {
+  background-color: white;
 }
-.navbar-default .navbar-nav > .open > a,
-.navbar-default .navbar-nav > .open > a:hover,
-.navbar-default .navbar-nav > .open > a:focus {
-  background-color: transparent;
-  color: #d9230f;
+.navbar-collapse {
+  border-top: none;
 }
-@media (max-width: 767px) {
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
-    color: #333333;
-  }
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
-    color: #d9230f;
-    background-color: transparent;
-  }
-  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
-  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
-  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
-    color: #d9230f;
-    background-color: transparent;
-  }
-  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
-  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
-  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
-    color: #444444;
-    background-color: transparent;
-  }
+.nav-pills {
+  text-shadow: none;
+  color: black;
 }
-.navbar-default .navbar-link {
-  color: #333333;
+.nav-pills > li > a:hover {
+  background: #53beea;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.navbar-default .navbar-link:hover {
-  color: #d9230f;
+.nav-pills > li.active > a {
+  background: #6ec6ea;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.navbar-inverse {
-  background-color: #d9230f;
-  border-color: #a91b0c;
+.nav-pills > li.active > a:hover {
+  background: #77c9eb;
+  color: #1e5369;
+  color: #f1fafd;
 }
-.navbar-inverse .navbar-brand {
+.nav-pills.color1 > li > a:hover {
+  background: #53beea;
   color: #ffffff;
+  color: #f1fafd;
 }
-.navbar-inverse .navbar-brand:hover,
-.navbar-inverse .navbar-brand:focus {
+.nav-pills.color1 > li.active > a {
+  background: #6ec6ea;
   color: #ffffff;
-  background-color: transparent;
+  color: #f1fafd;
 }
-.navbar-inverse .navbar-text {
+.nav-pills.color1 > li.active > a:hover {
+  background: #77c9eb;
+  color: #1e5369;
+  color: #f1fafd;
+}
+.nav-pills.color2 > li > a:hover {
+  background: #746fed;
   color: #ffffff;
+  color: #f2f1fd;
 }
-.navbar-inverse .navbar-nav > li > a {
+.nav-pills.color2 > li.active > a {
+  background: #736eea;
   color: #ffffff;
+  color: #f2f1fd;
 }
-.navbar-inverse .navbar-nav > li > a:hover,
-.navbar-inverse .navbar-nav > li > a:focus {
-  color: #fac0ba;
-  background-color: transparent;
+.nav-pills.color2 > li.active > a:hover {
+  background: #7c77eb;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.navbar-inverse .navbar-nav > .active > a,
-.navbar-inverse .navbar-nav > .active > a:hover,
-.navbar-inverse .navbar-nav > .active > a:focus {
-  color: #fac0ba;
-  background-color: transparent;
+.nav-pills.color3 > li > a:hover {
+  background: #6fedb3;
+  color: #1c6845;
+  color: #f1fdf8;
 }
-.navbar-inverse .navbar-nav > .disabled > a,
-.navbar-inverse .navbar-nav > .disabled > a:hover,
-.navbar-inverse .navbar-nav > .disabled > a:focus {
-  color: #cccccc;
-  background-color: transparent;
+.nav-pills.color3 > li.active > a {
+  background: #736eea;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.navbar-inverse .navbar-toggle {
-  border-color: #a91b0c;
+.nav-pills.color3 > li.active > a:hover {
+  background: #7c77eb;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.navbar-inverse .navbar-toggle:hover,
-.navbar-inverse .navbar-toggle:focus {
-  background-color: #a91b0c;
+.nav-pills.color4 > li > a:hover {
+  background: #ed936f;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.navbar-inverse .navbar-toggle .icon-bar {
-  background-color: #ffffff;
+.nav-pills.color4 > li.active > a {
+  background: #736eea;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.navbar-inverse .navbar-collapse,
-.navbar-inverse .navbar-form {
-  border-color: #b81e0d;
+.nav-pills.color4 > li.active > a:hover {
+  background: #7c77eb;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.navbar-inverse .navbar-nav > .open > a,
-.navbar-inverse .navbar-nav > .open > a:hover,
-.navbar-inverse .navbar-nav > .open > a:focus {
-  background-color: transparent;
-  color: #fac0ba;
+.alert {
+  border: none;
+  text-shadow: none;
+  background: #fbfcd6;
+  color: #888a35;
+  color: #828349;
+  background: #edf07d;
+  color: #6d701c;
+  color: #797b1e;
+}
+.alert .close {
+  opacity: 100;
+  filter: alpha(opacity=10000);
+  text-shadow: none;
+  margin-top: -1px;
 }
-@media (max-width: 767px) {
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
-    border-color: #a91b0c;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
-    background-color: #a91b0c;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
-    color: #ffffff;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
-    color: #fac0ba;
-    background-color: transparent;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
-    color: #fac0ba;
-    background-color: transparent;
-  }
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
-  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
-    color: #cccccc;
-    background-color: transparent;
-  }
+.alert .close {
+  color: #888a35;
+  color: #828349;
 }
-.navbar-inverse .navbar-link {
+.alert .close {
+  color: #6d701c;
+  color: #797b1e;
+}
+.alert.color1 {
+  background: #26ade4;
   color: #ffffff;
+  color: #f1fafd;
 }
-.navbar-inverse .navbar-link:hover {
-  color: #fac0ba;
+.alert.color1 .close {
+  color: #ffffff;
+  color: #f1fafd;
 }
-.breadcrumb {
-  padding: 8px 15px;
-  margin-bottom: 20px;
-  list-style: none;
-  background-color: transparent;
-  border-radius: 4px;
+.alert.color2 {
+  background: #4841e7;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.breadcrumb > li {
-  display: inline-block;
+.alert.color2 .close {
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.breadcrumb > li + li:before {
-  content: "/\00a0";
-  padding: 0 5px;
-  color: #cccccc;
+.alert.color3 {
+  background: #41e79b;
+  color: #195137;
+  color: #f1fdf8;
 }
-.breadcrumb > .active {
-  color: #808080;
+.alert.color3 .close {
+  color: #195137;
+  color: #f1fdf8;
 }
-.pagination {
-  display: inline-block;
-  padding-left: 0;
-  margin: 20px 0;
-  border-radius: 4px;
+.alert.color4 {
+  background: #e77141;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.pagination > li {
-  display: inline;
+.alert.color4 .close {
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.pagination > li > a,
-.pagination > li > span {
-  position: relative;
-  float: left;
-  padding: 8px 12px;
-  line-height: 1.42857143;
-  text-decoration: none;
-  color: #333333;
-  background-color: #ffffff;
-  border: 1px solid #dddddd;
-  margin-left: -1px;
+.alert.alert-error,
+.alert.alert-danger {
+  background: #ee5f5b;
+  background: #ea504b;
+  color: #ffffff;
+  color: #fdf2f1;
 }
-.pagination > li:first-child > a,
-.pagination > li:first-child > span {
-  margin-left: 0;
-  border-bottom-left-radius: 4px;
-  border-top-left-radius: 4px;
+.alert.alert-error .close,
+.alert.alert-danger .close {
+  color: #ffffff;
+  color: #fdf2f1;
 }
-.pagination > li:last-child > a,
-.pagination > li:last-child > span {
-  border-bottom-right-radius: 4px;
-  border-top-right-radius: 4px;
+.alert.alert-error .close,
+.alert.alert-danger .close {
+  color: #ffffff;
+  color: #fdf2f1;
 }
-.pagination > li > a:hover,
-.pagination > li > span:hover,
-.pagination > li > a:focus,
-.pagination > li > span:focus {
+.alert.alert-info {
+  background: #0088cc;
+  background: #27a0dc;
   color: #ffffff;
-  background-color: #d9230f;
-  border-color: #d9230f;
+  color: #f1f9fd;
 }
-.pagination > .active > a,
-.pagination > .active > span,
-.pagination > .active > a:hover,
-.pagination > .active > span:hover,
-.pagination > .active > a:focus,
-.pagination > .active > span:focus {
-  z-index: 2;
+.alert.alert-info .close {
   color: #ffffff;
-  background-color: #d9230f;
-  border-color: #d9230f;
-  cursor: default;
+  color: #f1f9fd;
 }
-.pagination > .disabled > span,
-.pagination > .disabled > span:hover,
-.pagination > .disabled > span:focus,
-.pagination > .disabled > a,
-.pagination > .disabled > a:hover,
-.pagination > .disabled > a:focus {
-  color: #dddddd;
-  background-color: #ffffff;
-  border-color: #dddddd;
-  cursor: not-allowed;
+.alert.alert-info .close {
+  color: #ffffff;
+  color: #f1f9fd;
 }
-.pagination-lg > li > a,
-.pagination-lg > li > span {
-  padding: 14px 16px;
-  font-size: 18px;
+.alert.alert-success {
+  background: #62c462;
+  background: #4ed94e;
+  color: #ffffff;
+  color: #f1fdf1;
 }
-.pagination-lg > li:first-child > a,
-.pagination-lg > li:first-child > span {
-  border-bottom-left-radius: 6px;
-  border-top-left-radius: 6px;
+.alert.alert-success .close {
+  color: #ffffff;
+  color: #f1fdf1;
 }
-.pagination-lg > li:last-child > a,
-.pagination-lg > li:last-child > span {
-  border-bottom-right-radius: 6px;
-  border-top-right-radius: 6px;
+.alert.alert-success .close {
+  color: #ffffff;
+  color: #f1fdf1;
 }
-.pagination-sm > li > a,
-.pagination-sm > li > span {
-  padding: 5px 10px;
-  font-size: 12px;
+.progress {
+  background: #eaeaea;
+  -webkit-box-shadow: inset 0px 0px 3px rgba(22, 49, 60, 0.2);
+  box-shadow: inset 0px 0px 3px rgba(22, 49, 60, 0.2);
 }
-.pagination-sm > li:first-child > a,
-.pagination-sm > li:first-child > span {
-  border-bottom-left-radius: 3px;
-  border-top-left-radius: 3px;
+.progress.color1 {
+  background: #1ba0d6;
 }
-.pagination-sm > li:last-child > a,
-.pagination-sm > li:last-child > span {
-  border-bottom-right-radius: 3px;
-  border-top-right-radius: 3px;
+.progress.color2 {
+  background: #322ae5;
 }
-.pager {
-  padding-left: 0;
-  margin: 20px 0;
-  list-style: none;
-  text-align: center;
+.progress.color3 {
+  background: #2ae58f;
 }
-.pager li {
-  display: inline;
+.progress.color4 {
+  background: #e5602a;
 }
-.pager li > a,
-.pager li > span {
-  display: inline-block;
-  padding: 5px 14px;
-  background-color: #ffffff;
-  border: 1px solid #dddddd;
-  border-radius: 15px;
+.progress-bar {
+  -webkit-box-shadow: none;
+  box-shadow: none;
+  background: #6ec6ea;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.pager li > a:hover,
-.pager li > a:focus {
-  text-decoration: none;
-  background-color: #d9230f;
+.progress-bar.color1 {
+  background: #6ec6ea;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.pager .next > a,
-.pager .next > span {
-  float: right;
+.progress-bar.color2 {
+  background: #736eea;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.pager .previous > a,
-.pager .previous > span {
-  float: left;
+.progress-bar.color3 {
+  background: #6eeab1;
+  color: #1d6444;
+  color: #f1fdf8;
 }
-.pager .disabled > a,
-.pager .disabled > a:hover,
-.pager .disabled > a:focus,
-.pager .disabled > span {
-  color: #dddddd;
-  background-color: #ffffff;
-  cursor: not-allowed;
+.progress-bar.color4 {
+  background: #ea926e;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.label {
-  display: inline;
-  padding: .2em .6em .3em;
-  font-size: 75%;
-  font-weight: bold;
-  line-height: 1;
+.progress-bar.progress-bar-success {
+  background: #2dad2d;
   color: #ffffff;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: baseline;
-  border-radius: .25em;
+  color: #f1fdf1;
 }
-.label[href]:hover,
-.label[href]:focus {
+.progress-bar.progress-bar-warning {
+  background: #ea8f0d;
   color: #ffffff;
-  text-decoration: none;
-  cursor: pointer;
+  color: #fdf8f1;
 }
-.label:empty {
-  display: none;
+.progress-bar.progress-bar-danger {
+  background: #c42621;
+  color: #ffffff;
+  color: #fdf2f1;
 }
-.btn .label {
-  position: relative;
-  top: -1px;
+.progress-bar.progress-bar-info {
+  background: #41c1e7;
+  color: #ffffff;
+  color: #f1fbfd;
 }
-.label-default {
-  background-color: #474949;
+.accordion .accordion-heading {
+  border-bottom: 0;
+  border-radius: 6px;
 }
-.label-default[href]:hover,
-.label-default[href]:focus {
-  background-color: #2e2f2f;
+.accordion .accordion-heading a:hover {
+  text-decoration: none;
 }
-.label-primary {
-  background-color: #d9230f;
+.accordion .accordion-group {
+  border: none;
 }
-.label-primary[href]:hover,
-.label-primary[href]:focus {
-  background-color: #a91b0c;
+.accordion .accordion-inner {
+  margin: 12px;
+  padding: 15px;
+  border-radius: 6px;
 }
-.label-success {
-  background-color: #469408;
+.accordion .accordion-heading {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
+  border: 1px solid transparent;
+  border-top-color: #61c9f3;
 }
-.label-success[href]:hover,
-.label-success[href]:focus {
-  background-color: #2f6405;
+.accordion .accordion-heading a {
+  color: #ffffff;
+  color: #f1fafd;
 }
-.label-info {
-  background-color: #029acf;
+.accordion .accordion-inner {
+  background: #6ec6ea;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.label-info[href]:hover,
-.label-info[href]:focus {
-  background-color: #02749c;
+.accordion.color1 .accordion-heading {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
+  border: 1px solid transparent;
+  border-top-color: #61c9f3;
 }
-.label-warning {
-  background-color: #9b479f;
+.accordion.color1 .accordion-heading a {
+  color: #ffffff;
+  color: #f1fafd;
 }
-.label-warning[href]:hover,
-.label-warning[href]:focus {
-  background-color: #79377c;
+.accordion.color1 .accordion-inner {
+  background: #6ec6ea;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.label-danger {
-  background-color: #d9831f;
+.accordion.color2 .accordion-heading {
+  background: #251dee;
+  color: #ffffff;
+  color: #f2f1fd;
+  border: 1px solid transparent;
+  border-top-color: #6761f3;
 }
-.label-danger[href]:hover,
-.label-danger[href]:focus {
-  background-color: #ac6819;
+.accordion.color2 .accordion-heading a {
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.badge {
-  display: inline-block;
-  min-width: 10px;
-  padding: 3px 7px;
-  font-size: 12px;
-  font-weight: bold;
+.accordion.color2 .accordion-inner {
+  background: #736eea;
   color: #ffffff;
-  line-height: 1;
-  vertical-align: baseline;
-  white-space: nowrap;
-  text-align: center;
-  background-color: #d9230f;
-  border-radius: 10px;
+  color: #f2f1fd;
 }
-.badge:empty {
-  display: none;
+.accordion.color3 .accordion-heading {
+  background: #1dee8e;
+  color: #15462f;
+  color: #f1fdf8;
+  border: 1px solid transparent;
+  border-top-color: #61f3b0;
 }
-.btn .badge {
-  position: relative;
-  top: -1px;
+.accordion.color3 .accordion-heading a {
+  color: #15462f;
+  color: #f1fdf8;
 }
-.btn-xs .badge {
-  top: 0;
-  padding: 1px 5px;
+.accordion.color3 .accordion-inner {
+  background: #6eeab1;
+  color: #1d6444;
+  color: #f1fdf8;
 }
-a.badge:hover,
-a.badge:focus {
+.accordion.color4 .accordion-heading {
+  background: #ee591d;
   color: #ffffff;
-  text-decoration: none;
-  cursor: pointer;
+  color: #fdf5f1;
+  border: 1px solid transparent;
+  border-top-color: #f38b61;
 }
-a.list-group-item.active > .badge,
-.nav-pills > .active > a > .badge {
-  color: #d9230f;
-  background-color: #ffffff;
+.accordion.color4 .accordion-heading a {
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.nav-pills > li > a > .badge {
-  margin-left: 3px;
+.accordion.color4 .accordion-inner {
+  background: #ea926e;
+  color: #ffffff;
+  color: #fdf5f1;
 }
 .jumbotron {
-  padding: 30px;
-  margin-bottom: 30px;
-  color: inherit;
-  background-color: #f4f4f4;
+  font-size: 24px;
+  line-height: 32px;
+  font-weight: normal;
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.jumbotron h1,
-.jumbotron .h1 {
-  color: inherit;
+.jumbotron.color1 {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.jumbotron p {
-  margin-bottom: 15px;
-  font-size: 21px;
-  font-weight: 200;
+.jumbotron.color2 {
+  background: #251dee;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.container .jumbotron {
-  border-radius: 6px;
+.jumbotron.color3 {
+  background: #1dee8e;
+  color: #15462f;
+  color: #f1fdf8;
 }
-.jumbotron .container {
-  max-width: 100%;
+.jumbotron.color4 {
+  background: #ee591d;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-@media screen and (min-width: 768px) {
-  .jumbotron {
-    padding-top: 48px;
-    padding-bottom: 48px;
-  }
-  .container .jumbotron {
-    padding-left: 60px;
-    padding-right: 60px;
-  }
-  .jumbotron h1,
-  .jumbotron .h1 {
-    font-size: 63px;
-  }
+.jumbotron h1 {
+  margin-bottom: 12px;
+  font-size: 60px;
+  line-height: 1;
+  color: inherit;
+  letter-spacing: -1px;
 }
-.thumbnail {
-  display: block;
-  padding: 4px;
-  margin-bottom: 20px;
-  line-height: 1.42857143;
-  background-color: #fcfcfc;
-  border: 1px solid #dddddd;
-  border-radius: 4px;
-  -webkit-transition: all 0.2s ease-in-out;
-  transition: all 0.2s ease-in-out;
+.breadcrumb {
+  background: #1db1ee;
 }
-.thumbnail > img,
-.thumbnail a > img {
-  margin-left: auto;
-  margin-right: auto;
+.breadcrumb > .active {
+  font-weight: bold;
 }
-a.thumbnail:hover,
-a.thumbnail:focus,
-a.thumbnail.active {
-  border-color: #d9230f;
+.breadcrumb li {
+  color: #ffffff;
+  color: #f1fafd;
 }
-.thumbnail .caption {
-  padding: 9px;
-  color: #808080;
+.breadcrumb li > a {
+  color: #ffffff;
+  color: #f1fafd;
 }
-.alert {
-  padding: 15px;
-  margin-bottom: 20px;
-  border: 1px solid transparent;
-  border-radius: 4px;
+.breadcrumb > .active {
+  color: #ffffff;
+  color: #f1fafd;
 }
-.alert h4 {
-  margin-top: 0;
-  color: inherit;
+.breadcrumb.color1 {
+  background: #1db1ee;
 }
-.alert .alert-link {
-  font-weight: bold;
+.breadcrumb.color1 li {
+  color: #ffffff;
+  color: #f1fafd;
 }
-.alert > p,
-.alert > ul {
-  margin-bottom: 0;
+.breadcrumb.color1 li > a {
+  color: #ffffff;
+  color: #f1fafd;
 }
-.alert > p + p {
-  margin-top: 5px;
+.breadcrumb.color1 > .active {
+  color: #ffffff;
+  color: #f1fafd;
 }
-.alert-dismissable {
-  padding-right: 35px;
+.breadcrumb.color2 {
+  background: #251dee;
 }
-.alert-dismissable .close {
-  position: relative;
-  top: -2px;
-  right: -21px;
-  color: inherit;
+.breadcrumb.color2 li {
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.alert-success {
-  background-color: #dff0d8;
-  border-color: #d6e9c6;
-  color: #468847;
+.breadcrumb.color2 li > a {
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.alert-success hr {
-  border-top-color: #c9e2b3;
+.breadcrumb.color2 > .active {
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.alert-success .alert-link {
-  color: #356635;
+.breadcrumb.color3 {
+  background: #1dee8e;
 }
-.alert-info {
-  background-color: #d9edf7;
-  border-color: #bce8f1;
-  color: #3a87ad;
+.breadcrumb.color3 li {
+  color: #15462f;
+  color: #f1fdf8;
 }
-.alert-info hr {
-  border-top-color: #a6e1ec;
+.breadcrumb.color3 li > a {
+  color: #15462f;
+  color: #f1fdf8;
 }
-.alert-info .alert-link {
-  color: #2d6987;
+.breadcrumb.color3 > .active {
+  color: #15462f;
+  color: #f1fdf8;
 }
-.alert-warning {
-  background-color: #fcf8e3;
-  border-color: #fbeed5;
-  color: #c09853;
+.breadcrumb.color4 {
+  background: #ee591d;
 }
-.alert-warning hr {
-  border-top-color: #f8e5be;
+.breadcrumb.color4 li {
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.alert-warning .alert-link {
-  color: #a47e3c;
+.breadcrumb.color4 li > a {
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.alert-danger {
-  background-color: #f2dede;
-  border-color: #eed3d7;
-  color: #b94a48;
+.breadcrumb.color4 > .active {
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.alert-danger hr {
-  border-top-color: #e6c1c7;
+.pager > li > a {
+  border: none;
 }
-.alert-danger .alert-link {
-  color: #953b39;
+.pager > li > a {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
 }
-@-webkit-keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
+.pager > li > a:hover,
+.pager > li > a:focus {
+  background-color: #26b5ef;
 }
-@keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
+.pager > .disabled > a {
+  background: #1db1ee;
+  color: #c6ecfb;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
 }
-.progress {
-  overflow: hidden;
-  height: 20px;
-  margin-bottom: 20px;
-  background-color: #f5f5f5;
-  border-radius: 4px;
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+.pager > .disabled > a:hover,
+.pager > .disabled > a:focus {
+  background-color: #1db1ee;
+  color: #c6ecfb;
+}
+.pager.color1 > li > a {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
+}
+.pager.color1 > li > a:hover,
+.pager.color1 > li > a:focus {
+  background-color: #26b5ef;
 }
-.progress-bar {
-  float: left;
-  width: 0%;
-  height: 100%;
-  font-size: 12px;
-  line-height: 20px;
+.pager.color1 > .disabled > a {
+  background: #1db1ee;
+  color: #c6ecfb;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
+}
+.pager.color1 > .disabled > a:hover,
+.pager.color1 > .disabled > a:focus {
+  background-color: #1db1ee;
+  color: #c6ecfb;
+}
+.pager.color2 > li > a {
+  background: #251dee;
   color: #ffffff;
-  text-align: center;
-  background-color: #d9230f;
-  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-  -webkit-transition: width 0.6s ease;
-  transition: width 0.6s ease;
+  color: #f2f1fd;
 }
-.progress-striped .progress-bar {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-size: 40px 40px;
+.pager.color2 > li > a:hover,
+.pager.color2 > li > a:focus {
+  background-color: #2e26ef;
 }
-.progress.active .progress-bar {
-  -webkit-animation: progress-bar-stripes 2s linear infinite;
-  animation: progress-bar-stripes 2s linear infinite;
+.pager.color2 > .disabled > a {
+  background: #251dee;
+  color: #c9c6fb;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
 }
-.progress-bar-success {
-  background-color: #469408;
+.pager.color2 > .disabled > a:hover,
+.pager.color2 > .disabled > a:focus {
+  background-color: #251dee;
+  color: #c9c6fb;
 }
-.progress-striped .progress-bar-success {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+.pager.color3 > li > a {
+  background: #1dee8e;
+  color: #15462f;
+  color: #f1fdf8;
 }
-.progress-bar-info {
-  background-color: #029acf;
+.pager.color3 > li > a:hover,
+.pager.color3 > li > a:focus {
+  background-color: #26ef92;
 }
-.progress-striped .progress-bar-info {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+.pager.color3 > .disabled > a {
+  background: #1dee8e;
+  color: #c6fbe3;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
 }
-.progress-bar-warning {
-  background-color: #9b479f;
+.pager.color3 > .disabled > a:hover,
+.pager.color3 > .disabled > a:focus {
+  background-color: #1dee8e;
+  color: #c6fbe3;
 }
-.progress-striped .progress-bar-warning {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+.pager.color4 > li > a {
+  background: #ee591d;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.progress-bar-danger {
-  background-color: #d9831f;
+.pager.color4 > li > a:hover,
+.pager.color4 > li > a:focus {
+  background-color: #ef6026;
 }
-.progress-striped .progress-bar-danger {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+.pager.color4 > .disabled > a {
+  background: #ee591d;
+  color: #fbd6c6;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
 }
-.media,
-.media-body {
-  overflow: hidden;
-  zoom: 1;
+.pager.color4 > .disabled > a:hover,
+.pager.color4 > .disabled > a:focus {
+  background-color: #ee591d;
+  color: #fbd6c6;
 }
-.media,
-.media .media {
-  margin-top: 15px;
+.pager.disabled > li > a {
+  background: #dddddd;
+  color: #595959;
+  color: #606060;
 }
-.media:first-child {
-  margin-top: 0;
+.pager.disabled > li > a:hover,
+.pager.disabled > li > a:focus {
+  background-color: #e2e2e2;
 }
-.media-object {
-  display: block;
+.pager.disabled > .disabled > a {
+  background: #dddddd;
+  color: #8d8d8d;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
 }
-.media-heading {
-  margin: 0 0 5px;
+.pager.disabled > .disabled > a:hover,
+.pager.disabled > .disabled > a:focus {
+  background-color: #dddddd;
+  color: #8d8d8d;
 }
-.media > .pull-left {
-  margin-right: 10px;
+.pagination {
+  background: none;
 }
-.media > .pull-right {
-  margin-left: 10px;
+.pagination > li > a {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
+  border: 1px solid transparent;
+  border-top-color: #61c9f3;
 }
-.media-list {
-  padding-left: 0;
-  list-style: none;
+.pagination > li > a:hover,
+.pagination > li > a:focus,
+.pagination > li > a:active,
+.pagination > .active > a,
+.pagination > .active > span {
+  color: #ffffff;
+  color: #f1fafd;
+  background-color: #26b5ef;
 }
-.list-group {
-  margin-bottom: 20px;
-  padding-left: 0;
+.pagination > .active > a,
+.pagination > .active > span {
+  color: #ffffff;
+  color: #f1fafd;
+  background-color: #77c9eb;
 }
-.list-group-item {
-  position: relative;
-  display: block;
-  padding: 10px 15px;
-  margin-bottom: -1px;
-  background-color: #ffffff;
-  border: 1px solid #dddddd;
+.pagination.color1 > li > a {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
+  border: 1px solid transparent;
+  border-top-color: #61c9f3;
 }
-.list-group-item:first-child {
-  border-top-right-radius: 4px;
-  border-top-left-radius: 4px;
+.pagination.color1 > li > a:hover,
+.pagination.color1 > li > a:focus,
+.pagination.color1 > li > a:active,
+.pagination.color1 > .active > a,
+.pagination.color1 > .active > span {
+  color: #ffffff;
+  color: #f1fafd;
+  background-color: #26b5ef;
 }
-.list-group-item:last-child {
-  margin-bottom: 0;
-  border-bottom-right-radius: 4px;
-  border-bottom-left-radius: 4px;
+.pagination.color1 > .active > a,
+.pagination.color1 > .active > span {
+  color: #ffffff;
+  color: #f1fafd;
+  background-color: #77c9eb;
 }
-.list-group-item > .badge {
-  float: right;
+.pagination.color2 > li > a {
+  background: #251dee;
+  color: #ffffff;
+  color: #f2f1fd;
+  border: 1px solid transparent;
+  border-top-color: #6761f3;
 }
-.list-group-item > .badge + .badge {
-  margin-right: 5px;
+.pagination.color2 > li > a:hover,
+.pagination.color2 > li > a:focus,
+.pagination.color2 > li > a:active,
+.pagination.color2 > .active > a,
+.pagination.color2 > .active > span {
+  color: #ffffff;
+  color: #f2f1fd;
+  background-color: #2e26ef;
 }
-a.list-group-item {
-  color: #555555;
+.pagination.color2 > .active > a,
+.pagination.color2 > .active > span {
+  color: #ffffff;
+  color: #f2f1fd;
+  background-color: #7c77eb;
 }
-a.list-group-item .list-group-item-heading {
-  color: #333333;
+.pagination.color3 > li > a {
+  background: #1dee8e;
+  color: #15462f;
+  color: #f1fdf8;
+  border: 1px solid transparent;
+  border-top-color: #61f3b0;
+}
+.pagination.color3 > li > a:hover,
+.pagination.color3 > li > a:focus,
+.pagination.color3 > li > a:active,
+.pagination.color3 > .active > a,
+.pagination.color3 > .active > span {
+  color: #154b32;
+  color: #f1fdf8;
+  background-color: #26ef92;
+}
+.pagination.color3 > .active > a,
+.pagination.color3 > .active > span {
+  color: #1d6444;
+  color: #f1fdf8;
+  background-color: #77ebb6;
+}
+.pagination.color4 > li > a {
+  background: #ee591d;
+  color: #ffffff;
+  color: #fdf5f1;
+  border: 1px solid transparent;
+  border-top-color: #f38b61;
 }
-a.list-group-item:hover,
-a.list-group-item:focus {
-  text-decoration: none;
-  background-color: #f5f5f5;
+.pagination.color4 > li > a:hover,
+.pagination.color4 > li > a:focus,
+.pagination.color4 > li > a:active,
+.pagination.color4 > .active > a,
+.pagination.color4 > .active > span {
+  color: #ffffff;
+  color: #fdf5f1;
+  background-color: #ef6026;
 }
-a.list-group-item.active,
-a.list-group-item.active:hover,
-a.list-group-item.active:focus {
-  z-index: 2;
+.pagination.color4 > .active > a,
+.pagination.color4 > .active > span {
   color: #ffffff;
-  background-color: #d9230f;
-  border-color: #d9230f;
+  color: #fdf5f1;
+  background-color: #eb9977;
 }
-a.list-group-item.active .list-group-item-heading,
-a.list-group-item.active:hover .list-group-item-heading,
-a.list-group-item.active:focus .list-group-item-heading {
+.pagination > .disabled > span,
+.pagination > .disabled > a,
+.pagination > .disabled > a:hover,
+.pagination > .disabled > a:focus {
   color: inherit;
+  background-color: inherit;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
 }
-a.list-group-item.active .list-group-item-text,
-a.list-group-item.active:hover .list-group-item-text,
-a.list-group-item.active:focus .list-group-item-text {
-  color: #fac0ba;
+.thumbnail,
+.img-thumbnail {
+  border: 1px solid transparent;
+  background-color: #1db1ee;
 }
-.list-group-item-success {
-  color: #468847;
-  background-color: #dff0d8;
+.thumbnail.active,
+.img-thumbnail.active {
+  border-color: #11a8e5;
 }
-a.list-group-item-success {
-  color: #468847;
+.thumbnail .caption,
+.img-thumbnail .caption {
+  color: #ffffff;
+  color: #f1fafd;
+  text-decoration: none;
 }
-a.list-group-item-success .list-group-item-heading {
-  color: inherit;
+.thumbnail.color1,
+.img-thumbnail.color1 {
+  background-color: #1db1ee;
 }
-a.list-group-item-success:hover,
-a.list-group-item-success:focus {
-  color: #468847;
-  background-color: #d0e9c6;
+.thumbnail.color1.active,
+.img-thumbnail.color1.active {
+  border-color: #11a8e5;
 }
-a.list-group-item-success.active,
-a.list-group-item-success.active:hover,
-a.list-group-item-success.active:focus {
-  color: #fff;
-  background-color: #468847;
-  border-color: #468847;
+.thumbnail.color1 .caption,
+.img-thumbnail.color1 .caption {
+  color: #ffffff;
+  color: #f1fafd;
+  text-decoration: none;
 }
-.list-group-item-info {
-  color: #3a87ad;
-  background-color: #d9edf7;
+.thumbnail.color2,
+.img-thumbnail.color2 {
+  background-color: #251dee;
 }
-a.list-group-item-info {
-  color: #3a87ad;
+.thumbnail.color2.active,
+.img-thumbnail.color2.active {
+  border-color: #1a11e5;
 }
-a.list-group-item-info .list-group-item-heading {
-  color: inherit;
+.thumbnail.color2 .caption,
+.img-thumbnail.color2 .caption {
+  color: #ffffff;
+  color: #f2f1fd;
+  text-decoration: none;
 }
-a.list-group-item-info:hover,
-a.list-group-item-info:focus {
-  color: #3a87ad;
-  background-color: #c4e3f3;
+.thumbnail.color3,
+.img-thumbnail.color3 {
+  background-color: #1dee8e;
 }
-a.list-group-item-info.active,
-a.list-group-item-info.active:hover,
-a.list-group-item-info.active:focus {
-  color: #fff;
-  background-color: #3a87ad;
-  border-color: #3a87ad;
+.thumbnail.color3.active,
+.img-thumbnail.color3.active {
+  border-color: #11e584;
 }
-.list-group-item-warning {
-  color: #c09853;
-  background-color: #fcf8e3;
+.thumbnail.color3 .caption,
+.img-thumbnail.color3 .caption {
+  color: #15462f;
+  color: #f1fdf8;
+  text-decoration: none;
 }
-a.list-group-item-warning {
-  color: #c09853;
+.thumbnail.color4,
+.img-thumbnail.color4 {
+  background-color: #ee591d;
 }
-a.list-group-item-warning .list-group-item-heading {
-  color: inherit;
+.thumbnail.color4.active,
+.img-thumbnail.color4.active {
+  border-color: #e54f11;
 }
-a.list-group-item-warning:hover,
-a.list-group-item-warning:focus {
-  color: #c09853;
-  background-color: #faf2cc;
+.thumbnail.color4 .caption,
+.img-thumbnail.color4 .caption {
+  color: #ffffff;
+  color: #fdf5f1;
+  text-decoration: none;
 }
-a.list-group-item-warning.active,
-a.list-group-item-warning.active:hover,
-a.list-group-item-warning.active:focus {
-  color: #fff;
-  background-color: #c09853;
-  border-color: #c09853;
+.thumbnail.highlight,
+.img-thumbnail.highlight {
+  background-color: #ffffff;
 }
-.list-group-item-danger {
-  color: #b94a48;
-  background-color: #f2dede;
+.thumbnail.highlight.active,
+.img-thumbnail.highlight.active {
+  border-color: #f5f5f5;
 }
-a.list-group-item-danger {
-  color: #b94a48;
+.thumbnail.highlight .caption,
+.img-thumbnail.highlight .caption {
+  color: #6a6a6a;
+  color: #717171;
+  text-decoration: none;
 }
-a.list-group-item-danger .list-group-item-heading {
-  color: inherit;
+.form-horizontal {
+  font-size: 18px;
 }
-a.list-group-item-danger:hover,
-a.list-group-item-danger:focus {
-  color: #b94a48;
-  background-color: #ebcccc;
+legend {
+  color: #666666;
+  color: #6d6d6d;
 }
-a.list-group-item-danger.active,
-a.list-group-item-danger.active:hover,
-a.list-group-item-danger.active:focus {
-  color: #fff;
-  background-color: #b94a48;
-  border-color: #b94a48;
+.help-block {
+  color: #666666;
+  color: #6d6d6d;
 }
-.list-group-item-heading {
-  margin-top: 0;
-  margin-bottom: 5px;
+.color1 legend {
+  color: #ffffff;
+  color: #f1fafd;
 }
-.list-group-item-text {
+.color1 .help-block {
+  color: #ffffff;
+  color: #f1fafd;
+}
+.input-group {
+  position: relative;
+  display: table;
+  border-collapse: separate;
+}
+.input-group.col {
+  float: none;
+  padding-left: 0;
+  padding-right: 0;
+}
+.input-group .form-control {
+  width: 100%;
   margin-bottom: 0;
-  line-height: 1.3;
 }
-.panel {
-  margin-bottom: 20px;
-  background-color: #ffffff;
-  border: 1px solid transparent;
-  border-radius: 4px;
-  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
-  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+.input-group-addon {
+  border: none;
+  border-radius: 6px;
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.panel-body {
-  padding: 15px;
+.input-group-addon.color1 {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.panel-heading {
-  padding: 10px 15px;
-  border-bottom: 1px solid transparent;
-  border-top-right-radius: 3px;
-  border-top-left-radius: 3px;
+code,
+pre {
+  font-size: 14px;
+  text-shadow: none;
+  background: #6ec6ea;
+  color: #ffffff;
+  color: #f1fafd;
+  border-color: #6ec6ea;
 }
-.panel-heading > .dropdown .dropdown-toggle {
-  color: inherit;
+code.color1,
+pre.color1 {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
+  border-color: #1db1ee;
 }
-.panel-title {
-  margin-top: 0;
-  margin-bottom: 0;
-  font-size: 16px;
-  color: inherit;
+code.color2,
+pre.color2 {
+  background: #251dee;
+  color: #ffffff;
+  color: #f2f1fd;
+  border-color: #251dee;
+}
+code.color3,
+pre.color3 {
+  background: #1dee8e;
+  color: #15462f;
+  color: #f1fdf8;
+  border-color: #1dee8e;
+}
+code.color4,
+pre.color4 {
+  background: #ee591d;
+  color: #ffffff;
+  color: #fdf5f1;
+  border-color: #ee591d;
 }
-.panel-title > a {
-  color: inherit;
+.label,
+.badge {
+  background: #0d8ec2;
+  color: #ffffff;
+  color: #f1fafd;
+  text-shadow: none;
 }
-.panel-footer {
-  padding: 10px 15px;
-  background-color: #fcfcfc;
-  border-top: 1px solid #dddddd;
-  border-bottom-right-radius: 3px;
-  border-bottom-left-radius: 3px;
+.label.color1,
+.badge.color1 {
+  background: #26ade4;
+  color: #ffffff;
+  color: #f1fafd;
+  text-shadow: none;
 }
-.panel > .list-group {
-  margin-bottom: 0;
+.label.color2,
+.badge.color2 {
+  background: #4841e7;
+  color: #ffffff;
+  color: #f2f1fd;
+  text-shadow: none;
 }
-.panel > .list-group .list-group-item {
-  border-width: 1px 0;
-  border-radius: 0;
+.label.color3,
+.badge.color3 {
+  background: #41e79b;
+  color: #195137;
+  color: #f1fdf8;
+  text-shadow: none;
 }
-.panel > .list-group:first-child .list-group-item:first-child {
-  border-top: 0;
-  border-top-right-radius: 3px;
-  border-top-left-radius: 3px;
+.label.color4,
+.badge.color4 {
+  background: #e77141;
+  color: #ffffff;
+  color: #fdf5f1;
+  text-shadow: none;
 }
-.panel > .list-group:last-child .list-group-item:last-child {
-  border-bottom: 0;
-  border-bottom-right-radius: 3px;
-  border-bottom-left-radius: 3px;
+.label.label-success,
+.badge.label-success {
+  background: #2dad2d;
+  color: #ffffff;
+  color: #f1fdf1;
+  text-shadow: none;
 }
-.panel-heading + .list-group .list-group-item:first-child {
-  border-top-width: 0;
+.label.label-info,
+.badge.label-info {
+  background: #41c1e7;
+  color: #ffffff;
+  color: #f1fbfd;
+  text-shadow: none;
 }
-.panel > .table,
-.panel > .table-responsive > .table {
-  margin-bottom: 0;
+.label.label-warning,
+.badge.label-warning {
+  background: #ea8f0d;
+  color: #ffffff;
+  color: #fdf8f1;
+  text-shadow: none;
+}
+.label.label-danger,
+.badge.label-danger {
+  background: #c42621;
+  color: #ffffff;
+  color: #fdf2f1;
+  text-shadow: none;
+}
+.nav-tabs {
+  border-bottom: 2px solid #6ec6ea;
+}
+.nav-tabs > li > a {
+  border: none;
+}
+.nav-tabs > li > a:hover {
+  border: none;
 }
-.panel > .table:first-child,
-.panel > .table-responsive:first-child > .table:first-child {
-  border-top-right-radius: 3px;
-  border-top-left-radius: 3px;
+.nav-tabs > li.active > a,
+.nav-tabs > li.active > a:hover,
+.nav-tabs > li.active > a:focus {
+  border: none;
 }
-.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
-.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
-  border-top-left-radius: 3px;
+.nav-tabs > li > a:hover {
+  background: #77c9eb;
 }
-.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
-.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
-  border-top-right-radius: 3px;
+.nav-tabs > li.active > a,
+.nav-tabs > li.active > a:hover,
+.nav-tabs > li.active > a:focus {
+  color: #ffffff;
+  color: #f1fafd;
+  background-color: #6ec6ea;
 }
-.panel > .table:last-child,
-.panel > .table-responsive:last-child > .table:last-child {
-  border-bottom-right-radius: 3px;
-  border-bottom-left-radius: 3px;
+.nav-tabs.color1 {
+  border-bottom: 2px solid #0d8ec2;
 }
-.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
-.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
-  border-bottom-left-radius: 3px;
+.nav-tabs.color1 > li > a:hover {
+  background: #0e95cc;
 }
-.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
-.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
-  border-bottom-right-radius: 3px;
+.nav-tabs.color1 > li.active > a,
+.nav-tabs.color1 > li.active > a:hover,
+.nav-tabs.color1 > li.active > a:focus {
+  color: #ffffff;
+  color: #f1fafd;
+  background-color: #0d8ec2;
 }
-.panel > .panel-body + .table,
-.panel > .panel-body + .table-responsive {
-  border-top: 1px solid #dddddd;
+.nav-tabs.color2 {
+  border-bottom: 2px solid #140dc2;
 }
-.panel > .table > tbody:first-child > tr:first-child th,
-.panel > .table > tbody:first-child > tr:first-child td {
-  border-top: 0;
+.nav-tabs.color2 > li > a:hover {
+  background: #150ecc;
 }
-.panel > .table-bordered,
-.panel > .table-responsive > .table-bordered {
-  border: 0;
+.nav-tabs.color2 > li.active > a,
+.nav-tabs.color2 > li.active > a:hover,
+.nav-tabs.color2 > li.active > a:focus {
+  color: #ffffff;
+  color: #f2f1fd;
+  background-color: #140dc2;
 }
-.panel > .table-bordered > thead > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
-.panel > .table-bordered > tbody > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
-.panel > .table-bordered > tfoot > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
-.panel > .table-bordered > thead > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
-.panel > .table-bordered > tbody > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
-.panel > .table-bordered > tfoot > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
-  border-left: 0;
+.nav-tabs.color3 {
+  border-bottom: 2px solid #0dc26f;
 }
-.panel > .table-bordered > thead > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
-.panel > .table-bordered > tbody > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
-.panel > .table-bordered > tfoot > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
-.panel > .table-bordered > thead > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
-.panel > .table-bordered > tbody > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
-.panel > .table-bordered > tfoot > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
-  border-right: 0;
+.nav-tabs.color3 > li > a:hover {
+  background: #0ecc74;
 }
-.panel > .table-bordered > thead > tr:first-child > td,
-.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
-.panel > .table-bordered > tbody > tr:first-child > td,
-.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
-.panel > .table-bordered > thead > tr:first-child > th,
-.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
-.panel > .table-bordered > tbody > tr:first-child > th,
-.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
-  border-bottom: 0;
+.nav-tabs.color3 > li.active > a,
+.nav-tabs.color3 > li.active > a:hover,
+.nav-tabs.color3 > li.active > a:focus {
+  color: #ffffff;
+  color: #f1fdf8;
+  background-color: #0dc26f;
 }
-.panel > .table-bordered > tbody > tr:last-child > td,
-.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
-.panel > .table-bordered > tfoot > tr:last-child > td,
-.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
-.panel > .table-bordered > tbody > tr:last-child > th,
-.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
-.panel > .table-bordered > tfoot > tr:last-child > th,
-.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
-  border-bottom: 0;
+.nav-tabs.color4 {
+  border-bottom: 2px solid #c2420d;
 }
-.panel > .table-responsive {
-  border: 0;
-  margin-bottom: 0;
+.nav-tabs.color4 > li > a:hover {
+  background: #cc450e;
 }
-.panel-group {
-  margin-bottom: 20px;
+.nav-tabs.color4 > li.active > a,
+.nav-tabs.color4 > li.active > a:hover,
+.nav-tabs.color4 > li.active > a:focus {
+  color: #ffffff;
+  color: #fdf5f1;
+  background-color: #c2420d;
 }
-.panel-group .panel {
-  margin-bottom: 0;
-  border-radius: 4px;
-  overflow: hidden;
+.nav-tabs.highlight {
+  border-bottom: 2px solid #ffffff;
 }
-.panel-group .panel + .panel {
-  margin-top: 5px;
+.nav-tabs.highlight > li > a:hover {
+  background: #ffffff;
 }
-.panel-group .panel-heading {
-  border-bottom: 0;
+.nav-tabs.highlight > li.active > a,
+.nav-tabs.highlight > li.active > a:hover,
+.nav-tabs.highlight > li.active > a:focus {
+  color: #6a6a6a;
+  color: #717171;
+  background-color: #ffffff;
 }
-.panel-group .panel-heading + .panel-collapse .panel-body {
-  border-top: 1px solid #dddddd;
+table {
+  max-width: 100%;
+  text-shadow: none;
+  border-collapse: collapse;
+  border-spacing: 0;
+  border-color: transparent;
+  border-radius: 6px;
+  background-color: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.panel-group .panel-footer {
-  border-top: 0;
+table thead > tr > th,
+table tbody > tr > th,
+table tfoot > tr > th,
+table thead > tr > td,
+table tbody > tr > td,
+table tfoot > tr > td {
+  border-top: none;
 }
-.panel-group .panel-footer + .panel-collapse .panel-body {
-  border-bottom: 1px solid #dddddd;
+table tbody + tbody {
+  border-top: none;
 }
-.panel-default {
-  border-color: #dddddd;
+table.table th,
+table.table td {
+  border-top-color: #1db1ee;
 }
-.panel-default > .panel-heading {
-  color: #333333;
-  background-color: #fcfcfc;
-  border-color: #dddddd;
+table.table tbody + tbody {
+  border-top-color: #1db1ee;
 }
-.panel-default > .panel-heading + .panel-collapse .panel-body {
-  border-top-color: #dddddd;
+table.table-bordered {
+  border: none;
 }
-.panel-default > .panel-footer + .panel-collapse .panel-body {
-  border-bottom-color: #dddddd;
+table.table-striped tbody > tr:nth-child(odd) > td,
+table.table-striped tbody > tr:nth-child(odd) > th {
+  background-color: #11a1dc;
 }
-.panel-primary {
-  border-color: #d9230f;
+table.table-hover tbody tr:hover > td,
+table.table-hover tbody tr:hover > th {
+  background-color: #35baf0;
 }
-.panel-primary > .panel-heading {
+table.color1 {
+  background-color: #1db1ee;
   color: #ffffff;
-  background-color: #d9230f;
-  border-color: #d9230f;
+  color: #f1fafd;
 }
-.panel-primary > .panel-heading + .panel-collapse .panel-body {
-  border-top-color: #d9230f;
+table.color1.table th,
+table.color1.table td {
+  border-top-color: #1db1ee;
 }
-.panel-primary > .panel-footer + .panel-collapse .panel-body {
-  border-bottom-color: #d9230f;
+table.color1.table tbody + tbody {
+  border-top-color: #1db1ee;
 }
-.panel-success {
-  border-color: #469408;
+table.color1.table-bordered {
+  border: none;
 }
-.panel-success > .panel-heading {
-  color: #ffffff;
-  background-color: #469408;
-  border-color: #469408;
+table.color1.table-striped tbody > tr:nth-child(odd) > td,
+table.color1.table-striped tbody > tr:nth-child(odd) > th {
+  background-color: #11a1dc;
 }
-.panel-success > .panel-heading + .panel-collapse .panel-body {
-  border-top-color: #469408;
+table.color1.table-hover tbody tr:hover > td,
+table.color1.table-hover tbody tr:hover > th {
+  background-color: #35baf0;
 }
-.panel-success > .panel-footer + .panel-collapse .panel-body {
-  border-bottom-color: #469408;
+table.color2 {
+  background-color: #251dee;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.panel-info {
-  border-color: #029acf;
+table.color2.table th,
+table.color2.table td {
+  border-top-color: #251dee;
 }
-.panel-info > .panel-heading {
-  color: #ffffff;
-  background-color: #029acf;
-  border-color: #029acf;
+table.color2.table tbody + tbody {
+  border-top-color: #251dee;
 }
-.panel-info > .panel-heading + .panel-collapse .panel-body {
-  border-top-color: #029acf;
+table.color2.table-bordered {
+  border: none;
 }
-.panel-info > .panel-footer + .panel-collapse .panel-body {
-  border-bottom-color: #029acf;
+table.color2.table-striped tbody > tr:nth-child(odd) > td,
+table.color2.table-striped tbody > tr:nth-child(odd) > th {
+  background-color: #1911dc;
 }
-.panel-warning {
-  border-color: #9b479f;
+table.color2.table-striped tbody > tr:nth-child(odd) > td,
+table.color2.table-striped tbody > tr:nth-child(odd) > th {
+  background-color: #1a11e5;
 }
-.panel-warning > .panel-heading {
-  color: #ffffff;
-  background-color: #9b479f;
-  border-color: #9b479f;
+table.color2.table-hover tbody tr:hover > td,
+table.color2.table-hover tbody tr:hover > th {
+  background-color: #3c35f0;
 }
-.panel-warning > .panel-heading + .panel-collapse .panel-body {
-  border-top-color: #9b479f;
+table.color3 {
+  background-color: #1dee8e;
+  color: #15462f;
+  color: #f1fdf8;
 }
-.panel-warning > .panel-footer + .panel-collapse .panel-body {
-  border-bottom-color: #9b479f;
+table.color3.table th,
+table.color3.table td {
+  border-top-color: #1dee8e;
 }
-.panel-danger {
-  border-color: #d9831f;
+table.color3.table tbody + tbody {
+  border-top-color: #1dee8e;
 }
-.panel-danger > .panel-heading {
-  color: #ffffff;
-  background-color: #d9831f;
-  border-color: #d9831f;
+table.color3.table-bordered {
+  border: none;
 }
-.panel-danger > .panel-heading + .panel-collapse .panel-body {
-  border-top-color: #d9831f;
+table.color3.table-striped tbody > tr:nth-child(odd) > td,
+table.color3.table-striped tbody > tr:nth-child(odd) > th {
+  background-color: #11dc7e;
 }
-.panel-danger > .panel-footer + .panel-collapse .panel-body {
-  border-bottom-color: #d9831f;
+table.color3.table-hover tbody tr:hover > td,
+table.color3.table-hover tbody tr:hover > th {
+  background-color: #35f09a;
 }
-.well {
-  min-height: 20px;
-  padding: 19px;
-  margin-bottom: 20px;
-  background-color: #f4f4f4;
-  border: 1px solid #e3e3e3;
-  border-radius: 4px;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+table.color4 {
+  background-color: #ee591d;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.well blockquote {
-  border-color: #ddd;
-  border-color: rgba(0, 0, 0, 0.15);
+table.color4.table th,
+table.color4.table td {
+  border-top-color: #ee591d;
 }
-.well-lg {
-  padding: 24px;
-  border-radius: 6px;
+table.color4.table tbody + tbody {
+  border-top-color: #ee591d;
 }
-.well-sm {
-  padding: 9px;
-  border-radius: 3px;
+table.color4.table-bordered {
+  border: none;
 }
-.close {
-  float: right;
-  font-size: 21px;
-  font-weight: bold;
-  line-height: 1;
-  color: #000000;
-  text-shadow: 0 1px 0 #ffffff;
-  opacity: 0.2;
-  filter: alpha(opacity=20);
+table.color4.table-striped tbody > tr:nth-child(odd) > td,
+table.color4.table-striped tbody > tr:nth-child(odd) > th {
+  background-color: #dc4b11;
 }
-.close:hover,
-.close:focus {
-  color: #000000;
-  text-decoration: none;
-  cursor: pointer;
-  opacity: 0.5;
-  filter: alpha(opacity=50);
+table.color4.table-hover tbody tr:hover > td,
+table.color4.table-hover tbody tr:hover > th {
+  background-color: #f06b35;
 }
-button.close {
-  padding: 0;
-  cursor: pointer;
-  background: transparent;
-  border: 0;
-  -webkit-appearance: none;
+table.highlight {
+  background-color: #ffffff;
+  color: #6a6a6a;
+  color: #717171;
 }
-.modal-open {
-  overflow: hidden;
+table.highlight.table th,
+table.highlight.table td {
+  border-top-color: #ffffff;
 }
-.modal {
-  display: none;
-  overflow: auto;
-  overflow-y: scroll;
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1050;
-  -webkit-overflow-scrolling: touch;
-  outline: 0;
+table.highlight.table tbody + tbody {
+  border-top-color: #ffffff;
 }
-.modal.fade .modal-dialog {
-  -webkit-transform: translate(0, -25%);
-  -ms-transform: translate(0, -25%);
-  transform: translate(0, -25%);
-  -webkit-transition: -webkit-transform 0.3s ease-out;
-  -moz-transition: -moz-transform 0.3s ease-out;
-  -o-transition: -o-transform 0.3s ease-out;
-  transition: transform 0.3s ease-out;
+table.highlight.table-bordered {
+  border: none;
 }
-.modal.in .modal-dialog {
-  -webkit-transform: translate(0, 0);
-  -ms-transform: translate(0, 0);
-  transform: translate(0, 0);
+table.highlight.table-striped tbody > tr:nth-child(odd) > td,
+table.highlight.table-striped tbody > tr:nth-child(odd) > th {
+  background-color: #f0f0f0;
 }
-.modal-dialog {
-  position: relative;
-  width: auto;
-  margin: 10px;
+table.highlight.table-striped tbody > tr:nth-child(odd) > td,
+table.highlight.table-striped tbody > tr:nth-child(odd) > th {
+  background-color: #f0f0f0;
 }
-.modal-content {
-  position: relative;
+table.highlight.table-hover tbody tr:hover > td,
+table.highlight.table-hover tbody tr:hover > th {
   background-color: #ffffff;
-  border: 1px solid #999999;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  border-radius: 6px;
-  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
-  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
-  background-clip: padding-box;
-  outline: none;
 }
-.modal-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1040;
-  background-color: #000000;
+hr {
+  background: color1c;
+  color: color1c;
+  border-color: color1c;
+}
+hr.color1 {
+  background: #6ec6ea;
+  color: #6ec6ea;
+  border-color: #6ec6ea;
+}
+hr.color2 {
+  background: #736eea;
+  color: #736eea;
+  border-color: #736eea;
+}
+hr.color3 {
+  background: #6eeab1;
+  color: #6eeab1;
+  border-color: #6eeab1;
+}
+hr.color4 {
+  background: #ea926e;
+  color: #ea926e;
+  border-color: #ea926e;
 }
-.modal-backdrop.fade {
-  opacity: 0;
-  filter: alpha(opacity=0);
+.page-header {
+  border-width: 2px;
+  border-color: #6ec6ea;
+  color: #666666;
+  color: #6d6d6d;
+}
+.page-header small {
+  color: #666666;
+  color: #6d6d6d;
+}
+.page-header.color1 {
+  border-color: #6ec6ea;
+  color: #666666;
+  color: #6d6d6d;
+}
+.page-header.color1 small {
+  color: #666666;
+  color: #6d6d6d;
+}
+.page-header.color2 {
+  border-color: #736eea;
+  color: #666666;
+  color: #6d6d6d;
+}
+.page-header.color2 small {
+  color: #666666;
+  color: #6d6d6d;
+}
+.page-header.color3 {
+  border-color: #6eeab1;
+  color: #666666;
+  color: #6d6d6d;
+}
+.page-header.color3 small {
+  color: #666666;
+  color: #6d6d6d;
+}
+.page-header.color4 {
+  border-color: #ea926e;
+  color: #666666;
+  color: #6d6d6d;
+}
+.page-header.color4 small {
+  color: #666666;
+  color: #6d6d6d;
 }
-.modal-backdrop.in {
-  opacity: 0.5;
-  filter: alpha(opacity=50);
+.modal-dialog {
+  padding-right: 0;
+  padding-left: 0;
+  width: 100%;
+}
+.modal-content {
+  -webkit-box-shadow: none;
+  box-shadow: none;
+  border: none;
+  background: none;
+  width: 100%;
 }
 .modal-header {
-  padding: 15px;
-  border-bottom: 1px solid #e5e5e5;
-  min-height: 16.42857143px;
+  border: none;
+  width: 60%;
+  margin-left: 20%;
+  padding-left: 0;
+  padding-right: 0;
 }
-.modal-header .close {
-  margin-top: -2px;
+.modal-header > .close {
+  color: #ffffff;
+  color: #f1fafd;
+  margin-top: 0;
+  opacity: 1;
+  filter: alpha(opacity=100);
+  padding: 14px;
+  position: relative;
+  top: -12px;
+  right: -14px;
 }
 .modal-title {
-  margin: 0;
-  line-height: 1.42857143;
+  color: #ffffff;
+  color: #f1fafd;
+  margin-left: 0;
 }
 .modal-body {
-  position: relative;
-  padding: 20px;
+  border-radius: 0;
+  width: 100%;
+  padding-left: 20%;
+  padding-right: 20%;
+  margin: 0;
+  background: #26ade4;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.modal-footer {
-  margin-top: 15px;
-  padding: 19px 20px 20px;
-  text-align: right;
-  border-top: 1px solid #e5e5e5;
+.modal-body.color1 {
+  background: #26ade4;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.modal-footer .btn + .btn {
-  margin-left: 5px;
-  margin-bottom: 0;
+.modal-body.color1a {
+  background: #0d8ec2;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.modal-footer .btn-group .btn + .btn {
-  margin-left: -1px;
+.modal-body.color1b {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.modal-footer .btn-block + .btn-block {
-  margin-left: 0;
+.modal-body.color1c {
+  background: #6ec6ea;
+  color: #ffffff;
+  color: #f1fafd;
 }
-@media (min-width: 768px) {
-  .modal-dialog {
-    width: 600px;
-    margin: 30px auto;
-  }
-  .modal-content {
-    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
-    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
-  }
-  .modal-sm {
-    width: 300px;
-  }
+.modal-body.color2 {
+  background: #4841e7;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-@media (min-width: 992px) {
-  .modal-lg {
-    width: 900px;
-  }
+.modal-body.color2a {
+  background: #140dc2;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.tooltip {
-  position: absolute;
-  z-index: 1070;
-  display: block;
-  visibility: visible;
-  font-size: 12px;
-  line-height: 1.4;
-  opacity: 0;
-  filter: alpha(opacity=0);
+.modal-body.color2b {
+  background: #251dee;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.tooltip.in {
-  opacity: 0.9;
-  filter: alpha(opacity=90);
+.modal-body.color2c {
+  background: #736eea;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.tooltip.top {
-  margin-top: -3px;
-  padding: 5px 0;
+.modal-body.color3 {
+  background: #41e79b;
+  color: #195137;
+  color: #f1fdf8;
 }
-.tooltip.right {
-  margin-left: 3px;
-  padding: 0 5px;
+.modal-body.color3a {
+  background: #0dc26f;
+  color: #ffffff;
+  color: #f1fdf8;
 }
-.tooltip.bottom {
-  margin-top: 3px;
-  padding: 5px 0;
+.modal-body.color3b {
+  background: #1dee8e;
+  color: #15462f;
+  color: #f1fdf8;
 }
-.tooltip.left {
-  margin-left: -3px;
-  padding: 0 5px;
+.modal-body.color3c {
+  background: #6eeab1;
+  color: #1d6444;
+  color: #f1fdf8;
 }
-.tooltip-inner {
-  max-width: 200px;
-  padding: 3px 8px;
+.modal-body.color4 {
+  background: #e77141;
   color: #ffffff;
-  text-align: center;
-  text-decoration: none;
-  background-color: rgba(0, 0, 0, 0.9);
-  border-radius: 4px;
-}
-.tooltip-arrow {
-  position: absolute;
-  width: 0;
-  height: 0;
-  border-color: transparent;
-  border-style: solid;
-}
-.tooltip.top .tooltip-arrow {
-  bottom: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-width: 5px 5px 0;
-  border-top-color: rgba(0, 0, 0, 0.9);
+  color: #fdf5f1;
 }
-.tooltip.top-left .tooltip-arrow {
-  bottom: 0;
-  left: 5px;
-  border-width: 5px 5px 0;
-  border-top-color: rgba(0, 0, 0, 0.9);
+.modal-body.color4a {
+  background: #c2420d;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.tooltip.top-right .tooltip-arrow {
-  bottom: 0;
-  right: 5px;
-  border-width: 5px 5px 0;
-  border-top-color: rgba(0, 0, 0, 0.9);
+.modal-body.color4b {
+  background: #ee591d;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.tooltip.right .tooltip-arrow {
-  top: 50%;
-  left: 0;
-  margin-top: -5px;
-  border-width: 5px 5px 5px 0;
-  border-right-color: rgba(0, 0, 0, 0.9);
+.modal-body.color4c {
+  background: #ea926e;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.tooltip.left .tooltip-arrow {
-  top: 50%;
-  right: 0;
-  margin-top: -5px;
-  border-width: 5px 0 5px 5px;
-  border-left-color: rgba(0, 0, 0, 0.9);
+.modal-footer {
+  background: transparent;
+  margin-top: 0;
+  border: none;
+  width: 60%;
+  margin-left: 20%;
+  padding-left: 0;
+  padding-right: 0;
 }
-.tooltip.bottom .tooltip-arrow {
-  top: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-width: 0 5px 5px;
-  border-bottom-color: rgba(0, 0, 0, 0.9);
+.modal-backdrop {
+  background-color: #0d8ec2;
 }
-.tooltip.bottom-left .tooltip-arrow {
-  top: 0;
-  left: 5px;
-  border-width: 0 5px 5px;
-  border-bottom-color: rgba(0, 0, 0, 0.9);
+.modal-backdrop.fade {
+  opacity: 0;
+  filter: alpha(opacity=0);
 }
-.tooltip.bottom-right .tooltip-arrow {
-  top: 0;
-  right: 5px;
-  border-width: 0 5px 5px;
-  border-bottom-color: rgba(0, 0, 0, 0.9);
+.modal-backdrop.in {
+  opacity: 1;
+  filter: alpha(opacity=100);
 }
-.popover {
+.modal-backdrop:before {
+  display: block;
+  content: "";
+  background: #0d8ec2;
+  width: 100%;
+  height: 50%;
   position: absolute;
   top: 0;
   left: 0;
-  z-index: 1060;
-  display: none;
-  max-width: 276px;
-  padding: 1px;
-  text-align: left;
-  background-color: #ffffff;
-  background-clip: padding-box;
-  border: 1px solid #cccccc;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  border-radius: 6px;
-  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  white-space: normal;
 }
-.popover.top {
-  margin-top: -10px;
-}
-.popover.right {
-  margin-left: 10px;
-}
-.popover.bottom {
-  margin-top: 10px;
+.close {
+  text-shadow: none;
 }
-.popover.left {
-  margin-left: -10px;
+@media screen and (max-width: 768px) {
+  .modal-header,
+  .modal-footer {
+    margin-left: 4%;
+    margin-right: 4%;
+    width: 92%;
+  }
+  .modal-body {
+    padding-left: 4%;
+    padding-right: 4%;
+  }
 }
-.popover-title {
-  margin: 0;
-  padding: 8px 14px;
-  font-size: 14px;
-  font-weight: normal;
-  line-height: 18px;
-  background-color: #f7f7f7;
-  border-bottom: 1px solid #ebebeb;
-  border-radius: 5px 5px 0 0;
+.panel {
+  border: none;
+  -webkit-box-shadow: none;
+  box-shadow: none;
+  background: #6ec6ea;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.popover-content {
-  padding: 9px 14px;
+.panel.color1 {
+  background: #26ade4;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.popover > .arrow,
-.popover > .arrow:after {
-  position: absolute;
-  display: block;
-  width: 0;
-  height: 0;
-  border-color: transparent;
-  border-style: solid;
+.panel.color1a {
+  background: #0d8ec2;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.popover > .arrow {
-  border-width: 11px;
+.panel.color1b {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.popover > .arrow:after {
-  border-width: 10px;
-  content: "";
+.panel.color1c {
+  background: #6ec6ea;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.popover.top > .arrow {
-  left: 50%;
-  margin-left: -11px;
-  border-bottom-width: 0;
-  border-top-color: #999999;
-  border-top-color: rgba(0, 0, 0, 0.25);
-  bottom: -11px;
+.panel.color2 {
+  background: #4841e7;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.popover.top > .arrow:after {
-  content: " ";
-  bottom: 1px;
-  margin-left: -10px;
-  border-bottom-width: 0;
-  border-top-color: #ffffff;
+.panel.color2a {
+  background: #140dc2;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.popover.right > .arrow {
-  top: 50%;
-  left: -11px;
-  margin-top: -11px;
-  border-left-width: 0;
-  border-right-color: #999999;
-  border-right-color: rgba(0, 0, 0, 0.25);
+.panel.color2b {
+  background: #251dee;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.popover.right > .arrow:after {
-  content: " ";
-  left: 1px;
-  bottom: -10px;
-  border-left-width: 0;
-  border-right-color: #ffffff;
+.panel.color2c {
+  background: #736eea;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.popover.bottom > .arrow {
-  left: 50%;
-  margin-left: -11px;
-  border-top-width: 0;
-  border-bottom-color: #999999;
-  border-bottom-color: rgba(0, 0, 0, 0.25);
-  top: -11px;
+.panel.color3 {
+  background: #41e79b;
+  color: #195137;
+  color: #f1fdf8;
 }
-.popover.bottom > .arrow:after {
-  content: " ";
-  top: 1px;
-  margin-left: -10px;
-  border-top-width: 0;
-  border-bottom-color: #ffffff;
+.panel.color3a {
+  background: #0dc26f;
+  color: #ffffff;
+  color: #f1fdf8;
 }
-.popover.left > .arrow {
-  top: 50%;
-  right: -11px;
-  margin-top: -11px;
-  border-right-width: 0;
-  border-left-color: #999999;
-  border-left-color: rgba(0, 0, 0, 0.25);
+.panel.color3b {
+  background: #1dee8e;
+  color: #15462f;
+  color: #f1fdf8;
 }
-.popover.left > .arrow:after {
-  content: " ";
-  right: 1px;
-  border-right-width: 0;
-  border-left-color: #ffffff;
-  bottom: -10px;
+.panel.color3c {
+  background: #6eeab1;
+  color: #1d6444;
+  color: #f1fdf8;
 }
-.carousel {
-  position: relative;
+.panel.color4 {
+  background: #e77141;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.carousel-inner {
-  position: relative;
-  overflow: hidden;
-  width: 100%;
+.panel.color4a {
+  background: #c2420d;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.carousel-inner > .item {
-  display: none;
-  position: relative;
-  -webkit-transition: 0.6s ease-in-out left;
-  transition: 0.6s ease-in-out left;
+.panel.color4b {
+  background: #ee591d;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.carousel-inner > .item > img,
-.carousel-inner > .item > a > img {
-  line-height: 1;
+.panel.color4c {
+  background: #ea926e;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.carousel-inner > .active,
-.carousel-inner > .next,
-.carousel-inner > .prev {
-  display: block;
+.panel.highlight {
+  background: #ffffff;
+  color: #6a6a6a;
+  color: #717171;
 }
-.carousel-inner > .active {
-  left: 0;
+.panel.monochrome {
+  background: #858585;
+  color: #ffffff;
+  color: #fdf1f1;
 }
-.carousel-inner > .next,
-.carousel-inner > .prev {
-  position: absolute;
-  top: 0;
-  width: 100%;
+.panel-heading,
+.panel-footer {
+  border: none;
 }
-.carousel-inner > .next {
-  left: 100%;
+.panel-body {
+  padding-bottom: 0;
 }
-.carousel-inner > .prev {
-  left: -100%;
+.panel-footer {
+  padding-bottom: 15px;
 }
-.carousel-inner > .next.left,
-.carousel-inner > .prev.right {
-  left: 0;
+.panel-heading,
+.panel-body,
+.panel-footer {
+  background: #6ec6ea;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.carousel-inner > .active.left {
-  left: -100%;
+.panel-heading.color1,
+.panel-body.color1,
+.panel-footer.color1 {
+  background: #26ade4;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.carousel-inner > .active.right {
-  left: 100%;
+.panel-heading.color1a,
+.panel-body.color1a,
+.panel-footer.color1a {
+  background: #0d8ec2;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.carousel-control {
-  position: absolute;
-  top: 0;
-  left: 0;
-  bottom: 0;
-  width: 15%;
-  opacity: 0.5;
-  filter: alpha(opacity=50);
-  font-size: 20px;
+.panel-heading.color1b,
+.panel-body.color1b,
+.panel-footer.color1b {
+  background: #1db1ee;
   color: #ffffff;
-  text-align: center;
-  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+  color: #f1fafd;
 }
-.carousel-control.left {
-  background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%));
-  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+.panel-heading.color1c,
+.panel-body.color1c,
+.panel-footer.color1c {
+  background: #6ec6ea;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.carousel-control.right {
-  left: auto;
-  right: 0;
-  background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%));
-  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+.panel-heading.color2,
+.panel-body.color2,
+.panel-footer.color2 {
+  background: #4841e7;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.carousel-control:hover,
-.carousel-control:focus {
-  outline: none;
+.panel-heading.color2a,
+.panel-body.color2a,
+.panel-footer.color2a {
+  background: #140dc2;
   color: #ffffff;
-  text-decoration: none;
-  opacity: 0.9;
-  filter: alpha(opacity=90);
+  color: #f2f1fd;
 }
-.carousel-control .icon-prev,
-.carousel-control .icon-next,
-.carousel-control .glyphicon-chevron-left,
-.carousel-control .glyphicon-chevron-right {
-  position: absolute;
-  top: 50%;
-  z-index: 5;
-  display: inline-block;
+.panel-heading.color2b,
+.panel-body.color2b,
+.panel-footer.color2b {
+  background: #251dee;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.carousel-control .icon-prev,
-.carousel-control .glyphicon-chevron-left {
-  left: 50%;
+.panel-heading.color2c,
+.panel-body.color2c,
+.panel-footer.color2c {
+  background: #736eea;
+  color: #ffffff;
+  color: #f2f1fd;
+}
+.panel-heading.color3,
+.panel-body.color3,
+.panel-footer.color3 {
+  background: #41e79b;
+  color: #195137;
+  color: #f1fdf8;
+}
+.panel-heading.color3a,
+.panel-body.color3a,
+.panel-footer.color3a {
+  background: #0dc26f;
+  color: #ffffff;
+  color: #f1fdf8;
+}
+.panel-heading.color3b,
+.panel-body.color3b,
+.panel-footer.color3b {
+  background: #1dee8e;
+  color: #15462f;
+  color: #f1fdf8;
+}
+.panel-heading.color3c,
+.panel-body.color3c,
+.panel-footer.color3c {
+  background: #6eeab1;
+  color: #1d6444;
+  color: #f1fdf8;
+}
+.panel-heading.color4,
+.panel-body.color4,
+.panel-footer.color4 {
+  background: #e77141;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.carousel-control .icon-next,
-.carousel-control .glyphicon-chevron-right {
-  right: 50%;
+.panel-heading.color4a,
+.panel-body.color4a,
+.panel-footer.color4a {
+  background: #c2420d;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.carousel-control .icon-prev,
-.carousel-control .icon-next {
-  width: 20px;
-  height: 20px;
-  margin-top: -10px;
-  margin-left: -10px;
-  font-family: serif;
+.panel-heading.color4b,
+.panel-body.color4b,
+.panel-footer.color4b {
+  background: #ee591d;
+  color: #ffffff;
+  color: #fdf5f1;
+}
+.panel-heading.color4c,
+.panel-body.color4c,
+.panel-footer.color4c {
+  background: #ea926e;
+  color: #ffffff;
+  color: #fdf5f1;
+}
+.panel-heading.highlight,
+.panel-body.highlight,
+.panel-footer.highlight {
+  background: #ffffff;
+  color: #6a6a6a;
+  color: #717171;
+}
+.panel-heading.monochrome,
+.panel-body.monochrome,
+.panel-footer.monochrome {
+  background: #858585;
+  color: #ffffff;
+  color: #fdf1f1;
+}
+.carousel-control.left {
+  background: transparent;
+}
+.carousel-control.right {
+  left: auto;
+  right: 0;
+  background: transparent;
 }
 .carousel-control .icon-prev:before {
-  content: '\2039';
+  content: '\00ab';
+  font-size: 44px;
+  line-height: 44px;
+  text-shadow: none;
+  font-weight: bold;
 }
 .carousel-control .icon-next:before {
-  content: '\203a';
+  content: '\00bb';
+  font-size: 44px;
+  line-height: 44px;
+  text-shadow: none;
+  font-weight: bold;
 }
-.carousel-indicators {
-  position: absolute;
-  bottom: 10px;
-  left: 50%;
-  z-index: 15;
-  width: 60%;
-  margin-left: -30%;
-  padding-left: 0;
-  list-style: none;
-  text-align: center;
+.carousel-indicators li {
+  width: 22px;
+  height: 22px;
+  border-radius: 24px;
+  margin: 2px;
+}
+.carousel-indicators .active {
+  width: 26px;
+  height: 26px;
 }
 .carousel-indicators li {
-  display: inline-block;
-  width: 10px;
-  height: 10px;
-  margin: 1px;
-  text-indent: -999px;
-  border: 1px solid #ffffff;
-  border-radius: 10px;
-  cursor: pointer;
-  background-color: #000 \9;
-  background-color: rgba(0, 0, 0, 0);
+  border: 2px solid #6ec6ea;
 }
 .carousel-indicators .active {
-  margin: 0;
-  width: 12px;
-  height: 12px;
-  background-color: #ffffff;
+  background-color: #6ec6ea;
 }
-.carousel-caption {
-  position: absolute;
-  left: 15%;
-  right: 15%;
-  bottom: 20px;
-  z-index: 10;
-  padding-top: 20px;
-  padding-bottom: 20px;
-  color: #ffffff;
-  text-align: center;
-  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+.carousel-indicators.color1 li {
+  border: 2px solid #6ec6ea;
 }
-.carousel-caption .btn {
-  text-shadow: none;
+.carousel-indicators.color1 .active {
+  background-color: #6ec6ea;
 }
-@media screen and (min-width: 768px) {
-  .carousel-control .glyphicon-chevron-left,
-  .carousel-control .glyphicon-chevron-right,
-  .carousel-control .icon-prev,
-  .carousel-control .icon-next {
-    width: 30px;
-    height: 30px;
-    margin-top: -15px;
-    margin-left: -15px;
-    font-size: 30px;
-  }
-  .carousel-caption {
-    left: 20%;
-    right: 20%;
-    padding-bottom: 30px;
-  }
-  .carousel-indicators {
-    bottom: 20px;
-  }
+.carousel-indicators.color2 li {
+  border: 2px solid #736eea;
 }
-.clearfix:before,
-.clearfix:after,
-.container:before,
-.container:after,
-.container-fluid:before,
-.container-fluid:after,
-.row:before,
-.row:after,
-.form-horizontal .form-group:before,
-.form-horizontal .form-group:after,
-.btn-toolbar:before,
-.btn-toolbar:after,
-.btn-group-vertical > .btn-group:before,
-.btn-group-vertical > .btn-group:after,
-.nav:before,
-.nav:after,
-.navbar:before,
-.navbar:after,
-.navbar-header:before,
-.navbar-header:after,
-.navbar-collapse:before,
-.navbar-collapse:after,
-.pager:before,
-.pager:after,
-.panel-body:before,
-.panel-body:after,
-.modal-footer:before,
-.modal-footer:after {
-  content: " ";
-  display: table;
+.carousel-indicators.color2 .active {
+  background-color: #736eea;
 }
-.clearfix:after,
-.container:after,
-.container-fluid:after,
-.row:after,
-.form-horizontal .form-group:after,
-.btn-toolbar:after,
-.btn-group-vertical > .btn-group:after,
-.nav:after,
-.navbar:after,
-.navbar-header:after,
-.navbar-collapse:after,
-.pager:after,
-.panel-body:after,
-.modal-footer:after {
-  clear: both;
+.carousel-indicators.color3 li {
+  border: 2px solid #6eeab1;
 }
-.center-block {
-  display: block;
-  margin-left: auto;
-  margin-right: auto;
+.carousel-indicators.color3 .active {
+  background-color: #6eeab1;
 }
-.pull-right {
-  float: right !important;
+.carousel-indicators.color4 li {
+  border: 2px solid #ea926e;
+}
+.carousel-indicators.color4 .active {
+  background-color: #ea926e;
+}
+.list-group {
+  background: transparent;
+}
+.list-group-item {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
+  border-color: #11a8e5;
+}
+a.list-group-item {
+  color: #ffffff;
+  color: #f1fafd;
 }
-.pull-left {
-  float: left !important;
+a.list-group-item:hover,
+a.list-group-item:focus {
+  background-color: #26b5ef;
 }
-.hide {
-  display: none !important;
+a.list-group-item > .list-group-item-heading {
+  color: #ffffff;
+  color: #f1fafd;
 }
-.show {
-  display: block !important;
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+  color: #ffffff;
+  color: #f1fafd;
+  background-color: #6ec6ea;
+  border: 1px solid transparent;
+  border-top-color: #9ad7f0;
 }
-.invisible {
-  visibility: hidden;
+.list-group-item.active .list-group-item-text,
+.list-group-item.active:hover .list-group-item-text,
+.list-group-item.active:focus .list-group-item-text {
+  color: #ffffff;
 }
-.text-hide {
-  font: 0/0 a;
-  color: transparent;
-  text-shadow: none;
-  background-color: transparent;
-  border: 0;
+.list-group-item.color1 {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
+  border-color: #11a8e5;
 }
-.hidden {
-  display: none !important;
-  visibility: hidden !important;
+a.list-group-item.color1 {
+  color: #ffffff;
+  color: #f1fafd;
 }
-.affix {
-  position: fixed;
+a.list-group-item.color1:hover,
+a.list-group-item.color1:focus {
+  background-color: #26b5ef;
 }
-@-ms-viewport {
-  width: device-width;
+a.list-group-item.color1 > .list-group-item-heading {
+  color: #ffffff;
+  color: #f1fafd;
 }
-.visible-xs,
-.visible-sm,
-.visible-md,
-.visible-lg {
-  display: none !important;
+.list-group-item.color1.active,
+.list-group-item.color1.active:hover,
+.list-group-item.color1.active:focus {
+  color: #ffffff;
+  color: #f1fafd;
+  background-color: #6ec6ea;
+  border: 1px solid transparent;
+  border-top-color: #9ad7f0;
 }
-@media (max-width: 767px) {
-  .visible-xs {
-    display: block !important;
-  }
-  table.visible-xs {
-    display: table;
-  }
-  tr.visible-xs {
-    display: table-row !important;
-  }
-  th.visible-xs,
-  td.visible-xs {
-    display: table-cell !important;
-  }
+.list-group-item.color1.active .list-group-item-text,
+.list-group-item.color1.active:hover .list-group-item-text,
+.list-group-item.color1.active:focus .list-group-item-text {
+  color: #ffffff;
 }
-@media (min-width: 768px) and (max-width: 991px) {
-  .visible-sm {
-    display: block !important;
-  }
-  table.visible-sm {
-    display: table;
-  }
-  tr.visible-sm {
-    display: table-row !important;
-  }
-  th.visible-sm,
-  td.visible-sm {
-    display: table-cell !important;
-  }
+.list-group-item.color2 {
+  background: #251dee;
+  color: #ffffff;
+  color: #f2f1fd;
+  border-color: #1a11e5;
 }
-@media (min-width: 992px) and (max-width: 1199px) {
-  .visible-md {
-    display: block !important;
-  }
-  table.visible-md {
-    display: table;
-  }
-  tr.visible-md {
-    display: table-row !important;
-  }
-  th.visible-md,
-  td.visible-md {
-    display: table-cell !important;
-  }
+a.list-group-item.color2 {
+  color: #ffffff;
+  color: #f2f1fd;
 }
-@media (min-width: 1200px) {
-  .visible-lg {
-    display: block !important;
-  }
-  table.visible-lg {
-    display: table;
-  }
-  tr.visible-lg {
-    display: table-row !important;
-  }
-  th.visible-lg,
-  td.visible-lg {
-    display: table-cell !important;
-  }
+a.list-group-item.color2:hover,
+a.list-group-item.color2:focus {
+  background-color: #2e26ef;
 }
-@media (max-width: 767px) {
-  .hidden-xs {
-    display: none !important;
-  }
+a.list-group-item.color2 > .list-group-item-heading {
+  color: #ffffff;
+  color: #f2f1fd;
 }
-@media (min-width: 768px) and (max-width: 991px) {
-  .hidden-sm {
-    display: none !important;
-  }
+.list-group-item.color2.active,
+.list-group-item.color2.active:hover,
+.list-group-item.color2.active:focus {
+  color: #ffffff;
+  color: #f2f1fd;
+  background-color: #736eea;
+  border: 1px solid transparent;
+  border-top-color: #9d9af0;
 }
-@media (min-width: 992px) and (max-width: 1199px) {
-  .hidden-md {
-    display: none !important;
-  }
+.list-group-item.color2.active .list-group-item-text,
+.list-group-item.color2.active:hover .list-group-item-text,
+.list-group-item.color2.active:focus .list-group-item-text {
+  color: #ffffff;
 }
-@media (min-width: 1200px) {
-  .hidden-lg {
-    display: none !important;
-  }
+.list-group-item.color3 {
+  background: #1dee8e;
+  color: #15462f;
+  color: #f1fdf8;
+  border-color: #11e584;
+}
+a.list-group-item.color3 {
+  color: #15462f;
+  color: #f1fdf8;
+}
+a.list-group-item.color3:hover,
+a.list-group-item.color3:focus {
+  background-color: #26ef92;
+}
+a.list-group-item.color3 > .list-group-item-heading {
+  color: #15462f;
+  color: #f1fdf8;
+}
+.list-group-item.color3.active,
+.list-group-item.color3.active:hover,
+.list-group-item.color3.active:focus {
+  color: #1d6444;
+  color: #f1fdf8;
+  background-color: #6eeab1;
+  border: 1px solid transparent;
+  border-top-color: #9af0c8;
 }
-.visible-print {
-  display: none !important;
+.list-group-item.color3.active .list-group-item-text,
+.list-group-item.color3.active:hover .list-group-item-text,
+.list-group-item.color3.active:focus .list-group-item-text {
+  color: #ffffff;
 }
-@media print {
-  .visible-print {
-    display: block !important;
-  }
-  table.visible-print {
-    display: table;
-  }
-  tr.visible-print {
-    display: table-row !important;
-  }
-  th.visible-print,
-  td.visible-print {
-    display: table-cell !important;
-  }
+.list-group-item.color4 {
+  background: #ee591d;
+  color: #ffffff;
+  color: #fdf5f1;
+  border-color: #e54f11;
 }
-@media print {
-  .hidden-print {
-    display: none !important;
-  }
+a.list-group-item.color4 {
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.pattern-crossword {
-  background: url('/images/crossword.png') repeat;
+a.list-group-item.color4:hover,
+a.list-group-item.color4:focus {
+  background-color: #ef6026;
 }
-.pattern-skulls {
-  background: url('/images/skulls.png') repeat;
+a.list-group-item.color4 > .list-group-item-heading {
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.pattern-triangular {
-  background: url('/images/triangular.png') repeat;
+.list-group-item.color4.active,
+.list-group-item.color4.active:hover,
+.list-group-item.color4.active:focus {
+  color: #ffffff;
+  color: #fdf5f1;
+  background-color: #ea926e;
+  border: 1px solid transparent;
+  border-top-color: #f0b39a;
 }
-.pattern-pixelweave {
-  background: url('/images/pixel_weave.png') repeat;
+.list-group-item.color4.active .list-group-item-text,
+.list-group-item.color4.active:hover .list-group-item-text,
+.list-group-item.color4.active:focus .list-group-item-text {
+  color: #ffffff;
 }
-.navbar-inverse .badge {
-  background-color: #fff;
-  color: #d9230f;
+.sectional {
+  position: relative;
+  padding-top: 90px;
+  padding-bottom: 90px;
+  background: #f7f7f7;
+  color: #666666;
+  color: #6d6d6d;
 }
-.btn {
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+.sectional.sectional-sm {
+  padding-top: 45px;
+  padding-bottom: 45px;
 }
-.btn-default,
-.btn-default:hover {
-  background-image: -webkit-linear-gradient(#4f5151, #474949 6%, #3f4141);
-  background-image: linear-gradient(#4f5151, #474949 6%, #3f4141);
-  background-repeat: no-repeat;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff4f5151', endColorstr='#ff3f4141', GradientType=0);
-  filter: none;
-  border: 1px solid #2e2f2f;
+.sectional.sectional-nav {
+  padding-bottom: 0px;
 }
-.btn-primary,
-.btn-primary:hover {
-  background-image: -webkit-linear-gradient(#e72510, #d9230f 6%, #cb210e);
-  background-image: linear-gradient(#e72510, #d9230f 6%, #cb210e);
-  background-repeat: no-repeat;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe72510', endColorstr='#ffcb210e', GradientType=0);
-  filter: none;
-  border: 1px solid #a91b0c;
+.sectional .sectional-title {
+  position: absolute;
+  top: 12px;
+  width: 100%;
+  text-align: center;
+  text-transform: uppercase;
+  font-size: 14px;
+  opacity: 0.65;
+  filter: alpha(opacity=65);
 }
-.btn-success,
-.btn-success:hover {
-  background-image: -webkit-linear-gradient(#4da309, #469408 6%, #3f8507);
-  background-image: linear-gradient(#4da309, #469408 6%, #3f8507);
-  background-repeat: no-repeat;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff4da309', endColorstr='#ff3f8507', GradientType=0);
-  filter: none;
-  border: 1px solid #2f6405;
+.sectional.monochrome {
+  background: #858585;
+  color: #ffffff;
+  color: #fdf1f1;
 }
-.btn-info,
-.btn-info:hover {
-  background-image: -webkit-linear-gradient(#02a5de, #029acf 6%, #028fc0);
-  background-image: linear-gradient(#02a5de, #029acf 6%, #028fc0);
-  background-repeat: no-repeat;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff02a5de', endColorstr='#ff028fc0', GradientType=0);
-  filter: none;
-  border: 1px solid #02749c;
+.sectional.highlight {
+  background: #ffffff;
+  color: #6a6a6a;
+  color: #717171;
 }
-.btn-warning,
-.btn-warning:hover {
-  background-image: -webkit-linear-gradient(#a54caa, #9b479f 6%, #914294);
-  background-image: linear-gradient(#a54caa, #9b479f 6%, #914294);
-  background-repeat: no-repeat;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffa54caa', endColorstr='#ff914294', GradientType=0);
-  filter: none;
-  border: 1px solid #79377c;
+.sectional.color1 {
+  background: #26ade4;
+  color: #ffffff;
+  color: #f1fafd;
 }
-.btn-danger,
-.btn-danger:hover {
-  background-image: -webkit-linear-gradient(#e08b27, #d9831f 6%, #cc7b1d);
-  background-image: linear-gradient(#e08b27, #d9831f 6%, #cc7b1d);
-  background-repeat: no-repeat;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe08b27', endColorstr='#ffcc7b1d', GradientType=0);
-  filter: none;
-  border: 1px solid #ac6819;
+.sectional.color1a {
+  background: #0d8ec2;
+  color: #ffffff;
+  color: #f1fafd;
 }
-body {
-  font-weight: 200;
+.sectional.color1b {
+  background: #1db1ee;
+  color: #ffffff;
+  color: #f1fafd;
 }
-th {
-  color: #333333;
+.sectional.color1c {
+  background: #6ec6ea;
+  color: #ffffff;
+  color: #f1fafd;
 }
-legend {
-  color: #333333;
+.sectional.color2 {
+  background: #4841e7;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.has-warning .help-block,
-.has-warning .control-label {
-  color: #d9831f;
+.sectional.color2a {
+  background: #140dc2;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.has-warning .form-control,
-.has-warning .form-control:focus {
-  border-color: #d9831f;
+.sectional.color2b {
+  background: #251dee;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.has-error .help-block,
-.has-error .control-label {
-  color: #d9230f;
+.sectional.color2c {
+  background: #736eea;
+  color: #ffffff;
+  color: #f2f1fd;
 }
-.has-error .form-control,
-.has-error .form-control:focus {
-  border-color: #d9230f;
+.sectional.color3 {
+  background: #41e79b;
+  color: #195137;
+  color: #f1fdf8;
 }
-.has-success .help-block,
-.has-success .control-label {
-  color: #469408;
+.sectional.color3a {
+  background: #0dc26f;
+  color: #ffffff;
+  color: #f1fdf8;
 }
-.has-success .form-control,
-.has-success .form-control:focus {
-  border-color: #469408;
+.sectional.color3b {
+  background: #1dee8e;
+  color: #15462f;
+  color: #f1fdf8;
 }
-.pager a {
-  color: #333333;
+.sectional.color3c {
+  background: #6eeab1;
+  color: #1d6444;
+  color: #f1fdf8;
 }
-.pager a:hover,
-.pager .active > a {
-  border-color: #d9230f;
-  color: #fff;
+.sectional.color4 {
+  background: #e77141;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.pager .disabled > a {
-  border-color: #dddddd;
+.sectional.color4a {
+  background: #c2420d;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.nav-lines {
-  margin: 0px;
+.sectional.color4b {
+  background: #ee591d;
+  color: #ffffff;
+  color: #fdf5f1;
 }
-.nav-lines li {
-  display: inline-block;
+.sectional.color4c {
+  background: #ea926e;
+  color: #ffffff;
+  color: #fdf5f1;
+}
+.well h1:first-child,
+.well h2:first-child,
+.well h3:first-child,
+.well h4:first-child,
+.well h5:first-child,
+.well h6:first-child {
+  margin-top: 0;
 }
-.nav-lines li a {
-  padding: 9px 0;
-  margin: 0 10px;
+.pattern-crossword {
+  background: url('/images/crossword.png') repeat;
 }
-.nav-lines li a:hover {
-  background: transparent;
-  border-bottom: 2px solid #91170a;
-  margin-bottom: -1px;
+.pattern-skulls {
+  background: url('/images/skulls.png') repeat;
 }
-.nav-lines li.active a {
-  border-bottom: 2px solid #333;
-  color: inherit;
-  margin-bottom: -1px;
+.pattern-triangular {
+  background: url('/images/triangular.png') repeat;
 }
-.nav-lines li:first-child a {
-  margin-left: 0px;
+.pattern-pixelweave {
+  background: url('/images/pixel_weave.png') repeat;
 }
-.nav-lines li:last-child a {
-  margin-right: 0px;
+.image-ocean {
+  background: url('/images/ocean.jpg') no-repeat center;
 }
-.breadcrumb.avatar-breadcrumb {
-  display: inline-block;
-  vertical-align: top;
-  margin: 0 0 0 10px;
-  padding: 0px;
+.navbar {
+  margin-bottom: 0px;
 }
-.breadcrumb.avatar-breadcrumb > li {
-  font-size: 18px;
+.navbar .navbar-brand {
+  color: #f7f7f7;
 }
-.breadcrumb.avatar-breadcrumb > li > h4 {
-  margin: 0px;
+.sectional.color3 h1,
+.sectional.color3 h2,
+.sectional.color3 p {
+  color: #195137;
 }
-legend > .nav > li > a {
-  font-size: 18px;
+.wake-show-thumbnail {
+  height: 400px;
+  box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.5);
 }
-.jumbotron.welcome-jumbotron {
-  background: linear-gradient(#02a5de, #029acf 6%, #028fc0);
-  color: #fff;
+.wake-show-thumbnail.has-thumbnail {
+  background-repeat: no-repeat;
+  background-position: center center;
+  background-size: cover;
+}
+.wake-show-thumbnail.no-thumbnail {
+  background: url('/images/triangular.png') repeat;
 }
 .wake-thumbnail {
   height: 100px;
@@ -6916,7 +10485,7 @@ legend > .nav > li > a {
   text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5), 0 0 5px #000000;
   word-break: break-word;
 }
-.wake-thumbnail > img {
+.wake-thumbnail img {
   width: 100%;
 }
 .boarding-icons-sprite,
@@ -6959,55 +10528,6 @@ legend > .nav > li > a {
   -o-transition: all, 0.3s;
   transition: all, 0.3s;
 }
-.board-thumbnail {
-  color: #999;
-  text-decoration: none;
-}
-.board-thumbnail.active {
-  background-color: #d9230f;
-  color: #fff;
-}
-.board-thumbnail:hover,
-.board-thumbnail p {
-  text-decoration: none;
-}
-.boat-info {
-  position: relative;
-}
-.boat-info .boat-thumbnail {
-  position: absolute;
-  overflow: hidden;
-  height: 250px;
-  top: 0px;
-  border-radius: 3px 3px 0 0;
-  width: 100%;
-}
-.boat-info .boat-features {
-  position: absolute;
-  top: 0px;
-  padding: 10px;
-  z-index: 100;
-}
-.boat-info .boat-tabs {
-  position: relative;
-  z-index: 100;
-  margin-top: 210px;
-}
-.boat-info .boat-tabs .nav {
-  margin: 0px;
-  padding-left: 10px;
-}
-.boat-info .boat-tabs .tab-content {
-  background: #fff;
-  padding: 10px;
-  border-radius: 0 0 5px 5px;
-}
-.boat-info .shadow-overlay {
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  box-shadow: inset 0 -25px 50px rgba(0, 0, 0, 0.25);
-}
 .avatar.avatar-sm {
   width: 48px;
   display: inline-block;
@@ -7016,24 +10536,3 @@ legend > .nav > li > a {
   width: 80px;
   display: inline-block;
 }
-.form-text input,
-.form-text select {
-  height: 40px;
-  overflow: hidden;
-  line-height: 40px;
-  background: transparent;
-  border: none;
-  border-bottom: 1px dotted;
-  font-weight: 500;
-  border-radius: 0px;
-}
-.form-text label {
-  font-weight: 300;
-}
-.form-text .submit.btn.btn-lg {
-  font-size: 28px;
-  color: #999;
-  border: 1px dotted;
-  background-color: transparent;
-  border-radius: 0;
-}
diff --git a/app/styles/main.less b/app/styles/main.less
index bf6da0e..b6f22c7 100644
--- a/app/styles/main.less
+++ b/app/styles/main.less
@@ -1,210 +1,40 @@
 [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
   display: none !important;
 }
-
+@import url(http://fonts.googleapis.com/css?family=Merriweather:400,300,700|Open+Sans:400,300,600,700);
+@import "scheme.less";
 @import "bootstrap.less";
+@import "1pxdeep.less";
 @import "pattern.less"; 
 
-// Simplex 3.2.0
-// Bootswatch
-// -----------------------------------------------------
-
-.btn-shadow(@color) {
-  #gradient > .vertical-three-colors(lighten(@color, 3%), @color, 6%, darken(@color, 3%));
-  filter: none;
-  border: 1px solid darken(@color, 10%);
-}
-
-// Navbar =====================================================================
-
 .navbar {
-
-  &-inverse {
-
-    .badge {
-      background-color: #fff;
-      color: @brand-primary;
-    }
-  }
-}
-
-// Buttons ====================================================================
-
-.btn {
-  font-family: @headings-font-family;
-}
-
-.btn-default,
-.btn-default:hover {
-  .btn-shadow(@btn-default-bg);
-}
-
-.btn-primary,
-.btn-primary:hover {
-  .btn-shadow(@btn-primary-bg);
-}
-
-.btn-success,
-.btn-success:hover {
-  .btn-shadow(@btn-success-bg);
-}
-
-.btn-info,
-.btn-info:hover {
-  .btn-shadow(@btn-info-bg);
-}
-
-.btn-warning,
-.btn-warning:hover {
-  .btn-shadow(@btn-warning-bg);
-}
-
-.btn-danger,
-.btn-danger:hover {
-  .btn-shadow(@btn-danger-bg);
-}
-
-// Typography =================================================================
-
-body {
-  font-weight: 200;
-}
-
-// Tables =====================================================================
-
-th {
-  color: @headings-color;
-}
-
-// Forms ======================================================================
-
-legend {
-  color: @headings-color;
-}
-
-.has-warning {
-  .help-block,
-  .control-label {
-    color: @brand-danger;
-  }
-
-  .form-control,
-  .form-control:focus {
-    border-color: @brand-danger;
-  }
-}
-
-.has-error {
-  .help-block,
-  .control-label {
-    color: @brand-primary;
-  }
-
-  .form-control,
-  .form-control:focus {
-    border-color: @brand-primary;
-  }
-}
-
-.has-success {
-  .help-block,
-  .control-label {
-    color: @brand-success;
-  }
-
-  .form-control,
-  .form-control:focus {
-    border-color: @brand-success;
-  }
-}
-
-// Navs =======================================================================
-
-.pager {
-  a {
-    color: @headings-color;
-  }
-
-  a:hover,
-  .active > a, {
-    border-color: @brand-primary;
-    color: #fff;
-  }
-
-  .disabled > a {
-    border-color: @pager-border;
+  margin-bottom: 0px;
+  .navbar-brand {
+    color: #f7f7f7;
   }
 }
 
-.nav-lines {
-  margin: 0px;
-  li {
-    display: inline-block;
-    a {
-      padding: 9px 0;
-      margin: 0 10px;
-      &:hover {
-        background: transparent;
-        border-bottom: 2px solid @link-hover-color;
-        margin-bottom: -1px;
-      }
-    }
-    &.active {
-      a {
-        border-bottom: 2px solid #333;
-        color: inherit;
-        margin-bottom: -1px;
-      }
-    }
-    &:first-child{
-      a {
-        margin-left: 0px;
-      }
-    }
-    &:last-child {
-      a {
-        margin-right: 0px;
-      }
+.sectional {
+  &.color3 {
+    h1, h2, p {
+      color: #195137;
     }
   }
 }
 
-.breadcrumb {
-  &.avatar-breadcrumb {
-    display: inline-block;
-    vertical-align: top;
-    margin: 0 0 0 10px;
-    padding: 0px;
-    > li {
-      font-size: 18px;
-      > h4 {
-        margin: 0px;
-      }
-    }
+.wake-show-thumbnail {
+  height: 400px;
+  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
+  &.has-thumbnail {
+    background-repeat: no-repeat;
+    background-position: center center;
+    background-size: cover;
   }
-}
-
-legend {
-  > .nav {
-    > li {
-      > a {
-        font-size: 18px;
-      }
-    }
+  &.no-thumbnail {
+    background: url('/images/triangular.png') repeat;
   }
 }
 
-.jumbotron {
-  &.welcome-jumbotron {
-    background: linear-gradient(#02a5de, #029acf 6%, #028fc0);
-    color: #fff;
-  }
-}
-
-// Indicators =================================================================
-
-// Progress bars ==============================================================
-
 // Wake Thumbnails ============================================================
 
 .wake-thumbnail {
@@ -228,7 +58,7 @@ legend {
       word-break: break-word;
     }
   }
-  > img {
+  img {
     width: 100%;  
   }
 }
@@ -266,57 +96,6 @@ legend {
   -o-transition: all, 0.3s;
   transition: all, 0.3s;
 }
-.board-thumbnail {
-  color: #999;
-  text-decoration: none;
-  &.active {
-    background-color: @brand-primary;
-    color: #fff;
-  }
-  &:hover,p {
-    text-decoration: none;
-  }
-}
-
-// Boat Info =========================================================
-
-.boat-info {
-  position: relative;
-  .boat-thumbnail {
-    position: absolute;
-    overflow: hidden;
-    height: 250px;
-    top: 0px;
-    border-radius:3px 3px 0 0;
-    width: 100%;
-  }
-  .boat-features {
-    position: absolute;
-    top: 0px;
-    padding: 10px;
-    z-index: 100;
-  }
-  .boat-tabs {
-    position: relative;
-    z-index: 100;
-    margin-top: 210px;
-    .nav {
-      margin: 0px;
-      padding-left: 10px;
-    }
-    .tab-content {
-      background: #fff;
-      padding: 10px;
-      border-radius:0 0 5px 5px;
-    }
-  }
-  .shadow-overlay {
-    position: absolute;
-    width: 100%;
-    height: 100%;
-    box-shadow:inset 0 -25px 50px rgba(0,0,0,.25);
-  }
-}
 
 .avatar {
   &.avatar-sm {
@@ -329,26 +108,35 @@ legend {
   }
 }
 
-.form-text {
-  input, select {
-    height: 40px;
-    overflow: hidden;
-    line-height: 40px;
-    background: transparent;
-    border: none;
-    border-bottom: 1px dotted;
-    font-weight: 500;
-    border-radius: 0px;
-  }
-  label {
-    font-weight: 300;
-  }
-  .submit.btn.btn-lg {
-    font-size: 28px;
-    color: #999;
-    border: 1px dotted;
-    background-color: transparent;
-    border-radius: 0;
-  }
-}
+// .form-text {
+//   input, select {
+//     height: 40px;
+//     overflow: hidden;
+//     line-height: 40px;
+//     background: transparent;
+//     border: none;
+//     border-bottom: 1px dotted;
+//     font-weight: 500;
+//     border-radius: 0px;
+//   }
+//   label {
+//     font-weight: 300;
+//   }
+//   .submit.btn.btn-lg {
+//     font-size: 28px;
+//     color: #999;
+//     border: 1px dotted;
+//     background-color: transparent;
+//     border-radius: 0;
+//   }
+// }
+
+// .login-container {
+//   margin-top: -20px;
+//   padding: 20px 0;
+//   h3 {
+//     color: #fff;
+//     text-shadow: 0 1px 3px rgba(0,0,0,.25);
+//   }
+// }
  
\ No newline at end of file
diff --git a/app/styles/pattern.less b/app/styles/pattern.less
index c95dff6..9e37f52 100644
--- a/app/styles/pattern.less
+++ b/app/styles/pattern.less
@@ -16,4 +16,8 @@
 
 .pattern-pixelweave {
   background: url('/images/pixel_weave.png') repeat;
+}
+
+.image-ocean {
+  background: url('/images/ocean.jpg') no-repeat center;
 }
\ No newline at end of file
diff --git a/app/styles/scheme.less b/app/styles/scheme.less
new file mode 100755
index 0000000..8e314e4
--- /dev/null
+++ b/app/styles/scheme.less
@@ -0,0 +1,144 @@
+    /////////////////////////////////////////////////
+/////////////////////////////////////////////////
+//// SchemeLESS v1.0
+////
+//// Copyright 2013 Rex Riepe
+//// Licensed under the Apache License v2.0
+//// http://www.apache.org/licenses/LICENSE-2.0
+////
+/////////////////////////////////////////////////
+/////////////////////////////////////////////////
+
+///////////////////////////
+////Customizable values
+///////////////////////////
+
+// This color is used to generate the scheme
+@seed-color: #26ADE4;
+
+//// Color wheel positions
+///////////////////////////
+
+// Uncomment the color wheel you want to use
+
+// Accented analogue (default)
+@wheel_pos1:45; @wheel_pos2:315; @wheel_pos3:180;
+
+// Tetrad
+//@wheel_pos1:30; @wheel_pos2:180; @wheel_pos3:210;
+
+// Triad
+//@wheel_pos1:120; @wheel_pos2:240; @wheel_pos3:0;
+
+// Compliment
+//@wheel_pos1:180; @wheel_pos2:0; @wheel_pos3:180;
+
+// Monochrome
+//@wheel_pos1:8; @wheel_pos2:352; @wheel_pos3:0;
+
+//// Luma breaks
+///////////////////////////
+
+// Change these for different contrast cutoff points
+
+@luma-upper-break:80%;
+@luma-lower-break:16%;
+
+//// Relative changes to subcolors (lightness, saturation)
+///////////////////////////
+
+// Customize these for different relative a, b and c colors
+
+@contrast:1;
+
+@color-a-sat:(8%*@contrast);
+@color-a-lit:(-15%*@contrast);
+
+@color-b-sat:(7%*@contrast);
+@color-b-lit:(-5%*@contrast);
+
+@color-c-sat:(-3%*@contrast);
+@color-c-lit:(8%*@contrast);
+
+///////////////////////////
+////Scheme building
+///////////////////////////
+
+//// Beginning color values
+///////////////////////////
+
+@sat:saturation(@seed-color);
+@luma:luminance(@seed-color);
+@lit:lightness(@seed-color);
+@tone:desaturate(@seed-color,100%);
+
+//// Color creation
+///////////////////////////
+
+//This makes the scheme's colors using the wheel positions
+
+@l-factor:@luma; // what we'll use for the L in HSL
+
+@color1:@seed-color;
+@color1theme:hsl(hue(spin(@seed-color,0)),@sat,@l-factor); // a color 1 alternate, to keep a, b and c colors consistent
+
+@color1a:lighten(saturate(@color1theme,@color-a-sat), @color-a-lit);
+@color1b:lighten(saturate(@color1theme,@color-b-sat), @color-b-lit);
+@color1c:lighten(saturate(@color1theme,@color-c-sat), @color-c-lit);
+
+@color2:hsl(hue(spin(@seed-color,@wheel_pos1)),@sat,@l-factor);
+
+@color2a:lighten(saturate(@color2,@color-a-sat), @color-a-lit);
+@color2b:lighten(saturate(@color2,@color-b-sat), @color-b-lit);
+@color2c:lighten(saturate(@color2,@color-c-sat), @color-c-lit);
+
+@color3:hsl(hue(spin(@seed-color,@wheel_pos2)),@sat,@l-factor);
+
+@color3a:lighten(saturate(@color3,@color-a-sat), @color-a-lit);
+@color3b:lighten(saturate(@color3,@color-b-sat), @color-b-lit);
+@color3c:lighten(saturate(@color3,@color-c-sat), @color-c-lit);
+
+@color4:hsl(hue(spin(@seed-color,@wheel_pos3)),@sat,@l-factor);
+
+@color4a:lighten(saturate(@color4,@color-a-sat), @color-a-lit);
+@color4b:lighten(saturate(@color4,@color-b-sat), @color-b-lit);
+@color4c:lighten(saturate(@color4,@color-c-sat), @color-c-lit);
+
+///////////////////////////
+//// Mix-ins
+///////////////////////////
+
+//// Contrast
+///////////////////////////
+
+// contrasts text against a given background color
+
+.contrast (@color) when (luminance(@color) >= @luma-upper-break) {
+    //darker text for lighter backgrounds
+    color:average(darken(@color,30%),#222);
+}
+
+.contrast (@color) when (luminance(@color) < @luma-upper-break) {
+    //white text for everything else
+    color:#ffffff;
+}
+
+//// Schemify
+///////////////////////////
+
+// brings outside colors more in line with the current scheme
+
+.schemify(@color) { //schemifies a background color
+    @mix-weight:60%;
+    @new-color:mix(hsl(hue(@color),@sat,@luma),@color,@mix-weight);
+    background:@new-color;
+    .contrast(@new-color);
+}
+
+.schemify-text(@color) {
+    @mix-weight:60%;
+    @new-color:mix(hsl(hue(@color),@sat,@luma),@color,@mix-weight);
+    color:@new-color;
+    .contrast(@color);
+}
+
diff --git a/app/styles/variables.less b/app/styles/variables.less
index 6107de9..12a8cbe 100644
--- a/app/styles/variables.less
+++ b/app/styles/variables.less
@@ -1,4 +1,4 @@
-// Simplex 3.2.0
+//
 // Variables
 // --------------------------------------------------
 
@@ -7,11 +7,12 @@
 //
 //## Gray and brand colors for use across Bootstrap.
 
-@gray-darker:            lighten(#000, 13.5%); // #222
-@gray-dark:              lighten(#000, 20%);   // #333
-@gray:                   lighten(#000, 33.5%); // #555
-@gray-light:             #808080;   // #999
-@gray-lighter:           #ddd; // #eee
+@gray-base:              #000;
+@gray-darker:            lighten(@gray-base, 13.5%); // #222
+@gray-dark:              lighten(@gray-base, 20%);   // #333
+@gray:                   lighten(@gray-base, 33.5%); // #555
+@gray-light:             lighten(@gray-base, 46.7%); // #777
+@gray-lighter:           lighten(@gray-base, 93.5%); // #eee
 
 @brand-primary:         #D9230F;
 @brand-success:         #469408;
@@ -27,12 +28,14 @@
 //** Background color for ``.
 @body-bg:               #FCFCFC;
 //** Global text color on ``.
-@text-color:            @gray-light;
+@text-color:            @gray-dark;
 
 //** Global textual link color.
 @link-color:            @brand-primary;
 //** Link hover color set via `darken()` function.
 @link-hover-color:      darken(@link-color, 15%);
+//** Link hover decoration.
+@link-hover-decoration: underline;
 
 
 //== Typography
@@ -62,10 +65,10 @@
 @line-height-computed:    floor((@font-size-base * @line-height-base)); // ~20px
 
 //** By default, this inherits from the ``.
-@headings-font-family:    @font-family-sans-serif;
-@headings-font-weight:    300;
+@headings-font-family:    inherit;
+@headings-font-weight:    500;
 @headings-line-height:    1.1;
-@headings-color:          @gray-dark;
+@headings-color:          inherit;
 
 
 //== Iconography
@@ -84,10 +87,10 @@
 //
 //## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
 
-@padding-base-vertical:     8px;
+@padding-base-vertical:     6px;
 @padding-base-horizontal:   12px;
 
-@padding-large-vertical:    14px;
+@padding-large-vertical:    10px;
 @padding-large-horizontal:  16px;
 
 @padding-small-vertical:    5px;
@@ -96,7 +99,7 @@
 @padding-xs-vertical:       1px;
 @padding-xs-horizontal:     5px;
 
-@line-height-large:         1.33;
+@line-height-large:         1.3333333; // extra decimals for Win 8.1 Chrome
 @line-height-small:         1.5;
 
 @border-radius-base:        4px;
@@ -141,29 +144,29 @@
 
 @btn-font-weight:                normal;
 
-@btn-default-color:              #fff;
-@btn-default-bg:                 #474949;
-@btn-default-border:             @btn-default-bg;
+@btn-default-color:              #333;
+@btn-default-bg:                 #fff;
+@btn-default-border:             #ccc;
 
-@btn-primary-color:              @btn-default-color;
+@btn-primary-color:              #fff;
 @btn-primary-bg:                 @brand-primary;
-@btn-primary-border:             @btn-primary-bg;
+@btn-primary-border:             darken(@btn-primary-bg, 5%);
 
-@btn-success-color:              @btn-default-color;
+@btn-success-color:              #fff;
 @btn-success-bg:                 @brand-success;
-@btn-success-border:             @btn-success-bg;
+@btn-success-border:             darken(@btn-success-bg, 5%);
 
-@btn-info-color:                 @btn-default-color;
+@btn-info-color:                 #fff;
 @btn-info-bg:                    @brand-info;
-@btn-info-border:                @btn-info-bg;
+@btn-info-border:                darken(@btn-info-bg, 5%);
 
-@btn-warning-color:              @btn-default-color;
+@btn-warning-color:              #fff;
 @btn-warning-bg:                 @brand-warning;
-@btn-warning-border:             @btn-warning-bg;
+@btn-warning-border:             darken(@btn-warning-bg, 5%);
 
-@btn-danger-color:               @btn-default-color;
+@btn-danger-color:               #fff;
 @btn-danger-bg:                  @brand-danger;
-@btn-danger-border:              @btn-danger-bg;
+@btn-danger-border:              darken(@btn-danger-bg, 5%);
 
 @btn-link-disabled-color:        @gray-light;
 
@@ -178,16 +181,24 @@
 @input-bg-disabled:              @gray-lighter;
 
 //** Text color for ``s
-@input-color:                    @text-color;
+@input-color:                    @gray;
 //** `` border color
-@input-border:                   #ddd;
-//** `` border radius
+@input-border:                   #ccc;
+
+// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4
+//** Default `.form-control` border radius
+// This has no effect on ``s in CSS.
 @input-border-radius:            @border-radius-base;
+//** Large `.form-control` border radius
+@input-border-radius-large:      @border-radius-large;
+//** Small `.form-control` border radius
+@input-border-radius-small:      @border-radius-small;
+
 //** Border color for inputs on focus
 @input-border-focus:             #66afe9;
 
 //** Placeholder text color
-@input-color-placeholder:        @gray-lighter;
+@input-color-placeholder:        #999;
 
 //** Default `.form-control` height
 @input-height-base:              (@line-height-computed + (@padding-base-vertical * 2) + 2);
@@ -196,7 +207,10 @@
 //** Small `.form-control` height
 @input-height-small:             (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
 
-@legend-color:                   @text-color;
+//** `.form-group` margin
+@form-group-margin-bottom:       15px;
+
+@legend-color:                   @gray-dark;
 @legend-border-color:            #e5e5e5;
 
 //** Background color for textual input addons
@@ -204,6 +218,9 @@
 //** Border color for textual input addons
 @input-group-addon-border-color: @input-border;
 
+//** Disabled cursor for form controls and buttons.
+@cursor-disabled:                not-allowed;
+
 
 //== Dropdowns
 //
@@ -221,20 +238,20 @@
 //** Dropdown link text color.
 @dropdown-link-color:            @gray-dark;
 //** Hover color for dropdown links.
-@dropdown-link-hover-color:      #fff;
+@dropdown-link-hover-color:      darken(@gray-dark, 5%);
 //** Hover background for dropdown links.
-@dropdown-link-hover-bg:         @dropdown-link-active-bg;
+@dropdown-link-hover-bg:         #f5f5f5;
 
 //** Active dropdown menu item text color.
-@dropdown-link-active-color:     #fff;
+@dropdown-link-active-color:     @component-active-color;
 //** Active dropdown menu item background color.
 @dropdown-link-active-bg:        @component-active-bg;
 
 //** Disabled dropdown menu item background color.
-@dropdown-link-disabled-color:   @text-muted;
+@dropdown-link-disabled-color:   @gray-light;
 
 //** Text color for headers within dropdown menus.
-@dropdown-header-color:          @text-muted;
+@dropdown-header-color:          @gray-light;
 
 //** Deprecated `@dropdown-caret-color` as of v3.1.0
 @dropdown-caret-color:           #000;
@@ -315,17 +332,17 @@
 //## Define the maximum width of `.container` for different screen sizes.
 
 // Small screen / tablet
-@container-tablet:             ((720px + @grid-gutter-width));
+@container-tablet:             (720px + @grid-gutter-width);
 //** For `@screen-sm-min` and up.
 @container-sm:                 @container-tablet;
 
 // Medium screen / desktop
-@container-desktop:            ((940px + @grid-gutter-width));
+@container-desktop:            (940px + @grid-gutter-width);
 //** For `@screen-md-min` and up.
 @container-md:                 @container-desktop;
 
 // Large screen / wide desktop
-@container-large-desktop:      ((1140px + @grid-gutter-width));
+@container-large-desktop:      (1140px + @grid-gutter-width);
 //** For `@screen-lg-min` and up.
 @container-lg:                 @container-large-desktop;
 
@@ -335,50 +352,50 @@
 //##
 
 // Basics of a navbar
-@navbar-height:                    40px;
+@navbar-height:                    50px;
 @navbar-margin-bottom:             @line-height-computed;
 @navbar-border-radius:             @border-radius-base;
 @navbar-padding-horizontal:        floor((@grid-gutter-width / 2));
 @navbar-padding-vertical:          ((@navbar-height - @line-height-computed) / 2);
 @navbar-collapse-max-height:       340px;
 
-@navbar-default-color:             @text-color;
-@navbar-default-bg:                #fff;
+@navbar-default-color:             #777;
+@navbar-default-bg:                #f8f8f8;
 @navbar-default-border:            darken(@navbar-default-bg, 6.5%);
 
 // Navbar links
-@navbar-default-link-color:                @headings-color;
-@navbar-default-link-hover-color:          @brand-primary;
+@navbar-default-link-color:                #777;
+@navbar-default-link-hover-color:          #333;
 @navbar-default-link-hover-bg:             transparent;
-@navbar-default-link-active-color:         @navbar-default-link-hover-color;
-@navbar-default-link-active-bg:            transparent;
-@navbar-default-link-disabled-color:       #444;
+@navbar-default-link-active-color:         #555;
+@navbar-default-link-active-bg:            darken(@navbar-default-bg, 6.5%);
+@navbar-default-link-disabled-color:       #ccc;
 @navbar-default-link-disabled-bg:          transparent;
 
 // Navbar brand label
 @navbar-default-brand-color:               @navbar-default-link-color;
-@navbar-default-brand-hover-color:         @navbar-default-link-hover-color;
+@navbar-default-brand-hover-color:         darken(@navbar-default-brand-color, 10%);
 @navbar-default-brand-hover-bg:            transparent;
 
 // Navbar toggle
 @navbar-default-toggle-hover-bg:           #ddd;
-@navbar-default-toggle-icon-bar-bg:        #ccc;
+@navbar-default-toggle-icon-bar-bg:        #888;
 @navbar-default-toggle-border-color:       #ddd;
 
 
 // Inverted navbar
 // Reset inverted navbar basics
-@navbar-inverse-color:                      #fff;
-@navbar-inverse-bg:                         @brand-primary;
+@navbar-inverse-color:                      lighten(@gray-light, 15%);
+@navbar-inverse-bg:                         #222;
 @navbar-inverse-border:                     darken(@navbar-inverse-bg, 10%);
 
 // Inverted navbar links
-@navbar-inverse-link-color:                 #fff;
-@navbar-inverse-link-hover-color:           lighten(@brand-primary, 40%);
+@navbar-inverse-link-color:                 lighten(@gray-light, 15%);
+@navbar-inverse-link-hover-color:           #fff;
 @navbar-inverse-link-hover-bg:              transparent;
 @navbar-inverse-link-active-color:          @navbar-inverse-link-hover-color;
-@navbar-inverse-link-active-bg:             transparent;
-@navbar-inverse-link-disabled-color:        #ccc;
+@navbar-inverse-link-active-bg:             darken(@navbar-inverse-bg, 10%);
+@navbar-inverse-link-disabled-color:        #444;
 @navbar-inverse-link-disabled-bg:           transparent;
 
 // Inverted navbar brand label
@@ -387,9 +404,9 @@
 @navbar-inverse-brand-hover-bg:             transparent;
 
 // Inverted navbar toggle
-@navbar-inverse-toggle-hover-bg:            darken(@navbar-inverse-bg, 10%);
+@navbar-inverse-toggle-hover-bg:            #333;
 @navbar-inverse-toggle-icon-bar-bg:         #fff;
-@navbar-inverse-toggle-border-color:        darken(@navbar-inverse-bg, 10%);
+@navbar-inverse-toggle-border-color:        #333;
 
 
 //== Navs
@@ -403,8 +420,6 @@
 @nav-disabled-link-color:                   @gray-light;
 @nav-disabled-link-hover-color:             @gray-light;
 
-@nav-open-link-hover-color:                 #fff;
-
 //== Tabs
 @nav-tabs-border-color:                     #ddd;
 
@@ -427,19 +442,19 @@
 //
 //##
 
-@pagination-color:                     @headings-color;
+@pagination-color:                     @link-color;
 @pagination-bg:                        #fff;
 @pagination-border:                    #ddd;
 
-@pagination-hover-color:               #fff;
-@pagination-hover-bg:                  @brand-primary;
-@pagination-hover-border:              @brand-primary;
+@pagination-hover-color:               @link-hover-color;
+@pagination-hover-bg:                  @gray-lighter;
+@pagination-hover-border:              #ddd;
 
 @pagination-active-color:              #fff;
 @pagination-active-bg:                 @brand-primary;
 @pagination-active-border:             @brand-primary;
 
-@pagination-disabled-color:            @gray-lighter;
+@pagination-disabled-color:            @gray-light;
 @pagination-disabled-bg:               #fff;
 @pagination-disabled-border:           #ddd;
 
@@ -452,12 +467,12 @@
 @pager-border:                         @pagination-border;
 @pager-border-radius:                  15px;
 
-@pager-hover-bg:                       @brand-primary;
+@pager-hover-bg:                       @pagination-hover-bg;
 
-@pager-active-bg:                      @brand-primary;
-@pager-active-color:                   #fff;
+@pager-active-bg:                      @pagination-active-bg;
+@pager-active-color:                   @pagination-active-color;
 
-@pager-disabled-color:                 @gray-lighter;
+@pager-disabled-color:                 @pagination-disabled-color;
 
 
 //== Jumbotron
@@ -466,7 +481,7 @@
 
 @jumbotron-padding:              30px;
 @jumbotron-color:                inherit;
-@jumbotron-bg:                   darken(@body-bg, 3%);
+@jumbotron-bg:                   @gray-lighter;
 @jumbotron-heading-color:        inherit;
 @jumbotron-font-size:            ceil((@font-size-base * 1.5));
 
@@ -475,21 +490,21 @@
 //
 //## Define colors for form feedback states and, by default, alerts.
 
-@state-success-text:             #468847;
+@state-success-text:             #3c763d;
 @state-success-bg:               #dff0d8;
 @state-success-border:           darken(spin(@state-success-bg, -10), 5%);
 
-@state-info-text:                #3a87ad;
+@state-info-text:                #31708f;
 @state-info-bg:                  #d9edf7;
 @state-info-border:              darken(spin(@state-info-bg, -10), 7%);
 
-@state-warning-text:             #c09853;
+@state-warning-text:             #8a6d3b;
 @state-warning-bg:               #fcf8e3;
-@state-warning-border:           darken(spin(@state-warning-bg, -10), 3%);
+@state-warning-border:           darken(spin(@state-warning-bg, -10), 5%);
 
-@state-danger-text:              #b94a48;
+@state-danger-text:              #a94442;
 @state-danger-bg:                #f2dede;
-@state-danger-border:            darken(spin(@state-danger-bg, -10), 3%);
+@state-danger-border:            darken(spin(@state-danger-bg, -10), 5%);
 
 
 //== Tooltips
@@ -501,7 +516,7 @@
 //** Tooltip text color
 @tooltip-color:               #fff;
 //** Tooltip background color
-@tooltip-bg:                  rgba(0,0,0,.9);
+@tooltip-bg:                  #000;
 @tooltip-opacity:             .9;
 
 //** Tooltip arrow width
@@ -529,7 +544,7 @@
 //** Popover arrow width
 @popover-arrow-width:                 10px;
 //** Popover arrow color
-@popover-arrow-color:                 #fff;
+@popover-arrow-color:                 @popover-bg;
 
 //** Popover outer arrow width
 @popover-arrow-outer-width:           (@popover-arrow-width + 1);
@@ -544,7 +559,7 @@
 //##
 
 //** Default label background color
-@label-default-bg:            @btn-default-bg;
+@label-default-bg:            @gray-light;
 //** Primary label background color
 @label-primary-bg:            @brand-primary;
 //** Success label background color
@@ -567,7 +582,7 @@
 //##
 
 //** Padding applied to the modal body
-@modal-inner-padding:         20px;
+@modal-inner-padding:         15px;
 
 //** Padding applied to the modal title
 @modal-title-padding:         15px;
@@ -628,6 +643,8 @@
 @progress-bg:                 #f5f5f5;
 //** Progress bar text color
 @progress-bar-color:          #fff;
+//** Variable for setting rounded corners on progress bar.
+@progress-border-radius:      @border-radius-base;
 
 //** Default progress bar color
 @progress-bar-bg:             @brand-primary;
@@ -687,31 +704,31 @@
 
 //** Border color for elements within panels
 @panel-inner-border:          #ddd;
-@panel-footer-bg:             @panel-default-heading-bg;
+@panel-footer-bg:             #f5f5f5;
 
 @panel-default-text:          @gray-dark;
 @panel-default-border:        #ddd;
-@panel-default-heading-bg:    @body-bg;
+@panel-default-heading-bg:    #f5f5f5;
 
 @panel-primary-text:          #fff;
 @panel-primary-border:        @brand-primary;
 @panel-primary-heading-bg:    @brand-primary;
 
-@panel-success-text:          #fff;
-@panel-success-border:        @brand-success;
-@panel-success-heading-bg:    @brand-success;
+@panel-success-text:          @state-success-text;
+@panel-success-border:        @state-success-border;
+@panel-success-heading-bg:    @state-success-bg;
 
-@panel-info-text:             #fff;
-@panel-info-border:           @brand-info;
-@panel-info-heading-bg:       @brand-info;
+@panel-info-text:             @state-info-text;
+@panel-info-border:           @state-info-border;
+@panel-info-heading-bg:       @state-info-bg;
 
-@panel-warning-text:          #fff;
-@panel-warning-border:        @brand-warning;
-@panel-warning-heading-bg:    @brand-warning;
+@panel-warning-text:          @state-warning-text;
+@panel-warning-border:        @state-warning-border;
+@panel-warning-heading-bg:    @state-warning-bg;
 
-@panel-danger-text:           #fff;
-@panel-danger-border:         @brand-danger;
-@panel-danger-heading-bg:     @brand-danger;
+@panel-danger-text:           @state-danger-text;
+@panel-danger-border:         @state-danger-border;
+@panel-danger-heading-bg:     @state-danger-bg;
 
 
 //== Thumbnails
@@ -737,7 +754,7 @@
 //
 //##
 
-@well-bg:                     darken(@body-bg, 3%);
+@well-bg:                     #f5f5f5;
 @well-border:                 darken(@well-bg, 7%);
 
 
@@ -748,7 +765,7 @@
 @badge-color:                 #fff;
 //** Linked badge text color on hover
 @badge-link-hover-color:      #fff;
-@badge-bg:                    @link-color;
+@badge-bg:                    @gray-light;
 
 //** Badge text color in active nav link
 @badge-active-color:          @link-color;
@@ -767,7 +784,7 @@
 @breadcrumb-padding-vertical:   8px;
 @breadcrumb-padding-horizontal: 15px;
 //** Breadcrumb background color
-@breadcrumb-bg:                 transparent;
+@breadcrumb-bg:                 #f5f5f5;
 //** Breadcrumb text color
 @breadcrumb-color:              #ccc;
 //** Text color of current page in the breadcrumb
@@ -842,5 +859,3 @@
 @dl-horizontal-offset:        @component-offset-horizontal;
 //** Horizontal line color.
 @hr-border:                   @gray-lighter;
-
-
diff --git a/app/views/auth/login.html b/app/views/auth/login.html
new file mode 100644
index 0000000..4bc9e95
--- /dev/null
+++ b/app/views/auth/login.html
@@ -0,0 +1,37 @@
+
+
+
+
+

+ You will be redirected back to {{redirect}} +
after logging in +

+
+

+
+
+

+
+
+
{{error}}
+
+ +
+
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/app/views/auth/loginModal.html b/app/views/auth/loginModal.html new file mode 100644 index 0000000..964db9f --- /dev/null +++ b/app/views/auth/loginModal.html @@ -0,0 +1,36 @@ + + + \ No newline at end of file diff --git a/app/views/auth/register.html b/app/views/auth/register.html new file mode 100644 index 0000000..2bd203f --- /dev/null +++ b/app/views/auth/register.html @@ -0,0 +1,42 @@ +
+
+ + +
+

+
+
+
{{error}}
+
+ +
+
+ +
+
+ +
+ +
+ +
+
+
+
+
+ +
+
+
+
+
+
diff --git a/app/views/auth/signup.html b/app/views/auth/signup.html new file mode 100644 index 0000000..e2d1878 --- /dev/null +++ b/app/views/auth/signup.html @@ -0,0 +1,81 @@ +
+
+
+

Signup

+
+

+
+
+
{{error}}
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+

Summer only lasts so long...

+

Here's why you should sign up today

+
+
+ +
+
+
+ + +
+
+

Discover and meet new people

+

Discover riders and boat owners in your area who enjoy water sports as much as you do.

+
+
+
+ +
+
+
+

No more waiting at the docks

+

Those days of waiting hours in hopes to find someone willing to give you a ride are over. With Find A Wake you will know exactly who you are meeting, the time and place.

+
+
+ +
+
+
+ +
+
+
+ +
+
+

Save $$$ by sharing

+

Split the gas bill and enjoy the benefits of sharing a wake with riders.

+
+
+
\ No newline at end of file diff --git a/app/views/auth/signup.success.html b/app/views/auth/signup.success.html new file mode 100644 index 0000000..4ce10e3 --- /dev/null +++ b/app/views/auth/signup.success.html @@ -0,0 +1,11 @@ +
+
+
+

Welcome Aboard

+

Please wait while we finish creating your new account. This will only take a couple seconds.

+
+

+
+
+
+
\ No newline at end of file diff --git a/app/views/legal/index.html b/app/views/legal/index.html new file mode 100644 index 0000000..7dbbc81 --- /dev/null +++ b/app/views/legal/index.html @@ -0,0 +1,15 @@ +
+
+

Terms of Service

+
+
+
+
+
+

Privacy Policy

+
+
+
+
+ With permission from TermsFeed (http://termsfeed.com/). +
\ No newline at end of file diff --git a/app/views/legal/pp.html b/app/views/legal/pp.html new file mode 100644 index 0000000..2c8acec --- /dev/null +++ b/app/views/legal/pp.html @@ -0,0 +1,47 @@ +Privacy Policy + +Last updated: July 21, 2014 + +Find A Wake ("us", "we", or "our") operates the findawake.com website (the "Service"). + +This page informs you of our policies regarding the collection, use and disclosure of Personal Information when you use our Service. + +We will not use or share your information with anyone except as described in this Privacy Policy. + +We use your Personal Information for providing and improving the Service. By using the Service, you agree to the collection and use of information in accordance with this policy. Unless otherwise defined in this Privacy Policy, terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, accessible at findawake.com + +Information Collection And Use +While using our Service, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you. Personally identifiable information may include, but is not limited to, your email, your name, phone number, postal address and other information ("Personal Information"). + +Log Data +We collect information that your browser sends whenever you visit our Service ("Log Data"). This Log Data may include information such as your computer's Internet Protocol ("IP") address, browser type, browser version, the pages of our Service that you visit, the time and date of your visit, the time spent on those pages and other statistics. + +Cookies +Cookies are files with small amount of data, which may include an anonymous unique identifier. Cookies are sent to your browser from a web site and stored on your computer's hard drive. + +We use "cookies" to collect information. You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. However, if you do not accept cookies, you may not be able to use some portions of our Service. + +Service Providers +We may employ third party companies and individuals to facilitate our Service, to provide the Service on our behalf, to perform Service-related services or to assist us in analyzing how our Service is used. +These third parties have access to your Personal Information only to perform these tasks on our behalf and are obligated not to disclose or use it for any other purpose. + +Security +The security of your Personal Information is important to us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While we strive to use commercially acceptable means to protect your Personal Information, we cannot guarantee its absolute security. + +Links To Other Sites +Our Service may contain links to other sites that are not operated by us. If you click on a third party link, you will be directed to that third party's site. We strongly advise you to review the Privacy Policy of every site you visit. + +We have no control over, and assume no responsibility for the content, privacy policies or practices of any third party sites or services. + +Children's Privacy +Our Service does not address anyone under the age of 13 ("Children"). + +We do not knowingly collect personally identifiable information from children under 13. If you are a parent or guardian and you are aware that your Children has provided us with Personal Information, please contact us. If we discover that a Children under 13 has provided us with Personal Information, we will delete such information from our servers immediately. + +Changes To This Privacy Policy +We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page. + +You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page. + +Contact Us +If you have any questions about this Privacy Policy, please contact us. \ No newline at end of file diff --git a/app/views/legal/tos.html b/app/views/legal/tos.html new file mode 100644 index 0000000..61e8452 --- /dev/null +++ b/app/views/legal/tos.html @@ -0,0 +1,52 @@ +Terms of Service ("Terms") +Last updated: July 19, 2014 +Please read these Terms of Service ("Terms", "Terms of Service") carefully before using the findawake.com website (the "Service") operated by Sisu Ware ("us", "we", or "our"). + +Your access to and use of the Service is conditioned on your acceptance of and compliance with these Terms. These Terms apply to all visitors, users and others who access or use the Service. + +By accessing or using the Service you agree to be bound by these Terms. If you disagree with any part of the terms then you may not access the Service. + +Accounts +When you create an account with us, you must provide us information that is accurate, complete, and current at all times. Failure to do so constitutes a breach of the Terms, which may result in immediate termination of your account on our Service. + +You are responsible for safeguarding the password that you use to access the Service and for any activities or actions under your password, whether your password is with our Service or a third-party service. + +You agree not to disclose your password to any third party. You must notify us immediately upon becoming aware of any breach of security or unauthorized use of your account. + +Links To Other Web Sites +Our Service may contain links to third-party web sites or services that are not owned or controlled by Find A Wake. + +Find A Wake has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any third party web sites or services. You further acknowledge and agree that Find A Wake shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any such content, goods or services available on or through any such web sites or services. + +We strongly advise you to read the terms and conditions and privacy policies of any third-party web sites or services that you visit. + +Disclaimer +The contents of our Service are provided "as is". We make no warranties, expressed or implied, and hereby disclaims and negates all other warranties, including without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property or other violation of rights. Further, Find A Wake does not warrant or make any representations concerning the accuracy, likely results, or reliability of the use of our Service. + +Limitations +In no event shall Find A Wake be liable for any damages (including, without limitation, damages for loss of data or profit, or loss of life and injury,) arising out of the use or inability to use our Serivce, even if Find A Wake or a Find A Wake authorized representative has been notified orally or in writing of the possibility of such damage. Because some jurisdictions do not allow limitations on implied warranties, or limitations of liability for consequential or incidental damages, these limitations may not apply to you. + +Termination +We may terminate or suspend access to our Service immediately, without prior notice or liability, for any reason whatsoever, including without limitation if you breach the Terms. + +All provisions of the Terms which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability. + +We may terminate or suspend your account immediately, without prior notice or liability, for any reason whatsoever, including without limitation if you breach the Terms. + +Upon termination, your right to use the Service will immediately cease. If you wish to terminate your account, you may simply discontinue using the Service. + +All provisions of the Terms which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability. + +Governing Law +These Terms shall be governed and construed in accordance with the laws of Oregon, United States, without regard to its conflict of law provisions. + +Our failure to enforce any right or provision of these Terms will not be considered a waiver of those rights. If any provision of these Terms is held to be invalid or unenforceable by a court, the remaining provisions of these Terms will remain in effect. These Terms constitute the entire agreement between us regarding our Service, and supersede and replace any prior agreements we might have between us regarding the Service. + +Changes +We reserve the right, at our sole discretion, to modify or replace these Terms at any time. If a revision is material we will try to provide at least 30 days notice prior to any new terms taking effect. What constitutes a material change will be determined at our sole discretion. + +By continuing to access or use our Service after those revisions become effective, you agree to be bound by the revised terms. If you do not agree to the new terms, please stop using the Service. + +Contact Us +If you have any questions about these Terms, please contact us. + diff --git a/app/views/login.html b/app/views/login.html deleted file mode 100644 index 2ec9358..0000000 --- a/app/views/login.html +++ /dev/null @@ -1,38 +0,0 @@ -
-
-
-
-
Login
-
-

-
-
-

Welcome aboard!

-

Please wait while we finish creating your new account. This will only take a couple seconds.

-

-
-
-
{{err}}
-
- - -
-
- - -
-
- - -
-
- -
-
-
-
\ No newline at end of file diff --git a/app/views/user/edit.html b/app/views/user/edit.html new file mode 100644 index 0000000..5dc5c67 --- /dev/null +++ b/app/views/user/edit.html @@ -0,0 +1,76 @@ +
+
+
+

{{profile.name}} {{profile.location}}

+
+
+
+
+ + + + +
+
+ +
+
+
+
+ +
+ + We're big on names around here, so people know who's who. +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ 1 + +
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+ + +
+
+
diff --git a/app/views/user/profile.html b/app/views/user/profile.html deleted file mode 100644 index 6e9544a..0000000 --- a/app/views/user/profile.html +++ /dev/null @@ -1,57 +0,0 @@ -
-
-
-
- -
-
- -
-
- Edit -
-
-
- -
-
-

Bio

-

{{profile.bio}}

-

No bio exists yet for {{profile.name}}

-
-
-

Gear

-

No gear exists yet for {{profile.name}}

- - - - - - - -
{{gear.type}}{{gear.desc}}
-
-
-
-
\ No newline at end of file diff --git a/app/views/user/requests.html b/app/views/user/requests.html new file mode 100644 index 0000000..7991830 --- /dev/null +++ b/app/views/user/requests.html @@ -0,0 +1,9 @@ +
+
+
+

{{profile.name}} {{profile.location}}

+
+
+
+
+
\ No newline at end of file diff --git a/app/views/user/show.html b/app/views/user/show.html index 49e8da3..8f5f837 100644 --- a/app/views/user/show.html +++ b/app/views/user/show.html @@ -1,111 +1,84 @@ -
+
+
+
+

{{profile.name}} {{profile.location}}

+
+
+
+
+
profile
+
+
+

{{profile.bio}}

+

{{profile.name}} does not have a bio yet.

+
+
+

Gear

+ + + + + + + +
{{gear.type}}{{gear.desc}}
+
+
+
+
+
wakes
+
+
+
+
+ + \ No newline at end of file diff --git a/app/views/user/wakes.html b/app/views/user/wakes.html new file mode 100644 index 0000000..8d42d9d --- /dev/null +++ b/app/views/user/wakes.html @@ -0,0 +1,13 @@ +
+
+
+

{{profile.name}} {{profile.location}}

+
+
+
+
+
manage your wakes
+
+
+
+
\ No newline at end of file diff --git a/app/views/user/welcome.html b/app/views/user/welcome.html index 624dd4c..3b51ba8 100644 --- a/app/views/user/welcome.html +++ b/app/views/user/welcome.html @@ -1,12 +1,15 @@ -
-
-

Hi {{profile.name}}!

-

I'm very excited you decided to join our small community.
Please take a moment and consider telling us a little more about
yourself so we can get to know you. - Simook

-
+
+

Hello {{profile.name}}!

+

I'm very excited you decided to join our small community.
Please take a moment and consider telling us a little more about
yourself so we can get to know you. - Simook

+
+ +
-
-

1. Update your public profile.

-

Let other riders and boat owners get to know you a little better through your public profile.

+
+

Update your public profile.

+
+
+

Let other riders and boat owners get to know you a little better through your public profile.

Update your Profile
diff --git a/app/views/wakes/edit.html b/app/views/wakes/edit.html index bd4f100..a730c36 100644 --- a/app/views/wakes/edit.html +++ b/app/views/wakes/edit.html @@ -1,9 +1,72 @@ -
-