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() ?>> + + <?php echo $PAGE->title ?> + + standard_head_html() ?> + + + + + +standard_top_of_body_html() ?> + + + +
+ + + + + +
+ + +
+
+
+ +
+ +
+ +
+ + + + + main_content() ?> + +
+ + + +
+ + + +
+ +
+ + standard_footer_html(); ?> +
+ +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 . "
      $list_items
    "; + } + /* + * 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 = ''; + } + + /* + * 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';