diff --git a/theme/bootstrap/README.txt b/theme/bootstrap/README.txt
new file mode 100644
index 00000000000..e74a2017ea0
--- /dev/null
+++ b/theme/bootstrap/README.txt
@@ -0,0 +1,151 @@
+About this theme
+================
+
+This is the Bootstrap theme for Moodle.
+
+* package Moodle Bootstrap theme
+* copyright 2013 Bas Brands. www.sonsbeekmedia.nl
+* authors Bas Brands, David Scotson
+* license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+
+This theme has been created with the help of:
+Stuart Lamour, Mark Aberdour, Paul Hibbitts, Mary Evans
+
+This theme is based on the Twitter Bootstrap CSS framework version 2.3.
+It contains all unmodified less* CSS sources from the Twitter Bootstrap CSS
+framework in folder /less/bootstrap.
+On top of the Bootstrap less CSS sources Moodle CSS is added to create this
+theme.
+
+HTML5 is tags are used in the /layout/general.php file. The structure of this file
+provides a 2-1-3 layout when looking at your Moodle page source. This improves
+accessibility and Search Engine Optimization (SEO).
+
+*less CSS
+Less CSS is a Object Oriented way of writing CSS code. All Less CSS files
+for this theme are stored in the /less folder. A developer can run a command
+line script to generate the single CSS file called /style/generated.css. For more
+information read /less/README
+
+JavaScript Libraries
+
+html5shiv.js
+------------
+To provide backwards compatibility for HTML5 for Internet Explorer 7 (IE7) and Internet
+Explorer 8 (IE8) a javascript library call /javascript/html5shiv.js was added. This
+JavaScript converts HTML tags and CSS into Tag that are understood by IE7 and IE8.
+The config.php makes sure these libraries are only loaded for IE7 and IE8.
+
+bootstrapcollapse.js, bootstrapdropdown.js, bootstrapengine.js
+--------------------------------------------------------------
+These are the 3 out of 12 original YUI ports of the Twitter Bootstrap jQuery libraries by
+Jay Shirley. The full list of the ported libraries can be found here:
+https://github.com/jshirley/bootstrap/tree/master/js
+
+moodlebootstrap.js
+------------------
+This file initiates the bootstrap*.js libraries.
+
+headercollapse.js
+-----------------
+Workaround for the collapse button on the Moodle custom menu. Without this
+Submenu items cannot be opened
+
+
+Updating Twitter bootstrap and Libraries
+========================================
+
+Twitter bootstrap
+-----------------
+This theme uses the original unmodified version 2.3.0 Twitter bootstrap less files. These are
+Object Oriented CSS files. The bootstrap repository is available on:
+
+https://github.com/twitter/bootstrap.git
+
+To update to the latest release of twitter bootstrap remove all files from less/bootstrap,
+download the new less files and store them in less/bootstrap
+Inclusion of bootstrap files is configured in less/moodle.less. To generate the new
+Moodle CSS read /less/README
+
+html5shiv.js
+------------
+This theme uses the original unmodified html5shiv.js JavaScript library to enable HTML5 tags in IE7 and IE8.
+This library is available on:
+
+https://github.com/aFarkas/html5shiv/blob/master/src/html5shiv.js
+
+To update to the latest release of html5shiv download and replace:
+javascript/html5shiv.js
+
+bootstrapcollapse.js, bootstrapdropdown.js, bootstrapengine.js
+--------------------------------------------------------------
+This them uses YUI ports of the Twitter bootstrap jQuery based libs. These ported files are available on:
+
+https://github.com/jshirley/yui3-gallery/blob/master/src/gallery-bootstrap-collapse/js/bootstrap-collapse.js
+https://github.com/jshirley/yui3-gallery/blob/master/src/gallery-bootstrap-dropdown/js/bootstrap-dropdown.js
+https://github.com/jshirley/yui3-gallery/blob/master/src/gallery-bootstrap-engine/js/bootstrap-engine.js
+
+The content of these files are slightly modified to make sure all required YUI libraries are loaded. To achieve
+that the first and last line of each of these files has been modified.
+
+The YUI port of the Twitter bootstrap libs are now longer maintained. If you need all of the Bootstrap JavaScript
+functionality consider switching to the original jQuery version of these file
+
+If you do want to update use these file locations:
+javascript/bootstrap-collapse.js
+javascript/bootstrap-dropdown.js
+javascript/bootstrap-engine.js
+
+
+Licenses & Authors
+==================
+
+Twitter Bootstrap Copyright and license
+---------------------------------------
+Authors: Mark Otto, Jacob Thornton
+URL: http://twitter.github.com/bootstrap/
+License:
+
+Copyright 2012 Twitter, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this work except in compliance with the License.
+You may obtain a copy of the License in the LICENSE file, or at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Html5shiv.js
+------------
+Author: Sjoerd Visscher
+URL: http://en.wikipedia.org/wiki/HTML5_Shiv, https://github.com/aFarkas/html5shiv
+License: MIT/GPL2 Licensed
+
+bootstrapcollapse.js, bootstrapdropdown.js, bootstrapengine.js
+--------------------------------------------------------------
+Author: Jay Shirley
+URL: http://jshirley.github.com/bootstrap/
+License:
+Copyright 2012 Twitter, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this work except in compliance with the License.
+You may obtain a copy of the License in the LICENSE file, or at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+moodlebootstrap.js
+------------------
+Author: 2013 Bas Brands. www.sonsbeekmedia.nl
+license: http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
\ No newline at end of file
diff --git a/theme/bootstrap/config.php b/theme/bootstrap/config.php
new file mode 100644
index 00000000000..586b499dc53
--- /dev/null
+++ b/theme/bootstrap/config.php
@@ -0,0 +1,166 @@
+.
+
+/**
+ * Configuration for Moodle's bootstrap theme.
+ *
+ * DO NOT MODIFY THIS THEME!
+ * COPY IT FIRST, THEN RENAME THE COPY AND MODIFY IT INSTEAD.
+ *
+ * For full information about creating Moodle themes, see:
+ * http://docs.moodle.org/dev/Themes_2.0
+ *
+ * @package Moodle Bootstrap theme
+ * @copyright 2013 Bas Brands. www.sonsbeekmedia.nl
+ * @authors Bas Brands, David Scotson
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+$THEME->doctype = 'html5';
+$THEME->yuicssmodules = array();
+$THEME->name = 'bootstrap';
+$THEME->parents = array('');
+$THEME->sheets = array('generated');
+$THEME->supportscssoptimisation = false;
+
+$THEME->editor_sheets = array('editor');
+
+
+$THEME->plugins_exclude_sheets = array(
+ 'block' => array(
+ 'settings',
+ 'navigation',
+ 'html'
+ ),
+ 'gradereport' => array(
+ 'grader',
+ ),
+);
+
+$THEME->rendererfactory = 'theme_overridden_renderer_factory';
+
+$THEME->layouts = array(
+ 'base' => array(
+ 'file' => 'general.php',
+ 'regions' => array('side-pre', 'side-post'),
+ 'defaultregion' => 'side-pre',
+ ),
+ 'standard' => array(
+ 'file' => 'general.php',
+ 'regions' => array('side-pre', 'side-post'),
+ 'defaultregion' => 'side-pre',
+ ),
+ 'course' => array(
+ 'file' => 'general.php',
+ 'regions' => array('side-pre', 'side-post'),
+ 'defaultregion' => 'side-pre'
+ ),
+ 'coursecategory' => array(
+ 'file' => 'general.php',
+ 'regions' => array('side-pre', 'side-post'),
+ 'defaultregion' => 'side-pre',
+ ),
+ 'incourse' => array(
+ 'file' => 'general.php',
+ 'regions' => array('side-pre', 'side-post'),
+ 'defaultregion' => 'side-pre',
+ ),
+ 'frontpage' => array(
+ 'file' => 'general.php',
+ 'regions' => array('side-pre'),
+ 'defaultregion' => 'side-pre',
+ 'options' => array('nonavbar'=>true),
+ ),
+ 'admin' => array(
+ 'file' => 'general.php',
+ 'regions' => array('side-pre'),
+ 'defaultregion' => 'side-pre',
+ ),
+ 'mydashboard' => array(
+ 'file' => 'general.php',
+ 'regions' => array('side-pre', 'side-post'),
+ 'defaultregion' => 'side-pre',
+ 'options' => array('langmenu'=>true),
+ ),
+ 'mypublic' => array(
+ 'file' => 'general.php',
+ 'regions' => array('side-pre', 'side-post'),
+ 'defaultregion' => 'side-pre',
+ ),
+ 'login' => array(
+ 'file' => 'general.php',
+ 'regions' => array(),
+ 'options' => array('langmenu'=>true),
+ 'options' => array('nonavbar'=>true, 'noheader'=>true),
+ ),
+ 'popup' => array(
+ 'file' => 'general.php',
+ 'regions' => array(),
+ 'options' => array('nofooter'=>true, 'noblocks'=>true, 'nonavbar'=>true),
+ ),
+ 'frametop' => array(
+ 'file' => 'general.php',
+ 'regions' => array(),
+ 'options' => array('nofooter'=>true),
+ ),
+ 'maintenance' => array(
+ 'file' => 'general.php',
+ 'regions' => array(),
+ 'options' => array('nofooter'=>true, 'nonavbar'=>true),
+ ),
+ 'embedded' => array(
+ 'theme' => 'canvas',
+ 'file' => 'embedded.php',
+ 'regions' => array(),
+ 'options' => array('nofooter'=>true, 'nonavbar'=>true),
+ ),
+ 'print' => array(
+ 'file' => 'general.php',
+ 'regions' => array(),
+ 'options' => array('nofooter'=>true, 'nonavbar'=>false, 'noblocks'=>true),
+ ),
+ 'redirect' => array(
+ 'file' => 'general.php',
+ 'regions' => array(),
+ 'options' => array('nofooter'=>true, 'nonavbar'=>false, 'noblocks'=>true),
+ ),
+ 'report' => array(
+ 'file' => 'general.php',
+ 'regions' => array('side-pre'),
+ 'defaultregion' => 'side-pre',
+ ),
+ // The pagelayout used for safebrowser and securewindow.
+ 'secure' => array(
+ 'file' => 'general.php',
+ 'regions' => array('side-pre', 'side-post'),
+ 'defaultregion' => 'side-pre',
+ 'options' => array('nofooter'=>true, 'nonavbar'=>true, 'nocustommenu'=>true,
+ 'nologinlinks'=>true, 'nocourseheaderfooter'=>true),
+ ),
+);
+
+$THEME->javascripts = array(
+ 'bootstrapengine',
+ 'moodlebootstrap',
+ 'bootstrapcollapse',
+ 'bootstrapdropdown',
+ 'headercollapse',
+);
+
+if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 8') || strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 7') ) {
+ $THEME->javascripts[] = 'html5shiv';
+}
+
diff --git a/theme/bootstrap/javascript/bootstrapcollapse.js b/theme/bootstrap/javascript/bootstrapcollapse.js
new file mode 100644
index 00000000000..53923123511
--- /dev/null
+++ b/theme/bootstrap/javascript/bootstrapcollapse.js
@@ -0,0 +1,224 @@
+YUI.add('gallery-bootstrap-collapse', function(Y) {
+
+/**
+A Plugin which provides collapsing/expanding behaviors on a Node with
+compatible syntax and markup from Twitter's Bootstrap project.
+
+@module gallery-bootstrap-collapse
+**/
+
+/**
+A Plugin which provides collapsing and expanding behaviors on a Node with
+compatible syntax and markup from Twitter's Bootstrap project.
+
+It possible to have dynamic behaviors without incorporating any
+JavaScript by setting data-toggle=collapse on any element.
+
+However, it can be manually plugged into any node or node list.
+
+@example
+
+ var node = Y.one('.someNode');
+ node.plug( Y.Bootstrap.Collapse, config );
+
+ node.collapse.show();
+
+@class Bootstrap.Collapse
+**/
+
+function CollapsePlugin(config) {
+ CollapsePlugin.superclass.constructor.apply(this, arguments);
+}
+
+CollapsePlugin.NAME = 'Bootstrap.Collapse';
+CollapsePlugin.NS = 'collapse';
+
+Y.extend(CollapsePlugin, Y.Plugin.Base, {
+ defaults : {
+ duration : 0.25,
+ easing : 'ease-in',
+ showClass : 'in',
+ hideClass : 'out',
+
+ groupSelector : '> .accordion-group > .in'
+ },
+
+ transitioning: false,
+
+ initializer : function(config) {
+ this._node = config.host;
+
+ this.config = Y.mix( config, this.defaults );
+
+ this.publish('show', { preventable : true, defaultFn : this.show });
+ this.publish('hide', { preventable : true, defaultFn : this.hide });
+
+ this._node.on('click', this.toggle, this);
+ },
+
+ _getTarget: function() {
+ var node = this._node,
+ container;
+
+ if ( node.getData('target') ) {
+ container = Y.one( node.getData('target') );
+ }
+ else if ( node.getAttribute('href').indexOf('#') >= 0 ) {
+ Y.log('No target, looking at href: ' + node.getAttribute('href'), 'debug', 'Bootstrap.Collapse');
+ container = Y.one( node.getAttribute('href').substr( node.getAttribute('href').indexOf('#') ) );
+ }
+ return container;
+ },
+
+ /**
+ * @method hide
+ * @description Hide the collapsible target, specified by the host's
+ * data-target or href attribute.
+ */
+ hide: function() {
+ var showClass = this.config.showClass,
+ hideClass = this.config.hideClass,
+ node = this._getTarget();
+
+ if ( this.transitioning ) {
+ return;
+ }
+
+ if ( node ) {
+ this._hideElement(node);
+ }
+ },
+
+ /**
+ * @method show
+ * @description Show the collapsible target, specified by the host's
+ * data-target or href attribute.
+ */
+ show: function() {
+ var showClass = this.config.showClass,
+ hideClass = this.config.hideClass,
+ node = this._getTarget(),
+ host = this._node,
+ self = this,
+ parent,
+ group_selector = this.config.groupSelector;
+
+ if ( this.transitioning ) {
+ return;
+ }
+
+ if ( host.getData('parent') ) {
+ parent = Y.one( host.getData('parent') );
+ if ( parent ) {
+ parent.all(group_selector).each( function(el) {
+ Y.log('Hiding element: ' + el, 'debug', 'Bootstrap.Collapse');
+ self._hideElement(el);
+ });
+ }
+ }
+ this._showElement(node);
+ },
+
+ /**
+ @method toggle
+ @description Toggle the state of the collapsible target, specified
+ by the host's data-target or href
+ attribute. Calls the show or hide method.
+ **/
+ toggle : function(e) {
+ if ( e && Y.Lang.isFunction(e.preventDefault) ) {
+ e.preventDefault();
+ }
+
+ var target = this._getTarget();
+
+ if ( target.hasClass( this.config.showClass ) ) {
+ this.fire('hide');
+ } else {
+ this.fire('show');
+ }
+ },
+
+ /**
+ @method _transition
+ @description Handles the transition between showing and hiding.
+ @protected
+ @param node {Node} node to apply transitions to
+ @param method {String} 'hide' or 'show'
+ **/
+ _transition : function(node, method) {
+ var self = this,
+ config = this.config,
+ duration = config.duration,
+ easing = config.easing,
+ // If we are hiding, then remove the show class.
+ removeClass = method === 'hide' ? config.showClass : config.hideClass,
+ // And if we are hiding, add the hide class.
+ addClass = method === 'hide' ? config.hideClass : config.showClass,
+
+ to_height = method === 'hide' ? 0 : null,
+ event = method === 'hide' ? 'hidden' : 'shown',
+
+ complete = function() {
+ node.removeClass(removeClass);
+ node.addClass(addClass);
+ self.transitioning = false;
+ this.fire( event );
+ };
+
+ if ( to_height === null ) {
+ to_height = 0;
+ node.all('> *').each(function(el) {
+ to_height += el.get('scrollHeight');
+ });
+ }
+
+ this.transitioning = true;
+
+ node.transition({
+ height : to_height +'px',
+ duration : duration,
+ easing : easing
+ }, complete);
+ },
+
+ /**
+ @method _hideElement
+ @description Calls the _transition method to hide a node.
+ @protected
+ @param node {Node} node to hide.
+ **/
+ _hideElement : function(node) {
+ this._transition(node, 'hide');
+/*
+ var showClass = this.showClass,
+ hideClass = this.hideClass;
+
+ node.removeClass(showClass);
+ node.addClass(hideClass);
+*/
+ },
+
+ /**
+ @method _showElement
+ @description Calls the _transition method to show a node.
+ @protected
+ @param node {Node} node to show.
+ **/
+ _showElement : function(node) {
+ this._transition(node, 'show');
+/*
+ var showClass = this.showClass,
+ hideClass = this.hideClass;
+ node.removeClass(hideClass);
+ node.addClass(showClass);
+*/
+ }
+});
+
+Y.namespace('Bootstrap').Collapse = CollapsePlugin;
+
+
+
+}, '@VERSION@' ,{requires:['plugin','transition','event','event-delegate']});
+;
\ No newline at end of file
diff --git a/theme/bootstrap/javascript/bootstrapdropdown.js b/theme/bootstrap/javascript/bootstrapdropdown.js
new file mode 100644
index 00000000000..891e624b7dd
--- /dev/null
+++ b/theme/bootstrap/javascript/bootstrapdropdown.js
@@ -0,0 +1,115 @@
+YUI.add('gallery-bootstrap-dropdown', function(Y) {
+
+/**
+A Plugin which provides dropdown behaviors for dropdown buttons and menu
+groups. This utilizes the markup from the Twitter Bootstrap Project.
+
+@module gallery-bootstrap-dropdown
+**/
+
+/**
+A Plugin which provides dropdown behaviors for dropdown buttons and menu
+groups. This utilizes the markup from the Twitter Bootstrap Project.
+
+To automatically gain this functionality, you can simply add the
+data-toggle=dropdown attribute to any element.
+
+It can also be plugged into any node or node list.
+
+@example
+
+ var node = Y.one('.someNode');
+ node.plug( Y.Bootstrap.Dropdown );
+ node.dropdown.show();
+
+@class Bootstrap.Dropdown
+**/
+
+var NS = Y.namespace('Bootstrap');
+
+function DropdownPlugin(config) {
+ DropdownPlugin.superclass.constructor.apply(this, arguments);
+}
+
+DropdownPlugin.NAME = 'Bootstrap.Dropdown';
+DropdownPlugin.NS = 'dropdown';
+
+Y.extend( DropdownPlugin, Y.Plugin.Base, {
+ defaults : {
+ className : 'open',
+ target : 'target',
+ selector : ''
+ },
+ initializer : function(config) {
+ this._node = config.host;
+
+ this.config = Y.mix( config, this.defaults );
+
+ this.publish('show', { preventable : true, defaultFn : this.show });
+ this.publish('hide', { preventable : true, defaultFn : this.hide });
+
+ this._node.on('click', this.toggle, this);
+ },
+
+ toggle : function() {
+ var target = this.getTarget(),
+ className = this.config.className;
+
+ target.toggleClass( className );
+ target.once('clickoutside', function(e) {
+ target.toggleClass( className );
+ });
+ },
+
+ show : function() {
+ this.getTarget().addClass( this.config.className );
+ },
+ hide : function() {
+ this.getTarget().removeClass( this.config.className );
+ },
+ open : function() {
+ this.getTarget().addClass( this.config.className );
+ },
+ close : function() {
+ this.getTarget().removeClass( this.config.className );
+ },
+
+ /**
+ @method getTarget
+ @description Fetches a Y.NodeList or Y.Node that should be used to modify class names
+ **/
+ getTarget : function() {
+ var node = this._node,
+ selector = node.getData( this.config.target ),
+ target;
+
+ if ( !selector ) {
+ selector = node.getAttribute('href');
+ selector = target && target.replace(/.*(?=#[^\s]*$)/, ''); //strip for ie7
+ }
+
+ target = Y.all(selector);
+ if ( target.size() === 0 ) {
+ target = node.get('parentNode');
+ }
+
+ return target;
+ }
+});
+
+NS.Dropdown = DropdownPlugin;
+NS.dropdown_delegation = function() {
+ Y.delegate('click', function(e) {
+ var target = e.currentTarget;
+ e.preventDefault();
+
+ if ( typeof e.target.dropdown === 'undefined' ) {
+ target.plug( DropdownPlugin );
+ target.dropdown.toggle();
+ }
+ }, document.body, '*[data-toggle=dropdown]' );
+};
+
+
+}, '@VERSION@' ,{requires:['plugin','event','event-outside']});
+;
\ No newline at end of file
diff --git a/theme/bootstrap/javascript/bootstrapengine.js b/theme/bootstrap/javascript/bootstrapengine.js
new file mode 100644
index 00000000000..aede39dea13
--- /dev/null
+++ b/theme/bootstrap/javascript/bootstrapengine.js
@@ -0,0 +1,274 @@
+YUI.add('gallery-bootstrap-engine', function(Y) {
+
+/**
+ * Bootstrap Engine for Plug and Play widgets. This class is meant to be used in
+ * conjuntion with the Injection Engine (gallery-bootstrap-engine). It facilitates the use of
+ * an iframe as a sandbox to execute certain tasks and/or a presention element.
+ *
+ * @module gallery-bootstrap-engine
+ * @requires node, base-base
+ * @class Y.BootstrapEngine
+ * @param config {Object} Configuration object
+ * @extends Y.Base
+ * @constructor
+ */
+
+///////////////////////////////////////////////////////////////////////////
+//
+// Private shorthands, constants and variables
+//
+///////////////////////////////////////////////////////////////////////////
+
+var ATTR_HOST = 'host';
+
+///////////////////////////////////////////////////////////////////////////
+//
+// Class definition
+//
+///////////////////////////////////////////////////////////////////////////
+
+function BootstrapEngine () {
+ BootstrapEngine.superclass.constructor.apply(this, arguments);
+}
+
+Y.mix(BootstrapEngine, {
+
+ /**
+ * The identity of the class.
+ * @property BootstrapEngine.NAME
+ * @type string
+ * @static
+ * @final
+ * @readOnly
+ * @default 'bootstrap'
+ */
+ NAME: 'bootstrap',
+
+ /**
+ * Static property used to define the default attribute configuration of
+ * the class.
+ * @property BootstrapEngine.ATTRS
+ * @type Object
+ * @protected
+ * @static
+ */
+ ATTRS: {
+ /**
+ * @attribute container
+ * @type {Selector|Node}
+ * @writeOnce
+ * @description selector or node for the iframe's container. This is relative to the parent document.
+ */
+ container: {
+ getter: function (v) {
+ var host = this.get(ATTR_HOST);
+ return host && host.one( v );
+ }
+ },
+ /**
+ * @attribute iframe
+ * @type {Node}
+ * @readyOnly
+ * @description Node reference to the iframe on the parent document.
+ */
+ iframe: {
+ getter: function () {
+ var c = this.get('container');
+ return c && c.one('iframe' );
+ }
+ },
+ /**
+ * @attribute host
+ * @type {Object}
+ * @readyOnly
+ * @description A "Y" reference bound to the parent document.
+ */
+ host: {
+ readyOnly: true
+ },
+ /**
+ * @attribute ready
+ * @type {Boolean}
+ * @readyOnly
+ * @description A "Y" reference bound to the parent document.
+ */
+ ready: {
+ value: false,
+ readyOnly: true
+ }
+ }
+
+});
+
+Y.extend(BootstrapEngine, Y.Base, {
+ /**
+ * Any extra YUI module that you want to use by default in HOST YUI instance.
+ * "node" module will be added automatically since it's required by bootstrap.
+ * @property EXTRAS
+ * @type Array
+ * @default []
+ */
+ EXTRAS: [],
+
+ /**
+ * Construction logic executed during Bootstrap Engine instantiation.
+ *
+ * @method initializer
+ * @param cfg {Object} Initial configuration
+ * @protected
+ */
+ initializer: function () {
+ var instance = this,
+ parent, win, doc,
+ use = Y.Array(instance.EXTRAS),
+ host,
+ callBootFn = function () {
+ // finishing the initialization process async to facilitate
+ // addons to hook into _boot/_init/_bind/_ready if needed.
+ // todo: after migrating to 3.4 this is not longer needed, and we can use initializer and destroyer
+ // in each extension
+ Y.later(0, instance, function() {
+ instance._boot();
+ });
+ };
+
+ try {
+ parent = Y.config.win.parent;
+ win = parent && parent.window;
+ doc = win && win.document;
+ } catch(e) {
+ Y.log ('Parent window is not available or is a different domain', 'warn', 'bootstrap');
+ }
+
+ Y.log ('Initialization', 'info', 'bootstrap');
+ // parent is optional to facilitate testing and headless execution
+ if (parent && win && doc) {
+ host = YUI({
+ bootstrap: false,
+ win: win,
+ doc: doc
+ });
+ use.push('node', function() {
+ callBootFn();
+ });
+
+ // Creating a new YUI instance bound to the parent window
+ instance._set(ATTR_HOST, host.use.apply(host, use));
+ } else {
+ callBootFn();
+ }
+ },
+
+ /**
+ * Basic initialization routine, styling the iframe, binding events and
+ * connecting the bootstrap engine with the injection engine.
+ *
+ * @method _boot
+ * @protected
+ */
+ _boot: function () {
+ var instance = this,
+ auto;
+ Y.log ('Boot', 'info', 'bootstrap');
+ // connecting with the injection engine before doing anything else
+ auto = instance._connect();
+ // adjust the iframe container in preparation for the first display action
+ instance._styleIframe();
+ // create some objects and markup
+ instance._init();
+ // binding some extra events
+ instance._bind();
+ // if the connect process wants to automatically execute the _ready, it should returns true.
+ if (auto) {
+ // connecting the bootstrap with the injection engine
+ instance._ready();
+ }
+ // marking the system as ready
+ instance._set('ready', true);
+ },
+
+ /**
+ * Connects the bootstrap with the injection engine running in the parent window. This method
+ * defines the hand-shake process between them. This method is meant to be called by
+ * the bootstrap engine _init method to start the connection.
+ *
+ * @method _connect
+ * @protected
+ */
+ _connect: function () {
+ var guid = Y.config.guid, // injection engine guid value
+ host = this.get(ATTR_HOST),
+ pwin = host && host.config.win,
+ // getting a reference to the parent window callback function to notify
+ // to the injection engine that the bootstrap is ready
+ callback = guid && pwin && pwin.YUI && pwin.YUI.Env[guid];
+
+ Y.log ('Bootstrap connect', 'info', 'bootstrap');
+ // connecting bootstrap with the injection engines
+ return ( callback ? callback ( this ) : false );
+ },
+
+ /**
+ * Basic initialization routine, usually to create markup, new objects and attributes, etc.
+ * Overrides/Extends this prototype method to do your mojo.
+ *
+ * @method _init
+ * @protected
+ */
+ _init: function () {
+ Y.log ('Init bootstrap', 'info', 'bootstrap');
+ },
+
+ /**
+ * Defines the binding logic for the bootstrap engine, listening for some attributes
+ * that might change, and defining the set of events that can be exposed to the injection engine.
+ * Overrides/Extends this prototype method to do your mojo.
+ *
+ * @method _bind
+ * @protected
+ */
+ _bind: function () {
+ Y.log ('Binding bootstrap', 'info', 'bootstrap');
+ },
+
+ /**
+ * This method will be called only if the connect response with "true", you can use this
+ * to control the state of the initialization from the injection engine since it might
+ * take some time to load the stuff in the iframe, and the user might interact with the page
+ * invalidating the initialization routine.
+ * Overrides/Extends this prototype method to do your mojo.
+ *
+ * @method _ready
+ * @protected
+ */
+ _ready : function () {
+ Y.log ('Bootstrap is ready', 'info', 'bootstrap');
+ },
+
+ /**
+ * The iframe that holds the bootstrap engine sometimes is used as a UI overlay.
+ * In this case, you can style it through this method. By default, it will set
+ * border, frameBorder, marginWidth, marginHeight, leftMargin and topMargin to
+ * cero, and allowTransparency to true.
+ *
+ * @method _styleIframe
+ * @protected
+ */
+ _styleIframe: function () {
+ var iframe = this.get('iframe');
+ // making the iframe optional to facilitate tests
+ if (iframe) {
+ Y.log ('Styling the iframe', 'info', 'bootstrap');
+ Y.each (['border', 'marginWidth', 'marginHeight', 'leftMargin', 'topMargin'], function (name) {
+ iframe.setAttribute(name, 0);
+ });
+ }
+ }
+
+});
+
+Y.BootstrapEngine = BootstrapEngine;
+
+
+}, '@VERSION@' ,{requires:['node','base-base']});
+;
\ No newline at end of file
diff --git a/theme/bootstrap/javascript/headercollapse.js b/theme/bootstrap/javascript/headercollapse.js
new file mode 100644
index 00000000000..77ca49f67dd
--- /dev/null
+++ b/theme/bootstrap/javascript/headercollapse.js
@@ -0,0 +1,10 @@
+YUI().use('node', function(Y) {
+ var toggleShow = function(e) {
+ // Toggle the active class on both the clicked .btn-navbar and the .nav-collapse.
+ // Our CSS will set the height for these
+ var togglemenu = Y.one('.nav-collapse');
+ togglemenu.toggleClass('active');
+ this.toggleClass('active');
+ };
+ Y.delegate('click', toggleShow, Y.config.doc, '.btn-navbar');
+});
\ No newline at end of file
diff --git a/theme/bootstrap/javascript/html5shiv.js b/theme/bootstrap/javascript/html5shiv.js
new file mode 100644
index 00000000000..4875fbb2f4d
--- /dev/null
+++ b/theme/bootstrap/javascript/html5shiv.js
@@ -0,0 +1,301 @@
+/**
+* @preserve HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+*/
+;(function(window, document) {
+/*jshint evil:true */
+ /** version */
+ var version = '3.6.2';
+
+ /** Preset options */
+ var options = window.html5 || {};
+
+ /** Used to skip problem elements */
+ var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
+
+ /** Not all elements can be cloned in IE **/
+ var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
+
+ /** Detect whether the browser supports default html5 styles */
+ var supportsHtml5Styles;
+
+ /** Name of the expando, to work with multiple documents or to re-shiv one document */
+ var expando = '_html5shiv';
+
+ /** The id for the the documents expando */
+ var expanID = 0;
+
+ /** Cached data for each document */
+ var expandoData = {};
+
+ /** Detect whether the browser supports unknown elements */
+ var supportsUnknownElements;
+
+ (function() {
+ try {
+ var a = document.createElement('a');
+ a.innerHTML = ' ';
+ //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
+ supportsHtml5Styles = ('hidden' in a);
+
+ supportsUnknownElements = a.childNodes.length == 1 || (function() {
+ // assign a false positive if unable to shiv
+ (document.createElement)('a');
+ var frag = document.createDocumentFragment();
+ return (
+ typeof frag.cloneNode == 'undefined' ||
+ typeof frag.createDocumentFragment == 'undefined' ||
+ typeof frag.createElement == 'undefined'
+ );
+ }());
+ } catch(e) {
+ // assign a false positive if detection fails => unable to shiv
+ supportsHtml5Styles = true;
+ supportsUnknownElements = true;
+ }
+
+ }());
+
+ /*--------------------------------------------------------------------------*/
+
+ /**
+ * Creates a style sheet with the given CSS text and adds it to the document.
+ * @private
+ * @param {Document} ownerDocument The document.
+ * @param {String} cssText The CSS text.
+ * @returns {StyleSheet} The style element.
+ */
+ function addStyleSheet(ownerDocument, cssText) {
+ var p = ownerDocument.createElement('p'),
+ parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
+
+ p.innerHTML = 'x';
+ return parent.insertBefore(p.lastChild, parent.firstChild);
+ }
+
+ /**
+ * Returns the value of `html5.elements` as an array.
+ * @private
+ * @returns {Array} An array of shived element node names.
+ */
+ function getElements() {
+ var elements = html5.elements;
+ return typeof elements == 'string' ? elements.split(' ') : elements;
+ }
+
+ /**
+ * Returns the data associated to the given document
+ * @private
+ * @param {Document} ownerDocument The document.
+ * @returns {Object} An object of data.
+ */
+ function getExpandoData(ownerDocument) {
+ var data = expandoData[ownerDocument[expando]];
+ if (!data) {
+ data = {};
+ expanID++;
+ ownerDocument[expando] = expanID;
+ expandoData[expanID] = data;
+ }
+ return data;
+ }
+
+ /**
+ * returns a shived element for the given nodeName and document
+ * @memberOf html5
+ * @param {String} nodeName name of the element
+ * @param {Document} ownerDocument The context document.
+ * @returns {Object} The shived element.
+ */
+ function createElement(nodeName, ownerDocument, data){
+ if (!ownerDocument) {
+ ownerDocument = document;
+ }
+ if(supportsUnknownElements){
+ return ownerDocument.createElement(nodeName);
+ }
+ if (!data) {
+ data = getExpandoData(ownerDocument);
+ }
+ var node;
+
+ if (data.cache[nodeName]) {
+ node = data.cache[nodeName].cloneNode();
+ } else if (saveClones.test(nodeName)) {
+ node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
+ } else {
+ node = data.createElem(nodeName);
+ }
+
+ // Avoid adding some elements to fragments in IE < 9 because
+ // * Attributes like `name` or `type` cannot be set/changed once an element
+ // is inserted into a document/fragment
+ // * Link elements with `src` attributes that are inaccessible, as with
+ // a 403 response, will cause the tab/window to crash
+ // * Script elements appended to fragments will execute when their `src`
+ // or `text` property is set
+ return node.canHaveChildren && !reSkip.test(nodeName) ? data.frag.appendChild(node) : node;
+ }
+
+ /**
+ * returns a shived DocumentFragment for the given document
+ * @memberOf html5
+ * @param {Document} ownerDocument The context document.
+ * @returns {Object} The shived DocumentFragment.
+ */
+ function createDocumentFragment(ownerDocument, data){
+ if (!ownerDocument) {
+ ownerDocument = document;
+ }
+ if(supportsUnknownElements){
+ return ownerDocument.createDocumentFragment();
+ }
+ data = data || getExpandoData(ownerDocument);
+ var clone = data.frag.cloneNode(),
+ i = 0,
+ elems = getElements(),
+ l = elems.length;
+ for(;i .
+/**
+ * Strings for component 'theme_bootstrap', language 'en', branch 'MOODLE_23_STABLE'
+ *
+ * @package Bootstrap theme
+ * @copyright 2012 Bas Brands, www.basbrands.nl
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+$string['pluginname'] = 'Bootstrap';
+$string['region-side-post'] = 'Right';
+$string['region-side-pre'] = 'Left';
+
+$string['choosereadme'] = '
+
Bootstrap
+
+
Theme Credits
+
+
Moodle twitter Bootstrap theme
+
+This theme is based on the Bootstrap CSS framework, version 2.3
+
+
+http://getbootstrap.com
+
+
+This is a GPL theme that is available on GitHub:
+
+
+https://github.com/bmbrands/theme_bootstrap
+
+
+Feel free to modify / improve / share
+
+
+This theme has been created with the help of:
+Stuart Lamour, Mark Aberdour, Paul Hibbitts, Mary Evans
+
+
+Authors: Bas Brands, David Scotson
+Contact: bas@sonsbeekmedia.nl
+Website: www.basbrands.nl
+
+
+
Reporting bugs
+
+
You can report bugs on the github page for this theme or
+on the Moodle tracker
+
+
More information
+
';
+
diff --git a/theme/bootstrap/layout/general.php b/theme/bootstrap/layout/general.php
new file mode 100644
index 00000000000..4ce4421be62
--- /dev/null
+++ b/theme/bootstrap/layout/general.php
@@ -0,0 +1,171 @@
+.
+
+$hasheading = ($PAGE->heading);
+$hasnavbar = (empty($PAGE->layout_options['nonavbar']) && $PAGE->has_navbar());
+$hasfooter = (empty($PAGE->layout_options['nofooter']));
+$hasheader = (empty($PAGE->layout_options['noheader']));
+
+$hassidepre = (empty($PAGE->layout_options['noblocks']) && $PAGE->blocks->region_has_content('side-pre', $OUTPUT));
+$hassidepost = (empty($PAGE->layout_options['noblocks']) && $PAGE->blocks->region_has_content('side-post', $OUTPUT));
+
+$showsidepre = ($hassidepre && !$PAGE->blocks->region_completely_docked('side-pre', $OUTPUT));
+$showsidepost = ($hassidepost && !$PAGE->blocks->region_completely_docked('side-post', $OUTPUT));
+
+$custommenu = $OUTPUT->custom_menu();
+$hascustommenu = (empty($PAGE->layout_options['nocustommenu']) && !empty($custommenu));
+
+$courseheader = $coursecontentheader = $coursecontentfooter = $coursefooter = '';
+
+if (empty($PAGE->layout_options['nocourseheaderfooter'])) {
+ $courseheader = $OUTPUT->course_header();
+ $coursecontentheader = $OUTPUT->course_content_header();
+ if (empty($PAGE->layout_options['nocoursefooter'])) {
+ $coursecontentfooter = $OUTPUT->course_content_footer();
+ $coursefooter = $OUTPUT->course_footer();
+ }
+}
+
+$layout = 'pre-and-post';
+if ($showsidepre && !$showsidepost) {
+ if (!right_to_left()) {
+ $layout = 'side-pre-only';
+ } else {
+ $layout = 'side-post-only';
+ }
+} else if ($showsidepost && !$showsidepre) {
+ if (!right_to_left()) {
+ $layout = 'side-post-only';
+ } else {
+ $layout = 'side-pre-only';
+ }
+} else if (!$showsidepost && !$showsidepre) {
+ $layout = 'content-only';
+}
+$bodyclasses[] = $layout;
+
+echo $OUTPUT->doctype() ?>
+htmlattributes() ?>>
+
+
title ?>
+
+ standard_head_html() ?>
+
+
+
+
+
+standard_top_of_body_html() ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ main_content() ?>
+
+
+
+
+
+
+
+
+
+ blocks_for_region('side-pre');
+ } else if ($hassidepost) {
+ echo $OUTPUT->blocks_for_region('side-post');
+ }
+ ?>
+
+
+
+ blocks_for_region('side-post');
+ } else {
+ echo $OUTPUT->blocks_for_region('side-pre');
+ } ?>
+
+
+
+
+
+
+
+standard_end_of_body_html() ?>
+
+
+
+
diff --git a/theme/bootstrap/less/README b/theme/bootstrap/less/README
new file mode 100644
index 00000000000..ccc6048b0ec
--- /dev/null
+++ b/theme/bootstrap/less/README
@@ -0,0 +1,19 @@
+If you want to make changes to the .css generated from these .less files then you
+need to install recess (https://github.com/twitter/recess) to compile the .less files,
+then run these commands in the bootstrap/less/ folder:
+
+recess --compile --compress moodle.less > ../style/generated.css
+
+You can add --watch to make sure it updates every time you make a change.
+
+And for the subset of styles of interest to the TinyMCE editor:
+
+recess --compile --compress editor.less > ../style/editor.css
+
+Non-command line options for .less compilation are available, see their github for more info.
+
+If the compilation is failing and you're not getting any useful error message, try using lessc instead i.e.:
+
+lessc moodle.less
+
+This is the same tool that's getting called by recess, but the errors seems better if you go direct.
diff --git a/theme/bootstrap/less/bootstrap/accordion.less b/theme/bootstrap/less/bootstrap/accordion.less
new file mode 100644
index 00000000000..d63523bc8c1
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/alerts.less b/theme/bootstrap/less/bootstrap/alerts.less
new file mode 100644
index 00000000000..0116b191b3b
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/bootstrap.less b/theme/bootstrap/less/bootstrap/bootstrap.less
new file mode 100644
index 00000000000..47af2c4e449
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/bootstrap.less
@@ -0,0 +1,63 @@
+/*!
+ * Bootstrap v2.3.0
+ *
+ * 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/bootstrap/less/bootstrap/breadcrumbs.less b/theme/bootstrap/less/bootstrap/breadcrumbs.less
new file mode 100644
index 00000000000..f753df6be8c
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/button-groups.less b/theme/bootstrap/less/bootstrap/button-groups.less
new file mode 100644
index 00000000000..55cdc603387
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/buttons.less b/theme/bootstrap/less/bootstrap/buttons.less
new file mode 100644
index 00000000000..4cd4d862b38
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/carousel.less b/theme/bootstrap/less/bootstrap/carousel.less
new file mode 100644
index 00000000000..55bc050144d
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/close.less b/theme/bootstrap/less/bootstrap/close.less
new file mode 100644
index 00000000000..4c626bda6cc
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/code.less b/theme/bootstrap/less/bootstrap/code.less
new file mode 100644
index 00000000000..266a926e73d
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/component-animations.less b/theme/bootstrap/less/bootstrap/component-animations.less
new file mode 100644
index 00000000000..d614263a76a
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/dropdowns.less b/theme/bootstrap/less/bootstrap/dropdowns.less
new file mode 100644
index 00000000000..bbfe3fd3e3a
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/dropdowns.less
@@ -0,0 +1,237 @@
+//
+// 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;
+ }
+}
+
+// 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/bootstrap/less/bootstrap/forms.less b/theme/bootstrap/less/bootstrap/forms.less
new file mode 100644
index 00000000000..06767bdd3ea
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/grid.less b/theme/bootstrap/less/bootstrap/grid.less
new file mode 100644
index 00000000000..750d2035149
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/hero-unit.less b/theme/bootstrap/less/bootstrap/hero-unit.less
new file mode 100644
index 00000000000..763d86aeee5
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/labels-badges.less b/theme/bootstrap/less/bootstrap/labels-badges.less
new file mode 100644
index 00000000000..bc321fe5c18
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/layouts.less b/theme/bootstrap/less/bootstrap/layouts.less
new file mode 100644
index 00000000000..24a2062117c
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/media.less b/theme/bootstrap/less/bootstrap/media.less
new file mode 100644
index 00000000000..e461e446d23
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/mixins.less b/theme/bootstrap/less/bootstrap/mixins.less
new file mode 100644
index 00000000000..79d889219f1
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/modals.less b/theme/bootstrap/less/bootstrap/modals.less
new file mode 100644
index 00000000000..8e272d409fa
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/navbar.less b/theme/bootstrap/less/bootstrap/navbar.less
new file mode 100644
index 00000000000..93d09bcad03
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/navs.less b/theme/bootstrap/less/bootstrap/navs.less
new file mode 100644
index 00000000000..01cd805bde2
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/pager.less b/theme/bootstrap/less/bootstrap/pager.less
new file mode 100644
index 00000000000..1476188297e
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/pagination.less b/theme/bootstrap/less/bootstrap/pagination.less
new file mode 100644
index 00000000000..a789db2d28b
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/popovers.less b/theme/bootstrap/less/bootstrap/popovers.less
new file mode 100644
index 00000000000..aae35c8cd56
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/progress-bars.less b/theme/bootstrap/less/bootstrap/progress-bars.less
new file mode 100644
index 00000000000..5e0c3dda018
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/reset.less b/theme/bootstrap/less/bootstrap/reset.less
new file mode 100644
index 00000000000..4806bd5e59d
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/responsive-1200px-min.less b/theme/bootstrap/less/bootstrap/responsive-1200px-min.less
new file mode 100644
index 00000000000..4f35ba6ca23
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/responsive-767px-max.less b/theme/bootstrap/less/bootstrap/responsive-767px-max.less
new file mode 100644
index 00000000000..128f4ce30da
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/responsive-768px-979px.less b/theme/bootstrap/less/bootstrap/responsive-768px-979px.less
new file mode 100644
index 00000000000..8e8c486a069
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/responsive-navbar.less b/theme/bootstrap/less/bootstrap/responsive-navbar.less
new file mode 100644
index 00000000000..21cd3ba6717
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/responsive-utilities.less b/theme/bootstrap/less/bootstrap/responsive-utilities.less
new file mode 100644
index 00000000000..bf43e8ef739
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/responsive.less b/theme/bootstrap/less/bootstrap/responsive.less
new file mode 100644
index 00000000000..df63340688d
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/responsive.less
@@ -0,0 +1,48 @@
+/*!
+ * Bootstrap Responsive v2.3.0
+ *
+ * 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/bootstrap/less/bootstrap/scaffolding.less b/theme/bootstrap/less/bootstrap/scaffolding.less
new file mode 100644
index 00000000000..f17e8cadb40
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/sprites.less b/theme/bootstrap/less/bootstrap/sprites.less
new file mode 100644
index 00000000000..1812bf71acb
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/tables.less b/theme/bootstrap/less/bootstrap/tables.less
new file mode 100644
index 00000000000..0e35271e11f
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/thumbnails.less b/theme/bootstrap/less/bootstrap/thumbnails.less
new file mode 100644
index 00000000000..4fd07d25337
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/tooltip.less b/theme/bootstrap/less/bootstrap/tooltip.less
new file mode 100644
index 00000000000..83d5f2bd765
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/type.less b/theme/bootstrap/less/bootstrap/type.less
new file mode 100644
index 00000000000..337138ac8ef
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/utilities.less b/theme/bootstrap/less/bootstrap/utilities.less
new file mode 100644
index 00000000000..314b4ffdb45
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/variables.less b/theme/bootstrap/less/bootstrap/variables.less
new file mode 100644
index 00000000000..31c131b1e23
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/bootstrap/wells.less b/theme/bootstrap/less/bootstrap/wells.less
new file mode 100644
index 00000000000..84a744b1c5c
--- /dev/null
+++ b/theme/bootstrap/less/bootstrap/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/bootstrap/less/editor.less b/theme/bootstrap/less/editor.less
new file mode 100644
index 00000000000..7ac34d4b0bd
--- /dev/null
+++ b/theme/bootstrap/less/editor.less
@@ -0,0 +1,30 @@
+// strip down core bootstrap for editor
+
+// Core variables and mixins
+@import "bootstrap/variables.less"; // Modify this for custom colors, font-sizes, etc
+@import "bootstrap/mixins.less";
+
+// CSS Reset
+@import "bootstrap/reset.less";
+
+// Base CSS
+@import "bootstrap/type.less";
+@import "bootstrap/code.less";
+@import "bootstrap/tables.less";
+
+// Components: common
+@import "bootstrap/sprites.less";
+@iconSpritePath: ~"[[pix:theme|glyphicons-halflings]]";
+@iconWhiteSpritePath: ~"[[pix:theme|glyphicons-halflings-white]]";
+@import "bootstrap/wells.less";
+
+// Components: Buttons & Alerts
+@import "bootstrap/buttons.less";
+@import "bootstrap/alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less
+
+// Components: Misc
+@import "bootstrap/thumbnails.less";
+@import "bootstrap/labels-badges.less";
+
+// Utility classes
+@import "bootstrap/utilities.less"; // Has to be last to override when necessary
diff --git a/theme/bootstrap/less/moodle.less b/theme/bootstrap/less/moodle.less
new file mode 100644
index 00000000000..d6df8d3b7e9
--- /dev/null
+++ b/theme/bootstrap/less/moodle.less
@@ -0,0 +1,55 @@
+// Old Moodle stuff from base theme.
+@import "moodle/core"; // Massive, needs broken up
+@import "moodle/admin";
+@import "moodle/calendar";
+@import "moodle/course";
+@import "moodle/filemanager";
+@import "moodle/grade";
+@import "moodle/message";
+@import "moodle/question";
+@import "moodle/user";
+
+
+// Upstream Bootstrap
+@import "bootstrap/bootstrap";
+
+// Set image location
+@iconSpritePath: ~"[[pix:theme|glyphicons-halflings]]";
+@iconWhiteSpritePath: ~"[[pix:theme|glyphicons-halflings-white]]";
+
+// Roll back nameclashes
+@import "moodle/undo";
+
+// extra padding for fixed nav
+// needs to be between bootstrap/bootstrap and
+// bootstrap/responsive
+body {
+ padding-top: 60px;
+}
+
+// New Moodle stuff that builds on Bootstrap
+@import "moodle/blocks";
+@import "moodle/forms";
+@import "moodle/tabs";
+@import "moodle/modules";
+@import "moodle/backup-restore";
+@import "moodle/tables";
+@import "moodle/buttons";
+
+// anything below this line is considered expendable,
+// so it doesn't matter if it doesn't show up in ie < 9
+// though at current time (2013-03-13) the whole file is
+// picked up in IE8, and IE9 fails at some point during the
+// responsive section, cutting off the last 400 selectors.
+
+// the following responsive imports are copied in
+// from @import "bootstrap/responsive";
+@import "bootstrap/responsive-utilities.less";
+@import "bootstrap/responsive-1200px-min.less";
+@import "bootstrap/responsive-768px-979px.less";
+@import "bootstrap/responsive-767px-max.less";
+@import "bootstrap/responsive-navbar.less";
+@import "moodle/responsive";
+
+@import "moodle/debug";
+@import "moodle/expendable";
diff --git a/theme/bootstrap/less/moodle/admin.less b/theme/bootstrap/less/moodle/admin.less
new file mode 100644
index 00000000000..f7f1c281691
--- /dev/null
+++ b/theme/bootstrap/less/moodle/admin.less
@@ -0,0 +1,720 @@
+/* admin.less */
+.formtable tbody th {
+ font-weight: normal;
+ text-align: right;
+}
+
+.path-admin #assignrole {
+ width: 60%;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.path-admin .admintable .leftalign {
+ text-align: left;
+}
+
+.environmenttable {
+ p.warn {
+ background-color : @warningBackground;
+ color: @warningText;
+ }
+ .error,
+ span.warn,
+ .ok {
+ .label;
+ }
+ .error {
+ background-color : @errorText;
+ }
+ span.warn {
+ background-color : @orange;
+ }
+ .ok {
+ background-color: @successText;
+ }
+}
+
+.path-admin .admintable.environmenttable .name,
+.path-admin .admintable.environmenttable .info,
+.path-admin #assignrole .admintable .role,
+.path-admin #assignrole .admintable .userrole,
+.path-admin #assignrole .admintable .roleholder {
+ white-space: nowrap;
+}
+
+.path-admin .incompatibleblockstable td.c0 {
+ font-weight: bold;
+}
+
+#page-admin-course-category .addcategory {
+ padding: 10px;
+}
+
+#page-admin-course-index .editcourse {
+ margin: 20px auto;
+}
+
+#page-admin-course-index .editcourse th,
+#page-admin-course-index .editcourse td {
+ padding-left: 10px;
+ padding-right: 10px;
+}
+
+//#page-admin-report-security-index
+.timewarninghidden {
+ display: none;
+}
+.statusok,
+.statuswarning,
+.statusserious,
+.statuscritical {
+ .label;
+}
+.statusok {
+ background-color: @successText;
+}
+.statuswarning {
+ background-color: @warningText;
+}
+.statusserious {
+ background-color: @orange;
+}
+.statuscritical {
+ background-color: @errorText;
+}
+
+#page-admin-report-capability-index #capabilitysearch {
+ width: 30em;
+}
+
+#page-admin-report-backups-index .backup-error,
+#page-admin-report-backups-index .backup-unfinished {
+ color: @errorText;
+}
+
+#page-admin-report-backups-index .backup-skipped,
+#page-admin-report-backups-index .backup-ok {
+ color: @successText;
+}
+
+#page-admin-report-backups-index .backup-warning {
+ color: @warningText;
+}
+
+#page-admin-qtypes .disabled,
+#page-admin-qbehaviours .disabled {
+ .muted;
+}
+
+#page-admin-qtypes #qtypes div,
+#page-admin-qtypes #qtypes form,
+#page-admin-qbehaviours #qbehaviours div,
+#page-admin-qbehaviours #qbehaviours form {
+ display: inline;
+}
+
+#page-admin-qtypes #qtypes img.spacer,
+#page-admin-qbehaviours #qbehaviours img.spacer {
+ width: 16px;
+}
+
+// make them more finger friendly
+img.iconsmall {
+ margin: 0;
+ padding: 0.3em;
+}
+
+
+#page-admin-qbehaviours .cell.c3,
+#page-admin-qtypes .cell.c3 {
+ font-size: @fontSizeMini;
+}
+
+#page-admin-lang .generalbox,
+#page-admin-course-index .singlebutton,
+#page-admin-course-index .addcategory,
+#page-course-index .buttons,
+#page-course-category .buttons,
+#page-admin-course-category .addcategory,
+#page-admin-stickyblocks .generalbox,
+#page-admin-maintenance .buttons,
+#page-admin-course-index .buttons,
+#page-admin-course-category .buttons,
+#page-admin-index .copyright,
+#page-admin-index .copyrightnotice,
+#page-admin-index .adminerror,
+#page-admin-index .availableupdatesinfo,
+#page-admin-index .adminerror .singlebutton,
+#page-admin-index .adminwarning .singlebutton,
+#page-admin-index #layout-table .singlebutton {
+ text-align: center;
+ margin-bottom: 1em;
+}
+
+.path-admin-roles .capabilitysearchui {
+ text-align: left;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+#page-admin-roles-define .topfields {
+ margin: 1em 0 2em;
+}
+
+#page-admin-roles-define .capdefault {
+ background-color: #eee;
+ border: 1px solid #cecece;
+}
+
+#page-filter-manage .backlink,
+.path-admin-roles .backlink {
+ margin-top: 1em;
+}
+
+#page-admin-roles-explain #chooseuser h3,
+#page-admin-roles-usersroles .contextname {
+ margin-top: 0;
+}
+
+#page-admin-roles-explain #chooseusersubmit {
+ margin-top: 0;
+ text-align: center;
+}
+
+#page-admin-roles-usersroles p {
+ margin: 0;
+}
+
+#page-admin-roles-override .cell.c1,
+#page-admin-roles-assign .cell.c3,
+#page-admin-roles-assign .cell.c1 {
+ padding-top: 0.75em;
+}
+
+#page-admin-roles-override .overridenotice,
+#page-admin-roles-define .definenotice {
+ margin: 1em 10% 2em 10%;
+ text-align: left;
+}
+
+#notice {
+ // would like the use the alert stuff below for this,
+ // but the way buttons are used makes it tricky
+ width: 60%;
+ min-width: 220px;
+ margin: auto;
+}
+
+#page-admin-index .releasenoteslink,
+#page-admin-index .adminwarning,
+#page-admin-index .maturitywarning,
+#page-admin-index .maturityinfo {
+ .alert;
+ width: 60%;
+ min-width: 220px;
+ margin: auto;
+}
+#page-admin-index .maturitywarning,
+#page-admin-index .adminwarning.maturityinfo.maturity50 {
+ .alert-error;
+}
+
+#page-admin-index .adminwarning.availableupdatesinfo,
+#page-admin-index .releasenoteslink {
+ .alert-info;
+}
+
+#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo span {
+ display: block;
+}
+
+
+#page-admin-index .updateplugin div,
+#page-admin-plugins .updateplugin div {
+ margin-bottom: 0.5em;
+}
+
+#page-admin-index .updateplugin .updatepluginconfirmexternal,
+#page-admin-plugins .updateplugin .updatepluginconfirmexternal {
+ padding: 1em;
+ background-color: @errorBackground;
+ border: 1px solid @errorBorder;
+}
+
+#page-admin-user-user_bulk #users .fgroup {
+ white-space: nowrap;
+}
+
+#page-admin-report-stats-index .graph {
+ text-align: center;
+ margin-bottom: 1em;
+}
+
+#page-admin-report-courseoverview-index .graph {
+ text-align: center;
+ margin-bottom: 1em;
+}
+
+#page-admin-lang .translator {
+ border-width: 1px;
+ border-style: solid;
+}
+
+// This is the CSS for the role assignment control
+.path-admin .roleassigntable {
+ width: 100%;
+}
+
+.path-admin .roleassigntable td {
+ vertical-align: top;
+ padding: 0.2em 0.3em
+}
+
+.path-admin .roleassigntable p {
+ text-align: left;
+ margin: 0.2em 0;
+}
+
+.path-admin .roleassigntable #existingcell,
+.path-admin .roleassigntable #potentialcell {
+ width: 42%;
+}
+
+// targetting the label at the top
+.path-admin .roleassigntable #existingcell p > label:first-child,
+.path-admin .roleassigntable #potentialcell p > label:first-child {
+ font-weight: bold;
+}
+
+.path-admin .roleassigntable #buttonscell {
+ width: 16%;
+}
+
+.path-admin .roleassigntable #buttonscell #assignoptions {
+ font-size: @fontSizeMini;
+}
+
+.path-admin .roleassigntable #removeselect_wrapper,
+.path-admin .roleassigntable #addselect_wrapper {
+ width: 100%;
+}
+
+.path-admin table.rolecap tr.rolecap th {
+ text-align: left;
+ font-weight: normal;
+}
+
+.path-admin.dir-rtl table.rolecap tr.rolecap th {
+ text-align: right;
+}
+
+.path-admin .rolecap .hiddenrow {
+ display: none;
+}
+
+.path-admin #defineroletable {
+ .rolecap {
+ .inherit,
+ .allow,
+ .prevent,
+ .prohibit {
+ text-align: center;
+ padding: 0;
+ min-width: 3.5em;
+ }
+ }
+}
+
+.path-admin .rolecap .cap-name,
+.path-admin .rolecap .note {
+ display: block;
+ font-size: @fontSizeMini;
+ white-space: nowrap;
+ font-weight: normal;
+}
+
+.path-admin .rolecap label {
+ display: block;
+ text-align: center;
+ padding: 0.5em;
+ margin: 0;
+}
+
+.plugincheckwrapper {
+ width: 100%;
+}
+
+.environmentbox {
+ margin-top: 1em;
+}
+
+#mnetconfig table {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.environmenttable .cell {
+ padding: .15em .5em;
+}
+
+.environmenttable img.iconhelp {
+ padding-right: .3em;
+}
+
+.dir-rtl .environmenttable img.iconhelp {
+ padding-left: .3em;
+ padding-right: 0
+}
+
+#trustedhosts .generaltable {
+ margin-left: auto;
+ margin-right: auto;
+ width: 500px;
+}
+
+#trustedhosts .standard {
+ width: auto;
+}
+
+// This usage of legend is a bit weird,
+// seems to be using them as error text
+// that's only sometimes visible. Should
+// look into sorting it
+#adminsettings legend {
+ display: none;
+}
+
+#adminsettings fieldset.error {
+ margin: .2em 0 .5em 0;
+}
+
+#adminsettings fieldset.error legend {
+ display: block;
+}
+
+.dir-rtl #admin-spelllanguagelist textarea,
+#page-admin-setting-editorsettingstinymce.dir-rtl .form-textarea textarea {
+ text-align: left;
+ direction: ltr;
+}
+
+.form-item .form-setting .form-htmlarea {
+ width: 640px;
+ display: inline;
+}
+
+.form-item .form-setting .form-htmlarea .htmlarea {
+ width: 640px;
+ display: block;
+}
+
+.form-item .form-setting .form-multicheckbox ul {
+ list-style: none;
+ padding: 0;
+ margin: 7px 0 0 0;
+}
+
+.form-item .form-setting .defaultsnext {
+ margin-right: 0.5em;
+ display: inline;
+}
+
+.form-item .form-setting .locked-checkbox {
+ margin-right: 0.2em;
+ margin-left: 0.5em;
+ display: inline;
+}
+
+.dir-rtl .form-item .form-setting .locked-checkbox {
+ margin-right: 0.5em;
+ margin-left: 0.2em;
+ display: inline;
+}
+
+.form-item .form-setting .form-password .unmask,
+.form-item .form-setting .form-defaultinfo {
+ display: inline-block;
+}
+
+.form-item .pathok,
+.form-item .patherror {
+ margin-left: 0.5em;
+}
+
+#admin-devicedetectregex table {
+ border: none;
+ // override a table border=1 in the HTML
+}
+
+#admin-emoticons td input {
+ width: 8em;
+}
+
+#admin-emoticons td.c0 input {
+ width: 4em;
+}
+
+#adminthemeselector .selectedtheme td.c0 {
+ border: 1px solid;
+ border-right-width: 0;
+}
+
+#adminthemeselector .selectedtheme td.c1 {
+ border: 1px solid;
+ border-left-width: 0;
+}
+
+.admin_colourpicker,
+.admin_colourpicker_preview {
+ display: none;
+}
+
+.jsenabled .admin_colourpicker_preview {
+ display: inline;
+}
+
+.jsenabled .admin_colourpicker {
+ display: block;
+ height: 102px;
+ width: 410px;
+ margin-bottom: 10px;
+}
+
+.admin_colourpicker .loadingicon {
+ vertical-align: middle;
+ margin-left: auto;
+}
+
+.admin_colourpicker .colourdialogue {
+ float: left;
+ border: 1px solid #000;
+}
+
+.admin_colourpicker .previewcolour {
+ border: 1px solid #000;
+ margin-left: 301px;
+}
+
+.admin_colourpicker .currentcolour {
+ border: 1px solid #000;
+ margin-left: 301px;
+ border-top-width: 0;
+}
+
+/** Overide for RTL layout **/
+.dir-rtl .form-item .form-setting,
+.dir-rtl .form-item .form-label,
+.dir-rtl .form-item .form-description,
+.dir-rtl.path-admin .roleassigntable p {
+ text-align: right
+}
+
+// Plugins check
+#page-admin-index #notice .checkforupdates {
+ text-align: center;
+}
+
+#plugins-check-info {
+ text-align: center;
+ margin: 1em;
+}
+
+#plugins-check .displayname .pluginicon {
+ width: 16px;
+}
+
+#plugins-check .status-new .status {
+ background-color: @successBackground;
+}
+
+#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity200 .info.release,
+#plugins-check .status-upgrade .status,
+#plugins-check .status-delete .status {
+ background-color: @infoBackground;
+}
+
+#plugins-control-panel .extension .source,
+#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity100 .info.release,
+#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity150 .info.release,
+.pluginupdateinfo.maturity100,
+.pluginupdateinfo.maturity150,
+#plugins-check .extension .source {
+ background-color: @warningBackground;
+}
+
+#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity50 .info.release,
+#plugins-control-panel .missingfromdisk .pluginname,
+.pluginupdateinfo.maturity50,
+#plugins-check .requires-failed,
+#plugins-check .missingfromdisk .displayname,
+#plugins-check .status-missing .status,
+#plugins-check .status-downgrade .status {
+ background-color: @errorBackground;
+}
+
+#plugins-control-panel .disabled .availability {
+ background-color: @inputDisabledBackground;
+}
+
+#plugins-check .standard .source,
+#plugins-check .status-nodb .status,
+#plugins-check .status-uptodate .status,
+#plugins-check .requires-ok {
+ .muted
+}
+
+#plugins-check .requires ul {
+ font-size: @fontSizeMini;
+ margin: 0;
+}
+
+#plugins-check .status .pluginupdateinfo {
+ padding: 5px 10px;
+ margin: 10px;
+ background-color: @infoBackground;
+ .border-radius(10px);
+}
+
+#plugins-check .status .pluginupdateinfo span,
+#plugins-check .status .pluginupdateinfo a {
+ padding-right: 1em;
+}
+
+
+#page-admin-index .upgradepluginsinfo {
+ text-align: center;
+}
+
+#page-admin-plugins .checkforupdates {
+ margin: 0 auto 1em;
+ text-align: center;
+}
+
+#plugins-control-panel .requiredby,
+#plugins-control-panel .pluginname .componentname {
+ font-size: @fontSizeSmall;
+ .muted
+}
+
+#plugins-control-panel .pluginname .componentname {
+ margin-left: 22px;
+}
+
+#plugins-overview-filter .filter-item,
+#plugins-overview-panel .info,
+#plugins-control-panel .actions a {
+ padding: 0 10px;
+}
+
+#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo .separator,
+#plugins-check .status .pluginupdateinfo .separator,
+#page-admin-plugins .separator {
+ border-left: 1px dotted #999;
+}
+
+#plugins-control-panel .msg td {
+ text-align: center;
+}
+
+#plugins-overview-filter,
+#plugins-overview-panel {
+ margin: 1em auto;
+ text-align: center;
+}
+
+#plugins-overview-panel .info.updatable {
+ margin-left: 10px;
+ background-color: @infoBackground;
+ font-weight: bold;
+ .border-radius(10px);
+}
+
+#plugins-overview-filter .filter-item.active {
+ font-weight: bold;
+}
+
+#plugins-control-panel .displayname img.icon {
+ padding-top: 0;
+ padding-bottom: 0;
+}
+
+#plugins-control-panel .actions .uninstall {
+ color: @errorText;
+}
+
+#plugins-control-panel .notes .pluginupdateinfo {
+ padding: 5px 10px;
+ margin: 10px;
+ background-color: @infoBackground;
+ .border-radius(10px);
+}
+
+
+#plugins-control-panel .notes .pluginupdateinfo span,
+#plugins-control-panel .notes .pluginupdateinfo a {
+ padding-right: 1em;
+}
+
+.dir-rtl {
+ #plugins-check .pluginupdateinfo {
+ text-align: center;
+ direction: ltr;
+ }
+
+ #plugins-check .rootdir,
+ #plugins-check .requires-ok {
+ text-align: left;
+ direction: ltr;
+ }
+}
+
+/** MNet networking */
+#page-admin-mnet-peers .box.deletedhosts {
+ margin-bottom: 1em;
+ font-size: @fontSizeSmall;
+}
+
+#page-admin-mnet-peers .mform .certdetails {
+ background-color: white;
+}
+
+#page-admin-mnet-peers .mform .deletedhostinfo {
+ background-color: @errorBackground;
+ border: 2px solid @errorBorder;
+ padding: 4px;
+ margin-bottom: 5px;
+}
+
+#core-cache-plugin-summaries table,
+#core-cache-store-summaries table {
+ width: 100%;
+}
+
+#core-cache-lock-summary table,
+#core-cache-definition-summaries table,
+#core-cache-mode-mappings table {
+ margin: 0 auto;
+}
+
+#core-cache-store-summaries .default-store td {
+ color: #333;
+ font-style: italic;
+}
+
+#core-cache-rescan-definitions,
+#core-cache-mode-mappings .edit-link {
+ margin-top: 0.5em;
+ text-align: center;
+}
+
+.tinymcesubplugins img.icon {
+ padding-top: 0;
+ padding-bottom: 0;
+}
+
+// hacks for badly marked up admin warnings
+#page-admin-roles-assign div.box.generalbox {
+ .alert;
+ .alert-danger;
+}
diff --git a/theme/bootstrap/less/moodle/backup-restore.less b/theme/bootstrap/less/moodle/backup-restore.less
new file mode 100644
index 00000000000..0bc9032dafc
--- /dev/null
+++ b/theme/bootstrap/less/moodle/backup-restore.less
@@ -0,0 +1,164 @@
+.path-backup .mform .grouped_settings.section_level {
+ .well;
+ padding: 10px 0 0 0;
+ clear: both;
+}
+.path-backup .mform .grouped_settings {
+ clear: both;
+ overflow: hidden;
+}
+.path-backup .include_setting,
+.path-backup .grouped_settings .normal_setting {
+ display: inline-block;
+}
+
+.path-backup .include_setting.section_level label {
+ font-weight: bold;
+}
+.path-backup .mform .fitem .fitemtitle {
+ width: 260px;
+}
+.path-backup .mform .fitem .felement {
+ margin-left: 280px;
+}
+.path-backup .notification.dependencies_enforced {
+ text-align: center;
+ color: @errorText;
+ font-weight: bold;
+}
+.path-backup .backup_progress {
+ text-align: center;
+}
+.path-backup .backup_progress .backup_stage {
+ .muted
+}
+.path-backup .backup_progress .backup_stage.backup_stage_current {
+ font-weight: bold;
+ color: inherit;
+}
+.path-backup .backup_progress .backup_stage.backup_stage_next {
+}
+.path-backup .backup_progress span.backup_stage.backup_stage_complete {
+ color: inherit;
+}
+#page-backup-restore .filealiasesfailures {
+ background-color: @errorBackground;
+}
+#page-backup-restore .filealiasesfailures .aliaseslist {
+ width: 90%;
+ margin: 0.8em auto;
+ background-color: @bodyBackground;
+ border: 1px dotted #666;
+}
+.path-backup .fitem .smallicon {
+ vertical-align: text-bottom;
+}
+
+.backup-restore .backup-section > h2.header,
+.backup-restore .backup-section .backup-sub-section h3 {
+ // Copied from bootstrap/forms.less tag 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;
+}
+.backup-restore .backup-section .noticebox {
+ margin: 1em auto;
+ width: 60%;
+ text-align: center;
+}
+.backup-restore .backup-section.settings-section .detail-pair {
+ width: 50%;
+ display: inline-block;
+ .ie7-inline-block();
+}
+.backup-restore .backup-section.settings-section .detail-pair-label {
+ width: 65%;
+}
+.backup-restore .backup-section.settings-section .detail-pair-value {
+ width: 25%;
+}
+.backup-restore .activitytable {
+ min-width: 500px;
+}
+.backup-restore .activitytable .modulename {
+ width: 100px;
+}
+.backup-restore .activitytable .moduleincluded {
+ width: 50px;
+}
+.backup-restore .activitytable .userinfoincluded {
+ width: 50px;
+}
+.backup-restore .detail-pair-label {
+ display: inline-block;
+ .ie7-inline-block();
+ width: 25%;
+ padding: 8px;
+ margin: 0;
+ text-align: right;
+ font-weight: bold;
+ vertical-align: top;
+}
+.backup-restore .detail-pair-value {
+ display: inline-block;
+ .ie7-inline-block();
+ width: 65%;
+ padding: 8px;
+ margin: 0;
+}
+.backup-restore .detail-pair-value > .sub-detail {
+ display: block;
+ font-size: @fontSizeSmall;
+ .muted
+}
+.backup-restore > .singlebutton {
+ text-align: right;
+}
+.path-backup .mform .fgroup .proceedbutton {
+ float: right;
+ margin-right: 5%;
+}
+.restore-course-search .rcs-results {
+ width: 70%;
+ min-width: 400px;
+}
+.restore-course-search .rcs-results table {
+ width: 100%;
+ margin: 0;
+ border-width: 0;
+}
+.restore-course-search .rcs-results table .no-overflow {
+ max-width: 600px;
+}
+.restore-course-search .rcs-results .paging {
+ text-align: left;
+ margin: 0;
+ background-color: #eee;
+ padding: 3px;
+}
+.restore-course-category .rcs-results {
+ width: 70%;
+ min-width: 400px;
+ border: 1px solid #ddd;
+ margin: 5px 0;
+}
+.restore-course-category .rcs-results table {
+ width: 100%;
+ margin: 0;
+ border-width: 0;
+}
+.restore-course-category .rcs-results table .no-overflow {
+ max-width: 600px;
+}
+.restore-course-category .rcs-results .paging {
+ text-align: left;
+ margin: 0;
+ background-color: #eee;
+ padding: 3px;
+}
diff --git a/theme/bootstrap/less/moodle/blocks.less b/theme/bootstrap/less/moodle/blocks.less
new file mode 100644
index 00000000000..aaf1e710780
--- /dev/null
+++ b/theme/bootstrap/less/moodle/blocks.less
@@ -0,0 +1,313 @@
+.block {
+ .well;
+ padding: 8px 0;
+}
+
+.block .header h2 {
+ padding: .2em 0 0 .2em;
+ margin: 0;
+}
+.block .header .title h2,
+.block h3.main {
+ .nav-header;
+ font-size: 1.1em;
+}
+
+.block .header .title .commands,
+.block_adminblock .content,
+.block .footer,
+.block .block_tree li>p>a,
+.block .block_tree li>p>span
+{
+ display: block;
+ padding: 3px 15px;
+}
+.block .header .block_action {
+ float: right;
+}
+.block .header .commands {
+ clear: both;
+ text-align: right;
+}
+.block .header .commands > a {
+ margin: 0 3px;
+}
+.block .header .commands .icon img {
+ width: 12px;
+ height: 12px;
+}
+
+.block .content {
+ padding: 4px 14px;
+}
+
+.block.hidden .content {
+ display: none;
+}
+
+.block .content .userpicture {
+ width: 16px;
+ height: 16px;
+ margin-right: 6px;
+}
+.block .content .list li.listentry {
+ clear: both;
+}
+.block .content .list .c0 {
+ display: inline;
+}
+.block .content .list .c1 {
+ margin-left: 5px;
+ display: inline;
+}
+
+.block .footer {
+ margin-bottom: 4px;
+}
+
+.block .blockannotation {
+ font-size: 0.75em;
+ margin: -1em 0 1em;
+}
+
+.block.list_block .unlist > li > .column {
+ display: inline-block;
+ .ie7-inline-block();
+}
+
+.blockmovetarget,
+.block.beingmoved {
+ border-width: 2px;
+ border-style: dashed;
+}
+.blockmovetarget {
+ display: block;
+ height: 1em;
+ margin-bottom: 1em;
+}
+
+.block.invisible {
+ .opacity(50);
+}
+
+.block .block-hider-show,
+.block .block-hider-hide {
+ cursor: pointer;
+ padding-right: 5px;
+ padding-left: 5px;
+}
+.block .block-hider-show,
+.block.hidden .block-hider-hide {
+ display: none;
+}
+.block.hidden .block-hider-show {
+ display: inline;
+}
+
+.jsenabled .block_tree .tree_item.branch {
+ cursor: pointer;
+}
+.jsenabled .block_tree .collapsed ul {
+ display: none;
+}
+.jsenabled .dock_on_load,
+.block_tree_box .requiresjs {
+ display: none;
+}
+.jsenabled .block_tree_box .requiresjs {
+ display: inline;
+}
+
+// Individual block styles
+.block_navigation .content,
+.block_settings .content {
+ padding: 0;
+}
+
+.block_settings li > hr {
+ margin: 4px 0;
+}
+
+.block_settings .leaf img,
+.block_navigation p.tree_item a img.smallicon {
+ display: none;
+}
+.block_calendar_upcoming .footer {
+ margin-top: .5em;
+}
+.block_adminblock select {
+ width: 100%;
+}
+
+// Overide for RTL layout.
+.dir-rtl {
+ .block .header,
+ .block h2.header {
+ text-align:right;
+ }
+ .block .header .commands {
+ text-align: left;
+ }
+ .block .header .block_action {
+ float: left;
+ }
+}
+
+// the rest is block settings and nav stuff, can stil be tidied up a great deal
+
+ul.block_tree ul {
+ margin: 0;
+}
+
+.block_tree .tree_item.branch a:before,
+.block_tree .tree_item.branch span:before {
+ content: "▼ ";
+}
+
+.block_tree .collapsed .tree_item.branch a:before,
+.block_tree .collapsed .tree_item.branch span:before,
+.block_tree .collapsed .tree_item.emptybranch a:before,
+.block_tree .collapsed .tree_item.emptybranch span:before {
+ content: "► ";
+}
+
+.dir-rtl {
+ .block_tree .tree_item.branch a:before,
+ .block_tree .tree_item.branch span:before {
+ content: " ▼"; // Space on opposite side.
+ }
+ .block_tree .collapsed .tree_item.branch a:before,
+ .block_tree .collapsed .tree_item.branch span:before,
+ .block_tree .collapsed .tree_item.emptybranch a:before,
+ .block_tree .collapsed .tree_item.emptybranch span:before {
+ content: " ◄";
+ }
+}
+
+.block_navigation .block_tree .tree_item.branch.navigation_node a:before {
+ content: none;
+}
+
+.block_tree .collapsed .tree_item.emptybranch a:before,
+.block_tree .collapsed .tree_item.emptybranch span:before {
+ .muted
+}
+
+.block_settings .block_tree .tree_item,
+.block_navigation .block_tree .tree_item {
+ margin: 0;
+}
+
+.block_tree>li>p>a,
+.block_tree>li>p>span,
+.block_tree .nav-header {
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+}
+
+.block .block_tree li > p > span:hover,
+.block .block_tree li > p > a:hover {
+ text-decoration: none;
+ background-color: @grayLighter;
+}
+
+.block_tree li p.active_tree_node a,
+.block_tree li p.active_tree_node a:hover {
+ color: @white;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.2);
+ background-color: @linkColor;
+}
+
+
+.block_settings .block_tree li ul,
+.block_settings .block_tree li.depth_2 ul,
+.block_navigation .block_tree li ul,
+.block_navigation .block_tree li.depth_2 ul
+{
+ padding-left: 0;
+}
+
+.block_settings ul.block_tree.list li ul li a,
+.block_settings ul.block_tree.list li ul li span,
+.block_navigation ul.block_tree.list li ul li ul li a,
+.block_navigation ul.block_tree.list li ul li ul li span
+{
+ padding-left: 33px;
+}
+
+.block_settings ul.block_tree.list li ul li ul li a,
+.block_settings ul.block_tree.list li ul li ul li span,
+.block_navigation ul.block_tree.list li ul li ul li ul li a,
+.block_navigation ul.block_tree.list li ul li ul li ul li span
+{
+ padding-left: 49.5px;
+}
+
+.block_settings ul.block_tree.list li ul li ul li ul li a,
+.block_settings ul.block_tree.list li ul li ul li ul li span,
+.block_navigation ul.block_tree.list li ul li ul li ul li ul li a,
+.block_navigation ul.block_tree.list li ul li ul li ul li ul li span
+{
+ padding-left: 66px;
+}
+
+.block_settings ul.block_tree.list li ul li ul li ul li ul li a,
+.block_settings ul.block_tree.list li ul li ul li ul li ul li span,
+.block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li a,
+.block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li span
+{
+ padding-left: 83.5px;
+}
+
+.block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li ul li a,
+.block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li ul li span
+{
+ padding-left: 99px;
+}
+.dir-rtl {
+ .block_settings .block_tree li ul,
+ .block_settings .block_tree li.depth_2 ul,
+ .block_navigation .block_tree li ul,
+ .block_navigation .block_tree li.depth_2 ul
+ {
+ padding-right: 0;
+ padding-left: 0;
+ }
+
+ .block_settings ul.block_tree.list li ul li a,
+ .block_settings ul.block_tree.list li ul li span,
+ .block_navigation ul.block_tree.list li ul li ul li a,
+ .block_navigation ul.block_tree.list li ul li ul li span
+ {
+ padding-right: 33px;
+ }
+
+ .block_settings ul.block_tree.list li ul li ul li a,
+ .block_settings ul.block_tree.list li ul li ul li span,
+ .block_navigation ul.block_tree.list li ul li ul li ul li a,
+ .block_navigation ul.block_tree.list li ul li ul li ul li span
+ {
+ padding-right: 49.5px;
+ }
+
+ .block_settings ul.block_tree.list li ul li ul li ul li a,
+ .block_settings ul.block_tree.list li ul li ul li ul li span,
+ .block_navigation ul.block_tree.list li ul li ul li ul li ul li a,
+ .block_navigation ul.block_tree.list li ul li ul li ul li ul li span
+ {
+ padding-right: 66px;
+ }
+
+ .block_settings ul.block_tree.list li ul li ul li ul li ul li a,
+ .block_settings ul.block_tree.list li ul li ul li ul li ul li span,
+ .block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li a,
+ .block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li span
+ {
+ padding-right: 83.5px;
+ }
+
+ .block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li ul li a,
+ .block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li ul li span
+ {
+ padding-right: 99px;
+ }
+}
diff --git a/theme/bootstrap/less/moodle/buttons.less b/theme/bootstrap/less/moodle/buttons.less
new file mode 100644
index 00000000000..66496d7c55a
--- /dev/null
+++ b/theme/bootstrap/less/moodle/buttons.less
@@ -0,0 +1,62 @@
+.singlebutton div {
+ display: inline-block;
+ margin-left: 5px;
+ margin-right: 5px;
+ margin-bottom: 5px;
+}
+.continuebutton {
+ text-align: center;
+}
+
+input[name="searchwikicontent"] + input[type="submit"],
+select + input[type="submit"],
+input[type="text"] + input[type="button"],
+input[type="password"] + input[type="submit"],
+input[type="text"] + button,
+input[type="text"] + input[type="submit"] {
+ margin: 0 0 10px 5px;
+}
+p.arrow_button {
+ margin-top: 5em;
+ text-align: center;
+ #remove {
+ margin: 3em auto 5em;
+ }
+ input {
+ .btn-block;
+ }
+}
+#addcontrols {
+ margin-top: 5em;
+ text-align: center;
+ margin-bottom: 3em;
+}
+#addcontrols input,
+#removecontrols input {
+ .btn-block;
+}
+
+button,
+input.form-submit,
+input[type="button"],
+input[type="submit"],
+input[type="reset"],
+{
+ .btn
+}
+button.yui3-button.closebutton,
+button.yui3-button.closebutton:hover {
+ background-position: 0 0;
+ // Because we assign button looks to every button tag above,
+ // we need to remove some styles from non-standard looking
+ // buttons. Correct fix, assign .btn class to every actual
+ // button in Moodle so we don't need to carpet bomb the
+ // bare button tag.
+}
+
+input.fp-btn-choose {
+ .btn-small;
+}
+.user-enroller-panel .uep-search-results .user .options .enrol {
+ .btn-mini
+}
diff --git a/theme/bootstrap/less/moodle/calendar.less b/theme/bootstrap/less/moodle/calendar.less
new file mode 100644
index 00000000000..1fa72bb732c
--- /dev/null
+++ b/theme/bootstrap/less/moodle/calendar.less
@@ -0,0 +1,186 @@
+/* calendar.less */
+.calendartable {
+ width: 100%;
+}
+.calendartable th,
+.calendartable td {
+ width: 14%;
+ vertical-align: top;
+ text-align: center;
+ border: 0;
+}
+.calendar_event_course {
+ background-color: #FFD3BD;
+}
+.calendar_event_global {
+ background-color: #D6F8CD;
+}
+.calendar_event_group {
+ background-color: #FEE7AE;
+}
+.calendar_event_user {
+ background-color: #DCE7EC;
+}
+.path-calendar .calendar-controls .previous,
+.path-calendar .calendar-controls .next,
+.path-calendar .calendar-controls .current {
+ display: block;
+ float: left;
+ width: 12%;
+}
+.path-calendar .calendar-controls .previous {
+ text-align: left;
+}
+.path-calendar .calendar-controls .current {
+ text-align: center;
+ width: 76%;
+}
+.path-calendar .calendar-controls .next {
+ text-align: right;
+}
+.path-calendar .maincalendar {
+ vertical-align: top;
+ padding: 0;
+}
+.path-calendar .maincalendar .bottom {
+ text-align: center;
+ padding: 5px 0 0 0;
+}
+.path-calendar .maincalendar .heightcontainer {
+ height: 100%;
+ position: relative;
+}
+.path-calendar .maincalendar .calendarmonth {
+ width: 98%;
+ margin: 10px auto;
+}
+.path-calendar .maincalendar .calendarmonth ul {
+ margin: 0;
+}
+.path-calendar .maincalendar .calendarmonth ul li {
+ list-style-type: none;
+ margin-top: 4px;
+}
+.path-calendar .maincalendar .calendarmonth td {
+ height: 5em;
+}
+.path-calendar .maincalendar .calendar-controls .previous,
+.path-calendar .maincalendar .calendar-controls .next{
+ width: 30%;
+}
+.path-calendar .maincalendar .calendar-controls .current {
+ width: 39.95%;
+}
+.path-calendar .maincalendar .controls {
+ width: 98%;
+ margin: 10px auto;
+}
+.path-calendar .maincalendar .eventlist .event {
+ width: 100%;
+ margin-bottom: 10px;
+ border-spacing: 0;
+ border-collapse: separate;
+ border-width: 1px;
+ border-style: solid;
+}
+.path-calendar .maincalendar .eventlist .event .topic .name {
+ float: left;
+}
+.dir-rtl.path-calendar .maincalendar .eventlist .event .topic .name,
+.path-calendar .maincalendar .eventlist .event .topic .date {
+ float: right;
+}
+.dir-rtl.path-calendar .maincalendar .eventlist .event .topic .date {
+ float: left;
+}
+.path-calendar .maincalendar .eventlist .event .subscription,
+.path-calendar .maincalendar .eventlist .event .course {
+ float: left;
+ clear: left;
+}
+.dir-rtl.path-calendar .maincalendar .eventlist .event .subscription,
+.dir-rtl.path-calendar .maincalendar .eventlist .event .course {
+ float: right;
+ clear: right;
+}
+.path-calendar .maincalendar .eventlist .event .side {
+ width: 32px;
+}
+.path-calendar .maincalendar .eventlist .event .commands a {
+ margin: 0 3px;
+}
+.path-calendar .maincalendar .header {
+ overflow: hidden;
+}
+.path-calendar .maincalendar .header .buttons {
+ float: right;
+}
+.dir-rtl.path-calendar .maincalendar .header .buttons {
+ float: left;
+}
+.path-calendar .filters table {
+ border-collapse: separate;
+ border-spacing: 2px;
+ width: 100%;
+}
+#page-calendar-export .indent {
+ padding-left: 20px;
+}
+.path-calendar .cal_courses_flt label {
+ margin-right: .45em;
+}
+.dir-rtl.path-calendar .cal_courses_flt label {
+ margin-left: .45em;
+ margin-right: 0;
+}
+.block .minicalendar th,
+.block .minicalendar td {
+ padding: 2px;
+ font-size: 0.8em;
+}
+.block .minicalendar {
+ max-width: 280px;
+ margin-left: auto;
+ margin-right: auto;
+}
+.block .minicalendar td.weekend {
+ color: #A00;
+}
+.block .calendar-controls .previous {
+ text-align: left;
+ display: block;
+ float: left;
+ width: 12%;
+}
+.block .calendar-controls .current {
+ float: left;
+ text-align: center;
+ display: block;
+ width: 76%;
+}
+.block .calendar-controls .next {
+ text-align: right;
+ display: block;
+ float: left;
+ width: 12%;
+}
+.block .calendar_filters ul {
+ list-style: none;
+ margin: 0;
+}
+.block .calendar_filters li {
+ margin-bottom: .2em;
+}
+.block .calendar_filters li span img {
+ padding: 0 .2em;
+}
+.block .calendar_filters .eventname {
+ padding-left: .2em;
+}
+.dir-rtl .block .calendar_filters .eventname {
+ padding-right: .2em;
+ padding-left: 0;
+}
+.block .content h3.eventskey {
+ margin-top: 0.5em;
+}
diff --git a/theme/bootstrap/less/moodle/core.less b/theme/bootstrap/less/moodle/core.less
new file mode 100644
index 00000000000..1718d491b84
--- /dev/null
+++ b/theme/bootstrap/less/moodle/core.less
@@ -0,0 +1,1703 @@
+/* core.less */
+.dir-ltr,
+.mdl-left,
+.dir-rtl .mdl-right {
+ text-align: left;
+}
+.dir-rtl,
+.mdl-right,
+.dir-rtl .mdl-left {
+ text-align: right;
+}
+#add,
+#remove,
+.centerpara,
+.mdl-align {
+ text-align: center;
+}
+a.dimmed,
+a.dimmed:link,
+a.dimmed:visited,
+a.dimmed_text,
+a.dimmed_text:link,
+a.dimmed_text:visited,
+.dimmed_text,
+.dimmed_text a,
+.dimmed_text a:link,
+.dimmed_text a:visited,
+.usersuspended,
+.usersuspended a,
+.usersuspended a:link,
+.usersuspended a:visited,
+.dimmed_category,
+.dimmed_category a {
+ .muted
+}
+.activity.label .dimmed_text {
+ .opacity(50)
+}
+.unlist,
+.unlist li,
+.inline-list,
+.inline-list li,
+.block .list,
+.block .list li,
+.section li.activity,
+.section li.movehere,
+.tabtree li {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+.course-content .current {
+ background-color: @grayLighter;
+}
+.inline,
+.inline-list li {
+ display: inline;
+}
+.notifytiny {
+ font-size: @fontSizeMini;
+}
+.notifytiny li,
+.notifytiny td {
+ font-size: 100%;
+}
+.red,
+.notifyproblem {
+ color: @errorText;
+}
+.green,
+.notifysuccess {
+ color: @successText;
+}
+.reportlink {
+ text-align: right;
+}
+a.autolink.glossary:hover {
+ cursor: help;
+}
+/* Block which is hidden if javascript enabled, prevents fickering visible when JS from footer used! */
+.collapsibleregioncaption {
+ white-space: nowrap;
+}
+.collapsibleregioncaption img {
+ vertical-align: middle;
+}
+.jsenabled .hiddenifjs {
+ display: none;
+}
+.visibleifjs {
+ display: none;
+}
+.jsenabled .visibleifjs {
+ display: inline;
+}
+.jsenabled .collapsibleregion {
+ overflow: hidden;
+}
+.jsenabled .collapsed .collapsibleregioninner {
+ visibility: hidden;
+}
+.yui-overlay .yui-widget-bd {
+ background-color: #FFEE69;
+ border: 1px solid #A6982B;
+ border-top-color: #D4C237;
+ color: #000000;
+ left: 0;
+ padding: 2px 5px;
+ position: relative;
+ top: 0;
+ z-index: 1;
+}
+.clearer {
+ background: transparent;
+ border-width: 0;
+ clear: both;
+ display: block;
+ height: 1px;
+ margin: 0;
+ padding: 0;
+}
+.bold,
+.warning,
+.errorbox .title,
+.pagingbar .title,
+.pagingbar .thispage,
+.headingblock {
+ font-weight: bold;
+}
+img.resize {
+ height: 1em;
+ width: 1em;
+}
+.block img.resize,
+.breadcrumb img.resize {
+ height: 0.9em;
+ width: 0.8em;
+}
+/* Icon styles */
+img.icon {
+ height: 16px;
+ vertical-align: text-bottom;
+ width: 16px;
+ padding-right: 6px;
+}
+.dir-rtl img.icon {
+ padding-left: 6px;
+ padding-right: 0;
+}
+img.iconsmall {
+ height: 12px;
+ margin-right: 3px;
+ vertical-align: middle;
+ width: 12px;
+}
+img.iconhelp, .helplink img {
+ height: 16px;
+ padding-left: 3px;
+ vertical-align: text-bottom;
+ width: 16px;
+}
+.dir-rtl img.iconhelp, .dir-rtl .helplink img {
+ padding-right: 3px;
+ padding-left: 0;
+}
+img.iconlarge {
+ height: 24px;
+ width: 24px;
+ vertical-align: middle;
+}
+img.iconsort {
+ vertical-align: text-bottom;
+ padding-left: .3em;
+ margin-bottom: .15em;
+}
+.dir-rtl img.iconsort {
+ padding-right: .3em;
+ padding-left: 0;
+}
+img.icontoggle {
+ height: 17px;
+ vertical-align: middle;
+ width: 50px;
+}
+img.iconkbhelp {
+ height: 17px;
+ width: 49px;
+}
+img.icon-pre, .dir-rtl img.icon-post {
+ padding-right: 3px;
+ padding-left: 0;
+}
+img.icon-post, .dir-rtl img.icon-pre {
+ padding-left: 3px;
+ padding-right: 0;
+}
+.categorybox .category {
+ font-size: 1.2em;
+ font-weight: bold;
+}
+.boxaligncenter {
+ margin-left: auto;
+ margin-right: auto;
+}
+.boxalignright {
+ margin-left: auto;
+ margin-right: 0;
+}
+.boxalignleft {
+ margin-left: 0;
+ margin-right: auto;
+}
+.boxwidthnarrow {
+ width: 30%;
+}
+.boxwidthnormal {
+ width: 50%;
+}
+.boxwidthwide {
+ width: 80%;
+}
+.headermain {
+ font-weight: bold;
+}
+#maincontent {
+ display: block;
+ height: 1px;
+ overflow: hidden;
+}
+img.uihint {
+ cursor: help;
+}
+#addmembersform table {
+ margin-left: auto;
+ margin-right: auto;
+}
+.flexible th {
+ white-space: nowrap;
+}
+img.emoticon {
+ vertical-align: middle;
+ width: 15px;
+ height: 15px;
+}
+form.popupform,
+form.popupform div {
+ display: inline;
+}
+.arrow_button input {
+ overflow: hidden;
+}
+.action-icon img.smallicon {
+ vertical-align: text-bottom;
+ margin: 0 0.3em;
+}
+.main img {
+ vertical-align: middle;
+}
+/** The 1-pixel padding is there to avoid phantom scroll bars on OS X (FF, Safari and Chrome)**/
+.no-overflow {
+ overflow: auto;
+ padding-bottom: 1px;
+}
+.pagelayout-report .no-overflow {
+ overflow: visible;
+}
+.no-overflow > .generaltable {
+ margin-bottom: 0;
+}
+// Accessibility features
+
+// Accessibility: text 'seen' by screen readers but not visual users.
+.accesshide {
+ position: absolute;
+ left: -10000px;
+ font-weight: normal;
+ font-size: 1em;
+}
+.dir-rtl .accesshide {
+ top: -30000px;
+ left: auto;
+}
+span.hide,
+div.hide {
+ display: none;
+}
+// Accessibility: Skip block link, for keyboard-only users.
+a.skip-block,
+a.skip {
+ position: absolute;
+ top: -1000em;
+ font-size: 0.85em;
+ text-decoration: none;
+}
+a.skip-block:focus,
+a.skip-block:active,
+a.skip:focus,
+a.skip:active {
+ position: static;
+ display: block;
+}
+.skip-block-to {
+ display: block;
+ height: 1px;
+ overflow: hidden;
+}
+// Blogs
+.addbloglink {
+ text-align: center;
+}
+.blog_entry .audience {
+ text-align: right;
+ padding-right: 4px;
+}
+.blog_entry .tags {
+ margin-top: 15px;
+}
+.blog_entry .tags .action-icon img.smallicon {
+ height: 16px;
+ width: 16px;
+}
+.blog_entry .content {
+ margin-left: 43px;
+}
+// Group
+#page-group-index #groupeditform {
+ text-align: center;
+}
+#doc-contents h1 {
+ margin: 1em 0 0 0;
+}
+#doc-contents ul {
+ margin: 0;
+ padding: 0;
+ width: 90%;
+}
+#doc-contents ul li {
+ list-style-type: none;
+}
+.groupmanagementtable td {
+ vertical-align: top;
+}
+.groupmanagementtable #existingcell,
+.groupmanagementtable #potentialcell {
+ width: 42%;
+}
+.groupmanagementtable #buttonscell {
+ width: 16%;
+}
+.groupmanagementtable #removeselect_wrapper,
+.groupmanagementtable #addselect_wrapper {
+ width: 100%;
+}
+.groupmanagementtable #removeselect_wrapper label,
+.groupmanagementtable #addselect_wrapper label {
+ font-weight: normal;
+}
+.dir-rtl .groupmanagementtable p {
+ text-align: right;
+}
+#group-usersummary {
+ width: 14em;
+}
+.groupselector {
+ margin-top: 3px;
+ margin-bottom: 3px;
+}
+
+// Login
+.loginbox {
+ margin: 15px;
+ overflow: visible;
+}
+.loginbox.twocolumns {
+ margin: 15px;
+}
+.loginbox h2,
+.loginbox .subcontent {
+ margin: 5px;
+ padding: 10px;
+ text-align: center;
+}
+.loginbox .loginpanel .desc {
+ margin: 0;
+ padding: 0;
+ margin-bottom: 5px;
+}
+.loginbox .signuppanel .subcontent {
+ text-align: left;
+}
+.dir-rtl .loginbox .signuppanel .subcontent {
+ text-align: right;
+}
+.loginbox .loginsub {
+ margin-left: 0;
+ margin-right: 0;
+}
+.loginbox .guestsub,
+.loginbox .forgotsub,
+.loginbox .potentialidps {
+ margin: 5px 12%;
+}
+.loginbox .potentialidps .potentialidplist {
+ margin-left: 40%;
+}
+.loginbox .potentialidps .potentialidplist div {
+ text-align: left;
+}
+.loginbox .loginform {
+ margin-top: 1em;
+ text-align: left;
+}
+.loginbox .loginform .form-label {
+ float: left;
+ text-align: right;
+ width: 44%;
+ direction: rtl;
+ white-space: nowrap;
+}
+.dir-rtl .loginbox .loginform .form-label {
+ float: left;
+ text-align: right;
+ width: 44%;
+ direction: ltr;
+ white-space: nowrap;
+}
+.loginbox .loginform .form-input {
+ float: right;
+ width: 55%;
+}
+.loginbox .loginform .form-input input {
+ width: 6em;
+}
+.loginbox .signupform {
+ margin-top: 1em;
+ text-align: center;
+}
+.loginbox.twocolumns .loginpanel,
+.loginbox.twocolumns .signuppanel {
+ width: 48%;
+ border: 0;
+ margin: 0;
+ padding: 0;
+ .box-sizing(border-box);
+ display: block;
+ float: left;
+ margin-left: 2.76243%;
+ min-height: 30px;
+ margin-bottom: -2000px;
+ padding-bottom: 2000px;
+}
+.loginbox .potentialidp .smallicon {
+ vertical-align: text-bottom;
+ margin: 0 .3em;
+}
+
+// Notes
+.notepost {
+ margin-bottom: 1em;
+}
+.notepost .userpicture {
+ float: left;
+ margin-right: 5px;
+}
+.notepost .content,
+.notepost .footer {
+ clear: both;
+}
+.notesgroup {
+ margin-left: 20px;
+}
+
+// My Moodle
+.path-my .coursebox .overview {
+ margin: 15px 30px 10px 30px;
+}
+.path-my .coursebox .info {
+ float: none;
+ margin: 0;
+}
+
+// Modules
+.mod_introbox {
+ padding: 10px;
+}
+table.mod_index {
+ width: 100%;
+}
+
+// Comments
+.comment-ctrl {
+ font-size: 12px;
+ display: none;
+ margin: 0;
+ padding: 0;
+}
+.comment-ctrl h5 {
+ margin: 0;
+ padding: 5px;
+}
+.comment-area {
+ max-width: 400px;
+ padding: 5px;
+}
+.comment-area textarea {
+ width: 100%;
+ overflow: auto;
+}
+.comment-area .fd {
+ text-align: right;
+}
+.comment-meta span {
+ color: gray;
+}
+.comment-link img {
+ vertical-align: text-bottom;
+}
+.comment-list {
+ font-size: 11px;
+ overflow: auto;
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+.comment-list li {
+ margin: 2px;
+ list-style: none;
+ margin-bottom: 5px;
+ clear: both;
+ padding: .3em;
+ position: relative;
+}
+.comment-list li.first {
+ display: none
+}
+.comment-paging{
+ text-align: center;
+}
+.comment-paging .pageno{
+ padding: 2px;
+}
+.comment-paging .curpage{
+ border: 1px solid #CCC;
+}
+.comment-message .picture {
+ width: 20px;
+ float: left;
+}
+.dir-rtl .comment-message .picture {
+ float: right;
+}
+.comment-message .text {
+ margin: 0;
+ padding: 0;
+}
+.comment-message .text p {
+ padding: 0;
+ margin: 0 18px 0 0;
+}
+.comment-delete {
+ position: absolute;
+ top: 0;
+ right: 0;
+ margin: .3em;
+}
+.dir-rtl .comment-delete {
+ position: absolute;
+ left: 0;
+ right: auto;
+ margin: .3em;
+}
+.comment-delete-confirm {
+ background: #eee;
+ padding: 2px;
+ width: 5em;
+ text-align: center;
+}
+.comment-container {
+ float: left;
+ margin: 4px;
+}
+.comment-report-selectall{
+ display: none
+}
+.comment-link {
+ display: none
+}
+.jsenabled .comment-link {
+ display: block
+}
+.jsenabled .showcommentsnonjs{
+ display: none
+}
+.jsenabled .comment-report-selectall{
+ display: inline
+}
+/**
+* Completion progress report
+*/
+.completion-expired {
+ background: @errorBackground;
+}
+.completion-expected {
+ font-size: @fontSizeMini;
+}
+.completion-sortchoice,
+.completion-identifyfield {
+ font-size: @fontSizeMini;
+ vertical-align: bottom;
+}
+.completion-progresscell {
+ text-align: right;
+}
+.completion-expired .completion-expected {
+ font-weight: bold;
+}
+/**
+* Tags
+*/
+#page-tag-coursetags_edit .coursetag_edit_centered {
+ position: relative;
+ width: 600px;
+ margin: 20px auto;
+}
+#page-tag-coursetags_edit .coursetag_edit_row {
+ clear: both;
+}
+#page-tag-coursetags_edit .coursetag_edit_row .coursetag_edit_left {
+ float: left;
+ width: 50%;
+ text-align: right;
+}
+#page-tag-coursetags_edit .coursetag_edit_row .coursetag_edit_right {
+ margin-left: 50%;
+}
+#page-tag-coursetags_edit .coursetag_edit_input3 {
+ display: none;
+}
+#page-tag-coursetags_more .coursetag_more_large {
+ font-size: 120%;
+}
+#page-tag-coursetags_more .coursetag_more_small {
+ font-size: 80%;
+}
+#page-tag-coursetags_more .coursetag_more_link {
+ font-size: 80%;
+}
+#tag-description,
+#tag-blogs {
+ width: 100%;
+}
+#tag-management-box {
+ margin-bottom: 10px;
+ line-height: 20px;
+}
+#tag-user-table {
+ padding: 3px;
+ clear: both;
+ width: 100%;
+}
+#tag-user-table {
+ .clearfix
+}
+img.user-image {
+ height: 100px;
+ width: 100px;
+}
+#small-tag-cloud-box {
+ width: 300px;
+ margin: 0 auto;
+}
+#big-tag-cloud-box {
+ width: 600px;
+ margin: 0 auto;
+ float: none;
+}
+ul#tag-cloud-list {
+ list-style: none;
+ padding: 5px;
+ margin: 0;
+}
+ul#tag-cloud-list li {
+ margin: 0;
+ display: inline;
+ list-style-type: none;
+}
+#tag-search-box {
+ text-align: center;
+ margin: 10px auto;
+}
+#tag-search-results-container {
+ padding: 0;
+ width: 100%;
+}
+#tag-search-results {
+ padding: 0;
+ margin: 15px 20% 0 20%;
+ float: left;
+ width: 60%;
+ display: block;
+}
+#tag-search-results li {
+ width: 30%;
+ float: left;
+ padding-left: 1%;
+ text-align: left;
+ line-height: 20px;
+ padding-right: 1%;
+ list-style: none;
+}
+span.flagged-tag,
+span.flagged-tag a {
+ color: @errorText;
+}
+table#tag-management-list {
+ text-align: left;
+ width: 100%;
+}
+table#tag-management-list td,
+table#tag-management-list th {
+ vertical-align: middle;
+ text-align: left;
+ padding: 4px;
+}
+.tag-management-form {
+ text-align: center;
+}
+#relatedtags-autocomplete-container {
+ margin-left: auto;
+ margin-right: auto;
+ min-height: 4.6em;
+ width: 100%;
+}
+#relatedtags-autocomplete {
+ position: relative;
+ display: block;
+ width: 60%;
+ margin-left: auto;
+ margin-right: auto;
+}
+#relatedtags-autocomplete .yui-ac-content {
+ position: absolute;
+ width: 420px;
+ left: 20%;
+ border: 1px solid #404040;
+ background: #fff;
+ overflow: hidden;
+ z-index: 9050;
+}
+#relatedtags-autocomplete .ysearchquery {
+ position: absolute;
+ right: 10px;
+ color: #808080;
+ z-index: 10;
+}
+#relatedtags-autocomplete .yui-ac-shadow {
+ position: absolute;
+ margin: .3em;
+ width: 100%;
+ background: #a0a0a0;
+ z-index: 9049;
+}
+#relatedtags-autocomplete ul {
+ padding: 0;
+ width: 100%;
+ margin: 0;
+ list-style-type: none;
+}
+#relatedtags-autocomplete li {
+ padding: 0 5px;
+ cursor: default;
+ white-space: nowrap;
+}
+#relatedtags-autocomplete li.yui-ac-highlight{
+ background: #FFFFCC;
+}
+h2.tag-heading,
+div#tag-description,
+div#tag-blogs,
+body.tag .managelink {
+ padding: 5px;
+}
+.tag_cloud .s20 {
+ font-size: 1.5em;
+ font-weight: bold;
+}
+.tag_cloud .s19 {
+ font-size: 1.5em;
+}
+.tag_cloud .s18 {
+ font-size: 1.4em;
+ font-weight: bold;
+}
+.tag_cloud .s17 {
+ font-size: 1.4em;
+}
+.tag_cloud .s16 {
+ font-size: 1.3em;
+ font-weight: bold;
+}
+.tag_cloud .s15 {
+ font-size: 1.3em;
+}
+.tag_cloud .s14 {
+ font-size: 1.2em;
+ font-weight: bold;
+}
+.tag_cloud .s13 {
+ font-size: 1.2em;
+}
+.tag_cloud .s12,
+.tag_cloud .s11 {
+ font-size: 1.1em;
+ font-weight: bold;
+}
+.tag_cloud .s10,
+.tag_cloud .s9 {
+ font-size: 1.1em;
+}
+.tag_cloud .s8,
+.tag_cloud .s7 {
+ font-size: 1em;
+ font-weight: bold;
+}
+.tag_cloud .s6,
+.tag_cloud .s5 {
+ font-size: 1em;
+}
+.tag_cloud .s4,
+.tag_cloud .s3 {
+ font-size: 0.9em;
+ font-weight: bold;
+}
+.tag_cloud .s2,
+.tag_cloud .s1 {
+ font-size: 0.9em;
+}
+.tag_cloud .s0 {
+ font-size: 0.8em;
+}
+/**
+* Web Service
+*/
+#webservice-doc-generator td {
+ text-align: left;
+ border: 0 solid black;
+}
+/**
+* Smart Select Element
+*/
+.smartselect {
+ position: absolute;
+}
+.smartselect .smartselect_mask {
+ background-color: #fff;
+}
+.smartselect ul {
+ padding: 0;
+ margin: 0;
+}
+.smartselect ul li {
+ list-style: none;
+}
+.smartselect .smartselect_menu {
+ margin-right: 5px;
+}
+.safari .smartselect .smartselect_menu {
+ margin-left: 2px;
+}
+.smartselect .smartselect_menu,
+.smartselect .smartselect_submenu {
+ border: 1px solid #000;
+ background-color: #FFF;
+ display: none;
+}
+.smartselect .smartselect_menu.visible,
+.smartselect .smartselect_submenu.visible {
+ display: block;
+}
+.smartselect .smartselect_menu_content ul li {
+ position: relative;
+ padding: 2px 5px;
+}
+.smartselect .smartselect_menu_content ul li a {
+ color: #333;
+ text-decoration: none;
+}
+.smartselect .smartselect_menu_content ul li a.selectable {
+ color: inherit;
+}
+.smartselect .smartselect_submenuitem {
+ background-image: url([[pix:moodle|t/collapsed]]);
+ background-repeat: no-repeat;
+ background-position: 100%;
+}
+/** Spanning mode */
+.smartselect.spanningmenu .smartselect_submenu {
+ position: absolute;
+ top: -1px;
+ left: 100%;
+}
+.smartselect.spanningmenu .smartselect_submenu a {
+ white-space: nowrap;
+ padding-right: 16px;
+}
+.smartselect.spanningmenu .smartselect_menu_content ul li a.selectable:hover {
+ text-decoration: underline;
+}
+/** Compact mode */
+.smartselect.compactmenu .smartselect_submenu {
+ position: relative;
+ margin: 2px -3px;
+ margin-left: 10px;
+ display: none;
+ border-width: 0;
+ z-index: 1010;
+}
+.smartselect.compactmenu .smartselect_submenu.visible {
+ display: block;
+}
+.smartselect.compactmenu .smartselect_menu {
+ z-index: 1000;
+ overflow: hidden;
+}
+.smartselect.compactmenu .smartselect_submenu .smartselect_submenu {
+ z-index: 1020;
+}
+.smartselect.compactmenu .smartselect_submenuitem:hover > .smartselect_menuitem_label {
+ font-weight: bold;
+}
+/**
+* Registration
+*/
+#page-admin-registration-register .registration_textfield {
+ width: 300px;
+}
+/**
+* Enrol
+*/
+.userenrolment {
+ width: 100%;
+ border-collapse: collapse;
+}
+.userenrolment td {
+ padding: 0;
+ height: 41px;
+}
+.userenrolment .subfield {
+ margin-right: 5px;
+}
+.userenrolment .col_userdetails .subfield_picture {
+ float: left;
+}
+.userenrolment .col_lastseen {
+ width: 150px;
+}
+.userenrolment .col_role {
+ width: 262px;
+}
+.userenrolment .col_role .roles {
+ margin-right: 30px;
+}
+.userenrolment .col_role .role {
+ float: left;
+ padding: 3px;
+ margin: 3px;
+}
+.dir-rtl .userenrolment .col_role .role {
+ float: right;
+}
+.userenrolment .col_role .role a {
+ margin-left: 3px;
+ cursor: pointer;
+}
+.userenrolment .col_role .addrole {
+ float: right;
+ width: 18px;
+ height: 18px;
+ margin: 3px;
+ text-align: center;
+ background-color: @successBackground;
+ border: 1px solid @successBorder;
+}
+.userenrolment .col_role .addrole img {
+ vertical-align: baseline;
+}
+.userenrolment .hasAllRoles .col_role .addrole {
+ display: none;
+}
+.userenrolment .col_group .groups {
+ margin-right: 30px;
+}
+.userenrolment .col_group .group {
+ float: left;
+ padding: 3px;
+ margin: 3px;
+ white-space: nowrap;
+}
+.userenrolment .col_group .group a {
+ margin-left: 3px;
+ cursor: pointer;
+}
+.userenrolment .col_group .addgroup {
+ float: right;
+ width: 18px;
+ margin: 3px;
+ height: 18px;
+ text-align: center;
+}
+.userenrolment .col_group .addgroup a img {
+ vertical-align: bottom;
+}
+.userenrolment .col_enrol .enrolment {
+ float: left;
+ padding: 3px;
+ margin: 3px;
+}
+.userenrolment .col_enrol .enrolment a {
+ float: right;
+ margin-left: 3px;
+}
+#page-enrol-users .enrol_user_buttons {
+ float: right;
+}
+#page-enrol-users .enrol_user_buttons .enrolusersbutton {
+ margin-left: 1em;
+ display: inline;
+}
+#page-enrol-users .enrol_user_buttons .enrolusersbutton div,
+#page-enrol-users .enrol_user_buttons .enrolusersbutton form {
+ display: inline;
+}
+#page-enrol-users .enrol_user_buttons .enrolusersbutton input {
+ padding-left: 6px;
+ padding-right: 6px;
+}
+#page-enrol-users.dir-rtl .col_userdetails .subfield_picture {
+ float: right;
+}
+#page-enrol-users .user-enroller-panel .uep-search-results .user .details {
+ width: 237px;
+}
+/**
+* Overide for RTL layout
+**/
+.dir-rtl .headermain {
+ float: right;
+}
+.dir-rtl .headermenu {
+ float: left;
+}
+.dir-rtl .loginbox .loginform .form-label {
+ float: right;
+ text-align: left;
+}
+.dir-rtl .loginbox .loginform .form-input {
+ text-align: right;
+}
+.dir-rtl .yui3-menu-hidden {
+ left: 0;
+}
+#page-admin-roles-define.dir-rtl #rolesform .felement {
+ margin-right: 180px;
+}
+#page-message-edit.dir-rtl table.generaltable th.c0 {
+ text-align: right;
+}
+.corelightbox {
+ background-color: #CCC;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ text-align: center;
+}
+.corelightbox img {
+ position: fixed;
+ top: 50%;
+ left: 50%;
+}
+.mod-indent-1 {
+ margin-left: 30px;
+}
+.mod-indent-2 {
+ margin-left: 60px;
+}
+.mod-indent-3 {
+ margin-left: 90px;
+}
+.mod-indent-4 {
+ margin-left: 120px;
+}
+.mod-indent-5 {
+ margin-left: 150px;
+}
+.mod-indent-6 {
+ margin-left: 180px;
+}
+.mod-indent-7 {
+ margin-left: 210px;
+}
+.mod-indent-8 {
+ margin-left: 240px;
+}
+.mod-indent-9 {
+ margin-left: 270px;
+}
+.mod-indent-10 {
+ margin-left: 300px;
+}
+.mod-indent-11 {
+ margin-left: 330px;
+}
+.mod-indent-12 {
+ margin-left: 360px;
+}
+.mod-indent-13 {
+ margin-left: 390px;
+}
+.mod-indent-14 {
+ margin-left: 420px;
+}
+.mod-indent-15,
+.mod-indent-huge {
+ margin-left: 420px;
+}
+.dir-rtl .mod-indent-1 {
+ margin-right: 30px;
+ margin-left: 0;
+}
+.dir-rtl .mod-indent-2 {
+ margin-right: 60px;
+ margin-left: 0;
+}
+.dir-rtl .mod-indent-3 {
+ margin-right: 90px;
+ margin-left: 0;
+}
+.dir-rtl .mod-indent-4 {
+ margin-right: 120px;
+ margin-left: 0;
+}
+.dir-rtl .mod-indent-5 {
+ margin-right: 150px;
+ margin-left: 0;
+}
+.dir-rtl .mod-indent-6 {
+ margin-right: 180px;
+ margin-left: 0;
+}
+.dir-rtl .mod-indent-7 {
+ margin-right: 210px;
+ margin-left: 0;
+}
+.dir-rtl .mod-indent-8 {
+ margin-right: 240px;
+ margin-left: 0;
+}
+.dir-rtl .mod-indent-9 {
+ margin-right: 270px;
+ margin-left: 0;
+}
+.dir-rtl .mod-indent-10 {
+ margin-right: 300px;
+ margin-left: 0;
+}
+.dir-rtl .mod-indent-11 {
+ margin-right: 330px;
+ margin-left: 0;
+}
+.dir-rtl .mod-indent-12 {
+ margin-right: 360px;
+ margin-left: 0;
+}
+.dir-rtl .mod-indent-13 {
+ margin-right: 390px;
+ margin-left: 0;
+}
+.dir-rtl .mod-indent-14 {
+ margin-right: 420px;
+ margin-left: 0;
+}
+.dir-rtl .mod-indent-15,
+.dir-rtl .mod-indent-huge {
+ margin-right: 420px;
+ margin-left: 0;
+}
+/* Audio player size in 'block' mode (can only change width, height is hardcoded in JS) */
+.resourcecontent .mediaplugin_mp3 object {
+ height: 25px;
+ width: 600px
+}
+.resourcecontent audio.mediaplugin_html5audio {
+ width: 600px
+}
+/** Large resource images should avoid hidden overflow **/
+.resourceimage {
+ max-width: 100%;
+}
+/* Audio player size in 'inline' mode (can only change width, as above) */
+.mediaplugin_mp3 object {
+ height: 15px;
+ width: 300px
+}
+audio.mediaplugin_html5audio {
+ width: 300px
+}
+/* TinyMCE moodle media preview frame should not have padding */
+.core_media_preview.pagelayout-embedded #content {
+ padding: 0;
+}
+.core_media_preview.pagelayout-embedded #maincontent {
+ height: 0;
+}
+.core_media_preview.pagelayout-embedded .mediaplugin {
+ margin: 0;
+}
+/** Fix YUI 2 Treeview for Right to left languages **/
+.dir-rtl .ygtvtn,
+.dir-rtl .ygtvtm,
+.dir-rtl .ygtvtmh,
+.dir-rtl .ygtvtmhh,
+.dir-rtl .ygtvtp,
+.dir-rtl .ygtvtph,
+.dir-rtl .ygtvtphh,
+.dir-rtl .ygtvln,
+.dir-rtl .ygtvlm,
+.dir-rtl .ygtvlmh,
+.dir-rtl .ygtvlmhh,
+.dir-rtl .ygtvlp,
+.dir-rtl .ygtvlph,
+.dir-rtl .ygtvlphh,
+.dir-rtl .ygtvdepthcell,
+.dir-rtl .ygtvok,
+.dir-rtl .ygtvok:hover,
+.dir-rtl .ygtvcancel,
+.dir-rtl .ygtvcancel:hover {
+ width: 18px;
+ height: 22px;
+ background-image: url([[pix:theme|yui2-treeview-sprite-rtl]]);
+ background-repeat: no-repeat;
+ cursor: pointer;
+}
+.dir-rtl .ygtvtn {
+ background-position: 0 -5600px;
+}
+.dir-rtl .ygtvtm {
+ background-position: 0 -4000px;
+}
+.dir-rtl .ygtvtmh,
+.dir-rtl .ygtvtmhh {
+ background-position: 0 -4800px;
+}
+.dir-rtl .ygtvtp {
+ background-position: 0 -6400px;
+}
+.dir-rtl .ygtvtph,
+.dir-rtl .ygtvtphh {
+ background-position: 0 -7200px;
+}
+.dir-rtl .ygtvln {
+ background-position: 0 -1600px;
+}
+.dir-rtl .ygtvlm {
+ background-position: 0 0;
+}
+.dir-rtl .ygtvlmh,
+.dir-rtl .ygtvlmhh {
+ background-position: 0 -800px;
+}
+.dir-rtl .ygtvlp {
+ background-position: 0 -2400px;
+}
+.dir-rtl .ygtvlph,
+.dir-rtl .ygtvlphh {
+ background-position: 0 -3200px
+}
+.dir-rtl .ygtvdepthcell {
+ background-position: 0 -8000px;
+}
+.dir-rtl .ygtvok {
+ background-position: 0 -8800px;
+}
+.dir-rtl .ygtvok:hover {
+ background-position: 0 -8844px;
+}
+.dir-rtl .ygtvcancel {
+ background-position: 0 -8822px;
+}
+.dir-rtl .ygtvcancel:hover {
+ background-position: 0 -8866px;
+}
+.dir-rtl.yui-skin-sam .yui-panel .hd {
+ text-align: left;
+}
+.dir-rtl .yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd {
+ text-align: right;
+}
+/** Fix TinyMCE editor right to left **/
+.dir-rtl .clearlooks2.ie9 .mceAlert .mceMiddle span,.dir-rtl .clearlooks2 .mceConfirm .mceMiddle span {
+ top: 44px;
+}
+.dir-rtl .o2k7Skin table,
+.dir-rtl .o2k7Skin tbody,
+.dir-rtl .o2k7Skin a,
+.dir-rtl .o2k7Skin img,
+.dir-rtl .o2k7Skin tr,
+.dir-rtl .o2k7Skin div,
+.dir-rtl .o2k7Skin td,
+.dir-rtl .o2k7Skin iframe,
+.dir-rtl .o2k7Skin span,
+.dir-rtl .o2k7Skin *,
+.dir-rtl .o2k7Skin .mceText,
+.dir-rtl .o2k7Skin .mceListBox .mceText {
+ text-align: right;
+}
+.path-rating .ratingtable {
+ width: 100%;
+ margin-bottom: 1em;
+}
+.path-rating .ratingtable th.rating {
+ width: 100%;
+}
+.path-rating .ratingtable td.rating,
+.path-rating .ratingtable td.time {
+ white-space: nowrap;
+ text-align: center;
+}
+.initialbar a {
+ padding-right: 2px;
+}
+/* Moodle Dialogue Settings (moodle-core-dialogue) */
+.moodle-dialogue-base .moodle-dialogue-lightbox {
+ background-color: #AAA;
+}
+.moodle-dialogue-base .hidden,
+.moodle-dialogue-base .moodle-dialogue-hidden {
+ display: none;
+}
+.moodle-dialogue-base .moodle-dialogue {
+ padding: 0;
+ margin: 0;
+ background: none;
+ border: none;
+ /* Override the z-index set incorrectly by the YUI dialogue */
+ z-index: 600!important;
+}
+.moodle-dialogue-base .moodle-dialogue-wrap {
+ margin-top: -3px;
+ margin-left: -3px;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ .border-radius(10px);
+ .box-shadow(5px 5px 20px 0 #666);
+}
+.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd {
+ margin: 0;
+ padding: 5px;
+ font-size: 12px;
+ font-weight: normal;
+ letter-spacing: 1px;
+ color: #333;
+ text-align: center;
+ text-shadow: 1px 1px 1px #fff;
+ .border-radius(10px 10px 0 0);
+ border-bottom: 1px solid #bbb;
+ background: #ccc;
+ #gradient > .vertical(#fff, #ccc);
+ filter: dropshadow(color=#FFFFFF, offx=1, offy=1);
+}
+.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd h1 {
+ margin: 0;
+ padding: 0;
+ display: inline;
+ font-size: 100%;
+ font-weight: bold;
+}
+.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd .yui3-widget-buttons {
+ padding: 5px;
+}
+.moodle-dialogue-base .closebutton {
+ width: 25px;
+ height: 15px;
+ float: right;
+ vertical-align: middle;
+ display: inline-block;
+ cursor: pointer;
+ padding: 0;
+ background-image: url([[pix:theme|sprite]]);
+ background-repeat: no-repeat;
+ border-style: none;
+}
+.dir-rtl .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd .yui3-widget-buttons {
+ left: 0;
+ right: auto;
+}
+.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-bd {
+ overflow: auto;
+ padding: 1em;
+ line-height: 2em;
+ color: #555;
+ font-size: 12px;
+}
+.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-content {
+ padding: 0;
+ background: #FFF;
+}
+.moodle-dialogue-confirm .confirmation-dialogue {
+ text-align: center;
+}
+.moodle-dialogue-confirm .confirmation-dialogue input {
+ text-align: center;
+}
+.moodle-dialogue-exception .moodle-exception-message {
+ text-align: center
+}
+.moodle-dialogue-exception .moodle-exception-param label {
+ font-weight: bold;
+}
+.moodle-dialogue-exception .param-stacktrace label {
+ background-color: #EEE;
+ border: 1px solid #ccc;
+ border-bottom-width: 0;
+}
+.moodle-dialogue-exception .param-stacktrace pre {
+ border: 1px solid #ccc;
+ background-color: #fff;
+}
+.moodle-dialogue-exception .param-stacktrace .stacktrace-file {
+ color: navy;
+ font-size: @fontSizeSmall;
+}
+.moodle-dialogue-exception .param-stacktrace .stacktrace-line {
+ color: @errorText;
+ font-size: @fontSizeSmall;
+}
+.moodle-dialogue-exception .param-stacktrace .stacktrace-call {
+ color: #333;
+ font-size: 90%;
+ border-bottom: 1px solid #eee;
+}
+.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft {
+ padding: 0;
+ margin: 0.7em 1em;
+ text-align: right;
+ background-color: #FFF;
+ font-size: 12px;
+}
+.moodle-dialogue-confirm .confirmation-message {
+ margin: 0.5em 1em;
+}
+.moodle-dialogue-confirm .confirmation-dialogue input {
+ min-width: 80px
+}
+.moodle-dialogue-exception .moodle-exception-message {
+ margin: 1em;
+}
+.moodle-dialogue-exception .moodle-exception-param {
+ margin-bottom: 0.5em;
+}
+.moodle-dialogue-exception .moodle-exception-param label {
+ width: 150px;
+}
+.moodle-dialogue-exception .param-stacktrace label {
+ display: block;
+ margin: 0;
+ padding: 4px 1em;
+}
+.moodle-dialogue-exception .param-stacktrace pre {
+ display: block;
+ height: 200px;
+ overflow: auto;
+}
+.moodle-dialogue-exception .param-stacktrace .stacktrace-file {
+ display: inline-block;
+ margin: 4px 0;
+}
+.moodle-dialogue-exception .param-stacktrace .stacktrace-line {
+ display: inline-block;
+ width: 50px;
+ margin: 4px 1em;
+}
+.moodle-dialogue-exception .param-stacktrace .stacktrace-call {
+ padding-left: 25px;
+ margin-bottom: 4px;
+ padding-bottom: 4px;
+}
+.moodle-dialogue .moodle-dialogue-bd .content-lightbox {
+ .opacity(75);
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ background-color: white;
+ text-align: center;
+ padding: 10% 0;
+}
+/* Apply a default max-height on tooltip text */
+.moodle-dialogue .tooltiptext {
+ max-height: 300px;
+}
+/* Question Bank - Question Chooser "Close" button */
+#page-question-edit.dir-rtl a.container-close {
+ right: auto;
+ left: 6px;
+}
+/**
+* Chooser Dialogues (moodle-core-chooserdialogue)
+*
+* This CSS belong to the chooser dialogue which should work both with, and
+* without javascript enabled
+*/
+/* Hide the dialog and it's title */
+.chooserdialoguebody,
+.choosertitle {
+ display: none;
+}
+.moodle-dialogue.chooserdialogue .moodle-dialogue-content .moodle-dialogue-ft {
+ margin: 0;
+}
+.chooserdialogue .moodle-dialogue-wrap .moodle-dialogue-bd {
+ padding: 0;
+ background: #F2F2F2;
+ .border-bottom-radius(10px);
+}
+/* Center the submit buttons within the area */
+.choosercontainer #chooseform .submitbuttons {
+ margin: 0.7em 0;
+ text-align: center;
+}
+.choosercontainer #chooseform .submitbuttons input {
+ min-width: 100px;
+ margin: 0 0.5em;
+}
+/* Various settings for the options area */
+.choosercontainer #chooseform .options {
+ position: relative;
+ border-bottom: 1px solid #BBBBBB;
+}
+/* Only set these options if we're showing the js container */
+.jsenabled .choosercontainer #chooseform .alloptions {
+ overflow-x: hidden;
+ overflow-y: auto;
+ max-width: 20.3em;
+ .box-shadow(inset 0 0 30px 0px #ccc);
+}
+.dir-rtl.jsenabled .choosercontainer #chooseform .alloptions {
+ max-width: 18.3em;
+}
+/* Settings for option rows and option subtypes */
+.choosercontainer #chooseform .moduletypetitle,
+.choosercontainer #chooseform .option,
+.choosercontainer #chooseform .nonoption {
+ margin-bottom: 0;
+ padding: 0 1.6em 0 1.6em;
+}
+.choosercontainer #chooseform .moduletypetitle {
+ text-transform: uppercase;
+ padding-top: 1.2em;
+ padding-bottom: 0.4em;
+}
+.choosercontainer #chooseform .option .typename,
+.choosercontainer #chooseform .option span.modicon img.icon,
+.choosercontainer #chooseform .nonoption .typename,
+.choosercontainer #chooseform .nonoption span.modicon img.icon {
+ padding: 0 0 0 0.5em;
+}
+.dir-rtl .choosercontainer #chooseform .option .typename,
+.dir-rtl .choosercontainer #chooseform .option span.modicon img.icon,
+.dir-rtl .choosercontainer #chooseform .nonoption .typename,
+.dir-rtl .choosercontainer #chooseform .nonoption span.modicon img.icon {
+ padding: 0 0.5em 0 0;
+}
+.choosercontainer #chooseform .option span.modicon img.icon,
+.choosercontainer #chooseform .nonoption span.modicon img.icon {
+ height: 24px;
+ width: 24px;
+}
+.choosercontainer #chooseform .option input[type=radio],
+.choosercontainer #chooseform .option span.typename,
+.choosercontainer #chooseform .option span.modicon {
+ vertical-align: middle;
+}
+.choosercontainer #chooseform .option label {
+ display: block;
+ padding: 0.3em 0 0.1em 0;
+ border-bottom: 1px solid #FFFFFF;
+}
+.choosercontainer #chooseform .nonoption {
+ padding-left: 2.7em;
+ padding-top: 0.3em;
+ padding-bottom: 0.1em;
+}
+.dir-rtl .choosercontainer #chooseform .nonoption {
+ padding-right: 2.7em;
+ padding-left: 0;
+}
+.choosercontainer #chooseform .subtype {
+ margin-bottom: 0;
+ padding: 0 1.6em 0 3.2em;
+}
+.dir-rtl .choosercontainer #chooseform .subtype {
+ padding: 0 3.2em 0 1.6em;
+}
+.choosercontainer #chooseform .subtype .typename {
+ margin: 0 0 0 0.2em;
+}
+.dir-rtl .choosercontainer #chooseform .subtype .typename {
+ margin: 0 0.2em 0 0;
+}
+/* The instruction/help area */
+.jsenabled .choosercontainer #chooseform .instruction,
+.jsenabled .choosercontainer #chooseform .typesummary {
+ display: none;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 20.3em;
+ margin: 0;
+ padding: 1.6em;
+ background-color: @bodyBackground;
+ overflow-x: hidden;
+ overflow-y: auto;
+ line-height: 2em;
+}
+.dir-rtl.jsenabled .choosercontainer #chooseform .instruction,
+.dir-rtl.jsenabled .choosercontainer #chooseform .typesummary {
+ left: 0;
+ right: 18.5em;
+ border-right: 1px solid grey;
+}
+/* Selected option settings */
+.jsenabled .choosercontainer #chooseform .instruction,
+.choosercontainer #chooseform .selected .typesummary {
+ display: block;
+}
+.choosercontainer #chooseform .selected {
+ background-color: @bodyBackground;
+ .box-shadow(0px 0 10px 0 #ccc);
+}
+.section-modchooser-link img.smallicon {
+ padding: 3px;
+}
+/* Form element: listing */
+.formlistingradio {
+ padding-bottom: 25px;
+ padding-right: 10px;
+}
+.formlistinginputradio {
+ float: left;
+}
+.formlistingmain {
+ min-height: 225px;
+}
+.formlisting {
+ position: relative;
+ margin: 15px 0;
+ padding: 1px 19px 14px;
+ background-color: white;
+ border: 1px solid #DDD;
+ .border-radius(4px);
+}
+.formlistingmore {
+ position: absolute;
+ cursor: pointer;
+ bottom: -1px;
+ right: -1px;
+ padding: 3px 7px;
+ font-size: 12px;
+ font-weight: bold;
+ background-color: whiteSmoke;
+ border: 1px solid #ddd;
+ color: #9DA0A4;
+ .border-radius(4px 0 4px 0);
+}
+.formlistingall {
+ margin: 15px 0;
+ padding: 0;
+ .border-radius(4px);
+}
+.formlistingrow {
+ cursor: pointer;
+ border-bottom: 1px solid;
+ border-color: #E1E1E8;
+ border-left: 1px solid #E1E1E8;
+ border-right: 1px solid #E1E1E8;
+ background-color: #F7F7F9;
+ .border-radius(0 0 4px 4px);
+ padding: 6px;
+ top: 50%;
+ left: 50%;
+ min-height: 34px;
+ float: left;
+ width: 150px;
+}
+body.jsenabled .formlistingradio {
+ display: none;
+}
+body.jsenabled .formlisting {
+ display: block;
+}
diff --git a/theme/bootstrap/less/moodle/course.less b/theme/bootstrap/less/moodle/course.less
new file mode 100644
index 00000000000..6be3b063ef3
--- /dev/null
+++ b/theme/bootstrap/less/moodle/course.less
@@ -0,0 +1,565 @@
+/* course.less */
+.section_add_menus {
+ text-align: right;
+}
+.dir-rtl .section_add_menus {
+ text-align: left;
+}
+.section_add_menus .horizontal div,
+.section_add_menus .horizontal form {
+ display: inline;
+}
+.section_add_menus optgroup {
+ font-weight: normal;
+ font-style: italic;
+}
+.section_add_menus .urlselect {
+ margin-left: .4em;
+}
+.dir-rtl .section_add_menus .urlselect {
+ margin-right: .4em;
+ margin-left: 0;
+}
+.section_add_menus .urlselect select {
+ margin-left: .2em;
+}
+.dir-rtl .section_add_menus .urlselect select {
+ margin-right: .2em;
+ margin-left: 0;
+}
+.section_add_menus .urlselect img.iconhelp {
+ padding: 0;
+ margin: 0;
+ vertical-align: text-bottom;
+}
+
+.site-topic ul.section,
+.course-content ul.section {
+ margin: 1em;
+}
+.section .activity img.activityicon {
+ vertical-align: text-bottom;
+ margin-right: 6px;
+}
+.dir-rtl .section .activity img.activityicon {
+ margin-left: 6px;
+ margin-right: 0;
+}
+.section .activity .activityinstance,
+.section .activity .activityinstance div {
+ display: inline-block;
+}
+.editing .section .activity .activityinstance {
+ min-width: 40%;
+}
+.section .activity .activityinstance > a {
+ display: block;
+}
+.editing_show + .editing_assign,
+.editing_hide + .editing_assign {
+ // if roles icon missing, add space
+ margin-left: 20px;
+}
+.section .activity .commands {
+ white-space: nowrap;
+ display: inline;
+}
+.section .activity.modtype_label .commands {
+ margin-left: 40%;
+ padding-left: 22px;
+}
+.section li.activity {
+ padding: .2em;
+ clear: both;
+}
+.section .activity .activityinstance .groupinglabel {
+ padding-left: .45em;
+}
+.section .activity .availabilityinfo,
+.section .activity .contentafterlink {
+ margin-top: 0.5em;
+ margin-left: 30px;
+}
+.dir-rtl .section .activity .availabilityinfo,
+.dir-rtl .section .activity .contentafterlink {
+ margin-left: 0;
+ margin-right: 30px;
+}
+.section .activity .contentafterlink p {
+ margin: .5em 0;
+}
+.editing .section .activity:hover {
+ background-color: @grayLighter;
+}
+.course-content .section-summary {
+ border: 1px solid #DDD;
+ margin-top: 5px;
+ list-style: none;
+}
+.course-content .section-summary .section-title {
+ margin: 2px 5px 10px 5px;
+}
+.course-content .section-summary .summarytext {
+ margin: 2px 5px 2px 5px;
+}
+.course-content .section-summary .section-summary-activities .activity-count {
+ .muted;
+ font-size: @fontSizeSmall;
+ margin: 3px;
+ white-space: nowrap;
+ display: inline-block;
+}
+.course-content .section-summary .summary {
+ margin-top: 5px;
+}
+.course-content .single-section {
+ margin-top: 1em;
+}
+.course-content .single-section .section-navigation {
+ display: block;
+ padding: 0.5em;
+ margin-bottom: -0.5em;
+}
+.course-content .single-section .section-navigation .title {
+ font-weight: bold;
+ font-size: 108%;
+ clear: both;
+}
+.course-content .single-section .section-navigation .mdl-left {
+ font-weight: normal;
+ float: left;
+ margin-right: 1em;
+}
+.dir-rtl .course-content .single-section .section-navigation .mdl-left {
+ float: right;
+}
+.course-content .single-section .section-navigation .mdl-left .larrow {
+ margin-right: 0.1em;
+}
+.course-content .single-section .section-navigation .mdl-right {
+ font-weight: normal;
+ float: right;
+ margin-left: 1em;
+}
+.dir-rtl .course-content .single-section .section-navigation .mdl-right {
+ float: left;
+}
+.course-content .single-section .section-navigation .mdl-right .rarrow {
+ margin-left: 0.1em;
+}
+.course-content .single-section .section-navigation .mdl-bottom {
+ margin-top: 0;
+}
+.course-content ul li.section.main {
+ border-bottom: 2px solid #eee;
+ margin-top: 0;
+}
+.course-content ul li.section.hidden {
+ opacity: 0.5;
+}
+.course-content ul.topics li.section .content,
+.course-content ul.weeks li.section .content {
+ margin-right: 20px;
+ margin-left: 20px;
+ padding: 0;
+}
+
+.course-content {
+ margin-top: 0;
+}
+
+.course-content ul.topics li.section {
+ padding-bottom: 20px;
+}
+
+.course-content ul.topics li.section .summary {
+ margin-left: 25px;
+}
+
+.path-course-view .completionprogress {
+ margin-left: 25px
+}
+
+.path-course-view .completionprogress {
+ display: block;
+ float: right;
+ height: 20px;
+ position: relative;
+ z-index: 1000;
+}
+
+#page-site-index .subscribelink {
+ text-align: right;
+}
+#page-site-index .headingblock {
+ margin-bottom: 9px;
+}
+
+.path-course-view a.reduce-sections {
+ padding-left: 0.2em;
+}
+.path-course-view .headingblock {
+ margin-bottom: 9px;
+}
+.path-course-view .subscribelink {
+ text-align: right;
+}
+.path-course-view .unread {
+ margin-left: 3em;
+}
+.path-course-view .block.drag .header {
+ cursor: move;
+}
+.path-course-view .completionprogress {
+ text-align: right;
+}
+.dir-rtl.path-course-view .completionprogress {
+ text-align: left;
+}
+.path-course-view .single-section .completionprogress {
+ margin-right: 5px;
+}
+.path-course-view .section .summary {
+ line-height: normal;
+}
+
+.path-site li.activity > div,
+.path-course-view li.activity > div {
+ position: relative;
+}
+.path-course-view li.activity span.autocompletion,
+.path-course-view li.activity form.togglecompletion {
+ float: right;
+}
+.path-course-view li.activity form.togglecompletion .ajaxworking {
+ width: 16px;
+ height: 16px;
+ background: url([[pix:i/ajaxloader]]) no-repeat;
+}
+.dir-rtl.path-course-view li.activity form.togglecompletion,
+.dir-rtl.path-course-view li.activity span.autocompletion {
+ float: left;
+}
+.dir-rtl.path-course-view .completionprogress {
+ float: none;
+}
+.dir-rtl.path-course-view li.activity form.togglecompletion .ajaxworking {
+ right: -22px;
+}
+
+li.section.hidden span.commands a.editing_hide,
+li.section.hidden span.commands a.editing_show {
+ cursor: default;
+}
+ul.weeks h3.sectionname {
+ white-space: nowrap;
+}
+.editing ul.weeks h3.sectionname {
+ white-space: normal;
+}
+
+.section img.movetarget {
+ height: 16px;
+ width: 80px;
+}
+
+#page-course-enrol .generalbox,
+#page-course-enrol .coursebox {
+ margin-top: 20px;
+}
+
+#page-course-pending .singlebutton,
+#page-course-category #renameform,
+#page-course-category #themeform,
+#page-course-category #coursesearch,
+#page-course-category .singlebutton,
+#page-course-editsection .singlebutton {
+ text-align: center;
+}
+#page-course-category #movecourses td img {
+ margin: 0 .22em;
+ vertical-align: text-bottom;
+}
+#page-course-category #movecourses td img.icon {
+ padding: 0;
+}
+
+#coursesearch,
+#coursesearch2 {
+ margin-top: 1em;
+ text-align: center;
+}
+
+#page-course-info .generalbox.icons {
+ text-align: center;
+}
+#page-course-info .generalbox.info {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+#page-course-pending .pendingcourserequests {
+ margin-bottom: 1em;
+}
+#page-course-pending .pendingcourserequests .singlebutton {
+ display: inline;
+}
+#page-course-pending .pendingcourserequests .cell {
+ padding: 0 5px;
+}
+#page-course-pending .pendingcourserequests .cell.c6 {
+ white-space: nowrap;
+}
+
+.coursebox {
+ margin-bottom: 15px;
+ border: 1px dotted #ddd;
+ .border-radius(4px);
+ padding: 5px;
+}
+.coursebox .summary .category {
+ text-align: right;
+}
+.coursebox .teachers li {
+ list-style-type: none;
+ padding: 0;
+ margin: 0;
+}
+.coursebox .enrolmenticons img {
+ margin-right: .45em;
+}
+.coursebox .enrolmenticons {
+ border: 1px dotted #DDDDDD;
+ .border-radius(3px);
+ margin-top: 0.3em;
+ padding: 3px;
+}
+
+.coursebox h3.name {
+ margin: 0;
+}
+
+.coursebox .info,
+.coursebox .summary {
+ border: 0;
+ margin: 0;
+ padding: 0;
+ float: none;
+ width: none;
+ .box-sizing(border-box);
+ display: block;
+ float: left;
+ margin-left: 2.76243%;
+ min-height: 30px;
+}
+
+.coursebox .summary {
+ margin-top: 5px;
+}
+
+.categorylist .category .numberofcourse {
+ font-size: @fontSizeSmall;
+}
+.categorylist .category {
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+.categorylist .info,
+.categorylist .name,
+.categorylist .category .image {
+ display: inline-block;
+ margin-left: .2em;
+ margin-right: .2em;
+}
+.categorylist .course {
+ padding-left: 24px;
+ margin-bottom: .5em;
+ line-height: 1.5em;
+}
+.categorylist .indentation {
+ margin-left: 24px;
+}
+
+.course ul.section {
+ margin: 5px;
+ padding: 0;
+}
+
+.weeks-format,
+.topics-format {
+ margin-top: 8px;
+ min-width: 763px;
+}
+.categoryboxcontent {
+ border-width: 1px;
+ border-style: solid;
+}
+
+/* Course and category combo list on front page */
+.course_category_tree .controls {
+ visibility: hidden;
+}
+.course_category_tree .controls div {
+ display: inline;
+ cursor: pointer;
+}
+.course_category_tree .category.with_children>.category_label {
+ background-image: url([[pix:moodle|t/expanded]]);
+ background-repeat: no-repeat;
+}
+.course_category_tree .category_label {
+ padding-left: 13px;
+}
+.course_category_tree .category .category {
+ margin: 5px 0;
+}
+.course_category_tree .category .courses {
+ padding-left: 16px;
+}
+.course_category_tree .category .courses .course_link {
+ display: block;
+ background-image: url([[pix:moodle|i/course]]);
+ background-repeat: no-repeat;
+ padding-left: 21px;
+}
+.course_category_tree .category .course {
+ position: relative;
+}
+.course_category_tree .category .course_info {
+ position: absolute;
+ right: 0;
+ top: 0;
+}
+.dir-rtl .course_category_tree .category .course_info {
+ position: static;
+}
+.dir-rtl .course_category_tree .category .course_info a,
+.dir-rtl .course_category_tree .category .course_info div {
+ float: right;
+}
+.dir-rtl .course_category_tree .controls div {
+ padding: 7px;
+}
+.course_category_tree .category .course_info img {
+ margin-left: .45em;
+}
+.dir-rtl .course_category_tree .category .course_info img {
+ margin-right: .45em;
+ margin-left: 0;
+}
+.jsenabled .course_category_tree .controls {
+ visibility: visible;
+}
+.jsenabled .course_category_tree .category.with_children.collapsed .category_label {
+ background-image: url([[pix:moodle|t/collapsed]]);
+}
+.jsenabled .course_category_tree .category.with_children.collapsed .subcategories,
+.jsenabled .course_category_tree .category.with_children.collapsed .courses {
+ display: none;
+}
+
+/**
+ * Overide for RTL layout
+ */
+.dir-rtl .coursebox .info {
+ float: right;
+ text-align: right;
+}
+.dir-rtl .coursebox .summary {
+ text-align: right;
+}
+.dir-rtl .course_category_tree .category.with_children > .category_label {
+ background-position: center right;
+ padding-right: 18px;
+}
+.dir-rtl .course_category_tree .category_label, .dir-rtl .course_category_tree .category .course {
+ padding-right: 18px;
+}
+.dir-rtl.jsenabled .course_category_tree .category.with_children.collapsed .category_label {
+ background-image: url([[pix:moodle|t/collapsed_rtl]]);
+}
+.dir-rtl .course_category_tree .category .courses .course_link {
+ background-position: center right;
+ padding-right: 18px;
+}
+.dir-rtl .categorylist .course {
+ padding-right: 18px;
+}
+
+#page-course-index.dir-rtl .category .image {
+ padding-left: 5px;
+ padding-right: 0;
+}
+#page-course-index.dir-rtl .indentation {
+ padding-left: 0;
+ padding-right: 30px;
+}
+
+table.category_subcategories {
+ margin-bottom: 1em;
+}
+table.category_subcategories td {
+ white-space: nowrap;
+}
+
+span.editinstructions {
+ position: absolute;
+ top: 0;
+ left: 0;
+ margin-top: -22px;
+ margin-left: 30px;
+ line-height: 16px;
+ font-size: @fontSizeSmall;
+ padding: .1em .4em;
+ background-color: @infoBackground;
+ color: @infoText;
+ text-decoration: none;
+ z-index: 9999;
+ .box-shadow(2px 2px 5px 1px #ccc);
+ border: 1px solid @infoBorder;
+}
+.dir-rtl span.editinstructions {
+ left: auto;
+ right: 32px;
+}
+input.titleeditor {
+ width: 330px;
+ vertical-align: text-bottom;
+}
+
+/* Course drag and drop upload styles */
+#dndupload-status {
+ width: 40%;
+ margin: 0 30%;
+ padding: 6px;
+ border: 1px solid @infoBorder;
+ text-align: center;
+ background: @infoBackground;
+ color: @infoText;
+ position: absolute;
+ z-index: 9999;
+ .box-shadow(2px 2px 5px 1px #ccc);
+ .border-bottom-radius(8px);
+ z-index: 0;
+}
+.dndupload-preview {
+ color: #909090;
+ border: 1px dashed #909090;
+ list-style: none;
+ margin-top: .2em;
+ padding: .3em;
+}
+.dndupload-preview img.icon {
+ vertical-align: text-bottom;
+ padding: 0;
+}
+.dndupload-progress-outer {
+ .progress;
+}
+.dndupload-progress-inner {
+ .progress .bar;
+}
+.dndupload-hidden {
+ display: none;
+}
+
diff --git a/theme/bootstrap/less/moodle/debug.less b/theme/bootstrap/less/moodle/debug.less
new file mode 100644
index 00000000000..bae79145416
--- /dev/null
+++ b/theme/bootstrap/less/moodle/debug.less
@@ -0,0 +1,67 @@
+.phpinfo table,
+.phpinfo th,
+.phpinfo h2 {
+ margin: auto;
+ text-align: left;
+}
+.phpinfo h2 {
+ width: 600px;
+}
+.phpinfo .e,
+.phpinfo .v,
+.phpinfo .h {
+ border: 1px solid #000000;
+ font-size: 0.8em;
+ vertical-align: baseline;
+ color: #000000;
+ background-color: #cccccc;
+}
+.phpinfo .e {
+ background-color: #ccccff;
+ font-weight: bold;
+}
+.phpinfo .h {
+ background-color: #9999cc;
+ font-weight: bold;
+}
+#page-footer .performanceinfo {
+ text-align: center;
+ margin: 10px 20%;
+}
+#page-footer .performanceinfo span {
+ display: block;
+}
+#page-footer .validators {
+ margin-top: 40px;
+ padding-top: 5px;
+ border-top: 1px dotted gray;
+}
+#page-footer .validators ul {
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+}
+#page-footer .validators ul li {
+ display: inline;
+ margin-right: 10px;
+ margin-left: 10px;
+}
+.performanceinfo .cachesused {
+ margin-top: 1em;
+}
+.performanceinfo .cachesused .cache-stats-heading {
+ font-weight: bold;
+ text-decoration: underline;
+ font-size: 110%;
+}
+.performanceinfo .cachesused .cache-definition-stats {
+ font-weight: bold;
+ margin-top: 0.3em;
+}
+.performanceinfo .cachesused .cache-store-stats {
+ text-indent: 1em;
+}
+.performanceinfo .cachesused .cache-total-stats {
+ font-weight: bold;
+ margin-top: 0.3em;
+}
diff --git a/theme/bootstrap/less/moodle/expendable.less b/theme/bootstrap/less/moodle/expendable.less
new file mode 100644
index 00000000000..8f7ebfb2214
--- /dev/null
+++ b/theme/bootstrap/less/moodle/expendable.less
@@ -0,0 +1,76 @@
+table#explaincaps,
+table#defineroletable,
+table.grading-report,
+table#listdirectories,
+table.rolecaps,
+table.userenrolment,
+table#form,
+form#movecourses table,
+#page-admin-course-index .editcourse,
+.forumheaderlist,
+table.flexible,
+.generaltable {
+ .table-striped;
+}
+#page-report-loglive-index .generaltable,
+#page-admin-report-log-index .generaltable,
+#page-report-log-user .generaltable,
+#page-admin-user table,
+.environmenttable,
+.category_subcategories,
+.rcs-results,
+table#listdirectories {
+ .table-condensed
+}
+.user-enroller-panel .uep-search-results .users,
+table.grading-report,
+.forumheaderlist,
+.generaltable,
+table.flexible,
+.category_subcategories,
+table#modules,
+table#permissions {
+ .table-hover
+}
+// language editing progress bar
+// copied in because the styles are set on the HTML
+div[id^="bar_pbar_"] {
+ overflow: hidden !important;
+ height: @baseLineHeight !important;
+ margin-bottom: @baseLineHeight !important;
+ #gradient > .vertical(#f5f5f5, #f9f9f9) !important;
+ .box-shadow(inset 0 1px 2px rgba(0,0,0,.1)) !important;
+ .border-radius(@baseBorderRadius) !important;
+ border: none !important;
+}
+div[id^="progress_pbar_"] {
+ height: 100% !important;
+ color: @white !important;
+ float: left !important;
+ font-size: 12px !important;
+ text-align: center !important;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25) !important;
+ #gradient > .vertical(#149bdf, #0480be) !important;
+ .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)) !important;
+ .box-sizing(border-box) !important;
+ .transition(width .6s ease) !important;
+ padding-top: 0 !important;
+ border: none !important;
+}
+// colored buttons
+input.form-submit,
+input#id_submitbutton,
+input#id_submitbutton2,
+.path-admin .buttons input[type="submit"],
+td.submit input {
+ .btn-primary
+}
+// override .btn-primary
+#notice .singlebutton + .singlebutton input,
+.submit.buttons input[name="cancel"] {
+ .btn;
+}
+input[id$="_clearbutton"],
+input[type="reset"] {
+ .btn-warning
+}
diff --git a/theme/bootstrap/less/moodle/filemanager.less b/theme/bootstrap/less/moodle/filemanager.less
new file mode 100644
index 00000000000..7bc20e7af58
--- /dev/null
+++ b/theme/bootstrap/less/moodle/filemanager.less
@@ -0,0 +1,1150 @@
+ // File Picker and File Manager
+.filemanager,
+.filepicker,
+.file-picker {
+ font-size: 11px;
+}
+.filemanager a,
+.file-picker a,
+.filemanager a:hover,
+.file-picker a:hover {
+ color: #555555;
+ text-decoration: none;
+}
+.filemanager input[type="text"],
+.file-picker input[type="text"] {
+ width: 265px;
+}
+.fp-content-center {
+ height: 100%;
+ width: 100%;
+ display: table-cell;
+ vertical-align: middle;
+}
+.fp-content-hidden {
+ visibility: hidden;
+}
+// Dialogue (File Picker and File Manager)
+.yui3-panel-focused {
+ outline: none;
+}
+#filesskin .yui3-panel-content {
+ padding-bottom: 20px;
+ background: #F2F2F2;
+ .border-radius(8px);
+ border: 1px solid #fff;
+ display: inline-block;
+ .ie7-inline-block();
+ .box-shadow(5px 5px 20px 0 #666);
+}
+#filesskin .yui3-widget-hd {
+ .border-radius(10px 10px 0 0);
+ border-bottom: 1px solid #BBBBBB;
+ padding: 5px;
+ text-align: center;
+ font-size: 12px;
+ color: #333;
+ letter-spacing: 1px;
+ text-shadow: 1px 1px 1px #fff;
+ filter: dropshadow(color=#FFFFFF, offx=1, offy=1);
+ #gradient > .vertical (#fff, #ccc);
+}
+.fp-panel-button {
+ background: #fff;
+ padding: 3px 20px 2px 20px;
+ text-align: center;
+ margin: 10px;
+ .border-radius(10px);
+ display: inline-block;
+ .ie7-inline-block();
+ .box-shadow(2px 2px 3px .1px #999);
+}
+// File Picker layout
+#filesskin .file-picker.fp-generallayout {
+ width: 859px;
+ background: #FFFFFF;
+ .border-radius(10px);
+ border: 1px solid #CCCCCC;
+ position: relative;
+}
+.file-picker .fp-repo-area {
+ width: 180px;
+ overflow: auto;
+ display: inline-block;
+ .ie7-inline-block();
+ border-right: 1px solid #BBBBBB;
+ position: absolute;
+ top: 26px;
+ bottom: 1px;
+}
+.dir-rtl .file-picker .fp-repo-area {
+ border-left: 1px solid #BBBBBB;
+ border-right: none;
+}
+.file-picker .fp-repo-items {
+ vertical-align: top;
+ display: inline-block;
+ .ie7-inline-block();
+ margin-left: 181px;
+}
+.file-picker .fp-navbar {
+ background: #F2F2F2;
+ min-height: 22px;
+ border-bottom: 1px solid #BBBBBB;
+ padding: 5px 8px;
+}
+.file-picker .fp-content {
+ background: #FFFFFF;
+ clear: both;
+ overflow: auto;
+ width: 678px;
+ height: 477px;
+ margin-bottom: -14px;
+}
+.dir-rtl .file-picker .fp-repo-items {
+ margin-right: 181px;
+}
+.file-picker .fp-content-loading {
+ height: 100%;
+ width: 100%;
+ display: table;
+ text-align: center;
+}
+.file-picker .fp-content .fp-object-container {
+ width: 98%;
+ height: 98%;
+}
+.dir-rtl .file-picker .fp-list {
+ text-align: right;
+}
+.dir-rtl .file-picker .fp-toolbar {
+ padding: 0;
+}
+.dir-rtl .file-picker .fp-list {
+ text-align: right;
+}
+.dir-rtl .file-picker .fp-repo-name {
+ display: inline;
+}
+.dir-rtl .file-picker .fp-pathbar {
+ text-align: right;
+ display: block;
+ border-top: none;
+}
+.dir-rtl .file-picker div.bd {
+ text-align: right;
+}
+.dir-rtl #filemenu .yuimenuitemlabel {
+ text-align: right;
+}
+.dir-rtl .filepicker .yui-layout-unit-left {
+ left: 500px;
+}
+.dir-rtl .filepicker .yui-layout-unit-center {
+ left: 0;
+}
+// File Manager
+.dir-rtl .filemanager-toolbar a {
+ padding: 0;
+}
+// Repositories on fp-repo-area (File Picker only)
+.file-picker .fp-list {
+ list-style-type: none;
+ padding: 0;
+ float: left;
+ width: 100%;
+ margin: 0;
+}
+.dir-rtl .file-picker .fp-list {
+ text-align: right;
+ float: left;
+}
+.file-picker .fp-list .fp-repo a {
+ display: block;
+ padding: .5em .7em;
+}
+.file-picker .fp-list .fp-repo.active {
+ background: #F2F2F2;
+}
+.file-picker .fp-list .fp-repo-icon {
+ padding: 0 7px 0 5px;
+}
+// Tools, Path & View on fp-navbar (File Picker and File Manager)
+.fp-toolbar {
+ display: table-row;
+ line-height: 22px;
+ float: left;
+}
+.dir-rtl .fp-toolbar {
+ float: right;
+}
+.fp-toolbar.empty {
+ display: none;
+}
+.fp-toolbar .disabled {
+ display: none;
+}
+.fp-toolbar div {
+ display: inline-block;
+ .ie7-inline-block();
+ padding: 0 2px;
+ padding-right: 10px;
+}
+.dir-rtl .fp-toolbar div {
+ width: 100px;
+}
+.fp-toolbar img {
+ vertical-align: -15%;
+ margin-right: 5px;
+}
+.fp-toolbar .fp-tb-search {
+ width: 228px;
+ height: 14px;
+}
+.fp-toolbar .fp-tb-search input {
+ background: #FFFFFF url('[[pix:a/search]]') no-repeat 3px 3px;
+ padding: 2px 6px 1px 20px;
+ width: 200px;
+ height: 16px;
+ border: 1px solid #BBBBBB;
+}
+.fp-viewbar {
+ float: right;
+ width: 69px;
+ height: 22px;
+ margin-right: 8px;
+}
+.dir-rtl .fp-toolbar img {
+ vertical-align: -35%;
+}
+.dir-rtl .fp-viewbar {
+ float: left;
+ width: 100px;
+}
+.fp-vb-icons {
+ background: url('[[pix:theme|fp/view_icon_active]]') no-repeat 0 0;
+ width: 22px;
+ height: 22px;
+ display: inline-block;
+ .ie7-inline-block();
+}
+.dir-rtl .fp-vb-icons {
+ background: url('[[pix:theme|fp/view_icon_active]]') no-repeat 0 0;
+ display: block;
+ float: left;
+ margin-right: 4px;
+}
+.fp-vb-icons.checked {
+ background: url('[[pix:theme|fp/view_icon_selected]]');
+}
+.dir-rtl .fp-vb-icons.checked {
+ background: url('[[pix:theme|fp/view_icon_selected]]');
+ display: block;
+ float: left;
+ margin-right: 4px;
+}
+.fp-viewbar.disabled .fp-vb-icons {
+ background: url('[[pix:theme|fp/view_icon_inactive]]');
+}
+.fp-vb-details {
+ background: url('[[pix:theme|fp/view_list_active]]') no-repeat 0 0;
+ width: 23px;
+ height: 22px;
+ display: inline-block;
+ .ie7-inline-block();
+ margin-left: -4px;
+}
+.dir-rtl .fp-vb-details {
+ background: url('[[pix:theme|fp/view_list_active]]') no-repeat 0 0;
+ display: block;
+ float: left;
+ margin-right: 4px;
+}
+.fp-vb-details.checked {
+ background: url('[[pix:theme|fp/view_list_selected]]');
+}
+.dir-rtl .fp-vb-details.checked {
+ background: url('[[pix:theme|fp/view_list_selected]]');
+ display: block;
+ float: left;
+ margin-right: 4px;
+}
+.fp-viewbar.disabled .fp-vb-details {
+ background: url('[[pix:theme|fp/view_list_inactive]]');
+}
+.fp-vb-tree {
+ background: url('[[pix:theme|fp/view_tree_active]]') no-repeat 0 0;
+ width: 23px;
+ height: 22px;
+ display: inline-block;
+ .ie7-inline-block();
+ margin-left: -4px;
+}
+.dir-rtl .fp-vb-tree {
+ background: url('[[pix:theme|fp/view_tree_active]]') no-repeat 0 0;
+ display: block;
+ float: left;
+ margin-right: 4px;
+}
+.fp-vb-tree.checked {
+ background: url('[[pix:theme|fp/view_tree_selected]]');
+}
+.dir-rtl .fp-vb-tree.checked {
+ background: url('[[pix:theme|fp/view_tree_selected]]');
+ display: block;
+ float: left;
+ margin-right: 4px;
+}
+.fp-viewbar.disabled .fp-vb-tree {
+ background: url('[[pix:theme|fp/view_tree_inactive]]');
+}
+.file-picker .fp-clear-left {
+ clear: left;
+}
+// over ride hover rule from core.css
+.dir-rtl .filemanager-toolbar .fp-vb-icons a:hover {
+ background: url('[[pix:theme|fp/view_icon_selected]]');
+}
+.dir-rtl .filemanager-toolbar .fp-vb-icons.checked a:hover {
+ background: url('[[pix:theme|fp/view_icon_active]]') no-repeat 0 0;
+}
+.dir-rtl .fp-vb-details a:hover {
+ background: none;
+ border: 20px solid black;
+}
+.dir-rtl .fp-vb-details.checked a:hover {
+ background: none;
+ border: 40px solid black;
+}
+.dir-rtl .fp-vb-tree a:hover {
+ background: none;
+ border: 30px solid black;
+}
+.dir-rtl .fp-vb-tree.checked a:hover {
+ background: none;
+ border: 50px solid black;
+}
+.file-picker .fp-pathbar {
+ display: table-row;
+}
+.fp-pathbar.empty {
+ display: none;
+}
+.fp-pathbar .fp-path-folder {
+ background: url('[[pix:theme|fp/path_folder]]') no-repeat 0 0;
+ width: 27px;
+ height: 12px;
+ margin-left: 4px;
+}
+.dir-rtl .fp-pathbar .fp-path-folder {
+ background: url('[[pix:theme|fp/path_folder_rtl]]') no-repeat right top;
+ width: auto;
+ height: 12px;
+ margin-left: 4px;
+}
+.dir-rtl .fp-pathbar span {
+ display: inline-block;
+ .ie7-inline-block();
+ float: right;
+ margin-left: 32px;
+}
+.fp-pathbar .fp-path-folder-name {
+ margin-left: 32px;
+ line-height: 20px;
+}
+.dir-rtl .fp-pathbar .fp-path-folder-name {
+ margin-right: 32px;
+ line-height: 20px;
+}
+// Icon view (File Picker and File Manager)
+.fp-iconview .fp-file {
+ float: left;
+ text-align: center;
+ position: relative;
+ margin: 10px 10px 35px;
+}
+.fp-iconview .fp-thumbnail {
+ min-width: 110px;
+ min-height: 110px;
+ line-height: 110px;
+ text-align: center;
+ border: 1px solid #FFFFFF;
+ display: block;
+}
+.fp-iconview .fp-thumbnail img {
+ border: 1px solid #ddd;
+ padding: 3px;
+ vertical-align: middle;
+ .box-shadow(1px 1px 2px 0 #ccc);
+}
+.fp-iconview .fp-thumbnail:hover {
+ background: #fff;
+ border: 1px solid #ddd;
+ .box-shadow(inset 0 0 10px 0px #ccc);
+}
+.fp-iconview .fp-filename-field {
+ height: 33px;
+ word-wrap: break-word;
+ overflow: hidden;
+ position: absolute;
+}
+.fp-iconview .fp-filename-field:hover {
+ overflow: visible;
+ z-index: 1000;
+}
+.fp-iconview .fp-filename-field .fp-filename {
+ background: #FFFFFF;
+ padding-top: 5px;
+ padding-bottom: 12px;
+ min-width: 112px;
+}
+.dir-rtl .fp-iconview .fp-file {
+ float: right;
+}
+// Table view (File Picker only)
+.file-picker .yui3-datatable table {
+ border: 0 solid #BBBBBB;
+ width: 100%;
+}
+#filesskin .file-picker .yui3-datatable-header {
+ background: #FFFFFF;
+ border-bottom: 1px solid #CCCCCC;
+ border-left: 0 solid #FFFFFF;
+ color: #555555;
+}
+#filesskin .file-picker .yui3-datatable-odd .yui3-datatable-cell {
+ background-color: #F6F6F6;
+ border-left: 0 solid #F6F6F6;
+}
+#filesskin .file-picker .yui3-datatable-even .yui3-datatable-cell {
+ background-color: #FFFFFF;
+ border-left: 0 solid #FFFFFF;
+}
+.dir-rtl .file-picker .yui3-datatable-header {
+ text-align: right;
+}
+// Tree view (File Manager only)
+
+// first or middle sibling, no children
+.file-picker .ygtvtn,
+.filemanager .ygtvtn {
+ background: url('[[pix:moodle|y/tn]]') 0 0 no-repeat;
+ width: 17px;
+ height: 22px;
+}
+.dir-rtl .file-picker .ygtvtn {
+ background: url('[[pix:moodle|y/tn_rtl]]') 0 0 no-repeat;
+ width: 17px;
+ height: 22px;
+}
+// first or middle sibling, collapsable
+.file-picker .ygtvtm,
+.filemanager .ygtvtm {
+ background: url('[[pix:moodle|y/tm]]') 0 10px no-repeat;
+ width: 13px;
+ height: 12px;
+ cursor: pointer;
+}
+// first or middle sibling, collapsable, hover
+.file-picker .ygtvtmh,
+.filemanager .ygtvtmh {
+ background: url('[[pix:moodle|y/tm]]') 0 10px no-repeat;
+ width: 13px;
+ height: 12px;
+ cursor: pointer;
+}
+// first or middle sibling, expandable
+.file-picker .ygtvtp,
+.filemanager .ygtvtp {
+ background: url('[[pix:moodle|y/tp]]') 0 10px no-repeat;
+ width: 13px;
+ height: 12px;
+ cursor: pointer;
+}
+.dir-rtl .file-picker .ygtvtp {
+ background: url('[[pix:moodle|y/tp_rtl]]') 0 10px no-repeat;
+ width: 13px;
+ height: 12px;
+ cursor: pointer;
+}
+// first or middle sibling, expandable, hover
+.file-picker .ygtvtph,
+.filemanager .ygtvtph {
+ background: url('[[pix:moodle|y/tp]]') 0 10px no-repeat;
+ width: 13px;
+ height: 22px;
+ cursor: pointer;
+}
+.dir-rtl .file-picker .ygtvtph {
+ background: url('[[pix:moodle|y/tp_rtl]]') 0 10px no-repeat;
+ width: 13px;
+ height: 22px;
+ cursor: pointer;
+}
+// last sibling, no children
+.file-picker .ygtvln,
+.filemanager .ygtvln {
+ background: url('[[pix:moodle|y/ln]]') 0 0 no-repeat;
+ width: 17px;
+ height: 22px;
+}
+.dir-rtl .file-picker .ygtvln {
+ background: url('[[pix:moodle|y/ln_rtl]]') 0 0 no-repeat;
+ width: 17px;
+ height: 22px;
+}
+// Last sibling, collapsable
+.file-picker .ygtvlm,
+.filemanager .ygtvlm {
+ background: url('[[pix:moodle|y/lm]]') 0 10px no-repeat;
+ width: 13px;
+ height: 12px;
+ cursor: pointer;
+}
+// Last sibling, collapsable, hover
+.file-picker .ygtvlmh,
+.filemanager .ygtvlmh {
+ background: url('[[pix:moodle|y/lm]]') 0 10px no-repeat;
+ width: 13px;
+ height: 12px;
+ cursor: pointer;
+}
+// Last sibling, expandable
+.file-picker .ygtvlp,
+.filemanager .ygtvlp {
+ background: url('[[pix:moodle|y/lp]]') 0 10px no-repeat;
+ width: 13px;
+ height: 12px;
+ cursor: pointer;
+}
+.dir-rtl .file-picker .ygtvlp {
+ background: url('[[pix:moodle|y/lp_rtl]]') 0 10px no-repeat;
+ width: 13px;
+ height: 12px;
+ cursor: pointer;
+}
+// Last sibling, expandable, hover
+.file-picker .ygtvlph,
+.filemanager .ygtvlph {
+ background: url('[[pix:moodle|y/lp]]') 0 10px no-repeat;
+ width: 13px;
+ height: 12px;
+ cursor: pointer;
+}
+.dir-rtl .file-picker .ygtvlph {
+ background: url('[[pix:moodle|y/lp_rtl]]') 0 10px no-repeat;
+ width: 13px;
+ height: 12px;
+ cursor: pointer;
+}
+// Loading icon
+.file-picker .ygtvloading,
+.filemanager .ygtvloading {
+ background: transparent url('[[pix:moodle|y/loading]]') 0 0 no-repeat;
+ width: 16px;
+ height: 22px;
+}
+// the style for the empty cells that are used for rendering the depth of the node
+.file-picker .ygtvdepthcell,
+.filemanager .ygtvdepthcell {
+ background: url('[[pix:moodle|y/vline]]') 0 0 no-repeat;
+ width: 17px;
+ height: 32px;
+}
+.file-picker .ygtvblankdepthcell,
+.filemanager .ygtvblankdepthcell {
+ width: 17px;
+ height: 22px;
+}
+a.ygtvspacer:hover {
+ color: transparent;
+ text-decoration: none;
+}
+.ygtvlabel,
+.ygtvlabel:link,
+.ygtvlabel:visited,
+.ygtvlabel:hover {
+ background-color: transparent;
+ cursor: pointer;
+ margin-left: 2px;
+ text-decoration: none;
+}
+.file-picker .ygtvfocus,
+.filemanager .ygtvfocus {
+ background-color: #EEEEEE;
+}
+.fp-filename-icon {
+ margin-top: 10px;
+ display: block;
+ position: relative;
+}
+.fp-icon {
+ float: left;
+ margin-top: -7px;
+ width: 24px;
+ height: 24px;
+ margin-right: 10px;
+ text-align: center;
+ line-height: 24px;
+}
+.dir-rtl .fp-icon {
+ float: right;
+}
+.fp-icon img {
+ max-height: 24px;
+ max-width: 24px;
+ vertical-align: middle;
+}
+.fp-filename {
+ padding-right: 10px;
+}
+.dir-rtl .fp-filename {
+ padding-left: 10px;
+}
+// Repositories Login on fp-content (File Picker only)
+
+.file-picker .fp-login-form {
+ height: 100%;
+ width: 100%;
+ display: table;
+}
+.file-picker .fp-login-form table {
+ margin: 0 auto;
+}
+.file-picker .fp-login-form p {
+ text-align: center;
+ margin-top: 3em;
+}
+.file-picker .fp-login-form .fp-login-input label {
+ text-align: right;
+ display: block;
+}
+.file-picker .fp-login-form .fp-login-input .input {
+ text-align: left;
+}
+.file-picker .fp-login-form input[type="checkbox"]{
+ width: 15px;
+ height: 15px;
+}
+// Upload on fp-content (File Picker only)
+.file-picker .fp-upload-form {
+ height: 100%;
+ width: 100%;
+ display: table;
+}
+.file-picker .fp-upload-form table {
+ margin: 0 auto;
+}
+// File exists dialogue on Upload (File Picker only)
+.file-picker.fp-dlg {
+ text-align: center;
+}
+.file-picker.fp-dlg .fp-dlg-text {
+ padding: 30px 20px 10px;
+ font-size: 12px;
+}
+.file-picker.fp-dlg .fp-dlg-buttons {
+ margin: 0 20px;
+}
+// Error dialogue on Upload (File Picker only)
+.file-picker.fp-msg {
+ text-align: center;
+}
+.file-picker.fp-msg .fp-msg-text {
+ padding: 40px 20px 10px 20px;
+ min-width: 200px;
+ max-width: 500px;
+ max-height: 300px;
+ overflow: auto;
+ font-size: 12px;
+}
+.file-picker.fp-msg.fp-msg-error .fp-msg-text {
+ padding: 40px 20px 10px 20px;
+ font-size: 12px;
+}
+// Error on fp-content (File Picker only)
+.file-picker .fp-content-error {
+ height: 100%;
+ width: 100%;
+ display: table;
+ text-align: center;
+}
+.file-picker .fp-content-error .fp-error {
+ height: 100%;
+ width: 100%;
+ display: table-cell;
+ vertical-align: middle;
+ padding: 40px 20px 10px 20px;
+ font-size: 12px;
+}
+// Lazy loading on fp-content (File Picker only)
+.file-picker .fp-nextpage {
+ clear: both;
+}
+.file-picker .fp-nextpage .fp-nextpage-loading {
+ display: none;
+}
+.file-picker .fp-nextpage.loading .fp-nextpage-link {
+ display: none;
+}
+.file-picker .fp-nextpage.loading .fp-nextpage-loading {
+ display: block;
+ text-align: center;
+ height: 100px;
+ padding-top: 50px;
+}
+// Select Dialogue (File Picker and File Manager)
+.file-picker.fp-select {
+ width: 420px;
+}
+.fp-select form {
+ padding: 20px 20px 0;
+}
+.fp-select .fp-select-loading {
+ text-align: center;
+ margin-top: 20px;
+}
+.fp-select .fp-hr {
+ clear: both;
+ height: 1px;
+ background-color: #FFFFFF;
+ border-bottom: 1px solid #BBBBBB;
+ width: auto;
+ margin: 10px 0;
+}
+.fp-select table {
+ padding: 0 0 10px;
+}
+.fp-select table .mdl-right {
+ min-width: 84px;
+}
+.fp-select .fp-reflist .mdl-right {
+ vertical-align: top;
+}
+.fp-select .fp-select-buttons {
+ float: right;
+}
+.fp-select .fp-info {
+ display: block;
+ clear: both;
+ padding: 1px 20px 0;
+}
+.fp-select .fp-thumbnail {
+ float: left;
+ min-width: 110px;
+ min-height: 110px;
+ line-height: 110px;
+ text-align: center;
+ margin: 10px 20px 0 0;
+ background: #fff;
+ border: 1px solid #ddd;
+ .box-shadow(inset 0 0 10px 0 #ccc);
+}
+.fp-select .fp-thumbnail img {
+ border: 1px solid #DDDDDD;
+ padding: 3px;
+ vertical-align: middle;
+ margin: 10px;
+}
+.fp-select .fp-fileinfo {
+ display: inline-block;
+ .ie7-inline-block();
+ margin-top: 10px;
+}
+.file-picker.fp-select .fp-fileinfo {
+ max-width: 240px;
+}
+.fp-select .fp-fileinfo div {
+ padding-bottom: 5px;
+}
+.file-picker.fp-select .uneditable {
+ display: none;
+}
+.file-picker.fp-select .fp-select-loading {
+ display: none;
+}
+.file-picker.fp-select.loading .fp-select-loading {
+ display: block;
+}
+.file-picker.fp-select.loading form {
+ display: none;
+}
+.fp-select .fp-dimensions.fp-unknown {
+ display: none;
+}
+// File Manager
+.filemanager-loading{
+ display: none;
+}
+.jsenabled .filemanager-loading{
+ display: block;
+ margin-top: 100px;
+}
+.filemanager.fm-loading .filemanager-toolbar,
+.filemanager.fm-loading .fp-pathbar,
+.filemanager.fm-loading .filemanager-container,
+.filemanager.fm-loaded .filemanager-loading,
+.filemanager.fm-maxfiles .fp-btn-add,
+.filemanager.fm-maxfiles .dndupload-message,
+.filemanager.fm-noitems .fp-btn-download,
+.filemanager .fm-empty-container,
+.filemanager.fm-noitems .filemanager-container .fp-content {
+ display: none;
+}
+.filemanager .filemanager-updating {
+ display: none;
+ text-align: center;
+}
+.filemanager.fm-updating .filemanager-updating {
+ display: block;
+ margin-top: 37px;
+}
+.filemanager.fm-updating .fm-content-wrapper,
+.filemanager.fm-nomkdir .fp-btn-mkdir,
+.fitem.disabled .filemanager .filemanager-toolbar,
+.fitem.disabled .filemanager .fp-pathbar,
+.fitem.disabled .filemanager .fp-restrictions,
+.fitem.disabled .filemanager .fm-content-wrapper {
+ display: none;
+}
+// File Manager layout
+.fp-restrictions{
+ text-align: right;
+}
+.filemanager .fp-navbar {
+ background: #F2F2F2;
+ border: 1px solid #BBBBBB;
+ border-bottom: none;
+}
+.filemanager-toolbar{
+ padding: 5px 8px;
+ min-height: 22px;
+}
+.fp-pathbar {
+ border-top: 1px solid #BBBBBB;
+ padding: 5px 8px 1px;
+ min-height: 20px;
+}
+.filemanager .fp-pathbar.empty {
+ display: none;
+}
+.filepicker-filelist,
+.filemanager-container {
+ background: #FFFFFF;
+ clear: both;
+ overflow: auto;
+ border: 1px solid #BBBBBB;
+ min-height: 140px;
+ position: relative;
+}
+.filemanager .fp-content{
+ overflow: auto;
+ max-height: 472px;
+ min-height: 157px;
+}
+.filemanager-container,
+.filepicker-filelist {
+ overflow: hidden;
+}
+.fitem.disabled .filepicker-filelist,
+.fitem.disabled .filemanager-container {
+ background-color: #EBEBE4;
+}
+.fitem.disabled .fp-btn-choose {
+ .muted
+}
+.fitem.disabled .filepicker-filelist .filepicker-filename {
+ display: none;
+}
+// Icon view (File Manager only)
+.fp-iconview .fp-reficons1 {
+ position: absolute;
+ height: 100%;
+ width: 100%;
+ top: 0;
+ left: 0;
+ z-index: 1000;
+}
+.fp-iconview .fp-reficons2 {
+ position: absolute;
+ height: 100%;
+ width: 100%;
+ top: 0;
+ left: 0;
+ z-index: 1001;
+}
+.fp-iconview .fp-file.fp-hasreferences .fp-reficons1 {
+ background: url('[[pix:theme|fp/link]]') no-repeat;
+ background-position: bottom right;
+}
+.fp-iconview .fp-file.fp-isreference .fp-reficons2 {
+ background: url('[[pix:theme|fp/alias]]') no-repeat;
+ background-position: bottom left;
+}
+.filemanager .fp-iconview .fp-file.fp-originalmissing .fp-thumbnail img {
+ display: none;
+}
+.filemanager .fp-iconview .fp-file.fp-originalmissing .fp-thumbnail {
+ background: url([[pix:s/dead]]) no-repeat;
+ background-position: center center;
+}
+// Table view (File Manager only)
+.filemanager .yui3-datatable table {
+ border: 0 solid #BBBBBB;
+ width: 100%;
+}
+.filemanager .yui3-datatable-header {
+ background: #FFFFFF!important;
+ border-bottom: 1px solid #CCCCCC!important;
+ border-left: 0 solid #FFFFFF!important;
+ color: #555555!important;
+}
+.filemanager .yui3-datatable-odd .yui3-datatable-cell {
+ background-color: #F6F6F6!important;
+ border-left: 0 solid #F6F6F6;
+}
+.filemanager .yui3-datatable-even .yui3-datatable-cell {
+ background-color: #FFFFFF!important;
+ border-left: 0 solid #FFFFFF;
+}
+.filemanager .fp-filename-icon.fp-hasreferences .fp-reficons1{
+ background: url('[[pix:theme|fp/link_sm]]') no-repeat 0 0;
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ top: 8px;
+ left: 17px;
+ z-index: 1000;
+}
+.filemanager .fp-filename-icon.fp-isreference .fp-reficons2 {
+ background: url('[[pix:theme|fp/alias_sm]]') no-repeat 0 0;
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ top: 9px;
+ left: -6px;
+ z-index: 1001;
+}
+// Folder Context Menu (File Manager only)
+.filemanager .fp-contextmenu {
+ display: none;
+}
+.filemanager .fp-iconview .fp-folder.fp-hascontextmenu .fp-contextmenu {
+ display: block;
+ position: absolute;
+ right: 7px;
+ bottom: 5px;
+ z-index: 2000;
+}
+.filemanager .fp-treeview .fp-folder.fp-hascontextmenu .fp-contextmenu,
+.filemanager .fp-tableview .fp-folder.fp-hascontextmenu .fp-contextmenu {
+ display: inline;
+ position: absolute;
+ left: 14px;
+ margin-right: -20px;
+ top: 6px;
+}
+// Drag and drop support (filemanager and filepicker form elements)
+.filepicker-filelist .filepicker-container,
+.filemanager.fm-noitems .fm-empty-container {
+ display: block;
+ position: absolute;
+ top: 10px;
+ bottom: 10px;
+ left: 10px;
+ right: 10px;
+ border: 2px dashed #BBBBBB;
+ padding-top: 85px;
+ text-align: center;
+ z-index: 3000;
+}
+.filepicker-filelist .dndupload-target,
+.filemanager-container .dndupload-target {
+ background: #FFFFFF;
+ position: absolute;
+ top: 10px;
+ bottom: 10px;
+ left: 10px;
+ right: 10px;
+ border: 2px dashed #fb7979;
+ padding-top: 85px;
+ text-align: center;
+ z-index: 3000;
+ .box-shadow(0px 0 0 10px #fff);
+}
+.filepicker-filelist.dndupload-over .dndupload-target,
+.filemanager-container.dndupload-over .dndupload-target {
+ background: #FFFFFF;
+ position: absolute;
+ top: 10px;
+ bottom: 10px;
+ left: 10px;
+ right: 10px;
+ border: 2px dashed #6c8cd3;
+ padding-top: 85px;
+ text-align: center;
+ z-index: 3000;
+}
+.dndupload-message {
+ display: none;
+}
+.dndsupported .dndupload-message {
+ display: inline;
+}
+.dnduploadnotsupported-message {
+ display: none;
+}
+.dndnotsupported .dnduploadnotsupported-message {
+ display: inline;
+}
+.dndupload-target {
+ display: none;
+}
+.dndsupported .dndupload-ready .dndupload-target {
+ display: block;
+}
+.dndupload-uploadinprogress {
+ display: none;
+ text-align: center;
+}
+.dndupload-uploading .dndupload-uploadinprogress {
+ display: block;
+}
+.dndupload-arrow {
+ background: url([[pix:theme|fp/dnd_arrow]]) center no-repeat;
+ width: 100%;
+ height: 80px;
+ position: absolute;
+ margin-left: -28px;
+ top: 5px;
+}
+.fitem.disabled .filepicker-container,
+.fitem.disabled .fm-empty-container {
+ display: none;
+}
+.dndupload-progressbars {
+ padding: 10px;
+ display: none;
+}
+.dndupload-inprogress .dndupload-progressbars {
+ display: block;
+}
+.dndupload-inprogress .fp-content {
+ display: none;
+}
+.filemanager.fm-noitems .dndupload-inprogress .fm-empty-container {
+ display: none;
+}
+.filepicker-filelist.dndupload-inprogress .filepicker-container {
+ display: none;
+}
+.filepicker-filelist.dndupload-inprogress a {
+ display: none;
+}
+// Select Dialogue (File Manager only)
+.filemanager.fp-select .fp-select-loading {
+ display: none;
+}
+.filemanager.fp-select.loading .fp-select-loading {
+ display: block;
+}
+.filemanager.fp-select.loading form {
+ display: none;
+}
+.filemanager.fp-select.fp-folder .fp-license,
+.filemanager.fp-select.fp-folder .fp-author,
+.filemanager.fp-select.fp-file .fp-file-unzip,
+.filemanager.fp-select.fp-folder .fp-file-unzip,
+.filemanager.fp-select.fp-file .fp-file-zip,
+.filemanager.fp-select.fp-zip .fp-file-zip {
+ display: none;
+}
+.filemanager.fp-select .fp-file-setmain {
+ display: none;
+}
+.filemanager.fp-select.fp-cansetmain .fp-file-setmain {
+ display: inline-block;
+ .ie7-inline-block();
+}
+.filemanager .fp-mainfile .fp-filename {
+ font-weight: bold;
+}
+.filemanager.fp-select.fp-folder .fp-file-download {
+ display: none;
+}
+// to be implemented
+.fm-operation {
+ font-weight: bold;
+}
+.filemanager.fp-select .fp-original.fp-unknown,
+.filemanager.fp-select .fp-original .fp-originloading {
+ display: none;
+}
+.filemanager.fp-select .fp-original.fp-loading .fp-originloading {
+ display: inline;
+}
+.filemanager.fp-select .fp-reflist.fp-unknown,
+.filemanager.fp-select .fp-reflist .fp-reflistloading {
+ display: none;
+}
+.filemanager.fp-select .fp-refcount {
+ max-width: 265px;
+}
+.filemanager.fp-select .fp-reflist.fp-loading .fp-reflistloading {
+ display: inline;
+}
+.filemanager.fp-select .fp-reflist .fp-value {
+ background: #F9F9F9;
+ border: 1px solid #BBBBBB;
+ padding: 8px 7px;
+ margin: 0;
+ max-width: 265px;
+ max-height: 75px;
+ overflow: auto;
+}
+.filemanager.fp-select .fp-reflist .fp-value li {
+ padding-bottom: 7px;
+}
+// Create folder dialogue (File Manager only)
+.filemanager.fp-mkdir-dlg {
+ text-align: center;
+}
+.filemanager.fp-mkdir-dlg .fp-mkdir-dlg-text {
+ text-align: left;
+ margin: 20px;
+}
+.dir-rtl .filemanager .fp-mkdir-dlg p {
+ text-align: right;
+}
+// Confirm dialogue for delete (File Manager only)
+.filemanager.fp-dlg {
+ text-align: center;
+}
+.filemanager.fp-dlg .fp-dlg-text {
+ padding: 0 10px;
+ min-width: 200px;
+ max-width: 340px;
+ max-height: 300px;
+ overflow: auto;
+ line-height: 22px;
+ margin: 40px 20px 20px;
+ font-size: 12px;
+}
+// file picker search dialog
+.file-picker div.bd {
+ text-align: left;
+}
+// RTL Overrides
+.dir-rtl .file-picker div.bd,
+.dir-rtl .file-picker .fp-pathbar,
+.dir-rtl .file-picker .fp-list,
+.dir-rtl #filemenu .yuimenuitemlabel,
+.dir-rtl .filemanager-container .yui3-skin-sam .yui3-datatable-header {
+ text-align: right;
+}
+.dir-rtl .filepicker .yui-layout-unit-left {
+ left: 500px;
+}
+.dir-rtl .filepicker .yui-layout-unit-center {
+ left: 0;
+}
diff --git a/theme/bootstrap/less/moodle/forms.less b/theme/bootstrap/less/moodle/forms.less
new file mode 100644
index 00000000000..715762cbbf7
--- /dev/null
+++ b/theme/bootstrap/less/moodle/forms.less
@@ -0,0 +1,318 @@
+/**
+ * Moodle forms HTML isn't changeable via renderers (yet?) so this
+ * .less file imports styles from the bootstrap @variables file and
+ * adds them to the existing Moodle form CSS ids and classes.
+ *
+ */
+
+form {
+ margin: 0;
+}
+.mform fieldset .advancedbutton {
+ text-align: right;
+}
+.mform fieldset.group {
+ margin-bottom: 0
+}
+.mform fieldset.error {
+ border: 1px solid @errorText;
+}
+.mform fieldset.collapsible legend a.fheader {
+ padding: 0 5px 0 20px;
+ margin-left: -20px;
+ background: url([[pix:t/expanded]]) 2px center no-repeat;
+}
+.mform fieldset.collapsed legend a.fheader {
+ background: url([[pix:t/collapsed]]) 2px center no-repeat;
+}
+
+.jsenabled .mform .collapsed .fcontainer {
+ display: none;
+}
+.mform .collapsible-actions {
+ display: none;
+ text-align: right;
+}
+.dir-rtl .mform .collapsible-actions {
+ text-align: left;
+}
+.jsenabled .mform .collapsible-actions {
+ display: block;
+}
+.mform .fitem .fitemtitle div {
+ display: inline;
+}
+.loginpanel .error,
+.mform .error {
+ color: @errorText;
+}
+.mform .fdescription.required {
+ margin-left: @horizontalComponentOffset;
+}
+.mform .fpassword .unmask {
+ display: inline-block;
+ margin-left: 0.5em;
+ & > input {
+ margin: 0;
+ }
+ & > label {
+ display: inline-block;
+ }
+}
+.mform .ftextarea #id_alltext {
+ width: 100%;
+}
+.mform ul.file-list {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+}
+.mform label .req,
+.mform label .adv {
+ cursor: help;
+}
+.mform .fcheckbox input {
+ margin-left: 0;
+ margin-top: 5px;
+}
+.mform .fitem fieldset.fgroup label,
+.mform fieldset.fdate_selector label {
+ display: inline;
+ float: none;
+ width: auto;
+}
+.mform .ftags label.accesshide {
+ display: block;
+ position: static;
+}
+.mform .ftags select {
+ margin-bottom: 0.7em;
+ min-width: 22em;
+}
+.mform .helplink img {
+ margin: 0 .45em;
+ padding: 0;
+}
+.mform legend .helplink img {
+ margin: 0 .2em;
+}
+.singleselect label {
+ margin-right: .3em;
+}
+.dir-rtl .singleselect label {
+ margin-left: .3em;
+ margin-right: 0;
+}
+input#id_externalurl {
+ direction: ltr;
+}
+#portfolio-add-button {
+ display: inline;
+}
+
+// copying in Bootstrap styles
+.form-item,
+.mform .fitem {
+ .form-horizontal .control-group;
+ margin-bottom: 10px;
+ // Theres's a mysterious extra 10px inside this item,
+ // so reduce margin by 10px from 20px standard to compensate;
+}
+.form-item .form-label,
+.mform .fitem div.fitemtitle {
+ .form-horizontal .control-label
+}
+.form-defaultinfo,
+.form-label .form-shortname {
+ .muted;
+}
+.form-label .form-shortname {
+ font-size: @fontSizeMini;
+ display: block;
+}
+.dir-rtl .form-label .form-shortname {
+ text-align: left;
+}
+.form-item .form-setting,
+.form-item .form-description,
+.mform .fitem .felement,
+#page-mod-forum-search .c1 {
+ .form-horizontal .controls
+}
+
+
+.formsettingheading {
+ .form-horizontal .help-block
+}
+// Moodle doesn't differentiate between what Bootstrap calls
+// .uneditable-inputs and form help text. Styling them both as
+// uneditable looks ugly, styling both as form help is fairly
+// subtle in it's impact. Going for the latter as the best option.
+.form-item .form-description,
+.felement.fstatic {
+ .help-block;
+ padding-top: 5px;
+}
+.form-item .form-description {
+ padding-top: 0;
+}
+
+// Pale grey container for submit buttons.
+table#form td.submit,
+.form-buttons,
+.path-admin .buttons,
+#fitem_id_submitbutton,
+.fp-content-center form + div,
+div.backup-section + form,
+#fgroup_id_buttonar {
+ .form-actions;
+ padding-left: 0;
+}
+.path-admin .buttons,
+.form-buttons {
+ padding-left: @horizontalComponentOffset;
+ // add back the padding it would usually get from being inside a .form-horizontal
+}
+
+.form-item .form-setting .form-checkbox.defaultsnext {
+ // need to specify .defaultsnext and the .form-checkbox class
+ // is somewhat randomly re-used on various actual checkboxes
+ // throughout the admin forms, instead of on the wrapper div
+ margin-top: 5px; // Push down checkboxes to align.
+ display: inline-block; // So above style sticks.
+}
+
+#adminsettings h3.main {
+ // Copied from bootstrap/forms.less tag 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;
+}
+.mform legend a,
+.mform legend a:hover {
+ color: @grayDark;
+ text-decoration: none;
+}
+.dir-rtl .mform .fitem .fitemtitle {
+ float: right;
+}
+
+.dir-rtl .mform .fitem .felement {
+ margin-right: 16%;
+ margin-left: auto;
+ text-align: right;
+}
+// I think this could be avoided (or at least tidied up) ifr
+// we used HTML5 input types like url, phone, email, number etc.
+.dir-rtl .mform .fitem .felement input[name=email],
+.dir-rtl .mform .fitem .felement input[name=email2],
+.dir-rtl .mform .fitem .felement input[name=url],
+.dir-rtl .mform .fitem .felement input[name=idnumber],
+.dir-rtl .mform .fitem .felement input[name=phone1],
+.dir-rtl .mform .fitem .felement input[name=phone2] {
+ text-align: left;
+ direction: ltr;
+}
+.dir-rtl #id_s__pathtodu,
+.dir-rtl #id_s__aspellpath,
+.dir-rtl #id_s__pathtodot,
+.dir-rtl #id_s__supportemail,
+.dir-rtl #id_s__supportpage,
+.dir-rtl #id_s__sessioncookie,
+.dir-rtl #id_s__sessioncookiepath,
+.dir-rtl #id_s__sessioncookiedomain,
+.dir-rtl #id_s__proxyhost,
+.dir-rtl #id_s__proxyuser,
+.dir-rtl #id_s__proxypassword,
+.dir-rtl #id_s__proxybypass,
+.dir-rtl #id_s__jabberhost,
+.dir-rtl #id_s__jabberserver,
+.dir-rtl #id_s__jabberusername,
+.dir-rtl #id_s__jabberpassword,
+.dir-rtl #id_s__additionalhtmlhead,
+.dir-rtl #id_s__additionalhtmltopofbody,
+.dir-rtl #id_s__additionalhtmlfooter,
+.dir-rtl #id_s__docroot,
+.dir-rtl #id_s__filter_tex_latexpreamble,
+.dir-rtl #id_s__filter_tex_latexbackground,
+.dir-rtl #id_s__filter_tex_pathlatex,
+.dir-rtl #id_s__filter_tex_pathdvips,
+.dir-rtl #id_s__filter_tex_pathconvert,
+.dir-rtl #id_s__blockedip,
+.dir-rtl #id_s__pathtoclam,
+.dir-rtl #id_s__quarantinedir,
+.dir-rtl #id_s__sitepolicy,
+.dir-rtl #id_s__sitepolicyguest,
+.dir-rtl #id_s__cronremotepassword,
+.dir-rtl #id_s__allowedip,
+.dir-rtl #id_s__blockedip,
+.dir-rtl #id_s_enrol_meta_nosyncroleids,
+.dir-rtl #id_s_enrol_ldap_host_url,
+.dir-rtl #id_s_enrol_ldap_ldapencoding,
+.dir-rtl #id_s_enrol_ldap_bind_dn,
+.dir-rtl #id_s_enrol_ldap_bind_pw,
+.dir-rtl #admin-emoticons .form-text,
+.dir-rtl #admin-role_mapping input[type=text],
+.dir-rtl #id_s_enrol_paypal_paypalbusiness,
+.dir-rtl #id_s_enrol_flatfile_location,
+#page-admin-setting-enrolsettingsflatfile.dir-rtl input[type=text],
+#page-admin-setting-enrolsettingsdatabase.dir-rtl input[type=text],
+#page-admin-auth-db.dir-rtl input[type=text] {
+ direction: ltr;
+}
+#page-admin-setting-enrolsettingsflatfile.dir-rtl .informationbox {
+ direction: ltr;
+ text-align: left;
+}
+#page-admin-grade-edit-scale-edit.dir-rtl .error input#id_name {
+ margin-right: 170px;
+}
+/* Install Process' text fields Forms, should always be justified to the left */
+#installform #id_wwwroot,
+#installform #id_dirroot,
+#installform #id_dataroot,
+#installform #id_dbhost,
+#installform #id_dbname,
+#installform #id_dbuser,
+#installform #id_dbpass,
+#installform #id_prefix {
+ direction: ltr;
+}
+
+.mdl-right > label {
+ // Workaround for repository pop-up because the : are outside the label,
+ // can/should be fixed in filemanager renderers
+ display: inline-block;
+}
+
+// checkbox labels. Bootstrap puts the associated checkbox inside the label
+// Moodle puts it beside the label, so wee need to make it inline-block
+// to keep it on the same horizontal level
+input[type="radio"] + label,
+input[type="checkbox"] + label {
+ display: inline;
+ padding-left: 0.2em;
+}
+input[type="radio"],
+input[type="checkbox"] {
+ margin-top: -4px; // dodgy hack, must be better way
+}
+.singleselect {
+ display: inline-block;
+ form,
+ select{
+ margin: 0;
+ }
+}
+.form-item .form-label label {
+ margin-bottom: 0;
+}
+.felement.ffilepicker {
+ margin-top: 5px;
+}
diff --git a/theme/bootstrap/less/moodle/grade.less b/theme/bootstrap/less/moodle/grade.less
new file mode 100644
index 00000000000..3b776d2112b
--- /dev/null
+++ b/theme/bootstrap/less/moodle/grade.less
@@ -0,0 +1,588 @@
+/* grades.less */
+.allcoursegrades {
+ width: 100%;
+ text-align: right;
+ padding: 4px 0 5px 0;
+}
+
+.path-grade-edit .buttons {
+ text-align: center;
+}
+.path-grade-edit-tree .idnumber {
+ margin-left: 15px;
+}
+.path-grade-edit-tree .movetarget {
+ position: relative;
+ width: 80px;
+ height: 16px;
+}
+.path-grade-edit-tree ul#grade_tree {
+ width: auto;
+}
+.path-grade-edit-tree ul#grade_tree li {
+ list-style: none;
+}
+.path-grade-edit-tree ul#grade_tree li.category {
+ margin-bottom: 6px;
+}
+
+.path-grade-edit-tree .iconsmall {
+ margin-left: 4px;
+}
+
+#grade-report-toggles {
+ text-align: center;
+}
+#grade-aggregation-help dt {
+ margin-top: 15px;
+}
+#grade-aggregation-help dd.example {
+ margin-top: 7px;
+}
+#grade-aggregation-help code {
+ display: block;
+ margin-top: 7px;
+}
+.gradeexportlink {
+ padding: 2em;
+ text-align: center;
+}
+
+.gradetreebox {
+ margin-top: 10px;
+ overflow-x: auto;
+ overflow-y: hidden;
+}
+.gradetreebox table {
+ font-size: 0.8em;
+ width: 100%;
+}
+.gradetreebox td.colspan,
+.gradetreebox tr.category .cell {
+ background-color: #DDD;
+}
+.gradetreebox th.actions {
+ white-space: nowrap;
+ width: 105px;
+}
+.gradetreebox td.name {
+ white-space: nowrap;
+}
+.gradetreebox td.name h4 {
+ display: inline;
+}
+.gradetreebox td.range {
+ white-space: nowrap;
+}
+.gradetreebox span.actionlink {
+ color: blue;
+}
+.gradetreebox span.actionlink:hover {
+ text-decoration: underline;
+ cursor: pointer;
+}
+.gradetreebox img.iconsmall {
+ margin-left: 4px;
+}
+.gradetreebox img.icon {
+ margin-right: 5px;
+}
+.gradetreebox #gradetreesubmit {
+ margin-bottom: 1em;
+ text-align: center;
+}
+.gradetreebox .hidden {
+ display: none;
+}
+
+/** Advanced grading **/
+#page-grade-grading-manage #activemethodselector {
+ text-align: center;
+ margin-bottom: 1em;
+}
+#page-grade-grading-manage #activemethodselector select {
+ margin: 0 1em;
+}
+#page-grade-grading-manage .actions {
+ text-align: center;
+}
+#page-grade-grading-manage .action {
+ display: inline-block;
+ width: 150px;
+ background-color: #eee;
+ border: 2px solid #ccc;
+ margin: 0.5em;
+ padding: 0.5em;
+ text-align: center;
+ .border-radius(5px);
+}
+#page-grade-grading-manage .action:hover {
+ text-decoration: none;
+ background-color: #F6F6F6;
+}
+#page-grade-grading-manage #actionresultmessagebox {
+ background-color: #D2EBFF;
+ width: 60%;
+ margin: 1em auto;
+ text-align: center;
+ padding: 0.5em;
+ border: 2px solid #CCC;
+ text-align: center;
+ .border-radius(5px);
+ position: relative;
+}
+#page-grade-grading-manage #actionresultmessagebox span {
+ position: absolute;
+ right: 0;
+ top: -1.2em;
+ color: #666;
+font-size: 80%}
+#page-grade-grading-manage .definition-name .status {
+ font-weight: normal;
+ text-transform: uppercase;
+ font-size: 60%;
+ padding: 0.25em;
+ border: 1px solid #EEE;
+ .border-radius(5px);
+}
+#page-grade-grading-manage .definition-name .status.ready {
+ background-color: #e7f1c3;
+ border-color: #AAEEAA;
+}
+#page-grade-grading-manage .definition-name .status.draft {
+ background-color: #f3f2aa;
+ border-color: #EEEE22;
+}
+#page-grade-grading-manage .definition-preview {
+ width: 50%;
+ margin: 1em auto;
+ border: 1px solid #EEE;
+ padding: 1em;
+}
+#page-grade-grading-pick .template-name {
+ clear: both;
+ padding: 3px;
+ background-color: #F6F6F6;
+}
+#page-grade-grading-pick .template-name .type {
+ font-weight: normal;
+ text-transform: uppercase;
+ font-size: 60%;
+ padding: 0.25em;
+ border: 1px solid #eee;
+ .border-radius(5px);
+}
+#page-grade-grading-pick .template-name .type.shared {
+ background-color: #e7f1c3;
+ border-color: #AAEEAA;
+}
+#page-grade-grading-pick .template-name .type.ownform {
+ background-color: #d2ebff;
+ border-color: #AACCEE;
+}
+#page-grade-grading-pick .template-description {
+ margin-bottom: 1em;
+ padding: 0 2em 0 0px;
+ margin-right: 51%;
+}
+#page-grade-grading-pick .template-preview {
+ width: 50%;
+ float: right;
+ border: 1px solid #EEE;
+ padding: 1em;
+ margin-bottom: 1em;
+}
+#page-grade-grading-pick .template-actions {
+ margin-bottom: 1em;
+ padding: 0 2em 0 0px;
+ margin-right: 51%;
+}
+#page-grade-grading-pick .template-actions .action {
+ display: inline-block;
+ margin: 0.25em;
+ padding: 0.25em;
+ border: 2px solid transparent;
+}
+#page-grade-grading-pick .template-actions .action.pick {
+ background-color: #EEE;
+ border: 2px solid #CCC;
+ .border-radius(3px);
+}
+#page-grade-grading-pick .template-actions .action:hover {
+ text-decoration: none;
+ background-color: #F6F6F6;
+ border: 2px solid #CCC;
+ .border-radius(3px);
+}
+#page-grade-grading-pick .template-actions .action .action-text {
+ display: inline;
+}
+#page-grade-grading-pick .template-actions .action .action-icon {
+ margin: 0 3px;
+}
+#page-grade-grading-pick .template-preview-confirm {
+ width: 50%;
+ margin: 1em auto;
+ border: 1px solid #EEE;
+ padding: 1em;
+}
+#page-grade-grading-pick .singlebutton {
+ clear: both;
+}
+
+// replaces grades/report/grader/styles.css
+
+table#user-grades tr td.overridden {
+ background-color:#F3E4C0;
+}
+table#user-grades tr.odd td.overridden {
+ background-color:#EFD9A4;
+}
+table#user-grades tr td.ajaxoverridden {
+ background-color:#FFE3A0;
+}
+table#user-grades tr.odd td.ajaxoverridden {
+ background-color:#FFDA83;
+}
+table#user-grades tr.even td.excluded {
+ background-color:#EABFFF;
+}
+table#user-grades tr.odd td.excluded {
+ background-color:#E5AFFF;
+}
+
+table#user-grades tr.groupavg td.cell {
+ background-color:#efffef;
+ font-weight:700;
+ color:#006400;
+}
+
+table#user-grades td.cat,
+table#user-grades td.course {
+ font-weight:700;
+}
+
+.path-grade-report-grader #overDiv table {
+margin:0;
+}
+.path-grade-report-grader #overDiv table td.feedback {
+border:0;
+}
+.path-grade-report-grader #overDiv .feedback {
+font-size: @fontSizeMini;
+background-color:#ABF;
+font-weight:400;
+}
+.path-grade-report-grader #overDiv .caption {
+font-size: @fontSizeMini;
+background-color:#56C;
+color:#CCF;
+font-weight:700;
+}
+.path-grade-report-grader #overDiv .intersection {
+font-size: @fontSizeMini;
+background-color:#ABF;
+color:#000;
+font-weight:400;
+}
+.path-grade-report-grader #overDiv .intersectioncaption {
+background-color:#56C;
+color:#CCF;
+font-weight:700;
+}
+
+.path-grade-report-grader div.gradeparent,
+table#user-grades td.ajax {
+ text-align:left;
+}
+
+.path-grade-report-grader.dir-rtl div.gradeparent,
+.dir-rtl table#user-grades td.ajax {
+ text-align: right;
+}
+
+table#user-grades td,
+table#user-grades th {
+ text-align: right;
+}
+
+table#user-grades .courseitem {
+ white-space: nowrap;
+ text-align: right;
+}
+table#user-grades th.category,
+table#user-grades th#studentheader,
+table#user-grades th.user {
+ text-align: left;
+}
+
+div.gradertoggle {
+ display: inline;
+ margin-left: 20px;
+}
+
+table#user-grades .userpic {
+ margin-right: 10px;
+}
+
+table#user-grades .quickfeedback {
+ border:1px dashed #000;
+ margin-left: 10px;
+}
+.dir-rtl table#user-grades .quickfeedback {
+ margin-left: 0;
+ margin-right: 10px;
+}
+
+.path-grade-report-grader #siteconfiglink {
+ text-align:right;
+}
+
+table#user-grades .hidden,
+table#user-grades .hidden a {
+ .muted
+}
+
+table#user-grades .datesubmitted {
+ font-size: @fontSizeMini;
+}
+
+.path-grade-report-grader span.inclusion-links {
+ margin: 0 5px 0 10px;
+}
+
+
+.path-grade-report-grader th.user img.userpicture {
+ margin-right: 0.5em;
+}
+
+.path-grade-report-grader a.quickedit {
+line-height:1em;
+display:block;
+float:right;
+clear:none;
+font-size:9px;
+background-color:transparent;
+margin:.1em 0 0;
+}
+
+.path-grade-report-grader a.quickedit2 {
+display:block;
+float:right;
+clear:none;
+background-color:transparent;
+margin:1.3em 0 0;
+}
+
+.path-grade-report-grader table#quick_edit {
+border:1px solid #cecece;
+margin:0 auto;
+}
+
+.path-grade-report-grader table#quick_edit td {
+vertical-align:middle;
+border:1px solid #cecece;
+text-align:left;
+margin:0;
+padding:5px;
+}
+
+.path-grade-report-grader table#quick_edit td img {
+border:3px double #cecece;
+vertical-align:middle;
+padding:0;
+}
+
+.path-grade-report-grader table#quick_edit td.fullname {
+border-left:0;
+padding-left:5px;
+}
+
+.path-grade-report-grader table#quick_edit td.picture {
+border-right:0;
+}
+
+.path-grade-report-grader table#quick_edit td.finalgrade input {
+width:5em;
+}
+
+.path-grade-report-grader h1 {
+text-align:center;
+clear:both;
+}
+
+.path-grade-report-grader input.center {
+margin:10px auto 0;
+}
+
+.path-grade-report-grader .lefttbody {
+ width:auto;
+ vertical-align:middle;
+}
+
+.path-grade-report-grader .left_scroller {
+ float:left;
+ clear:none;
+ #fixed_column .heading th.header,
+ #fixed_column td,
+ #fixed_column th {
+ height: 4em;
+ }
+ #fixed_column td.controls {
+ height: 2em;
+ }
+}
+.path-grade-report-grader.dir-rtl .left_scroller {
+ float: right;
+}
+.path-grade-report-grader .right_scroller {
+ width: auto;
+ clear: none;
+ overflow-x: scroll;
+
+ tr.heading_name_row th,
+ table#user-grades td.grade {
+ height: 4em;
+ }
+ .path-grade-report-grader .left_scroller .topleft,
+ tr.avg td,
+ tr.groupavg,
+ tr.controls_row,
+ div.right_scroller tr {
+ height: 2em;
+ }
+}
+table#fixed_column,
+table#user-grades,
+table#fixed_column th,
+table#fixed_column td,
+table#user-grades td,
+table#user-grades th,
+table#user-grades input {
+ font-size:10px;
+ margin: 0;
+ padding: 0 2px;
+ vertical-align: middle;
+}
+
+.path-grade-report-grader form td.excluded {
+ color: @errorText;
+}
+
+.path-grade-report-grader .excludedfloater {
+ font-weight: 700;
+ color: @errorText;
+ font-size: 9px;
+ float: left;
+}
+
+.path-grade-report-grader span.gradepass {
+ color:#298721;
+}
+
+.path-grade-report-grader span.gradefail {
+ color:#890d0d;
+}
+
+.path-grade-report-grader .gradeweight {
+ color:#461d7c;
+ font-weight:700;
+}
+
+.path-grade-report-grader td select {
+ font-size: 100%;
+ padding: 0;
+}
+
+.path-grade-report-grader .right_scroller td select {
+ font-size: @fontSizeSmall;
+}
+
+.path-grade-report-grader .grade_icons img.ajax {
+ float:right;
+}
+
+.path-grade-report-grader .gradestable th.user,
+.path-grade-report-grader .gradestable th.range,
+.path-grade-report-grader .flexible th,
+.path-grade-report-grader .flexible td,
+.path-grade-report-grader .flexible th a,
+.path-grade-report-grader .flexible td a,
+.path-grade-report-grader .gradestable th.range,
+.path-grade-report-grader th,
+.path-grade-report-grader td {
+ white-space: nowrap;
+}
+
+table#user-grades td.vmarked {
+ background-color: #fc3;
+}
+
+table#user-grades td.hmarked {
+ background-color: #ff9;
+}
+
+table#user-grades td.hmarked.vmarked {
+ background-color: #fc9;
+}
+
+
+.path-grade-report-grader .gradeparent {
+ overflow: auto;
+}
+
+table#fixed_column tr.controls td,
+table#user-grades tr.controls td,
+.path-grade-report-grader table tr.avg,
+.path-grade-report-grader table tr.avg:hover {
+ background-color: @infoBackground;
+}
+
+.path-grade-report-grader table th.user,
+.path-grade-report-grader table td.userfield {
+ text-align:left;
+}
+
+.path-grade-report-grader .usersuspended a:link,
+.path-grade-report-grader .usersuspended a:visited {
+ .muted
+}
+
+.path-grade-report-grader table th.usersuspended img.usersuspendedicon {
+ vertical-align: text-bottom;
+ margin-left: .45em;
+}
+
+.path-grade-report-grader .yui3-overlay {
+ background-color: #FFEE69;
+ border-color: #D4C237 #A6982B #A6982B;
+ border-style: solid;
+ border-width: 1px;
+ left: 0;
+ padding: 2px 5px;
+ font-size: 0.7em;
+}
+
+.path-grade-report-grader .yui3-overlay .fullname {
+ color: #5F3E00;
+ font-weight: bold;
+}
+.path-grade-report-grader .yui3-overlay .itemname {
+ color: #194F3E;
+ font-weight: bold;
+}
+.path-grade-report-grader .yui3-overlay .feedback {
+ color: #5F595E;
+}
+
+.path-grade-report-grader #tooltipPanel {
+ text-align: left;
+}
+
+.path-grade-report-grader .yui3-overlay a.container-close {
+ margin-top: -3px;
+}
+
+.path-grade-report-grader #hiddentooltiproot, .tooltipDiv {
+ display: none;
+}
diff --git a/theme/bootstrap/less/moodle/message.less b/theme/bootstrap/less/moodle/message.less
new file mode 100644
index 00000000000..ff3f42a1857
--- /dev/null
+++ b/theme/bootstrap/less/moodle/message.less
@@ -0,0 +1,183 @@
+/** Message **/
+.message-discussion-noframes h1 {
+ font-size: 1em;
+}
+.message-discussion-noframes #userinfo .commands,
+.message .noframesjslink,
+.message .link {
+ font-size: @fontSizeSmall;
+}
+.message .heading {
+ font-size: 1em;
+ font-weight: bold;
+}
+.message .author {
+ font-weight: bold;
+}
+.message .time {
+ font-style: italic;
+}
+#page-message-user .commands span {
+ font-size: 0.7em;
+}
+#page-message-user .name {
+ font-weight: bold;
+ font-size: 1.1em;
+}
+table.message_search_results td {
+ border-color: #ddd;
+}
+.message .time,
+.message.me .author {
+ color: #999;
+}
+.message.other .author {
+ color: #88c;
+}
+#page-message-messages {
+ padding: 10px;
+}
+#page-message-send .notifysuccess {
+ padding: 1px;
+}
+#page-message-send td.fixeditor {
+ text-align: center;
+}
+.message .note {
+ padding: 10px;
+}
+table.message .searchresults td {
+ padding: 5px;
+}
+.message .contactselector {
+ width: 24%;
+ float: left;
+}
+.message .contactselector .contact {
+ text-align: left;
+}
+.message .contactselector .messageselecteduser {
+ font-weight: bold;
+}
+.message .contactselector .paging {
+ z-index: 1;
+ position: relative;
+}
+.message .messagearea {
+ padding-left: 1%;
+ border-left: 1px solid #d3d3d3;
+ width: 74%;
+ float: right;
+ min-height: 200px;
+}
+.message .messagearea .messagehistorytype {
+ clear: both;
+ padding-bottom: 20px;
+}
+.message .messagearea .messagehistory .message_user_pictures {
+ margin-left: auto;
+ margin-right: auto;
+}
+.message .messagearea .messagehistory .message_user_pictures #user1 {
+ vertical-align: top;
+ width: 200px;
+}
+.message .messagearea .messagehistory .message_user_pictures #user2 {
+ vertical-align: top;
+ width: 200px;
+}
+.message .messagearea .messagehistory .message_user_pictures .useractionlinks {
+ font-size: 0.9em;
+}
+.message .messagearea .messagehistory .heading {
+ width: 100%;
+ clear: both;
+}
+.message .messagearea .messagehistory .left {
+ padding-bottom: 10px;
+ width: 50%;
+ float: left;
+ clear: both;
+}
+.message .messagearea .messagehistory .right {
+ padding-bottom: 10px;
+ width: 50%;
+ float: right;
+ clear: both;
+}
+.message .messagearea .messagehistory .notification {
+ padding: 10px;
+ background-color: #eee;
+ margin-top: 5px;
+}
+.message .messagearea .messagesend {
+ padding-top: 20px;
+ clear: both;
+}
+.message .messagearea .messagesend .messagesendbox {
+ width: 100%;
+}
+.message .messagearea .messagesend fieldset {
+ padding: 0;
+ margin: 0;
+}
+// Bring the message send button closer to the message box.
+.message .messagearea .messagerecent {
+ text-align: left;
+ width: 100%;
+}
+.message .messagearea .messagerecent .singlemessage {
+ border-bottom: 1px solid #d3d3d3;
+ padding: 10px;
+}
+.message .messagearea .messagerecent .singlemessage .otheruser span {
+ padding: 5px;
+}
+.message .messagearea .messagerecent .singlemessage .messagedate {
+ float: right;
+}
+.message .hiddenelement {
+ display: none;
+}
+// not just using hidden as mform adds that class to its fieldset */
+.message .visible {
+ display: inline;
+}
+.message #usergroupselector.fieldset, .message #viewing {
+ width: 100%;
+}
+.messagesearchresults {
+ margin-bottom: 40px;
+}
+.messagesearchresults td {
+ padding: 0 10px 0 20px;
+}
+.messagesearchresults td span {
+ white-space: nowrap;
+}
+.messagesearchresults td img.userpicture {
+ padding-right: .45em;
+ vertical-align: text-bottom;
+}
+.dir-rtl .messagesearchresults td img.userpicture {
+ padding-left: .45em;
+ padding-right: 0;
+}
+.messagesearchresults td span img {
+ padding: 0 0 0 .45em;
+ vertical-align: text-bottom;
+}
+.dir-rtl .messagesearchresults td span img {
+ padding: 0 .45em 0 0;
+}
+#newmessageoverlay {
+ background-color: #d3d3d3;
+ border: 1px solid black;
+ padding: 20px;
+ position: fixed;
+ bottom: 0;
+ right: 0;
+}
+#newmessageoverlay #usermessage {
+ padding: 10px;
+}
diff --git a/theme/bootstrap/less/moodle/modules.less b/theme/bootstrap/less/moodle/modules.less
new file mode 100644
index 00000000000..efe40e675ed
--- /dev/null
+++ b/theme/bootstrap/less/moodle/modules.less
@@ -0,0 +1,133 @@
+/* modules.less */
+
+// The home for small tweaks to modules that don't require
+// changes drastic enough to pull in the full module css
+// and replace it completely
+// Plus some misc. odds and ends
+
+select {
+ width: auto;
+}
+
+.path-mod-forum .forumheaderlist,
+.path-mod-forum .forumheaderlist td {
+ border: none;
+}
+
+.forumpost {
+ .well;
+ padding: 6px;
+}
+
+.forumpost .row .left {
+ width: auto;
+}
+
+.forumpost .options .commands {
+ margin-left: 0;
+}
+
+.forumpost .subject {
+ font-weight: bold;
+}
+
+// Override hardcoded forum modules styling
+.forumsearch input[type=text] {
+ margin-bottom: 0 !important;
+}
+
+#page-mod-forum-discuss .discussioncontrol.displaymode {
+ text-align: left;
+}
+
+#page-mod-forum-discuss .discussioncontrols .discussioncontrol {
+ float: left;
+}
+
+#page-footer {
+ margin-top: 1em;
+ padding: 1em 0;
+ border-top: 2px solid #eee;
+}
+
+.maincalendar .calendarmonth td,.maincalendar .calendarmonth th {
+ border: 1px dotted #ddd;
+}
+
+.path-grade-report-grader h1 {
+ text-align: inherit;
+}
+
+#page-mod-chat-gui_basic input#message {
+ max-width: 100%;
+}
+
+#page-mod-data-view #singleimage {
+ width: auto;
+}
+
+.path-mod-data form {
+ margin-top: 10px;
+}
+
+.template_heading {
+ margin-top: 10px;
+}
+
+.breadcrumb-button {
+ float: right;
+ margin-top: 3px;
+}
+.dir-rtl .navbar .brand {
+ float: right;
+}
+.navbar .logininfo a {
+ color: @navbarLinkColor;
+}
+.navbar .logininfo a:hover {
+ background-color: @navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover/:focus from .active
+ color: @navbarLinkColorHover;
+}
+
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ z-index: 4030;
+}
+
+.dir-rtl .breadcrumb-button,
+.dir-rtl .navbar .btn-navbar {
+ float: left;
+}
+
+.ie .row-fluid .desktop-first-column {
+ margin-left: 0;
+}
+.langmenu form {
+ margin: 0;
+}
+.container-fluid {
+ max-width: 1680px;
+ margin: 0 auto;
+}
+// contributed by Paul Hibbitts, see http://msdn.microsoft.com/en-us/library/ie/jj583807(v=vs.85).aspx
+canvas {
+ -ms-touch-action: auto;
+}
+
+div#dock {
+ display: none;
+}
+
+.path-mod-choice .horizontal .choices {
+ margin: 0;
+ .option {
+ display: inline-block;
+ padding: 10px;
+ }
+}
+
+.path-mod-lesson .firstpageoptions {
+ margin: auto;
+ min-width: 280px;
+ width: 60%;
+}
diff --git a/theme/bootstrap/less/moodle/question.less b/theme/bootstrap/less/moodle/question.less
new file mode 100644
index 00000000000..c67969ff803
--- /dev/null
+++ b/theme/bootstrap/less/moodle/question.less
@@ -0,0 +1,394 @@
+/* Question */
+.questionbank h2 {
+ margin-top: 0;
+}
+.questioncategories h3 {
+ margin-top: 0;
+}
+#chooseqtypebox {
+ margin-top: 1em;
+}
+#chooseqtype h3 {
+ margin: 0 0 0.3em;
+}
+#chooseqtype .instruction {
+ display: none;
+}
+#chooseqtype .fakeqtypes {
+ border-top: 1px solid silver;
+}
+#chooseqtype .qtypeoption {
+ margin-bottom: 0.5em;
+}
+#chooseqtype label {
+ display: block;
+}
+#chooseqtype .qtypename img {
+ padding: 0 0.3em;
+}
+#chooseqtype .qtypesummary {
+ display: block;
+ margin: 0 2em;
+}
+#chooseqtype .submitbuttons {
+ margin: 0.7em 0;
+ text-align: center;
+}
+#qtypechoicecontainer {
+ display: none;
+}
+#qtypechoicecontainer_c.yui-panel-container.shadow .underlay {
+ background: none;
+}
+#qtypechoicecontainer.yui-panel .hd {
+ color: #333;
+ letter-spacing: 1px;
+ text-shadow: 1px 1px 1px #fff;
+ .border-top-radius(10px);
+ border: 1px solid #ccc;
+ border-bottom: 1px solid #bbb;
+ #gradient > .vertical(#fff, #ccc);
+}
+#qtypechoicecontainer {
+ font-size: 12px;
+ color: #333;
+ background: #F2F2F2;
+ .border-radius(10px);
+ border: 1px solid #ccc;
+ border-top: 0 none;
+ .box-shadow(5px 5px 20px 0 #666);
+}
+//#qtypechoicecontainer
+#chooseqtype {
+ width: 35em;
+}
+#chooseqtypehead h3 {
+ margin: 0;
+ font-weight: normal;
+}
+#chooseqtype .qtypes {
+ position: relative;
+ border-bottom: 1px solid #bbb;
+ padding: 0.24em 0;
+}
+#chooseqtype .qtypeoption {
+ margin-bottom: 0;
+ padding: 0.3em 0.3em 0.3em 1.6em;
+}
+#chooseqtype .qtypeoption img {
+ vertical-align: text-bottom;
+ padding-left: 1em;
+ padding-right: 0.5em;
+}
+#chooseqtype .selected {
+ background-color: #fff;
+ .box-shadow(0px 0 10px 0 #ccc);
+}
+#chooseqtype .instruction,
+#chooseqtype .qtypesummary {
+ display: none;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 60%;
+ margin: 0;
+ padding: 1.5em 1.6em;
+ background-color: #fff;
+}
+#chooseqtype .instruction,
+#chooseqtype .selected .qtypesummary {
+ display: block;
+}
+#categoryquestions {
+ margin: 0;
+}
+#categoryquestions td,
+#categoryquestions th {
+ padding: 0 0.2em;
+}
+#categoryquestions th {
+ text-align: left;
+ font-weight: normal;
+}
+#categoryquestions .checkbox {
+ padding-left: 20px;
+}
+.dir-rtl #categoryquestions th {
+ text-align: right;
+}
+.questionbank .singleselect {
+ margin: 0;
+}
+/* Question editing form */
+#combinedfeedbackhdr div.fhtmleditor {
+ padding: 0;
+}
+#combinedfeedbackhdr div.fcheckbox {
+ margin-bottom: 1em;
+}
+#multitriesheader div.fitem_feditor {
+ margin-top: 1em;
+}
+#multitriesheader div.fitem_fgroup {
+ margin-bottom: 1em;
+}
+#multitriesheader div.fitem_fgroup fieldset.felement label {
+ margin-left: 0.3em;
+ margin-right: 0.3em;
+}
+.que {
+ clear: left;
+ text-align: left;
+ margin: 0 auto 1.8em auto;
+}
+.dir-rtl .que {
+ text-align: right;
+}
+.que .info {
+ float: left;
+ width: 7em;
+ padding: 0.5em;
+ margin-bottom: 1.8em;
+ background-color: @grayLighter;
+ border: 1px solid darken(spin(@grayLighter, -10), 7%);
+ .border-radius(2px);
+}
+.que h2.no {
+ margin: 0;
+ font-size: 0.8em;
+ line-height: 1;
+}
+.que span.qno {
+ font-size: 1.5em;
+ font-weight: bold;
+}
+.que .info > div {
+ font-size: 0.8em;
+ margin-top: 0.7em;
+}
+.que .info .questionflag.editable {
+ cursor: pointer;
+}
+.que .info .editquestion img,
+.que .info .questionflag img,
+.que .info .questionflag input {
+ vertical-align: bottom;
+}
+.que .content {
+ margin: 0 0 0 8.5em;
+}
+.que .formulation,
+.que .outcome,
+.que .comment,
+.que .history {
+ .alert
+}
+.que .formulation {
+ .alert-info;
+ color: @textColor;
+}
+.que .outcome {
+}
+.que .comment {
+ .alert-success;
+}
+.que .history {
+ color: @textColor;
+ background: @grayLighter;
+}
+.que .ablock {
+ margin: 0.7em 0 0.3em 0;
+}
+.que .im-controls {
+ margin-top: 0.5em;
+ text-align: left;
+}
+.dir-rtl .que .im-controls {
+ text-align: right;
+}
+.que .specificfeedback,
+.que .generalfeedback,
+.que .rightanswer,
+.que .im-feedback,
+.que .feedback,
+.que p {
+ margin: 0 0 0.5em;
+}
+.que .qtext {
+ margin-bottom: 1.5em;
+}
+.que .correct {
+ .label;
+ background-color: @successText;
+}
+.que .notanswered,
+.que .incorrect {
+ .label;
+ background-color: @errorText;
+}
+.que .partiallycorrect {
+ background-color: @warningBackground;
+}
+.que .validationerror {
+ color: @errorText;
+}
+.que .grading,
+.que .comment,
+.que .commentlink,
+.que .history {
+ margin-top: 0.5em;
+}
+.que .history h3 {
+ margin: 0 0 0.2em;
+ font-size: 1em;
+}
+.que .history table {
+ width: 100%;
+ margin: 0;
+}
+.que .history .current {
+ font-weight: bold;
+}
+.que .questioncorrectnessicon {
+ vertical-align: text-bottom;
+}
+.que input.questionflagimage {
+ padding-right: 3px;
+}
+.dir-rtl .que input.questionflagimage {
+ padding-left: 3px;
+ padding-right: 0;
+}
+.importerror {
+ margin-top: 10px;
+ border-bottom: 1px solid #555;
+}
+.mform .que.comment .fitemtitle {
+ width: 20%;
+}
+#page-question-preview #techinfo {
+ margin: 1em 0;
+}
+/** Overide for RTL layout **/
+.dir-rtl #chooseqtype .instruction,
+.dir-rtl #chooseqtype .qtypesummary {
+ right: 60%;
+ left: 0%;
+ border-left: 0;
+ border-right: 1px solid grey;
+}
+
+// imported from quiz.css
+#page-mod-quiz-edit .questionbankwindow div.header {
+ color: #444;
+ text-shadow: none;
+ padding: 3px;
+ .border-top-radius(4px);
+ margin: 0 -10px 0 -10px;
+ padding: 2px 10px 2px 10px;
+ background: transparent; /* Old browsers */
+}
+
+#page-mod-quiz-edit .questionbankwindow div.header a:link,
+#page-mod-quiz-edit .questionbankwindow div.header a:visited {
+ color: @linkColor;
+}
+
+#page-mod-quiz-edit .questionbankwindow div.header a:hover {
+ color: @linkColorHover;
+}
+
+#page-mod-quiz-edit .questionbankwindow div.header .title {
+ color: @textColor;
+}
+
+#page-mod-quiz-edit div.container div.generalbox {
+ background-color: transparent;
+ padding: 1.5em;
+}
+
+#page-mod-quiz-edit .categoryinfo {
+ background-color: @bodyBackground;
+ border-bottom: none;
+}
+
+#page-mod-quiz-edit div.questionbank .categoryquestionscontainer,
+#page-mod-quiz-edit div.questionbank .categorysortopotionscontainer,
+#page-mod-quiz-edit div.questionbank .categorypagingbarcontainer,
+#page-mod-quiz-edit div.questionbank .categoryselectallcontainer {
+ padding: 0 0 1.5em 0;
+}
+
+#page-mod-quiz-edit div.questionbank .categorypagingbarcontainer {
+ padding: 1em;
+ background-color: transparent;
+ margin: 0 -1.2em;
+ border-top: none;
+ border-bottom: none;
+}
+
+#page-mod-quiz-edit div.questionbank .categoryquestionscontainer {
+ margin: 0 -1.2em -1em -1.2em;
+}
+#page-mod-quiz-edit div.question div.content div.questioncontrols {
+ background-color: @bodyBackground;
+}
+#page-mod-quiz-edit div.question div.content div.points {
+ margin-top: -0.5em;
+ padding-bottom: 0.5em;
+ border: none;
+ background-color: @bodyBackground;
+}
+
+#page-mod-quiz-edit div.quizpage .pagecontent .pagestatus {
+ background-color: @bodyBackground;
+}
+
+#page-mod-quiz-edit .quizpagedelete,
+#page-mod-quiz-edit .quizpagedelete img {
+ background-color: transparent;
+}
+
+#page-mod-quiz-edit div.quizpage .pagecontent {
+ border: 1px solid #ddd;
+ .border-radius(2px);
+ overflow: hidden;
+}
+
+#page-mod-quiz-edit .modulespecificbuttonscontainer {
+ width: 220px;
+}
+
+.questionbankwindow .module {
+ width: auto;
+}
+
+#page-mod-quiz-edit div.editq div.question div.content {
+ background-color: @bodyBackground;
+ border: 1px solid #ddd;
+ .border-radius(2px);
+ overflow: hidden;
+}
+
+.path-mod-quiz .statedetails {
+ display: block;
+ font-size: 0.9em;
+}
+
+a#hidebankcmd {
+ color: @linkColor;
+}
+
+// override question plugins
+
+// qtype_shortanswer
+
+.que.shortanswer .answer {
+ padding: 0;
+}
+
+.que label {
+ display: inline;
+}
+
diff --git a/theme/bootstrap/less/moodle/recess.txt b/theme/bootstrap/less/moodle/recess.txt
new file mode 100644
index 00000000000..cc08db8f909
--- /dev/null
+++ b/theme/bootstrap/less/moodle/recess.txt
@@ -0,0 +1,5 @@
+
+Analyzing the following files: style/generated.css
+
+Error reading file: style/generated.css
+
diff --git a/theme/bootstrap/less/moodle/responsive.less b/theme/bootstrap/less/moodle/responsive.less
new file mode 100644
index 00000000000..3ac2c542d3d
--- /dev/null
+++ b/theme/bootstrap/less/moodle/responsive.less
@@ -0,0 +1,367 @@
+/* responsive.less */
+
+// Should probably be moved to relevant .less files
+// after 4095 selector issue is solved
+
+@media (min-width: 980px) {
+ .dir-rtl .navbar .nav.pull-right,
+ .dir-rtl .navbar .logininfo {
+ float: left;
+ }
+ .dir-rtl .navbar .nav {
+ float: right;
+ & > li {
+ float: right;
+ }
+ }
+}
+
+// login page
+@media (min-width: 1200px) {
+ .loginbox.twocolumns .loginpanel {
+ margin-left: 0;
+ }
+ .loginbox.twocolumns .loginpanel,
+ .loginbox.twocolumns .signuppanel {
+ width: 48.717948717948715%;
+ *width: 48.664757228587014%;
+ }
+}
+
+@media (min-width: 980px) {
+ .loginbox.twocolumns .loginpanel {
+ margin-left: 0;
+ }
+ .loginbox.twocolumns .loginpanel,
+ .loginbox.twocolumns .signuppanel {
+ width: 48.617948717948715%;
+ *width: 48.664757228587014%;
+ }
+}
+
+@media (min-width: 768px) and (max-width: 979px) {
+ .loginbox.twocolumns .loginpanel {
+ margin-left: 0;
+ }
+ .loginbox.twocolumns .loginpanel,
+ .loginbox.twocolumns .signuppanel {
+ width: 48.61878453038674%;
+ *width: 48.56559304102504%;
+ }
+}
+
+@media (max-width: 767px) {
+ .loginbox.twocolumns .loginpanel,
+ .loginbox.twocolumns .signuppanel {
+ display: block;
+ float: none;
+ width: 100%;
+ margin-left: 0;
+ .box-sizing(border-box);
+ }
+ }
+ // Course
+ @media (min-width: 1200px) {
+ .coursebox .info,
+ .coursebox .summary {
+ width: 48.717948717948715%;
+ *width: 48.664757228587014%;
+ }
+}
+
+@media (min-width: 980px) {
+ .coursebox .info,
+ .coursebox .summary {
+ width: 48.617948717948715%;
+ *width: 48.664757228587014%;
+ }
+}
+
+@media (min-width: 768px) and (max-width: 979px) {
+ .coursebox .info,
+ .coursebox .summary {
+ width: 48.61878453038674%;
+ *width: 48.56559304102504%;
+ }
+}
+
+@media ( max-width : 767px) {
+ .coursebox .info,
+ .coursebox .summary {
+ display: block;
+ float: none;
+ width: 100%;
+ margin-left: 0;
+ .box-sizing(border-box);
+ }
+}
+
+@media (max-width: 480px) {
+ // copied from tabs.less stacked-navs
+ .tabtree > ul {
+ border: none;
+ }
+ .tabtree > ul > li {
+ float: none;
+ }
+ .tabtree > ul > li > a {
+ border: 1px solid #ddd;
+ .border-radius(0);
+ }
+ .tabtree > ul > li.first > a {
+ .border-top-radius(4px);
+ }
+ .tabtree > ul > li.last > a,
+ .tabtree > ul > li.last > a:hover {
+ border: 1px solid #ddd;
+ .border-bottom-radius(4px);
+ }
+ .tabtree > ul > li > a:hover,
+ .tabtree > ul > li > a:focus {
+ border-color: #ddd;
+ z-index: 2;
+ }
+ .file-picker .fp-repo-items,
+ .file-picker .fp-repo-area {
+ position: relative;
+ display: block;
+ width: auto;
+ top: 0;
+ bottom: 0;
+ border: none;
+ margin: 0;
+ }
+ .file-picker .fp-content {
+ width: 100%;
+ height: 100%;
+ }
+ .fp-content-center {
+ display: block;
+ vertical-align: top;
+ }
+ .fp-upload-form td.mdl-right,
+ .fp-upload-form td.mdl-left,
+ .fp-login-form .input,
+ .file-picker .fp-login-form .fp-login-input label,
+ .file-picker td.label {
+ display: block;
+ text-align: left;
+ }
+ .file-picker .fp-login-form table,
+ .file-picker td,
+ .file-picker td.label,
+ .file-picker .fp-upload-form table {
+ margin: 0;
+ padding: 0;
+ }
+ .course-content ul.topics li.section,
+ .course-content ul.topics li.section .content,
+ .course-content ul.weeks li.section .content,
+ .course-content ul.weeks li.section,
+ .course-content ul.section {
+ margin-right: 0;
+ margin-left: 0;
+ padding: 0;
+ }
+ .activityinstance {
+ display: block;
+ }
+ .editing .course-content .section .activity {
+ margin-bottom: 0.2em;
+ padding-bottom: 0.2em;
+ border-bottom: thin solid #eee;
+ }
+ .course-content .section .activity .commands {
+ display: block;
+ text-align: right;
+ }
+ .jsenabled .visibleifjs.addresourcemodchooser {
+ display: none;
+ }
+ .jsenabled .hiddenifjs.addresourcedropdown {
+ display: block;
+ .iconhelp {
+ display: inline-block;
+ padding: 6px;
+ vertical-align: top;
+ }
+ div.urlselect {
+ display: block;
+ form {
+ margin: 0;
+ }
+ }
+ }
+ .que .info {
+ float: none;
+ width: auto;
+ }
+ .que .content {
+ margin: 0;
+ }
+ .path-mod-choice .horizontal .choices .option {
+ display: block;
+ }
+ .path-mod-forum .forumsearch #search {
+ width: 120px;
+ }
+}
+
+// Stuart's 2,1,3 layout
+@media (min-width : 768px) {
+ .row-fluid .desktop-first-column {
+ margin-left: 0;
+ }
+}
+@media (max-width : 767px) {
+ .row-fluid .desktop-first-column {
+ clear: right;
+ }
+}
+// Forms
+@media (max-width: 767px) {
+ // Remove the horizontal form styles
+ .form-item .form-label,
+ .mform .fitem div.fitemtitle {
+ // copied from .control-label {
+ float: none;
+ width: auto;
+ padding-top: 0;
+ text-align: left;
+ }
+ .form-item .form-label label{
+ display: inline-block;
+ margin-right: .5em;
+ }
+ .form-item .form-setting .form-checkbox {
+ margin-top: 0;
+ }
+ .form-label span.form-shortname {
+ display: inline-block;
+ }
+ .form-item .form-setting,
+ .mform .fitem .felement,
+ .path-backup .mform .fitem .felement,
+ .mform .fdescription.required,
+ .form-item .form-description {
+ margin-left: 0;
+ }
+ table#form td.submit,
+ .form-buttons,
+ #fitem_id_submitbutton,
+ .fp-content-center form + div,
+ #fgroup_id_buttonar,
+ .form-horizontal .form-actions,
+ .fitem_fsubmit .felement.fsubmit {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+ #helppopupbox {
+ width: auto !important;
+ left: 0 !important;
+ }
+}
+// Shrink calender when short on space in block
+@media (min-width : 768px) and (max-width: 979px) {
+ .block_calendar_month .content,
+ .block .minicalendar td {
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
+
+@media (max-width: 979px) {
+ .nav-collapse {
+ height: 0;
+ .nav > li > a {
+ color: @grayDark;
+ }
+ .nav > li > a:hover,
+ .nav > li > a:focus,
+ .dropdown-menu a:hover,
+ .dropdown-menu a:focus,
+ .dropdown-submenu a:focus,
+ .dropdown-submenu a:hover,
+ .dropdown-submenu a:active,
+ .dropdown-menu > li > a:hover,
+ .dropdown-menu > li > a:focus,
+ {
+ background-image: none;
+ color: @grayDark;
+ }
+ }
+ .nav-collapse.active {
+ height: auto;
+ }
+
+}
+
+@media (max-width: 768px) {
+// Resize, reflow file-picker on small devices
+ #filesskin .yui3-panel,
+ #filesskin .file-picker.fp-generallayout {
+ width: 100%;
+ left: 0;
+ }
+ .userprofile dl.list {
+ // copied from dl-horizontal in bootstrap/repsonsive.less
+ dt {
+ float: none;
+ clear: none;
+ width: auto;
+ text-align: left;
+ }
+ dd {
+ margin-left: 0;
+ }
+ }
+// Hide broken drag'n'drop options on touch devices MDL-38371
+// Not a great workaround, landscape iPads are wider than this,
+// and a resized window on a netbook could be smaller, but best
+// we can do with CSS. There might be a JS-based solution.
+ .section .side,
+ .editing_move {
+ display: none;
+ }
+ .activityinstance > a {
+ display: block;
+ }
+
+ // GRID & CONTAINERS
+ // -----------------
+ // Remove width from containers
+ .container {
+ width: auto;
+ }
+ // Fluid rows
+ .row-fluid {
+ width: 100%;
+ }
+ .row-fluid .span8.pull-right,
+ .row-fluid .span9.pull-right {
+ float: none;
+ }
+ // Undo negative margin on rows and thumbnails
+ .row {
+ margin-left: 0;
+ }
+ // Make all grid-sized elements block level again
+ [class*="span"],
+ .row-fluid [class*="span"] {
+ float: none;
+ display: block;
+ width: 100%;
+ margin-left: 0;
+ .box-sizing(border-box);
+ }
+ .row-fluid .span12 {
+ width: 100%;
+ .box-sizing(border-box);
+ }
+ .row-fluid [class*="offset"]:first-child {
+ margin-left: 0;
+ }
+ div[role=main] {
+ margin-bottom: 2em;
+ }
+}
diff --git a/theme/bootstrap/less/moodle/tables.less b/theme/bootstrap/less/moodle/tables.less
new file mode 100644
index 00000000000..3c67f8b5ac5
--- /dev/null
+++ b/theme/bootstrap/less/moodle/tables.less
@@ -0,0 +1,6 @@
+table.flexible,
+.generaltable {
+ .table;
+}
+// fancier table styles moved to expendable.less
+// to shift after 4096 selector break
diff --git a/theme/bootstrap/less/moodle/tabs.less b/theme/bootstrap/less/moodle/tabs.less
new file mode 100644
index 00000000000..3bdaa6b5104
--- /dev/null
+++ b/theme/bootstrap/less/moodle/tabs.less
@@ -0,0 +1,65 @@
+/* tabs.less */
+// This is an opinionated file. It intentionally doesn't add code if it's
+// only purpose is to support some of the wackier features of the
+// Moodle tabs API i.e. having the current tab name also be a link,
+// having multiple selected tabs at the same time, or having disabled tabs.
+// There's some code in core that suggests these features are used, but some manual
+// testing suggests they aren't. Some bugs to follow on those issues.
+
+.tabtree {
+ margin: 1em 0;
+}
+.tabtree ul {
+ border-left: 0;
+ border-right: 0;
+ border-bottom: 1px solid #ddd;
+ border-top: 0;
+ padding: 0;
+ margin: 0;
+}
+.tabtree:after,
+.tabtree:before,
+.tabtree ul:before,
+.tabtree ul:after {
+ display: table;
+ content: "";
+}
+.tabtree:after,
+.tabtree ul:after {
+ clear: both;
+}
+.tabtree li {
+ display: block;
+ float: left;
+ margin-bottom: -1px;
+}
+.tabtree a {
+ display: block;
+ padding-right: 12px;
+ padding-left: 12px;
+ margin-right: 2px;
+ padding-top: 8px;
+ padding-bottom: 8px;
+ text-decoration: none;
+ line-height: @baseLineHeight;
+ border: 1px solid transparent;
+ .border-radius(4px 4px 0 0);
+ &:hover,
+ &:focus {
+ border-color: @grayLighter @grayLighter #ddd;
+ background-color: @grayLighter;
+ text-decoration: none;
+ }
+}
+.tabtree .here > a,
+.tabtree .here > a:hover,
+.tabtree .here > a:focus {
+ color: @gray;
+ background-color: @bodyBackground;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+ cursor: default;
+}
+.tabtree .here .empty { // empty second level
+ display: none;
+}
diff --git a/theme/bootstrap/less/moodle/undo.less b/theme/bootstrap/less/moodle/undo.less
new file mode 100644
index 00000000000..c3fa81135ef
--- /dev/null
+++ b/theme/bootstrap/less/moodle/undo.less
@@ -0,0 +1,187 @@
+/* some very targetted corrections to roll back nameclashes between
+ * Moodle and Bootstrap like .row, .label, .content, .controls
+ *
+ * Mostly relies on these styles being more specific than the Bootstrap
+ * ones in order to overule them.
+ */
+
+// .label vs .label
+
+li.activity.label,
+.file-picker td.label {
+ background: inherit;
+ color: inherit;
+ border: inherit;
+ text-shadow: none;
+ padding: 8px;
+ white-space: normal;
+ display: block;
+ font-size: inherit;
+ line-height: inherit;
+}
+.file-picker td.label {
+ display: table-cell;
+ text-align: right;
+}
+
+// Some of this dialog is sized in ems so a different font size
+// effects the whole layout.
+.choosercontainer #chooseform .option label {
+ font-size: 12px;
+}
+
+/* block.invisible vs .invisible
+ * block.hidden vs .invisible
+ *
+ * uses .invisible where the rest of Moodle uses .dimmed
+ * fixible in block renderer?
+ *
+ * There's seems to be even more naming confusion here since,
+ * blocks can be actually 'visible' (or not) to students,
+ * marked 'visible' but really just dimmed to indicate to editors
+ * that students can't see them or 'visible' to the user who
+ * collapses them, 'visible' if you have the right role and in
+ * different circumstances different sections of a block can
+ * be 'visible' or not.
+ *
+ * currently worked around in renderers.php function block{}
+ * by rewriting the class name "invisible" to "dimmed",
+ * though the blocks don't look particularly different apart
+ * from their contents disappearing. Maybe try .muted? or
+ * dimming all the edit icons apart from unhide, might be a
+ * nice effect, though they'd still be active. Maybe reverse
+ * it to white?
+ */
+
+li.section.hidden,
+.block.hidden,
+.block.invisible {
+ visibility: visible;
+ display: block;
+}
+
+
+/* .row vs .row
+ *
+ * very tricky to track down this when it goes wrong,
+ * since the styles are applied to generated content
+ *
+ * basically if you see things shifted left or right compared
+ * with where they should be check for a .row
+ */
+
+#turnitintool_style .row,
+.forumpost .row {
+ margin-left: 0 !important;
+ // not sure if this needs !important
+}
+#turnitintool_style .row:before,
+#turnitintool_style .row:after,
+.forumpost .row:before,
+.forumpost .row:after {
+ content: none;
+}
+/* fieldset.hidden vs .hidden
+ *
+ * Moodle uses fieldset.hidden for mforms, to signify a collection of
+ * form elements that don't have a box drawn round them. Bootstrap
+ * uses hidden for stuff that is hidden in various responsive modes.
+ *
+ * Relatedly, there is also fieldset.invisiblefieldset which hides the
+ * border and sets the display to inline.
+ *
+ * Originally this just set block and visible, but it is used
+ * in random question dialogue in Quiz,
+ * that dialogue is hidden and shown, so when hidden the
+ * above workaround leaves you with a button floating around
+ */
+
+fieldset.hidden {
+ display: inherit;
+ visibility: inherit;
+}
+
+
+/* .controls vs .controls
+ *
+ * in expanding course list, can be fixed in renderer though
+ */
+
+
+/* .btn vs .btn
+ *
+ * links, inputs and buttons are commonly styled with .btn in
+ * bootstrap but it seems that some buttons in Moodle are
+ * wrapped in div.btn e.g. the login block's "login" button
+ */
+
+div.c1.btn {
+ display: block;
+ padding: 0;
+ margin-bottom: 0;
+ font-size: inherit;
+ line-height: inherit;
+ text-align: inherit;
+ vertical-align: inherit;
+ cursor: default;
+ color: inherit;
+ text-shadow: inherit;
+ background-color: inherit;
+ background-image: none;
+ background-repeat: none;
+ border: none;
+ border-radius: none;
+ box-shadow: none;
+}
+/* .container vs .container
+ *
+ * bootstrap uses .container to set the width of the layout at 960px or so, Moodle uses it
+ * in the Quiz to contain the questions to add. If you don't overule the Bootstrap code,
+ * it becomes near unuseable.
+ */
+
+#questionbank + .container {
+ width: auto;
+}
+// In Moodle .hide is the eye icon
+// In Bootstrap it hides things
+img.hide {
+ display: inherit;
+}
+
+// Bootstrap adds a background sprite to anything with classname starting "icon-".
+// we only want to load it if we use them in content.
+.icon-bar,
+img.icon-post,
+img.icon-info,
+img.icon-warn,
+img.icon-pre {
+ background-image: none;
+}
+
+// Homepage course listing fix
+.coursebox .summary {
+ margin-left: 0px;
+}
+
+// Weird big margins on login page
+.loginbox.twocolumns,
+.loginbox.twocolumns {
+ .signuppanel,
+ .loginpanel {
+ padding: 0px;
+ margin: 0px;
+ }
+}
+
+//Use nice Bootstrap alert boxes for login errors
+.loginerrors .error {
+ .alert;
+ .alert-error;
+}
+
+//Bootstrap needs tooltips to be specified. Moodle does not use this
+.tooltip {
+ .opacity(100);
+ display: inline;
+}
diff --git a/theme/bootstrap/less/moodle/user.less b/theme/bootstrap/less/moodle/user.less
new file mode 100644
index 00000000000..149498ad8e7
--- /dev/null
+++ b/theme/bootstrap/less/moodle/user.less
@@ -0,0 +1,172 @@
+/* user.less */
+.userprofile .fullprofilelink {
+ text-align: center;
+ margin: 10px;
+}
+.userprofile .description {
+ margin-bottom: 20px;
+}
+.userprofile dl.list {
+ .dl-horizontal;
+}
+.user-box {
+ margin: 8px;
+ width: 115px;
+ height: 160px;
+ text-align: center;
+ float: left;
+ clear: none;
+}
+.userlist .main .action-icon img {
+ vertical-align: middle;
+}
+.userlist #showall {
+ margin: 10px 0;
+}
+.userlist .buttons {
+ text-align: center;
+}
+.userlist .buttons label {
+ padding: 0 3px;
+}
+.userlist table#participants {
+ text-align: center;
+}
+.userlist table#participants td,
+.userlist table#participants th {
+ vertical-align: middle;
+ text-align: left;
+ padding: 4px;
+}
+.userlist table.controls {
+ width: 100%;
+}
+.userlist table.controls tr {
+ vertical-align: top;
+}
+.userlist table.controls td.right,
+.userlist table.controls td.left {
+ padding: 4px;
+}
+.userlist table.controls .right {
+ text-align: right;
+}
+.userinfobox {
+ width: 100%;
+ border: 1px solid;
+ border-collapse: separate;
+ padding: 10px;
+}
+.userinfobox .left,
+.userinfobox .side {
+ width: 100px;
+ vertical-align: top;
+}
+.userinfobox .userpicture {
+ width: 100px;
+ height: 100px;
+}
+.userinfobox .content {
+ vertical-align: top;
+}
+.userinfobox .links {
+ width: 100px;
+ padding: 5px;
+ vertical-align: bottom;
+}
+.userinfobox .links a {
+ display: block;
+}
+.userinfobox .list td {
+ padding: 3px;
+}
+.userinfobox .username {
+ padding-bottom: 20px;
+ font-weight: bold;
+}
+.userinfobox td.label {
+ text-align: right;
+ white-space: nowrap;
+ vertical-align: top;
+ font-weight: bold;
+}
+.groupinfobox {
+ border: 1px solid;
+}
+.groupinfobox .left {
+ padding: 10px;
+ width: 100px;
+ vertical-align: top;
+}
+.course-participation #showall {
+ text-align: center;
+ margin: 10px 0;
+}
+#user-policy .noticebox {
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 10px;
+ width: 80%;
+ height: 250px;
+}
+#user-policy #policyframe {
+ width: 100%;
+ height: 100%;
+}
+.iplookup #map {
+ margin: auto;
+}
+.userselector select {
+ width: 100%;
+}
+.userselector div {
+ margin-top: 0.2em;
+}
+.userselector div label {
+ margin-right: 0.3em;
+}
+/* Next style does not work in all browsers but looks nicer when it does */
+.userselector .userselector-infobelow {
+ font-size: 0.8em;
+}
+#userselector_options {
+ padding: 0.3em 0;
+}
+#userselector_options .collapsibleregioncaption {
+ font-weight: bold;
+}
+#userselector_options p {
+ margin: 0.2em 0;
+ text-align: left;
+}
+.dir-rtl #userselector_options p {
+ text-align: right;
+}
+/** user full profile */
+#page-user-profile .messagebox {
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+}
+/** user course profile */
+#page-course-view-weeks .messagebox {
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+}
+/** Overide for RTL layout **/
+.dir-rtl .descriptionbox {
+ margin-right: 110px;
+ margin-left: 0;
+}
+.dir-rtl .userlist table#participants td,
+.dir-rtl .userlist table#participants th {
+ text-align: right;
+}
+.dir-rtl .userlist table#participants {
+ margin: 0 auto;
+}
+#page-my-index.dir-rtl .block h3.main {
+ text-align: right;
+}
diff --git a/theme/bootstrap/less/moodle/yui_fixes.less b/theme/bootstrap/less/moodle/yui_fixes.less
new file mode 100644
index 00000000000..e8c6108668a
--- /dev/null
+++ b/theme/bootstrap/less/moodle/yui_fixes.less
@@ -0,0 +1,10 @@
+// we might be able to just turn these off for 2.5 see bug MDL-????
+input[type=text],input[type=password],textarea {
+ width:auto;
+}
+th,
+td {
+ border: 0 solid #fff;
+}
+
+
diff --git a/theme/bootstrap/pix/favicon.ico b/theme/bootstrap/pix/favicon.ico
new file mode 100644
index 00000000000..f864f1d9310
Binary files /dev/null and b/theme/bootstrap/pix/favicon.ico differ
diff --git a/theme/bootstrap/pix/fp/alias.png b/theme/bootstrap/pix/fp/alias.png
new file mode 100644
index 00000000000..e1695923796
Binary files /dev/null and b/theme/bootstrap/pix/fp/alias.png differ
diff --git a/theme/bootstrap/pix/fp/alias_sm.png b/theme/bootstrap/pix/fp/alias_sm.png
new file mode 100644
index 00000000000..80fbfafc50e
Binary files /dev/null and b/theme/bootstrap/pix/fp/alias_sm.png differ
diff --git a/theme/bootstrap/pix/fp/check.png b/theme/bootstrap/pix/fp/check.png
new file mode 100644
index 00000000000..1fd55ffbcc2
Binary files /dev/null and b/theme/bootstrap/pix/fp/check.png differ
diff --git a/theme/bootstrap/pix/fp/cross.png b/theme/bootstrap/pix/fp/cross.png
new file mode 100644
index 00000000000..7899d43f9eb
Binary files /dev/null and b/theme/bootstrap/pix/fp/cross.png differ
diff --git a/theme/bootstrap/pix/fp/dnd_arrow.gif b/theme/bootstrap/pix/fp/dnd_arrow.gif
new file mode 100644
index 00000000000..62d1a5bf64d
Binary files /dev/null and b/theme/bootstrap/pix/fp/dnd_arrow.gif differ
diff --git a/theme/bootstrap/pix/fp/link.png b/theme/bootstrap/pix/fp/link.png
new file mode 100644
index 00000000000..c456eced04a
Binary files /dev/null and b/theme/bootstrap/pix/fp/link.png differ
diff --git a/theme/bootstrap/pix/fp/link_sm.png b/theme/bootstrap/pix/fp/link_sm.png
new file mode 100644
index 00000000000..f7160b4f14b
Binary files /dev/null and b/theme/bootstrap/pix/fp/link_sm.png differ
diff --git a/theme/bootstrap/pix/fp/path_folder.png b/theme/bootstrap/pix/fp/path_folder.png
new file mode 100644
index 00000000000..432b50688da
Binary files /dev/null and b/theme/bootstrap/pix/fp/path_folder.png differ
diff --git a/theme/bootstrap/pix/fp/path_folder_rtl.png b/theme/bootstrap/pix/fp/path_folder_rtl.png
new file mode 100644
index 00000000000..6127d994ff6
Binary files /dev/null and b/theme/bootstrap/pix/fp/path_folder_rtl.png differ
diff --git a/theme/bootstrap/pix/fp/view_icon_active.png b/theme/bootstrap/pix/fp/view_icon_active.png
new file mode 100644
index 00000000000..1aade6b4a47
Binary files /dev/null and b/theme/bootstrap/pix/fp/view_icon_active.png differ
diff --git a/theme/bootstrap/pix/fp/view_icon_inactive.png b/theme/bootstrap/pix/fp/view_icon_inactive.png
new file mode 100644
index 00000000000..d4eca1d5c90
Binary files /dev/null and b/theme/bootstrap/pix/fp/view_icon_inactive.png differ
diff --git a/theme/bootstrap/pix/fp/view_icon_selected.png b/theme/bootstrap/pix/fp/view_icon_selected.png
new file mode 100644
index 00000000000..2d6c45ec654
Binary files /dev/null and b/theme/bootstrap/pix/fp/view_icon_selected.png differ
diff --git a/theme/bootstrap/pix/fp/view_list_active.png b/theme/bootstrap/pix/fp/view_list_active.png
new file mode 100644
index 00000000000..e0977a0f80b
Binary files /dev/null and b/theme/bootstrap/pix/fp/view_list_active.png differ
diff --git a/theme/bootstrap/pix/fp/view_list_inactive.png b/theme/bootstrap/pix/fp/view_list_inactive.png
new file mode 100644
index 00000000000..b20c0686515
Binary files /dev/null and b/theme/bootstrap/pix/fp/view_list_inactive.png differ
diff --git a/theme/bootstrap/pix/fp/view_list_selected.png b/theme/bootstrap/pix/fp/view_list_selected.png
new file mode 100644
index 00000000000..5d2e2cbc147
Binary files /dev/null and b/theme/bootstrap/pix/fp/view_list_selected.png differ
diff --git a/theme/bootstrap/pix/fp/view_tree_active.png b/theme/bootstrap/pix/fp/view_tree_active.png
new file mode 100644
index 00000000000..8819de3f07a
Binary files /dev/null and b/theme/bootstrap/pix/fp/view_tree_active.png differ
diff --git a/theme/bootstrap/pix/fp/view_tree_inactive.png b/theme/bootstrap/pix/fp/view_tree_inactive.png
new file mode 100644
index 00000000000..68402b86eb4
Binary files /dev/null and b/theme/bootstrap/pix/fp/view_tree_inactive.png differ
diff --git a/theme/bootstrap/pix/fp/view_tree_selected.png b/theme/bootstrap/pix/fp/view_tree_selected.png
new file mode 100644
index 00000000000..37ee7d6b345
Binary files /dev/null and b/theme/bootstrap/pix/fp/view_tree_selected.png differ
diff --git a/theme/bootstrap/pix/glyphicons-halflings-white.png b/theme/bootstrap/pix/glyphicons-halflings-white.png
new file mode 100644
index 00000000000..a20760bfde5
Binary files /dev/null and b/theme/bootstrap/pix/glyphicons-halflings-white.png differ
diff --git a/theme/bootstrap/pix/glyphicons-halflings.png b/theme/bootstrap/pix/glyphicons-halflings.png
new file mode 100644
index 00000000000..92d4445dfd0
Binary files /dev/null and b/theme/bootstrap/pix/glyphicons-halflings.png differ
diff --git a/theme/bootstrap/pix/header.jpg b/theme/bootstrap/pix/header.jpg
new file mode 100644
index 00000000000..3e85176f521
Binary files /dev/null and b/theme/bootstrap/pix/header.jpg differ
diff --git a/theme/bootstrap/pix/horizontal-menu-submenu-indicator.png b/theme/bootstrap/pix/horizontal-menu-submenu-indicator.png
new file mode 100644
index 00000000000..2ef3454cac8
Binary files /dev/null and b/theme/bootstrap/pix/horizontal-menu-submenu-indicator.png differ
diff --git a/theme/bootstrap/pix/screenshot.jpg b/theme/bootstrap/pix/screenshot.jpg
new file mode 100644
index 00000000000..54e8fd87d95
Binary files /dev/null and b/theme/bootstrap/pix/screenshot.jpg differ
diff --git a/theme/bootstrap/pix/sprite.png b/theme/bootstrap/pix/sprite.png
new file mode 100644
index 00000000000..3716fc0b95f
Binary files /dev/null and b/theme/bootstrap/pix/sprite.png differ
diff --git a/theme/bootstrap/pix/vertical-menu-submenu-indicator.png b/theme/bootstrap/pix/vertical-menu-submenu-indicator.png
new file mode 100644
index 00000000000..4f4cf998b29
Binary files /dev/null and b/theme/bootstrap/pix/vertical-menu-submenu-indicator.png differ
diff --git a/theme/bootstrap/pix/yui2-treeview-sprite-rtl.gif b/theme/bootstrap/pix/yui2-treeview-sprite-rtl.gif
new file mode 100644
index 00000000000..5198c1b8664
Binary files /dev/null and b/theme/bootstrap/pix/yui2-treeview-sprite-rtl.gif differ
diff --git a/theme/bootstrap/readme_moodle.txt b/theme/bootstrap/readme_moodle.txt
new file mode 100644
index 00000000000..9fe5265ef5b
--- /dev/null
+++ b/theme/bootstrap/readme_moodle.txt
@@ -0,0 +1,47 @@
+Discription of Twitter bootstrap import into Moodle
+
+Twitter bootstrap
+-----------------
+The bootstrap theme uses the original unmodified version 2.3.0 Twitter bootstrap less files. These are
+Object Oriented CSS files. The bootstrap repository is available on:
+
+https://github.com/twitter/bootstrap.git
+
+To update to the latest release of twitter bootstrap:
+* remove all files from less/bootstrap,
+* download the new less files and store them in less/bootstrap
+* regenerate files using recess: recess --compile --compress moodle.less > ../style/generated.css **
+
+** If you want to make changes to the .css generated from these .less files then you
+need to install recess (https://github.com/twitter/recess) to compile the .less files,
+then run these commands in the bootstrap/less/ folder:
+
+
+html5shiv.js
+------------
+This theme uses the original unmodified html5shiv.js JavaScript library to enable HTML5 tags in IE7 and IE8.
+This library is available on:
+
+https://github.com/aFarkas/html5shiv/blob/master/src/html5shiv.js
+
+To update to the latest release of html5shiv download and replace:
+javascript/html5shiv.js
+
+bootstrapcollapse.js, bootstrapdropdown.js, bootstrapengine.js
+--------------------------------------------------------------
+This them uses YUI ports of the Twitter bootstrap jQuery based libs. These ported files are available on:
+
+https://github.com/jshirley/yui3-gallery/blob/master/src/gallery-bootstrap-collapse/js/bootstrap-collapse.js
+https://github.com/jshirley/yui3-gallery/blob/master/src/gallery-bootstrap-dropdown/js/bootstrap-dropdown.js
+https://github.com/jshirley/yui3-gallery/blob/master/src/gallery-bootstrap-engine/js/bootstrap-engine.js
+
+The content of these files are slightly modified to make sure all required YUI libraries are loaded. To achieve
+that the first and last line of each of these files has been modified.
+
+The YUI port of the Twitter bootstrap libs are now longer maintained. If you need all of the Bootstrap JavaScript
+functionality consider switching to the original jQuery version of these file
+
+If you do want to update use these file locations:
+javascript/bootstrap-collapse.js
+javascript/bootstrap-dropdown.js
+javascript/bootstrap-engine.js
\ No newline at end of file
diff --git a/theme/bootstrap/renderers.php b/theme/bootstrap/renderers.php
new file mode 100644
index 00000000000..a2164110fac
--- /dev/null
+++ b/theme/bootstrap/renderers.php
@@ -0,0 +1,26 @@
+.
+
+/**
+ * Renderers to align Moodle's HTML with that expected by Bootstrap
+ *
+ * @package theme_bootstrap
+ * @copyright 2012
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+require_once('renderers/core.php');
+
diff --git a/theme/bootstrap/renderers/core.php b/theme/bootstrap/renderers/core.php
new file mode 100644
index 00000000000..ec18d5a0827
--- /dev/null
+++ b/theme/bootstrap/renderers/core.php
@@ -0,0 +1,160 @@
+.
+
+/**
+ * Renderers to align Moodle's HTML with that expected by Bootstrap
+ *
+ * @package theme_bootstrap
+ * @copyright 2012
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+
+class theme_bootstrap_core_renderer extends core_renderer {
+
+ public function notification($message, $classes = 'notifyproblem') {
+ $message = clean_text($message);
+ $type = '';
+
+ if ($classes == 'notifyproblem') {
+ $type = 'alert alert-error';
+ }
+ if ($classes == 'notifysuccess') {
+ $type = 'alert alert-success';
+ }
+ if ($classes == 'notifymessage') {
+ $type = 'alert alert-info';
+ }
+ if ($classes == 'redirectmessage') {
+ $type = 'alert alert-block alert-info';
+ }
+ return " $message
";
+ }
+
+ public function navbar() {
+ $items = $this->page->navbar->get_items();
+ foreach ($items as $item) {
+ $item->hideicon = true;
+ $breadcrumbs[] = $this->render($item);
+ }
+ $divider = '/ ';
+ $list_items = ' '.join(" $divider ", $breadcrumbs).' ';
+ $title = ''.get_string('pagepath').' ';
+ return $title . "";
+ }
+ /*
+ * Overriding the custom_menu function ensures the custom menu is
+ * always shown, even if no menu items are configured in the global
+ * theme settings page.
+ * We use the sitename as the first menu item
+ */
+ public function custom_menu($custommenuitems = '') {
+ global $CFG;
+
+ if (!empty($CFG->custommenuitems)) {
+ $custommenuitems .= $CFG->custommenuitems;
+ }
+ $custommenu = new custom_menu($custommenuitems, current_language());
+ return $this->render_custom_menu($custommenu);
+ }
+
+
+ /*
+ * This renders the bootstrap top menu
+ *
+ * This renderer is needed to enable the Bootstrap style navigation
+ *
+ */
+
+ protected function render_custom_menu(custom_menu $menu) {
+ // If the menu has no children return an empty string.
+ if (!$menu->has_children()) {
+ return '';
+ }
+ $addlangmenu = true;
+ $langs = get_string_manager()->get_list_of_translations();
+ if ($this->page->course != SITEID and !empty($this->page->course->lang)) {
+ // Do not show lang menu if language forced.
+ $addlangmenu = false;
+ }
+ if (count($langs) < 2) {
+ $addlangmenu = false;
+ }
+
+ if ($addlangmenu) {
+ $language = $menu->add(get_string('language'), new moodle_url('#'), get_string('language'), 10);
+ foreach ($langs as $langtype => $langname) {
+ $language->add($langname,
+ new moodle_url($this->page->url, array('lang' => $langtype)), $langname);
+ }
+ }
+
+ $content = '';
+ foreach ($menu->get_children() as $item) {
+ $content .= $this->render_custom_menu_item($item, 1);
+ }
+
+ return $content.' ';
+ }
+
+ /*
+ * This code renders the custom menu items for the
+ * bootstrap dropdown menu
+ */
+
+ protected function render_custom_menu_item(custom_menu_item $menunode, $level = 0 ) {
+ static $submenucount = 0;
+
+ if ($menunode->has_children()) {
+
+ if ($level == 1) {
+ $dropdowntype = 'dropdown';
+ } else {
+ $dropdowntype = 'dropdown-submenu';
+ }
+
+ $content = html_writer::start_tag('li', array('class'=>$dropdowntype));
+ // If the child has menus render it as a sub menu.
+ $submenucount++;
+ if ($menunode->get_url() !== null) {
+ $url = $menunode->get_url();
+ } else {
+ $url = '#cm_submenu_'.$submenucount;
+ }
+ $content .= html_writer::start_tag('a', array('href'=>$url, 'class'=>'dropdown-toggle', 'data-toggle'=>'dropdown'));
+ $content .= $menunode->get_title();
+ if ($level == 1) {
+ $content .= ' ';
+ }
+ $content .= '';
+ $content .= '';
+ } else {
+ $content = '';
+ // The node doesn't have children so produce a final menuitem.
+ if ($menunode->get_url() !== null) {
+ $url = $menunode->get_url();
+ } else {
+ $url = '#';
+ }
+ $content .= html_writer::link($url, $menunode->get_text(), array('title'=>$menunode->get_title()));
+ }
+ return $content;
+ }
+}
diff --git a/theme/bootstrap/style/README b/theme/bootstrap/style/README
new file mode 100644
index 00000000000..8f378b59d54
--- /dev/null
+++ b/theme/bootstrap/style/README
@@ -0,0 +1,3 @@
+The generated.css file is created from .less files via the method described in the readme
+in the /less/ folder. It's unwise to directly the edit the generated.css as your changes
+may be overwritten.
diff --git a/theme/bootstrap/style/editor.css b/theme/bootstrap/style/editor.css
new file mode 100644
index 00000000000..5c1671d0377
--- /dev/null
+++ b/theme/bootstrap/style/editor.css
@@ -0,0 +1 @@
+.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;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) ")"}.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}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}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;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("[[pix:theme|glyphicons-halflings]]");background-position:14px 14px;background-repeat:no-repeat}.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("[[pix:theme|glyphicons-halflings-white]]")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}
diff --git a/theme/bootstrap/style/generated.css b/theme/bootstrap/style/generated.css
new file mode 100644
index 00000000000..0fce70a1ce8
--- /dev/null
+++ b/theme/bootstrap/style/generated.css
@@ -0,0 +1,9 @@
+.dir-ltr,.mdl-left,.dir-rtl .mdl-right{text-align:left}.dir-rtl,.mdl-right,.dir-rtl .mdl-left{text-align:right}#add,#remove,.centerpara,.mdl-align{text-align:center}a.dimmed,a.dimmed:link,a.dimmed:visited,a.dimmed_text,a.dimmed_text:link,a.dimmed_text:visited,.dimmed_text,.dimmed_text a,.dimmed_text a:link,.dimmed_text a:visited,.usersuspended,.usersuspended a,.usersuspended a:link,.usersuspended a:visited,.dimmed_category,.dimmed_category a{color:#999}.activity.label .dimmed_text{opacity:.5;filter:alpha(opacity=50)}.unlist,.unlist li,.inline-list,.inline-list li,.block .list,.block .list li,.section li.activity,.section li.movehere,.tabtree li{padding:0;margin:0;list-style:none}.course-content .current{background-color:#eee}.inline,.inline-list li{display:inline}.notifytiny{font-size:10.5px}.notifytiny li,.notifytiny td{font-size:100%}.red,.notifyproblem{color:#b94a48}.green,.notifysuccess{color:#468847}.reportlink{text-align:right}a.autolink.glossary:hover{cursor:help}.collapsibleregioncaption{white-space:nowrap}.collapsibleregioncaption img{vertical-align:middle}.jsenabled .hiddenifjs{display:none}.visibleifjs{display:none}.jsenabled .visibleifjs{display:inline}.jsenabled .collapsibleregion{overflow:hidden}.jsenabled .collapsed .collapsibleregioninner{visibility:hidden}.yui-overlay .yui-widget-bd{position:relative;top:0;left:0;z-index:1;padding:2px 5px;color:#000;background-color:#ffee69;border:1px solid #a6982b;border-top-color:#d4c237}.clearer{display:block;height:1px;padding:0;margin:0;clear:both;background:transparent;border-width:0}.bold,.warning,.errorbox .title,.pagingbar .title,.pagingbar .thispage,.headingblock{font-weight:bold}img.resize{width:1em;height:1em}.block img.resize,.breadcrumb img.resize{width:.8em;height:.9em}img.icon{width:16px;height:16px;padding-right:6px;vertical-align:text-bottom}.dir-rtl img.icon{padding-right:0;padding-left:6px}img.iconsmall{width:12px;height:12px;margin-right:3px;vertical-align:middle}img.iconhelp,.helplink img{width:16px;height:16px;padding-left:3px;vertical-align:text-bottom}.dir-rtl img.iconhelp,.dir-rtl .helplink img{padding-right:3px;padding-left:0}img.iconlarge{width:24px;height:24px;vertical-align:middle}img.iconsort{padding-left:.3em;margin-bottom:.15em;vertical-align:text-bottom}.dir-rtl img.iconsort{padding-right:.3em;padding-left:0}img.icontoggle{width:50px;height:17px;vertical-align:middle}img.iconkbhelp{width:49px;height:17px}img.icon-pre,.dir-rtl img.icon-post{padding-right:3px;padding-left:0}img.icon-post,.dir-rtl img.icon-pre{padding-right:0;padding-left:3px}.categorybox .category{font-size:1.2em;font-weight:bold}.boxaligncenter{margin-right:auto;margin-left:auto}.boxalignright{margin-right:0;margin-left:auto}.boxalignleft{margin-right:auto;margin-left:0}.boxwidthnarrow{width:30%}.boxwidthnormal{width:50%}.boxwidthwide{width:80%}.headermain{font-weight:bold}#maincontent{display:block;height:1px;overflow:hidden}img.uihint{cursor:help}#addmembersform table{margin-right:auto;margin-left:auto}.flexible th{white-space:nowrap}img.emoticon{width:15px;height:15px;vertical-align:middle}form.popupform,form.popupform div{display:inline}.arrow_button input{overflow:hidden}.action-icon img.smallicon{margin:0 .3em;vertical-align:text-bottom}.main img{vertical-align:middle}.no-overflow{padding-bottom:1px;overflow:auto}.pagelayout-report .no-overflow{overflow:visible}.no-overflow>.generaltable{margin-bottom:0}.accesshide{position:absolute;left:-10000px;font-size:1em;font-weight:normal}.dir-rtl .accesshide{top:-30000px;left:auto}span.hide,div.hide{display:none}a.skip-block,a.skip{position:absolute;top:-1000em;font-size:.85em;text-decoration:none}a.skip-block:focus,a.skip-block:active,a.skip:focus,a.skip:active{position:static;display:block}.skip-block-to{display:block;height:1px;overflow:hidden}.addbloglink{text-align:center}.blog_entry .audience{padding-right:4px;text-align:right}.blog_entry .tags{margin-top:15px}.blog_entry .tags .action-icon img.smallicon{width:16px;height:16px}.blog_entry .content{margin-left:43px}#page-group-index #groupeditform{text-align:center}#doc-contents h1{margin:1em 0 0 0}#doc-contents ul{width:90%;padding:0;margin:0}#doc-contents ul li{list-style-type:none}.groupmanagementtable td{vertical-align:top}.groupmanagementtable #existingcell,.groupmanagementtable #potentialcell{width:42%}.groupmanagementtable #buttonscell{width:16%}.groupmanagementtable #removeselect_wrapper,.groupmanagementtable #addselect_wrapper{width:100%}.groupmanagementtable #removeselect_wrapper label,.groupmanagementtable #addselect_wrapper label{font-weight:normal}.dir-rtl .groupmanagementtable p{text-align:right}#group-usersummary{width:14em}.groupselector{margin-top:3px;margin-bottom:3px}.loginbox{margin:15px;overflow:visible}.loginbox.twocolumns{margin:15px}.loginbox h2,.loginbox .subcontent{padding:10px;margin:5px;text-align:center}.loginbox .loginpanel .desc{padding:0;margin:0;margin-bottom:5px}.loginbox .signuppanel .subcontent{text-align:left}.dir-rtl .loginbox .signuppanel .subcontent{text-align:right}.loginbox .loginsub{margin-right:0;margin-left:0}.loginbox .guestsub,.loginbox .forgotsub,.loginbox .potentialidps{margin:5px 12%}.loginbox .potentialidps .potentialidplist{margin-left:40%}.loginbox .potentialidps .potentialidplist div{text-align:left}.loginbox .loginform{margin-top:1em;text-align:left}.loginbox .loginform .form-label{float:left;width:44%;text-align:right;white-space:nowrap;direction:rtl}.dir-rtl .loginbox .loginform .form-label{float:left;width:44%;text-align:right;white-space:nowrap;direction:ltr}.loginbox .loginform .form-input{float:right;width:55%}.loginbox .loginform .form-input input{width:6em}.loginbox .signupform{margin-top:1em;text-align:center}.loginbox.twocolumns .loginpanel,.loginbox.twocolumns .signuppanel{display:block;float:left;width:48%;min-height:30px;padding:0;padding-bottom:2000px;margin:0;margin-bottom:-2000px;margin-left:2.76243%;border:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.loginbox .potentialidp .smallicon{margin:0 .3em;vertical-align:text-bottom}.notepost{margin-bottom:1em}.notepost .userpicture{float:left;margin-right:5px}.notepost .content,.notepost .footer{clear:both}.notesgroup{margin-left:20px}.path-my .coursebox .overview{margin:15px 30px 10px 30px}.path-my .coursebox .info{float:none;margin:0}.mod_introbox{padding:10px}table.mod_index{width:100%}.comment-ctrl{display:none;padding:0;margin:0;font-size:12px}.comment-ctrl h5{padding:5px;margin:0}.comment-area{max-width:400px;padding:5px}.comment-area textarea{width:100%;overflow:auto}.comment-area .fd{text-align:right}.comment-meta span{color:gray}.comment-link img{vertical-align:text-bottom}.comment-list{padding:0;margin:0;overflow:auto;font-size:11px;list-style:none}.comment-list li{position:relative;padding:.3em;margin:2px;margin-bottom:5px;clear:both;list-style:none}.comment-list li.first{display:none}.comment-paging{text-align:center}.comment-paging .pageno{padding:2px}.comment-paging .curpage{border:1px solid #CCC}.comment-message .picture{float:left;width:20px}.dir-rtl .comment-message .picture{float:right}.comment-message .text{padding:0;margin:0}.comment-message .text p{padding:0;margin:0 18px 0 0}.comment-delete{position:absolute;top:0;right:0;margin:.3em}.dir-rtl .comment-delete{position:absolute;right:auto;left:0;margin:.3em}.comment-delete-confirm{width:5em;padding:2px;text-align:center;background:#eee}.comment-container{float:left;margin:4px}.comment-report-selectall{display:none}.comment-link{display:none}.jsenabled .comment-link{display:block}.jsenabled .showcommentsnonjs{display:none}.jsenabled .comment-report-selectall{display:inline}.completion-expired{background:#f2dede}.completion-expected{font-size:10.5px}.completion-sortchoice,.completion-identifyfield{font-size:10.5px;vertical-align:bottom}.completion-progresscell{text-align:right}.completion-expired .completion-expected{font-weight:bold}#page-tag-coursetags_edit .coursetag_edit_centered{position:relative;width:600px;margin:20px auto}#page-tag-coursetags_edit .coursetag_edit_row{clear:both}#page-tag-coursetags_edit .coursetag_edit_row .coursetag_edit_left{float:left;width:50%;text-align:right}#page-tag-coursetags_edit .coursetag_edit_row .coursetag_edit_right{margin-left:50%}#page-tag-coursetags_edit .coursetag_edit_input3{display:none}#page-tag-coursetags_more .coursetag_more_large{font-size:120%}#page-tag-coursetags_more .coursetag_more_small{font-size:80%}#page-tag-coursetags_more .coursetag_more_link{font-size:80%}#tag-description,#tag-blogs{width:100%}#tag-management-box{margin-bottom:10px;line-height:20px}#tag-user-table{width:100%;padding:3px;clear:both}#tag-user-table{*zoom:1}#tag-user-table:before,#tag-user-table:after{display:table;line-height:0;content:""}#tag-user-table:after{clear:both}img.user-image{width:100px;height:100px}#small-tag-cloud-box{width:300px;margin:0 auto}#big-tag-cloud-box{float:none;width:600px;margin:0 auto}ul#tag-cloud-list{padding:5px;margin:0;list-style:none}ul#tag-cloud-list li{display:inline;margin:0;list-style-type:none}#tag-search-box{margin:10px auto;text-align:center}#tag-search-results-container{width:100%;padding:0}#tag-search-results{display:block;float:left;width:60%;padding:0;margin:15px 20% 0 20%}#tag-search-results li{float:left;width:30%;padding-right:1%;padding-left:1%;line-height:20px;text-align:left;list-style:none}span.flagged-tag,span.flagged-tag a{color:#b94a48}table#tag-management-list{width:100%;text-align:left}table#tag-management-list td,table#tag-management-list th{padding:4px;text-align:left;vertical-align:middle}.tag-management-form{text-align:center}#relatedtags-autocomplete-container{width:100%;min-height:4.6em;margin-right:auto;margin-left:auto}#relatedtags-autocomplete{position:relative;display:block;width:60%;margin-right:auto;margin-left:auto}#relatedtags-autocomplete .yui-ac-content{position:absolute;left:20%;z-index:9050;width:420px;overflow:hidden;background:#fff;border:1px solid #404040}#relatedtags-autocomplete .ysearchquery{position:absolute;right:10px;z-index:10;color:#808080}#relatedtags-autocomplete .yui-ac-shadow{position:absolute;z-index:9049;width:100%;margin:.3em;background:#a0a0a0}#relatedtags-autocomplete ul{width:100%;padding:0;margin:0;list-style-type:none}#relatedtags-autocomplete li{padding:0 5px;white-space:nowrap;cursor:default}#relatedtags-autocomplete li.yui-ac-highlight{background:#ffc}h2.tag-heading,div#tag-description,div#tag-blogs,body.tag .managelink{padding:5px}.tag_cloud .s20{font-size:1.5em;font-weight:bold}.tag_cloud .s19{font-size:1.5em}.tag_cloud .s18{font-size:1.4em;font-weight:bold}.tag_cloud .s17{font-size:1.4em}.tag_cloud .s16{font-size:1.3em;font-weight:bold}.tag_cloud .s15{font-size:1.3em}.tag_cloud .s14{font-size:1.2em;font-weight:bold}.tag_cloud .s13{font-size:1.2em}.tag_cloud .s12,.tag_cloud .s11{font-size:1.1em;font-weight:bold}.tag_cloud .s10,.tag_cloud .s9{font-size:1.1em}.tag_cloud .s8,.tag_cloud .s7{font-size:1em;font-weight:bold}.tag_cloud .s6,.tag_cloud .s5{font-size:1em}.tag_cloud .s4,.tag_cloud .s3{font-size:.9em;font-weight:bold}.tag_cloud .s2,.tag_cloud .s1{font-size:.9em}.tag_cloud .s0{font-size:.8em}#webservice-doc-generator td{text-align:left;border:0 solid black}.smartselect{position:absolute}.smartselect .smartselect_mask{background-color:#fff}.smartselect ul{padding:0;margin:0}.smartselect ul li{list-style:none}.smartselect .smartselect_menu{margin-right:5px}.safari .smartselect .smartselect_menu{margin-left:2px}.smartselect .smartselect_menu,.smartselect .smartselect_submenu{display:none;background-color:#FFF;border:1px solid #000}.smartselect .smartselect_menu.visible,.smartselect .smartselect_submenu.visible{display:block}.smartselect .smartselect_menu_content ul li{position:relative;padding:2px 5px}.smartselect .smartselect_menu_content ul li a{color:#333;text-decoration:none}.smartselect .smartselect_menu_content ul li a.selectable{color:inherit}.smartselect .smartselect_submenuitem{background-image:url([[pix:moodle|t/collapsed]]);background-position:100%;background-repeat:no-repeat}.smartselect.spanningmenu .smartselect_submenu{position:absolute;top:-1px;left:100%}.smartselect.spanningmenu .smartselect_submenu a{padding-right:16px;white-space:nowrap}.smartselect.spanningmenu .smartselect_menu_content ul li a.selectable:hover{text-decoration:underline}.smartselect.compactmenu .smartselect_submenu{position:relative;z-index:1010;display:none;margin:2px -3px;margin-left:10px;border-width:0}.smartselect.compactmenu .smartselect_submenu.visible{display:block}.smartselect.compactmenu .smartselect_menu{z-index:1000;overflow:hidden}.smartselect.compactmenu .smartselect_submenu .smartselect_submenu{z-index:1020}.smartselect.compactmenu .smartselect_submenuitem:hover>.smartselect_menuitem_label{font-weight:bold}#page-admin-registration-register .registration_textfield{width:300px}.userenrolment{width:100%;border-collapse:collapse}.userenrolment td{height:41px;padding:0}.userenrolment .subfield{margin-right:5px}.userenrolment .col_userdetails .subfield_picture{float:left}.userenrolment .col_lastseen{width:150px}.userenrolment .col_role{width:262px}.userenrolment .col_role .roles{margin-right:30px}.userenrolment .col_role .role{float:left;padding:3px;margin:3px}.dir-rtl .userenrolment .col_role .role{float:right}.userenrolment .col_role .role a{margin-left:3px;cursor:pointer}.userenrolment .col_role .addrole{float:right;width:18px;height:18px;margin:3px;text-align:center;background-color:#dff0d8;border:1px solid #d6e9c6}.userenrolment .col_role .addrole img{vertical-align:baseline}.userenrolment .hasAllRoles .col_role .addrole{display:none}.userenrolment .col_group .groups{margin-right:30px}.userenrolment .col_group .group{float:left;padding:3px;margin:3px;white-space:nowrap}.userenrolment .col_group .group a{margin-left:3px;cursor:pointer}.userenrolment .col_group .addgroup{float:right;width:18px;height:18px;margin:3px;text-align:center}.userenrolment .col_group .addgroup a img{vertical-align:bottom}.userenrolment .col_enrol .enrolment{float:left;padding:3px;margin:3px}.userenrolment .col_enrol .enrolment a{float:right;margin-left:3px}#page-enrol-users .enrol_user_buttons{float:right}#page-enrol-users .enrol_user_buttons .enrolusersbutton{display:inline;margin-left:1em}#page-enrol-users .enrol_user_buttons .enrolusersbutton div,#page-enrol-users .enrol_user_buttons .enrolusersbutton form{display:inline}#page-enrol-users .enrol_user_buttons .enrolusersbutton input{padding-right:6px;padding-left:6px}#page-enrol-users.dir-rtl .col_userdetails .subfield_picture{float:right}#page-enrol-users .user-enroller-panel .uep-search-results .user .details{width:237px}.dir-rtl .headermain{float:right}.dir-rtl .headermenu{float:left}.dir-rtl .loginbox .loginform .form-label{float:right;text-align:left}.dir-rtl .loginbox .loginform .form-input{text-align:right}.dir-rtl .yui3-menu-hidden{left:0}#page-admin-roles-define.dir-rtl #rolesform .felement{margin-right:180px}#page-message-edit.dir-rtl table.generaltable th.c0{text-align:right}.corelightbox{position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;background-color:#CCC}.corelightbox img{position:fixed;top:50%;left:50%}.mod-indent-1{margin-left:30px}.mod-indent-2{margin-left:60px}.mod-indent-3{margin-left:90px}.mod-indent-4{margin-left:120px}.mod-indent-5{margin-left:150px}.mod-indent-6{margin-left:180px}.mod-indent-7{margin-left:210px}.mod-indent-8{margin-left:240px}.mod-indent-9{margin-left:270px}.mod-indent-10{margin-left:300px}.mod-indent-11{margin-left:330px}.mod-indent-12{margin-left:360px}.mod-indent-13{margin-left:390px}.mod-indent-14{margin-left:420px}.mod-indent-15,.mod-indent-huge{margin-left:420px}.dir-rtl .mod-indent-1{margin-right:30px;margin-left:0}.dir-rtl .mod-indent-2{margin-right:60px;margin-left:0}.dir-rtl .mod-indent-3{margin-right:90px;margin-left:0}.dir-rtl .mod-indent-4{margin-right:120px;margin-left:0}.dir-rtl .mod-indent-5{margin-right:150px;margin-left:0}.dir-rtl .mod-indent-6{margin-right:180px;margin-left:0}.dir-rtl .mod-indent-7{margin-right:210px;margin-left:0}.dir-rtl .mod-indent-8{margin-right:240px;margin-left:0}.dir-rtl .mod-indent-9{margin-right:270px;margin-left:0}.dir-rtl .mod-indent-10{margin-right:300px;margin-left:0}.dir-rtl .mod-indent-11{margin-right:330px;margin-left:0}.dir-rtl .mod-indent-12{margin-right:360px;margin-left:0}.dir-rtl .mod-indent-13{margin-right:390px;margin-left:0}.dir-rtl .mod-indent-14{margin-right:420px;margin-left:0}.dir-rtl .mod-indent-15,.dir-rtl .mod-indent-huge{margin-right:420px;margin-left:0}.resourcecontent .mediaplugin_mp3 object{width:600px;height:25px}.resourcecontent audio.mediaplugin_html5audio{width:600px}.resourceimage{max-width:100%}.mediaplugin_mp3 object{width:300px;height:15px}audio.mediaplugin_html5audio{width:300px}.core_media_preview.pagelayout-embedded #content{padding:0}.core_media_preview.pagelayout-embedded #maincontent{height:0}.core_media_preview.pagelayout-embedded .mediaplugin{margin:0}.dir-rtl .ygtvtn,.dir-rtl .ygtvtm,.dir-rtl .ygtvtmh,.dir-rtl .ygtvtmhh,.dir-rtl .ygtvtp,.dir-rtl .ygtvtph,.dir-rtl .ygtvtphh,.dir-rtl .ygtvln,.dir-rtl .ygtvlm,.dir-rtl .ygtvlmh,.dir-rtl .ygtvlmhh,.dir-rtl .ygtvlp,.dir-rtl .ygtvlph,.dir-rtl .ygtvlphh,.dir-rtl .ygtvdepthcell,.dir-rtl .ygtvok,.dir-rtl .ygtvok:hover,.dir-rtl .ygtvcancel,.dir-rtl .ygtvcancel:hover{width:18px;height:22px;cursor:pointer;background-image:url([[pix:theme|yui2-treeview-sprite-rtl]]);background-repeat:no-repeat}.dir-rtl .ygtvtn{background-position:0 -5600px}.dir-rtl .ygtvtm{background-position:0 -4000px}.dir-rtl .ygtvtmh,.dir-rtl .ygtvtmhh{background-position:0 -4800px}.dir-rtl .ygtvtp{background-position:0 -6400px}.dir-rtl .ygtvtph,.dir-rtl .ygtvtphh{background-position:0 -7200px}.dir-rtl .ygtvln{background-position:0 -1600px}.dir-rtl .ygtvlm{background-position:0 0}.dir-rtl .ygtvlmh,.dir-rtl .ygtvlmhh{background-position:0 -800px}.dir-rtl .ygtvlp{background-position:0 -2400px}.dir-rtl .ygtvlph,.dir-rtl .ygtvlphh{background-position:0 -3200px}.dir-rtl .ygtvdepthcell{background-position:0 -8000px}.dir-rtl .ygtvok{background-position:0 -8800px}.dir-rtl .ygtvok:hover{background-position:0 -8844px}.dir-rtl .ygtvcancel{background-position:0 -8822px}.dir-rtl .ygtvcancel:hover{background-position:0 -8866px}.dir-rtl.yui-skin-sam .yui-panel .hd{text-align:left}.dir-rtl .yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd{text-align:right}.dir-rtl .clearlooks2.ie9 .mceAlert .mceMiddle span,.dir-rtl .clearlooks2 .mceConfirm .mceMiddle span{top:44px}.dir-rtl .o2k7Skin table,.dir-rtl .o2k7Skin tbody,.dir-rtl .o2k7Skin a,.dir-rtl .o2k7Skin img,.dir-rtl .o2k7Skin tr,.dir-rtl .o2k7Skin div,.dir-rtl .o2k7Skin td,.dir-rtl .o2k7Skin iframe,.dir-rtl .o2k7Skin span,.dir-rtl .o2k7Skin *,.dir-rtl .o2k7Skin .mceText,.dir-rtl .o2k7Skin .mceListBox .mceText{text-align:right}.path-rating .ratingtable{width:100%;margin-bottom:1em}.path-rating .ratingtable th.rating{width:100%}.path-rating .ratingtable td.rating,.path-rating .ratingtable td.time{text-align:center;white-space:nowrap}.initialbar a{padding-right:2px}.moodle-dialogue-base .moodle-dialogue-lightbox{background-color:#AAA}.moodle-dialogue-base .hidden,.moodle-dialogue-base .moodle-dialogue-hidden{display:none}.moodle-dialogue-base .moodle-dialogue{z-index:600!important;padding:0;margin:0;background:0;border:0}.moodle-dialogue-base .moodle-dialogue-wrap{margin-top:-3px;margin-left:-3px;background-color:#fff;border:1px solid #ccc;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;-webkit-box-shadow:5px 5px 20px 0 #666;-moz-box-shadow:5px 5px 20px 0 #666;box-shadow:5px 5px 20px 0 #666}.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd{padding:5px;margin:0;font-size:12px;font-weight:normal;letter-spacing:1px;color:#333;text-align:center;text-shadow:1px 1px 1px #fff;background:#ccc;background-color:#ebebeb;background-image:-moz-linear-gradient(top,#fff,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#ccc));background-image:-webkit-linear-gradient(top,#fff,#ccc);background-image:-o-linear-gradient(top,#fff,#ccc);background-image:linear-gradient(to bottom,#fff,#ccc);background-repeat:repeat-x;border-bottom:1px solid #bbb;-webkit-border-radius:10px 10px 0 0;-moz-border-radius:10px 10px 0 0;border-radius:10px 10px 0 0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffcccccc',GradientType=0);filter:dropshadow(color=#ffffff,offx=1,offy=1)}.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd h1{display:inline;padding:0;margin:0;font-size:100%;font-weight:bold}.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd .yui3-widget-buttons{padding:5px}.moodle-dialogue-base .closebutton{display:inline-block;float:right;width:25px;height:15px;padding:0;vertical-align:middle;cursor:pointer;background-image:url([[pix:theme|sprite]]);background-repeat:no-repeat;border-style:none}.dir-rtl .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd .yui3-widget-buttons{right:auto;left:0}.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-bd{padding:1em;overflow:auto;font-size:12px;line-height:2em;color:#555}.moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-content{padding:0;background:#FFF}.moodle-dialogue-confirm .confirmation-dialogue{text-align:center}.moodle-dialogue-confirm .confirmation-dialogue input{text-align:center}.moodle-dialogue-exception .moodle-exception-message{text-align:center}.moodle-dialogue-exception .moodle-exception-param label{font-weight:bold}.moodle-dialogue-exception .param-stacktrace label{background-color:#EEE;border:1px solid #ccc;border-bottom-width:0}.moodle-dialogue-exception .param-stacktrace pre{background-color:#fff;border:1px solid #ccc}.moodle-dialogue-exception .param-stacktrace .stacktrace-file{font-size:11.9px;color:navy}.moodle-dialogue-exception .param-stacktrace .stacktrace-line{font-size:11.9px;color:#b94a48}.moodle-dialogue-exception .param-stacktrace .stacktrace-call{font-size:90%;color:#333;border-bottom:1px solid #eee}.moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft{padding:0;margin:.7em 1em;font-size:12px;text-align:right;background-color:#FFF}.moodle-dialogue-confirm .confirmation-message{margin:.5em 1em}.moodle-dialogue-confirm .confirmation-dialogue input{min-width:80px}.moodle-dialogue-exception .moodle-exception-message{margin:1em}.moodle-dialogue-exception .moodle-exception-param{margin-bottom:.5em}.moodle-dialogue-exception .moodle-exception-param label{width:150px}.moodle-dialogue-exception .param-stacktrace label{display:block;padding:4px 1em;margin:0}.moodle-dialogue-exception .param-stacktrace pre{display:block;height:200px;overflow:auto}.moodle-dialogue-exception .param-stacktrace .stacktrace-file{display:inline-block;margin:4px 0}.moodle-dialogue-exception .param-stacktrace .stacktrace-line{display:inline-block;width:50px;margin:4px 1em}.moodle-dialogue-exception .param-stacktrace .stacktrace-call{padding-bottom:4px;padding-left:25px;margin-bottom:4px}.moodle-dialogue .moodle-dialogue-bd .content-lightbox{top:0;left:0;width:100%;height:100%;padding:10% 0;text-align:center;background-color:white;opacity:.75;filter:alpha(opacity=75)}.moodle-dialogue .tooltiptext{max-height:300px}#page-question-edit.dir-rtl a.container-close{right:auto;left:6px}.chooserdialoguebody,.choosertitle{display:none}.moodle-dialogue.chooserdialogue .moodle-dialogue-content .moodle-dialogue-ft{margin:0}.chooserdialogue .moodle-dialogue-wrap .moodle-dialogue-bd{padding:0;background:#f2f2f2;-webkit-border-bottom-right-radius:10px;border-bottom-right-radius:10px;-webkit-border-bottom-left-radius:10px;border-bottom-left-radius:10px;-moz-border-radius-bottomright:10px;-moz-border-radius-bottomleft:10px}.choosercontainer #chooseform .submitbuttons{margin:.7em 0;text-align:center}.choosercontainer #chooseform .submitbuttons input{min-width:100px;margin:0 .5em}.choosercontainer #chooseform .options{position:relative;border-bottom:1px solid #bbb}.jsenabled .choosercontainer #chooseform .alloptions{max-width:20.3em;overflow-x:hidden;overflow-y:auto;-webkit-box-shadow:inset 0 0 30px 0 #ccc;-moz-box-shadow:inset 0 0 30px 0 #ccc;box-shadow:inset 0 0 30px 0 #ccc}.dir-rtl.jsenabled .choosercontainer #chooseform .alloptions{max-width:18.3em}.choosercontainer #chooseform .moduletypetitle,.choosercontainer #chooseform .option,.choosercontainer #chooseform .nonoption{padding:0 1.6em 0 1.6em;margin-bottom:0}.choosercontainer #chooseform .moduletypetitle{padding-top:1.2em;padding-bottom:.4em;text-transform:uppercase}.choosercontainer #chooseform .option .typename,.choosercontainer #chooseform .option span.modicon img.icon,.choosercontainer #chooseform .nonoption .typename,.choosercontainer #chooseform .nonoption span.modicon img.icon{padding:0 0 0 .5em}.dir-rtl .choosercontainer #chooseform .option .typename,.dir-rtl .choosercontainer #chooseform .option span.modicon img.icon,.dir-rtl .choosercontainer #chooseform .nonoption .typename,.dir-rtl .choosercontainer #chooseform .nonoption span.modicon img.icon{padding:0 .5em 0 0}.choosercontainer #chooseform .option span.modicon img.icon,.choosercontainer #chooseform .nonoption span.modicon img.icon{width:24px;height:24px}.choosercontainer #chooseform .option input[type=radio],.choosercontainer #chooseform .option span.typename,.choosercontainer #chooseform .option span.modicon{vertical-align:middle}.choosercontainer #chooseform .option label{display:block;padding:.3em 0 .1em 0;border-bottom:1px solid #fff}.choosercontainer #chooseform .nonoption{padding-top:.3em;padding-bottom:.1em;padding-left:2.7em}.dir-rtl .choosercontainer #chooseform .nonoption{padding-right:2.7em;padding-left:0}.choosercontainer #chooseform .subtype{padding:0 1.6em 0 3.2em;margin-bottom:0}.dir-rtl .choosercontainer #chooseform .subtype{padding:0 3.2em 0 1.6em}.choosercontainer #chooseform .subtype .typename{margin:0 0 0 .2em}.dir-rtl .choosercontainer #chooseform .subtype .typename{margin:0 .2em 0 0}.jsenabled .choosercontainer #chooseform .instruction,.jsenabled .choosercontainer #chooseform .typesummary{position:absolute;top:0;right:0;bottom:0;left:20.3em;display:none;padding:1.6em;margin:0;overflow-x:hidden;overflow-y:auto;line-height:2em;background-color:#fff}.dir-rtl.jsenabled .choosercontainer #chooseform .instruction,.dir-rtl.jsenabled .choosercontainer #chooseform .typesummary{right:18.5em;left:0;border-right:1px solid grey}.jsenabled .choosercontainer #chooseform .instruction,.choosercontainer #chooseform .selected .typesummary{display:block}.choosercontainer #chooseform .selected{background-color:#fff;-webkit-box-shadow:0 0 10px 0 #ccc;-moz-box-shadow:0 0 10px 0 #ccc;box-shadow:0 0 10px 0 #ccc}.section-modchooser-link img.smallicon{padding:3px}.formlistingradio{padding-right:10px;padding-bottom:25px}.formlistinginputradio{float:left}.formlistingmain{min-height:225px}.formlisting{position:relative;padding:1px 19px 14px;margin:15px 0;background-color:white;border:1px solid #DDD;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.formlistingmore{position:absolute;right:-1px;bottom:-1px;padding:3px 7px;font-size:12px;font-weight:bold;color:#9da0a4;cursor:pointer;background-color:whiteSmoke;border:1px solid #ddd;-webkit-border-radius:4px 0 4px 0;-moz-border-radius:4px 0 4px 0;border-radius:4px 0 4px 0}.formlistingall{padding:0;margin:15px 0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.formlistingrow{top:50%;left:50%;float:left;width:150px;min-height:34px;padding:6px;cursor:pointer;background-color:#f7f7f9;border-right:1px solid #e1e1e8;border-bottom:1px solid;border-left:1px solid #e1e1e8;border-color:#e1e1e8;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}body.jsenabled .formlistingradio{display:none}body.jsenabled .formlisting{display:block}.formtable tbody th{font-weight:normal;text-align:right}.path-admin #assignrole{width:60%;margin-right:auto;margin-left:auto}.path-admin .admintable .leftalign{text-align:left}.environmenttable p.warn{color:#c09853;background-color:#fcf8e3}.environmenttable .error,.environmenttable span.warn,.environmenttable .ok{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.environmenttable .error:empty,.environmenttable span.warn:empty,.environmenttable .ok:empty{display:none}.environmenttable .error-important,.environmenttable span.warn-important,.environmenttable .ok-important{background-color:#b94a48}.environmenttable .error-important[href],.environmenttable span.warn-important[href],.environmenttable .ok-important[href]{background-color:#953b39}.environmenttable .error-warning,.environmenttable span.warn-warning,.environmenttable .ok-warning{background-color:#f89406}.environmenttable .error-warning[href],.environmenttable span.warn-warning[href],.environmenttable .ok-warning[href]{background-color:#c67605}.environmenttable .error-success,.environmenttable span.warn-success,.environmenttable .ok-success{background-color:#468847}.environmenttable .error-success[href],.environmenttable span.warn-success[href],.environmenttable .ok-success[href]{background-color:#356635}.environmenttable .error-info,.environmenttable span.warn-info,.environmenttable .ok-info{background-color:#3a87ad}.environmenttable .error-info[href],.environmenttable span.warn-info[href],.environmenttable .ok-info[href]{background-color:#2d6987}.environmenttable .error-inverse,.environmenttable span.warn-inverse,.environmenttable .ok-inverse{background-color:#333}.environmenttable .error-inverse[href],.environmenttable span.warn-inverse[href],.environmenttable .ok-inverse[href]{background-color:#1a1a1a}.environmenttable .error{background-color:#b94a48}.environmenttable span.warn{background-color:#f89406}.environmenttable .ok{background-color:#468847}.path-admin .admintable.environmenttable .name,.path-admin .admintable.environmenttable .info,.path-admin #assignrole .admintable .role,.path-admin #assignrole .admintable .userrole,.path-admin #assignrole .admintable .roleholder{white-space:nowrap}.path-admin .incompatibleblockstable td.c0{font-weight:bold}#page-admin-course-category .addcategory{padding:10px}#page-admin-course-index .editcourse{margin:20px auto}#page-admin-course-index .editcourse th,#page-admin-course-index .editcourse td{padding-right:10px;padding-left:10px}.timewarninghidden{display:none}.statusok,.statuswarning,.statusserious,.statuscritical{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.statusok:empty,.statuswarning:empty,.statusserious:empty,.statuscritical:empty{display:none}.statusok-important,.statuswarning-important,.statusserious-important,.statuscritical-important{background-color:#b94a48}.statusok-important[href],.statuswarning-important[href],.statusserious-important[href],.statuscritical-important[href]{background-color:#953b39}.statusok-warning,.statuswarning-warning,.statusserious-warning,.statuscritical-warning{background-color:#f89406}.statusok-warning[href],.statuswarning-warning[href],.statusserious-warning[href],.statuscritical-warning[href]{background-color:#c67605}.statusok-success,.statuswarning-success,.statusserious-success,.statuscritical-success{background-color:#468847}.statusok-success[href],.statuswarning-success[href],.statusserious-success[href],.statuscritical-success[href]{background-color:#356635}.statusok-info,.statuswarning-info,.statusserious-info,.statuscritical-info{background-color:#3a87ad}.statusok-info[href],.statuswarning-info[href],.statusserious-info[href],.statuscritical-info[href]{background-color:#2d6987}.statusok-inverse,.statuswarning-inverse,.statusserious-inverse,.statuscritical-inverse{background-color:#333}.statusok-inverse[href],.statuswarning-inverse[href],.statusserious-inverse[href],.statuscritical-inverse[href]{background-color:#1a1a1a}.statusok{background-color:#468847}.statuswarning{background-color:#c09853}.statusserious{background-color:#f89406}.statuscritical{background-color:#b94a48}#page-admin-report-capability-index #capabilitysearch{width:30em}#page-admin-report-backups-index .backup-error,#page-admin-report-backups-index .backup-unfinished{color:#b94a48}#page-admin-report-backups-index .backup-skipped,#page-admin-report-backups-index .backup-ok{color:#468847}#page-admin-report-backups-index .backup-warning{color:#c09853}#page-admin-qtypes .disabled,#page-admin-qbehaviours .disabled{color:#999}#page-admin-qtypes #qtypes div,#page-admin-qtypes #qtypes form,#page-admin-qbehaviours #qbehaviours div,#page-admin-qbehaviours #qbehaviours form{display:inline}#page-admin-qtypes #qtypes img.spacer,#page-admin-qbehaviours #qbehaviours img.spacer{width:16px}img.iconsmall{padding:.3em;margin:0}#page-admin-qbehaviours .cell.c3,#page-admin-qtypes .cell.c3{font-size:10.5px}#page-admin-lang .generalbox,#page-admin-course-index .singlebutton,#page-admin-course-index .addcategory,#page-course-index .buttons,#page-course-category .buttons,#page-admin-course-category .addcategory,#page-admin-stickyblocks .generalbox,#page-admin-maintenance .buttons,#page-admin-course-index .buttons,#page-admin-course-category .buttons,#page-admin-index .copyright,#page-admin-index .copyrightnotice,#page-admin-index .adminerror,#page-admin-index .availableupdatesinfo,#page-admin-index .adminerror .singlebutton,#page-admin-index .adminwarning .singlebutton,#page-admin-index #layout-table .singlebutton{margin-bottom:1em;text-align:center}.path-admin-roles .capabilitysearchui{margin-right:auto;margin-left:auto;text-align:left}#page-admin-roles-define .topfields{margin:1em 0 2em}#page-admin-roles-define .capdefault{background-color:#eee;border:1px solid #cecece}#page-filter-manage .backlink,.path-admin-roles .backlink{margin-top:1em}#page-admin-roles-explain #chooseuser h3,#page-admin-roles-usersroles .contextname{margin-top:0}#page-admin-roles-explain #chooseusersubmit{margin-top:0;text-align:center}#page-admin-roles-usersroles p{margin:0}#page-admin-roles-override .cell.c1,#page-admin-roles-assign .cell.c3,#page-admin-roles-assign .cell.c1{padding-top:.75em}#page-admin-roles-override .overridenotice,#page-admin-roles-define .definenotice{margin:1em 10% 2em 10%;text-align:left}#notice{width:60%;min-width:220px;margin:auto}#page-admin-index .releasenoteslink,#page-admin-index .adminwarning,#page-admin-index .maturitywarning,#page-admin-index .maturityinfo{width:60%;min-width:220px;padding:8px 35px 8px 14px;margin:auto;margin-bottom:20px;color:#c09853;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}#page-admin-index .maturitywarning,#page-admin-index .adminwarning.maturityinfo.maturity50{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}#page-admin-index .adminwarning.availableupdatesinfo,#page-admin-index .releasenoteslink{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo span{display:block}#page-admin-index .updateplugin div,#page-admin-plugins .updateplugin div{margin-bottom:.5em}#page-admin-index .updateplugin .updatepluginconfirmexternal,#page-admin-plugins .updateplugin .updatepluginconfirmexternal{padding:1em;background-color:#f2dede;border:1px solid #eed3d7}#page-admin-user-user_bulk #users .fgroup{white-space:nowrap}#page-admin-report-stats-index .graph{margin-bottom:1em;text-align:center}#page-admin-report-courseoverview-index .graph{margin-bottom:1em;text-align:center}#page-admin-lang .translator{border-style:solid;border-width:1px}.path-admin .roleassigntable{width:100%}.path-admin .roleassigntable td{padding:.2em .3em;vertical-align:top}.path-admin .roleassigntable p{margin:.2em 0;text-align:left}.path-admin .roleassigntable #existingcell,.path-admin .roleassigntable #potentialcell{width:42%}.path-admin .roleassigntable #existingcell p>label:first-child,.path-admin .roleassigntable #potentialcell p>label:first-child{font-weight:bold}.path-admin .roleassigntable #buttonscell{width:16%}.path-admin .roleassigntable #buttonscell #assignoptions{font-size:10.5px}.path-admin .roleassigntable #removeselect_wrapper,.path-admin .roleassigntable #addselect_wrapper{width:100%}.path-admin table.rolecap tr.rolecap th{font-weight:normal;text-align:left}.path-admin.dir-rtl table.rolecap tr.rolecap th{text-align:right}.path-admin .rolecap .hiddenrow{display:none}.path-admin #defineroletable .rolecap .inherit,.path-admin #defineroletable .rolecap .allow,.path-admin #defineroletable .rolecap .prevent,.path-admin #defineroletable .rolecap .prohibit{min-width:3.5em;padding:0;text-align:center}.path-admin .rolecap .cap-name,.path-admin .rolecap .note{display:block;font-size:10.5px;font-weight:normal;white-space:nowrap}.path-admin .rolecap label{display:block;padding:.5em;margin:0;text-align:center}.plugincheckwrapper{width:100%}.environmentbox{margin-top:1em}#mnetconfig table{margin-right:auto;margin-left:auto}.environmenttable .cell{padding:.15em .5em}.environmenttable img.iconhelp{padding-right:.3em}.dir-rtl .environmenttable img.iconhelp{padding-right:0;padding-left:.3em}#trustedhosts .generaltable{width:500px;margin-right:auto;margin-left:auto}#trustedhosts .standard{width:auto}#adminsettings legend{display:none}#adminsettings fieldset.error{margin:.2em 0 .5em 0}#adminsettings fieldset.error legend{display:block}.dir-rtl #admin-spelllanguagelist textarea,#page-admin-setting-editorsettingstinymce.dir-rtl .form-textarea textarea{text-align:left;direction:ltr}.form-item .form-setting .form-htmlarea{display:inline;width:640px}.form-item .form-setting .form-htmlarea .htmlarea{display:block;width:640px}.form-item .form-setting .form-multicheckbox ul{padding:0;margin:7px 0 0 0;list-style:none}.form-item .form-setting .defaultsnext{display:inline;margin-right:.5em}.form-item .form-setting .locked-checkbox{display:inline;margin-right:.2em;margin-left:.5em}.dir-rtl .form-item .form-setting .locked-checkbox{display:inline;margin-right:.5em;margin-left:.2em}.form-item .form-setting .form-password .unmask,.form-item .form-setting .form-defaultinfo{display:inline-block}.form-item .pathok,.form-item .patherror{margin-left:.5em}#admin-devicedetectregex table{border:0}#admin-emoticons td input{width:8em}#admin-emoticons td.c0 input{width:4em}#adminthemeselector .selectedtheme td.c0{border:1px solid;border-right-width:0}#adminthemeselector .selectedtheme td.c1{border:1px solid;border-left-width:0}.admin_colourpicker,.admin_colourpicker_preview{display:none}.jsenabled .admin_colourpicker_preview{display:inline}.jsenabled .admin_colourpicker{display:block;width:410px;height:102px;margin-bottom:10px}.admin_colourpicker .loadingicon{margin-left:auto;vertical-align:middle}.admin_colourpicker .colourdialogue{float:left;border:1px solid #000}.admin_colourpicker .previewcolour{margin-left:301px;border:1px solid #000}.admin_colourpicker .currentcolour{margin-left:301px;border:1px solid #000;border-top-width:0}.dir-rtl .form-item .form-setting,.dir-rtl .form-item .form-label,.dir-rtl .form-item .form-description,.dir-rtl.path-admin .roleassigntable p{text-align:right}#page-admin-index #notice .checkforupdates{text-align:center}#plugins-check-info{margin:1em;text-align:center}#plugins-check .displayname .pluginicon{width:16px}#plugins-check .status-new .status{background-color:#dff0d8}#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity200 .info.release,#plugins-check .status-upgrade .status,#plugins-check .status-delete .status{background-color:#d9edf7}#plugins-control-panel .extension .source,#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity100 .info.release,#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity150 .info.release,.pluginupdateinfo.maturity100,.pluginupdateinfo.maturity150,#plugins-check .extension .source{background-color:#fcf8e3}#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo.maturity50 .info.release,#plugins-control-panel .missingfromdisk .pluginname,.pluginupdateinfo.maturity50,#plugins-check .requires-failed,#plugins-check .missingfromdisk .displayname,#plugins-check .status-missing .status,#plugins-check .status-downgrade .status{background-color:#f2dede}#plugins-control-panel .disabled .availability{background-color:#eee}#plugins-check .standard .source,#plugins-check .status-nodb .status,#plugins-check .status-uptodate .status,#plugins-check .requires-ok{color:#999}#plugins-check .requires ul{margin:0;font-size:10.5px}#plugins-check .status .pluginupdateinfo{padding:5px 10px;margin:10px;background-color:#d9edf7;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}#plugins-check .status .pluginupdateinfo span,#plugins-check .status .pluginupdateinfo a{padding-right:1em}#page-admin-index .upgradepluginsinfo{text-align:center}#page-admin-plugins .checkforupdates{margin:0 auto 1em;text-align:center}#plugins-control-panel .requiredby,#plugins-control-panel .pluginname .componentname{font-size:11.9px;color:#999}#plugins-control-panel .pluginname .componentname{margin-left:22px}#plugins-overview-filter .filter-item,#plugins-overview-panel .info,#plugins-control-panel .actions a{padding:0 10px}#page-admin-index .adminwarning.availableupdatesinfo .moodleupdateinfo .separator,#plugins-check .status .pluginupdateinfo .separator,#page-admin-plugins .separator{border-left:1px dotted #999}#plugins-control-panel .msg td{text-align:center}#plugins-overview-filter,#plugins-overview-panel{margin:1em auto;text-align:center}#plugins-overview-panel .info.updatable{margin-left:10px;font-weight:bold;background-color:#d9edf7;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}#plugins-overview-filter .filter-item.active{font-weight:bold}#plugins-control-panel .displayname img.icon{padding-top:0;padding-bottom:0}#plugins-control-panel .actions .uninstall{color:#b94a48}#plugins-control-panel .notes .pluginupdateinfo{padding:5px 10px;margin:10px;background-color:#d9edf7;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}#plugins-control-panel .notes .pluginupdateinfo span,#plugins-control-panel .notes .pluginupdateinfo a{padding-right:1em}.dir-rtl #plugins-check .pluginupdateinfo{text-align:center;direction:ltr}.dir-rtl #plugins-check .rootdir,.dir-rtl #plugins-check .requires-ok{text-align:left;direction:ltr}#page-admin-mnet-peers .box.deletedhosts{margin-bottom:1em;font-size:11.9px}#page-admin-mnet-peers .mform .certdetails{background-color:white}#page-admin-mnet-peers .mform .deletedhostinfo{padding:4px;margin-bottom:5px;background-color:#f2dede;border:2px solid #eed3d7}#core-cache-plugin-summaries table,#core-cache-store-summaries table{width:100%}#core-cache-lock-summary table,#core-cache-definition-summaries table,#core-cache-mode-mappings table{margin:0 auto}#core-cache-store-summaries .default-store td{font-style:italic;color:#333}#core-cache-rescan-definitions,#core-cache-mode-mappings .edit-link{margin-top:.5em;text-align:center}.tinymcesubplugins img.icon{padding-top:0;padding-bottom:0}#page-admin-roles-assign div.box.generalbox{padding:8px 35px 8px 14px;margin-bottom:20px;color:#c09853;color:#b94a48;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;background-color:#f2dede;border:1px solid #fbeed5;border-color:#eed3d7;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.calendartable{width:100%}.calendartable th,.calendartable td{width:14%;text-align:center;vertical-align:top;border:0}.calendar_event_course{background-color:#ffd3bd}.calendar_event_global{background-color:#d6f8cd}.calendar_event_group{background-color:#fee7ae}.calendar_event_user{background-color:#dce7ec}.path-calendar .calendar-controls .previous,.path-calendar .calendar-controls .next,.path-calendar .calendar-controls .current{display:block;float:left;width:12%}.path-calendar .calendar-controls .previous{text-align:left}.path-calendar .calendar-controls .current{width:76%;text-align:center}.path-calendar .calendar-controls .next{text-align:right}.path-calendar .maincalendar{padding:0;vertical-align:top}.path-calendar .maincalendar .bottom{padding:5px 0 0 0;text-align:center}.path-calendar .maincalendar .heightcontainer{position:relative;height:100%}.path-calendar .maincalendar .calendarmonth{width:98%;margin:10px auto}.path-calendar .maincalendar .calendarmonth ul{margin:0}.path-calendar .maincalendar .calendarmonth ul li{margin-top:4px;list-style-type:none}.path-calendar .maincalendar .calendarmonth td{height:5em}.path-calendar .maincalendar .calendar-controls .previous,.path-calendar .maincalendar .calendar-controls .next{width:30%}.path-calendar .maincalendar .calendar-controls .current{width:39.95%}.path-calendar .maincalendar .controls{width:98%;margin:10px auto}.path-calendar .maincalendar .eventlist .event{width:100%;margin-bottom:10px;border-collapse:separate;border-spacing:0;border-style:solid;border-width:1px}.path-calendar .maincalendar .eventlist .event .topic .name{float:left}.dir-rtl.path-calendar .maincalendar .eventlist .event .topic .name,.path-calendar .maincalendar .eventlist .event .topic .date{float:right}.dir-rtl.path-calendar .maincalendar .eventlist .event .topic .date{float:left}.path-calendar .maincalendar .eventlist .event .subscription,.path-calendar .maincalendar .eventlist .event .course{float:left;clear:left}.dir-rtl.path-calendar .maincalendar .eventlist .event .subscription,.dir-rtl.path-calendar .maincalendar .eventlist .event .course{float:right;clear:right}.path-calendar .maincalendar .eventlist .event .side{width:32px}.path-calendar .maincalendar .eventlist .event .commands a{margin:0 3px}.path-calendar .maincalendar .header{overflow:hidden}.path-calendar .maincalendar .header .buttons{float:right}.dir-rtl.path-calendar .maincalendar .header .buttons{float:left}.path-calendar .filters table{width:100%;border-collapse:separate;border-spacing:2px}#page-calendar-export .indent{padding-left:20px}.path-calendar .cal_courses_flt label{margin-right:.45em}.dir-rtl.path-calendar .cal_courses_flt label{margin-right:0;margin-left:.45em}.block .minicalendar th,.block .minicalendar td{padding:2px;font-size:.8em}.block .minicalendar{max-width:280px;margin-right:auto;margin-left:auto}.block .minicalendar td.weekend{color:#A00}.block .calendar-controls .previous{display:block;float:left;width:12%;text-align:left}.block .calendar-controls .current{display:block;float:left;width:76%;text-align:center}.block .calendar-controls .next{display:block;float:left;width:12%;text-align:right}.block .calendar_filters ul{margin:0;list-style:none}.block .calendar_filters li{margin-bottom:.2em}.block .calendar_filters li span img{padding:0 .2em}.block .calendar_filters .eventname{padding-left:.2em}.dir-rtl .block .calendar_filters .eventname{padding-right:.2em;padding-left:0}.block .content h3.eventskey{margin-top:.5em}.section_add_menus{text-align:right}.dir-rtl .section_add_menus{text-align:left}.section_add_menus .horizontal div,.section_add_menus .horizontal form{display:inline}.section_add_menus optgroup{font-style:italic;font-weight:normal}.section_add_menus .urlselect{margin-left:.4em}.dir-rtl .section_add_menus .urlselect{margin-right:.4em;margin-left:0}.section_add_menus .urlselect select{margin-left:.2em}.dir-rtl .section_add_menus .urlselect select{margin-right:.2em;margin-left:0}.section_add_menus .urlselect img.iconhelp{padding:0;margin:0;vertical-align:text-bottom}.site-topic ul.section,.course-content ul.section{margin:1em}.section .activity img.activityicon{margin-right:6px;vertical-align:text-bottom}.dir-rtl .section .activity img.activityicon{margin-right:0;margin-left:6px}.section .activity .activityinstance,.section .activity .activityinstance div{display:inline-block}.editing .section .activity .activityinstance{min-width:40%}.section .activity .activityinstance>a{display:block}.editing_show+.editing_assign,.editing_hide+.editing_assign{margin-left:20px}.section .activity .commands{display:inline;white-space:nowrap}.section .activity.modtype_label .commands{padding-left:22px;margin-left:40%}.section li.activity{padding:.2em;clear:both}.section .activity .activityinstance .groupinglabel{padding-left:.45em}.section .activity .availabilityinfo,.section .activity .contentafterlink{margin-top:.5em;margin-left:30px}.dir-rtl .section .activity .availabilityinfo,.dir-rtl .section .activity .contentafterlink{margin-right:30px;margin-left:0}.section .activity .contentafterlink p{margin:.5em 0}.editing .section .activity:hover{background-color:#eee}.course-content .section-summary{margin-top:5px;list-style:none;border:1px solid #DDD}.course-content .section-summary .section-title{margin:2px 5px 10px 5px}.course-content .section-summary .summarytext{margin:2px 5px 2px 5px}.course-content .section-summary .section-summary-activities .activity-count{display:inline-block;margin:3px;font-size:11.9px;color:#999;white-space:nowrap}.course-content .section-summary .summary{margin-top:5px}.course-content .single-section{margin-top:1em}.course-content .single-section .section-navigation{display:block;padding:.5em;margin-bottom:-0.5em}.course-content .single-section .section-navigation .title{clear:both;font-size:108%;font-weight:bold}.course-content .single-section .section-navigation .mdl-left{float:left;margin-right:1em;font-weight:normal}.dir-rtl .course-content .single-section .section-navigation .mdl-left{float:right}.course-content .single-section .section-navigation .mdl-left .larrow{margin-right:.1em}.course-content .single-section .section-navigation .mdl-right{float:right;margin-left:1em;font-weight:normal}.dir-rtl .course-content .single-section .section-navigation .mdl-right{float:left}.course-content .single-section .section-navigation .mdl-right .rarrow{margin-left:.1em}.course-content .single-section .section-navigation .mdl-bottom{margin-top:0}.course-content ul li.section.main{margin-top:0;border-bottom:2px solid #eee}.course-content ul li.section.hidden{opacity:.5}.course-content ul.topics li.section .content,.course-content ul.weeks li.section .content{padding:0;margin-right:20px;margin-left:20px}.course-content{margin-top:0}.course-content ul.topics li.section{padding-bottom:20px}.course-content ul.topics li.section .summary{margin-left:25px}.path-course-view .completionprogress{margin-left:25px}.path-course-view .completionprogress{position:relative;z-index:1000;display:block;float:right;height:20px}#page-site-index .subscribelink{text-align:right}#page-site-index .headingblock{margin-bottom:9px}.path-course-view a.reduce-sections{padding-left:.2em}.path-course-view .headingblock{margin-bottom:9px}.path-course-view .subscribelink{text-align:right}.path-course-view .unread{margin-left:3em}.path-course-view .block.drag .header{cursor:move}.path-course-view .completionprogress{text-align:right}.dir-rtl.path-course-view .completionprogress{text-align:left}.path-course-view .single-section .completionprogress{margin-right:5px}.path-course-view .section .summary{line-height:normal}.path-site li.activity>div,.path-course-view li.activity>div{position:relative}.path-course-view li.activity span.autocompletion,.path-course-view li.activity form.togglecompletion{float:right}.path-course-view li.activity form.togglecompletion .ajaxworking{width:16px;height:16px;background:url([[pix:i/ajaxloader]]) no-repeat}.dir-rtl.path-course-view li.activity form.togglecompletion,.dir-rtl.path-course-view li.activity span.autocompletion{float:left}.dir-rtl.path-course-view .completionprogress{float:none}.dir-rtl.path-course-view li.activity form.togglecompletion .ajaxworking{right:-22px}li.section.hidden span.commands a.editing_hide,li.section.hidden span.commands a.editing_show{cursor:default}ul.weeks h3.sectionname{white-space:nowrap}.editing ul.weeks h3.sectionname{white-space:normal}.section img.movetarget{width:80px;height:16px}#page-course-enrol .generalbox,#page-course-enrol .coursebox{margin-top:20px}#page-course-pending .singlebutton,#page-course-category #renameform,#page-course-category #themeform,#page-course-category #coursesearch,#page-course-category .singlebutton,#page-course-editsection .singlebutton{text-align:center}#page-course-category #movecourses td img{margin:0 .22em;vertical-align:text-bottom}#page-course-category #movecourses td img.icon{padding:0}#coursesearch,#coursesearch2{margin-top:1em;text-align:center}#page-course-info .generalbox.icons{text-align:center}#page-course-info .generalbox.info{margin-right:auto;margin-left:auto}#page-course-pending .pendingcourserequests{margin-bottom:1em}#page-course-pending .pendingcourserequests .singlebutton{display:inline}#page-course-pending .pendingcourserequests .cell{padding:0 5px}#page-course-pending .pendingcourserequests .cell.c6{white-space:nowrap}.coursebox{padding:5px;margin-bottom:15px;border:1px dotted #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.coursebox .summary .category{text-align:right}.coursebox .teachers li{padding:0;margin:0;list-style-type:none}.coursebox .enrolmenticons img{margin-right:.45em}.coursebox .enrolmenticons{padding:3px;margin-top:.3em;border:1px dotted #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.coursebox h3.name{margin:0}.coursebox .info,.coursebox .summary{display:block;float:none;float:left;width:none;min-height:30px;padding:0;margin:0;margin-left:2.76243%;border:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.coursebox .summary{margin-top:5px}.categorylist .category .numberofcourse{font-size:11.9px}.categorylist .category{padding-top:5px;padding-bottom:5px}.categorylist .info,.categorylist .name,.categorylist .category .image{display:inline-block;margin-right:.2em;margin-left:.2em}.categorylist .course{padding-left:24px;margin-bottom:.5em;line-height:1.5em}.categorylist .indentation{margin-left:24px}.course ul.section{padding:0;margin:5px}.weeks-format,.topics-format{min-width:763px;margin-top:8px}.categoryboxcontent{border-style:solid;border-width:1px}.course_category_tree .controls{visibility:hidden}.course_category_tree .controls div{display:inline;cursor:pointer}.course_category_tree .category.with_children>.category_label{background-image:url([[pix:moodle|t/expanded]]);background-repeat:no-repeat}.course_category_tree .category_label{padding-left:13px}.course_category_tree .category .category{margin:5px 0}.course_category_tree .category .courses{padding-left:16px}.course_category_tree .category .courses .course_link{display:block;padding-left:21px;background-image:url([[pix:moodle|i/course]]);background-repeat:no-repeat}.course_category_tree .category .course{position:relative}.course_category_tree .category .course_info{position:absolute;top:0;right:0}.dir-rtl .course_category_tree .category .course_info{position:static}.dir-rtl .course_category_tree .category .course_info a,.dir-rtl .course_category_tree .category .course_info div{float:right}.dir-rtl .course_category_tree .controls div{padding:7px}.course_category_tree .category .course_info img{margin-left:.45em}.dir-rtl .course_category_tree .category .course_info img{margin-right:.45em;margin-left:0}.jsenabled .course_category_tree .controls{visibility:visible}.jsenabled .course_category_tree .category.with_children.collapsed .category_label{background-image:url([[pix:moodle|t/collapsed]])}.jsenabled .course_category_tree .category.with_children.collapsed .subcategories,.jsenabled .course_category_tree .category.with_children.collapsed .courses{display:none}.dir-rtl .coursebox .info{float:right;text-align:right}.dir-rtl .coursebox .summary{text-align:right}.dir-rtl .course_category_tree .category.with_children>.category_label{padding-right:18px;background-position:center right}.dir-rtl .course_category_tree .category_label,.dir-rtl .course_category_tree .category .course{padding-right:18px}.dir-rtl.jsenabled .course_category_tree .category.with_children.collapsed .category_label{background-image:url([[pix:moodle|t/collapsed_rtl]])}.dir-rtl .course_category_tree .category .courses .course_link{padding-right:18px;background-position:center right}.dir-rtl .categorylist .course{padding-right:18px}#page-course-index.dir-rtl .category .image{padding-right:0;padding-left:5px}#page-course-index.dir-rtl .indentation{padding-right:30px;padding-left:0}table.category_subcategories{margin-bottom:1em}table.category_subcategories td{white-space:nowrap}span.editinstructions{position:absolute;top:0;left:0;z-index:9999;padding:.1em .4em;margin-top:-22px;margin-left:30px;font-size:11.9px;line-height:16px;color:#3a87ad;text-decoration:none;background-color:#d9edf7;border:1px solid #bce8f1;-webkit-box-shadow:2px 2px 5px 1px #ccc;-moz-box-shadow:2px 2px 5px 1px #ccc;box-shadow:2px 2px 5px 1px #ccc}.dir-rtl span.editinstructions{right:32px;left:auto}input.titleeditor{width:330px;vertical-align:text-bottom}#dndupload-status{position:absolute;z-index:9999;z-index:0;width:40%;padding:6px;margin:0 30%;color:#3a87ad;text-align:center;background:#d9edf7;border:1px solid #bce8f1;-webkit-border-bottom-right-radius:8px;border-bottom-right-radius:8px;-webkit-border-bottom-left-radius:8px;border-bottom-left-radius:8px;-moz-border-radius-bottomright:8px;-moz-border-radius-bottomleft:8px;-webkit-box-shadow:2px 2px 5px 1px #ccc;-moz-box-shadow:2px 2px 5px 1px #ccc;box-shadow:2px 2px 5px 1px #ccc}.dndupload-preview{padding:.3em;margin-top:.2em;color:#909090;list-style:none;border:1px dashed #909090}.dndupload-preview img.icon{padding:0;vertical-align:text-bottom}.dndupload-progress-outer{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.dndupload-progress-inner{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.dndupload-hidden{display:none}.filemanager,.filepicker,.file-picker{font-size:11px}.filemanager a,.file-picker a,.filemanager a:hover,.file-picker a:hover{color:#555;text-decoration:none}.filemanager input[type="text"],.file-picker input[type="text"]{width:265px}.fp-content-center{display:table-cell;width:100%;height:100%;vertical-align:middle}.fp-content-hidden{visibility:hidden}.yui3-panel-focused{outline:0}#filesskin .yui3-panel-content{display:inline-block;*display:inline;padding-bottom:20px;background:#f2f2f2;border:1px solid #fff;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;*zoom:1;-webkit-box-shadow:5px 5px 20px 0 #666;-moz-box-shadow:5px 5px 20px 0 #666;box-shadow:5px 5px 20px 0 #666}#filesskin .yui3-widget-hd{padding:5px;font-size:12px;letter-spacing:1px;color:#333;text-align:center;text-shadow:1px 1px 1px #fff;background-color:#ebebeb;background-image:-moz-linear-gradient(top,#fff,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#ccc));background-image:-webkit-linear-gradient(top,#fff,#ccc);background-image:-o-linear-gradient(top,#fff,#ccc);background-image:linear-gradient(to bottom,#fff,#ccc);background-repeat:repeat-x;border-bottom:1px solid #bbb;-webkit-border-radius:10px 10px 0 0;-moz-border-radius:10px 10px 0 0;border-radius:10px 10px 0 0;filter:dropshadow(color=#ffffff,offx=1,offy=1);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffcccccc',GradientType=0)}.fp-panel-button{display:inline-block;*display:inline;padding:3px 20px 2px 20px;margin:10px;text-align:center;background:#fff;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;*zoom:1;-webkit-box-shadow:2px 2px 3px .1px #999;-moz-box-shadow:2px 2px 3px .1px #999;box-shadow:2px 2px 3px .1px #999}#filesskin .file-picker.fp-generallayout{position:relative;width:859px;background:#fff;border:1px solid #ccc;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.file-picker .fp-repo-area{position:absolute;top:26px;bottom:1px;display:inline-block;*display:inline;width:180px;overflow:auto;border-right:1px solid #bbb;*zoom:1}.dir-rtl .file-picker .fp-repo-area{border-right:0;border-left:1px solid #bbb}.file-picker .fp-repo-items{display:inline-block;*display:inline;margin-left:181px;vertical-align:top;*zoom:1}.file-picker .fp-navbar{min-height:22px;padding:5px 8px;background:#f2f2f2;border-bottom:1px solid #bbb}.file-picker .fp-content{width:678px;height:477px;margin-bottom:-14px;overflow:auto;clear:both;background:#fff}.dir-rtl .file-picker .fp-repo-items{margin-right:181px}.file-picker .fp-content-loading{display:table;width:100%;height:100%;text-align:center}.file-picker .fp-content .fp-object-container{width:98%;height:98%}.dir-rtl .file-picker .fp-list{text-align:right}.dir-rtl .file-picker .fp-toolbar{padding:0}.dir-rtl .file-picker .fp-list{text-align:right}.dir-rtl .file-picker .fp-repo-name{display:inline}.dir-rtl .file-picker .fp-pathbar{display:block;text-align:right;border-top:0}.dir-rtl .file-picker div.bd{text-align:right}.dir-rtl #filemenu .yuimenuitemlabel{text-align:right}.dir-rtl .filepicker .yui-layout-unit-left{left:500px}.dir-rtl .filepicker .yui-layout-unit-center{left:0}.dir-rtl .filemanager-toolbar a{padding:0}.file-picker .fp-list{float:left;width:100%;padding:0;margin:0;list-style-type:none}.dir-rtl .file-picker .fp-list{float:left;text-align:right}.file-picker .fp-list .fp-repo a{display:block;padding:.5em .7em}.file-picker .fp-list .fp-repo.active{background:#f2f2f2}.file-picker .fp-list .fp-repo-icon{padding:0 7px 0 5px}.fp-toolbar{display:table-row;float:left;line-height:22px}.dir-rtl .fp-toolbar{float:right}.fp-toolbar.empty{display:none}.fp-toolbar .disabled{display:none}.fp-toolbar div{display:inline-block;*display:inline;padding:0 2px;padding-right:10px;*zoom:1}.dir-rtl .fp-toolbar div{width:100px}.fp-toolbar img{margin-right:5px;vertical-align:-15%}.fp-toolbar .fp-tb-search{width:228px;height:14px}.fp-toolbar .fp-tb-search input{width:200px;height:16px;padding:2px 6px 1px 20px;background:#fff url('[[pix:a/search]]') no-repeat 3px 3px;border:1px solid #bbb}.fp-viewbar{float:right;width:69px;height:22px;margin-right:8px}.dir-rtl .fp-toolbar img{vertical-align:-35%}.dir-rtl .fp-viewbar{float:left;width:100px}.fp-vb-icons{display:inline-block;*display:inline;width:22px;height:22px;background:url('[[pix:theme|fp/view_icon_active]]') no-repeat 0 0;*zoom:1}.dir-rtl .fp-vb-icons{display:block;float:left;margin-right:4px;background:url('[[pix:theme|fp/view_icon_active]]') no-repeat 0 0}.fp-vb-icons.checked{background:url('[[pix:theme|fp/view_icon_selected]]')}.dir-rtl .fp-vb-icons.checked{display:block;float:left;margin-right:4px;background:url('[[pix:theme|fp/view_icon_selected]]')}.fp-viewbar.disabled .fp-vb-icons{background:url('[[pix:theme|fp/view_icon_inactive]]')}.fp-vb-details{display:inline-block;*display:inline;width:23px;height:22px;margin-left:-4px;background:url('[[pix:theme|fp/view_list_active]]') no-repeat 0 0;*zoom:1}.dir-rtl .fp-vb-details{display:block;float:left;margin-right:4px;background:url('[[pix:theme|fp/view_list_active]]') no-repeat 0 0}.fp-vb-details.checked{background:url('[[pix:theme|fp/view_list_selected]]')}.dir-rtl .fp-vb-details.checked{display:block;float:left;margin-right:4px;background:url('[[pix:theme|fp/view_list_selected]]')}.fp-viewbar.disabled .fp-vb-details{background:url('[[pix:theme|fp/view_list_inactive]]')}.fp-vb-tree{display:inline-block;*display:inline;width:23px;height:22px;margin-left:-4px;background:url('[[pix:theme|fp/view_tree_active]]') no-repeat 0 0;*zoom:1}.dir-rtl .fp-vb-tree{display:block;float:left;margin-right:4px;background:url('[[pix:theme|fp/view_tree_active]]') no-repeat 0 0}.fp-vb-tree.checked{background:url('[[pix:theme|fp/view_tree_selected]]')}.dir-rtl .fp-vb-tree.checked{display:block;float:left;margin-right:4px;background:url('[[pix:theme|fp/view_tree_selected]]')}.fp-viewbar.disabled .fp-vb-tree{background:url('[[pix:theme|fp/view_tree_inactive]]')}.file-picker .fp-clear-left{clear:left}.dir-rtl .filemanager-toolbar .fp-vb-icons a:hover{background:url('[[pix:theme|fp/view_icon_selected]]')}.dir-rtl .filemanager-toolbar .fp-vb-icons.checked a:hover{background:url('[[pix:theme|fp/view_icon_active]]') no-repeat 0 0}.dir-rtl .fp-vb-details a:hover{background:0;border:20px solid black}.dir-rtl .fp-vb-details.checked a:hover{background:0;border:40px solid black}.dir-rtl .fp-vb-tree a:hover{background:0;border:30px solid black}.dir-rtl .fp-vb-tree.checked a:hover{background:0;border:50px solid black}.file-picker .fp-pathbar{display:table-row}.fp-pathbar.empty{display:none}.fp-pathbar .fp-path-folder{width:27px;height:12px;margin-left:4px;background:url('[[pix:theme|fp/path_folder]]') no-repeat 0 0}.dir-rtl .fp-pathbar .fp-path-folder{width:auto;height:12px;margin-left:4px;background:url('[[pix:theme|fp/path_folder_rtl]]') no-repeat right top}.dir-rtl .fp-pathbar span{display:inline-block;*display:inline;float:right;margin-left:32px;*zoom:1}.fp-pathbar .fp-path-folder-name{margin-left:32px;line-height:20px}.dir-rtl .fp-pathbar .fp-path-folder-name{margin-right:32px;line-height:20px}.fp-iconview .fp-file{position:relative;float:left;margin:10px 10px 35px;text-align:center}.fp-iconview .fp-thumbnail{display:block;min-width:110px;min-height:110px;line-height:110px;text-align:center;border:1px solid #fff}.fp-iconview .fp-thumbnail img{padding:3px;vertical-align:middle;border:1px solid #ddd;-webkit-box-shadow:1px 1px 2px 0 #ccc;-moz-box-shadow:1px 1px 2px 0 #ccc;box-shadow:1px 1px 2px 0 #ccc}.fp-iconview .fp-thumbnail:hover{background:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 0 10px 0 #ccc;-moz-box-shadow:inset 0 0 10px 0 #ccc;box-shadow:inset 0 0 10px 0 #ccc}.fp-iconview .fp-filename-field{position:absolute;height:33px;overflow:hidden;word-wrap:break-word}.fp-iconview .fp-filename-field:hover{z-index:1000;overflow:visible}.fp-iconview .fp-filename-field .fp-filename{min-width:112px;padding-top:5px;padding-bottom:12px;background:#fff}.dir-rtl .fp-iconview .fp-file{float:right}.file-picker .yui3-datatable table{width:100%;border:0 solid #bbb}#filesskin .file-picker .yui3-datatable-header{color:#555;background:#fff;border-bottom:1px solid #ccc;border-left:0 solid #fff}#filesskin .file-picker .yui3-datatable-odd .yui3-datatable-cell{background-color:#f6f6f6;border-left:0 solid #f6f6f6}#filesskin .file-picker .yui3-datatable-even .yui3-datatable-cell{background-color:#fff;border-left:0 solid #fff}.dir-rtl .file-picker .yui3-datatable-header{text-align:right}.file-picker .ygtvtn,.filemanager .ygtvtn{width:17px;height:22px;background:url('[[pix:moodle|y/tn]]') 0 0 no-repeat}.dir-rtl .file-picker .ygtvtn{width:17px;height:22px;background:url('[[pix:moodle|y/tn_rtl]]') 0 0 no-repeat}.file-picker .ygtvtm,.filemanager .ygtvtm{width:13px;height:12px;cursor:pointer;background:url('[[pix:moodle|y/tm]]') 0 10px no-repeat}.file-picker .ygtvtmh,.filemanager .ygtvtmh{width:13px;height:12px;cursor:pointer;background:url('[[pix:moodle|y/tm]]') 0 10px no-repeat}.file-picker .ygtvtp,.filemanager .ygtvtp{width:13px;height:12px;cursor:pointer;background:url('[[pix:moodle|y/tp]]') 0 10px no-repeat}.dir-rtl .file-picker .ygtvtp{width:13px;height:12px;cursor:pointer;background:url('[[pix:moodle|y/tp_rtl]]') 0 10px no-repeat}.file-picker .ygtvtph,.filemanager .ygtvtph{width:13px;height:22px;cursor:pointer;background:url('[[pix:moodle|y/tp]]') 0 10px no-repeat}.dir-rtl .file-picker .ygtvtph{width:13px;height:22px;cursor:pointer;background:url('[[pix:moodle|y/tp_rtl]]') 0 10px no-repeat}.file-picker .ygtvln,.filemanager .ygtvln{width:17px;height:22px;background:url('[[pix:moodle|y/ln]]') 0 0 no-repeat}.dir-rtl .file-picker .ygtvln{width:17px;height:22px;background:url('[[pix:moodle|y/ln_rtl]]') 0 0 no-repeat}.file-picker .ygtvlm,.filemanager .ygtvlm{width:13px;height:12px;cursor:pointer;background:url('[[pix:moodle|y/lm]]') 0 10px no-repeat}.file-picker .ygtvlmh,.filemanager .ygtvlmh{width:13px;height:12px;cursor:pointer;background:url('[[pix:moodle|y/lm]]') 0 10px no-repeat}.file-picker .ygtvlp,.filemanager .ygtvlp{width:13px;height:12px;cursor:pointer;background:url('[[pix:moodle|y/lp]]') 0 10px no-repeat}.dir-rtl .file-picker .ygtvlp{width:13px;height:12px;cursor:pointer;background:url('[[pix:moodle|y/lp_rtl]]') 0 10px no-repeat}.file-picker .ygtvlph,.filemanager .ygtvlph{width:13px;height:12px;cursor:pointer;background:url('[[pix:moodle|y/lp]]') 0 10px no-repeat}.dir-rtl .file-picker .ygtvlph{width:13px;height:12px;cursor:pointer;background:url('[[pix:moodle|y/lp_rtl]]') 0 10px no-repeat}.file-picker .ygtvloading,.filemanager .ygtvloading{width:16px;height:22px;background:transparent url('[[pix:moodle|y/loading]]') 0 0 no-repeat}.file-picker .ygtvdepthcell,.filemanager .ygtvdepthcell{width:17px;height:32px;background:url('[[pix:moodle|y/vline]]') 0 0 no-repeat}.file-picker .ygtvblankdepthcell,.filemanager .ygtvblankdepthcell{width:17px;height:22px}a.ygtvspacer:hover{color:transparent;text-decoration:none}.ygtvlabel,.ygtvlabel:link,.ygtvlabel:visited,.ygtvlabel:hover{margin-left:2px;text-decoration:none;cursor:pointer;background-color:transparent}.file-picker .ygtvfocus,.filemanager .ygtvfocus{background-color:#eee}.fp-filename-icon{position:relative;display:block;margin-top:10px}.fp-icon{float:left;width:24px;height:24px;margin-top:-7px;margin-right:10px;line-height:24px;text-align:center}.dir-rtl .fp-icon{float:right}.fp-icon img{max-width:24px;max-height:24px;vertical-align:middle}.fp-filename{padding-right:10px}.dir-rtl .fp-filename{padding-left:10px}.file-picker .fp-login-form{display:table;width:100%;height:100%}.file-picker .fp-login-form table{margin:0 auto}.file-picker .fp-login-form p{margin-top:3em;text-align:center}.file-picker .fp-login-form .fp-login-input label{display:block;text-align:right}.file-picker .fp-login-form .fp-login-input .input{text-align:left}.file-picker .fp-login-form input[type="checkbox"]{width:15px;height:15px}.file-picker .fp-upload-form{display:table;width:100%;height:100%}.file-picker .fp-upload-form table{margin:0 auto}.file-picker.fp-dlg{text-align:center}.file-picker.fp-dlg .fp-dlg-text{padding:30px 20px 10px;font-size:12px}.file-picker.fp-dlg .fp-dlg-buttons{margin:0 20px}.file-picker.fp-msg{text-align:center}.file-picker.fp-msg .fp-msg-text{max-width:500px;max-height:300px;min-width:200px;padding:40px 20px 10px 20px;overflow:auto;font-size:12px}.file-picker.fp-msg.fp-msg-error .fp-msg-text{padding:40px 20px 10px 20px;font-size:12px}.file-picker .fp-content-error{display:table;width:100%;height:100%;text-align:center}.file-picker .fp-content-error .fp-error{display:table-cell;width:100%;height:100%;padding:40px 20px 10px 20px;font-size:12px;vertical-align:middle}.file-picker .fp-nextpage{clear:both}.file-picker .fp-nextpage .fp-nextpage-loading{display:none}.file-picker .fp-nextpage.loading .fp-nextpage-link{display:none}.file-picker .fp-nextpage.loading .fp-nextpage-loading{display:block;height:100px;padding-top:50px;text-align:center}.file-picker.fp-select{width:420px}.fp-select form{padding:20px 20px 0}.fp-select .fp-select-loading{margin-top:20px;text-align:center}.fp-select .fp-hr{width:auto;height:1px;margin:10px 0;clear:both;background-color:#fff;border-bottom:1px solid #bbb}.fp-select table{padding:0 0 10px}.fp-select table .mdl-right{min-width:84px}.fp-select .fp-reflist .mdl-right{vertical-align:top}.fp-select .fp-select-buttons{float:right}.fp-select .fp-info{display:block;padding:1px 20px 0;clear:both}.fp-select .fp-thumbnail{float:left;min-width:110px;min-height:110px;margin:10px 20px 0 0;line-height:110px;text-align:center;background:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 0 10px 0 #ccc;-moz-box-shadow:inset 0 0 10px 0 #ccc;box-shadow:inset 0 0 10px 0 #ccc}.fp-select .fp-thumbnail img{padding:3px;margin:10px;vertical-align:middle;border:1px solid #ddd}.fp-select .fp-fileinfo{display:inline-block;*display:inline;margin-top:10px;*zoom:1}.file-picker.fp-select .fp-fileinfo{max-width:240px}.fp-select .fp-fileinfo div{padding-bottom:5px}.file-picker.fp-select .uneditable{display:none}.file-picker.fp-select .fp-select-loading{display:none}.file-picker.fp-select.loading .fp-select-loading{display:block}.file-picker.fp-select.loading form{display:none}.fp-select .fp-dimensions.fp-unknown{display:none}.filemanager-loading{display:none}.jsenabled .filemanager-loading{display:block;margin-top:100px}.filemanager.fm-loading .filemanager-toolbar,.filemanager.fm-loading .fp-pathbar,.filemanager.fm-loading .filemanager-container,.filemanager.fm-loaded .filemanager-loading,.filemanager.fm-maxfiles .fp-btn-add,.filemanager.fm-maxfiles .dndupload-message,.filemanager.fm-noitems .fp-btn-download,.filemanager .fm-empty-container,.filemanager.fm-noitems .filemanager-container .fp-content{display:none}.filemanager .filemanager-updating{display:none;text-align:center}.filemanager.fm-updating .filemanager-updating{display:block;margin-top:37px}.filemanager.fm-updating .fm-content-wrapper,.filemanager.fm-nomkdir .fp-btn-mkdir,.fitem.disabled .filemanager .filemanager-toolbar,.fitem.disabled .filemanager .fp-pathbar,.fitem.disabled .filemanager .fp-restrictions,.fitem.disabled .filemanager .fm-content-wrapper{display:none}.fp-restrictions{text-align:right}.filemanager .fp-navbar{background:#f2f2f2;border:1px solid #bbb;border-bottom:0}.filemanager-toolbar{min-height:22px;padding:5px 8px}.fp-pathbar{min-height:20px;padding:5px 8px 1px;border-top:1px solid #bbb}.filemanager .fp-pathbar.empty{display:none}.filepicker-filelist,.filemanager-container{position:relative;min-height:140px;overflow:auto;clear:both;background:#fff;border:1px solid #bbb}.filemanager .fp-content{max-height:472px;min-height:157px;overflow:auto}.filemanager-container,.filepicker-filelist{overflow:hidden}.fitem.disabled .filepicker-filelist,.fitem.disabled .filemanager-container{background-color:#ebebe4}.fitem.disabled .fp-btn-choose{color:#999}.fitem.disabled .filepicker-filelist .filepicker-filename{display:none}.fp-iconview .fp-reficons1{position:absolute;top:0;left:0;z-index:1000;width:100%;height:100%}.fp-iconview .fp-reficons2{position:absolute;top:0;left:0;z-index:1001;width:100%;height:100%}.fp-iconview .fp-file.fp-hasreferences .fp-reficons1{background:url('[[pix:theme|fp/link]]') no-repeat;background-position:bottom right}.fp-iconview .fp-file.fp-isreference .fp-reficons2{background:url('[[pix:theme|fp/alias]]') no-repeat;background-position:bottom left}.filemanager .fp-iconview .fp-file.fp-originalmissing .fp-thumbnail img{display:none}.filemanager .fp-iconview .fp-file.fp-originalmissing .fp-thumbnail{background:url([[pix:s/dead]]) no-repeat;background-position:center center}.filemanager .yui3-datatable table{width:100%;border:0 solid #bbb}.filemanager .yui3-datatable-header{color:#555!important;background:#fff!important;border-bottom:1px solid #ccc!important;border-left:0 solid #fff!important}.filemanager .yui3-datatable-odd .yui3-datatable-cell{background-color:#f6f6f6!important;border-left:0 solid #f6f6f6}.filemanager .yui3-datatable-even .yui3-datatable-cell{background-color:#fff!important;border-left:0 solid #fff}.filemanager .fp-filename-icon.fp-hasreferences .fp-reficons1{position:absolute;top:8px;left:17px;z-index:1000;width:100%;height:100%;background:url('[[pix:theme|fp/link_sm]]') no-repeat 0 0}.filemanager .fp-filename-icon.fp-isreference .fp-reficons2{position:absolute;top:9px;left:-6px;z-index:1001;width:100%;height:100%;background:url('[[pix:theme|fp/alias_sm]]') no-repeat 0 0}.filemanager .fp-contextmenu{display:none}.filemanager .fp-iconview .fp-folder.fp-hascontextmenu .fp-contextmenu{position:absolute;right:7px;bottom:5px;z-index:2000;display:block}.filemanager .fp-treeview .fp-folder.fp-hascontextmenu .fp-contextmenu,.filemanager .fp-tableview .fp-folder.fp-hascontextmenu .fp-contextmenu{position:absolute;top:6px;left:14px;display:inline;margin-right:-20px}.filepicker-filelist .filepicker-container,.filemanager.fm-noitems .fm-empty-container{position:absolute;top:10px;right:10px;bottom:10px;left:10px;z-index:3000;display:block;padding-top:85px;text-align:center;border:2px dashed #bbb}.filepicker-filelist .dndupload-target,.filemanager-container .dndupload-target{position:absolute;top:10px;right:10px;bottom:10px;left:10px;z-index:3000;padding-top:85px;text-align:center;background:#fff;border:2px dashed #fb7979;-webkit-box-shadow:0 0 0 10px #fff;-moz-box-shadow:0 0 0 10px #fff;box-shadow:0 0 0 10px #fff}.filepicker-filelist.dndupload-over .dndupload-target,.filemanager-container.dndupload-over .dndupload-target{position:absolute;top:10px;right:10px;bottom:10px;left:10px;z-index:3000;padding-top:85px;text-align:center;background:#fff;border:2px dashed #6c8cd3}.dndupload-message{display:none}.dndsupported .dndupload-message{display:inline}.dnduploadnotsupported-message{display:none}.dndnotsupported .dnduploadnotsupported-message{display:inline}.dndupload-target{display:none}.dndsupported .dndupload-ready .dndupload-target{display:block}.dndupload-uploadinprogress{display:none;text-align:center}.dndupload-uploading .dndupload-uploadinprogress{display:block}.dndupload-arrow{position:absolute;top:5px;width:100%;height:80px;margin-left:-28px;background:url([[pix:theme|fp/dnd_arrow]]) center no-repeat}.fitem.disabled .filepicker-container,.fitem.disabled .fm-empty-container{display:none}.dndupload-progressbars{display:none;padding:10px}.dndupload-inprogress .dndupload-progressbars{display:block}.dndupload-inprogress .fp-content{display:none}.filemanager.fm-noitems .dndupload-inprogress .fm-empty-container{display:none}.filepicker-filelist.dndupload-inprogress .filepicker-container{display:none}.filepicker-filelist.dndupload-inprogress a{display:none}.filemanager.fp-select .fp-select-loading{display:none}.filemanager.fp-select.loading .fp-select-loading{display:block}.filemanager.fp-select.loading form{display:none}.filemanager.fp-select.fp-folder .fp-license,.filemanager.fp-select.fp-folder .fp-author,.filemanager.fp-select.fp-file .fp-file-unzip,.filemanager.fp-select.fp-folder .fp-file-unzip,.filemanager.fp-select.fp-file .fp-file-zip,.filemanager.fp-select.fp-zip .fp-file-zip{display:none}.filemanager.fp-select .fp-file-setmain{display:none}.filemanager.fp-select.fp-cansetmain .fp-file-setmain{display:inline-block;*display:inline;*zoom:1}.filemanager .fp-mainfile .fp-filename{font-weight:bold}.filemanager.fp-select.fp-folder .fp-file-download{display:none}.fm-operation{font-weight:bold}.filemanager.fp-select .fp-original.fp-unknown,.filemanager.fp-select .fp-original .fp-originloading{display:none}.filemanager.fp-select .fp-original.fp-loading .fp-originloading{display:inline}.filemanager.fp-select .fp-reflist.fp-unknown,.filemanager.fp-select .fp-reflist .fp-reflistloading{display:none}.filemanager.fp-select .fp-refcount{max-width:265px}.filemanager.fp-select .fp-reflist.fp-loading .fp-reflistloading{display:inline}.filemanager.fp-select .fp-reflist .fp-value{max-width:265px;max-height:75px;padding:8px 7px;margin:0;overflow:auto;background:#f9f9f9;border:1px solid #bbb}.filemanager.fp-select .fp-reflist .fp-value li{padding-bottom:7px}.filemanager.fp-mkdir-dlg{text-align:center}.filemanager.fp-mkdir-dlg .fp-mkdir-dlg-text{margin:20px;text-align:left}.dir-rtl .filemanager .fp-mkdir-dlg p{text-align:right}.filemanager.fp-dlg{text-align:center}.filemanager.fp-dlg .fp-dlg-text{max-width:340px;max-height:300px;min-width:200px;padding:0 10px;margin:40px 20px 20px;overflow:auto;font-size:12px;line-height:22px}.file-picker div.bd{text-align:left}.dir-rtl .file-picker div.bd,.dir-rtl .file-picker .fp-pathbar,.dir-rtl .file-picker .fp-list,.dir-rtl #filemenu .yuimenuitemlabel,.dir-rtl .filemanager-container .yui3-skin-sam .yui3-datatable-header{text-align:right}.dir-rtl .filepicker .yui-layout-unit-left{left:500px}.dir-rtl .filepicker .yui-layout-unit-center{left:0}.allcoursegrades{width:100%;padding:4px 0 5px 0;text-align:right}.path-grade-edit .buttons{text-align:center}.path-grade-edit-tree .idnumber{margin-left:15px}.path-grade-edit-tree .movetarget{position:relative;width:80px;height:16px}.path-grade-edit-tree ul#grade_tree{width:auto}.path-grade-edit-tree ul#grade_tree li{list-style:none}.path-grade-edit-tree ul#grade_tree li.category{margin-bottom:6px}.path-grade-edit-tree .iconsmall{margin-left:4px}#grade-report-toggles{text-align:center}#grade-aggregation-help dt{margin-top:15px}#grade-aggregation-help dd.example{margin-top:7px}#grade-aggregation-help code{display:block;margin-top:7px}.gradeexportlink{padding:2em;text-align:center}.gradetreebox{margin-top:10px;overflow-x:auto;overflow-y:hidden}.gradetreebox table{width:100%;font-size:.8em}.gradetreebox td.colspan,.gradetreebox tr.category .cell{background-color:#DDD}.gradetreebox th.actions{width:105px;white-space:nowrap}.gradetreebox td.name{white-space:nowrap}.gradetreebox td.name h4{display:inline}.gradetreebox td.range{white-space:nowrap}.gradetreebox span.actionlink{color:blue}.gradetreebox span.actionlink:hover{text-decoration:underline;cursor:pointer}.gradetreebox img.iconsmall{margin-left:4px}.gradetreebox img.icon{margin-right:5px}.gradetreebox #gradetreesubmit{margin-bottom:1em;text-align:center}.gradetreebox .hidden{display:none}#page-grade-grading-manage #activemethodselector{margin-bottom:1em;text-align:center}#page-grade-grading-manage #activemethodselector select{margin:0 1em}#page-grade-grading-manage .actions{text-align:center}#page-grade-grading-manage .action{display:inline-block;width:150px;padding:.5em;margin:.5em;text-align:center;background-color:#eee;border:2px solid #ccc;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}#page-grade-grading-manage .action:hover{text-decoration:none;background-color:#f6f6f6}#page-grade-grading-manage #actionresultmessagebox{position:relative;width:60%;padding:.5em;margin:1em auto;text-align:center;background-color:#d2ebff;border:2px solid #CCC;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}#page-grade-grading-manage #actionresultmessagebox span{position:absolute;top:-1.2em;right:0;font-size:80%;color:#666}#page-grade-grading-manage .definition-name .status{padding:.25em;font-size:60%;font-weight:normal;text-transform:uppercase;border:1px solid #EEE;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}#page-grade-grading-manage .definition-name .status.ready{background-color:#e7f1c3;border-color:#aea}#page-grade-grading-manage .definition-name .status.draft{background-color:#f3f2aa;border-color:#ee2}#page-grade-grading-manage .definition-preview{width:50%;padding:1em;margin:1em auto;border:1px solid #EEE}#page-grade-grading-pick .template-name{padding:3px;clear:both;background-color:#f6f6f6}#page-grade-grading-pick .template-name .type{padding:.25em;font-size:60%;font-weight:normal;text-transform:uppercase;border:1px solid #eee;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}#page-grade-grading-pick .template-name .type.shared{background-color:#e7f1c3;border-color:#aea}#page-grade-grading-pick .template-name .type.ownform{background-color:#d2ebff;border-color:#ace}#page-grade-grading-pick .template-description{padding:0 2em 0 0;margin-right:51%;margin-bottom:1em}#page-grade-grading-pick .template-preview{float:right;width:50%;padding:1em;margin-bottom:1em;border:1px solid #EEE}#page-grade-grading-pick .template-actions{padding:0 2em 0 0;margin-right:51%;margin-bottom:1em}#page-grade-grading-pick .template-actions .action{display:inline-block;padding:.25em;margin:.25em;border:2px solid transparent}#page-grade-grading-pick .template-actions .action.pick{background-color:#EEE;border:2px solid #CCC;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#page-grade-grading-pick .template-actions .action:hover{text-decoration:none;background-color:#f6f6f6;border:2px solid #CCC;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#page-grade-grading-pick .template-actions .action .action-text{display:inline}#page-grade-grading-pick .template-actions .action .action-icon{margin:0 3px}#page-grade-grading-pick .template-preview-confirm{width:50%;padding:1em;margin:1em auto;border:1px solid #EEE}#page-grade-grading-pick .singlebutton{clear:both}table#user-grades tr td.overridden{background-color:#f3e4c0}table#user-grades tr.odd td.overridden{background-color:#efd9a4}table#user-grades tr td.ajaxoverridden{background-color:#ffe3a0}table#user-grades tr.odd td.ajaxoverridden{background-color:#ffda83}table#user-grades tr.even td.excluded{background-color:#eabfff}table#user-grades tr.odd td.excluded{background-color:#e5afff}table#user-grades tr.groupavg td.cell{font-weight:700;color:#006400;background-color:#efffef}table#user-grades td.cat,table#user-grades td.course{font-weight:700}.path-grade-report-grader #overDiv table{margin:0}.path-grade-report-grader #overDiv table td.feedback{border:0}.path-grade-report-grader #overDiv .feedback{font-size:10.5px;font-weight:400;background-color:#ABF}.path-grade-report-grader #overDiv .caption{font-size:10.5px;font-weight:700;color:#CCF;background-color:#56C}.path-grade-report-grader #overDiv .intersection{font-size:10.5px;font-weight:400;color:#000;background-color:#ABF}.path-grade-report-grader #overDiv .intersectioncaption{font-weight:700;color:#CCF;background-color:#56C}.path-grade-report-grader div.gradeparent,table#user-grades td.ajax{text-align:left}.path-grade-report-grader.dir-rtl div.gradeparent,.dir-rtl table#user-grades td.ajax{text-align:right}table#user-grades td,table#user-grades th{text-align:right}table#user-grades .courseitem{text-align:right;white-space:nowrap}table#user-grades th.category,table#user-grades th#studentheader,table#user-grades th.user{text-align:left}div.gradertoggle{display:inline;margin-left:20px}table#user-grades .userpic{margin-right:10px}table#user-grades .quickfeedback{margin-left:10px;border:1px dashed #000}.dir-rtl table#user-grades .quickfeedback{margin-right:10px;margin-left:0}.path-grade-report-grader #siteconfiglink{text-align:right}table#user-grades .hidden,table#user-grades .hidden a{color:#999}table#user-grades .datesubmitted{font-size:10.5px}.path-grade-report-grader span.inclusion-links{margin:0 5px 0 10px}.path-grade-report-grader th.user img.userpicture{margin-right:.5em}.path-grade-report-grader a.quickedit{display:block;float:right;margin:.1em 0 0;clear:none;font-size:9px;line-height:1em;background-color:transparent}.path-grade-report-grader a.quickedit2{display:block;float:right;margin:1.3em 0 0;clear:none;background-color:transparent}.path-grade-report-grader table#quick_edit{margin:0 auto;border:1px solid #cecece}.path-grade-report-grader table#quick_edit td{padding:5px;margin:0;text-align:left;vertical-align:middle;border:1px solid #cecece}.path-grade-report-grader table#quick_edit td img{padding:0;vertical-align:middle;border:3px double #cecece}.path-grade-report-grader table#quick_edit td.fullname{padding-left:5px;border-left:0}.path-grade-report-grader table#quick_edit td.picture{border-right:0}.path-grade-report-grader table#quick_edit td.finalgrade input{width:5em}.path-grade-report-grader h1{clear:both;text-align:center}.path-grade-report-grader input.center{margin:10px auto 0}.path-grade-report-grader .lefttbody{width:auto;vertical-align:middle}.path-grade-report-grader .left_scroller{float:left;clear:none}.path-grade-report-grader .left_scroller #fixed_column .heading th.header,.path-grade-report-grader .left_scroller #fixed_column td,.path-grade-report-grader .left_scroller #fixed_column th{height:4em}.path-grade-report-grader .left_scroller #fixed_column td.controls{height:2em}.path-grade-report-grader.dir-rtl .left_scroller{float:right}.path-grade-report-grader .right_scroller{width:auto;overflow-x:scroll;clear:none}.path-grade-report-grader .right_scroller tr.heading_name_row th,.path-grade-report-grader .right_scroller table#user-grades td.grade{height:4em}.path-grade-report-grader .right_scroller .path-grade-report-grader .left_scroller .topleft,.path-grade-report-grader .right_scroller tr.avg td,.path-grade-report-grader .right_scroller tr.groupavg,.path-grade-report-grader .right_scroller tr.controls_row,.path-grade-report-grader .right_scroller div.right_scroller tr{height:2em}table#fixed_column,table#user-grades,table#fixed_column th,table#fixed_column td,table#user-grades td,table#user-grades th,table#user-grades input{padding:0 2px;margin:0;font-size:10px;vertical-align:middle}.path-grade-report-grader form td.excluded{color:#b94a48}.path-grade-report-grader .excludedfloater{float:left;font-size:9px;font-weight:700;color:#b94a48}.path-grade-report-grader span.gradepass{color:#298721}.path-grade-report-grader span.gradefail{color:#890d0d}.path-grade-report-grader .gradeweight{font-weight:700;color:#461d7c}.path-grade-report-grader td select{padding:0;font-size:100%}.path-grade-report-grader .right_scroller td select{font-size:11.9px}.path-grade-report-grader .grade_icons img.ajax{float:right}.path-grade-report-grader .gradestable th.user,.path-grade-report-grader .gradestable th.range,.path-grade-report-grader .flexible th,.path-grade-report-grader .flexible td,.path-grade-report-grader .flexible th a,.path-grade-report-grader .flexible td a,.path-grade-report-grader .gradestable th.range,.path-grade-report-grader th,.path-grade-report-grader td{white-space:nowrap}table#user-grades td.vmarked{background-color:#fc3}table#user-grades td.hmarked{background-color:#ff9}table#user-grades td.hmarked.vmarked{background-color:#fc9}.path-grade-report-grader .gradeparent{overflow:auto}table#fixed_column tr.controls td,table#user-grades tr.controls td,.path-grade-report-grader table tr.avg,.path-grade-report-grader table tr.avg:hover{background-color:#d9edf7}.path-grade-report-grader table th.user,.path-grade-report-grader table td.userfield{text-align:left}.path-grade-report-grader .usersuspended a:link,.path-grade-report-grader .usersuspended a:visited{color:#999}.path-grade-report-grader table th.usersuspended img.usersuspendedicon{margin-left:.45em;vertical-align:text-bottom}.path-grade-report-grader .yui3-overlay{left:0;padding:2px 5px;font-size:.7em;background-color:#ffee69;border-color:#d4c237 #a6982b #a6982b;border-style:solid;border-width:1px}.path-grade-report-grader .yui3-overlay .fullname{font-weight:bold;color:#5f3e00}.path-grade-report-grader .yui3-overlay .itemname{font-weight:bold;color:#194f3e}.path-grade-report-grader .yui3-overlay .feedback{color:#5f595e}.path-grade-report-grader #tooltipPanel{text-align:left}.path-grade-report-grader .yui3-overlay a.container-close{margin-top:-3px}.path-grade-report-grader #hiddentooltiproot,.tooltipDiv{display:none}.message-discussion-noframes h1{font-size:1em}.message-discussion-noframes #userinfo .commands,.message .noframesjslink,.message .link{font-size:11.9px}.message .heading{font-size:1em;font-weight:bold}.message .author{font-weight:bold}.message .time{font-style:italic}#page-message-user .commands span{font-size:.7em}#page-message-user .name{font-size:1.1em;font-weight:bold}table.message_search_results td{border-color:#ddd}.message .time,.message.me .author{color:#999}.message.other .author{color:#88c}#page-message-messages{padding:10px}#page-message-send .notifysuccess{padding:1px}#page-message-send td.fixeditor{text-align:center}.message .note{padding:10px}table.message .searchresults td{padding:5px}.message .contactselector{float:left;width:24%}.message .contactselector .contact{text-align:left}.message .contactselector .messageselecteduser{font-weight:bold}.message .contactselector .paging{position:relative;z-index:1}.message .messagearea{float:right;width:74%;min-height:200px;padding-left:1%;border-left:1px solid #d3d3d3}.message .messagearea .messagehistorytype{padding-bottom:20px;clear:both}.message .messagearea .messagehistory .message_user_pictures{margin-right:auto;margin-left:auto}.message .messagearea .messagehistory .message_user_pictures #user1{width:200px;vertical-align:top}.message .messagearea .messagehistory .message_user_pictures #user2{width:200px;vertical-align:top}.message .messagearea .messagehistory .message_user_pictures .useractionlinks{font-size:.9em}.message .messagearea .messagehistory .heading{width:100%;clear:both}.message .messagearea .messagehistory .left{float:left;width:50%;padding-bottom:10px;clear:both}.message .messagearea .messagehistory .right{float:right;width:50%;padding-bottom:10px;clear:both}.message .messagearea .messagehistory .notification{padding:10px;margin-top:5px;background-color:#eee}.message .messagearea .messagesend{padding-top:20px;clear:both}.message .messagearea .messagesend .messagesendbox{width:100%}.message .messagearea .messagesend fieldset{padding:0;margin:0}.message .messagearea .messagerecent{width:100%;text-align:left}.message .messagearea .messagerecent .singlemessage{padding:10px;border-bottom:1px solid #d3d3d3}.message .messagearea .messagerecent .singlemessage .otheruser span{padding:5px}.message .messagearea .messagerecent .singlemessage .messagedate{float:right}.message .hiddenelement{display:none}.message .visible{display:inline}.message #usergroupselector.fieldset,.message #viewing{width:100%}.messagesearchresults{margin-bottom:40px}.messagesearchresults td{padding:0 10px 0 20px}.messagesearchresults td span{white-space:nowrap}.messagesearchresults td img.userpicture{padding-right:.45em;vertical-align:text-bottom}.dir-rtl .messagesearchresults td img.userpicture{padding-right:0;padding-left:.45em}.messagesearchresults td span img{padding:0 0 0 .45em;vertical-align:text-bottom}.dir-rtl .messagesearchresults td span img{padding:0 .45em 0 0}#newmessageoverlay{position:fixed;right:0;bottom:0;padding:20px;background-color:#d3d3d3;border:1px solid black}#newmessageoverlay #usermessage{padding:10px}.questionbank h2{margin-top:0}.questioncategories h3{margin-top:0}#chooseqtypebox{margin-top:1em}#chooseqtype h3{margin:0 0 .3em}#chooseqtype .instruction{display:none}#chooseqtype .fakeqtypes{border-top:1px solid silver}#chooseqtype .qtypeoption{margin-bottom:.5em}#chooseqtype label{display:block}#chooseqtype .qtypename img{padding:0 .3em}#chooseqtype .qtypesummary{display:block;margin:0 2em}#chooseqtype .submitbuttons{margin:.7em 0;text-align:center}#qtypechoicecontainer{display:none}#qtypechoicecontainer_c.yui-panel-container.shadow .underlay{background:0}#qtypechoicecontainer.yui-panel .hd{letter-spacing:1px;color:#333;text-shadow:1px 1px 1px #fff;background-color:#ebebeb;background-image:-moz-linear-gradient(top,#fff,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#ccc));background-image:-webkit-linear-gradient(top,#fff,#ccc);background-image:-o-linear-gradient(top,#fff,#ccc);background-image:linear-gradient(to bottom,#fff,#ccc);background-repeat:repeat-x;border:1px solid #ccc;border-bottom:1px solid #bbb;-webkit-border-top-right-radius:10px;border-top-right-radius:10px;-webkit-border-top-left-radius:10px;border-top-left-radius:10px;-moz-border-radius-topright:10px;-moz-border-radius-topleft:10px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffcccccc',GradientType=0)}#qtypechoicecontainer{font-size:12px;color:#333;background:#f2f2f2;border:1px solid #ccc;border-top:0 none;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;-webkit-box-shadow:5px 5px 20px 0 #666;-moz-box-shadow:5px 5px 20px 0 #666;box-shadow:5px 5px 20px 0 #666}#chooseqtype{width:35em}#chooseqtypehead h3{margin:0;font-weight:normal}#chooseqtype .qtypes{position:relative;padding:.24em 0;border-bottom:1px solid #bbb}#chooseqtype .qtypeoption{padding:.3em .3em .3em 1.6em;margin-bottom:0}#chooseqtype .qtypeoption img{padding-right:.5em;padding-left:1em;vertical-align:text-bottom}#chooseqtype .selected{background-color:#fff;-webkit-box-shadow:0 0 10px 0 #ccc;-moz-box-shadow:0 0 10px 0 #ccc;box-shadow:0 0 10px 0 #ccc}#chooseqtype .instruction,#chooseqtype .qtypesummary{position:absolute;top:0;right:0;bottom:0;left:60%;display:none;padding:1.5em 1.6em;margin:0;background-color:#fff}#chooseqtype .instruction,#chooseqtype .selected .qtypesummary{display:block}#categoryquestions{margin:0}#categoryquestions td,#categoryquestions th{padding:0 .2em}#categoryquestions th{font-weight:normal;text-align:left}#categoryquestions .checkbox{padding-left:20px}.dir-rtl #categoryquestions th{text-align:right}.questionbank .singleselect{margin:0}#combinedfeedbackhdr div.fhtmleditor{padding:0}#combinedfeedbackhdr div.fcheckbox{margin-bottom:1em}#multitriesheader div.fitem_feditor{margin-top:1em}#multitriesheader div.fitem_fgroup{margin-bottom:1em}#multitriesheader div.fitem_fgroup fieldset.felement label{margin-right:.3em;margin-left:.3em}.que{margin:0 auto 1.8em auto;clear:left;text-align:left}.dir-rtl .que{text-align:right}.que .info{float:left;width:7em;padding:.5em;margin-bottom:1.8em;background-color:#eee;border:1px solid #dcdcdc;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.que h2.no{margin:0;font-size:.8em;line-height:1}.que span.qno{font-size:1.5em;font-weight:bold}.que .info>div{margin-top:.7em;font-size:.8em}.que .info .questionflag.editable{cursor:pointer}.que .info .editquestion img,.que .info .questionflag img,.que .info .questionflag input{vertical-align:bottom}.que .content{margin:0 0 0 8.5em}.que .formulation,.que .outcome,.que .comment,.que .history{padding:8px 35px 8px 14px;margin-bottom:20px;color:#c09853;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.que .formulation{color:#3a87ad;color:#333;background-color:#d9edf7;border-color:#bce8f1}.que .comment{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.que .history{color:#333;background:#eee}.que .ablock{margin:.7em 0 .3em 0}.que .im-controls{margin-top:.5em;text-align:left}.dir-rtl .que .im-controls{text-align:right}.que .specificfeedback,.que .generalfeedback,.que .rightanswer,.que .im-feedback,.que .feedback,.que p{margin:0 0 .5em}.que .qtext{margin-bottom:1.5em}.que .correct{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999;background-color:#468847;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.que .correct:empty{display:none}.que .correct-important{background-color:#b94a48}.que .correct-important[href]{background-color:#953b39}.que .correct-warning{background-color:#f89406}.que .correct-warning[href]{background-color:#c67605}.que .correct-success{background-color:#468847}.que .correct-success[href]{background-color:#356635}.que .correct-info{background-color:#3a87ad}.que .correct-info[href]{background-color:#2d6987}.que .correct-inverse{background-color:#333}.que .correct-inverse[href]{background-color:#1a1a1a}.que .notanswered,.que .incorrect{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999;background-color:#b94a48;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.que .notanswered:empty,.que .incorrect:empty{display:none}.que .notanswered-important,.que .incorrect-important{background-color:#b94a48}.que .notanswered-important[href],.que .incorrect-important[href]{background-color:#953b39}.que .notanswered-warning,.que .incorrect-warning{background-color:#f89406}.que .notanswered-warning[href],.que .incorrect-warning[href]{background-color:#c67605}.que .notanswered-success,.que .incorrect-success{background-color:#468847}.que .notanswered-success[href],.que .incorrect-success[href]{background-color:#356635}.que .notanswered-info,.que .incorrect-info{background-color:#3a87ad}.que .notanswered-info[href],.que .incorrect-info[href]{background-color:#2d6987}.que .notanswered-inverse,.que .incorrect-inverse{background-color:#333}.que .notanswered-inverse[href],.que .incorrect-inverse[href]{background-color:#1a1a1a}.que .partiallycorrect{background-color:#fcf8e3}.que .validationerror{color:#b94a48}.que .grading,.que .comment,.que .commentlink,.que .history{margin-top:.5em}.que .history h3{margin:0 0 .2em;font-size:1em}.que .history table{width:100%;margin:0}.que .history .current{font-weight:bold}.que .questioncorrectnessicon{vertical-align:text-bottom}.que input.questionflagimage{padding-right:3px}.dir-rtl .que input.questionflagimage{padding-right:0;padding-left:3px}.importerror{margin-top:10px;border-bottom:1px solid #555}.mform .que.comment .fitemtitle{width:20%}#page-question-preview #techinfo{margin:1em 0}.dir-rtl #chooseqtype .instruction,.dir-rtl #chooseqtype .qtypesummary{right:60%;left:0;border-right:1px solid grey;border-left:0}#page-mod-quiz-edit .questionbankwindow div.header{padding:3px;padding:2px 10px 2px 10px;margin:0 -10px 0 -10px;color:#444;text-shadow:none;background:transparent;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}#page-mod-quiz-edit .questionbankwindow div.header a:link,#page-mod-quiz-edit .questionbankwindow div.header a:visited{color:#08c}#page-mod-quiz-edit .questionbankwindow div.header a:hover{color:#005580}#page-mod-quiz-edit .questionbankwindow div.header .title{color:#333}#page-mod-quiz-edit div.container div.generalbox{padding:1.5em;background-color:transparent}#page-mod-quiz-edit .categoryinfo{background-color:#fff;border-bottom:0}#page-mod-quiz-edit div.questionbank .categoryquestionscontainer,#page-mod-quiz-edit div.questionbank .categorysortopotionscontainer,#page-mod-quiz-edit div.questionbank .categorypagingbarcontainer,#page-mod-quiz-edit div.questionbank .categoryselectallcontainer{padding:0 0 1.5em 0}#page-mod-quiz-edit div.questionbank .categorypagingbarcontainer{padding:1em;margin:0 -1.2em;background-color:transparent;border-top:0;border-bottom:0}#page-mod-quiz-edit div.questionbank .categoryquestionscontainer{margin:0 -1.2em -1em -1.2em}#page-mod-quiz-edit div.question div.content div.questioncontrols{background-color:#fff}#page-mod-quiz-edit div.question div.content div.points{padding-bottom:.5em;margin-top:-0.5em;background-color:#fff;border:0}#page-mod-quiz-edit div.quizpage .pagecontent .pagestatus{background-color:#fff}#page-mod-quiz-edit .quizpagedelete,#page-mod-quiz-edit .quizpagedelete img{background-color:transparent}#page-mod-quiz-edit div.quizpage .pagecontent{overflow:hidden;border:1px solid #ddd;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}#page-mod-quiz-edit .modulespecificbuttonscontainer{width:220px}.questionbankwindow .module{width:auto}#page-mod-quiz-edit div.editq div.question div.content{overflow:hidden;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.path-mod-quiz .statedetails{display:block;font-size:.9em}a#hidebankcmd{color:#08c}.que.shortanswer .answer{padding:0}.que label{display:inline}.userprofile .fullprofilelink{margin:10px;text-align:center}.userprofile .description{margin-bottom:20px}.userprofile dl.list{*zoom:1}.userprofile dl.list:before,.userprofile dl.list:after{display:table;line-height:0;content:""}.userprofile dl.list:after{clear:both}.userprofile dl.list dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.userprofile dl.list dd{margin-left:180px}.user-box{float:left;width:115px;height:160px;margin:8px;clear:none;text-align:center}.userlist .main .action-icon img{vertical-align:middle}.userlist #showall{margin:10px 0}.userlist .buttons{text-align:center}.userlist .buttons label{padding:0 3px}.userlist table#participants{text-align:center}.userlist table#participants td,.userlist table#participants th{padding:4px;text-align:left;vertical-align:middle}.userlist table.controls{width:100%}.userlist table.controls tr{vertical-align:top}.userlist table.controls td.right,.userlist table.controls td.left{padding:4px}.userlist table.controls .right{text-align:right}.userinfobox{width:100%;padding:10px;border:1px solid;border-collapse:separate}.userinfobox .left,.userinfobox .side{width:100px;vertical-align:top}.userinfobox .userpicture{width:100px;height:100px}.userinfobox .content{vertical-align:top}.userinfobox .links{width:100px;padding:5px;vertical-align:bottom}.userinfobox .links a{display:block}.userinfobox .list td{padding:3px}.userinfobox .username{padding-bottom:20px;font-weight:bold}.userinfobox td.label{font-weight:bold;text-align:right;white-space:nowrap;vertical-align:top}.groupinfobox{border:1px solid}.groupinfobox .left{width:100px;padding:10px;vertical-align:top}.course-participation #showall{margin:10px 0;text-align:center}#user-policy .noticebox{width:80%;height:250px;margin-right:auto;margin-bottom:10px;margin-left:auto;text-align:center}#user-policy #policyframe{width:100%;height:100%}.iplookup #map{margin:auto}.userselector select{width:100%}.userselector div{margin-top:.2em}.userselector div label{margin-right:.3em}.userselector .userselector-infobelow{font-size:.8em}#userselector_options{padding:.3em 0}#userselector_options .collapsibleregioncaption{font-weight:bold}#userselector_options p{margin:.2em 0;text-align:left}.dir-rtl #userselector_options p{text-align:right}#page-user-profile .messagebox{margin-right:auto;margin-left:auto;text-align:center}#page-course-view-weeks .messagebox{margin-right:auto;margin-left:auto;text-align:center}.dir-rtl .descriptionbox{margin-right:110px;margin-left:0}.dir-rtl .userlist table#participants td,.dir-rtl .userlist table#participants th{text-align:right}.dir-rtl .userlist table#participants{margin:0 auto}#page-my-index.dir-rtl .block h3.main{text-align:right}/*!
+ * Bootstrap v2.3.0
+ *
+ * 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.
+ */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;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) ")"}.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}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}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:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.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}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[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}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}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;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("[[pix:theme|glyphicons-halflings]]");background-position:14px 14px;background-repeat:no-repeat}.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("[[pix:theme|glyphicons-halflings-white]]")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.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:#fff;background-color:#999;border-color:#999}.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:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.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-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.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:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #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:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.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}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.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-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.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:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;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:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.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:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}li.activity.label,.file-picker td.label{display:block;padding:8px;font-size:inherit;line-height:inherit;color:inherit;text-shadow:none;white-space:normal;background:inherit;border:inherit}.file-picker td.label{display:table-cell;text-align:right}.choosercontainer #chooseform .option label{font-size:12px}li.section.hidden,.block.hidden,.block.invisible{display:block;visibility:visible}#turnitintool_style .row,.forumpost .row{margin-left:0!important}#turnitintool_style .row:before,#turnitintool_style .row:after,.forumpost .row:before,.forumpost .row:after{content:none}fieldset.hidden{display:inherit;visibility:inherit}div.c1.btn{display:block;padding:0;margin-bottom:0;font-size:inherit;line-height:inherit;color:inherit;text-align:inherit;text-shadow:inherit;vertical-align:inherit;cursor:default;background-color:inherit;background-image:none;background-repeat:none;border:0;border-radius:none;box-shadow:none}#questionbank+.container{width:auto}img.hide{display:inherit}.icon-bar,img.icon-post,img.icon-info,img.icon-warn,img.icon-pre{background-image:none}.coursebox .summary{margin-left:0}.loginbox.twocolumns .signuppanel,.loginbox.twocolumns .signuppanel,.loginbox.twocolumns .loginpanel,.loginbox.twocolumns .loginpanel{padding:0;margin:0}.loginerrors .error{padding:8px 35px 8px 14px;margin-bottom:20px;color:#c09853;color:#b94a48;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;background-color:#f2dede;border:1px solid #fbeed5;border-color:#eed3d7;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip{display:inline;opacity:1;filter:alpha(opacity=100)}body{padding-top:60px}.block{min-height:20px;padding:19px;padding:8px 0;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.block blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.block .header h2{padding:.2em 0 0 .2em;margin:0}.block .header .title h2,.block h3.main{display:block;padding:3px 15px;font-size:11px;font-size:1.1em;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.block .header .title .commands,.block_adminblock .content,.block .footer,.block .block_tree li>p>a,.block .block_tree li>p>span{display:block;padding:3px 15px}.block .header .block_action{float:right}.block .header .commands{clear:both;text-align:right}.block .header .commands>a{margin:0 3px}.block .header .commands .icon img{width:12px;height:12px}.block .content{padding:4px 14px}.block.hidden .content{display:none}.block .content .userpicture{width:16px;height:16px;margin-right:6px}.block .content .list li.listentry{clear:both}.block .content .list .c0{display:inline}.block .content .list .c1{display:inline;margin-left:5px}.block .footer{margin-bottom:4px}.block .blockannotation{margin:-1em 0 1em;font-size:.75em}.block.list_block .unlist>li>.column{display:inline-block;*display:inline;*zoom:1}.blockmovetarget,.block.beingmoved{border-style:dashed;border-width:2px}.blockmovetarget{display:block;height:1em;margin-bottom:1em}.block.invisible{opacity:.5;filter:alpha(opacity=50)}.block .block-hider-show,.block .block-hider-hide{padding-right:5px;padding-left:5px;cursor:pointer}.block .block-hider-show,.block.hidden .block-hider-hide{display:none}.block.hidden .block-hider-show{display:inline}.jsenabled .block_tree .tree_item.branch{cursor:pointer}.jsenabled .block_tree .collapsed ul{display:none}.jsenabled .dock_on_load,.block_tree_box .requiresjs{display:none}.jsenabled .block_tree_box .requiresjs{display:inline}.block_navigation .content,.block_settings .content{padding:0}.block_settings li>hr{margin:4px 0}.block_settings .leaf img,.block_navigation p.tree_item a img.smallicon{display:none}.block_calendar_upcoming .footer{margin-top:.5em}.block_adminblock select{width:100%}.dir-rtl .block .header,.dir-rtl .block h2.header{text-align:right}.dir-rtl .block .header .commands{text-align:left}.dir-rtl .block .header .block_action{float:left}ul.block_tree ul{margin:0}.block_tree .tree_item.branch a:before,.block_tree .tree_item.branch span:before{content:"▼ "}.block_tree .collapsed .tree_item.branch a:before,.block_tree .collapsed .tree_item.branch span:before,.block_tree .collapsed .tree_item.emptybranch a:before,.block_tree .collapsed .tree_item.emptybranch span:before{content:"► "}.dir-rtl .block_tree .tree_item.branch a:before,.dir-rtl .block_tree .tree_item.branch span:before{content:" ▼"}.dir-rtl .block_tree .collapsed .tree_item.branch a:before,.dir-rtl .block_tree .collapsed .tree_item.branch span:before,.dir-rtl .block_tree .collapsed .tree_item.emptybranch a:before,.dir-rtl .block_tree .collapsed .tree_item.emptybranch span:before{content:" ◄"}.block_navigation .block_tree .tree_item.branch.navigation_node a:before{content:none}.block_tree .collapsed .tree_item.emptybranch a:before,.block_tree .collapsed .tree_item.emptybranch span:before{color:#999}.block_settings .block_tree .tree_item,.block_navigation .block_tree .tree_item{margin:0}.block_tree>li>p>a,.block_tree>li>p>span,.block_tree .nav-header{text-shadow:0 1px 0 rgba(255,255,255,0.5)}.block .block_tree li>p>span:hover,.block .block_tree li>p>a:hover{text-decoration:none;background-color:#eee}.block_tree li p.active_tree_node a,.block_tree li p.active_tree_node a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.block_settings .block_tree li ul,.block_settings .block_tree li.depth_2 ul,.block_navigation .block_tree li ul,.block_navigation .block_tree li.depth_2 ul{padding-left:0}.block_settings ul.block_tree.list li ul li a,.block_settings ul.block_tree.list li ul li span,.block_navigation ul.block_tree.list li ul li ul li a,.block_navigation ul.block_tree.list li ul li ul li span{padding-left:33px}.block_settings ul.block_tree.list li ul li ul li a,.block_settings ul.block_tree.list li ul li ul li span,.block_navigation ul.block_tree.list li ul li ul li ul li a,.block_navigation ul.block_tree.list li ul li ul li ul li span{padding-left:49.5px}.block_settings ul.block_tree.list li ul li ul li ul li a,.block_settings ul.block_tree.list li ul li ul li ul li span,.block_navigation ul.block_tree.list li ul li ul li ul li ul li a,.block_navigation ul.block_tree.list li ul li ul li ul li ul li span{padding-left:66px}.block_settings ul.block_tree.list li ul li ul li ul li ul li a,.block_settings ul.block_tree.list li ul li ul li ul li ul li span,.block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li a,.block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li span{padding-left:83.5px}.block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li ul li a,.block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li ul li span{padding-left:99px}.dir-rtl .block_settings .block_tree li ul,.dir-rtl .block_settings .block_tree li.depth_2 ul,.dir-rtl .block_navigation .block_tree li ul,.dir-rtl .block_navigation .block_tree li.depth_2 ul{padding-right:0;padding-left:0}.dir-rtl .block_settings ul.block_tree.list li ul li a,.dir-rtl .block_settings ul.block_tree.list li ul li span,.dir-rtl .block_navigation ul.block_tree.list li ul li ul li a,.dir-rtl .block_navigation ul.block_tree.list li ul li ul li span{padding-right:33px}.dir-rtl .block_settings ul.block_tree.list li ul li ul li a,.dir-rtl .block_settings ul.block_tree.list li ul li ul li span,.dir-rtl .block_navigation ul.block_tree.list li ul li ul li ul li a,.dir-rtl .block_navigation ul.block_tree.list li ul li ul li ul li span{padding-right:49.5px}.dir-rtl .block_settings ul.block_tree.list li ul li ul li ul li a,.dir-rtl .block_settings ul.block_tree.list li ul li ul li ul li span,.dir-rtl .block_navigation ul.block_tree.list li ul li ul li ul li ul li a,.dir-rtl .block_navigation ul.block_tree.list li ul li ul li ul li ul li span{padding-right:66px}.dir-rtl .block_settings ul.block_tree.list li ul li ul li ul li ul li a,.dir-rtl .block_settings ul.block_tree.list li ul li ul li ul li ul li span,.dir-rtl .block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li a,.dir-rtl .block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li span{padding-right:83.5px}.dir-rtl .block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li ul li a,.dir-rtl .block_navigation ul.block_tree.list li ul li ul li ul li ul li ul li ul li span{padding-right:99px}form{margin:0}.mform fieldset .advancedbutton{text-align:right}.mform fieldset.group{margin-bottom:0}.mform fieldset.error{border:1px solid #b94a48}.mform fieldset.collapsible legend a.fheader{padding:0 5px 0 20px;margin-left:-20px;background:url([[pix:t/expanded]]) 2px center no-repeat}.mform fieldset.collapsed legend a.fheader{background:url([[pix:t/collapsed]]) 2px center no-repeat}.jsenabled .mform .collapsed .fcontainer{display:none}.mform .collapsible-actions{display:none;text-align:right}.dir-rtl .mform .collapsible-actions{text-align:left}.jsenabled .mform .collapsible-actions{display:block}.mform .fitem .fitemtitle div{display:inline}.loginpanel .error,.mform .error{color:#b94a48}.mform .fdescription.required{margin-left:180px}.mform .fpassword .unmask{display:inline-block;margin-left:.5em}.mform .fpassword .unmask>input{margin:0}.mform .fpassword .unmask>label{display:inline-block}.mform .ftextarea #id_alltext{width:100%}.mform ul.file-list{padding:0;margin:0;list-style:none}.mform label .req,.mform label .adv{cursor:help}.mform .fcheckbox input{margin-top:5px;margin-left:0}.mform .fitem fieldset.fgroup label,.mform fieldset.fdate_selector label{display:inline;float:none;width:auto}.mform .ftags label.accesshide{position:static;display:block}.mform .ftags select{min-width:22em;margin-bottom:.7em}.mform .helplink img{padding:0;margin:0 .45em}.mform legend .helplink img{margin:0 .2em}.singleselect label{margin-right:.3em}.dir-rtl .singleselect label{margin-right:0;margin-left:.3em}input#id_externalurl{direction:ltr}#portfolio-add-button{display:inline}.form-item,.mform .fitem{margin-bottom:20px;margin-bottom:10px;*zoom:1}.form-item:before,.mform .fitem:before,.form-item:after,.mform .fitem:after{display:table;line-height:0;content:""}.form-item:after,.mform .fitem:after{clear:both}.form-item .form-label,.mform .fitem div.fitemtitle{float:left;width:160px;padding-top:5px;text-align:right}.form-defaultinfo,.form-label .form-shortname{color:#999}.form-label .form-shortname{display:block;font-size:10.5px}.dir-rtl .form-label .form-shortname{text-align:left}.form-item .form-setting,.form-item .form-description,.mform .fitem .felement,#page-mod-forum-search .c1{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-item .form-setting:first-child,.form-item .form-description:first-child,.mform .fitem .felement:first-child,#page-mod-forum-search .c1:first-child{*padding-left:180px}.formsettingheading{margin-bottom:0}.form-item .form-description,.felement.fstatic{display:block;padding-top:5px;margin-bottom:10px;color:#595959}.form-item .form-description{padding-top:0}table#form td.submit,.form-buttons,.path-admin .buttons,#fitem_id_submitbutton,.fp-content-center form+div,div.backup-section+form,#fgroup_id_buttonar{padding:19px 20px 20px;padding-left:0;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}table#form td.submit:before,.form-buttons:before,.path-admin .buttons:before,#fitem_id_submitbutton:before,.fp-content-center form+div:before,div.backup-section+form:before,#fgroup_id_buttonar:before,table#form td.submit:after,.form-buttons:after,.path-admin .buttons:after,#fitem_id_submitbutton:after,.fp-content-center form+div:after,div.backup-section+form:after,#fgroup_id_buttonar:after{display:table;line-height:0;content:""}table#form td.submit:after,.form-buttons:after,.path-admin .buttons:after,#fitem_id_submitbutton:after,.fp-content-center form+div:after,div.backup-section+form:after,#fgroup_id_buttonar:after{clear:both}.path-admin .buttons,.form-buttons{padding-left:180px}.form-item .form-setting .form-checkbox.defaultsnext{display:inline-block;margin-top:5px}#adminsettings h3.main{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}.mform legend a,.mform legend a:hover{color:#333;text-decoration:none}.dir-rtl .mform .fitem .fitemtitle{float:right}.dir-rtl .mform .fitem .felement{margin-right:16%;margin-left:auto;text-align:right}.dir-rtl .mform .fitem .felement input[name=email],.dir-rtl .mform .fitem .felement input[name=email2],.dir-rtl .mform .fitem .felement input[name=url],.dir-rtl .mform .fitem .felement input[name=idnumber],.dir-rtl .mform .fitem .felement input[name=phone1],.dir-rtl .mform .fitem .felement input[name=phone2]{text-align:left;direction:ltr}.dir-rtl #id_s__pathtodu,.dir-rtl #id_s__aspellpath,.dir-rtl #id_s__pathtodot,.dir-rtl #id_s__supportemail,.dir-rtl #id_s__supportpage,.dir-rtl #id_s__sessioncookie,.dir-rtl #id_s__sessioncookiepath,.dir-rtl #id_s__sessioncookiedomain,.dir-rtl #id_s__proxyhost,.dir-rtl #id_s__proxyuser,.dir-rtl #id_s__proxypassword,.dir-rtl #id_s__proxybypass,.dir-rtl #id_s__jabberhost,.dir-rtl #id_s__jabberserver,.dir-rtl #id_s__jabberusername,.dir-rtl #id_s__jabberpassword,.dir-rtl #id_s__additionalhtmlhead,.dir-rtl #id_s__additionalhtmltopofbody,.dir-rtl #id_s__additionalhtmlfooter,.dir-rtl #id_s__docroot,.dir-rtl #id_s__filter_tex_latexpreamble,.dir-rtl #id_s__filter_tex_latexbackground,.dir-rtl #id_s__filter_tex_pathlatex,.dir-rtl #id_s__filter_tex_pathdvips,.dir-rtl #id_s__filter_tex_pathconvert,.dir-rtl #id_s__blockedip,.dir-rtl #id_s__pathtoclam,.dir-rtl #id_s__quarantinedir,.dir-rtl #id_s__sitepolicy,.dir-rtl #id_s__sitepolicyguest,.dir-rtl #id_s__cronremotepassword,.dir-rtl #id_s__allowedip,.dir-rtl #id_s__blockedip,.dir-rtl #id_s_enrol_meta_nosyncroleids,.dir-rtl #id_s_enrol_ldap_host_url,.dir-rtl #id_s_enrol_ldap_ldapencoding,.dir-rtl #id_s_enrol_ldap_bind_dn,.dir-rtl #id_s_enrol_ldap_bind_pw,.dir-rtl #admin-emoticons .form-text,.dir-rtl #admin-role_mapping input[type=text],.dir-rtl #id_s_enrol_paypal_paypalbusiness,.dir-rtl #id_s_enrol_flatfile_location,#page-admin-setting-enrolsettingsflatfile.dir-rtl input[type=text],#page-admin-setting-enrolsettingsdatabase.dir-rtl input[type=text],#page-admin-auth-db.dir-rtl input[type=text]{direction:ltr}#page-admin-setting-enrolsettingsflatfile.dir-rtl .informationbox{text-align:left;direction:ltr}#page-admin-grade-edit-scale-edit.dir-rtl .error input#id_name{margin-right:170px}#installform #id_wwwroot,#installform #id_dirroot,#installform #id_dataroot,#installform #id_dbhost,#installform #id_dbname,#installform #id_dbuser,#installform #id_dbpass,#installform #id_prefix{direction:ltr}.mdl-right>label{display:inline-block}input[type="radio"]+label,input[type="checkbox"]+label{display:inline;padding-left:.2em}input[type="radio"],input[type="checkbox"]{margin-top:-4px}.singleselect{display:inline-block}.singleselect form,.singleselect select{margin:0}.form-item .form-label label{margin-bottom:0}.felement.ffilepicker{margin-top:5px}.tabtree{margin:1em 0}.tabtree ul{padding:0;margin:0;border-top:0;border-right:0;border-bottom:1px solid #ddd;border-left:0}.tabtree:after,.tabtree:before,.tabtree ul:before,.tabtree ul:after{display:table;content:""}.tabtree:after,.tabtree ul:after{clear:both}.tabtree li{display:block;float:left;margin-bottom:-1px}.tabtree a{display:block;padding-top:8px;padding-right:12px;padding-bottom:8px;padding-left:12px;margin-right:2px;line-height:20px;text-decoration:none;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.tabtree a:hover,.tabtree a:focus{text-decoration:none;background-color:#eee;border-color:#eee #eee #ddd}.tabtree .here>a,.tabtree .here>a:hover,.tabtree .here>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.tabtree .here .empty{display:none}select{width:auto}.path-mod-forum .forumheaderlist,.path-mod-forum .forumheaderlist td{border:0}.forumpost{min-height:20px;padding:19px;padding:6px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.forumpost blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.forumpost .row .left{width:auto}.forumpost .options .commands{margin-left:0}.forumpost .subject{font-weight:bold}.forumsearch input[type=text]{margin-bottom:0!important}#page-mod-forum-discuss .discussioncontrol.displaymode{text-align:left}#page-mod-forum-discuss .discussioncontrols .discussioncontrol{float:left}#page-footer{padding:1em 0;margin-top:1em;border-top:2px solid #eee}.maincalendar .calendarmonth td,.maincalendar .calendarmonth th{border:1px dotted #ddd}.path-grade-report-grader h1{text-align:inherit}#page-mod-chat-gui_basic input#message{max-width:100%}#page-mod-data-view #singleimage{width:auto}.path-mod-data form{margin-top:10px}.template_heading{margin-top:10px}.breadcrumb-button{float:right;margin-top:3px}.dir-rtl .navbar .brand{float:right}.navbar .logininfo a{color:#777}.navbar .logininfo a:hover{color:#333;background-color:transparent}.navbar-fixed-top,.navbar-fixed-bottom{z-index:4030}.dir-rtl .breadcrumb-button,.dir-rtl .navbar .btn-navbar{float:left}.ie .row-fluid .desktop-first-column{margin-left:0}.langmenu form{margin:0}.container-fluid{max-width:1680px;margin:0 auto}canvas{-ms-touch-action:auto}div#dock{display:none}.path-mod-choice .horizontal .choices{margin:0}.path-mod-choice .horizontal .choices .option{display:inline-block;padding:10px}.path-mod-lesson .firstpageoptions{width:60%;min-width:280px;margin:auto}.path-backup .mform .grouped_settings.section_level{min-height:20px;padding:19px;padding:10px 0 0 0;margin-bottom:20px;clear:both;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.path-backup .mform .grouped_settings.section_level blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.path-backup .mform .grouped_settings{overflow:hidden;clear:both}.path-backup .include_setting,.path-backup .grouped_settings .normal_setting{display:inline-block}.path-backup .include_setting.section_level label{font-weight:bold}.path-backup .mform .fitem .fitemtitle{width:260px}.path-backup .mform .fitem .felement{margin-left:280px}.path-backup .notification.dependencies_enforced{font-weight:bold;color:#b94a48;text-align:center}.path-backup .backup_progress{text-align:center}.path-backup .backup_progress .backup_stage{color:#999}.path-backup .backup_progress .backup_stage.backup_stage_current{font-weight:bold;color:inherit}.path-backup .backup_progress span.backup_stage.backup_stage_complete{color:inherit}#page-backup-restore .filealiasesfailures{background-color:#f2dede}#page-backup-restore .filealiasesfailures .aliaseslist{width:90%;margin:.8em auto;background-color:#fff;border:1px dotted #666}.path-backup .fitem .smallicon{vertical-align:text-bottom}.backup-restore .backup-section>h2.header,.backup-restore .backup-section .backup-sub-section h3{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}.backup-restore .backup-section .noticebox{width:60%;margin:1em auto;text-align:center}.backup-restore .backup-section.settings-section .detail-pair{display:inline-block;*display:inline;width:50%;*zoom:1}.backup-restore .backup-section.settings-section .detail-pair-label{width:65%}.backup-restore .backup-section.settings-section .detail-pair-value{width:25%}.backup-restore .activitytable{min-width:500px}.backup-restore .activitytable .modulename{width:100px}.backup-restore .activitytable .moduleincluded{width:50px}.backup-restore .activitytable .userinfoincluded{width:50px}.backup-restore .detail-pair-label{display:inline-block;*display:inline;width:25%;padding:8px;margin:0;font-weight:bold;text-align:right;vertical-align:top;*zoom:1}.backup-restore .detail-pair-value{display:inline-block;*display:inline;width:65%;padding:8px;margin:0;*zoom:1}.backup-restore .detail-pair-value>.sub-detail{display:block;font-size:11.9px;color:#999}.backup-restore>.singlebutton{text-align:right}.path-backup .mform .fgroup .proceedbutton{float:right;margin-right:5%}.restore-course-search .rcs-results{width:70%;min-width:400px}.restore-course-search .rcs-results table{width:100%;margin:0;border-width:0}.restore-course-search .rcs-results table .no-overflow{max-width:600px}.restore-course-search .rcs-results .paging{padding:3px;margin:0;text-align:left;background-color:#eee}.restore-course-category .rcs-results{width:70%;min-width:400px;margin:5px 0;border:1px solid #ddd}.restore-course-category .rcs-results table{width:100%;margin:0;border-width:0}.restore-course-category .rcs-results table .no-overflow{max-width:600px}.restore-course-category .rcs-results .paging{padding:3px;margin:0;text-align:left;background-color:#eee}table.flexible,.generaltable{width:100%;margin-bottom:20px}table.flexible th,.generaltable th,table.flexible td,.generaltable td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}table.flexible th,.generaltable th{font-weight:bold}table.flexible thead th,.generaltable thead th{vertical-align:bottom}table.flexible caption+thead tr:first-child th,.generaltable caption+thead tr:first-child th,table.flexible caption+thead tr:first-child td,.generaltable caption+thead tr:first-child td,table.flexible colgroup+thead tr:first-child th,.generaltable colgroup+thead tr:first-child th,table.flexible colgroup+thead tr:first-child td,.generaltable colgroup+thead tr:first-child td,table.flexible thead:first-child tr:first-child th,.generaltable thead:first-child tr:first-child th,table.flexible thead:first-child tr:first-child td,.generaltable thead:first-child tr:first-child td{border-top:0}table.flexible tbody+tbody,.generaltable tbody+tbody{border-top:2px solid #ddd}table.flexible .table,.generaltable .table{background-color:#fff}th,th{border:0}.singlebutton div{display:inline-block;margin-right:5px;margin-bottom:5px;margin-left:5px}.continuebutton{text-align:center}input[name="searchwikicontent"]+input[type="submit"],select+input[type="submit"],input[type="text"]+input[type="button"],input[type="password"]+input[type="submit"],input[type="text"]+button,input[type="text"]+input[type="submit"]{margin:0 0 10px 5px}p.arrow_button{margin-top:5em;text-align:center}p.arrow_button #remove{margin:3em auto 5em}p.arrow_button input{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#addcontrols{margin-top:5em;margin-bottom:3em;text-align:center}#addcontrols input,#removecontrols input{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}button,input.form-submit,input[type="button"],input[type="submit"],input[type="reset"]{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}button:hover,input.form-submit:hover,input[type="button"]:hover,input[type="submit"]:hover,input[type="reset"]:hover,button:focus,input.form-submit:focus,input[type="button"]:focus,input[type="submit"]:focus,input[type="reset"]:focus,button:active,input.form-submit:active,input[type="button"]:active,input[type="submit"]:active,input[type="reset"]:active,button.active,input.form-submit.active,input[type="button"].active,input[type="submit"].active,input[type="reset"].active,button.disabled,input.form-submit.disabled,input[type="button"].disabled,input[type="submit"].disabled,input[type="reset"].disabled,button[disabled],input.form-submit[disabled],input[type="button"][disabled],input[type="submit"][disabled],input[type="reset"][disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}button:active,input.form-submit:active,input[type="button"]:active,input[type="submit"]:active,input[type="reset"]:active,button.active,input.form-submit.active,input[type="button"].active,input[type="submit"].active,input[type="reset"].active{background-color:#ccc \9}button:first-child,input.form-submit:first-child,input[type="button"]:first-child,input[type="submit"]:first-child,input[type="reset"]:first-child{*margin-left:0}button:hover,input.form-submit:hover,input[type="button"]:hover,input[type="submit"]:hover,input[type="reset"]:hover,button:focus,input.form-submit:focus,input[type="button"]:focus,input[type="submit"]:focus,input[type="reset"]:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}button:focus,input.form-submit:focus,input[type="button"]:focus,input[type="submit"]:focus,input[type="reset"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}button.active,input.form-submit.active,input[type="button"].active,input[type="submit"].active,input[type="reset"].active,button:active,input.form-submit:active,input[type="button"]:active,input[type="submit"]:active,input[type="reset"]:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}button.disabled,input.form-submit.disabled,input[type="button"].disabled,input[type="submit"].disabled,input[type="reset"].disabled,button[disabled],input.form-submit[disabled],input[type="button"][disabled],input[type="submit"][disabled],input[type="reset"][disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}button .label,input.form-submit .label,input[type="button"] .label,input[type="submit"] .label,input[type="reset"] .label,button .badge,input.form-submit .badge,input[type="button"] .badge,input[type="submit"] .badge,input[type="reset"] .badge{position:relative;top:-1px}button.yui3-button.closebutton,button.yui3-button.closebutton:hover{background-position:0 0}input.fp-btn-choose{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.user-enroller-panel .uep-search-results .user .options .enrol{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.user-enroller-panel .uep-search-results .user .options .enrol .label,.user-enroller-panel .uep-search-results .user .options .enrol .badge{top:0}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.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:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.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:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;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,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}}@media(min-width:980px){.dir-rtl .navbar .nav.pull-right,.dir-rtl .navbar .logininfo{float:left}.dir-rtl .navbar .nav{float:right}.dir-rtl .navbar .nav>li{float:right}}@media(min-width:1200px){.loginbox.twocolumns .loginpanel{margin-left:0}.loginbox.twocolumns .loginpanel,.loginbox.twocolumns .signuppanel{width:48.717948717948715%;*width:48.664757228587014%}}@media(min-width:980px){.loginbox.twocolumns .loginpanel{margin-left:0}.loginbox.twocolumns .loginpanel,.loginbox.twocolumns .signuppanel{width:48.617948717948715%;*width:48.664757228587014%}}@media(min-width:768px) and (max-width:979px){.loginbox.twocolumns .loginpanel{margin-left:0}.loginbox.twocolumns .loginpanel,.loginbox.twocolumns .signuppanel{width:48.61878453038674%;*width:48.56559304102504%}}@media(max-width:767px){.loginbox.twocolumns .loginpanel,.loginbox.twocolumns .signuppanel{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}@media(min-width:1200px){.coursebox .info,.coursebox .summary{width:48.717948717948715%;*width:48.664757228587014%}}@media(min-width:980px){.coursebox .info,.coursebox .summary{width:48.617948717948715%;*width:48.664757228587014%}}@media(min-width:768px) and (max-width:979px){.coursebox .info,.coursebox .summary{width:48.61878453038674%;*width:48.56559304102504%}}@media(max-width:767px){.coursebox .info,.coursebox .summary{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}@media(max-width:480px){.tabtree>ul{border:0}.tabtree>ul>li{float:none}.tabtree>ul>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.tabtree>ul>li.first>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.tabtree>ul>li.last>a,.tabtree>ul>li.last>a:hover{border:1px solid #ddd;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.tabtree>ul>li>a:hover,.tabtree>ul>li>a:focus{z-index:2;border-color:#ddd}.file-picker .fp-repo-items,.file-picker .fp-repo-area{position:relative;top:0;bottom:0;display:block;width:auto;margin:0;border:0}.file-picker .fp-content{width:100%;height:100%}.fp-content-center{display:block;vertical-align:top}.fp-upload-form td.mdl-right,.fp-upload-form td.mdl-left,.fp-login-form .input,.file-picker .fp-login-form .fp-login-input label,.file-picker td.label{display:block;text-align:left}.file-picker .fp-login-form table,.file-picker td,.file-picker td.label,.file-picker .fp-upload-form table{padding:0;margin:0}.course-content ul.topics li.section,.course-content ul.topics li.section .content,.course-content ul.weeks li.section .content,.course-content ul.weeks li.section,.course-content ul.section{padding:0;margin-right:0;margin-left:0}.activityinstance{display:block}.editing .course-content .section .activity{padding-bottom:.2em;margin-bottom:.2em;border-bottom:thin solid #eee}.course-content .section .activity .commands{display:block;text-align:right}.jsenabled .visibleifjs.addresourcemodchooser{display:none}.jsenabled .hiddenifjs.addresourcedropdown{display:block}.jsenabled .hiddenifjs.addresourcedropdown .iconhelp{display:inline-block;padding:6px;vertical-align:top}.jsenabled .hiddenifjs.addresourcedropdown div.urlselect{display:block}.jsenabled .hiddenifjs.addresourcedropdown div.urlselect form{margin:0}.que .info{float:none;width:auto}.que .content{margin:0}.path-mod-choice .horizontal .choices .option{display:block}.path-mod-forum .forumsearch #search{width:120px}}@media(min-width:768px){.row-fluid .desktop-first-column{margin-left:0}}@media(max-width:767px){.row-fluid .desktop-first-column{clear:right}}@media(max-width:767px){.form-item .form-label,.mform .fitem div.fitemtitle{float:none;width:auto;padding-top:0;text-align:left}.form-item .form-label label{display:inline-block;margin-right:.5em}.form-item .form-setting .form-checkbox{margin-top:0}.form-label span.form-shortname{display:inline-block}.form-item .form-setting,.mform .fitem .felement,.path-backup .mform .fitem .felement,.mform .fdescription.required,.form-item .form-description{margin-left:0}table#form td.submit,.form-buttons,#fitem_id_submitbutton,.fp-content-center form+div,#fgroup_id_buttonar,.form-horizontal .form-actions,.fitem_fsubmit .felement.fsubmit{padding-right:10px;padding-left:10px}#helppopupbox{left:0!important;width:auto!important}}@media(min-width:768px) and (max-width:979px){.block_calendar_month .content,.block .minicalendar td{padding-right:0;padding-left:0}}@media(max-width:979px){.nav-collapse{height:0}.nav-collapse .nav>li>a{color:#333}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus,.nav-collapse .dropdown-submenu a:focus,.nav-collapse .dropdown-submenu a:hover,.nav-collapse .dropdown-submenu a:active,.nav-collapse .dropdown-menu>li>a:hover,.nav-collapse .dropdown-menu>li>a:focus{color:#333;background-image:none}.nav-collapse.active{height:auto}}@media(max-width:768px){#filesskin .yui3-panel,#filesskin .file-picker.fp-generallayout{left:0;width:100%}.userprofile dl.list dt{float:none;width:auto;clear:none;text-align:left}.userprofile dl.list dd{margin-left:0}.section .side,.editing_move{display:none}.activityinstance>a{display:block}.container{width:auto}.row-fluid{width:100%}.row-fluid .span8.pull-right,.row-fluid .span9.pull-right{float:none}.row{margin-left:0}[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}div[role=main]{margin-bottom:2em}}.phpinfo table,.phpinfo th,.phpinfo h2{margin:auto;text-align:left}.phpinfo h2{width:600px}.phpinfo .e,.phpinfo .v,.phpinfo .h{font-size:.8em;color:#000;vertical-align:baseline;background-color:#ccc;border:1px solid #000}.phpinfo .e{font-weight:bold;background-color:#ccf}.phpinfo .h{font-weight:bold;background-color:#99c}#page-footer .performanceinfo{margin:10px 20%;text-align:center}#page-footer .performanceinfo span{display:block}#page-footer .validators{padding-top:5px;margin-top:40px;border-top:1px dotted gray}#page-footer .validators ul{padding:0;margin:0;list-style-type:none}#page-footer .validators ul li{display:inline;margin-right:10px;margin-left:10px}.performanceinfo .cachesused{margin-top:1em}.performanceinfo .cachesused .cache-stats-heading{font-size:110%;font-weight:bold;text-decoration:underline}.performanceinfo .cachesused .cache-definition-stats{margin-top:.3em;font-weight:bold}.performanceinfo .cachesused .cache-store-stats{text-indent:1em}.performanceinfo .cachesused .cache-total-stats{margin-top:.3em;font-weight:bold}table#explaincaps tbody>tr:nth-child(odd)>td,table#defineroletable tbody>tr:nth-child(odd)>td,table.grading-report tbody>tr:nth-child(odd)>td,table#listdirectories tbody>tr:nth-child(odd)>td,table.rolecaps tbody>tr:nth-child(odd)>td,table.userenrolment tbody>tr:nth-child(odd)>td,table#form tbody>tr:nth-child(odd)>td,form#movecourses table tbody>tr:nth-child(odd)>td,#page-admin-course-index .editcourse tbody>tr:nth-child(odd)>td,.forumheaderlist tbody>tr:nth-child(odd)>td,table.flexible tbody>tr:nth-child(odd)>td,.generaltable tbody>tr:nth-child(odd)>td,table#explaincaps tbody>tr:nth-child(odd)>th,table#defineroletable tbody>tr:nth-child(odd)>th,table.grading-report tbody>tr:nth-child(odd)>th,table#listdirectories tbody>tr:nth-child(odd)>th,table.rolecaps tbody>tr:nth-child(odd)>th,table.userenrolment tbody>tr:nth-child(odd)>th,table#form tbody>tr:nth-child(odd)>th,form#movecourses table tbody>tr:nth-child(odd)>th,#page-admin-course-index .editcourse tbody>tr:nth-child(odd)>th,.forumheaderlist tbody>tr:nth-child(odd)>th,table.flexible tbody>tr:nth-child(odd)>th,.generaltable tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}#page-report-loglive-index .generaltable th,#page-admin-report-log-index .generaltable th,#page-report-log-user .generaltable th,#page-admin-user table th,.environmenttable th,.category_subcategories th,.rcs-results th,table#listdirectories th,#page-report-loglive-index .generaltable td,#page-admin-report-log-index .generaltable td,#page-report-log-user .generaltable td,#page-admin-user table td,.environmenttable td,.category_subcategories td,.rcs-results td,table#listdirectories td{padding:4px 5px}.user-enroller-panel .uep-search-results .users tbody tr:hover>td,table.grading-report tbody tr:hover>td,.forumheaderlist tbody tr:hover>td,.generaltable tbody tr:hover>td,table.flexible tbody tr:hover>td,.category_subcategories tbody tr:hover>td,table#modules tbody tr:hover>td,table#permissions tbody tr:hover>td,.user-enroller-panel .uep-search-results .users tbody tr:hover>th,table.grading-report tbody tr:hover>th,.forumheaderlist tbody tr:hover>th,.generaltable tbody tr:hover>th,table.flexible tbody tr:hover>th,.category_subcategories tbody tr:hover>th,table#modules tbody tr:hover>th,table#permissions tbody tr:hover>th{background-color:#f5f5f5}div[id^="bar_pbar_"]{height:20px!important;margin-bottom:20px!important;overflow:hidden!important;background-color:#f7f7f7!important;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9)!important;background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9))!important;background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9)!important;background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9)!important;background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9)!important;background-repeat:repeat-x!important;border:none!important;-webkit-border-radius:4px!important;-moz-border-radius:4px!important;border-radius:4px!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0)!important;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)!important;-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)!important;box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)!important}div[id^="progress_pbar_"]{float:left!important;height:100%!important;padding-top:0!important;font-size:12px!important;color:#fff!important;text-align:center!important;text-shadow:0 -1px 0 rgba(0,0,0,0.25)!important;background-color:#0e90d2!important;background-image:-moz-linear-gradient(top,#149bdf,#0480be)!important;background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be))!important;background-image:-webkit-linear-gradient(top,#149bdf,#0480be)!important;background-image:-o-linear-gradient(top,#149bdf,#0480be)!important;background-image:linear-gradient(to bottom,#149bdf,#0480be)!important;background-repeat:repeat-x!important;border:none!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0)!important;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15)!important;-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15)!important;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15)!important;-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;box-sizing:border-box!important;-webkit-transition:width .6s ease!important;-moz-transition:width .6s ease!important;-o-transition:width .6s ease!important;transition:width .6s ease!important}input.form-submit,input#id_submitbutton,input#id_submitbutton2,.path-admin .buttons input[type="submit"],td.submit input{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}input.form-submit:hover,input#id_submitbutton:hover,input#id_submitbutton2:hover,.path-admin .buttons input[type="submit"]:hover,td.submit input:hover,input.form-submit:focus,input#id_submitbutton:focus,input#id_submitbutton2:focus,.path-admin .buttons input[type="submit"]:focus,td.submit input:focus,input.form-submit:active,input#id_submitbutton:active,input#id_submitbutton2:active,.path-admin .buttons input[type="submit"]:active,td.submit input:active,input.form-submit.active,input#id_submitbutton.active,input#id_submitbutton2.active,.path-admin .buttons input[type="submit"].active,td.submit input.active,input.form-submit.disabled,input#id_submitbutton.disabled,input#id_submitbutton2.disabled,.path-admin .buttons input[type="submit"].disabled,td.submit input.disabled,input.form-submit[disabled],input#id_submitbutton[disabled],input#id_submitbutton2[disabled],.path-admin .buttons input[type="submit"][disabled],td.submit input[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}input.form-submit:active,input#id_submitbutton:active,input#id_submitbutton2:active,.path-admin .buttons input[type="submit"]:active,td.submit input:active,input.form-submit.active,input#id_submitbutton.active,input#id_submitbutton2.active,.path-admin .buttons input[type="submit"].active,td.submit input.active{background-color:#039 \9}input.form-submit .caret,input#id_submitbutton .caret,input#id_submitbutton2 .caret,.path-admin .buttons input[type="submit"] .caret,td.submit input .caret{border-top-color:#fff;border-bottom-color:#fff}#notice .singlebutton+.singlebutton input,.submit.buttons input[name="cancel"]{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}#notice .singlebutton+.singlebutton input:hover,.submit.buttons input[name="cancel"]:hover,#notice .singlebutton+.singlebutton input:focus,.submit.buttons input[name="cancel"]:focus,#notice .singlebutton+.singlebutton input:active,.submit.buttons input[name="cancel"]:active,#notice .singlebutton+.singlebutton input.active,.submit.buttons input[name="cancel"].active,#notice .singlebutton+.singlebutton input.disabled,.submit.buttons input[name="cancel"].disabled,#notice .singlebutton+.singlebutton input[disabled],.submit.buttons input[name="cancel"][disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}#notice .singlebutton+.singlebutton input:active,.submit.buttons input[name="cancel"]:active,#notice .singlebutton+.singlebutton input.active,.submit.buttons input[name="cancel"].active{background-color:#ccc \9}#notice .singlebutton+.singlebutton input:first-child,.submit.buttons input[name="cancel"]:first-child{*margin-left:0}#notice .singlebutton+.singlebutton input:hover,.submit.buttons input[name="cancel"]:hover,#notice .singlebutton+.singlebutton input:focus,.submit.buttons input[name="cancel"]:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}#notice .singlebutton+.singlebutton input:focus,.submit.buttons input[name="cancel"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}#notice .singlebutton+.singlebutton input.active,.submit.buttons input[name="cancel"].active,#notice .singlebutton+.singlebutton input:active,.submit.buttons input[name="cancel"]:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}#notice .singlebutton+.singlebutton input.disabled,.submit.buttons input[name="cancel"].disabled,#notice .singlebutton+.singlebutton input[disabled],.submit.buttons input[name="cancel"][disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#notice .singlebutton+.singlebutton input .label,.submit.buttons input[name="cancel"] .label,#notice .singlebutton+.singlebutton input .badge,.submit.buttons input[name="cancel"] .badge{position:relative;top:-1px}input[id$="_clearbutton"],input[type="reset"]{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}input[id$="_clearbutton"]:hover,input[type="reset"]:hover,input[id$="_clearbutton"]:focus,input[type="reset"]:focus,input[id$="_clearbutton"]:active,input[type="reset"]:active,input[id$="_clearbutton"].active,input[type="reset"].active,input[id$="_clearbutton"].disabled,input[type="reset"].disabled,input[id$="_clearbutton"][disabled],input[type="reset"][disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}input[id$="_clearbutton"]:active,input[type="reset"]:active,input[id$="_clearbutton"].active,input[type="reset"].active{background-color:#c67605 \9}input[id$="_clearbutton"] .caret,input[type="reset"] .caret{border-top-color:#fff;border-bottom-color:#fff}
diff --git a/theme/bootstrap/version.php b/theme/bootstrap/version.php
new file mode 100644
index 00000000000..65fc02c854a
--- /dev/null
+++ b/theme/bootstrap/version.php
@@ -0,0 +1,33 @@
+.
+
+/**
+ * Theme version info
+ *
+ * @package theme
+ * @subpackage bootstrap
+ * @copyright 2013 Bas Brands, www.basbrands.nl
+ * @authors Bas Brands, David Scotson
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die;
+
+$plugin->version = 2013032800;
+$plugin->requires = 2012110900;
+$plugin->maturity = MATURITY_STABLE;
+$plugin->release = '2.0 (Build: 2013032800)';
+$plugin->component = 'theme_bootstrap';