From 8903b17b01463def54d329fc9c4283341e1ff3d1 Mon Sep 17 00:00:00 2001 From: Bas Brands Date: Wed, 3 Apr 2013 08:53:27 +0800 Subject: [PATCH] MDL-38016 Themes - Add a bootstrap theme to core This theme has been contributed by: Bas Brands David Scotson Michael Aherne Stuart Lamour Thanks for your hard work. --- theme/bootstrap/README.txt | 151 ++ theme/bootstrap/config.php | 166 ++ .../bootstrap/javascript/bootstrapcollapse.js | 224 +++ .../bootstrap/javascript/bootstrapdropdown.js | 115 ++ theme/bootstrap/javascript/bootstrapengine.js | 274 +++ theme/bootstrap/javascript/headercollapse.js | 10 + theme/bootstrap/javascript/html5shiv.js | 301 +++ theme/bootstrap/javascript/moodlebootstrap.js | 28 + theme/bootstrap/lang/en/theme_bootstrap.php | 70 + theme/bootstrap/layout/general.php | 171 ++ theme/bootstrap/less/README | 19 + theme/bootstrap/less/bootstrap/accordion.less | 34 + theme/bootstrap/less/bootstrap/alerts.less | 79 + theme/bootstrap/less/bootstrap/bootstrap.less | 63 + .../bootstrap/less/bootstrap/breadcrumbs.less | 24 + .../less/bootstrap/button-groups.less | 229 +++ theme/bootstrap/less/bootstrap/buttons.less | 228 +++ theme/bootstrap/less/bootstrap/carousel.less | 158 ++ theme/bootstrap/less/bootstrap/close.less | 32 + theme/bootstrap/less/bootstrap/code.less | 61 + .../less/bootstrap/component-animations.less | 22 + theme/bootstrap/less/bootstrap/dropdowns.less | 237 +++ theme/bootstrap/less/bootstrap/forms.less | 690 +++++++ theme/bootstrap/less/bootstrap/grid.less | 21 + theme/bootstrap/less/bootstrap/hero-unit.less | 25 + .../less/bootstrap/labels-badges.less | 84 + theme/bootstrap/less/bootstrap/layouts.less | 16 + theme/bootstrap/less/bootstrap/media.less | 55 + theme/bootstrap/less/bootstrap/mixins.less | 702 +++++++ theme/bootstrap/less/bootstrap/modals.less | 95 + theme/bootstrap/less/bootstrap/navbar.less | 497 +++++ theme/bootstrap/less/bootstrap/navs.less | 409 ++++ theme/bootstrap/less/bootstrap/pager.less | 43 + .../bootstrap/less/bootstrap/pagination.less | 123 ++ theme/bootstrap/less/bootstrap/popovers.less | 133 ++ .../less/bootstrap/progress-bars.less | 122 ++ theme/bootstrap/less/bootstrap/reset.less | 216 +++ .../less/bootstrap/responsive-1200px-min.less | 28 + .../less/bootstrap/responsive-767px-max.less | 193 ++ .../bootstrap/responsive-768px-979px.less | 19 + .../less/bootstrap/responsive-navbar.less | 189 ++ .../less/bootstrap/responsive-utilities.less | 59 + .../bootstrap/less/bootstrap/responsive.less | 48 + .../bootstrap/less/bootstrap/scaffolding.less | 53 + theme/bootstrap/less/bootstrap/sprites.less | 197 ++ theme/bootstrap/less/bootstrap/tables.less | 244 +++ .../bootstrap/less/bootstrap/thumbnails.less | 53 + theme/bootstrap/less/bootstrap/tooltip.less | 70 + theme/bootstrap/less/bootstrap/type.less | 247 +++ theme/bootstrap/less/bootstrap/utilities.less | 30 + theme/bootstrap/less/bootstrap/variables.less | 301 +++ theme/bootstrap/less/bootstrap/wells.less | 29 + theme/bootstrap/less/editor.less | 30 + theme/bootstrap/less/moodle.less | 55 + theme/bootstrap/less/moodle/admin.less | 720 +++++++ .../bootstrap/less/moodle/backup-restore.less | 164 ++ theme/bootstrap/less/moodle/blocks.less | 313 +++ theme/bootstrap/less/moodle/buttons.less | 62 + theme/bootstrap/less/moodle/calendar.less | 186 ++ theme/bootstrap/less/moodle/core.less | 1703 +++++++++++++++++ theme/bootstrap/less/moodle/course.less | 565 ++++++ theme/bootstrap/less/moodle/debug.less | 67 + theme/bootstrap/less/moodle/expendable.less | 76 + theme/bootstrap/less/moodle/filemanager.less | 1150 +++++++++++ theme/bootstrap/less/moodle/forms.less | 318 +++ theme/bootstrap/less/moodle/grade.less | 588 ++++++ theme/bootstrap/less/moodle/message.less | 183 ++ theme/bootstrap/less/moodle/modules.less | 133 ++ theme/bootstrap/less/moodle/question.less | 394 ++++ theme/bootstrap/less/moodle/recess.txt | 5 + theme/bootstrap/less/moodle/responsive.less | 367 ++++ theme/bootstrap/less/moodle/tables.less | 6 + theme/bootstrap/less/moodle/tabs.less | 65 + theme/bootstrap/less/moodle/undo.less | 187 ++ theme/bootstrap/less/moodle/user.less | 172 ++ theme/bootstrap/less/moodle/yui_fixes.less | 10 + theme/bootstrap/pix/favicon.ico | Bin 0 -> 1150 bytes theme/bootstrap/pix/fp/alias.png | Bin 0 -> 1249 bytes theme/bootstrap/pix/fp/alias_sm.png | Bin 0 -> 1158 bytes theme/bootstrap/pix/fp/check.png | Bin 0 -> 1299 bytes theme/bootstrap/pix/fp/cross.png | Bin 0 -> 1286 bytes theme/bootstrap/pix/fp/dnd_arrow.gif | Bin 0 -> 83796 bytes theme/bootstrap/pix/fp/link.png | Bin 0 -> 1442 bytes theme/bootstrap/pix/fp/link_sm.png | Bin 0 -> 1274 bytes theme/bootstrap/pix/fp/path_folder.png | Bin 0 -> 1413 bytes theme/bootstrap/pix/fp/path_folder_rtl.png | Bin 0 -> 592 bytes theme/bootstrap/pix/fp/view_icon_active.png | Bin 0 -> 1280 bytes theme/bootstrap/pix/fp/view_icon_inactive.png | Bin 0 -> 1293 bytes theme/bootstrap/pix/fp/view_icon_selected.png | Bin 0 -> 1287 bytes theme/bootstrap/pix/fp/view_list_active.png | Bin 0 -> 1221 bytes theme/bootstrap/pix/fp/view_list_inactive.png | Bin 0 -> 1229 bytes theme/bootstrap/pix/fp/view_list_selected.png | Bin 0 -> 1302 bytes theme/bootstrap/pix/fp/view_tree_active.png | Bin 0 -> 1269 bytes theme/bootstrap/pix/fp/view_tree_inactive.png | Bin 0 -> 1288 bytes theme/bootstrap/pix/fp/view_tree_selected.png | Bin 0 -> 1260 bytes .../pix/glyphicons-halflings-white.png | Bin 0 -> 4352 bytes theme/bootstrap/pix/glyphicons-halflings.png | Bin 0 -> 4352 bytes theme/bootstrap/pix/header.jpg | Bin 0 -> 499 bytes .../pix/horizontal-menu-submenu-indicator.png | Bin 0 -> 879 bytes theme/bootstrap/pix/screenshot.jpg | Bin 0 -> 91386 bytes theme/bootstrap/pix/sprite.png | Bin 0 -> 1002 bytes .../pix/vertical-menu-submenu-indicator.png | Bin 0 -> 880 bytes .../pix/yui2-treeview-sprite-rtl.gif | Bin 0 -> 4344 bytes theme/bootstrap/readme_moodle.txt | 47 + theme/bootstrap/renderers.php | 26 + theme/bootstrap/renderers/core.php | 160 ++ theme/bootstrap/style/README | 3 + theme/bootstrap/style/editor.css | 1 + theme/bootstrap/style/generated.css | 9 + theme/bootstrap/version.php | 33 + 110 files changed, 15485 insertions(+) create mode 100644 theme/bootstrap/README.txt create mode 100644 theme/bootstrap/config.php create mode 100644 theme/bootstrap/javascript/bootstrapcollapse.js create mode 100644 theme/bootstrap/javascript/bootstrapdropdown.js create mode 100644 theme/bootstrap/javascript/bootstrapengine.js create mode 100644 theme/bootstrap/javascript/headercollapse.js create mode 100644 theme/bootstrap/javascript/html5shiv.js create mode 100644 theme/bootstrap/javascript/moodlebootstrap.js create mode 100644 theme/bootstrap/lang/en/theme_bootstrap.php create mode 100644 theme/bootstrap/layout/general.php create mode 100644 theme/bootstrap/less/README create mode 100644 theme/bootstrap/less/bootstrap/accordion.less create mode 100644 theme/bootstrap/less/bootstrap/alerts.less create mode 100644 theme/bootstrap/less/bootstrap/bootstrap.less create mode 100644 theme/bootstrap/less/bootstrap/breadcrumbs.less create mode 100644 theme/bootstrap/less/bootstrap/button-groups.less create mode 100644 theme/bootstrap/less/bootstrap/buttons.less create mode 100644 theme/bootstrap/less/bootstrap/carousel.less create mode 100644 theme/bootstrap/less/bootstrap/close.less create mode 100644 theme/bootstrap/less/bootstrap/code.less create mode 100644 theme/bootstrap/less/bootstrap/component-animations.less create mode 100644 theme/bootstrap/less/bootstrap/dropdowns.less create mode 100644 theme/bootstrap/less/bootstrap/forms.less create mode 100644 theme/bootstrap/less/bootstrap/grid.less create mode 100644 theme/bootstrap/less/bootstrap/hero-unit.less create mode 100644 theme/bootstrap/less/bootstrap/labels-badges.less create mode 100644 theme/bootstrap/less/bootstrap/layouts.less create mode 100644 theme/bootstrap/less/bootstrap/media.less create mode 100644 theme/bootstrap/less/bootstrap/mixins.less create mode 100644 theme/bootstrap/less/bootstrap/modals.less create mode 100644 theme/bootstrap/less/bootstrap/navbar.less create mode 100644 theme/bootstrap/less/bootstrap/navs.less create mode 100644 theme/bootstrap/less/bootstrap/pager.less create mode 100644 theme/bootstrap/less/bootstrap/pagination.less create mode 100644 theme/bootstrap/less/bootstrap/popovers.less create mode 100644 theme/bootstrap/less/bootstrap/progress-bars.less create mode 100644 theme/bootstrap/less/bootstrap/reset.less create mode 100644 theme/bootstrap/less/bootstrap/responsive-1200px-min.less create mode 100644 theme/bootstrap/less/bootstrap/responsive-767px-max.less create mode 100644 theme/bootstrap/less/bootstrap/responsive-768px-979px.less create mode 100644 theme/bootstrap/less/bootstrap/responsive-navbar.less create mode 100644 theme/bootstrap/less/bootstrap/responsive-utilities.less create mode 100644 theme/bootstrap/less/bootstrap/responsive.less create mode 100644 theme/bootstrap/less/bootstrap/scaffolding.less create mode 100644 theme/bootstrap/less/bootstrap/sprites.less create mode 100644 theme/bootstrap/less/bootstrap/tables.less create mode 100644 theme/bootstrap/less/bootstrap/thumbnails.less create mode 100644 theme/bootstrap/less/bootstrap/tooltip.less create mode 100644 theme/bootstrap/less/bootstrap/type.less create mode 100644 theme/bootstrap/less/bootstrap/utilities.less create mode 100644 theme/bootstrap/less/bootstrap/variables.less create mode 100644 theme/bootstrap/less/bootstrap/wells.less create mode 100644 theme/bootstrap/less/editor.less create mode 100644 theme/bootstrap/less/moodle.less create mode 100644 theme/bootstrap/less/moodle/admin.less create mode 100644 theme/bootstrap/less/moodle/backup-restore.less create mode 100644 theme/bootstrap/less/moodle/blocks.less create mode 100644 theme/bootstrap/less/moodle/buttons.less create mode 100644 theme/bootstrap/less/moodle/calendar.less create mode 100644 theme/bootstrap/less/moodle/core.less create mode 100644 theme/bootstrap/less/moodle/course.less create mode 100644 theme/bootstrap/less/moodle/debug.less create mode 100644 theme/bootstrap/less/moodle/expendable.less create mode 100644 theme/bootstrap/less/moodle/filemanager.less create mode 100644 theme/bootstrap/less/moodle/forms.less create mode 100644 theme/bootstrap/less/moodle/grade.less create mode 100644 theme/bootstrap/less/moodle/message.less create mode 100644 theme/bootstrap/less/moodle/modules.less create mode 100644 theme/bootstrap/less/moodle/question.less create mode 100644 theme/bootstrap/less/moodle/recess.txt create mode 100644 theme/bootstrap/less/moodle/responsive.less create mode 100644 theme/bootstrap/less/moodle/tables.less create mode 100644 theme/bootstrap/less/moodle/tabs.less create mode 100644 theme/bootstrap/less/moodle/undo.less create mode 100644 theme/bootstrap/less/moodle/user.less create mode 100644 theme/bootstrap/less/moodle/yui_fixes.less create mode 100644 theme/bootstrap/pix/favicon.ico create mode 100644 theme/bootstrap/pix/fp/alias.png create mode 100644 theme/bootstrap/pix/fp/alias_sm.png create mode 100644 theme/bootstrap/pix/fp/check.png create mode 100644 theme/bootstrap/pix/fp/cross.png create mode 100644 theme/bootstrap/pix/fp/dnd_arrow.gif create mode 100644 theme/bootstrap/pix/fp/link.png create mode 100644 theme/bootstrap/pix/fp/link_sm.png create mode 100644 theme/bootstrap/pix/fp/path_folder.png create mode 100644 theme/bootstrap/pix/fp/path_folder_rtl.png create mode 100644 theme/bootstrap/pix/fp/view_icon_active.png create mode 100644 theme/bootstrap/pix/fp/view_icon_inactive.png create mode 100644 theme/bootstrap/pix/fp/view_icon_selected.png create mode 100644 theme/bootstrap/pix/fp/view_list_active.png create mode 100644 theme/bootstrap/pix/fp/view_list_inactive.png create mode 100644 theme/bootstrap/pix/fp/view_list_selected.png create mode 100644 theme/bootstrap/pix/fp/view_tree_active.png create mode 100644 theme/bootstrap/pix/fp/view_tree_inactive.png create mode 100644 theme/bootstrap/pix/fp/view_tree_selected.png create mode 100644 theme/bootstrap/pix/glyphicons-halflings-white.png create mode 100644 theme/bootstrap/pix/glyphicons-halflings.png create mode 100644 theme/bootstrap/pix/header.jpg create mode 100644 theme/bootstrap/pix/horizontal-menu-submenu-indicator.png create mode 100644 theme/bootstrap/pix/screenshot.jpg create mode 100644 theme/bootstrap/pix/sprite.png create mode 100644 theme/bootstrap/pix/vertical-menu-submenu-indicator.png create mode 100644 theme/bootstrap/pix/yui2-treeview-sprite-rtl.gif create mode 100644 theme/bootstrap/readme_moodle.txt create mode 100644 theme/bootstrap/renderers.php create mode 100644 theme/bootstrap/renderers/core.php create mode 100644 theme/bootstrap/style/README create mode 100644 theme/bootstrap/style/editor.css create mode 100644 theme/bootstrap/style/generated.css create mode 100644 theme/bootstrap/version.php 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 0000000000000000000000000000000000000000..f864f1d9310adb6d3d5acbaa0e45033bb0b04a75 GIT binary patch literal 1150 zcmbW0J8l9&5JU&DNc>rT%Qvtfal$1W8Ot$e@G;Ca$T$K40fc0}1q9Y6L_){fvs86YZYl6>O@K_KaLTKt7C$Ye6ALk(z{4tW4N z7RLK+&mFqmuJn36<^7dUKd8Uo?_Y9rPm6o`$wzK#u-?%ti+g-}k>sOso!|7%=d<=O zxxdAyCJX*MnM`!M-|zLk+dhtC%|(9hZ|^VJf77|O&gXNTC*xc1;V%{o*>1OTI-TTj zILK@^lj(FSyWLKX$D=+cCo@3*t$%Qt9ai-2&5v=Z!8q`lU7KId>BIH>GCMYZc-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh**NZ(?$0 z9!LbN!`Ii!Gq1QLF)umQ)5TT^Xog;9W{Q=mp@E~Zvx|$Rg|oS#p{t>#se!45g@vKH ztEr`tfr$}JuSMv>2~2MaLa!@My`aR9TL84#CABECEH%ZgC_h&L>}jh^+-`Bg zX&zK>3U0SJ}I&lg`<%Y9~xG!et&Dj27{_Ue}CWqeZQWq`Tl-MJ?7SO zh1HIR3TvP0sEex?bC|1l%d4|*7B*+!ETF7xeE58Pz2v@{|7Sn^`|Qu-J!699=B%Fm z^?yFi{(N|P{Jr`6{s{g0^p^kdasB-g_iBHg{qX87f7^BWx`*ZrEYGgbKKJX-Q~!7E z`t=fVd;cH&@Z>6g+i(B<1~zpcdml<)a42aIWNTD)zd2)ug!lgce@=f8fAR5t{Xa() z3CWFZ!flN8|NikO{`eg~x6$K3i>r=U>vwq{J+?>7k4PmjTxBV>a=!emZnlMjH-E== zp)X7V1xg$B8486v7)_qYPFSUKjJ15i4O55SdQaYFQ=XoJ|MKd#0{@MDSkyjc2mG&B zyxDM8IABy@nSdg*gk$6+AqIg22BEy=z5*Arw}T2D MPgg&ebxsLQ0OJ9-wg3PC literal 0 HcmV?d00001 diff --git a/theme/bootstrap/pix/fp/alias_sm.png b/theme/bootstrap/pix/fp/alias_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..80fbfafc50e76e4629381934304502dc2371f5b7 GIT binary patch literal 1158 zcmeAS@N?(olHy`uVBq!ia0vp^96-#&!3HGb=lz)rq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1FfglRhD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Keo`G(%ftjI#nTejE ziGihwrH+D;fuVuEp^?6Uxvrssm8rRvfuRBvC;@FNN=dT{a&d#&1?1T(Wt5Z@Sn2DR zmzV368|&p4rRy77T3YHG80i}s=>k>g7FXt#Bv$C=6)VF`a7isrF3Kz@$;{7F0GXJW zlwVq6s|0i@#0$9vaAWg|p}_eNv z%sh|?Sck8#m1kaYNn&1ds;7&s63`62%*+%kLt`^XR|{8DCu2(sLqk_X3qwm+Hz#Ko z12bo17h^|Lm|mCsATTy=@x#-_ zF{I*F(x3nT?U{{c?E2MraQ^=Pd-vD;fBfa)=k+ef=Bz7T6eFYKXA^U#(Pqw?Z)bdX zg!cdYlV0)pqx#|F{`;Rs?yLEI_QUh@`=8YRkBI&MFF7G0<;VFCPjAP!nZK_$s$n{1 z*tDi&jh*I^qv!s#G|%n){QUiX9(lXJX+M5)uZfz+nxcPU%CUU=e+B=3x4)4Sm_4!a z;_?Ru>Jz?lbyNxz{m(ZtFj~bN`N_w@N!E2z<3ffN!O|Y)jTQ>pE)#w3Y}|Q2O(`VN zwu512fn>*jCRN7-F=nX*rdJh=ORhWr{B9`X@KQ&ij^)Ul2vG*#O5T!YOJ*?!fdmH2 Xjd2rCT<)6=Dj7Uo{an^LB{Ts5wmg;M literal 0 HcmV?d00001 diff --git a/theme/bootstrap/pix/fp/check.png b/theme/bootstrap/pix/fp/check.png new file mode 100644 index 0000000000000000000000000000000000000000..1fd55ffbcc2f9bd81dc2e6bfdf3126d3dcd57b5c GIT binary patch literal 1299 zcmeAS@N?(olHy`uVBq!ia0vp^f8U}fi7AzZCsS=07?@QuLn2Bde0{8v^K*7iAWdWaj57fJ{tG z$}cUkRRX#c;)UD-xUqS~&|m@vn0`fKfxe-h0mw@*g}%P{mFDKcRTq~8r6Sym)!^cg z%7Rq=pw#00(xPNw#HA^NtSYc_E=o--$uA1Y&(DE{Vn9ZINq%ugeu08>u&JJ*f^TAS zW*$fcti#vW$}_LHBrz{J)zigR32261W@d_&rMaQAk*lkzrMbDOp`ojxql>wjlewFj zv$>0zo0GXEOs`9Ra%paAUI|QZ3PP_LPQ9SSkXrz>*(J3ovn(~mttdZN0qkk3Ox$iU z#%Uf@ZwhX=nBdf_4|I$^C~A?S8YToxKOiPN;Q~4Eq@S7xOz%a&gk8n5d=Uc!W2>i& zV@SoVnkoCW+X6+7zpu2JdG8auhGb9M_8hgDK5ETA_a-GR+%6I*)*NJXA|cUGBQ?=f zQ*e{#%s<>dUe}-ht9kdda(?i0%kT4k+ukpJZ~44->1UfoMS>x#(>iC^eb$`PQ5>~e zt7(TnbMp&EyX*|21*5nX-Mh+xiQ|UrtV#&bgb}Su0|0#OxDu*D}9Z^!SB) zhjy}>Y@V{=a@7vYFM>NN!-Ut|Pv!}_wcTyQIUgnV2h$F$-BkBs$;S;Vblo(z-OgF0 z{ovgVnSaM4g`yw2+swbQ^Oc&FNa6A8**8m+UQb#d`jFeSZF#HhLF*TV&M#)F?^bxQ zv}$!oZu^M|GU{*sR*3(tRt(Xd9-I5Lc=B`xp`Ax}PW-WqW5z+hUw=)1O%pSk9razN zdPn!XUrpOMZmdKI;Vst0FC_F!2kdN literal 0 HcmV?d00001 diff --git a/theme/bootstrap/pix/fp/cross.png b/theme/bootstrap/pix/fp/cross.png new file mode 100644 index 0000000000000000000000000000000000000000..7899d43f9ebfaacd7e8cea9c5564595ea837be86 GIT binary patch literal 1286 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 FngHS(4k-Wt literal 0 HcmV?d00001 diff --git a/theme/bootstrap/pix/fp/link_sm.png b/theme/bootstrap/pix/fp/link_sm.png new file mode 100644 index 0000000000000000000000000000000000000000..f7160b4f14ba8173aa94e3a8f28aa282b40c65bc GIT binary patch literal 1274 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi#*v!$@!qw8r*wVt#(AChw(9+e-$=Sug z%-Pt**wGZG*Cju>G&eP`1g19yq1O?oUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dZnv1@ zG!Lpb1-Dx)aO%|uIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1zKEvSfo`Hce$J50z zq~cc2#IxQ^jv@!{uklPc{%@ia2ebb}#e-HeE4p4>TDr(ZW9kBLsX&SB(zlOOma21d zH+5K5XmR~-TadiO`rWzk{B2@Kz8%ajpZRm|_WXMSOGSRTK3pQpCGq5p!HGFjxOM~_ zdbRP+g!y|C_w{=%UB#estaZ(TJ1H^mF3r>UrKaKZZ0VH5DO_n~dsbY(^i%BZ%|{R8 zo&N2RHDqXtnK)&p?C$T^c28OUb#_Jii7EG;ew417;$z5`V9Y3c%J}MBkIJ;amBJ!Z z8XWHWM%=6BP2@IxV|s3f)h5}CE|#6q`VrX@H{J6lraVxdA;IYM%E{qQnvr+z$D2!& zxXkq@dZut^X6+2@i)u^l{``KO@!zY3MbB>wvx|v3{`srKRepl2=;_IKl0w=3T&-S@ z4R*bf6{zle7$s3%=d$sty~yEOp%q_GR&Li~Ob@uW@c1dg&;D~3^!3HEJvmYx1Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?@QuLn2Bde0{8v^K*7iAWdWaj57fJ{tG z$}cUkRRX#c;)UD-xUqS~&|m@vn0`fKfxe-h0mw@*g}%P{mFDKcRTq~8r6Sym)!^cg z%7Rq=pw#00(xPNw#HA^NtSYc_E=o--$uA1Y&(DE{Vn9ZINq%ugeu08>u&JJ*f^TAS zW*$fcti#vW$}_LHBrz{J)zigR32261W@d_&iK&sLnX`+jg@uKap`ojxqno3#vw@kL ziHnnyv9YToOs`9Ra%paAUI|QZ3PP_LPQ9SSkXrz>*(J3ovn(~mttdZN0qkk3Ox$iU z#%Uf@ZwhX=nBdf_4|I$^C~A?S8YToxKOklWEa3t<@T8xb2Tbopz=S=a_yh+71LJp3 z7srr_TXRBey=4MLZ1dA{u1K&b-a3(#sQ7Qf70u7gVon?^pZIew9SO<&CZ6H2p{G^s z;3*T%rn!zAJWO7!di|zmU;munX(g^_cNDg5{(SHD%<6Zx&-X2#Q(SRo>%PCozZ&;C zMXRiAeDwF%(KT7W)GBx`etS358kl~~jk~UG4%FE)@4=HrM^0S}On$cN@=Fu8yzRHk zui34U+wt>ep^tCR0SR`o_W0$JRU6$TG+Y)oJzo1Wewy`>$j-a-4VCJCcm41wX1*;gwB^I1vC6y{34D2oHXjb6yf#uL+<-SllQ9J6ZSr$zNn&OjeCDxId}Zj zm`AfyOO28f16mTr)+aL8b{qRO}qfd?cJbRaEn>U#ldlWU>%@;E8GZixHS#vaV z>osqaBB57SD_?}oVSU8C(Q%LBxA)4M!=4nL@P55o`^S}SlP>&vw=DkFPtz;epW?ps zKjEKc0FWW?2=tobdQL)j7| zR25U?JyqnE9^STZj+N7r-V^EUv%~Jn#LKFk>(AAF{OkWbh17)`cNUj?Z&?u|)suSv gs?lZ3KcWc?b4zunzOIaZ2r3voUHx3vIVCg!0Ih@)@Bjb+ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6127d994ff651fe53166a702e683d1915b674e24 GIT binary patch literal 592 zcmV-W0OIn5LU=l6ZznKN>CCe@4A-`#O~Gm#<%X3NBb zwQJ%M6((K2eE-9Df7PrkU14dl$E_PZb`M5;__Xhrfu)V7+rD~xj=8c!*%c`YA)4%D zbCz%RkVG2GTD;n2>&pRatMmUg>-YPUVO5p6duN^^iB1fZWgtpO;5bPFiO?QgUntoA zI=HB*1z;l~__;sC9cE`DWf6!$xPv(e2my+*wHU?VI8O^HfXBcS;Bx|KvePt9b|>dZ z2(2?S#~or2b;pq)1u-1jG@x~06IeNoF=uB~8`+@FMm;i85+H)qMj6@}#wfa-fZ0UY zGVpv1`+H{Dpc=I>+yN0&8>0kKpdjKf(@B9MiKA*FY!CQ$<^##*R3oFw)`EiY8qAFp z+c{~xRc20#V(+j%5B3P?1J8har?4g)N0pItt5!jn`8dJ`b0;d`v;sOYFgR?cnb}9+ zKJZY|rn{5OTE+F)8QJ;sS8*3LCqe*>^M0Lw>Xo~{1=dqjH@w^0X&aj(iIY|W&T1PJ eFS=*Pz?c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh**NZ(?$0 z9!LbN!`Ii!Gq1QLF)umQ)5TT^Xog;9W{Q=8v$45_v7wQzv6Hc@k*Sff znWKrTrK2lMuSMv>2~2MaLa#ASy`aR9TL84#CABECEH%ZgC_h&L>}jh^+-@3U0R;;?%1Tbc{YIYLTKECIn1BASOKF0y*%cpPC0u??u3by)St431>wvok7ljZpP0! z7jc>ntr9qyd0*y|VN!i;_z@NC%1dE?|i`NE%td(#?Mty=W+ZP{Dn8pEYmonsVu(rH*KjFt_5hwLj~(ZT}qEe|#Hjh~YN3?vHzN`?chmOV2X(-FU0W zq0!nspMGK9<_NY+_7G`+g7-WI55LDsCpp%iyniN5?X0)+qg95j si{jS*%HA2Kd1?Dqv9{`3pZ82W46W<FiUE~Lp00i_>zopr0Jtc}h5!Hn literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d4eca1d5c9014211fb27a0e5ea2468acea47eb76 GIT binary patch literal 1293 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh**NZ(?$0 z9!LbN!`Ii!Gq1QLF)umQ)5TT^Xog;9W{Q=wvy+jDqk)ULo3ojrp{t>zv6Hc@k*Sff znWKrTrK2lMuSMv>2~2MaLa!@My`aR9TL84#CABECEH%ZgC_h&L>}jh^+-`Bg zX&zK>3U0SJ!z@B?bn@dQTU} zkcwMdLeJ(k8}Mvn_CJta@?GrfzODXu@;qX+u4VNH`Mwf-p%^#kzrhMC-l7JJ`TO~A z7cvP6UMckr@|sZ^66)&RGv{djcIh*=EIKA`tvla!b0|OB-}?Fe>r#;ldl{kMx%=z6 zs#hKJkx;gLQ@VY2-;Y4w$6purZ!T?-cS?Spv)qYecGRDcmbYQnv9s6$elF-2OjvBN?flv0kCH=TFP)t> zS(LB)MfyyRyBW_I`L{hz7BQU_)ZxR}qNX&rw=m0Z`GpTk-b#HNeG-Fm<$`XAKFR)^ zy48rKq;}>M?n!a8DzZIYrz9}(2yQ+p+nCILbk4>230u<5nKtdvwm5sxRHXIycI`8U z#U5t)FDAM5I&0Wv#nfl|u}yd37I!uL?b`4C*QcIEg5dY0(^G~1x%G1@)Wt~$( F698hd$H)Kx literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2d6c45ec6541ffa0173ea182a845dfd67dda42d5 GIT binary patch literal 1287 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh**NZ(?$0 z9!LbN!`Ii!Gq1QLF)umQ)5TT^Xog;9W{Q=Olc|BDo2#3Jk&&^Xp{t>Vk%6V7nVFl3 zsim{2k&_uruSMv>2~2MaT(6q}PQ9SSkXrz>*(J3ovn(~mttdZN0qkk3Ox$j9 z!D${;ZwgMgxVqxhs}FRHJ}7FDq8cUyOg|tdJmCU4@T8xb2Tbopz=ZuZQrC`wfw9ul z#WAGf)}4^Ryh8>&rIXCogwL?x77Bm3{892FgBqVd`L`4u{=SH83%L;Xmf^@uS@p<7 zo@F1+!@b_5U$5OZS?hi6Ws?q$`l(5qZ$@N4WV=|f`Oj>Tqqpno?dA9vo=lnabz81} z!^Bpr={tBoNl%EZ_;7Bgu!*ws^~edq3@dW4J2LQ|;Jf@XCw6JsQIt13U6e%t!Ju#bYPesHN ztLdkgK2T4{I^<}!z*jI3vu@kWKC9BYb!uZXcZzYuO>1@Kk8D$dUw{3z`29q- zB{OB7?TeS`TY;xBKt=GqN$bP0l+XkK D(&5T0 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e0977a0f80bf07ddb31a8fa7a8115ea22db90ea0 GIT binary patch literal 1221 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6M!2~3ih)e(pNS3%plmzFem6RtIr7}3CM0@_xTl4cd;;s&(~$g@?-C@Cqh($_C9 zFV`zK*2^zS*Eh7ZwA42+(l;{F1**_3uFNY*tkBIXR)(42l3JWxlvz-cnV+WsGBGhJ zzqG_w3FuOY7jg^W#^x16g9#X5`W1-<`i6Q2ATPlb`ugHmnwtw(U0f2Bif}JhgNs8d z3sUuiQj7CTi;{s6m!=G|s=&&*C^fMpzbGU>KL-|y0U7xv`NbLe1q#l=rh0}7zKO}1 zc_0z64qsm@&%EN2#JuEGPZwJypc#6ZnJHGz&Q3-qj)sQjZq8F!YeKyHnhkh*ef1c0PIvvj&(JxWC&}?B-?lZ63gbN5EU+z4=x&aTf zlGSscgG@?BM^AsszyDpRW7oRG+uMrtGTudeUvQ&5{Ibc=Ln>L>ks_NZgQ8rgXw z)iUk%PZnAq-1Tmve)KeTkHQrRVjoO>84Xzfs2oat^_NSsAjxIDsnKp8ccxRnJ3Vgw zR8G;8tTByj$Z&2jz3{zu-(t-R{UWZhDIyFDkFB|}pmN^UnPm?}oIG7Uw?sTtogDUH zvJTS>C(YwZVV@?%{eH2l#{GQi!W+JSHixp#Q@_mG%(Qo%cI_jdU>B jeT(hgSht&Jf6_g`@XukH<+0jl;F87D)z4*}Q$iB}f?%mf literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b20c0686515dd4d518abc2bbb401fc4ed4114482 GIT binary patch literal 1229 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6M!2~3ih)e(pNS3%plmzFem6RtIr7}3CM0@_xTl4cd;;s&(~$g@?-C@Cqh($_C9 zFV`zK*2^zS*Eh7ZwA42+(l;{F1**_3uFNY*tkBIXR)(42l3JWxlvz-cnV+WsGBGhJ zzqG_w3FuOY7jg^W#^x16g9#X5`W1-<`i6Q2ATPlb`ugHmnwtw(U0f2Bif}JhgNs8d z3sUuiQj7CTi;{s6m!=G|s=&&*C^fMpzbGU>KL-|y0U7xv`NbLe1q#l=rh0}7zKO}1 zc_0z64qsm@&%EN2#JuEGPZwJypc#6ZnJHFA#!hBtCXUYLZqDY0hOUN=#!kkrMy5u_ zW{xJVmX5A4y)OC5rManjB{01y2)!;i^@0*ZZUN9{m(-%nveXo}qWoM1u&1pual6G4 zr+HAlDY)I@gj26R&@uX;s6~oum=G}ifSB-v3*^9)erg^ty%zx!cEOEhxeN@9_MR?| zAr-gIgaqa_8}NK}-plaF;IdZkoBUUut2q^W-!8tTcr8yfwl(7+TLoVl=R)1dZuZmq zAKZ9$v#zX3#j{BvV^*7*j)Adn9NW@$uQde{B^Iq(rTyg7{=j+Dyaj&FInDX)!;XkQ zs^Tvh8aBr89amm9HTlz-^4)$**7aR~Q~786?jMYMl_Xofe~k*9P}IP3sj*>5 zhW6Vno5MsRudLbaXd-YY+)8*N*E+dJGnevmc~?ZQJ@?`Hu4CrgKR5Ep&+cu>3x2G} z`Kd3rV&`hd`ze-z?m64%&&zsH*f%Fw{z>J!Cfvd$@?2>{~5v|RuI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5d2e2cbc1477c80499be3708d86514807ac2f3ee GIT binary patch literal 1302 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..37ee7d6b3458ac5b4fdea743815bc58858701825 GIT binary patch literal 1260 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 literal 0 HcmV?d00001 diff --git a/theme/bootstrap/pix/header.jpg b/theme/bootstrap/pix/header.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3e85176f521ebf4dd8bc25f27e22a8a47e1605d6 GIT binary patch literal 499 zcmex=i3*BJ!6k`h{6D}T z$iYy{pv=rD$iO7X$SlbC{|JKw$f=Bs3`l^HiJ2WJqb9(>#KgeL%)$(p6J!)pG;}PS z7?{||B)srr(8CWvb>bKXFfcN+03}2OQH%wd^8XeC4>Kdsc4k2adxlTZnV*Wcc{Ao( zHFPpO;E877;mlva!~M=d=FS_&h6D+r+M-X)I;;)$?-odiU0^p~wm>5AgFx{P!S7t> zBx@RK7-d*ue{dOC?z{0KL{~xA&S`CvT4H3P&;cEhEiL-8P8kM zN!OZ2`3vmN9Fo|SocJ8pUp^7C%^@wV%4edGmomd6hG+q;27?18EX7M2BZT4~u@&4D oF=m{=AkrYsSn!w8&SCuo6ciK{6%`g178e&67#J8C85tTH8XFrM92^`S9UUGX9v>ecARr(iAt53nA|oRs zBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7EiEoCE-x=HFfcGNF)=bSGBYzXG&D3d zH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwN zMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7 zSXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@ zX=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzz zdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?Yj zjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAU zot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%E zuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#pxVX5vxw*Q!y1To(yu7@dCU$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD) z(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa z^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg={r&#_{{R2~`6RjA00002bW%=J{{ZE; zFiHRb031m~K~xCWV_<*)Mi^jVMCAho7*Y5j0Y+p#BLD@m05JvHrdj|1002ovPDHLk FV1l|tohkqT literal 0 HcmV?d00001 diff --git a/theme/bootstrap/pix/screenshot.jpg b/theme/bootstrap/pix/screenshot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..54e8fd87d95bbb06709187bde1fab62c0df0f5d6 GIT binary patch literal 91386 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 literal 0 HcmV?d00001 diff --git a/theme/bootstrap/pix/sprite.png b/theme/bootstrap/pix/sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..3716fc0b95fc1f9f585dd316d99358ff95d4d164 GIT binary patch literal 1002 zcmVP000jN0{{R3Cb*Q>00001b5ch_0Itp) z=>Px&08mU+Mc3Hc!NI}){{C%kZT$TF`}_O#_4WGt`uF$u+Ip;Ol~;p6cC z?eFjU`uped|Jv#Q-rwNm=H~hN`G0?Z;Naong(Ft+uYpU(9zQ8 z=<3(k*t*#N?CkBn!NT$K^7Qod#Kp$l-QTmdx9I5V`TF`WR<$ltu=MryKy202)z(05 z);VFsxVyc{%FFfk_BUU`tgo;=XU;oi%Q<7n?CtIE@9#is)bQ}}@bK{P@$vET@$&NY zC`_g+POI(h@8#v@_V)M8&d~NWG~ss}ot>TSi5v0KSST@*rOW@}dJ?g*vH85b=&L)H zs>908>F1<9>cA=Ly*KH)CD*ek_zMejb93v$HTmea=(0L)imdfVN0yeB>9;ue6&3T& zJm{wz_#`CrQb!XGOXi$E)Cd7dNlE2s1fg>dE;pR@%S`679^vQj_+eh?l0xR173Y2z z=H}+rF#+b3J0BbPgpe zhv?|&_f=K)YHGBTNc6~};8_CBu}p-A!S}>~;$aQ-vQ>V6tgW%cQe(RAk14H&A|E7o z_27&=QMUYXcb=os<;qQ@tK0kP-{y8M;qL$6$#wnj;_Fsd?TaDvqdV}HEY>_A*~W|Z zdV1k>5qETx&@#10r382@1hjKs(kvjGXVVoaH0W*xSF zY&y)v7&1UX9ey25P=>;M1&07*qoM6N<$f^5H2h5!Hn literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4f4cf998b29cae6bc8af31315ad18a6f633b0480 GIT binary patch literal 880 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 m0sH_1ti#MJ2nEc;2aLcDpuY?J2o3DO3;@9uY{A ../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';