"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l)
+}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write(""),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArray(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}b.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=b.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(b.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?b("").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{},y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(jn,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="error",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}});function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);while("*"===l[0])l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*"!==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)\?(?=&|$)|\?\?/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.noop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.text=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){var r=(Qn[t]||[]).concat(Qn["*"]),i=0,o=r.length;for(;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;for(;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.timer(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.cssHooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}b.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.isFunction(t)&&t};return r.duration=b.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in b.fx.speeds?b.fx.speeds[r.duration]:b.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){b.isFunction(r.old)&&r.old.call(this),r.queue&&b.dequeue(this,r.queue)},r},b.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},b.timers=[],b.fx=rr.prototype.init,b.fx.tick=function(){var e,n=b.timers,r=0;for(Xn=b.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||b.fx.stop(),Xn=t},b.fx.timer=function(e){e()&&b.timers.push(e)&&b.fx.start()},b.fx.interval=13,b.fx.start=function(){Un||(Un=setInterval(b.fx.tick,b.fx.interval))},b.fx.stop=function(){clearInterval(Un),Un=null},b.fx.speeds={slow:600,fast:200,_default:400},b.fx.step={},b.expr&&b.expr.filters&&(b.expr.filters.animated=function(e){return b.grep(b.timers,function(t){return e===t.elem}).length}),b.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){b.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,b.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},b.offset={setOffset:function(e,t,n){var r=b.css(e,"position");"static"===r&&(e.style.position="relative");var i=b(e),o=i.offset(),a=b.css(e,"top"),s=b.css(e,"left"),u=("absolute"===r||"fixed"===r)&&b.inArray("auto",[a,s])>-1,l={},c={},p,f;u?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),b.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(l.top=t.top-o.top+p),null!=t.left&&(l.left=t.left-o.left+f),"using"in t?t.using.call(e,l):i.css(l)}},b.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===b.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),b.nodeName(e[0],"html")||(n=e.offset()),n.top+=b.css(e[0],"borderTopWidth",!0),n.left+=b.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-b.css(r,"marginTop",!0),left:t.left-n.left-b.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||o.documentElement;while(e&&!b.nodeName(e,"html")&&"static"===b.css(e,"position"))e=e.offsetParent;return e||o.documentElement})}}),b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);b.fn[e]=function(i){return b.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?b(a).scrollLeft():o,r?o:b(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}b.each({Height:"height",Width:"width"},function(e,n){b.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){b.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return b.access(this,function(n,r,i){var o;return b.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?b.css(n,r,s):b.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=b,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return b})})(window);
\ No newline at end of file
diff --git a/theme/less/bootstrap-2.3.2/accordion.less b/theme/less/bootstrap-2.3.2/accordion.less
new file mode 100755
index 0000000..d63523b
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/accordion.less
@@ -0,0 +1,34 @@
+//
+// Accordion
+// --------------------------------------------------
+
+
+// Parent container
+.accordion {
+ margin-bottom: @baseLineHeight;
+}
+
+// Group == heading + body
+.accordion-group {
+ margin-bottom: 2px;
+ border: 1px solid #e5e5e5;
+ .border-radius(@baseBorderRadius);
+}
+.accordion-heading {
+ border-bottom: 0;
+}
+.accordion-heading .accordion-toggle {
+ display: block;
+ padding: 8px 15px;
+}
+
+// General toggle styles
+.accordion-toggle {
+ cursor: pointer;
+}
+
+// Inner needs the styles because you can't animate properly with any styles on the element
+.accordion-inner {
+ padding: 9px 15px;
+ border-top: 1px solid #e5e5e5;
+}
diff --git a/theme/less/bootstrap-2.3.2/alerts.less b/theme/less/bootstrap-2.3.2/alerts.less
new file mode 100755
index 0000000..0116b19
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/alerts.less
@@ -0,0 +1,79 @@
+//
+// Alerts
+// --------------------------------------------------
+
+
+// Base styles
+// -------------------------
+
+.alert {
+ padding: 8px 35px 8px 14px;
+ margin-bottom: @baseLineHeight;
+ text-shadow: 0 1px 0 rgba(255,255,255,.5);
+ background-color: @warningBackground;
+ border: 1px solid @warningBorder;
+ .border-radius(@baseBorderRadius);
+}
+.alert,
+.alert h4 {
+ // Specified for the h4 to prevent conflicts of changing @headingsColor
+ color: @warningText;
+}
+.alert h4 {
+ margin: 0;
+}
+
+// Adjust close link position
+.alert .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ line-height: @baseLineHeight;
+}
+
+
+// Alternate styles
+// -------------------------
+
+.alert-success {
+ background-color: @successBackground;
+ border-color: @successBorder;
+ color: @successText;
+}
+.alert-success h4 {
+ color: @successText;
+}
+.alert-danger,
+.alert-error {
+ background-color: @errorBackground;
+ border-color: @errorBorder;
+ color: @errorText;
+}
+.alert-danger h4,
+.alert-error h4 {
+ color: @errorText;
+}
+.alert-info {
+ background-color: @infoBackground;
+ border-color: @infoBorder;
+ color: @infoText;
+}
+.alert-info h4 {
+ color: @infoText;
+}
+
+
+// Block alerts
+// -------------------------
+
+.alert-block {
+ padding-top: 14px;
+ padding-bottom: 14px;
+}
+.alert-block > p,
+.alert-block > ul {
+ margin-bottom: 0;
+}
+.alert-block p + p {
+ margin-top: 5px;
+}
diff --git a/theme/less/bootstrap-2.3.2/bootstrap.less b/theme/less/bootstrap-2.3.2/bootstrap.less
new file mode 100755
index 0000000..d4ebf37
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/bootstrap.less
@@ -0,0 +1,63 @@
+/*!
+ * Bootstrap v2.3.2
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+
+// Core variables and mixins
+@import "variables.less"; // Modify this for custom colors, font-sizes, etc
+@import "mixins.less";
+
+// CSS Reset
+@import "reset.less";
+
+// Grid system and page structure
+@import "scaffolding.less";
+@import "grid.less";
+@import "layouts.less";
+
+// Base CSS
+@import "type.less";
+@import "code.less";
+@import "forms.less";
+@import "tables.less";
+
+// Components: common
+@import "sprites.less";
+@import "dropdowns.less";
+@import "wells.less";
+@import "component-animations.less";
+@import "close.less";
+
+// Components: Buttons & Alerts
+@import "buttons.less";
+@import "button-groups.less";
+@import "alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less
+
+// Components: Nav
+@import "navs.less";
+@import "navbar.less";
+@import "breadcrumbs.less";
+@import "pagination.less";
+@import "pager.less";
+
+// Components: Popovers
+@import "modals.less";
+@import "tooltip.less";
+@import "popovers.less";
+
+// Components: Misc
+@import "thumbnails.less";
+@import "media.less";
+@import "labels-badges.less";
+@import "progress-bars.less";
+@import "accordion.less";
+@import "carousel.less";
+@import "hero-unit.less";
+
+// Utility classes
+@import "utilities.less"; // Has to be last to override when necessary
diff --git a/theme/less/bootstrap-2.3.2/breadcrumbs.less b/theme/less/bootstrap-2.3.2/breadcrumbs.less
new file mode 100755
index 0000000..f753df6
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/breadcrumbs.less
@@ -0,0 +1,24 @@
+//
+// Breadcrumbs
+// --------------------------------------------------
+
+
+.breadcrumb {
+ padding: 8px 15px;
+ margin: 0 0 @baseLineHeight;
+ list-style: none;
+ background-color: #f5f5f5;
+ .border-radius(@baseBorderRadius);
+ > li {
+ display: inline-block;
+ .ie7-inline-block();
+ text-shadow: 0 1px 0 @white;
+ > .divider {
+ padding: 0 5px;
+ color: #ccc;
+ }
+ }
+ > .active {
+ color: @grayLight;
+ }
+}
diff --git a/theme/less/bootstrap-2.3.2/button-groups.less b/theme/less/bootstrap-2.3.2/button-groups.less
new file mode 100755
index 0000000..55cdc60
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/button-groups.less
@@ -0,0 +1,229 @@
+//
+// Button groups
+// --------------------------------------------------
+
+
+// Make the div behave like a button
+.btn-group {
+ position: relative;
+ display: inline-block;
+ .ie7-inline-block();
+ font-size: 0; // remove as part 1 of font-size inline-block hack
+ vertical-align: middle; // match .btn alignment given font-size hack above
+ white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page)
+ .ie7-restore-left-whitespace();
+}
+
+// Space out series of button groups
+.btn-group + .btn-group {
+ margin-left: 5px;
+}
+
+// Optional: Group multiple button groups together for a toolbar
+.btn-toolbar {
+ font-size: 0; // Hack to remove whitespace that results from using inline-block
+ margin-top: @baseLineHeight / 2;
+ margin-bottom: @baseLineHeight / 2;
+ > .btn + .btn,
+ > .btn-group + .btn,
+ > .btn + .btn-group {
+ margin-left: 5px;
+ }
+}
+
+// Float them, remove border radius, then re-add to first and last elements
+.btn-group > .btn {
+ position: relative;
+ .border-radius(0);
+}
+.btn-group > .btn + .btn {
+ margin-left: -1px;
+}
+.btn-group > .btn,
+.btn-group > .dropdown-menu,
+.btn-group > .popover {
+ font-size: @baseFontSize; // redeclare as part 2 of font-size inline-block hack
+}
+
+// Reset fonts for other sizes
+.btn-group > .btn-mini {
+ font-size: @fontSizeMini;
+}
+.btn-group > .btn-small {
+ font-size: @fontSizeSmall;
+}
+.btn-group > .btn-large {
+ font-size: @fontSizeLarge;
+}
+
+// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
+.btn-group > .btn:first-child {
+ margin-left: 0;
+ .border-top-left-radius(@baseBorderRadius);
+ .border-bottom-left-radius(@baseBorderRadius);
+}
+// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
+.btn-group > .btn:last-child,
+.btn-group > .dropdown-toggle {
+ .border-top-right-radius(@baseBorderRadius);
+ .border-bottom-right-radius(@baseBorderRadius);
+}
+// Reset corners for large buttons
+.btn-group > .btn.large:first-child {
+ margin-left: 0;
+ .border-top-left-radius(@borderRadiusLarge);
+ .border-bottom-left-radius(@borderRadiusLarge);
+}
+.btn-group > .btn.large:last-child,
+.btn-group > .large.dropdown-toggle {
+ .border-top-right-radius(@borderRadiusLarge);
+ .border-bottom-right-radius(@borderRadiusLarge);
+}
+
+// On hover/focus/active, bring the proper btn to front
+.btn-group > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group > .btn:active,
+.btn-group > .btn.active {
+ z-index: 2;
+}
+
+// On active and open, don't show outline
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+
+
+
+// Split button dropdowns
+// ----------------------
+
+// Give the line between buttons some depth
+.btn-group > .btn + .dropdown-toggle {
+ padding-left: 8px;
+ padding-right: 8px;
+ .box-shadow(~"inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
+ *padding-top: 5px;
+ *padding-bottom: 5px;
+}
+.btn-group > .btn-mini + .dropdown-toggle {
+ padding-left: 5px;
+ padding-right: 5px;
+ *padding-top: 2px;
+ *padding-bottom: 2px;
+}
+.btn-group > .btn-small + .dropdown-toggle {
+ *padding-top: 5px;
+ *padding-bottom: 4px;
+}
+.btn-group > .btn-large + .dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px;
+ *padding-top: 7px;
+ *padding-bottom: 7px;
+}
+
+.btn-group.open {
+
+ // The clickable button for toggling the menu
+ // Remove the gradient and set the same inset shadow as the :active state
+ .dropdown-toggle {
+ background-image: none;
+ .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)");
+ }
+
+ // Keep the hover's background when dropdown is open
+ .btn.dropdown-toggle {
+ background-color: @btnBackgroundHighlight;
+ }
+ .btn-primary.dropdown-toggle {
+ background-color: @btnPrimaryBackgroundHighlight;
+ }
+ .btn-warning.dropdown-toggle {
+ background-color: @btnWarningBackgroundHighlight;
+ }
+ .btn-danger.dropdown-toggle {
+ background-color: @btnDangerBackgroundHighlight;
+ }
+ .btn-success.dropdown-toggle {
+ background-color: @btnSuccessBackgroundHighlight;
+ }
+ .btn-info.dropdown-toggle {
+ background-color: @btnInfoBackgroundHighlight;
+ }
+ .btn-inverse.dropdown-toggle {
+ background-color: @btnInverseBackgroundHighlight;
+ }
+}
+
+
+// Reposition the caret
+.btn .caret {
+ margin-top: 8px;
+ margin-left: 0;
+}
+// Carets in other button sizes
+.btn-large .caret {
+ margin-top: 6px;
+}
+.btn-large .caret {
+ border-left-width: 5px;
+ border-right-width: 5px;
+ border-top-width: 5px;
+}
+.btn-mini .caret,
+.btn-small .caret {
+ margin-top: 8px;
+}
+// Upside down carets for .dropup
+.dropup .btn-large .caret {
+ border-bottom-width: 5px;
+}
+
+
+
+// Account for other colors
+.btn-primary,
+.btn-warning,
+.btn-danger,
+.btn-info,
+.btn-success,
+.btn-inverse {
+ .caret {
+ border-top-color: @white;
+ border-bottom-color: @white;
+ }
+}
+
+
+
+// Vertical button groups
+// ----------------------
+
+.btn-group-vertical {
+ display: inline-block; // makes buttons only take up the width they need
+ .ie7-inline-block();
+}
+.btn-group-vertical > .btn {
+ display: block;
+ float: none;
+ max-width: 100%;
+ .border-radius(0);
+}
+.btn-group-vertical > .btn + .btn {
+ margin-left: 0;
+ margin-top: -1px;
+}
+.btn-group-vertical > .btn:first-child {
+ .border-radius(@baseBorderRadius @baseBorderRadius 0 0);
+}
+.btn-group-vertical > .btn:last-child {
+ .border-radius(0 0 @baseBorderRadius @baseBorderRadius);
+}
+.btn-group-vertical > .btn-large:first-child {
+ .border-radius(@borderRadiusLarge @borderRadiusLarge 0 0);
+}
+.btn-group-vertical > .btn-large:last-child {
+ .border-radius(0 0 @borderRadiusLarge @borderRadiusLarge);
+}
diff --git a/theme/less/bootstrap-2.3.2/buttons.less b/theme/less/bootstrap-2.3.2/buttons.less
new file mode 100755
index 0000000..4cd4d86
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/buttons.less
@@ -0,0 +1,228 @@
+//
+// Buttons
+// --------------------------------------------------
+
+
+// Base styles
+// --------------------------------------------------
+
+// Core
+.btn {
+ display: inline-block;
+ .ie7-inline-block();
+ padding: 4px 12px;
+ margin-bottom: 0; // For input.btn
+ font-size: @baseFontSize;
+ line-height: @baseLineHeight;
+ text-align: center;
+ vertical-align: middle;
+ cursor: pointer;
+ .buttonBackground(@btnBackground, @btnBackgroundHighlight, @grayDark, 0 1px 1px rgba(255,255,255,.75));
+ border: 1px solid @btnBorder;
+ *border: 0; // Remove the border to prevent IE7's black border on input:focus
+ border-bottom-color: darken(@btnBorder, 10%);
+ .border-radius(@baseBorderRadius);
+ .ie7-restore-left-whitespace(); // Give IE7 some love
+ .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
+
+ // Hover/focus state
+ &:hover,
+ &:focus {
+ color: @grayDark;
+ text-decoration: none;
+ background-position: 0 -15px;
+
+ // transition is only when going to hover/focus, otherwise the background
+ // behind the gradient (there for IE<=9 fallback) gets mismatched
+ .transition(background-position .1s linear);
+ }
+
+ // Focus state for keyboard and accessibility
+ &:focus {
+ .tab-focus();
+ }
+
+ // Active state
+ &.active,
+ &:active {
+ background-image: none;
+ outline: 0;
+ .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)");
+ }
+
+ // Disabled state
+ &.disabled,
+ &[disabled] {
+ cursor: default;
+ background-image: none;
+ .opacity(65);
+ .box-shadow(none);
+ }
+
+}
+
+
+
+// Button Sizes
+// --------------------------------------------------
+
+// Large
+.btn-large {
+ padding: @paddingLarge;
+ font-size: @fontSizeLarge;
+ .border-radius(@borderRadiusLarge);
+}
+.btn-large [class^="icon-"],
+.btn-large [class*=" icon-"] {
+ margin-top: 4px;
+}
+
+// Small
+.btn-small {
+ padding: @paddingSmall;
+ font-size: @fontSizeSmall;
+ .border-radius(@borderRadiusSmall);
+}
+.btn-small [class^="icon-"],
+.btn-small [class*=" icon-"] {
+ margin-top: 0;
+}
+.btn-mini [class^="icon-"],
+.btn-mini [class*=" icon-"] {
+ margin-top: -1px;
+}
+
+// Mini
+.btn-mini {
+ padding: @paddingMini;
+ font-size: @fontSizeMini;
+ .border-radius(@borderRadiusSmall);
+}
+
+
+// Block button
+// -------------------------
+
+.btn-block {
+ display: block;
+ width: 100%;
+ padding-left: 0;
+ padding-right: 0;
+ .box-sizing(border-box);
+}
+
+// Vertically space out multiple block buttons
+.btn-block + .btn-block {
+ margin-top: 5px;
+}
+
+// Specificity overrides
+input[type="submit"],
+input[type="reset"],
+input[type="button"] {
+ &.btn-block {
+ width: 100%;
+ }
+}
+
+
+
+// Alternate buttons
+// --------------------------------------------------
+
+// Provide *some* extra contrast for those who can get it
+.btn-primary.active,
+.btn-warning.active,
+.btn-danger.active,
+.btn-success.active,
+.btn-info.active,
+.btn-inverse.active {
+ color: rgba(255,255,255,.75);
+}
+
+// Set the backgrounds
+// -------------------------
+.btn-primary {
+ .buttonBackground(@btnPrimaryBackground, @btnPrimaryBackgroundHighlight);
+}
+// Warning appears are orange
+.btn-warning {
+ .buttonBackground(@btnWarningBackground, @btnWarningBackgroundHighlight);
+}
+// Danger and error appear as red
+.btn-danger {
+ .buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight);
+}
+// Success appears as green
+.btn-success {
+ .buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight);
+}
+// Info appears as a neutral blue
+.btn-info {
+ .buttonBackground(@btnInfoBackground, @btnInfoBackgroundHighlight);
+}
+// Inverse appears as dark gray
+.btn-inverse {
+ .buttonBackground(@btnInverseBackground, @btnInverseBackgroundHighlight);
+}
+
+
+// Cross-browser Jank
+// --------------------------------------------------
+
+button.btn,
+input[type="submit"].btn {
+
+ // Firefox 3.6 only I believe
+ &::-moz-focus-inner {
+ padding: 0;
+ border: 0;
+ }
+
+ // IE7 has some default padding on button controls
+ *padding-top: 3px;
+ *padding-bottom: 3px;
+
+ &.btn-large {
+ *padding-top: 7px;
+ *padding-bottom: 7px;
+ }
+ &.btn-small {
+ *padding-top: 3px;
+ *padding-bottom: 3px;
+ }
+ &.btn-mini {
+ *padding-top: 1px;
+ *padding-bottom: 1px;
+ }
+}
+
+
+// Link buttons
+// --------------------------------------------------
+
+// Make a button look and behave like a link
+.btn-link,
+.btn-link:active,
+.btn-link[disabled] {
+ background-color: transparent;
+ background-image: none;
+ .box-shadow(none);
+}
+.btn-link {
+ border-color: transparent;
+ cursor: pointer;
+ color: @linkColor;
+ .border-radius(0);
+}
+.btn-link:hover,
+.btn-link:focus {
+ color: @linkColorHover;
+ text-decoration: underline;
+ background-color: transparent;
+}
+.btn-link[disabled]:hover,
+.btn-link[disabled]:focus {
+ color: @grayDark;
+ text-decoration: none;
+}
diff --git a/theme/less/bootstrap-2.3.2/carousel.less b/theme/less/bootstrap-2.3.2/carousel.less
new file mode 100755
index 0000000..55bc050
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/carousel.less
@@ -0,0 +1,158 @@
+//
+// Carousel
+// --------------------------------------------------
+
+
+.carousel {
+ position: relative;
+ margin-bottom: @baseLineHeight;
+ line-height: 1;
+}
+
+.carousel-inner {
+ overflow: hidden;
+ width: 100%;
+ position: relative;
+}
+
+.carousel-inner {
+
+ > .item {
+ display: none;
+ position: relative;
+ .transition(.6s ease-in-out left);
+
+ // Account for jankitude on images
+ > img,
+ > a > img {
+ display: block;
+ line-height: 1;
+ }
+ }
+
+ > .active,
+ > .next,
+ > .prev { display: block; }
+
+ > .active {
+ left: 0;
+ }
+
+ > .next,
+ > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+ }
+
+ > .next {
+ left: 100%;
+ }
+ > .prev {
+ left: -100%;
+ }
+ > .next.left,
+ > .prev.right {
+ left: 0;
+ }
+
+ > .active.left {
+ left: -100%;
+ }
+ > .active.right {
+ left: 100%;
+ }
+
+}
+
+// Left/right controls for nav
+// ---------------------------
+
+.carousel-control {
+ position: absolute;
+ top: 40%;
+ left: 15px;
+ width: 40px;
+ height: 40px;
+ margin-top: -20px;
+ font-size: 60px;
+ font-weight: 100;
+ line-height: 30px;
+ color: @white;
+ text-align: center;
+ background: @grayDarker;
+ border: 3px solid @white;
+ .border-radius(23px);
+ .opacity(50);
+
+ // we can't have this transition here
+ // because webkit cancels the carousel
+ // animation if you trip this while
+ // in the middle of another animation
+ // ;_;
+ // .transition(opacity .2s linear);
+
+ // Reposition the right one
+ &.right {
+ left: auto;
+ right: 15px;
+ }
+
+ // Hover/focus state
+ &:hover,
+ &:focus {
+ color: @white;
+ text-decoration: none;
+ .opacity(90);
+ }
+}
+
+// Carousel indicator pips
+// -----------------------------
+.carousel-indicators {
+ position: absolute;
+ top: 15px;
+ right: 15px;
+ z-index: 5;
+ margin: 0;
+ list-style: none;
+
+ li {
+ display: block;
+ float: left;
+ width: 10px;
+ height: 10px;
+ margin-left: 5px;
+ text-indent: -999px;
+ background-color: #ccc;
+ background-color: rgba(255,255,255,.25);
+ border-radius: 5px;
+ }
+ .active {
+ background-color: #fff;
+ }
+}
+
+// Caption for text below images
+// -----------------------------
+
+.carousel-caption {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ padding: 15px;
+ background: @grayDark;
+ background: rgba(0,0,0,.75);
+}
+.carousel-caption h4,
+.carousel-caption p {
+ color: @white;
+ line-height: @baseLineHeight;
+}
+.carousel-caption h4 {
+ margin: 0 0 5px;
+}
+.carousel-caption p {
+ margin-bottom: 0;
+}
diff --git a/theme/less/bootstrap-2.3.2/close.less b/theme/less/bootstrap-2.3.2/close.less
new file mode 100755
index 0000000..4c626bd
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/close.less
@@ -0,0 +1,32 @@
+//
+// Close icons
+// --------------------------------------------------
+
+
+.close {
+ float: right;
+ font-size: 20px;
+ font-weight: bold;
+ line-height: @baseLineHeight;
+ color: @black;
+ text-shadow: 0 1px 0 rgba(255,255,255,1);
+ .opacity(20);
+ &:hover,
+ &:focus {
+ color: @black;
+ text-decoration: none;
+ cursor: pointer;
+ .opacity(40);
+ }
+}
+
+// Additional properties for button version
+// iOS requires the button element instead of an anchor tag.
+// If you want the anchor version, it requires `href="#"`.
+button.close {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+}
\ No newline at end of file
diff --git a/theme/less/bootstrap-2.3.2/code.less b/theme/less/bootstrap-2.3.2/code.less
new file mode 100755
index 0000000..266a926
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/code.less
@@ -0,0 +1,61 @@
+//
+// Code (inline and blocK)
+// --------------------------------------------------
+
+
+// Inline and block code styles
+code,
+pre {
+ padding: 0 3px 2px;
+ #font > #family > .monospace;
+ font-size: @baseFontSize - 2;
+ color: @grayDark;
+ .border-radius(3px);
+}
+
+// Inline code
+code {
+ padding: 2px 4px;
+ color: #d14;
+ background-color: #f7f7f9;
+ border: 1px solid #e1e1e8;
+ white-space: nowrap;
+}
+
+// Blocks of code
+pre {
+ display: block;
+ padding: (@baseLineHeight - 1) / 2;
+ margin: 0 0 @baseLineHeight / 2;
+ font-size: @baseFontSize - 1; // 14px to 13px
+ line-height: @baseLineHeight;
+ word-break: break-all;
+ word-wrap: break-word;
+ white-space: pre;
+ white-space: pre-wrap;
+ background-color: #f5f5f5;
+ border: 1px solid #ccc; // fallback for IE7-8
+ border: 1px solid rgba(0,0,0,.15);
+ .border-radius(@baseBorderRadius);
+
+ // Make prettyprint styles more spaced out for readability
+ &.prettyprint {
+ margin-bottom: @baseLineHeight;
+ }
+
+ // Account for some code outputs that place code tags in pre tags
+ code {
+ padding: 0;
+ color: inherit;
+ white-space: pre;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border: 0;
+ }
+}
+
+// Enable scrollable blocks of code
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
\ No newline at end of file
diff --git a/theme/less/bootstrap-2.3.2/component-animations.less b/theme/less/bootstrap-2.3.2/component-animations.less
new file mode 100755
index 0000000..d614263
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/component-animations.less
@@ -0,0 +1,22 @@
+//
+// Component animations
+// --------------------------------------------------
+
+
+.fade {
+ opacity: 0;
+ .transition(opacity .15s linear);
+ &.in {
+ opacity: 1;
+ }
+}
+
+.collapse {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ .transition(height .35s ease);
+ &.in {
+ height: auto;
+ }
+}
diff --git a/theme/less/bootstrap-2.3.2/dropdowns.less b/theme/less/bootstrap-2.3.2/dropdowns.less
new file mode 100755
index 0000000..9e47b47
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/dropdowns.less
@@ -0,0 +1,248 @@
+//
+// Dropdown menus
+// --------------------------------------------------
+
+
+// Use the .menu class on any
element within the topbar or ul.tabs and you'll get some superfancy dropdowns
+.dropup,
+.dropdown {
+ position: relative;
+}
+.dropdown-toggle {
+ // The caret makes the toggle a bit too tall in IE7
+ *margin-bottom: -3px;
+}
+.dropdown-toggle:active,
+.open .dropdown-toggle {
+ outline: 0;
+}
+
+// Dropdown arrow/caret
+// --------------------
+.caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ vertical-align: top;
+ border-top: 4px solid @black;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent;
+ content: "";
+}
+
+// Place the caret
+.dropdown .caret {
+ margin-top: 8px;
+ margin-left: 2px;
+}
+
+// The dropdown menu (ul)
+// ----------------------
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: @zindexDropdown;
+ display: none; // none by default, but block on "open" of the menu
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0; // override default ul
+ list-style: none;
+ background-color: @dropdownBackground;
+ border: 1px solid #ccc; // Fallback for IE7-8
+ border: 1px solid @dropdownBorder;
+ *border-right-width: 2px;
+ *border-bottom-width: 2px;
+ .border-radius(6px);
+ .box-shadow(0 5px 10px rgba(0,0,0,.2));
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
+
+ // Aligns the dropdown menu to right
+ &.pull-right {
+ right: 0;
+ left: auto;
+ }
+
+ // Dividers (basically an hr) within the dropdown
+ .divider {
+ .nav-divider(@dropdownDividerTop, @dropdownDividerBottom);
+ }
+
+ // Links within the dropdown menu
+ > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: @baseLineHeight;
+ color: @dropdownLinkColor;
+ white-space: nowrap;
+ }
+}
+
+// Hover/Focus state
+// -----------
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus,
+.dropdown-submenu:hover > a,
+.dropdown-submenu:focus > a {
+ text-decoration: none;
+ color: @dropdownLinkColorHover;
+ #gradient > .vertical(@dropdownLinkBackgroundHover, darken(@dropdownLinkBackgroundHover, 5%));
+}
+
+// Active state
+// ------------
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ color: @dropdownLinkColorActive;
+ text-decoration: none;
+ outline: 0;
+ #gradient > .vertical(@dropdownLinkBackgroundActive, darken(@dropdownLinkBackgroundActive, 5%));
+}
+
+// Disabled state
+// --------------
+// Gray out text and ensure the hover/focus state remains gray
+.dropdown-menu > .disabled > a,
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ color: @grayLight;
+}
+// Nuke hover/focus effects
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none; // Remove CSS gradient
+ .reset-filter();
+ cursor: default;
+}
+
+// Open state for the dropdown
+// ---------------------------
+.open {
+ // IE7's z-index only goes to the nearest positioned ancestor, which would
+ // make the menu appear below buttons that appeared later on the page
+ *z-index: @zindexDropdown;
+
+ & > .dropdown-menu {
+ display: block;
+ }
+}
+
+// Backdrop to catch body clicks on mobile, etc.
+// ---------------------------
+.dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: @zindexDropdown - 10;
+}
+
+// Right aligned dropdowns
+// ---------------------------
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+
+// Allow for dropdowns to go bottom up (aka, dropup-menu)
+// ------------------------------------------------------
+// Just add .dropup after the standard .dropdown class and you're set, bro.
+// TODO: abstract this so that the navbar fixed styles are not placed here?
+.dropup,
+.navbar-fixed-bottom .dropdown {
+ // Reverse the caret
+ .caret {
+ border-top: 0;
+ border-bottom: 4px solid @black;
+ content: "";
+ }
+ // Different positioning for bottom up menu
+ .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 1px;
+ }
+}
+
+// Sub menus
+// ---------------------------
+.dropdown-submenu {
+ position: relative;
+}
+// Default dropdowns
+.dropdown-submenu > .dropdown-menu {
+ top: 0;
+ left: 100%;
+ margin-top: -6px;
+ margin-left: -1px;
+ .border-radius(0 6px 6px 6px);
+}
+.dropdown-submenu:hover > .dropdown-menu {
+ display: block;
+}
+
+// Dropups
+.dropup .dropdown-submenu > .dropdown-menu {
+ top: auto;
+ bottom: 0;
+ margin-top: 0;
+ margin-bottom: -2px;
+ .border-radius(5px 5px 5px 0);
+}
+
+// Caret to indicate there is a submenu
+.dropdown-submenu > a:after {
+ display: block;
+ content: " ";
+ float: right;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+ border-width: 5px 0 5px 5px;
+ border-left-color: darken(@dropdownBackground, 20%);
+ margin-top: 5px;
+ margin-right: -10px;
+}
+.dropdown-submenu:hover > a:after {
+ border-left-color: @dropdownLinkColorHover;
+}
+
+// Left aligned submenus
+.dropdown-submenu.pull-left {
+ // Undo the float
+ // Yes, this is awkward since .pull-left adds a float, but it sticks to our conventions elsewhere.
+ float: none;
+
+ // Positioning the submenu
+ > .dropdown-menu {
+ left: -100%;
+ margin-left: 10px;
+ .border-radius(6px 0 6px 6px);
+ }
+}
+
+// Tweak nav headers
+// -----------------
+// Increase padding from 15px to 20px on sides
+.dropdown .dropdown-menu .nav-header {
+ padding-left: 20px;
+ padding-right: 20px;
+}
+
+// Typeahead
+// ---------
+.typeahead {
+ z-index: 1051;
+ margin-top: 2px; // give it some space to breathe
+ .border-radius(@baseBorderRadius);
+}
diff --git a/theme/less/bootstrap-2.3.2/forms.less b/theme/less/bootstrap-2.3.2/forms.less
new file mode 100755
index 0000000..06767bd
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/forms.less
@@ -0,0 +1,690 @@
+//
+// Forms
+// --------------------------------------------------
+
+
+// GENERAL STYLES
+// --------------
+
+// Make all forms have space below them
+form {
+ margin: 0 0 @baseLineHeight;
+}
+
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+
+// Groups of fields with labels on top (legends)
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: @baseLineHeight;
+ font-size: @baseFontSize * 1.5;
+ line-height: @baseLineHeight * 2;
+ color: @grayDark;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5;
+
+ // Small
+ small {
+ font-size: @baseLineHeight * .75;
+ color: @grayLight;
+ }
+}
+
+// Set font for forms
+label,
+input,
+button,
+select,
+textarea {
+ #font > .shorthand(@baseFontSize,normal,@baseLineHeight); // Set size, weight, line-height here
+}
+input,
+button,
+select,
+textarea {
+ font-family: @baseFontFamily; // And only set font-family here for those that need it (note the missing label element)
+}
+
+// Identify controls by their labels
+label {
+ display: block;
+ margin-bottom: 5px;
+}
+
+// Form controls
+// -------------------------
+
+// Shared size and type resets
+select,
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
+.uneditable-input {
+ display: inline-block;
+ height: @baseLineHeight;
+ padding: 4px 6px;
+ margin-bottom: @baseLineHeight / 2;
+ font-size: @baseFontSize;
+ line-height: @baseLineHeight;
+ color: @gray;
+ .border-radius(@inputBorderRadius);
+ vertical-align: middle;
+}
+
+// Reset appearance properties for textual inputs and textarea
+// Declare width for legacy (can't be on input[type=*] selectors or it's too specific)
+input,
+textarea,
+.uneditable-input {
+ width: 206px; // plus 12px padding and 2px border
+}
+// Reset height since textareas have rows
+textarea {
+ height: auto;
+}
+// Everything else
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
+.uneditable-input {
+ background-color: @inputBackground;
+ border: 1px solid @inputBorder;
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
+ .transition(~"border linear .2s, box-shadow linear .2s");
+
+ // Focus state
+ &:focus {
+ border-color: rgba(82,168,236,.8);
+ outline: 0;
+ outline: thin dotted \9; /* IE6-9 */
+ .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
+ }
+}
+
+// Position radios and checkboxes better
+input[type="radio"],
+input[type="checkbox"] {
+ margin: 4px 0 0;
+ *margin-top: 0; /* IE7 */
+ margin-top: 1px \9; /* IE8-9 */
+ line-height: normal;
+}
+
+// Reset width of input images, buttons, radios, checkboxes
+input[type="file"],
+input[type="image"],
+input[type="submit"],
+input[type="reset"],
+input[type="button"],
+input[type="radio"],
+input[type="checkbox"] {
+ width: auto; // Override of generic input selector
+}
+
+// Set the height of select and file controls to match text inputs
+select,
+input[type="file"] {
+ height: @inputHeight; /* In IE7, the height of the select element cannot be changed by height, only font-size */
+ *margin-top: 4px; /* For IE7, add top margin to align select with labels */
+ line-height: @inputHeight;
+}
+
+// Make select elements obey height by applying a border
+select {
+ width: 220px; // default input width + 10px of padding that doesn't get applied
+ border: 1px solid @inputBorder;
+ background-color: @inputBackground; // Chrome on Linux and Mobile Safari need background-color
+}
+
+// Make multiple select elements height not fixed
+select[multiple],
+select[size] {
+ height: auto;
+}
+
+// Focus for select, file, radio, and checkbox
+select:focus,
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+ .tab-focus();
+}
+
+
+// Uneditable inputs
+// -------------------------
+
+// Make uneditable inputs look inactive
+.uneditable-input,
+.uneditable-textarea {
+ color: @grayLight;
+ background-color: darken(@inputBackground, 1%);
+ border-color: @inputBorder;
+ .box-shadow(inset 0 1px 2px rgba(0,0,0,.025));
+ cursor: not-allowed;
+}
+
+// For text that needs to appear as an input but should not be an input
+.uneditable-input {
+ overflow: hidden; // prevent text from wrapping, but still cut it off like an input does
+ white-space: nowrap;
+}
+
+// Make uneditable textareas behave like a textarea
+.uneditable-textarea {
+ width: auto;
+ height: auto;
+}
+
+
+// Placeholder
+// -------------------------
+
+// Placeholder text gets special styles because when browsers invalidate entire lines if it doesn't understand a selector
+input,
+textarea {
+ .placeholder();
+}
+
+
+// CHECKBOXES & RADIOS
+// -------------------
+
+// Indent the labels to position radios/checkboxes as hanging
+.radio,
+.checkbox {
+ min-height: @baseLineHeight; // clear the floating input if there is no label text
+ padding-left: 20px;
+}
+.radio input[type="radio"],
+.checkbox input[type="checkbox"] {
+ float: left;
+ margin-left: -20px;
+}
+
+// Move the options list down to align with labels
+.controls > .radio:first-child,
+.controls > .checkbox:first-child {
+ padding-top: 5px; // has to be padding because margin collaspes
+}
+
+// Radios and checkboxes on same line
+// TODO v3: Convert .inline to .control-inline
+.radio.inline,
+.checkbox.inline {
+ display: inline-block;
+ padding-top: 5px;
+ margin-bottom: 0;
+ vertical-align: middle;
+}
+.radio.inline + .radio.inline,
+.checkbox.inline + .checkbox.inline {
+ margin-left: 10px; // space out consecutive inline controls
+}
+
+
+
+// INPUT SIZES
+// -----------
+
+// General classes for quick sizes
+.input-mini { width: 60px; }
+.input-small { width: 90px; }
+.input-medium { width: 150px; }
+.input-large { width: 210px; }
+.input-xlarge { width: 270px; }
+.input-xxlarge { width: 530px; }
+
+// Grid style input sizes
+input[class*="span"],
+select[class*="span"],
+textarea[class*="span"],
+.uneditable-input[class*="span"],
+// Redeclare since the fluid row class is more specific
+.row-fluid input[class*="span"],
+.row-fluid select[class*="span"],
+.row-fluid textarea[class*="span"],
+.row-fluid .uneditable-input[class*="span"] {
+ float: none;
+ margin-left: 0;
+}
+// Ensure input-prepend/append never wraps
+.input-append input[class*="span"],
+.input-append .uneditable-input[class*="span"],
+.input-prepend input[class*="span"],
+.input-prepend .uneditable-input[class*="span"],
+.row-fluid input[class*="span"],
+.row-fluid select[class*="span"],
+.row-fluid textarea[class*="span"],
+.row-fluid .uneditable-input[class*="span"],
+.row-fluid .input-prepend [class*="span"],
+.row-fluid .input-append [class*="span"] {
+ display: inline-block;
+}
+
+
+
+// GRID SIZING FOR INPUTS
+// ----------------------
+
+// Grid sizes
+#grid > .input(@gridColumnWidth, @gridGutterWidth);
+
+// Control row for multiple inputs per line
+.controls-row {
+ .clearfix(); // Clear the float from controls
+}
+
+// Float to collapse white-space for proper grid alignment
+.controls-row [class*="span"],
+// Redeclare the fluid grid collapse since we undo the float for inputs
+.row-fluid .controls-row [class*="span"] {
+ float: left;
+}
+// Explicity set top padding on all checkboxes/radios, not just first-child
+.controls-row .checkbox[class*="span"],
+.controls-row .radio[class*="span"] {
+ padding-top: 5px;
+}
+
+
+
+
+// DISABLED STATE
+// --------------
+
+// Disabled and read-only inputs
+input[disabled],
+select[disabled],
+textarea[disabled],
+input[readonly],
+select[readonly],
+textarea[readonly] {
+ cursor: not-allowed;
+ background-color: @inputDisabledBackground;
+}
+// Explicitly reset the colors here
+input[type="radio"][disabled],
+input[type="checkbox"][disabled],
+input[type="radio"][readonly],
+input[type="checkbox"][readonly] {
+ background-color: transparent;
+}
+
+
+
+
+// FORM FIELD FEEDBACK STATES
+// --------------------------
+
+// Warning
+.control-group.warning {
+ .formFieldState(@warningText, @warningText, @warningBackground);
+}
+// Error
+.control-group.error {
+ .formFieldState(@errorText, @errorText, @errorBackground);
+}
+// Success
+.control-group.success {
+ .formFieldState(@successText, @successText, @successBackground);
+}
+// Success
+.control-group.info {
+ .formFieldState(@infoText, @infoText, @infoBackground);
+}
+
+// HTML5 invalid states
+// Shares styles with the .control-group.error above
+input:focus:invalid,
+textarea:focus:invalid,
+select:focus:invalid {
+ color: #b94a48;
+ border-color: #ee5f5b;
+ &:focus {
+ border-color: darken(#ee5f5b, 10%);
+ @shadow: 0 0 6px lighten(#ee5f5b, 20%);
+ .box-shadow(@shadow);
+ }
+}
+
+
+
+// FORM ACTIONS
+// ------------
+
+.form-actions {
+ padding: (@baseLineHeight - 1) 20px @baseLineHeight;
+ margin-top: @baseLineHeight;
+ margin-bottom: @baseLineHeight;
+ background-color: @formActionsBackground;
+ border-top: 1px solid #e5e5e5;
+ .clearfix(); // Adding clearfix to allow for .pull-right button containers
+}
+
+
+
+// HELP TEXT
+// ---------
+
+.help-block,
+.help-inline {
+ color: lighten(@textColor, 15%); // lighten the text some for contrast
+}
+
+.help-block {
+ display: block; // account for any element using help-block
+ margin-bottom: @baseLineHeight / 2;
+}
+
+.help-inline {
+ display: inline-block;
+ .ie7-inline-block();
+ vertical-align: middle;
+ padding-left: 5px;
+}
+
+
+
+// INPUT GROUPS
+// ------------
+
+// Allow us to put symbols and text within the input field for a cleaner look
+.input-append,
+.input-prepend {
+ display: inline-block;
+ margin-bottom: @baseLineHeight / 2;
+ vertical-align: middle;
+ font-size: 0; // white space collapse hack
+ white-space: nowrap; // Prevent span and input from separating
+
+ // Reset the white space collapse hack
+ input,
+ select,
+ .uneditable-input,
+ .dropdown-menu,
+ .popover {
+ font-size: @baseFontSize;
+ }
+
+ input,
+ select,
+ .uneditable-input {
+ position: relative; // placed here by default so that on :focus we can place the input above the .add-on for full border and box-shadow goodness
+ margin-bottom: 0; // prevent bottom margin from screwing up alignment in stacked forms
+ *margin-left: 0;
+ vertical-align: top;
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
+ // Make input on top when focused so blue border and shadow always show
+ &:focus {
+ z-index: 2;
+ }
+ }
+ .add-on {
+ display: inline-block;
+ width: auto;
+ height: @baseLineHeight;
+ min-width: 16px;
+ padding: 4px 5px;
+ font-size: @baseFontSize;
+ font-weight: normal;
+ line-height: @baseLineHeight;
+ text-align: center;
+ text-shadow: 0 1px 0 @white;
+ background-color: @grayLighter;
+ border: 1px solid #ccc;
+ }
+ .add-on,
+ .btn,
+ .btn-group > .dropdown-toggle {
+ vertical-align: top;
+ .border-radius(0);
+ }
+ .active {
+ background-color: lighten(@green, 30);
+ border-color: @green;
+ }
+}
+
+.input-prepend {
+ .add-on,
+ .btn {
+ margin-right: -1px;
+ }
+ .add-on:first-child,
+ .btn:first-child {
+ // FYI, `.btn:first-child` accounts for a button group that's prepended
+ .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
+ }
+}
+
+.input-append {
+ input,
+ select,
+ .uneditable-input {
+ .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
+ + .btn-group .btn:last-child {
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
+ }
+ }
+ .add-on,
+ .btn,
+ .btn-group {
+ margin-left: -1px;
+ }
+ .add-on:last-child,
+ .btn:last-child,
+ .btn-group:last-child > .dropdown-toggle {
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
+ }
+}
+
+// Remove all border-radius for inputs with both prepend and append
+.input-prepend.input-append {
+ input,
+ select,
+ .uneditable-input {
+ .border-radius(0);
+ + .btn-group .btn {
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
+ }
+ }
+ .add-on:first-child,
+ .btn:first-child {
+ margin-right: -1px;
+ .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
+ }
+ .add-on:last-child,
+ .btn:last-child {
+ margin-left: -1px;
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
+ }
+ .btn-group:first-child {
+ margin-left: 0;
+ }
+}
+
+
+
+
+// SEARCH FORM
+// -----------
+
+input.search-query {
+ padding-right: 14px;
+ padding-right: 4px \9;
+ padding-left: 14px;
+ padding-left: 4px \9; /* IE7-8 doesn't have border-radius, so don't indent the padding */
+ margin-bottom: 0; // Remove the default margin on all inputs
+ .border-radius(15px);
+}
+
+/* Allow for input prepend/append in search forms */
+.form-search .input-append .search-query,
+.form-search .input-prepend .search-query {
+ .border-radius(0); // Override due to specificity
+}
+.form-search .input-append .search-query {
+ .border-radius(14px 0 0 14px);
+}
+.form-search .input-append .btn {
+ .border-radius(0 14px 14px 0);
+}
+.form-search .input-prepend .search-query {
+ .border-radius(0 14px 14px 0);
+}
+.form-search .input-prepend .btn {
+ .border-radius(14px 0 0 14px);
+}
+
+
+
+
+// HORIZONTAL & VERTICAL FORMS
+// ---------------------------
+
+// Common properties
+// -----------------
+
+.form-search,
+.form-inline,
+.form-horizontal {
+ input,
+ textarea,
+ select,
+ .help-inline,
+ .uneditable-input,
+ .input-prepend,
+ .input-append {
+ display: inline-block;
+ .ie7-inline-block();
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ // Re-hide hidden elements due to specifity
+ .hide {
+ display: none;
+ }
+}
+.form-search label,
+.form-inline label,
+.form-search .btn-group,
+.form-inline .btn-group {
+ display: inline-block;
+}
+// Remove margin for input-prepend/-append
+.form-search .input-append,
+.form-inline .input-append,
+.form-search .input-prepend,
+.form-inline .input-prepend {
+ margin-bottom: 0;
+}
+// Inline checkbox/radio labels (remove padding on left)
+.form-search .radio,
+.form-search .checkbox,
+.form-inline .radio,
+.form-inline .checkbox {
+ padding-left: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+}
+// Remove float and margin, set to inline-block
+.form-search .radio input[type="radio"],
+.form-search .checkbox input[type="checkbox"],
+.form-inline .radio input[type="radio"],
+.form-inline .checkbox input[type="checkbox"] {
+ float: left;
+ margin-right: 3px;
+ margin-left: 0;
+}
+
+
+// Margin to space out fieldsets
+.control-group {
+ margin-bottom: @baseLineHeight / 2;
+}
+
+// Legend collapses margin, so next element is responsible for spacing
+legend + .control-group {
+ margin-top: @baseLineHeight;
+ -webkit-margin-top-collapse: separate;
+}
+
+// Horizontal-specific styles
+// --------------------------
+
+.form-horizontal {
+ // Increase spacing between groups
+ .control-group {
+ margin-bottom: @baseLineHeight;
+ .clearfix();
+ }
+ // Float the labels left
+ .control-label {
+ float: left;
+ width: @horizontalComponentOffset - 20;
+ padding-top: 5px;
+ text-align: right;
+ }
+ // Move over all input controls and content
+ .controls {
+ // Super jank IE7 fix to ensure the inputs in .input-append and input-prepend
+ // don't inherit the margin of the parent, in this case .controls
+ *display: inline-block;
+ *padding-left: 20px;
+ margin-left: @horizontalComponentOffset;
+ *margin-left: 0;
+ &:first-child {
+ *padding-left: @horizontalComponentOffset;
+ }
+ }
+ // Remove bottom margin on block level help text since that's accounted for on .control-group
+ .help-block {
+ margin-bottom: 0;
+ }
+ // And apply it only to .help-block instances that follow a form control
+ input,
+ select,
+ textarea,
+ .uneditable-input,
+ .input-prepend,
+ .input-append {
+ + .help-block {
+ margin-top: @baseLineHeight / 2;
+ }
+ }
+ // Move over buttons in .form-actions to align with .controls
+ .form-actions {
+ padding-left: @horizontalComponentOffset;
+ }
+}
diff --git a/theme/less/bootstrap-2.3.2/grid.less b/theme/less/bootstrap-2.3.2/grid.less
new file mode 100755
index 0000000..750d203
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/grid.less
@@ -0,0 +1,21 @@
+//
+// Grid system
+// --------------------------------------------------
+
+
+// Fixed (940px)
+#grid > .core(@gridColumnWidth, @gridGutterWidth);
+
+// Fluid (940px)
+#grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth);
+
+// Reset utility classes due to specificity
+[class*="span"].hide,
+.row-fluid [class*="span"].hide {
+ display: none;
+}
+
+[class*="span"].pull-right,
+.row-fluid [class*="span"].pull-right {
+ float: right;
+}
diff --git a/theme/less/bootstrap-2.3.2/hero-unit.less b/theme/less/bootstrap-2.3.2/hero-unit.less
new file mode 100755
index 0000000..763d86a
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/hero-unit.less
@@ -0,0 +1,25 @@
+//
+// Hero unit
+// --------------------------------------------------
+
+
+.hero-unit {
+ padding: 60px;
+ margin-bottom: 30px;
+ font-size: 18px;
+ font-weight: 200;
+ line-height: @baseLineHeight * 1.5;
+ color: @heroUnitLeadColor;
+ background-color: @heroUnitBackground;
+ .border-radius(6px);
+ h1 {
+ margin-bottom: 0;
+ font-size: 60px;
+ line-height: 1;
+ color: @heroUnitHeadingColor;
+ letter-spacing: -1px;
+ }
+ li {
+ line-height: @baseLineHeight * 1.5; // Reset since we specify in type.less
+ }
+}
diff --git a/theme/less/bootstrap-2.3.2/labels-badges.less b/theme/less/bootstrap-2.3.2/labels-badges.less
new file mode 100755
index 0000000..bc321fe
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/labels-badges.less
@@ -0,0 +1,84 @@
+//
+// Labels and badges
+// --------------------------------------------------
+
+
+// Base classes
+.label,
+.badge {
+ display: inline-block;
+ padding: 2px 4px;
+ font-size: @baseFontSize * .846;
+ font-weight: bold;
+ line-height: 14px; // ensure proper line-height if floated
+ color: @white;
+ vertical-align: baseline;
+ white-space: nowrap;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ background-color: @grayLight;
+}
+// Set unique padding and border-radii
+.label {
+ .border-radius(3px);
+}
+.badge {
+ padding-left: 9px;
+ padding-right: 9px;
+ .border-radius(9px);
+}
+
+// Empty labels/badges collapse
+.label,
+.badge {
+ &:empty {
+ display: none;
+ }
+}
+
+// Hover/focus state, but only for links
+a {
+ &.label:hover,
+ &.label:focus,
+ &.badge:hover,
+ &.badge:focus {
+ color: @white;
+ text-decoration: none;
+ cursor: pointer;
+ }
+}
+
+// Colors
+// Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute)
+.label,
+.badge {
+ // Important (red)
+ &-important { background-color: @errorText; }
+ &-important[href] { background-color: darken(@errorText, 10%); }
+ // Warnings (orange)
+ &-warning { background-color: @orange; }
+ &-warning[href] { background-color: darken(@orange, 10%); }
+ // Success (green)
+ &-success { background-color: @successText; }
+ &-success[href] { background-color: darken(@successText, 10%); }
+ // Info (turquoise)
+ &-info { background-color: @infoText; }
+ &-info[href] { background-color: darken(@infoText, 10%); }
+ // Inverse (black)
+ &-inverse { background-color: @grayDark; }
+ &-inverse[href] { background-color: darken(@grayDark, 10%); }
+}
+
+// Quick fix for labels/badges in buttons
+.btn {
+ .label,
+ .badge {
+ position: relative;
+ top: -1px;
+ }
+}
+.btn-mini {
+ .label,
+ .badge {
+ top: 0;
+ }
+}
diff --git a/theme/less/bootstrap-2.3.2/layouts.less b/theme/less/bootstrap-2.3.2/layouts.less
new file mode 100755
index 0000000..24a2062
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/layouts.less
@@ -0,0 +1,16 @@
+//
+// Layouts
+// --------------------------------------------------
+
+
+// Container (centered, fixed-width layouts)
+.container {
+ .container-fixed();
+}
+
+// Fluid layouts (left aligned, with sidebar, min- & max-width content)
+.container-fluid {
+ padding-right: @gridGutterWidth;
+ padding-left: @gridGutterWidth;
+ .clearfix();
+}
\ No newline at end of file
diff --git a/theme/less/bootstrap-2.3.2/media.less b/theme/less/bootstrap-2.3.2/media.less
new file mode 100755
index 0000000..e461e44
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/media.less
@@ -0,0 +1,55 @@
+// Media objects
+// Source: http://stubbornella.org/content/?p=497
+// --------------------------------------------------
+
+
+// Common styles
+// -------------------------
+
+// Clear the floats
+.media,
+.media-body {
+ overflow: hidden;
+ *overflow: visible;
+ zoom: 1;
+}
+
+// Proper spacing between instances of .media
+.media,
+.media .media {
+ margin-top: 15px;
+}
+.media:first-child {
+ margin-top: 0;
+}
+
+// For images and videos, set to block
+.media-object {
+ display: block;
+}
+
+// Reset margins on headings for tighter default spacing
+.media-heading {
+ margin: 0 0 5px;
+}
+
+
+// Media image alignment
+// -------------------------
+
+.media > .pull-left {
+ margin-right: 10px;
+}
+.media > .pull-right {
+ margin-left: 10px;
+}
+
+
+// Media list variation
+// -------------------------
+
+// Undo default ul/ol styles
+.media-list {
+ margin-left: 0;
+ list-style: none;
+}
diff --git a/theme/less/bootstrap-2.3.2/mixins.less b/theme/less/bootstrap-2.3.2/mixins.less
new file mode 100755
index 0000000..79d8892
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/mixins.less
@@ -0,0 +1,702 @@
+//
+// Mixins
+// --------------------------------------------------
+
+
+// UTILITY MIXINS
+// --------------------------------------------------
+
+// Clearfix
+// --------
+// For clearing floats like a boss h5bp.com/q
+.clearfix {
+ *zoom: 1;
+ &:before,
+ &:after {
+ display: table;
+ content: "";
+ // Fixes Opera/contenteditable bug:
+ // http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952
+ line-height: 0;
+ }
+ &:after {
+ clear: both;
+ }
+}
+
+// Webkit-style focus
+// ------------------
+.tab-focus() {
+ // Default
+ outline: thin dotted #333;
+ // Webkit
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+// Center-align a block level element
+// ----------------------------------
+.center-block() {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+// IE7 inline-block
+// ----------------
+.ie7-inline-block() {
+ *display: inline; /* IE7 inline-block hack */
+ *zoom: 1;
+}
+
+// IE7 likes to collapse whitespace on either side of the inline-block elements.
+// Ems because we're attempting to match the width of a space character. Left
+// version is for form buttons, which typically come after other elements, and
+// right version is for icons, which come before. Applying both is ok, but it will
+// mean that space between those elements will be .6em (~2 space characters) in IE7,
+// instead of the 1 space in other browsers.
+.ie7-restore-left-whitespace() {
+ *margin-left: .3em;
+
+ &:first-child {
+ *margin-left: 0;
+ }
+}
+
+.ie7-restore-right-whitespace() {
+ *margin-right: .3em;
+}
+
+// Sizing shortcuts
+// -------------------------
+.size(@height, @width) {
+ width: @width;
+ height: @height;
+}
+.square(@size) {
+ .size(@size, @size);
+}
+
+// Placeholder text
+// -------------------------
+.placeholder(@color: @placeholderText) {
+ &:-moz-placeholder {
+ color: @color;
+ }
+ &:-ms-input-placeholder {
+ color: @color;
+ }
+ &::-webkit-input-placeholder {
+ color: @color;
+ }
+}
+
+// Text overflow
+// -------------------------
+// Requires inline-block or block for proper styling
+.text-overflow() {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+// CSS image replacement
+// -------------------------
+// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
+.hide-text {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+
+
+// FONTS
+// --------------------------------------------------
+
+#font {
+ #family {
+ .serif() {
+ font-family: @serifFontFamily;
+ }
+ .sans-serif() {
+ font-family: @sansFontFamily;
+ }
+ .monospace() {
+ font-family: @monoFontFamily;
+ }
+ }
+ .shorthand(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
+ font-size: @size;
+ font-weight: @weight;
+ line-height: @lineHeight;
+ }
+ .serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
+ #font > #family > .serif;
+ #font > .shorthand(@size, @weight, @lineHeight);
+ }
+ .sans-serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
+ #font > #family > .sans-serif;
+ #font > .shorthand(@size, @weight, @lineHeight);
+ }
+ .monospace(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
+ #font > #family > .monospace;
+ #font > .shorthand(@size, @weight, @lineHeight);
+ }
+}
+
+
+// FORMS
+// --------------------------------------------------
+
+// Block level inputs
+.input-block-level {
+ display: block;
+ width: 100%;
+ min-height: @inputHeight; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
+ .box-sizing(border-box); // Makes inputs behave like true block-level elements
+}
+
+
+
+// Mixin for form field states
+.formFieldState(@textColor: #555, @borderColor: #ccc, @backgroundColor: #f5f5f5) {
+ // Set the text color
+ .control-label,
+ .help-block,
+ .help-inline {
+ color: @textColor;
+ }
+ // Style inputs accordingly
+ .checkbox,
+ .radio,
+ input,
+ select,
+ textarea {
+ color: @textColor;
+ }
+ input,
+ select,
+ textarea {
+ border-color: @borderColor;
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
+ &:focus {
+ border-color: darken(@borderColor, 10%);
+ @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@borderColor, 20%);
+ .box-shadow(@shadow);
+ }
+ }
+ // Give a small background color for input-prepend/-append
+ .input-prepend .add-on,
+ .input-append .add-on {
+ color: @textColor;
+ background-color: @backgroundColor;
+ border-color: @textColor;
+ }
+}
+
+
+
+// CSS3 PROPERTIES
+// --------------------------------------------------
+
+// Border Radius
+.border-radius(@radius) {
+ -webkit-border-radius: @radius;
+ -moz-border-radius: @radius;
+ border-radius: @radius;
+}
+
+// Single Corner Border Radius
+.border-top-left-radius(@radius) {
+ -webkit-border-top-left-radius: @radius;
+ -moz-border-radius-topleft: @radius;
+ border-top-left-radius: @radius;
+}
+.border-top-right-radius(@radius) {
+ -webkit-border-top-right-radius: @radius;
+ -moz-border-radius-topright: @radius;
+ border-top-right-radius: @radius;
+}
+.border-bottom-right-radius(@radius) {
+ -webkit-border-bottom-right-radius: @radius;
+ -moz-border-radius-bottomright: @radius;
+ border-bottom-right-radius: @radius;
+}
+.border-bottom-left-radius(@radius) {
+ -webkit-border-bottom-left-radius: @radius;
+ -moz-border-radius-bottomleft: @radius;
+ border-bottom-left-radius: @radius;
+}
+
+// Single Side Border Radius
+.border-top-radius(@radius) {
+ .border-top-right-radius(@radius);
+ .border-top-left-radius(@radius);
+}
+.border-right-radius(@radius) {
+ .border-top-right-radius(@radius);
+ .border-bottom-right-radius(@radius);
+}
+.border-bottom-radius(@radius) {
+ .border-bottom-right-radius(@radius);
+ .border-bottom-left-radius(@radius);
+}
+.border-left-radius(@radius) {
+ .border-top-left-radius(@radius);
+ .border-bottom-left-radius(@radius);
+}
+
+// Drop shadows
+.box-shadow(@shadow) {
+ -webkit-box-shadow: @shadow;
+ -moz-box-shadow: @shadow;
+ box-shadow: @shadow;
+}
+
+// Transitions
+.transition(@transition) {
+ -webkit-transition: @transition;
+ -moz-transition: @transition;
+ -o-transition: @transition;
+ transition: @transition;
+}
+.transition-delay(@transition-delay) {
+ -webkit-transition-delay: @transition-delay;
+ -moz-transition-delay: @transition-delay;
+ -o-transition-delay: @transition-delay;
+ transition-delay: @transition-delay;
+}
+.transition-duration(@transition-duration) {
+ -webkit-transition-duration: @transition-duration;
+ -moz-transition-duration: @transition-duration;
+ -o-transition-duration: @transition-duration;
+ transition-duration: @transition-duration;
+}
+
+// Transformations
+.rotate(@degrees) {
+ -webkit-transform: rotate(@degrees);
+ -moz-transform: rotate(@degrees);
+ -ms-transform: rotate(@degrees);
+ -o-transform: rotate(@degrees);
+ transform: rotate(@degrees);
+}
+.scale(@ratio) {
+ -webkit-transform: scale(@ratio);
+ -moz-transform: scale(@ratio);
+ -ms-transform: scale(@ratio);
+ -o-transform: scale(@ratio);
+ transform: scale(@ratio);
+}
+.translate(@x, @y) {
+ -webkit-transform: translate(@x, @y);
+ -moz-transform: translate(@x, @y);
+ -ms-transform: translate(@x, @y);
+ -o-transform: translate(@x, @y);
+ transform: translate(@x, @y);
+}
+.skew(@x, @y) {
+ -webkit-transform: skew(@x, @y);
+ -moz-transform: skew(@x, @y);
+ -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twitter/bootstrap/issues/4885
+ -o-transform: skew(@x, @y);
+ transform: skew(@x, @y);
+ -webkit-backface-visibility: hidden; // See https://github.com/twitter/bootstrap/issues/5319
+}
+.translate3d(@x, @y, @z) {
+ -webkit-transform: translate3d(@x, @y, @z);
+ -moz-transform: translate3d(@x, @y, @z);
+ -o-transform: translate3d(@x, @y, @z);
+ transform: translate3d(@x, @y, @z);
+}
+
+// Backface visibility
+// Prevent browsers from flickering when using CSS 3D transforms.
+// Default value is `visible`, but can be changed to `hidden
+// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples
+.backface-visibility(@visibility){
+ -webkit-backface-visibility: @visibility;
+ -moz-backface-visibility: @visibility;
+ backface-visibility: @visibility;
+}
+
+// Background clipping
+// Heads up: FF 3.6 and under need "padding" instead of "padding-box"
+.background-clip(@clip) {
+ -webkit-background-clip: @clip;
+ -moz-background-clip: @clip;
+ background-clip: @clip;
+}
+
+// Background sizing
+.background-size(@size) {
+ -webkit-background-size: @size;
+ -moz-background-size: @size;
+ -o-background-size: @size;
+ background-size: @size;
+}
+
+
+// Box sizing
+.box-sizing(@boxmodel) {
+ -webkit-box-sizing: @boxmodel;
+ -moz-box-sizing: @boxmodel;
+ box-sizing: @boxmodel;
+}
+
+// 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;
+}
+
+// Resize anything
+.resizable(@direction) {
+ resize: @direction; // Options: horizontal, vertical, both
+ overflow: auto; // Safari fix
+}
+
+// CSS3 Content Columns
+.content-columns(@columnCount, @columnGap: @gridGutterWidth) {
+ -webkit-column-count: @columnCount;
+ -moz-column-count: @columnCount;
+ column-count: @columnCount;
+ -webkit-column-gap: @columnGap;
+ -moz-column-gap: @columnGap;
+ column-gap: @columnGap;
+}
+
+// Optional hyphenation
+.hyphens(@mode: auto) {
+ word-wrap: break-word;
+ -webkit-hyphens: @mode;
+ -moz-hyphens: @mode;
+ -ms-hyphens: @mode;
+ -o-hyphens: @mode;
+ hyphens: @mode;
+}
+
+// Opacity
+.opacity(@opacity) {
+ opacity: @opacity / 100;
+ filter: ~"alpha(opacity=@{opacity})";
+}
+
+
+
+// BACKGROUNDS
+// --------------------------------------------------
+
+// Add an alphatransparency value to any background or border color (via Elyse Holladay)
+#translucent {
+ .background(@color: @white, @alpha: 1) {
+ background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
+ }
+ .border(@color: @white, @alpha: 1) {
+ border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
+ .background-clip(padding-box);
+ }
+}
+
+// Gradient Bar Colors for buttons and alerts
+.gradientBar(@primaryColor, @secondaryColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) {
+ color: @textColor;
+ text-shadow: @textShadow;
+ #gradient > .vertical(@primaryColor, @secondaryColor);
+ border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);
+ border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);
+}
+
+// Gradients
+#gradient {
+ .horizontal(@startColor: #555, @endColor: #333) {
+ background-color: @endColor;
+ background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+
+ background-image: -webkit-gradient(linear, 0 0, 100% 0, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
+ background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+
+ background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10
+ background-image: linear-gradient(to right, @startColor, @endColor); // Standard, IE10
+ background-repeat: repeat-x;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@startColor),argb(@endColor))); // IE9 and down
+ }
+ .vertical(@startColor: #555, @endColor: #333) {
+ background-color: mix(@startColor, @endColor, 60%);
+ background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
+ background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+
+ background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10
+ background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10
+ background-repeat: repeat-x;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down
+ }
+ .directional(@startColor: #555, @endColor: #333, @deg: 45deg) {
+ background-color: @endColor;
+ background-repeat: repeat-x;
+ background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+
+ background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+
+ background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10
+ background-image: linear-gradient(@deg, @startColor, @endColor); // Standard, IE10
+ }
+ .horizontal-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {
+ background-color: mix(@midColor, @endColor, 80%);
+ background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
+ background-image: -webkit-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
+ background-image: -moz-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
+ background-image: -o-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
+ background-image: linear-gradient(to right, @startColor, @midColor @colorStop, @endColor);
+ background-repeat: no-repeat;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback
+ }
+
+ .vertical-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {
+ background-color: mix(@midColor, @endColor, 80%);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
+ background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor);
+ background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor);
+ background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor);
+ background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor);
+ background-repeat: no-repeat;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback
+ }
+ .radial(@innerColor: #555, @outerColor: #333) {
+ background-color: @outerColor;
+ background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@innerColor), to(@outerColor));
+ background-image: -webkit-radial-gradient(circle, @innerColor, @outerColor);
+ background-image: -moz-radial-gradient(circle, @innerColor, @outerColor);
+ background-image: -o-radial-gradient(circle, @innerColor, @outerColor);
+ background-repeat: no-repeat;
+ }
+ .striped(@color: #555, @angle: 45deg) {
+ background-color: @color;
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
+ }
+}
+// Reset filters for IE
+.reset-filter() {
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
+}
+
+
+
+// COMPONENT MIXINS
+// --------------------------------------------------
+
+// Horizontal dividers
+// -------------------------
+// Dividers (basically an hr) within dropdowns and nav lists
+.nav-divider(@top: #e5e5e5, @bottom: @white) {
+ // IE7 needs a set width since we gave a height. Restricting just
+ // to IE7 to keep the 1px left/right space in other browsers.
+ // It is unclear where IE is getting the extra space that we need
+ // to negative-margin away, but so it goes.
+ *width: 100%;
+ height: 1px;
+ margin: ((@baseLineHeight / 2) - 1) 1px; // 8px 1px
+ *margin: -5px 0 5px;
+ overflow: hidden;
+ background-color: @top;
+ border-bottom: 1px solid @bottom;
+}
+
+// Button backgrounds
+// ------------------
+.buttonBackground(@startColor, @endColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) {
+ // gradientBar will set the background to a pleasing blend of these, to support IE<=9
+ .gradientBar(@startColor, @endColor, @textColor, @textShadow);
+ *background-color: @endColor; /* Darken IE7 buttons by default so they stand out more given they won't have borders */
+ .reset-filter();
+
+ // in these cases the gradient won't cover the background, so we override
+ &:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {
+ color: @textColor;
+ background-color: @endColor;
+ *background-color: darken(@endColor, 5%);
+ }
+
+ // IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves
+ &:active,
+ &.active {
+ background-color: darken(@endColor, 10%) e("\9");
+ }
+}
+
+// Navbar vertical align
+// -------------------------
+// Vertically center elements in the navbar.
+// Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin.
+.navbarVerticalAlign(@elementHeight) {
+ margin-top: (@navbarHeight - @elementHeight) / 2;
+}
+
+
+
+// Grid System
+// -----------
+
+// Centered container element
+.container-fixed() {
+ margin-right: auto;
+ margin-left: auto;
+ .clearfix();
+}
+
+// Table columns
+.tableColumns(@columnSpan: 1) {
+ float: none; // undo default grid column styles
+ width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 16; // 16 is total padding on left and right of table cells
+ margin-left: 0; // undo default grid column styles
+}
+
+// Make a Grid
+// Use .makeRow and .makeColumn to assign semantic layouts grid system behavior
+.makeRow() {
+ margin-left: @gridGutterWidth * -1;
+ .clearfix();
+}
+.makeColumn(@columns: 1, @offset: 0) {
+ float: left;
+ margin-left: (@gridColumnWidth * @offset) + (@gridGutterWidth * (@offset - 1)) + (@gridGutterWidth * 2);
+ width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
+}
+
+// The Grid
+#grid {
+
+ .core (@gridColumnWidth, @gridGutterWidth) {
+
+ .spanX (@index) when (@index > 0) {
+ .span@{index} { .span(@index); }
+ .spanX(@index - 1);
+ }
+ .spanX (0) {}
+
+ .offsetX (@index) when (@index > 0) {
+ .offset@{index} { .offset(@index); }
+ .offsetX(@index - 1);
+ }
+ .offsetX (0) {}
+
+ .offset (@columns) {
+ margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns + 1));
+ }
+
+ .span (@columns) {
+ width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
+ }
+
+ .row {
+ margin-left: @gridGutterWidth * -1;
+ .clearfix();
+ }
+
+ [class*="span"] {
+ float: left;
+ min-height: 1px; // prevent collapsing columns
+ margin-left: @gridGutterWidth;
+ }
+
+ // Set the container width, and override it for fixed navbars in media queries
+ .container,
+ .navbar-static-top .container,
+ .navbar-fixed-top .container,
+ .navbar-fixed-bottom .container { .span(@gridColumns); }
+
+ // generate .spanX and .offsetX
+ .spanX (@gridColumns);
+ .offsetX (@gridColumns);
+
+ }
+
+ .fluid (@fluidGridColumnWidth, @fluidGridGutterWidth) {
+
+ .spanX (@index) when (@index > 0) {
+ .span@{index} { .span(@index); }
+ .spanX(@index - 1);
+ }
+ .spanX (0) {}
+
+ .offsetX (@index) when (@index > 0) {
+ .offset@{index} { .offset(@index); }
+ .offset@{index}:first-child { .offsetFirstChild(@index); }
+ .offsetX(@index - 1);
+ }
+ .offsetX (0) {}
+
+ .offset (@columns) {
+ margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth*2);
+ *margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + (@fluidGridGutterWidth*2) - (.5 / @gridRowWidth * 100 * 1%);
+ }
+
+ .offsetFirstChild (@columns) {
+ margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth);
+ *margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);
+ }
+
+ .span (@columns) {
+ width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1));
+ *width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%);
+ }
+
+ .row-fluid {
+ width: 100%;
+ .clearfix();
+ [class*="span"] {
+ .input-block-level();
+ float: left;
+ margin-left: @fluidGridGutterWidth;
+ *margin-left: @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);
+ }
+ [class*="span"]:first-child {
+ margin-left: 0;
+ }
+
+ // Space grid-sized controls properly if multiple per line
+ .controls-row [class*="span"] + [class*="span"] {
+ margin-left: @fluidGridGutterWidth;
+ }
+
+ // generate .spanX and .offsetX
+ .spanX (@gridColumns);
+ .offsetX (@gridColumns);
+ }
+
+ }
+
+ .input(@gridColumnWidth, @gridGutterWidth) {
+
+ .spanX (@index) when (@index > 0) {
+ input.span@{index}, textarea.span@{index}, .uneditable-input.span@{index} { .span(@index); }
+ .spanX(@index - 1);
+ }
+ .spanX (0) {}
+
+ .span(@columns) {
+ width: ((@gridColumnWidth) * @columns) + (@gridGutterWidth * (@columns - 1)) - 14;
+ }
+
+ input,
+ textarea,
+ .uneditable-input {
+ margin-left: 0; // override margin-left from core grid system
+ }
+
+ // Space grid-sized controls properly if multiple per line
+ .controls-row [class*="span"] + [class*="span"] {
+ margin-left: @gridGutterWidth;
+ }
+
+ // generate .spanX
+ .spanX (@gridColumns);
+
+ }
+}
diff --git a/theme/less/bootstrap-2.3.2/modals.less b/theme/less/bootstrap-2.3.2/modals.less
new file mode 100755
index 0000000..8e272d4
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/modals.less
@@ -0,0 +1,95 @@
+//
+// Modals
+// --------------------------------------------------
+
+// Background
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: @zindexModalBackdrop;
+ background-color: @black;
+ // Fade for backdrop
+ &.fade { opacity: 0; }
+}
+
+.modal-backdrop,
+.modal-backdrop.fade.in {
+ .opacity(80);
+}
+
+// Base modal
+.modal {
+ position: fixed;
+ top: 10%;
+ left: 50%;
+ z-index: @zindexModal;
+ width: 560px;
+ margin-left: -280px;
+ background-color: @white;
+ border: 1px solid #999;
+ border: 1px solid rgba(0,0,0,.3);
+ *border: 1px solid #999; /* IE6-7 */
+ .border-radius(6px);
+ .box-shadow(0 3px 7px rgba(0,0,0,0.3));
+ .background-clip(padding-box);
+ // Remove focus outline from opened modal
+ outline: none;
+
+ &.fade {
+ .transition(e('opacity .3s linear, top .3s ease-out'));
+ top: -25%;
+ }
+ &.fade.in { top: 10%; }
+}
+.modal-header {
+ padding: 9px 15px;
+ border-bottom: 1px solid #eee;
+ // Close icon
+ .close { margin-top: 2px; }
+ // Heading
+ h3 {
+ margin: 0;
+ line-height: 30px;
+ }
+}
+
+// Body (where all modal content resides)
+.modal-body {
+ position: relative;
+ overflow-y: auto;
+ max-height: 400px;
+ padding: 15px;
+}
+// Remove bottom margin if need be
+.modal-form {
+ margin-bottom: 0;
+}
+
+// Footer (for actions)
+.modal-footer {
+ padding: 14px 15px 15px;
+ margin-bottom: 0;
+ text-align: right; // right align buttons
+ background-color: #f5f5f5;
+ border-top: 1px solid #ddd;
+ .border-radius(0 0 6px 6px);
+ .box-shadow(inset 0 1px 0 @white);
+ .clearfix(); // clear it in case folks use .pull-* classes on buttons
+
+ // Properly space out buttons
+ .btn + .btn {
+ margin-left: 5px;
+ margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
+ }
+ // but override that for button groups
+ .btn-group .btn + .btn {
+ margin-left: -1px;
+ }
+ // and override it for block buttons as well
+ .btn-block + .btn-block {
+ margin-left: 0;
+ }
+}
diff --git a/theme/less/bootstrap-2.3.2/navbar.less b/theme/less/bootstrap-2.3.2/navbar.less
new file mode 100755
index 0000000..93d09bc
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/navbar.less
@@ -0,0 +1,497 @@
+//
+// Navbars (Redux)
+// --------------------------------------------------
+
+
+// COMMON STYLES
+// -------------
+
+// Base class and wrapper
+.navbar {
+ overflow: visible;
+ margin-bottom: @baseLineHeight;
+
+ // Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar
+ *position: relative;
+ *z-index: 2;
+}
+
+// Inner for background effects
+// Gradient is applied to its own element because overflow visible is not honored by IE when filter is present
+.navbar-inner {
+ min-height: @navbarHeight;
+ padding-left: 20px;
+ padding-right: 20px;
+ #gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground);
+ border: 1px solid @navbarBorder;
+ .border-radius(@baseBorderRadius);
+ .box-shadow(0 1px 4px rgba(0,0,0,.065));
+
+ // Prevent floats from breaking the navbar
+ .clearfix();
+}
+
+// Set width to auto for default container
+// We then reset it for fixed navbars in the #gridSystem mixin
+.navbar .container {
+ width: auto;
+}
+
+// Override the default collapsed state
+.nav-collapse.collapse {
+ height: auto;
+ overflow: visible;
+}
+
+
+// Brand: website or project name
+// -------------------------
+.navbar .brand {
+ float: left;
+ display: block;
+ // Vertically center the text given @navbarHeight
+ padding: ((@navbarHeight - @baseLineHeight) / 2) 20px ((@navbarHeight - @baseLineHeight) / 2);
+ margin-left: -20px; // negative indent to left-align the text down the page
+ font-size: 20px;
+ font-weight: 200;
+ color: @navbarBrandColor;
+ text-shadow: 0 1px 0 @navbarBackgroundHighlight;
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ }
+}
+
+// Plain text in topbar
+// -------------------------
+.navbar-text {
+ margin-bottom: 0;
+ line-height: @navbarHeight;
+ color: @navbarText;
+}
+
+// Janky solution for now to account for links outside the .nav
+// -------------------------
+.navbar-link {
+ color: @navbarLinkColor;
+ &:hover,
+ &:focus {
+ color: @navbarLinkColorHover;
+ }
+}
+
+// Dividers in navbar
+// -------------------------
+.navbar .divider-vertical {
+ height: @navbarHeight;
+ margin: 0 9px;
+ border-left: 1px solid @navbarBackground;
+ border-right: 1px solid @navbarBackgroundHighlight;
+}
+
+// Buttons in navbar
+// -------------------------
+.navbar .btn,
+.navbar .btn-group {
+ .navbarVerticalAlign(30px); // Vertically center in navbar
+}
+.navbar .btn-group .btn,
+.navbar .input-prepend .btn,
+.navbar .input-append .btn,
+.navbar .input-prepend .btn-group,
+.navbar .input-append .btn-group {
+ margin-top: 0; // then undo the margin here so we don't accidentally double it
+}
+
+// Navbar forms
+// -------------------------
+.navbar-form {
+ margin-bottom: 0; // remove default bottom margin
+ .clearfix();
+ input,
+ select,
+ .radio,
+ .checkbox {
+ .navbarVerticalAlign(30px); // Vertically center in navbar
+ }
+ input,
+ select,
+ .btn {
+ display: inline-block;
+ margin-bottom: 0;
+ }
+ input[type="image"],
+ input[type="checkbox"],
+ input[type="radio"] {
+ margin-top: 3px;
+ }
+ .input-append,
+ .input-prepend {
+ margin-top: 5px;
+ white-space: nowrap; // preven two items from separating within a .navbar-form that has .pull-left
+ input {
+ margin-top: 0; // remove the margin on top since it's on the parent
+ }
+ }
+}
+
+// Navbar search
+// -------------------------
+.navbar-search {
+ position: relative;
+ float: left;
+ .navbarVerticalAlign(30px); // Vertically center in navbar
+ margin-bottom: 0;
+ .search-query {
+ margin-bottom: 0;
+ padding: 4px 14px;
+ #font > .sans-serif(13px, normal, 1);
+ .border-radius(15px); // redeclare because of specificity of the type attribute
+ }
+}
+
+
+
+// Static navbar
+// -------------------------
+
+.navbar-static-top {
+ position: static;
+ margin-bottom: 0; // remove 18px margin for default navbar
+ .navbar-inner {
+ .border-radius(0);
+ }
+}
+
+
+
+// Fixed navbar
+// -------------------------
+
+// Shared (top/bottom) styles
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: @zindexFixedNavbar;
+ margin-bottom: 0; // remove 18px margin for default navbar
+}
+.navbar-fixed-top .navbar-inner,
+.navbar-static-top .navbar-inner {
+ border-width: 0 0 1px;
+}
+.navbar-fixed-bottom .navbar-inner {
+ border-width: 1px 0 0;
+}
+.navbar-fixed-top .navbar-inner,
+.navbar-fixed-bottom .navbar-inner {
+ padding-left: 0;
+ padding-right: 0;
+ .border-radius(0);
+}
+
+// Reset container width
+// Required here as we reset the width earlier on and the grid mixins don't override early enough
+.navbar-static-top .container,
+.navbar-fixed-top .container,
+.navbar-fixed-bottom .container {
+ #grid > .core > .span(@gridColumns);
+}
+
+// Fixed to top
+.navbar-fixed-top {
+ top: 0;
+}
+.navbar-fixed-top,
+.navbar-static-top {
+ .navbar-inner {
+ .box-shadow(~"0 1px 10px rgba(0,0,0,.1)");
+ }
+}
+
+// Fixed to bottom
+.navbar-fixed-bottom {
+ bottom: 0;
+ .navbar-inner {
+ .box-shadow(~"0 -1px 10px rgba(0,0,0,.1)");
+ }
+}
+
+
+
+// NAVIGATION
+// ----------
+
+.navbar .nav {
+ position: relative;
+ left: 0;
+ display: block;
+ float: left;
+ margin: 0 10px 0 0;
+}
+.navbar .nav.pull-right {
+ float: right; // redeclare due to specificity
+ margin-right: 0; // remove margin on float right nav
+}
+.navbar .nav > li {
+ float: left;
+}
+
+// Links
+.navbar .nav > li > a {
+ float: none;
+ // Vertically center the text given @navbarHeight
+ padding: ((@navbarHeight - @baseLineHeight) / 2) 15px ((@navbarHeight - @baseLineHeight) / 2);
+ color: @navbarLinkColor;
+ text-decoration: none;
+ text-shadow: 0 1px 0 @navbarBackgroundHighlight;
+}
+.navbar .nav .dropdown-toggle .caret {
+ margin-top: 8px;
+}
+
+// Hover/focus
+.navbar .nav > li > a:focus,
+.navbar .nav > li > a:hover {
+ background-color: @navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover/:focus from .active
+ color: @navbarLinkColorHover;
+ text-decoration: none;
+}
+
+// Active nav items
+.navbar .nav > .active > a,
+.navbar .nav > .active > a:hover,
+.navbar .nav > .active > a:focus {
+ color: @navbarLinkColorActive;
+ text-decoration: none;
+ background-color: @navbarLinkBackgroundActive;
+ .box-shadow(inset 0 3px 8px rgba(0,0,0,.125));
+}
+
+// Navbar button for toggling navbar items in responsive layouts
+// These definitions need to come after '.navbar .btn'
+.navbar .btn-navbar {
+ display: none;
+ float: right;
+ padding: 7px 10px;
+ margin-left: 5px;
+ margin-right: 5px;
+ .buttonBackground(darken(@navbarBackgroundHighlight, 5%), darken(@navbarBackground, 5%));
+ .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)");
+}
+.navbar .btn-navbar .icon-bar {
+ display: block;
+ width: 18px;
+ height: 2px;
+ background-color: #f5f5f5;
+ .border-radius(1px);
+ .box-shadow(0 1px 0 rgba(0,0,0,.25));
+}
+.btn-navbar .icon-bar + .icon-bar {
+ margin-top: 3px;
+}
+
+
+
+// Dropdown menus
+// --------------
+
+// Menu position and menu carets
+.navbar .nav > li > .dropdown-menu {
+ &:before {
+ content: '';
+ display: inline-block;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid #ccc;
+ border-bottom-color: @dropdownBorder;
+ position: absolute;
+ top: -7px;
+ left: 9px;
+ }
+ &:after {
+ content: '';
+ display: inline-block;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid @dropdownBackground;
+ position: absolute;
+ top: -6px;
+ left: 10px;
+ }
+}
+// Menu position and menu caret support for dropups via extra dropup class
+.navbar-fixed-bottom .nav > li > .dropdown-menu {
+ &:before {
+ border-top: 7px solid #ccc;
+ border-top-color: @dropdownBorder;
+ border-bottom: 0;
+ bottom: -7px;
+ top: auto;
+ }
+ &:after {
+ border-top: 6px solid @dropdownBackground;
+ border-bottom: 0;
+ bottom: -6px;
+ top: auto;
+ }
+}
+
+// Caret should match text color on hover/focus
+.navbar .nav li.dropdown > a:hover .caret,
+.navbar .nav li.dropdown > a:focus .caret {
+ border-top-color: @navbarLinkColorHover;
+ border-bottom-color: @navbarLinkColorHover;
+}
+
+// Remove background color from open dropdown
+.navbar .nav li.dropdown.open > .dropdown-toggle,
+.navbar .nav li.dropdown.active > .dropdown-toggle,
+.navbar .nav li.dropdown.open.active > .dropdown-toggle {
+ background-color: @navbarLinkBackgroundActive;
+ color: @navbarLinkColorActive;
+}
+.navbar .nav li.dropdown > .dropdown-toggle .caret {
+ border-top-color: @navbarLinkColor;
+ border-bottom-color: @navbarLinkColor;
+}
+.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
+.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
+.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
+ border-top-color: @navbarLinkColorActive;
+ border-bottom-color: @navbarLinkColorActive;
+}
+
+// Right aligned menus need alt position
+.navbar .pull-right > li > .dropdown-menu,
+.navbar .nav > li > .dropdown-menu.pull-right {
+ left: auto;
+ right: 0;
+ &:before {
+ left: auto;
+ right: 12px;
+ }
+ &:after {
+ left: auto;
+ right: 13px;
+ }
+ .dropdown-menu {
+ left: auto;
+ right: 100%;
+ margin-left: 0;
+ margin-right: -1px;
+ .border-radius(6px 0 6px 6px);
+ }
+}
+
+
+// Inverted navbar
+// -------------------------
+
+.navbar-inverse {
+
+ .navbar-inner {
+ #gradient > .vertical(@navbarInverseBackgroundHighlight, @navbarInverseBackground);
+ border-color: @navbarInverseBorder;
+ }
+
+ .brand,
+ .nav > li > a {
+ color: @navbarInverseLinkColor;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ &:hover,
+ &:focus {
+ color: @navbarInverseLinkColorHover;
+ }
+ }
+
+ .brand {
+ color: @navbarInverseBrandColor;
+ }
+
+ .navbar-text {
+ color: @navbarInverseText;
+ }
+
+ .nav > li > a:focus,
+ .nav > li > a:hover {
+ background-color: @navbarInverseLinkBackgroundHover;
+ color: @navbarInverseLinkColorHover;
+ }
+
+ .nav .active > a,
+ .nav .active > a:hover,
+ .nav .active > a:focus {
+ color: @navbarInverseLinkColorActive;
+ background-color: @navbarInverseLinkBackgroundActive;
+ }
+
+ // Inline text links
+ .navbar-link {
+ color: @navbarInverseLinkColor;
+ &:hover,
+ &:focus {
+ color: @navbarInverseLinkColorHover;
+ }
+ }
+
+ // Dividers in navbar
+ .divider-vertical {
+ border-left-color: @navbarInverseBackground;
+ border-right-color: @navbarInverseBackgroundHighlight;
+ }
+
+ // Dropdowns
+ .nav li.dropdown.open > .dropdown-toggle,
+ .nav li.dropdown.active > .dropdown-toggle,
+ .nav li.dropdown.open.active > .dropdown-toggle {
+ background-color: @navbarInverseLinkBackgroundActive;
+ color: @navbarInverseLinkColorActive;
+ }
+ .nav li.dropdown > a:hover .caret,
+ .nav li.dropdown > a:focus .caret {
+ border-top-color: @navbarInverseLinkColorActive;
+ border-bottom-color: @navbarInverseLinkColorActive;
+ }
+ .nav li.dropdown > .dropdown-toggle .caret {
+ border-top-color: @navbarInverseLinkColor;
+ border-bottom-color: @navbarInverseLinkColor;
+ }
+ .nav li.dropdown.open > .dropdown-toggle .caret,
+ .nav li.dropdown.active > .dropdown-toggle .caret,
+ .nav li.dropdown.open.active > .dropdown-toggle .caret {
+ border-top-color: @navbarInverseLinkColorActive;
+ border-bottom-color: @navbarInverseLinkColorActive;
+ }
+
+ // Navbar search
+ .navbar-search {
+ .search-query {
+ color: @white;
+ background-color: @navbarInverseSearchBackground;
+ border-color: @navbarInverseSearchBorder;
+ .box-shadow(~"inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)");
+ .transition(none);
+ .placeholder(@navbarInverseSearchPlaceholderColor);
+
+ // Focus states (we use .focused since IE7-8 and down doesn't support :focus)
+ &:focus,
+ &.focused {
+ padding: 5px 15px;
+ color: @grayDark;
+ text-shadow: 0 1px 0 @white;
+ background-color: @navbarInverseSearchBackgroundFocus;
+ border: 0;
+ .box-shadow(0 0 3px rgba(0,0,0,.15));
+ outline: 0;
+ }
+ }
+ }
+
+ // Navbar collapse button
+ .btn-navbar {
+ .buttonBackground(darken(@navbarInverseBackgroundHighlight, 5%), darken(@navbarInverseBackground, 5%));
+ }
+
+}
diff --git a/theme/less/bootstrap-2.3.2/navs.less b/theme/less/bootstrap-2.3.2/navs.less
new file mode 100755
index 0000000..01cd805
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/navs.less
@@ -0,0 +1,409 @@
+//
+// Navs
+// --------------------------------------------------
+
+
+// BASE CLASS
+// ----------
+
+.nav {
+ margin-left: 0;
+ margin-bottom: @baseLineHeight;
+ list-style: none;
+}
+
+// Make links block level
+.nav > li > a {
+ display: block;
+}
+.nav > li > a:hover,
+.nav > li > a:focus {
+ text-decoration: none;
+ background-color: @grayLighter;
+}
+
+// Prevent IE8 from misplacing imgs
+// See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
+.nav > li > a > img {
+ max-width: none;
+}
+
+// Redeclare pull classes because of specifity
+.nav > .pull-right {
+ float: right;
+}
+
+// Nav headers (for dropdowns and lists)
+.nav-header {
+ display: block;
+ padding: 3px 15px;
+ font-size: 11px;
+ font-weight: bold;
+ line-height: @baseLineHeight;
+ color: @grayLight;
+ text-shadow: 0 1px 0 rgba(255,255,255,.5);
+ text-transform: uppercase;
+}
+// Space them out when they follow another list item (link)
+.nav li + .nav-header {
+ margin-top: 9px;
+}
+
+
+
+// NAV LIST
+// --------
+
+.nav-list {
+ padding-left: 15px;
+ padding-right: 15px;
+ margin-bottom: 0;
+}
+.nav-list > li > a,
+.nav-list .nav-header {
+ margin-left: -15px;
+ margin-right: -15px;
+ text-shadow: 0 1px 0 rgba(255,255,255,.5);
+}
+.nav-list > li > a {
+ padding: 3px 15px;
+}
+.nav-list > .active > a,
+.nav-list > .active > a:hover,
+.nav-list > .active > a:focus {
+ color: @white;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.2);
+ background-color: @linkColor;
+}
+.nav-list [class^="icon-"],
+.nav-list [class*=" icon-"] {
+ margin-right: 2px;
+}
+// Dividers (basically an hr) within the dropdown
+.nav-list .divider {
+ .nav-divider();
+}
+
+
+
+// TABS AND PILLS
+// -------------
+
+// Common styles
+.nav-tabs,
+.nav-pills {
+ .clearfix();
+}
+.nav-tabs > li,
+.nav-pills > li {
+ float: left;
+}
+.nav-tabs > li > a,
+.nav-pills > li > a {
+ padding-right: 12px;
+ padding-left: 12px;
+ margin-right: 2px;
+ line-height: 14px; // keeps the overall height an even number
+}
+
+// TABS
+// ----
+
+// Give the tabs something to sit on
+.nav-tabs {
+ border-bottom: 1px solid #ddd;
+}
+// Make the list-items overlay the bottom border
+.nav-tabs > li {
+ margin-bottom: -1px;
+}
+// Actual tabs (as links)
+.nav-tabs > li > a {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ line-height: @baseLineHeight;
+ border: 1px solid transparent;
+ .border-radius(4px 4px 0 0);
+ &:hover,
+ &:focus {
+ border-color: @grayLighter @grayLighter #ddd;
+ }
+}
+// Active state, and it's :hover/:focus to override normal :hover/:focus
+.nav-tabs > .active > a,
+.nav-tabs > .active > a:hover,
+.nav-tabs > .active > a:focus {
+ color: @gray;
+ background-color: @bodyBackground;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+ cursor: default;
+}
+
+
+// PILLS
+// -----
+
+// Links rendered as pills
+.nav-pills > li > a {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ margin-top: 2px;
+ margin-bottom: 2px;
+ .border-radius(5px);
+}
+
+// Active state
+.nav-pills > .active > a,
+.nav-pills > .active > a:hover,
+.nav-pills > .active > a:focus {
+ color: @white;
+ background-color: @linkColor;
+}
+
+
+
+// STACKED NAV
+// -----------
+
+// Stacked tabs and pills
+.nav-stacked > li {
+ float: none;
+}
+.nav-stacked > li > a {
+ margin-right: 0; // no need for the gap between nav items
+}
+
+// Tabs
+.nav-tabs.nav-stacked {
+ border-bottom: 0;
+}
+.nav-tabs.nav-stacked > li > a {
+ border: 1px solid #ddd;
+ .border-radius(0);
+}
+.nav-tabs.nav-stacked > li:first-child > a {
+ .border-top-radius(4px);
+}
+.nav-tabs.nav-stacked > li:last-child > a {
+ .border-bottom-radius(4px);
+}
+.nav-tabs.nav-stacked > li > a:hover,
+.nav-tabs.nav-stacked > li > a:focus {
+ border-color: #ddd;
+ z-index: 2;
+}
+
+// Pills
+.nav-pills.nav-stacked > li > a {
+ margin-bottom: 3px;
+}
+.nav-pills.nav-stacked > li:last-child > a {
+ margin-bottom: 1px; // decrease margin to match sizing of stacked tabs
+}
+
+
+
+// DROPDOWNS
+// ---------
+
+.nav-tabs .dropdown-menu {
+ .border-radius(0 0 6px 6px); // remove the top rounded corners here since there is a hard edge above the menu
+}
+.nav-pills .dropdown-menu {
+ .border-radius(6px); // make rounded corners match the pills
+}
+
+// Default dropdown links
+// -------------------------
+// Make carets use linkColor to start
+.nav .dropdown-toggle .caret {
+ border-top-color: @linkColor;
+ border-bottom-color: @linkColor;
+ margin-top: 6px;
+}
+.nav .dropdown-toggle:hover .caret,
+.nav .dropdown-toggle:focus .caret {
+ border-top-color: @linkColorHover;
+ border-bottom-color: @linkColorHover;
+}
+/* move down carets for tabs */
+.nav-tabs .dropdown-toggle .caret {
+ margin-top: 8px;
+}
+
+// Active dropdown links
+// -------------------------
+.nav .active .dropdown-toggle .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.nav-tabs .active .dropdown-toggle .caret {
+ border-top-color: @gray;
+ border-bottom-color: @gray;
+}
+
+// Active:hover/:focus dropdown links
+// -------------------------
+.nav > .dropdown.active > a:hover,
+.nav > .dropdown.active > a:focus {
+ cursor: pointer;
+}
+
+// Open dropdowns
+// -------------------------
+.nav-tabs .open .dropdown-toggle,
+.nav-pills .open .dropdown-toggle,
+.nav > li.dropdown.open.active > a:hover,
+.nav > li.dropdown.open.active > a:focus {
+ color: @white;
+ background-color: @grayLight;
+ border-color: @grayLight;
+}
+.nav li.dropdown.open .caret,
+.nav li.dropdown.open.active .caret,
+.nav li.dropdown.open a:hover .caret,
+.nav li.dropdown.open a:focus .caret {
+ border-top-color: @white;
+ border-bottom-color: @white;
+ .opacity(100);
+}
+
+// Dropdowns in stacked tabs
+.tabs-stacked .open > a:hover,
+.tabs-stacked .open > a:focus {
+ border-color: @grayLight;
+}
+
+
+
+// TABBABLE
+// --------
+
+
+// COMMON STYLES
+// -------------
+
+// Clear any floats
+.tabbable {
+ .clearfix();
+}
+.tab-content {
+ overflow: auto; // prevent content from running below tabs
+}
+
+// Remove border on bottom, left, right
+.tabs-below > .nav-tabs,
+.tabs-right > .nav-tabs,
+.tabs-left > .nav-tabs {
+ border-bottom: 0;
+}
+
+// Show/hide tabbable areas
+.tab-content > .tab-pane,
+.pill-content > .pill-pane {
+ display: none;
+}
+.tab-content > .active,
+.pill-content > .active {
+ display: block;
+}
+
+
+// BOTTOM
+// ------
+
+.tabs-below > .nav-tabs {
+ border-top: 1px solid #ddd;
+}
+.tabs-below > .nav-tabs > li {
+ margin-top: -1px;
+ margin-bottom: 0;
+}
+.tabs-below > .nav-tabs > li > a {
+ .border-radius(0 0 4px 4px);
+ &:hover,
+ &:focus {
+ border-bottom-color: transparent;
+ border-top-color: #ddd;
+ }
+}
+.tabs-below > .nav-tabs > .active > a,
+.tabs-below > .nav-tabs > .active > a:hover,
+.tabs-below > .nav-tabs > .active > a:focus {
+ border-color: transparent #ddd #ddd #ddd;
+}
+
+// LEFT & RIGHT
+// ------------
+
+// Common styles
+.tabs-left > .nav-tabs > li,
+.tabs-right > .nav-tabs > li {
+ float: none;
+}
+.tabs-left > .nav-tabs > li > a,
+.tabs-right > .nav-tabs > li > a {
+ min-width: 74px;
+ margin-right: 0;
+ margin-bottom: 3px;
+}
+
+// Tabs on the left
+.tabs-left > .nav-tabs {
+ float: left;
+ margin-right: 19px;
+ border-right: 1px solid #ddd;
+}
+.tabs-left > .nav-tabs > li > a {
+ margin-right: -1px;
+ .border-radius(4px 0 0 4px);
+}
+.tabs-left > .nav-tabs > li > a:hover,
+.tabs-left > .nav-tabs > li > a:focus {
+ border-color: @grayLighter #ddd @grayLighter @grayLighter;
+}
+.tabs-left > .nav-tabs .active > a,
+.tabs-left > .nav-tabs .active > a:hover,
+.tabs-left > .nav-tabs .active > a:focus {
+ border-color: #ddd transparent #ddd #ddd;
+ *border-right-color: @white;
+}
+
+// Tabs on the right
+.tabs-right > .nav-tabs {
+ float: right;
+ margin-left: 19px;
+ border-left: 1px solid #ddd;
+}
+.tabs-right > .nav-tabs > li > a {
+ margin-left: -1px;
+ .border-radius(0 4px 4px 0);
+}
+.tabs-right > .nav-tabs > li > a:hover,
+.tabs-right > .nav-tabs > li > a:focus {
+ border-color: @grayLighter @grayLighter @grayLighter #ddd;
+}
+.tabs-right > .nav-tabs .active > a,
+.tabs-right > .nav-tabs .active > a:hover,
+.tabs-right > .nav-tabs .active > a:focus {
+ border-color: #ddd #ddd #ddd transparent;
+ *border-left-color: @white;
+}
+
+
+
+// DISABLED STATES
+// ---------------
+
+// Gray out text
+.nav > .disabled > a {
+ color: @grayLight;
+}
+// Nuke hover/focus effects
+.nav > .disabled > a:hover,
+.nav > .disabled > a:focus {
+ text-decoration: none;
+ background-color: transparent;
+ cursor: default;
+}
diff --git a/theme/less/bootstrap-2.3.2/pager.less b/theme/less/bootstrap-2.3.2/pager.less
new file mode 100755
index 0000000..1476188
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/pager.less
@@ -0,0 +1,43 @@
+//
+// Pager pagination
+// --------------------------------------------------
+
+
+.pager {
+ margin: @baseLineHeight 0;
+ list-style: none;
+ text-align: center;
+ .clearfix();
+}
+.pager li {
+ display: inline;
+}
+.pager li > a,
+.pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ .border-radius(15px);
+}
+.pager li > a:hover,
+.pager li > a:focus {
+ text-decoration: none;
+ background-color: #f5f5f5;
+}
+.pager .next > a,
+.pager .next > span {
+ float: right;
+}
+.pager .previous > a,
+.pager .previous > span {
+ float: left;
+}
+.pager .disabled > a,
+.pager .disabled > a:hover,
+.pager .disabled > a:focus,
+.pager .disabled > span {
+ color: @grayLight;
+ background-color: #fff;
+ cursor: default;
+}
\ No newline at end of file
diff --git a/theme/less/bootstrap-2.3.2/pagination.less b/theme/less/bootstrap-2.3.2/pagination.less
new file mode 100755
index 0000000..a789db2
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/pagination.less
@@ -0,0 +1,123 @@
+//
+// Pagination (multiple pages)
+// --------------------------------------------------
+
+// Space out pagination from surrounding content
+.pagination {
+ margin: @baseLineHeight 0;
+}
+
+.pagination ul {
+ // Allow for text-based alignment
+ display: inline-block;
+ .ie7-inline-block();
+ // Reset default ul styles
+ margin-left: 0;
+ margin-bottom: 0;
+ // Visuals
+ .border-radius(@baseBorderRadius);
+ .box-shadow(0 1px 2px rgba(0,0,0,.05));
+}
+.pagination ul > li {
+ display: inline; // Remove list-style and block-level defaults
+}
+.pagination ul > li > a,
+.pagination ul > li > span {
+ float: left; // Collapse white-space
+ padding: 4px 12px;
+ line-height: @baseLineHeight;
+ text-decoration: none;
+ background-color: @paginationBackground;
+ border: 1px solid @paginationBorder;
+ border-left-width: 0;
+}
+.pagination ul > li > a:hover,
+.pagination ul > li > a:focus,
+.pagination ul > .active > a,
+.pagination ul > .active > span {
+ background-color: @paginationActiveBackground;
+}
+.pagination ul > .active > a,
+.pagination ul > .active > span {
+ color: @grayLight;
+ cursor: default;
+}
+.pagination ul > .disabled > span,
+.pagination ul > .disabled > a,
+.pagination ul > .disabled > a:hover,
+.pagination ul > .disabled > a:focus {
+ color: @grayLight;
+ background-color: transparent;
+ cursor: default;
+}
+.pagination ul > li:first-child > a,
+.pagination ul > li:first-child > span {
+ border-left-width: 1px;
+ .border-left-radius(@baseBorderRadius);
+}
+.pagination ul > li:last-child > a,
+.pagination ul > li:last-child > span {
+ .border-right-radius(@baseBorderRadius);
+}
+
+
+// Alignment
+// --------------------------------------------------
+
+.pagination-centered {
+ text-align: center;
+}
+.pagination-right {
+ text-align: right;
+}
+
+
+// Sizing
+// --------------------------------------------------
+
+// Large
+.pagination-large {
+ ul > li > a,
+ ul > li > span {
+ padding: @paddingLarge;
+ font-size: @fontSizeLarge;
+ }
+ ul > li:first-child > a,
+ ul > li:first-child > span {
+ .border-left-radius(@borderRadiusLarge);
+ }
+ ul > li:last-child > a,
+ ul > li:last-child > span {
+ .border-right-radius(@borderRadiusLarge);
+ }
+}
+
+// Small and mini
+.pagination-mini,
+.pagination-small {
+ ul > li:first-child > a,
+ ul > li:first-child > span {
+ .border-left-radius(@borderRadiusSmall);
+ }
+ ul > li:last-child > a,
+ ul > li:last-child > span {
+ .border-right-radius(@borderRadiusSmall);
+ }
+}
+
+// Small
+.pagination-small {
+ ul > li > a,
+ ul > li > span {
+ padding: @paddingSmall;
+ font-size: @fontSizeSmall;
+ }
+}
+// Mini
+.pagination-mini {
+ ul > li > a,
+ ul > li > span {
+ padding: @paddingMini;
+ font-size: @fontSizeMini;
+ }
+}
diff --git a/theme/less/bootstrap-2.3.2/popovers.less b/theme/less/bootstrap-2.3.2/popovers.less
new file mode 100755
index 0000000..aae35c8
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/popovers.less
@@ -0,0 +1,133 @@
+//
+// Popovers
+// --------------------------------------------------
+
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: @zindexPopover;
+ display: none;
+ max-width: 276px;
+ padding: 1px;
+ text-align: left; // Reset given new insertion method
+ background-color: @popoverBackground;
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0,0,0,.2);
+ .border-radius(6px);
+ .box-shadow(0 5px 10px rgba(0,0,0,.2));
+
+ // Overrides for proper insertion
+ white-space: normal;
+
+ // Offset the popover to account for the popover arrow
+ &.top { margin-top: -10px; }
+ &.right { margin-left: 10px; }
+ &.bottom { margin-top: 10px; }
+ &.left { margin-left: -10px; }
+}
+
+.popover-title {
+ margin: 0; // reset heading margin
+ padding: 8px 14px;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 18px;
+ background-color: @popoverTitleBackground;
+ border-bottom: 1px solid darken(@popoverTitleBackground, 5%);
+ .border-radius(5px 5px 0 0);
+
+ &:empty {
+ display: none;
+ }
+}
+
+.popover-content {
+ padding: 9px 14px;
+}
+
+// Arrows
+//
+// .arrow is outer, .arrow:after is inner
+
+.popover .arrow,
+.popover .arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.popover .arrow {
+ border-width: @popoverArrowOuterWidth;
+}
+.popover .arrow:after {
+ border-width: @popoverArrowWidth;
+ content: "";
+}
+
+.popover {
+ &.top .arrow {
+ left: 50%;
+ margin-left: -@popoverArrowOuterWidth;
+ border-bottom-width: 0;
+ border-top-color: #999; // IE8 fallback
+ border-top-color: @popoverArrowOuterColor;
+ bottom: -@popoverArrowOuterWidth;
+ &:after {
+ bottom: 1px;
+ margin-left: -@popoverArrowWidth;
+ border-bottom-width: 0;
+ border-top-color: @popoverArrowColor;
+ }
+ }
+ &.right .arrow {
+ top: 50%;
+ left: -@popoverArrowOuterWidth;
+ margin-top: -@popoverArrowOuterWidth;
+ border-left-width: 0;
+ border-right-color: #999; // IE8 fallback
+ border-right-color: @popoverArrowOuterColor;
+ &:after {
+ left: 1px;
+ bottom: -@popoverArrowWidth;
+ border-left-width: 0;
+ border-right-color: @popoverArrowColor;
+ }
+ }
+ &.bottom .arrow {
+ left: 50%;
+ margin-left: -@popoverArrowOuterWidth;
+ border-top-width: 0;
+ border-bottom-color: #999; // IE8 fallback
+ border-bottom-color: @popoverArrowOuterColor;
+ top: -@popoverArrowOuterWidth;
+ &:after {
+ top: 1px;
+ margin-left: -@popoverArrowWidth;
+ border-top-width: 0;
+ border-bottom-color: @popoverArrowColor;
+ }
+ }
+
+ &.left .arrow {
+ top: 50%;
+ right: -@popoverArrowOuterWidth;
+ margin-top: -@popoverArrowOuterWidth;
+ border-right-width: 0;
+ border-left-color: #999; // IE8 fallback
+ border-left-color: @popoverArrowOuterColor;
+ &:after {
+ right: 1px;
+ border-right-width: 0;
+ border-left-color: @popoverArrowColor;
+ bottom: -@popoverArrowWidth;
+ }
+ }
+
+}
diff --git a/theme/less/bootstrap-2.3.2/progress-bars.less b/theme/less/bootstrap-2.3.2/progress-bars.less
new file mode 100755
index 0000000..5e0c3dd
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/progress-bars.less
@@ -0,0 +1,122 @@
+//
+// Progress bars
+// --------------------------------------------------
+
+
+// ANIMATIONS
+// ----------
+
+// Webkit
+@-webkit-keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+// Firefox
+@-moz-keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+// IE9
+@-ms-keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+// Opera
+@-o-keyframes progress-bar-stripes {
+ from { background-position: 0 0; }
+ to { background-position: 40px 0; }
+}
+
+// Spec
+@keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+
+
+// THE BARS
+// --------
+
+// Outer container
+.progress {
+ overflow: hidden;
+ height: @baseLineHeight;
+ margin-bottom: @baseLineHeight;
+ #gradient > .vertical(#f5f5f5, #f9f9f9);
+ .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
+ .border-radius(@baseBorderRadius);
+}
+
+// Bar of progress
+.progress .bar {
+ width: 0%;
+ height: 100%;
+ color: @white;
+ float: left;
+ font-size: 12px;
+ text-align: center;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ #gradient > .vertical(#149bdf, #0480be);
+ .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
+ .box-sizing(border-box);
+ .transition(width .6s ease);
+}
+.progress .bar + .bar {
+ .box-shadow(~"inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15)");
+}
+
+// Striped bars
+.progress-striped .bar {
+ #gradient > .striped(#149bdf);
+ .background-size(40px 40px);
+}
+
+// Call animation for the active one
+.progress.active .bar {
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
+ -moz-animation: progress-bar-stripes 2s linear infinite;
+ -ms-animation: progress-bar-stripes 2s linear infinite;
+ -o-animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite;
+}
+
+
+
+// COLORS
+// ------
+
+// Danger (red)
+.progress-danger .bar, .progress .bar-danger {
+ #gradient > .vertical(#ee5f5b, #c43c35);
+}
+.progress-danger.progress-striped .bar, .progress-striped .bar-danger {
+ #gradient > .striped(#ee5f5b);
+}
+
+// Success (green)
+.progress-success .bar, .progress .bar-success {
+ #gradient > .vertical(#62c462, #57a957);
+}
+.progress-success.progress-striped .bar, .progress-striped .bar-success {
+ #gradient > .striped(#62c462);
+}
+
+// Info (teal)
+.progress-info .bar, .progress .bar-info {
+ #gradient > .vertical(#5bc0de, #339bb9);
+}
+.progress-info.progress-striped .bar, .progress-striped .bar-info {
+ #gradient > .striped(#5bc0de);
+}
+
+// Warning (orange)
+.progress-warning .bar, .progress .bar-warning {
+ #gradient > .vertical(lighten(@orange, 15%), @orange);
+}
+.progress-warning.progress-striped .bar, .progress-striped .bar-warning {
+ #gradient > .striped(lighten(@orange, 15%));
+}
diff --git a/theme/less/bootstrap-2.3.2/reset.less b/theme/less/bootstrap-2.3.2/reset.less
new file mode 100755
index 0000000..4806bd5
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/reset.less
@@ -0,0 +1,216 @@
+//
+// Reset CSS
+// Adapted from http://github.com/necolas/normalize.css
+// --------------------------------------------------
+
+
+// Display in IE6-9 and FF3
+// -------------------------
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+nav,
+section {
+ display: block;
+}
+
+// Display block in IE6-9 and FF3
+// -------------------------
+
+audio,
+canvas,
+video {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+}
+
+// Prevents modern browsers from displaying 'audio' without controls
+// -------------------------
+
+audio:not([controls]) {
+ display: none;
+}
+
+// Base settings
+// -------------------------
+
+html {
+ font-size: 100%;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+// Focus states
+a:focus {
+ .tab-focus();
+}
+// Hover & Active
+a:hover,
+a:active {
+ outline: 0;
+}
+
+// Prevents sub and sup affecting line-height in all browsers
+// -------------------------
+
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+sup {
+ top: -0.5em;
+}
+sub {
+ bottom: -0.25em;
+}
+
+// Img border in a's and image quality
+// -------------------------
+
+img {
+ /* Responsive images (ensure images don't scale beyond their parents) */
+ max-width: 100%; /* Part 1: Set a maxium relative to the parent */
+ width: auto\9; /* IE7-8 need help adjusting responsive images */
+ height: auto; /* Part 2: Scale the height according to the width, otherwise you get stretching */
+
+ vertical-align: middle;
+ border: 0;
+ -ms-interpolation-mode: bicubic;
+}
+
+// Prevent max-width from affecting Google Maps
+#map_canvas img,
+.google-maps img {
+ max-width: none;
+}
+
+// Forms
+// -------------------------
+
+// Font size in all browsers, margin changes, misc consistency
+button,
+input,
+select,
+textarea {
+ margin: 0;
+ font-size: 100%;
+ vertical-align: middle;
+}
+button,
+input {
+ *overflow: visible; // Inner spacing ie IE6/7
+ line-height: normal; // FF3/4 have !important on line-height in UA stylesheet
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner { // Inner padding and border oddities in FF3/4
+ padding: 0;
+ border: 0;
+}
+button,
+html input[type="button"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls.
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS.
+ cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.
+}
+label,
+select,
+button,
+input[type="button"],
+input[type="reset"],
+input[type="submit"],
+input[type="radio"],
+input[type="checkbox"] {
+ cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.
+}
+input[type="search"] { // Appearance in Safari/Chrome
+ .box-sizing(content-box);
+ -webkit-appearance: textfield;
+}
+input[type="search"]::-webkit-search-decoration,
+input[type="search"]::-webkit-search-cancel-button {
+ -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5
+}
+textarea {
+ overflow: auto; // Remove vertical scrollbar in IE6-9
+ vertical-align: top; // Readability and alignment cross-browser
+}
+
+
+// Printing
+// -------------------------
+// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css
+
+@media print {
+
+ * {
+ text-shadow: none !important;
+ color: #000 !important; // Black prints faster: h5bp.com/s
+ background: transparent !important;
+ box-shadow: none !important;
+ }
+
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+
+ // Don't show links for images, or javascript/internal links
+ .ir a:after,
+ a[href^="javascript:"]:after,
+ a[href^="#"]:after {
+ content: "";
+ }
+
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+
+ thead {
+ display: table-header-group; // h5bp.com/t
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ img {
+ max-width: 100% !important;
+ }
+
+ @page {
+ margin: 0.5cm;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+}
diff --git a/theme/less/bootstrap-2.3.2/responsive-1200px-min.less b/theme/less/bootstrap-2.3.2/responsive-1200px-min.less
new file mode 100755
index 0000000..4f35ba6
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/responsive-1200px-min.less
@@ -0,0 +1,28 @@
+//
+// Responsive: Large desktop and up
+// --------------------------------------------------
+
+
+@media (min-width: 1200px) {
+
+ // Fixed grid
+ #grid > .core(@gridColumnWidth1200, @gridGutterWidth1200);
+
+ // Fluid grid
+ #grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200);
+
+ // Input grid
+ #grid > .input(@gridColumnWidth1200, @gridGutterWidth1200);
+
+ // Thumbnails
+ .thumbnails {
+ margin-left: -@gridGutterWidth1200;
+ }
+ .thumbnails > li {
+ margin-left: @gridGutterWidth1200;
+ }
+ .row-fluid .thumbnails {
+ margin-left: 0;
+ }
+
+}
diff --git a/theme/less/bootstrap-2.3.2/responsive-767px-max.less b/theme/less/bootstrap-2.3.2/responsive-767px-max.less
new file mode 100755
index 0000000..128f4ce
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/responsive-767px-max.less
@@ -0,0 +1,193 @@
+//
+// Responsive: Landscape phone to desktop/tablet
+// --------------------------------------------------
+
+
+@media (max-width: 767px) {
+
+ // Padding to set content in a bit
+ body {
+ padding-left: 20px;
+ padding-right: 20px;
+ }
+ // Negative indent the now static "fixed" navbar
+ .navbar-fixed-top,
+ .navbar-fixed-bottom,
+ .navbar-static-top {
+ margin-left: -20px;
+ margin-right: -20px;
+ }
+ // Remove padding on container given explicit padding set on body
+ .container-fluid {
+ padding: 0;
+ }
+
+ // TYPOGRAPHY
+ // ----------
+ // Reset horizontal dl
+ .dl-horizontal {
+ dt {
+ float: none;
+ clear: none;
+ width: auto;
+ text-align: left;
+ }
+ dd {
+ margin-left: 0;
+ }
+ }
+
+ // GRID & CONTAINERS
+ // -----------------
+ // Remove width from containers
+ .container {
+ width: auto;
+ }
+ // Fluid rows
+ .row-fluid {
+ width: 100%;
+ }
+ // Undo negative margin on rows and thumbnails
+ .row,
+ .thumbnails {
+ margin-left: 0;
+ }
+ .thumbnails > li {
+ float: none;
+ margin-left: 0; // Reset the default margin for all li elements when no .span* classes are present
+ }
+ // Make all grid-sized elements block level again
+ [class*="span"],
+ .uneditable-input[class*="span"], // Makes uneditable inputs full-width when using grid sizing
+ .row-fluid [class*="span"] {
+ float: none;
+ display: block;
+ width: 100%;
+ margin-left: 0;
+ .box-sizing(border-box);
+ }
+ .span12,
+ .row-fluid .span12 {
+ width: 100%;
+ .box-sizing(border-box);
+ }
+ .row-fluid [class*="offset"]:first-child {
+ margin-left: 0;
+ }
+
+ // FORM FIELDS
+ // -----------
+ // Make span* classes full width
+ .input-large,
+ .input-xlarge,
+ .input-xxlarge,
+ input[class*="span"],
+ select[class*="span"],
+ textarea[class*="span"],
+ .uneditable-input {
+ .input-block-level();
+ }
+ // But don't let it screw up prepend/append inputs
+ .input-prepend input,
+ .input-append input,
+ .input-prepend input[class*="span"],
+ .input-append input[class*="span"] {
+ display: inline-block; // redeclare so they don't wrap to new lines
+ width: auto;
+ }
+ .controls-row [class*="span"] + [class*="span"] {
+ margin-left: 0;
+ }
+
+ // Modals
+ .modal {
+ position: fixed;
+ top: 20px;
+ left: 20px;
+ right: 20px;
+ width: auto;
+ margin: 0;
+ &.fade { top: -100px; }
+ &.fade.in { top: 20px; }
+ }
+
+}
+
+
+
+// UP TO LANDSCAPE PHONE
+// ---------------------
+
+@media (max-width: 480px) {
+
+ // Smooth out the collapsing/expanding nav
+ .nav-collapse {
+ -webkit-transform: translate3d(0, 0, 0); // activate the GPU
+ }
+
+ // Block level the page header small tag for readability
+ .page-header h1 small {
+ display: block;
+ line-height: @baseLineHeight;
+ }
+
+ // Update checkboxes for iOS
+ input[type="checkbox"],
+ input[type="radio"] {
+ border: 1px solid #ccc;
+ }
+
+ // Remove the horizontal form styles
+ .form-horizontal {
+ .control-label {
+ float: none;
+ width: auto;
+ padding-top: 0;
+ text-align: left;
+ }
+ // Move over all input controls and content
+ .controls {
+ margin-left: 0;
+ }
+ // Move the options list down to align with labels
+ .control-list {
+ padding-top: 0; // has to be padding because margin collaspes
+ }
+ // Move over buttons in .form-actions to align with .controls
+ .form-actions {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+ }
+
+ // Medias
+ // Reset float and spacing to stack
+ .media .pull-left,
+ .media .pull-right {
+ float: none;
+ display: block;
+ margin-bottom: 10px;
+ }
+ // Remove side margins since we stack instead of indent
+ .media-object {
+ margin-right: 0;
+ margin-left: 0;
+ }
+
+ // Modals
+ .modal {
+ top: 10px;
+ left: 10px;
+ right: 10px;
+ }
+ .modal-header .close {
+ padding: 10px;
+ margin: -10px;
+ }
+
+ // Carousel
+ .carousel-caption {
+ position: static;
+ }
+
+}
diff --git a/theme/less/bootstrap-2.3.2/responsive-768px-979px.less b/theme/less/bootstrap-2.3.2/responsive-768px-979px.less
new file mode 100755
index 0000000..8e8c486
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/responsive-768px-979px.less
@@ -0,0 +1,19 @@
+//
+// Responsive: Tablet to desktop
+// --------------------------------------------------
+
+
+@media (min-width: 768px) and (max-width: 979px) {
+
+ // Fixed grid
+ #grid > .core(@gridColumnWidth768, @gridGutterWidth768);
+
+ // Fluid grid
+ #grid > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768);
+
+ // Input grid
+ #grid > .input(@gridColumnWidth768, @gridGutterWidth768);
+
+ // No need to reset .thumbnails here since it's the same @gridGutterWidth
+
+}
diff --git a/theme/less/bootstrap-2.3.2/responsive-navbar.less b/theme/less/bootstrap-2.3.2/responsive-navbar.less
new file mode 100755
index 0000000..21cd3ba
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/responsive-navbar.less
@@ -0,0 +1,189 @@
+//
+// Responsive: Navbar
+// --------------------------------------------------
+
+
+// TABLETS AND BELOW
+// -----------------
+@media (max-width: @navbarCollapseWidth) {
+
+ // UNFIX THE TOPBAR
+ // ----------------
+ // Remove any padding from the body
+ body {
+ padding-top: 0;
+ }
+ // Unfix the navbars
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ position: static;
+ }
+ .navbar-fixed-top {
+ margin-bottom: @baseLineHeight;
+ }
+ .navbar-fixed-bottom {
+ margin-top: @baseLineHeight;
+ }
+ .navbar-fixed-top .navbar-inner,
+ .navbar-fixed-bottom .navbar-inner {
+ padding: 5px;
+ }
+ .navbar .container {
+ width: auto;
+ padding: 0;
+ }
+ // Account for brand name
+ .navbar .brand {
+ padding-left: 10px;
+ padding-right: 10px;
+ margin: 0 0 0 -5px;
+ }
+
+ // COLLAPSIBLE NAVBAR
+ // ------------------
+ // Nav collapse clears brand
+ .nav-collapse {
+ clear: both;
+ }
+ // Block-level the nav
+ .nav-collapse .nav {
+ float: none;
+ margin: 0 0 (@baseLineHeight / 2);
+ }
+ .nav-collapse .nav > li {
+ float: none;
+ }
+ .nav-collapse .nav > li > a {
+ margin-bottom: 2px;
+ }
+ .nav-collapse .nav > .divider-vertical {
+ display: none;
+ }
+ .nav-collapse .nav .nav-header {
+ color: @navbarText;
+ text-shadow: none;
+ }
+ // Nav and dropdown links in navbar
+ .nav-collapse .nav > li > a,
+ .nav-collapse .dropdown-menu a {
+ padding: 9px 15px;
+ font-weight: bold;
+ color: @navbarLinkColor;
+ .border-radius(3px);
+ }
+ // Buttons
+ .nav-collapse .btn {
+ padding: 4px 10px 4px;
+ font-weight: normal;
+ .border-radius(@baseBorderRadius);
+ }
+ .nav-collapse .dropdown-menu li + li a {
+ margin-bottom: 2px;
+ }
+ .nav-collapse .nav > li > a:hover,
+ .nav-collapse .nav > li > a:focus,
+ .nav-collapse .dropdown-menu a:hover,
+ .nav-collapse .dropdown-menu a:focus {
+ background-color: @navbarBackground;
+ }
+ .navbar-inverse .nav-collapse .nav > li > a,
+ .navbar-inverse .nav-collapse .dropdown-menu a {
+ color: @navbarInverseLinkColor;
+ }
+ .navbar-inverse .nav-collapse .nav > li > a:hover,
+ .navbar-inverse .nav-collapse .nav > li > a:focus,
+ .navbar-inverse .nav-collapse .dropdown-menu a:hover,
+ .navbar-inverse .nav-collapse .dropdown-menu a:focus {
+ background-color: @navbarInverseBackground;
+ }
+ // Buttons in the navbar
+ .nav-collapse.in .btn-group {
+ margin-top: 5px;
+ padding: 0;
+ }
+ // Dropdowns in the navbar
+ .nav-collapse .dropdown-menu {
+ position: static;
+ top: auto;
+ left: auto;
+ float: none;
+ display: none;
+ max-width: none;
+ margin: 0 15px;
+ padding: 0;
+ background-color: transparent;
+ border: none;
+ .border-radius(0);
+ .box-shadow(none);
+ }
+ .nav-collapse .open > .dropdown-menu {
+ display: block;
+ }
+
+ .nav-collapse .dropdown-menu:before,
+ .nav-collapse .dropdown-menu:after {
+ display: none;
+ }
+ .nav-collapse .dropdown-menu .divider {
+ display: none;
+ }
+ .nav-collapse .nav > li > .dropdown-menu {
+ &:before,
+ &:after {
+ display: none;
+ }
+ }
+ // Forms in navbar
+ .nav-collapse .navbar-form,
+ .nav-collapse .navbar-search {
+ float: none;
+ padding: (@baseLineHeight / 2) 15px;
+ margin: (@baseLineHeight / 2) 0;
+ border-top: 1px solid @navbarBackground;
+ border-bottom: 1px solid @navbarBackground;
+ .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1)");
+ }
+ .navbar-inverse .nav-collapse .navbar-form,
+ .navbar-inverse .nav-collapse .navbar-search {
+ border-top-color: @navbarInverseBackground;
+ border-bottom-color: @navbarInverseBackground;
+ }
+ // Pull right (secondary) nav content
+ .navbar .nav-collapse .nav.pull-right {
+ float: none;
+ margin-left: 0;
+ }
+ // Hide everything in the navbar save .brand and toggle button */
+ .nav-collapse,
+ .nav-collapse.collapse {
+ overflow: hidden;
+ height: 0;
+ }
+ // Navbar button
+ .navbar .btn-navbar {
+ display: block;
+ }
+
+ // STATIC NAVBAR
+ // -------------
+ .navbar-static .navbar-inner {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
+
+}
+
+
+// DEFAULT DESKTOP
+// ---------------
+
+@media (min-width: @navbarCollapseDesktopWidth) {
+
+ // Required to make the collapsing navbar work on regular desktops
+ .nav-collapse.collapse {
+ height: auto !important;
+ overflow: visible !important;
+ }
+
+}
diff --git a/theme/less/bootstrap-2.3.2/responsive-utilities.less b/theme/less/bootstrap-2.3.2/responsive-utilities.less
new file mode 100755
index 0000000..bf43e8e
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/responsive-utilities.less
@@ -0,0 +1,59 @@
+//
+// Responsive: Utility classes
+// --------------------------------------------------
+
+
+// IE10 Metro responsive
+// Required for Windows 8 Metro split-screen snapping with IE10
+// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
+@-ms-viewport{
+ width: device-width;
+}
+
+// Hide from screenreaders and browsers
+// Credit: HTML5 Boilerplate
+.hidden {
+ display: none;
+ visibility: hidden;
+}
+
+// Visibility utilities
+
+// For desktops
+.visible-phone { display: none !important; }
+.visible-tablet { display: none !important; }
+.hidden-phone { }
+.hidden-tablet { }
+.hidden-desktop { display: none !important; }
+.visible-desktop { display: inherit !important; }
+
+// Tablets & small desktops only
+@media (min-width: 768px) and (max-width: 979px) {
+ // Hide everything else
+ .hidden-desktop { display: inherit !important; }
+ .visible-desktop { display: none !important ; }
+ // Show
+ .visible-tablet { display: inherit !important; }
+ // Hide
+ .hidden-tablet { display: none !important; }
+}
+
+// Phones only
+@media (max-width: 767px) {
+ // Hide everything else
+ .hidden-desktop { display: inherit !important; }
+ .visible-desktop { display: none !important; }
+ // Show
+ .visible-phone { display: inherit !important; } // Use inherit to restore previous behavior
+ // Hide
+ .hidden-phone { display: none !important; }
+}
+
+// Print utilities
+.visible-print { display: none !important; }
+.hidden-print { }
+
+@media print {
+ .visible-print { display: inherit !important; }
+ .hidden-print { display: none !important; }
+}
diff --git a/theme/less/bootstrap-2.3.2/responsive.less b/theme/less/bootstrap-2.3.2/responsive.less
new file mode 100755
index 0000000..9e5f9b1
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/responsive.less
@@ -0,0 +1,48 @@
+/*!
+ * Bootstrap Responsive v2.3.2
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+
+
+// Responsive.less
+// For phone and tablet devices
+// -------------------------------------------------------------
+
+
+// REPEAT VARIABLES & MIXINS
+// -------------------------
+// Required since we compile the responsive stuff separately
+
+@import "variables.less"; // Modify this for custom colors, font-sizes, etc
+@import "mixins.less";
+
+
+// RESPONSIVE CLASSES
+// ------------------
+
+@import "responsive-utilities.less";
+
+
+// MEDIA QUERIES
+// ------------------
+
+// Large desktops
+@import "responsive-1200px-min.less";
+
+// Tablets to regular desktops
+@import "responsive-768px-979px.less";
+
+// Phones to portrait tablets and narrow desktops
+@import "responsive-767px-max.less";
+
+
+// RESPONSIVE NAVBAR
+// ------------------
+
+// From 979px and below, show a button to toggle navbar contents
+@import "responsive-navbar.less";
diff --git a/theme/less/bootstrap-2.3.2/scaffolding.less b/theme/less/bootstrap-2.3.2/scaffolding.less
new file mode 100755
index 0000000..f17e8ca
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/scaffolding.less
@@ -0,0 +1,53 @@
+//
+// Scaffolding
+// --------------------------------------------------
+
+
+// Body reset
+// -------------------------
+
+body {
+ margin: 0;
+ font-family: @baseFontFamily;
+ font-size: @baseFontSize;
+ line-height: @baseLineHeight;
+ color: @textColor;
+ background-color: @bodyBackground;
+}
+
+
+// Links
+// -------------------------
+
+a {
+ color: @linkColor;
+ text-decoration: none;
+}
+a:hover,
+a:focus {
+ color: @linkColorHover;
+ text-decoration: underline;
+}
+
+
+// Images
+// -------------------------
+
+// Rounded corners
+.img-rounded {
+ .border-radius(6px);
+}
+
+// Add polaroid-esque trim
+.img-polaroid {
+ padding: 4px;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0,0,0,.2);
+ .box-shadow(0 1px 3px rgba(0,0,0,.1));
+}
+
+// Perfect circle
+.img-circle {
+ .border-radius(500px); // crank the border-radius so it works with most reasonably sized images
+}
diff --git a/theme/less/bootstrap-2.3.2/sprites.less b/theme/less/bootstrap-2.3.2/sprites.less
new file mode 100755
index 0000000..1812bf7
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/sprites.less
@@ -0,0 +1,197 @@
+//
+// Sprites
+// --------------------------------------------------
+
+
+// ICONS
+// -----
+
+// All icons receive the styles of the tag with a base class
+// of .i and are then given a unique class to add width, height,
+// and background-position. Your resulting HTML will look like
+// .
+
+// For the white version of the icons, just add the .icon-white class:
+//
+
+[class^="icon-"],
+[class*=" icon-"] {
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ .ie7-restore-right-whitespace();
+ line-height: 14px;
+ vertical-align: text-top;
+ background-image: url("@{iconSpritePath}");
+ background-position: 14px 14px;
+ background-repeat: no-repeat;
+ margin-top: 1px;
+}
+
+/* White icons with optional class, or on hover/focus/active states of certain elements */
+.icon-white,
+.nav-pills > .active > a > [class^="icon-"],
+.nav-pills > .active > a > [class*=" icon-"],
+.nav-list > .active > a > [class^="icon-"],
+.nav-list > .active > a > [class*=" icon-"],
+.navbar-inverse .nav > .active > a > [class^="icon-"],
+.navbar-inverse .nav > .active > a > [class*=" icon-"],
+.dropdown-menu > li > a:hover > [class^="icon-"],
+.dropdown-menu > li > a:focus > [class^="icon-"],
+.dropdown-menu > li > a:hover > [class*=" icon-"],
+.dropdown-menu > li > a:focus > [class*=" icon-"],
+.dropdown-menu > .active > a > [class^="icon-"],
+.dropdown-menu > .active > a > [class*=" icon-"],
+.dropdown-submenu:hover > a > [class^="icon-"],
+.dropdown-submenu:focus > a > [class^="icon-"],
+.dropdown-submenu:hover > a > [class*=" icon-"],
+.dropdown-submenu:focus > a > [class*=" icon-"] {
+ background-image: url("@{iconWhiteSpritePath}");
+}
+
+.icon-glass { background-position: 0 0; }
+.icon-music { background-position: -24px 0; }
+.icon-search { background-position: -48px 0; }
+.icon-envelope { background-position: -72px 0; }
+.icon-heart { background-position: -96px 0; }
+.icon-star { background-position: -120px 0; }
+.icon-star-empty { background-position: -144px 0; }
+.icon-user { background-position: -168px 0; }
+.icon-film { background-position: -192px 0; }
+.icon-th-large { background-position: -216px 0; }
+.icon-th { background-position: -240px 0; }
+.icon-th-list { background-position: -264px 0; }
+.icon-ok { background-position: -288px 0; }
+.icon-remove { background-position: -312px 0; }
+.icon-zoom-in { background-position: -336px 0; }
+.icon-zoom-out { background-position: -360px 0; }
+.icon-off { background-position: -384px 0; }
+.icon-signal { background-position: -408px 0; }
+.icon-cog { background-position: -432px 0; }
+.icon-trash { background-position: -456px 0; }
+
+.icon-home { background-position: 0 -24px; }
+.icon-file { background-position: -24px -24px; }
+.icon-time { background-position: -48px -24px; }
+.icon-road { background-position: -72px -24px; }
+.icon-download-alt { background-position: -96px -24px; }
+.icon-download { background-position: -120px -24px; }
+.icon-upload { background-position: -144px -24px; }
+.icon-inbox { background-position: -168px -24px; }
+.icon-play-circle { background-position: -192px -24px; }
+.icon-repeat { background-position: -216px -24px; }
+.icon-refresh { background-position: -240px -24px; }
+.icon-list-alt { background-position: -264px -24px; }
+.icon-lock { background-position: -287px -24px; } // 1px off
+.icon-flag { background-position: -312px -24px; }
+.icon-headphones { background-position: -336px -24px; }
+.icon-volume-off { background-position: -360px -24px; }
+.icon-volume-down { background-position: -384px -24px; }
+.icon-volume-up { background-position: -408px -24px; }
+.icon-qrcode { background-position: -432px -24px; }
+.icon-barcode { background-position: -456px -24px; }
+
+.icon-tag { background-position: 0 -48px; }
+.icon-tags { background-position: -25px -48px; } // 1px off
+.icon-book { background-position: -48px -48px; }
+.icon-bookmark { background-position: -72px -48px; }
+.icon-print { background-position: -96px -48px; }
+.icon-camera { background-position: -120px -48px; }
+.icon-font { background-position: -144px -48px; }
+.icon-bold { background-position: -167px -48px; } // 1px off
+.icon-italic { background-position: -192px -48px; }
+.icon-text-height { background-position: -216px -48px; }
+.icon-text-width { background-position: -240px -48px; }
+.icon-align-left { background-position: -264px -48px; }
+.icon-align-center { background-position: -288px -48px; }
+.icon-align-right { background-position: -312px -48px; }
+.icon-align-justify { background-position: -336px -48px; }
+.icon-list { background-position: -360px -48px; }
+.icon-indent-left { background-position: -384px -48px; }
+.icon-indent-right { background-position: -408px -48px; }
+.icon-facetime-video { background-position: -432px -48px; }
+.icon-picture { background-position: -456px -48px; }
+
+.icon-pencil { background-position: 0 -72px; }
+.icon-map-marker { background-position: -24px -72px; }
+.icon-adjust { background-position: -48px -72px; }
+.icon-tint { background-position: -72px -72px; }
+.icon-edit { background-position: -96px -72px; }
+.icon-share { background-position: -120px -72px; }
+.icon-check { background-position: -144px -72px; }
+.icon-move { background-position: -168px -72px; }
+.icon-step-backward { background-position: -192px -72px; }
+.icon-fast-backward { background-position: -216px -72px; }
+.icon-backward { background-position: -240px -72px; }
+.icon-play { background-position: -264px -72px; }
+.icon-pause { background-position: -288px -72px; }
+.icon-stop { background-position: -312px -72px; }
+.icon-forward { background-position: -336px -72px; }
+.icon-fast-forward { background-position: -360px -72px; }
+.icon-step-forward { background-position: -384px -72px; }
+.icon-eject { background-position: -408px -72px; }
+.icon-chevron-left { background-position: -432px -72px; }
+.icon-chevron-right { background-position: -456px -72px; }
+
+.icon-plus-sign { background-position: 0 -96px; }
+.icon-minus-sign { background-position: -24px -96px; }
+.icon-remove-sign { background-position: -48px -96px; }
+.icon-ok-sign { background-position: -72px -96px; }
+.icon-question-sign { background-position: -96px -96px; }
+.icon-info-sign { background-position: -120px -96px; }
+.icon-screenshot { background-position: -144px -96px; }
+.icon-remove-circle { background-position: -168px -96px; }
+.icon-ok-circle { background-position: -192px -96px; }
+.icon-ban-circle { background-position: -216px -96px; }
+.icon-arrow-left { background-position: -240px -96px; }
+.icon-arrow-right { background-position: -264px -96px; }
+.icon-arrow-up { background-position: -289px -96px; } // 1px off
+.icon-arrow-down { background-position: -312px -96px; }
+.icon-share-alt { background-position: -336px -96px; }
+.icon-resize-full { background-position: -360px -96px; }
+.icon-resize-small { background-position: -384px -96px; }
+.icon-plus { background-position: -408px -96px; }
+.icon-minus { background-position: -433px -96px; }
+.icon-asterisk { background-position: -456px -96px; }
+
+.icon-exclamation-sign { background-position: 0 -120px; }
+.icon-gift { background-position: -24px -120px; }
+.icon-leaf { background-position: -48px -120px; }
+.icon-fire { background-position: -72px -120px; }
+.icon-eye-open { background-position: -96px -120px; }
+.icon-eye-close { background-position: -120px -120px; }
+.icon-warning-sign { background-position: -144px -120px; }
+.icon-plane { background-position: -168px -120px; }
+.icon-calendar { background-position: -192px -120px; }
+.icon-random { background-position: -216px -120px; width: 16px; }
+.icon-comment { background-position: -240px -120px; }
+.icon-magnet { background-position: -264px -120px; }
+.icon-chevron-up { background-position: -288px -120px; }
+.icon-chevron-down { background-position: -313px -119px; } // 1px, 1px off
+.icon-retweet { background-position: -336px -120px; }
+.icon-shopping-cart { background-position: -360px -120px; }
+.icon-folder-close { background-position: -384px -120px; width: 16px; }
+.icon-folder-open { background-position: -408px -120px; width: 16px; }
+.icon-resize-vertical { background-position: -432px -119px; } // 1px, 1px off
+.icon-resize-horizontal { background-position: -456px -118px; } // 1px, 2px off
+
+.icon-hdd { background-position: 0 -144px; }
+.icon-bullhorn { background-position: -24px -144px; }
+.icon-bell { background-position: -48px -144px; }
+.icon-certificate { background-position: -72px -144px; }
+.icon-thumbs-up { background-position: -96px -144px; }
+.icon-thumbs-down { background-position: -120px -144px; }
+.icon-hand-right { background-position: -144px -144px; }
+.icon-hand-left { background-position: -168px -144px; }
+.icon-hand-up { background-position: -192px -144px; }
+.icon-hand-down { background-position: -216px -144px; }
+.icon-circle-arrow-right { background-position: -240px -144px; }
+.icon-circle-arrow-left { background-position: -264px -144px; }
+.icon-circle-arrow-up { background-position: -288px -144px; }
+.icon-circle-arrow-down { background-position: -312px -144px; }
+.icon-globe { background-position: -336px -144px; }
+.icon-wrench { background-position: -360px -144px; }
+.icon-tasks { background-position: -384px -144px; }
+.icon-filter { background-position: -408px -144px; }
+.icon-briefcase { background-position: -432px -144px; }
+.icon-fullscreen { background-position: -456px -144px; }
diff --git a/theme/less/bootstrap-2.3.2/tables.less b/theme/less/bootstrap-2.3.2/tables.less
new file mode 100755
index 0000000..0e35271
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/tables.less
@@ -0,0 +1,244 @@
+//
+// Tables
+// --------------------------------------------------
+
+
+// BASE TABLES
+// -----------------
+
+table {
+ max-width: 100%;
+ background-color: @tableBackground;
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+// BASELINE STYLES
+// ---------------
+
+.table {
+ width: 100%;
+ margin-bottom: @baseLineHeight;
+ // Cells
+ th,
+ td {
+ padding: 8px;
+ line-height: @baseLineHeight;
+ text-align: left;
+ vertical-align: top;
+ border-top: 1px solid @tableBorder;
+ }
+ th {
+ font-weight: bold;
+ }
+ // Bottom align for column headings
+ thead th {
+ vertical-align: bottom;
+ }
+ // Remove top border from thead by default
+ caption + thead tr:first-child th,
+ caption + thead tr:first-child td,
+ colgroup + thead tr:first-child th,
+ colgroup + thead tr:first-child td,
+ thead:first-child tr:first-child th,
+ thead:first-child tr:first-child td {
+ border-top: 0;
+ }
+ // Account for multiple tbody instances
+ tbody + tbody {
+ border-top: 2px solid @tableBorder;
+ }
+
+ // Nesting
+ .table {
+ background-color: @bodyBackground;
+ }
+}
+
+
+
+// CONDENSED TABLE W/ HALF PADDING
+// -------------------------------
+
+.table-condensed {
+ th,
+ td {
+ padding: 4px 5px;
+ }
+}
+
+
+// BORDERED VERSION
+// ----------------
+
+.table-bordered {
+ border: 1px solid @tableBorder;
+ border-collapse: separate; // Done so we can round those corners!
+ *border-collapse: collapse; // IE7 can't round corners anyway
+ border-left: 0;
+ .border-radius(@baseBorderRadius);
+ th,
+ td {
+ border-left: 1px solid @tableBorder;
+ }
+ // Prevent a double border
+ caption + thead tr:first-child th,
+ caption + tbody tr:first-child th,
+ caption + tbody tr:first-child td,
+ colgroup + thead tr:first-child th,
+ colgroup + tbody tr:first-child th,
+ colgroup + tbody tr:first-child td,
+ thead:first-child tr:first-child th,
+ tbody:first-child tr:first-child th,
+ tbody:first-child tr:first-child td {
+ border-top: 0;
+ }
+ // For first th/td in the first row in the first thead or tbody
+ thead:first-child tr:first-child > th:first-child,
+ tbody:first-child tr:first-child > td:first-child,
+ tbody:first-child tr:first-child > th:first-child {
+ .border-top-left-radius(@baseBorderRadius);
+ }
+ // For last th/td in the first row in the first thead or tbody
+ thead:first-child tr:first-child > th:last-child,
+ tbody:first-child tr:first-child > td:last-child,
+ tbody:first-child tr:first-child > th:last-child {
+ .border-top-right-radius(@baseBorderRadius);
+ }
+ // For first th/td (can be either) in the last row in the last thead, tbody, and tfoot
+ thead:last-child tr:last-child > th:first-child,
+ tbody:last-child tr:last-child > td:first-child,
+ tbody:last-child tr:last-child > th:first-child,
+ tfoot:last-child tr:last-child > td:first-child,
+ tfoot:last-child tr:last-child > th:first-child {
+ .border-bottom-left-radius(@baseBorderRadius);
+ }
+ // For last th/td (can be either) in the last row in the last thead, tbody, and tfoot
+ thead:last-child tr:last-child > th:last-child,
+ tbody:last-child tr:last-child > td:last-child,
+ tbody:last-child tr:last-child > th:last-child,
+ tfoot:last-child tr:last-child > td:last-child,
+ tfoot:last-child tr:last-child > th:last-child {
+ .border-bottom-right-radius(@baseBorderRadius);
+ }
+
+ // Clear border-radius for first and last td in the last row in the last tbody for table with tfoot
+ tfoot + tbody:last-child tr:last-child td:first-child {
+ .border-bottom-left-radius(0);
+ }
+ tfoot + tbody:last-child tr:last-child td:last-child {
+ .border-bottom-right-radius(0);
+ }
+
+ // Special fixes to round the left border on the first td/th
+ caption + thead tr:first-child th:first-child,
+ caption + tbody tr:first-child td:first-child,
+ colgroup + thead tr:first-child th:first-child,
+ colgroup + tbody tr:first-child td:first-child {
+ .border-top-left-radius(@baseBorderRadius);
+ }
+ caption + thead tr:first-child th:last-child,
+ caption + tbody tr:first-child td:last-child,
+ colgroup + thead tr:first-child th:last-child,
+ colgroup + tbody tr:first-child td:last-child {
+ .border-top-right-radius(@baseBorderRadius);
+ }
+
+}
+
+
+
+
+// ZEBRA-STRIPING
+// --------------
+
+// Default zebra-stripe styles (alternating gray and transparent backgrounds)
+.table-striped {
+ tbody {
+ > tr:nth-child(odd) > td,
+ > tr:nth-child(odd) > th {
+ background-color: @tableBackgroundAccent;
+ }
+ }
+}
+
+
+// HOVER EFFECT
+// ------------
+// Placed here since it has to come after the potential zebra striping
+.table-hover {
+ tbody {
+ tr:hover > td,
+ tr:hover > th {
+ background-color: @tableBackgroundHover;
+ }
+ }
+}
+
+
+// TABLE CELL SIZING
+// -----------------
+
+// Reset default grid behavior
+table td[class*="span"],
+table th[class*="span"],
+.row-fluid table td[class*="span"],
+.row-fluid table th[class*="span"] {
+ display: table-cell;
+ float: none; // undo default grid column styles
+ margin-left: 0; // undo default grid column styles
+}
+
+// Change the column widths to account for td/th padding
+.table td,
+.table th {
+ &.span1 { .tableColumns(1); }
+ &.span2 { .tableColumns(2); }
+ &.span3 { .tableColumns(3); }
+ &.span4 { .tableColumns(4); }
+ &.span5 { .tableColumns(5); }
+ &.span6 { .tableColumns(6); }
+ &.span7 { .tableColumns(7); }
+ &.span8 { .tableColumns(8); }
+ &.span9 { .tableColumns(9); }
+ &.span10 { .tableColumns(10); }
+ &.span11 { .tableColumns(11); }
+ &.span12 { .tableColumns(12); }
+}
+
+
+
+// TABLE BACKGROUNDS
+// -----------------
+// Exact selectors below required to override .table-striped
+
+.table tbody tr {
+ &.success > td {
+ background-color: @successBackground;
+ }
+ &.error > td {
+ background-color: @errorBackground;
+ }
+ &.warning > td {
+ background-color: @warningBackground;
+ }
+ &.info > td {
+ background-color: @infoBackground;
+ }
+}
+
+// Hover states for .table-hover
+.table-hover tbody tr {
+ &.success:hover > td {
+ background-color: darken(@successBackground, 5%);
+ }
+ &.error:hover > td {
+ background-color: darken(@errorBackground, 5%);
+ }
+ &.warning:hover > td {
+ background-color: darken(@warningBackground, 5%);
+ }
+ &.info:hover > td {
+ background-color: darken(@infoBackground, 5%);
+ }
+}
diff --git a/theme/less/bootstrap-2.3.2/thumbnails.less b/theme/less/bootstrap-2.3.2/thumbnails.less
new file mode 100755
index 0000000..4fd07d2
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/thumbnails.less
@@ -0,0 +1,53 @@
+//
+// Thumbnails
+// --------------------------------------------------
+
+
+// Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files
+
+// Make wrapper ul behave like the grid
+.thumbnails {
+ margin-left: -@gridGutterWidth;
+ list-style: none;
+ .clearfix();
+}
+// Fluid rows have no left margin
+.row-fluid .thumbnails {
+ margin-left: 0;
+}
+
+// Float li to make thumbnails appear in a row
+.thumbnails > li {
+ float: left; // Explicity set the float since we don't require .span* classes
+ margin-bottom: @baseLineHeight;
+ margin-left: @gridGutterWidth;
+}
+
+// The actual thumbnail (can be `a` or `div`)
+.thumbnail {
+ display: block;
+ padding: 4px;
+ line-height: @baseLineHeight;
+ border: 1px solid #ddd;
+ .border-radius(@baseBorderRadius);
+ .box-shadow(0 1px 3px rgba(0,0,0,.055));
+ .transition(all .2s ease-in-out);
+}
+// Add a hover/focus state for linked versions only
+a.thumbnail:hover,
+a.thumbnail:focus {
+ border-color: @linkColor;
+ .box-shadow(0 1px 4px rgba(0,105,214,.25));
+}
+
+// Images and captions
+.thumbnail > img {
+ display: block;
+ max-width: 100%;
+ margin-left: auto;
+ margin-right: auto;
+}
+.thumbnail .caption {
+ padding: 9px;
+ color: @gray;
+}
diff --git a/theme/less/bootstrap-2.3.2/tooltip.less b/theme/less/bootstrap-2.3.2/tooltip.less
new file mode 100755
index 0000000..83d5f2b
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/tooltip.less
@@ -0,0 +1,70 @@
+//
+// Tooltips
+// --------------------------------------------------
+
+
+// Base class
+.tooltip {
+ position: absolute;
+ z-index: @zindexTooltip;
+ display: block;
+ visibility: visible;
+ font-size: 11px;
+ line-height: 1.4;
+ .opacity(0);
+ &.in { .opacity(80); }
+ &.top { margin-top: -3px; padding: 5px 0; }
+ &.right { margin-left: 3px; padding: 0 5px; }
+ &.bottom { margin-top: 3px; padding: 5px 0; }
+ &.left { margin-left: -3px; padding: 0 5px; }
+}
+
+// Wrapper for the tooltip content
+.tooltip-inner {
+ max-width: 200px;
+ padding: 8px;
+ color: @tooltipColor;
+ text-align: center;
+ text-decoration: none;
+ background-color: @tooltipBackground;
+ .border-radius(@baseBorderRadius);
+}
+
+// Arrows
+.tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.tooltip {
+ &.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -@tooltipArrowWidth;
+ border-width: @tooltipArrowWidth @tooltipArrowWidth 0;
+ border-top-color: @tooltipArrowColor;
+ }
+ &.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -@tooltipArrowWidth;
+ border-width: @tooltipArrowWidth @tooltipArrowWidth @tooltipArrowWidth 0;
+ border-right-color: @tooltipArrowColor;
+ }
+ &.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -@tooltipArrowWidth;
+ border-width: @tooltipArrowWidth 0 @tooltipArrowWidth @tooltipArrowWidth;
+ border-left-color: @tooltipArrowColor;
+ }
+ &.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -@tooltipArrowWidth;
+ border-width: 0 @tooltipArrowWidth @tooltipArrowWidth;
+ border-bottom-color: @tooltipArrowColor;
+ }
+}
diff --git a/theme/less/bootstrap-2.3.2/type.less b/theme/less/bootstrap-2.3.2/type.less
new file mode 100755
index 0000000..337138a
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/type.less
@@ -0,0 +1,247 @@
+//
+// Typography
+// --------------------------------------------------
+
+
+// Body text
+// -------------------------
+
+p {
+ margin: 0 0 @baseLineHeight / 2;
+}
+.lead {
+ margin-bottom: @baseLineHeight;
+ font-size: @baseFontSize * 1.5;
+ font-weight: 200;
+ line-height: @baseLineHeight * 1.5;
+}
+
+
+// Emphasis & misc
+// -------------------------
+
+// Ex: 14px base font * 85% = about 12px
+small { font-size: 85%; }
+
+strong { font-weight: bold; }
+em { font-style: italic; }
+cite { font-style: normal; }
+
+// Utility classes
+.muted { color: @grayLight; }
+a.muted:hover,
+a.muted:focus { color: darken(@grayLight, 10%); }
+
+.text-warning { color: @warningText; }
+a.text-warning:hover,
+a.text-warning:focus { color: darken(@warningText, 10%); }
+
+.text-error { color: @errorText; }
+a.text-error:hover,
+a.text-error:focus { color: darken(@errorText, 10%); }
+
+.text-info { color: @infoText; }
+a.text-info:hover,
+a.text-info:focus { color: darken(@infoText, 10%); }
+
+.text-success { color: @successText; }
+a.text-success:hover,
+a.text-success:focus { color: darken(@successText, 10%); }
+
+.text-left { text-align: left; }
+.text-right { text-align: right; }
+.text-center { text-align: center; }
+
+
+// Headings
+// -------------------------
+
+h1, h2, h3, h4, h5, h6 {
+ margin: (@baseLineHeight / 2) 0;
+ font-family: @headingsFontFamily;
+ font-weight: @headingsFontWeight;
+ line-height: @baseLineHeight;
+ color: @headingsColor;
+ text-rendering: optimizelegibility; // Fix the character spacing for headings
+ small {
+ font-weight: normal;
+ line-height: 1;
+ color: @grayLight;
+ }
+}
+
+h1,
+h2,
+h3 { line-height: @baseLineHeight * 2; }
+
+h1 { font-size: @baseFontSize * 2.75; } // ~38px
+h2 { font-size: @baseFontSize * 2.25; } // ~32px
+h3 { font-size: @baseFontSize * 1.75; } // ~24px
+h4 { font-size: @baseFontSize * 1.25; } // ~18px
+h5 { font-size: @baseFontSize; }
+h6 { font-size: @baseFontSize * 0.85; } // ~12px
+
+h1 small { font-size: @baseFontSize * 1.75; } // ~24px
+h2 small { font-size: @baseFontSize * 1.25; } // ~18px
+h3 small { font-size: @baseFontSize; }
+h4 small { font-size: @baseFontSize; }
+
+
+// Page header
+// -------------------------
+
+.page-header {
+ padding-bottom: (@baseLineHeight / 2) - 1;
+ margin: @baseLineHeight 0 (@baseLineHeight * 1.5);
+ border-bottom: 1px solid @grayLighter;
+}
+
+
+
+// Lists
+// --------------------------------------------------
+
+// Unordered and Ordered lists
+ul, ol {
+ padding: 0;
+ margin: 0 0 @baseLineHeight / 2 25px;
+}
+ul ul,
+ul ol,
+ol ol,
+ol ul {
+ margin-bottom: 0;
+}
+li {
+ line-height: @baseLineHeight;
+}
+
+// Remove default list styles
+ul.unstyled,
+ol.unstyled {
+ margin-left: 0;
+ list-style: none;
+}
+
+// Single-line list items
+ul.inline,
+ol.inline {
+ margin-left: 0;
+ list-style: none;
+ > li {
+ display: inline-block;
+ .ie7-inline-block();
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+}
+
+// Description Lists
+dl {
+ margin-bottom: @baseLineHeight;
+}
+dt,
+dd {
+ line-height: @baseLineHeight;
+}
+dt {
+ font-weight: bold;
+}
+dd {
+ margin-left: @baseLineHeight / 2;
+}
+// Horizontal layout (like forms)
+.dl-horizontal {
+ .clearfix(); // Ensure dl clears floats if empty dd elements present
+ dt {
+ float: left;
+ width: @horizontalComponentOffset - 20;
+ clear: left;
+ text-align: right;
+ .text-overflow();
+ }
+ dd {
+ margin-left: @horizontalComponentOffset;
+ }
+}
+
+// MISC
+// ----
+
+// Horizontal rules
+hr {
+ margin: @baseLineHeight 0;
+ border: 0;
+ border-top: 1px solid @hrBorder;
+ border-bottom: 1px solid @white;
+}
+
+// Abbreviations and acronyms
+abbr[title],
+// Added data-* attribute to help out our tooltip plugin, per https://github.com/twitter/bootstrap/issues/5257
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted @grayLight;
+}
+abbr.initialism {
+ font-size: 90%;
+ text-transform: uppercase;
+}
+
+// Blockquotes
+blockquote {
+ padding: 0 0 0 15px;
+ margin: 0 0 @baseLineHeight;
+ border-left: 5px solid @grayLighter;
+ p {
+ margin-bottom: 0;
+ font-size: @baseFontSize * 1.25;
+ font-weight: 300;
+ line-height: 1.25;
+ }
+ small {
+ display: block;
+ line-height: @baseLineHeight;
+ color: @grayLight;
+ &:before {
+ content: '\2014 \00A0';
+ }
+ }
+
+ // Float right with text-align: right
+ &.pull-right {
+ float: right;
+ padding-right: 15px;
+ padding-left: 0;
+ border-right: 5px solid @grayLighter;
+ border-left: 0;
+ p,
+ small {
+ text-align: right;
+ }
+ small {
+ &:before {
+ content: '';
+ }
+ &:after {
+ content: '\00A0 \2014';
+ }
+ }
+ }
+}
+
+// Quotes
+q:before,
+q:after,
+blockquote:before,
+blockquote:after {
+ content: "";
+}
+
+// Addresses
+address {
+ display: block;
+ margin-bottom: @baseLineHeight;
+ font-style: normal;
+ line-height: @baseLineHeight;
+}
diff --git a/theme/less/bootstrap-2.3.2/utilities.less b/theme/less/bootstrap-2.3.2/utilities.less
new file mode 100755
index 0000000..314b4ff
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/utilities.less
@@ -0,0 +1,30 @@
+//
+// Utility classes
+// --------------------------------------------------
+
+
+// Quick floats
+.pull-right {
+ float: right;
+}
+.pull-left {
+ float: left;
+}
+
+// Toggling content
+.hide {
+ display: none;
+}
+.show {
+ display: block;
+}
+
+// Visibility
+.invisible {
+ visibility: hidden;
+}
+
+// For Affix plugin
+.affix {
+ position: fixed;
+}
diff --git a/theme/less/bootstrap-2.3.2/variables.less b/theme/less/bootstrap-2.3.2/variables.less
new file mode 100755
index 0000000..31c131b
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/variables.less
@@ -0,0 +1,301 @@
+//
+// Variables
+// --------------------------------------------------
+
+
+// Global values
+// --------------------------------------------------
+
+
+// Grays
+// -------------------------
+@black: #000;
+@grayDarker: #222;
+@grayDark: #333;
+@gray: #555;
+@grayLight: #999;
+@grayLighter: #eee;
+@white: #fff;
+
+
+// Accent colors
+// -------------------------
+@blue: #049cdb;
+@blueDark: #0064cd;
+@green: #46a546;
+@red: #9d261d;
+@yellow: #ffc40d;
+@orange: #f89406;
+@pink: #c3325f;
+@purple: #7a43b6;
+
+
+// Scaffolding
+// -------------------------
+@bodyBackground: @white;
+@textColor: @grayDark;
+
+
+// Links
+// -------------------------
+@linkColor: #08c;
+@linkColorHover: darken(@linkColor, 15%);
+
+
+// Typography
+// -------------------------
+@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
+@serifFontFamily: Georgia, "Times New Roman", Times, serif;
+@monoFontFamily: Monaco, Menlo, Consolas, "Courier New", monospace;
+
+@baseFontSize: 14px;
+@baseFontFamily: @sansFontFamily;
+@baseLineHeight: 20px;
+@altFontFamily: @serifFontFamily;
+
+@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily
+@headingsFontWeight: bold; // instead of browser default, bold
+@headingsColor: inherit; // empty to use BS default, @textColor
+
+
+// Component sizing
+// -------------------------
+// Based on 14px font-size and 20px line-height
+
+@fontSizeLarge: @baseFontSize * 1.25; // ~18px
+@fontSizeSmall: @baseFontSize * 0.85; // ~12px
+@fontSizeMini: @baseFontSize * 0.75; // ~11px
+
+@paddingLarge: 11px 19px; // 44px
+@paddingSmall: 2px 10px; // 26px
+@paddingMini: 0 6px; // 22px
+
+@baseBorderRadius: 4px;
+@borderRadiusLarge: 6px;
+@borderRadiusSmall: 3px;
+
+
+// Tables
+// -------------------------
+@tableBackground: transparent; // overall background-color
+@tableBackgroundAccent: #f9f9f9; // for striping
+@tableBackgroundHover: #f5f5f5; // for hover
+@tableBorder: #ddd; // table and cell border
+
+// Buttons
+// -------------------------
+@btnBackground: @white;
+@btnBackgroundHighlight: darken(@white, 10%);
+@btnBorder: #ccc;
+
+@btnPrimaryBackground: @linkColor;
+@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 20%);
+
+@btnInfoBackground: #5bc0de;
+@btnInfoBackgroundHighlight: #2f96b4;
+
+@btnSuccessBackground: #62c462;
+@btnSuccessBackgroundHighlight: #51a351;
+
+@btnWarningBackground: lighten(@orange, 15%);
+@btnWarningBackgroundHighlight: @orange;
+
+@btnDangerBackground: #ee5f5b;
+@btnDangerBackgroundHighlight: #bd362f;
+
+@btnInverseBackground: #444;
+@btnInverseBackgroundHighlight: @grayDarker;
+
+
+// Forms
+// -------------------------
+@inputBackground: @white;
+@inputBorder: #ccc;
+@inputBorderRadius: @baseBorderRadius;
+@inputDisabledBackground: @grayLighter;
+@formActionsBackground: #f5f5f5;
+@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border
+
+
+// Dropdowns
+// -------------------------
+@dropdownBackground: @white;
+@dropdownBorder: rgba(0,0,0,.2);
+@dropdownDividerTop: #e5e5e5;
+@dropdownDividerBottom: @white;
+
+@dropdownLinkColor: @grayDark;
+@dropdownLinkColorHover: @white;
+@dropdownLinkColorActive: @white;
+
+@dropdownLinkBackgroundActive: @linkColor;
+@dropdownLinkBackgroundHover: @dropdownLinkBackgroundActive;
+
+
+
+// COMPONENT VARIABLES
+// --------------------------------------------------
+
+
+// Z-index master list
+// -------------------------
+// Used for a bird's eye view of components dependent on the z-axis
+// Try to avoid customizing these :)
+@zindexDropdown: 1000;
+@zindexPopover: 1010;
+@zindexTooltip: 1030;
+@zindexFixedNavbar: 1030;
+@zindexModalBackdrop: 1040;
+@zindexModal: 1050;
+
+
+// Sprite icons path
+// -------------------------
+@iconSpritePath: "../img/glyphicons-halflings.png";
+@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";
+
+
+// Input placeholder text color
+// -------------------------
+@placeholderText: @grayLight;
+
+
+// Hr border color
+// -------------------------
+@hrBorder: @grayLighter;
+
+
+// Horizontal forms & lists
+// -------------------------
+@horizontalComponentOffset: 180px;
+
+
+// Wells
+// -------------------------
+@wellBackground: #f5f5f5;
+
+
+// Navbar
+// -------------------------
+@navbarCollapseWidth: 979px;
+@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1;
+
+@navbarHeight: 40px;
+@navbarBackgroundHighlight: #ffffff;
+@navbarBackground: darken(@navbarBackgroundHighlight, 5%);
+@navbarBorder: darken(@navbarBackground, 12%);
+
+@navbarText: #777;
+@navbarLinkColor: #777;
+@navbarLinkColorHover: @grayDark;
+@navbarLinkColorActive: @gray;
+@navbarLinkBackgroundHover: transparent;
+@navbarLinkBackgroundActive: darken(@navbarBackground, 5%);
+
+@navbarBrandColor: @navbarLinkColor;
+
+// Inverted navbar
+@navbarInverseBackground: #111111;
+@navbarInverseBackgroundHighlight: #222222;
+@navbarInverseBorder: #252525;
+
+@navbarInverseText: @grayLight;
+@navbarInverseLinkColor: @grayLight;
+@navbarInverseLinkColorHover: @white;
+@navbarInverseLinkColorActive: @navbarInverseLinkColorHover;
+@navbarInverseLinkBackgroundHover: transparent;
+@navbarInverseLinkBackgroundActive: @navbarInverseBackground;
+
+@navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%);
+@navbarInverseSearchBackgroundFocus: @white;
+@navbarInverseSearchBorder: @navbarInverseBackground;
+@navbarInverseSearchPlaceholderColor: #ccc;
+
+@navbarInverseBrandColor: @navbarInverseLinkColor;
+
+
+// Pagination
+// -------------------------
+@paginationBackground: #fff;
+@paginationBorder: #ddd;
+@paginationActiveBackground: #f5f5f5;
+
+
+// Hero unit
+// -------------------------
+@heroUnitBackground: @grayLighter;
+@heroUnitHeadingColor: inherit;
+@heroUnitLeadColor: inherit;
+
+
+// Form states and alerts
+// -------------------------
+@warningText: #c09853;
+@warningBackground: #fcf8e3;
+@warningBorder: darken(spin(@warningBackground, -10), 3%);
+
+@errorText: #b94a48;
+@errorBackground: #f2dede;
+@errorBorder: darken(spin(@errorBackground, -10), 3%);
+
+@successText: #468847;
+@successBackground: #dff0d8;
+@successBorder: darken(spin(@successBackground, -10), 5%);
+
+@infoText: #3a87ad;
+@infoBackground: #d9edf7;
+@infoBorder: darken(spin(@infoBackground, -10), 7%);
+
+
+// Tooltips and popovers
+// -------------------------
+@tooltipColor: #fff;
+@tooltipBackground: #000;
+@tooltipArrowWidth: 5px;
+@tooltipArrowColor: @tooltipBackground;
+
+@popoverBackground: #fff;
+@popoverArrowWidth: 10px;
+@popoverArrowColor: #fff;
+@popoverTitleBackground: darken(@popoverBackground, 3%);
+
+// Special enhancement for popovers
+@popoverArrowOuterWidth: @popoverArrowWidth + 1;
+@popoverArrowOuterColor: rgba(0,0,0,.25);
+
+
+
+// GRID
+// --------------------------------------------------
+
+
+// Default 940px grid
+// -------------------------
+@gridColumns: 12;
+@gridColumnWidth: 60px;
+@gridGutterWidth: 20px;
+@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
+
+// 1200px min
+@gridColumnWidth1200: 70px;
+@gridGutterWidth1200: 30px;
+@gridRowWidth1200: (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1));
+
+// 768px-979px
+@gridColumnWidth768: 42px;
+@gridGutterWidth768: 20px;
+@gridRowWidth768: (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1));
+
+
+// Fluid grid
+// -------------------------
+@fluidGridColumnWidth: percentage(@gridColumnWidth/@gridRowWidth);
+@fluidGridGutterWidth: percentage(@gridGutterWidth/@gridRowWidth);
+
+// 1200px min
+@fluidGridColumnWidth1200: percentage(@gridColumnWidth1200/@gridRowWidth1200);
+@fluidGridGutterWidth1200: percentage(@gridGutterWidth1200/@gridRowWidth1200);
+
+// 768px-979px
+@fluidGridColumnWidth768: percentage(@gridColumnWidth768/@gridRowWidth768);
+@fluidGridGutterWidth768: percentage(@gridGutterWidth768/@gridRowWidth768);
diff --git a/theme/less/bootstrap-2.3.2/wells.less b/theme/less/bootstrap-2.3.2/wells.less
new file mode 100755
index 0000000..84a744b
--- /dev/null
+++ b/theme/less/bootstrap-2.3.2/wells.less
@@ -0,0 +1,29 @@
+//
+// Wells
+// --------------------------------------------------
+
+
+// Base class
+.well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: @wellBackground;
+ border: 1px solid darken(@wellBackground, 7%);
+ .border-radius(@baseBorderRadius);
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
+ blockquote {
+ border-color: #ddd;
+ border-color: rgba(0,0,0,.15);
+ }
+}
+
+// Sizes
+.well-large {
+ padding: 24px;
+ .border-radius(@borderRadiusLarge);
+}
+.well-small {
+ padding: 9px;
+ .border-radius(@borderRadiusSmall);
+}
diff --git a/theme/less/font-awesome-3.2.1/bootstrap.less b/theme/less/font-awesome-3.2.1/bootstrap.less
new file mode 100644
index 0000000..a2c9604
--- /dev/null
+++ b/theme/less/font-awesome-3.2.1/bootstrap.less
@@ -0,0 +1,84 @@
+/* BOOTSTRAP SPECIFIC CLASSES
+ * -------------------------- */
+
+/* Bootstrap 2.0 sprites.less reset */
+[class^="icon-"],
+[class*=" icon-"] {
+ display: inline;
+ width: auto;
+ height: auto;
+ line-height: normal;
+ vertical-align: baseline;
+ background-image: none;
+ background-position: 0% 0%;
+ background-repeat: repeat;
+ margin-top: 0;
+}
+
+/* more sprites.less reset */
+.icon-white,
+.nav-pills > .active > a > [class^="icon-"],
+.nav-pills > .active > a > [class*=" icon-"],
+.nav-list > .active > a > [class^="icon-"],
+.nav-list > .active > a > [class*=" icon-"],
+.navbar-inverse .nav > .active > a > [class^="icon-"],
+.navbar-inverse .nav > .active > a > [class*=" icon-"],
+.dropdown-menu > li > a:hover > [class^="icon-"],
+.dropdown-menu > li > a:hover > [class*=" icon-"],
+.dropdown-menu > .active > a > [class^="icon-"],
+.dropdown-menu > .active > a > [class*=" icon-"],
+.dropdown-submenu:hover > a > [class^="icon-"],
+.dropdown-submenu:hover > a > [class*=" icon-"] {
+ background-image: none;
+}
+
+
+/* keeps Bootstrap styles with and without icons the same */
+.btn, .nav {
+ [class^="icon-"],
+ [class*=" icon-"] {
+// display: inline;
+ &.icon-large { line-height: .9em; }
+ &.icon-spin { display: inline-block; }
+ }
+}
+.nav-tabs, .nav-pills {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ &, &.icon-large { line-height: .9em; }
+ }
+}
+.btn {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ &.pull-left, &.pull-right {
+ &.icon-2x { margin-top: .18em; }
+ }
+ &.icon-spin.icon-large { line-height: .8em; }
+ }
+}
+.btn.btn-small {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ &.pull-left, &.pull-right {
+ &.icon-2x { margin-top: .25em; }
+ }
+ }
+}
+.btn.btn-large {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ margin-top: 0; // overrides bootstrap default
+ &.pull-left, &.pull-right {
+ &.icon-2x { margin-top: .05em; }
+ }
+ &.pull-left.icon-2x { margin-right: .2em; }
+ &.pull-right.icon-2x { margin-left: .2em; }
+ }
+}
+
+/* Fixes alignment in nav lists */
+.nav-list [class^="icon-"],
+.nav-list [class*=" icon-"] {
+ line-height: inherit;
+}
diff --git a/theme/less/font-awesome-3.2.1/core.less b/theme/less/font-awesome-3.2.1/core.less
new file mode 100644
index 0000000..1ef7e22
--- /dev/null
+++ b/theme/less/font-awesome-3.2.1/core.less
@@ -0,0 +1,129 @@
+/* FONT AWESOME CORE
+ * -------------------------- */
+
+[class^="icon-"],
+[class*=" icon-"] {
+ .icon-FontAwesome();
+}
+
+[class^="icon-"]:before,
+[class*=" icon-"]:before {
+ text-decoration: inherit;
+ display: inline-block;
+ speak: none;
+}
+
+/* makes the font 33% larger relative to the icon container */
+.icon-large:before {
+ vertical-align: -10%;
+ font-size: 4/3em;
+}
+
+/* makes sure icons active on rollover in links */
+a {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ display: inline;
+ }
+}
+
+/* increased font size for icon-large */
+[class^="icon-"],
+[class*=" icon-"] {
+ &.icon-fixed-width {
+ display: inline-block;
+ width: 16/14em;
+ text-align: right;
+ padding-right: 4/14em;
+ &.icon-large {
+ width: 20/14em;
+ }
+ }
+}
+
+.icons-ul {
+ margin-left: @icons-li-width;
+ list-style-type: none;
+
+ > li { position: relative; }
+
+ .icon-li {
+ position: absolute;
+ left: -@icons-li-width;
+ width: @icons-li-width;
+ text-align: center;
+ line-height: inherit;
+ }
+}
+
+// allows usage of the hide class directly on font awesome icons
+[class^="icon-"],
+[class*=" icon-"] {
+ &.hide {
+ display: none;
+ }
+}
+
+.icon-muted { color: @iconMuted; }
+.icon-light { color: @iconLight; }
+.icon-dark { color: @iconDark; }
+
+// Icon Borders
+// -------------------------
+
+.icon-border {
+ border: solid 1px @borderColor;
+ padding: .2em .25em .15em;
+ .border-radius(3px);
+}
+
+// Icon Sizes
+// -------------------------
+
+.icon-2x {
+ font-size: 2em;
+ &.icon-border {
+ border-width: 2px;
+ .border-radius(4px);
+ }
+}
+.icon-3x {
+ font-size: 3em;
+ &.icon-border {
+ border-width: 3px;
+ .border-radius(5px);
+ }
+}
+.icon-4x {
+ font-size: 4em;
+ &.icon-border {
+ border-width: 4px;
+ .border-radius(6px);
+ }
+}
+
+.icon-5x {
+ font-size: 5em;
+ &.icon-border {
+ border-width: 5px;
+ .border-radius(7px);
+ }
+}
+
+
+// Floats & Margins
+// -------------------------
+
+// Quick floats
+.pull-right { float: right; }
+.pull-left { float: left; }
+
+[class^="icon-"],
+[class*=" icon-"] {
+ &.pull-left {
+ margin-right: .3em;
+ }
+ &.pull-right {
+ margin-left: .3em;
+ }
+}
diff --git a/theme/less/font-awesome-3.2.1/extras.less b/theme/less/font-awesome-3.2.1/extras.less
new file mode 100644
index 0000000..c93c260
--- /dev/null
+++ b/theme/less/font-awesome-3.2.1/extras.less
@@ -0,0 +1,93 @@
+/* EXTRAS
+ * -------------------------- */
+
+/* Stacked and layered icon */
+.icon-stack();
+
+/* Animated rotating icon */
+.icon-spin {
+ display: inline-block;
+ -moz-animation: spin 2s infinite linear;
+ -o-animation: spin 2s infinite linear;
+ -webkit-animation: spin 2s infinite linear;
+ animation: spin 2s infinite linear;
+}
+
+/* Prevent stack and spinners from being taken inline when inside a link */
+a .icon-stack,
+a .icon-spin {
+ display: inline-block;
+ text-decoration: none;
+}
+
+@-moz-keyframes spin {
+ 0% { -moz-transform: rotate(0deg); }
+ 100% { -moz-transform: rotate(359deg); }
+}
+@-webkit-keyframes spin {
+ 0% { -webkit-transform: rotate(0deg); }
+ 100% { -webkit-transform: rotate(359deg); }
+}
+@-o-keyframes spin {
+ 0% { -o-transform: rotate(0deg); }
+ 100% { -o-transform: rotate(359deg); }
+}
+@-ms-keyframes spin {
+ 0% { -ms-transform: rotate(0deg); }
+ 100% { -ms-transform: rotate(359deg); }
+}
+@keyframes spin {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(359deg); }
+}
+
+/* Icon rotations and mirroring */
+.icon-rotate-90:before {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ -o-transform: rotate(90deg);
+ transform: rotate(90deg);
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+}
+
+.icon-rotate-180:before {
+ -webkit-transform: rotate(180deg);
+ -moz-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+}
+
+.icon-rotate-270:before {
+ -webkit-transform: rotate(270deg);
+ -moz-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ -o-transform: rotate(270deg);
+ transform: rotate(270deg);
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+}
+
+.icon-flip-horizontal:before {
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ -o-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+.icon-flip-vertical:before {
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ -o-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+/* ensure rotation occurs inside anchor tags */
+a {
+ .icon-rotate-90, .icon-rotate-180, .icon-rotate-270, .icon-flip-horizontal, .icon-flip-vertical {
+ &:before { display: inline-block; }
+ }
+}
diff --git a/theme/less/font-awesome-3.2.1/font-awesome-ie7.less b/theme/less/font-awesome-3.2.1/font-awesome-ie7.less
new file mode 100644
index 0000000..6675c49
--- /dev/null
+++ b/theme/less/font-awesome-3.2.1/font-awesome-ie7.less
@@ -0,0 +1,1953 @@
+/*!
+ * Font Awesome 3.2.1
+ * the iconic font designed for Bootstrap
+ * ------------------------------------------------------------------------------
+ * The full suite of pictographic icons, examples, and documentation can be
+ * found at http://fontawesome.io. Stay up to date on Twitter at
+ * http://twitter.com/fontawesome.
+ *
+ * License
+ * ------------------------------------------------------------------------------
+ * - The Font Awesome font is licensed under SIL OFL 1.1 -
+ * http://scripts.sil.org/OFL
+ * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License -
+ * http://opensource.org/licenses/mit-license.html
+ * - Font Awesome documentation licensed under CC BY 3.0 -
+ * http://creativecommons.org/licenses/by/3.0/
+ * - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
+ * "Font Awesome by Dave Gandy - http://fontawesome.io"
+ *
+ * Author - Dave Gandy
+ * ------------------------------------------------------------------------------
+ * Email: dave@fontawesome.io
+ * Twitter: http://twitter.com/davegandy
+ * Work: Lead Product Designer @ Kyruus - http://kyruus.com
+ */
+
+.icon-large {
+ font-size: 4/3em;
+ margin-top: -4px;
+ padding-top: 3px;
+ margin-bottom: -4px;
+ padding-bottom: 3px;
+ vertical-align: middle;
+}
+
+.nav {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ vertical-align: inherit;
+ margin-top: -4px;
+ padding-top: 3px;
+ margin-bottom: -4px;
+ padding-bottom: 3px;
+ &.icon-large {
+ vertical-align: -25%;
+ }
+ }
+}
+
+.nav-pills, .nav-tabs {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ &.icon-large {
+ line-height: .75em;
+ margin-top: -7px;
+ padding-top: 5px;
+ margin-bottom: -5px;
+ padding-bottom: 4px;
+ }
+ }
+}
+
+.btn {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ &.pull-left, &.pull-right { vertical-align: inherit; }
+ &.icon-large {
+ margin-top: -.5em;
+ }
+ }
+}
+
+a [class^="icon-"],
+a [class*=" icon-"] {
+ cursor: pointer;
+}
+
+.ie7icon(@inner) { *zoom: ~"expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '@{inner}')"; }
+
+
+.icon-glass {
+ .ie7icon('');
+}
+
+
+.icon-music {
+ .ie7icon('');
+}
+
+
+.icon-search {
+ .ie7icon('');
+}
+
+
+.icon-envelope-alt {
+ .ie7icon('');
+}
+
+
+.icon-heart {
+ .ie7icon('');
+}
+
+
+.icon-star {
+ .ie7icon('');
+}
+
+
+.icon-star-empty {
+ .ie7icon('');
+}
+
+
+.icon-user {
+ .ie7icon('');
+}
+
+
+.icon-film {
+ .ie7icon('');
+}
+
+
+.icon-th-large {
+ .ie7icon('');
+}
+
+
+.icon-th {
+ .ie7icon('');
+}
+
+
+.icon-th-list {
+ .ie7icon('');
+}
+
+
+.icon-ok {
+ .ie7icon('');
+}
+
+
+.icon-remove {
+ .ie7icon('');
+}
+
+
+.icon-zoom-in {
+ .ie7icon('');
+}
+
+
+.icon-zoom-out {
+ .ie7icon('');
+}
+
+
+.icon-off {
+ .ie7icon('');
+}
+
+.icon-power-off {
+ .ie7icon('');
+}
+
+
+.icon-signal {
+ .ie7icon('');
+}
+
+
+.icon-cog {
+ .ie7icon('');
+}
+
+.icon-gear {
+ .ie7icon('');
+}
+
+
+.icon-trash {
+ .ie7icon('');
+}
+
+
+.icon-home {
+ .ie7icon('');
+}
+
+
+.icon-file-alt {
+ .ie7icon('');
+}
+
+
+.icon-time {
+ .ie7icon('');
+}
+
+
+.icon-road {
+ .ie7icon('');
+}
+
+
+.icon-download-alt {
+ .ie7icon('');
+}
+
+
+.icon-download {
+ .ie7icon('');
+}
+
+
+.icon-upload {
+ .ie7icon('');
+}
+
+
+.icon-inbox {
+ .ie7icon('');
+}
+
+
+.icon-play-circle {
+ .ie7icon('');
+}
+
+
+.icon-repeat {
+ .ie7icon('');
+}
+
+.icon-rotate-right {
+ .ie7icon('');
+}
+
+
+.icon-refresh {
+ .ie7icon('');
+}
+
+
+.icon-list-alt {
+ .ie7icon('');
+}
+
+
+.icon-lock {
+ .ie7icon('');
+}
+
+
+.icon-flag {
+ .ie7icon('');
+}
+
+
+.icon-headphones {
+ .ie7icon('');
+}
+
+
+.icon-volume-off {
+ .ie7icon('');
+}
+
+
+.icon-volume-down {
+ .ie7icon('');
+}
+
+
+.icon-volume-up {
+ .ie7icon('');
+}
+
+
+.icon-qrcode {
+ .ie7icon('');
+}
+
+
+.icon-barcode {
+ .ie7icon('');
+}
+
+
+.icon-tag {
+ .ie7icon('');
+}
+
+
+.icon-tags {
+ .ie7icon('');
+}
+
+
+.icon-book {
+ .ie7icon('');
+}
+
+
+.icon-bookmark {
+ .ie7icon('');
+}
+
+
+.icon-print {
+ .ie7icon('');
+}
+
+
+.icon-camera {
+ .ie7icon('');
+}
+
+
+.icon-font {
+ .ie7icon('');
+}
+
+
+.icon-bold {
+ .ie7icon('');
+}
+
+
+.icon-italic {
+ .ie7icon('');
+}
+
+
+.icon-text-height {
+ .ie7icon('');
+}
+
+
+.icon-text-width {
+ .ie7icon('');
+}
+
+
+.icon-align-left {
+ .ie7icon('');
+}
+
+
+.icon-align-center {
+ .ie7icon('');
+}
+
+
+.icon-align-right {
+ .ie7icon('');
+}
+
+
+.icon-align-justify {
+ .ie7icon('');
+}
+
+
+.icon-list {
+ .ie7icon('');
+}
+
+
+.icon-indent-left {
+ .ie7icon('');
+}
+
+
+.icon-indent-right {
+ .ie7icon('');
+}
+
+
+.icon-facetime-video {
+ .ie7icon('');
+}
+
+
+.icon-picture {
+ .ie7icon('');
+}
+
+
+.icon-pencil {
+ .ie7icon('');
+}
+
+
+.icon-map-marker {
+ .ie7icon('');
+}
+
+
+.icon-adjust {
+ .ie7icon('');
+}
+
+
+.icon-tint {
+ .ie7icon('');
+}
+
+
+.icon-edit {
+ .ie7icon('');
+}
+
+
+.icon-share {
+ .ie7icon('');
+}
+
+
+.icon-check {
+ .ie7icon('');
+}
+
+
+.icon-move {
+ .ie7icon('');
+}
+
+
+.icon-step-backward {
+ .ie7icon('');
+}
+
+
+.icon-fast-backward {
+ .ie7icon('');
+}
+
+
+.icon-backward {
+ .ie7icon('');
+}
+
+
+.icon-play {
+ .ie7icon('');
+}
+
+
+.icon-pause {
+ .ie7icon('');
+}
+
+
+.icon-stop {
+ .ie7icon('');
+}
+
+
+.icon-forward {
+ .ie7icon('');
+}
+
+
+.icon-fast-forward {
+ .ie7icon('');
+}
+
+
+.icon-step-forward {
+ .ie7icon('');
+}
+
+
+.icon-eject {
+ .ie7icon('');
+}
+
+
+.icon-chevron-left {
+ .ie7icon('');
+}
+
+
+.icon-chevron-right {
+ .ie7icon('');
+}
+
+
+.icon-plus-sign {
+ .ie7icon('');
+}
+
+
+.icon-minus-sign {
+ .ie7icon('');
+}
+
+
+.icon-remove-sign {
+ .ie7icon('');
+}
+
+
+.icon-ok-sign {
+ .ie7icon('');
+}
+
+
+.icon-question-sign {
+ .ie7icon('');
+}
+
+
+.icon-info-sign {
+ .ie7icon('');
+}
+
+
+.icon-screenshot {
+ .ie7icon('');
+}
+
+
+.icon-remove-circle {
+ .ie7icon('');
+}
+
+
+.icon-ok-circle {
+ .ie7icon('');
+}
+
+
+.icon-ban-circle {
+ .ie7icon('');
+}
+
+
+.icon-arrow-left {
+ .ie7icon('');
+}
+
+
+.icon-arrow-right {
+ .ie7icon('');
+}
+
+
+.icon-arrow-up {
+ .ie7icon('');
+}
+
+
+.icon-arrow-down {
+ .ie7icon('');
+}
+
+
+.icon-share-alt {
+ .ie7icon('');
+}
+
+.icon-mail-forward {
+ .ie7icon('');
+}
+
+
+.icon-resize-full {
+ .ie7icon('');
+}
+
+
+.icon-resize-small {
+ .ie7icon('');
+}
+
+
+.icon-plus {
+ .ie7icon('');
+}
+
+
+.icon-minus {
+ .ie7icon('');
+}
+
+
+.icon-asterisk {
+ .ie7icon('');
+}
+
+
+.icon-exclamation-sign {
+ .ie7icon('');
+}
+
+
+.icon-gift {
+ .ie7icon('');
+}
+
+
+.icon-leaf {
+ .ie7icon('');
+}
+
+
+.icon-fire {
+ .ie7icon('');
+}
+
+
+.icon-eye-open {
+ .ie7icon('');
+}
+
+
+.icon-eye-close {
+ .ie7icon('');
+}
+
+
+.icon-warning-sign {
+ .ie7icon('');
+}
+
+
+.icon-plane {
+ .ie7icon('');
+}
+
+
+.icon-calendar {
+ .ie7icon('');
+}
+
+
+.icon-random {
+ .ie7icon('');
+}
+
+
+.icon-comment {
+ .ie7icon('');
+}
+
+
+.icon-magnet {
+ .ie7icon('');
+}
+
+
+.icon-chevron-up {
+ .ie7icon('');
+}
+
+
+.icon-chevron-down {
+ .ie7icon('');
+}
+
+
+.icon-retweet {
+ .ie7icon('');
+}
+
+
+.icon-shopping-cart {
+ .ie7icon('');
+}
+
+
+.icon-folder-close {
+ .ie7icon('');
+}
+
+
+.icon-folder-open {
+ .ie7icon('');
+}
+
+
+.icon-resize-vertical {
+ .ie7icon('');
+}
+
+
+.icon-resize-horizontal {
+ .ie7icon('');
+}
+
+
+.icon-bar-chart {
+ .ie7icon('');
+}
+
+
+.icon-twitter-sign {
+ .ie7icon('');
+}
+
+
+.icon-facebook-sign {
+ .ie7icon('');
+}
+
+
+.icon-camera-retro {
+ .ie7icon('');
+}
+
+
+.icon-key {
+ .ie7icon('');
+}
+
+
+.icon-cogs {
+ .ie7icon('');
+}
+
+.icon-gears {
+ .ie7icon('');
+}
+
+
+.icon-comments {
+ .ie7icon('');
+}
+
+
+.icon-thumbs-up-alt {
+ .ie7icon('');
+}
+
+
+.icon-thumbs-down-alt {
+ .ie7icon('');
+}
+
+
+.icon-star-half {
+ .ie7icon('');
+}
+
+
+.icon-heart-empty {
+ .ie7icon('');
+}
+
+
+.icon-signout {
+ .ie7icon('');
+}
+
+
+.icon-linkedin-sign {
+ .ie7icon('');
+}
+
+
+.icon-pushpin {
+ .ie7icon('');
+}
+
+
+.icon-external-link {
+ .ie7icon('');
+}
+
+
+.icon-signin {
+ .ie7icon('');
+}
+
+
+.icon-trophy {
+ .ie7icon('');
+}
+
+
+.icon-github-sign {
+ .ie7icon('');
+}
+
+
+.icon-upload-alt {
+ .ie7icon('');
+}
+
+
+.icon-lemon {
+ .ie7icon('');
+}
+
+
+.icon-phone {
+ .ie7icon('');
+}
+
+
+.icon-check-empty {
+ .ie7icon('');
+}
+
+.icon-unchecked {
+ .ie7icon('');
+}
+
+
+.icon-bookmark-empty {
+ .ie7icon('');
+}
+
+
+.icon-phone-sign {
+ .ie7icon('');
+}
+
+
+.icon-twitter {
+ .ie7icon('');
+}
+
+
+.icon-facebook {
+ .ie7icon('');
+}
+
+
+.icon-github {
+ .ie7icon('');
+}
+
+
+.icon-unlock {
+ .ie7icon('');
+}
+
+
+.icon-credit-card {
+ .ie7icon('');
+}
+
+
+.icon-rss {
+ .ie7icon('');
+}
+
+
+.icon-hdd {
+ .ie7icon('');
+}
+
+
+.icon-bullhorn {
+ .ie7icon('');
+}
+
+
+.icon-bell {
+ .ie7icon('');
+}
+
+
+.icon-certificate {
+ .ie7icon('');
+}
+
+
+.icon-hand-right {
+ .ie7icon('');
+}
+
+
+.icon-hand-left {
+ .ie7icon('');
+}
+
+
+.icon-hand-up {
+ .ie7icon('');
+}
+
+
+.icon-hand-down {
+ .ie7icon('');
+}
+
+
+.icon-circle-arrow-left {
+ .ie7icon('');
+}
+
+
+.icon-circle-arrow-right {
+ .ie7icon('');
+}
+
+
+.icon-circle-arrow-up {
+ .ie7icon('');
+}
+
+
+.icon-circle-arrow-down {
+ .ie7icon('');
+}
+
+
+.icon-globe {
+ .ie7icon('');
+}
+
+
+.icon-wrench {
+ .ie7icon('');
+}
+
+
+.icon-tasks {
+ .ie7icon('');
+}
+
+
+.icon-filter {
+ .ie7icon('');
+}
+
+
+.icon-briefcase {
+ .ie7icon('');
+}
+
+
+.icon-fullscreen {
+ .ie7icon('');
+}
+
+
+.icon-group {
+ .ie7icon('');
+}
+
+
+.icon-link {
+ .ie7icon('');
+}
+
+
+.icon-cloud {
+ .ie7icon('');
+}
+
+
+.icon-beaker {
+ .ie7icon('');
+}
+
+
+.icon-cut {
+ .ie7icon('');
+}
+
+
+.icon-copy {
+ .ie7icon('');
+}
+
+
+.icon-paper-clip {
+ .ie7icon('');
+}
+
+.icon-paperclip {
+ .ie7icon('');
+}
+
+
+.icon-save {
+ .ie7icon('');
+}
+
+
+.icon-sign-blank {
+ .ie7icon('');
+}
+
+
+.icon-reorder {
+ .ie7icon('');
+}
+
+
+.icon-list-ul {
+ .ie7icon('');
+}
+
+
+.icon-list-ol {
+ .ie7icon('');
+}
+
+
+.icon-strikethrough {
+ .ie7icon('');
+}
+
+
+.icon-underline {
+ .ie7icon('');
+}
+
+
+.icon-table {
+ .ie7icon('');
+}
+
+
+.icon-magic {
+ .ie7icon('');
+}
+
+
+.icon-truck {
+ .ie7icon('');
+}
+
+
+.icon-pinterest {
+ .ie7icon('');
+}
+
+
+.icon-pinterest-sign {
+ .ie7icon('');
+}
+
+
+.icon-google-plus-sign {
+ .ie7icon('');
+}
+
+
+.icon-google-plus {
+ .ie7icon('');
+}
+
+
+.icon-money {
+ .ie7icon('');
+}
+
+
+.icon-caret-down {
+ .ie7icon('');
+}
+
+
+.icon-caret-up {
+ .ie7icon('');
+}
+
+
+.icon-caret-left {
+ .ie7icon('');
+}
+
+
+.icon-caret-right {
+ .ie7icon('');
+}
+
+
+.icon-columns {
+ .ie7icon('');
+}
+
+
+.icon-sort {
+ .ie7icon('');
+}
+
+
+.icon-sort-down {
+ .ie7icon('');
+}
+
+
+.icon-sort-up {
+ .ie7icon('');
+}
+
+
+.icon-envelope {
+ .ie7icon('');
+}
+
+
+.icon-linkedin {
+ .ie7icon('');
+}
+
+
+.icon-undo {
+ .ie7icon('');
+}
+
+.icon-rotate-left {
+ .ie7icon('');
+}
+
+
+.icon-legal {
+ .ie7icon('');
+}
+
+
+.icon-dashboard {
+ .ie7icon('');
+}
+
+
+.icon-comment-alt {
+ .ie7icon('');
+}
+
+
+.icon-comments-alt {
+ .ie7icon('');
+}
+
+
+.icon-bolt {
+ .ie7icon('');
+}
+
+
+.icon-sitemap {
+ .ie7icon('');
+}
+
+
+.icon-umbrella {
+ .ie7icon('');
+}
+
+
+.icon-paste {
+ .ie7icon('');
+}
+
+
+.icon-lightbulb {
+ .ie7icon('');
+}
+
+
+.icon-exchange {
+ .ie7icon('');
+}
+
+
+.icon-cloud-download {
+ .ie7icon('');
+}
+
+
+.icon-cloud-upload {
+ .ie7icon('');
+}
+
+
+.icon-user-md {
+ .ie7icon('');
+}
+
+
+.icon-stethoscope {
+ .ie7icon('');
+}
+
+
+.icon-suitcase {
+ .ie7icon('');
+}
+
+
+.icon-bell-alt {
+ .ie7icon('');
+}
+
+
+.icon-coffee {
+ .ie7icon('');
+}
+
+
+.icon-food {
+ .ie7icon('');
+}
+
+
+.icon-file-text-alt {
+ .ie7icon('');
+}
+
+
+.icon-building {
+ .ie7icon('');
+}
+
+
+.icon-hospital {
+ .ie7icon('');
+}
+
+
+.icon-ambulance {
+ .ie7icon('');
+}
+
+
+.icon-medkit {
+ .ie7icon('');
+}
+
+
+.icon-fighter-jet {
+ .ie7icon('');
+}
+
+
+.icon-beer {
+ .ie7icon('');
+}
+
+
+.icon-h-sign {
+ .ie7icon('');
+}
+
+
+.icon-plus-sign-alt {
+ .ie7icon('');
+}
+
+
+.icon-double-angle-left {
+ .ie7icon('');
+}
+
+
+.icon-double-angle-right {
+ .ie7icon('');
+}
+
+
+.icon-double-angle-up {
+ .ie7icon('');
+}
+
+
+.icon-double-angle-down {
+ .ie7icon('');
+}
+
+
+.icon-angle-left {
+ .ie7icon('');
+}
+
+
+.icon-angle-right {
+ .ie7icon('');
+}
+
+
+.icon-angle-up {
+ .ie7icon('');
+}
+
+
+.icon-angle-down {
+ .ie7icon('');
+}
+
+
+.icon-desktop {
+ .ie7icon('');
+}
+
+
+.icon-laptop {
+ .ie7icon('');
+}
+
+
+.icon-tablet {
+ .ie7icon('');
+}
+
+
+.icon-mobile-phone {
+ .ie7icon('');
+}
+
+
+.icon-circle-blank {
+ .ie7icon('');
+}
+
+
+.icon-quote-left {
+ .ie7icon('');
+}
+
+
+.icon-quote-right {
+ .ie7icon('');
+}
+
+
+.icon-spinner {
+ .ie7icon('');
+}
+
+
+.icon-circle {
+ .ie7icon('');
+}
+
+
+.icon-reply {
+ .ie7icon('');
+}
+
+.icon-mail-reply {
+ .ie7icon('');
+}
+
+
+.icon-github-alt {
+ .ie7icon('');
+}
+
+
+.icon-folder-close-alt {
+ .ie7icon('');
+}
+
+
+.icon-folder-open-alt {
+ .ie7icon('');
+}
+
+
+.icon-expand-alt {
+ .ie7icon('');
+}
+
+
+.icon-collapse-alt {
+ .ie7icon('');
+}
+
+
+.icon-smile {
+ .ie7icon('');
+}
+
+
+.icon-frown {
+ .ie7icon('');
+}
+
+
+.icon-meh {
+ .ie7icon('');
+}
+
+
+.icon-gamepad {
+ .ie7icon('');
+}
+
+
+.icon-keyboard {
+ .ie7icon('');
+}
+
+
+.icon-flag-alt {
+ .ie7icon('');
+}
+
+
+.icon-flag-checkered {
+ .ie7icon('');
+}
+
+
+.icon-terminal {
+ .ie7icon('');
+}
+
+
+.icon-code {
+ .ie7icon('');
+}
+
+
+.icon-reply-all {
+ .ie7icon('');
+}
+
+
+.icon-mail-reply-all {
+ .ie7icon('');
+}
+
+
+.icon-star-half-empty {
+ .ie7icon('');
+}
+
+.icon-star-half-full {
+ .ie7icon('');
+}
+
+
+.icon-location-arrow {
+ .ie7icon('');
+}
+
+
+.icon-crop {
+ .ie7icon('');
+}
+
+
+.icon-code-fork {
+ .ie7icon('');
+}
+
+
+.icon-unlink {
+ .ie7icon('');
+}
+
+
+.icon-question {
+ .ie7icon('');
+}
+
+
+.icon-info {
+ .ie7icon('');
+}
+
+
+.icon-exclamation {
+ .ie7icon('');
+}
+
+
+.icon-superscript {
+ .ie7icon('');
+}
+
+
+.icon-subscript {
+ .ie7icon('');
+}
+
+
+.icon-eraser {
+ .ie7icon('');
+}
+
+
+.icon-puzzle-piece {
+ .ie7icon('');
+}
+
+
+.icon-microphone {
+ .ie7icon('');
+}
+
+
+.icon-microphone-off {
+ .ie7icon('');
+}
+
+
+.icon-shield {
+ .ie7icon('');
+}
+
+
+.icon-calendar-empty {
+ .ie7icon('');
+}
+
+
+.icon-fire-extinguisher {
+ .ie7icon('');
+}
+
+
+.icon-rocket {
+ .ie7icon('');
+}
+
+
+.icon-maxcdn {
+ .ie7icon('');
+}
+
+
+.icon-chevron-sign-left {
+ .ie7icon('');
+}
+
+
+.icon-chevron-sign-right {
+ .ie7icon('');
+}
+
+
+.icon-chevron-sign-up {
+ .ie7icon('');
+}
+
+
+.icon-chevron-sign-down {
+ .ie7icon('');
+}
+
+
+.icon-html5 {
+ .ie7icon('');
+}
+
+
+.icon-css3 {
+ .ie7icon('');
+}
+
+
+.icon-anchor {
+ .ie7icon('');
+}
+
+
+.icon-unlock-alt {
+ .ie7icon('');
+}
+
+
+.icon-bullseye {
+ .ie7icon('');
+}
+
+
+.icon-ellipsis-horizontal {
+ .ie7icon('');
+}
+
+
+.icon-ellipsis-vertical {
+ .ie7icon('');
+}
+
+
+.icon-rss-sign {
+ .ie7icon('');
+}
+
+
+.icon-play-sign {
+ .ie7icon('');
+}
+
+
+.icon-ticket {
+ .ie7icon('');
+}
+
+
+.icon-minus-sign-alt {
+ .ie7icon('');
+}
+
+
+.icon-check-minus {
+ .ie7icon('');
+}
+
+
+.icon-level-up {
+ .ie7icon('');
+}
+
+
+.icon-level-down {
+ .ie7icon('');
+}
+
+
+.icon-check-sign {
+ .ie7icon('');
+}
+
+
+.icon-edit-sign {
+ .ie7icon('');
+}
+
+
+.icon-external-link-sign {
+ .ie7icon('');
+}
+
+
+.icon-share-sign {
+ .ie7icon('');
+}
+
+
+.icon-compass {
+ .ie7icon('');
+}
+
+
+.icon-collapse {
+ .ie7icon('');
+}
+
+
+.icon-collapse-top {
+ .ie7icon('');
+}
+
+
+.icon-expand {
+ .ie7icon('');
+}
+
+
+.icon-eur {
+ .ie7icon('');
+}
+
+.icon-euro {
+ .ie7icon('');
+}
+
+
+.icon-gbp {
+ .ie7icon('');
+}
+
+
+.icon-usd {
+ .ie7icon('');
+}
+
+.icon-dollar {
+ .ie7icon('');
+}
+
+
+.icon-inr {
+ .ie7icon('');
+}
+
+.icon-rupee {
+ .ie7icon('');
+}
+
+
+.icon-jpy {
+ .ie7icon('');
+}
+
+.icon-yen {
+ .ie7icon('');
+}
+
+
+.icon-cny {
+ .ie7icon('');
+}
+
+.icon-renminbi {
+ .ie7icon('');
+}
+
+
+.icon-krw {
+ .ie7icon('');
+}
+
+.icon-won {
+ .ie7icon('');
+}
+
+
+.icon-btc {
+ .ie7icon('');
+}
+
+.icon-bitcoin {
+ .ie7icon('');
+}
+
+
+.icon-file {
+ .ie7icon('');
+}
+
+
+.icon-file-text {
+ .ie7icon('');
+}
+
+
+.icon-sort-by-alphabet {
+ .ie7icon('');
+}
+
+
+.icon-sort-by-alphabet-alt {
+ .ie7icon('');
+}
+
+
+.icon-sort-by-attributes {
+ .ie7icon('');
+}
+
+
+.icon-sort-by-attributes-alt {
+ .ie7icon('');
+}
+
+
+.icon-sort-by-order {
+ .ie7icon('');
+}
+
+
+.icon-sort-by-order-alt {
+ .ie7icon('');
+}
+
+
+.icon-thumbs-up {
+ .ie7icon('');
+}
+
+
+.icon-thumbs-down {
+ .ie7icon('');
+}
+
+
+.icon-youtube-sign {
+ .ie7icon('');
+}
+
+
+.icon-youtube {
+ .ie7icon('');
+}
+
+
+.icon-xing {
+ .ie7icon('');
+}
+
+
+.icon-xing-sign {
+ .ie7icon('');
+}
+
+
+.icon-youtube-play {
+ .ie7icon('');
+}
+
+
+.icon-dropbox {
+ .ie7icon('');
+}
+
+
+.icon-stackexchange {
+ .ie7icon('');
+}
+
+
+.icon-instagram {
+ .ie7icon('');
+}
+
+
+.icon-flickr {
+ .ie7icon('');
+}
+
+
+.icon-adn {
+ .ie7icon('');
+}
+
+
+.icon-bitbucket {
+ .ie7icon('');
+}
+
+
+.icon-bitbucket-sign {
+ .ie7icon('');
+}
+
+
+.icon-tumblr {
+ .ie7icon('');
+}
+
+
+.icon-tumblr-sign {
+ .ie7icon('');
+}
+
+
+.icon-long-arrow-down {
+ .ie7icon('');
+}
+
+
+.icon-long-arrow-up {
+ .ie7icon('');
+}
+
+
+.icon-long-arrow-left {
+ .ie7icon('');
+}
+
+
+.icon-long-arrow-right {
+ .ie7icon('');
+}
+
+
+.icon-apple {
+ .ie7icon('');
+}
+
+
+.icon-windows {
+ .ie7icon('');
+}
+
+
+.icon-android {
+ .ie7icon('');
+}
+
+
+.icon-linux {
+ .ie7icon('');
+}
+
+
+.icon-dribbble {
+ .ie7icon('');
+}
+
+
+.icon-skype {
+ .ie7icon('');
+}
+
+
+.icon-foursquare {
+ .ie7icon('');
+}
+
+
+.icon-trello {
+ .ie7icon('');
+}
+
+
+.icon-female {
+ .ie7icon('');
+}
+
+
+.icon-male {
+ .ie7icon('');
+}
+
+
+.icon-gittip {
+ .ie7icon('');
+}
+
+
+.icon-sun {
+ .ie7icon('');
+}
+
+
+.icon-moon {
+ .ie7icon('');
+}
+
+
+.icon-archive {
+ .ie7icon('');
+}
+
+
+.icon-bug {
+ .ie7icon('');
+}
+
+
+.icon-vk {
+ .ie7icon('');
+}
+
+
+.icon-weibo {
+ .ie7icon('');
+}
+
+
+.icon-renren {
+ .ie7icon('');
+}
+
+
diff --git a/theme/less/font-awesome-3.2.1/font-awesome.less b/theme/less/font-awesome-3.2.1/font-awesome.less
new file mode 100644
index 0000000..e5903d8
--- /dev/null
+++ b/theme/less/font-awesome-3.2.1/font-awesome.less
@@ -0,0 +1,33 @@
+/*!
+ * Font Awesome 3.2.1
+ * the iconic font designed for Bootstrap
+ * ------------------------------------------------------------------------------
+ * The full suite of pictographic icons, examples, and documentation can be
+ * found at http://fontawesome.io. Stay up to date on Twitter at
+ * http://twitter.com/fontawesome.
+ *
+ * License
+ * ------------------------------------------------------------------------------
+ * - The Font Awesome font is licensed under SIL OFL 1.1 -
+ * http://scripts.sil.org/OFL
+ * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License -
+ * http://opensource.org/licenses/mit-license.html
+ * - Font Awesome documentation licensed under CC BY 3.0 -
+ * http://creativecommons.org/licenses/by/3.0/
+ * - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
+ * "Font Awesome by Dave Gandy - http://fontawesome.io"
+ *
+ * Author - Dave Gandy
+ * ------------------------------------------------------------------------------
+ * Email: dave@fontawesome.io
+ * Twitter: http://twitter.com/davegandy
+ * Work: Lead Product Designer @ Kyruus - http://kyruus.com
+ */
+
+@import "variables";
+@import "mixins";
+@import "path";
+@import "core";
+@import "bootstrap";
+@import "extras";
+@import "icons";
diff --git a/theme/less/font-awesome-3.2.1/icons.less b/theme/less/font-awesome-3.2.1/icons.less
new file mode 100644
index 0000000..476d201
--- /dev/null
+++ b/theme/less/font-awesome-3.2.1/icons.less
@@ -0,0 +1,381 @@
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+
+.icon-glass:before { content: @glass; }
+.icon-music:before { content: @music; }
+.icon-search:before { content: @search; }
+.icon-envelope-alt:before { content: @envelope-alt; }
+.icon-heart:before { content: @heart; }
+.icon-star:before { content: @star; }
+.icon-star-empty:before { content: @star-empty; }
+.icon-user:before { content: @user; }
+.icon-film:before { content: @film; }
+.icon-th-large:before { content: @th-large; }
+.icon-th:before { content: @th; }
+.icon-th-list:before { content: @th-list; }
+.icon-ok:before { content: @ok; }
+.icon-remove:before { content: @remove; }
+.icon-zoom-in:before { content: @zoom-in; }
+.icon-zoom-out:before { content: @zoom-out; }
+.icon-power-off:before,
+.icon-off:before { content: @off; }
+.icon-signal:before { content: @signal; }
+.icon-gear:before,
+.icon-cog:before { content: @cog; }
+.icon-trash:before { content: @trash; }
+.icon-home:before { content: @home; }
+.icon-file-alt:before { content: @file-alt; }
+.icon-time:before { content: @time; }
+.icon-road:before { content: @road; }
+.icon-download-alt:before { content: @download-alt; }
+.icon-download:before { content: @download; }
+.icon-upload:before { content: @upload; }
+.icon-inbox:before { content: @inbox; }
+.icon-play-circle:before { content: @play-circle; }
+.icon-rotate-right:before,
+.icon-repeat:before { content: @repeat; }
+.icon-refresh:before { content: @refresh; }
+.icon-list-alt:before { content: @list-alt; }
+.icon-lock:before { content: @lock; }
+.icon-flag:before { content: @flag; }
+.icon-headphones:before { content: @headphones; }
+.icon-volume-off:before { content: @volume-off; }
+.icon-volume-down:before { content: @volume-down; }
+.icon-volume-up:before { content: @volume-up; }
+.icon-qrcode:before { content: @qrcode; }
+.icon-barcode:before { content: @barcode; }
+.icon-tag:before { content: @tag; }
+.icon-tags:before { content: @tags; }
+.icon-book:before { content: @book; }
+.icon-bookmark:before { content: @bookmark; }
+.icon-print:before { content: @print; }
+.icon-camera:before { content: @camera; }
+.icon-font:before { content: @font; }
+.icon-bold:before { content: @bold; }
+.icon-italic:before { content: @italic; }
+.icon-text-height:before { content: @text-height; }
+.icon-text-width:before { content: @text-width; }
+.icon-align-left:before { content: @align-left; }
+.icon-align-center:before { content: @align-center; }
+.icon-align-right:before { content: @align-right; }
+.icon-align-justify:before { content: @align-justify; }
+.icon-list:before { content: @list; }
+.icon-indent-left:before { content: @indent-left; }
+.icon-indent-right:before { content: @indent-right; }
+.icon-facetime-video:before { content: @facetime-video; }
+.icon-picture:before { content: @picture; }
+.icon-pencil:before { content: @pencil; }
+.icon-map-marker:before { content: @map-marker; }
+.icon-adjust:before { content: @adjust; }
+.icon-tint:before { content: @tint; }
+.icon-edit:before { content: @edit; }
+.icon-share:before { content: @share; }
+.icon-check:before { content: @check; }
+.icon-move:before { content: @move; }
+.icon-step-backward:before { content: @step-backward; }
+.icon-fast-backward:before { content: @fast-backward; }
+.icon-backward:before { content: @backward; }
+.icon-play:before { content: @play; }
+.icon-pause:before { content: @pause; }
+.icon-stop:before { content: @stop; }
+.icon-forward:before { content: @forward; }
+.icon-fast-forward:before { content: @fast-forward; }
+.icon-step-forward:before { content: @step-forward; }
+.icon-eject:before { content: @eject; }
+.icon-chevron-left:before { content: @chevron-left; }
+.icon-chevron-right:before { content: @chevron-right; }
+.icon-plus-sign:before { content: @plus-sign; }
+.icon-minus-sign:before { content: @minus-sign; }
+.icon-remove-sign:before { content: @remove-sign; }
+.icon-ok-sign:before { content: @ok-sign; }
+.icon-question-sign:before { content: @question-sign; }
+.icon-info-sign:before { content: @info-sign; }
+.icon-screenshot:before { content: @screenshot; }
+.icon-remove-circle:before { content: @remove-circle; }
+.icon-ok-circle:before { content: @ok-circle; }
+.icon-ban-circle:before { content: @ban-circle; }
+.icon-arrow-left:before { content: @arrow-left; }
+.icon-arrow-right:before { content: @arrow-right; }
+.icon-arrow-up:before { content: @arrow-up; }
+.icon-arrow-down:before { content: @arrow-down; }
+.icon-mail-forward:before,
+.icon-share-alt:before { content: @share-alt; }
+.icon-resize-full:before { content: @resize-full; }
+.icon-resize-small:before { content: @resize-small; }
+.icon-plus:before { content: @plus; }
+.icon-minus:before { content: @minus; }
+.icon-asterisk:before { content: @asterisk; }
+.icon-exclamation-sign:before { content: @exclamation-sign; }
+.icon-gift:before { content: @gift; }
+.icon-leaf:before { content: @leaf; }
+.icon-fire:before { content: @fire; }
+.icon-eye-open:before { content: @eye-open; }
+.icon-eye-close:before { content: @eye-close; }
+.icon-warning-sign:before { content: @warning-sign; }
+.icon-plane:before { content: @plane; }
+.icon-calendar:before { content: @calendar; }
+.icon-random:before { content: @random; }
+.icon-comment:before { content: @comment; }
+.icon-magnet:before { content: @magnet; }
+.icon-chevron-up:before { content: @chevron-up; }
+.icon-chevron-down:before { content: @chevron-down; }
+.icon-retweet:before { content: @retweet; }
+.icon-shopping-cart:before { content: @shopping-cart; }
+.icon-folder-close:before { content: @folder-close; }
+.icon-folder-open:before { content: @folder-open; }
+.icon-resize-vertical:before { content: @resize-vertical; }
+.icon-resize-horizontal:before { content: @resize-horizontal; }
+.icon-bar-chart:before { content: @bar-chart; }
+.icon-twitter-sign:before { content: @twitter-sign; }
+.icon-facebook-sign:before { content: @facebook-sign; }
+.icon-camera-retro:before { content: @camera-retro; }
+.icon-key:before { content: @key; }
+.icon-gears:before,
+.icon-cogs:before { content: @cogs; }
+.icon-comments:before { content: @comments; }
+.icon-thumbs-up-alt:before { content: @thumbs-up-alt; }
+.icon-thumbs-down-alt:before { content: @thumbs-down-alt; }
+.icon-star-half:before { content: @star-half; }
+.icon-heart-empty:before { content: @heart-empty; }
+.icon-signout:before { content: @signout; }
+.icon-linkedin-sign:before { content: @linkedin-sign; }
+.icon-pushpin:before { content: @pushpin; }
+.icon-external-link:before { content: @external-link; }
+.icon-signin:before { content: @signin; }
+.icon-trophy:before { content: @trophy; }
+.icon-github-sign:before { content: @github-sign; }
+.icon-upload-alt:before { content: @upload-alt; }
+.icon-lemon:before { content: @lemon; }
+.icon-phone:before { content: @phone; }
+.icon-unchecked:before,
+.icon-check-empty:before { content: @check-empty; }
+.icon-bookmark-empty:before { content: @bookmark-empty; }
+.icon-phone-sign:before { content: @phone-sign; }
+.icon-twitter:before { content: @twitter; }
+.icon-facebook:before { content: @facebook; }
+.icon-github:before { content: @github; }
+.icon-unlock:before { content: @unlock; }
+.icon-credit-card:before { content: @credit-card; }
+.icon-rss:before { content: @rss; }
+.icon-hdd:before { content: @hdd; }
+.icon-bullhorn:before { content: @bullhorn; }
+.icon-bell:before { content: @bell; }
+.icon-certificate:before { content: @certificate; }
+.icon-hand-right:before { content: @hand-right; }
+.icon-hand-left:before { content: @hand-left; }
+.icon-hand-up:before { content: @hand-up; }
+.icon-hand-down:before { content: @hand-down; }
+.icon-circle-arrow-left:before { content: @circle-arrow-left; }
+.icon-circle-arrow-right:before { content: @circle-arrow-right; }
+.icon-circle-arrow-up:before { content: @circle-arrow-up; }
+.icon-circle-arrow-down:before { content: @circle-arrow-down; }
+.icon-globe:before { content: @globe; }
+.icon-wrench:before { content: @wrench; }
+.icon-tasks:before { content: @tasks; }
+.icon-filter:before { content: @filter; }
+.icon-briefcase:before { content: @briefcase; }
+.icon-fullscreen:before { content: @fullscreen; }
+.icon-group:before { content: @group; }
+.icon-link:before { content: @link; }
+.icon-cloud:before { content: @cloud; }
+.icon-beaker:before { content: @beaker; }
+.icon-cut:before { content: @cut; }
+.icon-copy:before { content: @copy; }
+.icon-paperclip:before,
+.icon-paper-clip:before { content: @paper-clip; }
+.icon-save:before { content: @save; }
+.icon-sign-blank:before { content: @sign-blank; }
+.icon-reorder:before { content: @reorder; }
+.icon-list-ul:before { content: @list-ul; }
+.icon-list-ol:before { content: @list-ol; }
+.icon-strikethrough:before { content: @strikethrough; }
+.icon-underline:before { content: @underline; }
+.icon-table:before { content: @table; }
+.icon-magic:before { content: @magic; }
+.icon-truck:before { content: @truck; }
+.icon-pinterest:before { content: @pinterest; }
+.icon-pinterest-sign:before { content: @pinterest-sign; }
+.icon-google-plus-sign:before { content: @google-plus-sign; }
+.icon-google-plus:before { content: @google-plus; }
+.icon-money:before { content: @money; }
+.icon-caret-down:before { content: @caret-down; }
+.icon-caret-up:before { content: @caret-up; }
+.icon-caret-left:before { content: @caret-left; }
+.icon-caret-right:before { content: @caret-right; }
+.icon-columns:before { content: @columns; }
+.icon-sort:before { content: @sort; }
+.icon-sort-down:before { content: @sort-down; }
+.icon-sort-up:before { content: @sort-up; }
+.icon-envelope:before { content: @envelope; }
+.icon-linkedin:before { content: @linkedin; }
+.icon-rotate-left:before,
+.icon-undo:before { content: @undo; }
+.icon-legal:before { content: @legal; }
+.icon-dashboard:before { content: @dashboard; }
+.icon-comment-alt:before { content: @comment-alt; }
+.icon-comments-alt:before { content: @comments-alt; }
+.icon-bolt:before { content: @bolt; }
+.icon-sitemap:before { content: @sitemap; }
+.icon-umbrella:before { content: @umbrella; }
+.icon-paste:before { content: @paste; }
+.icon-lightbulb:before { content: @lightbulb; }
+.icon-exchange:before { content: @exchange; }
+.icon-cloud-download:before { content: @cloud-download; }
+.icon-cloud-upload:before { content: @cloud-upload; }
+.icon-user-md:before { content: @user-md; }
+.icon-stethoscope:before { content: @stethoscope; }
+.icon-suitcase:before { content: @suitcase; }
+.icon-bell-alt:before { content: @bell-alt; }
+.icon-coffee:before { content: @coffee; }
+.icon-food:before { content: @food; }
+.icon-file-text-alt:before { content: @file-text-alt; }
+.icon-building:before { content: @building; }
+.icon-hospital:before { content: @hospital; }
+.icon-ambulance:before { content: @ambulance; }
+.icon-medkit:before { content: @medkit; }
+.icon-fighter-jet:before { content: @fighter-jet; }
+.icon-beer:before { content: @beer; }
+.icon-h-sign:before { content: @h-sign; }
+.icon-plus-sign-alt:before { content: @plus-sign-alt; }
+.icon-double-angle-left:before { content: @double-angle-left; }
+.icon-double-angle-right:before { content: @double-angle-right; }
+.icon-double-angle-up:before { content: @double-angle-up; }
+.icon-double-angle-down:before { content: @double-angle-down; }
+.icon-angle-left:before { content: @angle-left; }
+.icon-angle-right:before { content: @angle-right; }
+.icon-angle-up:before { content: @angle-up; }
+.icon-angle-down:before { content: @angle-down; }
+.icon-desktop:before { content: @desktop; }
+.icon-laptop:before { content: @laptop; }
+.icon-tablet:before { content: @tablet; }
+.icon-mobile-phone:before { content: @mobile-phone; }
+.icon-circle-blank:before { content: @circle-blank; }
+.icon-quote-left:before { content: @quote-left; }
+.icon-quote-right:before { content: @quote-right; }
+.icon-spinner:before { content: @spinner; }
+.icon-circle:before { content: @circle; }
+.icon-mail-reply:before,
+.icon-reply:before { content: @reply; }
+.icon-github-alt:before { content: @github-alt; }
+.icon-folder-close-alt:before { content: @folder-close-alt; }
+.icon-folder-open-alt:before { content: @folder-open-alt; }
+.icon-expand-alt:before { content: @expand-alt; }
+.icon-collapse-alt:before { content: @collapse-alt; }
+.icon-smile:before { content: @smile; }
+.icon-frown:before { content: @frown; }
+.icon-meh:before { content: @meh; }
+.icon-gamepad:before { content: @gamepad; }
+.icon-keyboard:before { content: @keyboard; }
+.icon-flag-alt:before { content: @flag-alt; }
+.icon-flag-checkered:before { content: @flag-checkered; }
+.icon-terminal:before { content: @terminal; }
+.icon-code:before { content: @code; }
+.icon-reply-all:before { content: @reply-all; }
+.icon-mail-reply-all:before { content: @mail-reply-all; }
+.icon-star-half-full:before,
+.icon-star-half-empty:before { content: @star-half-empty; }
+.icon-location-arrow:before { content: @location-arrow; }
+.icon-crop:before { content: @crop; }
+.icon-code-fork:before { content: @code-fork; }
+.icon-unlink:before { content: @unlink; }
+.icon-question:before { content: @question; }
+.icon-info:before { content: @info; }
+.icon-exclamation:before { content: @exclamation; }
+.icon-superscript:before { content: @superscript; }
+.icon-subscript:before { content: @subscript; }
+.icon-eraser:before { content: @eraser; }
+.icon-puzzle-piece:before { content: @puzzle-piece; }
+.icon-microphone:before { content: @microphone; }
+.icon-microphone-off:before { content: @microphone-off; }
+.icon-shield:before { content: @shield; }
+.icon-calendar-empty:before { content: @calendar-empty; }
+.icon-fire-extinguisher:before { content: @fire-extinguisher; }
+.icon-rocket:before { content: @rocket; }
+.icon-maxcdn:before { content: @maxcdn; }
+.icon-chevron-sign-left:before { content: @chevron-sign-left; }
+.icon-chevron-sign-right:before { content: @chevron-sign-right; }
+.icon-chevron-sign-up:before { content: @chevron-sign-up; }
+.icon-chevron-sign-down:before { content: @chevron-sign-down; }
+.icon-html5:before { content: @html5; }
+.icon-css3:before { content: @css3; }
+.icon-anchor:before { content: @anchor; }
+.icon-unlock-alt:before { content: @unlock-alt; }
+.icon-bullseye:before { content: @bullseye; }
+.icon-ellipsis-horizontal:before { content: @ellipsis-horizontal; }
+.icon-ellipsis-vertical:before { content: @ellipsis-vertical; }
+.icon-rss-sign:before { content: @rss-sign; }
+.icon-play-sign:before { content: @play-sign; }
+.icon-ticket:before { content: @ticket; }
+.icon-minus-sign-alt:before { content: @minus-sign-alt; }
+.icon-check-minus:before { content: @check-minus; }
+.icon-level-up:before { content: @level-up; }
+.icon-level-down:before { content: @level-down; }
+.icon-check-sign:before { content: @check-sign; }
+.icon-edit-sign:before { content: @edit-sign; }
+.icon-external-link-sign:before { content: @external-link-sign; }
+.icon-share-sign:before { content: @share-sign; }
+.icon-compass:before { content: @compass; }
+.icon-collapse:before { content: @collapse; }
+.icon-collapse-top:before { content: @collapse-top; }
+.icon-expand:before { content: @expand; }
+.icon-euro:before,
+.icon-eur:before { content: @eur; }
+.icon-gbp:before { content: @gbp; }
+.icon-dollar:before,
+.icon-usd:before { content: @usd; }
+.icon-rupee:before,
+.icon-inr:before { content: @inr; }
+.icon-yen:before,
+.icon-jpy:before { content: @jpy; }
+.icon-renminbi:before,
+.icon-cny:before { content: @cny; }
+.icon-won:before,
+.icon-krw:before { content: @krw; }
+.icon-bitcoin:before,
+.icon-btc:before { content: @btc; }
+.icon-file:before { content: @file; }
+.icon-file-text:before { content: @file-text; }
+.icon-sort-by-alphabet:before { content: @sort-by-alphabet; }
+.icon-sort-by-alphabet-alt:before { content: @sort-by-alphabet-alt; }
+.icon-sort-by-attributes:before { content: @sort-by-attributes; }
+.icon-sort-by-attributes-alt:before { content: @sort-by-attributes-alt; }
+.icon-sort-by-order:before { content: @sort-by-order; }
+.icon-sort-by-order-alt:before { content: @sort-by-order-alt; }
+.icon-thumbs-up:before { content: @thumbs-up; }
+.icon-thumbs-down:before { content: @thumbs-down; }
+.icon-youtube-sign:before { content: @youtube-sign; }
+.icon-youtube:before { content: @youtube; }
+.icon-xing:before { content: @xing; }
+.icon-xing-sign:before { content: @xing-sign; }
+.icon-youtube-play:before { content: @youtube-play; }
+.icon-dropbox:before { content: @dropbox; }
+.icon-stackexchange:before { content: @stackexchange; }
+.icon-instagram:before { content: @instagram; }
+.icon-flickr:before { content: @flickr; }
+.icon-adn:before { content: @adn; }
+.icon-bitbucket:before { content: @bitbucket; }
+.icon-bitbucket-sign:before { content: @bitbucket-sign; }
+.icon-tumblr:before { content: @tumblr; }
+.icon-tumblr-sign:before { content: @tumblr-sign; }
+.icon-long-arrow-down:before { content: @long-arrow-down; }
+.icon-long-arrow-up:before { content: @long-arrow-up; }
+.icon-long-arrow-left:before { content: @long-arrow-left; }
+.icon-long-arrow-right:before { content: @long-arrow-right; }
+.icon-apple:before { content: @apple; }
+.icon-windows:before { content: @windows; }
+.icon-android:before { content: @android; }
+.icon-linux:before { content: @linux; }
+.icon-dribbble:before { content: @dribbble; }
+.icon-skype:before { content: @skype; }
+.icon-foursquare:before { content: @foursquare; }
+.icon-trello:before { content: @trello; }
+.icon-female:before { content: @female; }
+.icon-male:before { content: @male; }
+.icon-gittip:before { content: @gittip; }
+.icon-sun:before { content: @sun; }
+.icon-moon:before { content: @moon; }
+.icon-archive:before { content: @archive; }
+.icon-bug:before { content: @bug; }
+.icon-vk:before { content: @vk; }
+.icon-weibo:before { content: @weibo; }
+.icon-renren:before { content: @renren; }
diff --git a/theme/less/font-awesome-3.2.1/mixins.less b/theme/less/font-awesome-3.2.1/mixins.less
new file mode 100644
index 0000000..f7fdda5
--- /dev/null
+++ b/theme/less/font-awesome-3.2.1/mixins.less
@@ -0,0 +1,48 @@
+// Mixins
+// --------------------------
+
+.icon(@icon) {
+ .icon-FontAwesome();
+ content: @icon;
+}
+
+.icon-FontAwesome() {
+ font-family: FontAwesome;
+ font-weight: normal;
+ font-style: normal;
+ text-decoration: inherit;
+ -webkit-font-smoothing: antialiased;
+ *margin-right: .3em; // fixes ie7 issues
+}
+
+.border-radius(@radius) {
+ -webkit-border-radius: @radius;
+ -moz-border-radius: @radius;
+ border-radius: @radius;
+}
+
+.icon-stack(@width: 2em, @height: 2em, @top-font-size: 1em, @base-font-size: 2em) {
+ .icon-stack {
+ position: relative;
+ display: inline-block;
+ width: @width;
+ height: @height;
+ line-height: @width;
+ vertical-align: -35%;
+ [class^="icon-"],
+ [class*=" icon-"] {
+ display: block;
+ text-align: center;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ font-size: @top-font-size;
+ line-height: inherit;
+ *line-height: @height;
+ }
+ .icon-stack-base {
+ font-size: @base-font-size;
+ *line-height: @height / @base-font-size;
+ }
+ }
+}
diff --git a/theme/less/font-awesome-3.2.1/path.less b/theme/less/font-awesome-3.2.1/path.less
new file mode 100644
index 0000000..8ccef8c
--- /dev/null
+++ b/theme/less/font-awesome-3.2.1/path.less
@@ -0,0 +1,14 @@
+/* FONT PATH
+ * -------------------------- */
+
+@font-face {
+ font-family: 'FontAwesome';
+ src: url('@{FontAwesomePath}/fontawesome-webfont.eot?v=@{FontAwesomeVersion}');
+ src: url('@{FontAwesomePath}/fontawesome-webfont.eot?#iefix&v=@{FontAwesomeVersion}') format('embedded-opentype'),
+ url('@{FontAwesomePath}/fontawesome-webfont.woff?v=@{FontAwesomeVersion}') format('woff'),
+ url('@{FontAwesomePath}/fontawesome-webfont.ttf?v=@{FontAwesomeVersion}') format('truetype'),
+ url('@{FontAwesomePath}/fontawesome-webfont.svg#fontawesomeregular?v=@{FontAwesomeVersion}') format('svg');
+// src: url('@{FontAwesomePath}/FontAwesome.otf') format('opentype'); // used when developing fonts
+ font-weight: normal;
+ font-style: normal;
+}
diff --git a/theme/less/font-awesome-3.2.1/variables.less b/theme/less/font-awesome-3.2.1/variables.less
new file mode 100644
index 0000000..9d0879b
--- /dev/null
+++ b/theme/less/font-awesome-3.2.1/variables.less
@@ -0,0 +1,735 @@
+// Variables
+// --------------------------
+
+@FontAwesomePath: "../font";
+//@FontAwesomePath: "//netdna.bootstrapcdn.com/font-awesome/3.2.1/font"; // for referencing Bootstrap CDN font files directly
+@FontAwesomeVersion: "3.2.1";
+@borderColor: #eee;
+@iconMuted: #eee;
+@iconLight: #fff;
+@iconDark: #333;
+@icons-li-width: 30/14em;
+
+
+ @glass: "\f000";
+
+ @music: "\f001";
+
+ @search: "\f002";
+
+ @envelope-alt: "\f003";
+
+ @heart: "\f004";
+
+ @star: "\f005";
+
+ @star-empty: "\f006";
+
+ @user: "\f007";
+
+ @film: "\f008";
+
+ @th-large: "\f009";
+
+ @th: "\f00a";
+
+ @th-list: "\f00b";
+
+ @ok: "\f00c";
+
+ @remove: "\f00d";
+
+ @zoom-in: "\f00e";
+
+ @zoom-out: "\f010";
+
+ @off: "\f011";
+
+ @signal: "\f012";
+
+ @cog: "\f013";
+
+ @trash: "\f014";
+
+ @home: "\f015";
+
+ @file-alt: "\f016";
+
+ @time: "\f017";
+
+ @road: "\f018";
+
+ @download-alt: "\f019";
+
+ @download: "\f01a";
+
+ @upload: "\f01b";
+
+ @inbox: "\f01c";
+
+ @play-circle: "\f01d";
+
+ @repeat: "\f01e";
+
+ @refresh: "\f021";
+
+ @list-alt: "\f022";
+
+ @lock: "\f023";
+
+ @flag: "\f024";
+
+ @headphones: "\f025";
+
+ @volume-off: "\f026";
+
+ @volume-down: "\f027";
+
+ @volume-up: "\f028";
+
+ @qrcode: "\f029";
+
+ @barcode: "\f02a";
+
+ @tag: "\f02b";
+
+ @tags: "\f02c";
+
+ @book: "\f02d";
+
+ @bookmark: "\f02e";
+
+ @print: "\f02f";
+
+ @camera: "\f030";
+
+ @font: "\f031";
+
+ @bold: "\f032";
+
+ @italic: "\f033";
+
+ @text-height: "\f034";
+
+ @text-width: "\f035";
+
+ @align-left: "\f036";
+
+ @align-center: "\f037";
+
+ @align-right: "\f038";
+
+ @align-justify: "\f039";
+
+ @list: "\f03a";
+
+ @indent-left: "\f03b";
+
+ @indent-right: "\f03c";
+
+ @facetime-video: "\f03d";
+
+ @picture: "\f03e";
+
+ @pencil: "\f040";
+
+ @map-marker: "\f041";
+
+ @adjust: "\f042";
+
+ @tint: "\f043";
+
+ @edit: "\f044";
+
+ @share: "\f045";
+
+ @check: "\f046";
+
+ @move: "\f047";
+
+ @step-backward: "\f048";
+
+ @fast-backward: "\f049";
+
+ @backward: "\f04a";
+
+ @play: "\f04b";
+
+ @pause: "\f04c";
+
+ @stop: "\f04d";
+
+ @forward: "\f04e";
+
+ @fast-forward: "\f050";
+
+ @step-forward: "\f051";
+
+ @eject: "\f052";
+
+ @chevron-left: "\f053";
+
+ @chevron-right: "\f054";
+
+ @plus-sign: "\f055";
+
+ @minus-sign: "\f056";
+
+ @remove-sign: "\f057";
+
+ @ok-sign: "\f058";
+
+ @question-sign: "\f059";
+
+ @info-sign: "\f05a";
+
+ @screenshot: "\f05b";
+
+ @remove-circle: "\f05c";
+
+ @ok-circle: "\f05d";
+
+ @ban-circle: "\f05e";
+
+ @arrow-left: "\f060";
+
+ @arrow-right: "\f061";
+
+ @arrow-up: "\f062";
+
+ @arrow-down: "\f063";
+
+ @share-alt: "\f064";
+
+ @resize-full: "\f065";
+
+ @resize-small: "\f066";
+
+ @plus: "\f067";
+
+ @minus: "\f068";
+
+ @asterisk: "\f069";
+
+ @exclamation-sign: "\f06a";
+
+ @gift: "\f06b";
+
+ @leaf: "\f06c";
+
+ @fire: "\f06d";
+
+ @eye-open: "\f06e";
+
+ @eye-close: "\f070";
+
+ @warning-sign: "\f071";
+
+ @plane: "\f072";
+
+ @calendar: "\f073";
+
+ @random: "\f074";
+
+ @comment: "\f075";
+
+ @magnet: "\f076";
+
+ @chevron-up: "\f077";
+
+ @chevron-down: "\f078";
+
+ @retweet: "\f079";
+
+ @shopping-cart: "\f07a";
+
+ @folder-close: "\f07b";
+
+ @folder-open: "\f07c";
+
+ @resize-vertical: "\f07d";
+
+ @resize-horizontal: "\f07e";
+
+ @bar-chart: "\f080";
+
+ @twitter-sign: "\f081";
+
+ @facebook-sign: "\f082";
+
+ @camera-retro: "\f083";
+
+ @key: "\f084";
+
+ @cogs: "\f085";
+
+ @comments: "\f086";
+
+ @thumbs-up-alt: "\f087";
+
+ @thumbs-down-alt: "\f088";
+
+ @star-half: "\f089";
+
+ @heart-empty: "\f08a";
+
+ @signout: "\f08b";
+
+ @linkedin-sign: "\f08c";
+
+ @pushpin: "\f08d";
+
+ @external-link: "\f08e";
+
+ @signin: "\f090";
+
+ @trophy: "\f091";
+
+ @github-sign: "\f092";
+
+ @upload-alt: "\f093";
+
+ @lemon: "\f094";
+
+ @phone: "\f095";
+
+ @check-empty: "\f096";
+
+ @bookmark-empty: "\f097";
+
+ @phone-sign: "\f098";
+
+ @twitter: "\f099";
+
+ @facebook: "\f09a";
+
+ @github: "\f09b";
+
+ @unlock: "\f09c";
+
+ @credit-card: "\f09d";
+
+ @rss: "\f09e";
+
+ @hdd: "\f0a0";
+
+ @bullhorn: "\f0a1";
+
+ @bell: "\f0a2";
+
+ @certificate: "\f0a3";
+
+ @hand-right: "\f0a4";
+
+ @hand-left: "\f0a5";
+
+ @hand-up: "\f0a6";
+
+ @hand-down: "\f0a7";
+
+ @circle-arrow-left: "\f0a8";
+
+ @circle-arrow-right: "\f0a9";
+
+ @circle-arrow-up: "\f0aa";
+
+ @circle-arrow-down: "\f0ab";
+
+ @globe: "\f0ac";
+
+ @wrench: "\f0ad";
+
+ @tasks: "\f0ae";
+
+ @filter: "\f0b0";
+
+ @briefcase: "\f0b1";
+
+ @fullscreen: "\f0b2";
+
+ @group: "\f0c0";
+
+ @link: "\f0c1";
+
+ @cloud: "\f0c2";
+
+ @beaker: "\f0c3";
+
+ @cut: "\f0c4";
+
+ @copy: "\f0c5";
+
+ @paper-clip: "\f0c6";
+
+ @save: "\f0c7";
+
+ @sign-blank: "\f0c8";
+
+ @reorder: "\f0c9";
+
+ @list-ul: "\f0ca";
+
+ @list-ol: "\f0cb";
+
+ @strikethrough: "\f0cc";
+
+ @underline: "\f0cd";
+
+ @table: "\f0ce";
+
+ @magic: "\f0d0";
+
+ @truck: "\f0d1";
+
+ @pinterest: "\f0d2";
+
+ @pinterest-sign: "\f0d3";
+
+ @google-plus-sign: "\f0d4";
+
+ @google-plus: "\f0d5";
+
+ @money: "\f0d6";
+
+ @caret-down: "\f0d7";
+
+ @caret-up: "\f0d8";
+
+ @caret-left: "\f0d9";
+
+ @caret-right: "\f0da";
+
+ @columns: "\f0db";
+
+ @sort: "\f0dc";
+
+ @sort-down: "\f0dd";
+
+ @sort-up: "\f0de";
+
+ @envelope: "\f0e0";
+
+ @linkedin: "\f0e1";
+
+ @undo: "\f0e2";
+
+ @legal: "\f0e3";
+
+ @dashboard: "\f0e4";
+
+ @comment-alt: "\f0e5";
+
+ @comments-alt: "\f0e6";
+
+ @bolt: "\f0e7";
+
+ @sitemap: "\f0e8";
+
+ @umbrella: "\f0e9";
+
+ @paste: "\f0ea";
+
+ @lightbulb: "\f0eb";
+
+ @exchange: "\f0ec";
+
+ @cloud-download: "\f0ed";
+
+ @cloud-upload: "\f0ee";
+
+ @user-md: "\f0f0";
+
+ @stethoscope: "\f0f1";
+
+ @suitcase: "\f0f2";
+
+ @bell-alt: "\f0f3";
+
+ @coffee: "\f0f4";
+
+ @food: "\f0f5";
+
+ @file-text-alt: "\f0f6";
+
+ @building: "\f0f7";
+
+ @hospital: "\f0f8";
+
+ @ambulance: "\f0f9";
+
+ @medkit: "\f0fa";
+
+ @fighter-jet: "\f0fb";
+
+ @beer: "\f0fc";
+
+ @h-sign: "\f0fd";
+
+ @plus-sign-alt: "\f0fe";
+
+ @double-angle-left: "\f100";
+
+ @double-angle-right: "\f101";
+
+ @double-angle-up: "\f102";
+
+ @double-angle-down: "\f103";
+
+ @angle-left: "\f104";
+
+ @angle-right: "\f105";
+
+ @angle-up: "\f106";
+
+ @angle-down: "\f107";
+
+ @desktop: "\f108";
+
+ @laptop: "\f109";
+
+ @tablet: "\f10a";
+
+ @mobile-phone: "\f10b";
+
+ @circle-blank: "\f10c";
+
+ @quote-left: "\f10d";
+
+ @quote-right: "\f10e";
+
+ @spinner: "\f110";
+
+ @circle: "\f111";
+
+ @reply: "\f112";
+
+ @github-alt: "\f113";
+
+ @folder-close-alt: "\f114";
+
+ @folder-open-alt: "\f115";
+
+ @expand-alt: "\f116";
+
+ @collapse-alt: "\f117";
+
+ @smile: "\f118";
+
+ @frown: "\f119";
+
+ @meh: "\f11a";
+
+ @gamepad: "\f11b";
+
+ @keyboard: "\f11c";
+
+ @flag-alt: "\f11d";
+
+ @flag-checkered: "\f11e";
+
+ @terminal: "\f120";
+
+ @code: "\f121";
+
+ @reply-all: "\f122";
+
+ @mail-reply-all: "\f122";
+
+ @star-half-empty: "\f123";
+
+ @location-arrow: "\f124";
+
+ @crop: "\f125";
+
+ @code-fork: "\f126";
+
+ @unlink: "\f127";
+
+ @question: "\f128";
+
+ @info: "\f129";
+
+ @exclamation: "\f12a";
+
+ @superscript: "\f12b";
+
+ @subscript: "\f12c";
+
+ @eraser: "\f12d";
+
+ @puzzle-piece: "\f12e";
+
+ @microphone: "\f130";
+
+ @microphone-off: "\f131";
+
+ @shield: "\f132";
+
+ @calendar-empty: "\f133";
+
+ @fire-extinguisher: "\f134";
+
+ @rocket: "\f135";
+
+ @maxcdn: "\f136";
+
+ @chevron-sign-left: "\f137";
+
+ @chevron-sign-right: "\f138";
+
+ @chevron-sign-up: "\f139";
+
+ @chevron-sign-down: "\f13a";
+
+ @html5: "\f13b";
+
+ @css3: "\f13c";
+
+ @anchor: "\f13d";
+
+ @unlock-alt: "\f13e";
+
+ @bullseye: "\f140";
+
+ @ellipsis-horizontal: "\f141";
+
+ @ellipsis-vertical: "\f142";
+
+ @rss-sign: "\f143";
+
+ @play-sign: "\f144";
+
+ @ticket: "\f145";
+
+ @minus-sign-alt: "\f146";
+
+ @check-minus: "\f147";
+
+ @level-up: "\f148";
+
+ @level-down: "\f149";
+
+ @check-sign: "\f14a";
+
+ @edit-sign: "\f14b";
+
+ @external-link-sign: "\f14c";
+
+ @share-sign: "\f14d";
+
+ @compass: "\f14e";
+
+ @collapse: "\f150";
+
+ @collapse-top: "\f151";
+
+ @expand: "\f152";
+
+ @eur: "\f153";
+
+ @gbp: "\f154";
+
+ @usd: "\f155";
+
+ @inr: "\f156";
+
+ @jpy: "\f157";
+
+ @cny: "\f158";
+
+ @krw: "\f159";
+
+ @btc: "\f15a";
+
+ @file: "\f15b";
+
+ @file-text: "\f15c";
+
+ @sort-by-alphabet: "\f15d";
+
+ @sort-by-alphabet-alt: "\f15e";
+
+ @sort-by-attributes: "\f160";
+
+ @sort-by-attributes-alt: "\f161";
+
+ @sort-by-order: "\f162";
+
+ @sort-by-order-alt: "\f163";
+
+ @thumbs-up: "\f164";
+
+ @thumbs-down: "\f165";
+
+ @youtube-sign: "\f166";
+
+ @youtube: "\f167";
+
+ @xing: "\f168";
+
+ @xing-sign: "\f169";
+
+ @youtube-play: "\f16a";
+
+ @dropbox: "\f16b";
+
+ @stackexchange: "\f16c";
+
+ @instagram: "\f16d";
+
+ @flickr: "\f16e";
+
+ @adn: "\f170";
+
+ @bitbucket: "\f171";
+
+ @bitbucket-sign: "\f172";
+
+ @tumblr: "\f173";
+
+ @tumblr-sign: "\f174";
+
+ @long-arrow-down: "\f175";
+
+ @long-arrow-up: "\f176";
+
+ @long-arrow-left: "\f177";
+
+ @long-arrow-right: "\f178";
+
+ @apple: "\f179";
+
+ @windows: "\f17a";
+
+ @android: "\f17b";
+
+ @linux: "\f17c";
+
+ @dribbble: "\f17d";
+
+ @skype: "\f17e";
+
+ @foursquare: "\f180";
+
+ @trello: "\f181";
+
+ @female: "\f182";
+
+ @male: "\f183";
+
+ @gittip: "\f184";
+
+ @sun: "\f185";
+
+ @moon: "\f186";
+
+ @archive: "\f187";
+
+ @bug: "\f188";
+
+ @vk: "\f189";
+
+ @weibo: "\f18a";
+
+ @renren: "\f18b";
+
diff --git a/theme/less/kyruus-bootstrap/alerts.less b/theme/less/kyruus-bootstrap/alerts.less
new file mode 100644
index 0000000..9701777
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/alerts.less
@@ -0,0 +1,62 @@
+//
+// Alerts
+// --------------------------------------------------
+
+
+// Base styles
+// -------------------------
+
+.alert-large {
+ padding: 30px 40px;
+}
+
+// Alternate styles
+// -------------------------
+
+.alert-inverse {
+ background-color: @inverseBackground;
+ border-color: @inverseBorder;
+ color: @inverseText;
+ text-shadow: 0 1px 0 rgba(0,0,0,.5);
+}
+
+// Utility classes
+.alert-warning, .alert-success, .alert-error, .alert-info {
+ a { font-weight: bold; }
+}
+
+.alert-warning {
+// a {
+// color: @yellowDark;
+// &:hover { color: @yellowDarker; }
+// }
+ .muted { color: mix(@warningBackground, @warningText, 50%); }
+ .progress .bar { #gradient > .vertical(mix(@warningBackground, @warningText, 80%), mix(@warningBackground, @warningText, 50%)); }
+}
+
+.alert-error {
+// a {
+// color: @red;
+// &:hover { color: @redDark; }
+// }
+ .muted { color: mix(@errorBackground, @errorText, 50%); }
+ .progress .bar { #gradient > .vertical(mix(@errorBackground, @errorText, 80%), mix(@errorBackground, @errorText, 40%)); }
+}
+
+.alert-info {
+// a {
+// color: @blue;
+// &:hover { color: @blueDark; }
+// }
+ .muted { color: mix(@infoBackground, @infoText, 50%); }
+ .progress .bar { #gradient > .vertical(mix(@infoBackground, @infoText, 80%), mix(@infoBackground, @infoText, 40%)); }
+}
+
+.alert-success {
+// a {
+// color: @greenDark;
+// &:hover { color: @greenDarker; }
+// }
+ .muted { color: mix(@successBackground, @successText, 50%); }
+ .progress .bar { #gradient > .vertical(mix(@successBackground, @successText, 80%), mix(@successBackground, @successText, 40%)); }
+}
diff --git a/theme/less/kyruus-bootstrap/button-groups.less b/theme/less/kyruus-bootstrap/button-groups.less
new file mode 100755
index 0000000..5186e1e
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/button-groups.less
@@ -0,0 +1,50 @@
+//
+// Kyruus button groups
+// --------------------------------------------------
+
+
+// Reset fonts for other sizes
+.btn-group > .btn-xlarge {
+ font-size: @baseFontSize + 6px;
+}
+
+// Reset corners for large buttons
+.btn-group > .btn.xlarge:first-child {
+ margin-left: 0;
+ -webkit-border-top-left-radius: 7px;
+ -moz-border-radius-topleft: 7px;
+ border-top-left-radius: 7px;
+ -webkit-border-bottom-left-radius: 7px;
+ -moz-border-radius-bottomleft: 7px;
+ border-bottom-left-radius: 7px;
+}
+.btn-group > .btn.xlarge:last-child,
+.btn-group > .xlarge.dropdown-toggle {
+ -webkit-border-top-right-radius: 7px;
+ -moz-border-radius-topright: 7px;
+ border-top-right-radius: 7px;
+ -webkit-border-bottom-right-radius: 7px;
+ -moz-border-radius-bottomright: 7px;
+ border-bottom-right-radius: 7px;
+}
+
+// Split button dropdowns
+// ----------------------
+
+// Give the line between buttons some depth
+.btn-group > .btn-xlarge + .dropdown-toggle {
+ padding-left: 16px;
+ padding-right: 16px;
+ *padding-top: 9px;
+ *padding-bottom: 9px;
+}
+
+// Vertical button groups
+// ----------------------
+
+.btn-group-vertical .btn-large:first-child {
+ .border-radius(7px 7px 0 0);
+}
+.btn-group-vertical .btn-large:last-child {
+ .border-radius(0 0 7px 7px);
+}
diff --git a/theme/less/kyruus-bootstrap/buttons.less b/theme/less/kyruus-bootstrap/buttons.less
new file mode 100755
index 0000000..c8b4fe3
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/buttons.less
@@ -0,0 +1,83 @@
+//
+// Buttons
+// --------------------------------------------------
+
+
+// Base styles
+// --------------------------------------------------
+
+// Core
+.btn {
+ font-weight: bold;
+ font-family: @sansFontFamily;
+}
+
+
+// Button Sizes
+// --------------------------------------------------
+
+// X-Large
+.btn-xl {
+ padding: @paddingXL;
+ font-size: @fontSizeXL;
+ .border-radius(@borderRadiusXL);
+}
+
+
+// Cross-browser Jank
+// --------------------------------------------------
+
+button.btn,
+input[type="submit"].btn {
+
+ &.btn-xl {
+ *padding-top: 9px;
+ *padding-bottom: 9px;
+ }
+}
+
+// Block button
+.btn-block {
+ display: block;
+ width: 100%;
+ padding-left: 0;
+ padding-right: 0;
+ .box-sizing(border-box);
+}
+
+
+// Link buttons
+// --------------------------------------------------
+// Must call again to reset style for Kyruus Bootstrap
+
+// Make a button look and behave like a link
+.btn-link,
+.btn-link:active {
+ font-weight: normal;
+ background-color: transparent;
+ background-image: none;
+}
+.btn-link {
+ border-color: transparent;
+ cursor: pointer;
+ color: @linkColor;
+}
+.btn-link:hover {
+ color: @linkColorHover;
+ background-color: transparent;
+}
+
+.btn-list {
+ h4 { margin: 0 0 15px; }
+ .btn {
+ margin-bottom: 10px;
+ text-align: left;
+ i {
+ width: 1.1em;
+ display: inline-block;
+ margin-right: .3em;
+ text-align: center;
+ margin-left: 22px;
+ }
+ }
+}
diff --git a/theme/less/kyruus-bootstrap/close.less b/theme/less/kyruus-bootstrap/close.less
new file mode 100755
index 0000000..93a7a29
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/close.less
@@ -0,0 +1,14 @@
+//
+// Kyruus close icons
+// --------------------------------------------------
+// Resets the .close style to play nice with Font Awesome
+
+.close {
+ font-size: inherit;
+ line-height: inherit;
+}
+
+.alert .close {
+ line-height: inherit;
+ padding-top: 2px;
+}
diff --git a/theme/less/kyruus-bootstrap/dropdowns.less b/theme/less/kyruus-bootstrap/dropdowns.less
new file mode 100755
index 0000000..9b1a9dd
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/dropdowns.less
@@ -0,0 +1,14 @@
+//
+// Kyruus dropdown menus
+// --------------------------------------------------
+
+
+// overwrites dropdown submenus with a Font Awesome icon-caret-right
+.dropdown-submenu > a:after {
+ font-family: FontAwesome;
+ content: "\f0da";
+ width: auto;
+ height: auto;
+ border: none;
+ margin-top: 0;
+}
diff --git a/theme/less/kyruus-bootstrap/font-awesome.less b/theme/less/kyruus-bootstrap/font-awesome.less
new file mode 100755
index 0000000..fd27776
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/font-awesome.less
@@ -0,0 +1,78 @@
+//
+// Kyruus Font Awesome styles
+// --------------------------------------------------
+
+
+.btn.btn-xlarge {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ vertical-align: -7%;
+
+ }
+}
+
+.icon-fixed-width {
+ width: 1.1em;
+ display: inline-block;
+}
+
+.icon-6x {
+ font-size: 6em;
+ &.icon-border {
+ padding: .1em .2em;
+ border-width: 6px;
+ .border-radius(8px);
+ }
+}
+
+.icon-7x {
+ font-size: 7em;
+ &.icon-border {
+ padding: .1em .2em;
+ border-width: 7px;
+ .border-radius(9px);
+ }
+}
+
+.icon-8x {
+ font-size: 8em;
+ &.icon-border {
+ padding: .1em .2em;
+ border-width: 8px;
+ .border-radius(10px);
+ }
+}
+
+// allows usage of the hide class directly on font awesome icons
+[class^="icon-"],
+[class*=" icon-"] {
+ &.hide { display:none; }
+}
+
+// fixes font awesome underlining with icons embedded inside anchor tags
+a {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ &, &:before { display: inline; }
+ }
+}
+
+.btn.btn-xl {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ &.icon-large:before {
+ vertical-align: -15%;
+ }
+ margin-top: 0; // overrides bootstrap default
+ &.pull-left, &.pull-right {
+ &.icon-2x { margin-top: .05em; }
+ }
+ &.pull-left.icon-2x { margin-right: .2em; }
+ &.pull-right.icon-2x { margin-left: .2em; }
+ }
+}
+
+.icon-1x {
+ font-size: @baseFontSize;
+ vertical-align: middle;
+}
diff --git a/theme/less/kyruus-bootstrap/fonts.less b/theme/less/kyruus-bootstrap/fonts.less
new file mode 100755
index 0000000..035c029
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/fonts.less
@@ -0,0 +1,35 @@
+@font-face {
+ font-family: 'museo-slab';
+ src: url('.@{fontPath}/museo-slab/museo_slab_300-webfont.eot');
+ src: url('@{fontPath}/museo-slab/museo_slab_300-webfont.eot?#iefix') format('embedded-opentype'),
+ url('@{fontPath}/museo-slab/museo_slab_300-webfont.ttf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'museo-slab';
+ src: url('@{fontPath}/museo-slab/museo_slab_500-webfont.eot');
+ src: url('@{fontPath}/museo-slab/museo_slab_500-webfont.eot?#iefix') format('embedded-opentype'),
+ url('@{fontPath}/museo-slab/museo_slab_500-webfont.ttf') format('truetype');
+ font-weight: bold;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'proxima-nova';
+ src: url('@{fontPath}/proxima-nova/proximanova-webfont.eot');
+ src: url('@{fontPath}/proxima-nova/proximanova-webfont.eot?#iefix') format('embedded-opentype'),
+ url('@{fontPath}/proxima-nova/proximanova-webfont.ttf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'proxima-nova';
+ src: url('@{fontPath}/proxima-nova/proximanova-bold-webfont.eot');
+ src: url('@{fontPath}/proxima-nova/proximanova-bold-webfont.eot?#iefix') format('embedded-opentype'),
+ url('@{fontPath}/proxima-nova/proximanova-bold-webfont.ttf') format('truetype');
+ font-weight: bold;
+ font-style: normal;
+}
diff --git a/theme/less/kyruus-bootstrap/footer.less b/theme/less/kyruus-bootstrap/footer.less
new file mode 100755
index 0000000..5022e2a
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/footer.less
@@ -0,0 +1,27 @@
+//
+// Kyruus Sticky Footers
+// --------------------------------------------------
+// make sure to set .sticky-footer()
+
+html, body {
+ height: 100%;
+}
+.wrapper {
+ min-height: 100%;
+ height: auto !important;
+ height: 100%;
+}
+
+.footer {
+ min-width: 990px; // necessary fix for non-responsive layouts
+ border-top: 1px solid @grayLighter;
+ background-color: #f5f5f5;
+
+ color: #777;
+
+ p {
+ margin-bottom: 0;
+ }
+}
+
+.sticky-footer(); // sets default values for sticky footer
\ No newline at end of file
diff --git a/theme/less/kyruus-bootstrap/forms.less b/theme/less/kyruus-bootstrap/forms.less
new file mode 100644
index 0000000..a8e94f1
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/forms.less
@@ -0,0 +1,26 @@
+//
+// Forms
+// --------------------------------------------------
+
+// Compact Horizontal Form
+// --------------------------
+
+.form-horizontal.form-horizontal-compact {
+// Increase spacing between groups
+ .control-group {
+ margin-bottom: @baseLineHeight / 2;
+ }
+}
+
+// HELP TEXT
+// ---------
+
+.help-block,
+.help-inline {
+ color: @grayLight; // lighten the text some for contrast
+}
+
+.optional {
+ color: @grayLight;
+ &:after { content: " (Optional)"; }
+}
diff --git a/theme/less/kyruus-bootstrap/jumbotron.less b/theme/less/kyruus-bootstrap/jumbotron.less
new file mode 100755
index 0000000..6f5320e
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/jumbotron.less
@@ -0,0 +1,46 @@
+//
+// Jumbotron
+// --------------------------------------------------
+
+
+// Base styles
+// --------------------------------------------------
+
+.jumbotron {
+ color:#ffffff;
+ text-shadow:0 1px 3px rgba(0,0,0,0.4), 0 0 30px rgba(0,0,0,0.075);
+ h1 {
+ font-size: 80px;
+ letter-spacing: -1px;
+ line-height: 1;
+ }
+ p {
+ font-size:24px;
+ font-weight: 300;
+ line-height: 30px;
+ margin-bottom: 30px;
+ }
+ &.jumbotron-padded {
+ padding: 55px 0 45px;
+ }
+ .container {
+ &.bg-md {
+ @width: 390px;
+ width: @width;
+ padding-right: 940 - @width;
+ background: url('@{image_dir}/kyruus-jumbotron-md.png') no-repeat bottom right;
+ height: 314px;
+ h1 {
+ margin-top: 50px;
+ font-size: 33px;
+ letter-spacing: -1px;
+ line-height: 1.1;
+ }
+ p {
+ font-size: @baseFontSize + 2;
+ line-height: @baseLineHeight + 3;
+ margin:20px 0 15px;
+ }
+ }
+ }
+}
diff --git a/theme/less/kyruus-bootstrap/kyruus.less b/theme/less/kyruus-bootstrap/kyruus.less
new file mode 100644
index 0000000..9443baf
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/kyruus.less
@@ -0,0 +1,40 @@
+// KYRUUS BOOTSTRAP VERSION 1.0.0
+// ------------------------------
+
+
+// Bootstrap
+@import "../bootstrap-2.3.2/bootstrap";
+@import "../bootstrap-2.3.2/mixins";
+@import "../bootstrap-2.3.2/variables";
+@import "../bootstrap-2.3.2/responsive-utilities"; // for visible-print and hidden-print
+
+// Font Awesome
+@import "../font-awesome-3.2.1/font-awesome";
+
+// Other Plugins
+@import "../lib/bootstrap-modal";
+@import "../lib/data-tables";
+@import "../lib/datepicker";
+@import "../lib/select2";
+
+// Kyruus Bootstrap
+@import "variables"; // overrides variables
+@import "fonts";
+@import "mixins";
+@import "progress-bars";
+@import "labels-badges";
+@import "jumbotron";
+@import "buttons";
+@import "button-groups";
+@import "navbar";
+@import "wells";
+@import "type";
+@import "footer";
+@import "dropdowns";
+@import "close";
+@import "forms";
+@import "alerts";
+@import "modals";
+@import "tables";
+@import "font-awesome";
+@import "lazy";
diff --git a/theme/less/kyruus-bootstrap/labels-badges.less b/theme/less/kyruus-bootstrap/labels-badges.less
new file mode 100755
index 0000000..bdadcbb
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/labels-badges.less
@@ -0,0 +1,40 @@
+//
+// Labels and badges
+// --------------------------------------------------
+
+
+// Base classes
+.label,
+.badge {
+ background-color: mix(@grayLight, @grayLighter, 40%);
+}
+
+// Set unique padding and border-radii
+.label {
+ padding: 3px 4px 2px;
+}
+.badge {
+ padding: 3px 9px 2px;
+}
+
+
+// Colors
+// Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute)
+.label,
+.badge {
+// Important (red)
+ &-important { background-color: @red; }
+ &-important[href] { background-color: darken(@red, 10%); }
+// Warnings (orange)
+ &-warning { background-color: @yellow; color: @grayDark; text-shadow: 0 -1px 0 @yellowLighter; }
+ &-warning[href] { background-color: darken(@yellow, 10%); }
+// Success (green)
+ &-success { background-color: mix(@green, @greenLight, 70%); }
+ &-success[href] { background-color: darken(@green, 10%); }
+// Info (turquoise)
+ &-info { background-color: mix(@blue, @blueLight, 20%); }
+ &-info[href] { background-color: darken(@blue, 10%); }
+// Inverse (black)
+ &-inverse { background-color: @grayDark; }
+ &-inverse[href] { background-color: darken(@grayDark, 10%); }
+}
diff --git a/theme/less/kyruus-bootstrap/lazy.less b/theme/less/kyruus-bootstrap/lazy.less
new file mode 100644
index 0000000..34e22fc
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/lazy.less
@@ -0,0 +1,83 @@
+.padding-none { padding: 0 !important; }
+.padding { padding: 10px !important; }
+.padding-small { padding: 5px !important; }
+.padding-large { padding: 22px !important; }
+
+.padding-top-none { padding-top: 0 !important; }
+.padding-top { padding-top: 10px !important; }
+.padding-top-small { padding-top: 5px !important; }
+.padding-top-large { padding-top: 22px !important; }
+
+.padding-right-none { padding-right: 0 !important; }
+.padding-right { padding-right: 10px !important; }
+.padding-right-small { padding-right: 5px !important; }
+.padding-right-large { padding-right: 22px !important; }
+
+.padding-bottom-none { padding-bottom: 0 !important; }
+.padding-bottom { padding-bottom: 10px !important; }
+.padding-bottom-small { padding-bottom: 5px !important; }
+.padding-bottom-large { padding-bottom: 22px !important; }
+
+.padding-left-none { padding-left: 0 !important; }
+.padding-left { padding-left: 10px !important; }
+.padding-left-small { padding-left: 5px !important; }
+.padding-left-large { padding-left: 22px !important; }
+
+.margin-none { margin: 0 !important; }
+.margin { margin: 10px !important; }
+.margin-small { margin: 5px !important; }
+.margin-large { margin: 22px !important; }
+
+.margin-top-none { margin-top: 0 !important; }
+.margin-top { margin-top: 10px !important; }
+.margin-top-large { margin-top: 22px !important; }
+.margin-top-small { margin-top: 5px !important; }
+
+.margin-right-none { margin-right: 0 !important; }
+.margin-right { margin-right: 10px !important; }
+.margin-right-large { margin-right: 22px !important; }
+.margin-right-small { margin-right: 5px !important; }
+
+.margin-bottom-none { margin-bottom: 0 !important; }
+.margin-bottom { margin-bottom: 10px !important; }
+.margin-bottom-large { margin-bottom: 22px !important; }
+.margin-bottom-small { margin-bottom: 5px !important; }
+
+.margin-left-none { margin-left: 0 !important; }
+.margin-left { margin-left: 10px !important; }
+.margin-left-large { margin-left: 22px !important; }
+.margin-left-small { margin-left: 5px !important; }
+
+.border-left-none { border-left: none !important; }
+.border-right-none { border-right: none !important; }
+.border-bottom-none { border-bottom: none !important; }
+.border-top-none { border-top: none !important; }
+
+.display-block { display: block; } // use to swap an anchor tag to span a whole row to make click target larger
+.no-underline:hover { text-decoration: none; }
+.clickable { cursor: pointer; }
+.strong { font-weight: bold; }
+.em { font-style: italic; }
+.small { font-size: 85%; } // Ex: 14px base font * 85% = about 12px
+.no-link { color: @grayDark; }
+.text-sans-serif { font-family: @sansFontFamily; }
+.text-ellipsis { .text-overflow(); } // truncates text to a single line with an ellipsis at the end
+.text-default {
+ font-family: @sansFontFamily;
+ font-size: @baseFontSize;
+ line-height: @baseLineHeight;
+ font-weight: normal;
+}
+.hilite {
+ color: @linkColor;
+ &:hover {
+ color: @linkColorHover;
+ text-decoration: underline;
+ }
+ [class^="icon-"], [class*=" icon-"] {
+ &:before {
+ display: inline;
+ }
+ }
+}
+.strike { text-decoration: line-through; }
diff --git a/theme/less/kyruus-bootstrap/mixins.less b/theme/less/kyruus-bootstrap/mixins.less
new file mode 100644
index 0000000..24cfa45
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/mixins.less
@@ -0,0 +1,32 @@
+.dataTables_icon(@unicode, @color, @hilite) {
+ &:after {
+ font-family: FontAwesome;
+ font-weight: normal;
+ font-style: normal;
+ display: inline-block;
+ text-decoration: inherit;
+
+ position: absolute;
+ right: -11px;
+ content: @unicode;
+ color: @color;
+ }
+ &:hover:after {
+ color: @hilite;
+ }
+}
+
+.sticky-footer (@footer-height: @baseLineHeight * 4, @footer-padding-top: 70px, @footer-padding-bottom: 70px, @footer-margin-top: 70px) {
+ .wrapper {
+ margin: 0 auto -(@footer-height + @footer-padding-bottom + @footer-padding-top + @footer-margin-top + 1);
+ }
+ .push {
+ height: @footer-height + @footer-padding-bottom + @footer-padding-top + @footer-margin-top + 1;
+ }
+
+ .footer {
+ margin-top: @footer-margin-top;
+ height: @footer-height;
+ padding: @footer-padding-top 0 @footer-padding-bottom;
+ }
+}
diff --git a/theme/less/kyruus-bootstrap/modals.less b/theme/less/kyruus-bootstrap/modals.less
new file mode 100644
index 0000000..19a3cbe
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/modals.less
@@ -0,0 +1,14 @@
+//
+// Kyruus Modals
+// --------------------------------------------------
+
+
+// Background
+.modal-backdrop,
+.modal-backdrop.fade.in{
+ background-color: mix(@blueDarker, @black, 50%);
+}
+
+.modal-header .close {
+ margin: 0;
+}
diff --git a/theme/less/kyruus-bootstrap/navbar.less b/theme/less/kyruus-bootstrap/navbar.less
new file mode 100755
index 0000000..6c9ed03
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/navbar.less
@@ -0,0 +1,233 @@
+//
+// Navbars
+// --------------------------------------------------
+
+
+// Kyruus navbar
+// -------------------------
+
+.jumbotron, .navbar {
+ .container, .container-fluid {
+ position: relative; // fixes z-index problem when layering waves
+ z-index: 2; // fixes z-index problem when layering waves
+ }
+}
+
+.navbar-kyruus {
+ position: relative;
+ color: @navbarKyruusText;
+ margin-bottom: 30px;
+
+ &:after {
+ content:'';
+ display:block;
+ position:absolute;
+ top:0;
+ right:0;
+ bottom:0;
+ left:0;
+ background:url('@{image_dir}/kyruus-waves-light.svg');
+ }
+
+
+ .nav {
+// margin-top: 2px;
+ }
+
+ &.navbar-padded {
+ .brand {
+ margin-top: 50px;
+ &.brand-large {
+ margin-bottom: 0;
+ margin-top: 37px;
+ }
+ }
+ .nav {
+ margin-top: 52px;
+ }
+ }
+
+ .nav-pills.pull-right {
+ margin-right: -20px;
+ }
+
+ .navbar-inner {
+ #gradient > .vertical(@navbarKyruusBackgroundHighlight, @navbarKyruusBackground);
+ border-color: @navbarKyruusBorder;
+ }
+
+ &.navbar-kyruus-large .navbar-inner {
+ #gradient > .vertical(@navbarKyruusBackgroundHighlight, @navbarKyruusBackgroundLarge);
+ }
+
+
+ &.navbar .nav > .active > a, &.navbar .nav > .active > a:hover, &.navbar .nav > .active > a:focus {
+ font-weight: normal;
+ .box-shadow(none);
+ }
+
+ .brand {
+ padding: 7px 20px 8px;
+ width: 75px;
+ height: 25px;
+ background: url('@{image_dir}/kyruus-logo-white.gif') no-repeat center center;
+ background: rgba(0,0,0,0) url('@{image_dir}/kyruus-logo-white.svg') no-repeat center center;
+ }
+ .brand-large {
+ width: 110px;
+ height: 38px;
+ margin-bottom: 5px;
+ background: url('@{image_dir}/kyruus-logo-white-large.gif') no-repeat center center;
+ background: rgba(0,0,0,0) url('@{image_dir}/kyruus-logo-white.svg') no-repeat center center;
+ background-size: 110px 38px;
+ }
+
+ .brand-passport {
+ &.brand {
+ width: 131px;
+ height: 25px;
+ background: url('@{image_dir}/passport-logo-white.gif') no-repeat center center;
+ background: rgba(0,0,0,0) url('@{image_dir}/passport-logo-white.svg') no-repeat center center;
+ }
+ &.brand-large {
+ width: 199px;
+ height: 38px;
+ margin-bottom: 5px;
+ background: url('@{image_dir}/passport-logo-white-large.gif') no-repeat center center;
+ background: rgba(0,0,0,0) url('@{image_dir}/passport-logo-white.svg') no-repeat center center;
+ background-size: 199px 38px;
+ }
+ }
+
+ .brand,
+ .nav > li > a {
+ color: @navbarKyruusLinkColor;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ &:hover {
+ color: @navbarKyruusLinkColorHover;
+ }
+ }
+
+ .nav > li > a {
+// margin-top: 5px;
+ }
+
+
+
+ .nav > li > a:focus,
+ .nav > li > a:hover {
+ color: @navbarKyruusLinkColorHover;
+ background-color: @navbarKyruusLinkBackgroundHover;
+ background-color: rgba(0,51,102,25%);
+ *background-color: @navbarKyruusLinkBackgroundHover;
+ }
+
+ .nav .active > a,
+ .nav .active > a:hover,
+ .nav .active > a:focus {
+ color: @navbarKyruusLinkColorActive;
+ background-color: @navbarKyruusLinkBackgroundActive;
+ background-color: rgba(0,51,102,15%);
+ *background-color: @navbarKyruusLinkBackgroundActive;
+ }
+
+ .nav-large {
+ @nav-large-size: 20px;
+ margin-top: 7px;
+ font-size: 20px;
+ .divider-vertical {
+ margin: 4px 9px;
+ height: @nav-large-size * 1.5;
+ }
+ }
+
+// Inline text links
+ .navbar-link {
+ color: @navbarKyruusLinkColor;
+ &:hover {
+ color: @navbarKyruusLinkColorHover;
+ }
+ }
+
+// Dividers in navbar
+ .divider-vertical {
+ margin: 9px;
+ padding-right: 2px;
+ height: @baseLineHeight;
+ border-left-color: mix(@blueLight, @blue, 50%);
+ border-right-color: mix(@blueLight, @blue, 50%);
+ }
+
+ .dropdown-toggle > i.icon-caret-down { display: inline; }
+
+// Dropdowns
+ .nav li.dropdown.open > .dropdown-toggle,
+ .nav li.dropdown.active > .dropdown-toggle,
+ .nav li.dropdown.open.active > .dropdown-toggle {
+ background-color: @navbarKyruusLinkBackgroundActive;
+ background-color: rgba(0,51,102,15%);
+ *background-color: @navbarKyruusLinkBackgroundActive;
+ color: @navbarKyruusLinkColorActive;
+ }
+ .nav li.dropdown > .dropdown-toggle .caret {
+ border-top-color: @navbarKyruusLinkColor;
+ border-bottom-color: @navbarKyruusLinkColor;
+ }
+ .nav li.dropdown.open > .dropdown-toggle .caret,
+ .nav li.dropdown.active > .dropdown-toggle .caret,
+ .nav li.dropdown.open.active > .dropdown-toggle .caret {
+ border-top-color: @navbarKyruusLinkColorActive;
+ border-bottom-color: @navbarKyruusLinkColorActive;
+ }
+
+// Navbar search
+ .navbar-search {
+ .search-query {
+ color: @white;
+ background-color: @navbarKyruusSearchBackground;
+ border-color: @navbarKyruusSearchBorder;
+ .box-shadow(~"inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)");
+ .transition(none);
+ .placeholder(@navbarKyruusSearchPlaceholderColor);
+
+ // Focus states (we use .focused since IE7-8 and down doesn't support :focus)
+ &:focus,
+ &.focused {
+ padding: 5px 15px;
+ color: @grayDark;
+ text-shadow: 0 1px 0 @white;
+ background-color: @navbarKyruusSearchBackgroundFocus;
+ border: 0;
+ .box-shadow(0 0 3px rgba(0,0,0,.15));
+ outline: 0;
+ }
+ }
+ }
+
+// Navbar collapse button
+ .btn-navbar {
+ .buttonBackground(darken(@navbarKyruusBackgroundHighlight, 5%), darken(@navbarKyruusBackground, 5%));
+ }
+
+}
+
+.navbar-static-top {
+ min-width: 990px; // necessary fix for non-responsive layouts
+ .border-radius(0);
+ &.navbar-kyruus .navbar-inner {
+ // .box-shadow(0 0 4px @blueDarker); // make a nice shadow underneath navbar
+ }
+}
+
+.navbar-kyruus {
+ .badge {
+ padding: 2px 7px;
+ vertical-align: text-top;
+ margin-top: -2px;
+ margin-bottom: -2px;
+ }
+
+ .badge-important {
+ background: darken(@errorText, 2%);
+ }
+}
diff --git a/theme/less/kyruus-bootstrap/print.less b/theme/less/kyruus-bootstrap/print.less
new file mode 100644
index 0000000..9448411
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/print.less
@@ -0,0 +1,8 @@
+@media print {
+ .navbar, .steps, .nav-steps, .instructions, .something-missing, .action_cell, .viewSelect {
+ display: none;
+ }
+ .print-logo {
+ display: block;
+ }
+}
diff --git a/theme/less/kyruus-bootstrap/progress-bars.less b/theme/less/kyruus-bootstrap/progress-bars.less
new file mode 100755
index 0000000..d37d567
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/progress-bars.less
@@ -0,0 +1,78 @@
+//
+// Kyruus Progress bars
+// --------------------------------------------------
+
+.progress {
+ position: relative;
+}
+
+.progress-small {
+ height: @baseLineHeight / 2;
+ margin-bottom: 0;
+ .border-radius(@baseBorderRadius / 2);
+}
+
+// Bar of progress
+.progress .bar {
+ #gradient > .vertical(@blue, mix(@blue, @blueDark, 50%));
+}
+
+// Striped bars
+.progress-striped .bar {
+ #gradient > .striped(@blue);
+}
+
+
+// COLORS
+// ------
+
+// Danger (red)
+.progress-danger .bar, .progress .bar-danger {
+ #gradient > .vertical(@red, mix(@red, @redDark, 30%));
+}
+.progress-danger.progress-striped .bar, .progress-striped .bar-danger {
+ #gradient > .striped(@red);
+}
+
+// Success (green)
+.progress-success .bar, .progress .bar-success {
+ #gradient > .vertical(@green, mix(@green, @greenDark, 50%));
+}
+.progress-success.progress-striped .bar, .progress-striped .bar-success {
+ #gradient > .striped(@green);
+}
+
+// Info (teal)
+.progress-info .bar, .progress .bar-info {
+ #gradient > .vertical(mix(@blueLight, @blue, 70%), mix(@blueLight, @blue, 40%));
+}
+.progress-info.progress-striped .bar, .progress-striped .bar-info {
+ #gradient > .striped(mix(@blueLight, @blue, 80%));
+}
+
+// Warning (orange)
+.progress-warning .bar, .progress .bar-warning {
+ #gradient > .vertical(@yellow, mix(@yellow, @yellowDark, 50%));
+}
+.progress-warning.progress-striped .bar, .progress-striped .bar-warning {
+ #gradient > .striped(mix(@yellow, mix(@yellow, @yellowDark, 50%), 50%));
+}
+
+.progress .bar-overlay {
+ position: absolute;
+ text-align: center;
+ width: 100%;
+ top: 0;
+ left:0;
+ color: @white;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.5);
+}
+
+.progress-key {
+ width: @baseFontSize * 2/3;
+ height: @baseFontSize * 2/3;
+ display: inline-block;
+ .ie7-inline-block();
+ margin: 0;
+ .border-radius(2px);
+}
diff --git a/theme/less/kyruus-bootstrap/retina.less b/theme/less/kyruus-bootstrap/retina.less
new file mode 100755
index 0000000..d7f6387
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/retina.less
@@ -0,0 +1,13 @@
+//
+// Kyruus Retina Images
+// --------------------------------------------------
+
+@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
+ only screen and (-o-min-device-pixel-ratio: 3/2),
+ only screen and (min--moz-device-pixel-ratio: 1.5),
+ only screen and (min-device-pixel-ratio: 1.5) {
+ .jumbotron .container.bg-md {
+ background-image: url(../img/kyruus-jumbotron-md-2x.png);
+ background-size: 577px auto;
+ }
+}
\ No newline at end of file
diff --git a/theme/less/kyruus-bootstrap/tables.less b/theme/less/kyruus-bootstrap/tables.less
new file mode 100644
index 0000000..22bba53
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/tables.less
@@ -0,0 +1,38 @@
+.table-bordered-outer {
+ border: 1px solid @tableBorder;
+ border-collapse: separate; // Done so we can round those corners!
+ *border-collapse: collapse; // IE7 can't round corners anyway
+ .border-radius(@baseBorderRadius);
+}
+
+.table tbody tr > td {
+ &.success {
+ background-color: darken(@successBackground, 5%);
+ }
+ &.error {
+ background-color: darken(@errorBackground, 5%);
+ }
+ &.warning {
+ background-color: darken(@warningBackground, 5%);
+ }
+ &.info {
+ background-color: darken(@infoBackground, 5%);
+ }
+}
+
+
+// Hover states for .table-hover
+.table-hover tbody tr:hover > td {
+ &.success {
+ background-color: darken(@successBackground, 10%);
+ }
+ &.error {
+ background-color: darken(@errorBackground, 10%);
+ }
+ &.warning {
+ background-color: darken(@warningBackground, 10%);
+ }
+ &.info {
+ background-color: darken(@infoBackground, 10%);
+ }
+}
diff --git a/theme/less/kyruus-bootstrap/type.less b/theme/less/kyruus-bootstrap/type.less
new file mode 100755
index 0000000..b107f4e
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/type.less
@@ -0,0 +1,106 @@
+//
+// Typography
+// --------------------------------------------------
+
+
+// Body text
+// -------------------------
+
+.lead {
+ margin-bottom: @baseLineHeight / 2;
+ font-size: @baseFontSize + 4;
+ font-weight: bold;
+ line-height: @baseLineHeight + 6;
+}
+
+.lead-large, .copy-large .lead {
+ margin-bottom: @baseLineHeight * 1.5;
+ font-size: @baseFontSize + 10;
+ font-weight: bold;
+ line-height: @baseLineHeight + 15;
+
+ small {
+ font-size: 70%;
+ }
+}
+
+.copy-large {
+ &, & li {
+ font-size: @baseFontSize + 4;
+ line-height: @baseLineHeight + 4;
+ }
+ li {
+ margin: @baseLineHeight/4 0;
+ }
+}
+
+
+h1,
+h2,
+h3 { line-height: @baseLineHeight * 2; }
+
+h1 { font-size: @baseFontSize * 2.5; } // ~35px
+h2 { font-size: @baseFontSize * 2; } // ~28px
+h3 { font-size: @baseFontSize * 1.5; } // ~21px
+h4 { font-size: @baseFontSize * 1.285; } // ~18px
+h5 { font-size: @baseFontSize; }
+h6 { font-size: @baseFontSize * 0.85; } // ~12px
+
+h1 small { font-size: @baseFontSize * 1.75; } // ~24px
+h2 small { font-size: @baseFontSize * 1.25; } // ~18px
+h3 small { font-size: @baseFontSize; }
+h4 small { font-size: @baseFontSize; }
+
+
+// MISC
+// ----
+
+// Horizontal rules
+hr.hr-small {
+ margin: @baseLineHeight/2 0;
+}
+
+
+// Floats
+img.pull-right {
+ margin: 20px;
+ margin-right: 0;
+}
+
+img.pull-left {
+ margin: 20px;
+ margin-left: 0;
+}
+
+.nowrap {
+ white-space: nowrap;
+}
+
+.text-indent-negative {
+ text-indent: -22px;
+ margin-left: 22px;
+}
+
+// Horizontal layout (like forms)
+.dl-horizontal {
+ dt {
+ font-weight: normal;
+ }
+ &.dl-compact {
+ dt {
+ width: @horizontalComponentOffset - 80;
+ }
+ dd {
+ margin-left: @horizontalComponentOffset - 60;
+ word-wrap : break-word;
+ }
+ }
+ &.dl-padded {
+ dt, dd {
+ padding-bottom: 14px;
+ }
+ }
+ dt.strong { font-weight: bold; }
+}
+
+td.number { text-align: right; }
diff --git a/theme/less/kyruus-bootstrap/variables.less b/theme/less/kyruus-bootstrap/variables.less
new file mode 100644
index 0000000..549d519
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/variables.less
@@ -0,0 +1,151 @@
+//
+// KYRUUS BOOTSTRAP VARIABLES
+// --------------------------------------------------
+
+// Resource Paths
+@css_relative_path: '..'; // relative path from where compiled CSS resides to just inside the assets/ folder. Affects images & fonts
+@image_dir: '@{css_relative_path}/img/kyruus-bootstrap'; // where theme images are stored
+@fontPath: '@{css_relative_path}/font/kyruus-bootstrap';
+@FontAwesomePath: '@{css_relative_path}/font/font-awesome-3.2.1'; // Font Awesome variable override
+
+// Grays
+@black: #000;
+@grayDarker: #24211f;
+@grayDark: #363330;
+@gray: #585552;
+@grayLight: #9c9996;
+@grayLighter: #edeceb;
+@white: #fff;
+
+// Blues
+@blueDarker: #003366;
+@blueDark: #005f9b; // Kyruus Dark Blue - Pantone 3015 C
+@blue: #009add; // Kyruus Blue - Pantone 2925 C
+@blueLight: #b8dcf2;
+@blueLighter: #f0f9ff;
+
+// Greens
+@greenDarker: #41683b;
+@greenDark: #678943;
+@green: #95bf52;
+@greenLight: #ddefbd;
+@greenLighter: #f3f9e8;
+
+// Reds
+@redDarker: #702222;
+@redDark: #ba4a4a;
+@red: #dd7373;
+@redLight: #f2adb1;
+@redLighter: #fff0f0;
+
+// Yellows
+@yellowDarker: #6f4215;
+@yellowDark: #db8400;
+@yellow: #f9e27d;
+@yellowLight: #fff5bd;
+@yellowLighter: #fffcee;
+
+// Oranges
+@orangeDarker: #8c3900;
+@orangeDark: #cc5d11;
+@orange: #f4914e;
+@orangeLight: #ffd0a6;
+@orangeLighter: #fff4e6;
+
+// Purples
+@purpleDarker: #4a226d;
+@purpleDark: #7457ad;
+@purple: #9780d6;
+@purpleLight: #c3b8f4;
+@purpleLighter: #fbf5ff;
+
+
+// Kyruus navbar
+@navbarKyruusBackground: mix(@blueDark, @blue, 35%);
+@navbarKyruusBackgroundLarge: @blueDark;
+@navbarKyruusBackgroundHighlight: @blue;
+@navbarKyruusBorder: mix(@blue, @blueDark, 50%);
+
+@navbarKyruusText: mix(@blueLighter, @blue, 90%);
+@navbarKyruusLinkColor: @blueLighter;
+@navbarKyruusLinkColorHover: @white;
+@navbarKyruusLinkColorActive: @white;
+@navbarKyruusLinkBackgroundHover: mix(@blue, @blueDark, 60%);
+@navbarKyruusLinkBackgroundActive: mix(@blue, @blueDark, 60%);
+
+@navbarKyruusSearchBackground: mix(@white, @blueLighter, 50%);
+@navbarKyruusSearchBackgroundFocus: @white;
+@navbarKyruusSearchBorder: @navbarKyruusBackground;
+@navbarKyruusSearchPlaceholderColor: @blue;
+
+@navbarKyruusBrandColor: @navbarKyruusLinkColor;
+
+
+// Additional Component sizing - Based on 14px font-size and 20px line-height
+@fontSizeXL: @baseFontSize * 1.5; // ~18px
+@paddingXL: 15px 23px; // 44px
+@borderRadiusXL: 7px;
+
+// Misc Variables
+@text-muted: @grayLight; // shade of muted text
+
+
+
+
+//
+// BOOTSTRAP OVERRIDES
+// --------------------------------------------------
+
+// Links
+@linkColor: @blue;
+@linkColorHover: @blueDark;
+
+
+// Typography
+@sansFontFamily: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif;
+@serifFontFamily: museo-slab, Georgia, "Times New Roman", Times, serif;
+
+@headingsFontFamily: @serifFontFamily;
+
+
+// Tables
+@tableBorder: @grayLighter; // table and cell border
+
+
+// Buttons
+@btnPrimaryBackground: @linkColor;
+@btnPrimaryBackgroundHighlight: mix(@blue, @blueDark, 50%);
+
+@btnInfoBackground: mix(@blue, @blueLight, 30%);
+@btnInfoBackgroundHighlight: mix(@blue, @blueDark, 70%);
+
+@btnSuccessBackground: @green;
+@btnSuccessBackgroundHighlight: @greenDark;
+
+@btnWarningBackground: @yellow;
+@btnWarningBackgroundHighlight: @yellowDark;
+
+@btnDangerBackground: @red;
+@btnDangerBackgroundHighlight: @redDark;
+
+
+// Form states and alerts
+@warningText: mix(@yellowDark, @yellowDarker, 80%);
+@warningBackground: @yellowLighter;
+@warningBorder: darken(spin(@warningBackground, -10), 7%);
+
+@errorText: @red;
+@errorBackground: @redLighter;
+@errorBorder: darken(spin(@errorBackground, -10), 4%);
+
+@successText: mix(@greenDarker, @greenDark, 30%);
+@successBackground: @greenLighter;
+@successBorder: darken(spin(@successBackground, -10), 13%);
+
+@infoText: @blue;
+@infoBackground: @blueLighter;
+@infoBorder: darken(spin(@infoBackground, -10), 7%);
+
+@inverseText: @white;
+@inverseBackground: @gray;
+@inverseBorder: darken(spin(@inverseBackground, -10), 7%);
diff --git a/theme/less/kyruus-bootstrap/wells.less b/theme/less/kyruus-bootstrap/wells.less
new file mode 100755
index 0000000..1bc8dc0
--- /dev/null
+++ b/theme/less/kyruus-bootstrap/wells.less
@@ -0,0 +1,27 @@
+//
+// Wells
+// --------------------------------------------------
+
+
+.well-light {
+ background-color: @tableBackgroundAccent;
+ border-color: mix(@white, darken(@wellBackground, 7%), 50%);
+}
+
+.well-white {
+ background-color: @white;
+}
+
+.well-transparent {
+ background-color: transparent;
+ .box-shadow(none);
+ border-color: @tableBorder;
+}
+
+.well-shadow {
+ .box-shadow(0 0 4px rgba(0,0,0,.2));
+}
+
+.well > h3 {
+ margin-top: -8px; // re-adjust margins on top of h3s
+}
diff --git a/theme/less/lib/bootstrap-modal.less b/theme/less/lib/bootstrap-modal.less
new file mode 100644
index 0000000..9179901
--- /dev/null
+++ b/theme/less/lib/bootstrap-modal.less
@@ -0,0 +1,215 @@
+/*!
+ * Bootstrap Modal
+ *
+ * Copyright Jordan Schroter
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ */
+
+.modal-open {
+ position: relative; /* safari */
+ overflow: hidden;
+}
+
+
+/* add a scroll bar to stop page from jerking around */
+.modal-open.page-overflow .page-container,
+.modal-open.page-overflow .page-container .navbar-fixed-top,
+.modal-open.page-overflow .page-container .navbar-fixed-bottom,
+.modal-open.page-overflow .modal-scrollable {
+ overflow-y: scroll;
+}
+
+@media (max-width: 979px) {
+ .modal-open.page-overflow .page-container .navbar-fixed-top,
+ .modal-open.page-overflow .page-container .navbar-fixed-bottom {
+ overflow-y: visible;
+ }
+}
+
+
+.modal-scrollable {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ overflow: auto;
+}
+
+.modal {
+ outline: none;
+ position: absolute;
+ margin-top: 0;
+ top: 50%;
+ overflow: visible; /* allow content to popup out (i.e tooltips) */
+}
+
+.modal.fade {
+ top: -100%;
+ -webkit-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;
+ -moz-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;
+ -o-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;
+ transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;
+}
+
+.modal.fade.in {
+ top: 50%;
+}
+
+.modal-body {
+ max-height: none;
+ overflow: visible;
+}
+
+.modal.modal-absolute {
+ position: absolute;
+ z-index: 950;
+}
+
+.modal .loading-mask {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background: #fff;
+ border-radius: 6px;
+}
+
+.modal-backdrop.modal-absolute{
+ position: absolute;
+ z-index: 940;
+}
+
+.modal-backdrop,
+.modal-backdrop.fade.in{
+ opacity: 0.7;
+ filter: alpha(opacity=70);
+ background: #fff;
+}
+
+.modal.container {
+ width: 940px;
+ margin-left: -470px;
+}
+
+/* Modal Overflow */
+
+.modal-overflow.modal {
+ top: 1%;
+}
+
+.modal-overflow.modal.fade {
+ top: -100%;
+}
+
+.modal-overflow.modal.fade.in {
+ top: 1%;
+}
+
+.modal-overflow .modal-body {
+ overflow: auto;
+ -webkit-overflow-scrolling: touch;
+}
+
+/* Responsive */
+
+//@media (min-width: 1200px) {
+// .modal.container {
+// width: 1170px;
+// margin-left: -585px;
+// }
+//}
+//
+//@media (max-width: 979px) {
+// .modal,
+// .modal.container,
+// .modal.modal-overflow {
+// top: 1%;
+// right: 1%;
+// left: 1%;
+// bottom: auto;
+// width: auto !important;
+// height: auto !important;
+// margin: 0 !important;
+// padding: 0 !important;
+// }
+//
+// .modal.fade.in,
+// .modal.container.fade.in,
+// .modal.modal-overflow.fade.in {
+// top: 1%;
+// bottom: auto;
+// }
+//
+// .modal-body,
+// .modal-overflow .modal-body {
+// position: static;
+// margin: 0;
+// height: auto !important;
+// max-height: none !important;
+// overflow: visible !important;
+// }
+//
+// .modal-footer,
+// .modal-overflow .modal-footer {
+// position: static;
+// }
+//}
+
+.loading-spinner {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin: -12px 0 0 -12px;
+}
+
+/*
+Animate.css - http://daneden.me/animate
+Licensed under the ☺ license (http://licence.visualidiot.com/)
+
+Copyright (c) 2012 Dan Eden*/
+
+.animated {
+ -webkit-animation-duration: 1s;
+ -moz-animation-duration: 1s;
+ -o-animation-duration: 1s;
+ animation-duration: 1s;
+ -webkit-animation-fill-mode: both;
+ -moz-animation-fill-mode: both;
+ -o-animation-fill-mode: both;
+ animation-fill-mode: both;
+}
+
+@-webkit-keyframes shake {
+ 0%, 100% {-webkit-transform: translateX(0);}
+10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);}
+20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);}
+ }
+
+@-moz-keyframes shake {
+ 0%, 100% {-moz-transform: translateX(0);}
+10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);}
+20%, 40%, 60%, 80% {-moz-transform: translateX(10px);}
+ }
+
+@-o-keyframes shake {
+ 0%, 100% {-o-transform: translateX(0);}
+10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);}
+20%, 40%, 60%, 80% {-o-transform: translateX(10px);}
+ }
+
+@keyframes shake {
+ 0%, 100% {transform: translateX(0);}
+10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);}
+20%, 40%, 60%, 80% {transform: translateX(10px);}
+ }
+
+.shake {
+ -webkit-animation-name: shake;
+ -moz-animation-name: shake;
+ -o-animation-name: shake;
+ animation-name: shake;
+}
diff --git a/theme/less/lib/data-tables.less b/theme/less/lib/data-tables.less
new file mode 100755
index 0000000..fb37571
--- /dev/null
+++ b/theme/less/lib/data-tables.less
@@ -0,0 +1,189 @@
+table.dataTable {
+ margin:0 auto;
+ clear:both;
+ width:100%;
+ td.center, td.dataTables_empty {
+ text-align:center;
+ }
+ thead th {
+ padding-right:20px;
+ font-weight:bold;
+ > div {
+ position: relative; // needed for icon absolute positioning
+ }
+ }
+ tfoot th {
+ padding:3px 18px 3px 10px;
+ border-top:1px solid black;
+ font-weight:bold;
+ }
+ td {
+ // padding:3px 10px;
+ }
+ th:active {
+ outline:none;
+ }
+}
+.dataTables_wrapper {
+ position:relative;
+ clear:both;
+ *zoom:1;
+}
+.dataTables_length {
+ float:left;
+}
+.dataTables_filter {
+ float:right;
+ text-align:right;
+}
+.dataTables_info {
+ clear:both;
+ float:left;
+}
+.dataTables_paginate {
+ float:right;
+ text-align:right;
+}
+.paginate_disabled_previous {
+ height:19px;
+ float:left;
+ cursor:pointer;
+ *cursor:hand;
+ color:#111111 !important;
+ color:#666666 !important;
+ padding-left:23px;
+ background:url('../images/back_disabled.png') no-repeat top left;
+}
+.paginate_enabled_previous {
+ height:19px;
+ float:left;
+ cursor:pointer;
+ *cursor:hand;
+ color:#111111 !important;
+ padding-left:23px;
+ background:url('../images/back_enabled.png') no-repeat top left;
+}
+.paginate_disabled_next {
+ height:19px;
+ float:left;
+ cursor:pointer;
+ *cursor:hand;
+ color:#111111 !important;
+ color:#666666 !important;
+ padding-right:23px;
+ margin-left:10px;
+ background:url('../images/forward_disabled.png') no-repeat top right;
+}
+.paginate_enabled_next {
+ height:19px;
+ float:left;
+ cursor:pointer;
+ *cursor:hand;
+ color:#111111 !important;
+ padding-right:23px;
+ margin-left:10px;
+ background:url('../images/forward_enabled.png') no-repeat top right;
+}
+.paginate_disabled_previous:hover, .paginate_disabled_next:hover {
+ text-decoration:none !important;
+}
+.paginate_enabled_previous:hover {
+ text-decoration:none !important;
+ background:url('../images/back_enabled_hover.png') no-repeat top left;
+}
+.paginate_enabled_next:hover {
+ text-decoration:none !important;
+ background:url('../images/forward_enabled_hover.png') no-repeat top right;
+}
+.paginate_disabled_previous:active, .paginate_enabled_previous:active, .paginate_disabled_next:active, .paginate_enabled_next:active {
+ outline:none;
+}
+.paging_full_numbers {
+ height:22px;
+ line-height:22px;
+ a:active {
+ outline:none;
+ }
+ a:hover {
+ text-decoration:none;
+ }
+ a.paginate_button {
+ border:1px solid #aaaaaa;
+ -webkit-border-radius:5px;
+ -moz-border-radius:5px;
+ border-radius:5px;
+ padding:2px 5px;
+ margin:0 3px;
+ cursor:pointer;
+ *cursor:hand;
+ color:#333333 !important;
+ background-color:#dddddd;
+ }
+ a.paginate_active {
+ border:1px solid #aaaaaa;
+ -webkit-border-radius:5px;
+ -moz-border-radius:5px;
+ border-radius:5px;
+ padding:2px 5px;
+ margin:0 3px;
+ cursor:pointer;
+ *cursor:hand;
+ color:#333333 !important;
+ background-color:#99b3ff;
+ }
+ a.paginate_button:hover {
+ background-color:#cccccc;
+ text-decoration:none !important;
+ }
+}
+.dataTables_processing {
+ position:absolute;
+ top:50%;
+ left:50%;
+ width:250px;
+ height:30px;
+ margin-left:-125px;
+ margin-top:-15px;
+ padding:14px 0 2px 0;
+ border:1px solid #dddddd;
+ text-align:center;
+ color:#999999;
+ font-size:14px;
+ background-color:white;
+}
+
+.dataTable {
+ .sorting, .sorting_asc, .sorting_desc {
+ cursor:pointer;
+ *cursor:hand;
+ color: @linkColor;
+ &:hover {
+ color: @linkColorHover;
+ }
+ }
+ .sorting_asc, .sorting_desc {
+ // background-color: lighten(@linkColor, 37%);
+ }
+ .sorting > div {
+ .dataTables_icon("\f0dc", #ddd, @grayLight); // icon-sort
+ }
+ .sorting_asc > div {
+ .dataTables_icon("\f0de", @linkColor, @linkColorHover); // icon-sort-up
+ }
+ .sorting_desc > div {
+ .dataTables_icon("\f0dd", @linkColor, @linkColorHover); // icon-sort-down
+ }
+ .sorting_asc_disabled > div {
+ .dataTables_icon("\f0de", #ddd, #ddd); // icon-sort-up
+ }
+ .sorting_desc_disabled > div {
+ .dataTables_icon("\f0dd", #ddd, #ddd); // icon-sort-down
+ }
+}
+
+.dataTables_scroll {
+ clear:both;
+}
+.dataTables_scrollBody {
+ *margin-top:-1px;
+}
diff --git a/theme/less/lib/datepicker.less b/theme/less/lib/datepicker.less
new file mode 100644
index 0000000..3b13213
--- /dev/null
+++ b/theme/less/lib/datepicker.less
@@ -0,0 +1,180 @@
+/*!
+ * Datepicker for Bootstrap
+ *
+ * Copyright 2012 Stefan Petre
+ * Improvements by Andrew Rowls
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ */
+
+.datepicker {
+ padding: 4px;
+ .border-radius(4px);
+ &-inline {
+ width: 220px;
+ }
+ direction: ltr;
+ &&-rtl {
+ direction: rtl;
+ table tr td span {
+ float: right;
+ }
+ }
+ &-dropdown {
+ top: 0;
+ left: 0;
+ &:before {
+ content: '';
+ display: inline-block;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid #ccc;
+ border-bottom-color: rgba(0,0,0,.2);
+ position: absolute;
+ top: -7px;
+ left: 6px;
+ }
+ &:after {
+ content: '';
+ display: inline-block;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid @white;
+ position: absolute;
+ top: -6px;
+ left: 7px;
+ }
+ }
+ >div {
+ display: none;
+ }
+ &.days div.datepicker-days {
+ display: block;
+ }
+ &.months div.datepicker-months {
+ display: block;
+ }
+ &.years div.datepicker-years {
+ display: block;
+ }
+ table{
+ margin: 0;
+ }
+ td,
+ th{
+ text-align: center;
+ width: 20px;
+ height: 20px;
+ .border-radius(4px);
+
+ border: none;
+ }
+ // Inline display inside a table presents some problems with
+ // border and background colors.
+ .table-striped & table tr {
+ td, th {
+ background-color:transparent;
+ }
+ }
+ table tr td {
+ &.day:hover {
+ background: @grayLighter;
+ cursor: pointer;
+ }
+ &.old,
+ &.new {
+ color: @grayLight;
+ }
+ &.disabled,
+ &.disabled:hover {
+ background: none;
+ color: @grayLight;
+ cursor: default;
+ }
+ &.today,
+ &.today:hover,
+ &.today.disabled,
+ &.today.disabled:hover {
+ @todayBackground: lighten(@orange, 30%);
+ .buttonBackground(@todayBackground, spin(@todayBackground, 20));
+ color: #000 !important;
+ }
+ &.active,
+ &.active:hover,
+ &.active.disabled,
+ &.active.disabled:hover {
+ .buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ span {
+ display: block;
+ width: 23%;
+ height: 54px;
+ line-height: 54px;
+ float: left;
+ margin: 1%;
+ cursor: pointer;
+ .border-radius(4px);
+ &:hover {
+ background: @grayLighter;
+ }
+ &.disabled,
+ &.disabled:hover {
+ background:none;
+ color: @grayLight;
+ cursor: default;
+ }
+ &.active,
+ &.active:hover,
+ &.active.disabled,
+ &.active.disabled:hover {
+ .buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ &.old {
+ color: @grayLight;
+ }
+ }
+ }
+
+ th.switch {
+ width: 145px;
+ }
+
+ thead tr:first-child th,
+ tfoot tr:first-child th {
+ cursor: pointer;
+ &:hover{
+ background: @grayLighter;
+ }
+ }
+ /*.dow {
+ border-top: 1px solid #ddd !important;
+ }*/
+
+ // Basic styling for calendar-week cells
+ .cw {
+ font-size: 10px;
+ width: 12px;
+ padding: 0 2px 0 5px;
+ vertical-align: middle;
+ }
+ thead tr:first-child th.cw {
+ cursor: default;
+ background-color: transparent;
+ }
+}
+.input-append,
+.input-prepend {
+ &.date {
+ .add-on i {
+ display: block;
+ cursor: pointer;
+ width: 16px;
+ height: 16px;
+ }
+ }
+}
diff --git a/theme/less/lib/select2.less b/theme/less/lib/select2.less
new file mode 100644
index 0000000..4488c99
--- /dev/null
+++ b/theme/less/lib/select2.less
@@ -0,0 +1,456 @@
+/*
+Version: 2.1 Timestamp: Tue Jun 12 19:50:25 PDT 2012
+*/
+.select2-container {
+ position: relative;
+ display: inline-block;
+ /* inline-block for ie7 */
+ zoom: 1;
+ *display: inline;
+
+}
+
+.select2-container,
+.select2-drop,
+.select2-search,
+.select2-container .select2-search input{
+ /*
+ Force border-box so that % widths fit the parent
+ container without overlap because of margin/padding.
+
+ More Info : http://www.quirksmode.org/css/box.html
+ */
+ -moz-box-sizing: border-box; /* firefox */
+ -ms-box-sizing: border-box; /* ie */
+ -webkit-box-sizing: border-box; /* webkit */
+ -khtml-box-sizing: border-box; /* konqueror */
+ box-sizing: border-box; /* css3 */
+}
+
+.select2-container .select2-choice {
+ background-color: #fff;
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5, white));
+ background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 50%);
+ background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 50%);
+ background-image: -o-linear-gradient(bottom, #eeeeee 0%, #ffffff 50%);
+ background-image: -ms-linear-gradient(top, #eeeeee 0%, #ffffff 50%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#ffffff', GradientType = 0);
+ background-image: linear-gradient(top, #eeeeee 0%, #ffffff 50%);
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ -moz-background-clip: padding;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid #aaa;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ position: relative;
+ height: 26px;
+ line-height: 26px;
+ padding: 0 0 0 8px;
+ color: #444;
+ text-decoration: none;
+}
+
+.select2-container .select2-choice span {
+ margin-right: 26px;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ -o-text-overflow: ellipsis;
+ -ms-text-overflow: ellipsis;
+ text-overflow: ellipsis;
+}
+
+.select2-container .select2-choice abbr {
+ display: block;
+ position: absolute;
+ right: 26px;
+ top: 8px;
+ width: 12px;
+ height: 12px;
+ font-size: 1px;
+ background: url('../img/select2.png') right top no-repeat;
+ cursor: pointer;
+ text-decoration: none;
+ border:0;
+ outline: 0;
+}
+.select2-container .select2-choice abbr:hover {
+ background-position: right -11px;
+ cursor: pointer;
+}
+
+.select2-container .select2-drop {
+ background: #fff;
+ border: 1px solid #aaa;
+ border-top: 0;
+ position: absolute;
+ top: 100%;
+ -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
+ -moz-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
+ -o-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
+ box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
+ z-index: 999;
+ width:100%;
+ margin-top:-1px;
+
+ -webkit-border-radius: 0 0 4px 4px;
+ -moz-border-radius: 0 0 4px 4px;
+ border-radius: 0 0 4px 4px;
+}
+
+.select2-container .select2-choice div {
+ -webkit-border-radius: 0 4px 4px 0;
+ -moz-border-radius: 0 4px 4px 0;
+ border-radius: 0 4px 4px 0;
+ -moz-background-clip: padding;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ background: #ccc;
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
+ background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
+ background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
+ background-image: -o-linear-gradient(bottom, #ccc 0%, #eee 60%);
+ background-image: -ms-linear-gradient(top, #cccccc 0%, #eeeeee 60%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#cccccc', endColorstr = '#eeeeee', GradientType = 0);
+ background-image: linear-gradient(top, #cccccc 0%, #eeeeee 60%);
+ border-left: 1px solid #aaa;
+ position: absolute;
+ right: 0;
+ top: 0;
+ display: block;
+ height: 100%;
+ width: 18px;
+}
+
+.select2-container .select2-choice div b {
+ background: url('../img/select2.png') no-repeat 0 1px;
+ display: block;
+ width: 100%;
+ height: 100%;
+}
+
+.select2-container .select2-search {
+ display: inline-block;
+ white-space: nowrap;
+ z-index: 1010;
+ min-height: 26px;
+ width: 100%;
+ margin: 0;
+ padding-left: 4px;
+ padding-right: 4px;
+}
+
+.select2-container .select2-search-hidden {
+ display: block;
+ position: absolute;
+ left: -10000px;
+}
+
+.select2-container .select2-search input {
+ background: #fff url('../img/select2.png') no-repeat 100% -22px;
+ background: url('../img/select2.png') no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
+ background: url('../img/select2.png') no-repeat 100% -22px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
+ background: url('../img/select2.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
+ background: url('../img/select2.png') no-repeat 100% -22px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
+ background: url('../img/select2.png') no-repeat 100% -22px, -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%);
+ background: url('../img/select2.png') no-repeat 100% -22px, linear-gradient(top, #ffffff 85%, #eeeeee 99%);
+ padding: 4px 20px 4px 5px;
+ outline: 0;
+ border: 1px solid #aaa;
+ font-family: sans-serif;
+ font-size: 1em;
+ width:100%;
+ margin:0;
+ height:auto !important;
+ min-height: 26px;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+}
+
+.select2-container .select2-search input.select2-active {
+ background: #fff url('../img/spinner.gif') no-repeat 100%;
+ background: url('../img/spinner.gif') no-repeat 100%, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
+ background: url('../img/spinner.gif') no-repeat 100%, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
+ background: url('../img/spinner.gif') no-repeat 100%, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
+ background: url('../img/spinner.gif') no-repeat 100%, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
+ background: url('../img/spinner.gif') no-repeat 100%, -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%);
+ background: url('../img/spinner.gif') no-repeat 100%, linear-gradient(top, #ffffff 85%, #eeeeee 99%);
+}
+
+
+.select2-container-active .select2-choice,
+.select2-container-active .select2-choices {
+ -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
+ -moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
+ -o-box-shadow : 0 0 5px rgba(0,0,0,.3);
+ box-shadow : 0 0 5px rgba(0,0,0,.3);
+ border: 1px solid #5897fb;
+ outline: none;
+}
+
+.select2-dropdown-open .select2-choice {
+ border: 1px solid #aaa;
+ border-bottom-color: transparent;
+ -webkit-box-shadow: 0 1px 0 #fff inset;
+ -moz-box-shadow : 0 1px 0 #fff inset;
+ -o-box-shadow : 0 1px 0 #fff inset;
+ box-shadow : 0 1px 0 #fff inset;
+ background-color: #eee;
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.5, #eeeeee));
+ background-image: -webkit-linear-gradient(center bottom, white 0%, #eeeeee 50%);
+ background-image: -moz-linear-gradient(center bottom, white 0%, #eeeeee 50%);
+ background-image: -o-linear-gradient(bottom, white 0%, #eeeeee 50%);
+ background-image: -ms-linear-gradient(top, #ffffff 0%,#eeeeee 50%);
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
+ background-image: linear-gradient(top, #ffffff 0%,#eeeeee 50%);
+ -webkit-border-bottom-left-radius : 0;
+ -webkit-border-bottom-right-radius: 0;
+ -moz-border-radius-bottomleft : 0;
+ -moz-border-radius-bottomright: 0;
+ border-bottom-left-radius : 0;
+ border-bottom-right-radius: 0;
+}
+
+.select2-dropdown-open .select2-choice div {
+ background: transparent;
+ border-left: none;
+}
+.select2-dropdown-open .select2-choice div b {
+ background-position: -18px 1px;
+}
+
+/* results */
+.select2-container .select2-results {
+ margin: 4px 4px 4px 0;
+ padding: 0 0 0 4px;
+ position: relative;
+ overflow-x: hidden;
+ overflow-y: auto;
+ max-height: 200px;
+}
+.select2-container .select2-results li {
+ line-height: 80%;
+ padding: 7px 7px 8px;
+ margin: 0;
+ list-style: none;
+ cursor: pointer;
+ display: list-item;
+}
+
+.select2-container .select2-results .select2-highlighted {
+ background: #3875d7;
+ color: #fff;
+}
+.select2-container .select2-results li em {
+ background: #feffde;
+ font-style: normal;
+}
+.select2-container .select2-results .select2-highlighted em {
+ background: transparent;
+}
+.select2-container .select2-results .select2-no-results {
+ background: #f4f4f4;
+ display: list-item;
+}
+
+/*
+disabled look for already selected choices in the results dropdown
+.select2-container .select2-results .select2-disabled.select2-highlighted {
+ color: #666;
+ background: #f4f4f4;
+ display: list-item;
+ cursor: default;
+}
+.select2-container .select2-results .select2-disabled {
+ background: #f4f4f4;
+ display: list-item;
+ cursor: default;
+}
+*/
+.select2-container .select2-results .select2-disabled {
+ display: none;
+}
+
+.select2-more-results.select2-active {
+ background: #f4f4f4 url('../img/spinner.gif') no-repeat 100%;
+}
+
+.select2-more-results {
+ background: #f4f4f4;
+ display: list-item;
+}
+
+/* disabled styles */
+
+.select2-container.select2-container-disabled .select2-choice {
+ background-color: #f4f4f4;
+ background-image: none;
+ border: 1px solid #ddd;
+ cursor: default;
+}
+
+.select2-container.select2-container-disabled .select2-choice div {
+ background-color: #f4f4f4;
+ background-image: none;
+ border-left: 0;
+}
+
+
+/* multiselect */
+
+.select2-container-multi .select2-choices {
+ background-color: #fff;
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
+ background-image: -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ border: 1px solid #aaa;
+ margin: 0;
+ padding: 0;
+ cursor: text;
+ overflow: hidden;
+ height: auto !important;
+ height: 1%;
+ position: relative;
+}
+
+.select2-container-multi .select2-drop {
+ margin-top:0;
+}
+
+.select2-container-multi .select2-choices {
+ min-height: 26px;
+}
+
+.select2-container-multi.select2-container-active .select2-choices {
+ -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
+ -moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
+ -o-box-shadow : 0 0 5px rgba(0,0,0,.3);
+ box-shadow : 0 0 5px rgba(0,0,0,.3);
+ border: 1px solid #5897fb;
+ outline: none;
+}
+.select2-container-multi .select2-choices li {
+ float: left;
+ list-style: none;
+}
+.select2-container-multi .select2-choices .select2-search-field {
+ white-space: nowrap;
+ margin: 0;
+ padding: 0;
+}
+
+.select2-container-multi .select2-choices .select2-search-field input {
+ color: #666;
+ background: transparent !important;
+ font-family: sans-serif;
+ font-size: 100%;
+ height: 15px;
+ padding: 5px;
+ margin: 1px 0;
+ outline: 0;
+ border: 0;
+ -webkit-box-shadow: none;
+ -moz-box-shadow : none;
+ -o-box-shadow : none;
+ box-shadow : none;
+}
+
+
+.select2-default {
+ color: #999 !important;
+}
+
+.select2-container-multi .select2-choices .select2-search-choice {
+ -webkit-border-radius: 3px;
+ -moz-border-radius : 3px;
+ border-radius : 3px;
+ -moz-background-clip : padding;
+ -webkit-background-clip: padding-box;
+ background-clip : padding-box;
+ background-color: #e4e4e4;
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 );
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
+ background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ -webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
+ -moz-box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
+ box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
+ color: #333;
+ border: 1px solid #aaaaaa;
+ line-height: 13px;
+ padding: 3px 5px 3px 18px;
+ margin: 3px 0 3px 5px;
+ position: relative;
+ cursor: default;
+}
+.select2-container-multi .select2-choices .select2-search-choice span {
+ cursor: default;
+}
+.select2-container-multi .select2-choices .select2-search-choice-focus {
+ background: #d4d4d4;
+}
+
+.select2-search-choice-close {
+ display: block;
+ position: absolute;
+ right: 3px;
+ top: 4px;
+ width: 12px;
+ height: 13px;
+ font-size: 1px;
+ background: url('../img/select2.png') right top no-repeat;
+ outline: none;
+}
+
+.select2-container-multi .select2-search-choice-close {
+ left: 3px;
+}
+
+
+.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover {
+ background-position: right -11px;
+}
+.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close {
+ background-position: right -11px;
+}
+
+
+.select2-container-multi .select2-results {
+ margin: -1px 0 0;
+ padding: 0;
+}
+
+/* disabled styles */
+
+.select2-container-multi.select2-container-disabled .select2-choices{
+ background-color: #f4f4f4;
+ background-image: none;
+ border: 1px solid #ddd;
+ cursor: default;
+}
+
+.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice {
+ background-image: none;
+ background-color: #f4f4f4;
+ border: 1px solid #ddd;
+ padding: 3px 5px 3px 5px;
+}
+
+.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close {
+ display: none;
+}
+/* end multiselect */
diff --git a/theme/scss/bootstrap-2.3.2/_accordion.scss b/theme/scss/bootstrap-2.3.2/_accordion.scss
new file mode 100755
index 0000000..576bdae
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_accordion.scss
@@ -0,0 +1,34 @@
+//
+// Accordion
+// --------------------------------------------------
+
+
+// Parent container
+.accordion {
+ margin-bottom: $baseLineHeight;
+}
+
+// Group == heading + body
+.accordion-group {
+ margin-bottom: 2px;
+ border: 1px solid #e5e5e5;
+ @include border-radius($baseBorderRadius);
+}
+.accordion-heading {
+ border-bottom: 0;
+}
+.accordion-heading .accordion-toggle {
+ display: block;
+ padding: 8px 15px;
+}
+
+// General toggle styles
+.accordion-toggle {
+ cursor: pointer;
+}
+
+// Inner needs the styles because you can't animate properly with any styles on the element
+.accordion-inner {
+ padding: 9px 15px;
+ border-top: 1px solid #e5e5e5;
+}
diff --git a/theme/scss/bootstrap-2.3.2/_alerts.scss b/theme/scss/bootstrap-2.3.2/_alerts.scss
new file mode 100755
index 0000000..6533511
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_alerts.scss
@@ -0,0 +1,79 @@
+//
+// Alerts
+// --------------------------------------------------
+
+
+// Base styles
+// -------------------------
+
+.alert {
+ padding: 8px 35px 8px 14px;
+ margin-bottom: $baseLineHeight;
+ text-shadow: 0 1px 0 rgba(255,255,255,.5);
+ background-color: $warningBackground;
+ border: 1px solid $warningBorder;
+ @include border-radius($baseBorderRadius);
+}
+.alert,
+.alert h4 {
+ // Specified for the h4 to prevent conflicts of changing $headingsColor
+ color: $warningText;
+}
+.alert h4 {
+ margin: 0;
+}
+
+// Adjust close link position
+.alert .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ line-height: $baseLineHeight;
+}
+
+
+// Alternate styles
+// -------------------------
+
+.alert-success {
+ background-color: $successBackground;
+ border-color: $successBorder;
+ color: $successText;
+}
+.alert-success h4 {
+ color: $successText;
+}
+.alert-danger,
+.alert-error {
+ background-color: $errorBackground;
+ border-color: $errorBorder;
+ color: $errorText;
+}
+.alert-danger h4,
+.alert-error h4 {
+ color: $errorText;
+}
+.alert-info {
+ background-color: $infoBackground;
+ border-color: $infoBorder;
+ color: $infoText;
+}
+.alert-info h4 {
+ color: $infoText;
+}
+
+
+// Block alerts
+// -------------------------
+
+.alert-block {
+ padding-top: 14px;
+ padding-bottom: 14px;
+}
+.alert-block > p,
+.alert-block > ul {
+ margin-bottom: 0;
+}
+.alert-block p + p {
+ margin-top: 5px;
+}
diff --git a/theme/scss/bootstrap-2.3.2/_breadcrumbs.scss b/theme/scss/bootstrap-2.3.2/_breadcrumbs.scss
new file mode 100755
index 0000000..cc3f327
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_breadcrumbs.scss
@@ -0,0 +1,24 @@
+//
+// Breadcrumbs
+// --------------------------------------------------
+
+
+.breadcrumb {
+ padding: 8px 15px;
+ margin: 0 0 $baseLineHeight;
+ list-style: none;
+ background-color: #f5f5f5;
+ @include border-radius($baseBorderRadius);
+ > li {
+ display: inline-block;
+ @include ie7-inline-block();
+ text-shadow: 0 1px 0 $white;
+ > .divider {
+ padding: 0 5px;
+ color: #ccc;
+ }
+ }
+ .active {
+ color: $grayLight;
+ }
+}
diff --git a/theme/scss/bootstrap-2.3.2/_button-groups.scss b/theme/scss/bootstrap-2.3.2/_button-groups.scss
new file mode 100755
index 0000000..1b08d50
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_button-groups.scss
@@ -0,0 +1,229 @@
+//
+// Button groups
+// --------------------------------------------------
+
+
+// Make the div behave like a button
+.btn-group {
+ position: relative;
+ display: inline-block;
+ @include ie7-inline-block();
+ font-size: 0; // remove as part 1 of font-size inline-block hack
+ vertical-align: middle; // match .btn alignment given font-size hack above
+ white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page)
+ @include ie7-restore-left-whitespace();
+}
+
+// Space out series of button groups
+.btn-group + .btn-group {
+ margin-left: 5px;
+}
+
+// Optional: Group multiple button groups together for a toolbar
+.btn-toolbar {
+ font-size: 0; // Hack to remove whitespace that results from using inline-block
+ margin-top: $baseLineHeight / 2;
+ margin-bottom: $baseLineHeight / 2;
+ > .btn + .btn,
+ > .btn-group + .btn,
+ > .btn + .btn-group {
+ margin-left: 5px;
+ }
+}
+
+// Float them, remove border radius, then re-add to first and last elements
+.btn-group > .btn {
+ position: relative;
+ @include border-radius(0);
+}
+.btn-group > .btn + .btn {
+ margin-left: -1px;
+}
+.btn-group > .btn,
+.btn-group > .dropdown-menu,
+.btn-group > .popover {
+ font-size: $baseFontSize; // redeclare as part 2 of font-size inline-block hack
+}
+
+// Reset fonts for other sizes
+.btn-group > .btn-mini {
+ font-size: $fontSizeMini;
+}
+.btn-group > .btn-small {
+ font-size: $fontSizeSmall;
+}
+.btn-group > .btn-large {
+ font-size: $fontSizeLarge;
+}
+
+// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
+.btn-group > .btn:first-child {
+ margin-left: 0;
+ @include border-top-left-radius($baseBorderRadius);
+ @include border-bottom-left-radius($baseBorderRadius);
+}
+// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
+.btn-group > .btn:last-child,
+.btn-group > .dropdown-toggle {
+ @include border-top-right-radius($baseBorderRadius);
+ @include border-bottom-right-radius($baseBorderRadius);
+}
+// Reset corners for large buttons
+.btn-group > .btn.large:first-child {
+ margin-left: 0;
+ @include border-top-left-radius($borderRadiusLarge);
+ @include border-bottom-left-radius($borderRadiusLarge);
+}
+.btn-group > .btn.large:last-child,
+.btn-group > .large.dropdown-toggle {
+ @include border-top-right-radius($borderRadiusLarge);
+ @include border-bottom-right-radius($borderRadiusLarge);
+}
+
+// On hover/focus/active, bring the proper btn to front
+.btn-group > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group > .btn:active,
+.btn-group > .btn.active {
+ z-index: 2;
+}
+
+// On active and open, don't show outline
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+
+
+
+// Split button dropdowns
+// ----------------------
+
+// Give the line between buttons some depth
+.btn-group > .btn + .dropdown-toggle {
+ padding-left: 8px;
+ padding-right: 8px;
+ @include box-shadow(inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05));
+ *padding-top: 5px;
+ *padding-bottom: 5px;
+}
+.btn-group > .btn-mini + .dropdown-toggle {
+ padding-left: 5px;
+ padding-right: 5px;
+ *padding-top: 2px;
+ *padding-bottom: 2px;
+}
+.btn-group > .btn-small + .dropdown-toggle {
+ *padding-top: 5px;
+ *padding-bottom: 4px;
+}
+.btn-group > .btn-large + .dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px;
+ *padding-top: 7px;
+ *padding-bottom: 7px;
+}
+
+.btn-group.open {
+
+ // The clickable button for toggling the menu
+ // Remove the gradient and set the same inset shadow as the :active state
+ .dropdown-toggle {
+ background-image: none;
+ @include box-shadow(inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05));
+ }
+
+ // Keep the hover's background when dropdown is open
+ .btn.dropdown-toggle {
+ background-color: $btnBackgroundHighlight;
+ }
+ .btn-primary.dropdown-toggle {
+ background-color: $btnPrimaryBackgroundHighlight;
+ }
+ .btn-warning.dropdown-toggle {
+ background-color: $btnWarningBackgroundHighlight;
+ }
+ .btn-danger.dropdown-toggle {
+ background-color: $btnDangerBackgroundHighlight;
+ }
+ .btn-success.dropdown-toggle {
+ background-color: $btnSuccessBackgroundHighlight;
+ }
+ .btn-info.dropdown-toggle {
+ background-color: $btnInfoBackgroundHighlight;
+ }
+ .btn-inverse.dropdown-toggle {
+ background-color: $btnInverseBackgroundHighlight;
+ }
+}
+
+
+// Reposition the caret
+.btn .caret {
+ margin-top: 8px;
+ margin-left: 0;
+}
+// Carets in other button sizes
+.btn-large .caret {
+ margin-top: 6px;
+}
+.btn-large .caret {
+ border-left-width: 5px;
+ border-right-width: 5px;
+ border-top-width: 5px;
+}
+.btn-mini .caret,
+.btn-small .caret {
+ margin-top: 8px;
+}
+// Upside down carets for .dropup
+.dropup .btn-large .caret {
+ border-bottom-width: 5px;
+}
+
+
+
+// Account for other colors
+.btn-primary,
+.btn-warning,
+.btn-danger,
+.btn-info,
+.btn-success,
+.btn-inverse {
+ .caret {
+ border-top-color: $white;
+ border-bottom-color: $white;
+ }
+}
+
+
+
+// Vertical button groups
+// ----------------------
+
+.btn-group-vertical {
+ display: inline-block; // makes buttons only take up the width they need
+ @include ie7-inline-block();
+}
+.btn-group-vertical > .btn {
+ display: block;
+ float: none;
+ max-width: 100%;
+ @include border-radius(0);
+}
+.btn-group-vertical > .btn + .btn {
+ margin-left: 0;
+ margin-top: -1px;
+}
+.btn-group-vertical > .btn:first-child {
+ @include border-radius($baseBorderRadius $baseBorderRadius 0 0);
+}
+.btn-group-vertical > .btn:last-child {
+ @include border-radius(0 0 $baseBorderRadius $baseBorderRadius);
+}
+.btn-group-vertical > .btn-large:first-child {
+ @include border-radius($borderRadiusLarge $borderRadiusLarge 0 0);
+}
+.btn-group-vertical > .btn-large:last-child {
+ @include border-radius(0 0 $borderRadiusLarge $borderRadiusLarge);
+}
diff --git a/theme/scss/bootstrap-2.3.2/_buttons.scss b/theme/scss/bootstrap-2.3.2/_buttons.scss
new file mode 100755
index 0000000..a92268b
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_buttons.scss
@@ -0,0 +1,228 @@
+//
+// Buttons
+// --------------------------------------------------
+
+
+// Base styles
+// --------------------------------------------------
+
+// Core
+.btn {
+ display: inline-block;
+ @include ie7-inline-block();
+ padding: 4px 12px;
+ margin-bottom: 0; // For input.btn
+ font-size: $baseFontSize;
+ line-height: $baseLineHeight;
+ text-align: center;
+ vertical-align: middle;
+ cursor: pointer;
+ @include buttonBackground($btnBackground, $btnBackgroundHighlight, $grayDark, 0 1px 1px rgba(255,255,255,.75));
+ border: 1px solid $btnBorder;
+ *border: 0; // Remove the border to prevent IE7's black border on input:focus
+ border-bottom-color: darken($btnBorder, 10%);
+ @include border-radius($baseBorderRadius);
+ @include ie7-restore-left-whitespace(); // Give IE7 some love
+ @include box-shadow(inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05));
+
+ // Hover/focus state
+ &:hover,
+ &:focus {
+ color: $grayDark;
+ text-decoration: none;
+ background-position: 0 -15px;
+
+ // transition is only when going to hover/focus, otherwise the background
+ // behind the gradient (there for IE<=9 fallback) gets mismatched
+ @include transition(background-position .1s linear);
+ }
+
+ // Focus state for keyboard and accessibility
+ &:focus {
+ @include tab-focus();
+ }
+
+ // Active state
+ &.active,
+ &:active {
+ background-image: none;
+ outline: 0;
+ @include box-shadow(inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05));
+ }
+
+ // Disabled state
+ &.disabled,
+ &[disabled] {
+ cursor: default;
+ background-image: none;
+ @include opacity(65);
+ @include box-shadow(none);
+ }
+
+}
+
+
+
+// Button Sizes
+// --------------------------------------------------
+
+// Large
+.btn-large {
+ padding: $paddingLarge;
+ font-size: $fontSizeLarge;
+ @include border-radius($borderRadiusLarge);
+}
+.btn-large [class^="icon-"],
+.btn-large [class*=" icon-"] {
+ margin-top: 4px;
+}
+
+// Small
+.btn-small {
+ padding: $paddingSmall;
+ font-size: $fontSizeSmall;
+ @include border-radius($borderRadiusSmall);
+}
+.btn-small [class^="icon-"],
+.btn-small [class*=" icon-"] {
+ margin-top: 0;
+}
+.btn-mini [class^="icon-"],
+.btn-mini [class*=" icon-"] {
+ margin-top: -1px;
+}
+
+// Mini
+.btn-mini {
+ padding: $paddingMini;
+ font-size: $fontSizeMini;
+ @include border-radius($borderRadiusSmall);
+}
+
+
+// Block button
+// -------------------------
+
+.btn-block {
+ display: block;
+ width: 100%;
+ padding-left: 0;
+ padding-right: 0;
+ @include box-sizing(border-box);
+}
+
+// Vertically space out multiple block buttons
+.btn-block + .btn-block {
+ margin-top: 5px;
+}
+
+// Specificity overrides
+input[type="submit"],
+input[type="reset"],
+input[type="button"] {
+ &.btn-block {
+ width: 100%;
+ }
+}
+
+
+
+// Alternate buttons
+// --------------------------------------------------
+
+// Provide *some* extra contrast for those who can get it
+.btn-primary.active,
+.btn-warning.active,
+.btn-danger.active,
+.btn-success.active,
+.btn-info.active,
+.btn-inverse.active {
+ color: rgba(255,255,255,.75);
+}
+
+// Set the backgrounds
+// -------------------------
+.btn-primary {
+ @include buttonBackground($btnPrimaryBackground, $btnPrimaryBackgroundHighlight);
+}
+// Warning appears are orange
+.btn-warning {
+ @include buttonBackground($btnWarningBackground, $btnWarningBackgroundHighlight);
+}
+// Danger and error appear as red
+.btn-danger {
+ @include buttonBackground($btnDangerBackground, $btnDangerBackgroundHighlight);
+}
+// Success appears as green
+.btn-success {
+ @include buttonBackground($btnSuccessBackground, $btnSuccessBackgroundHighlight);
+}
+// Info appears as a neutral blue
+.btn-info {
+ @include buttonBackground($btnInfoBackground, $btnInfoBackgroundHighlight);
+}
+// Inverse appears as dark gray
+.btn-inverse {
+ @include buttonBackground($btnInverseBackground, $btnInverseBackgroundHighlight);
+}
+
+
+// Cross-browser Jank
+// --------------------------------------------------
+
+button.btn,
+input[type="submit"].btn {
+
+ // Firefox 3.6 only I believe
+ &::-moz-focus-inner {
+ padding: 0;
+ border: 0;
+ }
+
+ // IE7 has some default padding on button controls
+ *padding-top: 3px;
+ *padding-bottom: 3px;
+
+ &.btn-large {
+ *padding-top: 7px;
+ *padding-bottom: 7px;
+ }
+ &.btn-small {
+ *padding-top: 3px;
+ *padding-bottom: 3px;
+ }
+ &.btn-mini {
+ *padding-top: 1px;
+ *padding-bottom: 1px;
+ }
+}
+
+
+// Link buttons
+// --------------------------------------------------
+
+// Make a button look and behave like a link
+.btn-link,
+.btn-link:active,
+.btn-link[disabled] {
+ background-color: transparent;
+ background-image: none;
+ @include box-shadow(none);
+}
+.btn-link {
+ border-color: transparent;
+ cursor: pointer;
+ color: $linkColor;
+ @include border-radius(0);
+}
+.btn-link:hover,
+.btn-link:focus {
+ color: $linkColorHover;
+ text-decoration: underline;
+ background-color: transparent;
+}
+.btn-link[disabled]:hover,
+.btn-link[disabled]:focus {
+ color: $grayDark;
+ text-decoration: none;
+}
diff --git a/theme/scss/bootstrap-2.3.2/_carousel.scss b/theme/scss/bootstrap-2.3.2/_carousel.scss
new file mode 100755
index 0000000..22eaddb
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_carousel.scss
@@ -0,0 +1,158 @@
+//
+// Carousel
+// --------------------------------------------------
+
+
+.carousel {
+ position: relative;
+ margin-bottom: $baseLineHeight;
+ line-height: 1;
+}
+
+.carousel-inner {
+ overflow: hidden;
+ width: 100%;
+ position: relative;
+}
+
+.carousel-inner {
+
+ > .item {
+ display: none;
+ position: relative;
+ @include transition(.6s ease-in-out left);
+
+ // Account for jankitude on images
+ > img,
+ > a > img {
+ display: block;
+ line-height: 1;
+ }
+ }
+
+ > .active,
+ > .next,
+ > .prev { display: block; }
+
+ > .active {
+ left: 0;
+ }
+
+ > .next,
+ > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+ }
+
+ > .next {
+ left: 100%;
+ }
+ > .prev {
+ left: -100%;
+ }
+ > .next.left,
+ > .prev.right {
+ left: 0;
+ }
+
+ > .active.left {
+ left: -100%;
+ }
+ > .active.right {
+ left: 100%;
+ }
+
+}
+
+// Left/right controls for nav
+// ---------------------------
+
+.carousel-control {
+ position: absolute;
+ top: 40%;
+ left: 15px;
+ width: 40px;
+ height: 40px;
+ margin-top: -20px;
+ font-size: 60px;
+ font-weight: 100;
+ line-height: 30px;
+ color: $white;
+ text-align: center;
+ background: $grayDarker;
+ border: 3px solid $white;
+ @include border-radius(23px);
+ @include opacity(50);
+
+ // we can't have this transition here
+ // because webkit cancels the carousel
+ // animation if you trip this while
+ // in the middle of another animation
+ // ;_;
+ // .transition(opacity .2s linear);
+
+ // Reposition the right one
+ &.right {
+ left: auto;
+ right: 15px;
+ }
+
+ // Hover/focus state
+ &:hover,
+ &:focus {
+ color: $white;
+ text-decoration: none;
+ @include opacity(90);
+ }
+}
+
+// Carousel indicator pips
+// -----------------------------
+.carousel-indicators {
+ position: absolute;
+ top: 15px;
+ right: 15px;
+ z-index: 5;
+ margin: 0;
+ list-style: none;
+
+ li {
+ display: block;
+ float: left;
+ width: 10px;
+ height: 10px;
+ margin-left: 5px;
+ text-indent: -999px;
+ background-color: #ccc;
+ background-color: rgba(255,255,255,.25);
+ border-radius: 5px;
+ }
+ .active {
+ background-color: #fff;
+ }
+}
+
+// Caption for text below images
+// -----------------------------
+
+.carousel-caption {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ padding: 15px;
+ background: $grayDark;
+ background: rgba(0,0,0,.75);
+}
+.carousel-caption h4,
+.carousel-caption p {
+ color: $white;
+ line-height: $baseLineHeight;
+}
+.carousel-caption h4 {
+ margin: 0 0 5px;
+}
+.carousel-caption p {
+ margin-bottom: 0;
+}
diff --git a/theme/scss/bootstrap-2.3.2/_close.scss b/theme/scss/bootstrap-2.3.2/_close.scss
new file mode 100755
index 0000000..ee14a6b
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_close.scss
@@ -0,0 +1,32 @@
+//
+// Close icons
+// --------------------------------------------------
+
+
+.close {
+ float: right;
+ font-size: 20px;
+ font-weight: bold;
+ line-height: $baseLineHeight;
+ color: $black;
+ text-shadow: 0 1px 0 rgba(255,255,255,1);
+ @include opacity(20);
+ &:hover,
+ &:focus {
+ color: $black;
+ text-decoration: none;
+ cursor: pointer;
+ @include opacity(40);
+ }
+}
+
+// Additional properties for button version
+// iOS requires the button element instead of an anchor tag.
+// If you want the anchor version, it requires `href="#"`.
+button.close {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+}
diff --git a/theme/scss/bootstrap-2.3.2/_code.scss b/theme/scss/bootstrap-2.3.2/_code.scss
new file mode 100755
index 0000000..b9e2f6f
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_code.scss
@@ -0,0 +1,61 @@
+//
+// Code (inline and blocK)
+// --------------------------------------------------
+
+
+// Inline and block code styles
+code,
+pre {
+ padding: 0 3px 2px;
+ @include font-family-monospace;
+ font-size: $baseFontSize - 2;
+ color: $grayDark;
+ @include border-radius(3px);
+}
+
+// Inline code
+code {
+ padding: 2px 4px;
+ color: #d14;
+ background-color: #f7f7f9;
+ border: 1px solid #e1e1e8;
+ white-space: nowrap;
+}
+
+// Blocks of code
+pre {
+ display: block;
+ padding: ($baseLineHeight - 1) / 2;
+ margin: 0 0 $baseLineHeight / 2;
+ font-size: $baseFontSize - 1; // 14px to 13px
+ line-height: $baseLineHeight;
+ word-break: break-all;
+ word-wrap: break-word;
+ white-space: pre;
+ white-space: pre-wrap;
+ background-color: #f5f5f5;
+ border: 1px solid #ccc; // fallback for IE7-8
+ border: 1px solid rgba(0,0,0,.15);
+ @include border-radius($baseBorderRadius);
+
+ // Make prettyprint styles more spaced out for readability
+ &.prettyprint {
+ margin-bottom: $baseLineHeight;
+ }
+
+ // Account for some code outputs that place code tags in pre tags
+ code {
+ padding: 0;
+ color: inherit;
+ white-space: pre;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border: 0;
+ }
+}
+
+// Enable scrollable blocks of code
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
diff --git a/theme/scss/bootstrap-2.3.2/_component-animations.scss b/theme/scss/bootstrap-2.3.2/_component-animations.scss
new file mode 100755
index 0000000..5ef86b0
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_component-animations.scss
@@ -0,0 +1,22 @@
+//
+// Component animations
+// --------------------------------------------------
+
+
+.fade {
+ opacity: 0;
+ @include transition(opacity .15s linear);
+ &.in {
+ opacity: 1;
+ }
+}
+
+.collapse {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ @include transition(height .35s ease);
+ &.in {
+ height: auto;
+ }
+}
diff --git a/theme/scss/bootstrap-2.3.2/_dropdowns.scss b/theme/scss/bootstrap-2.3.2/_dropdowns.scss
new file mode 100755
index 0000000..f5949fa
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_dropdowns.scss
@@ -0,0 +1,248 @@
+//
+// Dropdown menus
+// --------------------------------------------------
+
+
+// Use the .menu class on any element within the topbar or ul.tabs and you'll get some superfancy dropdowns
+.dropup,
+.dropdown {
+ position: relative;
+}
+.dropdown-toggle {
+ // The caret makes the toggle a bit too tall in IE7
+ *margin-bottom: -3px;
+}
+.dropdown-toggle:active,
+.open .dropdown-toggle {
+ outline: 0;
+}
+
+// Dropdown arrow/caret
+// --------------------
+.caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ vertical-align: top;
+ border-top: 4px solid $black;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent;
+ content: "";
+}
+
+// Place the caret
+.dropdown .caret {
+ margin-top: 8px;
+ margin-left: 2px;
+}
+
+// The dropdown menu (ul)
+// ----------------------
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: $zindexDropdown;
+ display: none; // none by default, but block on "open" of the menu
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0; // override default ul
+ list-style: none;
+ background-color: $dropdownBackground;
+ border: 1px solid #ccc; // Fallback for IE7-8
+ border: 1px solid $dropdownBorder;
+ *border-right-width: 2px;
+ *border-bottom-width: 2px;
+ @include border-radius(6px);
+ @include box-shadow(0 5px 10px rgba(0,0,0,.2));
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
+
+ // Aligns the dropdown menu to right
+ &.pull-right {
+ right: 0;
+ left: auto;
+ }
+
+ // Dividers (basically an hr) within the dropdown
+ .divider {
+ @include nav-divider($dropdownDividerTop, $dropdownDividerBottom);
+ }
+
+ // Links within the dropdown menu
+ > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: $baseLineHeight;
+ color: $dropdownLinkColor;
+ white-space: nowrap;
+ }
+}
+
+// Hover/Focus state
+// -----------
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus,
+.dropdown-submenu:hover > a,
+.dropdown-submenu:focus > a {
+ text-decoration: none;
+ color: $dropdownLinkColorHover;
+ @include gradient-vertical($dropdownLinkBackgroundHover, darken($dropdownLinkBackgroundHover, 5%));
+}
+
+// Active state
+// ------------
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ color: $dropdownLinkColorActive;
+ text-decoration: none;
+ outline: 0;
+ @include gradient-vertical($dropdownLinkBackgroundActive, darken($dropdownLinkBackgroundActive, 5%));
+}
+
+// Disabled state
+// --------------
+// Gray out text and ensure the hover/focus state remains gray
+.dropdown-menu > .disabled > a,
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ color: $grayLight;
+}
+// Nuke hover/focus effects
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none; // Remove CSS gradient
+ @include reset-filter();
+ cursor: default;
+}
+
+// Open state for the dropdown
+// ---------------------------
+.open {
+ // IE7's z-index only goes to the nearest positioned ancestor, which would
+ // make the menu appear below buttons that appeared later on the page
+ *z-index: $zindexDropdown;
+
+ & > .dropdown-menu {
+ display: block;
+ }
+}
+
+// Backdrop to catch body clicks on mobile, etc.
+// ---------------------------
+.dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: $zindexDropdown - 10;
+}
+
+// Right aligned dropdowns
+// ---------------------------
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+
+// Allow for dropdowns to go bottom up (aka, dropup-menu)
+// ------------------------------------------------------
+// Just add .dropup after the standard .dropdown class and you're set, bro.
+// TODO: abstract this so that the navbar fixed styles are not placed here?
+.dropup,
+.navbar-fixed-bottom .dropdown {
+ // Reverse the caret
+ .caret {
+ border-top: 0;
+ border-bottom: 4px solid $black;
+ content: "";
+ }
+ // Different positioning for bottom up menu
+ .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 1px;
+ }
+}
+
+// Sub menus
+// ---------------------------
+.dropdown-submenu {
+ position: relative;
+}
+// Default dropdowns
+.dropdown-submenu > .dropdown-menu {
+ top: 0;
+ left: 100%;
+ margin-top: -6px;
+ margin-left: -1px;
+ @include border-radius(0 6px 6px 6px);
+}
+.dropdown-submenu:hover > .dropdown-menu {
+ display: block;
+}
+
+// Dropups
+.dropup .dropdown-submenu > .dropdown-menu {
+ top: auto;
+ bottom: 0;
+ margin-top: 0;
+ margin-bottom: -2px;
+ @include border-radius(5px 5px 5px 0);
+}
+
+// Caret to indicate there is a submenu
+.dropdown-submenu > a:after {
+ display: block;
+ content: " ";
+ float: right;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+ border-width: 5px 0 5px 5px;
+ border-left-color: darken($dropdownBackground, 20%);
+ margin-top: 5px;
+ margin-right: -10px;
+}
+.dropdown-submenu:hover > a:after {
+ border-left-color: $dropdownLinkColorHover;
+}
+
+// Left aligned submenus
+.dropdown-submenu.pull-left {
+ // Undo the float
+ // Yes, this is awkward since .pull-left adds a float, but it sticks to our conventions elsewhere.
+ float: none;
+
+ // Positioning the submenu
+ > .dropdown-menu {
+ left: -100%;
+ margin-left: 10px;
+ @include border-radius(6px 0 6px 6px);
+ }
+}
+
+// Tweak nav headers
+// -----------------
+// Increase padding from 15px to 20px on sides
+.dropdown .dropdown-menu .nav-header {
+ padding-left: 20px;
+ padding-right: 20px;
+}
+
+// Typeahead
+// ---------
+.typeahead {
+ z-index: 1051;
+ margin-top: 2px; // give it some space to breathe
+ @include border-radius($baseBorderRadius);
+}
diff --git a/theme/scss/bootstrap-2.3.2/_forms.scss b/theme/scss/bootstrap-2.3.2/_forms.scss
new file mode 100755
index 0000000..6b05636
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_forms.scss
@@ -0,0 +1,689 @@
+//
+// Forms
+// --------------------------------------------------
+
+
+// GENERAL STYLES
+// --------------
+
+// Make all forms have space below them
+form {
+ margin: 0 0 $baseLineHeight;
+}
+
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+
+// Groups of fields with labels on top (legends)
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: $baseLineHeight;
+ font-size: $baseFontSize * 1.5;
+ line-height: $baseLineHeight * 2;
+ color: $grayDark;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5;
+
+ // Small
+ small {
+ font-size: $baseLineHeight * .75;
+ color: $grayLight;
+ }
+}
+
+// Set font for forms
+label,
+input,
+button,
+select,
+textarea {
+ @include font-shorthand($baseFontSize, normal, $baseLineHeight); // Set size, weight, line-height here
+}
+input,
+button,
+select,
+textarea {
+ font-family: $baseFontFamily; // And only set font-family here for those that need it (note the missing label element)
+}
+
+// Identify controls by their labels
+label {
+ display: block;
+ margin-bottom: 5px;
+}
+
+// Form controls
+// -------------------------
+
+// Shared size and type resets
+select,
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
+.uneditable-input {
+ display: inline-block;
+ height: $baseLineHeight;
+ padding: 4px 6px;
+ margin-bottom: $baseLineHeight / 2;;
+ font-size: $baseFontSize;
+ line-height: $baseLineHeight;
+ color: $gray;
+ @include border-radius($inputBorderRadius);
+ vertical-align: middle;
+}
+
+// Reset appearance properties for textual inputs and textarea
+// Declare width for legacy (can't be on input[type=*] selectors or it's too specific)
+input,
+textarea,
+.uneditable-input {
+ width: 206px; // plus 12px padding and 2px border
+}
+// Reset height since textareas have rows
+textarea {
+ height: auto;
+}
+// Everything else
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
+.uneditable-input {
+ background-color: $inputBackground;
+ border: 1px solid $inputBorder;
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
+ @include transition(border linear .2s, box-shadow linear .2s);
+
+ // Focus state
+ &:focus {
+ border-color: rgba(82,168,236,.8);
+ outline: 0;
+ outline: thin dotted \9; /* IE6-9 */
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6));
+ }
+}
+
+// Position radios and checkboxes better
+input[type="radio"],
+input[type="checkbox"] {
+ margin: 4px 0 0;
+ *margin-top: 0; /* IE7 */
+ margin-top: 1px \9; /* IE8-9 */
+ line-height: normal;
+}
+
+// Reset width of input images, buttons, radios, checkboxes
+input[type="file"],
+input[type="image"],
+input[type="submit"],
+input[type="reset"],
+input[type="button"],
+input[type="radio"],
+input[type="checkbox"] {
+ width: auto; // Override of generic input selector
+}
+
+// Set the height of select and file controls to match text inputs
+select,
+input[type="file"] {
+ height: $inputHeight; /* In IE7, the height of the select element cannot be changed by height, only font-size */
+ *margin-top: 4px; /* For IE7, add top margin to align select with labels */
+ line-height: $inputHeight;
+}
+
+// Make select elements obey height by applying a border
+select {
+ width: 220px; // default input width + 10px of padding that doesn't get applied
+ border: 1px solid $inputBorder;
+ background-color: $inputBackground; // Chrome on Linux and Mobile Safari need background-color
+}
+
+// Make multiple select elements height not fixed
+select[multiple],
+select[size] {
+ height: auto;
+}
+
+// Focus for select, file, radio, and checkbox
+select:focus,
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+ @include tab-focus();
+}
+
+
+// Uneditable inputs
+// -------------------------
+
+// Make uneditable inputs look inactive
+.uneditable-input,
+.uneditable-textarea {
+ color: $grayLight;
+ background-color: darken($inputBackground, 1%);
+ border-color: $inputBorder;
+ @include box-shadow(inset 0 1px 2px rgba(0,0,0,.025));
+ cursor: not-allowed;
+}
+
+// For text that needs to appear as an input but should not be an input
+.uneditable-input {
+ overflow: hidden; // prevent text from wrapping, but still cut it off like an input does
+ white-space: nowrap;
+}
+
+// Make uneditable textareas behave like a textarea
+.uneditable-textarea {
+ width: auto;
+ height: auto;
+}
+
+
+// Placeholder
+// -------------------------
+
+// Placeholder text gets special styles because when browsers invalidate entire lines if it doesn't understand a selector
+input,
+textarea {
+ @include placeholder();
+}
+
+
+// CHECKBOXES & RADIOS
+// -------------------
+
+// Indent the labels to position radios/checkboxes as hanging
+.radio,
+.checkbox {
+ min-height: $baseLineHeight; // clear the floating input if there is no label text
+ padding-left: 20px;
+}
+.radio input[type="radio"],
+.checkbox input[type="checkbox"] {
+ float: left;
+ margin-left: -20px;
+}
+
+// Move the options list down to align with labels
+.controls > .radio:first-child,
+.controls > .checkbox:first-child {
+ padding-top: 5px; // has to be padding because margin collaspes
+}
+
+// Radios and checkboxes on same line
+// TODO v3: Convert .inline to .control-inline
+.radio.inline,
+.checkbox.inline {
+ display: inline-block;
+ padding-top: 5px;
+ margin-bottom: 0;
+ vertical-align: middle;
+}
+.radio.inline + .radio.inline,
+.checkbox.inline + .checkbox.inline {
+ margin-left: 10px; // space out consecutive inline controls
+}
+
+
+
+// INPUT SIZES
+// -----------
+
+// General classes for quick sizes
+.input-mini { width: 60px; }
+.input-small { width: 90px; }
+.input-medium { width: 150px; }
+.input-large { width: 210px; }
+.input-xlarge { width: 270px; }
+.input-xxlarge { width: 530px; }
+
+// Grid style input sizes
+input[class*="span"],
+select[class*="span"],
+textarea[class*="span"],
+.uneditable-input[class*="span"],
+// Redeclare since the fluid row class is more specific
+.row-fluid input[class*="span"],
+.row-fluid select[class*="span"],
+.row-fluid textarea[class*="span"],
+.row-fluid .uneditable-input[class*="span"] {
+ float: none;
+ margin-left: 0;
+}
+// Ensure input-prepend/append never wraps
+.input-append input[class*="span"],
+.input-append .uneditable-input[class*="span"],
+.input-prepend input[class*="span"],
+.input-prepend .uneditable-input[class*="span"],
+.row-fluid input[class*="span"],
+.row-fluid select[class*="span"],
+.row-fluid textarea[class*="span"],
+.row-fluid .uneditable-input[class*="span"],
+.row-fluid .input-prepend [class*="span"],
+.row-fluid .input-append [class*="span"] {
+ display: inline-block;
+}
+
+
+
+// GRID SIZING FOR INPUTS
+// ----------------------
+
+// Grid sizes
+@include grid-input($gridColumnWidth, $gridGutterWidth);
+
+// Control row for multiple inputs per line
+.controls-row {
+ @include clearfix(); // Clear the float from controls
+}
+
+// Float to collapse white-space for proper grid alignment
+.controls-row [class*="span"],
+// Redeclare the fluid grid collapse since we undo the float for inputs
+.row-fluid .controls-row [class*="span"] {
+ float: left;
+}
+// Explicity set top padding on all checkboxes/radios, not just first-child
+.controls-row .checkbox[class*="span"],
+.controls-row .radio[class*="span"] {
+ padding-top: 5px;
+}
+
+
+
+
+// DISABLED STATE
+// --------------
+
+// Disabled and read-only inputs
+input[disabled],
+select[disabled],
+textarea[disabled],
+input[readonly],
+select[readonly],
+textarea[readonly] {
+ cursor: not-allowed;
+ background-color: $inputDisabledBackground;
+}
+// Explicitly reset the colors here
+input[type="radio"][disabled],
+input[type="checkbox"][disabled],
+input[type="radio"][readonly],
+input[type="checkbox"][readonly] {
+ background-color: transparent;
+}
+
+
+
+
+// FORM FIELD FEEDBACK STATES
+// --------------------------
+
+// Warning
+.control-group.warning {
+ @include formFieldState($warningText, $warningText, $warningBackground);
+}
+// Error
+.control-group.error {
+ @include formFieldState($errorText, $errorText, $errorBackground);
+}
+// Success
+.control-group.success {
+ @include formFieldState($successText, $successText, $successBackground);
+}
+// Info
+.control-group.info {
+ @include formFieldState($infoText, $infoText, $infoBackground);
+}
+
+// HTML5 invalid states
+// Shares styles with the .control-group.error above
+input:focus:invalid,
+textarea:focus:invalid,
+select:focus:invalid {
+ color: #b94a48;
+ border-color: #ee5f5b;
+ &:focus {
+ border-color: darken(#ee5f5b, 10%);
+ @include box-shadow(0 0 6px lighten(#ee5f5b, 20%));
+ }
+}
+
+
+
+// FORM ACTIONS
+// ------------
+
+.form-actions {
+ padding: ($baseLineHeight - 1) 20px $baseLineHeight;
+ margin-top: $baseLineHeight;
+ margin-bottom: $baseLineHeight;
+ background-color: $formActionsBackground;
+ border-top: 1px solid #e5e5e5;
+ @include clearfix(); // Adding clearfix to allow for .pull-right button containers
+}
+
+
+
+// HELP TEXT
+// ---------
+
+.help-block,
+.help-inline {
+ color: lighten($textColor, 15%); // lighten the text some for contrast
+}
+
+.help-block {
+ display: block; // account for any element using help-block
+ margin-bottom: $baseLineHeight / 2;
+}
+
+.help-inline {
+ display: inline-block;
+ @include ie7-inline-block();
+ vertical-align: middle;
+ padding-left: 5px;
+}
+
+
+
+// INPUT GROUPS
+// ------------
+
+// Allow us to put symbols and text within the input field for a cleaner look
+.input-append,
+.input-prepend {
+ display: inline-block;
+ margin-bottom: $baseLineHeight / 2;
+ vertical-align: middle;
+ font-size: 0; // white space collapse hack
+ white-space: nowrap; // Prevent span and input from separating
+
+ // Reset the white space collapse hack
+ input,
+ select,
+ .uneditable-input,
+ .dropdown-menu,
+ .popover {
+ font-size: $baseFontSize;
+ }
+
+ input,
+ select,
+ .uneditable-input {
+ position: relative; // placed here by default so that on :focus we can place the input above the .add-on for full border and box-shadow goodness
+ margin-bottom: 0; // prevent bottom margin from screwing up alignment in stacked forms
+ *margin-left: 0;
+ vertical-align: top;
+ @include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
+ // Make input on top when focused so blue border and shadow always show
+ &:focus {
+ z-index: 2;
+ }
+ }
+ .add-on {
+ display: inline-block;
+ width: auto;
+ height: $baseLineHeight;
+ min-width: 16px;
+ padding: 4px 5px;
+ font-size: $baseFontSize;
+ font-weight: normal;
+ line-height: $baseLineHeight;
+ text-align: center;
+ text-shadow: 0 1px 0 $white;
+ background-color: $grayLighter;
+ border: 1px solid #ccc;
+ }
+ .add-on,
+ .btn,
+ .btn-group > .dropdown-toggle {
+ vertical-align: top;
+ @include border-radius(0);
+ }
+ .active {
+ background-color: lighten($green, 30);
+ border-color: $green;
+ }
+}
+
+.input-prepend {
+ .add-on,
+ .btn {
+ margin-right: -1px;
+ }
+ .add-on:first-child,
+ .btn:first-child {
+ // FYI, `.btn:first-child` accounts for a button group that's prepended
+ @include border-radius($inputBorderRadius 0 0 $inputBorderRadius);
+ }
+}
+
+.input-append {
+ input,
+ select,
+ .uneditable-input {
+ @include border-radius($inputBorderRadius 0 0 $inputBorderRadius);
+ + .btn-group .btn:last-child {
+ @include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
+ }
+ }
+ .add-on,
+ .btn,
+ .btn-group {
+ margin-left: -1px;
+ }
+ .add-on:last-child,
+ .btn:last-child,
+ .btn-group:last-child > .dropdown-toggle {
+ @include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
+ }
+}
+
+// Remove all border-radius for inputs with both prepend and append
+.input-prepend.input-append {
+ input,
+ select,
+ .uneditable-input {
+ @include border-radius(0);
+ + .btn-group .btn {
+ @include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
+ }
+ }
+ .add-on:first-child,
+ .btn:first-child {
+ margin-right: -1px;
+ @include border-radius($inputBorderRadius 0 0 $inputBorderRadius);
+ }
+ .add-on:last-child,
+ .btn:last-child {
+ margin-left: -1px;
+ @include border-radius(0 $inputBorderRadius $inputBorderRadius 0);
+ }
+ .btn-group:first-child {
+ margin-left: 0;
+ }
+}
+
+
+
+
+// SEARCH FORM
+// -----------
+
+input.search-query {
+ padding-right: 14px;
+ padding-right: 4px \9;
+ padding-left: 14px;
+ padding-left: 4px \9; /* IE7-8 doesn't have border-radius, so don't indent the padding */
+ margin-bottom: 0; // Remove the default margin on all inputs
+ @include border-radius(15px);
+}
+
+/* Allow for input prepend/append in search forms */
+.form-search .input-append .search-query,
+.form-search .input-prepend .search-query {
+ @include border-radius(0); // Override due to specificity
+}
+.form-search .input-append .search-query {
+ @include border-radius(14px 0 0 14px);
+}
+.form-search .input-append .btn {
+ @include border-radius(0 14px 14px 0);
+}
+.form-search .input-prepend .search-query {
+ @include border-radius(0 14px 14px 0);
+}
+.form-search .input-prepend .btn {
+ @include border-radius(14px 0 0 14px);
+}
+
+
+
+
+// HORIZONTAL & VERTICAL FORMS
+// ---------------------------
+
+// Common properties
+// -----------------
+
+.form-search,
+.form-inline,
+.form-horizontal {
+ input,
+ textarea,
+ select,
+ .help-inline,
+ .uneditable-input,
+ .input-prepend,
+ .input-append {
+ display: inline-block;
+ @include ie7-inline-block();
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ // Re-hide hidden elements due to specifity
+ .hide {
+ display: none;
+ }
+}
+.form-search label,
+.form-inline label,
+.form-search .btn-group,
+.form-inline .btn-group {
+ display: inline-block;
+}
+// Remove margin for input-prepend/-append
+.form-search .input-append,
+.form-inline .input-append,
+.form-search .input-prepend,
+.form-inline .input-prepend {
+ margin-bottom: 0;
+}
+// Inline checkbox/radio labels (remove padding on left)
+.form-search .radio,
+.form-search .checkbox,
+.form-inline .radio,
+.form-inline .checkbox {
+ padding-left: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+}
+// Remove float and margin, set to inline-block
+.form-search .radio input[type="radio"],
+.form-search .checkbox input[type="checkbox"],
+.form-inline .radio input[type="radio"],
+.form-inline .checkbox input[type="checkbox"] {
+ float: left;
+ margin-right: 3px;
+ margin-left: 0;
+}
+
+
+// Margin to space out fieldsets
+.control-group {
+ margin-bottom: $baseLineHeight / 2;
+}
+
+// Legend collapses margin, so next element is responsible for spacing
+legend + .control-group {
+ margin-top: $baseLineHeight;
+ -webkit-margin-top-collapse: separate;
+}
+
+// Horizontal-specific styles
+// --------------------------
+
+.form-horizontal {
+ // Increase spacing between groups
+ .control-group {
+ margin-bottom: $baseLineHeight;
+ @include clearfix();
+ }
+ // Float the labels left
+ .control-label {
+ float: left;
+ width: $horizontalComponentOffset - 20;
+ padding-top: 5px;
+ text-align: right;
+ }
+ // Move over all input controls and content
+ .controls {
+ // Super jank IE7 fix to ensure the inputs in .input-append and input-prepend
+ // don't inherit the margin of the parent, in this case .controls
+ *display: inline-block;
+ *padding-left: 20px;
+ margin-left: $horizontalComponentOffset;
+ *margin-left: 0;
+ &:first-child {
+ *padding-left: $horizontalComponentOffset;
+ }
+ }
+ // Remove bottom margin on block level help text since that's accounted for on .control-group
+ .help-block {
+ margin-bottom: 0;
+ }
+ // And apply it only to .help-block instances that follow a form control
+ input,
+ select,
+ textarea,
+ .uneditable-input,
+ .input-prepend,
+ .input-append {
+ + .help-block {
+ margin-top: $baseLineHeight / 2;
+ }
+ }
+ // Move over buttons in .form-actions to align with .controls
+ .form-actions {
+ padding-left: $horizontalComponentOffset;
+ }
+}
diff --git a/theme/scss/bootstrap-2.3.2/_grid.scss b/theme/scss/bootstrap-2.3.2/_grid.scss
new file mode 100755
index 0000000..f2b910a
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_grid.scss
@@ -0,0 +1,21 @@
+//
+// Grid system
+// --------------------------------------------------
+
+
+// Fixed (940px)
+@include grid-core($gridColumnWidth, $gridGutterWidth);
+
+// Fluid (940px)
+@include grid-fluid($fluidGridColumnWidth, $fluidGridGutterWidth);
+
+// Reset utility classes due to specificity
+[class*="span"].hide,
+.row-fluid [class*="span"].hide {
+ display: none;
+}
+
+[class*="span"].pull-right,
+.row-fluid [class*="span"].pull-right {
+ float: right;
+}
diff --git a/theme/scss/bootstrap-2.3.2/_hero-unit.scss b/theme/scss/bootstrap-2.3.2/_hero-unit.scss
new file mode 100755
index 0000000..274527e
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_hero-unit.scss
@@ -0,0 +1,25 @@
+//
+// Hero unit
+// --------------------------------------------------
+
+
+.hero-unit {
+ padding: 60px;
+ margin-bottom: 30px;
+ font-size: 18px;
+ font-weight: 200;
+ line-height: $baseLineHeight * 1.5;
+ color: $heroUnitLeadColor;
+ background-color: $heroUnitBackground;
+ @include border-radius(6px);
+ h1 {
+ margin-bottom: 0;
+ font-size: 60px;
+ line-height: 1;
+ color: $heroUnitHeadingColor;
+ letter-spacing: -1px;
+ }
+ li {
+ line-height: $baseLineHeight * 1.5; // Reset since we specify in type.scss
+ }
+}
diff --git a/theme/scss/bootstrap-2.3.2/_labels-badges.scss b/theme/scss/bootstrap-2.3.2/_labels-badges.scss
new file mode 100755
index 0000000..8f17e58
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_labels-badges.scss
@@ -0,0 +1,83 @@
+//
+// Labels and badges
+// --------------------------------------------------
+
+
+// Base classes
+.label,
+.badge {
+ display: inline-block;
+ padding: 2px 4px;
+ font-size: $baseFontSize * .846;
+ font-weight: bold;
+ line-height: 14px; // ensure proper line-height if floated
+ color: $white;
+ vertical-align: baseline;
+ white-space: nowrap;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ background-color: $grayLight;
+}
+// Set unique padding and border-radii
+.label {
+ @include border-radius(3px);
+}
+.badge {
+ padding-left: 9px;
+ padding-right: 9px;
+ @include border-radius(9px);
+}
+
+// Empty labels/badges collapse
+.label,
+.badge {
+ &:empty {
+ display: none;
+ }
+}
+
+// Hover/focus state, but only for links
+a {
+ &.label:hover,
+ &.label:focus,
+ &.badge:hover,
+ &.badge:focus {
+ color: $white;
+ text-decoration: none;
+ cursor: pointer;
+ }
+}
+
+// Colors
+// Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute)
+@each $item in label, badge {
+ // Important (red)
+ .#{$item}-important { background-color: $errorText; }
+ .#{$item}-important[href] { background-color: darken($errorText, 10%); }
+ // Warnings (orange)
+ .#{$item}-warning { background-color: $orange; }
+ .#{$item}-warning[href] { background-color: darken($orange, 10%); }
+ // Success (green)
+ .#{$item}-success { background-color: $successText; }
+ .#{$item}-success[href] { background-color: darken($successText, 10%); }
+ // Info (turquoise)
+ .#{$item}-info { background-color: $infoText; }
+ .#{$item}-info[href] { background-color: darken($infoText, 10%); }
+ // Inverse (black)
+ .#{$item}-inverse { background-color: $grayDark; }
+ .#{$item}-inverse[href] { background-color: darken($grayDark, 10%); }
+}
+
+// Quick fix for labels/badges in buttons
+.btn {
+ .label,
+ .badge {
+ position: relative;
+ top: -1px;
+ }
+}
+.btn-mini {
+ .label,
+ .badge {
+ top: 0;
+ }
+}
diff --git a/theme/scss/bootstrap-2.3.2/_layouts.scss b/theme/scss/bootstrap-2.3.2/_layouts.scss
new file mode 100755
index 0000000..5ea4d00
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_layouts.scss
@@ -0,0 +1,16 @@
+//
+// Layouts
+// --------------------------------------------------
+
+
+// Container (centered, fixed-width layouts)
+.container {
+ @include container-fixed();
+}
+
+// Fluid layouts (left aligned, with sidebar, min- & max-width content)
+.container-fluid {
+ padding-right: $gridGutterWidth;
+ padding-left: $gridGutterWidth;
+ @include clearfix();
+}
diff --git a/theme/scss/bootstrap-2.3.2/_media.scss b/theme/scss/bootstrap-2.3.2/_media.scss
new file mode 100755
index 0000000..e461e44
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_media.scss
@@ -0,0 +1,55 @@
+// Media objects
+// Source: http://stubbornella.org/content/?p=497
+// --------------------------------------------------
+
+
+// Common styles
+// -------------------------
+
+// Clear the floats
+.media,
+.media-body {
+ overflow: hidden;
+ *overflow: visible;
+ zoom: 1;
+}
+
+// Proper spacing between instances of .media
+.media,
+.media .media {
+ margin-top: 15px;
+}
+.media:first-child {
+ margin-top: 0;
+}
+
+// For images and videos, set to block
+.media-object {
+ display: block;
+}
+
+// Reset margins on headings for tighter default spacing
+.media-heading {
+ margin: 0 0 5px;
+}
+
+
+// Media image alignment
+// -------------------------
+
+.media > .pull-left {
+ margin-right: 10px;
+}
+.media > .pull-right {
+ margin-left: 10px;
+}
+
+
+// Media list variation
+// -------------------------
+
+// Undo default ul/ol styles
+.media-list {
+ margin-left: 0;
+ list-style: none;
+}
diff --git a/theme/scss/bootstrap-2.3.2/_mixins.scss b/theme/scss/bootstrap-2.3.2/_mixins.scss
new file mode 100755
index 0000000..53303aa
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_mixins.scss
@@ -0,0 +1,696 @@
+//
+// Mixins
+// --------------------------------------------------
+
+
+// UTILITY MIXINS
+// --------------------------------------------------
+
+// Clearfix
+// --------
+// For clearing floats like a boss h5bp.com/q
+@mixin clearfix {
+ *zoom: 1;
+ &:before,
+ &:after {
+ display: table;
+ content: "";
+ // Fixes Opera/contenteditable bug:
+ // http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952
+ line-height: 0;
+ }
+ &:after {
+ clear: both;
+ }
+}
+
+// Webkit-style focus
+// ------------------
+@mixin tab-focus() {
+ // Default
+ outline: thin dotted #333;
+ // Webkit
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+// Center-align a block level element
+// ----------------------------------
+@mixin center-block() {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+// IE7 inline-block
+// ----------------
+@mixin ie7-inline-block() {
+ *display: inline; /* IE7 inline-block hack */
+ *zoom: 1;
+}
+
+// IE7 likes to collapse whitespace on either side of the inline-block elements.
+// Ems because we're attempting to match the width of a space character. Left
+// version is for form buttons, which typically come after other elements, and
+// right version is for icons, which come before. Applying both is ok, but it will
+// mean that space between those elements will be .6em (~2 space characters) in IE7,
+// instead of the 1 space in other browsers.
+@mixin ie7-restore-left-whitespace() {
+ *margin-left: .3em;
+
+ &:first-child {
+ *margin-left: 0;
+ }
+}
+
+@mixin ie7-restore-right-whitespace() {
+ *margin-right: .3em;
+}
+
+// Sizing shortcuts
+// -------------------------
+@mixin size($height, $width) {
+ width: $width;
+ height: $height;
+}
+@mixin square($size) {
+ @include size($size, $size);
+}
+
+// Placeholder text
+// -------------------------
+@mixin placeholder($color: $placeholderText) {
+ &:-moz-placeholder {
+ color: $color;
+ }
+ &:-ms-input-placeholder {
+ color: $color;
+ }
+ &::-webkit-input-placeholder {
+ color: $color;
+ }
+}
+
+// Text overflow
+// -------------------------
+// Requires inline-block or block for proper styling
+@mixin text-overflow() {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+// CSS image replacement
+// -------------------------
+// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
+@mixin hide-text {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+
+
+// FONTS
+// --------------------------------------------------
+
+@mixin font-family-serif() {
+ font-family: $serifFontFamily;
+}
+@mixin font-family-sans-serif() {
+ font-family: $sansFontFamily;
+}
+@mixin font-family-monospace() {
+ font-family: $monoFontFamily;
+}
+@mixin font-shorthand($size: $baseFontSize, $weight: normal, $lineHeight: $baseLineHeight) {
+ font-size: $size;
+ font-weight: $weight;
+ line-height: $lineHeight;
+}
+@mixin font-serif($size: $baseFontSize, $weight: normal, $lineHeight: $baseLineHeight) {
+ @include font-family-serif();
+ @include font-shorthand($size, $weight, $lineHeight);
+}
+@mixin font-sans-serif($size: $baseFontSize, $weight: normal, $lineHeight: $baseLineHeight) {
+ @include font-family-sans-serif();
+ @include font-shorthand($size, $weight, $lineHeight);
+}
+@mixin font-monospace($size: $baseFontSize, $weight: normal, $lineHeight: $baseLineHeight) {
+ @include font-family-monospace();
+ @include font-shorthand($size, $weight, $lineHeight);
+}
+
+
+// FORMS
+// --------------------------------------------------
+
+// Block level inputs
+@mixin input-block-level {
+ display: block;
+ width: 100%;
+ min-height: $inputHeight; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
+ @include box-sizing(border-box); // Makes inputs behave like true block-level elements
+}
+
+
+
+// Mixin for form field states
+@mixin formFieldState($textColor: #555, $borderColor: #ccc, $backgroundColor: #f5f5f5) {
+ // Set the text color
+ .control-label,
+ .help-block,
+ .help-inline {
+ color: $textColor;
+ }
+ // Style inputs accordingly
+ .checkbox,
+ .radio,
+ input,
+ select,
+ textarea {
+ color: $textColor;
+ }
+ input,
+ select,
+ textarea {
+ border-color: $borderColor;
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
+ &:focus {
+ border-color: darken($borderColor, 10%);
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($borderColor, 20%));
+ }
+ }
+ // Give a small background color for input-prepend/-append
+ .input-prepend .add-on,
+ .input-append .add-on {
+ color: $textColor;
+ background-color: $backgroundColor;
+ border-color: $textColor;
+ }
+}
+
+
+
+// CSS3 PROPERTIES
+// --------------------------------------------------
+
+// Border Radius
+@mixin border-radius($radius) {
+ -webkit-border-radius: $radius;
+ -moz-border-radius: $radius;
+ border-radius: $radius;
+}
+
+// Single Corner Border Radius
+@mixin border-top-left-radius($radius) {
+ -webkit-border-top-left-radius: $radius;
+ -moz-border-radius-topleft: $radius;
+ border-top-left-radius: $radius;
+}
+@mixin border-top-right-radius($radius) {
+ -webkit-border-top-right-radius: $radius;
+ -moz-border-radius-topright: $radius;
+ border-top-right-radius: $radius;
+}
+@mixin border-bottom-right-radius($radius) {
+ -webkit-border-bottom-right-radius: $radius;
+ -moz-border-radius-bottomright: $radius;
+ border-bottom-right-radius: $radius;
+}
+@mixin border-bottom-left-radius($radius) {
+ -webkit-border-bottom-left-radius: $radius;
+ -moz-border-radius-bottomleft: $radius;
+ border-bottom-left-radius: $radius;
+}
+
+// Single Side Border Radius
+@mixin border-top-radius($radius) {
+ @include border-top-right-radius($radius);
+ @include border-top-left-radius($radius);
+}
+@mixin border-right-radius($radius) {
+ @include border-top-right-radius($radius);
+ @include border-bottom-right-radius($radius);
+}
+@mixin border-bottom-radius($radius) {
+ @include border-bottom-right-radius($radius);
+ @include border-bottom-left-radius($radius);
+}
+@mixin border-left-radius($radius) {
+ @include border-top-left-radius($radius);
+ @include border-bottom-left-radius($radius);
+}
+
+// Drop shadows
+@mixin box-shadow($shadow...) {
+ -webkit-box-shadow: $shadow;
+ -moz-box-shadow: $shadow;
+ box-shadow: $shadow;
+}
+
+// Transitions
+@mixin transition($transition...) {
+ -webkit-transition: $transition;
+ -moz-transition: $transition;
+ -o-transition: $transition;
+ transition: $transition;
+}
+@mixin transition-delay($transition-delay) {
+ -webkit-transition-delay: $transition-delay;
+ -moz-transition-delay: $transition-delay;
+ -o-transition-delay: $transition-delay;
+ transition-delay: $transition-delay;
+}
+@mixin transition-duration($transition-duration) {
+ -webkit-transition-duration: $transition-duration;
+ -moz-transition-duration: $transition-duration;
+ -o-transition-duration: $transition-duration;
+ transition-duration: $transition-duration;
+}
+
+// Transformations
+@mixin rotate($degrees) {
+ -webkit-transform: rotate($degrees);
+ -moz-transform: rotate($degrees);
+ -ms-transform: rotate($degrees);
+ -o-transform: rotate($degrees);
+ transform: rotate($degrees);
+}
+@mixin scale($ratio) {
+ -webkit-transform: scale($ratio);
+ -moz-transform: scale($ratio);
+ -ms-transform: scale($ratio);
+ -o-transform: scale($ratio);
+ transform: scale($ratio);
+}
+@mixin translate($x, $y) {
+ -webkit-transform: translate($x, $y);
+ -moz-transform: translate($x, $y);
+ -ms-transform: translate($x, $y);
+ -o-transform: translate($x, $y);
+ transform: translate($x, $y);
+}
+@mixin skew($x, $y) {
+ -webkit-transform: skew($x, $y);
+ -moz-transform: skew($x, $y);
+ -ms-transform: skewX($x) skewY($y); // See https://github.com/twitter/bootstrap/issues/4885
+ -o-transform: skew($x, $y);
+ transform: skew($x, $y);
+ -webkit-backface-visibility: hidden; // See https://github.com/twitter/bootstrap/issues/5319
+}
+@mixin translate3d($x, $y, $z) {
+ -webkit-transform: translate3d($x, $y, $z);
+ -moz-transform: translate3d($x, $y, $z);
+ -o-transform: translate3d($x, $y, $z);
+ transform: translate3d($x, $y, $z);
+}
+
+// Backface visibility
+// Prevent browsers from flickering when using CSS 3D transforms.
+// Default value is `visible`, but can be changed to `hidden
+// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples
+@mixin backface-visibility($visibility){
+ -webkit-backface-visibility: $visibility;
+ -moz-backface-visibility: $visibility;
+ backface-visibility: $visibility;
+}
+
+// Background clipping
+// Heads up: FF 3.6 and under need "padding" instead of "padding-box"
+@mixin background-clip($clip) {
+ -webkit-background-clip: $clip;
+ -moz-background-clip: $clip;
+ background-clip: $clip;
+}
+
+// Background sizing
+@mixin background-size($size) {
+ -webkit-background-size: $size;
+ -moz-background-size: $size;
+ -o-background-size: $size;
+ background-size: $size;
+}
+
+
+// Box sizing
+@mixin box-sizing($boxmodel) {
+ -webkit-box-sizing: $boxmodel;
+ -moz-box-sizing: $boxmodel;
+ box-sizing: $boxmodel;
+}
+
+// User select
+// For selecting text on the page
+@mixin user-select($select) {
+ -webkit-user-select: $select;
+ -moz-user-select: $select;
+ -ms-user-select: $select;
+ -o-user-select: $select;
+ user-select: $select;
+}
+
+// Resize anything
+@mixin resizable($direction) {
+ resize: $direction; // Options: horizontal, vertical, both
+ overflow: auto; // Safari fix
+}
+
+// CSS3 Content Columns
+@mixin content-columns($columnCount, $columnGap: $gridGutterWidth) {
+ -webkit-column-count: $columnCount;
+ -moz-column-count: $columnCount;
+ column-count: $columnCount;
+ -webkit-column-gap: $columnGap;
+ -moz-column-gap: $columnGap;
+ column-gap: $columnGap;
+}
+
+// Optional hyphenation
+@mixin hyphens($mode: auto) {
+ word-wrap: break-word;
+ -webkit-hyphens: $mode;
+ -moz-hyphens: $mode;
+ -ms-hyphens: $mode;
+ -o-hyphens: $mode;
+ hyphens: $mode;
+}
+
+// Opacity
+@mixin opacity($opacity) {
+ opacity: $opacity / 100;
+ filter: alpha(opacity=$opacity);
+}
+
+
+
+// BACKGROUNDS
+// --------------------------------------------------
+
+// Add an alphatransparency value to any background or border color (via Elyse Holladay)
+@mixin translucent-background($color: $white, $alpha: 1) {
+ background-color: hsla(hue($color), saturation($color), lightness($color), $alpha);
+}
+
+@mixin translucent-border($color: $white, $alpha: 1) {
+ border-color: hsla(hue($color), saturation($color), lightness($color), $alpha);
+ @include background-clip(padding-box);
+}
+
+// Gradient Bar Colors for buttons and alerts
+@mixin gradientBar($primaryColor, $secondaryColor, $textColor: #fff, $textShadow: 0 -1px 0 rgba(0,0,0,.25)) {
+ color: $textColor;
+ text-shadow: $textShadow;
+ @include gradient-vertical($primaryColor, $secondaryColor);
+ border-color: $secondaryColor $secondaryColor darken($secondaryColor, 15%);
+ border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fade-in(rgba(0,0,0,.1), 0.15);
+}
+
+// Gradients
+@mixin gradient-horizontal($startColor: #555, $endColor: #333) {
+ background-color: $endColor;
+ background-image: -moz-linear-gradient(left, $startColor, $endColor); // FF 3.6+
+ background-image: -webkit-gradient(linear, 0 0, 100% 0, from($startColor), to($endColor)); // Safari 4+, Chrome 2+
+ background-image: -webkit-linear-gradient(left, $startColor, $endColor); // Safari 5.1+, Chrome 10+
+ background-image: -o-linear-gradient(left, $startColor, $endColor); // Opera 11.10
+ background-image: linear-gradient(to right, $startColor, $endColor); // Standard, IE10
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}', GradientType=1); // IE9 and down
+}
+@mixin gradient-vertical($startColor: #555, $endColor: #333) {
+ background-color: mix($startColor, $endColor, 60%);
+ background-image: -moz-linear-gradient(top, $startColor, $endColor); // FF 3.6+
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from($startColor), to($endColor)); // Safari 4+, Chrome 2+
+ background-image: -webkit-linear-gradient(top, $startColor, $endColor); // Safari 5.1+, Chrome 10+
+ background-image: -o-linear-gradient(top, $startColor, $endColor); // Opera 11.10
+ background-image: linear-gradient(to bottom, $startColor, $endColor); // Standard, IE10
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}', GradientType=0); // IE9 and down
+}
+@mixin gradient-directional($startColor: #555, $endColor: #333, $deg: 45deg) {
+ background-color: $endColor;
+ background-repeat: repeat-x;
+ background-image: -moz-linear-gradient($deg, $startColor, $endColor); // FF 3.6+
+ background-image: -webkit-linear-gradient($deg, $startColor, $endColor); // Safari 5.1+, Chrome 10+
+ background-image: -o-linear-gradient($deg, $startColor, $endColor); // Opera 11.10
+ background-image: linear-gradient($deg, $startColor, $endColor); // Standard, IE10
+}
+@mixin gradient-horizontal-three-colors($startColor: #00b3ee, $midColor: #7a43b6, $colorStop: 50%, $endColor: #c3325f) {
+ background-color: mix($midColor, $endColor, 80%);
+ background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from($startColor), color-stop($colorStop, $midColor), to($endColor));
+ background-image: -webkit-linear-gradient(left, $startColor, $midColor $colorStop, $endColor);
+ background-image: -moz-linear-gradient(left, $startColor, $midColor $colorStop, $endColor);
+ background-image: -o-linear-gradient(left, $startColor, $midColor $colorStop, $endColor);
+ background-image: linear-gradient(to right, $startColor, $midColor $colorStop, $endColor);
+ background-repeat: no-repeat;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
+}
+
+@mixin gradient-vertical-three-colors($startColor: #00b3ee, $midColor: #7a43b6, $colorStop: 50%, $endColor: #c3325f) {
+ background-color: mix($midColor, $endColor, 80%);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from($startColor), color-stop($colorStop, $midColor), to($endColor));
+ background-image: -webkit-linear-gradient($startColor, $midColor $colorStop, $endColor);
+ background-image: -moz-linear-gradient(top, $startColor, $midColor $colorStop, $endColor);
+ background-image: -o-linear-gradient($startColor, $midColor $colorStop, $endColor);
+ background-image: linear-gradient($startColor, $midColor $colorStop, $endColor);
+ background-repeat: no-repeat;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
+}
+@mixin gradient-radial($innerColor: #555, $outerColor: #333) {
+ background-color: $outerColor;
+ background-image: -webkit-gradient(radial, center center, 0, center center, 460, from($innerColor), to($outerColor));
+ background-image: -webkit-radial-gradient(circle, $innerColor, $outerColor);
+ background-image: -moz-radial-gradient(circle, $innerColor, $outerColor);
+ background-image: -o-radial-gradient(circle, $innerColor, $outerColor);
+ background-repeat: no-repeat;
+}
+@mixin gradient-striped($color: #555, $angle: 45deg) {
+ background-color: $color;
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient($angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient($angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient($angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient($angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
+}
+
+// Reset filters for IE
+@mixin reset-filter() {
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+
+
+// COMPONENT MIXINS
+// --------------------------------------------------
+
+// Horizontal dividers
+// -------------------------
+// Dividers (basically an hr) within dropdowns and nav lists
+@mixin nav-divider($top: #e5e5e5, $bottom: $white) {
+ // IE7 needs a set width since we gave a height. Restricting just
+ // to IE7 to keep the 1px left/right space in other browsers.
+ // It is unclear where IE is getting the extra space that we need
+ // to negative-margin away, but so it goes.
+ *width: 100%;
+ height: 1px;
+ margin: (($baseLineHeight / 2) - 1) 1px; // 8px 1px
+ *margin: -5px 0 5px;
+ overflow: hidden;
+ background-color: $top;
+ border-bottom: 1px solid $bottom;
+}
+
+// Button backgrounds
+// ------------------
+@mixin buttonBackground($startColor, $endColor, $textColor: #fff, $textShadow: 0 -1px 0 rgba(0,0,0,.25)) {
+ // gradientBar will set the background to a pleasing blend of these, to support IE<=9
+ @include gradientBar($startColor, $endColor, $textColor, $textShadow);
+ *background-color: $endColor; /* Darken IE7 buttons by default so they stand out more given they won't have borders */
+ @include reset-filter();
+
+ // in these cases the gradient won't cover the background, so we override
+ &:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {
+ color: $textColor;
+ background-color: $endColor;
+ *background-color: darken($endColor, 5%);
+ }
+
+ // IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves
+ &:active,
+ &.active {
+ background-color: darken($endColor, 10%) \9;
+ }
+}
+
+// Navbar vertical align
+// -------------------------
+// Vertically center elements in the navbar.
+// Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin.
+@mixin navbarVerticalAlign($elementHeight) {
+ margin-top: ($navbarHeight - $elementHeight) / 2;
+}
+
+
+
+// Grid System
+// -----------
+
+// Centered container element
+@mixin container-fixed() {
+ margin-right: auto;
+ margin-left: auto;
+ @include clearfix();
+}
+
+// Table columns
+@mixin tableColumns($columnSpan: 1) {
+ float: none; // undo default grid column styles
+ width: (($gridColumnWidth) * $columnSpan) + ($gridGutterWidth * ($columnSpan - 1)) - 16; // 16 is total padding on left and right of table cells
+ margin-left: 0; // undo default grid column styles
+}
+
+// Make a Grid
+// Use .makeRow and .makeColumn to assign semantic layouts grid system behavior
+@mixin makeRow() {
+ margin-left: $gridGutterWidth * -1;
+ @include clearfix();
+}
+@mixin makeColumn($columns: 1, $offset: 0) {
+ float: left;
+ margin-left: ($gridColumnWidth * $offset) + ($gridGutterWidth * ($offset - 1)) + ($gridGutterWidth * 2);
+ width: ($gridColumnWidth * $columns) + ($gridGutterWidth * ($columns - 1));
+}
+
+// The Grid
+@mixin grid-core($gridColumnWidth, $gridGutterWidth) {
+ .row {
+ margin-left: $gridGutterWidth * -1;
+ @include clearfix();
+ }
+
+ [class*="span"] {
+ float: left;
+ min-height: 1px; // prevent collapsing columns
+ margin-left: $gridGutterWidth;
+ }
+
+ // Set the container width, and override it for fixed navbars in media queries
+ .container,
+ .navbar-static-top .container,
+ .navbar-fixed-top .container,
+ .navbar-fixed-bottom .container {
+ @include grid-core-span($gridColumns, $gridColumnWidth, $gridGutterWidth);
+ }
+
+ // generate .spanX and .offsetX
+ @include grid-core-span-x($gridColumns, $gridColumnWidth, $gridGutterWidth);
+ @include grid-core-offset-x($gridColumns, $gridColumnWidth, $gridGutterWidth);
+}
+
+@mixin grid-core-span-x($gridColumns, $gridColumnWidth, $gridGutterWidth) {
+ @for $i from 1 through $gridColumns {
+ .span#{$i} { @include grid-core-span($i, $gridColumnWidth, $gridGutterWidth); }
+ }
+}
+
+@mixin grid-core-offset-x($gridColumns, $gridColumnWidth, $gridGutterWidth) {
+ @for $i from 1 through $gridColumns {
+ .offset#{$i} { @include grid-core-offset($i, $gridColumnWidth, $gridGutterWidth); }
+ }
+}
+
+@mixin grid-core-span($columns, $gridColumnWidth, $gridGutterWidth) {
+ width: ($gridColumnWidth * $columns) + ($gridGutterWidth * ($columns - 1));
+}
+
+@mixin grid-core-offset($columns, $gridColumnWidth, $gridGutterWidth) {
+ margin-left: ($gridColumnWidth * $columns) + ($gridGutterWidth * ($columns + 1));
+}
+
+
+
+@mixin grid-fluid($fluidGridColumnWidth, $fluidGridGutterWidth) {
+ .row-fluid {
+ width: 100%;
+ @include clearfix();
+ [class*="span"] {
+ @include input-block-level();
+ float: left;
+ margin-left: $fluidGridGutterWidth;
+ *margin-left: $fluidGridGutterWidth - (.5 / $gridRowWidth * 100px * 1%);
+ }
+ [class*="span"]:first-child {
+ margin-left: 0;
+ }
+
+ // Space grid-sized controls properly if multiple per line
+ .controls-row [class*="span"] + [class*="span"] {
+ margin-left: $fluidGridGutterWidth;
+ }
+
+ // generate .spanX and .offsetX
+ @include grid-fluid-span-x($gridColumns, $fluidGridColumnWidth, $fluidGridGutterWidth);
+ @include grid-fluid-offset-x($gridColumns, $fluidGridColumnWidth, $fluidGridGutterWidth);
+ }
+}
+
+@mixin grid-fluid-span-x($gridColumns, $fluidGridColumnWidth, $fluidGridGutterWidth) {
+ @for $i from 1 through $gridColumns {
+ .span#{$i} { @include grid-fluid-span($i, $fluidGridColumnWidth, $fluidGridGutterWidth); }
+ }
+}
+
+@mixin grid-fluid-offset-x($gridColumns, $fluidGridColumnWidth, $fluidGridGutterWidth) {
+ @for $i from 1 through $gridColumns {
+ .offset#{$i} { @include grid-fluid-offset($i, $fluidGridColumnWidth, $fluidGridGutterWidth); }
+ .offset#{$i}:first-child { @include grid-fluid-offset-first-child($i, $fluidGridColumnWidth, $fluidGridGutterWidth); }
+ }
+}
+
+@mixin grid-fluid-span($columns, $fluidGridColumnWidth, $fluidGridGutterWidth) {
+ width: ($fluidGridColumnWidth * $columns) + ($fluidGridGutterWidth * ($columns - 1));
+ *width: ($fluidGridColumnWidth * $columns) + ($fluidGridGutterWidth * ($columns - 1)) - (.5 / $gridRowWidth * 100px * 1%);
+}
+
+@mixin grid-fluid-offset($columns, $fluidGridColumnWidth, $fluidGridGutterWidth) {
+ margin-left: ($fluidGridColumnWidth * $columns) + ($fluidGridGutterWidth * ($columns - 1)) + ($fluidGridGutterWidth * 2);
+ *margin-left: ($fluidGridColumnWidth * $columns) + ($fluidGridGutterWidth * ($columns - 1)) - (.5 / $gridRowWidth * 100px * 1%) + ($fluidGridGutterWidth * 2) - (.5 / $gridRowWidth * 100px * 1%);
+}
+
+@mixin grid-fluid-offset-first-child($columns, $fluidGridColumnWidth, $fluidGridGutterWidth) {
+ margin-left: ($fluidGridColumnWidth * $columns) + ($fluidGridGutterWidth * ($columns - 1)) + ($fluidGridGutterWidth);
+ *margin-left: ($fluidGridColumnWidth * $columns) + ($fluidGridGutterWidth * ($columns - 1)) - (.5 / $gridRowWidth * 100px * 1%) + $fluidGridGutterWidth - (.5 / $gridRowWidth * 100px * 1%);
+}
+
+
+
+@mixin grid-input($gridColumnWidth, $gridGutterWidth) {
+ input,
+ textarea,
+ .uneditable-input {
+ margin-left: 0; // override margin-left from core grid system
+ }
+
+ // Space grid-sized controls properly if multiple per line
+ .controls-row [class*="span"] + [class*="span"] {
+ margin-left: $gridGutterWidth;
+ }
+
+ // generate .spanX
+ @include grid-input-span-x($gridColumns, $gridColumnWidth, $gridGutterWidth);
+}
+
+@mixin grid-input-span-x($gridColumns, $gridColumnWidth, $gridGutterWidth) {
+ @for $i from 1 through $gridColumns {
+ input.span#{$i},
+ textarea.span#{$i},
+ .uneditable-input.span#{$i} {
+ @include grid-input-span($i, $gridColumnWidth, $gridGutterWidth);
+ }
+ }
+}
+
+@mixin grid-input-span($columns, $gridColumnWidth, $gridGutterWidth) {
+ width: (($gridColumnWidth) * $columns) + ($gridGutterWidth * ($columns - 1)) - 14;
+}
diff --git a/theme/scss/bootstrap-2.3.2/_modals.scss b/theme/scss/bootstrap-2.3.2/_modals.scss
new file mode 100755
index 0000000..749baa6
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_modals.scss
@@ -0,0 +1,95 @@
+//
+// Modals
+// --------------------------------------------------
+
+// Background
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: $zindexModalBackdrop;
+ background-color: $black;
+ // Fade for backdrop
+ &.fade { opacity: 0; }
+}
+
+.modal-backdrop,
+.modal-backdrop.fade.in {
+ @include opacity(80);
+}
+
+// Base modal
+.modal {
+ position: fixed;
+ top: 10%;
+ left: 50%;
+ z-index: $zindexModal;
+ width: 560px;
+ margin-left: -280px;
+ background-color: $white;
+ border: 1px solid #999;
+ border: 1px solid rgba(0,0,0,.3);
+ *border: 1px solid #999; /* IE6-7 */
+ @include border-radius(6px);
+ @include box-shadow(0 3px 7px rgba(0,0,0,0.3));
+ @include background-clip(padding-box);
+ // Remove focus outline from opened modal
+ outline: none;
+
+ &.fade {
+ @include transition(opacity .3s linear, top .3s ease-out);
+ top: -25%;
+ }
+ &.fade.in { top: 10%; }
+}
+.modal-header {
+ padding: 9px 15px;
+ border-bottom: 1px solid #eee;
+ // Close icon
+ .close { margin-top: 2px; }
+ // Heading
+ h3 {
+ margin: 0;
+ line-height: 30px;
+ }
+}
+
+// Body (where all modal content resides)
+.modal-body {
+ position: relative;
+ overflow-y: auto;
+ max-height: 400px;
+ padding: 15px;
+}
+// Remove bottom margin if need be
+.modal-form {
+ margin-bottom: 0;
+}
+
+// Footer (for actions)
+.modal-footer {
+ padding: 14px 15px 15px;
+ margin-bottom: 0;
+ text-align: right; // right align buttons
+ background-color: #f5f5f5;
+ border-top: 1px solid #ddd;
+ @include border-radius(0 0 6px 6px);
+ @include box-shadow(inset 0 1px 0 $white);
+ @include clearfix(); // clear it in case folks use .pull-* classes on buttons
+
+ // Properly space out buttons
+ .btn + .btn {
+ margin-left: 5px;
+ margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
+ }
+ // but override that for button groups
+ .btn-group .btn + .btn {
+ margin-left: -1px;
+ }
+ // and override it for block buttons as well
+ .btn-block + .btn-block {
+ margin-left: 0;
+ }
+}
diff --git a/theme/scss/bootstrap-2.3.2/_navbar.scss b/theme/scss/bootstrap-2.3.2/_navbar.scss
new file mode 100755
index 0000000..a65aa4a
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_navbar.scss
@@ -0,0 +1,497 @@
+//
+// Navbars (Redux)
+// --------------------------------------------------
+
+
+// COMMON STYLES
+// -------------
+
+// Base class and wrapper
+.navbar {
+ overflow: visible;
+ margin-bottom: $baseLineHeight;
+
+ // Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar
+ *position: relative;
+ *z-index: 2;
+}
+
+// Inner for background effects
+// Gradient is applied to its own element because overflow visible is not honored by IE when filter is present
+.navbar-inner {
+ min-height: $navbarHeight;
+ padding-left: 20px;
+ padding-right: 20px;
+ @include gradient-vertical($navbarBackgroundHighlight, $navbarBackground);
+ border: 1px solid $navbarBorder;
+ @include border-radius($baseBorderRadius);
+ @include box-shadow(0 1px 4px rgba(0,0,0,.065));
+
+ // Prevent floats from breaking the navbar
+ @include clearfix();
+}
+
+// Set width to auto for default container
+// We then reset it for fixed navbars in the #gridSystem mixin
+.navbar .container {
+ width: auto;
+}
+
+// Override the default collapsed state
+.nav-collapse.collapse {
+ height: auto;
+ overflow: visible;
+}
+
+
+// Brand: website or project name
+// -------------------------
+.navbar .brand {
+ float: left;
+ display: block;
+ // Vertically center the text given $navbarHeight
+ padding: (($navbarHeight - $baseLineHeight) / 2) 20px (($navbarHeight - $baseLineHeight) / 2);
+ margin-left: -20px; // negative indent to left-align the text down the page
+ font-size: 20px;
+ font-weight: 200;
+ color: $navbarBrandColor;
+ text-shadow: 0 1px 0 $navbarBackgroundHighlight;
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ }
+}
+
+// Plain text in topbar
+// -------------------------
+.navbar-text {
+ margin-bottom: 0;
+ line-height: $navbarHeight;
+ color: $navbarText;
+}
+
+// Janky solution for now to account for links outside the .nav
+// -------------------------
+.navbar-link {
+ color: $navbarLinkColor;
+ &:hover,
+ &:focus {
+ color: $navbarLinkColorHover;
+ }
+}
+
+// Dividers in navbar
+// -------------------------
+.navbar .divider-vertical {
+ height: $navbarHeight;
+ margin: 0 9px;
+ border-left: 1px solid $navbarBackground;
+ border-right: 1px solid $navbarBackgroundHighlight;
+}
+
+// Buttons in navbar
+// -------------------------
+.navbar .btn,
+.navbar .btn-group {
+ @include navbarVerticalAlign(30px); // Vertically center in navbar
+}
+.navbar .btn-group .btn,
+.navbar .input-prepend .btn,
+.navbar .input-append .btn,
+.navbar .input-prepend .btn-group,
+.navbar .input-append .btn-group {
+ margin-top: 0; // then undo the margin here so we don't accidentally double it
+}
+
+// Navbar forms
+// -------------------------
+.navbar-form {
+ margin-bottom: 0; // remove default bottom margin
+ @include clearfix();
+ input,
+ select,
+ .radio,
+ .checkbox {
+ @include navbarVerticalAlign(30px); // Vertically center in navbar
+ }
+ input,
+ select,
+ .btn {
+ display: inline-block;
+ margin-bottom: 0;
+ }
+ input[type="image"],
+ input[type="checkbox"],
+ input[type="radio"] {
+ margin-top: 3px;
+ }
+ .input-append,
+ .input-prepend {
+ margin-top: 5px;
+ white-space: nowrap; // preven two items from separating within a .navbar-form that has .pull-left
+ input {
+ margin-top: 0; // remove the margin on top since it's on the parent
+ }
+ }
+}
+
+// Navbar search
+// -------------------------
+.navbar-search {
+ position: relative;
+ float: left;
+ @include navbarVerticalAlign(30px); // Vertically center in navbar
+ margin-bottom: 0;
+ .search-query {
+ margin-bottom: 0;
+ padding: 4px 14px;
+ @include font-sans-serif(13px, normal, 1);
+ @include border-radius(15px); // redeclare because of specificity of the type attribute
+ }
+}
+
+
+
+// Static navbar
+// -------------------------
+
+.navbar-static-top {
+ position: static;
+ margin-bottom: 0; // remove 18px margin for default navbar
+ .navbar-inner {
+ @include border-radius(0);
+ }
+}
+
+
+
+// Fixed navbar
+// -------------------------
+
+// Shared (top/bottom) styles
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: $zindexFixedNavbar;
+ margin-bottom: 0; // remove 18px margin for default navbar
+}
+.navbar-fixed-top .navbar-inner,
+.navbar-static-top .navbar-inner {
+ border-width: 0 0 1px;
+}
+.navbar-fixed-bottom .navbar-inner {
+ border-width: 1px 0 0;
+}
+.navbar-fixed-top .navbar-inner,
+.navbar-fixed-bottom .navbar-inner {
+ padding-left: 0;
+ padding-right: 0;
+ @include border-radius(0);
+}
+
+// Reset container width
+// Required here as we reset the width earlier on and the grid mixins don't override early enough
+.navbar-static-top .container,
+.navbar-fixed-top .container,
+.navbar-fixed-bottom .container {
+ @include grid-core-span($gridColumns, $gridColumnWidth, $gridGutterWidth);
+}
+
+// Fixed to top
+.navbar-fixed-top {
+ top: 0;
+}
+.navbar-fixed-top,
+.navbar-static-top {
+ .navbar-inner {
+ @include box-shadow(0 1px 10px rgba(0,0,0,.1));
+ }
+}
+
+// Fixed to bottom
+.navbar-fixed-bottom {
+ bottom: 0;
+ .navbar-inner {
+ @include box-shadow(0 -1px 10px rgba(0,0,0,.1));
+ }
+}
+
+
+
+// NAVIGATION
+// ----------
+
+.navbar .nav {
+ position: relative;
+ left: 0;
+ display: block;
+ float: left;
+ margin: 0 10px 0 0;
+}
+.navbar .nav.pull-right {
+ float: right; // redeclare due to specificity
+ margin-right: 0; // remove margin on float right nav
+}
+.navbar .nav > li {
+ float: left;
+}
+
+// Links
+.navbar .nav > li > a {
+ float: none;
+ // Vertically center the text given $navbarHeight
+ padding: (($navbarHeight - $baseLineHeight) / 2) 15px (($navbarHeight - $baseLineHeight) / 2);
+ color: $navbarLinkColor;
+ text-decoration: none;
+ text-shadow: 0 1px 0 $navbarBackgroundHighlight;
+}
+.navbar .nav .dropdown-toggle .caret {
+ margin-top: 8px;
+}
+
+// Hover/focus
+.navbar .nav > li > a:focus,
+.navbar .nav > li > a:hover {
+ background-color: $navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover/:focus from .active
+ color: $navbarLinkColorHover;
+ text-decoration: none;
+}
+
+// Active nav items
+.navbar .nav > .active > a,
+.navbar .nav > .active > a:hover,
+.navbar .nav > .active > a:focus {
+ color: $navbarLinkColorActive;
+ text-decoration: none;
+ background-color: $navbarLinkBackgroundActive;
+ @include box-shadow(inset 0 3px 8px rgba(0,0,0,.125));
+}
+
+// Navbar button for toggling navbar items in responsive layouts
+// These definitions need to come after '.navbar .btn'
+.navbar .btn-navbar {
+ display: none;
+ float: right;
+ padding: 7px 10px;
+ margin-left: 5px;
+ margin-right: 5px;
+ @include buttonBackground(darken($navbarBackgroundHighlight, 5%), darken($navbarBackground, 5%));
+ @include box-shadow(inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075));
+}
+.navbar .btn-navbar .icon-bar {
+ display: block;
+ width: 18px;
+ height: 2px;
+ background-color: #f5f5f5;
+ @include border-radius(1px);
+ @include box-shadow(0 1px 0 rgba(0,0,0,.25));
+}
+.btn-navbar .icon-bar + .icon-bar {
+ margin-top: 3px;
+}
+
+
+
+// Dropdown menus
+// --------------
+
+// Menu position and menu carets
+.navbar .nav > li > .dropdown-menu {
+ &:before {
+ content: '';
+ display: inline-block;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid #ccc;
+ border-bottom-color: $dropdownBorder;
+ position: absolute;
+ top: -7px;
+ left: 9px;
+ }
+ &:after {
+ content: '';
+ display: inline-block;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid $dropdownBackground;
+ position: absolute;
+ top: -6px;
+ left: 10px;
+ }
+}
+// Menu position and menu caret support for dropups via extra dropup class
+.navbar-fixed-bottom .nav > li > .dropdown-menu {
+ &:before {
+ border-top: 7px solid #ccc;
+ border-top-color: $dropdownBorder;
+ border-bottom: 0;
+ bottom: -7px;
+ top: auto;
+ }
+ &:after {
+ border-top: 6px solid $dropdownBackground;
+ border-bottom: 0;
+ bottom: -6px;
+ top: auto;
+ }
+}
+
+// Caret should match text color on hover/focus
+.navbar .nav li.dropdown > a:hover .caret,
+.navbar .nav li.dropdown > a:focus .caret {
+ border-top-color: $navbarLinkColorActive;
+ border-bottom-color: $navbarLinkColorActive;
+}
+
+// Remove background color from open dropdown
+.navbar .nav li.dropdown.open > .dropdown-toggle,
+.navbar .nav li.dropdown.active > .dropdown-toggle,
+.navbar .nav li.dropdown.open.active > .dropdown-toggle {
+ background-color: $navbarLinkBackgroundActive;
+ color: $navbarLinkColorActive;
+}
+.navbar .nav li.dropdown > .dropdown-toggle .caret {
+ border-top-color: $navbarLinkColor;
+ border-bottom-color: $navbarLinkColor;
+}
+.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
+.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
+.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
+ border-top-color: $navbarLinkColorActive;
+ border-bottom-color: $navbarLinkColorActive;
+}
+
+// Right aligned menus need alt position
+.navbar .pull-right > li > .dropdown-menu,
+.navbar .nav > li > .dropdown-menu.pull-right {
+ left: auto;
+ right: 0;
+ &:before {
+ left: auto;
+ right: 12px;
+ }
+ &:after {
+ left: auto;
+ right: 13px;
+ }
+ .dropdown-menu {
+ left: auto;
+ right: 100%;
+ margin-left: 0;
+ margin-right: -1px;
+ @include border-radius(6px 0 6px 6px);
+ }
+}
+
+
+// Inverted navbar
+// -------------------------
+
+.navbar-inverse {
+
+ .navbar-inner {
+ @include gradient-vertical($navbarInverseBackgroundHighlight, $navbarInverseBackground);
+ border-color: $navbarInverseBorder;
+ }
+
+ .brand,
+ .nav > li > a {
+ color: $navbarInverseLinkColor;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ &:hover,
+ &:focus {
+ color: $navbarInverseLinkColorHover;
+ }
+ }
+
+ .brand {
+ color: $navbarInverseBrandColor;
+ }
+
+ .navbar-text {
+ color: $navbarInverseText;
+ }
+
+ .nav > li > a:focus,
+ .nav > li > a:hover {
+ background-color: $navbarInverseLinkBackgroundHover;
+ color: $navbarInverseLinkColorHover;
+ }
+
+ .nav .active > a,
+ .nav .active > a:hover,
+ .nav .active > a:focus {
+ color: $navbarInverseLinkColorActive;
+ background-color: $navbarInverseLinkBackgroundActive;
+ }
+
+ // Inline text links
+ .navbar-link {
+ color: $navbarInverseLinkColor;
+ &:hover,
+ &:focus {
+ color: $navbarInverseLinkColorHover;
+ }
+ }
+
+ // Dividers in navbar
+ .divider-vertical {
+ border-left-color: $navbarInverseBackground;
+ border-right-color: $navbarInverseBackgroundHighlight;
+ }
+
+ // Dropdowns
+ .nav li.dropdown.open > .dropdown-toggle,
+ .nav li.dropdown.active > .dropdown-toggle,
+ .nav li.dropdown.open.active > .dropdown-toggle {
+ background-color: $navbarInverseLinkBackgroundActive;
+ color: $navbarInverseLinkColorActive;
+ }
+ .nav li.dropdown > a:hover .caret,
+ .nav li.dropdown > a:focus .caret {
+ border-top-color: $navbarInverseLinkColorActive;
+ color: $navbarInverseLinkColorActive;
+ }
+ .nav li.dropdown > .dropdown-toggle .caret {
+ border-top-color: $navbarInverseLinkColor;
+ border-bottom-color: $navbarInverseLinkColor;
+ }
+ .nav li.dropdown.open > .dropdown-toggle .caret,
+ .nav li.dropdown.active > .dropdown-toggle .caret,
+ .nav li.dropdown.open.active > .dropdown-toggle .caret {
+ border-top-color: $navbarInverseLinkColorActive;
+ border-bottom-color: $navbarInverseLinkColorActive;
+ }
+
+ // Navbar search
+ .navbar-search {
+ .search-query {
+ color: $white;
+ background-color: $navbarInverseSearchBackground;
+ border-color: $navbarInverseSearchBorder;
+ @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15));
+ @include transition(none);
+ @include placeholder($navbarInverseSearchPlaceholderColor);
+
+ // Focus states (we use .focused since IE7-8 and down doesn't support :focus)
+ &:focus,
+ &.focused {
+ padding: 5px 15px;
+ color: $grayDark;
+ text-shadow: 0 1px 0 $white;
+ background-color: $navbarInverseSearchBackgroundFocus;
+ border: 0;
+ @include box-shadow(0 0 3px rgba(0,0,0,.15));
+ outline: 0;
+ }
+ }
+ }
+
+ // Navbar collapse button
+ .btn-navbar {
+ @include buttonBackground(darken($navbarInverseBackgroundHighlight, 5%), darken($navbarInverseBackground, 5%));
+ }
+
+}
diff --git a/theme/scss/bootstrap-2.3.2/_navs.scss b/theme/scss/bootstrap-2.3.2/_navs.scss
new file mode 100755
index 0000000..31c4451
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_navs.scss
@@ -0,0 +1,409 @@
+//
+// Navs
+// --------------------------------------------------
+
+
+// BASE CLASS
+// ----------
+
+.nav {
+ margin-left: 0;
+ margin-bottom: $baseLineHeight;
+ list-style: none;
+}
+
+// Make links block level
+.nav > li > a {
+ display: block;
+}
+.nav > li > a:hover,
+.nav > li > a:focus {
+ text-decoration: none;
+ background-color: $grayLighter;
+}
+
+// Prevent IE8 from misplacing imgs
+// See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
+.nav > li > a > img {
+ max-width: none;
+}
+
+// Redeclare pull classes because of specifity
+.nav > .pull-right {
+ float: right;
+}
+
+// Nav headers (for dropdowns and lists)
+.nav-header {
+ display: block;
+ padding: 3px 15px;
+ font-size: 11px;
+ font-weight: bold;
+ line-height: $baseLineHeight;
+ color: $grayLight;
+ text-shadow: 0 1px 0 rgba(255,255,255,.5);
+ text-transform: uppercase;
+}
+// Space them out when they follow another list item (link)
+.nav li + .nav-header {
+ margin-top: 9px;
+}
+
+
+
+// NAV LIST
+// --------
+
+.nav-list {
+ padding-left: 15px;
+ padding-right: 15px;
+ margin-bottom: 0;
+}
+.nav-list > li > a,
+.nav-list .nav-header {
+ margin-left: -15px;
+ margin-right: -15px;
+ text-shadow: 0 1px 0 rgba(255,255,255,.5);
+}
+.nav-list > li > a {
+ padding: 3px 15px;
+}
+.nav-list > .active > a,
+.nav-list > .active > a:hover,
+.nav-list > .active > a:focus {
+ color: $white;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.2);
+ background-color: $linkColor;
+}
+.nav-list [class^="icon-"],
+.nav-list [class*=" icon-"] {
+ margin-right: 2px;
+}
+// Dividers (basically an hr) within the dropdown
+.nav-list .divider {
+ @include nav-divider();
+}
+
+
+
+// TABS AND PILLS
+// -------------
+
+// Common styles
+.nav-tabs,
+.nav-pills {
+ @include clearfix();
+}
+.nav-tabs > li,
+.nav-pills > li {
+ float: left;
+}
+.nav-tabs > li > a,
+.nav-pills > li > a {
+ padding-right: 12px;
+ padding-left: 12px;
+ margin-right: 2px;
+ line-height: 14px; // keeps the overall height an even number
+}
+
+// TABS
+// ----
+
+// Give the tabs something to sit on
+.nav-tabs {
+ border-bottom: 1px solid #ddd;
+}
+// Make the list-items overlay the bottom border
+.nav-tabs > li {
+ margin-bottom: -1px;
+}
+// Actual tabs (as links)
+.nav-tabs > li > a {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ line-height: $baseLineHeight;
+ border: 1px solid transparent;
+ @include border-radius(4px 4px 0 0);
+ &:hover,
+ &:focus {
+ border-color: $grayLighter $grayLighter #ddd;
+ }
+}
+// Active state, and it's :hover/:focus to override normal :hover/:focus
+.nav-tabs > .active > a,
+.nav-tabs > .active > a:hover,
+.nav-tabs > .active > a:focus {
+ color: $gray;
+ background-color: $bodyBackground;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+ cursor: default;
+}
+
+
+// PILLS
+// -----
+
+// Links rendered as pills
+.nav-pills > li > a {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ margin-top: 2px;
+ margin-bottom: 2px;
+ @include border-radius(5px);
+}
+
+// Active state
+.nav-pills > .active > a,
+.nav-pills > .active > a:hover,
+.nav-pills > .active > a:focus {
+ color: $white;
+ background-color: $linkColor;
+}
+
+
+
+// STACKED NAV
+// -----------
+
+// Stacked tabs and pills
+.nav-stacked > li {
+ float: none;
+}
+.nav-stacked > li > a {
+ margin-right: 0; // no need for the gap between nav items
+}
+
+// Tabs
+.nav-tabs.nav-stacked {
+ border-bottom: 0;
+}
+.nav-tabs.nav-stacked > li > a {
+ border: 1px solid #ddd;
+ @include border-radius(0);
+}
+.nav-tabs.nav-stacked > li:first-child > a {
+ @include border-top-radius(4px);
+}
+.nav-tabs.nav-stacked > li:last-child > a {
+ @include border-bottom-radius(4px);
+}
+.nav-tabs.nav-stacked > li > a:hover,
+.nav-tabs.nav-stacked > li > a:focus {
+ border-color: #ddd;
+ z-index: 2;
+}
+
+// Pills
+.nav-pills.nav-stacked > li > a {
+ margin-bottom: 3px;
+}
+.nav-pills.nav-stacked > li:last-child > a {
+ margin-bottom: 1px; // decrease margin to match sizing of stacked tabs
+}
+
+
+
+// DROPDOWNS
+// ---------
+
+.nav-tabs .dropdown-menu {
+ @include border-radius(0 0 6px 6px); // remove the top rounded corners here since there is a hard edge above the menu
+}
+.nav-pills .dropdown-menu {
+ @include border-radius(6px); // make rounded corners match the pills
+}
+
+// Default dropdown links
+// -------------------------
+// Make carets use linkColor to start
+.nav .dropdown-toggle .caret {
+ border-top-color: $linkColor;
+ border-bottom-color: $linkColor;
+ margin-top: 6px;
+}
+.nav .dropdown-toggle:hover .caret,
+.nav .dropdown-toggle:focus .caret {
+ border-top-color: $linkColorHover;
+ border-bottom-color: $linkColorHover;
+}
+/* move down carets for tabs */
+.nav-tabs .dropdown-toggle .caret {
+ margin-top: 8px;
+}
+
+// Active dropdown links
+// -------------------------
+.nav .active .dropdown-toggle .caret {
+ border-top-color: #fff;
+ border-bottom-color: #fff;
+}
+.nav-tabs .active .dropdown-toggle .caret {
+ border-top-color: $gray;
+ border-bottom-color: $gray;
+}
+
+// Active:hover/:focus dropdown links
+// -------------------------
+.nav > .dropdown.active > a:hover,
+.nav > .dropdown.active > a:focus {
+ cursor: pointer;
+}
+
+// Open dropdowns
+// -------------------------
+.nav-tabs .open .dropdown-toggle,
+.nav-pills .open .dropdown-toggle,
+.nav > li.dropdown.open.active > a:hover,
+.nav > li.dropdown.open.active > a:focus {
+ color: $white;
+ background-color: $grayLight;
+ border-color: $grayLight;
+}
+.nav li.dropdown.open .caret,
+.nav li.dropdown.open.active .caret,
+.nav li.dropdown.open a:hover .caret,
+.nav li.dropdown.open a:focus .caret {
+ border-top-color: $white;
+ border-bottom-color: $white;
+ @include opacity(100);
+}
+
+// Dropdowns in stacked tabs
+.tabs-stacked .open > a:hover,
+.tabs-stacked .open > a:focus {
+ border-color: $grayLight;
+}
+
+
+
+// TABBABLE
+// --------
+
+
+// COMMON STYLES
+// -------------
+
+// Clear any floats
+.tabbable {
+ @include clearfix();
+}
+.tab-content {
+ overflow: auto; // prevent content from running below tabs
+}
+
+// Remove border on bottom, left, right
+.tabs-below > .nav-tabs,
+.tabs-right > .nav-tabs,
+.tabs-left > .nav-tabs {
+ border-bottom: 0;
+}
+
+// Show/hide tabbable areas
+.tab-content > .tab-pane,
+.pill-content > .pill-pane {
+ display: none;
+}
+.tab-content > .active,
+.pill-content > .active {
+ display: block;
+}
+
+
+// BOTTOM
+// ------
+
+.tabs-below > .nav-tabs {
+ border-top: 1px solid #ddd;
+}
+.tabs-below > .nav-tabs > li {
+ margin-top: -1px;
+ margin-bottom: 0;
+}
+.tabs-below > .nav-tabs > li > a {
+ @include border-radius(0 0 4px 4px);
+ &:hover,
+ &:focus {
+ border-bottom-color: transparent;
+ border-top-color: #ddd;
+ }
+}
+.tabs-below > .nav-tabs > .active > a,
+.tabs-below > .nav-tabs > .active > a:hover,
+.tabs-below > .nav-tabs > .active > a:focus {
+ border-color: transparent #ddd #ddd #ddd;
+}
+
+// LEFT & RIGHT
+// ------------
+
+// Common styles
+.tabs-left > .nav-tabs > li,
+.tabs-right > .nav-tabs > li {
+ float: none;
+}
+.tabs-left > .nav-tabs > li > a,
+.tabs-right > .nav-tabs > li > a {
+ min-width: 74px;
+ margin-right: 0;
+ margin-bottom: 3px;
+}
+
+// Tabs on the left
+.tabs-left > .nav-tabs {
+ float: left;
+ margin-right: 19px;
+ border-right: 1px solid #ddd;
+}
+.tabs-left > .nav-tabs > li > a {
+ margin-right: -1px;
+ @include border-radius(4px 0 0 4px);
+}
+.tabs-left > .nav-tabs > li > a:hover,
+.tabs-left > .nav-tabs > li > a:focus {
+ border-color: $grayLighter #ddd $grayLighter $grayLighter;
+}
+.tabs-left > .nav-tabs .active > a,
+.tabs-left > .nav-tabs .active > a:hover,
+.tabs-left > .nav-tabs .active > a:focus {
+ border-color: #ddd transparent #ddd #ddd;
+ *border-right-color: $white;
+}
+
+// Tabs on the right
+.tabs-right > .nav-tabs {
+ float: right;
+ margin-left: 19px;
+ border-left: 1px solid #ddd;
+}
+.tabs-right > .nav-tabs > li > a {
+ margin-left: -1px;
+ @include border-radius(0 4px 4px 0);
+}
+.tabs-right > .nav-tabs > li > a:hover,
+.tabs-right > .nav-tabs > li > a:focus {
+ border-color: $grayLighter $grayLighter $grayLighter #ddd;
+}
+.tabs-right > .nav-tabs .active > a,
+.tabs-right > .nav-tabs .active > a:hover,
+.tabs-right > .nav-tabs .active > a:focus {
+ border-color: #ddd #ddd #ddd transparent;
+ *border-left-color: $white;
+}
+
+
+
+// DISABLED STATES
+// ---------------
+
+// Gray out text
+.nav > .disabled > a {
+ color: $grayLight;
+}
+// Nuke hover/focus effects
+.nav > .disabled > a:hover,
+.nav > .disabled > a:focus {
+ text-decoration: none;
+ background-color: transparent;
+ cursor: default;
+}
diff --git a/theme/scss/bootstrap-2.3.2/_pager.scss b/theme/scss/bootstrap-2.3.2/_pager.scss
new file mode 100755
index 0000000..46df08f
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_pager.scss
@@ -0,0 +1,43 @@
+//
+// Pager pagination
+// --------------------------------------------------
+
+
+.pager {
+ margin: $baseLineHeight 0;
+ list-style: none;
+ text-align: center;
+ @include clearfix();
+}
+.pager li {
+ display: inline;
+}
+.pager li > a,
+.pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ @include border-radius(15px);
+}
+.pager li > a:hover,
+.pager li > a:focus {
+ text-decoration: none;
+ background-color: #f5f5f5;
+}
+.pager .next > a,
+.pager .next > span {
+ float: right;
+}
+.pager .previous > a,
+.pager .previous > span {
+ float: left;
+}
+.pager .disabled > a,
+.pager .disabled > a:hover,
+.pager .disabled > a:focus,
+.pager .disabled > span {
+ color: $grayLight;
+ background-color: #fff;
+ cursor: default;
+}
diff --git a/theme/scss/bootstrap-2.3.2/_pagination.scss b/theme/scss/bootstrap-2.3.2/_pagination.scss
new file mode 100755
index 0000000..8ab33ba
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_pagination.scss
@@ -0,0 +1,123 @@
+//
+// Pagination (multiple pages)
+// --------------------------------------------------
+
+// Space out pagination from surrounding content
+.pagination {
+ margin: $baseLineHeight 0;
+}
+
+.pagination ul {
+ // Allow for text-based alignment
+ display: inline-block;
+ @include ie7-inline-block();
+ // Reset default ul styles
+ margin-left: 0;
+ margin-bottom: 0;
+ // Visuals
+ @include border-radius($baseBorderRadius);
+ @include box-shadow(0 1px 2px rgba(0,0,0,.05));
+}
+.pagination ul > li {
+ display: inline; // Remove list-style and block-level defaults
+}
+.pagination ul > li > a,
+.pagination ul > li > span {
+ float: left; // Collapse white-space
+ padding: 4px 12px;
+ line-height: $baseLineHeight;
+ text-decoration: none;
+ background-color: $paginationBackground;
+ border: 1px solid $paginationBorder;
+ border-left-width: 0;
+}
+.pagination ul > li > a:hover,
+.pagination ul > li > a:focus,
+.pagination ul > .active > a,
+.pagination ul > .active > span {
+ background-color: $paginationActiveBackground;
+}
+.pagination ul > .active > a,
+.pagination ul > .active > span {
+ color: $grayLight;
+ cursor: default;
+}
+.pagination ul > .disabled > span,
+.pagination ul > .disabled > a,
+.pagination ul > .disabled > a:hover,
+.pagination ul > .disabled > a:focus {
+ color: $grayLight;
+ background-color: transparent;
+ cursor: default;
+}
+.pagination ul > li:first-child > a,
+.pagination ul > li:first-child > span {
+ border-left-width: 1px;
+ @include border-left-radius($baseBorderRadius);
+}
+.pagination ul > li:last-child > a,
+.pagination ul > li:last-child > span {
+ @include border-right-radius($baseBorderRadius);
+}
+
+
+// Alignment
+// --------------------------------------------------
+
+.pagination-centered {
+ text-align: center;
+}
+.pagination-right {
+ text-align: right;
+}
+
+
+// Sizing
+// --------------------------------------------------
+
+// Large
+.pagination-large {
+ ul > li > a,
+ ul > li > span {
+ padding: $paddingLarge;
+ font-size: $fontSizeLarge;
+ }
+ ul > li:first-child > a,
+ ul > li:first-child > span {
+ @include border-left-radius($borderRadiusLarge);
+ }
+ ul > li:last-child > a,
+ ul > li:last-child > span {
+ @include border-right-radius($borderRadiusLarge);
+ }
+}
+
+// Small and mini
+.pagination-mini,
+.pagination-small {
+ ul > li:first-child > a,
+ ul > li:first-child > span {
+ @include border-left-radius($borderRadiusSmall);
+ }
+ ul > li:last-child > a,
+ ul > li:last-child > span {
+ @include border-right-radius($borderRadiusSmall);
+ }
+}
+
+// Small
+.pagination-small {
+ ul > li > a,
+ ul > li > span {
+ padding: $paddingSmall;
+ font-size: $fontSizeSmall;
+ }
+}
+// Mini
+.pagination-mini {
+ ul > li > a,
+ ul > li > span {
+ padding: $paddingMini;
+ font-size: $fontSizeMini;
+ }
+}
diff --git a/theme/scss/bootstrap-2.3.2/_popovers.scss b/theme/scss/bootstrap-2.3.2/_popovers.scss
new file mode 100755
index 0000000..18a1ca0
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_popovers.scss
@@ -0,0 +1,133 @@
+//
+// Popovers
+// --------------------------------------------------
+
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: $zindexPopover;
+ display: none;
+ max-width: 276px;
+ padding: 1px;
+ text-align: left; // Reset given new insertion method
+ background-color: $popoverBackground;
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0,0,0,.2);
+ @include border-radius(6px);
+ @include box-shadow(0 5px 10px rgba(0,0,0,.2));
+
+ // Overrides for proper insertion
+ white-space: normal;
+
+ // Offset the popover to account for the popover arrow
+ &.top { margin-top: -10px; }
+ &.right { margin-left: 10px; }
+ &.bottom { margin-top: 10px; }
+ &.left { margin-left: -10px; }
+}
+
+.popover-title {
+ margin: 0; // reset heading margin
+ padding: 8px 14px;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 18px;
+ background-color: $popoverTitleBackground;
+ border-bottom: 1px solid darken($popoverTitleBackground, 5%);
+ @include border-radius(5px 5px 0 0);
+
+ &:empty {
+ display: none;
+ }
+}
+
+.popover-content {
+ padding: 9px 14px;
+}
+
+// Arrows
+//
+// .arrow is outer, .arrow:after is inner
+
+.popover .arrow,
+.popover .arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.popover .arrow {
+ border-width: $popoverArrowOuterWidth;
+}
+.popover .arrow:after {
+ border-width: $popoverArrowWidth;
+ content: "";
+}
+
+.popover {
+ &.top .arrow {
+ left: 50%;
+ margin-left: -$popoverArrowOuterWidth;
+ border-bottom-width: 0;
+ border-top-color: #999; // IE8 fallback
+ border-top-color: $popoverArrowOuterColor;
+ bottom: -$popoverArrowOuterWidth;
+ &:after {
+ bottom: 1px;
+ margin-left: -$popoverArrowWidth;
+ border-bottom-width: 0;
+ border-top-color: $popoverArrowColor;
+ }
+ }
+ &.right .arrow {
+ top: 50%;
+ left: -$popoverArrowOuterWidth;
+ margin-top: -$popoverArrowOuterWidth;
+ border-left-width: 0;
+ border-right-color: #999; // IE8 fallback
+ border-right-color: $popoverArrowOuterColor;
+ &:after {
+ left: 1px;
+ bottom: -$popoverArrowWidth;
+ border-left-width: 0;
+ border-right-color: $popoverArrowColor;
+ }
+ }
+ &.bottom .arrow {
+ left: 50%;
+ margin-left: -$popoverArrowOuterWidth;
+ border-top-width: 0;
+ border-bottom-color: #999; // IE8 fallback
+ border-bottom-color: $popoverArrowOuterColor;
+ top: -$popoverArrowOuterWidth;
+ &:after {
+ top: 1px;
+ margin-left: -$popoverArrowWidth;
+ border-top-width: 0;
+ border-bottom-color: $popoverArrowColor;
+ }
+ }
+
+ &.left .arrow {
+ top: 50%;
+ right: -$popoverArrowOuterWidth;
+ margin-top: -$popoverArrowOuterWidth;
+ border-right-width: 0;
+ border-left-color: #999; // IE8 fallback
+ border-left-color: $popoverArrowOuterColor;
+ &:after {
+ right: 1px;
+ border-right-width: 0;
+ border-left-color: $popoverArrowColor;
+ bottom: -$popoverArrowWidth;
+ }
+ }
+
+}
diff --git a/theme/scss/bootstrap-2.3.2/_progress-bars.scss b/theme/scss/bootstrap-2.3.2/_progress-bars.scss
new file mode 100755
index 0000000..6d9e70b
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_progress-bars.scss
@@ -0,0 +1,122 @@
+//
+// Progress bars
+// --------------------------------------------------
+
+
+// ANIMATIONS
+// ----------
+
+// Webkit
+@-webkit-keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+// Firefox
+@-moz-keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+// IE9
+@-ms-keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+// Opera
+@-o-keyframes progress-bar-stripes {
+ from { background-position: 0 0; }
+ to { background-position: 40px 0; }
+}
+
+// Spec
+@keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+
+
+// THE BARS
+// --------
+
+// Outer container
+.progress {
+ overflow: hidden;
+ height: $baseLineHeight;
+ margin-bottom: $baseLineHeight;
+ @include gradient-vertical(#f5f5f5, #f9f9f9);
+ @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
+ @include border-radius($baseBorderRadius);
+}
+
+// Bar of progress
+.progress .bar {
+ width: 0%;
+ height: 100%;
+ color: $white;
+ float: left;
+ font-size: 12px;
+ text-align: center;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ @include gradient-vertical(#149bdf, #0480be);
+ @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
+ @include box-sizing(border-box);
+ @include transition(width .6s ease);
+}
+.progress .bar + .bar {
+ @include box-shadow(inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15));
+}
+
+// Striped bars
+.progress-striped .bar {
+ @include gradient-striped(#149bdf);
+ @include background-size(40px 40px);
+}
+
+// Call animation for the active one
+.progress.active .bar {
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
+ -moz-animation: progress-bar-stripes 2s linear infinite;
+ -ms-animation: progress-bar-stripes 2s linear infinite;
+ -o-animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite;
+}
+
+
+
+// COLORS
+// ------
+
+// Danger (red)
+.progress-danger .bar, .progress .bar-danger {
+ @include gradient-vertical(#ee5f5b, #c43c35);
+}
+.progress-danger.progress-striped .bar, .progress-striped .bar-danger {
+ @include gradient-striped(#ee5f5b);
+}
+
+// Success (green)
+.progress-success .bar, .progress .bar-success {
+ @include gradient-vertical(#62c462, #57a957);
+}
+.progress-success.progress-striped .bar, .progress-striped .bar-success {
+ @include gradient-striped(#62c462);
+}
+
+// Info (teal)
+.progress-info .bar, .progress .bar-info {
+ @include gradient-vertical(#5bc0de, #339bb9);
+}
+.progress-info.progress-striped .bar, .progress-striped .bar-info {
+ @include gradient-striped(#5bc0de);
+}
+
+// Warning (orange)
+.progress-warning .bar, .progress .bar-warning {
+ @include gradient-vertical(lighten($orange, 15%), $orange);
+}
+.progress-warning.progress-striped .bar, .progress-striped .bar-warning {
+ @include gradient-striped(lighten($orange, 15%));
+}
diff --git a/theme/scss/bootstrap-2.3.2/_reset.scss b/theme/scss/bootstrap-2.3.2/_reset.scss
new file mode 100755
index 0000000..2f0f029
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_reset.scss
@@ -0,0 +1,216 @@
+//
+// Reset CSS
+// Adapted from http://github.com/necolas/normalize.css
+// --------------------------------------------------
+
+
+// Display in IE6-9 and FF3
+// -------------------------
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+nav,
+section {
+ display: block;
+}
+
+// Display block in IE6-9 and FF3
+// -------------------------
+
+audio,
+canvas,
+video {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+}
+
+// Prevents modern browsers from displaying 'audio' without controls
+// -------------------------
+
+audio:not([controls]) {
+ display: none;
+}
+
+// Base settings
+// -------------------------
+
+html {
+ font-size: 100%;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+// Focus states
+a:focus {
+ @include tab-focus();
+}
+// Hover & Active
+a:hover,
+a:active {
+ outline: 0;
+}
+
+// Prevents sub and sup affecting line-height in all browsers
+// -------------------------
+
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+sup {
+ top: -0.5em;
+}
+sub {
+ bottom: -0.25em;
+}
+
+// Img border in a's and image quality
+// -------------------------
+
+img {
+ /* Responsive images (ensure images don't scale beyond their parents) */
+ max-width: 100%; /* Part 1: Set a maxium relative to the parent */
+ width: auto\9; /* IE7-8 need help adjusting responsive images */
+ height: auto; /* Part 2: Scale the height according to the width, otherwise you get stretching */
+
+ vertical-align: middle;
+ border: 0;
+ -ms-interpolation-mode: bicubic;
+}
+
+// Prevent max-width from affecting Google Maps
+#map_canvas img,
+.google-maps img {
+ max-width: none;
+}
+
+// Forms
+// -------------------------
+
+// Font size in all browsers, margin changes, misc consistency
+button,
+input,
+select,
+textarea {
+ margin: 0;
+ font-size: 100%;
+ vertical-align: middle;
+}
+button,
+input {
+ *overflow: visible; // Inner spacing ie IE6/7
+ line-height: normal; // FF3/4 have !important on line-height in UA stylesheet
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner { // Inner padding and border oddities in FF3/4
+ padding: 0;
+ border: 0;
+}
+button,
+html input[type="button"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls.
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS.
+ cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.
+}
+label,
+select,
+button,
+input[type="button"],
+input[type="reset"],
+input[type="submit"],
+input[type="radio"],
+input[type="checkbox"] {
+ cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.
+}
+input[type="search"] { // Appearance in Safari/Chrome
+ @include box-sizing(content-box);
+ -webkit-appearance: textfield;
+}
+input[type="search"]::-webkit-search-decoration,
+input[type="search"]::-webkit-search-cancel-button {
+ -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5
+}
+textarea {
+ overflow: auto; // Remove vertical scrollbar in IE6-9
+ vertical-align: top; // Readability and alignment cross-browser
+}
+
+
+// Printing
+// -------------------------
+// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css
+
+@media print {
+
+ * {
+ text-shadow: none !important;
+ color: #000 !important; // Black prints faster: h5bp.com/s
+ background: transparent !important;
+ box-shadow: none !important;
+ }
+
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+
+ // Don't show links for images, or javascript/internal links
+ .ir a:after,
+ a[href^="javascript:"]:after,
+ a[href^="#"]:after {
+ content: "";
+ }
+
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+
+ thead {
+ display: table-header-group; // h5bp.com/t
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ img {
+ max-width: 100% !important;
+ }
+
+ @page {
+ margin: 0.5cm;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+}
diff --git a/theme/scss/bootstrap-2.3.2/_responsive-1200px-min.scss b/theme/scss/bootstrap-2.3.2/_responsive-1200px-min.scss
new file mode 100755
index 0000000..be54ccc
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_responsive-1200px-min.scss
@@ -0,0 +1,28 @@
+//
+// Responsive: Large desktop and up
+// --------------------------------------------------
+
+
+@media (min-width: 1200px) {
+
+ // Fixed grid
+ @include grid-core($gridColumnWidth1200, $gridGutterWidth1200);
+
+ // Fluid grid
+ @include grid-fluid($fluidGridColumnWidth1200, $fluidGridGutterWidth1200);
+
+ // Input grid
+ @include grid-input($gridColumnWidth1200, $gridGutterWidth1200);
+
+ // Thumbnails
+ .thumbnails {
+ margin-left: -$gridGutterWidth1200;
+ }
+ .thumbnails > li {
+ margin-left: $gridGutterWidth1200;
+ }
+ .row-fluid .thumbnails {
+ margin-left: 0;
+ }
+
+}
diff --git a/theme/scss/bootstrap-2.3.2/_responsive-767px-max.scss b/theme/scss/bootstrap-2.3.2/_responsive-767px-max.scss
new file mode 100755
index 0000000..54bf3b7
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_responsive-767px-max.scss
@@ -0,0 +1,193 @@
+//
+// Responsive: Landscape phone to desktop/tablet
+// --------------------------------------------------
+
+
+@media (max-width: 767px) {
+
+ // Padding to set content in a bit
+ body {
+ padding-left: 20px;
+ padding-right: 20px;
+ }
+ // Negative indent the now static "fixed" navbar
+ .navbar-fixed-top,
+ .navbar-fixed-bottom,
+ .navbar-static-top {
+ margin-left: -20px;
+ margin-right: -20px;
+ }
+ // Remove padding on container given explicit padding set on body
+ .container-fluid {
+ padding: 0;
+ }
+
+ // TYPOGRAPHY
+ // ----------
+ // Reset horizontal dl
+ .dl-horizontal {
+ dt {
+ float: none;
+ clear: none;
+ width: auto;
+ text-align: left;
+ }
+ dd {
+ margin-left: 0;
+ }
+ }
+
+ // GRID & CONTAINERS
+ // -----------------
+ // Remove width from containers
+ .container {
+ width: auto;
+ }
+ // Fluid rows
+ .row-fluid {
+ width: 100%;
+ }
+ // Undo negative margin on rows and thumbnails
+ .row,
+ .thumbnails {
+ margin-left: 0;
+ }
+ .thumbnails > li {
+ float: none;
+ margin-left: 0; // Reset the default margin for all li elements when no .span* classes are present
+ }
+ // Make all grid-sized elements block level again
+ [class*="span"],
+ .uneditable-input[class*="span"], // Makes uneditable inputs full-width when using grid sizing
+ .row-fluid [class*="span"] {
+ float: none;
+ display: block;
+ width: 100%;
+ margin-left: 0;
+ @include box-sizing(border-box);
+ }
+ .span12,
+ .row-fluid .span12 {
+ width: 100%;
+ @include box-sizing(border-box);
+ }
+ .row-fluid [class*="offset"]:first-child {
+ margin-left: 0;
+ }
+
+ // FORM FIELDS
+ // -----------
+ // Make span* classes full width
+ .input-large,
+ .input-xlarge,
+ .input-xxlarge,
+ input[class*="span"],
+ select[class*="span"],
+ textarea[class*="span"],
+ .uneditable-input {
+ @include input-block-level();
+ }
+ // But don't let it screw up prepend/append inputs
+ .input-prepend input,
+ .input-append input,
+ .input-prepend input[class*="span"],
+ .input-append input[class*="span"] {
+ display: inline-block; // redeclare so they don't wrap to new lines
+ width: auto;
+ }
+ .controls-row [class*="span"] + [class*="span"] {
+ margin-left: 0;
+ }
+
+ // Modals
+ .modal {
+ position: fixed;
+ top: 20px;
+ left: 20px;
+ right: 20px;
+ width: auto;
+ margin: 0;
+ &.fade { top: -100px; }
+ &.fade.in { top: 20px; }
+ }
+
+}
+
+
+
+// UP TO LANDSCAPE PHONE
+// ---------------------
+
+@media (max-width: 480px) {
+
+ // Smooth out the collapsing/expanding nav
+ .nav-collapse {
+ -webkit-transform: translate3d(0, 0, 0); // activate the GPU
+ }
+
+ // Block level the page header small tag for readability
+ .page-header h1 small {
+ display: block;
+ line-height: $baseLineHeight;
+ }
+
+ // Update checkboxes for iOS
+ input[type="checkbox"],
+ input[type="radio"] {
+ border: 1px solid #ccc;
+ }
+
+ // Remove the horizontal form styles
+ .form-horizontal {
+ .control-label {
+ float: none;
+ width: auto;
+ padding-top: 0;
+ text-align: left;
+ }
+ // Move over all input controls and content
+ .controls {
+ margin-left: 0;
+ }
+ // Move the options list down to align with labels
+ .control-list {
+ padding-top: 0; // has to be padding because margin collaspes
+ }
+ // Move over buttons in .form-actions to align with .controls
+ .form-actions {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+ }
+
+ // Medias
+ // Reset float and spacing to stack
+ .media .pull-left,
+ .media .pull-right {
+ float: none;
+ display: block;
+ margin-bottom: 10px;
+ }
+ // Remove side margins since we stack instead of indent
+ .media-object {
+ margin-right: 0;
+ margin-left: 0;
+ }
+
+ // Modals
+ .modal {
+ top: 10px;
+ left: 10px;
+ right: 10px;
+ }
+ .modal-header .close {
+ padding: 10px;
+ margin: -10px;
+ }
+
+ // Carousel
+ .carousel-caption {
+ position: static;
+ }
+
+}
diff --git a/theme/scss/bootstrap-2.3.2/_responsive-768px-979px.scss b/theme/scss/bootstrap-2.3.2/_responsive-768px-979px.scss
new file mode 100755
index 0000000..1ae409f
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_responsive-768px-979px.scss
@@ -0,0 +1,19 @@
+//
+// Responsive: Tablet to desktop
+// --------------------------------------------------
+
+
+@media (min-width: 768px) and (max-width: 979px) {
+
+ // Fixed grid
+ @include grid-core($gridColumnWidth768, $gridGutterWidth768);
+
+ // Fluid grid
+ @include grid-fluid($fluidGridColumnWidth768, $fluidGridGutterWidth768);
+
+ // Input grid
+ @include grid-input($gridColumnWidth768, $gridGutterWidth768);
+
+ // No need to reset .thumbnails here since it's the same $gridGutterWidth
+
+}
diff --git a/theme/scss/bootstrap-2.3.2/_responsive-navbar.scss b/theme/scss/bootstrap-2.3.2/_responsive-navbar.scss
new file mode 100755
index 0000000..9898a16
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_responsive-navbar.scss
@@ -0,0 +1,189 @@
+//
+// Responsive: Navbar
+// --------------------------------------------------
+
+
+// TABLETS AND BELOW
+// -----------------
+@media (max-width: $navbarCollapseWidth) {
+
+ // UNFIX THE TOPBAR
+ // ----------------
+ // Remove any padding from the body
+ body {
+ padding-top: 0;
+ }
+ // Unfix the navbars
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ position: static;
+ }
+ .navbar-fixed-top {
+ margin-bottom: $baseLineHeight;
+ }
+ .navbar-fixed-bottom {
+ margin-top: $baseLineHeight;
+ }
+ .navbar-fixed-top .navbar-inner,
+ .navbar-fixed-bottom .navbar-inner {
+ padding: 5px;
+ }
+ .navbar .container {
+ width: auto;
+ padding: 0;
+ }
+ // Account for brand name
+ .navbar .brand {
+ padding-left: 10px;
+ padding-right: 10px;
+ margin: 0 0 0 -5px;
+ }
+
+ // COLLAPSIBLE NAVBAR
+ // ------------------
+ // Nav collapse clears brand
+ .nav-collapse {
+ clear: both;
+ }
+ // Block-level the nav
+ .nav-collapse .nav {
+ float: none;
+ margin: 0 0 ($baseLineHeight / 2);
+ }
+ .nav-collapse .nav > li {
+ float: none;
+ }
+ .nav-collapse .nav > li > a {
+ margin-bottom: 2px;
+ }
+ .nav-collapse .nav > .divider-vertical {
+ display: none;
+ }
+ .nav-collapse .nav .nav-header {
+ color: $navbarText;
+ text-shadow: none;
+ }
+ // Nav and dropdown links in navbar
+ .nav-collapse .nav > li > a,
+ .nav-collapse .dropdown-menu a {
+ padding: 9px 15px;
+ font-weight: bold;
+ color: $navbarLinkColor;
+ @include border-radius(3px);
+ }
+ // Buttons
+ .nav-collapse .btn {
+ padding: 4px 10px 4px;
+ font-weight: normal;
+ @include border-radius($baseBorderRadius);
+ }
+ .nav-collapse .dropdown-menu li + li a {
+ margin-bottom: 2px;
+ }
+ .nav-collapse .nav > li > a:hover,
+ .nav-collapse .nav > li > a:focus,
+ .nav-collapse .dropdown-menu a:hover,
+ .nav-collapse .dropdown-menu a:focus {
+ background-color: $navbarBackground;
+ }
+ .navbar-inverse .nav-collapse .nav > li > a,
+ .navbar-inverse .nav-collapse .dropdown-menu a {
+ color: $navbarInverseLinkColor;
+ }
+ .navbar-inverse .nav-collapse .nav > li > a:hover,
+ .navbar-inverse .nav-collapse .nav > li > a:focus,
+ .navbar-inverse .nav-collapse .dropdown-menu a:hover,
+ .navbar-inverse .nav-collapse .dropdown-menu a:focus {
+ background-color: $navbarInverseBackground;
+ }
+ // Buttons in the navbar
+ .nav-collapse.in .btn-group {
+ margin-top: 5px;
+ padding: 0;
+ }
+ // Dropdowns in the navbar
+ .nav-collapse .dropdown-menu {
+ position: static;
+ top: auto;
+ left: auto;
+ float: none;
+ display: none;
+ max-width: none;
+ margin: 0 15px;
+ padding: 0;
+ background-color: transparent;
+ border: none;
+ @include border-radius(0);
+ @include box-shadow(none);
+ }
+ .nav-collapse .open > .dropdown-menu {
+ display: block;
+ }
+
+ .nav-collapse .dropdown-menu:before,
+ .nav-collapse .dropdown-menu:after {
+ display: none;
+ }
+ .nav-collapse .dropdown-menu .divider {
+ display: none;
+ }
+ .nav-collapse .nav > li > .dropdown-menu {
+ &:before,
+ &:after {
+ display: none;
+ }
+ }
+ // Forms in navbar
+ .nav-collapse .navbar-form,
+ .nav-collapse .navbar-search {
+ float: none;
+ padding: ($baseLineHeight / 2) 15px;
+ margin: ($baseLineHeight / 2) 0;
+ border-top: 1px solid $navbarBackground;
+ border-bottom: 1px solid $navbarBackground;
+ @include box-shadow(inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1));
+ }
+ .navbar-inverse .nav-collapse .navbar-form,
+ .navbar-inverse .nav-collapse .navbar-search {
+ border-top-color: $navbarInverseBackground;
+ border-bottom-color: $navbarInverseBackground;
+ }
+ // Pull right (secondary) nav content
+ .navbar .nav-collapse .nav.pull-right {
+ float: none;
+ margin-left: 0;
+ }
+ // Hide everything in the navbar save .brand and toggle button */
+ .nav-collapse,
+ .nav-collapse.collapse {
+ overflow: hidden;
+ height: 0;
+ }
+ // Navbar button
+ .navbar .btn-navbar {
+ display: block;
+ }
+
+ // STATIC NAVBAR
+ // -------------
+ .navbar-static .navbar-inner {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
+
+}
+
+
+// DEFAULT DESKTOP
+// ---------------
+
+@media (min-width: $navbarCollapseDesktopWidth) {
+
+ // Required to make the collapsing navbar work on regular desktops
+ .nav-collapse.collapse {
+ height: auto !important;
+ overflow: visible !important;
+ }
+
+}
diff --git a/theme/scss/bootstrap-2.3.2/_responsive-utilities.scss b/theme/scss/bootstrap-2.3.2/_responsive-utilities.scss
new file mode 100755
index 0000000..689b265
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_responsive-utilities.scss
@@ -0,0 +1,74 @@
+//
+// Responsive: Utility classes
+// --------------------------------------------------
+
+
+// IE10 Metro responsive
+// Required for Windows 8 Metro split-screen snapping with IE10
+// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
+@-ms-viewport{
+ width: device-width;
+}
+
+// Hide from screenreaders and browsers
+// Credit: HTML5 Boilerplate
+.hidden {
+ display: none;
+ visibility: hidden;
+}
+
+// Visibility utilities
+
+// For desktops
+.visible-phone { display: none !important; }
+.visible-tablet { display: none !important; }
+.hidden-phone { }
+.hidden-tablet { }
+.hidden-desktop { display: none !important; }
+.visible-desktop { display: inherit !important; }
+
+// Tablets & small desktops only
+@media (min-width: 768px) and (max-width: 979px) {
+ // Hide everything else
+ .hidden-desktop { display: inherit !important; }
+ .visible-desktop { display: none !important ; }
+ // Show
+ .visible-tablet { display: inherit !important; }
+ // Hide
+ .hidden-tablet { display: none !important; }
+}
+
+// Phones only
+@media (max-width: 767px) {
+ // Hide everything else
+ .hidden-desktop { display: inherit !important; }
+ .visible-desktop { display: none !important; }
+ // Show
+ .visible-phone { display: inherit !important; } // Use inherit to restore previous behavior
+ // Hide
+ .hidden-phone { display: none !important; }
+}
+
+// Print utilities
+.visible-print { display: none !important; }
+.hidden-print { }
+
+@media print {
+ .visible-print { display: inherit !important; }
+ .hidden-print { display: none !important; }
+}
+
+// Clearing floats
+.clearfix {
+ @include clearfix();
+}
+
+// Accessible yet invisible text
+.hide-text {
+ @include hide-text();
+}
+
+// Uses box-sizing mixin, so must be defined here
+.input-block-level {
+ @include input-block-level();
+}
diff --git a/theme/scss/bootstrap-2.3.2/_scaffolding.scss b/theme/scss/bootstrap-2.3.2/_scaffolding.scss
new file mode 100755
index 0000000..23d4a00
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_scaffolding.scss
@@ -0,0 +1,53 @@
+//
+// Scaffolding
+// --------------------------------------------------
+
+
+// Body reset
+// -------------------------
+
+body {
+ margin: 0;
+ font-family: $baseFontFamily;
+ font-size: $baseFontSize;
+ line-height: $baseLineHeight;
+ color: $textColor;
+ background-color: $bodyBackground;
+}
+
+
+// Links
+// -------------------------
+
+a {
+ color: $linkColor;
+ text-decoration: none;
+}
+a:hover,
+a:focus {
+ color: $linkColorHover;
+ text-decoration: underline;
+}
+
+
+// Images
+// -------------------------
+
+// Rounded corners
+.img-rounded {
+ @include border-radius(6px);
+}
+
+// Add polaroid-esque trim
+.img-polaroid {
+ padding: 4px;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0,0,0,.2);
+ @include box-shadow(0 1px 3px rgba(0,0,0,.1));
+}
+
+// Perfect circle
+.img-circle {
+ @include border-radius(500px); // crank the border-radius so it works with most reasonably sized images
+}
diff --git a/theme/scss/bootstrap-2.3.2/_sprites.scss b/theme/scss/bootstrap-2.3.2/_sprites.scss
new file mode 100755
index 0000000..a64472d
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_sprites.scss
@@ -0,0 +1,197 @@
+//
+// Sprites
+// --------------------------------------------------
+
+
+// ICONS
+// -----
+
+// All icons receive the styles of the tag with a base class
+// of .i and are then given a unique class to add width, height,
+// and background-position. Your resulting HTML will look like
+// .
+
+// For the white version of the icons, just add the .icon-white class:
+//
+
+[class^="icon-"],
+[class*=" icon-"] {
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ @include ie7-restore-right-whitespace();
+ line-height: 14px;
+ vertical-align: text-top;
+ background-image: url($iconSpritePath);
+ background-position: 14px 14px;
+ background-repeat: no-repeat;
+ margin-top: 1px;
+}
+
+/* White icons with optional class, or on hover/focus/active states of certain elements */
+.icon-white,
+.nav-pills > .active > a > [class^="icon-"],
+.nav-pills > .active > a > [class*=" icon-"],
+.nav-list > .active > a > [class^="icon-"],
+.nav-list > .active > a > [class*=" icon-"],
+.navbar-inverse .nav > .active > a > [class^="icon-"],
+.navbar-inverse .nav > .active > a > [class*=" icon-"],
+.dropdown-menu > li > a:hover > [class^="icon-"],
+.dropdown-menu > li > a:focus > [class^="icon-"],
+.dropdown-menu > li > a:hover > [class*=" icon-"],
+.dropdown-menu > li > a:focus > [class*=" icon-"],
+.dropdown-menu > .active > a > [class^="icon-"],
+.dropdown-menu > .active > a > [class*=" icon-"],
+.dropdown-submenu:hover > a > [class^="icon-"],
+.dropdown-submenu:focus > a > [class^="icon-"],
+.dropdown-submenu:hover > a > [class*=" icon-"],
+.dropdown-submenu:focus > a > [class*=" icon-"] {
+ background-image: url($iconWhiteSpritePath);
+}
+
+.icon-glass { background-position: 0 0; }
+.icon-music { background-position: -24px 0; }
+.icon-search { background-position: -48px 0; }
+.icon-envelope { background-position: -72px 0; }
+.icon-heart { background-position: -96px 0; }
+.icon-star { background-position: -120px 0; }
+.icon-star-empty { background-position: -144px 0; }
+.icon-user { background-position: -168px 0; }
+.icon-film { background-position: -192px 0; }
+.icon-th-large { background-position: -216px 0; }
+.icon-th { background-position: -240px 0; }
+.icon-th-list { background-position: -264px 0; }
+.icon-ok { background-position: -288px 0; }
+.icon-remove { background-position: -312px 0; }
+.icon-zoom-in { background-position: -336px 0; }
+.icon-zoom-out { background-position: -360px 0; }
+.icon-off { background-position: -384px 0; }
+.icon-signal { background-position: -408px 0; }
+.icon-cog { background-position: -432px 0; }
+.icon-trash { background-position: -456px 0; }
+
+.icon-home { background-position: 0 -24px; }
+.icon-file { background-position: -24px -24px; }
+.icon-time { background-position: -48px -24px; }
+.icon-road { background-position: -72px -24px; }
+.icon-download-alt { background-position: -96px -24px; }
+.icon-download { background-position: -120px -24px; }
+.icon-upload { background-position: -144px -24px; }
+.icon-inbox { background-position: -168px -24px; }
+.icon-play-circle { background-position: -192px -24px; }
+.icon-repeat { background-position: -216px -24px; }
+.icon-refresh { background-position: -240px -24px; }
+.icon-list-alt { background-position: -264px -24px; }
+.icon-lock { background-position: -287px -24px; } // 1px off
+.icon-flag { background-position: -312px -24px; }
+.icon-headphones { background-position: -336px -24px; }
+.icon-volume-off { background-position: -360px -24px; }
+.icon-volume-down { background-position: -384px -24px; }
+.icon-volume-up { background-position: -408px -24px; }
+.icon-qrcode { background-position: -432px -24px; }
+.icon-barcode { background-position: -456px -24px; }
+
+.icon-tag { background-position: 0 -48px; }
+.icon-tags { background-position: -25px -48px; } // 1px off
+.icon-book { background-position: -48px -48px; }
+.icon-bookmark { background-position: -72px -48px; }
+.icon-print { background-position: -96px -48px; }
+.icon-camera { background-position: -120px -48px; }
+.icon-font { background-position: -144px -48px; }
+.icon-bold { background-position: -167px -48px; } // 1px off
+.icon-italic { background-position: -192px -48px; }
+.icon-text-height { background-position: -216px -48px; }
+.icon-text-width { background-position: -240px -48px; }
+.icon-align-left { background-position: -264px -48px; }
+.icon-align-center { background-position: -288px -48px; }
+.icon-align-right { background-position: -312px -48px; }
+.icon-align-justify { background-position: -336px -48px; }
+.icon-list { background-position: -360px -48px; }
+.icon-indent-left { background-position: -384px -48px; }
+.icon-indent-right { background-position: -408px -48px; }
+.icon-facetime-video { background-position: -432px -48px; }
+.icon-picture { background-position: -456px -48px; }
+
+.icon-pencil { background-position: 0 -72px; }
+.icon-map-marker { background-position: -24px -72px; }
+.icon-adjust { background-position: -48px -72px; }
+.icon-tint { background-position: -72px -72px; }
+.icon-edit { background-position: -96px -72px; }
+.icon-share { background-position: -120px -72px; }
+.icon-check { background-position: -144px -72px; }
+.icon-move { background-position: -168px -72px; }
+.icon-step-backward { background-position: -192px -72px; }
+.icon-fast-backward { background-position: -216px -72px; }
+.icon-backward { background-position: -240px -72px; }
+.icon-play { background-position: -264px -72px; }
+.icon-pause { background-position: -288px -72px; }
+.icon-stop { background-position: -312px -72px; }
+.icon-forward { background-position: -336px -72px; }
+.icon-fast-forward { background-position: -360px -72px; }
+.icon-step-forward { background-position: -384px -72px; }
+.icon-eject { background-position: -408px -72px; }
+.icon-chevron-left { background-position: -432px -72px; }
+.icon-chevron-right { background-position: -456px -72px; }
+
+.icon-plus-sign { background-position: 0 -96px; }
+.icon-minus-sign { background-position: -24px -96px; }
+.icon-remove-sign { background-position: -48px -96px; }
+.icon-ok-sign { background-position: -72px -96px; }
+.icon-question-sign { background-position: -96px -96px; }
+.icon-info-sign { background-position: -120px -96px; }
+.icon-screenshot { background-position: -144px -96px; }
+.icon-remove-circle { background-position: -168px -96px; }
+.icon-ok-circle { background-position: -192px -96px; }
+.icon-ban-circle { background-position: -216px -96px; }
+.icon-arrow-left { background-position: -240px -96px; }
+.icon-arrow-right { background-position: -264px -96px; }
+.icon-arrow-up { background-position: -289px -96px; } // 1px off
+.icon-arrow-down { background-position: -312px -96px; }
+.icon-share-alt { background-position: -336px -96px; }
+.icon-resize-full { background-position: -360px -96px; }
+.icon-resize-small { background-position: -384px -96px; }
+.icon-plus { background-position: -408px -96px; }
+.icon-minus { background-position: -433px -96px; }
+.icon-asterisk { background-position: -456px -96px; }
+
+.icon-exclamation-sign { background-position: 0 -120px; }
+.icon-gift { background-position: -24px -120px; }
+.icon-leaf { background-position: -48px -120px; }
+.icon-fire { background-position: -72px -120px; }
+.icon-eye-open { background-position: -96px -120px; }
+.icon-eye-close { background-position: -120px -120px; }
+.icon-warning-sign { background-position: -144px -120px; }
+.icon-plane { background-position: -168px -120px; }
+.icon-calendar { background-position: -192px -120px; }
+.icon-random { background-position: -216px -120px; width: 16px; }
+.icon-comment { background-position: -240px -120px; }
+.icon-magnet { background-position: -264px -120px; }
+.icon-chevron-up { background-position: -288px -120px; }
+.icon-chevron-down { background-position: -313px -119px; } // 1px, 1px off
+.icon-retweet { background-position: -336px -120px; }
+.icon-shopping-cart { background-position: -360px -120px; }
+.icon-folder-close { background-position: -384px -120px; width: 16px; }
+.icon-folder-open { background-position: -408px -120px; width: 16px; }
+.icon-resize-vertical { background-position: -432px -119px; } // 1px, 1px off
+.icon-resize-horizontal { background-position: -456px -118px; } // 1px, 2px off
+
+.icon-hdd { background-position: 0 -144px; }
+.icon-bullhorn { background-position: -24px -144px; }
+.icon-bell { background-position: -48px -144px; }
+.icon-certificate { background-position: -72px -144px; }
+.icon-thumbs-up { background-position: -96px -144px; }
+.icon-thumbs-down { background-position: -120px -144px; }
+.icon-hand-right { background-position: -144px -144px; }
+.icon-hand-left { background-position: -168px -144px; }
+.icon-hand-up { background-position: -192px -144px; }
+.icon-hand-down { background-position: -216px -144px; }
+.icon-circle-arrow-right { background-position: -240px -144px; }
+.icon-circle-arrow-left { background-position: -264px -144px; }
+.icon-circle-arrow-up { background-position: -288px -144px; }
+.icon-circle-arrow-down { background-position: -312px -144px; }
+.icon-globe { background-position: -336px -144px; }
+.icon-wrench { background-position: -360px -144px; }
+.icon-tasks { background-position: -384px -144px; }
+.icon-filter { background-position: -408px -144px; }
+.icon-briefcase { background-position: -432px -144px; }
+.icon-fullscreen { background-position: -456px -144px; }
diff --git a/theme/scss/bootstrap-2.3.2/_tables.scss b/theme/scss/bootstrap-2.3.2/_tables.scss
new file mode 100755
index 0000000..3db661e
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_tables.scss
@@ -0,0 +1,235 @@
+//
+// Tables
+// --------------------------------------------------
+
+
+// BASE TABLES
+// -----------------
+
+table {
+ max-width: 100%;
+ background-color: $tableBackground;
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+// BASELINE STYLES
+// ---------------
+
+.table {
+ width: 100%;
+ margin-bottom: $baseLineHeight;
+ // Cells
+ th,
+ td {
+ padding: 8px;
+ line-height: $baseLineHeight;
+ text-align: left;
+ vertical-align: top;
+ border-top: 1px solid $tableBorder;
+ }
+ th {
+ font-weight: bold;
+ }
+ // Bottom align for column headings
+ thead th {
+ vertical-align: bottom;
+ }
+ // Remove top border from thead by default
+ caption + thead tr:first-child th,
+ caption + thead tr:first-child td,
+ colgroup + thead tr:first-child th,
+ colgroup + thead tr:first-child td,
+ thead:first-child tr:first-child th,
+ thead:first-child tr:first-child td {
+ border-top: 0;
+ }
+ // Account for multiple tbody instances
+ tbody + tbody {
+ border-top: 2px solid $tableBorder;
+ }
+
+ // Nesting
+ .table {
+ background-color: $bodyBackground;
+ }
+}
+
+
+
+// CONDENSED TABLE W/ HALF PADDING
+// -------------------------------
+
+.table-condensed {
+ th,
+ td {
+ padding: 4px 5px;
+ }
+}
+
+
+// BORDERED VERSION
+// ----------------
+
+.table-bordered {
+ border: 1px solid $tableBorder;
+ border-collapse: separate; // Done so we can round those corners!
+ *border-collapse: collapse; // IE7 can't round corners anyway
+ border-left: 0;
+ @include border-radius($baseBorderRadius);
+ th,
+ td {
+ border-left: 1px solid $tableBorder;
+ }
+ // Prevent a double border
+ caption + thead tr:first-child th,
+ caption + tbody tr:first-child th,
+ caption + tbody tr:first-child td,
+ colgroup + thead tr:first-child th,
+ colgroup + tbody tr:first-child th,
+ colgroup + tbody tr:first-child td,
+ thead:first-child tr:first-child th,
+ tbody:first-child tr:first-child th,
+ tbody:first-child tr:first-child td {
+ border-top: 0;
+ }
+ // For first th/td in the first row in the first thead or tbody
+ thead:first-child tr:first-child > th:first-child,
+ tbody:first-child tr:first-child > td:first-child,
+ tbody:first-child tr:first-child > th:first-child {
+ @include border-top-left-radius($baseBorderRadius);
+ }
+ // For last th/td in the first row in the first thead or tbody
+ thead:first-child tr:first-child > th:last-child,
+ tbody:first-child tr:first-child > td:last-child,
+ tbody:first-child tr:first-child > th:last-child {
+ @include border-top-right-radius($baseBorderRadius);
+ }
+ // For first th/td (can be either) in the last row in the last thead, tbody, and tfoot
+ thead:last-child tr:last-child > th:first-child,
+ tbody:last-child tr:last-child > td:first-child,
+ tbody:last-child tr:last-child > th:first-child,
+ tfoot:last-child tr:last-child > td:first-child,
+ tfoot:last-child tr:last-child > th:first-child {
+ @include border-bottom-left-radius($baseBorderRadius);
+ }
+ // For last th/td (can be either) in the last row in the last thead, tbody, and tfoot
+ thead:last-child tr:last-child > th:last-child,
+ tbody:last-child tr:last-child > td:last-child,
+ tbody:last-child tr:last-child > th:last-child,
+ tfoot:last-child tr:last-child > td:last-child,
+ tfoot:last-child tr:last-child > th:last-child {
+ @include border-bottom-right-radius($baseBorderRadius);
+ }
+
+ // Clear border-radius for first and last td in the last row in the last tbody for table with tfoot
+ tfoot + tbody:last-child tr:last-child td:first-child {
+ @include border-bottom-left-radius(0);
+ }
+ tfoot + tbody:last-child tr:last-child td:last-child {
+ @include border-bottom-right-radius(0);
+ }
+
+ // Special fixes to round the left border on the first td/th
+ caption + thead tr:first-child th:first-child,
+ caption + tbody tr:first-child td:first-child,
+ colgroup + thead tr:first-child th:first-child,
+ colgroup + tbody tr:first-child td:first-child {
+ @include border-top-left-radius($baseBorderRadius);
+ }
+ caption + thead tr:first-child th:last-child,
+ caption + tbody tr:first-child td:last-child,
+ colgroup + thead tr:first-child th:last-child,
+ colgroup + tbody tr:first-child td:last-child {
+ @include border-top-right-radius($baseBorderRadius);
+ }
+
+}
+
+
+
+
+// ZEBRA-STRIPING
+// --------------
+
+// Default zebra-stripe styles (alternating gray and transparent backgrounds)
+.table-striped {
+ tbody {
+ > tr:nth-child(odd) > td,
+ > tr:nth-child(odd) > th {
+ background-color: $tableBackgroundAccent;
+ }
+ }
+}
+
+
+// HOVER EFFECT
+// ------------
+// Placed here since it has to come after the potential zebra striping
+.table-hover {
+ tbody {
+ tr:hover > td,
+ tr:hover > th {
+ background-color: $tableBackgroundHover;
+ }
+ }
+}
+
+
+// TABLE CELL SIZING
+// -----------------
+
+// Reset default grid behavior
+table td[class*="span"],
+table th[class*="span"],
+.row-fluid table td[class*="span"],
+.row-fluid table th[class*="span"] {
+ display: table-cell;
+ float: none; // undo default grid column styles
+ margin-left: 0; // undo default grid column styles
+}
+
+// Change the column widths to account for td/th padding
+.table td,
+.table th {
+ @for $i from 1 through 12 {
+ &.span#{$i} { @include tableColumns($i); }
+ }
+}
+
+
+
+// TABLE BACKGROUNDS
+// -----------------
+// Exact selectors below required to override .table-striped
+
+.table tbody tr {
+ &.success > td {
+ background-color: $successBackground;
+ }
+ &.error > td {
+ background-color: $errorBackground;
+ }
+ &.warning > td {
+ background-color: $warningBackground;
+ }
+ &.info > td {
+ background-color: $infoBackground;
+ }
+}
+
+// Hover states for .table-hover
+.table-hover tbody tr {
+ &.success:hover > td {
+ background-color: darken($successBackground, 5%);
+ }
+ &.error:hover > td {
+ background-color: darken($errorBackground, 5%);
+ }
+ &.warning:hover > td {
+ background-color: darken($warningBackground, 5%);
+ }
+ &.info:hover > td {
+ background-color: darken($infoBackground, 5%);
+ }
+}
diff --git a/theme/scss/bootstrap-2.3.2/_thumbnails.scss b/theme/scss/bootstrap-2.3.2/_thumbnails.scss
new file mode 100755
index 0000000..6333d53
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_thumbnails.scss
@@ -0,0 +1,53 @@
+//
+// Thumbnails
+// --------------------------------------------------
+
+
+// Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files
+
+// Make wrapper ul behave like the grid
+.thumbnails {
+ margin-left: -$gridGutterWidth;
+ list-style: none;
+ @include clearfix();
+}
+// Fluid rows have no left margin
+.row-fluid .thumbnails {
+ margin-left: 0;
+}
+
+// Float li to make thumbnails appear in a row
+.thumbnails > li {
+ float: left; // Explicity set the float since we don't require .span* classes
+ margin-bottom: $baseLineHeight;
+ margin-left: $gridGutterWidth;
+}
+
+// The actual thumbnail (can be `a` or `div`)
+.thumbnail {
+ display: block;
+ padding: 4px;
+ line-height: $baseLineHeight;
+ border: 1px solid #ddd;
+ @include border-radius($baseBorderRadius);
+ @include box-shadow(0 1px 3px rgba(0,0,0,.055));
+ @include transition(all .2s ease-in-out);
+}
+// Add a hover/focus state for linked versions only
+a.thumbnail:hover,
+a.thumbnail:focus {
+ border-color: $linkColor;
+ @include box-shadow(0 1px 4px rgba(0,105,214,.25));
+}
+
+// Images and captions
+.thumbnail > img {
+ display: block;
+ max-width: 100%;
+ margin-left: auto;
+ margin-right: auto;
+}
+.thumbnail .caption {
+ padding: 9px;
+ color: $gray;
+}
diff --git a/theme/scss/bootstrap-2.3.2/_tooltip.scss b/theme/scss/bootstrap-2.3.2/_tooltip.scss
new file mode 100755
index 0000000..af2d64c
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_tooltip.scss
@@ -0,0 +1,70 @@
+//
+// Tooltips
+// --------------------------------------------------
+
+
+// Base class
+.tooltip {
+ position: absolute;
+ z-index: $zindexTooltip;
+ display: block;
+ visibility: visible;
+ font-size: 11px;
+ line-height: 1.4;
+ @include opacity(0);
+ &.in { @include opacity(80); }
+ &.top { margin-top: -3px; padding: 5px 0; }
+ &.right { margin-left: 3px; padding: 0 5px; }
+ &.bottom { margin-top: 3px; padding: 5px 0; }
+ &.left { margin-left: -3px; padding: 0 5px; }
+}
+
+// Wrapper for the tooltip content
+.tooltip-inner {
+ max-width: 200px;
+ padding: 8px;
+ color: $tooltipColor;
+ text-align: center;
+ text-decoration: none;
+ background-color: $tooltipBackground;
+ @include border-radius($baseBorderRadius);
+}
+
+// Arrows
+.tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.tooltip {
+ &.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -$tooltipArrowWidth;
+ border-width: $tooltipArrowWidth $tooltipArrowWidth 0;
+ border-top-color: $tooltipArrowColor;
+ }
+ &.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -$tooltipArrowWidth;
+ border-width: $tooltipArrowWidth $tooltipArrowWidth $tooltipArrowWidth 0;
+ border-right-color: $tooltipArrowColor;
+ }
+ &.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -$tooltipArrowWidth;
+ border-width: $tooltipArrowWidth 0 $tooltipArrowWidth $tooltipArrowWidth;
+ border-left-color: $tooltipArrowColor;
+ }
+ &.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -$tooltipArrowWidth;
+ border-width: 0 $tooltipArrowWidth $tooltipArrowWidth;
+ border-bottom-color: $tooltipArrowColor;
+ }
+}
diff --git a/theme/scss/bootstrap-2.3.2/_type.scss b/theme/scss/bootstrap-2.3.2/_type.scss
new file mode 100755
index 0000000..f68e7ba
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_type.scss
@@ -0,0 +1,247 @@
+//
+// Typography
+// --------------------------------------------------
+
+
+// Body text
+// -------------------------
+
+p {
+ margin: 0 0 $baseLineHeight / 2;
+}
+.lead {
+ margin-bottom: $baseLineHeight;
+ font-size: $baseFontSize * 1.5;
+ font-weight: 200;
+ line-height: $baseLineHeight * 1.5;
+}
+
+
+// Emphasis & misc
+// -------------------------
+
+// Ex: 14px base font * 85% = about 12px
+small { font-size: 85%; }
+
+strong { font-weight: bold; }
+em { font-style: italic; }
+cite { font-style: normal; }
+
+// Utility classes
+.muted { color: $grayLight; }
+a.muted:hover,
+a.muted:focus { color: darken($grayLight, 10%); }
+
+.text-warning { color: $warningText; }
+a.text-warning:hover,
+a.text-warning:focus { color: darken($warningText, 10%); }
+
+.text-error { color: $errorText; }
+a.text-error:hover,
+a.text-error:focus { color: darken($errorText, 10%); }
+
+.text-info { color: $infoText; }
+a.text-info:hover,
+a.text-info:focus { color: darken($infoText, 10%); }
+
+.text-success { color: $successText; }
+a.text-success:hover,
+a.text-success:focus { color: darken($successText, 10%); }
+
+.text-left { text-align: left; }
+.text-right { text-align: right; }
+.text-center { text-align: center; }
+
+
+// Headings
+// -------------------------
+
+h1, h2, h3, h4, h5, h6 {
+ margin: ($baseLineHeight / 2) 0;
+ font-family: $headingsFontFamily;
+ font-weight: $headingsFontWeight;
+ line-height: $baseLineHeight;
+ color: $headingsColor;
+ text-rendering: optimizelegibility; // Fix the character spacing for headings
+ small {
+ font-weight: normal;
+ line-height: 1;
+ color: $grayLight;
+ }
+}
+
+h1,
+h2,
+h3 { line-height: $baseLineHeight * 2; }
+
+h1 { font-size: $baseFontSize * 2.75; } // ~38px
+h2 { font-size: $baseFontSize * 2.25; } // ~32px
+h3 { font-size: $baseFontSize * 1.75; } // ~24px
+h4 { font-size: $baseFontSize * 1.25; } // ~18px
+h5 { font-size: $baseFontSize; }
+h6 { font-size: $baseFontSize * 0.85; } // ~12px
+
+h1 small { font-size: $baseFontSize * 1.75; } // ~24px
+h2 small { font-size: $baseFontSize * 1.25; } // ~18px
+h3 small { font-size: $baseFontSize; }
+h4 small { font-size: $baseFontSize; }
+
+
+// Page header
+// -------------------------
+
+.page-header {
+ padding-bottom: ($baseLineHeight / 2) - 1;
+ margin: $baseLineHeight 0 ($baseLineHeight * 1.5);
+ border-bottom: 1px solid $grayLighter;
+}
+
+
+
+// Lists
+// --------------------------------------------------
+
+// Unordered and Ordered lists
+ul, ol {
+ padding: 0;
+ margin: 0 0 $baseLineHeight / 2 25px;
+}
+ul ul,
+ul ol,
+ol ol,
+ol ul {
+ margin-bottom: 0;
+}
+li {
+ line-height: $baseLineHeight;
+}
+
+// Remove default list styles
+ul.unstyled,
+ol.unstyled {
+ margin-left: 0;
+ list-style: none;
+}
+
+// Single-line list items
+ul.inline,
+ol.inline {
+ margin-left: 0;
+ list-style: none;
+ > li {
+ display: inline-block;
+ @include ie7-inline-block();
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+}
+
+// Description Lists
+dl {
+ margin-bottom: $baseLineHeight;
+}
+dt,
+dd {
+ line-height: $baseLineHeight;
+}
+dt {
+ font-weight: bold;
+}
+dd {
+ margin-left: $baseLineHeight / 2;
+}
+// Horizontal layout (like forms)
+.dl-horizontal {
+ @include clearfix(); // Ensure dl clears floats if empty dd elements present
+ dt {
+ float: left;
+ width: $horizontalComponentOffset - 20;
+ clear: left;
+ text-align: right;
+ @include text-overflow();
+ }
+ dd {
+ margin-left: $horizontalComponentOffset;
+ }
+}
+
+// MISC
+// ----
+
+// Horizontal rules
+hr {
+ margin: $baseLineHeight 0;
+ border: 0;
+ border-top: 1px solid $hrBorder;
+ border-bottom: 1px solid $white;
+}
+
+// Abbreviations and acronyms
+abbr[title],
+// Added data-* attribute to help out our tooltip plugin, per https://github.com/twitter/bootstrap/issues/5257
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted $grayLight;
+}
+abbr.initialism {
+ font-size: 90%;
+ text-transform: uppercase;
+}
+
+// Blockquotes
+blockquote {
+ padding: 0 0 0 15px;
+ margin: 0 0 $baseLineHeight;
+ border-left: 5px solid $grayLighter;
+ p {
+ margin-bottom: 0;
+ font-size: $baseFontSize * 1.25;
+ font-weight: 300;
+ line-height: 1.25;
+ }
+ small {
+ display: block;
+ line-height: $baseLineHeight;
+ color: $grayLight;
+ &:before {
+ content: '\2014 \00A0';
+ }
+ }
+
+ // Float right with text-align: right
+ &.pull-right {
+ float: right;
+ padding-right: 15px;
+ padding-left: 0;
+ border-right: 5px solid $grayLighter;
+ border-left: 0;
+ p,
+ small {
+ text-align: right;
+ }
+ small {
+ &:before {
+ content: '';
+ }
+ &:after {
+ content: '\00A0 \2014';
+ }
+ }
+ }
+}
+
+// Quotes
+q:before,
+q:after,
+blockquote:before,
+blockquote:after {
+ content: "";
+}
+
+// Addresses
+address {
+ display: block;
+ margin-bottom: $baseLineHeight;
+ font-style: normal;
+ line-height: $baseLineHeight;
+}
diff --git a/theme/scss/bootstrap-2.3.2/_utilities.scss b/theme/scss/bootstrap-2.3.2/_utilities.scss
new file mode 100755
index 0000000..1dec18b
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_utilities.scss
@@ -0,0 +1,45 @@
+//
+// Utility classes
+// --------------------------------------------------
+
+
+// Quick floats
+.pull-right {
+ float: right;
+}
+.pull-left {
+ float: left;
+}
+
+// Toggling content
+.hide {
+ display: none;
+}
+.show {
+ display: block;
+}
+
+// Visibility
+.invisible {
+ visibility: hidden;
+}
+
+// For Affix plugin
+.affix {
+ position: fixed;
+}
+
+// Clearing floats
+.clearfix {
+ @include clearfix();
+}
+
+// Accessible yet invisible text
+.hide-text {
+ @include hide-text();
+}
+
+// Uses box-sizing mixin, so must be defined here
+.input-block-level {
+ @include input-block-level();
+}
diff --git a/theme/scss/bootstrap-2.3.2/_variables.scss b/theme/scss/bootstrap-2.3.2/_variables.scss
new file mode 100755
index 0000000..e375202
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_variables.scss
@@ -0,0 +1,301 @@
+//
+// Variables
+// --------------------------------------------------
+
+
+// Global values
+// --------------------------------------------------
+
+
+// Grays
+// -------------------------
+$black: #000 !default;
+$grayDarker: #222 !default;
+$grayDark: #333 !default;
+$gray: #555 !default;
+$grayLight: #999 !default;
+$grayLighter: #eee !default;
+$white: #fff !default;
+
+
+// Accent colors
+// -------------------------
+$blue: #049cdb !default;
+$blueDark: #0064cd !default;
+$green: #46a546 !default;
+$red: #9d261d !default;
+$yellow: #ffc40d !default;
+$orange: #f89406 !default;
+$pink: #c3325f !default;
+$purple: #7a43b6 !default;
+
+
+// Scaffolding
+// -------------------------
+$bodyBackground: $white !default;
+$textColor: $grayDark !default;
+
+
+// Links
+// -------------------------
+$linkColor: #08c !default;
+$linkColorHover: darken($linkColor, 15%) !default;
+
+
+// Typography
+// -------------------------
+$sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif !default;
+$serifFontFamily: Georgia, "Times New Roman", Times, serif !default;
+$monoFontFamily: Monaco, Menlo, Consolas, "Courier New", monospace !default;
+
+$baseFontSize: 14px !default;
+$baseFontFamily: $sansFontFamily !default;
+$baseLineHeight: 20px !default;
+$altFontFamily: $serifFontFamily !default;
+
+$headingsFontFamily: inherit !default; // empty to use BS default, $baseFontFamily
+$headingsFontWeight: bold !default; // instead of browser default, bold
+$headingsColor: inherit !default; // empty to use BS default, $textColor
+
+
+// Component sizing
+// -------------------------
+// Based on 14px font-size and 20px line-height
+
+$fontSizeLarge: $baseFontSize * 1.25 !default; // ~18px
+$fontSizeSmall: $baseFontSize * 0.85 !default; // ~12px
+$fontSizeMini: $baseFontSize * 0.75 !default; // ~11px
+
+$paddingLarge: 11px 19px !default; // 44px
+$paddingSmall: 2px 10px !default; // 26px
+$paddingMini: 0px 6px !default; // 22px
+
+$baseBorderRadius: 4px !default;
+$borderRadiusLarge: 6px !default;
+$borderRadiusSmall: 3px !default;
+
+
+// Tables
+// -------------------------
+$tableBackground: transparent !default; // overall background-color
+$tableBackgroundAccent: #f9f9f9 !default; // for striping
+$tableBackgroundHover: #f5f5f5 !default; // for hover
+$tableBorder: #ddd !default; // table and cell border
+
+// Buttons
+// -------------------------
+$btnBackground: $white !default;
+$btnBackgroundHighlight: darken($white, 10%) !default;
+$btnBorder: #ccc !default;
+
+$btnPrimaryBackground: $linkColor !default;
+$btnPrimaryBackgroundHighlight: adjust-hue($btnPrimaryBackground, 20%) !default;
+
+$btnInfoBackground: #5bc0de !default;
+$btnInfoBackgroundHighlight: #2f96b4 !default;
+
+$btnSuccessBackground: #62c462 !default;
+$btnSuccessBackgroundHighlight: #51a351 !default;
+
+$btnWarningBackground: lighten($orange, 15%) !default;
+$btnWarningBackgroundHighlight: $orange !default;
+
+$btnDangerBackground: #ee5f5b !default;
+$btnDangerBackgroundHighlight: #bd362f !default;
+
+$btnInverseBackground: #444 !default;
+$btnInverseBackgroundHighlight: $grayDarker !default;
+
+
+// Forms
+// -------------------------
+$inputBackground: $white !default;
+$inputBorder: #ccc !default;
+$inputBorderRadius: $baseBorderRadius !default;
+$inputDisabledBackground: $grayLighter !default;
+$formActionsBackground: #f5f5f5 !default;
+$inputHeight: $baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border
+
+
+// Dropdowns
+// -------------------------
+$dropdownBackground: $white !default;
+$dropdownBorder: rgba(0,0,0,.2) !default;
+$dropdownDividerTop: #e5e5e5 !default;
+$dropdownDividerBottom: $white !default;
+
+$dropdownLinkColor: $grayDark !default;
+$dropdownLinkColorHover: $white !default;
+$dropdownLinkColorActive: $white !default;
+
+$dropdownLinkBackgroundActive: $linkColor !default;
+$dropdownLinkBackgroundHover: $dropdownLinkBackgroundActive !default;
+
+
+
+// COMPONENT VARIABLES
+// --------------------------------------------------
+
+
+// Z-index master list
+// -------------------------
+// Used for a bird's eye view of components dependent on the z-axis
+// Try to avoid customizing these :)
+$zindexDropdown: 1000 !default;
+$zindexPopover: 1010 !default;
+$zindexTooltip: 1030 !default;
+$zindexFixedNavbar: 1030 !default;
+$zindexModalBackdrop: 1040 !default;
+$zindexModal: 1050 !default;
+
+
+// Sprite icons path
+// -------------------------
+$iconSpritePath: "../img/glyphicons-halflings.png" !default;
+$iconWhiteSpritePath: "../img/glyphicons-halflings-white.png" !default;
+
+
+// Input placeholder text color
+// -------------------------
+$placeholderText: $grayLight !default;
+
+
+// Hr border color
+// -------------------------
+$hrBorder: $grayLighter !default;
+
+
+// Horizontal forms & lists
+// -------------------------
+$horizontalComponentOffset: 180px !default;
+
+
+// Wells
+// -------------------------
+$wellBackground: #f5f5f5 !default;
+
+
+// Navbar
+// -------------------------
+$navbarCollapseWidth: 979px !default;
+$navbarCollapseDesktopWidth: $navbarCollapseWidth + 1;
+
+$navbarHeight: 40px !default;
+$navbarBackgroundHighlight: #ffffff !default;
+$navbarBackground: darken($navbarBackgroundHighlight, 5%) !default;
+$navbarBorder: darken($navbarBackground, 12%) !default;
+
+$navbarText: #777 !default;
+$navbarLinkColor: #777 !default;
+$navbarLinkColorHover: $grayDark !default;
+$navbarLinkColorActive: $gray !default;
+$navbarLinkBackgroundHover: transparent !default;
+$navbarLinkBackgroundActive: darken($navbarBackground, 5%) !default;
+
+$navbarBrandColor: $navbarLinkColor !default;
+
+// Inverted navbar
+$navbarInverseBackground: #111111 !default;
+$navbarInverseBackgroundHighlight: #222222 !default;
+$navbarInverseBorder: #252525 !default;
+
+$navbarInverseText: $grayLight !default;
+$navbarInverseLinkColor: $grayLight !default;
+$navbarInverseLinkColorHover: $white !default;
+$navbarInverseLinkColorActive: $navbarInverseLinkColorHover !default;
+$navbarInverseLinkBackgroundHover: transparent !default;
+$navbarInverseLinkBackgroundActive: $navbarInverseBackground !default;
+
+$navbarInverseSearchBackground: lighten($navbarInverseBackground, 25%) !default;
+$navbarInverseSearchBackgroundFocus: $white !default;
+$navbarInverseSearchBorder: $navbarInverseBackground !default;
+$navbarInverseSearchPlaceholderColor: #ccc !default;
+
+$navbarInverseBrandColor: $navbarInverseLinkColor !default;
+
+
+// Pagination
+// -------------------------
+$paginationBackground: #fff !default;
+$paginationBorder: #ddd !default;
+$paginationActiveBackground: #f5f5f5 !default;
+
+
+// Hero unit
+// -------------------------
+$heroUnitBackground: $grayLighter !default;
+$heroUnitHeadingColor: inherit !default;
+$heroUnitLeadColor: inherit !default;
+
+
+// Form states and alerts
+// -------------------------
+$warningText: #c09853 !default;
+$warningBackground: #fcf8e3 !default;
+$warningBorder: darken(adjust-hue($warningBackground, -10), 3%) !default;
+
+$errorText: #b94a48 !default;
+$errorBackground: #f2dede !default;
+$errorBorder: darken(adjust-hue($errorBackground, -10), 3%) !default;
+
+$successText: #468847 !default;
+$successBackground: #dff0d8 !default;
+$successBorder: darken(adjust-hue($successBackground, -10), 5%) !default;
+
+$infoText: #3a87ad !default;
+$infoBackground: #d9edf7 !default;
+$infoBorder: darken(adjust-hue($infoBackground, -10), 7%) !default;
+
+
+// Tooltips and popovers
+// -------------------------
+$tooltipColor: #fff !default;
+$tooltipBackground: #000 !default;
+$tooltipArrowWidth: 5px !default;
+$tooltipArrowColor: $tooltipBackground !default;
+
+$popoverBackground: #fff !default;
+$popoverArrowWidth: 10px !default;
+$popoverArrowColor: #fff !default;
+$popoverTitleBackground: darken($popoverBackground, 3%) !default;
+
+// Special enhancement for popovers
+$popoverArrowOuterWidth: $popoverArrowWidth + 1 !default;
+$popoverArrowOuterColor: rgba(0,0,0,.25) !default;
+
+
+
+// GRID
+// --------------------------------------------------
+
+
+// Default 940px grid
+// -------------------------
+$gridColumns: 12 !default;
+$gridColumnWidth: 60px !default;
+$gridGutterWidth: 20px !default;
+$gridRowWidth: ($gridColumns * $gridColumnWidth) + ($gridGutterWidth * ($gridColumns - 1)) !default;
+
+// 1200px min
+$gridColumnWidth1200: 70px !default;
+$gridGutterWidth1200: 30px !default;
+$gridRowWidth1200: ($gridColumns * $gridColumnWidth1200) + ($gridGutterWidth1200 * ($gridColumns - 1)) !default;
+
+// 768px-979px
+$gridColumnWidth768: 42px !default;
+$gridGutterWidth768: 20px !default;
+$gridRowWidth768: ($gridColumns * $gridColumnWidth768) + ($gridGutterWidth768 * ($gridColumns - 1)) !default;
+
+
+// Fluid grid
+// -------------------------
+$fluidGridColumnWidth: percentage($gridColumnWidth/$gridRowWidth) !default;
+$fluidGridGutterWidth: percentage($gridGutterWidth/$gridRowWidth) !default;
+
+// 1200px min
+$fluidGridColumnWidth1200: percentage($gridColumnWidth1200/$gridRowWidth1200) !default;
+$fluidGridGutterWidth1200: percentage($gridGutterWidth1200/$gridRowWidth1200) !default;
+
+// 768px-979px
+$fluidGridColumnWidth768: percentage($gridColumnWidth768/$gridRowWidth768) !default;
+$fluidGridGutterWidth768: percentage($gridGutterWidth768/$gridRowWidth768) !default;
diff --git a/theme/scss/bootstrap-2.3.2/_wells.scss b/theme/scss/bootstrap-2.3.2/_wells.scss
new file mode 100755
index 0000000..551e520
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/_wells.scss
@@ -0,0 +1,29 @@
+//
+// Wells
+// --------------------------------------------------
+
+
+// Base class
+.well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: $wellBackground;
+ border: 1px solid darken($wellBackground, 7%);
+ @include border-radius($baseBorderRadius);
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
+ blockquote {
+ border-color: #ddd;
+ border-color: rgba(0,0,0,.15);
+ }
+}
+
+// Sizes
+.well-large {
+ padding: 24px;
+ @include border-radius($borderRadiusLarge);
+}
+.well-small {
+ padding: 9px;
+ @include border-radius($borderRadiusSmall);
+}
diff --git a/theme/scss/bootstrap-2.3.2/bootstrap.scss b/theme/scss/bootstrap-2.3.2/bootstrap.scss
new file mode 100755
index 0000000..e3a44a9
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/bootstrap.scss
@@ -0,0 +1,63 @@
+/*!
+ * Bootstrap v2.3.2
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+
+// Core variables and mixins
+@import "variables"; // Modify this for custom colors, font-sizes, etc
+@import "mixins";
+
+// CSS Reset
+@import "reset";
+
+// Grid system and page structure
+@import "scaffolding";
+@import "grid";
+@import "layouts";
+
+// Base CSS
+@import "type";
+@import "code";
+@import "forms";
+@import "tables";
+
+// Components: common
+@import "sprites";
+@import "dropdowns";
+@import "wells";
+@import "component-animations";
+@import "close";
+
+// Components: Buttons & Alerts
+@import "buttons";
+@import "button-groups";
+@import "alerts"; // Note: alerts share common CSS with buttons and thus have styles in buttons
+
+// Components: Nav
+@import "navs";
+@import "navbar";
+@import "breadcrumbs";
+@import "pagination";
+@import "pager";
+
+// Components: Popovers
+@import "modals";
+@import "tooltip";
+@import "popovers";
+
+// Components: Misc
+@import "thumbnails";
+@import "media";
+@import "labels-badges";
+@import "progress-bars";
+@import "accordion";
+@import "carousel";
+@import "hero-unit";
+
+// Utility classes
+@import "utilities"; // Has to be last to override when necessary
diff --git a/theme/scss/bootstrap-2.3.2/responsive.scss b/theme/scss/bootstrap-2.3.2/responsive.scss
new file mode 100755
index 0000000..8eda8fe
--- /dev/null
+++ b/theme/scss/bootstrap-2.3.2/responsive.scss
@@ -0,0 +1,48 @@
+/*!
+ * Bootstrap Responsive v2.3.2
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+
+
+// Responsive
+// For phone and tablet devices
+// -------------------------------------------------------------
+
+
+// REPEAT VARIABLES & MIXINS
+// -------------------------
+// Required since we compile the responsive stuff separately
+
+@import "variables"; // Modify this for custom colors, font-sizes, etc
+@import "mixins";
+
+
+// RESPONSIVE CLASSES
+// ------------------
+
+@import "responsive-utilities";
+
+
+// MEDIA QUERIES
+// ------------------
+
+// Large desktops
+@import "responsive-1200px-min";
+
+// Tablets to regular desktops
+@import "responsive-768px-979px";
+
+// Phones to portrait tablets and narrow desktops
+@import "responsive-767px-max";
+
+
+// RESPONSIVE NAVBAR
+// ------------------
+
+// From 979px and below, show a button to toggle navbar contents
+@import "responsive-navbar";
diff --git a/theme/scss/font-awesome-3.2.1/_bootstrap.scss b/theme/scss/font-awesome-3.2.1/_bootstrap.scss
new file mode 100644
index 0000000..837d2df
--- /dev/null
+++ b/theme/scss/font-awesome-3.2.1/_bootstrap.scss
@@ -0,0 +1,84 @@
+/* BOOTSTRAP SPECIFIC CLASSES
+ * -------------------------- */
+
+/* Bootstrap 2.0 sprites.less reset */
+[class^="icon-"],
+[class*=" icon-"] {
+ display: inline;
+ width: auto;
+ height: auto;
+ line-height: normal;
+ vertical-align: baseline;
+ background-image: none;
+ background-position: 0% 0%;
+ background-repeat: repeat;
+ margin-top: 0;
+}
+
+/* more sprites.less reset */
+.icon-white,
+.nav-pills > .active > a > [class^="icon-"],
+.nav-pills > .active > a > [class*=" icon-"],
+.nav-list > .active > a > [class^="icon-"],
+.nav-list > .active > a > [class*=" icon-"],
+.navbar-inverse .nav > .active > a > [class^="icon-"],
+.navbar-inverse .nav > .active > a > [class*=" icon-"],
+.dropdown-menu > li > a:hover > [class^="icon-"],
+.dropdown-menu > li > a:hover > [class*=" icon-"],
+.dropdown-menu > .active > a > [class^="icon-"],
+.dropdown-menu > .active > a > [class*=" icon-"],
+.dropdown-submenu:hover > a > [class^="icon-"],
+.dropdown-submenu:hover > a > [class*=" icon-"] {
+ background-image: none;
+}
+
+
+/* keeps Bootstrap styles with and without icons the same */
+.btn, .nav {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ // display: inline;
+ &.icon-large { line-height: .9em; }
+ &.icon-spin { display: inline-block; }
+ }
+}
+.nav-tabs, .nav-pills {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ &, &.icon-large { line-height: .9em; }
+ }
+}
+.btn {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ &.pull-left, &.pull-right {
+ &.icon-2x { margin-top: .18em; }
+ }
+ &.icon-spin.icon-large { line-height: .8em; }
+ }
+}
+.btn.btn-small {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ &.pull-left, &.pull-right {
+ &.icon-2x { margin-top: .25em; }
+ }
+ }
+}
+.btn.btn-large {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ margin-top: 0; // overrides bootstrap default
+ &.pull-left, &.pull-right {
+ &.icon-2x { margin-top: .05em; }
+ }
+ &.pull-left.icon-2x { margin-right: .2em; }
+ &.pull-right.icon-2x { margin-left: .2em; }
+ }
+}
+
+/* Fixes alignment in nav lists */
+.nav-list [class^="icon-"],
+.nav-list [class*=" icon-"] {
+ line-height: inherit;
+}
diff --git a/theme/scss/font-awesome-3.2.1/_core.scss b/theme/scss/font-awesome-3.2.1/_core.scss
new file mode 100644
index 0000000..0189c73
--- /dev/null
+++ b/theme/scss/font-awesome-3.2.1/_core.scss
@@ -0,0 +1,129 @@
+/* FONT AWESOME CORE
+ * -------------------------- */
+
+[class^="icon-"],
+[class*=" icon-"] {
+ @include icon-FontAwesome();
+}
+
+[class^="icon-"]:before,
+[class*=" icon-"]:before {
+ text-decoration: inherit;
+ display: inline-block;
+ speak: none;
+}
+
+/* makes the font 33% larger relative to the icon container */
+.icon-large:before {
+ vertical-align: -10%;
+ font-size: (4em/3);
+}
+
+/* makes sure icons active on rollover in links */
+a {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ display: inline;
+ }
+}
+
+/* increased font size for icon-large */
+[class^="icon-"],
+[class*=" icon-"] {
+ &.icon-fixed-width {
+ display: inline-block;
+ width: (16em/14);
+ text-align: right;
+ padding-right: (4em/14);
+ &.icon-large {
+ width: (20em/14);
+ }
+ }
+}
+
+.icons-ul {
+ margin-left: $icons-li-width;
+ list-style-type: none;
+
+ > li { position: relative; }
+
+ .icon-li {
+ position: absolute;
+ left: -$icons-li-width;
+ width: $icons-li-width;
+ text-align: center;
+ line-height: inherit;
+ }
+}
+
+// allows usage of the hide class directly on font awesome icons
+[class^="icon-"],
+[class*=" icon-"] {
+ &.hide {
+ display: none;
+ }
+}
+
+.icon-muted { color: $iconMuted; }
+.icon-light { color: $iconLight; }
+.icon-dark { color: $iconDark; }
+
+// Icon Borders
+// -------------------------
+
+.icon-border {
+ border: solid 1px $borderColor;
+ padding: .2em .25em .15em;
+ @include border-radius(3px);
+}
+
+// Icon Sizes
+// -------------------------
+
+.icon-2x {
+ font-size: 2em;
+ &.icon-border {
+ border-width: 2px;
+ @include border-radius(4px);
+ }
+}
+.icon-3x {
+ font-size: 3em;
+ &.icon-border {
+ border-width: 3px;
+ @include border-radius(5px);
+ }
+}
+.icon-4x {
+ font-size: 4em;
+ &.icon-border {
+ border-width: 4px;
+ @include border-radius(6px);
+ }
+}
+
+.icon-5x {
+ font-size: 5em;
+ &.icon-border {
+ border-width: 5px;
+ @include border-radius(7px);
+ }
+}
+
+
+// Floats & Margins
+// -------------------------
+
+// Quick floats
+.pull-right { float: right; }
+.pull-left { float: left; }
+
+[class^="icon-"],
+[class*=" icon-"] {
+ &.pull-left {
+ margin-right: .3em;
+ }
+ &.pull-right {
+ margin-left: .3em;
+ }
+}
diff --git a/theme/scss/font-awesome-3.2.1/_extras.scss b/theme/scss/font-awesome-3.2.1/_extras.scss
new file mode 100644
index 0000000..9a25845
--- /dev/null
+++ b/theme/scss/font-awesome-3.2.1/_extras.scss
@@ -0,0 +1,93 @@
+/* EXTRAS
+ * -------------------------- */
+
+/* Stacked and layered icon */
+@include icon-stack();
+
+/* Animated rotating icon */
+.icon-spin {
+ display: inline-block;
+ -moz-animation: spin 2s infinite linear;
+ -o-animation: spin 2s infinite linear;
+ -webkit-animation: spin 2s infinite linear;
+ animation: spin 2s infinite linear;
+}
+
+/* Prevent stack and spinners from being taken inline when inside a link */
+a .icon-stack,
+a .icon-spin {
+ display: inline-block;
+ text-decoration: none;
+}
+
+@-moz-keyframes spin {
+ 0% { -moz-transform: rotate(0deg); }
+ 100% { -moz-transform: rotate(359deg); }
+}
+@-webkit-keyframes spin {
+ 0% { -webkit-transform: rotate(0deg); }
+ 100% { -webkit-transform: rotate(359deg); }
+}
+@-o-keyframes spin {
+ 0% { -o-transform: rotate(0deg); }
+ 100% { -o-transform: rotate(359deg); }
+}
+@-ms-keyframes spin {
+ 0% { -ms-transform: rotate(0deg); }
+ 100% { -ms-transform: rotate(359deg); }
+}
+@keyframes spin {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(359deg); }
+}
+
+/* Icon rotations and mirroring */
+.icon-rotate-90:before {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ -o-transform: rotate(90deg);
+ transform: rotate(90deg);
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+}
+
+.icon-rotate-180:before {
+ -webkit-transform: rotate(180deg);
+ -moz-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+}
+
+.icon-rotate-270:before {
+ -webkit-transform: rotate(270deg);
+ -moz-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ -o-transform: rotate(270deg);
+ transform: rotate(270deg);
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+}
+
+.icon-flip-horizontal:before {
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ -o-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+.icon-flip-vertical:before {
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ -o-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+/* ensure rotation occurs inside anchor tags */
+a {
+ .icon-rotate-90, .icon-rotate-180, .icon-rotate-270, .icon-flip-horizontal, .icon-flip-vertical {
+ &:before { display: inline-block; }
+ }
+}
diff --git a/theme/scss/font-awesome-3.2.1/_icons.scss b/theme/scss/font-awesome-3.2.1/_icons.scss
new file mode 100644
index 0000000..eefda0c
--- /dev/null
+++ b/theme/scss/font-awesome-3.2.1/_icons.scss
@@ -0,0 +1,381 @@
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ * readers do not read off random characters that represent icons */
+
+.icon-glass:before { content: $glass; }
+.icon-music:before { content: $music; }
+.icon-search:before { content: $search; }
+.icon-envelope-alt:before { content: $envelope-alt; }
+.icon-heart:before { content: $heart; }
+.icon-star:before { content: $star; }
+.icon-star-empty:before { content: $star-empty; }
+.icon-user:before { content: $user; }
+.icon-film:before { content: $film; }
+.icon-th-large:before { content: $th-large; }
+.icon-th:before { content: $th; }
+.icon-th-list:before { content: $th-list; }
+.icon-ok:before { content: $ok; }
+.icon-remove:before { content: $remove; }
+.icon-zoom-in:before { content: $zoom-in; }
+.icon-zoom-out:before { content: $zoom-out; }
+.icon-power-off:before,
+.icon-off:before { content: $off; }
+.icon-signal:before { content: $signal; }
+.icon-gear:before,
+.icon-cog:before { content: $cog; }
+.icon-trash:before { content: $trash; }
+.icon-home:before { content: $home; }
+.icon-file-alt:before { content: $file-alt; }
+.icon-time:before { content: $time; }
+.icon-road:before { content: $road; }
+.icon-download-alt:before { content: $download-alt; }
+.icon-download:before { content: $download; }
+.icon-upload:before { content: $upload; }
+.icon-inbox:before { content: $inbox; }
+.icon-play-circle:before { content: $play-circle; }
+.icon-rotate-right:before,
+.icon-repeat:before { content: $repeat; }
+.icon-refresh:before { content: $refresh; }
+.icon-list-alt:before { content: $list-alt; }
+.icon-lock:before { content: $lock; }
+.icon-flag:before { content: $flag; }
+.icon-headphones:before { content: $headphones; }
+.icon-volume-off:before { content: $volume-off; }
+.icon-volume-down:before { content: $volume-down; }
+.icon-volume-up:before { content: $volume-up; }
+.icon-qrcode:before { content: $qrcode; }
+.icon-barcode:before { content: $barcode; }
+.icon-tag:before { content: $tag; }
+.icon-tags:before { content: $tags; }
+.icon-book:before { content: $book; }
+.icon-bookmark:before { content: $bookmark; }
+.icon-print:before { content: $print; }
+.icon-camera:before { content: $camera; }
+.icon-font:before { content: $font; }
+.icon-bold:before { content: $bold; }
+.icon-italic:before { content: $italic; }
+.icon-text-height:before { content: $text-height; }
+.icon-text-width:before { content: $text-width; }
+.icon-align-left:before { content: $align-left; }
+.icon-align-center:before { content: $align-center; }
+.icon-align-right:before { content: $align-right; }
+.icon-align-justify:before { content: $align-justify; }
+.icon-list:before { content: $list; }
+.icon-indent-left:before { content: $indent-left; }
+.icon-indent-right:before { content: $indent-right; }
+.icon-facetime-video:before { content: $facetime-video; }
+.icon-picture:before { content: $picture; }
+.icon-pencil:before { content: $pencil; }
+.icon-map-marker:before { content: $map-marker; }
+.icon-adjust:before { content: $adjust; }
+.icon-tint:before { content: $tint; }
+.icon-edit:before { content: $edit; }
+.icon-share:before { content: $share; }
+.icon-check:before { content: $check; }
+.icon-move:before { content: $move; }
+.icon-step-backward:before { content: $step-backward; }
+.icon-fast-backward:before { content: $fast-backward; }
+.icon-backward:before { content: $backward; }
+.icon-play:before { content: $play; }
+.icon-pause:before { content: $pause; }
+.icon-stop:before { content: $stop; }
+.icon-forward:before { content: $forward; }
+.icon-fast-forward:before { content: $fast-forward; }
+.icon-step-forward:before { content: $step-forward; }
+.icon-eject:before { content: $eject; }
+.icon-chevron-left:before { content: $chevron-left; }
+.icon-chevron-right:before { content: $chevron-right; }
+.icon-plus-sign:before { content: $plus-sign; }
+.icon-minus-sign:before { content: $minus-sign; }
+.icon-remove-sign:before { content: $remove-sign; }
+.icon-ok-sign:before { content: $ok-sign; }
+.icon-question-sign:before { content: $question-sign; }
+.icon-info-sign:before { content: $info-sign; }
+.icon-screenshot:before { content: $screenshot; }
+.icon-remove-circle:before { content: $remove-circle; }
+.icon-ok-circle:before { content: $ok-circle; }
+.icon-ban-circle:before { content: $ban-circle; }
+.icon-arrow-left:before { content: $arrow-left; }
+.icon-arrow-right:before { content: $arrow-right; }
+.icon-arrow-up:before { content: $arrow-up; }
+.icon-arrow-down:before { content: $arrow-down; }
+.icon-mail-forward:before,
+.icon-share-alt:before { content: $share-alt; }
+.icon-resize-full:before { content: $resize-full; }
+.icon-resize-small:before { content: $resize-small; }
+.icon-plus:before { content: $plus; }
+.icon-minus:before { content: $minus; }
+.icon-asterisk:before { content: $asterisk; }
+.icon-exclamation-sign:before { content: $exclamation-sign; }
+.icon-gift:before { content: $gift; }
+.icon-leaf:before { content: $leaf; }
+.icon-fire:before { content: $fire; }
+.icon-eye-open:before { content: $eye-open; }
+.icon-eye-close:before { content: $eye-close; }
+.icon-warning-sign:before { content: $warning-sign; }
+.icon-plane:before { content: $plane; }
+.icon-calendar:before { content: $calendar; }
+.icon-random:before { content: $random; }
+.icon-comment:before { content: $comment; }
+.icon-magnet:before { content: $magnet; }
+.icon-chevron-up:before { content: $chevron-up; }
+.icon-chevron-down:before { content: $chevron-down; }
+.icon-retweet:before { content: $retweet; }
+.icon-shopping-cart:before { content: $shopping-cart; }
+.icon-folder-close:before { content: $folder-close; }
+.icon-folder-open:before { content: $folder-open; }
+.icon-resize-vertical:before { content: $resize-vertical; }
+.icon-resize-horizontal:before { content: $resize-horizontal; }
+.icon-bar-chart:before { content: $bar-chart; }
+.icon-twitter-sign:before { content: $twitter-sign; }
+.icon-facebook-sign:before { content: $facebook-sign; }
+.icon-camera-retro:before { content: $camera-retro; }
+.icon-key:before { content: $key; }
+.icon-gears:before,
+.icon-cogs:before { content: $cogs; }
+.icon-comments:before { content: $comments; }
+.icon-thumbs-up-alt:before { content: $thumbs-up-alt; }
+.icon-thumbs-down-alt:before { content: $thumbs-down-alt; }
+.icon-star-half:before { content: $star-half; }
+.icon-heart-empty:before { content: $heart-empty; }
+.icon-signout:before { content: $signout; }
+.icon-linkedin-sign:before { content: $linkedin-sign; }
+.icon-pushpin:before { content: $pushpin; }
+.icon-external-link:before { content: $external-link; }
+.icon-signin:before { content: $signin; }
+.icon-trophy:before { content: $trophy; }
+.icon-github-sign:before { content: $github-sign; }
+.icon-upload-alt:before { content: $upload-alt; }
+.icon-lemon:before { content: $lemon; }
+.icon-phone:before { content: $phone; }
+.icon-unchecked:before,
+.icon-check-empty:before { content: $check-empty; }
+.icon-bookmark-empty:before { content: $bookmark-empty; }
+.icon-phone-sign:before { content: $phone-sign; }
+.icon-twitter:before { content: $twitter; }
+.icon-facebook:before { content: $facebook; }
+.icon-github:before { content: $github; }
+.icon-unlock:before { content: $unlock; }
+.icon-credit-card:before { content: $credit-card; }
+.icon-rss:before { content: $rss; }
+.icon-hdd:before { content: $hdd; }
+.icon-bullhorn:before { content: $bullhorn; }
+.icon-bell:before { content: $bell; }
+.icon-certificate:before { content: $certificate; }
+.icon-hand-right:before { content: $hand-right; }
+.icon-hand-left:before { content: $hand-left; }
+.icon-hand-up:before { content: $hand-up; }
+.icon-hand-down:before { content: $hand-down; }
+.icon-circle-arrow-left:before { content: $circle-arrow-left; }
+.icon-circle-arrow-right:before { content: $circle-arrow-right; }
+.icon-circle-arrow-up:before { content: $circle-arrow-up; }
+.icon-circle-arrow-down:before { content: $circle-arrow-down; }
+.icon-globe:before { content: $globe; }
+.icon-wrench:before { content: $wrench; }
+.icon-tasks:before { content: $tasks; }
+.icon-filter:before { content: $filter; }
+.icon-briefcase:before { content: $briefcase; }
+.icon-fullscreen:before { content: $fullscreen; }
+.icon-group:before { content: $group; }
+.icon-link:before { content: $link; }
+.icon-cloud:before { content: $cloud; }
+.icon-beaker:before { content: $beaker; }
+.icon-cut:before { content: $cut; }
+.icon-copy:before { content: $copy; }
+.icon-paperclip:before,
+.icon-paper-clip:before { content: $paper-clip; }
+.icon-save:before { content: $save; }
+.icon-sign-blank:before { content: $sign-blank; }
+.icon-reorder:before { content: $reorder; }
+.icon-list-ul:before { content: $list-ul; }
+.icon-list-ol:before { content: $list-ol; }
+.icon-strikethrough:before { content: $strikethrough; }
+.icon-underline:before { content: $underline; }
+.icon-table:before { content: $table; }
+.icon-magic:before { content: $magic; }
+.icon-truck:before { content: $truck; }
+.icon-pinterest:before { content: $pinterest; }
+.icon-pinterest-sign:before { content: $pinterest-sign; }
+.icon-google-plus-sign:before { content: $google-plus-sign; }
+.icon-google-plus:before { content: $google-plus; }
+.icon-money:before { content: $money; }
+.icon-caret-down:before { content: $caret-down; }
+.icon-caret-up:before { content: $caret-up; }
+.icon-caret-left:before { content: $caret-left; }
+.icon-caret-right:before { content: $caret-right; }
+.icon-columns:before { content: $columns; }
+.icon-sort:before { content: $sort; }
+.icon-sort-down:before { content: $sort-down; }
+.icon-sort-up:before { content: $sort-up; }
+.icon-envelope:before { content: $envelope; }
+.icon-linkedin:before { content: $linkedin; }
+.icon-rotate-left:before,
+.icon-undo:before { content: $undo; }
+.icon-legal:before { content: $legal; }
+.icon-dashboard:before { content: $dashboard; }
+.icon-comment-alt:before { content: $comment-alt; }
+.icon-comments-alt:before { content: $comments-alt; }
+.icon-bolt:before { content: $bolt; }
+.icon-sitemap:before { content: $sitemap; }
+.icon-umbrella:before { content: $umbrella; }
+.icon-paste:before { content: $paste; }
+.icon-lightbulb:before { content: $lightbulb; }
+.icon-exchange:before { content: $exchange; }
+.icon-cloud-download:before { content: $cloud-download; }
+.icon-cloud-upload:before { content: $cloud-upload; }
+.icon-user-md:before { content: $user-md; }
+.icon-stethoscope:before { content: $stethoscope; }
+.icon-suitcase:before { content: $suitcase; }
+.icon-bell-alt:before { content: $bell-alt; }
+.icon-coffee:before { content: $coffee; }
+.icon-food:before { content: $food; }
+.icon-file-text-alt:before { content: $file-text-alt; }
+.icon-building:before { content: $building; }
+.icon-hospital:before { content: $hospital; }
+.icon-ambulance:before { content: $ambulance; }
+.icon-medkit:before { content: $medkit; }
+.icon-fighter-jet:before { content: $fighter-jet; }
+.icon-beer:before { content: $beer; }
+.icon-h-sign:before { content: $h-sign; }
+.icon-plus-sign-alt:before { content: $plus-sign-alt; }
+.icon-double-angle-left:before { content: $double-angle-left; }
+.icon-double-angle-right:before { content: $double-angle-right; }
+.icon-double-angle-up:before { content: $double-angle-up; }
+.icon-double-angle-down:before { content: $double-angle-down; }
+.icon-angle-left:before { content: $angle-left; }
+.icon-angle-right:before { content: $angle-right; }
+.icon-angle-up:before { content: $angle-up; }
+.icon-angle-down:before { content: $angle-down; }
+.icon-desktop:before { content: $desktop; }
+.icon-laptop:before { content: $laptop; }
+.icon-tablet:before { content: $tablet; }
+.icon-mobile-phone:before { content: $mobile-phone; }
+.icon-circle-blank:before { content: $circle-blank; }
+.icon-quote-left:before { content: $quote-left; }
+.icon-quote-right:before { content: $quote-right; }
+.icon-spinner:before { content: $spinner; }
+.icon-circle:before { content: $circle; }
+.icon-mail-reply:before,
+.icon-reply:before { content: $reply; }
+.icon-github-alt:before { content: $github-alt; }
+.icon-folder-close-alt:before { content: $folder-close-alt; }
+.icon-folder-open-alt:before { content: $folder-open-alt; }
+.icon-expand-alt:before { content: $expand-alt; }
+.icon-collapse-alt:before { content: $collapse-alt; }
+.icon-smile:before { content: $smile; }
+.icon-frown:before { content: $frown; }
+.icon-meh:before { content: $meh; }
+.icon-gamepad:before { content: $gamepad; }
+.icon-keyboard:before { content: $keyboard; }
+.icon-flag-alt:before { content: $flag-alt; }
+.icon-flag-checkered:before { content: $flag-checkered; }
+.icon-terminal:before { content: $terminal; }
+.icon-code:before { content: $code; }
+.icon-reply-all:before { content: $reply-all; }
+.icon-mail-reply-all:before { content: $mail-reply-all; }
+.icon-star-half-full:before,
+.icon-star-half-empty:before { content: $star-half-empty; }
+.icon-location-arrow:before { content: $location-arrow; }
+.icon-crop:before { content: $crop; }
+.icon-code-fork:before { content: $code-fork; }
+.icon-unlink:before { content: $unlink; }
+.icon-question:before { content: $question; }
+.icon-info:before { content: $info; }
+.icon-exclamation:before { content: $exclamation; }
+.icon-superscript:before { content: $superscript; }
+.icon-subscript:before { content: $subscript; }
+.icon-eraser:before { content: $eraser; }
+.icon-puzzle-piece:before { content: $puzzle-piece; }
+.icon-microphone:before { content: $microphone; }
+.icon-microphone-off:before { content: $microphone-off; }
+.icon-shield:before { content: $shield; }
+.icon-calendar-empty:before { content: $calendar-empty; }
+.icon-fire-extinguisher:before { content: $fire-extinguisher; }
+.icon-rocket:before { content: $rocket; }
+.icon-maxcdn:before { content: $maxcdn; }
+.icon-chevron-sign-left:before { content: $chevron-sign-left; }
+.icon-chevron-sign-right:before { content: $chevron-sign-right; }
+.icon-chevron-sign-up:before { content: $chevron-sign-up; }
+.icon-chevron-sign-down:before { content: $chevron-sign-down; }
+.icon-html5:before { content: $html5; }
+.icon-css3:before { content: $css3; }
+.icon-anchor:before { content: $anchor; }
+.icon-unlock-alt:before { content: $unlock-alt; }
+.icon-bullseye:before { content: $bullseye; }
+.icon-ellipsis-horizontal:before { content: $ellipsis-horizontal; }
+.icon-ellipsis-vertical:before { content: $ellipsis-vertical; }
+.icon-rss-sign:before { content: $rss-sign; }
+.icon-play-sign:before { content: $play-sign; }
+.icon-ticket:before { content: $ticket; }
+.icon-minus-sign-alt:before { content: $minus-sign-alt; }
+.icon-check-minus:before { content: $check-minus; }
+.icon-level-up:before { content: $level-up; }
+.icon-level-down:before { content: $level-down; }
+.icon-check-sign:before { content: $check-sign; }
+.icon-edit-sign:before { content: $edit-sign; }
+.icon-external-link-sign:before { content: $external-link-sign; }
+.icon-share-sign:before { content: $share-sign; }
+.icon-compass:before { content: $compass; }
+.icon-collapse:before { content: $collapse; }
+.icon-collapse-top:before { content: $collapse-top; }
+.icon-expand:before { content: $expand; }
+.icon-euro:before,
+.icon-eur:before { content: $eur; }
+.icon-gbp:before { content: $gbp; }
+.icon-dollar:before,
+.icon-usd:before { content: $usd; }
+.icon-rupee:before,
+.icon-inr:before { content: $inr; }
+.icon-yen:before,
+.icon-jpy:before { content: $jpy; }
+.icon-renminbi:before,
+.icon-cny:before { content: $cny; }
+.icon-won:before,
+.icon-krw:before { content: $krw; }
+.icon-bitcoin:before,
+.icon-btc:before { content: $btc; }
+.icon-file:before { content: $file; }
+.icon-file-text:before { content: $file-text; }
+.icon-sort-by-alphabet:before { content: $sort-by-alphabet; }
+.icon-sort-by-alphabet-alt:before { content: $sort-by-alphabet-alt; }
+.icon-sort-by-attributes:before { content: $sort-by-attributes; }
+.icon-sort-by-attributes-alt:before { content: $sort-by-attributes-alt; }
+.icon-sort-by-order:before { content: $sort-by-order; }
+.icon-sort-by-order-alt:before { content: $sort-by-order-alt; }
+.icon-thumbs-up:before { content: $thumbs-up; }
+.icon-thumbs-down:before { content: $thumbs-down; }
+.icon-youtube-sign:before { content: $youtube-sign; }
+.icon-youtube:before { content: $youtube; }
+.icon-xing:before { content: $xing; }
+.icon-xing-sign:before { content: $xing-sign; }
+.icon-youtube-play:before { content: $youtube-play; }
+.icon-dropbox:before { content: $dropbox; }
+.icon-stackexchange:before { content: $stackexchange; }
+.icon-instagram:before { content: $instagram; }
+.icon-flickr:before { content: $flickr; }
+.icon-adn:before { content: $adn; }
+.icon-bitbucket:before { content: $bitbucket; }
+.icon-bitbucket-sign:before { content: $bitbucket-sign; }
+.icon-tumblr:before { content: $tumblr; }
+.icon-tumblr-sign:before { content: $tumblr-sign; }
+.icon-long-arrow-down:before { content: $long-arrow-down; }
+.icon-long-arrow-up:before { content: $long-arrow-up; }
+.icon-long-arrow-left:before { content: $long-arrow-left; }
+.icon-long-arrow-right:before { content: $long-arrow-right; }
+.icon-apple:before { content: $apple; }
+.icon-windows:before { content: $windows; }
+.icon-android:before { content: $android; }
+.icon-linux:before { content: $linux; }
+.icon-dribbble:before { content: $dribbble; }
+.icon-skype:before { content: $skype; }
+.icon-foursquare:before { content: $foursquare; }
+.icon-trello:before { content: $trello; }
+.icon-female:before { content: $female; }
+.icon-male:before { content: $male; }
+.icon-gittip:before { content: $gittip; }
+.icon-sun:before { content: $sun; }
+.icon-moon:before { content: $moon; }
+.icon-archive:before { content: $archive; }
+.icon-bug:before { content: $bug; }
+.icon-vk:before { content: $vk; }
+.icon-weibo:before { content: $weibo; }
+.icon-renren:before { content: $renren; }
diff --git a/theme/scss/font-awesome-3.2.1/_mixins.scss b/theme/scss/font-awesome-3.2.1/_mixins.scss
new file mode 100644
index 0000000..ca9c593
--- /dev/null
+++ b/theme/scss/font-awesome-3.2.1/_mixins.scss
@@ -0,0 +1,48 @@
+// Mixins
+// --------------------------
+
+@mixin icon($icon) {
+ @include icon-FontAwesome();
+ content: $icon;
+}
+
+@mixin icon-FontAwesome() {
+ font-family: FontAwesome;
+ font-weight: normal;
+ font-style: normal;
+ text-decoration: inherit;
+ -webkit-font-smoothing: antialiased;
+ *margin-right: .3em; // fixes ie7 issues
+}
+
+@mixin border-radius($radius) {
+ -webkit-border-radius: $radius;
+ -moz-border-radius: $radius;
+ border-radius: $radius;
+}
+
+@mixin icon-stack($width: 2em, $height: 2em, $top-font-size: 1em, $base-font-size: 2em) {
+ .icon-stack {
+ position: relative;
+ display: inline-block;
+ width: $width;
+ height: $height;
+ line-height: $width;
+ vertical-align: -35%;
+ [class^="icon-"],
+ [class*=" icon-"] {
+ display: block;
+ text-align: center;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ font-size: $top-font-size;
+ line-height: inherit;
+ *line-height: $height;
+ }
+ .icon-stack-base {
+ font-size: $base-font-size;
+ *line-height: #{$height / $base-font-size}em;
+ }
+ }
+}
diff --git a/theme/scss/font-awesome-3.2.1/_path.scss b/theme/scss/font-awesome-3.2.1/_path.scss
new file mode 100644
index 0000000..bb3f36b
--- /dev/null
+++ b/theme/scss/font-awesome-3.2.1/_path.scss
@@ -0,0 +1,14 @@
+/* FONT PATH
+ * -------------------------- */
+
+@font-face {
+ font-family: 'FontAwesome';
+ src: url('#{$FontAwesomePath}/fontawesome-webfont.eot?v=#{$FontAwesomeVersion}');
+ src: url('#{$FontAwesomePath}/fontawesome-webfont.eot?#iefix&v=#{$FontAwesomeVersion}') format('embedded-opentype'),
+ url('#{$FontAwesomePath}/fontawesome-webfont.woff?v=#{$FontAwesomeVersion}') format('woff'),
+ url('#{$FontAwesomePath}/fontawesome-webfont.ttf?v=#{$FontAwesomeVersion}') format('truetype'),
+ url('#{$FontAwesomePath}/fontawesome-webfont.svg#fontawesomeregular?v=#{$FontAwesomeVersion}') format('svg');
+// src: url('#{$FontAwesomePath}/FontAwesome.otf') format('opentype'); // used when developing fonts
+ font-weight: normal;
+ font-style: normal;
+}
diff --git a/theme/scss/font-awesome-3.2.1/_variables.scss b/theme/scss/font-awesome-3.2.1/_variables.scss
new file mode 100644
index 0000000..7d6bbc5
--- /dev/null
+++ b/theme/scss/font-awesome-3.2.1/_variables.scss
@@ -0,0 +1,734 @@
+// Variables
+// --------------------------
+
+$FontAwesomePath: "../font" !default;
+$FontAwesomeVersion: "3.2.1" !default;
+$borderColor: #eeeeee !default;
+$iconMuted: #eeeeee !default;
+$iconLight: white !default;
+$iconDark: #333333 !default;
+$icons-li-width: (30em/14);
+
+
+$glass: "\f000";
+
+$music: "\f001";
+
+$search: "\f002";
+
+$envelope-alt: "\f003";
+
+$heart: "\f004";
+
+$star: "\f005";
+
+$star-empty: "\f006";
+
+$user: "\f007";
+
+$film: "\f008";
+
+$th-large: "\f009";
+
+$th: "\f00a";
+
+$th-list: "\f00b";
+
+$ok: "\f00c";
+
+$remove: "\f00d";
+
+$zoom-in: "\f00e";
+
+$zoom-out: "\f010";
+
+$off: "\f011";
+
+$signal: "\f012";
+
+$cog: "\f013";
+
+$trash: "\f014";
+
+$home: "\f015";
+
+$file-alt: "\f016";
+
+$time: "\f017";
+
+$road: "\f018";
+
+$download-alt: "\f019";
+
+$download: "\f01a";
+
+$upload: "\f01b";
+
+$inbox: "\f01c";
+
+$play-circle: "\f01d";
+
+$repeat: "\f01e";
+
+$refresh: "\f021";
+
+$list-alt: "\f022";
+
+$lock: "\f023";
+
+$flag: "\f024";
+
+$headphones: "\f025";
+
+$volume-off: "\f026";
+
+$volume-down: "\f027";
+
+$volume-up: "\f028";
+
+$qrcode: "\f029";
+
+$barcode: "\f02a";
+
+$tag: "\f02b";
+
+$tags: "\f02c";
+
+$book: "\f02d";
+
+$bookmark: "\f02e";
+
+$print: "\f02f";
+
+$camera: "\f030";
+
+$font: "\f031";
+
+$bold: "\f032";
+
+$italic: "\f033";
+
+$text-height: "\f034";
+
+$text-width: "\f035";
+
+$align-left: "\f036";
+
+$align-center: "\f037";
+
+$align-right: "\f038";
+
+$align-justify: "\f039";
+
+$list: "\f03a";
+
+$indent-left: "\f03b";
+
+$indent-right: "\f03c";
+
+$facetime-video: "\f03d";
+
+$picture: "\f03e";
+
+$pencil: "\f040";
+
+$map-marker: "\f041";
+
+$adjust: "\f042";
+
+$tint: "\f043";
+
+$edit: "\f044";
+
+$share: "\f045";
+
+$check: "\f046";
+
+$move: "\f047";
+
+$step-backward: "\f048";
+
+$fast-backward: "\f049";
+
+$backward: "\f04a";
+
+$play: "\f04b";
+
+$pause: "\f04c";
+
+$stop: "\f04d";
+
+$forward: "\f04e";
+
+$fast-forward: "\f050";
+
+$step-forward: "\f051";
+
+$eject: "\f052";
+
+$chevron-left: "\f053";
+
+$chevron-right: "\f054";
+
+$plus-sign: "\f055";
+
+$minus-sign: "\f056";
+
+$remove-sign: "\f057";
+
+$ok-sign: "\f058";
+
+$question-sign: "\f059";
+
+$info-sign: "\f05a";
+
+$screenshot: "\f05b";
+
+$remove-circle: "\f05c";
+
+$ok-circle: "\f05d";
+
+$ban-circle: "\f05e";
+
+$arrow-left: "\f060";
+
+$arrow-right: "\f061";
+
+$arrow-up: "\f062";
+
+$arrow-down: "\f063";
+
+$share-alt: "\f064";
+
+$resize-full: "\f065";
+
+$resize-small: "\f066";
+
+$plus: "\f067";
+
+$minus: "\f068";
+
+$asterisk: "\f069";
+
+$exclamation-sign: "\f06a";
+
+$gift: "\f06b";
+
+$leaf: "\f06c";
+
+$fire: "\f06d";
+
+$eye-open: "\f06e";
+
+$eye-close: "\f070";
+
+$warning-sign: "\f071";
+
+$plane: "\f072";
+
+$calendar: "\f073";
+
+$random: "\f074";
+
+$comment: "\f075";
+
+$magnet: "\f076";
+
+$chevron-up: "\f077";
+
+$chevron-down: "\f078";
+
+$retweet: "\f079";
+
+$shopping-cart: "\f07a";
+
+$folder-close: "\f07b";
+
+$folder-open: "\f07c";
+
+$resize-vertical: "\f07d";
+
+$resize-horizontal: "\f07e";
+
+$bar-chart: "\f080";
+
+$twitter-sign: "\f081";
+
+$facebook-sign: "\f082";
+
+$camera-retro: "\f083";
+
+$key: "\f084";
+
+$cogs: "\f085";
+
+$comments: "\f086";
+
+$thumbs-up-alt: "\f087";
+
+$thumbs-down-alt: "\f088";
+
+$star-half: "\f089";
+
+$heart-empty: "\f08a";
+
+$signout: "\f08b";
+
+$linkedin-sign: "\f08c";
+
+$pushpin: "\f08d";
+
+$external-link: "\f08e";
+
+$signin: "\f090";
+
+$trophy: "\f091";
+
+$github-sign: "\f092";
+
+$upload-alt: "\f093";
+
+$lemon: "\f094";
+
+$phone: "\f095";
+
+$check-empty: "\f096";
+
+$bookmark-empty: "\f097";
+
+$phone-sign: "\f098";
+
+$twitter: "\f099";
+
+$facebook: "\f09a";
+
+$github: "\f09b";
+
+$unlock: "\f09c";
+
+$credit-card: "\f09d";
+
+$rss: "\f09e";
+
+$hdd: "\f0a0";
+
+$bullhorn: "\f0a1";
+
+$bell: "\f0a2";
+
+$certificate: "\f0a3";
+
+$hand-right: "\f0a4";
+
+$hand-left: "\f0a5";
+
+$hand-up: "\f0a6";
+
+$hand-down: "\f0a7";
+
+$circle-arrow-left: "\f0a8";
+
+$circle-arrow-right: "\f0a9";
+
+$circle-arrow-up: "\f0aa";
+
+$circle-arrow-down: "\f0ab";
+
+$globe: "\f0ac";
+
+$wrench: "\f0ad";
+
+$tasks: "\f0ae";
+
+$filter: "\f0b0";
+
+$briefcase: "\f0b1";
+
+$fullscreen: "\f0b2";
+
+$group: "\f0c0";
+
+$link: "\f0c1";
+
+$cloud: "\f0c2";
+
+$beaker: "\f0c3";
+
+$cut: "\f0c4";
+
+$copy: "\f0c5";
+
+$paper-clip: "\f0c6";
+
+$save: "\f0c7";
+
+$sign-blank: "\f0c8";
+
+$reorder: "\f0c9";
+
+$list-ul: "\f0ca";
+
+$list-ol: "\f0cb";
+
+$strikethrough: "\f0cc";
+
+$underline: "\f0cd";
+
+$table: "\f0ce";
+
+$magic: "\f0d0";
+
+$truck: "\f0d1";
+
+$pinterest: "\f0d2";
+
+$pinterest-sign: "\f0d3";
+
+$google-plus-sign: "\f0d4";
+
+$google-plus: "\f0d5";
+
+$money: "\f0d6";
+
+$caret-down: "\f0d7";
+
+$caret-up: "\f0d8";
+
+$caret-left: "\f0d9";
+
+$caret-right: "\f0da";
+
+$columns: "\f0db";
+
+$sort: "\f0dc";
+
+$sort-down: "\f0dd";
+
+$sort-up: "\f0de";
+
+$envelope: "\f0e0";
+
+$linkedin: "\f0e1";
+
+$undo: "\f0e2";
+
+$legal: "\f0e3";
+
+$dashboard: "\f0e4";
+
+$comment-alt: "\f0e5";
+
+$comments-alt: "\f0e6";
+
+$bolt: "\f0e7";
+
+$sitemap: "\f0e8";
+
+$umbrella: "\f0e9";
+
+$paste: "\f0ea";
+
+$lightbulb: "\f0eb";
+
+$exchange: "\f0ec";
+
+$cloud-download: "\f0ed";
+
+$cloud-upload: "\f0ee";
+
+$user-md: "\f0f0";
+
+$stethoscope: "\f0f1";
+
+$suitcase: "\f0f2";
+
+$bell-alt: "\f0f3";
+
+$coffee: "\f0f4";
+
+$food: "\f0f5";
+
+$file-text-alt: "\f0f6";
+
+$building: "\f0f7";
+
+$hospital: "\f0f8";
+
+$ambulance: "\f0f9";
+
+$medkit: "\f0fa";
+
+$fighter-jet: "\f0fb";
+
+$beer: "\f0fc";
+
+$h-sign: "\f0fd";
+
+$plus-sign-alt: "\f0fe";
+
+$double-angle-left: "\f100";
+
+$double-angle-right: "\f101";
+
+$double-angle-up: "\f102";
+
+$double-angle-down: "\f103";
+
+$angle-left: "\f104";
+
+$angle-right: "\f105";
+
+$angle-up: "\f106";
+
+$angle-down: "\f107";
+
+$desktop: "\f108";
+
+$laptop: "\f109";
+
+$tablet: "\f10a";
+
+$mobile-phone: "\f10b";
+
+$circle-blank: "\f10c";
+
+$quote-left: "\f10d";
+
+$quote-right: "\f10e";
+
+$spinner: "\f110";
+
+$circle: "\f111";
+
+$reply: "\f112";
+
+$github-alt: "\f113";
+
+$folder-close-alt: "\f114";
+
+$folder-open-alt: "\f115";
+
+$expand-alt: "\f116";
+
+$collapse-alt: "\f117";
+
+$smile: "\f118";
+
+$frown: "\f119";
+
+$meh: "\f11a";
+
+$gamepad: "\f11b";
+
+$keyboard: "\f11c";
+
+$flag-alt: "\f11d";
+
+$flag-checkered: "\f11e";
+
+$terminal: "\f120";
+
+$code: "\f121";
+
+$reply-all: "\f122";
+
+$mail-reply-all: "\f122";
+
+$star-half-empty: "\f123";
+
+$location-arrow: "\f124";
+
+$crop: "\f125";
+
+$code-fork: "\f126";
+
+$unlink: "\f127";
+
+$question: "\f128";
+
+$info: "\f129";
+
+$exclamation: "\f12a";
+
+$superscript: "\f12b";
+
+$subscript: "\f12c";
+
+$eraser: "\f12d";
+
+$puzzle-piece: "\f12e";
+
+$microphone: "\f130";
+
+$microphone-off: "\f131";
+
+$shield: "\f132";
+
+$calendar-empty: "\f133";
+
+$fire-extinguisher: "\f134";
+
+$rocket: "\f135";
+
+$maxcdn: "\f136";
+
+$chevron-sign-left: "\f137";
+
+$chevron-sign-right: "\f138";
+
+$chevron-sign-up: "\f139";
+
+$chevron-sign-down: "\f13a";
+
+$html5: "\f13b";
+
+$css3: "\f13c";
+
+$anchor: "\f13d";
+
+$unlock-alt: "\f13e";
+
+$bullseye: "\f140";
+
+$ellipsis-horizontal: "\f141";
+
+$ellipsis-vertical: "\f142";
+
+$rss-sign: "\f143";
+
+$play-sign: "\f144";
+
+$ticket: "\f145";
+
+$minus-sign-alt: "\f146";
+
+$check-minus: "\f147";
+
+$level-up: "\f148";
+
+$level-down: "\f149";
+
+$check-sign: "\f14a";
+
+$edit-sign: "\f14b";
+
+$external-link-sign: "\f14c";
+
+$share-sign: "\f14d";
+
+$compass: "\f14e";
+
+$collapse: "\f150";
+
+$collapse-top: "\f151";
+
+$expand: "\f152";
+
+$eur: "\f153";
+
+$gbp: "\f154";
+
+$usd: "\f155";
+
+$inr: "\f156";
+
+$jpy: "\f157";
+
+$cny: "\f158";
+
+$krw: "\f159";
+
+$btc: "\f15a";
+
+$file: "\f15b";
+
+$file-text: "\f15c";
+
+$sort-by-alphabet: "\f15d";
+
+$sort-by-alphabet-alt: "\f15e";
+
+$sort-by-attributes: "\f160";
+
+$sort-by-attributes-alt: "\f161";
+
+$sort-by-order: "\f162";
+
+$sort-by-order-alt: "\f163";
+
+$thumbs-up: "\f164";
+
+$thumbs-down: "\f165";
+
+$youtube-sign: "\f166";
+
+$youtube: "\f167";
+
+$xing: "\f168";
+
+$xing-sign: "\f169";
+
+$youtube-play: "\f16a";
+
+$dropbox: "\f16b";
+
+$stackexchange: "\f16c";
+
+$instagram: "\f16d";
+
+$flickr: "\f16e";
+
+$adn: "\f170";
+
+$bitbucket: "\f171";
+
+$bitbucket-sign: "\f172";
+
+$tumblr: "\f173";
+
+$tumblr-sign: "\f174";
+
+$long-arrow-down: "\f175";
+
+$long-arrow-up: "\f176";
+
+$long-arrow-left: "\f177";
+
+$long-arrow-right: "\f178";
+
+$apple: "\f179";
+
+$windows: "\f17a";
+
+$android: "\f17b";
+
+$linux: "\f17c";
+
+$dribbble: "\f17d";
+
+$skype: "\f17e";
+
+$foursquare: "\f180";
+
+$trello: "\f181";
+
+$female: "\f182";
+
+$male: "\f183";
+
+$gittip: "\f184";
+
+$sun: "\f185";
+
+$moon: "\f186";
+
+$archive: "\f187";
+
+$bug: "\f188";
+
+$vk: "\f189";
+
+$weibo: "\f18a";
+
+$renren: "\f18b";
+
diff --git a/theme/scss/font-awesome-3.2.1/font-awesome-ie7.scss b/theme/scss/font-awesome-3.2.1/font-awesome-ie7.scss
new file mode 100644
index 0000000..0e236f6
--- /dev/null
+++ b/theme/scss/font-awesome-3.2.1/font-awesome-ie7.scss
@@ -0,0 +1,1953 @@
+/*!
+ * Font Awesome 3.2.1
+ * the iconic font designed for Bootstrap
+ * ------------------------------------------------------------------------------
+ * The full suite of pictographic icons, examples, and documentation can be
+ * found at http://fontawesome.io. Stay up to date on Twitter at
+ * http://twitter.com/fontawesome.
+ *
+ * License
+ * ------------------------------------------------------------------------------
+ * - The Font Awesome font is licensed under SIL OFL 1.1 -
+ * http://scripts.sil.org/OFL
+ * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License -
+ * http://opensource.org/licenses/mit-license.html
+ * - Font Awesome documentation licensed under CC BY 3.0 -
+ * http://creativecommons.org/licenses/by/3.0/
+ * - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
+ * "Font Awesome by Dave Gandy - http://fontawesome.io"
+ *
+ * Author - Dave Gandy
+ * ------------------------------------------------------------------------------
+ * Email: dave@fontawesome.io
+ * Twitter: http://twitter.com/davegandy
+ * Work: Lead Product Designer @ Kyruus - http://kyruus.com
+ */
+
+.icon-large {
+ font-size: (4em/3);
+ margin-top: -4px;
+ padding-top: 3px;
+ margin-bottom: -4px;
+ padding-bottom: 3px;
+ vertical-align: middle;
+}
+
+.nav {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ vertical-align: inherit;
+ margin-top: -4px;
+ padding-top: 3px;
+ margin-bottom: -4px;
+ padding-bottom: 3px;
+ &.icon-large {
+ vertical-align: -25%;
+ }
+ }
+}
+
+.nav-pills, .nav-tabs {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ &.icon-large {
+ line-height: .75em;
+ margin-top: -7px;
+ padding-top: 5px;
+ margin-bottom: -5px;
+ padding-bottom: 4px;
+ }
+ }
+}
+
+.btn {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ &.pull-left, &.pull-right { vertical-align: inherit; }
+ &.icon-large {
+ margin-top: -.5em;
+ }
+ }
+}
+
+a [class^="icon-"],
+a [class*=" icon-"] {
+ cursor: pointer;
+}
+
+@mixin ie7icon($inner) { *zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '#{$inner}'); }
+
+
+.icon-glass {
+ @include ie7icon('');
+}
+
+
+.icon-music {
+ @include ie7icon('');
+}
+
+
+.icon-search {
+ @include ie7icon('');
+}
+
+
+.icon-envelope-alt {
+ @include ie7icon('');
+}
+
+
+.icon-heart {
+ @include ie7icon('');
+}
+
+
+.icon-star {
+ @include ie7icon('');
+}
+
+
+.icon-star-empty {
+ @include ie7icon('');
+}
+
+
+.icon-user {
+ @include ie7icon('');
+}
+
+
+.icon-film {
+ @include ie7icon('');
+}
+
+
+.icon-th-large {
+ @include ie7icon('');
+}
+
+
+.icon-th {
+ @include ie7icon('');
+}
+
+
+.icon-th-list {
+ @include ie7icon('');
+}
+
+
+.icon-ok {
+ @include ie7icon('');
+}
+
+
+.icon-remove {
+ @include ie7icon('');
+}
+
+
+.icon-zoom-in {
+ @include ie7icon('');
+}
+
+
+.icon-zoom-out {
+ @include ie7icon('');
+}
+
+
+.icon-off {
+ @include ie7icon('');
+}
+
+.icon-power-off {
+ @include ie7icon('');
+}
+
+
+.icon-signal {
+ @include ie7icon('');
+}
+
+
+.icon-cog {
+ @include ie7icon('');
+}
+
+.icon-gear {
+ @include ie7icon('');
+}
+
+
+.icon-trash {
+ @include ie7icon('');
+}
+
+
+.icon-home {
+ @include ie7icon('');
+}
+
+
+.icon-file-alt {
+ @include ie7icon('');
+}
+
+
+.icon-time {
+ @include ie7icon('');
+}
+
+
+.icon-road {
+ @include ie7icon('');
+}
+
+
+.icon-download-alt {
+ @include ie7icon('');
+}
+
+
+.icon-download {
+ @include ie7icon('');
+}
+
+
+.icon-upload {
+ @include ie7icon('');
+}
+
+
+.icon-inbox {
+ @include ie7icon('');
+}
+
+
+.icon-play-circle {
+ @include ie7icon('');
+}
+
+
+.icon-repeat {
+ @include ie7icon('');
+}
+
+.icon-rotate-right {
+ @include ie7icon('');
+}
+
+
+.icon-refresh {
+ @include ie7icon('');
+}
+
+
+.icon-list-alt {
+ @include ie7icon('');
+}
+
+
+.icon-lock {
+ @include ie7icon('');
+}
+
+
+.icon-flag {
+ @include ie7icon('');
+}
+
+
+.icon-headphones {
+ @include ie7icon('');
+}
+
+
+.icon-volume-off {
+ @include ie7icon('');
+}
+
+
+.icon-volume-down {
+ @include ie7icon('');
+}
+
+
+.icon-volume-up {
+ @include ie7icon('');
+}
+
+
+.icon-qrcode {
+ @include ie7icon('');
+}
+
+
+.icon-barcode {
+ @include ie7icon('');
+}
+
+
+.icon-tag {
+ @include ie7icon('');
+}
+
+
+.icon-tags {
+ @include ie7icon('');
+}
+
+
+.icon-book {
+ @include ie7icon('');
+}
+
+
+.icon-bookmark {
+ @include ie7icon('');
+}
+
+
+.icon-print {
+ @include ie7icon('');
+}
+
+
+.icon-camera {
+ @include ie7icon('');
+}
+
+
+.icon-font {
+ @include ie7icon('');
+}
+
+
+.icon-bold {
+ @include ie7icon('');
+}
+
+
+.icon-italic {
+ @include ie7icon('');
+}
+
+
+.icon-text-height {
+ @include ie7icon('');
+}
+
+
+.icon-text-width {
+ @include ie7icon('');
+}
+
+
+.icon-align-left {
+ @include ie7icon('');
+}
+
+
+.icon-align-center {
+ @include ie7icon('');
+}
+
+
+.icon-align-right {
+ @include ie7icon('');
+}
+
+
+.icon-align-justify {
+ @include ie7icon('');
+}
+
+
+.icon-list {
+ @include ie7icon('');
+}
+
+
+.icon-indent-left {
+ @include ie7icon('');
+}
+
+
+.icon-indent-right {
+ @include ie7icon('');
+}
+
+
+.icon-facetime-video {
+ @include ie7icon('');
+}
+
+
+.icon-picture {
+ @include ie7icon('');
+}
+
+
+.icon-pencil {
+ @include ie7icon('');
+}
+
+
+.icon-map-marker {
+ @include ie7icon('');
+}
+
+
+.icon-adjust {
+ @include ie7icon('');
+}
+
+
+.icon-tint {
+ @include ie7icon('');
+}
+
+
+.icon-edit {
+ @include ie7icon('');
+}
+
+
+.icon-share {
+ @include ie7icon('');
+}
+
+
+.icon-check {
+ @include ie7icon('');
+}
+
+
+.icon-move {
+ @include ie7icon('');
+}
+
+
+.icon-step-backward {
+ @include ie7icon('');
+}
+
+
+.icon-fast-backward {
+ @include ie7icon('');
+}
+
+
+.icon-backward {
+ @include ie7icon('');
+}
+
+
+.icon-play {
+ @include ie7icon('');
+}
+
+
+.icon-pause {
+ @include ie7icon('');
+}
+
+
+.icon-stop {
+ @include ie7icon('');
+}
+
+
+.icon-forward {
+ @include ie7icon('');
+}
+
+
+.icon-fast-forward {
+ @include ie7icon('');
+}
+
+
+.icon-step-forward {
+ @include ie7icon('');
+}
+
+
+.icon-eject {
+ @include ie7icon('');
+}
+
+
+.icon-chevron-left {
+ @include ie7icon('');
+}
+
+
+.icon-chevron-right {
+ @include ie7icon('');
+}
+
+
+.icon-plus-sign {
+ @include ie7icon('');
+}
+
+
+.icon-minus-sign {
+ @include ie7icon('');
+}
+
+
+.icon-remove-sign {
+ @include ie7icon('');
+}
+
+
+.icon-ok-sign {
+ @include ie7icon('');
+}
+
+
+.icon-question-sign {
+ @include ie7icon('');
+}
+
+
+.icon-info-sign {
+ @include ie7icon('');
+}
+
+
+.icon-screenshot {
+ @include ie7icon('');
+}
+
+
+.icon-remove-circle {
+ @include ie7icon('');
+}
+
+
+.icon-ok-circle {
+ @include ie7icon('');
+}
+
+
+.icon-ban-circle {
+ @include ie7icon('');
+}
+
+
+.icon-arrow-left {
+ @include ie7icon('');
+}
+
+
+.icon-arrow-right {
+ @include ie7icon('');
+}
+
+
+.icon-arrow-up {
+ @include ie7icon('');
+}
+
+
+.icon-arrow-down {
+ @include ie7icon('');
+}
+
+
+.icon-share-alt {
+ @include ie7icon('');
+}
+
+.icon-mail-forward {
+ @include ie7icon('');
+}
+
+
+.icon-resize-full {
+ @include ie7icon('');
+}
+
+
+.icon-resize-small {
+ @include ie7icon('');
+}
+
+
+.icon-plus {
+ @include ie7icon('');
+}
+
+
+.icon-minus {
+ @include ie7icon('');
+}
+
+
+.icon-asterisk {
+ @include ie7icon('');
+}
+
+
+.icon-exclamation-sign {
+ @include ie7icon('');
+}
+
+
+.icon-gift {
+ @include ie7icon('');
+}
+
+
+.icon-leaf {
+ @include ie7icon('');
+}
+
+
+.icon-fire {
+ @include ie7icon('');
+}
+
+
+.icon-eye-open {
+ @include ie7icon('');
+}
+
+
+.icon-eye-close {
+ @include ie7icon('');
+}
+
+
+.icon-warning-sign {
+ @include ie7icon('');
+}
+
+
+.icon-plane {
+ @include ie7icon('');
+}
+
+
+.icon-calendar {
+ @include ie7icon('');
+}
+
+
+.icon-random {
+ @include ie7icon('');
+}
+
+
+.icon-comment {
+ @include ie7icon('');
+}
+
+
+.icon-magnet {
+ @include ie7icon('');
+}
+
+
+.icon-chevron-up {
+ @include ie7icon('');
+}
+
+
+.icon-chevron-down {
+ @include ie7icon('');
+}
+
+
+.icon-retweet {
+ @include ie7icon('');
+}
+
+
+.icon-shopping-cart {
+ @include ie7icon('');
+}
+
+
+.icon-folder-close {
+ @include ie7icon('');
+}
+
+
+.icon-folder-open {
+ @include ie7icon('');
+}
+
+
+.icon-resize-vertical {
+ @include ie7icon('');
+}
+
+
+.icon-resize-horizontal {
+ @include ie7icon('');
+}
+
+
+.icon-bar-chart {
+ @include ie7icon('');
+}
+
+
+.icon-twitter-sign {
+ @include ie7icon('');
+}
+
+
+.icon-facebook-sign {
+ @include ie7icon('');
+}
+
+
+.icon-camera-retro {
+ @include ie7icon('');
+}
+
+
+.icon-key {
+ @include ie7icon('');
+}
+
+
+.icon-cogs {
+ @include ie7icon('');
+}
+
+.icon-gears {
+ @include ie7icon('');
+}
+
+
+.icon-comments {
+ @include ie7icon('');
+}
+
+
+.icon-thumbs-up-alt {
+ @include ie7icon('');
+}
+
+
+.icon-thumbs-down-alt {
+ @include ie7icon('');
+}
+
+
+.icon-star-half {
+ @include ie7icon('');
+}
+
+
+.icon-heart-empty {
+ @include ie7icon('');
+}
+
+
+.icon-signout {
+ @include ie7icon('');
+}
+
+
+.icon-linkedin-sign {
+ @include ie7icon('');
+}
+
+
+.icon-pushpin {
+ @include ie7icon('');
+}
+
+
+.icon-external-link {
+ @include ie7icon('');
+}
+
+
+.icon-signin {
+ @include ie7icon('');
+}
+
+
+.icon-trophy {
+ @include ie7icon('');
+}
+
+
+.icon-github-sign {
+ @include ie7icon('');
+}
+
+
+.icon-upload-alt {
+ @include ie7icon('');
+}
+
+
+.icon-lemon {
+ @include ie7icon('');
+}
+
+
+.icon-phone {
+ @include ie7icon('');
+}
+
+
+.icon-check-empty {
+ @include ie7icon('');
+}
+
+.icon-unchecked {
+ @include ie7icon('');
+}
+
+
+.icon-bookmark-empty {
+ @include ie7icon('');
+}
+
+
+.icon-phone-sign {
+ @include ie7icon('');
+}
+
+
+.icon-twitter {
+ @include ie7icon('');
+}
+
+
+.icon-facebook {
+ @include ie7icon('');
+}
+
+
+.icon-github {
+ @include ie7icon('');
+}
+
+
+.icon-unlock {
+ @include ie7icon('');
+}
+
+
+.icon-credit-card {
+ @include ie7icon('');
+}
+
+
+.icon-rss {
+ @include ie7icon('');
+}
+
+
+.icon-hdd {
+ @include ie7icon('');
+}
+
+
+.icon-bullhorn {
+ @include ie7icon('');
+}
+
+
+.icon-bell {
+ @include ie7icon('');
+}
+
+
+.icon-certificate {
+ @include ie7icon('');
+}
+
+
+.icon-hand-right {
+ @include ie7icon('');
+}
+
+
+.icon-hand-left {
+ @include ie7icon('');
+}
+
+
+.icon-hand-up {
+ @include ie7icon('');
+}
+
+
+.icon-hand-down {
+ @include ie7icon('');
+}
+
+
+.icon-circle-arrow-left {
+ @include ie7icon('');
+}
+
+
+.icon-circle-arrow-right {
+ @include ie7icon('');
+}
+
+
+.icon-circle-arrow-up {
+ @include ie7icon('');
+}
+
+
+.icon-circle-arrow-down {
+ @include ie7icon('');
+}
+
+
+.icon-globe {
+ @include ie7icon('');
+}
+
+
+.icon-wrench {
+ @include ie7icon('');
+}
+
+
+.icon-tasks {
+ @include ie7icon('');
+}
+
+
+.icon-filter {
+ @include ie7icon('');
+}
+
+
+.icon-briefcase {
+ @include ie7icon('');
+}
+
+
+.icon-fullscreen {
+ @include ie7icon('');
+}
+
+
+.icon-group {
+ @include ie7icon('');
+}
+
+
+.icon-link {
+ @include ie7icon('');
+}
+
+
+.icon-cloud {
+ @include ie7icon('');
+}
+
+
+.icon-beaker {
+ @include ie7icon('');
+}
+
+
+.icon-cut {
+ @include ie7icon('');
+}
+
+
+.icon-copy {
+ @include ie7icon('');
+}
+
+
+.icon-paper-clip {
+ @include ie7icon('');
+}
+
+.icon-paperclip {
+ @include ie7icon('');
+}
+
+
+.icon-save {
+ @include ie7icon('');
+}
+
+
+.icon-sign-blank {
+ @include ie7icon('');
+}
+
+
+.icon-reorder {
+ @include ie7icon('');
+}
+
+
+.icon-list-ul {
+ @include ie7icon('');
+}
+
+
+.icon-list-ol {
+ @include ie7icon('');
+}
+
+
+.icon-strikethrough {
+ @include ie7icon('');
+}
+
+
+.icon-underline {
+ @include ie7icon('');
+}
+
+
+.icon-table {
+ @include ie7icon('');
+}
+
+
+.icon-magic {
+ @include ie7icon('');
+}
+
+
+.icon-truck {
+ @include ie7icon('');
+}
+
+
+.icon-pinterest {
+ @include ie7icon('');
+}
+
+
+.icon-pinterest-sign {
+ @include ie7icon('');
+}
+
+
+.icon-google-plus-sign {
+ @include ie7icon('');
+}
+
+
+.icon-google-plus {
+ @include ie7icon('');
+}
+
+
+.icon-money {
+ @include ie7icon('');
+}
+
+
+.icon-caret-down {
+ @include ie7icon('');
+}
+
+
+.icon-caret-up {
+ @include ie7icon('');
+}
+
+
+.icon-caret-left {
+ @include ie7icon('');
+}
+
+
+.icon-caret-right {
+ @include ie7icon('');
+}
+
+
+.icon-columns {
+ @include ie7icon('');
+}
+
+
+.icon-sort {
+ @include ie7icon('');
+}
+
+
+.icon-sort-down {
+ @include ie7icon('');
+}
+
+
+.icon-sort-up {
+ @include ie7icon('');
+}
+
+
+.icon-envelope {
+ @include ie7icon('');
+}
+
+
+.icon-linkedin {
+ @include ie7icon('');
+}
+
+
+.icon-undo {
+ @include ie7icon('');
+}
+
+.icon-rotate-left {
+ @include ie7icon('');
+}
+
+
+.icon-legal {
+ @include ie7icon('');
+}
+
+
+.icon-dashboard {
+ @include ie7icon('');
+}
+
+
+.icon-comment-alt {
+ @include ie7icon('');
+}
+
+
+.icon-comments-alt {
+ @include ie7icon('');
+}
+
+
+.icon-bolt {
+ @include ie7icon('');
+}
+
+
+.icon-sitemap {
+ @include ie7icon('');
+}
+
+
+.icon-umbrella {
+ @include ie7icon('');
+}
+
+
+.icon-paste {
+ @include ie7icon('');
+}
+
+
+.icon-lightbulb {
+ @include ie7icon('');
+}
+
+
+.icon-exchange {
+ @include ie7icon('');
+}
+
+
+.icon-cloud-download {
+ @include ie7icon('');
+}
+
+
+.icon-cloud-upload {
+ @include ie7icon('');
+}
+
+
+.icon-user-md {
+ @include ie7icon('');
+}
+
+
+.icon-stethoscope {
+ @include ie7icon('');
+}
+
+
+.icon-suitcase {
+ @include ie7icon('');
+}
+
+
+.icon-bell-alt {
+ @include ie7icon('');
+}
+
+
+.icon-coffee {
+ @include ie7icon('');
+}
+
+
+.icon-food {
+ @include ie7icon('');
+}
+
+
+.icon-file-text-alt {
+ @include ie7icon('');
+}
+
+
+.icon-building {
+ @include ie7icon('');
+}
+
+
+.icon-hospital {
+ @include ie7icon('');
+}
+
+
+.icon-ambulance {
+ @include ie7icon('');
+}
+
+
+.icon-medkit {
+ @include ie7icon('');
+}
+
+
+.icon-fighter-jet {
+ @include ie7icon('');
+}
+
+
+.icon-beer {
+ @include ie7icon('');
+}
+
+
+.icon-h-sign {
+ @include ie7icon('');
+}
+
+
+.icon-plus-sign-alt {
+ @include ie7icon('');
+}
+
+
+.icon-double-angle-left {
+ @include ie7icon('');
+}
+
+
+.icon-double-angle-right {
+ @include ie7icon('');
+}
+
+
+.icon-double-angle-up {
+ @include ie7icon('');
+}
+
+
+.icon-double-angle-down {
+ @include ie7icon('');
+}
+
+
+.icon-angle-left {
+ @include ie7icon('');
+}
+
+
+.icon-angle-right {
+ @include ie7icon('');
+}
+
+
+.icon-angle-up {
+ @include ie7icon('');
+}
+
+
+.icon-angle-down {
+ @include ie7icon('');
+}
+
+
+.icon-desktop {
+ @include ie7icon('');
+}
+
+
+.icon-laptop {
+ @include ie7icon('');
+}
+
+
+.icon-tablet {
+ @include ie7icon('');
+}
+
+
+.icon-mobile-phone {
+ @include ie7icon('');
+}
+
+
+.icon-circle-blank {
+ @include ie7icon('');
+}
+
+
+.icon-quote-left {
+ @include ie7icon('');
+}
+
+
+.icon-quote-right {
+ @include ie7icon('');
+}
+
+
+.icon-spinner {
+ @include ie7icon('');
+}
+
+
+.icon-circle {
+ @include ie7icon('');
+}
+
+
+.icon-reply {
+ @include ie7icon('');
+}
+
+.icon-mail-reply {
+ @include ie7icon('');
+}
+
+
+.icon-github-alt {
+ @include ie7icon('');
+}
+
+
+.icon-folder-close-alt {
+ @include ie7icon('');
+}
+
+
+.icon-folder-open-alt {
+ @include ie7icon('');
+}
+
+
+.icon-expand-alt {
+ @include ie7icon('');
+}
+
+
+.icon-collapse-alt {
+ @include ie7icon('');
+}
+
+
+.icon-smile {
+ @include ie7icon('');
+}
+
+
+.icon-frown {
+ @include ie7icon('');
+}
+
+
+.icon-meh {
+ @include ie7icon('');
+}
+
+
+.icon-gamepad {
+ @include ie7icon('');
+}
+
+
+.icon-keyboard {
+ @include ie7icon('');
+}
+
+
+.icon-flag-alt {
+ @include ie7icon('');
+}
+
+
+.icon-flag-checkered {
+ @include ie7icon('');
+}
+
+
+.icon-terminal {
+ @include ie7icon('');
+}
+
+
+.icon-code {
+ @include ie7icon('');
+}
+
+
+.icon-reply-all {
+ @include ie7icon('');
+}
+
+
+.icon-mail-reply-all {
+ @include ie7icon('');
+}
+
+
+.icon-star-half-empty {
+ @include ie7icon('');
+}
+
+.icon-star-half-full {
+ @include ie7icon('');
+}
+
+
+.icon-location-arrow {
+ @include ie7icon('');
+}
+
+
+.icon-crop {
+ @include ie7icon('');
+}
+
+
+.icon-code-fork {
+ @include ie7icon('');
+}
+
+
+.icon-unlink {
+ @include ie7icon('');
+}
+
+
+.icon-question {
+ @include ie7icon('');
+}
+
+
+.icon-info {
+ @include ie7icon('');
+}
+
+
+.icon-exclamation {
+ @include ie7icon('');
+}
+
+
+.icon-superscript {
+ @include ie7icon('');
+}
+
+
+.icon-subscript {
+ @include ie7icon('');
+}
+
+
+.icon-eraser {
+ @include ie7icon('');
+}
+
+
+.icon-puzzle-piece {
+ @include ie7icon('');
+}
+
+
+.icon-microphone {
+ @include ie7icon('');
+}
+
+
+.icon-microphone-off {
+ @include ie7icon('');
+}
+
+
+.icon-shield {
+ @include ie7icon('');
+}
+
+
+.icon-calendar-empty {
+ @include ie7icon('');
+}
+
+
+.icon-fire-extinguisher {
+ @include ie7icon('');
+}
+
+
+.icon-rocket {
+ @include ie7icon('');
+}
+
+
+.icon-maxcdn {
+ @include ie7icon('');
+}
+
+
+.icon-chevron-sign-left {
+ @include ie7icon('');
+}
+
+
+.icon-chevron-sign-right {
+ @include ie7icon('');
+}
+
+
+.icon-chevron-sign-up {
+ @include ie7icon('');
+}
+
+
+.icon-chevron-sign-down {
+ @include ie7icon('');
+}
+
+
+.icon-html5 {
+ @include ie7icon('');
+}
+
+
+.icon-css3 {
+ @include ie7icon('');
+}
+
+
+.icon-anchor {
+ @include ie7icon('');
+}
+
+
+.icon-unlock-alt {
+ @include ie7icon('');
+}
+
+
+.icon-bullseye {
+ @include ie7icon('');
+}
+
+
+.icon-ellipsis-horizontal {
+ @include ie7icon('');
+}
+
+
+.icon-ellipsis-vertical {
+ @include ie7icon('');
+}
+
+
+.icon-rss-sign {
+ @include ie7icon('');
+}
+
+
+.icon-play-sign {
+ @include ie7icon('');
+}
+
+
+.icon-ticket {
+ @include ie7icon('');
+}
+
+
+.icon-minus-sign-alt {
+ @include ie7icon('');
+}
+
+
+.icon-check-minus {
+ @include ie7icon('');
+}
+
+
+.icon-level-up {
+ @include ie7icon('');
+}
+
+
+.icon-level-down {
+ @include ie7icon('');
+}
+
+
+.icon-check-sign {
+ @include ie7icon('');
+}
+
+
+.icon-edit-sign {
+ @include ie7icon('');
+}
+
+
+.icon-external-link-sign {
+ @include ie7icon('');
+}
+
+
+.icon-share-sign {
+ @include ie7icon('');
+}
+
+
+.icon-compass {
+ @include ie7icon('');
+}
+
+
+.icon-collapse {
+ @include ie7icon('');
+}
+
+
+.icon-collapse-top {
+ @include ie7icon('');
+}
+
+
+.icon-expand {
+ @include ie7icon('');
+}
+
+
+.icon-eur {
+ @include ie7icon('');
+}
+
+.icon-euro {
+ @include ie7icon('');
+}
+
+
+.icon-gbp {
+ @include ie7icon('');
+}
+
+
+.icon-usd {
+ @include ie7icon('');
+}
+
+.icon-dollar {
+ @include ie7icon('');
+}
+
+
+.icon-inr {
+ @include ie7icon('');
+}
+
+.icon-rupee {
+ @include ie7icon('');
+}
+
+
+.icon-jpy {
+ @include ie7icon('');
+}
+
+.icon-yen {
+ @include ie7icon('');
+}
+
+
+.icon-cny {
+ @include ie7icon('');
+}
+
+.icon-renminbi {
+ @include ie7icon('');
+}
+
+
+.icon-krw {
+ @include ie7icon('');
+}
+
+.icon-won {
+ @include ie7icon('');
+}
+
+
+.icon-btc {
+ @include ie7icon('');
+}
+
+.icon-bitcoin {
+ @include ie7icon('');
+}
+
+
+.icon-file {
+ @include ie7icon('');
+}
+
+
+.icon-file-text {
+ @include ie7icon('');
+}
+
+
+.icon-sort-by-alphabet {
+ @include ie7icon('');
+}
+
+
+.icon-sort-by-alphabet-alt {
+ @include ie7icon('');
+}
+
+
+.icon-sort-by-attributes {
+ @include ie7icon('');
+}
+
+
+.icon-sort-by-attributes-alt {
+ @include ie7icon('');
+}
+
+
+.icon-sort-by-order {
+ @include ie7icon('');
+}
+
+
+.icon-sort-by-order-alt {
+ @include ie7icon('');
+}
+
+
+.icon-thumbs-up {
+ @include ie7icon('');
+}
+
+
+.icon-thumbs-down {
+ @include ie7icon('');
+}
+
+
+.icon-youtube-sign {
+ @include ie7icon('');
+}
+
+
+.icon-youtube {
+ @include ie7icon('');
+}
+
+
+.icon-xing {
+ @include ie7icon('');
+}
+
+
+.icon-xing-sign {
+ @include ie7icon('');
+}
+
+
+.icon-youtube-play {
+ @include ie7icon('');
+}
+
+
+.icon-dropbox {
+ @include ie7icon('');
+}
+
+
+.icon-stackexchange {
+ @include ie7icon('');
+}
+
+
+.icon-instagram {
+ @include ie7icon('');
+}
+
+
+.icon-flickr {
+ @include ie7icon('');
+}
+
+
+.icon-adn {
+ @include ie7icon('');
+}
+
+
+.icon-bitbucket {
+ @include ie7icon('');
+}
+
+
+.icon-bitbucket-sign {
+ @include ie7icon('');
+}
+
+
+.icon-tumblr {
+ @include ie7icon('');
+}
+
+
+.icon-tumblr-sign {
+ @include ie7icon('');
+}
+
+
+.icon-long-arrow-down {
+ @include ie7icon('');
+}
+
+
+.icon-long-arrow-up {
+ @include ie7icon('');
+}
+
+
+.icon-long-arrow-left {
+ @include ie7icon('');
+}
+
+
+.icon-long-arrow-right {
+ @include ie7icon('');
+}
+
+
+.icon-apple {
+ @include ie7icon('');
+}
+
+
+.icon-windows {
+ @include ie7icon('');
+}
+
+
+.icon-android {
+ @include ie7icon('');
+}
+
+
+.icon-linux {
+ @include ie7icon('');
+}
+
+
+.icon-dribbble {
+ @include ie7icon('');
+}
+
+
+.icon-skype {
+ @include ie7icon('');
+}
+
+
+.icon-foursquare {
+ @include ie7icon('');
+}
+
+
+.icon-trello {
+ @include ie7icon('');
+}
+
+
+.icon-female {
+ @include ie7icon('');
+}
+
+
+.icon-male {
+ @include ie7icon('');
+}
+
+
+.icon-gittip {
+ @include ie7icon('');
+}
+
+
+.icon-sun {
+ @include ie7icon('');
+}
+
+
+.icon-moon {
+ @include ie7icon('');
+}
+
+
+.icon-archive {
+ @include ie7icon('');
+}
+
+
+.icon-bug {
+ @include ie7icon('');
+}
+
+
+.icon-vk {
+ @include ie7icon('');
+}
+
+
+.icon-weibo {
+ @include ie7icon('');
+}
+
+
+.icon-renren {
+ @include ie7icon('');
+}
+
+
diff --git a/theme/scss/font-awesome-3.2.1/font-awesome.scss b/theme/scss/font-awesome-3.2.1/font-awesome.scss
new file mode 100644
index 0000000..e5903d8
--- /dev/null
+++ b/theme/scss/font-awesome-3.2.1/font-awesome.scss
@@ -0,0 +1,33 @@
+/*!
+ * Font Awesome 3.2.1
+ * the iconic font designed for Bootstrap
+ * ------------------------------------------------------------------------------
+ * The full suite of pictographic icons, examples, and documentation can be
+ * found at http://fontawesome.io. Stay up to date on Twitter at
+ * http://twitter.com/fontawesome.
+ *
+ * License
+ * ------------------------------------------------------------------------------
+ * - The Font Awesome font is licensed under SIL OFL 1.1 -
+ * http://scripts.sil.org/OFL
+ * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License -
+ * http://opensource.org/licenses/mit-license.html
+ * - Font Awesome documentation licensed under CC BY 3.0 -
+ * http://creativecommons.org/licenses/by/3.0/
+ * - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
+ * "Font Awesome by Dave Gandy - http://fontawesome.io"
+ *
+ * Author - Dave Gandy
+ * ------------------------------------------------------------------------------
+ * Email: dave@fontawesome.io
+ * Twitter: http://twitter.com/davegandy
+ * Work: Lead Product Designer @ Kyruus - http://kyruus.com
+ */
+
+@import "variables";
+@import "mixins";
+@import "path";
+@import "core";
+@import "bootstrap";
+@import "extras";
+@import "icons";
diff --git a/theme/scss/kyruus-bootstrap/_alerts.scss b/theme/scss/kyruus-bootstrap/_alerts.scss
new file mode 100644
index 0000000..0d43d44
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_alerts.scss
@@ -0,0 +1,62 @@
+//
+// Alerts
+// --------------------------------------------------
+
+
+// Base styles
+// -------------------------
+
+.alert-large {
+ padding: 30px 40px;
+}
+
+// Alternate styles
+// -------------------------
+
+.alert-inverse {
+ background-color: $inverseBackground;
+ border-color: $inverseBorder;
+ color: $inverseText;
+ text-shadow: 0 1px 0 rgba(0,0,0,.5);
+}
+
+// Utility classes
+.alert-warning, .alert-success, .alert-error, .alert-info {
+ a { font-weight: bold; }
+}
+
+.alert-warning {
+// a {
+// color: $yellowDark;
+// &:hover { color: @yellowDarker; }
+// }
+ .muted { color: mix($warningBackground, $warningText, 50%); }
+ .progress .bar { @include gradient-vertical(mix($warningBackground, $warningText, 80%), mix($warningBackground, $warningText, 50%)); }
+}
+
+.alert-error {
+// a {
+// color: $red;
+// &:hover { color: $redDark; }
+// }
+ .muted { color: mix($errorBackground, $errorText, 50%); }
+ .progress .bar { @include gradient-vertical(mix($errorBackground, $errorText, 80%), mix($errorBackground, $errorText, 40%)); }
+}
+
+.alert-info {
+// a {
+// color: $blue;
+// &:hover { color: $blueDark; }
+// }
+ .muted { color: mix($infoBackground, $infoText, 50%); }
+ .progress .bar { @include gradient-vertical(mix($infoBackground, $infoText, 80%), mix($infoBackground, $infoText, 40%)); }
+}
+
+.alert-success {
+// a {
+// color: $greenDark;
+// &:hover { color: $greenDarker; }
+// }
+ .muted { color: mix($successBackground, $successText, 50%); }
+ .progress .bar { @include gradient-vertical(mix($successBackground, $successText, 80%), mix($successBackground, $successText, 40%)); }
+}
diff --git a/theme/scss/kyruus-bootstrap/_button-groups.scss b/theme/scss/kyruus-bootstrap/_button-groups.scss
new file mode 100755
index 0000000..6dde741
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_button-groups.scss
@@ -0,0 +1,50 @@
+//
+// Kyruus button groups
+// --------------------------------------------------
+
+
+// Reset fonts for other sizes
+.btn-group > .btn-xlarge {
+ font-size: $baseFontSize + 6px;
+}
+
+// Reset corners for large buttons
+.btn-group > .btn.xlarge:first-child {
+ margin-left: 0;
+ -webkit-border-top-left-radius: 7px;
+ -moz-border-radius-topleft: 7px;
+ border-top-left-radius: 7px;
+ -webkit-border-bottom-left-radius: 7px;
+ -moz-border-radius-bottomleft: 7px;
+ border-bottom-left-radius: 7px;
+}
+.btn-group > .btn.xlarge:last-child,
+.btn-group > .xlarge.dropdown-toggle {
+ -webkit-border-top-right-radius: 7px;
+ -moz-border-radius-topright: 7px;
+ border-top-right-radius: 7px;
+ -webkit-border-bottom-right-radius: 7px;
+ -moz-border-radius-bottomright: 7px;
+ border-bottom-right-radius: 7px;
+}
+
+// Split button dropdowns
+// ----------------------
+
+// Give the line between buttons some depth
+.btn-group > .btn-xlarge + .dropdown-toggle {
+ padding-left: 16px;
+ padding-right: 16px;
+ *padding-top: 9px;
+ *padding-bottom: 9px;
+}
+
+// Vertical button groups
+// ----------------------
+
+.btn-group-vertical .btn-large:first-child {
+ @include border-radius(7px 7px 0 0);
+}
+.btn-group-vertical .btn-large:last-child {
+ @include border-radius(0 0 7px 7px);
+}
diff --git a/theme/scss/kyruus-bootstrap/_buttons.scss b/theme/scss/kyruus-bootstrap/_buttons.scss
new file mode 100755
index 0000000..3f0b2ae
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_buttons.scss
@@ -0,0 +1,83 @@
+//
+// Buttons
+// --------------------------------------------------
+
+
+// Base styles
+// --------------------------------------------------
+
+// Core
+.btn {
+ font-weight: bold;
+ font-family: $sansFontFamily;
+}
+
+
+// Button Sizes
+// --------------------------------------------------
+
+// X-Large
+.btn-xl {
+ padding: $paddingXL;
+ font-size: $fontSizeXL;
+ @include border-radius($borderRadiusXL);
+}
+
+
+// Cross-browser Jank
+// --------------------------------------------------
+
+button.btn,
+input[type="submit"].btn {
+
+ &.btn-xl {
+ *padding-top: 9px;
+ *padding-bottom: 9px;
+ }
+}
+
+// Block button
+.btn-block {
+ display: block;
+ width: 100%;
+ padding-left: 0;
+ padding-right: 0;
+ @include box-sizing(border-box);
+}
+
+
+// Link buttons
+// --------------------------------------------------
+// Must call again to reset style for Kyruus Bootstrap
+
+// Make a button look and behave like a link
+.btn-link,
+.btn-link:active {
+ font-weight: normal;
+ background-color: transparent;
+ background-image: none;
+}
+.btn-link {
+ border-color: transparent;
+ cursor: pointer;
+ color: $linkColor;
+}
+.btn-link:hover {
+ color: $linkColorHover;
+ background-color: transparent;
+}
+
+.btn-list {
+ h4 { margin: 0 0 15px; }
+ .btn {
+ margin-bottom: 10px;
+ text-align: left;
+ i {
+ width: 1.1em;
+ display: inline-block;
+ margin-right: .3em;
+ text-align: center;
+ margin-left: 22px;
+ }
+ }
+}
diff --git a/theme/scss/kyruus-bootstrap/_close.scss b/theme/scss/kyruus-bootstrap/_close.scss
new file mode 100755
index 0000000..93a7a29
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_close.scss
@@ -0,0 +1,14 @@
+//
+// Kyruus close icons
+// --------------------------------------------------
+// Resets the .close style to play nice with Font Awesome
+
+.close {
+ font-size: inherit;
+ line-height: inherit;
+}
+
+.alert .close {
+ line-height: inherit;
+ padding-top: 2px;
+}
diff --git a/theme/scss/kyruus-bootstrap/_dropdowns.scss b/theme/scss/kyruus-bootstrap/_dropdowns.scss
new file mode 100755
index 0000000..9b1a9dd
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_dropdowns.scss
@@ -0,0 +1,14 @@
+//
+// Kyruus dropdown menus
+// --------------------------------------------------
+
+
+// overwrites dropdown submenus with a Font Awesome icon-caret-right
+.dropdown-submenu > a:after {
+ font-family: FontAwesome;
+ content: "\f0da";
+ width: auto;
+ height: auto;
+ border: none;
+ margin-top: 0;
+}
diff --git a/theme/scss/kyruus-bootstrap/_font-awesome.scss b/theme/scss/kyruus-bootstrap/_font-awesome.scss
new file mode 100755
index 0000000..2fadd74
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_font-awesome.scss
@@ -0,0 +1,78 @@
+//
+// Kyruus Font Awesome styles
+// --------------------------------------------------
+
+
+.btn.btn-xlarge {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ vertical-align: -7%;
+
+ }
+}
+
+.icon-fixed-width {
+ width: 1.1em;
+ display: inline-block;
+}
+
+.icon-6x {
+ font-size: 6em;
+ &.icon-border {
+ padding: .1em .2em;
+ border-width: 6px;
+ @include border-radius(8px);
+ }
+}
+
+.icon-7x {
+ font-size: 7em;
+ &.icon-border {
+ padding: .1em .2em;
+ border-width: 7px;
+ @include border-radius(9px);
+ }
+}
+
+.icon-8x {
+ font-size: 8em;
+ &.icon-border {
+ padding: .1em .2em;
+ border-width: 8px;
+ @include border-radius(10px);
+ }
+}
+
+// allows usage of the hide class directly on font awesome icons
+[class^="icon-"],
+[class*=" icon-"] {
+ &.hide { display:none; }
+}
+
+// fixes font awesome underlining with icons embedded inside anchor tags
+a {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ &, &:before { display: inline; }
+ }
+}
+
+.btn.btn-xl {
+ [class^="icon-"],
+ [class*=" icon-"] {
+ &.icon-large:before {
+ vertical-align: -15%;
+ }
+ margin-top: 0; // overrides bootstrap default
+ &.pull-left, &.pull-right {
+ &.icon-2x { margin-top: .05em; }
+ }
+ &.pull-left.icon-2x { margin-right: .2em; }
+ &.pull-right.icon-2x { margin-left: .2em; }
+ }
+}
+
+.icon-1x {
+ font-size: $baseFontSize;
+ vertical-align: middle;
+}
diff --git a/theme/scss/kyruus-bootstrap/_fonts.scss b/theme/scss/kyruus-bootstrap/_fonts.scss
new file mode 100755
index 0000000..4a8c542
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_fonts.scss
@@ -0,0 +1,35 @@
+@font-face {
+ font-family: 'museo-slab';
+ src: url('#{$fontPath}/museo-slab/museo_slab_300-webfont.eot');
+ src: url('#{$fontPath}/museo-slab/museo_slab_300-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$fontPath}/museo-slab/museo_slab_300-webfont.ttf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'museo-slab';
+ src: url('#{$fontPath}/museo-slab/museo_slab_500-webfont.eot');
+ src: url('#{$fontPath}/museo-slab/museo_slab_500-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$fontPath}/museo-slab/museo_slab_500-webfont.ttf') format('truetype');
+ font-weight: bold;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'proxima-nova';
+ src: url('#{$fontPath}/proxima-nova/proximanova-webfont.eot');
+ src: url('#{$fontPath}/proxima-nova/proximanova-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$fontPath}/proxima-nova/proximanova-webfont.ttf') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'proxima-nova';
+ src: url('#{$fontPath}/proxima-nova/proximanova-bold-webfont.eot');
+ src: url('#{$fontPath}/proxima-nova/proximanova-bold-webfont.eot?#iefix') format('embedded-opentype'),
+ url('#{$fontPath}/proxima-nova/proximanova-bold-webfont.ttf') format('truetype');
+ font-weight: bold;
+ font-style: normal;
+}
diff --git a/theme/scss/kyruus-bootstrap/_footer.scss b/theme/scss/kyruus-bootstrap/_footer.scss
new file mode 100755
index 0000000..c20aab3
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_footer.scss
@@ -0,0 +1,27 @@
+//
+// Kyruus Sticky Footers
+// --------------------------------------------------
+// make sure to set .sticky-footer()
+
+html, body {
+ height: 100%;
+}
+.wrapper {
+ min-height: 100%;
+ height: auto !important;
+ height: 100%;
+}
+
+.footer {
+ min-width: 990px; // necessary fix for non-responsive layouts
+ border-top: 1px solid $grayLighter;
+ background-color: #f5f5f5;
+
+ color: #777;
+
+ p {
+ margin-bottom: 0;
+ }
+}
+
+@include sticky-footer(); // sets default values for sticky footer
diff --git a/theme/scss/kyruus-bootstrap/_forms.scss b/theme/scss/kyruus-bootstrap/_forms.scss
new file mode 100644
index 0000000..ff9899c
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_forms.scss
@@ -0,0 +1,26 @@
+//
+// Forms
+// --------------------------------------------------
+
+// Compact Horizontal Form
+// --------------------------
+
+.form-horizontal.form-horizontal-compact {
+// Increase spacing between groups
+ .control-group {
+ margin-bottom: $baseLineHeight / 2;
+ }
+}
+
+// HELP TEXT
+// ---------
+
+.help-block,
+.help-inline {
+ color: $grayLight; // lighten the text some for contrast
+}
+
+.optional {
+ color: $grayLight;
+ &:after { content: " (Optional)"; }
+}
diff --git a/theme/scss/kyruus-bootstrap/_jumbotron.scss b/theme/scss/kyruus-bootstrap/_jumbotron.scss
new file mode 100755
index 0000000..fc8741b
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_jumbotron.scss
@@ -0,0 +1,26 @@
+//
+// Jumbotron
+// --------------------------------------------------
+
+
+// Base styles
+// --------------------------------------------------
+
+.jumbotron {
+ color:#ffffff;
+ text-shadow:0 1px 3px rgba(0,0,0,0.4), 0 0 30px rgba(0,0,0,0.075);
+ h1 {
+ font-size: 80px;
+ letter-spacing: -1px;
+ line-height: 1;
+ }
+ p {
+ font-size:24px;
+ font-weight: 300;
+ line-height: 30px;
+ margin-bottom: 30px;
+ }
+ &.jumbotron-padded {
+ padding: 55px 0 45px;
+ }
+}
diff --git a/theme/scss/kyruus-bootstrap/_labels-badges.scss b/theme/scss/kyruus-bootstrap/_labels-badges.scss
new file mode 100755
index 0000000..b43f529
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_labels-badges.scss
@@ -0,0 +1,38 @@
+//
+// Labels and badges
+// --------------------------------------------------
+
+
+// Base classes
+.label,
+.badge {
+ background-color: mix($grayLight, $grayLighter, 40%);
+}
+
+// Set unique padding and border-radii
+.label {
+ padding: 3px 4px 2px;
+}
+.badge {
+ padding: 3px 9px 2px;
+}
+
+// Colors
+// Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute)
+@each $item in label, badge {
+// Important (red)
+ .#{$item}-important { background-color: $red; }
+ .#{$item}-important[href] { background-color: darken($red, 10%); }
+// Warnings (orange)
+ .#{$item}-warning { background-color: $yellow; color: $grayDark; text-shadow: 0 -1px 0 $yellowLighter; }
+ .#{$item}-warning[href] { background-color: darken($yellow, 10%); }
+// Success (green)
+ .#{$item}-success { background-color: mix($green, $greenLight, 70%); }
+ .#{$item}-success[href] { background-color: darken($green, 10%); }
+// Info (turquoise)
+ .#{$item}-info { background-color: mix($blue, $blueLight, 20%); }
+ .#{$item}-info[href] { background-color: darken($blue, 10%); }
+// Inverse (black)
+ .#{$item}-inverse { background-color: $grayDark; }
+ .#{$item}-inverse[href] { background-color: darken($grayDark, 10%); }
+}
diff --git a/theme/scss/kyruus-bootstrap/_lazy.scss b/theme/scss/kyruus-bootstrap/_lazy.scss
new file mode 100644
index 0000000..f2ad989
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_lazy.scss
@@ -0,0 +1,83 @@
+.padding-none { padding: 0 !important; }
+.padding { padding: 10px !important; }
+.padding-small { padding: 5px !important; }
+.padding-large { padding: 22px !important; }
+
+.padding-top-none { padding-top: 0 !important; }
+.padding-top { padding-top: 10px !important; }
+.padding-top-small { padding-top: 5px !important; }
+.padding-top-large { padding-top: 22px !important; }
+
+.padding-right-none { padding-right: 0 !important; }
+.padding-right { padding-right: 10px !important; }
+.padding-right-small { padding-right: 5px !important; }
+.padding-right-large { padding-right: 22px !important; }
+
+.padding-bottom-none { padding-bottom: 0 !important; }
+.padding-bottom { padding-bottom: 10px !important; }
+.padding-bottom-small { padding-bottom: 5px !important; }
+.padding-bottom-large { padding-bottom: 22px !important; }
+
+.padding-left-none { padding-left: 0 !important; }
+.padding-left { padding-left: 10px !important; }
+.padding-left-small { padding-left: 5px !important; }
+.padding-left-large { padding-left: 22px !important; }
+
+.margin-none { margin: 0 !important; }
+.margin { margin: 10px !important; }
+.margin-small { margin: 5px !important; }
+.margin-large { margin: 22px !important; }
+
+.margin-top-none { margin-top: 0 !important; }
+.margin-top { margin-top: 10px !important; }
+.margin-top-large { margin-top: 22px !important; }
+.margin-top-small { margin-top: 5px !important; }
+
+.margin-right-none { margin-right: 0 !important; }
+.margin-right { margin-right: 10px !important; }
+.margin-right-large { margin-right: 22px !important; }
+.margin-right-small { margin-right: 5px !important; }
+
+.margin-bottom-none { margin-bottom: 0 !important; }
+.margin-bottom { margin-bottom: 10px !important; }
+.margin-bottom-large { margin-bottom: 22px !important; }
+.margin-bottom-small { margin-bottom: 5px !important; }
+
+.margin-left-none { margin-left: 0 !important; }
+.margin-left { margin-left: 10px !important; }
+.margin-left-large { margin-left: 22px !important; }
+.margin-left-small { margin-left: 5px !important; }
+
+.border-left-none { border-left: none !important; }
+.border-right-none { border-right: none !important; }
+.border-bottom-none { border-bottom: none !important; }
+.border-top-none { border-top: none !important; }
+
+.display-block { display: block; } // use to swap an anchor tag to span a whole row to make click target larger
+.no-underline:hover { text-decoration: none; }
+.clickable { cursor: pointer; }
+.strong { font-weight: bold; }
+.em { font-style: italic; }
+.small { font-size: 85%; } // Ex: 14px base font * 85% = about 12px
+.no-link { color: $grayDark; }
+.text-sans-serif { font-family: $sansFontFamily; }
+.text-ellipsis { @include text-overflow(); } // truncates text to a single line with an ellipsis at the end
+.text-default {
+ font-family: $sansFontFamily;
+ font-size: $baseFontSize;
+ line-height: $baseLineHeight;
+ font-weight: normal;
+}
+.hilite {
+ color: $linkColor;
+ &:hover {
+ color: $linkColorHover;
+ text-decoration: underline;
+ }
+ [class^="icon-"], [class*=" icon-"] {
+ &:before {
+ display: inline;
+ }
+ }
+}
+.strike { text-decoration: line-through; }
diff --git a/theme/scss/kyruus-bootstrap/_mixins.scss b/theme/scss/kyruus-bootstrap/_mixins.scss
new file mode 100644
index 0000000..d91d3f5
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_mixins.scss
@@ -0,0 +1,32 @@
+@mixin dataTables_icon($unicode, $color, $hilite) {
+ &:after {
+ font-family: FontAwesome;
+ font-weight: normal;
+ font-style: normal;
+ display: inline-block;
+ text-decoration: inherit;
+
+ position: absolute;
+ right: -11px;
+ content: $unicode;
+ color: $color;
+ }
+ &:hover:after {
+ color: $hilite;
+ }
+}
+
+@mixin sticky-footer ($footer-height: ($baseLineHeight * 4), $footer-padding-top: 70px, $footer-padding-bottom: 70px, $footer-margin-top: 70px) {
+ .wrapper {
+ margin: 0 auto (-($footer-height + $footer-padding-bottom + $footer-padding-top + $footer-margin-top + 1));
+ }
+ .push {
+ height: ($footer-height + $footer-padding-bottom + $footer-padding-top + $footer-margin-top + 1);
+ }
+
+ .footer {
+ margin-top: $footer-margin-top;
+ height: $footer-height;
+ padding: $footer-padding-top 0 $footer-padding-bottom;
+ }
+}
diff --git a/theme/scss/kyruus-bootstrap/_modals.scss b/theme/scss/kyruus-bootstrap/_modals.scss
new file mode 100644
index 0000000..9317005
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_modals.scss
@@ -0,0 +1,14 @@
+//
+// Kyruus Modals
+// --------------------------------------------------
+
+
+// Background
+.modal-backdrop,
+.modal-backdrop.fade.in{
+ background-color: mix($blueDarker, $black, 50%);
+}
+
+.modal-header .close {
+ margin: 0;
+}
diff --git a/theme/scss/kyruus-bootstrap/_navbar.scss b/theme/scss/kyruus-bootstrap/_navbar.scss
new file mode 100755
index 0000000..6fee76e
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_navbar.scss
@@ -0,0 +1,233 @@
+//
+// Navbars
+// --------------------------------------------------
+
+
+// Kyruus navbar
+// -------------------------
+
+.jumbotron, .navbar {
+ .container, .container-fluid {
+ position: relative; // fixes z-index problem when layering waves
+ z-index: 2; // fixes z-index problem when layering waves
+ }
+}
+
+.navbar-kyruus {
+ position: relative;
+ color: $navbarKyruusText;
+ margin-bottom: 30px;
+
+ &:after {
+ content:'';
+ display:block;
+ position:absolute;
+ top:0;
+ right:0;
+ bottom:0;
+ left:0;
+ background:url('#{$image_dir}/kyruus-waves-light.svg');
+ }
+
+
+ .nav {
+// margin-top: 2px;
+ }
+
+ &.navbar-padded {
+ .brand {
+ margin-top: 50px;
+ &.brand-large {
+ margin-bottom: 0;
+ margin-top: 37px;
+ }
+ }
+ .nav {
+ margin-top: 52px;
+ }
+ }
+
+ .nav-pills.pull-right {
+ margin-right: -20px;
+ }
+
+ .navbar-inner {
+ @include gradient-vertical($navbarKyruusBackgroundHighlight, $navbarKyruusBackground);
+ border-color: $navbarKyruusBorder;
+ }
+
+ &.navbar-kyruus-large .navbar-inner {
+ @include gradient-vertical($navbarKyruusBackgroundHighlight, $navbarKyruusBackgroundLarge);
+ }
+
+
+ &.navbar .nav > .active > a, &.navbar .nav > .active > a:hover, &.navbar .nav > .active > a:focus {
+ font-weight: normal;
+ @include box-shadow(none);
+ }
+
+ .brand {
+ padding: 7px 20px 8px;
+ width: 75px;
+ height: 25px;
+ background: url('#{$image_dir}/kyruus-logo-white.gif') no-repeat center center;
+ background: rgba(0,0,0,0) url('#{$image_dir}/kyruus-logo-white.svg') no-repeat center center;
+ }
+ .brand-large {
+ width: 110px;
+ height: 38px;
+ margin-bottom: 5px;
+ background: url('#{$image_dir}/kyruus-logo-white-large.gif') no-repeat center center;
+ background: rgba(0,0,0,0) url('#{$image_dir}/kyruus-logo-white.svg') no-repeat center center;
+ background-size: 110px 38px;
+ }
+
+ .brand-passport {
+ &.brand {
+ width: 131px;
+ height: 25px;
+ background: url('#{$image_dir}/passport-logo-white.gif') no-repeat center center;
+ background: rgba(0,0,0,0) url('#{$image_dir}/passport-logo-white.svg') no-repeat center center;
+ }
+ &.brand-large {
+ width: 199px;
+ height: 38px;
+ margin-bottom: 5px;
+ background: url('#{$image_dir}/passport-logo-white-large.gif') no-repeat center center;
+ background: rgba(0,0,0,0) url('#{$image_dir}/passport-logo-white.svg') no-repeat center center;
+ background-size: 199px 38px;
+ }
+ }
+
+ .brand,
+ .nav > li > a {
+ color: $navbarKyruusLinkColor;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ &:hover {
+ color: $navbarKyruusLinkColorHover;
+ }
+ }
+
+ .nav > li > a {
+// margin-top: 5px;
+ }
+
+
+
+ .nav > li > a:focus,
+ .nav > li > a:hover {
+ color: $navbarKyruusLinkColorHover;
+ background-color: $navbarKyruusLinkBackgroundHover;
+ background-color: rgba(0,51,102,.25);
+ *background-color: $navbarKyruusLinkBackgroundHover;
+ }
+
+ .nav .active > a,
+ .nav .active > a:hover,
+ .nav .active > a:focus {
+ color: $navbarKyruusLinkColorActive;
+ background-color: $navbarKyruusLinkBackgroundActive;
+ background-color: rgba(0,51,102,.15);
+ *background-color: $navbarKyruusLinkBackgroundActive;
+ }
+
+ .nav-large {
+ $nav-large-size: 20px;
+ margin-top: 7px;
+ font-size: 20px;
+ .divider-vertical {
+ margin: 4px 9px;
+ height: $nav-large-size * 1.5;
+ }
+ }
+
+// Inline text links
+ .navbar-link {
+ color: $navbarKyruusLinkColor;
+ &:hover {
+ color: $navbarKyruusLinkColorHover;
+ }
+ }
+
+// Dividers in navbar
+ .divider-vertical {
+ margin: 9px;
+ padding-right: 2px;
+ height: $baseLineHeight;
+ border-left-color: mix($blueLight, $blue, 50%);
+ border-right-color: mix($blueLight, $blue, 50%);
+ }
+
+ .dropdown-toggle > i.icon-caret-down { display: inline; }
+
+// Dropdowns
+ .nav li.dropdown.open > .dropdown-toggle,
+ .nav li.dropdown.active > .dropdown-toggle,
+ .nav li.dropdown.open.active > .dropdown-toggle {
+ background-color: $navbarKyruusLinkBackgroundActive;
+ background-color: rgba(0,51,102,.15);
+ *background-color: $navbarKyruusLinkBackgroundActive;
+ color: $navbarKyruusLinkColorActive;
+ }
+ .nav li.dropdown > .dropdown-toggle .caret {
+ border-top-color: $navbarKyruusLinkColor;
+ border-bottom-color: $navbarKyruusLinkColor;
+ }
+ .nav li.dropdown.open > .dropdown-toggle .caret,
+ .nav li.dropdown.active > .dropdown-toggle .caret,
+ .nav li.dropdown.open.active > .dropdown-toggle .caret {
+ border-top-color: $navbarKyruusLinkColorActive;
+ border-bottom-color: $navbarKyruusLinkColorActive;
+ }
+
+// Navbar search
+ .navbar-search {
+ .search-query {
+ color: $white;
+ background-color: $navbarKyruusSearchBackground;
+ border-color: $navbarKyruusSearchBorder;
+// @include box-shadow(~"inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)");
+ @include transition(none);
+ @include placeholder($navbarKyruusSearchPlaceholderColor);
+
+ // Focus states (we use .focused since IE7-8 and down doesn't support :focus)
+ &:focus,
+ &.focused {
+ padding: 5px 15px;
+ color: $grayDark;
+ text-shadow: 0 1px 0 $white;
+ background-color: $navbarKyruusSearchBackgroundFocus;
+ border: 0;
+ @include box-shadow(0 0 3px rgba(0,0,0,.15));
+ outline: 0;
+ }
+ }
+ }
+
+// Navbar collapse button
+ .btn-navbar {
+ @include buttonBackground(darken($navbarKyruusBackgroundHighlight, 5%), darken($navbarKyruusBackground, 5%));
+ }
+
+}
+
+.navbar-static-top {
+ min-width: 990px; // necessary fix for non-responsive layouts
+ @include border-radius(0);
+ &.navbar-kyruus .navbar-inner {
+ // .box-shadow(0 0 4px $blueDarker); // make a nice shadow underneath navbar
+ }
+}
+
+.navbar-kyruus {
+ .badge {
+ padding: 2px 7px;
+ vertical-align: text-top;
+ margin-top: -2px;
+ margin-bottom: -2px;
+ }
+
+ .badge-important {
+ background: darken($errorText, 2%);
+ }
+}
diff --git a/theme/scss/kyruus-bootstrap/_progress-bars.scss b/theme/scss/kyruus-bootstrap/_progress-bars.scss
new file mode 100755
index 0000000..977cede
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_progress-bars.scss
@@ -0,0 +1,78 @@
+//
+// Kyruus Progress bars
+// --------------------------------------------------
+
+.progress {
+ position: relative;
+}
+
+.progress-small {
+ height: $baseLineHeight / 2;
+ margin-bottom: 0;
+ @include border-radius($baseBorderRadius / 2);
+}
+
+// Bar of progress
+.progress .bar {
+ @include gradient-vertical($blue, mix($blue, $blueDark, 50%));
+}
+
+// Striped bars
+.progress-striped .bar {
+ @include gradient-striped($blue);
+}
+
+
+// COLORS
+// ------
+
+// Danger (red)
+.progress-danger .bar, .progress .bar-danger {
+ @include gradient-vertical($red, mix($red, $redDark, 30%));
+}
+.progress-danger.progress-striped .bar, .progress-striped .bar-danger {
+ @include gradient-striped($red);
+}
+
+// Success (green)
+.progress-success .bar, .progress .bar-success {
+ @include gradient-vertical($green, mix($green, $greenDark, 50%));
+}
+.progress-success.progress-striped .bar, .progress-striped .bar-success {
+ @include gradient-striped($green);
+}
+
+// Info (teal)
+.progress-info .bar, .progress .bar-info {
+ @include gradient-vertical(mix($blueLight, $blue, 70%), mix($blueLight, $blue, 40%));
+}
+.progress-info.progress-striped .bar, .progress-striped .bar-info {
+ @include gradient-striped(mix($blueLight, $blue, 80%));
+}
+
+// Warning (orange)
+.progress-warning .bar, .progress .bar-warning {
+ @include gradient-vertical($yellow, mix($yellow, $yellowDark, 50%));
+}
+.progress-warning.progress-striped .bar, .progress-striped .bar-warning {
+ @include gradient-striped(mix($yellow, mix($yellow, $yellowDark, 50%), 50%));
+}
+
+.progress .bar-overlay {
+ position: absolute;
+ text-align: center;
+ width: 100%;
+ top: 0;
+ left:0;
+ color: $white;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.5);
+}
+
+.progress-key {
+ width: ($baseFontSize * 2/3);
+ height: ($baseFontSize * 2/3);
+ display: inline-block;
+ @include ie7-inline-block();
+ margin: 0;
+ @include border-radius(2px);
+}
diff --git a/theme/scss/kyruus-bootstrap/_tables.scss b/theme/scss/kyruus-bootstrap/_tables.scss
new file mode 100644
index 0000000..e808482
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_tables.scss
@@ -0,0 +1,38 @@
+.table-bordered-outer {
+ border: 1px solid $tableBorder;
+ border-collapse: separate; // Done so we can round those corners!
+ *border-collapse: collapse; // IE7 can't round corners anyway
+ @include border-radius($baseBorderRadius);
+}
+
+.table tbody tr > td {
+ &.success {
+ background-color: darken($successBackground, 5%);
+ }
+ &.error {
+ background-color: darken($errorBackground, 5%);
+ }
+ &.warning {
+ background-color: darken($warningBackground, 5%);
+ }
+ &.info {
+ background-color: darken($infoBackground, 5%);
+ }
+}
+
+
+// Hover states for .table-hover
+.table-hover tbody tr:hover > td {
+ &.success {
+ background-color: darken($successBackground, 10%);
+ }
+ &.error {
+ background-color: darken($errorBackground, 10%);
+ }
+ &.warning {
+ background-color: darken($warningBackground, 10%);
+ }
+ &.info {
+ background-color: darken($infoBackground, 10%);
+ }
+}
diff --git a/theme/scss/kyruus-bootstrap/_type.scss b/theme/scss/kyruus-bootstrap/_type.scss
new file mode 100755
index 0000000..7a6bf12
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_type.scss
@@ -0,0 +1,106 @@
+//
+// Typography
+// --------------------------------------------------
+
+
+// Body text
+// -------------------------
+
+.lead {
+ margin-bottom: $baseLineHeight / 2;
+ font-size: $baseFontSize + 4;
+ font-weight: bold;
+ line-height: $baseLineHeight + 6;
+}
+
+.lead-large, .copy-large .lead {
+ margin-bottom: $baseLineHeight * 1.5;
+ font-size: $baseFontSize + 10;
+ font-weight: bold;
+ line-height: $baseLineHeight + 15;
+
+ small {
+ font-size: 70%;
+ }
+}
+
+.copy-large {
+ &, & li {
+ font-size: $baseFontSize + 4;
+ line-height: $baseLineHeight + 4;
+ }
+ li {
+ margin: $baseLineHeight/4 0;
+ }
+}
+
+
+h1,
+h2,
+h3 { line-height: $baseLineHeight * 2; }
+
+h1 { font-size: $baseFontSize * 2.5; } // ~35px
+h2 { font-size: $baseFontSize * 2; } // ~28px
+h3 { font-size: $baseFontSize * 1.5; } // ~21px
+h4 { font-size: $baseFontSize * 1.285; } // ~18px
+h5 { font-size: $baseFontSize; }
+h6 { font-size: $baseFontSize * 0.85; } // ~12px
+
+h1 small { font-size: $baseFontSize * 1.75; } // ~24px
+h2 small { font-size: $baseFontSize * 1.25; } // ~18px
+h3 small { font-size: $baseFontSize; }
+h4 small { font-size: $baseFontSize; }
+
+
+// MISC
+// ----
+
+// Horizontal rules
+hr.hr-small {
+ margin: $baseLineHeight/2 0;
+}
+
+
+// Floats
+img.pull-right {
+ margin: 20px;
+ margin-right: 0;
+}
+
+img.pull-left {
+ margin: 20px;
+ margin-left: 0;
+}
+
+.nowrap {
+ white-space: nowrap;
+}
+
+.text-indent-negative {
+ text-indent: -22px;
+ margin-left: 22px;
+}
+
+// Horizontal layout (like forms)
+.dl-horizontal {
+ dt {
+ font-weight: normal;
+ }
+ &.dl-compact {
+ dt {
+ width: $horizontalComponentOffset - 80;
+ }
+ dd {
+ margin-left: $horizontalComponentOffset - 60;
+ word-wrap : break-word;
+ }
+ }
+ &.dl-padded {
+ dt, dd {
+ padding-bottom: 14px;
+ }
+ }
+ dt.strong { font-weight: bold; }
+}
+
+td.number { text-align: right; }
diff --git a/theme/scss/kyruus-bootstrap/_variables.scss b/theme/scss/kyruus-bootstrap/_variables.scss
new file mode 100644
index 0000000..440f474
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_variables.scss
@@ -0,0 +1,152 @@
+//
+// KYRUUS BOOTSTRAP VARIABLES
+// --------------------------------------------------
+
+// Resource Paths
+$css_relative_path: '..' !default; // relative path from where compiled CSS resides to just inside the assets/ folder. Affects images & fonts
+$image_dir: '#{$css_relative_path}/img/kyruus-bootstrap'; // where theme images are stored
+$fontPath: '#{$css_relative_path}/font/kyruus-bootstrap';
+$FontAwesomePath: '#{$css_relative_path}/font/font-awesome-3.2.1'; // Font Awesome variable override
+
+// Grays
+$black: #000;
+$grayDarker: #24211f;
+$grayDark: #363330;
+$gray: #585552;
+$grayLight: #9c9996;
+$grayLighter: #edeceb;
+$white: #fff;
+
+// Blues
+$blueDarker: #003366;
+$blueDark: #005f9b; // Kyruus Dark Blue - Pantone 3015 C
+$blue: #009add; // Kyruus Blue - Pantone 2925 C
+$blueLight: #b8dcf2;
+$blueLighter: #f0f9ff;
+
+// Greens
+$greenDarker: #41683b;
+$greenDark: #678943;
+$green: #95bf52;
+$greenLight: #ddefbd;
+$greenLighter: #f3f9e8;
+
+// Reds
+$redDarker: #702222;
+$redDark: #ba4a4a;
+$red: #dd7373;
+$redLight: #f2adb1;
+$redLighter: #fff0f0;
+
+// Yellows
+$yellowDarker: #6f4215;
+$yellowDark: #db8400;
+$yellow: #f9e27d;
+$yellowLight: #fff5bd;
+$yellowLighter: #fffcee;
+
+// Oranges
+$orangeDarker: #8c3900;
+$orangeDark: #cc5d11;
+$orange: #f4914e;
+$orangeLight: #ffd0a6;
+$orangeLighter: #fff4e6;
+
+// Purples
+$purpleDarker: #4a226d;
+$purpleDark: #7457ad;
+$purple: #9780d6;
+$purpleLight: #c3b8f4;
+$purpleLighter: #fbf5ff;
+
+
+// Kyruus navbar
+$navbarKyruusBackground: mix($blueDark, $blue, 35%);
+$navbarKyruusBackgroundLarge: $blueDark;
+$navbarKyruusBackgroundHighlight: $blue;
+$navbarKyruusBorder: mix($blue, $blueDark, 50%);
+
+$navbarKyruusText: mix($blueLighter, $blue, 90%);
+$navbarKyruusLinkColor: $blueLighter;
+$navbarKyruusLinkColorHover: $white;
+$navbarKyruusLinkColorActive: $white;
+$navbarKyruusLinkBackgroundHover: mix($blue, $blueDark, 60%);
+$navbarKyruusLinkBackgroundActive: mix($blue, $blueDark, 60%);
+
+$navbarKyruusSearchBackground: mix($white, $blueLighter, 50%);
+$navbarKyruusSearchBackgroundFocus: $white;
+$navbarKyruusSearchBorder: $navbarKyruusBackground;
+$navbarKyruusSearchPlaceholderColor: $blue;
+
+$navbarKyruusBrandColor: $navbarKyruusLinkColor;
+
+
+// Additional Component sizing - Based on 14px font-size and 20px line-height
+$fontSizeXL: $baseFontSize * 1.5; // ~18px
+$paddingXL: 15px 23px; // 44px
+$borderRadiusXL: 7px;
+
+// Misc Variables
+$text-muted: $grayLight; // shade of muted text
+
+
+
+
+//
+// BOOTSTRAP OVERRIDES
+// --------------------------------------------------
+
+// Links
+$linkColor: $blue;
+$linkColorHover: $blueDark;
+
+
+// Typography
+$sansFontFamily: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif;
+$serifFontFamily: museo-slab, Georgia, "Times New Roman", Times, serif;
+
+$baseFontFamily: $sansFontFamily;
+$headingsFontFamily: $serifFontFamily;
+
+
+// Tables
+$tableBorder: $grayLighter; // table and cell border
+
+
+// Buttons
+$btnPrimaryBackground: $linkColor;
+$btnPrimaryBackgroundHighlight: mix($blue, $blueDark, 50%);
+
+$btnInfoBackground: mix($blue, $blueLight, 30%);
+$btnInfoBackgroundHighlight: mix($blue, $blueDark, 70%);
+
+$btnSuccessBackground: $green;
+$btnSuccessBackgroundHighlight: $greenDark;
+
+$btnWarningBackground: $yellow;
+$btnWarningBackgroundHighlight: $yellowDark;
+
+$btnDangerBackground: $red;
+$btnDangerBackgroundHighlight: $redDark;
+
+
+// Form states and alerts
+$warningText: mix($yellowDark, $yellowDarker, 80%);
+$warningBackground: $yellowLighter;
+$warningBorder: darken(adjust_hue($warningBackground, -10), 7%);
+
+$errorText: $red;
+$errorBackground: $redLighter;
+$errorBorder: darken(adjust_hue($errorBackground, -10), 4%);
+
+$successText: mix($greenDarker, $greenDark, 30%);
+$successBackground: $greenLighter;
+$successBorder: darken(adjust_hue($successBackground, -10), 13%);
+
+$infoText: $blue;
+$infoBackground: $blueLighter;
+$infoBorder: darken(adjust_hue($infoBackground, -10), 7%);
+
+$inverseText: $white;
+$inverseBackground: $gray;
+$inverseBorder: darken(adjust_hue($inverseBackground, -10), 7%);
diff --git a/theme/scss/kyruus-bootstrap/_wells.scss b/theme/scss/kyruus-bootstrap/_wells.scss
new file mode 100755
index 0000000..8360218
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/_wells.scss
@@ -0,0 +1,27 @@
+//
+// Wells
+// --------------------------------------------------
+
+
+.well-light {
+ background-color: $tableBackgroundAccent;
+ border-color: mix($white, darken($wellBackground, 7%), 50%);
+}
+
+.well-white {
+ background-color: $white;
+}
+
+.well-transparent {
+ background-color: transparent;
+ @include box-shadow(none);
+ border-color: $tableBorder;
+}
+
+.well-shadow {
+ @include box-shadow(0 0 4px rgba(0,0,0,.2));
+}
+
+.well > h3 {
+ margin-top: -8px; // re-adjust margins on top of h3s
+}
diff --git a/theme/scss/kyruus-bootstrap/kyruus.scss b/theme/scss/kyruus-bootstrap/kyruus.scss
new file mode 100644
index 0000000..e660812
--- /dev/null
+++ b/theme/scss/kyruus-bootstrap/kyruus.scss
@@ -0,0 +1,46 @@
+//
+// KYRUUS BOOTSTRAP VERSION 1.0.0
+// ------------------------------
+
+// Variables
+@import "../bootstrap-2.3.2/variables";
+@import "../font-awesome-3.2.1/variables";
+@import "variables"; // Kyruus Bootstrap Variables
+
+
+// Bootstrap Import
+@import "../bootstrap-2.3.2/bootstrap";
+@import "../bootstrap-2.3.2/responsive-utilities"; // Not in default Bootstrap, for visible-print and hidden-print
+
+
+// Font Awesome Import
+@import "../font-awesome-3.2.1/font-awesome";
+
+
+// Kyruus Bootstrap
+// ------------------------------
+@import "mixins";
+@import "fonts";
+@import "progress-bars";
+@import "labels-badges";
+@import "jumbotron";
+@import "buttons";
+@import "button-groups";
+@import "navbar";
+@import "wells";
+@import "type";
+@import "footer";
+@import "dropdowns";
+@import "close";
+@import "forms";
+@import "alerts";
+@import "modals";
+@import "tables";
+@import "font-awesome";
+@import "lazy";
+
+// 3rd Party styles
+@import "../lib/bootstrap-modal";
+@import "../lib/data-tables";
+@import "../lib/datepicker";
+@import "../lib/select2";
diff --git a/theme/scss/lib/_bootstrap-modal.scss b/theme/scss/lib/_bootstrap-modal.scss
new file mode 100644
index 0000000..9179901
--- /dev/null
+++ b/theme/scss/lib/_bootstrap-modal.scss
@@ -0,0 +1,215 @@
+/*!
+ * Bootstrap Modal
+ *
+ * Copyright Jordan Schroter
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ */
+
+.modal-open {
+ position: relative; /* safari */
+ overflow: hidden;
+}
+
+
+/* add a scroll bar to stop page from jerking around */
+.modal-open.page-overflow .page-container,
+.modal-open.page-overflow .page-container .navbar-fixed-top,
+.modal-open.page-overflow .page-container .navbar-fixed-bottom,
+.modal-open.page-overflow .modal-scrollable {
+ overflow-y: scroll;
+}
+
+@media (max-width: 979px) {
+ .modal-open.page-overflow .page-container .navbar-fixed-top,
+ .modal-open.page-overflow .page-container .navbar-fixed-bottom {
+ overflow-y: visible;
+ }
+}
+
+
+.modal-scrollable {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ overflow: auto;
+}
+
+.modal {
+ outline: none;
+ position: absolute;
+ margin-top: 0;
+ top: 50%;
+ overflow: visible; /* allow content to popup out (i.e tooltips) */
+}
+
+.modal.fade {
+ top: -100%;
+ -webkit-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;
+ -moz-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;
+ -o-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;
+ transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;
+}
+
+.modal.fade.in {
+ top: 50%;
+}
+
+.modal-body {
+ max-height: none;
+ overflow: visible;
+}
+
+.modal.modal-absolute {
+ position: absolute;
+ z-index: 950;
+}
+
+.modal .loading-mask {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background: #fff;
+ border-radius: 6px;
+}
+
+.modal-backdrop.modal-absolute{
+ position: absolute;
+ z-index: 940;
+}
+
+.modal-backdrop,
+.modal-backdrop.fade.in{
+ opacity: 0.7;
+ filter: alpha(opacity=70);
+ background: #fff;
+}
+
+.modal.container {
+ width: 940px;
+ margin-left: -470px;
+}
+
+/* Modal Overflow */
+
+.modal-overflow.modal {
+ top: 1%;
+}
+
+.modal-overflow.modal.fade {
+ top: -100%;
+}
+
+.modal-overflow.modal.fade.in {
+ top: 1%;
+}
+
+.modal-overflow .modal-body {
+ overflow: auto;
+ -webkit-overflow-scrolling: touch;
+}
+
+/* Responsive */
+
+//@media (min-width: 1200px) {
+// .modal.container {
+// width: 1170px;
+// margin-left: -585px;
+// }
+//}
+//
+//@media (max-width: 979px) {
+// .modal,
+// .modal.container,
+// .modal.modal-overflow {
+// top: 1%;
+// right: 1%;
+// left: 1%;
+// bottom: auto;
+// width: auto !important;
+// height: auto !important;
+// margin: 0 !important;
+// padding: 0 !important;
+// }
+//
+// .modal.fade.in,
+// .modal.container.fade.in,
+// .modal.modal-overflow.fade.in {
+// top: 1%;
+// bottom: auto;
+// }
+//
+// .modal-body,
+// .modal-overflow .modal-body {
+// position: static;
+// margin: 0;
+// height: auto !important;
+// max-height: none !important;
+// overflow: visible !important;
+// }
+//
+// .modal-footer,
+// .modal-overflow .modal-footer {
+// position: static;
+// }
+//}
+
+.loading-spinner {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin: -12px 0 0 -12px;
+}
+
+/*
+Animate.css - http://daneden.me/animate
+Licensed under the ☺ license (http://licence.visualidiot.com/)
+
+Copyright (c) 2012 Dan Eden*/
+
+.animated {
+ -webkit-animation-duration: 1s;
+ -moz-animation-duration: 1s;
+ -o-animation-duration: 1s;
+ animation-duration: 1s;
+ -webkit-animation-fill-mode: both;
+ -moz-animation-fill-mode: both;
+ -o-animation-fill-mode: both;
+ animation-fill-mode: both;
+}
+
+@-webkit-keyframes shake {
+ 0%, 100% {-webkit-transform: translateX(0);}
+10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);}
+20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);}
+ }
+
+@-moz-keyframes shake {
+ 0%, 100% {-moz-transform: translateX(0);}
+10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);}
+20%, 40%, 60%, 80% {-moz-transform: translateX(10px);}
+ }
+
+@-o-keyframes shake {
+ 0%, 100% {-o-transform: translateX(0);}
+10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);}
+20%, 40%, 60%, 80% {-o-transform: translateX(10px);}
+ }
+
+@keyframes shake {
+ 0%, 100% {transform: translateX(0);}
+10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);}
+20%, 40%, 60%, 80% {transform: translateX(10px);}
+ }
+
+.shake {
+ -webkit-animation-name: shake;
+ -moz-animation-name: shake;
+ -o-animation-name: shake;
+ animation-name: shake;
+}
diff --git a/theme/scss/lib/_data-tables.scss b/theme/scss/lib/_data-tables.scss
new file mode 100755
index 0000000..60b533a
--- /dev/null
+++ b/theme/scss/lib/_data-tables.scss
@@ -0,0 +1,186 @@
+table.dataTable {
+ margin:0 auto;
+ clear:both;
+ width:100%;
+ td.center, td.dataTables_empty {
+ text-align:center;
+ }
+ thead th {
+ padding-right:20px;
+ font-weight:bold;
+ > div {
+ position: relative; // needed for icon absolute positioning
+ }
+ }
+ tfoot th {
+ padding:3px 18px 3px 10px;
+ border-top:1px solid black;
+ font-weight:bold;
+ }
+ td {
+ // padding:3px 10px;
+ }
+ th:active {
+ outline:none;
+ }
+}
+.dataTables_wrapper {
+ position:relative;
+ clear:both;
+ *zoom:1;
+}
+.dataTables_length {
+ float:left;
+}
+.dataTables_filter {
+ float:right;
+ text-align:right;
+}
+.dataTables_info {
+ clear:both;
+ float:left;
+}
+.dataTables_paginate {
+ float:right;
+ text-align:right;
+}
+.paginate_disabled_previous {
+ height:19px;
+ float:left;
+ cursor:pointer;
+ *cursor:hand;
+ color:#111111 !important;
+ color:#666666 !important;
+ padding-left:23px;
+ background:url('../images/back_disabled.png') no-repeat top left;
+}
+.paginate_enabled_previous {
+ height:19px;
+ float:left;
+ cursor:pointer;
+ *cursor:hand;
+ color:#111111 !important;
+ padding-left:23px;
+ background:url('../images/back_enabled.png') no-repeat top left;
+}
+.paginate_disabled_next {
+ height:19px;
+ float:left;
+ cursor:pointer;
+ *cursor:hand;
+ color:#111111 !important;
+ color:#666666 !important;
+ padding-right:23px;
+ margin-left:10px;
+ background:url('../images/forward_disabled.png') no-repeat top right;
+}
+.paginate_enabled_next {
+ height:19px;
+ float:left;
+ cursor:pointer;
+ *cursor:hand;
+ color:#111111 !important;
+ padding-right:23px;
+ margin-left:10px;
+ background:url('../images/forward_enabled.png') no-repeat top right;
+}
+.paginate_disabled_previous:hover, .paginate_disabled_next:hover {
+ text-decoration:none !important;
+}
+.paginate_enabled_previous:hover {
+ text-decoration:none !important;
+ background:url('../images/back_enabled_hover.png') no-repeat top left;
+}
+.paginate_enabled_next:hover {
+ text-decoration:none !important;
+ background:url('../images/forward_enabled_hover.png') no-repeat top right;
+}
+.paginate_disabled_previous:active, .paginate_enabled_previous:active, .paginate_disabled_next:active, .paginate_enabled_next:active {
+ outline:none;
+}
+.paging_full_numbers {
+ height:22px;
+ line-height:22px;
+ a:active {
+ outline:none;
+ }
+ a:hover {
+ text-decoration:none;
+ }
+ a.paginate_button {
+ border:1px solid #aaaaaa;
+ -webkit-border-radius:5px;
+ -moz-border-radius:5px;
+ border-radius:5px;
+ padding:2px 5px;
+ margin:0 3px;
+ cursor:pointer;
+ *cursor:hand;
+ color:#333333 !important;
+ background-color:#dddddd;
+ }
+ a.paginate_active {
+ border:1px solid #aaaaaa;
+ -webkit-border-radius:5px;
+ -moz-border-radius:5px;
+ border-radius:5px;
+ padding:2px 5px;
+ margin:0 3px;
+ cursor:pointer;
+ *cursor:hand;
+ color:#333333 !important;
+ background-color:#99b3ff;
+ }
+ a.paginate_button:hover {
+ background-color:#cccccc;
+ text-decoration:none !important;
+ }
+}
+.dataTables_processing {
+ position:absolute;
+ top:50%;
+ left:50%;
+ width:250px;
+ height:30px;
+ margin-left:-125px;
+ margin-top:-15px;
+ padding:14px 0 2px 0;
+ border:1px solid #dddddd;
+ text-align:center;
+ color:#999999;
+ font-size:14px;
+ background-color:white;
+}
+
+.dataTable {
+ .sorting, .sorting_asc, .sorting_desc {
+ cursor:pointer;
+ *cursor:hand;
+ color: $linkColor;
+ &:hover {
+ color: $linkColorHover;
+ }
+ }
+ .sorting > div {
+ @include dataTables_icon("\f0dc", #ddd, $grayLight); // icon-sort
+ }
+ .sorting_asc > div {
+ @include dataTables_icon("\f0de", $linkColor, $linkColorHover); // icon-sort-up
+ }
+ .sorting_desc > div {
+ @include dataTables_icon("\f0dd", $linkColor, $linkColorHover); // icon-sort-down
+ }
+ .sorting_asc_disabled > div {
+ @include dataTables_icon("\f0de", #ddd, #ddd); // icon-sort-up
+ }
+ .sorting_desc_disabled > div {
+ @include dataTables_icon("\f0dd", #ddd, #ddd); // icon-sort-down
+ }
+}
+
+.dataTables_scroll {
+ clear:both;
+}
+.dataTables_scrollBody {
+ *margin-top:-1px;
+}
diff --git a/theme/scss/lib/_datepicker.scss b/theme/scss/lib/_datepicker.scss
new file mode 100644
index 0000000..74fb58d
--- /dev/null
+++ b/theme/scss/lib/_datepicker.scss
@@ -0,0 +1,180 @@
+/*!
+ * Datepicker for Bootstrap
+ *
+ * Copyright 2012 Stefan Petre
+ * Improvements by Andrew Rowls
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ */
+
+.datepicker {
+ padding: 4px;
+ @include border-radius(4px);
+ direction: ltr;
+ .datepicker-rtl {
+ direction: rtl;
+ table tr td span {
+ float: right;
+ }
+ }
+ >div {
+ display: none;
+ }
+ &.days div.datepicker-days {
+ display: block;
+ }
+ &.months div.datepicker-months {
+ display: block;
+ }
+ &.years div.datepicker-years {
+ display: block;
+ }
+ table{
+ margin: 0;
+ }
+ td,
+ th{
+ text-align: center;
+ width: 20px;
+ height: 20px;
+ @include border-radius(4px);
+
+ border: none;
+ }
+ // Inline display inside a table presents some problems with
+ // border and background colors.
+ .table-striped & table tr {
+ td, th {
+ background-color:transparent;
+ }
+ }
+ table tr td {
+ &.day:hover {
+ background: $grayLighter;
+ cursor: pointer;
+ }
+ &.old,
+ &.new {
+ color: $grayLight;
+ }
+ &.disabled,
+ &.disabled:hover {
+ background: none;
+ color: $grayLight;
+ cursor: default;
+ }
+ &.today,
+ &.today:hover,
+ &.today.disabled,
+ &.today.disabled:hover {
+ $todayBackground: lighten($orange, 30%);
+ @include buttonBackground($todayBackground, adjust_hue($todayBackground, 20));
+ color: #000 !important;
+ }
+ &.active,
+ &.active:hover,
+ &.active.disabled,
+ &.active.disabled:hover {
+ @include buttonBackground($btnPrimaryBackground, adjust_hue($btnPrimaryBackground, 20));
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ span {
+ display: block;
+ width: 23%;
+ height: 54px;
+ line-height: 54px;
+ float: left;
+ margin: 1%;
+ cursor: pointer;
+ @include border-radius(4px);
+ &:hover {
+ background: $grayLighter;
+ }
+ &.disabled,
+ &.disabled:hover {
+ background:none;
+ color: $grayLight;
+ cursor: default;
+ }
+ &.active,
+ &.active:hover,
+ &.active.disabled,
+ &.active.disabled:hover {
+ @include buttonBackground($btnPrimaryBackground, adjust_hue($btnPrimaryBackground, 20));
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ &.old {
+ color: $grayLight;
+ }
+ }
+ }
+
+ th.switch {
+ width: 145px;
+ }
+
+ thead tr:first-child th,
+ tfoot tr:first-child th {
+ cursor: pointer;
+ &:hover{
+ background: $grayLighter;
+ }
+ }
+ /*.dow {
+ border-top: 1px solid #ddd !important;
+ }*/
+
+ // Basic styling for calendar-week cells
+ .cw {
+ font-size: 10px;
+ width: 12px;
+ padding: 0 2px 0 5px;
+ vertical-align: middle;
+ }
+ thead tr:first-child th.cw {
+ cursor: default;
+ background-color: transparent;
+ }
+}
+.datepicker-inline {
+ width: 220px;
+}
+.datepicker-dropdown {
+ top: 0;
+ left: 0;
+ &:before {
+ content: '';
+ display: inline-block;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid #ccc;
+ border-bottom-color: rgba(0,0,0,.2);
+ position: absolute;
+ top: -7px;
+ left: 6px;
+ }
+ &:after {
+ content: '';
+ display: inline-block;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid $white;
+ position: absolute;
+ top: -6px;
+ left: 7px;
+ }
+}
+.input-append,
+.input-prepend {
+ &.date {
+ .add-on i {
+ display: block;
+ cursor: pointer;
+ width: 16px;
+ height: 16px;
+ }
+ }
+}
diff --git a/theme/scss/lib/_select2.scss b/theme/scss/lib/_select2.scss
new file mode 100644
index 0000000..4488c99
--- /dev/null
+++ b/theme/scss/lib/_select2.scss
@@ -0,0 +1,456 @@
+/*
+Version: 2.1 Timestamp: Tue Jun 12 19:50:25 PDT 2012
+*/
+.select2-container {
+ position: relative;
+ display: inline-block;
+ /* inline-block for ie7 */
+ zoom: 1;
+ *display: inline;
+
+}
+
+.select2-container,
+.select2-drop,
+.select2-search,
+.select2-container .select2-search input{
+ /*
+ Force border-box so that % widths fit the parent
+ container without overlap because of margin/padding.
+
+ More Info : http://www.quirksmode.org/css/box.html
+ */
+ -moz-box-sizing: border-box; /* firefox */
+ -ms-box-sizing: border-box; /* ie */
+ -webkit-box-sizing: border-box; /* webkit */
+ -khtml-box-sizing: border-box; /* konqueror */
+ box-sizing: border-box; /* css3 */
+}
+
+.select2-container .select2-choice {
+ background-color: #fff;
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5, white));
+ background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 50%);
+ background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 50%);
+ background-image: -o-linear-gradient(bottom, #eeeeee 0%, #ffffff 50%);
+ background-image: -ms-linear-gradient(top, #eeeeee 0%, #ffffff 50%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#ffffff', GradientType = 0);
+ background-image: linear-gradient(top, #eeeeee 0%, #ffffff 50%);
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ -moz-background-clip: padding;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid #aaa;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ position: relative;
+ height: 26px;
+ line-height: 26px;
+ padding: 0 0 0 8px;
+ color: #444;
+ text-decoration: none;
+}
+
+.select2-container .select2-choice span {
+ margin-right: 26px;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ -o-text-overflow: ellipsis;
+ -ms-text-overflow: ellipsis;
+ text-overflow: ellipsis;
+}
+
+.select2-container .select2-choice abbr {
+ display: block;
+ position: absolute;
+ right: 26px;
+ top: 8px;
+ width: 12px;
+ height: 12px;
+ font-size: 1px;
+ background: url('../img/select2.png') right top no-repeat;
+ cursor: pointer;
+ text-decoration: none;
+ border:0;
+ outline: 0;
+}
+.select2-container .select2-choice abbr:hover {
+ background-position: right -11px;
+ cursor: pointer;
+}
+
+.select2-container .select2-drop {
+ background: #fff;
+ border: 1px solid #aaa;
+ border-top: 0;
+ position: absolute;
+ top: 100%;
+ -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
+ -moz-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
+ -o-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
+ box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
+ z-index: 999;
+ width:100%;
+ margin-top:-1px;
+
+ -webkit-border-radius: 0 0 4px 4px;
+ -moz-border-radius: 0 0 4px 4px;
+ border-radius: 0 0 4px 4px;
+}
+
+.select2-container .select2-choice div {
+ -webkit-border-radius: 0 4px 4px 0;
+ -moz-border-radius: 0 4px 4px 0;
+ border-radius: 0 4px 4px 0;
+ -moz-background-clip: padding;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ background: #ccc;
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
+ background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
+ background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
+ background-image: -o-linear-gradient(bottom, #ccc 0%, #eee 60%);
+ background-image: -ms-linear-gradient(top, #cccccc 0%, #eeeeee 60%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#cccccc', endColorstr = '#eeeeee', GradientType = 0);
+ background-image: linear-gradient(top, #cccccc 0%, #eeeeee 60%);
+ border-left: 1px solid #aaa;
+ position: absolute;
+ right: 0;
+ top: 0;
+ display: block;
+ height: 100%;
+ width: 18px;
+}
+
+.select2-container .select2-choice div b {
+ background: url('../img/select2.png') no-repeat 0 1px;
+ display: block;
+ width: 100%;
+ height: 100%;
+}
+
+.select2-container .select2-search {
+ display: inline-block;
+ white-space: nowrap;
+ z-index: 1010;
+ min-height: 26px;
+ width: 100%;
+ margin: 0;
+ padding-left: 4px;
+ padding-right: 4px;
+}
+
+.select2-container .select2-search-hidden {
+ display: block;
+ position: absolute;
+ left: -10000px;
+}
+
+.select2-container .select2-search input {
+ background: #fff url('../img/select2.png') no-repeat 100% -22px;
+ background: url('../img/select2.png') no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
+ background: url('../img/select2.png') no-repeat 100% -22px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
+ background: url('../img/select2.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
+ background: url('../img/select2.png') no-repeat 100% -22px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
+ background: url('../img/select2.png') no-repeat 100% -22px, -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%);
+ background: url('../img/select2.png') no-repeat 100% -22px, linear-gradient(top, #ffffff 85%, #eeeeee 99%);
+ padding: 4px 20px 4px 5px;
+ outline: 0;
+ border: 1px solid #aaa;
+ font-family: sans-serif;
+ font-size: 1em;
+ width:100%;
+ margin:0;
+ height:auto !important;
+ min-height: 26px;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+ border-radius: 0;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+}
+
+.select2-container .select2-search input.select2-active {
+ background: #fff url('../img/spinner.gif') no-repeat 100%;
+ background: url('../img/spinner.gif') no-repeat 100%, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
+ background: url('../img/spinner.gif') no-repeat 100%, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
+ background: url('../img/spinner.gif') no-repeat 100%, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
+ background: url('../img/spinner.gif') no-repeat 100%, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
+ background: url('../img/spinner.gif') no-repeat 100%, -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%);
+ background: url('../img/spinner.gif') no-repeat 100%, linear-gradient(top, #ffffff 85%, #eeeeee 99%);
+}
+
+
+.select2-container-active .select2-choice,
+.select2-container-active .select2-choices {
+ -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
+ -moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
+ -o-box-shadow : 0 0 5px rgba(0,0,0,.3);
+ box-shadow : 0 0 5px rgba(0,0,0,.3);
+ border: 1px solid #5897fb;
+ outline: none;
+}
+
+.select2-dropdown-open .select2-choice {
+ border: 1px solid #aaa;
+ border-bottom-color: transparent;
+ -webkit-box-shadow: 0 1px 0 #fff inset;
+ -moz-box-shadow : 0 1px 0 #fff inset;
+ -o-box-shadow : 0 1px 0 #fff inset;
+ box-shadow : 0 1px 0 #fff inset;
+ background-color: #eee;
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.5, #eeeeee));
+ background-image: -webkit-linear-gradient(center bottom, white 0%, #eeeeee 50%);
+ background-image: -moz-linear-gradient(center bottom, white 0%, #eeeeee 50%);
+ background-image: -o-linear-gradient(bottom, white 0%, #eeeeee 50%);
+ background-image: -ms-linear-gradient(top, #ffffff 0%,#eeeeee 50%);
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
+ background-image: linear-gradient(top, #ffffff 0%,#eeeeee 50%);
+ -webkit-border-bottom-left-radius : 0;
+ -webkit-border-bottom-right-radius: 0;
+ -moz-border-radius-bottomleft : 0;
+ -moz-border-radius-bottomright: 0;
+ border-bottom-left-radius : 0;
+ border-bottom-right-radius: 0;
+}
+
+.select2-dropdown-open .select2-choice div {
+ background: transparent;
+ border-left: none;
+}
+.select2-dropdown-open .select2-choice div b {
+ background-position: -18px 1px;
+}
+
+/* results */
+.select2-container .select2-results {
+ margin: 4px 4px 4px 0;
+ padding: 0 0 0 4px;
+ position: relative;
+ overflow-x: hidden;
+ overflow-y: auto;
+ max-height: 200px;
+}
+.select2-container .select2-results li {
+ line-height: 80%;
+ padding: 7px 7px 8px;
+ margin: 0;
+ list-style: none;
+ cursor: pointer;
+ display: list-item;
+}
+
+.select2-container .select2-results .select2-highlighted {
+ background: #3875d7;
+ color: #fff;
+}
+.select2-container .select2-results li em {
+ background: #feffde;
+ font-style: normal;
+}
+.select2-container .select2-results .select2-highlighted em {
+ background: transparent;
+}
+.select2-container .select2-results .select2-no-results {
+ background: #f4f4f4;
+ display: list-item;
+}
+
+/*
+disabled look for already selected choices in the results dropdown
+.select2-container .select2-results .select2-disabled.select2-highlighted {
+ color: #666;
+ background: #f4f4f4;
+ display: list-item;
+ cursor: default;
+}
+.select2-container .select2-results .select2-disabled {
+ background: #f4f4f4;
+ display: list-item;
+ cursor: default;
+}
+*/
+.select2-container .select2-results .select2-disabled {
+ display: none;
+}
+
+.select2-more-results.select2-active {
+ background: #f4f4f4 url('../img/spinner.gif') no-repeat 100%;
+}
+
+.select2-more-results {
+ background: #f4f4f4;
+ display: list-item;
+}
+
+/* disabled styles */
+
+.select2-container.select2-container-disabled .select2-choice {
+ background-color: #f4f4f4;
+ background-image: none;
+ border: 1px solid #ddd;
+ cursor: default;
+}
+
+.select2-container.select2-container-disabled .select2-choice div {
+ background-color: #f4f4f4;
+ background-image: none;
+ border-left: 0;
+}
+
+
+/* multiselect */
+
+.select2-container-multi .select2-choices {
+ background-color: #fff;
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
+ background-image: -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ border: 1px solid #aaa;
+ margin: 0;
+ padding: 0;
+ cursor: text;
+ overflow: hidden;
+ height: auto !important;
+ height: 1%;
+ position: relative;
+}
+
+.select2-container-multi .select2-drop {
+ margin-top:0;
+}
+
+.select2-container-multi .select2-choices {
+ min-height: 26px;
+}
+
+.select2-container-multi.select2-container-active .select2-choices {
+ -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
+ -moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
+ -o-box-shadow : 0 0 5px rgba(0,0,0,.3);
+ box-shadow : 0 0 5px rgba(0,0,0,.3);
+ border: 1px solid #5897fb;
+ outline: none;
+}
+.select2-container-multi .select2-choices li {
+ float: left;
+ list-style: none;
+}
+.select2-container-multi .select2-choices .select2-search-field {
+ white-space: nowrap;
+ margin: 0;
+ padding: 0;
+}
+
+.select2-container-multi .select2-choices .select2-search-field input {
+ color: #666;
+ background: transparent !important;
+ font-family: sans-serif;
+ font-size: 100%;
+ height: 15px;
+ padding: 5px;
+ margin: 1px 0;
+ outline: 0;
+ border: 0;
+ -webkit-box-shadow: none;
+ -moz-box-shadow : none;
+ -o-box-shadow : none;
+ box-shadow : none;
+}
+
+
+.select2-default {
+ color: #999 !important;
+}
+
+.select2-container-multi .select2-choices .select2-search-choice {
+ -webkit-border-radius: 3px;
+ -moz-border-radius : 3px;
+ border-radius : 3px;
+ -moz-background-clip : padding;
+ -webkit-background-clip: padding-box;
+ background-clip : padding-box;
+ background-color: #e4e4e4;
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 );
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
+ background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ -webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
+ -moz-box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
+ box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
+ color: #333;
+ border: 1px solid #aaaaaa;
+ line-height: 13px;
+ padding: 3px 5px 3px 18px;
+ margin: 3px 0 3px 5px;
+ position: relative;
+ cursor: default;
+}
+.select2-container-multi .select2-choices .select2-search-choice span {
+ cursor: default;
+}
+.select2-container-multi .select2-choices .select2-search-choice-focus {
+ background: #d4d4d4;
+}
+
+.select2-search-choice-close {
+ display: block;
+ position: absolute;
+ right: 3px;
+ top: 4px;
+ width: 12px;
+ height: 13px;
+ font-size: 1px;
+ background: url('../img/select2.png') right top no-repeat;
+ outline: none;
+}
+
+.select2-container-multi .select2-search-choice-close {
+ left: 3px;
+}
+
+
+.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover {
+ background-position: right -11px;
+}
+.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close {
+ background-position: right -11px;
+}
+
+
+.select2-container-multi .select2-results {
+ margin: -1px 0 0;
+ padding: 0;
+}
+
+/* disabled styles */
+
+.select2-container-multi.select2-container-disabled .select2-choices{
+ background-color: #f4f4f4;
+ background-image: none;
+ border: 1px solid #ddd;
+ cursor: default;
+}
+
+.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice {
+ background-image: none;
+ background-color: #f4f4f4;
+ border: 1px solid #ddd;
+ padding: 3px 5px 3px 5px;
+}
+
+.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close {
+ display: none;
+}
+/* end multiselect */