')).parent().data('animated', false);
+
+ if ($element.data('animated') !== false)
+ $div.addClass('switch-animate').data('animated', true);
+
+ $div
+ .append($switchLeft)
+ .append($label)
+ .append($switchRight);
+
+ $element.find('>div').addClass(
+ $element.find('input').is(':checked') ? 'switch-on' : 'switch-off'
+ );
+
+ if ($element.find('input').is(':disabled'))
+ $(this).addClass('deactivate');
+
+ var changeStatus = function ($this) {
+ $this.siblings('label').trigger('mousedown').trigger('mouseup').trigger('click');
+ };
+
+ $element.on('keydown', function (e) {
+ if (e.keyCode === 32) {
+ e.stopImmediatePropagation();
+ e.preventDefault();
+ changeStatus($(e.target).find('span:first'));
+ }
+ });
+
+ $switchLeft.on('click', function (e) {
+ changeStatus($(this));
+ });
+
+ $switchRight.on('click', function (e) {
+ changeStatus($(this));
+ });
+
+ $element.find('input').on('change', function (e) {
+ var $this = $(this)
+ , $element = $this.parent()
+ , thisState = $this.is(':checked')
+ , state = $element.is('.switch-off');
+
+ e.preventDefault();
+
+ $element.css('left', '');
+
+ if (state === thisState) {
+
+ if (thisState)
+ $element.removeClass('switch-off').addClass('switch-on');
+ else $element.removeClass('switch-on').addClass('switch-off');
+
+ if ($element.data('animated') !== false)
+ $element.addClass("switch-animate");
+
+ $element.parent().trigger('switch-change', {'el': $this, 'value': thisState})
+ }
+ });
+
+ $element.find('label').on('mousedown touchstart', function (e) {
+ var $this = $(this);
+ moving = false;
+
+ e.preventDefault();
+ e.stopImmediatePropagation();
+
+ $this.closest('div').removeClass('switch-animate');
+
+ if ($this.closest('.has-switch').is('.deactivate'))
+ $this.unbind('click');
+ else {
+ $this.on('mousemove touchmove', function (e) {
+ var $element = $(this).closest('.switch')
+ , relativeX = (e.pageX || e.originalEvent.targetTouches[0].pageX) - $element.offset().left
+ , percent = (relativeX / $element.width()) * 100
+ , left = 25
+ , right = 75;
+
+ moving = true;
+
+ if (percent < left)
+ percent = left;
+ else if (percent > right)
+ percent = right;
+
+ $element.find('>div').css('left', (percent - right) + "%")
+ });
+
+ $this.on('click touchend', function (e) {
+ var $this = $(this)
+ , $target = $(e.target)
+ , $myCheckBox = $target.siblings('input');
+
+ e.stopImmediatePropagation();
+ e.preventDefault();
+
+ $this.unbind('mouseleave');
+
+ if (moving)
+ $myCheckBox.prop('checked', !(parseInt($this.parent().css('left')) < -25));
+ else $myCheckBox.prop("checked", !$myCheckBox.is(":checked"));
+
+ moving = false;
+ $myCheckBox.trigger('change');
+ });
+
+ $this.on('mouseleave', function (e) {
+ var $this = $(this)
+ , $myCheckBox = $this.siblings('input');
+
+ e.preventDefault();
+ e.stopImmediatePropagation();
+
+ $this.unbind('mouseleave');
+ $this.trigger('mouseup');
+
+ $myCheckBox.prop('checked', !(parseInt($this.parent().css('left')) < -25)).trigger('change');
+ });
+
+ $this.on('mouseup', function (e) {
+ e.stopImmediatePropagation();
+ e.preventDefault();
+
+ $(this).unbind('mousemove');
+ });
+ }
+ });
+ }
+ );
+ },
+ toggleActivation: function () {
+ $(this).toggleClass('deactivate');
+ },
+ isActive: function () {
+ return !$(this).hasClass('deactivate');
+ },
+ setActive: function (active) {
+ if (active)
+ $(this).removeClass('deactivate');
+ else $(this).addClass('deactivate');
+ },
+ toggleState: function (skipOnChange) {
+ var $input = $(this).find('input:checkbox');
+ $input.prop('checked', !$input.is(':checked')).trigger('change', skipOnChange);
+ },
+ setState: function (value, skipOnChange) {
+ $(this).find('input:checkbox').prop('checked', value).trigger('change', skipOnChange);
+ },
+ status: function () {
+ return $(this).find('input:checkbox').is(':checked');
+ },
+ destroy: function () {
+ var $div = $(this).find('div')
+ , $checkbox;
+
+ $div.find(':not(input:checkbox)').remove();
+
+ $checkbox = $div.children();
+ $checkbox.unwrap().unwrap();
+
+ $checkbox.unbind('change');
+
+ return $checkbox;
+ }
+ };
+
+ if (methods[method])
+ return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
+ else if (typeof method === 'object' || !method)
+ return methods.init.apply(this, arguments);
+ else
+ $.error('Method ' + method + ' does not exist!');
+ };
+}(jQuery);
+
+$(function () {
+ $('.switch')['bootstrapSwitch']();
+});
diff --git a/source/assets/javascripts/vendor/flatui-checkbox.js b/source/assets/javascripts/vendor/flatui-checkbox.js
new file mode 100755
index 0000000..6fc6f53
--- /dev/null
+++ b/source/assets/javascripts/vendor/flatui-checkbox.js
@@ -0,0 +1,112 @@
+/* =============================================================
+ * flatui-checkbox.js v0.0.2
+ * ============================================================ */
+
+!function ($) {
+
+ /* CHECKBOX PUBLIC CLASS DEFINITION
+ * ============================== */
+
+ var Checkbox = function (element, options) {
+ this.init(element, options);
+ }
+
+ Checkbox.prototype = {
+
+ constructor: Checkbox
+
+ , init: function (element, options) {
+ var $el = this.$element = $(element)
+
+ this.options = $.extend({}, $.fn.checkbox.defaults, options);
+ $el.before(this.options.template);
+ this.setState();
+ }
+
+ , setState: function () {
+ var $el = this.$element
+ , $parent = $el.closest('.checkbox');
+
+ $el.prop('disabled') && $parent.addClass('disabled');
+ $el.prop('checked') && $parent.addClass('checked');
+ }
+
+ , toggle: function () {
+ var ch = 'checked'
+ , $el = this.$element
+ , $parent = $el.closest('.checkbox')
+ , checked = $el.prop(ch)
+ , e = $.Event('toggle')
+
+ if ($el.prop('disabled') == false) {
+ $parent.toggleClass(ch) && checked ? $el.removeAttr(ch) : $el.attr(ch, true);
+ $el.trigger(e).trigger('change');
+ }
+ }
+
+ , setCheck: function (option) {
+ var d = 'disabled'
+ , ch = 'checked'
+ , $el = this.$element
+ , $parent = $el.closest('.checkbox')
+ , checkAction = option == 'check' ? true : false
+ , e = $.Event(option)
+
+ $parent[checkAction ? 'addClass' : 'removeClass' ](ch) && checkAction ? $el.attr(ch, true) : $el.removeAttr(ch);
+ $el.trigger(e).trigger('change');
+ }
+
+ }
+
+
+ /* CHECKBOX PLUGIN DEFINITION
+ * ======================== */
+
+ var old = $.fn.checkbox
+
+ $.fn.checkbox = function (option) {
+ return this.each(function () {
+ var $this = $(this)
+ , data = $this.data('checkbox')
+ , options = $.extend({}, $.fn.checkbox.defaults, $this.data(), typeof option == 'object' && option);
+ if (!data) $this.data('checkbox', (data = new Checkbox(this, options)));
+ if (option == 'toggle') data.toggle()
+ if (option == 'check' || option == 'uncheck') data.setCheck(option)
+ else if (option) data.setState();
+ });
+ }
+
+ $.fn.checkbox.defaults = {
+ template: '
'
+ }
+
+
+ /* CHECKBOX NO CONFLICT
+ * ================== */
+
+ $.fn.checkbox.noConflict = function () {
+ $.fn.checkbox = old;
+ return this;
+ }
+
+
+ /* CHECKBOX DATA-API
+ * =============== */
+
+ $(document).on('click.checkbox.data-api', '[data-toggle^=checkbox], .checkbox', function (e) {
+ var $checkbox = $(e.target);
+ if (e.target.tagName != "A") {
+ e && e.preventDefault() && e.stopPropagation();
+ if (!$checkbox.hasClass('checkbox')) $checkbox = $checkbox.closest('.checkbox');
+ $checkbox.find(':checkbox').checkbox('toggle');
+ }
+ });
+
+ $(window).on('load', function () {
+ $('[data-toggle="checkbox"]').each(function () {
+ var $checkbox = $(this);
+ $checkbox.checkbox();
+ });
+ });
+
+}(window.jQuery);
\ No newline at end of file
diff --git a/source/assets/javascripts/vendor/flatui-radio.js b/source/assets/javascripts/vendor/flatui-radio.js
new file mode 100755
index 0000000..a832cf3
--- /dev/null
+++ b/source/assets/javascripts/vendor/flatui-radio.js
@@ -0,0 +1,141 @@
+/* =============================================================
+ * flatui-radio.js v0.0.2
+ * ============================================================ */
+
+!function ($) {
+
+ /* RADIO PUBLIC CLASS DEFINITION
+ * ============================== */
+
+ var Radio = function (element, options) {
+ this.init(element, options);
+ }
+
+ Radio.prototype = {
+
+ constructor: Radio
+
+ , init: function (element, options) {
+ var $el = this.$element = $(element)
+
+ this.options = $.extend({}, $.fn.radio.defaults, options);
+ $el.before(this.options.template);
+ this.setState();
+ }
+
+ , setState: function () {
+ var $el = this.$element
+ , $parent = $el.closest('.radio');
+
+ $el.prop('disabled') && $parent.addClass('disabled');
+ $el.prop('checked') && $parent.addClass('checked');
+ }
+
+ , toggle: function () {
+ var d = 'disabled'
+ , ch = 'checked'
+ , $el = this.$element
+ , checked = $el.prop(ch)
+ , $parent = $el.closest('.radio')
+ , $parentWrap = $el.closest('form').length ? $el.closest('form') : $el.closest('body')
+ , $elemGroup = $parentWrap.find(':radio[name="' + $el.attr('name') + '"]')
+ , e = $.Event('toggle')
+
+ $elemGroup.not($el).each(function () {
+ var $el = $(this)
+ , $parent = $(this).closest('.radio');
+
+ if ($el.prop(d) == false) {
+ $parent.removeClass(ch) && $el.attr(ch, false).trigger('change');
+ }
+ });
+
+ if ($el.prop(d) == false) {
+ if (checked == false) $parent.addClass(ch) && $el.attr(ch, true);
+ $el.trigger(e);
+
+ if (checked !== $el.prop(ch)) {
+ $el.trigger('change');
+ }
+ }
+ }
+
+ , setCheck: function (option) {
+ var ch = 'checked'
+ , $el = this.$element
+ , $parent = $el.closest('.radio')
+ , checkAction = option == 'check' ? true : false
+ , checked = $el.prop(ch)
+ , $parentWrap = $el.closest('form').length ? $el.closest('form') : $el.closest('body')
+ , $elemGroup = $parentWrap.find(':radio[name="' + $el['attr']('name') + '"]')
+ , e = $.Event(option)
+
+ $elemGroup.not($el).each(function () {
+ var $el = $(this)
+ , $parent = $(this).closest('.radio');
+
+ $parent.removeClass(ch) && $el.removeAttr(ch);
+ });
+
+ $parent[checkAction ? 'addClass' : 'removeClass'](ch) && checkAction ? $el.attr(ch, true) : $el.removeAttr(ch);
+ $el.trigger(e);
+
+ if (checked !== $el.prop(ch)) {
+ $el.trigger('change');
+ }
+ }
+
+ }
+
+
+ /* RADIO PLUGIN DEFINITION
+ * ======================== */
+
+ var old = $.fn.radio
+
+ $.fn.radio = function (option) {
+ return this.each(function () {
+ var $this = $(this)
+ , data = $this.data('radio')
+ , options = $.extend({}, $.fn.radio.defaults, $this.data(), typeof option == 'object' && option);
+ if (!data) $this.data('radio', (data = new Radio(this, options)));
+ if (option == 'toggle') data.toggle()
+ if (option == 'check' || option == 'uncheck') data.setCheck(option)
+ else if (option) data.setState();
+ });
+ }
+
+ $.fn.radio.defaults = {
+ template: '
'
+ }
+
+
+ /* RADIO NO CONFLICT
+ * ================== */
+
+ $.fn.radio.noConflict = function () {
+ $.fn.radio = old;
+ return this;
+ }
+
+
+ /* RADIO DATA-API
+ * =============== */
+
+ $(document).on('click.radio.data-api', '[data-toggle^=radio], .radio', function (e) {
+ var $radio = $(e.target);
+ if (e.target.tagName != "A") {
+ e && e.preventDefault() && e.stopPropagation();
+ if (!$radio.hasClass('radio')) $radio = $radio.closest('.radio');
+ $radio.find(':radio').radio('toggle');
+ }
+ });
+
+ $(window).on('load', function () {
+ $('[data-toggle="radio"]').each(function () {
+ var $radio = $(this);
+ $radio.radio();
+ });
+ });
+
+}(window.jQuery);
\ No newline at end of file
diff --git a/source/assets/javascripts/vendor/html5shiv.js b/source/assets/javascripts/vendor/html5shiv.js
new file mode 100755
index 0000000..dcf351c
--- /dev/null
+++ b/source/assets/javascripts/vendor/html5shiv.js
@@ -0,0 +1,8 @@
+/*
+ HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+*/
+(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
+a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x";
+c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="
";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
+"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
+for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d
').attr($.extend(args(this), { 'type': 'text' }));
+ }
+ $replacement
+ .removeAttr('name')
+ .data({
+ 'placeholder-password': true,
+ 'placeholder-id': id
+ })
+ .bind('focus.placeholder', clearPlaceholder);
+ $input
+ .data({
+ 'placeholder-textinput': $replacement,
+ 'placeholder-id': id
+ })
+ .before($replacement);
+ }
+ $input = $input.removeAttr('id').hide().prev().attr('id', id).show();
+ // Note: `$input[0] != input` now!
+ }
+ $input.addClass('placeholder');
+ $input[0].value = $input.attr('placeholder');
+ } else {
+ $input.removeClass('placeholder');
+ }
+ }
+
+}(this, document, jQuery));
\ No newline at end of file
diff --git a/source/assets/javascripts/vendor/jquery.stacktable.js b/source/assets/javascripts/vendor/jquery.stacktable.js
new file mode 100755
index 0000000..c238c53
--- /dev/null
+++ b/source/assets/javascripts/vendor/jquery.stacktable.js
@@ -0,0 +1,54 @@
+/**
+ * MODIFIED CAUSE WE NEEDED OUR OWN MARKUP
+ * stacktable.js
+ * Author & copyright (c) 2012: John Polacek
+ * Dual MIT & GPL license
+ *
+ * Page: http://johnpolacek.github.com/stacktable.js
+ * Repo: https://github.com/johnpolacek/stacktable.js/
+ *
+ * jQuery plugin for stacking tables on small screens
+ *
+ */
+;(function($) {
+
+ $.fn.stacktable = function(options) {
+ var $tables = this,
+ defaults = {id:'stacktable',hideOriginal:false},
+ settings = $.extend({}, defaults, options),
+ stacktable;
+
+ return $tables.each(function() {
+ var $stacktable = $('');
+ if (typeof settings.myClass !== undefined) $stacktable.addClass(settings.myClass);
+ var markup = '';
+ $table = $(this);
+ $topRow = $table.find('tr').eq(0);
+ $table.find('tr').each(function(index,value) {
+ var zebra = "";
+ if (index % 2 === 0) {
+ zebra = "even";
+ } else {
+ zebra = "odd";
+ }
+ markup += '';
+ $(this).find('td').each(function(index,value) {
+ if ($(this).html() !== ''){
+ markup += '
';
+ if ($topRow.find('td,th').eq(index).html()){
+ markup += ''+$topRow.find('td,th').eq(index).html()+' | ';
+ } else {
+ markup += ' | ';
+ }
+ markup += ''+$(this).html()+' | ';
+ markup += '
';
+ }
+ });
+ });
+ $stacktable.append($(markup));
+ $table.before($stacktable);
+ if (settings.hideOriginal) $table.hide();
+ });
+ };
+
+}(jQuery));
diff --git a/source/assets/javascripts/vendor/jquery.tagsinput.js b/source/assets/javascripts/vendor/jquery.tagsinput.js
new file mode 100755
index 0000000..e669820
--- /dev/null
+++ b/source/assets/javascripts/vendor/jquery.tagsinput.js
@@ -0,0 +1,355 @@
+/*
+
+ jQuery Tags Input Plugin 1.3.3
+
+ Copyright (c) 2011 XOXCO, Inc
+
+ Documentation for this plugin lives here:
+ http://xoxco.com/clickable/jquery-tags-input
+
+ Licensed under the MIT license:
+ http://www.opensource.org/licenses/mit-license.php
+
+ ben@xoxco.com
+
+*/
+
+(function($) {
+
+ var delimiter = new Array();
+ var tags_callbacks = new Array();
+ $.fn.doAutosize = function(o){
+ var minWidth = $(this).data('minwidth'),
+ maxWidth = $(this).data('maxwidth'),
+ val = '',
+ input = $(this),
+ testSubject = $('#'+$(this).data('tester_id'));
+
+ if (val === (val = input.val())) {return;}
+
+ // Enter new content into testSubject
+ var escaped = val.replace(/&/g, '&').replace(/\s/g,' ').replace(//g, '>');
+ testSubject.html(escaped);
+ // Calculate new width + whether to change
+ var testerWidth = testSubject.width(),
+ newWidth = (testerWidth + o.comfortZone) >= minWidth ? testerWidth + o.comfortZone : minWidth,
+ currentWidth = input.width(),
+ isValidWidthChange = (newWidth < currentWidth && newWidth >= minWidth)
+ || (newWidth > minWidth && newWidth < maxWidth);
+
+ // Animate width
+ if (isValidWidthChange) {
+ input.width(newWidth);
+ }
+
+
+ };
+ $.fn.resetAutosize = function(options){
+ // alert(JSON.stringify(options));
+ var minWidth = $(this).data('minwidth') || options.minInputWidth || $(this).width(),
+ maxWidth = $(this).data('maxwidth') || options.maxInputWidth || ($(this).closest('.tagsinput').width() - options.inputPadding),
+ val = '',
+ input = $(this),
+ testSubject = $('').css({
+ position: 'absolute',
+ top: -9999,
+ left: -9999,
+ width: 'auto',
+ fontSize: input.css('fontSize'),
+ fontFamily: input.css('fontFamily'),
+ fontWeight: input.css('fontWeight'),
+ letterSpacing: input.css('letterSpacing'),
+ whiteSpace: 'nowrap'
+ }),
+ testerId = $(this).attr('id')+'_autosize_tester';
+ if(! $('#'+testerId).length > 0){
+ testSubject.attr('id', testerId);
+ testSubject.appendTo('body');
+ }
+
+ input.data('minwidth', minWidth);
+ input.data('maxwidth', maxWidth);
+ input.data('tester_id', testerId);
+ input.css('width', minWidth);
+ };
+
+ $.fn.addTag = function(value,options) {
+ options = jQuery.extend({focus:false,callback:true},options);
+ this.each(function() {
+ var id = $(this).attr('id');
+
+ var tagslist = $(this).val().split(delimiter[id]);
+ if (tagslist[0] == '') {
+ tagslist = new Array();
+ }
+
+ value = jQuery.trim(value);
+
+ if (options.unique) {
+ var skipTag = $(this).tagExist(value);
+ if(skipTag == true) {
+ //Marks fake input as not_valid to let styling it
+ $('#'+id+'_tag').addClass('not_valid');
+ }
+ } else {
+ var skipTag = false;
+ }
+
+ if (value !='' && skipTag != true) {
+ $('').addClass('tag').append(
+ $('').text(value).append(' '),
+ $('', {
+ href : '#',
+ title : 'Remove tag',
+ text : ''
+ }).click(function () {
+ return $('#' + id).removeTag(escape(value));
+ })
+ ).insertBefore('#' + id + '_addTag');
+
+ tagslist.push(value);
+
+ $('#'+id+'_tag').val('');
+ if (options.focus) {
+ $('#'+id+'_tag').focus();
+ } else {
+ $('#'+id+'_tag').blur();
+ }
+
+ $.fn.tagsInput.updateTagsField(this,tagslist);
+
+ if (options.callback && tags_callbacks[id] && tags_callbacks[id]['onAddTag']) {
+ var f = tags_callbacks[id]['onAddTag'];
+ f.call(this, value);
+ }
+ if(tags_callbacks[id] && tags_callbacks[id]['onChange'])
+ {
+ var i = tagslist.length;
+ var f = tags_callbacks[id]['onChange'];
+ f.call(this, $(this), tagslist[i-1]);
+ }
+ }
+
+ });
+
+ return false;
+ };
+
+ $.fn.removeTag = function(value) {
+ value = unescape(value);
+ this.each(function() {
+ var id = $(this).attr('id');
+
+ var old = $(this).val().split(delimiter[id]);
+
+ $('#'+id+'_tagsinput .tag').remove();
+ str = '';
+ for (i=0; i< old.length; i++) {
+ if (old[i]!=value) {
+ str = str + delimiter[id] +old[i];
+ }
+ }
+
+ $.fn.tagsInput.importTags(this,str);
+
+ if (tags_callbacks[id] && tags_callbacks[id]['onRemoveTag']) {
+ var f = tags_callbacks[id]['onRemoveTag'];
+ f.call(this, value);
+ }
+ });
+
+ return false;
+ };
+
+ $.fn.tagExist = function(val) {
+ var id = $(this).attr('id');
+ var tagslist = $(this).val().split(delimiter[id]);
+ return (jQuery.inArray(val, tagslist) >= 0); //true when tag exists, false when not
+ };
+
+ // clear all existing tags and import new ones from a string
+ $.fn.importTags = function(str) {
+ id = $(this).attr('id');
+ $('#'+id+'_tagsinput .tag').remove();
+ $.fn.tagsInput.importTags(this,str);
+ }
+
+ $.fn.tagsInput = function(options) {
+ var settings = jQuery.extend({
+ interactive:true,
+ defaultText:'',
+ minChars:0,
+ width:'',
+ height:'',
+ autocomplete: {selectFirst: false },
+ 'hide':true,
+ 'delimiter':',',
+ 'unique':true,
+ removeWithBackspace:true,
+ placeholderColor:'#666666',
+ autosize: true,
+ comfortZone: 20,
+ inputPadding: 6*2
+ },options);
+
+ this.each(function() {
+ if (settings.hide) {
+ $(this).hide();
+ }
+ var id = $(this).attr('id');
+ if (!id || delimiter[$(this).attr('id')]) {
+ id = $(this).attr('id', 'tags' + new Date().getTime()).attr('id');
+ }
+
+ var data = jQuery.extend({
+ pid:id,
+ real_input: '#'+id,
+ holder: '#'+id+'_tagsinput',
+ input_wrapper: '#'+id+'_addTag',
+ fake_input: '#'+id+'_tag'
+ },settings);
+
+ delimiter[id] = data.delimiter;
+
+ if (settings.onAddTag || settings.onRemoveTag || settings.onChange) {
+ tags_callbacks[id] = new Array();
+ tags_callbacks[id]['onAddTag'] = settings.onAddTag;
+ tags_callbacks[id]['onRemoveTag'] = settings.onRemoveTag;
+ tags_callbacks[id]['onChange'] = settings.onChange;
+ }
+
+ var containerClass = $('#'+id).attr('class').replace('tagsinput', '');
+ var markup = '';
+
+ $(markup).insertAfter(this);
+
+ $(data.holder).css('width',settings.width);
+ $(data.holder).css('min-height',settings.height);
+ $(data.holder).css('height','100%');
+
+ if ($(data.real_input).val()!='') {
+ $.fn.tagsInput.importTags($(data.real_input),$(data.real_input).val());
+ }
+ if (settings.interactive) {
+ $(data.fake_input).val($(data.fake_input).attr('data-default'));
+ $(data.fake_input).css('color',settings.placeholderColor);
+ $(data.fake_input).resetAutosize(settings);
+
+ $(data.holder).bind('click',data,function(event) {
+ $(event.data.fake_input).focus();
+ });
+
+ $(data.fake_input).bind('focus',data,function(event) {
+ if ($(event.data.fake_input).val()==$(event.data.fake_input).attr('data-default')) {
+ $(event.data.fake_input).val('');
+ }
+ $(event.data.fake_input).css('color','#000000');
+ });
+
+ if (settings.autocomplete_url != undefined) {
+ autocomplete_options = {source: settings.autocomplete_url};
+ for (attrname in settings.autocomplete) {
+ autocomplete_options[attrname] = settings.autocomplete[attrname];
+ }
+
+ if (jQuery.Autocompleter !== undefined) {
+ $(data.fake_input).autocomplete(settings.autocomplete_url, settings.autocomplete);
+ $(data.fake_input).bind('result',data,function(event,data,formatted) {
+ if (data) {
+ $('#'+id).addTag(data[0] + "",{focus:true,unique:(settings.unique)});
+ }
+ });
+ } else if (jQuery.ui.autocomplete !== undefined) {
+ $(data.fake_input).autocomplete(autocomplete_options);
+ $(data.fake_input).bind('autocompleteselect',data,function(event,ui) {
+ $(event.data.real_input).addTag(ui.item.value,{focus:true,unique:(settings.unique)});
+ return false;
+ });
+ }
+
+
+ } else {
+ // if a user tabs out of the field, create a new tag
+ // this is only available if autocomplete is not used.
+ $(data.fake_input).bind('blur',data,function(event) {
+ var d = $(this).attr('data-default');
+ if ($(event.data.fake_input).val()!='' && $(event.data.fake_input).val()!=d) {
+ if( (event.data.minChars <= $(event.data.fake_input).val().length) && (!event.data.maxChars || (event.data.maxChars >= $(event.data.fake_input).val().length)) )
+ $(event.data.real_input).addTag($(event.data.fake_input).val(),{focus:true,unique:(settings.unique)});
+ } else {
+ $(event.data.fake_input).val($(event.data.fake_input).attr('data-default'));
+ $(event.data.fake_input).css('color',settings.placeholderColor);
+ }
+ return false;
+ });
+
+ }
+ // if user types a comma, create a new tag
+ $(data.fake_input).bind('keypress',data,function(event) {
+ if (event.which==event.data.delimiter.charCodeAt(0) || event.which==13 ) {
+ event.preventDefault();
+ if( (event.data.minChars <= $(event.data.fake_input).val().length) && (!event.data.maxChars || (event.data.maxChars >= $(event.data.fake_input).val().length)) )
+ $(event.data.real_input).addTag($(event.data.fake_input).val(),{focus:true,unique:(settings.unique)});
+ $(event.data.fake_input).resetAutosize(settings);
+ return false;
+ } else if (event.data.autosize) {
+ $(event.data.fake_input).doAutosize(settings);
+
+ }
+ });
+ //Delete last tag on backspace
+ data.removeWithBackspace && $(data.fake_input).bind('keydown', function(event)
+ {
+ if(event.keyCode == 8 && $(this).val() == '')
+ {
+ event.preventDefault();
+ var last_tag = $(this).closest('.tagsinput').find('.tag:last').text();
+ var id = $(this).attr('id').replace(/_tag$/, '');
+ last_tag = last_tag.replace(/[\s\u00a0]+x$/, '');
+ $('#' + id).removeTag(escape(last_tag));
+ $(this).trigger('focus');
+ }
+ });
+ $(data.fake_input).blur();
+
+ //Removes the not_valid class when user changes the value of the fake input
+ if(data.unique) {
+ $(data.fake_input).keydown(function(event){
+ if(event.keyCode == 8 || String.fromCharCode(event.which).match(/\w+|[áéíóúÁÉÍÓÚñÑ,/]+/)) {
+ $(this).removeClass('not_valid');
+ }
+ });
+ }
+ } // if settings.interactive
+ });
+
+ return this;
+
+ };
+
+ $.fn.tagsInput.updateTagsField = function(obj,tagslist) {
+ var id = $(obj).attr('id');
+ $(obj).val(tagslist.join(delimiter[id]));
+ };
+
+ $.fn.tagsInput.importTags = function(obj,val) {
+ $(obj).val('');
+ var id = $(obj).attr('id');
+ var tags = val.split(delimiter[id]);
+ for (i=0; i1){return;}g.preventDefault();var i=g.originalEvent.changedTouches[0],f=document.createEvent("MouseEvents");f.initMouseEvent(h,true,true,window,1,i.screenX,i.screenY,i.clientX,i.clientY,false,false,false,false,0,null);g.target.dispatchEvent(f);}c._touchStart=function(g){var f=this;if(a||!f._mouseCapture(g.originalEvent.changedTouches[0])){return;}a=true;f._touchMoved=false;d(g,"mouseover");d(g,"mousemove");d(g,"mousedown");};c._touchMove=function(f){if(!a){return;}this._touchMoved=true;d(f,"mousemove");};c._touchEnd=function(f){if(!a){return;}d(f,"mouseup");d(f,"mouseout");if(!this._touchMoved){d(f,"click");}a=false;};c._mouseInit=function(){var f=this;f.element.bind("touchstart",b.proxy(f,"_touchStart")).bind("touchmove",b.proxy(f,"_touchMove")).bind("touchend",b.proxy(f,"_touchEnd"));e.call(f);};})(jQuery);
\ No newline at end of file
diff --git a/source/assets/stylesheets/_config.css.sass b/source/assets/stylesheets/_config.css.sass
new file mode 100755
index 0000000..a6e97d2
--- /dev/null
+++ b/source/assets/stylesheets/_config.css.sass
@@ -0,0 +1,125 @@
+//
+// Variables
+// --------------------------------------------------
+
+// Global values
+// --------------------------------------------------
+
+//
+// Color Swatches
+// --------------------------------------------------
+
+$turquoise: #1abc9c
+$green-sea: #16a085
+
+$emerald: #2ecc71
+$nephritis: #27ae60
+
+$peter-river: #3498db
+$belize-hole: #2980b9
+
+$amethyst: #9b59b6
+$wisteria: #8e44ad
+
+$wet-asphalt: #34495e
+$midnight-blue: #2c3e50
+
+$sun-flower: #f1c40f
+$orange: #f39c12
+
+$carrot: #e67e22
+$pumpkin: #d35400
+
+$alizarin: #e74c3c
+$pomegranate: #c0392b
+
+$clouds: #ecf0f1
+$silver: #bdc3c7
+
+$concrete: #95a5a6
+$asbestos: #7f8c8d
+
+// Main Colors
+// -------------------------
+$base: $wet-asphalt
+$firm: $turquoise
+
+$gray: $concrete
+$lightgray: $silver
+$inverse: white
+
+$success: $emerald
+$danger: $alizarin
+$warning: $sun-flower
+$info: $peter-river
+
+$link-color: $green-sea
+$link-hover-color: $turquoise
+
+
+// Typography
+// -------------------------
+
+$base-font-family: 'Open Sans', sans-serif
+$base-font-size: 14px
+$base-line-height: 1.231
+
+$h1: $base-font-size * 4.429 /* 62px */
+$h2: $base-font-size * 3.714 /* 52px */
+$h3: $base-font-size * 2.857 /* 40px */
+$h4: $base-font-size * 2.071 /* 29px */
+$h5: $base-font-size * 2 /* 28px */
+$h6: $base-font-size * 1.714 /* 24px */
+
+// Icons
+$icon-normal: 16px
+$icon-medium: 18px
+$icon-large: 32px
+
+// Inputs
+// -------------------------
+$input-border-radius: 6px
+
+// Pagination
+// -------------------------
+$pagination-color: mix($base, white, 20%)
+
+// Pager
+// -------------------------
+$pager-padding: 9px 15px 10px
+
+// Buttons
+$button-text: $inverse
+$button-hover: mix($lightgray, white, 80%)
+$button-active: mix($lightgray, black, 85%)
+$button-primary-hover: mix($firm, white, 80%)
+$button-primary-active: mix($firm, black, 85%)
+$button-info-hover: mix($info, white, 80%)
+$button-info-active: mix($info, black, 85%)
+$button-success-hover: mix($success, white, 80%)
+$button-success-active: mix($success, black, 85%)
+$button-danger-hover: mix($danger, white, 80%)
+$button-danger-active: mix($danger, black, 85%)
+$button-warning-hover: overlay($warning, darken(white, 37.5%))
+$button-warning-active: mix($warning, black, 85%)
+$button-inverse-hover: overlay($base, darken(white, 37.5%))
+$button-inverse-active: mix($base, black, 85%)
+
+// Navbar
+// -------------------------
+$navbar-link-space: 20px
+$navbar-sublink-space: 9px
+
+// Dropdown Menu
+// -------------------------
+$dropdown-background: mix($inverse, $base, 94%)
+
+// Progress/slider
+// -------------------------
+$progress-height: 12px
+
+// Switch
+// -------------------------
+$switch-border-radius: 30px
+$switch-width: 80px
+
diff --git a/source/assets/stylesheets/_flat-ui.css.sass b/source/assets/stylesheets/_flat-ui.css.sass
new file mode 100755
index 0000000..3e69da3
--- /dev/null
+++ b/source/assets/stylesheets/_flat-ui.css.sass
@@ -0,0 +1,34 @@
+// Flat UI main stylesheet that aggregates all modules
+
+// Loading custom fonts
+@import 'http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800&subset=latin-ext'
+
+// Loading config with variables (changing them leads to changing a color scheme)
+@import 'config'
+
+// Utility mixins for greater good
+@import 'mixins'
+
+// Modules
+@import 'modules/type'
+@import 'modules/buttons'
+@import 'modules/navbar'
+@import 'modules/select'
+@import 'modules/input'
+@import 'modules/checkbox-and-radio'
+@import 'modules/tagsinput'
+@import 'modules/progress'
+@import 'modules/ui-slider'
+@import 'modules/pager'
+@import 'modules/pagination'
+@import 'modules/share'
+@import 'modules/tooltip'
+@import 'modules/palette'
+@import 'modules/tile'
+@import 'modules/todo'
+@import 'modules/footer'
+@import 'modules/video'
+@import 'modules/login'
+
+// Spaces
+@import 'spaces'
\ No newline at end of file
diff --git a/source/assets/stylesheets/_mixins.css.sass b/source/assets/stylesheets/_mixins.css.sass
new file mode 100755
index 0000000..8085a84
--- /dev/null
+++ b/source/assets/stylesheets/_mixins.css.sass
@@ -0,0 +1,181 @@
+/*
+ Mixins
+ --------------------------------------------------
+
+=animation($properties)
+ -webkit-animation: $properties
+ -moz-animation: $properties
+ -o-animation: $properties
+ animation: $properties
+
+=border-radius($radius)
+ -webkit-border-radius: $radius
+ -moz-border-radius: $radius
+ border-radius: $radius
+
+=box-sizing($boxmodel: border-box)
+ -webkit-box-sizing: $boxmodel
+ -moz-box-sizing: $boxmodel
+ box-sizing: $boxmodel
+
+=box-shadow($properties)
+ -webkit-box-shadow: $properties
+ -moz-box-shadow: $properties
+ box-shadow: $properties
+
+=inline-block()
+ display: inline-block
+ zoom: 1
+ *display: inline
+
+=opacity($value)
+ opacity: $value / 100
+ filter: "alpha(opacity=${value})"
+
+// User select
+// For selecting text on the page
+=user-select($select)
+ -webkit-user-select: $select
+ -moz-user-select: $select
+ -ms-user-select: $select
+ -o-user-select: $select
+ user-select: $select
+
+=placeholder-height($height)
+ &:-moz-placeholder
+ line-height: $height
+
+ &::-webkit-input-placeholder
+ line-height: $height
+
+ &.placeholder
+ line-height: $height
+
+=mask($arguments...)
+ -webkit-mask: $arguments
+ mask: $arguments
+
+=placeholder-color($color)
+ &:-moz-placeholder
+ color: $color
+
+ &::-webkit-input-placeholder
+ color: $color
+
+ &.placeholder
+ color: $color
+
+=transition($properties)
+ -webkit-transition: $properties
+ -moz-transition: $properties
+ -o-transition: $properties
+ transition: $properties
+ -webkit-backface-visibility: hidden
+
+=transform($properties)
+ -webkit-transform: $properties
+ -moz-transform: $properties
+ -ms-transform: $properties
+ -o-transform: $properties
+ transform: $properties
+
+=vertical-gradient($from, $to)
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, $from), color-stop(100%, $to))
+ background: -webkit-linear-gradient(top, $from, $to)
+ background: -moz-linear-gradient(top, $from, $to)
+ background: -ms-linear-gradient(top, $from, $to)
+ background: -o-linear-gradient(top, $from, $to)
+ background: linear-gradient(to bottom, $from, $to)
+
+=selection($color)
+ &::selection
+ background: $color
+
+ &::-moz-selection
+ background: $color
+
+=clearfix()
+ *zoom: 1
+ &:before,
+ &:after
+ display: table
+ content: ""
+
+ &:after
+ clear: both
+
+=dropdown-arrow($color: $base, $top: 5px, $left: 15px, $size: 9px)
+ &:before
+ content: ""
+ border-style: solid
+ border-width: 0 $size $size $size
+ border-color: transparent transparent $color transparent
+ height: 0
+ position: absolute
+ left: $left
+ top: $top
+ width: 0
+ // Make corners smooth
+ -webkit-transform: rotate(360deg)
+
+=drop-ie-gradient()
+ filter: unquote("progid:DXImageTransform.Microsoft=gradient(enabled = false)")
+
+=swap-button-color($color, $hover, $active)
+ background-color: $color
+
+ &:hover,
+ &:focus,
+ .btn-group:focus &.dropdown-toggle
+ background-color: $hover
+
+ &:active,
+ .btn-group.open &.dropdown-toggle,
+ &.active
+ background-color: $active
+
+=dropdown-arrow-inverse()
+ border-bottom-color: $base !important
+ border-top-color: $base !important
+
+=input-states($color)
+ border-color: $color
+ color: $color
+ +box-shadow(none)
+
+ &:focus
+ +box-shadow(none)
+
+=swap-pagination-color($color, $hover, $active)
+ ul
+ background-color: $color
+
+ li
+ &.previous
+ > a
+ border-right-color: mix($color, white, 66%)
+
+ > a, > span
+ border-left-color: mix($color, white, 66%)
+
+ &:hover, &:focus
+ background-color: $hover
+
+ &:active
+ background-color: $active
+
+ &.active
+ > a, > span
+ background-color: $active
+
+ &.pagination-dropdown.dropup
+ .dropdown-arrow
+ border-top-color: $color
+
+// Color swatches grid
+=calc-color($first-color, $second-color)
+ .palette-#{$first-color}
+ background-color: "#{$first-color}"
+
+ .palette-#{$second-color}
+ background-color: "#{$second-color}"
\ No newline at end of file
diff --git a/source/assets/stylesheets/_spaces.css.sass b/source/assets/stylesheets/_spaces.css.sass
new file mode 100755
index 0000000..fc7066a
--- /dev/null
+++ b/source/assets/stylesheets/_spaces.css.sass
@@ -0,0 +1,131 @@
+/* Should be used to modify the default spacing between objects (not between nodes of * the same object)
+ p,m = padding,margin
+ a,t,r,b,l,h,v = all,top,right,bottom,left,horizontal,vertical
+ x,s,m,l,n = extra-small($x),small($s),medium($m),large($l),none(0px)
+$x: 3px
+$s: 5px
+$m: 10px
+$l: 20px
+
+.last-col
+ overflow: hidden
+
+.ptn, .pvn, .pan
+ padding-top: 0
+
+.ptx, .pvx, .pax
+ padding-top: $x
+
+.pts, .pvs, .pas
+ padding-top: $s
+
+.ptm, .pvm, .pam
+ padding-top: $m
+
+.ptl, .pvl, .pal
+ padding-top: $l
+
+.prn, .phn, .pan
+ padding-right: 0
+
+.prx, .phx, .pax
+ padding-right: $x
+
+.prs, .phs, .pas
+ padding-right: $s
+
+.prm, .phm, .pam
+ padding-right: $m
+
+.prl, .phl, .pal
+ padding-right: $l
+
+.pbn, .pvn, .pan
+ padding-bottom: 0
+
+.pbx, .pvx, .pax
+ padding-bottom: $x
+
+.pbs, .pvs, .pas
+ padding-bottom: $s
+
+.pbm, .pvm, .pam
+ padding-bottom: $m
+
+.pbl, .pvl, .pal
+ padding-bottom: $l
+
+.pln, .phn, .pan
+ padding-left: 0
+
+.plx, .phx, .pax
+ padding-left: $x
+
+.pls, .phs, .pas
+ padding-left: $s
+
+.plm, .phm, .pam
+ padding-left: $m
+
+.pll, .phl, .pal
+ padding-left: $l
+
+.mtn, .mvn, .man
+ margin-top: 0px
+
+.mtx, .mvx, .max
+ margin-top: $x
+
+.mts, .mvs, .mas
+ margin-top: $s
+
+.mtm, .mvm, .mam
+ margin-top: $m
+
+.mtl, .mvl, .mal
+ margin-top: $l
+
+.mrn, .mhn, .man
+ margin-right: 0px
+
+.mrx, .mhx, .max
+ margin-right: $x
+
+.mrs, .mhs, .mas
+ margin-right: $s
+
+.mrm, .mhm, .mam
+ margin-right: $m
+
+.mrl, .mhl, .mal
+ margin-right: $l
+
+.mbn, .mvn, .man
+ margin-bottom: 0px
+
+.mbx, .mvx, .max
+ margin-bottom: $x
+
+.mbs, .mvs, .mas
+ margin-bottom: $s
+
+.mbm, .mvm, .mam
+ margin-bottom: $m
+
+.mbl, .mvl, .mal
+ margin-bottom: $l
+
+.mln, .mhn, .man
+ margin-left: 0px
+
+.mlx, .mhx, .max
+ margin-left: $x
+
+.mls, .mhs, .mas
+ margin-left: $s
+
+.mlm, .mhm, .mam
+ margin-left: $m
+
+.mll, .mhl, .mal
+ margin-left: $l
\ No newline at end of file
diff --git a/source/assets/stylesheets/application.css.sass b/source/assets/stylesheets/application.css.sass
index 9fd2cc7..4ddced1 100755
--- a/source/assets/stylesheets/application.css.sass
+++ b/source/assets/stylesheets/application.css.sass
@@ -2,6 +2,8 @@
@import 'variables'
@import 'bootstrap'
@import 'bootstrap-responsive'
+@import 'flat-ui'
+
body, html
font-family: 'Open Sans', sans-serif
\ No newline at end of file
diff --git a/source/assets/stylesheets/modules/_buttons.css.sass b/source/assets/stylesheets/modules/_buttons.css.sass
new file mode 100755
index 0000000..e5c27ba
--- /dev/null
+++ b/source/assets/stylesheets/modules/_buttons.css.sass
@@ -0,0 +1,165 @@
+//
+// Buttons
+// --------------------------------------------------
+
+// Base styles
+// --------------------------------------------------
+
+.btn,
+.btn-group > .btn,
+.btn-group > .dropdown-menu,
+.btn-group > .popover
+ font-size: $base-font-size * 1.071 /* 15px */
+ font-weight: 500
+
+.btn
+ border: none
+ background: $lightgray
+ color: $button-text
+ padding: 9px 12px 10px
+ line-height: 22px
+ text-decoration: none
+ text-shadow: none
+ +border-radius(6px)
+ +box-shadow(none)
+ +transition(0.25s)
+
+ // Alternate states
+ // --------------------------------------------------
+ &:hover,
+ &:focus,
+ .btn-group:focus &.dropdown-toggle
+ background-color: $button-hover
+ color: $button-text
+ outline: none
+ +transition(0.25s)
+
+
+ // Active State
+ &:active,
+ .btn-group.open &.dropdown-toggle,
+ &.active
+ background-color: $button-active
+ color: fade($button-text, 75%)
+ +box-shadow(none)
+
+
+ // Disabled state
+ &.disabled,
+ &[disabled]
+ background-color: $lightgray
+ color: fade($button-text, 75%)
+ +box-shadow(none)
+ +opacity(70)
+
+
+ // Button sizes
+ // --------------------------------------------------
+
+ // Large
+ &.btn-large
+ font-size: $base-font-size * 1.214 /* 17px */
+ line-height: 20px
+ padding: 12px 18px 13px
+
+ > [class^="fui-"]
+ top: 0
+
+ &.pull-right
+ margin-right: -2px
+
+ // Set the backgrounds
+ // -------------------------
+ &.btn-primary
+ +swap-button-color($firm, $button-primary-hover, $button-primary-active)
+
+ &.btn-info
+ +swap-button-color($info, $button-info-hover, $button-info-active)
+
+ &.btn-danger
+ +swap-button-color($danger, $button-danger-hover, $button-danger-active)
+
+ &.btn-success
+ +swap-button-color($success, $button-success-hover, $button-success-active)
+
+ &.btn-warning
+ +swap-button-color($warning, $button-warning-hover, $button-warning-active)
+
+ &.btn-inverse
+ +swap-button-color($base, $button-inverse-hover, $button-inverse-active)
+
+ // Button icon
+ // --------------------------------------------------
+ > [class^="fui-"]
+ margin: 0 4px
+ position: relative
+ top: 1px
+ vertical-align: top
+ +inline-block()
+
+ &.pull-right
+ margin-right: 0px
+
+// Other button locations
+// Button with icon inside
+.btn-toolbar .btn
+ &.active
+ color: $button-text
+
+ &:first-child
+ +border-radius(6px 0 0 6px)
+
+ &:last-child
+ +border-radius(0 6px 6px 0)
+
+ > [class^="fui-"]
+ font-size: $icon-normal
+ top: 0
+
+// Button tip
+.btn-tip
+ font-weight: 300
+ padding-left: 10px
+
+// BUTTON GROUP
+// ----------------------
+.btn-group
+ > .btn
+ border-radius: 0
+ text-align: center
+
+ &:active,
+ &.active
+ & + .btn
+ border-left-color: transparent
+
+ &:first-of-type
+ border-top-left-radius: 6px
+ border-bottom-left-radius: 6px
+
+ &:last-of-type
+ border-top-right-radius: 6px
+ border-bottom-right-radius: 6px
+
+ & + .btn
+ margin-left: 0
+
+ & + .dropdown-toggle
+ border-left: 2px solid fade($base, 15%)
+ padding-left: 13px
+ padding-right: 13px
+ +box-shadow(none)
+
+ .caret
+ margin-left: 3px
+ margin-right: 3px
+
+ &.btn-huge + .dropdown-toggle
+ .caret
+ margin-left: 7px
+ margin-right: 7px
+
+ &.btn-small + .dropdown-toggle
+ .caret
+ margin-left: 0
+ margin-right: 0
\ No newline at end of file
diff --git a/source/assets/stylesheets/modules/_caret.css.sass b/source/assets/stylesheets/modules/_caret.css.sass
new file mode 100755
index 0000000..e8dffdd
--- /dev/null
+++ b/source/assets/stylesheets/modules/_caret.css.sass
@@ -0,0 +1,34 @@
+//
+// Caret
+// --------------------------------------------------
+
+=caret($color, $base)
+ border-left-width: 6px
+ border-right-width: 6px
+ border-top-width: 8px
+ border-bottom-color: $color
+ border-style: solid
+ border-bottom-style: none
+ border-top-color: $color
+ +transition(.25s)
+
+
+=caret
+ +caret
+
+.dropup .caret,
+.dropup .btn-large .caret,
+.navbar-fixed-bottom .dropdown .caret
+ border-bottom-width: 8px
+
+.btn-mini .caret,
+.btn-small .caret,
+.btn-large .caret
+ margin-top: 7px
+
+.btn-large .caret
+ border-top-width: 8px
+ border-right-width: 6px
+ border-left-width: 6px
+
+
diff --git a/source/assets/stylesheets/modules/_checkbox-and-radio.css.sass b/source/assets/stylesheets/modules/_checkbox-and-radio.css.sass
new file mode 100644
index 0000000..4e941c5
--- /dev/null
+++ b/source/assets/stylesheets/modules/_checkbox-and-radio.css.sass
@@ -0,0 +1,95 @@
+//
+// Checkbox & Radio
+// --------------------------------------------------
+
+.checkbox,
+.radio
+ margin-bottom: 12px
+ padding-left: 32px
+ position: relative
+ +transition(color .25s linear)
+
+ input
+ outline: none !important
+ display: none
+
+
+ // Replace icons
+ // --------------------------------------------------
+ .icons
+ color: $lightgray
+ display: block
+ height: 20px
+ left: 0
+ position: absolute
+ top: 0
+ width: 20px
+ text-align: center
+ line-height: 20px
+ font-size: 20px
+ +transition(color .25s linear)
+
+ .first-icon-icon,
+ .second-icon
+ position: absolute
+ left: 0
+ top: 0
+ +opacity(100)
+
+ .second-icon
+ +opacity(0)
+
+
+ // Alternate States
+ // --------------------------------------------------
+
+ // Hover State
+ &:hover
+ .first-icon
+ +opacity(0)
+
+ .second-icon
+ +opacity(100)
+
+ // Checked State
+ &.checked
+ color: $link-color
+
+ .icons
+ color: $firm
+
+ .first-icon
+ +opacity(0)
+
+ .second-icon
+ +opacity(100)
+
+
+
+ // Disabled state
+ &.disabled
+ cursor: default
+ color: mix($lightgray, white, 38%)
+
+ .icons
+ color: mix($lightgray, white, 38%)
+
+ .first-icon
+ +opacity(100)
+
+ .second-icon
+ +opacity(0)
+
+ &.checked
+ .icons
+ color: mix($lightgray, white, 38%)
+
+ .first-icon
+ +opacity(0)
+
+ .second-icon
+ +opacity(100)
+
+
+
+
diff --git a/source/assets/stylesheets/modules/_dropdown.css.sass b/source/assets/stylesheets/modules/_dropdown.css.sass
new file mode 100644
index 0000000..b7aebd6
--- /dev/null
+++ b/source/assets/stylesheets/modules/_dropdown.css.sass
@@ -0,0 +1,199 @@
+//
+// Dropdown
+// --------------------------------------------------
+
+.dropdown-menu
+ background-color: $dropdown-background
+ border: none
+ display: block
+ margin-top: 8px
+ opacity: 0
+ padding: 0
+ visibility: hidden
+ width: 100%
+ +box-shadow(none)
+ +transition(.25s)
+
+ &.typeahead
+ display: none
+ opacity: 1
+ visibility: visible
+ width: auto
+ margin-top: 2px
+
+ // Opened state
+ .open > &
+ margin-top: 18px
+ opacity: 1
+ visibility: visible
+
+ li
+ &:first-child
+ dt + a
+ border-radius: 0
+
+ > a
+ border-radius: 6px 6px 0 0
+ padding-top: 8px
+
+ &:last-child
+ > a
+ border-radius: 0 0 6px 6px
+ padding-bottom: 10px
+
+ &.active,
+ &.selected
+ > a,
+ > a.highlighted
+ background: $firm
+ color: $inverse
+
+ &:hover,
+ &:focus
+ background: mix($firm, black, 85%)
+ color: $inverse
+
+ > a
+ color: fade($base, 75%)
+ padding: 6px 15px 8px
+ text-decoration: none
+ +clearfix()
+ +transition(background-color 0.25s)
+
+ &:hover,
+ &:active,
+ &:focus
+ background: mix($inverse, $base, 85%)
+ color: inherit
+ outline: none
+
+ &.highlighted
+ background: mix($inverse, $base, 73.5%)
+ color: $inverse
+
+ &:hover,
+ &:focus
+ background: mix($inverse, $base, 66%)
+ color: $inverse
+
+ &:before
+ float: right
+ margin-top: 3px
+
+
+ // Submenu title
+ dt
+ font-weight: 300
+ margin-bottom: 3px
+ margin-top: 12px
+ padding: 0 15px
+
+// Dropdown expands to top
+.dropup,
+.navbar-fixed-bottom .dropdown
+ .dropdown-menu
+ margin-bottom: 8px
+
+ .dropdown-arrow
+ border-bottom: none
+ border-top: 8px outset mix($inverse, $base, 94%)
+ bottom: 100%
+ top: auto
+
+// Second level nav
+.navbar-fixed-bottom .nav > li > ul:before
+ border-bottom: none
+ border-top: 9px outset $base
+ bottom: 4px
+ top: auto
+
+.open
+ &.dropup
+ > .dropdown-menu
+ margin-bottom: 18px
+
+ > .dropdown-arrow
+ margin-bottom: 10px
+
+ &.dropdown-arrow-inverse
+ border-top-color: $base
+
+ > .dropdown-arrow
+ margin-top: 9px
+ opacity: 1
+
+// Arrows
+// --------------------------------------------------
+.dropdown-arrow
+ border-style: solid
+ border-width: 0 9px 9px 9px
+ border-color: transparent transparent mix($inverse, $base, 94%) transparent
+ height: 0
+ margin-top: 0
+ opacity: 0
+ position: absolute
+ right: 13px
+ top: 100%
+ width: 0
+ z-index: 10
+ -webkit-transform: rotate(360deg) // Make corners smooth
+ +transition(.25s)
+
+
+// Alternate Color
+// --------------------------------------------------
+.dropdown-inverse
+ background-color: $base
+ color: mix($inverse, black, 80%)
+ padding: 4px 0 6px
+
+ li
+ margin: 0 4px -2px
+ &:first-child,
+ &:last-child
+ > a
+ border-radius: 2px
+ padding-bottom: 7px
+ padding-top: 5px
+
+ dt + a
+ border-radius: 2px
+
+ &.active,
+ &.selected
+ > a
+ background: $firm
+ color: $inverse
+ position: relative
+ z-index: 1
+
+ dt
+ padding-left: 11px
+ padding-right: 11px
+
+ .divider
+ margin-left: 11px
+ margin-right: 11px
+
+ > a
+ border-radius: 2px
+ color: $inverse
+ padding: 5px 11px 7px
+
+ &:hover,
+ &:active,
+ &:focus
+ background: mix($base, black, 85%)
+
+ &.highlighted
+ background: mix($base, $inverse, 85%)
+ &:hover,
+ &:focus
+ background: mix($base, $inverse, 75%)
+
+ .divider
+ background-color: mix($base, white, 85%)
+ border-bottom-color: mix($base, white, 85%)
+
+
+
\ No newline at end of file
diff --git a/source/assets/stylesheets/modules/_footer.css.sass b/source/assets/stylesheets/modules/_footer.css.sass
new file mode 100644
index 0000000..3e48329
--- /dev/null
+++ b/source/assets/stylesheets/modules/_footer.css.sass
@@ -0,0 +1,69 @@
+//
+// Footer
+// --------------------------------------------------
+
+footer
+ background-color: mix($base, $inverse, 9%)
+ color: mix($base, $inverse, 34%)
+ font-size: 15px
+ padding: 0
+
+ a
+ color: mix($base, $inverse, 50%)
+ font-weight: 700
+
+ p
+ font-size: 15px
+ line-height: 20px
+
+.footer-title
+ margin: 0 0 22px
+ padding-top: 21px
+
+
+.footer-brand
+ display: block
+ margin-bottom: 26px
+ width: 220px
+
+ img
+ width: 216px
+
+
+// FOOTER BANNER
+// ----------------------
+.footer-banner
+ background-color: $firm
+ color: mix($firm, $inverse, 20%)
+ margin-left: 42px
+ min-height: 286px
+ padding: 0 30px 30px
+
+ .footer-title
+ color: $inverse
+
+ a
+ color: lighten($firm, 42%)
+ text-decoration: underline
+
+ &:hover
+ text-decoration: none
+
+
+ ul
+ list-style-type: none
+ margin: 0 0 26px
+
+ li
+ border-top: 1px solid lighten($firm, 2%)
+ line-height: 19px
+ padding: 6px 0
+
+ &:first-child
+ border-top: none
+ padding-top: 1px
+
+
+
+
+
diff --git a/source/assets/stylesheets/modules/_input.css.sass b/source/assets/stylesheets/modules/_input.css.sass
new file mode 100644
index 0000000..f756429
--- /dev/null
+++ b/source/assets/stylesheets/modules/_input.css.sass
@@ -0,0 +1,181 @@
+//
+// Inputs
+// --------------------------------------------------
+
+// Text fields
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
+.uneditable-input
+ border: 2px solid $lightgray
+ color: $base
+ font-family: $base-font-family
+ font-size: $base-font-size
+ padding: 8px 5px
+ height: 21px
+ text-indent: 6px
+ -webkit-appearance: none
+ +border-radius(6px)
+ +box-shadow(none)
+ +placeholder-color(desaturate(lighten($base, 45%), 15%))
+ +transition("border .25s linear, color .25s linear")
+
+ // Alternate state
+ // --------------------------------------------------
+ .control-group.focus &,
+ &:focus
+ border-color: $firm
+ +box-shadow(none)
+
+
+ .row-fluid &
+ height: 41px
+ width: 100%
+
+
+ // Flat (without border)
+ &.flat
+ border-color: transparent
+ &:hover
+ border-color: $lightgray
+
+ &:focus
+ border-color: $firm
+
+
+
+ // Alternate Colors
+ // --------------------------------------------------
+ .control-group.error
+ +input-states($danger)
+ .control-group.success
+ +input-states($success)
+ .control-group.warning
+ +input-states($warning)
+ .control-group.info
+ +input-states($info)
+
+ .control-group
+ margin-bottom: 0
+
+
+// INPUT ICONS
+// ----------------------
+.control-group
+ position: relative
+
+ > .input-icon
+ position: absolute
+ top: 2px
+ right: 2px
+ line-height: 37px
+ vertical-align: middle
+ font-size: $base-font-size * 1.428 /* 20px */
+ color: desaturate(lighten($base, 45%), 15%)
+ background-color: #ffffff
+ padding: 0 10px
+ +border-radius(6px)
+
+
+ input:focus + .input-icon
+ color: $base
+
+ // Icon Sizes
+ // --------------------------------------------------
+
+ // Huge
+ &.huge
+ > .input-icon
+ line-height: 49px
+
+
+
+ //Large
+ &.large
+ > .input-icon
+ line-height: 41px
+
+
+
+ // Small
+ &.small
+ > .input-icon
+ font-size: $base-font-size * 1.142 /* 16px */
+ line-height: 30px
+
+
+
+
+ // Icon Colors
+ // --------------------------------------------------
+ &.success
+ > .input-icon, input + .input-icon
+ color: $success
+
+
+ &.warning
+ > .input-icon, input + .input-icon
+ color: $warning
+
+
+ &.error
+ > .input-icon, input + .input-icon
+ color: $danger
+
+
+ &.disabled
+ > .input-icon, input + .input-icon
+ color: mix($gray, white, 40%)
+ background-color: mix($gray, white, 10%)
+
+
+
+
+
+// Disabled state
+input[disabled],
+input[readonly],
+textarea[disabled],
+textarea[readonly]
+ background-color: mix($gray, white, 10%)
+ border-color: mix($gray, white, 40%)
+ color: mix($gray, white, 40%)
+ cursor: default
+
+
+// Text field grids
+input,
+textarea,
+.uneditable-input
+ width: 192px
+
+
+// Textarea
+textarea
+ height: auto
+ font-size: $base-font-size * 1.071 /* 15px */
+ line-height: 24px
+ padding: 5px 11px
+ text-indent: 0
+
+ .row-fluid &
+ height: auto
+ width: 100% !important
+
+
+textarea[class*="span"]
+ width: 100% !important
+ +box-sizing(border-box)
+
\ No newline at end of file
diff --git a/source/assets/stylesheets/modules/_login.css.sass b/source/assets/stylesheets/modules/_login.css.sass
new file mode 100644
index 0000000..e8d7849
--- /dev/null
+++ b/source/assets/stylesheets/modules/_login.css.sass
@@ -0,0 +1,110 @@
+//
+// Login screen
+// --------------------------------------------------
+
+// Module color variable
+$form-color: mix($base, $inverse, 9%)
+
+.login
+ background: url(../images/login/imac.png) 0 0 no-repeat
+ background-size: 940px 778px
+ color: $inverse
+ margin-bottom: 77px
+ padding: 38px 38px 267px
+ position: relative
+
+
+.login-screen
+ background-color: $firm
+ min-height: 317px
+ padding: 123px 199px 33px 306px
+
+
+.login-icon
+ left: 200px
+ position: absolute
+ top: 160px
+ width: 96px
+
+ > img
+ display: block
+ margin-bottom: 6px
+ width: 100%
+
+ > h4
+ font-size: 17px
+ font-weight: 200
+ line-height: 34px
+ +opacity(95)
+
+ small
+ color: inherit
+ display: block
+ font-size: inherit
+ font-weight: 700
+
+
+
+
+// LOGIN FORM
+// -----------
+.login-form
+ background-color: $form-color
+ padding: 24px 23px 20px
+ position: relative
+ +border-radius(6px)
+
+ // Ear
+ &:before
+ content: ''
+ border-style: solid
+ border-width: 12px 12px 12px 0
+ border-color: transparent $form-color transparent transparent
+ height: 0
+ position: absolute
+ left: -12px
+ top: 35px
+ width: 0
+ -webkit-transform: rotate(360deg) // Make corners smooth
+
+ .control-group
+ margin-bottom: 6px
+ position: relative
+
+ .login-field
+ border-color: transparent
+ font-size: 17px
+ padding-bottom: 11px
+ padding-top: 11px
+ text-indent: 3px
+ width: 299px
+ margin-bottom: 10px !important
+
+ &:focus
+ & + .login-field-icon
+ color: $firm
+
+ .login-field-icon
+ color: mix($gray, $inverse, 60%)
+ font-size: 16px
+ position: absolute
+ right: 13px
+ top: 14px
+ +transition(.25s)
+
+
+
+.login-link
+ color: mix($gray, $inverse, 60%)
+ display: block
+ font-size: 13px
+ margin-top: 15px
+ text-align: center
+
+
+@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (-moz-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 2)
+ .login
+ background-image: url('../images/login/imac-2x.png')
+
+
+
diff --git a/source/assets/stylesheets/modules/_navbar.css.sass b/source/assets/stylesheets/modules/_navbar.css.sass
new file mode 100644
index 0000000..9fa11f0
--- /dev/null
+++ b/source/assets/stylesheets/modules/_navbar.css.sass
@@ -0,0 +1,399 @@
+//
+// Navbar
+// --------------------------------------------------
+
+.navbar
+ font-size: $base-font-size * 1.142 /* 16px */
+
+ .brand
+ border-radius: 6px 0 0 6px
+ color: mix($base, white, 85%)
+ font-size: $base-font-size * 1.714 /* 24px */
+ font-weight: 700
+ margin-left: 0
+ padding: 23px 28px 24px 32px
+ text-shadow: none
+ &:hover, &:focus
+ color: $firm
+
+ &[class*="fui-"]
+ font-weight: normal
+
+ .nav
+ margin-right: 0
+
+ // First level nav
+ > li
+ position: relative
+
+ &:hover
+ > ul
+ opacity: 1
+ top: 100%
+ visibility: visible
+ z-index: 100
+ -webkit-transform: scale(1, 1)
+ // Show on hover
+ display: block\9
+
+ &.active
+ > a,
+ > a:hover,
+ > a:focus
+ background: none
+ color: $firm
+ +box-shadow(none)
+
+ // Second level nav
+ > ul
+ padding-top: 13px
+ top: 80%
+ +dropdown-arrow
+ // Third level nav
+ li
+ &:hover
+ ul
+ opacity: 1
+ -webkit-transform: scale(1, 1)
+ visibility: visible
+ display: block\9
+ ul
+ left: 100%
+
+ // First level link
+ > a
+ color: mix($base, white, 85%)
+ font-weight: 700
+ font-size: $base-font-size * 1.071 /* 15px */
+ padding: 29px $navbar-link-space 27px
+ text-shadow: none
+ +transition("background-color .25s, color .25s, border-bottom-color .25s")
+
+ &:hover, &:focus
+ color: $firm
+
+ &[class*="fui-"]
+ font-size: 24px
+ font-weight: normal
+
+ > [class*="fui-"]
+ font-size: 24px
+ margin: -4px 0 0
+ position: relative
+ top: 4px
+
+ > [class*="fui-"] + *
+ margin-left: 12px
+
+ > li:first-child
+ > a
+ +border-radius(0 0 0 6px)
+
+
+
+ // Sub menu
+ ul
+ border-radius: 4px
+ left: 0
+ list-style-type: none
+ margin-left: 0
+ opacity: 0
+ position: absolute
+ top: 0
+ width: 234px
+ z-index: -100
+ // Trigger transform to hide nav completely without 'ghost' bug (when switching from :hover to initial)
+ -webkit-transform: scale(1, 0.99)
+ -webkit-transform-origin: 0 0
+ // Don't show it at all by default since IE doesn't get modern transitions
+ visibility: hidden
+ +transition(0.3s ease-out)
+
+ // Deep level sub menu
+ ul
+ left: 95%
+ padding-left: 5px
+
+
+ // Sub menu item
+ li
+ background-color: $base
+ padding: 0 3px 3px
+ position: relative
+
+ &:first-child
+ border-radius: 6px 6px 0 0
+ padding-top: 3px
+
+ &:last-child
+ border-radius: 0 0 6px 6px
+
+ &.active
+ > a,
+ > a:hover,
+ > a:focus
+ background-color: $firm
+ color: $inverse
+ padding-left: $navbar-sublink-space
+ padding-right: $navbar-sublink-space
+
+ & + li
+ > a
+ padding-left: $navbar-sublink-space
+ padding-right: $navbar-sublink-space
+
+
+
+
+
+ // Sub menu link
+ a
+ border-radius: 2px
+ color: $inverse
+ display: block
+ font-size: $base-font-size
+ padding: 6px $navbar-sublink-space
+ text-decoration: none
+
+ &:hover
+ background-color: $firm
+
+
+
+
+
+ // Expand/collapse button
+ .btn-navbar
+ background: none
+ border: none
+ color: $base
+ margin: 21px 15px 17px
+ text-shadow: none
+ +box-shadow(none)
+
+ &:hover, &:focus
+ background: none
+ color: $firm
+
+ &:before
+ content: "\e00c"
+ font-family: "Flat-UI-Icons"
+ font-size: $base-font-size * 1.571
+ font-style: normal
+ font-weight: normal
+ -webkit-font-smoothing: antialiased
+
+ .icon-bar
+ display: none
+
+
+
+
+.navbar-inner
+ background: mix($base, white, 9.5%)
+ border: none
+ padding-left: 0
+ padding-right: 0
+ +border-radius(6px)
+ +drop-ie-gradient()
+ +box-shadow(none)
+
+
+// Alternate Color
+// --------------------------------------------------
+.navbar-inverse
+ font-size: $base-font-size * 1.214 /* 17px */
+
+ .navbar-inner
+ background: $base
+ +drop-ie-gradient()
+
+ .brand
+ border-bottom: 2px solid mix($base, black, 85%)
+ border-right: 2px solid mix($base, black, 85%)
+ color: $inverse
+ padding: 10px 28px 11px 32px
+
+ .btn-navbar
+ color: $inverse
+ margin: 7px 10px
+
+ .nav
+ > li
+ &:first-child
+ &.active
+ > a
+ padding-left: $navbar-link-space
+
+
+ > a
+ border-left: none
+
+
+
+ // Active item
+ &.active
+ > a
+ &, &:hover, &:focus
+ background-color: $firm
+ border-bottom-color: mix($firm, black, 85%)
+ border-left: none
+ color: $inverse
+ padding-left: $navbar-link-space + 2
+ +box-shadow(none)
+
+
+ & + li
+ > a
+ border-left: none
+ padding-left: $navbar-link-space + 2
+
+
+
+
+ // Link styling
+ > a
+ font-size: $base-font-size * 1.143 /* 16px */
+ border-bottom: 2px solid mix($base, black, 85%)
+ border-left: 2px solid mix($base, black, 85%)
+ color: $inverse
+ padding: 16px $navbar-link-space 15px
+
+
+
+
+ // Round corders of the pull-right dropdown
+ .nav.pull-right > li
+ > a
+ border-radius: 0 6px 6px 0
+
+
+
+
+// Unread icon
+.navbar-unread,
+.navbar-new
+ font-family: $base-font-family
+ background-color: $firm
+ border-radius: 50%
+ color: $inverse
+ font-size: 0
+ font-weight: 700
+ height: 6px
+ line-height: $base-font-size
+ position: absolute
+ right: 12px
+ text-align: center
+ top: 28px
+ width: 6px
+ z-index: 10
+
+ .active &
+ background-color: $inverse
+ display: none
+
+ .navbar-inverse &
+ top: 15px
+
+
+
+.navbar-new
+ background-color: $danger
+ font-size: 12px
+ line-height: 17px
+ height: 18px
+ margin: -9px -1px
+ min-width: 16px
+ padding: 0 1px
+ width: auto
+ -webkit-font-smoothing: subpixel-antialiased
+
+
+// DROPDOWN LIST
+// -----------
+.navbar
+ // Inverse navbar dropdown styling
+ &.navbar-inverse
+ .nav li.dropdown
+ &.open
+ > .dropdown-toggle
+ background-color: $firm
+ border-bottom-color: mix($firm, black, 85%)
+ color: $inverse
+
+ .caret
+ border-bottom-color: $inverse !important
+ border-top-color: $inverse !important
+
+
+
+
+
+
+ // Default navbar dropdown styling
+ .nav li.dropdown
+ &.open
+ > .dropdown-toggle
+ background: none
+ color: $firm
+
+ .caret
+ border-bottom-color: $firm !important
+ border-top-color: $firm !important
+
+
+ .dropdown-menu
+ opacity: 1
+ top: 100%
+ visibility: visible
+ z-index: 1000
+ -webkit-transform: none
+
+
+ > .dropdown-toggle
+ outline: none
+
+ &:hover, &:focus
+ .caret
+ border-bottom-color: $firm
+ border-top-color: $firm
+
+
+ .caret
+ border-left-width: 6px
+ border-right-width: 6px
+ border-top-width: 8px
+ border-bottom-color: lighten($base, 13%)
+ border-top-color: lighten($base, 13%)
+ margin-left: 10px
+ margin-top: 7px
+
+
+ .dropdown-menu
+ background-color: $base
+ opacity: 0
+ padding: 0
+ visibility: hidden
+
+ &:before
+ display: none
+
+ &:after
+ border-bottom-color: $base
+
+ > li
+ > a
+ border-radius: 3px
+ color: $inverse
+ padding: 6px 8px 8px
+
+
+ .divider
+ background-color: mix($base, black, 85%)
+ border-bottom: none
+ margin: 2px 0 5px
+ padding: 0
+ height: 2px
+
+
+
diff --git a/source/assets/stylesheets/modules/_pager.css.sass b/source/assets/stylesheets/modules/_pager.css.sass
new file mode 100644
index 0000000..0d06fb7
--- /dev/null
+++ b/source/assets/stylesheets/modules/_pager.css.sass
@@ -0,0 +1,54 @@
+//
+// Pager
+// --------------------------------------------------
+
+.pager
+ background-color: $base
+ border-radius: 6px
+ color: $inverse
+ font-size: 16px
+ font-weight: 700
+ +inline-block()
+
+ li
+ &:first-child
+ > a,
+ > span
+ border-left: none
+ +border-radius(6px 0 0 6px)
+
+
+ &.pager-center
+ padding: $pager-padding
+ padding-left: 0
+ padding-right: 0
+ +inline-block()
+
+ > a,
+ > span
+ background: none
+ border: none
+ border-left: 2px solid mix($base, black, 85%)
+ color: $inverse
+ padding: $pager-padding
+ text-decoration: none
+ white-space: nowrap
+ +border-radius(0 6px 6px 0)
+
+ &:hover, &:focus
+ background-color: mix($base, black, 85%)
+
+ &:active
+ background-color: mix($base, black, 85%)
+
+
+ // Add some spacing between the icon and text
+ [class*="fui-"] + span
+ margin-left: 8px
+
+ span + [class*="fui-"]
+ margin-left: 8px
+
+
+
+
diff --git a/source/assets/stylesheets/modules/_pagination.css.sass b/source/assets/stylesheets/modules/_pagination.css.sass
new file mode 100644
index 0000000..1627406
--- /dev/null
+++ b/source/assets/stylesheets/modules/_pagination.css.sass
@@ -0,0 +1,168 @@
+//
+// Pagination
+// --------------------------------------------------
+
+.pagination
+ position: relative
+
+ ul
+ background: $pagination-color
+ color: $inverse
+ vertical-align: top
+ +border-radius(6px)
+ +box-shadow(none)
+
+ li
+ display: inline-block
+ margin-right: -3px
+ vertical-align: top
+
+ // Pseudos and states
+ &.active
+ > a, > span
+ background-color: $firm
+ color: $inverse
+
+ &.previous,
+ &.next
+ > a, > span
+ margin: 0
+
+ &, &:hover, &:focus
+ background-color: $firm
+ color: $inverse
+
+ &:first-child
+ +border-radius(6px 0 0 6px)
+ > a, > span
+ +border-radius(6px 0 0 6px)
+
+ &.previous + li
+ > a, > span
+ border-left-width: 5px
+
+
+ > a, > span
+ border-left: none
+
+
+ &:last-child
+ margin-right: 0
+ +border-radius(0 6px 6px 0)
+
+ > a, > span
+ &, &:hover, &:focus
+ +border-radius(0 6px 6px 0)
+
+
+
+ &.previous,
+ &.next
+ > a, > span
+ background: transparent
+ border: none
+ border-right: 2px solid mix($pagination-color, white, 66%)
+ font-size: $base-font-size * 1.142 /* 16px */
+ margin: 0 9px 0 0
+ padding: 12px 17px
+ min-width: auto
+ +border-radius(6px 0 0 6px)
+ +box-shadow(0 !important)
+
+ &, &:hover, &:focus
+ border-color: mix($pagination-color, white, 66%) !important
+
+
+
+ &.next
+ margin-left: 9px
+
+ > a, > span
+ border-left: 2px solid mix($pagination-color, white, 66%)
+ border-right: none
+ margin: 0
+ +border-radius(0 6px 6px 0)
+
+
+ &.active
+ > a, > span
+ background-color: $inverse
+ border-color: $inverse
+ border-width: 2px !important
+ color: $pagination-color
+ margin: 10px 5px 9px
+
+ &:hover, &:focus
+ background-color: $inverse
+ border-color: $inverse
+ color: $pagination-color
+ +box-shadow(none)
+
+
+ &.previous,
+ &.next
+ border-color: mix($pagination-color, white, 66%)
+
+ &.previous
+ margin-right: 6px
+
+
+
+ // Link
+ > a, > span
+ background: $inverse
+ border: 5px solid $pagination-color
+ color: $inverse
+ line-height: 16px
+ min-height: 17px
+ min-width: auto
+ outline: none
+ padding: 0 4px
+ margin: 7px 2px 6px
+ text-align: center
+ +border-radius(50px)
+ +transition("background 0.2s ease-out, border-color 0s ease-out, color 0.2s ease-out")
+
+ &:hover,
+ &:focus
+ background-color: $firm
+ border-color: $firm
+ color: $inverse
+ +transition("background 0.2s ease-out, border-color 0.2s ease-out, color 0.2s ease-out")
+
+ &:active
+ background-color: mix($firm, black, 85%)
+ border-color: mix($firm, black, 85%)
+ color: $inverse
+
+
+
+
+
+ // Navigation buttons
+ > .btn
+ &.previous,
+ &.next
+ margin-right: 8px
+ font-size: $base-font-size
+ padding-left: 23px
+ padding-right: 23px
+
+ [class*="fui-"]
+ font-size: $icon-normal
+ margin-left: -2px
+ margin-top: -2px
+
+
+
+ &.next
+ margin-left: 8px
+ margin-right: 0
+
+ [class*="fui-"]
+ margin-right: -2px
+ margin-left: 4px
+
+
+
+
\ No newline at end of file
diff --git a/source/assets/stylesheets/modules/_palette.css.sass b/source/assets/stylesheets/modules/_palette.css.sass
new file mode 100644
index 0000000..3de59e3
--- /dev/null
+++ b/source/assets/stylesheets/modules/_palette.css.sass
@@ -0,0 +1,56 @@
+//
+// Palette
+// --------------------------------------------------
+
+.palette
+ color: $inverse
+ margin: 0
+ padding: 15px
+ text-transform: uppercase
+
+ dt
+ display: block
+ font-weight: 500
+ +opacity(80)
+
+ dd
+ font-weight: 200
+ margin-left: 0
+ +opacity(80)
+
+
+
+//
+// Pallet grid
+// --------------------------------------------------
++calc-color("turquoise", "green-sea")
++calc-color("emerald", "nephritis")
++calc-color("peter-river", "belize-hole")
++calc-color("amethyst", "wisteria")
++calc-color("wet-asphalt", "midnight-blue")
+
++calc-color("sun-flower", "orange")
++calc-color("carrot", "pumpkin")
++calc-color("alizarin", "pomegranate")
++calc-color("clouds", "silver")
++calc-color("concrete", "asbestos")
+
+.palette-clouds
+ color: #bdc3c7
+
+
+// Palette paragraph
+.palette-paragraph
+ color: #7f8c8d
+ font-size: 12px
+ line-height: 17px
+
+ span
+ color: #bdc3c7
+
+// Headline
+.palette-headline
+ color: #7f8c8d
+ font-weight: 700
+ margin-top: -5px
+
diff --git a/source/assets/stylesheets/modules/_progress.css.sass b/source/assets/stylesheets/modules/_progress.css.sass
new file mode 100644
index 0000000..80ef9d2
--- /dev/null
+++ b/source/assets/stylesheets/modules/_progress.css.sass
@@ -0,0 +1,35 @@
+//
+// Progress bar
+// --------------------------------------------------
+.progress
+ background: mix($base, white, 10%)
+ border-radius: 32px
+ height: $progress-height
+ +box-shadow(none)
+ +drop-ie-gradient()
+
+// Alternate Colors
+// --------------------------------------------------
+
+.bar
+ background: $firm
+ +box-shadow("none !important")
+ +drop-ie-gradient()
+
+.bar-success
+ background-color: $success
+ +drop-ie-gradient()
+
+.bar-warning
+ background-color: $warning
+ +drop-ie-gradient()
+
+.bar-danger
+ background-color: $danger
+ +drop-ie-gradient()
+
+.bar-info
+ background-color: $info
+ +drop-ie-gradient()
+
+
diff --git a/source/assets/stylesheets/modules/_select.css.sass b/source/assets/stylesheets/modules/_select.css.sass
new file mode 100644
index 0000000..92c217f
--- /dev/null
+++ b/source/assets/stylesheets/modules/_select.css.sass
@@ -0,0 +1,140 @@
+//
+// Bootstrap Select
+// --------------------------------------------------
+// Credits: Silvio Moreto
+// http://github.com/silviomoreto/bootstrap-select
+
+.select
+ display: inline-block
+ margin-bottom: 10px
+
+ // Select grid
+ &[class*="span"]
+ [class*="span"] > &
+ margin-left: 0 // No margin if select is a closest child of the grid
+
+ .btn
+ width: 100% // Button should take all available space of its parent
+ +box-sizing()
+
+
+
+ // Fluid width. Takes all available space and behaves like a block
+ &.select-block
+ display: block
+ float: none
+ margin-left: 0
+ width: auto
+
+ .btn
+ width: 100%
+ +box-sizing()
+
+
+ // Button Sizes
+ // --------------------------------------------------
+
+ .btn
+ width: 220px // Default select width until .span* is applied
+
+ // Huge
+ &.btn-huge
+ .filter-option
+ left: 20px
+ right: 40px
+ top: 16px
+
+ .caret
+ right: 20px
+
+
+
+ // Large
+ &.btn-large
+ .filter-option
+ left: 18px
+ right: 38px
+ top: 12px
+
+
+
+ // Small
+ &.btn-small
+ .filter-option
+ left: 13px
+ right: 33px
+ top: 7px
+
+ .caret
+ right: 13px
+
+
+
+ // Mini
+ &.btn-mini
+ .filter-option
+ left: 13px
+ right: 33px
+ top: 5px
+
+ .caret
+ right: 13px
+
+
+ .filter-option
+ height: 26px
+ left: 13px
+ overflow: hidden
+ position: absolute
+ right: 33px
+ text-align: left
+ top: 10px
+
+ .caret
+ position: absolute
+ right: 16px
+
+ .dropdown-toggle
+ +border-radius(6px)
+
+
+ // Dropdown menu
+ .dropdown-menu
+ min-width: 100%
+ +box-sizing
+
+ dt
+ cursor: default
+ display: block
+ padding: 3px 20px
+
+ li
+ &:not(.disabled) > a:hover small
+ color: fade($inverse, .4)
+
+ > a
+ min-height: 20px
+
+ &.opt
+ padding-left: 35px
+
+
+ small
+ padding-left: 0.5em
+
+ > dt small
+ font-weight: normal
+
+
+
+
+ // Disabled state
+ > .disabled,
+ .dropdown-menu li.disabled > a
+ cursor: default
+
+
+
+// Caret
+// .caret
+ // +caret($inverse)
\ No newline at end of file
diff --git a/source/assets/stylesheets/modules/_share.css.sass b/source/assets/stylesheets/modules/_share.css.sass
new file mode 100644
index 0000000..e34d1ef
--- /dev/null
+++ b/source/assets/stylesheets/modules/_share.css.sass
@@ -0,0 +1,41 @@
+//
+// Sharing box
+// --------------------------------------------------
+
+// Module color variable
+$share-color: mix($base, $inverse, 8%)
+
+.share
+ background-color: $share-color
+ position: relative
+ +dropdown-arrow($share-color, -9px, 23px)
+ +border-radius(6px)
+
+ ul
+ list-style-type: none
+ margin: 0
+ padding: 15px
+
+ li
+ padding-top: 11px
+ +clearfix()
+
+ &:first-child
+ padding-top: 0
+
+
+ .toggle
+ float: right
+ margin: 0
+
+ .btn
+ +border-radius(0 0 6px 6px)
+
+
+
+.share-label
+ float: left
+ font-size: 15px
+ padding-top: 5px
+ width: 50%
+
diff --git a/source/assets/stylesheets/modules/_switch.css.sass b/source/assets/stylesheets/modules/_switch.css.sass
new file mode 100644
index 0000000..823ec23
--- /dev/null
+++ b/source/assets/stylesheets/modules/_switch.css.sass
@@ -0,0 +1,148 @@
+/* ============================================================
+ * bootstrapSwitch v1.3 by Larentis Mattia $spiritualGuru
+ * http://www.larentis.eu/switch/
+ * ============================================================
+ * Licensed under the Apache License, Version 2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * ============================================================ */
+
+.has-switch
+ border-radius: $switch-border-radius
+ display: inline-block
+ cursor: pointer
+ line-height: $base-line-height
+ overflow: hidden
+ position: relative
+ text-align: left
+ width: $switch-width
+ +mask("url('../images/switch/mask.png') 0 0 no-repeat")
+ +user-select(none)
+
+ &.deactivate
+ +opacity(50)
+ cursor: default !important
+ label, span
+ cursor: default !important
+
+
+
+ > div
+ width: 162%
+ position: relative
+ top: 0
+
+ &.switch-animate
+ +transition(left 0.25s ease-out)
+
+
+ &.switch-off
+ left: -63%
+
+ label
+ background-color: mix($base, white, 63%)
+ border-color: $lightgray
+ +box-shadow(-1px 0 0 fade($inverse, 50%))
+
+
+
+ &.switch-on
+ left: 0%
+
+ label
+ background-color: $firm
+
+
+
+
+ input[type=checkbox]
+ display: none
+
+
+ span
+ cursor: pointer
+ font-size: $base-font-size * 1.071
+ font-weight: 700
+ float: left
+ height: 29px
+ line-height: 19px
+ margin: 0
+ padding-bottom: 6px
+ padding-top: 5px
+ position: relative
+ text-align: center
+ width: 50%
+ z-index: 1
+ +box-sizing()
+ +transition(.25s ease-out)
+
+ &.switch-left
+ border-radius: $switch-border-radius 0 0 $switch-border-radius
+ background-color: $base
+ color: $firm
+ border-left: 1px solid transparent
+
+
+ &.switch-right
+ border-radius: 0 $switch-border-radius $switch-border-radius 0
+ background-color: $lightgray
+ color: $inverse
+ text-indent: 7px
+
+ [class*="fui-"]
+ text-indent: 0
+
+
+
+
+ label
+ border: 4px solid $base
+ border-radius: 50%
+ float: left
+ height: 21px
+ margin: 0 -15px 0 -14px
+ padding: 0
+ position: relative
+ vertical-align: middle
+ width: 21px
+ z-index: 100
+ +transition(.25s ease-out)
+
+
+
+// Square Switch
+// -------------------------------
+.switch-square
+ border-radius: 6px
+ +mask("url('../images/switch/mask.png') 0 0 no-repeat")
+
+ > div
+ &.switch-off
+ label
+ border-color: mix($base, white, 63%)
+ border-radius: 6px 0 0 6px
+
+
+
+
+ span
+ &.switch-left
+ border-radius: 6px 0 0 6px
+ [class*="fui-"]
+ text-indent: -10px
+
+
+
+ &.switch-right
+ border-radius: 0 6px 6px 0
+ [class*="fui-"]
+ text-indent: 5px
+
+
+
+
+ label
+ border-radius: 0 6px 6px 0
+ border-color: $firm
+
+
+
diff --git a/source/assets/stylesheets/modules/_tagsinput.css.sass b/source/assets/stylesheets/modules/_tagsinput.css.sass
new file mode 100644
index 0000000..b289d73
--- /dev/null
+++ b/source/assets/stylesheets/modules/_tagsinput.css.sass
@@ -0,0 +1,115 @@
+//
+// Tags Input
+// --------------------------------------------------
+
+.tagsinput
+ background: white
+ border: 2px solid $firm
+ border-radius: 6px
+ height: 100px
+ margin-bottom: 18px
+ padding: 6px 1px 1px 6px
+ overflow-y: auto
+ text-align: left
+
+ .tag
+ border-radius: 4px
+ background-color: $firm
+ color: $inverse
+ cursor: pointer
+ margin-right: 5px
+ margin-bottom: 5px
+ overflow: hidden
+ line-height: 15px
+ padding: 6px 13px 8px 19px
+ position: relative
+ vertical-align: middle
+ +inline-block()
+ +transition(0.14s linear)
+
+ &:hover
+ background-color: mix($firm, black, 85%)
+ color: $inverse
+ padding-left: 12px
+ padding-right: 20px
+
+ .tagsinput-remove-link
+ color: $inverse
+ opacity: 1
+ // Opacity fallback for IE
+ display: block\9
+
+
+
+ input
+ background: transparent
+ border: none
+ color: $base
+ font-family: $base-font-family
+ font-size: $base-font-size
+ margin: 0px
+ padding: 0 0 0 5px
+ outline: 0
+ margin-right: 5px
+ margin-bottom: 5px
+ width: 12px
+
+
+
+.tagsinput-remove-link
+ bottom: 0
+ color: $inverse
+ cursor: pointer
+ font-size: 12px
+ opacity: 0
+ padding: 7px 7px 5px 0
+ position: absolute
+ right: 0
+ text-align: right
+ text-decoration: none
+ top: 0
+ width: 100%
+ z-index: 2
+ // Opacity fallback for IE
+ display: none\9
+
+ &:before
+ color: $inverse
+ content: "\e00b"
+ font-family: "Flat-UI-Icons"
+
+
+
+.tagsinput-add-container
+ vertical-align: middle
+ +inline-block()
+
+
+.tagsinput-add
+ background-color: mix($inverse, $base, 80%)
+ border-radius: 3px
+ color: $inverse
+ cursor: pointer
+ margin-bottom: 5px
+ padding: 6px 9px
+ +inline-block()
+ +transition(0.25s)
+
+ &:hover
+ background-color: $firm
+
+ &:before
+ content: "\e009"
+ font-family: "Flat-UI-Icons"
+
+
+.tags_clear
+ clear: both
+ width: 100%
+ height: 0px
+
+.not_valid
+ background: #fbd8db !important
+ color: #90111a !important
+
+
diff --git a/source/assets/stylesheets/modules/_tile.css.sass b/source/assets/stylesheets/modules/_tile.css.sass
new file mode 100644
index 0000000..faa893b
--- /dev/null
+++ b/source/assets/stylesheets/modules/_tile.css.sass
@@ -0,0 +1,54 @@
+//
+// Tile
+// -------------------------------------------------
+
+.tile
+ background-color: mix($base, $inverse, 8%)
+ border-radius: 6px
+ padding: 14px
+ position: relative
+ text-align: center
+
+ &.tile-hot
+ &:before
+ background: url(../images/tile/ribbon.png) 0 0 no-repeat
+ background-size: 82px 82px
+ content: ''
+ height: 82px
+ position: absolute
+ right: -4px
+ top: -4px
+ width: 82px
+
+
+ p
+ font-size: 15px
+ margin-bottom: 33px
+
+
+.tile-image
+ height: 100px
+ margin: 31px 0 27px
+ vertical-align: bottom
+
+ &.big-illustration
+ height: 111px
+ margin-top: 20px
+ width: 112px
+
+
+.tile-title
+ font-size: 20px
+ margin: 0
+
+
+// Retina Support
+@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (-moz-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (-moz-min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 2)
+ .tile
+ &.tile-hot
+ &:before
+ background-image: url(../images/tile/ribbon-2x.png)
+
+
+
+
diff --git a/source/assets/stylesheets/modules/_todo.css.sass b/source/assets/stylesheets/modules/_todo.css.sass
new file mode 100644
index 0000000..563b03d
--- /dev/null
+++ b/source/assets/stylesheets/modules/_todo.css.sass
@@ -0,0 +1,102 @@
+//
+// Todo list
+// --------------------------------------------------
+
+.todo
+ background-color: mix($base, black, 85%)
+ color: mix($base, $inverse, 66%)
+ margin-bottom: 20px
+ +border-radius(8px 8px 6px 6px)
+
+ ul
+ margin: 0
+ list-style-type: none
+
+ li
+ background: $base url(../images/todo/todo.png) 92% center no-repeat
+ background-size: 20px 20px
+ cursor: pointer
+ margin-top: 2px
+ padding: 18px 42px 17px 25px
+ position: relative
+ +transition(.25s)
+
+ &:first-child
+ margin-top: 0
+
+ &:last-child
+ +border-radius(0 0 6px 6px)
+ padding-bottom: 18px
+
+ &.todo-done
+ background: transparent url(../images/todo/done.png) 92% center no-repeat
+ background-size: 20px 20px
+ color: $firm
+
+ .todo-name
+ color: $firm
+
+
+.todo-search
+ position: relative
+ background: $firm
+ background-size: 16px 16px
+ border-radius: 6px 6px 0 0
+ color: $base
+ padding: 19px 25px 20px
+
+ &:before
+ position: absolute
+ font-family: 'Flat-UI-Icons'
+ content: "\e01c"
+ font-size: 16px
+ display: inline-block
+ top: 50%
+ left: 92%
+ margin: -0.5em 0 0 -1em
+
+
+
+input.todo-search-field
+ background: none
+ border: none
+ color: $base
+ font-size: 19px
+ font-weight: 700
+ margin: 0
+ line-height: 23px
+ padding: 5px 0
+ text-indent: 0
+ +box-shadow(none)
+ +placeholder-color($base)
+
+
+.todo-icon
+ float: left
+ font-size: 24px
+ padding: 11px 22px 0 0
+
+
+.todo-content
+ padding-top: 1px
+ overflow: hidden
+
+
+.todo-name
+ color: $inverse
+ font-size: 17px
+ margin: 1px 0 3px
+
+
+// Retina Support
+@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (-moz-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (-moz-min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 2)
+ .todo
+ li
+ background-image: url(../images/todo/todo-2x.png)
+
+ &.todo-done
+ background-image: url(../images/todo/done-2x.png)
+
+
+
+
diff --git a/source/assets/stylesheets/modules/_tooltip.css.sass b/source/assets/stylesheets/modules/_tooltip.css.sass
new file mode 100644
index 0000000..80e9599
--- /dev/null
+++ b/source/assets/stylesheets/modules/_tooltip.css.sass
@@ -0,0 +1,55 @@
+// Tooltip
+// --------------------------------------------------
+
+.tooltip
+ font-size: $base-font-size
+
+ &.in
+ opacity: 1
+
+ &.top
+ padding-bottom: 9px
+
+ .tooltip-arrow
+ border-top-color: $base
+ border-width: 9px 9px 0
+ bottom: 0
+ margin-left: -9px
+
+
+ &.right
+ .tooltip-arrow
+ border-right-color: $base
+ border-width: 9px 9px 9px 0
+ margin-top: -9px
+ left: -3px
+
+
+ &.bottom
+ padding-top: 8px
+
+ .tooltip-arrow
+ border-bottom-color: $base
+ border-width: 0 9px 9px
+ margin-left: -9px
+ top: -1px
+
+
+ &.left
+ .tooltip-arrow
+ border-left-color: $base
+ border-width: 9px 0 9px 9px
+ margin-top: -9px
+ right: -3px
+
+
+
+
+.tooltip-inner
+ background-color: $base
+ line-height: $base-font-size * 1.285
+ padding: 12px 12px
+ text-align: center
+ width: 183px
+ +border-radius(6px)
+
diff --git a/source/assets/stylesheets/modules/_type.css.sass b/source/assets/stylesheets/modules/_type.css.sass
new file mode 100644
index 0000000..decd9ef
--- /dev/null
+++ b/source/assets/stylesheets/modules/_type.css.sass
@@ -0,0 +1,59 @@
+// Typography
+// --------------------------------------------------
+body
+ color: $base
+ font-family: $base-font-family
+ font-size: $base-font-size
+ line-height: $base-line-height
+
+
+input,
+button,
+select,
+textarea
+ font-family: $base-font-family
+ font-size: $base-font-size
+
+
+a
+ color: $link-color
+ text-decoration: underline
+ +transition(0.25s)
+
+ &:hover
+ color: $link-hover-color
+ text-decoration: none
+
+
+
+// H1—H6 specific styling
+h1
+ font-size: 32px
+ font-weight: 900
+
+h2
+ font-size: 26px
+ font-weight: 700
+ margin-bottom: 2px
+
+h3
+ font-size: 24px
+ font-weight: 700
+ margin-bottom: 4px
+ margin-top: 2px
+
+h4
+ font-size: 18px
+ font-weight: 500
+ margin-top: 4px
+
+h5
+ font-size: 16px
+ font-weight: 500
+ text-transform: uppercase
+
+h6
+ font-size: 13px
+ font-weight: 500
+ text-transform: uppercase
+
\ No newline at end of file
diff --git a/source/assets/stylesheets/modules/_ui-slider.css.sass b/source/assets/stylesheets/modules/_ui-slider.css.sass
new file mode 100644
index 0000000..474a7bc
--- /dev/null
+++ b/source/assets/stylesheets/modules/_ui-slider.css.sass
@@ -0,0 +1,57 @@
+// Slider
+// --------------------------------------------------
+
+.ui-slider
+ @extend .progress
+ margin-bottom: 20px
+ position: relative
+
+.ui-slider-handle
+ background-color: mix($firm, black, 85%)
+ border-radius: 50%
+ cursor: pointer
+ height: 18px
+ margin-left: -9px
+ position: absolute
+ top: -3px
+ width: 18px
+ z-index: 2
+ +transition(background 0.25s)
+
+ &[style*='100']
+ margin-left: -15px
+
+ &:hover,
+ &:focus
+ background-color: mix($firm, white, 80%)
+ outline: none
+
+ &:active
+ background-color: mix($firm, black, 85%)
+
+.ui-slider-range
+ background-color: $firm
+ border-radius: 30px 0 0 30px
+ display: block
+ height: 100%
+ position: absolute
+ z-index: 1
+
+.ui-slider-segment
+ background-color: mix(desaturate($base, 15%), white, 20%)
+ border-radius: 50%
+ float: left
+ height: 6px
+ margin: 3px -6px 0 0
+ width: 6px
+
+.ui-slider-value
+ float: right
+ font-weight: 500
+ margin-top: $progress-height
+
+ &.first
+ clear: left
+ float: left
+
+
diff --git a/source/assets/stylesheets/modules/_video.css.sass b/source/assets/stylesheets/modules/_video.css.sass
new file mode 100644
index 0000000..ecac973
--- /dev/null
+++ b/source/assets/stylesheets/modules/_video.css.sass
@@ -0,0 +1,451 @@
+//
+// Video Player
+// --------------------------------------------------
+
+// Module color variable
+$controls-color: mix($base, black, 75%)
+
+.video-js
+ background-color: transparent
+ // Otherwise you won't see controls in Fullscreen mode
+ margin-top: -95px
+ position: relative
+ padding: 0
+ font-size: 10px
+ vertical-align: middle
+ +border-radius(6px 6px 0 0)
+ -webkit-backface-visibility: hidden
+ -moz-backface-visibility: hidden
+ -ms-backface-visibility: hidden
+ backface-visibility: hidden
+
+.vjs-tech
+ position: absolute
+ top: 0
+ left: 0
+ width: 100%
+ height: 100%
+ +border-radius(6px 6px 0 0)
+
+::-moz-full-screen
+ position: absolute
+
+
+
+body.vjs-full-window
+ padding: 0
+ margin: 0
+ height: 100%
+ overflow-y: auto
+
+
+.video-js
+ &.vjs-fullscreen
+ position: fixed
+ overflow: hidden
+ z-index: 1000
+ left: 0
+ top: 0
+ bottom: 0
+ right: 0
+ width: 100% !important
+ height: 100% !important
+ _position: absolute
+
+ &:-webkit-full-screen
+ width: 100% !important
+ height: 100% !important
+
+
+.vjs-poster
+ margin: 0 auto
+ padding: 0
+ cursor: pointer
+ position: relative
+ width: 100%
+ max-height: 100%
+ +border-radius(6px 6px 0 0)
+
+
+.video-js
+ .vjs-text-track-display
+ text-align: center
+ position: absolute
+ bottom: 4em
+ left: 1em
+ right: 1em
+ font-family: $base-font-family
+
+ .vjs-text-track
+ display: none
+ color: $inverse
+ font-size: 1.4em
+ text-align: center
+ margin-bottom: .1em
+ background: #000
+ background: rgba(0,0,0,.5)
+
+ .vjs-subtitles
+ color: #fff
+
+ .vjs-captions
+ color: #fc6
+
+.vjs-tt-cue
+ display: block
+
+
+.vjs-fade-in
+ visibility: visible !important
+ opacity: 1 !important
+ +transition("visibility 0s linear 0s, opacity .3s linear")
+
+.vjs-fade-out
+ visibility: hidden !important
+ opacity: 0 !important
+ +transition("visibility 0s linear 1.5s, opacity 1.5s linear")
+
+
+.vjs-controls
+ position: absolute
+ bottom: -47px
+ left: 0
+ right: 0
+ margin: 0
+ padding: 0
+ height: 47px
+ color: $inverse
+ background: $controls-color
+ +border-radius(0 0 6px 6px)
+
+ &.vjs-fade-out
+ visibility: visible !important
+ opacity: 1 !important
+
+
+
+// Video player control general style
+.vjs-control
+ background-position: center center
+ background-repeat: no-repeat
+ position: relative
+ float: left
+ text-align: center
+ margin: 0
+ padding: 0
+ height: 18px
+ width: 18px
+
+ &:focus
+ outline: 0
+
+ div
+ background-position: center center
+ background-repeat: no-repeat
+
+
+
+// Control tooltip
+.vjs-control-text
+ border: 0
+ clip: rect(0 0 0 0)
+ height: 1px
+ margin: -1px
+ overflow: hidden
+ padding: 0
+ position: absolute
+ width: 1px
+
+
+.vjs-play-control
+ cursor: pointer !important
+ height: 47px
+ left: 0
+ position: absolute
+ top: 0
+ width: 58px
+
+ div
+ position: relative
+ height: 47px
+
+ &:before,
+ &:after
+ position: absolute
+ font-family: "Flat-UI-Icons"
+ color: $firm
+ font-size: 16px
+ top: 50%
+ left: 50%
+ margin: -0.55em 0 0 -0.5em
+ +transition("color .25s, opacity .25s")
+
+ &:after
+ content: "\e03b"
+
+ &:before
+ content: "\e03c"
+
+
+.vjs-paused .vjs-play-control
+ &:hover
+ div:before
+ color: mix($firm, black, 85%)
+
+
+ div
+ &:after
+ +opacity(0)
+
+ &:before
+ +opacity(100)
+
+
+
+.vjs-playing .vjs-play-control
+ &:hover
+ div:after
+ color: mix($firm, black, 85%)
+
+
+ div
+ &:after
+ +opacity(100)
+
+ &:before
+ +opacity(0)
+
+
+
+
+.vjs-rewind-control
+ width: 5em
+ cursor: pointer !important
+
+ div
+ width: 19px
+ height: 16px
+ background: none transparent
+ margin: .5em auto 0
+
+
+
+.vjs-mute-control
+ background: url(../images/video/volume-full.png) center -48px no-repeat
+ background-size: 16px 64px
+ cursor: pointer !important
+ position: absolute
+ right: 51px
+ top: 14px
+
+ &:hover,
+ &:focus
+ div
+ opacity: 0
+
+
+
+ // Muted state
+ &.vjs-vol-0
+ &,
+ div
+ background-image: url(../images/video/volume-off.png)
+
+
+ div
+ background: $controls-color url(../images/video/volume-full.png) no-repeat center 2px
+ background-size: 16px 64px
+ height: 18px
+ +transition(opacity .25s)
+
+
+
+.vjs-volume-control,
+.vjs-volume-level,
+.vjs-volume-handle,
+.vjs-volume-bar
+ display: none
+
+
+.vjs-progress-control
+ position: absolute
+ left: 60px
+ right: 180px
+ height: 12px
+ width: auto
+ top: 18px
+ background: mix($base, $inverse, 93%)
+ +border-radius(32px)
+
+
+.vjs-progress-holder
+ position: relative
+ cursor: pointer !important
+ padding: 0
+ margin: 0
+ height: 12px
+
+
+.vjs-play-progress,
+.vjs-load-progress
+ position: absolute
+ display: block
+ height: 12px
+ margin: 0
+ padding: 0
+ left: 0
+ top: 0
+ +border-radius(32px)
+
+
+.vjs-play-progress
+ background: $firm
+ left: -1px
+
+
+.vjs-load-progress
+ background: mix($base, $inverse, 20%)
+ +border-radius(32px 0 0 32px)
+
+ &[style*='100%'],
+ &[style*='99%']
+ +border-radius(32px)
+
+
+
+.vjs-seek-handle
+ background-color: mix($firm, black, 85%)
+ position: absolute
+ width: 18px
+ height: 18px
+ margin: -3px 0 0 1px
+ left: 0
+ top: 0
+ +transition(background-color .25s)
+ +border-radius(50%)
+
+ &[style*='95.']
+ margin-left: 3px
+
+ &[style='left: 0%']
+ margin-left: -2px
+
+ &:hover,
+ &:focus
+ background-color: mix($firm, black, 75%)
+
+ &:active
+ background-color: mix($firm, black, 65%)
+
+
+
+// Player time controls
+.vjs-time-controls
+ position: absolute
+ height: 20px
+ width: 50px
+ top: 16px
+ font: 300 13px $base-font-family
+
+
+.vjs-current-time
+ right: 128px
+ text-align: right
+
+
+.vjs-duration
+ color: mix($base, $inverse, 80%)
+ right: 69px
+ text-align: left
+
+
+.vjs-remaining-time
+ display: none
+
+
+.vjs-time-divider
+ color: mix($base, $inverse, 80%)
+ font-size: 14px
+ position: absolute
+ right: 121px
+ top: 15px
+
+
+.vjs-secondary-controls
+ float: right
+
+
+.vjs-fullscreen-control
+ background-image: url(../images/video/fullscreen.png)
+ background-position: center -47px
+ background-size: 15px 64px
+ cursor: pointer !important
+ position: absolute
+ right: 17px
+ top: 13px
+
+ &:hover,
+ &:focus
+ div
+ opacity: 0
+
+
+ div
+ height: 18px
+ background: url(../images/video/fullscreen.png) no-repeat center 2px
+ background-size: 15px 64px
+ +transition(opacity .25s)
+
+
+
+// Subtitles menu. Hide for no need by design.
+.vjs-menu-button
+ display: none !important
+
+
+// Video preloader
+=sharp-keyframes()
+ 0%
+ background: #e74c3c
+ +transform(rotate(0deg))
+ +border-radius(10px)
+
+ 50%
+ background: #ebedee
+ +border-radius(0)
+ +transform(rotate(180deg))
+
+ 100%
+ background: #e74c3c
+ +border-radius(10px)
+ +transform(rotate(360deg))
+
+
+@-webkit-keyframes sharp
+ +sharp-keyframes()
+
+
+@-moz-keyframes sharp
+ +sharp-keyframes()
+
+
+@-o-keyframes sharp
+ +sharp-keyframes()
+
+
+@keyframes sharp
+ +sharp-keyframes()
+
+
+.vjs-loading-spinner
+ background: #ebedee
+ display: none
+ height: 16px
+ left: 50%
+ margin: -8px 0 0 -8px
+ position: absolute
+ top: 50%
+ width: 16px
+ +animation(sharp 2s ease infinite)
+ +border-radius(10px)
+
diff --git a/source/layouts/layout.haml b/source/layouts/layout.haml
index 72238e1..1bb86d9 100755
--- a/source/layouts/layout.haml
+++ b/source/layouts/layout.haml
@@ -21,11 +21,8 @@
%link(rel="apple-touch-icon-precomposed" sizes="114x114" href="/assets/images/apple-touch-icon-114x114-precomposed.png")
/ Stylesheets (Don't change include order)
- = stylesheet_link_tag '//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800&subset=latin-ext',
- 'application',
+ = stylesheet_link_tag 'application',
'//netdna.bootstrapcdn.com/font-awesome/3.2.0/css/font-awesome.min.css'
-
-
= yield_content :head
%body{class: @body_class || 'page'}
@@ -34,6 +31,7 @@
/ Javascripts
= javascript_include_tag '//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js',
+ '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js',
'//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js',
'application'