From 86749f10e5aac0734bc389e3880fd16ffd6ea673 Mon Sep 17 00:00:00 2001 From: allyoucanmap Date: Fri, 3 Mar 2017 12:20:19 +0100 Subject: [PATCH 1/5] Removed CSS style --- web/client/components/TOC/DefaultLayer.jsx | 2 +- .../TOC/fragments/SettingsModal.jsx | 3 +- .../TOC/fragments/VisibilityCheck.jsx | 2 +- .../TOC/fragments/css/grouptitle.css | 3 - .../TOC/fragments/css/visibilitycheck.css | 3 - .../data/featuregrid/featuregrid.css | 14 --- .../components/data/identify/css/identify.css | 1 - .../components/data/query/queryform.css | 85 ------------------- web/client/components/help/help.css | 4 - .../components/manager/users/GroupCard.jsx | 1 - .../components/manager/users/UserCard.jsx | 1 - .../manager/users/style/userdialog.css | 1 - .../components/map/leaflet/ScaleBar.jsx | 6 -- .../components/map/openlayers/ScaleBar.jsx | 6 -- web/client/components/misc/style/gridcard.css | 10 --- .../components/tutorial/style/tutorial.css | 8 -- web/client/plugins/drawer/Menu.jsx | 4 +- web/client/plugins/drawer/drawer.css | 8 -- web/client/plugins/maploading/maploading.css | 10 --- web/client/plugins/omnibar/omnibar.css | 6 -- .../product/components/home/MailingLists.jsx | 6 +- 21 files changed, 8 insertions(+), 176 deletions(-) diff --git a/web/client/components/TOC/DefaultLayer.jsx b/web/client/components/TOC/DefaultLayer.jsx index 22e85ea6fa..5270fab7ec 100644 --- a/web/client/components/TOC/DefaultLayer.jsx +++ b/web/client/components/TOC/DefaultLayer.jsx @@ -145,7 +145,7 @@ var DefaultLayer = React.createClass({ + style={{"float": "right", cursor: "pointer"}}/> ); } if (this.props.activateLegendTool) { diff --git a/web/client/components/TOC/fragments/SettingsModal.jsx b/web/client/components/TOC/fragments/SettingsModal.jsx index 28c80fdd3f..f5c6ecc3ce 100644 --- a/web/client/components/TOC/fragments/SettingsModal.jsx +++ b/web/client/components/TOC/fragments/SettingsModal.jsx @@ -66,8 +66,7 @@ const SettingsModal = React.createClass({ position: "absolute", // overflow: "auto", top: "100px", - left: "calc(50% - 150px)", - backgroundColor: "white" + left: "calc(50% - 150px)" }, panelClassName: "toolbar-panel", includeCloseButton: true, diff --git a/web/client/components/TOC/fragments/VisibilityCheck.jsx b/web/client/components/TOC/fragments/VisibilityCheck.jsx index 6dd4a2ef08..bb6db3520a 100644 --- a/web/client/components/TOC/fragments/VisibilityCheck.jsx +++ b/web/client/components/TOC/fragments/VisibilityCheck.jsx @@ -23,7 +23,7 @@ const VisibilityCheck = React.createClass({ }, getDefaultProps() { return { - style: {left: "-3px"}, + style: {}, checkType: "glyph", glyphChecked: "eye-open", tooltip: "toc.toggleLayerVisibility", diff --git a/web/client/components/TOC/fragments/css/grouptitle.css b/web/client/components/TOC/fragments/css/grouptitle.css index a3951fc413..89dca3d2e0 100644 --- a/web/client/components/TOC/fragments/css/grouptitle.css +++ b/web/client/components/TOC/fragments/css/grouptitle.css @@ -5,7 +5,4 @@ } .toc-default-group .visibility-check{ float: left; - margin-right: 2px; - margin-top: 5px; - margin-left: 2px; } diff --git a/web/client/components/TOC/fragments/css/visibilitycheck.css b/web/client/components/TOC/fragments/css/visibilitycheck.css index b5fa9623c4..a01a1ace2e 100644 --- a/web/client/components/TOC/fragments/css/visibilitycheck.css +++ b/web/client/components/TOC/fragments/css/visibilitycheck.css @@ -8,9 +8,6 @@ input[type="checkbox"].visibility-check,input[type="radio"].visibility-check { .visibility-check.glyphicon { float: left; overflow: hidden; - margin-left: 5px; - margin-right: 5px; - margin-top: 5px; } button.clayer_removal_button.btn.btn-default { border: transparent; diff --git a/web/client/components/data/featuregrid/featuregrid.css b/web/client/components/data/featuregrid/featuregrid.css index 8482c1a4d8..94fb5bb410 100644 --- a/web/client/components/data/featuregrid/featuregrid.css +++ b/web/client/components/data/featuregrid/featuregrid.css @@ -1,20 +1,6 @@ -.ag-fresh .ag-header, .ag-fresh .ag-tool-panel-container { - background: #078AA3; - color: white; - font-family: Raleway; -} -.ag-fresh .ag-tool-panel-container .ag-list-selection{ - color: black; -} .ag-fresh .ag-paging-button { - color: #078aa3; - background-color: #ffffff; - border: #078aa3 1px solid; padding: 5px; } -.ag-fresh .ag-paging-page-summary-panel { - color: #078aa3; -} .featuregrid-tools { position: absolute; right: 0; diff --git a/web/client/components/data/identify/css/identify.css b/web/client/components/data/identify/css/identify.css index 419f1175f3..20d8784bd7 100644 --- a/web/client/components/data/identify/css/identify.css +++ b/web/client/components/data/identify/css/identify.css @@ -17,7 +17,6 @@ } #mapstore-getfeatureinfo .swipeable-view .panel-heading { - background-color: white; border: none; height: 60px; padding: 0; diff --git a/web/client/components/data/query/queryform.css b/web/client/components/data/query/queryform.css index 41c0cdec72..29bcbc258c 100644 --- a/web/client/components/data/query/queryform.css +++ b/web/client/components/data/query/queryform.css @@ -14,10 +14,6 @@ float: left; } -#mapstore-drawermenu #toc-query-container { - background-color: #f7f7f7; -} - /*****************************/ /* END - TOC *****************/ /*****************************/ @@ -41,35 +37,16 @@ border: none; } -#mapstore-drawermenu #query-form-panel .glyphicon { - font-size: 22px; -} - #query-form-panel .btn-default { background-color: transparent; border-radius: 0; - color: #078aa3; - border-color: #078aa3; -} - -#query-form-panel .btn-default:hover { - background-color: #dedede; } #query-form-panel input.form-control { height: 32px; - border: 1px solid #dedede; -} - -#query-form-panel button:disabled { - color: #ffffff; - background-color: #abc8cd; - border-color: transparent; } #query-form-panel button:disabled { - color: #ffffff; - background-color: #abc8cd; border-color: transparent; } @@ -88,32 +65,17 @@ } #query-form-panel .filter-buttons { - background-color: #f7f7f7; border: none; margin-left: 4px; } -#query-form-panel .filter-buttons:hover { - background-color: #dedede; -} - #query-form-panel .remove-filter-button { - height: 32px; - width: 32px; padding: 0; margin: 2px; border: none; float: right; } -#mapstore-drawermenu #query-form-panel .remove-filter-button .glyphicon { - font-size: 32px; -} - -#mapstore-drawermenu #query-form-panel .remove-filter-button span { - line-height: 32px; -} - #query-form-panel .close { display: none; } @@ -123,7 +85,6 @@ } #query-form-panel input { - border: 1px solid #dedede; border-radius: 4px; padding: 0 4px 0 8px; } @@ -143,10 +104,7 @@ #query-form-panel .query-toolbar { padding: 0; - height: 50px; - /*border-bottom: 2px dotted #dedede;*/ overflow: hidden; - background-color: #ffffff; margin-bottom: 20px; } @@ -154,7 +112,6 @@ float: left; font-size: 20px; margin: 11px 11px 11px 20px; - color: #078aa3; } #query-form-panel .queryFormToolbar { @@ -171,30 +128,16 @@ /* BODY QUERY ****************/ /*****************************/ -#query-form-panel .querypanel { - background-color: #f7f7f7; -} - #query-form-panel .querypanel .panel-heading { border: none; - color: #333333; text-decoration: underline; padding-left: 11px; background-color: transparent; font-weight: bold; } -#query-form-panel .querypanel .panel-heading span { - font-size: 14px; -} - -#query-form-panel .querypanel .panel-heading .panel-title:hover { - color: #777777; -} - #query-form-panel .query-content > .container-fluid { margin: 4px 0 4px 0; - border-top: 1px dashed #dedede; } #query-form-panel .filter-field-row > div { @@ -226,16 +169,9 @@ #query-form-panel .querypanel > .query-filter-container { margin: 0 30px 20px 20px; background-color: transparent; - border-bottom: 1px solid #dedede; padding-bottom: 10px; } -#mapstore-drawermenu #query-form-panel .querypanel > .query-filter-container { - margin-right: 60px; - margin-left: 10px; -} - -/* nested groups */ #query-form-panel .panel .panel .panel { margin-left: 10px; } @@ -244,23 +180,9 @@ -webkit-box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); -moz-box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); - background-color: #ffffff; margin-bottom: 20px; } -#query-form-panel .panel .panel .filter-group-panel button { - background-color: #ffffff; -} - -#query-form-panel .panel .panel .filter-group-panel button:hover { - background-color: #dedede; -} -/* end - nested groups */ - -#query-form-panel hr { - border-top: 1px dashed #dedede; -} - #query-form-panel h5 { font-family: Georgia, serif; font-style: italic; @@ -287,7 +209,6 @@ /*****************************/ #query-form-panel div.details-panel { - background-color: #ffffff; -webkit-box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); -moz-box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); @@ -303,7 +224,6 @@ #query-form-panel .details-panel .detail-title span { text-decoration: none; - line-height: 32px; font-weight: normal; } @@ -311,17 +231,12 @@ float: right; border: none; margin-top: 8px; - background-color: #ffffff; } #query-form-panel .details-panel button.remove-filter-button { margin-top: 0; } -#query-form-panel .details-panel button.remove-filter-button:hover { - background-color: #dedede; -} - #query-form-panel .details-panel button.remove-filter-button span { cursor: pointer; } diff --git a/web/client/components/help/help.css b/web/client/components/help/help.css index cb3f132d47..83cc05e13e 100644 --- a/web/client/components/help/help.css +++ b/web/client/components/help/help.css @@ -50,8 +50,6 @@ #helpbadge-scaleBox { left: 0 !important; - background-color: #078aa3; - color: #ffffff; } #mapstore-navbar #helpbadge-search-help { @@ -59,6 +57,4 @@ left: -10px; bottom: -8px; z-index: 1; - background-color: #078aa3; - color: #ffffff; } diff --git a/web/client/components/manager/users/GroupCard.jsx b/web/client/components/manager/users/GroupCard.jsx index 642d6ec54b..5f49aae8d3 100644 --- a/web/client/components/manager/users/GroupCard.jsx +++ b/web/client/components/manager/users/GroupCard.jsx @@ -28,7 +28,6 @@ const GroupCard = React.createClass({ getDefaultProps() { return { style: { - background: "#F7F4ED", position: "relative", backgroundSize: "cover", backgroundPosition: "center", diff --git a/web/client/components/manager/users/UserCard.jsx b/web/client/components/manager/users/UserCard.jsx index 51cb62fbb3..91002a6414 100644 --- a/web/client/components/manager/users/UserCard.jsx +++ b/web/client/components/manager/users/UserCard.jsx @@ -28,7 +28,6 @@ const UserCard = React.createClass({ getDefaultProps() { return { style: { - background: "#F7F4ED", position: "relative", backgroundSize: "cover", backgroundPosition: "center", diff --git a/web/client/components/manager/users/style/userdialog.css b/web/client/components/manager/users/style/userdialog.css index 152d2c6295..1d865b9123 100644 --- a/web/client/components/manager/users/style/userdialog.css +++ b/web/client/components/manager/users/style/userdialog.css @@ -1,5 +1,4 @@ .user-edit-dialog, .group-edit-dialog{ - background: white; z-index: 1000; } diff --git a/web/client/components/map/leaflet/ScaleBar.jsx b/web/client/components/map/leaflet/ScaleBar.jsx index c8f656f713..a94515c40d 100644 --- a/web/client/components/map/leaflet/ScaleBar.jsx +++ b/web/client/components/map/leaflet/ScaleBar.jsx @@ -32,12 +32,6 @@ var ScaleBar = React.createClass({ this.scalebar = L.control.scale(this.props); if (this.props.map) { this.scalebar.addTo(this.props.map); - let scaleDom = document.getElementsByClassName('leaflet-control-scale-line').item(0); - if (scaleDom) { - scaleDom.style.backgroundColor = 'rgba(7, 138, 163, 1)'; - scaleDom.style.color = 'white'; - scaleDom.style.borderColor = 'black'; - } } }, render() { diff --git a/web/client/components/map/openlayers/ScaleBar.jsx b/web/client/components/map/openlayers/ScaleBar.jsx index 2898197f34..0b1dd8ccf3 100644 --- a/web/client/components/map/openlayers/ScaleBar.jsx +++ b/web/client/components/map/openlayers/ScaleBar.jsx @@ -28,12 +28,6 @@ var ScaleBar = React.createClass({ this.scalebar = new ol.control.ScaleLine(this.props); if (this.props.map) { this.props.map.addControl(this.scalebar); - let scaleDom = document.getElementsByClassName('ol-scale-line').item(0); - if (scaleDom) { - scaleDom.style.backgroundColor = 'rgba(7, 138, 163, 1)'; - scaleDom.style.color = 'white'; - scaleDom.style.borderColor = 'black'; - } } }, render() { diff --git a/web/client/components/misc/style/gridcard.css b/web/client/components/misc/style/gridcard.css index ff332ce6c4..e699cc7e52 100644 --- a/web/client/components/misc/style/gridcard.css +++ b/web/client/components/misc/style/gridcard.css @@ -27,13 +27,3 @@ .gridcard-tools .spinner div:before{ background-color: white } - -.gridcard-button { - height: 30px; - width: 30px; -} -.gridcard-button span.glyphicon { - font-size: 30px; - margin-top: -6px; - margin-left: -12px; -} diff --git a/web/client/components/tutorial/style/tutorial.css b/web/client/components/tutorial/style/tutorial.css index 49524017d4..ff64927841 100644 --- a/web/client/components/tutorial/style/tutorial.css +++ b/web/client/components/tutorial/style/tutorial.css @@ -10,14 +10,6 @@ box-shadow: 0 0 0 9999px rgba(0,0,0,.75), 0 0 15px rgba(0,0,0,.75); } -.joyride-tooltip__button--primary { - background-color: #078aa3; -} - -.joyride-tooltip__button--primary:active, .joyride-tooltip__button--primary:focus, .joyride-tooltip__button--primary:hover { - background-color: #078aa3; -} - .joyride-tooltip__button--secondary{ color: #888; } diff --git a/web/client/plugins/drawer/Menu.jsx b/web/client/plugins/drawer/Menu.jsx index 41c94cec0f..aa8356e615 100644 --- a/web/client/plugins/drawer/Menu.jsx +++ b/web/client/plugins/drawer/Menu.jsx @@ -67,14 +67,14 @@ var Menu = React.createClass({ renderContent() { const header = this.props.single ? (
- +
{this.renderButtons()}
) : (
{this.props.title} - +
); return (
{header} diff --git a/web/client/plugins/drawer/drawer.css b/web/client/plugins/drawer/drawer.css index 21ac55ef0d..190d2f5713 100644 --- a/web/client/plugins/drawer/drawer.css +++ b/web/client/plugins/drawer/drawer.css @@ -45,11 +45,6 @@ margin-top: 10px; } - -#mapstore-drawermenu .nav-menu { - background: rgba(255,255,255,1); -} - #mapstore-drawermenu .panel { border: none; box-shadow: none; @@ -65,7 +60,6 @@ div.nav-menu { .nav-menu .navHeader { height: 50px; - background-color: rgba(255, 255, 255, 0.75); } .nav-menu > .nav-content .navHeader .title{ font-size: 16px; @@ -75,7 +69,6 @@ div.nav-menu { } .nav-content .section { margin-bottom: 2px; - background-color: rgba(255, 255, 255, 0.5); } .nav-content .section .sectionHeader{ padding: 5px; @@ -102,7 +95,6 @@ div.nav-menu { transition: max-height .3s ease; box-shadow: inset 0px 0px 10px rgba(0,0,0,.5); - background: rgba(255,255,255,.4); padding: 5px; } diff --git a/web/client/plugins/maploading/maploading.css b/web/client/plugins/maploading/maploading.css index 73efdb78f4..3db48831bd 100644 --- a/web/client/plugins/maploading/maploading.css +++ b/web/client/plugins/maploading/maploading.css @@ -30,19 +30,9 @@ box-shadow: none; } - -.ms2-loading { - background-color: #078aa3 !important; - border-bottom: 2px solid #5C9FB4 !important; -} - .ms2-loading .circle-wrapper { width: 30px; height: 30px; margin-left: 10px !important; margin-top: 10px !important; } - -.ms2-loading .circle-wrapper .circle:before { - background-color: white !important; -} diff --git a/web/client/plugins/omnibar/omnibar.css b/web/client/plugins/omnibar/omnibar.css index 5d70ae61a6..255f690705 100644 --- a/web/client/plugins/omnibar/omnibar.css +++ b/web/client/plugins/omnibar/omnibar.css @@ -39,12 +39,6 @@ padding-top: 0; } -.navbar-dx .dropdown-header { - background-color: #286090; - color: white; -} - - @media (min-width: 1200px) { .navbar-dx .search-wrap { width: 500px; diff --git a/web/client/product/components/home/MailingLists.jsx b/web/client/product/components/home/MailingLists.jsx index e429a2b994..406b04c92c 100644 --- a/web/client/product/components/home/MailingLists.jsx +++ b/web/client/product/components/home/MailingLists.jsx @@ -27,7 +27,7 @@ var MailingLists = React.createClass({ - +
@@ -56,7 +56,7 @@ var MailingLists = React.createClass({
- +
@@ -85,7 +85,7 @@ var MailingLists = React.createClass({
- +
From df872d9de879788d95565dda6e57b148ba40cda8 Mon Sep 17 00:00:00 2001 From: Lorenzo Natali Date: Wed, 8 Mar 2017 19:00:21 +0100 Subject: [PATCH 2/5] First version of theme integration and switcher --- package.json | 3 +- prod-webpack.config.js | 5 +- themes.js | 23 + web/client/actions/__tests__/theme-test.js | 26 + web/client/actions/theme.js | 20 + web/client/examples/plugins/index.html | 4 +- web/client/index.html | 4 +- web/client/localConfig.json | 2 +- web/client/plugins/ThemeSwitcher.jsx | 70 + web/client/product/plugins.js | 3 +- web/client/reducers/__tests__/theme-test.js | 22 + web/client/reducers/theme.js | 23 + web/client/themes/console/theme.less | 6 + web/client/themes/console/variables.less | 25 + web/client/themes/dark/theme.less | 5 + web/client/themes/dark/variables.less | 23 + .../themes/default/bootstrap-theme.less | 4980 +++++++++++++++++ web/client/themes/default/icons.less | 717 +++ web/client/themes/default/icons/icons.eot | Bin 0 -> 93364 bytes web/client/themes/default/icons/icons.svg | 1003 ++++ web/client/themes/default/icons/icons.ttf | Bin 0 -> 93192 bytes web/client/themes/default/icons/icons.woff | Bin 0 -> 47948 bytes web/client/themes/default/img/toggle.png | Bin 0 -> 283 bytes web/client/themes/default/img/toggle.svg | 1 + web/client/themes/default/ms2-theme.less | 901 +++ web/client/themes/default/theme.less | 5 + web/client/themes/default/variables.less | 64 + web/client/themes/geosolutions/theme.less | 5 + web/client/themes/geosolutions/variables.less | 26 + web/client/themes/wasabi/theme.less | 5 + web/client/themes/wasabi/variables.less | 20 + web/client/translations/data.de-DE | 1 + web/client/translations/data.en-US | 1 + web/client/translations/data.fr-FR | 1 + web/client/translations/data.it-IT | 1 + webpack.config.js | 24 +- 36 files changed, 8004 insertions(+), 15 deletions(-) create mode 100644 themes.js create mode 100644 web/client/actions/__tests__/theme-test.js create mode 100644 web/client/actions/theme.js create mode 100644 web/client/plugins/ThemeSwitcher.jsx create mode 100644 web/client/reducers/__tests__/theme-test.js create mode 100644 web/client/reducers/theme.js create mode 100644 web/client/themes/console/theme.less create mode 100644 web/client/themes/console/variables.less create mode 100644 web/client/themes/dark/theme.less create mode 100644 web/client/themes/dark/variables.less create mode 100644 web/client/themes/default/bootstrap-theme.less create mode 100644 web/client/themes/default/icons.less create mode 100644 web/client/themes/default/icons/icons.eot create mode 100644 web/client/themes/default/icons/icons.svg create mode 100644 web/client/themes/default/icons/icons.ttf create mode 100644 web/client/themes/default/icons/icons.woff create mode 100644 web/client/themes/default/img/toggle.png create mode 100644 web/client/themes/default/img/toggle.svg create mode 100644 web/client/themes/default/ms2-theme.less create mode 100644 web/client/themes/default/theme.less create mode 100644 web/client/themes/default/variables.less create mode 100644 web/client/themes/geosolutions/theme.less create mode 100644 web/client/themes/geosolutions/variables.less create mode 100644 web/client/themes/wasabi/theme.less create mode 100644 web/client/themes/wasabi/variables.less diff --git a/package.json b/package.json index c6954874b4..0babc77046 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,9 @@ "eslint-plugin-react": "3.0.0", "exists-file": "1.0.2", "expect": "1.13.4", - "extract-text-webpack-plugin": "2.0.0-rc.3", + "extract-text-webpack-plugin": "2.1.0", "file-loader": "0.8.5", + "glob": "7.1.1", "html-webpack-plugin": "2.17.0", "istanbul-instrumenter-loader": "2.0.0", "karma": "1.5.0", diff --git a/prod-webpack.config.js b/prod-webpack.config.js index 5e238fd16e..713c080e56 100644 --- a/prod-webpack.config.js +++ b/prod-webpack.config.js @@ -4,7 +4,7 @@ var LoaderOptionsPlugin = require("webpack/lib/LoaderOptionsPlugin"); var ParallelUglifyPlugin = require("webpack-parallel-uglify-plugin"); var DefinePlugin = require("webpack/lib/DefinePlugin"); var NormalModuleReplacementPlugin = require("webpack/lib/NormalModuleReplacementPlugin"); - +const extractThemesPlugin = require('./themes.js').extractThemesPlugin; var assign = require('object-assign'); assign(webpackConfig.entry, require('./examples.js')); @@ -30,7 +30,8 @@ webpackConfig.plugins = [ compress: {warnings: false}, mangle: true } - }) + }), + extractThemesPlugin ]; webpackConfig.devtool = undefined; diff --git a/themes.js b/themes.js new file mode 100644 index 0000000000..ac04f327c1 --- /dev/null +++ b/themes.js @@ -0,0 +1,23 @@ +const ExtractTextPlugin = require('extract-text-webpack-plugin'); +var path = require("path"); +const glob = require('glob'); +const extractThemesPlugin = new ExtractTextPlugin({ + filename: '[name].css', + disable: process.env.NODE_ENV === "development" +}); + + +const themeEntries = () => { + const globPath = path.join(__dirname, "web", "client", "themes", "*"); + var files = glob.sync(globPath); + return files.reduce((res, curr) => { + var finalRes = res || {}; + finalRes["themes/" + path.basename(curr, path.extname(curr))] = `${curr}/theme.less`; + return finalRes; + }, {}); + +}(); +module.exports = { + themeEntries, + extractThemesPlugin +}; diff --git a/web/client/actions/__tests__/theme-test.js b/web/client/actions/__tests__/theme-test.js new file mode 100644 index 0000000000..0a350ac8e4 --- /dev/null +++ b/web/client/actions/__tests__/theme-test.js @@ -0,0 +1,26 @@ +/** + * Copyright 2017, GeoSolutions Sas. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ + +var expect = require('expect'); +var { + THEME_SELECTED, + selectTheme +} = require('../theme'); + +describe('Test theme related actions', () => { + it('test theme selection action', () => { + let theme = {id: "newtheme"}; + let e = selectTheme(theme); + + expect(e).toExist(); + expect(e.type).toBe(THEME_SELECTED); + expect(e.theme).toExist(); + expect(e.theme).toBe(theme); + + }); +}); diff --git a/web/client/actions/theme.js b/web/client/actions/theme.js new file mode 100644 index 0000000000..75a0c755fc --- /dev/null +++ b/web/client/actions/theme.js @@ -0,0 +1,20 @@ +/** + * Copyright 2017, GeoSolutions Sas. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ +const THEME_SELECTED = 'THEME_SELECTED'; + + +function selectTheme(theme) { + return { + type: THEME_SELECTED, + theme + }; +} +module.exports = { + THEME_SELECTED, + selectTheme +}; diff --git a/web/client/examples/plugins/index.html b/web/client/examples/plugins/index.html index a22f49c5b0..5a0f959c6d 100644 --- a/web/client/examples/plugins/index.html +++ b/web/client/examples/plugins/index.html @@ -9,9 +9,7 @@ - - - + diff --git a/web/client/index.html b/web/client/index.html index afa7e4987b..44b5c7b66b 100644 --- a/web/client/index.html +++ b/web/client/index.html @@ -10,9 +10,7 @@ - - - + diff --git a/web/client/localConfig.json b/web/client/localConfig.json index d5f9bd6201..a793b97950 100644 --- a/web/client/localConfig.json +++ b/web/client/localConfig.json @@ -284,7 +284,7 @@ "className": "navbar shadow navbar-home" } }, "ManagerMenu", "Login", "Language", "Attribution"], - "maps": ["Header", "Fork", "MapSearch", "HomeDescription", "MapType", "CreateNewMap", "Maps", "Examples", "Footer"], + "maps": ["Header", "Fork", "MapSearch", "HomeDescription", "MapType", "ThemeSwitcher", "CreateNewMap", "Maps", "Examples", "Footer"], "manager": ["Header", "Redirect", "Manager", "Home", "UserManager", "GroupManager", "Footer"] } } diff --git a/web/client/plugins/ThemeSwitcher.jsx b/web/client/plugins/ThemeSwitcher.jsx new file mode 100644 index 0000000000..833f2cf3c4 --- /dev/null +++ b/web/client/plugins/ThemeSwitcher.jsx @@ -0,0 +1,70 @@ +/** + * Copyright 2017, GeoSolutions Sas. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ +const React = require('react'); +const {connect} = require('react-redux'); +const Message = require('../components/I18N/Message'); +const {FormGroup, FormControl, Label} = require('react-bootstrap'); +const {selectTheme} = require('../actions/theme'); +const ThemeSwitcher = React.createClass({ + propTypes: { + themes: React.PropTypes.array, + selectedTheme: React.PropTypes.object, + defaultSelectedTheme: React.PropTypes.string, + onThemeSelected: React.PropTypes.func + }, + getDefaultProps() { + return { + onThemeSelected: () => {}, + themes: [{ + id: "default" + }, { + id: "console" + }, { + id: "wasabi" + }, { + id: "dark" + }, { + id: "geosolutions" + }], + defaultSelectedTheme: "default" + }; + }, + + onChangeTheme(themeId) { + let theme = this.props.themes.reduce((prev, curr) => curr.id === themeId ? curr : prev); + let link = document.getElementById('theme_stylesheet'); + if (link) { + let basePath = link.href && link.href.substring(0, link.href.lastIndexOf("/")); + link.setAttribute('href', basePath + "/" + theme.id + ".css"); + } + this.props.onThemeSelected(theme); + }, + render() { + return ( + + this.onChangeTheme(e.target.value)}> + {this.props.themes.map( (t) => )} + + ); + } +}); + +const ThemeSwitcherPlugin = connect((s) => ({ + selectedTheme: s && s.theme && s.theme.selectedTheme +}), { + onThemeSelected: selectTheme +})(ThemeSwitcher); + +module.exports = { + ThemeSwitcherPlugin: ThemeSwitcherPlugin, + reducers: { + theme: require('../reducers/theme') + } +}; diff --git a/web/client/product/plugins.js b/web/client/product/plugins.js index 9dfc8bd3eb..f2bcb7bf4a 100644 --- a/web/client/product/plugins.js +++ b/web/client/product/plugins.js @@ -61,7 +61,8 @@ module.exports = { CreateNewMapPlugin: require('../plugins/CreateNewMap'), QueryPanelPlugin: require('../plugins/QueryPanel'), FeatureGridPlugin: require('../plugins/FeatureGrid'), - TutorialPlugin: require('../plugins/Tutorial') + TutorialPlugin: require('../plugins/Tutorial'), + ThemeSwitchePluginr: require('../plugins/ThemeSwitcher') }, requires: { ReactSwipe: require('react-swipeable-views').default, diff --git a/web/client/reducers/__tests__/theme-test.js b/web/client/reducers/__tests__/theme-test.js new file mode 100644 index 0000000000..750bb8a01d --- /dev/null +++ b/web/client/reducers/__tests__/theme-test.js @@ -0,0 +1,22 @@ + +/** + * Copyright 2017, GeoSolutions Sas. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ +const expect = require('expect'); + +const theme = require('../theme'); +const {selectTheme} = require('../../actions/theme'); + + +describe('Test the theme reducer', () => { + it('should maange the THEME_SELECTED action', () => { + var state = theme({}, selectTheme({id: "default"})); + expect(state.selectedTheme).toExist(); + expect(state.selectedTheme.id).toBe("default"); + }); + +}); diff --git a/web/client/reducers/theme.js b/web/client/reducers/theme.js new file mode 100644 index 0000000000..6d128e7d7c --- /dev/null +++ b/web/client/reducers/theme.js @@ -0,0 +1,23 @@ +/** + * Copyright 2016, GeoSolutions Sas. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ + +const {THEME_SELECTED} = require('../actions/theme'); +const assign = require('object-assign'); + +function controls(state = {}, action) { + switch (action.type) { + case THEME_SELECTED: + return assign({}, state, { + selectedTheme: action.theme + }); + default: + return state; + } +} + +module.exports = controls; diff --git a/web/client/themes/console/theme.less b/web/client/themes/console/theme.less new file mode 100644 index 0000000000..a2127ee51a --- /dev/null +++ b/web/client/themes/console/theme.less @@ -0,0 +1,6 @@ + +@import "../default/icons.less"; +@import "../default/bootstrap-theme.less"; +@import "../default/ms2-theme.less"; +@import "../default/variables.less"; +@import "variables.less"; diff --git a/web/client/themes/console/variables.less b/web/client/themes/console/variables.less new file mode 100644 index 0000000000..fcb31b64e9 --- /dev/null +++ b/web/client/themes/console/variables.less @@ -0,0 +1,25 @@ + +@ms2-color-background: #0a0b30; + +@ms2-color-text-primary: #ffffff; +@ms2-color-text: #f2f2f2; + +@ms2-color-disabled: #aea79f; +@ms2-color-text-disabled: #eeeeee; + +@ms2-color-primary: #E95420; +@ms2-color-info: #7e64a5; +@ms2-color-success: #8ae234; +@ms2-color-warning: #ffd700; +@ms2-color-danger: #bb384b; + +@ms2-color-shade: #555555; +@ms2-color-shade-darker: darken(@ms2-color-shade, 10%); +@ms2-color-shade-dark: darken(@ms2-color-shade, 5%); +@ms2-color-shade-light: lighten(@ms2-color-shade, 5%); +@ms2-color-shade-lighter: lighten(@ms2-color-shade, 10%); + +@font-family-base: monospace; + +@icon-margin-ratio: 5; +@icon-size: 36px; diff --git a/web/client/themes/dark/theme.less b/web/client/themes/dark/theme.less new file mode 100644 index 0000000000..868600e7a8 --- /dev/null +++ b/web/client/themes/dark/theme.less @@ -0,0 +1,5 @@ +@import "../default/icons.less"; +@import "../default/bootstrap-theme.less"; +@import "../default/ms2-theme.less"; +@import "../default/variables.less"; +@import "variables.less"; diff --git a/web/client/themes/dark/variables.less b/web/client/themes/dark/variables.less new file mode 100644 index 0000000000..c34deb3789 --- /dev/null +++ b/web/client/themes/dark/variables.less @@ -0,0 +1,23 @@ + +@ms2-color-background: #111111; + +@ms2-color-text-primary: #333333; +@ms2-color-text: #b29600; + +@ms2-color-disabled: #555555; +@ms2-color-text-disabled: #aaaaaa; + +@ms2-color-primary: #998100; +@ms2-color-info: #7e64a5; +@ms2-color-success: #4abdac; +@ms2-color-warning: #ffd700; +@ms2-color-danger: #bb384b; + +@ms2-color-shade: #333333; +@ms2-color-shade-darker: darken(@ms2-color-shade, 5%); +@ms2-color-shade-dark: darken(@ms2-color-shade, 2%); +@ms2-color-shade-light: lighten(@ms2-color-shade, 2%); +@ms2-color-shade-lighter: lighten(@ms2-color-shade, 5%); + +@icon-margin-ratio: 5; +@icon-size: 36px; diff --git a/web/client/themes/default/bootstrap-theme.less b/web/client/themes/default/bootstrap-theme.less new file mode 100644 index 0000000000..f324bf920c --- /dev/null +++ b/web/client/themes/default/bootstrap-theme.less @@ -0,0 +1,4980 @@ +html,body { + font-family: @font-family-base; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + margin: 0; + height:100%; + width:100%; +} + +.shadow{ + -webkit-box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); + -moz-box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); + box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden], +template { + display: none; +} +a { + background: transparent; +} +a:active, +a:hover { + outline: 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + font-size: @font-size-h1; + margin: 0.67em 0; +} +mark { + background: @ms2-color-primary; + color: @ms2-color-background; +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0; + padding:0; +} + +:focus { + outline-color: transparent; + outline-style: none; +} + +button { + overflow: visible; +} + +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + border: 1px solid @ms2-color-shade; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +legend { + border: 0; + padding: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +td, +th { + padding: 0; +} +@media print { + * { + text-shadow: none !important; + color: @ms2-color-text !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) ")"; + } + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid @ms2-color-shade; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + select { + background: @ms2-color-background !important; + } + .navbar { + display: none; + } + .table td, + .table th { + background-color: @ms2-color-background !important; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: @ms2-color-shade-darker !important; + } + .label { + border: 1px solid @ms2-color-shade-darker; + } + .table { + border-collapse: collapse !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid @ms2-color-shade !important; + } +} +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +html { + font-size: 62.5%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + font-size: @font-size-base; + line-height: 1.428571429; + color: @ms2-color-text; + background-color: @ms2-color-background; +} +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +a { + color: @ms2-color-primary; + text-decoration: none; +} +a:hover, +a:focus { + color: @ms2-color-primary-hover; + text-decoration: underline; +} +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +figure { + margin: 0; +} +img { + vertical-align: middle; +} +.img-responsive, +.thumbnail > img, +.thumbnail a > img, + +.img-rounded { + border-radius: 0px; +} +.img-thumbnail { + line-height: 1.428571429; + background-color: @ms2-color-background; + border: 1px solid @ms2-color-shade-light; + border-radius: 0px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; +} +.img-circle { + border-radius: 50%; +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid @ms2-color-shade-lighter; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-weight: 500; + line-height: 1.1; + color: inherit; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small { + font-weight: normal; + line-height: 1; + color: @ms2-color-text; +} +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 20px; + margin-bottom: 10px; +} +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small { + font-size: 65%; +} +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin-top: 10px; + margin-bottom: 10px; +} +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small { + font-size: 75%; +} +h1, +.h1 { + font-size: @font-size-h1; +} +h2, +.h2 { + font-size: @font-size-h2; +} +h3, +.h3 { + font-size: @font-size-h3; +} +h4, +.h4 { + font-size: @font-size-h4; +} +h5, +.h5 { + font-size: @font-size-h5; +} +h6, +.h6 { + font-size: @font-size-h6; +} +p { + margin: 0 0 10px; +} +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 200; + line-height: 1.4; +} +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} +small, +.small { + font-size: 85%; +} +cite { + font-style: normal; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-justify { + text-align: justify; +} +.text-muted { + color: @ms2-color-disabled; +} +.text-primary { + color: @ms2-color-primary; +} +a.text-primary:hover { + color: @ms2-color-primary-hover; +} +.text-success { + color: @ms2-color-success; +} +a.text-success:hover { + color: @ms2-color-success-hover; +} +.text-info { + color: @ms2-color-info; +} +a.text-info:hover { + color: @ms2-color-info-hover; +} +.text-warning { + color: @ms2-color-warning; +} +a.text-warning:hover { + color: @ms2-color-warning-hover; +} +.text-danger { + color: @ms2-color-danger; +} +a.text-danger:hover { + color: @ms2-color-danger-hover; +} +.bg-primary { + color: @ms2-color-text-primary; + background-color: @ms2-color-primary; +} +a.bg-primary:hover { + background-color: @ms2-color-primary-hover; +} +.bg-success { + background-color: @ms2-color-success; + color: @ms2-color-text-primary; +} +a.bg-success:hover { + background-color: @ms2-color-success-hover; +} +.bg-info { + background-color: @ms2-color-info; + color: @ms2-color-text-primary; +} +a.bg-info:hover { + background-color: @ms2-color-info-hover; +} +.bg-warning { + background-color: @ms2-color-warning; + color: @ms2-color-text-primary; +} +a.bg-warning:hover { + background-color: @ms2-color-warning-hover; +} +.bg-danger { + background-color: @ms2-color-danger; + color: @ms2-color-text-primary; +} +a.bg-danger:hover { + background-color: @ms2-color-danger-hover; +} +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid @ms2-color-shade-lighter; +} +ul, +ol { + margin-top: 0; + margin-bottom: 0; +} +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + list-style: none; +} +.list-inline > li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; +} +.list-inline > li:first-child { + padding-left: 0; +} +dl { + margin-top: 0; + margin-bottom: 20px; +} +dt, +dd { + line-height: 1.428571429; +} +dt { + font-weight: bold; +} +dd { + margin-left: 0; +} +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } +} +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted @ms2-color-shade-light; +} +.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid @ms2-color-shade-lighter; +} +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child { + margin-bottom: 0; +} +blockquote footer, +blockquote small, +blockquote .small { + display: block; + font-size: 80%; + line-height: 1.428571429; + color: @ms2-color-text; +} +blockquote footer:before, +blockquote small:before, +blockquote .small:before { + content: '\2014 \00A0'; +} +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid @ms2-color-shade-lighter; + border-left: 0; + text-align: right; +} +.blockquote-reverse footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before { + content: ''; +} +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} +blockquote:before, +blockquote:after { + content: ""; +} +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.428571429; +} +code, +kbd, +pre, +samp { + font-family: Monaco; +} +code { + padding: 2px 4px; + font-size: 90%; + color: @ms2-color-code; + background-color: @ms2-color-shade-lighter; + white-space: nowrap; + border-radius: 0; +} +kbd { + padding: 2px 4px; + font-size: 90%; + color: @ms2-color-text-primary; + background-color: @ms2-color-shade-dark; + border-radius: 0 ; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); +} +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.428571429; + word-break: break-all; + word-wrap: break-word; + color: @ms2-color-text; + background-color: @ms2-color-shade-lighter; + border: 1px solid @ms2-color-shade-light; + border-radius: 0; +} +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.container { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} + +@media (min-width: 768px) { + .container { + width: 750px; + } +} +@media (min-width: 992px) { + .container { + width: 970px; + } +} +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} +.container-fluid { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} +.row { + margin-left: -15px; + margin-right: -15px; +} +.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px; +} +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { + float: left; +} +.col-xs-12 { + width: 100%; +} +.col-xs-11 { + width: 91.66666666666666%; +} +.col-xs-10 { + width: 83.33333333333334%; +} +.col-xs-9 { + width: 75%; +} +.col-xs-8 { + width: 66.66666666666666%; +} +.col-xs-7 { + width: 58.333333333333336%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-5 { + width: 41.66666666666667%; +} +.col-xs-4 { + width: 33.33333333333333%; +} +.col-xs-3 { + width: 25%; +} +.col-xs-2 { + width: 16.666666666666664%; +} +.col-xs-1 { + width: 8.333333333333332%; +} +.col-xs-pull-12 { + right: 100%; +} +.col-xs-pull-11 { + right: 91.66666666666666%; +} +.col-xs-pull-10 { + right: 83.33333333333334%; +} +.col-xs-pull-9 { + right: 75%; +} +.col-xs-pull-8 { + right: 66.66666666666666%; +} +.col-xs-pull-7 { + right: 58.333333333333336%; +} +.col-xs-pull-6 { + right: 50%; +} +.col-xs-pull-5 { + right: 41.66666666666667%; +} +.col-xs-pull-4 { + right: 33.33333333333333%; +} +.col-xs-pull-3 { + right: 25%; +} +.col-xs-pull-2 { + right: 16.666666666666664%; +} +.col-xs-pull-1 { + right: 8.333333333333332%; +} +.col-xs-pull-0 { + right: 0%; +} +.col-xs-push-12 { + left: 100%; +} +.col-xs-push-11 { + left: 91.66666666666666%; +} +.col-xs-push-10 { + left: 83.33333333333334%; +} +.col-xs-push-9 { + left: 75%; +} +.col-xs-push-8 { + left: 66.66666666666666%; +} +.col-xs-push-7 { + left: 58.333333333333336%; +} +.col-xs-push-6 { + left: 50%; +} +.col-xs-push-5 { + left: 41.66666666666667%; +} +.col-xs-push-4 { + left: 33.33333333333333%; +} +.col-xs-push-3 { + left: 25%; +} +.col-xs-push-2 { + left: 16.666666666666664%; +} +.col-xs-push-1 { + left: 8.333333333333332%; +} +.col-xs-push-0 { + left: 0%; +} +.col-xs-offset-12 { + margin-left: 100%; +} +.col-xs-offset-11 { + margin-left: 91.66666666666666%; +} +.col-xs-offset-10 { + margin-left: 83.33333333333334%; +} +.col-xs-offset-9 { + margin-left: 75%; +} +.col-xs-offset-8 { + margin-left: 66.66666666666666%; +} +.col-xs-offset-7 { + margin-left: 58.333333333333336%; +} +.col-xs-offset-6 { + margin-left: 50%; +} +.col-xs-offset-5 { + margin-left: 41.66666666666667%; +} +.col-xs-offset-4 { + margin-left: 33.33333333333333%; +} +.col-xs-offset-3 { + margin-left: 25%; +} +.col-xs-offset-2 { + margin-left: 16.666666666666664%; +} +.col-xs-offset-1 { + margin-left: 8.333333333333332%; +} +.col-xs-offset-0 { + margin-left: 0%; +} + +@media (min-width: 768px) { + + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666666666666%; + } + .col-sm-10 { + width: 83.33333333333334%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666666666666%; + } + .col-sm-7 { + width: 58.333333333333336%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666666666667%; + } + .col-sm-4 { + width: 33.33333333333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.666666666666664%; + } + .col-sm-1 { + width: 8.333333333333332%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666666666666%; + } + .col-sm-pull-10 { + right: 83.33333333333334%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666666666666%; + } + .col-sm-pull-7 { + right: 58.333333333333336%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666666666667%; + } + .col-sm-pull-4 { + right: 33.33333333333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.666666666666664%; + } + .col-sm-pull-1 { + right: 8.333333333333332%; + } + .col-sm-pull-0 { + right: 0%; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666666666666%; + } + .col-sm-push-10 { + left: 83.33333333333334%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666666666666%; + } + .col-sm-push-7 { + left: 58.333333333333336%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666666666667%; + } + .col-sm-push-4 { + left: 33.33333333333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.666666666666664%; + } + .col-sm-push-1 { + left: 8.333333333333332%; + } + .col-sm-push-0 { + left: 0%; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666666666666%; + } + .col-sm-offset-10 { + margin-left: 83.33333333333334%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666666666666%; + } + .col-sm-offset-7 { + margin-left: 58.333333333333336%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666666666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.666666666666664%; + } + .col-sm-offset-1 { + margin-left: 8.333333333333332%; + } + .col-sm-offset-0 { + margin-left: 0%; + } +} +@media (min-width: 992px) { + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666666666666%; + } + .col-md-10 { + width: 83.33333333333334%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666666666666%; + } + .col-md-7 { + width: 58.333333333333336%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666666666667%; + } + .col-md-4 { + width: 33.33333333333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.666666666666664%; + } + .col-md-1 { + width: 8.333333333333332%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666666666666%; + } + .col-md-pull-10 { + right: 83.33333333333334%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666666666666%; + } + .col-md-pull-7 { + right: 58.333333333333336%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666666666667%; + } + .col-md-pull-4 { + right: 33.33333333333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.666666666666664%; + } + .col-md-pull-1 { + right: 8.333333333333332%; + } + .col-md-pull-0 { + right: 0%; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666666666666%; + } + .col-md-push-10 { + left: 83.33333333333334%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666666666666%; + } + .col-md-push-7 { + left: 58.333333333333336%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666666666667%; + } + .col-md-push-4 { + left: 33.33333333333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.666666666666664%; + } + .col-md-push-1 { + left: 8.333333333333332%; + } + .col-md-push-0 { + left: 0%; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666666666666%; + } + .col-md-offset-10 { + margin-left: 83.33333333333334%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666666666666%; + } + .col-md-offset-7 { + margin-left: 58.333333333333336%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666666666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.666666666666664%; + } + .col-md-offset-1 { + margin-left: 8.333333333333332%; + } + .col-md-offset-0 { + margin-left: 0%; + } +} +@media (min-width: 1200px) { + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666666666666%; + } + .col-lg-10 { + width: 83.33333333333334%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666666666666%; + } + .col-lg-7 { + width: 58.333333333333336%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666666666667%; + } + .col-lg-4 { + width: 33.33333333333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.666666666666664%; + } + .col-lg-1 { + width: 8.333333333333332%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666666666666%; + } + .col-lg-pull-10 { + right: 83.33333333333334%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666666666666%; + } + .col-lg-pull-7 { + right: 58.333333333333336%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666666666667%; + } + .col-lg-pull-4 { + right: 33.33333333333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.666666666666664%; + } + .col-lg-pull-1 { + right: 8.333333333333332%; + } + .col-lg-pull-0 { + right: 0%; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666666666666%; + } + .col-lg-push-10 { + left: 83.33333333333334%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666666666666%; + } + .col-lg-push-7 { + left: 58.333333333333336%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666666666667%; + } + .col-lg-push-4 { + left: 33.33333333333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.666666666666664%; + } + .col-lg-push-1 { + left: 8.333333333333332%; + } + .col-lg-push-0 { + left: 0%; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666666666666%; + } + .col-lg-offset-10 { + margin-left: 83.33333333333334%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666666666666%; + } + .col-lg-offset-7 { + margin-left: 58.333333333333336%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666666666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.666666666666664%; + } + .col-lg-offset-1 { + margin-left: 8.333333333333332%; + } + .col-lg-offset-0 { + margin-left: 0%; + } +} +table { + max-width: 100%; + background-color: transparent; +} +th { + text-align: left; +} +.table { + width: 100%; + margin-bottom: 20px; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.428571429; + vertical-align: top; + border-top: 1px solid @ms2-color-shade-light; +} +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid @ms2-color-shade-light; +} +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.table > tbody + tbody { + border-top: 2px solid @ms2-color-shade-light; +} +.table .table { + background-color: @ms2-color-background; +} +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; +} +.table-bordered { + border: 1px solid @ms2-color-shade-light; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid @ms2-color-shade-light; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-child(odd) > td, +.table-striped > tbody > tr:nth-child(odd) > th { + background-color: darken(@ms2-color-background, 2%); +} +.table-hover > tbody > tr:hover > td, +.table-hover > tbody > tr:hover > th { + background-color: @ms2-color-shade-lighter; +} +table col[class*="col-"] { + position: static; + float: none; + display: table-column; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + float: none; + display: table-cell; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: @ms2-color-shade-lighter; +} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr.active:hover > th { + background-color: @ms2-color-shade-lighter; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: @ms2-color-shade-lighter; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr.success:hover > th { + background-color: @ms2-color-shade-lighter; +} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: @ms2-color-shade-lighter; +} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr.info:hover > th { + background-color: @ms2-color-shade-lighter; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: @ms2-color-shade-lighter; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr.warning:hover > th { + background-color: @ms2-color-shade-lighter; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: @ms2-color-shade-lighter; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr.danger:hover > th { + background-color: @ms2-color-shade-lighter; +} +@media (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + overflow-x: scroll; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid @ms2-color-shade-lighter; + -webkit-overflow-scrolling: touch; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +fieldset { + padding: 0; + margin: 0; + border: 0; + min-width: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: @ms2-color-text; + border: 0; + border-bottom: 1px solid @ms2-color-shade-lighter; +} +label { + display: inline-block; +} + +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + /* IE8-9 */ + + line-height: normal; +} +input[type="file"] { + display: block; +} +input[type="range"] { + display: block; + width: 100%; +} +select[multiple], +select[size] { + height: auto; +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +output { + display: block; + padding-top: 1; + font-size: @font-size-base; + line-height: 1.428571429; + color: @ms2-color-text; +} +.form-control { + display: block; + width: 100%; + height: @square-btn-size; + padding: 0 22px 0 12px; + font-size: @font-size-base; + line-height: 1.428571429; + color: @ms2-color-text; + background-color: @ms2-color-background; + background-image: none; + border-radius: 0; + border: @ms2-color-background; +} +.form-control:focus { + border: @ms2-color-background; + outline: 0; + +} +.form-control::-moz-placeholder { + color: @ms2-color-text-placeholder; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: @ms2-color-text-placeholder; +} +.form-control::-webkit-input-placeholder { + color: @ms2-color-text-placeholder; +} + +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: @ms2-color-background; + opacity: 1; +} +textarea.form-control { + height: auto; +} +input[type="search"] { + -webkit-appearance: none; +} +input[type="date"] { + line-height: 22px; +} +.form-group { + margin-bottom: 15px; +} +.radio, +.checkbox { + display: block; + min-height: 20px; + margin-top: 10px; + margin-bottom: 10px; + padding-left: 20px; +} +.radio label, +.checkbox label { + display: inline; + font-weight: normal; + cursor: pointer; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + float: left; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + vertical-align: middle; + font-weight: normal; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +.radio[disabled], +.radio-inline[disabled], +.checkbox[disabled], +.checkbox-inline[disabled], +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"], +fieldset[disabled] .radio, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 0; +} +select.input-sm { + height: 30px; + line-height: 30px; +} +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} +.input-lg { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 0; +} +select.input-lg { + height: 45px; + line-height: 45px; +} +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} +.has-feedback { + position: relative; +} +.has-feedback .form-control { + padding-right: 27.5px; +} +.has-feedback .form-control-feedback { + position: absolute; + top: 25px; + right: 0; + display: block; + width: 22px; + height: 22px; + line-height: 22px; + text-align: center; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline { + color: @ms2-color-success; +} +.has-success .form-control { + border-color: @ms2-color-success; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-success .form-control:focus { + border-color: @ms2-color-success-hover; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px @ms2-color-success; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px @ms2-color-success; +} +.has-success .input-group-addon { + color: @ms2-color-success; + border-color: @ms2-color-success; + background-color: @ms2-color-success-hover; +} +.has-success .form-control-feedback { + color: @ms2-color-success; +} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline { + color: @ms2-color-warning; +} +.has-warning .form-control { + border-color: @ms2-color-warning; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-warning .form-control:focus { + border-color: @ms2-color-warning-hover; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px @ms2-color-warning; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px @ms2-color-warning; +} +.has-warning .input-group-addon { + color: @ms2-color-warning; + border-color: @ms2-color-warning; + background-color: @ms2-color-warning-light; +} +.has-warning .form-control-feedback { + color: @ms2-color-warning; +} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline { + color: @ms2-color-danger; +} +.has-error .form-control { + border-color: @ms2-color-danger; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-error .form-control:focus { + border-color: @ms2-color-danger-hover; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px @ms2-color-danger; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px @ms2-color-danger; +} +.has-error .input-group-addon { + color: @ms2-color-danger; + border-color: @ms2-color-danger; + background-color: @ms2-color-warning-light; +} +.has-error .form-control-feedback { + color: @ms2-color-danger; +} +.form-control-static { + margin-bottom: 0; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: @ms2-color-text; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + vertical-align: middle; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} +.form-horizontal .control-label, +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + margin-top: 0; + margin-bottom: 0; + padding-top: 1; +} +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 21px; +} +.form-horizontal .form-group { + margin-left: -15px; + margin-right: -15px; +} +.form-horizontal .form-control-static { + padding-top: 1; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + text-align: right; + } +} +.form-horizontal .has-feedback .form-control-feedback { + top: 0; + right: 15px; +} +.btn { + display: inline-block; + margin-bottom: 0; + font-weight: @btn-font-weight; + padding: 6px 12px; + text-align: center; + vertical-align: middle; + cursor: pointer; + background-image: none; + white-space: nowrap; + font-size: @font-size-base; + border-radius: 0px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; + transition: all 0.2s ease-in; + -webkit-transition:all 0.2s ease-in; + -moz-transition:all 0.2s ease-in; + -o-transition:all 0.2s ease-in; +} + +.btn:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn:hover, +.btn:focus { + color: @ms2-color-text-primary; + text-decoration: none; +} +.btn:active, +.btn.active { + outline: 0; + background-image: none; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + pointer-events: none; + opacity: 1; + filter: alpha(opacity=100); + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-default { + color: @ms2-color-primary ; + background-color: @ms2-color-background !important; + border:@ms2-color-primary 1px solid; +} + +.btn-default:hover, +.btn-default:focus, +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + color: lighten(@ms2-color-primary-hover, 5%); + border-color:@ms2-color-primary-hover; +} +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + background-image: none; +} +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + color: @ms2-color-text-disabled; + background-color: @ms2-color-disabled; + border-color: none; +} +.btn-default .badge { + color: @ms2-color-primary; + background-color: @ms2-color-background; +} +.btn-primary { + color: @ms2-color-text-primary; + background-color: @ms2-color-primary; + border:none; +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + color: @ms2-color-text-primary; + background-color:@ms2-color-primary-hover; +} +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + background-image: none; +} +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + color: @ms2-color-text-disabled; + background-color: @ms2-color-disabled; +} +.btn-primary .badge { + color: @ms2-color-primary; + background-color: @ms2-color-background; +} +.btn-success { + color: @ms2-color-text-primary; + background-color: @ms2-color-success; + border: none; +} +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + color: @ms2-color-text-primary; + background-color: @ms2-color-success-hover; +} +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + background-image: none; +} +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + color: @ms2-color-text-disabled; + background-color: @ms2-color-disabled; +} +.btn-success .badge { + color: @ms2-color-success; + background-color: @ms2-color-background; +} +.btn-info { + color: @ms2-color-text-primary; + background-color: @ms2-color-info; + border: none; + +} +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + color: @ms2-color-text-primary; + background-color: @ms2-color-info-hover; + +} +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + background-image: none; +} +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + color: @ms2-color-text-disabled; + background-color: @ms2-color-disabled; +} +.btn-info .badge { + color: @ms2-color-info; + background-color: @ms2-color-background; +} +.btn-warning { + color: @ms2-color-text-primary; + background-color: @ms2-color-warning; + border: none; +} +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + color: @ms2-color-text-primary; + background-color: @ms2-color-warning-hover; +} +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + background-image: none; +} +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + color: @ms2-color-text-disabled; + background-color: @ms2-color-disabled; + border: none; +} +.btn-warning .badge { + color: @ms2-color-warning; + background-color: @ms2-color-background; +} +.btn-danger { + color: @ms2-color-text-primary; + background-color: @ms2-color-danger; + border: none; +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + color: @ms2-color-text-primary; + background-color: @ms2-color-danger-hover; +} +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + background-image: none; +} +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + color: @ms2-color-text-disabled; + background-color: @ms2-color-disabled; + border: none; +} +.btn-danger .badge { + color: @ms2-color-danger; + background-color: @ms2-color-background; +} +.btn-link { + color: @ms2-color-primary; + font-weight: @btn-font-weight; + cursor: pointer; +} +.btn-link, +.btn-link:active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus { + color: @ms2-color-primary-hover; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: @ms2-color-text; + text-decoration: none; +} +.btn-lg, +.btn-group-lg > .btn { + font-size: @font-size-large; + padding: 10px 15px +} + +.btn-md, +.btn-group-md > .btn { + padding: 6px 12px; + font-size: @font-size-large; + +} + +.btn-sm, +.btn-group-sm > .btn { + padding: 6px 12px; + font-size: @font-size-small; + +} +.btn-xs, +.btn-group-xs > .btn { + padding: 5px 5px; + font-size: @font-size-small; +} + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + display: none; +} +.collapse.in { + display: block; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.glyphicon { + display: inline-block; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* btn with icon */ +.btn .glyphicon{ + float: left; + margin-top: 0; + font-size: @font-size-base; + /*margin-right: 5px;*/ + +} + +.btn-lg .glyphicon{ + font-size: ceil(@font-size-large * 1); + margin-right: 5px; +} + +.btn-md .glyphicon{ + font-size: ceil(@font-size-large * 1); + margin-right: 5px; +} + +.btn-sm .glyphicon{ + font-size: ceil(@font-size-small * 1); + margin-right: 5px; +} + +.btn-xs .glyphicon{ + font-size: ceil(@font-size-small * 1); + /*margin-right: 5px;*/ +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} +.dropdown { + position: relative; +} + +.dropdown-toggle:focus { + outline: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 0; + margin: 2px 0 0; + list-style: none; + font-size: @font-size-base; + background-color: @ms2-color-background; + border-radius: 0; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; +} + +.dropdown-menu ul li { + margin-bottom: 1px solid @ms2-color-shade-lighter; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + overflow: hidden; + border-top: 1px solid @ms2-color-shade-lighter; + margin: 6px 12px; +} +.dropdown-menu > li > a { + display: block; + padding: 10px 15px; + clear: both; + font-weight: normal; + line-height: 1.428571429; + color: @ms2-color-text; + white-space: nowrap; + -webkit-transition:all 0.2s ease-in; + -moz-transition:all 0.2s ease-in; + -o-transition:all 0.2s ease-in; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + text-decoration: none; + background-color: @ms2-color-shade-lighter; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: @ms2-color-text; + text-decoration: none; + outline: 0; + background-color: @ms2-color-primary; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: @ms2-color-text; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + cursor: not-allowed; +} +.open > .dropdown-menu { + display: block; +} +.open > a { + outline: 0; +} +.dropdown-menu-right { + left: auto; + right: 0; +} +.dropdown-menu-left { + left: 0; + right: auto; +} +.dropdown-header { + display: block; + padding: 3px 16px; + font-size: @font-size-small; + line-height: 1.428571429; + background-color: @ms2-color-primary-hover; + color: @ms2-color-text; +} +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid; + content: ""; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + left: auto; + right: 0; + } + .navbar-right .dropdown-menu-left { + left: 0; + right: auto; + } +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.btn-group-vertical { + width:@square-btn-size; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus { + outline: none; +} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.btn-toolbar { + margin-left: -5px; +} +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; +} +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group { + margin-left: 5px; +} +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child > .btn:last-child, +.btn-group > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.btn-group > .btn-group:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; +} +.btn .caret { + margin-left: 0; +} +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} +.btn-group-vertical > .btn-group > .btn { + float: none; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-bottom-left-radius: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + float: none; + display: table-cell; + width: 1%; +} +.btn-group-justified > .btn-group .btn { + width: 100%; +} +[data-toggle="buttons"] > .btn > input[type="radio"], +[data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none; +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.input-group[class*="col-"] { + float: none; + padding-left: 0; + padding-right: 0; +} +.input-group .form-control { + float: left; + width: 100%; + margin-bottom: 0; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 0; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 45px; + line-height: 45px; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn { + height: auto; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 0; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn { + height: auto; +} +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 0 0px; + font-size: @font-size-base; + font-weight: normal; + line-height: 1; + color: @ms2-color-text; + text-align: center; +} +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; +} +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 0; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; +} +.input-group-btn > .btn + .btn { + margin-left: -1px; +} +.input-group-btn > .btn:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active { + z-index: 2; +} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + margin-left: -1px; +} +.nav { + margin-bottom: 0; + padding-left: 0; + list-style: none; +} +.nav > li { + position: relative; + display: block; +} + +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: @ms2-color-shade-lighter; +} +.nav > li.disabled > a { + color: @ms2-color-text; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: @ms2-color-text; + text-decoration: none; + background-color: transparent; + cursor: not-allowed; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: @ms2-color-shade-lighter; + border-color: @ms2-color-primary; +} +.nav .nav-divider { + height: 1px; + overflow: hidden; + border-top: 1px solid @ms2-color-shade-lighter; + margin: 6px 12px; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs { + border-bottom: 1px solid @ms2-color-shade-lighter; +} +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.428571429; + border: 1px solid transparent; + border-radius: 0; +} +.nav-tabs > li > a:hover { + border-color: @ms2-color-shade-lighter; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: @ms2-color-text; + background-color: @ms2-color-background; + border: 1px solid @ms2-color-shade-lighter; + border-bottom-color: transparent; + cursor: default; +} +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.nav-tabs.nav-justified > li { + float: none; +} +.nav-tabs.nav-justified > li > a { + text-align: center; + margin-bottom: 5px; +} +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 0; +} +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid @ms2-color-shade-lighter; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid @ms2-color-shade-lighter; + border-radius: 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: @ms2-color-background; + } +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: 0; +} +.nav-pills > li + li { + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: @ms2-color-text; + background-color: @ms2-color-primary; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} +.nav-justified { + width: 100%; +} +.nav-justified > li { + float: none; +} +.nav-justified > li > a { + text-align: center; + margin-bottom: 5px; +} +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs-justified { + border-bottom: 0; +} +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 0; +} +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid @ms2-color-shade-lighter; +} +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid @ms2-color-shade-lighter; + border-radius: 0 0 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: @ms2-color-background; + } +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.navbar { + position: relative; + min-height: @square-btn-size; +} +@media (min-width: 768px) { + .navbar { + border-radius: 0; + } +} +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} + +.navbar-collapse { + max-height: 340px; + overflow-x: visible; + padding-right: 15px; + padding-left: 15px; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} +.navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-left: 0; + padding-right: 0; + } +} +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} +.navbar-brand { + float: left; + padding: 18px 15px; + font-size: @font-size-base; + line-height: 20px; + height: @square-btn-size; +} +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} + +@media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } +} +.navbar-toggle { + position: relative; + float: right; + margin-right: 15px; + padding: 9px 10px; + margin-top: 8px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 0; +} +.navbar-toggle:focus { + outline: none; +} +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} +.navbar-nav { + margin: 7px -15px; +} +.navbar-nav > li > a { + padding: 18px; + line-height: 20px; +} +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: ; + padding-bottom: ; + } + .navbar-nav.navbar-right:last-child { + margin-right: -15px; + } +} +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + } +} +.navbar-form { + margin-left: -15px; + margin-right: -15px; + padding: 10px 15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-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); + margin-top: 14px; + margin-bottom: 14px; +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + vertical-align: middle; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } +} +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } +} +@media (min-width: 768px) { + .navbar-form { + width: auto; + border: 0; + margin-left: 0; + margin-right: 0; + padding-top: 0; + padding-bottom: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-form.navbar-right:last-child { + margin-right: -15px; + } +} +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.navbar-btn { + margin-top: 14px; + margin-bottom: 14px; +} +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; +} +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; +} +.navbar-text { + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-left: 15px; + margin-right: 15px; + } + .navbar-text.navbar-right:last-child { + margin-right: 0; + } +} +.navbar-default { + background-color: @ms2-color-background; + border-color: gray-light; +} +.navbar-default .navbar-brand { + color: @ms2-color-text; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: @ms2-color-text; + background-color: transparent; +} +.navbar-default .navbar-text { + color: @ms2-color-primary; +} +.navbar-default .navbar-nav > li > a { + color: @ms2-color-primary; + background-color: @ms2-color-background; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: @ms2-color-primary; + background-color: @ms2-color-shade-lighter; +} + +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: @ms2-color-primary; + background-color: @ms2-color-shade-lighter; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: @ms2-color-text; + background-color: transparent; +} +.navbar-default .navbar-toggle { + border-color: ; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color:; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: @ms2-color-primary; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: @ms2-color-shade-lighter; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + background-color: @ms2-color-shade-lighter; +} + +@media (max-width: 767px) { +.dropdown li .dropdown-menu.open{ +} + + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: @ms2-color-text; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: @ms2-color-text; + background-color: @ms2-color-shade-lighter; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + background-color: @ms2-color-shade-lighter; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: @ms2-color-text; + + background-color: transparent; + } + + .navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: @ms2-color-primary; + right:0px; +} + +} +.navbar-default .navbar-link { + color: @ms2-color-text; +} +.navbar-default .navbar-link:hover { + color: @ms2-color-text; +} + + + + +.navbar-inverse { + background-color: @ms2-color-primary; + border-color: @ms2-color-primary-light; +} +.navbar-inverse .navbar-brand { + color: @ms2-color-text-primary; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: @ms2-color-text-primary; + background-color: transparent; +} +.navbar-inverse .navbar-text { + color: @ms2-color-text; +} +.navbar-inverse .navbar-nav > li > a { + color: @ms2-color-text-primary; +} +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: @ms2-color-text-primary; + background-color: @ms2-color-primary-hover; +} +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: @ms2-color-text-primary; + background-color: @ms2-color-primary-hover; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: @ms2-color-text; + background-color: transparent; +} +.navbar-inverse .navbar-toggle { + border-color: none; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: @ms2-color-primary; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: @ms2-color-background; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: @ms2-color-primary-hover; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + background-color: @ms2-color-primary-hover; + color: @ms2-color-text-primary; +} +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: @ms2-color-primary-hover; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: @ms2-color-primary-hover; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: @ms2-color-text-primary; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: @ms2-color-text-primary; + background-color: @ms2-color-primary-hover; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: @ms2-color-text-primary; + background-color: @ms2-color-primary; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: @ms2-color-text; + background-color: transparent; + } +} +.navbar-inverse .navbar-link { + color: @ms2-color-text; +} +.navbar-inverse .navbar-link:hover { + color: @ms2-color-text-primary; +} +.breadcrumb { + padding: 6px padding-base-horizontal; + margin-bottom: 20px; + list-style: none; + background-color: @ms2-color-shade-lighter; + border-radius: 0px; + border: 1px solid @ms2-color-primary-light; +} +.breadcrumb > li { + display: inline-block; +} +.breadcrumb > li + li:before { + content: "/\00a0"; + padding: 0 5px; + color: @ms2-color-text; +} +.breadcrumb > .active { + color: @ms2-color-text; +} +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 0; +} +.pagination > li { + display: inline; +} +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding:12px; + line-height: 1.428571429; + text-decoration: none; + color: @ms2-color-primary; + background-color: @ms2-color-background; + border: 1px solid @ms2-color-shade-lighter; + margin-left: -1px; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + color: @ms2-color-text; + background-color: @ms2-color-shade-lighter; + border-color: @ms2-color-shade-lighter; +} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 2; + color: @ms2-color-text-primary; + background-color: @ms2-color-primary; + border-color: @ms2-color-primary; + cursor: default; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: @ms2-color-text; + background-color: @ms2-color-background; + border-color: @ms2-color-shade-lighter; + cursor: not-allowed; +} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; +} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; +} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-bottom-left-radius: ; + border-top-left-radius: ; +} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-bottom-right-radius: ; + border-top-right-radius: ; +} +.pager { + padding-left: 0; + margin: 20px 0; + list-style: none; + text-align: center; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 6px 12px; + border: 1px solid @ms2-color-primary; + border-radius: 0px; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + border-color: @ms2-color-primary-hover; +} + +.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: @ms2-color-text; + background-color: @ms2-color-background; + cursor: not-allowed; +} +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + line-height: 1; + color: @ms2-color-text-primary; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0px; +} +.label[href]:hover, +.label[href]:focus { + color: @ms2-color-text-primary; + text-decoration: none; + cursor: pointer; +} +.label:empty { + display: none; +} +.btn .label { + position: relative; + top: -1px; +} +.label-default { + color: @ms2-color-text; + background-color: @ms2-color-info; +} +.label-default[href]:hover, +.label-default[href]:focus { + background-color: @ms2-color-shade-dark; +} +.label-primary { + background-color: @ms2-color-primary; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: @ms2-color-primary-hover; +} +.label-success { + background-color: @ms2-color-success; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: @ms2-color-success-hover; +} +.label-info { + background-color: @ms2-color-info; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: @ms2-color-info-hover; +} +.label-warning { + background-color: @ms2-color-warning; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: @ms2-color-warning-hover; +} +.label-danger { + background-color: @ms2-color-danger; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: @ms2-color-danger-hover; +} +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + color: @ms2-color-text-primary; + line-height: 1; + vertical-align: baseline; + white-space: nowrap; + text-align: center; + background-color: @ms2-color-shade-light; +} +.badge:empty { + display: none; +} +.btn .badge { + position: relative; + top: -1px; +} +.btn-xs .badge { + top: 0; + padding: 1px 5px; +} +a.badge:hover, +a.badge:focus { + color: @ms2-color-text-primary; + text-decoration: none; + cursor: pointer; +} +a.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: @ms2-color-primary; + background-color: @ms2-color-background; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} +.jumbotron { + padding: 30px; + margin-bottom: 30px; + color: inherit; + background-color: @ms2-color-shade-lighter; +} +.jumbotron h1, +.jumbotron .h1 { + color: inherit; +} +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; +} +.container .jumbotron { + border-radius: 0; +} +.jumbotron .container { + max-width: 100%; +} +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron { + padding-left: 60px; + padding-right: 60px; + } + .jumbotron h1, + .jumbotron .h1 { + font-size: 63px; + } +} +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.428571429; + background-color: @ms2-color-background; + border: 1px solid @ms2-color-shade-lighter; + border-radius: 0px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +.thumbnail > img, +.thumbnail a > img { + margin-left: auto; + margin-right: auto; +} +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: @ms2-color-primary; +} +.thumbnail .caption { + padding: 9px; + color: @ms2-color-text; +} +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 0px; +} +.alert h4 { + margin-top: 0; + color: inherit; +} +.alert .alert-link { + font-weight: bold; +} +.alert > p, +.alert > ul { + margin-bottom: 0; +} +.alert > p + p { + margin-top: 5px; +} +.alert-dismissable { + padding-right: 35px; +} +.alert-dismissable .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} + + +.alert-success { + background-color: @ms2-color-success-hover; + border-color: @ms2-color-success-hover; + color: @ms2-color-success; +} +.alert-success hr { + border-top-color: @ms2-color-success-hover; +} +.alert-success .alert-link { + color: @ms2-color-success; +} + + +.alert-info { + background-color: @ms2-color-info-light; + border-color: @ms2-color-info-hover; + color: @ms2-color-info; +} +.alert-info hr { + border-top-color: @ms2-color-info-light; +} +.alert-info .alert-link { + color: @ms2-color-info; +} + + +.alert-warning { + background-color: @ms2-color-warning-light; + border-color: @ms2-color-warning-hover; + color: @ms2-color-warning; +} +.alert-warning hr { + border-top-color: @ms2-color-warning-light; +} +.alert-warning .alert-link { + color: @ms2-color-warning; +} + + +.alert-danger { + background-color: @ms2-color-danger-light; + border-color: @ms2-color-danger-hover; + color: @ms2-color-danger; +} +.alert-danger hr { + border-top-color: @ms2-color-danger-light; +} +.alert-danger .alert-link { + color: @ms2-color-danger; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.progress { + overflow: hidden; + height: 20px; + margin-bottom: 20px; + background-color: @ms2-color-shade-lighter; + border-radius: 0px; + -webkit-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; + line-height: 20px; + color: @ms2-color-text-primary; + text-align: center; + background-color: @ms2-color-primary; + -webkit-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-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-striped .progress-bar { + 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: 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-size: 40px 40px; +} +.progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-bar-success { + background-color: @ms2-color-success; +} +.progress-striped .progress-bar-success { + 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: 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-bar-info { + background-color: @ms2-color-info; +} +.progress-striped .progress-bar-info { + 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: 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-bar-warning { + background-color: @ms2-color-warning; +} +.progress-striped .progress-bar-warning { + 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: 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-bar-danger { + background-color: @ms2-color-danger; +} +.progress-striped .progress-bar-danger { + 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: 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); +} +.media, +.media-body { + overflow: hidden; + 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 { + padding-left: 0; + list-style: none; +} +.list-group { + margin-bottom:; + padding-left: ; + border-radius:; +} + +.list-group ul { + list-style: none; + padding: 0; +} + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: 0; + background-color: @ms2-color-background; + border-radius: 0; +} + +.list-group-item:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.list-group-item > .badge { + float: right; +} +.list-group-item > .badge + .badge { + margin-right: 5px; +} +a.list-group-item { + color: @ms2-color-text; + transition: all 0.2s ease-in; + -webkit-transition:all 0.2s ease-in; + -moz-transition:all 0.2s ease-in; + -o-transition:all 0.2s ease-in; + +} +a.list-group-item .list-group-item-heading { + color: @ms2-color-text; +} +a.list-group-item:hover, +a.list-group-item:focus { + text-decoration: none; + background-color: @ms2-color-shade-lighter; +} +a.list-group-item.active, +a.list-group-item.active:hover, +a.list-group-item.active:focus { + z-index: 2; + color: @ms2-color-text-primary; + background-color: @ms2-color-primary; + border-color: @ms2-color-primary; +} +a.list-group-item.active .list-group-item-heading, +a.list-group-item.active:hover .list-group-item-heading, +a.list-group-item.active:focus .list-group-item-heading { + color: inherit; +} +a.list-group-item.active .list-group-item-text, +a.list-group-item.active:hover .list-group-item-text, +a.list-group-item.active:focus .list-group-item-text { + color: @ms2-color-primary-light; +} + + +.list-group-item-success { + color: @ms2-color-success-hover; +} +a.list-group-item-success { + color: @ms2-color-success-hover; +} +a.list-group-item-success .list-group-item-heading { + color: inherit; +} +a.list-group-item-success:hover, +a.list-group-item-success:focus { + color: @ms2-color-success; + background-color:@ms2-color-success-hover; +} +a.list-group-item-success.active, +a.list-group-item-success.active:hover, +a.list-group-item-success.active:focus { + color: @ms2-color-success; + background-color: @ms2-color-success-hover; +} + + +.list-group-item-info { + color: @ms2-color-info-hover; +} +a.list-group-item-info { + color: @ms2-color-info-hover; +} +a.list-group-item-info .list-group-item-heading { + color: inherit; +} +a.list-group-item-info:hover, +a.list-group-item-info:focus { + color: @ms2-color-info; + background-color: @ms2-color-info-light; +} +a.list-group-item-info.active, +a.list-group-item-info.active:hover, +a.list-group-item-info.active:focus { + color: @ms2-color-info; + background-color: @ms2-color-info-light; +} + + +.list-group-item-warning { + color: @ms2-color-warning-hover; +} +a.list-group-item-warning { + color: @ms2-color-warning-hover; +} +a.list-group-item-warning .list-group-item-heading { + color: inherit; +} +a.list-group-item-warning:hover, +a.list-group-item-warning:focus { + color: @ms2-color-warning; + background-color: @ms2-color-warning-light; +} +a.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus { + color: @ms2-color-warning; + background-color: @ms2-color-warning-light; +} + + +.list-group-item-danger { + color: @ms2-color-danger-hover; +} +a.list-group-item-danger { + color: @ms2-color-danger-hover; +} +a.list-group-item-danger .list-group-item-heading { + color: inherit; +} +a.list-group-item-danger:hover, +a.list-group-item-danger:focus { + color: @ms2-color-danger; + background-color: @ms2-color-danger-light; +} +a.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus { + color: @ms2-color-danger; + background-color: @ms2-color-danger-light; +} + + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.panel { + margin-bottom: 20px; + background-color: @ms2-color-background; + border: 1px solid transparent; + border-radius: 0; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} +.panel-body { + padding: 15px; +} +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: -1; + border-top-left-radius: -1; +} +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: @font-size-base; + color: inherit; +} +.panel-title > a { + color: inherit; +} +.panel-footer { + padding: 10px 15px; + background-color: @ms2-color-shade-lighter; + border-top: 1px solid @ms2-color-shade-light; + border-bottom-right-radius: -1; + border-bottom-left-radius: -1; +} +.panel > .list-group { + margin-bottom: 0; +} +.panel > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0px; +} +.panel > .list-group .list-group-item:first-child { + border-top: 0; +} +.panel > .list-group .list-group-item:last-child { + border-bottom: 0; +} +.panel > .list-group:first-child .list-group-item:first-child { + border-top-right-radius: -1; + border-top-left-radius: -1; +} +.panel > .list-group:last-child .list-group-item:last-child { + border-bottom-right-radius: -1; + border-bottom-left-radius: -1; +} +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.panel > .table, +.panel > .table-responsive > .table { + margin-bottom: 0; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: -1; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: -1; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: -1; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: -1; +} +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive { + border-top: 1px solid @ms2-color-shade-lighter; +} +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr:first-child td { + border-top: 0; +} +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; +} +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; +} +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; +} +.panel > .table-responsive { + border: 0; + margin-bottom: 0; +} +.panel-group { + margin-bottom: 20px; +} +.panel-group .panel { + margin-bottom: 0; + border-radius: 0px; + overflow: hidden; +} +.panel-group .panel + .panel { + margin-top: 5px; +} +.panel-group .panel-heading { + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse .panel-body { + border-top: 1px solid @ms2-color-shade-light; +} +.panel-group .panel-footer { + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid @ms2-color-shade-light; +} +.panel-default { + border-color: @ms2-color-shade-lighter; +} +.panel-default > .panel-heading { + color: @ms2-color-text-primary; + background-color: @ms2-color-shade-light; + border-color: @ms2-color-shade-lighter; +} +.panel-default > .panel-heading + .panel-collapse .panel-body { + border-top-color: @ms2-color-shade-light; +} +.panel-default > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: @ms2-color-shade-light; +} +.panel-primary { + border-color: @ms2-color-primary; +} +.panel-primary > .panel-heading { + color: @ms2-color-text-primary; + background-color:@ms2-color-primary; + border-color: @ms2-color-primary; +} +.panel-primary > .panel-heading + .panel-collapse .panel-body { + border-top-color: @ms2-color-primary; +} +.panel-primary > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: @ms2-color-primary; +} +.panel-success { + border-color: @ms2-color-success; +} +.panel-success > .panel-heading { + color: @ms2-color-text-primary; + background-color:@ms2-color-success; + border-color: @ms2-color-success; +} +.panel-success > .panel-heading + .panel-collapse .panel-body { + border-top-color: @ms2-color-success-hover; +} +.panel-success > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: @ms2-color-success-hover; +} +.panel-info { + border-color: @ms2-color-info; +} +.panel-info > .panel-heading { + color: @ms2-color-text-primary; + background-color:@ms2-color-info; + border-color: @ms2-color-info; +} +.panel-info > .panel-heading + .panel-collapse .panel-body { + border-top-color: @ms2-color-info-light; +} +.panel-info > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: @ms2-color-info-light; +} +.panel-warning { + border-color: @ms2-color-warning; +} +.panel-warning > .panel-heading { + color: @ms2-color-text-primary; + background-color:@ms2-color-warning; + border-color: @ms2-color-warning; +} +.panel-warning > .panel-heading + .panel-collapse .panel-body { + border-top-color: @ms2-color-warning-light; +} +.panel-warning > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: @ms2-color-warning-light; +} +.panel-danger { + border-color: @ms2-color-danger; +} +.panel-danger > .panel-heading { + color: @ms2-color-text-primary; + background-color:@ms2-color-danger; + border-color: @ms2-color-danger; +} +.panel-danger > .panel-heading + .panel-collapse .panel-body { + border-top-color: @ms2-color-danger-light; +} +.panel-danger > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: @ms2-color-danger-light; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: @ms2-color-shade-lighter; + border: 1px solid @ms2-color-shade; + border-radius: 0px; + -webkit-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: @ms2-color-shade-lighter; + border-color: rgba(0, 0, 0, 0.15); +} +.well-lg { + padding: 24px; + border-radius: 0px; +} +.well-sm { + padding: 9px; + border-radius: 0px ; +} + +.close { + position:absolute; + right: 15px; + top: 10px; + background-color: @ms2-color-danger; + color: @ms2-color-text-primary; + border:none; + transition: all 0.2s ease-in; + -webkit-transition:all 0.2s ease-in; + -moz-transition:all 0.2s ease-in; + -o-transition:all 0.2s ease-in; +} + +.close:hover, +.close:focus { + text-decoration: none; + cursor: pointer; + color: @ms2-color-primary-light; +} + +button.close { + cursor: pointer; + background: transparent; + -webkit-appearance: none; +} +.modal-open { + overflow: hidden; +} + +.modal { + display: none; + overflow: auto; + overflow-y: auto; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + -webkit-overflow-scrolling: touch; + outline: 0; +} + +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -moz-transition: -moz-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-dialog { + position: relative; + width: auto; + margin:auto; + background-color: @ms2-color-background; +} +.modal-content { + position: relative; + background-color: @ms2-color-background; + border-radius: 0; + background-clip: padding-box; + outline: none; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: @ms2-color-shade-darker; +} +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} +.modal-backdrop.in { + opacity: 0.5; + filter: alpha(opacity=50); +} +.modal-header { + background-color:@ms2-color-primary; + color: @ms2-color-text-primary; + padding:10px 15px; +} + +.modal-title { + margin: 0; + +} +.modal-body { + position: relative; +} +.modal-footer { + margin-top: 15px; + padding: 19px 20px 20px; + text-align: right; + border-top: 1px solid gray-light; + background-color:@ms2-color-background; +} +.modal-footer .btn + .btn { + margin-left: 5px; + margin-bottom: 0; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +.modal-dialog { + width: 290px; +} + +@media (min-width: 768px) { + .modal-dialog { + width: 290px; + margin: auto; + margin-top: 150px; + } + .modal-sm { + width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg { + width: 900px; + } +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + background-color: @ms2-color-background; + background-clip: padding-box; + border: 1px solid @ms2-color-shade-light; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + white-space: normal; +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + margin: 0; + padding: 8px 14px; + font-size: @font-size-base; + font-weight: normal; + line-height: 18px; + background-color: @ms2-color-shade-lighter; + border-bottom: 1px solid @ms2-color-shade-light; +} +.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 { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: @ms2-color-shade-light; + border-top-color: rgba(0, 0, 0, 0.25); + bottom: -11px; +} +.popover.top > .arrow:after { + content: " "; + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: @ms2-color-background; +} +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: @ms2-color-shade-light; + border-right-color: rgba(0, 0, 0, 0.25); +} +.popover.right > .arrow:after { + content: " "; + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: @ms2-color-background; +} +.popover.bottom > .arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: @ms2-color-shade-light; + border-bottom-color: rgba(0, 0, 0, 0.25); + top: -11px; +} +.popover.bottom > .arrow:after { + content: " "; + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: @ms2-color-background; +} +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: @ms2-color-shade-light; + border-left-color: rgba(0, 0, 0, 0.25); +} +.popover.left > .arrow:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: @ms2-color-background; + bottom: -10px; +} + +.clearfix:before, +.clearfix:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-footer:before, +.modal-footer:after { + content: " "; + display: table; +} +.clearfix:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-footer:after { + clear: both; +} +.center-block { + display: block; + margin-left: auto; + margin-right: auto; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.hidden { + display: none !important; + visibility: hidden !important; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} +@media print { + .hidden-print { + display: none !important; + } +} diff --git a/web/client/themes/default/icons.less b/web/client/themes/default/icons.less new file mode 100644 index 0000000000..2452ef45a2 --- /dev/null +++ b/web/client/themes/default/icons.less @@ -0,0 +1,717 @@ +@charset "UTF-8"; + +@font-face { + font-family: "mapstore2"; + src:url("../default/icons/icons.eot"); + src:url("../default/icons/icons.eot?#iefix") format("embedded-opentype"), + url("../default/icons/icons.woff") format("woff"), + url("../default/icons/icons.ttf") format("truetype"), + url("../default/icons/icons.svg#mapstore2") format("svg"); + font-weight: normal; + font-style: normal; +} + +[data-icon]:before { + font-family: "mapstore2" !important; + content: attr(data-icon); + font-style: normal !important; + font-weight: normal !important; + font-variant: normal !important; + text-transform: none !important; + speak: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +[class^="glyphicon-"]:before, +[class*=" glyphicon-"]:before { + font-family: "mapstore2" !important; + font-style: normal !important; + font-weight: normal !important; + font-variant: normal !important; + text-transform: none !important; + speak: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.glyphicon-1-bearing:before { + content: "\006c"; +} +.glyphicon-1-bring-down:before { + content: "\006e"; +} +.glyphicon-1-bring-up:before { + content: "\006d"; +} +.glyphicon-1-close:before { + content: "\0055"; +} +.glyphicon-1-compass:before { + content: "\005c"; +} +.glyphicon-1-compass-alt:before { + content: "\005b"; +} +.glyphicon-1-drag:before { + content: "\0070"; +} +.glyphicon-1-group:before { + content: "\0045"; +} +.glyphicon-1-group-add:before { + content: "\0047"; +} +.glyphicon-1-group-cancel:before { + content: "\0048"; +} +.glyphicon-1-group-mod:before { + content: "\0046"; +} +.glyphicon-1-layer:before { + content: "\004e"; +} +.glyphicon-1-line:before { + content: "\004f"; +} +.glyphicon-1-map:before { + content: "\0049"; +} +.glyphicon-1-mark:before { + content: "\0050"; +} +.glyphicon-1-mark-alt:before { + content: "\0051"; +} +.glyphicon-1-measure-area:before { + content: "\0071"; +} +.glyphicon-1-measure-lenght:before { + content: "\0072"; +} +.glyphicon-1-measure-path:before { + content: "\0073"; +} +.glyphicon-menu-hamburger:before { + content: "\0052"; +} +.glyphicon-1-menu-manage:before { + content: "\0053"; +} +.glyphicon-option-horizontal:before { + content: "\e234"; +} +.glyphicon-1-pdf:before { + content: "\004a"; +} +.glyphicon-1-point:before { + content: "\0074"; +} +.glyphicon-1-poligon:before { + content: "\0075"; +} +.glyphicon-1-position-1:before { + content: "\0054"; +} +.glyphicon-1-screen-backward:before { + content: "\0059"; +} +.glyphicon-1-screen-forward:before { + content: "\005a"; +} +.glyphicon-1-social-fb:before { + content: "\0056"; +} +.glyphicon-1-social-tw:before { + content: "\0057"; +} +.glyphicon-1-stilo:before { + content: "\0058"; +} +.glyphicon-1-time-user:before { + content: "\0041"; +} +.glyphicon-1-user-add:before { + content: "\0042"; +} +.glyphicon-1-user-cancel:before { + content: "\0043"; +} +.glyphicon-1-user-mod:before { + content: "\0044"; +} +.glyphicon-1-ruler-alt-2:before { + content: "\0063"; +} +.glyphicon-1-ruler:before { + content: "\005f"; +} +.glyphicon-1-ruler-alt:before { + content: "\0060"; +} +.glyphicon-1-set-squadre:before { + content: "\0061"; +} +.glyphicon-1-compass-arrow:before { + content: "\005d"; +} +.glyphicon-1-raster:before { + content: "\005e"; +} +.glyphicon-1-vector:before { + content: "\007c"; +} +.glyphicon-1-vector-alt:before { + content: "\007d"; +} +.glyphicon-1-circle:before { + content: "\0068"; +} +.glyphicon-1-polygon:before { + content: "\0069"; +} +.glyphicon-1-line:before { + content: "\0067"; +} +.glyphicon-1-point:before { + content: "\0076"; +} +.glyphicon-1-circle-dashed:before { + content: "\0065"; +} +.glyphicon-1-polygon-dashed:before { + content: "\0066"; +} +.glyphicon-1-line-dashed:before { + content: "\006b"; +} +.glyphicon-1-point-dashed:before { + content: "\007b"; +} +.glyphicon-1-circle-add:before { + content: "\0077"; +} +.glyphicon-1-polygon-add:before { + content: "\0078"; +} +.glyphicon-1-line-add:before { + content: "\0079"; +} +.glyphicon-1-point-add:before { + content: "\007a"; +} +.glyphicon-align-center:before { + content: "\e053"; +} +.glyphicon-align-justify:before { + content: "\e055"; +} +.glyphicon-align-left:before { + content: "\e052"; +} +.glyphicon-align-right:before { + content: "\e054"; +} +.glyphicon-asterisk:before { + content: "\002a"; +} +.glyphicon-arrow-down:before { + content: "\e094"; +} +.glyphicon-arrow-left:before { + content: "\e091"; +} +.glyphicon-arrow-right:before { + content: "\e092"; +} +.glyphicon-arrow-up:before { + content: "\e093"; +} +.glyphicon-backward:before { + content: "\e071"; +} +.glyphicon-ban-circle:before { + content: "\e090"; +} +.glyphicon-barcode:before { + content: "\e040"; +} +.glyphicon-bold:before { + content: "\e048"; +} +.glyphicon-camera:before { + content: "\e046"; +} +.glyphicon-chevron-down:before { + content: "\e259"; +} +.glyphicon-chevron-left:before { + content: "\e257"; +} +.glyphicon-chevron-right:before { + content: "\e258"; +} +.glyphicon-chevron-up:before { + content: "\e260"; +} +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} +.glyphicon-cloud:before { + content: "\2601"; +} +.glyphicon-cloud-download:before { + content: "\e197"; +} +.glyphicon-cloud-upload:before { + content: "\e198"; +} +.glyphicon-cog:before { + content: "\e019"; +} +.glyphicon-collapse-down:before { + content: "\e159"; +} +.glyphicon-collapse-up:before { + content: "\e160"; +} +.glyphicon-comment:before { + content: "\e111"; +} +.glyphicon-dashboard:before { + content: "\e141"; +} +.glyphicon-download:before { + content: "\e026"; +} +.glyphicon-download-alt:before { + content: "\e166"; +} +.glyphicon-edit:before { + content: "\e065"; +} +.glyphicon-envelope:before { + content: "\2709"; +} +.glyphicon-export:before { + content: "\e170"; +} +.glyphicon-fast-backward:before { + content: "\e070"; +} +.glyphicon-fast-forward:before { + content: "\e076"; +} +.glyphicon-file:before { + content: "\e022"; +} +.glyphicon-filter:before { + content: "\e138"; +} +.glyphicon-flag:before { + content: "\e034"; +} +.glyphicon-flash:before { + content: "\e162"; +} +.glyphicon-floppy-open:before { + content: "\e176"; +} +.glyphicon-floppy-remove:before { + content: "\e174"; +} +.glyphicon-floppy-save:before { + content: "\e175"; +} +.glyphicon-floppy-saved:before { + content: "\e173"; +} +.glyphicon-font:before { + content: "\e047"; +} +.glyphicon-forward:before { + content: "\e075"; +} +.glyphicon-1-full-screen:before { + content: "\e140"; +} +.glyphicon-globe:before { + content: "\e135"; +} +.glyphicon-hand-down:before { + content: "\e130"; +} +.glyphicon-hand-left:before { + content: "\e128"; +} +.glyphicon-hand-right:before { + content: "\e127"; +} +.glyphicon-hand-up:before { + content: "\e129"; +} +.glyphicon-hdd:before { + content: "\e121"; +} +.glyphicon-heart:before { + content: "\e005"; +} +.glyphicon-home:before { + content: "\e021"; +} +.glyphicon-import:before { + content: "\e169"; +} +.glyphicon-inbox:before { + content: "\e028"; +} +.glyphicon-info-sign:before { + content: "\e086"; +} +.glyphicon-italic:before { + content: "\e049"; +} +.glyphicon-leaf:before { + content: "\e103"; +} +.glyphicon-link:before { + content: "\e144"; +} +.glyphicon-list:before { + content: "\e012"; +} +.glyphicon-log-in:before { + content: "\e161"; +} +.glyphicon-log-out:before { + content: "\e163"; +} +.glyphicon-magnet:before { + content: "\e112"; +} +.glyphicon-map-marker:before { + content: "\e062"; +} +.glyphicon-minus:before { + content: "\2212"; +} +.glyphicon-minus-sign:before { + content: "\e082"; +} +.glyphicon-move:before { + content: "\e068"; +} +.glyphicon-new-window:before { + content: "\e164"; +} +.glyphicon-off:before { + content: "\e017"; +} +.glyphicon-ok:before { + content: "\e013"; +} +.glyphicon-ok-circle:before { + content: "\e089"; +} +.glyphicon-ok-sign:before { + content: "\e084"; +} +.glyphicon-open:before { + content: "\e167"; +} +.glyphicon-paperclip:before { + content: "\e142"; +} +.glyphicon-pause:before { + content: "\e073"; +} +.glyphicon-pencil:before { + content: "\270f"; +} +.glyphicon-phone:before { + content: "\e145"; +} +.glyphicon-picture:before { + content: "\e060"; +} +.glyphicon-plane:before { + content: "\e171"; +} +.glyphicon-play:before { + content: "\e072"; +} +.glyphicon-play-circle:before { + content: "\e029"; +} +.glyphicon-plus:before { + content: "\002b"; +} +.glyphicon-plus-sign:before { + content: "\e081"; +} +.glyphicon-print:before { + content: "\e045"; +} +.glyphicon-pushpin:before { + content: "\e146"; +} +.glyphicon-qrcode:before { + content: "\e039"; +} +.glyphicon-question-sign:before { + content: "\e085"; +} +.glyphicon-random:before { + content: "\e110"; +} +.glyphicon-record:before { + content: "\e165"; +} +.glyphicon-refresh:before { + content: "\e031"; +} +.glyphicon-remove:before { + content: "\e014"; +} +.glyphicon-remove-circle:before { + content: "\e088"; +} +.glyphicon-remove-sign:before { + content: "\e083"; +} +.glyphicon-repeat:before { + content: "\e030"; +} +.glyphicon-resize-full:before { + content: "\e096"; +} +.glyphicon-resize-horizontal:before { + content: "\e120"; +} +.glyphicon-resize-small:before { + content: "\e097"; +} +.glyphicon-resize-vertical:before { + content: "\e119"; +} +.glyphicon-retweet:before { + content: "\e115"; +} +.glyphicon-road:before { + content: "\e024"; +} +.glyphicon-save:before { + content: "\e166"; +} +.glyphicon-screenshot:before { + content: "\e087"; +} +.glyphicon-search:before { + content: "\e003"; +} +.glyphicon-send:before { + content: "\e171"; +} +.glyphicon-share:before { + content: "\004c"; +} +.glyphicon-share-alt:before { + content: "\004b"; +} +.glyphicon-shopping-cart:before { + content: "\e116"; +} +.glyphicon-signal:before { + content: "\e018"; +} +.glyphicon-sort:before { + content: "\e150"; +} +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} +.glyphicon-star:before { + content: "\e006"; +} +.glyphicon-star-empty:before { + content: "\e007"; +} +.glyphicon-stats:before { + content: "\e185"; +} +.glyphicon-step-backward:before { + content: "\e069"; +} +.glyphicon-step-forward:before { + content: "\e077"; +} +.glyphicon-stop:before { + content: "\e074"; +} +.glyphicon-tag:before { + content: "\e041"; +} +.glyphicon-tags:before { + content: "\e042"; +} +.glyphicon-tasks:before { + content: "\e137"; +} +.glyphicon-text-height:before { + content: "\e050"; +} +.glyphicon-text-width:before { + content: "\e051"; +} +.glyphicon-th-list:before { + content: "\e012"; +} +.glyphicon-thumbs-down:before { + content: "\e126"; +} +.glyphicon-thumbs-up:before { + content: "\e125"; +} +.glyphicon-time:before { + content: "\e023"; +} +.glyphicon-tint:before { + content: "\e064"; +} +.glyphicon-transfer:before { + content: "\e178"; +} +.glyphicon-unchecked:before { + content: "\e157"; +} +.glyphicon-upload:before { + content: "\e027"; +} +.glyphicon-usd:before { + content: "\e148"; +} +.glyphicon-user:before { + content: "\e008"; +} +.glyphicon-warning-sign:before { + content: "\e107"; +} +.glyphicon-wrench:before { + content: "\e136"; +} +.glyphicon-zoom-in:before { + content: "\e015"; +} +.glyphicon-zoom-out:before { + content: "\e016"; +} +.glyphicon-trash:before { + content: "\e020"; +} +.glyphicon-saved:before { + content: "\e168"; +} +.glyphicon-1-catalog:before { + content: "\006a"; +} +.glyphicon-exclamation-sign:before { + content: "\e101"; +} +.glyphicon-expand:before { + content: "\e158"; +} +.glyphicon-lock:before { + content: "\e033"; +} +.glyphicon-list-alt:before { + content: "\e032"; +} +.glyphicon-check:before { + content: "\e067"; +} +.glyphicon-floppy-disk:before { + content: "\e172"; +} +.glyphicon-1-max-size:before { + content: "\004d"; +} +.glyphicon-adjust:before { + content: "\e063"; +} +.glyphicon-calendar:before { + content: "\e109"; +} +.glyphicon-folder-close:before { + content: "\e117"; +} +.glyphicon-folder-open:before { + content: "\e118"; +} +.glyphicon-text-background:before { + content: "\e243"; +} +.glyphicon-scissors:before { + content: "\e226"; +} +.glyphicon-text-colour:before { + content: "\e242"; +} +.glyphicon-paste:before { + content: "\e206"; +} +.glyphicon-level-up:before { + content: "\e204"; +} +.glyphicon-hourglass:before { + content: "\e231b"; +} +.glyphicon-duplicate:before { + content: "\e224"; +} +.glyphicon-copy:before { + content: "\e205"; +} +.glyphicon-compressed:before { + content: "\e181"; +} +.glyphicon-bookmark:before { + content: "\e044"; +} +.glyphicon-book:before { + content: "\e043"; +} +.glyphicon-alert:before { + content: "\e209"; +} +.glyphicon-th:before { + content: "\e011"; +} +.glyphicon-th-large:before { + content: "\e010"; +} +.glyphicon-eye-open:before { + content: "\e105"; +} +.glyphicon-eye-close:before { + content: "\e106"; +} diff --git a/web/client/themes/default/icons/icons.eot b/web/client/themes/default/icons/icons.eot new file mode 100644 index 0000000000000000000000000000000000000000..c7ead8ba9cc6425b9a15b409afa457f045ab2d44 GIT binary patch literal 93364 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�T2@H}zw5d0T-ZA=i<`p}6SbA!o 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 literal 0 HcmV?d00001 diff --git a/web/client/themes/default/icons/icons.svg b/web/client/themes/default/icons/icons.svg new file mode 100644 index 0000000000..589ffa8059 --- /dev/null +++ b/web/client/themes/default/icons/icons.svg @@ -0,0 +1,1003 @@ + + + + +Created by FontForge 20161003 at Mon Feb 13 15:08:14 2017 + By www-data +Copyright (c) 2017 by Chef Studio. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/client/themes/default/icons/icons.ttf b/web/client/themes/default/icons/icons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4041edc14886bdd70960bc0c70ca2941b53d67ae GIT binary patch literal 93192 zcmeFacYIvM)jvFQ@7=1^_M)~;tKC)a(n^-CV$0pQ8)U%7#v(4*AR9~x222N=-n;3& zm>L&KAQb0E04E`#gX|=P5NhbQ_U`*Vb9YxO+mPhqeuOdOEsW^~m#kVm z@X6u3?_;cH0B+NkoN#LLqb_mDpmVcR;7oPNJRw-Ou+e1Ym*Uls%+*cXX;eYJusA3uAw@Ql1HCtx z)bpBQi(o$uhU!Iz+La8w7q{{PGXt-Hp)yfiYU?-*%EIwZIhEZG^FGY4Va6lfe`-dw z8`>^)mS)&|__x6%(xwb}CrkxQJ&X$m<=xLvxzgnxfvHTCKeY=?>NsF}f8&CLW~?|J2`rDQ(I(H;)XR4$oT=A4ZJDN?^*D!caQMSD5L*WNwF{ zys2IYle$=WG==d+bxK_h`a0k;!teJdnFF(N3 z+mUh9yr-qD9ce;y?QQDi(|E_UX~K0{6Yu3!nRuL1nAVhu$U9aF6_60wesj%hHN8X#zIlPC=(m`zoro-SQ4 z(oB=-3c!{?&{&m|vP8XxpJ~%XBXsb@G#*2=UJ*hB=_r|2M;QcYiDDuOv#=kGDXg+4 z@DL_u1~jw0l*;m$1<=Cs0rQy+(8}z9Hs%1dGbf;fxd5Ha4d`MXKsWQIlFY+=fL>Mr z=wpR|1*{0Lkd*)yF+X523jmg|AfTUx00S(X8e&0K3K(J$z%VNVEM-x^2#W!hu{dCq zRRG3VC19LY0hY7s)LvG>Y5*%)EnpR^1FUBCfHkZEu$DCf*0CnQde#isz*`=hD>@dK2YysfGY$4zw>6dE?`FiE@Zy|Jc2C+T*Q_EE@mqLk7P%uzGX|;O2B@$3h*d)4B#)= zv4Bh20N^sV8gMyV1Gs`62Y56)9&jaFoBD>WVkZI~!%hM`mYobZzd`cLH9=?gG4?-3@pHy9e+_b}!&f?Ecgj>}K`=;3oDU;4SPSz+2hFfVVMl8SHlU z2;d#;QNTOdV}N(D$5WrPyV(veh8GD5N8t_r}9N=T@dBDfnZvdZQF9JTvUIP3Tdl_&G+X1+h{T6T=`#-5q*>?5{ z;8W~(fKRhm0iR*70Y1xK2mCeL3HTiQ1K{)QkAS~nZvei){*?MBdy)Ma@Fn&p;LGeS zz#Z&uz~8cW0RInr7w{GK9^miT`+%>q4^yA8*VrK7>ueX`PPQBH_v|l#e_($F{3H7t z;2Z2Cz(29S1OAzP4EQGdN9rHouRj5Nn|%uS4*Lx7UG_QPd+ZCq_t}?#AF!_gKV<&` z9AsYu?qc7hK4!bww}5|P-vR!WeGm9I_9Ng&Y!Bey*0QfaG0)E3ysgKyV+zj{~&jb9PTL6FH`G7xi zE8re(1Ki8)fJ58?nB*=%mAg}aV=3+dWSDoc*EHqnm~5g)XV#fzNs>7JB(vFMQiL-I zJQ@T}6T_~c%$oNwC8FdBm<7gk%&fx*Lc|^6GHf9~Ji`u}JspKS$U9SrkpZ{yUKZaX0sxk zLEzCKaE8db!XZ!d&ZGJb`&-C1Y}G0+q8$K;R1V-yPUM%9kZ^)SI%&dWLm|k8a^3HN z&jH> zNf$Wdmci*XGFHNxQ`SSvF>4h8(pkfi@tOl!2(b`qG=!CNd ztT{B1n%xQ{s0^^AJ%)p1<59K$!)KqMlnLd8C*6dC)?DBvytM$xf4BujC@p9@?66Ck z%5mQ((@ap!IVT)E(uJY!g!&@K%!6Q>g)y5$&vZ6=jCP}4r^qt(SH%toy>KSVX44>W zhRC|Y!LE5basz5n(mvV1f;bQmsSIZ`A|<42cce2;XK%;j&oCYhabzP3r=JBPdQOO}9fSi zRm(xkm#St5a1JM(2?iOy%Y$}x(PQ?QJqEO^OzlbzMglH(4isdLo&4M`x7#5CX(6*= z(wabqnh-5J82Ny#J>U zlJMf8WC&_TIFQ@0)ho&(!sTYE#mu;j^iJDE8krCW!nv`0T3JMHZe*FReL9+!8)F4U zCT1+4C%-7a$Yjvk)j$qr0_mr4KO)z`C%m&^G%vF5;Q zAp3!yqT*p6LG5GB@jg)WT({wvxvrqe<0n0fOGbKWwvlf8q?cpO37116fPXm8ksc$9 zQZyWlQl+wp;Eef$W@h%&V-MPcW~0`w#z4UDw+QDF0b$i_86s^D_=g>aDdD+~RZAxw z?LY|O0|yL52_YYm9ze;+K$<%xD9R#2jYxhtzzAnyNrx`kC(Yr2Bl8mOK`oMi^@>37)1h>;l1!e<{K0+Cx-^Bx)LXKW&!edCCP zG@pzYol+p}jE`p3a!m)!%_JPmwdK;8R7Fa;9zR1<#u@J*$gCw4%I3pZxD4$o%H=F` zmSx*DTpA8rg|h}=JM01O0T!1N3#+pkqR#|If)=GMOwZ2+gp3$f`$)>!@ zs>({Ia0Y=#gMu7kuYgZgWktq~EF+(N?IV42Z3tO$z|hqQRaK>VWdaC$#*#^e3R1nV zBY7fn#yNwvIB6TDmhsSVjx9qD=aQyGk+Km-1Y@kW(ZOuB^b|H0HaaY5SF>!k)YjG3 zx`eX^U_HuN$R`E2XaoPswCJHK^ zriR9m-tcV7c<$$wj`SZON@6%2Eh}=;9CLk;ee(em94_QY?`-KtIydH)cHb~fs3)Er z=Y4D4*a#)N4mWeQ(&O*&cere3v%w-;Y^{mbR-bUz0IUam5)?4eBK-CVvyb(F(GTpX z#mvTULk_TH>_o#sp#9^wWrAhBMg|<|owiY8BRxbGS`y@u>zU0V8#$X5wS#bFY*d$r zxkk|w>}InuU(UCW>KHYuKsajvR`Iltz+~&7pyJ8k16wmO)4uy7L~qxU*e9XU z$fQGaO9vQs*e@9^Fe!)Rq=LK;oPAE191@8R+eA9UR`L>Q!AWz?$tar%W8)?lFz+~e z$|jdhE^t~bCYxe&_QIh=I1@E)oCXD%V;?(itmc#P9y=UDP!!;Q{ESETy;?q$8tC-1 zU)pfUdS(IZc2efW-gO8xcl2@+xzG2gLEl4^bV^e39u)?YIRLrWFRqVD}&32vL zO%6c<>1SGon35qf7(P>`2=9Y3PQ!TG)NI6I$Dg1mp#z2{$AhM6Ug-d^f=at((i24+ z5lr}`OP2{X0;iKBw;U3-oVtwk5V@usfqaO}X_ItdMh|Jt%8cpPFfQz6q!G;+-w6y2 zVEI0#=MTUq1g!yt+wW0EsQ&KfJ<@>}@Iqe1i+Kt6^8gR>5D)WG9^qv?3Z<(!FXt7! z61rN|yoT5EI$qBkcq4D(&Af%TLdmO*xAR$i6x6;(^D(@WckyoC!^iS*yccC2&nNJS zd=j6`r|_vz;W~&<=QH?BKAX=OS&si@o8iAmU;l5zdj4&QbO7#V3V#QdHPEBdK|d=5 zZLTAsfpiSCeolpM%$*@~s4jFw=z-AFrOrrkbSTDSd*Y_JZBQOG4Hgbo47LwW9-Ke8 zXmI)9$%7XRUbD-zt8iDvuJ&CMc1_+jf7kL|C-1so*Hyc&+pXVi+U?z4xI4T%zPo+* z0*$8uXc?iW%gStWcU}&&@uzPSO@;q{IU~v85rMvhp z`>xQg`d!_-CheNJYtgQOUF&yUy6c+V40+mj7a-5b?)u%`yJu>7rv8$82ihtOdMkf| ze#|dYM-Cc4{OgBLe7O9>`5)-sOTOcOr||9Y+pf2*A%CbOnyiLtObCHFP&0~EeMc6@IUE_%ZXHC} zL8>=oMuR#S3KIsl!yrBAII_VIOasz;W^;-Fc*M+1(?#k3iO|V zQI=iTfqs`k^$LdG;RnDb%|QE#?Y6_1|?UACTy0Y z6K3~C=7%M-@<;q zj{|4>I&`NU&=N=kEirxzUq2Ix0Y$>aGn-}8+7M6GgP5cTB{?mLabVi z&4#dW0#}dtB}+UfLr0 z6?>lghhqB}TaeE#EmiL?v5j&2c&*W_D=9fX7?kZ6UQ_5AZ7)&p4~O~epnbH>ul~_& z(g%abm+&+4OuDyS!DYqv>+|h5*^B#w-akNTl^+v{sF%a<58hyZF+B3Gw-+x9y55GL zdU+&*HjbsXDiu`8KS5s9d`5WrfUP@G@36zI zFO9W0!lkk1)~2wdxwX;jafBPaZoN{go}V};qVMo zZav;kYz#-$y0FFQ;4N7y7U!{6yji@`M!ajeeUDjZRIk+QxW%m3pQJA^pUPbs%9eL! zo=yEMW6e@0==AE9MxA+2q4N%-+jxgl(VHm|i^X`0(b6yALwPn^-a|PK7Cm2SG$R7S zqx*B*nRr%NsVqZ(JefMP5hI_PfckqBRaSswz%euz(POC32NAGRv>9=Vd4lpGtpY(g zLAgXCPDD@;xd6BhnBIB=unV{unEYF*7c~03zDRSe94WQRhOi;5_W%Txrp8XWrAcql zM@r+hJRV6jwI%>Md7@R?@vni=`X?gI-R(YCRa;}dji1u5zM8zvLk^;_5^v_)@SkBnKR7q@P=;@*z&n=Q`L}-LhoP2;gfIYxnz$W0y@1avh&>6wjP~)OAQp0u$ss|J{ zWOye*1T9AtFK|7u8<;Zd0Ujj=Q)58qDd8TsRaeDx`sB~_L<~5eqX{!jb1cGd;|s^F z7+dePaBlI|k6khDQHh7r{cb~^`6{zb{Wfh~J51T0e5JdlrdwH2RMyovqp}RDuVs}p z8@r=LS|5Bk&uTM2oYM#SyJp)C^^LIy&+Voen6nywnR1pi0X-=ny^F>ns*ib;h7QdN zVm7E4I-)F*D3foEVGg*g`JiU}W5!;Q+OCX8|Mj5v72`$`#pme8)QI37;Z99QBiD?k zqE>eR8|_;WTKNWf=p}>K>1*)DQc`P)kX<=Ahubz5McWJOKI^OD? zQ+-Uk-`Tr{H#O+>M$38p+LM<}a?0|#6R&S7b?A;8Q>;|96wI`H)$hyVh6>~h{t1{+#BR5R)EXlxGa0l=YI^i z1AAuz@Hfsgn?hygV+TxSA=AtJo2YF5eOJgkx z?HI$kH^Cjzm_Z-qO<{SiffYRY2DBZ7N5f`x&2wQmY&+<@ed99J$qD(vRUed zR09V~9={ZmVp{t3sfU#H%2AkxDz{*dj+Go!nU3i(m4(o8O3;By;Nlc6v`U2ELpIS? ztlDnO)U_Oa+UL;aTAEw=9nv}R`Z*J3oL_dxj7ejY_w@CoNx%Hq?Y2Pa&~u4dzQT%C zYYGeOlIe!zZIz2WMHR=aE-G+Hr^hPAyE$8VLg~hMuEHoUMvWU#W8(BMX=1F0sck^j zH$+Qg=qJss=*g(OFThbQE0;?Ny2*~|4t~uP%EaRaALsY<-O$n1-QCr3L*Kj`I=k?6 z-Y{?MKqVa*Rt}8qTwNoc)za(gyGP6^=Vc#tb#~o+=Z&46(LHm6vt1Whqyd!p+oljN&wf^4O#x zw?PCOgrK&I*U7$Y0r@Ac*!PbW>Z^7KBfBb0C6E6Ybq_qsFI0DrRc}@|^{Tu1#Sco) zMwIAgf7zbn-R|S}l=(MDmGIwQOrRnsY~Ri|@`BNP3AK|1esvr8)um`Bn|K3e;=Bd_ zNo*%?#zgIrkG=2Rd+*wP*U+!Pvwg(7-Eqg>?=Ryf_4~^(YiVOpk5pV} zaom8VTdlaMIuW-bTIGpJsstwYYT!6QDZ(`jdMrFfm!9foYWX0#mq2z!Yu@Fr_mMn8Hs7 zCimIEg$hga4spiYaYL5l?kiD{%HY;7Q4OFb391rQ6DW;i zb|bL{th4ouWAdPhqX|j-fr+1{sycv)$t(w^Dpmp$pIr~!4BP1Z9Go zS-f|SmM4y10@ec)cWVJQ16zUVjZ?pH0(-?98d<_jNh6Xe`MtE5U~MI?Jc z+FnSz*g{0sc8VMn_<{5&&|1R;xBr_qz)XsaXmk_-2dGV&JdtSF6W09%u3WPQtm&ws zm(&k`j*@>jFfg!f&6+i2wu7ek%JDUTSCwnzPa%uRtU)@QkR@6heI`tJ0dA1$R9jdH zMUIH!6z#F%CDR;5O?)tTL?jkb|011MX>VOX<2;IVHX$%g0Vuw>~+3&a7#?S$)A%I%hoi zrug{Tv!smwa?W$Ur_k4~@sUAT`wc{`?B6E@=XCZ}SO83%r3D?S8Z z`Ud0Rz?{K$NbMy^fhbBNqD&P0|9{Obm}pl5mYKFC9l4n zmCws}IJUv$=R2Jrb&nZy)18~T#&qF-)15bs8PhH8t|9hf4Iuv45PMMr_M##(;|TRl z>1#(mC6e#B$8P5HX(mzcHrvtB(RR6fQy0G7@bBB_|AL3wr&a!k?eO2SSJD@m`lG){ z`2NHL%9+X-a2OG`k~W0em?y!7AuXhE!Hrhu9uxRS1I~F2=u8HD69Rjs1wA^jItF}Z z!N4T49EzYTU|=z!!&|U5u;6197A%KIV}Z7oM!^TWnw<%s6&rAGh<4QRgxBeDW5wrb zxfbynwbz`{an$iD|Al&df5+)pt6SAk>Q??~tSN?n{^zT?GGSHwjy1p9v*%Z9cC@dW zpblOAk@^(AA96gup{T5^NIj}J6rypV;2R*%DmN?BF#i|gy*9Cl+fg1vdV0q9&V(#y zJ0>kdTB=YDDkcU%H71)D5<8S*t&q~|MhS2|)(xGID>{VikrNFm7VQxmJ-I$E@)y0H zq>wySKc=>JOuhPOQ@cADbhkH2H`jO8)O6NA+|uq21l;W{w#G(&Y)gxJS!2lgwa4H1 zbz`G6(9poQG=*Gy-*Sc;>D@W-1)NRFVc;?j$9F@pTA)l`m;!M7Gf?MY@f0yhGf<6M z;9BD3yasn9UTV-|=D|)R9@Bf=5fUAhwzS5vSB%FnKM_^h5=%5UH4;r4Q9du;Ra2|4 z(Sw*|rT9K?QzO^JBH#twUgavYIjo;o8XD_$RyFzD-M5z1I9>IA!`!}hcR@?kUC>n; znHe{mOAiZ2x=Y++!UgWG+lsoz1@v?K+C1Kt7(#?g4vQpzGxPZ4XCAbAwKThPTu7NU z8=~6A8h24o@BDz#SlSmUo9MJPR~0!rXU{VRddB%@%tYkPWXtE6z9P9UV!){3_>#*r%HhfYxC9$|mjO+Y;g*Q^ zz@LdLhpRWL&#E^`vZNa;RVUw&{>fif>G%?@@NDWkdAHJowyFT%kA_4F)ISSh^e`su zi-K61ykcJzN>kK3X??&Jl$g3pkA;sD3acexd}$+O%pCiv1!PFF>drY60JOc z1NZUMxkvq{dWJOjLG^w$s@}&B=Ie#Bpt>IRX3(?frFO7cugHjz|kmV5E3*!&&_6e*XPw$&KKi$10PaeRl5_ zZhL~uqCEH}(Kh8Y$WuJn!<|agAI=GoYbmhvy&f4F4v=Rr0P$spxKt1%6ft98L!4|4 z1^g1zl?Zrgh8PgURAIjg83)Q{pLa9G+uP78R-$=#b zUMgDq!zj+(d_IcSr}Z5N8>8GTzlfedat+!Wk+fCok(vw|1;mu%3d>EH{F*St#lCY4 zS8m>W+%M(po_)1%XwM<9)P(psr4{^a@BtI09@WP$Q;#*=R$5tEdK)s5@g1+nlxx#t z7#cGBk6WJ4x$S(6z*D(f{Zu_mn)QJCfLg9Tz~}O})Z6%M^&xrm2K7w!3+~{jaaZTP zYK8E8lh0Gn`ppX{wIg*u*4-Kw5jCNilBCAOP;kLK;Ppdn=F=;YQoM(zkPkfoJibSc z((WP1W5QjUbK?({tDDuAp8K5A|D5|bI}A;3PhO4stHJ`KIdSqu?>wu1&GY@+ua5lc zAJD=3kk1}GZid61y%`168{Q^b(Qfp&pYO`_^B%FodZ?1q?0OPU=@<(k< zWlm>lL`fL6G&PVsgZ6QDA-1(M2@~;FO!hPeNs!=yp9kS=pfiUvM2Fx`@=g*?#Bj)0 zi)vC_ZDR&rX*)?Wu&z?8xIhv6DCYItCh$a>GmYbNvq&h8PD%SBm(Gj1zm9{gz~?ou zFjuHs3W|(*Z6{v*<}>QQ*6^8Vst26<7Dti#;OFY!AFvqP-4>UjoKJ4HDCM4$H~i^& zZjnFDD^wq$R%*#BxnKS2=`Z;7-RF-oBtQ9F-Tdx(36sa}=CdZ->wU#W|2^FHGzRVl zd_gpZ^AV#MJ$|eK_<9>ArfW!Ks>eY-Rfm`dVyx)YR4=9@FuEkekHNIUOn^!A#SDBg zCUS7SG(*!)nWVtfs&vj;N9`0q>u9_L_RDG3vkGpQ>yQPV9G3|y2Fe5q4UWmN9C9MG zC#Jem@MDc~DFBXveQwR}rIDnKCJ%PU+8;kX;H|H3ZmzHQ1_A+rq`Qau`--Kw9F>s?+!a*y7QTHb76MR)b0taE0z(3SVSfD#4;;}jZ*q;?04fH~h_UuQ%T8uk*!Q1N{C#Yuu+k?eJ6u zL)9Kf^s4g}bqT)nahIG=fs!vFA_WgfqbTC#rDJM}ifYD`Uaqb)mwH0g)ge!*Sxw4? z7DY1ZF9&bbkF|6f)^-zW~3=#o2DH6anWB zW*ve$I^Tsv9NZ9i^i#2j_1olMD>}Oz9@pJaQq)x$uc)3Fm^am6)a$I?lRA9mwXSxh zqGr5*=}dzVt-Y!=nQirw-k~0**LTb;qpzOWY_@itY_Rbs6Nlh)CV6@{w_2@-K&vP% z&z*$<(EzQ-4w}gI>3w1x1E*HJngpm$L6HoJRzyu!G>%sCO4M%@?Lolf(S8ZM|+#i%w@H2yn+!!+JiGrk;rihMm*E-<#4^Bbs@q)Sh` zJslWSXehXCIGF&@m)3Cufmm}FP747bf%COaEbtR1MM_!8frvx{$9*S39N2n z#!g_yPGH7PV8+IbqDe9mn6VRL#_mO&cEo9?;RyO5jSD3mBu#ppPkmTx3~Zqdk!)*V z?@Z01OCR+8r_CpSj)8VwZ@0mW#;P<*`eQp1ddXC2NS^thwyS&>H$C?D@>k}Pgi-G{ zUj68y4@@+<^A&=YuE=|{_F$28I6%M zVKSq!p1VedF#a_*pc{!r#Y{l^=;7T89cV{cx8NS^cs~xvCAIaEgx@4#ru9+*rWJ+W zL?LiD){X?$j;&ag31WRlEI)kdu%ryHh-eafkkBRyx&k!eYT#~QIy@nJecIjtTmyR} za00joxEZDdbPF)8YvfLA6S-yjMi1x?xKVzifk|14(j5buMEK)r{UUidDW+&T1~kzV zha?LD6K(7=yE7l$G*uQIVras5w^;9GRF6&ttY{+a=3t}E9x-opUO>_XAHo%h^CMz5 zO5j4;3$*a+fQe<(1D68(fHTcxMXWdzsl$~TsR9*ngQf#DnycxsiyAEkOpR6!TnlUk zt^=-1hoOecoJMuQj~b2QwgOXJTHq-zH6X>!G$7?Q3T~s24wZ}=ZVYHjs}nT2bpv;& z-Nu5Z^vBUk4=Ds0=%hp(FdRlsyG7Gj#@^NgcRDMeFi{w?Q&^&<#^ftfi(1I9RhP~C z5|4D&S6_WK?4~SF{!VIEOK|?Xa@t0EF2uuK7vWKl+_;hZ&O1+Pk{Z+iziRGR>M>u- zCww*Z52RSaFS%B8PQIc3IEC6Dx^a5G?+@rSgusMz}=7pwhmILiR{GO z5d{7T3oUgR3xY!hPjnpvKKx5mL3VtVfvSL;#x)5wDUtw?OpsXhY8YavdSQt5r?W4b z$w*nP5vCKfnQvcNCYENBWD2=vn%49v_jk_?bBw3PZm;q1mz}jv{PUOH^)_3*`&vhh z%T?o0|K?ol^{#cQe)mak{MUFq${`-l-h2NujJ54T$UV#CxfnJ1Xg5q2D8EFrv22oj zkW>n}rc&ljrqt6VCD{x~v$MXwR-UV#npF9EiGSEo=XTdM&j$dz7?<)22Eh0HQ}JfBV46~dEz+rcz*uaX*%6_)6^c?X7@~$^<`I@+v?Th_(fNQ zoRLe&wXRL4d&nATlfG;7mL&5s)X-5eV@YVr^5s)P4%z|UnkrMQ&?iuYERnRDGH*?1 z;*PLlRVS-crSRrTv@(Y*YDUfD!I$EdMIx_*fK$ALa6$(m+jx{uk zlVn#r!K57;9S+bTsf0hGXlJ6$>_)h1h0!BpsE4B%92B(e1f|W}nJpnLakSKtotC-? zLWactj!rgl*p3-aJ7e!aLkR^$oW;{Dmw?<(sNg{jkDtufsvG$;>R9Qcy`PsIuXMOsHronXhgPMvE)NBx*374s!4ru` z96mH)!VxhS_Tdnf7>wSY80)TB0vQKY(@VhE~X5HA+E&&EOz@~ zfY6wfD4j`#1yz9Dskcz75mq2ZHT4BL^CxXz;aIzRk+-lp(E0Y z*H#}_RWW;6Q_C^O?nu70Zr!?%?>?d)cm9vs^ydZj4V6`WN@B*Wn`U=*hJBMJEx!BU zc^eDlu7V5I;#hq0jCf3~RX10b&zN0TOKr@HQ%}mbDKjxA(JV{ye@<^2UD650s$5j@5G0e4G5|r8!n8* zXmAICtI)DK?4C6NEr~)~utTGxEXYQMw06JVbMj`3Jyg=!SrW2aHa{8&M2ja)DvkyM zYTj_S+V(=8E8pQR950_fp~!2qJ54XVP#pA!rw<)FBUBs+$p0GA?Ie7Ue~fahLfT?A zZ2WNhV5Y%5f}T%JMe-r4Gp#*aG2wC4lF>(!6uI`p}Bs z8;@CC5-2R_>MAGu?L0aeaL%0Rly)Dzlis@mxzN+fFBKWR zMmuY*LXBd0;hId#35w)_+Kj1biQp5}6caK+S1HaQ}W;?Pter*-&AYOR&s52`@a;%Ca9TaPsD8&UE* z>+0lR)Yc}aRaHq+RaNq?+FI$6+S(hk#cm!hc3s_p3r+3)49ZLrvf=gyPmf+jtxQ_N zTA9P3GWRz!?Txi1+u*XGGYziUv|{VT3&}LNGIi*BDtKL;D%bg)Jn1T_OCD5HBRy8P z_fz?A>B38i;j;f!lMnZm{G77We5|dc!@b4|H*GpD0!51dBxTR-1zhwQtvVxV90Jin ztLRM1)J)r=pmjsV=sH=9YQQ1roSW$qJkx7BwZ6hTsOL}*LTAAo1R36D$nb0^PaXDc zGw_QP$KqEV?xYpVC>mYce9>l$)&SZ@(PpeSZJ(C5_owYENq1^7M$j_x<~S&AL)`;v zl5oRZASO|5r6W$yXxA1QngeJvo7rRaz&;c9Nx*%;i-8A#mjR!I8Ia_Q)P5PAg$i+6 zmK{~%H0^)Wzp>xr_j?HN9yvtx&>*1tkNa8tAS%Xw}SuBG)CzTje@nI3^Q$oSo=uJrCO{K#Ng5%Ko@azNF!gm z3mbx*LDZ@!FV6xyl*i6e1HGd+4tn(-_Yw*E%f^K+`VH5f1Xzhmp2GXeFT&D z08UV*4Yz;pyV!H;)c&atAJ`8KJKW})9u~#5I3^p2n z)ZTH?&WYI$eGxpF5yyshng>N~ooNa)3u;Eve9XB*m)Imt zl|BzvR|k_$K;>-p4PGtZ2I~prC~XKii_Y(7m?}{3Hq{y0~DNX)nUDKcF3qf;S6Z6`K*CBkGGMaL*#MLs4$qyRwX{ zAI;kR*3jF5(epYx=gF&vHp*+G$*aG7`sqi`;nQyl^^FGjKY?z~L>eR4=r?v1RNHf_Ze zG$DB65AiEMMy5R+l|{X4z$x?-2dU& z?+5XdU@=2$+{Ocv4;+Z-C7SF3{l*KP1N!Do=t0Wk$!{P>W0KTzbMhbN!Unn3w!&sG zay}>dm!mdpIEpV;H;p^uh;fp?cfrgHvzT;m>tnFqsXl>K=Sj;>1Mx#zWePh4m z@83A%u<^;ij6eMF@qD!ULO&#M68hUV{xL@HKj> zrycdg)oo0(RarOM<29j0XdZ7PDFJvb^jzY+h!;-x!!R8X3@g(opbeWD9eAy7sIfrN zDTW)Jo%%#eC+92q@;jP;Q_;~;!M~~K*s=9ab>PmeTcy+a9HUWvz>vp_+WY7B6`5<> zCwEV%bm3i>l&CQ)TbErqKjxXsCT{CrQ!R=tX>RvOO|q{DLOgY ziph^wyL!ZKrhY*BUOMyz(u2m`X0%EO6u1~6#qx>{M6#<4gA^cYK2&#Dn7K2K-nnjNxIT8uUNl4#Dnpq@kwWB>o zp=W4Y;8BPQi4i)L8MA4lXk2tSLD6ByHt_5+8zqvXtuY;+j{+_i8D(O$rDI^u)6Ryw zAQz{-tPSUn>78zv<{CPu(%i#B3n*vn8>TtPr#$L!+!Xx>&6vDOMEmQUuW&|pnNoXL;(wG zr^}>ZiIyXglN-~H4x=j{t$~`NI#8w;`tv%TUUNtxPrkJ)F}6cp%CB?JEKGE%d(>mR zWo6z`+|blIW)ywX%3aXf^a{VO%$@A?h1;a(+b|YV@3D5}Pa<#HM^(_~TazjxcaoKd zMeg{5gLp?y^kSk$mLvZs3ne|YPoboLj_vN~QJ3>;3TAk^$EtgVE;vvrU-_9b<9iJF z)!x-|0PR(X=|87IMixYx^6xU=r)@^&D*8Tt+srBdMZOtt$%7W5MVO&QNCK+e@OPQ` ztFm|K6ZvMfUG1Pa5`NXK0biEC96i{8L80*t+D%cCa1*bfo!~scC#qW|2SNGrp-uAQ zp-qU7%hl{0`F6Pk@kdDdDV9aLCb?WLNiL^+y4m^4T6uiB9jG6tZ&}o&Z&`>d7g1>` zwFAFST`GD8?!tQLCGcz1<>Dpait{FFZ}qq84$((MJ7jHCC+a61=qIa0UQyOS0s`%n zQN>)6^j_>tPv`2ni$OdPaRp<}ipD*5m@%V%z_f9I4pnp;F}-KU8B@&lD<-!jyLmt3z% zc%yW)QPWPP6%%=5F2rdIbel}vD^|z^hWEalvb2tWYcqNGe(p8dKvgEcmp`U0#!vyE z{B`oLHZK;95?gZ8@P>kTqg{|^z6LpoPV^=EY>A8>Xu{Xdx%`@X3t#kN@-3-c?o>Ca zn_iO2an1KYaYzP=yRasnkY7u_{St8?FY)&U#TUOsZR~{}-t|HU5g%vaS%u+7aEmyC zA(j!J?I6AphcH4)?vVd=4{rVh)JOOXzI(Ml9`~ysRkc;9yNk-pi+G@-txDc_pBhph zh8Ex;pPl?=d{hN55#jz?F)FV9g-A~46NRZqm8+qfXv8eJU)~~5`HQ>Nht;t97{1l_ z;c9;@=1+DPR#X(q=iZ}6Lbl&m$x{=8ClNwv$z9YKDYjVczTy^}q8Mbm z-rHLkv^z_Kon6ysP3Q@h^88Y7K|?TtADr;YXWk3F)rW9H>@7Y=J*&utuXxah|Er6f z-n_!vvQSY)W!&x>6)-Axqb<+f;|ckrHSJCHr2%{&pdopTuW(#bp*LDuh?SSx!4KWp zE6~ow)Rbd&BiW&Li$vpPH4SnbMnzf+yAgAT&}G%3OY6m_G33TX96SbCH}Ja#9~ukV zP}2NQ`E>QsPd^jgtEaZjFt@Vfi`C~AbOjvNmQY9ejlHfZg=TYOP^m}jWGnS(S8!S) zK5gj7^MbVvzdwEYsBmTFZ_lH$rruE#*0trF#fw{|$^ z$2>=crivKwinYl`I~~Lc#dh>;1x!5!puLLrVG%mVgA5LC3NW4gAp)jJlEai>rozb& z7(Q(~G_2xC%InbEgij-6F0=!s<1o3gQ^H9rRQIfs2e%g>i*JDsw){S~l{A9&wY((( zC*{rL^Zbq(Zxq)>Jf28hadCZ_+g(;~o;UP`)UdL~Q4;fdV}5(Jx=@;}PUnv{HK})| z!+AVq^~DrVTKV?bs__uxERPGno29rsvy9Rm+B00jEPiLJQT6?bhSKXwZTJ;Wfr%x&UsZvUnW7@CAXItv( zCnkq@)H8`x)(==X^si6wtMV@^3$fkvp*QTeQ;%Y!j_*druz73pvUoH9oMKmuwc!iP74{H;CRKhNGQH|rN7UZll+I| z3pR`@=v(l-bY$}8=NFg{KLoSku29**2R*F*^HF?iQA_tvxa)`C#?Gc|6>FiG=LEw< zN~N@Mz)pa_FlUxjl>8`A*I78{(C3o3NeiDlRDSgEgRx8nMZ(ch@^`81zmQ|HlDlX>}O558(r*1Ptg<&WI7dIEO( z9{NH`5x$>t74&|rm_-gl*==YmlBbcx-zLgVinAI;UxL#pOO|qEDOZ*%%2Fk13ibBc zq%LmIxf1l*2re7C@C}K0mt?~(=EVBE&RUP?c>{)$Od&@4T%1yRzJNYR&2Y5-iMU>BDGd|M(NGgg=B+X zQ5VR#(sjvD^mRMUjrRN+<;YSbh0xrJvQ$Z$`q{cDbB=ywVN1^=)#@tCMfpY1h3X>9 zCDx*{g^wNm=)%^qk5nnWAfiRKODz1V%13%y7AC({S5`gJ)4K4Hm5(eeE3jQcb;;!g z=rZas2gTjcgu>PmrzIX&E0%Yx=UDg~N3Q2P>PJ^skFMW7aoGQ{g@85pJXm^`Dc%=I(mHKm*Wn9 zyiZc(A{SrgD$?Nx2=j_+!c_ymJbmU}@I5wmdn+wc#nVX!}MH?oC^!EJDDRVl#lM+FvJ}*CBRci81 z?=gE?4mxa6-OQzur0Bfij&h^kA8#xO+6qcz23zUmBj+m@j9Y)y;l1r;7DJn_EzlZi zh*mf&&${gHYo;WYP8=1|d-L@9vZ4#MO+0+@+V*Al9Xr);@RZ%Sz}M0|di40xmL;>= zyr%rx?w)z!dDktQRe?8sA6uX^$S;69F2UJ44q3vi zJA%0}5JQZORTRxw#p858n(qDn@q*;SkK{{_P}jY1{c^1_*KMq?8o1e$ zJmRJm)TH+hoN{4p!?Cw`_=C%*IB#1qMR7>Ha$|DA$MPkIsi&NM>cwc;`i-8O2CD1S zYu8;iaP-^F=Xy2`)HDuwrYyU`H*KZ(ri+q#IQ0O=&tcdBkse438$;@U+D(^ja4Ha= zX3}(&GJ1kEp_0aUa~;|)5AEi~_|UXkbeQ#U4J3hWDJtTlZ--cUG|UY`zt$o2Zt*b$ z3IrCV6SFMoeJRiFt#byAMzgdmuf*XfF-a?MbJ-Z&dyq1a+%Y;@8;R6Lk2Vz+6`5R4 zb5T*D$u-w*wU*hH8k@^y+xtg*nbm4PTz>PrSWKN4i~SBifo^i)`vUmvV4f>TtTpcR zzAWzama`JNziNgUk+wN`s0(d#NcS-!wlOF(9Tdl-4skL}TLk*lLBgRExD{WSqc1~A zpYx+_-U5euU4N15)mL3b{pxj&0_+}+?pxO9oqc_@RhtN1qUFjA^uWwr1p0#1x7%@0rB83u;_#wQNy?a{ z7)BK7U(nHuCgH-dF6u;Qghtefj&w~Bo?8$rF2;dHDAm&^C~12~$G&vT?m(Dwq@ta1 zl_N}*&?qHInYfc2#rUYed#*#q#Uis|O@23uK-p5E=)1R60LoZF;u5ePm^An;z;rlZ zP1`ARveTI}X~sv=I8HAit+7rg#ql(q5qpbel|DRyy(aB9g!$~!PHstlutqAK8V}p^ zcK)Br|A)Qz4v(Wc_s93l%oc55ZPQA-(iUk~y{x2N6-%zT_l_~mmThd~1~%0|D4`b< zh`B%@i35ayA%uix;D!(aP9qSUn}iz@(g-P+kN~;4SUdWDK4*3%*_d*l=jM5SfBY;< z=j_bv%$)bU=RI$K8*3AD&Uj=Aa!&qr@_XJgiD1WFsG$(5SYJYhm} zVWURg~bZ_H;{zK6@&?w$+?2+&>%|njgwXp4$W93(x1`OL7)v1iAQUL-L zIAoQnPO0dG=^Pj*J!okq3j>p&VUY+7IWK7%5dN@gq~KHYh>-PLGkJg{qb&Om{l%sO zP3m)3T=#9Q?TL2%M}K=P`snZ%9*I3RLri+3Oe~M+kL>-y5B7>V5&esA=+CHssD3FN zeu>;;hv|ClLUlK=lQ|to;RSxF2NjU7GeW!Yd8$9Zqh!Rg7pU8OL4gvG-@6yz+gtpe zk(H9)rT!F>oOWU1)uIYi`BCBLO6CRF!cT>4&}Yh-&r)xM#F?TspOHCsK*1wd5^bk+ zc@E-8xjaIL#yVP2x#t*GRC<03_;~%t zw@GFX~uy$8#Uq=fPY_#*tF7da{ZvAmFGuo7>@3=_ZcuV1D7j@`g z->cML)KQEL5UgUFR zc63ld43zN=G2jnn=sZmR;Sf~FOgTyWKRdw?_2kwtw7k8I4oxV+VycsnvzFkb19q%iLfAK#;-8sCuE^mIi zB4`tR4K781FLg&z_?PcmrkWK+*;IH`Q|2m{wWjob<@xd|HD&eMY)(s96*iCAX>&)M z@ca-bj@+&;)6M|0TxIAlOD}8eSq{8>Sh845jLDvXU;)~esY74}R@xv8eF1l#k~X2# zbBrEi_8Q}?Z?uP4%Hpw#Vh`{LJ4C()Y?!YbT7*oMu(pYC&=<7k)!?MU;mI2-9FB^O zlMfdromS;^qSDY=`g_80)_J|XXNzB)-Pd>iIm`xm&iQ?PXX~|R_cDlfZwcvE+cMgEe{}oSM)!K$c$^nR%I&a z&x=?)^fz>XhIW`{7)}Hh&`gj8s+j=M<~N6WX!t=Iwf#HpxzLG*wa-A!Rh8dhptT@?fH?yc?2nF5le+r(aMC zRf<~!Lfv}p@Ke_$Y}*&FSiI%3{uTYoQmg*N6<3HE*3a}T+wGs+&@kD*ds(5%*3sYJ zLH&MUfqrJi}TXC3W<_!qD9jP?-7T0G`2 z_VDs~YnVS7D}VAC{)F@4yc&Of{-3__jX%wQz2)}XTgLU((?4*?I8C^v5Hoh2Mt}M$ zQ)G<$EzU9R^OB!I{3Ft=A^N)LaRku|EIf0b2U9P;sBO@0jSuMUtpjnftQSJo)aD*# zXW?e0|MaRd{gx?xt%`=&^<`ZxF8AAgAgp-q$oa^3dFe5pOI;Ns4jCKm$8+nbUGD_^q0HY2oJ1=KNpFU5#C0X}n%BH~07J zH`pVah$kb@ns#V!X?1vRw3N}A+&*!ep%E75Gvw@Xb;aF{C@vFJo2oX}YGQ3Y6ygut7%t8-a@{i0=9irrO3GFTL=;vjF zov?P~8uVq8{nxsFSLUg%wu%)yl>X*dy`fmU{z4?9*QR@W#lpZeGv1Ghh!oQ)BadqV z4W4{}3+?HYIK~5p_H;8i0pUfm2uwceViesoGqCOSLlXbF(qFi>IAF051J-LZ5&Z=@ z;F%u|C_MYZk$GBHJ9qTicrKqW!D2`Rzj^B@TMZXazAj?s8mESA8!rh*2Z$0I6YvGs5 z=RAn#Of#P2&lR6j2R#LNQYcChX48$hn*;j=9)P?}c$jhrAEUo4+T>%Hq-krH`fvO7 zFT;d#H!?i^2G7yo*8e{KIj)hr@tg_9b4HEN$OYGxfkR6;G?5vl!Xfp)Km0c8^&dA@ zjK?){7oO8^JZGFu9ZDBzRQE7TR3`nzheKuY#|;(p!+cCXMn0y+n3h{iU&dyh1N#Z? z6U-=fm^x@QEzoNM6PWUce*+QASOQ%8CXy$BIdf$&$XhW z2tGi+$gik1Vvzbo=ttFjI-f-dVjjvl>|g0jHT?;pZM0aCqd$lat_o%0YkBVGH-B>b z>eaXZ#Aw8jrzzTJ_Y8Of6IInO)DCl5)RIJ*hltgiY;y!B_QtG%i0TTY{8sa6yQ&kl zs;k}UInGz!THoyL^k~A;pb6DcSswQL9Tu;pz6t?+LBGYUILxZ*3Tu`!YemT7wZ(nm zGJ9iUvO`mZs@CKkPIIie$5o#2mfI#adeutRUT*hkwXLHs$9MEOebzEXwV16Lk0WeN zo)Jo(6)l@lVGn3Fw^u7`t=2s0MqjWhs#(kJPUVbP?O@y{tX8i>C=N#|i~^6YGR0F9 zQ38=zwAyPC!fJO`_*|Omtc!cgLt&S@F%Yqrm!kl9I1@-(guBdX71WnTYvCNIZSZC5 zp`wKvsSe*H_ZS$tMed_+P#|i8z1#uvnVc35VYXV;JgO07sLu}n>YKk#il$`yP5WnT z>Z-PA+GXD>yj!sCd^XgQsnttrmKIpt#Fgm$pvt0FkvL-_Qa0 z4V7|<=MgipgU0!i4->UF6))l8XzBCM&&|cpJ;l$mDoa0Tl;I*kiHZ(TPco9i)FXS0 zSBCls$1>;{X`fhwuolM*{lF0+6X4*EcG@>X>^j!5t?HX}&>gP8U(I*$;Bdte2Xv=+ z_vl0LmDiO1h9Q0re~|3@LqCvCZ5lZZajc9Z_c3x8VdYYFiy0wb&Cwc?BxOpDyQuGA zd=#{-!e{k~#O-h_tL_@Ussm|-p4abD&(>V=Ku1R)UYMo-?0NB)kom?KLB{$Sn=s>5 zU@})g0L4Z}f8jLXP8Co9TpJ>@u^&>GNG%98(ex6=oZ%>sPWSkPY6$t$)$opg?@UF~I4!%ZmH7IlO?!ktB(cI9lI}hqkxJ@_rHyjl28nD(j z0cP-y-aa%W_5g+i<4|E5zJZIlkC?&JJPMxXXV5z|Au8kq)0w6pJP8*d3(67lbvzJB z5SAm+#DW3KXy6bIQ`V2;BF5YpqF5Vbj`re_1Hh=#xdse!63#6gJu(wVPR5Z_Mz20? z^xW|{$7n5nYZui42>>J`-(Vtoy|Tv_r&ErhHCTwtnQ&tT+FrD$p=F|sZBz#o-A+&@ zNV=hjBUAA=FXf#_F)E})1eEJ?(4b!f>tI7irQ4^>Vmsk0( z;ITUA-BEverT)6VNv07Mq`hqkJi=jlD>F z47tz1kZCwJTh7mN^j66pq9bHD=H!pf6(_H-L&IuEM1mc;i7>%NZX!E!6Tx-B$gi$USK8$IA=^9yM{Q{55p9vsPU2wJiiOTDa1S_2dr%-F zi%=jsUW?ae(q`ZuRwDQpfqFzpmPTHIGNQluO?)LBkcsk)G(uz})qNSSS+9 zg<|If5{W?eJ+VgoNt`luhW;DyYQLE^O$*G_f21$he>6);+`oRc%{8$y7Ia(Hzt@C= zH8sK9k2ZFPst5C334diwJ-xd+9E|@wSX~|LsnK7FH&k!v`Um3<{&C&zTON7jmfgEA zy81svhyJ7gxcVY-<*@!+{XL628gQ0RtkNv1cspFp@BgH8L(ShiJCUl7^a)EJeD0On zm4MY}5yvJ43OOHTm=9p9k!`yS^HGNRD8qa}Esy!g1CR*-G*OhFC1&`589v;}2h4y5 z%)l-mFasMozC#6m2H&COune@iLDFg-Em^uqlw_<6t41+30%l5jL%>^CX4a#Z3*1{- zunndk%$&4qNl$%9qDW4KndCXEm{MDtTAxzveY=(|=_|aqHWrIQo|_+0|coZ`qmW-nHb7SZ~cAw{JiF zbGL3*oJ*E0Is3e&g?9&cFJCg@kI{TB;Ky9{<=O=hi&%&324rQz*rwq3IE=)Pu@MG|K4wa|uYsP86?=zy=X zqW%1HcCE}!J@>ME2M53W>2s#`tUBwQbCKU=Vz#9*k!fg|n4G$;YI3&IWA*ekbtGKL z&W1@&&DPW~F&5sWZksmK+_L1XNxkQO>Y|62EqnN)Po3L4>8vF!=9w+vs?+K2TzcEQ zaL??n4v*D6p|Q21qP>2SLn~`&oYt82FW3UUUIa&;S8s!#F=L;bOfwmDX9ZLYrpa2| z#Hp<$BW2hVY1-n#_Mv4U3pMAo$wko8-q^yNb1+@eC3*n1F2=11q^E(uG&Ba-i4b&W z7#S(OCetE#<7qc;-t&z9&!?47@7atGPYc^K`p%~QCj1w+r=Om&ZrzNhpT6XoXT-fv zPv5X%`qNKe`ps`%s-G-Qh&MLI^}C}@aDhZ@(8y!zJ=)b63$x5zOf$EUwUAWZj``&X z_~ta)v8CRgGf3WrBXFZ-nY4(EHf2&0W}5*OL|Rk;hCpHcF0K^vI7ZHJ0|)|NB{1kk z>O#v(RCU27k!V7(b(HUdt}-ayY9MKHO;Km4-m@>N|2n#FpIEU^|9Uu)2v@}8!lV0+ z-?y($-DJLF#^DF!Asnj+#XqmE8omcl^g<5%0(dna_A~P5QUeHAPlf}*JJSqi05KC# z1!$L7R=T_a@1XwAg@vn;Uc@pnk*JC3SKU>3OL;6+ZMRR?|409WvU7p3PD)nQ)fMje zl715arJ7zFxlMgV+l=M10DR0@Ph$6AdP@$vuvlf=FmGzmK-_&~yy3iyd= zX+@t*b4dtar@4e7h4a8AEh~NzFFy$@H-?R49_~9yuEJ%-9xwOveRR#l(vhZg zE2KpH!0DDJ^D>V(&d5*l3-k=+PbUzN#)ldhNpRkRAtUMA-MLL^i&gMbou7A9#2S93RXVDy<(6~Q zVAKUEtudWl(AL$^?5+9qr=5z`snt~77mV81TJ-6DkK)zVs19nupE1SNw~=RQwrLlt zeE?2oKv|QvwK)J}7a-h)BZmErnUDy_$zX422rwk3x!k`~m`}qWnlno#)9_~?>r13( zoCfpm&=@|5+l0_g;*JgJ9f^JE=nR0v)0z4v*s4PWKfE7u*cDLsL1r?=9u0HCpcxJi zNMqDVO&DbIoO0dLTTi+*Goin-ZfT&Qs9|q#nq3Z`J%7WDp|;*Y)3nKR6DzrA95=EA`E6HW?N*tdq!X8+ zAf|~;!;oQm1$ASNsUX0C{Q&y{43$N<7$2OM4F{RlBML!zm1v5Nq%0_#v{Ae8WjP`t^Jy;!!XCuX4dk4#fWqimUWkrC7Ra$R+O~`Zu z;OCF)UmI~uo@|e-?SD(1*T1%cA1c;Pcx%D-ow=OmIsCU=Zs+!4&B2d{|E785M=W>L zOZoH26!@^t0zI*Vsw9~;DTWUiCB1PO0Y#7{A$OMQoKlc7vOymJe3QjUI_qeU5hg}- zUD;^QKH3Y7_9_7Ga=GxUM|<(&S>Rx&AIYDrsk)3+MSinHP=!xK9W7X+Kv2&<`^%Ts zTvBnFux6U?c=gBPv=?92uNxj24~vQ?*w7e1-V$7@M`7?W|IK(26jy)33E$YW2fVL!$I1GCpP^4adcYd$ zKR=n--r;!JSmfQ;YSY*A#u1dN@j~UiVt^;pxWZ`A)VB}gz zvBm*#0S>EH>J1*-8??FKa5v)D7TkMKSt*N%q2%=oLvMuK?|VG&yF=<_(8ufe zXju-I=SRnGR2!+lhz;KWLVD?yV5i)H7L>s|b+r$=1d zmkR4U(Me92p#QR`M_JO>w?CgRh@PIpUAYq~91{l0LaXzyDeVK(CQO)CQ78KHv-9|0 z*fThFU|{Otg}GThJ+pF_4VyYU)o%???CjjM;g4gm34KD?z?ZU!!|)IzqyQz-2AcX= zg2>1NeUEHZU-4Kz}YbtG9PnPC29hxWU2W`Y-I6*@ORu z@CV?dn2sNLN?W1AE{8P(3w9i6!fh`O+&1=7Y6Iy-LkggwM|+;Z5=-1C#v9@V>8PQ( zq*rCpswfRwP-=~(kANad-B5Ua-BnkuQ{ro`zrJwc)Dupas>GT8VcON}l-T;KuU^k2 z66$_tg_yo-)pR5UIDyrg>UjtW|7(lFNlHs;!kUNM#qWhtaj{Me9+6)-SD=+rPY@t88__X{YVo zTUa_{?b;d2H2x)?B6q$V+uXwnsizc=Q3iSfgDKH$ zIkqZ{$dGs(=#dy=?K*_`xT&i8h&M-_SA>!l*4})&GKB*#{QK!QtAANDv+(a6xH4tt zn$p;w#=I4d92;HhI5rQ)MhBS?-r2}FXaX`)?L;$wsYm02p^Eb0I>>>TH%feRY_tnt zTCqlH1)+T@p^5h9dPl&Na#z~j(3Yqxd%iwRtWXl`uDNDi;a6*~TX5nuC2`z|CmvV$)wB~ATqk}vwPsTE8{cqv5>?Zc zR$TMzb=O|IZu$u)Ojl~ST-V85$-?x~$W!X;+DgbKtle9(te1mhrUA%^8>%SwFf+_{ zp;+rsBq#~%7j4ZfB#!VlXruBu6NNpsvdpHc|E7rM3ZGl(|E<5HIo)MtWoBhzCZqp2 zY_ogk2-lP5GOxC>45=^lC03Ct*T1KK$Lz5on&kIexB7#D<)ZBsgeA&(Y8ZJ;yFw+8 z*G379^TaaVoF~H~g3p)<>IaB-P%cXhbQgQv#!DVMl!V9673WOO6)jbU&5C)&$Lu9W zT_=ILqKl-|;$yT&EWK25j!Ic}Is+D^LL8W#sH&=c{&`28rz$a9pDvPxUol&XlGt#~ z!qw9`O`Njns~27){xB_)j$^i5o^*JI-gMnMCCPc^JQaR9ef8?;>yRl$LCw`iAUn~9 z(`?!ZTmuZa5?e5alI(;emcT}?N7{%Ekc}}#B+X=M6T~AFKSl7JR?15$@D*Hx#y(Jn z9_3Pg5s6svMR+-kk{RYP9@`9S=wCDy@=Nj11U~UqyLb(0)7X8^d*KJVJ8?IfjdS>C(S*usi5?|3*Y`9K&SPao_3bDfb(&G6@udm7mND+)@L^;u&D&DH6_O3;YZ`3pTS}<+Nf}kLUCIdZw6J^a>CXU z7RJ6%7IUY3zKBOP_vx+`ig-DhwrKvUxUX>U!zX-A&afu*NR7{4rm5wXHQtBy$FCBL z%C*je zi4c^n#FsF=Z&d1!jl6}_EAc!ipW%mKcvZmwSd@B^?7t{sB`_XJ5p;y(HY4d^rdyGg za;g6;Cu^x1v>%cJY`x%7!ie)`8UnCauC6jOGJtG#^lwqMOyvuyO1(CkN=3ylDpMPV zf39YJvZJ{fNi~#r22GKDpmEvs${b2KD|+0_2!#^Ep6!rOzeQI zQSBX2=>SxW>IL0^3ab%Q6>i4`d~uGHT6C5r;67K0J~?i}A|s(f{-slD+jzd0P|0#0 z<&A=XN=o*+02QM&LNm^`%bPp#g&JxFjEyl5yORng;FAMr;vKcM@w!<%tLMdT`y{Zs zVsBkE5u5eZWM@X7_P>GKE7G5{giAC3@3Cq2zZ{!N`6CQYu>^4=VZkTEw6*bQGrEuRRQg@#B?b#&V{hbtQ0vc9@9QL|->(_LA;o@<}@ z`4hl7FuG<3n4NrV)%F8Fdn7XbU#wqQzl?rF|FZSVN~F@h3Z@U%3nI+$88}a^ta|iON208{dg_ZWPKBkP zK2^xG3SWQb;0ZIP9C{F`>N7%oEcB9MT&a;Ao?0X5(m+c6Xc;eM_;VpPUwU&H-cj8? zKRA@EHa8eMyfCKS6bl~yMlc5T9#g{Z-5ZSQhYGLKXJ1L{hoqttu?8boXm`szrF;+W zZ0)9RJ_-5KDj&nld`!T>N4KH}uM@f7Sz$9b67)Bi8l`08z!9St$MsCwe*mP~=wWvQ zY0h#+$=M|3O&sWb&}d9$DUHM>A&NqI2*)T?B+zF{oe13QH(w4&RJMMVn_ShF019Sv))*wVPB_4`*`du8E=!r=?%YS&)5 zIn&kFEEZjP*%g>)_#_~9sRNkl4he$U=ncvq{ksg`@&W9BDeQ!$N+zWp zlDdsK7+?~=1L!xRrN7Qhv@-z!Gx|%&8?qWu8c-+|uw$%8w+|i%U=tuDgY}1BF5G@g z75C(sK^2;GDHTk>?qBM64XSFh2t?{)LDbcip&xbnuR{?BabXSWFHPdd4I9>W+bYe$?!=X58zfYX>fj;RFW0?t03)qBPY2~EYLtPL3@w)(pk{?V^9-(Aij-#z;iA=I; zDeBf2b=907gJQR$HI(|~Bgn3?r4rwTmd*?OOa(rUt!77;iU?Pzs1!+wnLqT+|K}&;Et0mKF&U^RyTHV*UExxnY4_|k- zuhajG-|G94>T2znyI|e=bNXkWJw5Ap2=y!bd=~$+feznU*AK5d%cr@obhr8T3C$La zcTZj0Kl|3*XD*vW#S&x@;5PS#6pZzVqowas8L(TCyzvywLMe_G`H+C`N^yRu-^;#a ze3sQWTS);Bkpq~v!owsTx1x_Xhui0%C0nhT!$AyXynl0Ez$ZzC+rIYYvRL4If!KBW zv)9Rv>gwoUzw@5Q@7Xmpv01-Zh%N4*v9|=>Vv7<=FW$a59a5Lt4+bmLq?!zVrlR6A zL3GrL;6crmscnh}gNge3~pW*LSQS2E@yn(pSXjW2JC#3HheA$phutS5gbJ0+h%*rjK z8i2kvkwG0gI-1~@np9HUFseDxuThn@9PZxQ+=GRC56XYT4=PWQ8al5Uo_!Uw?0>zu zmn&x>+5Wq{X83i)<_!(u5A(Wbv%wffi#O;3>~_msn?`Mr8O+dSl^g{nb8C@(s6@|5 zde@9zTE2EO-~p;=NXJqz!x*X1tOpL6kFFIbEiwH^SBqnQ3u&9dZqu!3EiAdxqJO6? z=a0qwxi;mTHXdoayQ4c0jRv|q!l)~<38h^2wpIJY2nurOqODDNq^U`Cwa5I!VPCbZ z(_$X2!N6F68c4qlrmvAFF{*BmPbua5t3c04&X7URn3@E7hKiecB4|i8EUsiOXmuu0 z=f2rQ&V=?$@*@OSsd^J7Zi8Fld>e79veO`e1MLjo7gOb^3ZPG z$xFn$yB|7On5H~+a7aG{clTyC;$8d|h-3O#xUr@+4I2jEiINhM`hOJM=)+HIJt++> z*Pjq>sG}fRMY>Cf;yNMRI0Ys6)!{SY$CmB_9|bo!2&QCxN35xjfE)b&@$bW-#udi} zbp+Hf??>QU70?LTzmLQ=18U3|osdu)!z@|~t0Yw>oD%pHm!D|2A+%(^gJWSCaVsuw zMyndJ%)lk`y)>K>$B0wB5vL*fp*RJ4!(Eg0FVP+on}|!qDukOH1DQ%l1XPlAF-G0F7ykrS$hwP3|9>1{35+HGR+t!w9?#9rXPM3 zr=w7KMd1ky`e1khN8t$!M^Lyoe&l+I7w6ru8S~}_p&~0w4EV4aXLUeXa3FvrZ18_E z0yB=9cSOJ_PYqp??#(q^qB}2X$n~a=0hYqOpdQO7PhQFtX-g+hUj9M&81xs?;gKuC z$hSI1e^D6#+czOqg3kx3E{ogO0e?yreHlrV!eBoVO0Y2{q7fti4(cjkK7SGY*x|1E+HAy^Ojks-{^)vqWWh15z2b zgjtEo@P?$sG*SXL@hA!ai4UVYfL+P=%1p1T55f*XSRgIZ{i<*;cdKJ=W%_pUt^^zy z9bA6&`iufJY10GaAxF)!vFoP*FJpLP@FKA+DG#Vu299DVEWDYNPy`j1pAG2ISA`I) z|1bzLPq@KYFn2KBA9*u_C1+cj3OaN}@%h8xg=7>+0nB2a(oyS}sP@9p3&yrTbnt~^ z0t>kkvj_JMjo}$G7mR#c`?7W_#5(fN%x?`=Pwp(>Mvn-{HK&tq0iRuj#df8wP=^E) zneKc-oU!%o|Ge|0lkWUaqfyeQ{_fcwJD%mA(@9b>DVRJh+ctU$ul#hcaS5(_2~5ht zAv|^byD(@8EHe{t(@Fw<3&5$PhKpWpWJe8ljDjXtDeE?V)cXdlVOBT<8(=v3ebifL z!3ONbJ0CpwQExqz#Shtqp&>+s{b1ya+V3GV=iptv$ndV7j{T0+X7LFxSdJIv4tN}n zunI`I={QIai1ffY>KR&@8Ll5gZUqUXF@zWSOs%*GBZHtzF9j6#ghx8!%Ap5f11D;R z=uuA2cXi@#HY`2W;n!|WhC^ngx`&($_jRPs0;`BtdoD4(e}yZ!?YMedQ(LY!t$#CJ z+uf3Dnlkj+Npml1nCuEJPF>tuUNwEkIWJY3&1TD0`Y-d@GxpziCPJ3;q4jrd4D^Xx z&RV~~q0Ma>>~G2h-gzgGX_}I6nS14DFG}0ZI|r*Ee=jcc41Kn?$y)!@){cvxdg|ix zo?v-khgh%QwgUq57`&Pxv-+MyB!E@w)d7P%rO@JdkxW%&7%&tHfA}bkRKW~ZkQxGc zp(u^BwYgsZ^@M)?cTHurwI4dd--y@J^&DuBgwN5JTOm|^M*G>O5~1eF1E zp<^@DvdGbf6)sX``~#h%@)k6(+aa`p%(?I5f7HT~ty|w-Z3uI~RQ$}-zpfu50TiZl z@$9^|4CXUDoBJ;LPdu9oiXJ><-3_x^C0C7+PzhFN8M&Fv1WPZ|*$tg2qOlNL&sfiF zxCmuCseM$-piDSN;xzr z*^oJj&&UA)y$TDL;%5*Bew+^=HJ7ti)xwsl8PiX3xYRP$VU23$g}W*=rz@#xAxrt9 zUZ+zY|DUzjuEqc5Jl5whj@gWBUCyL--4Qpjjon?{zfJ#%{*!G>R;*aEO*Dxn_M#&B zwR4>z70Dz{nLeXR4LVaUi*}<@v1_4=M}vKf%GIDF<+N)0Gt>FpwLu*7X~wb9>uSe; zee|A^XEW^u&Q!v8+X?L(`O>6mmr*y*5MZGbfo_9n;|0o^pb7DSXICTzQ*b1PBgrF< zz$*?a6JQ*(9U9f0C?gwqPoBYxuf%YMbwrAe%*4h7ys@#hNc%LH0=3hcf!GF{EW}_l z^ifR$X(XG!q3_o(^VpHTy7}PHzC(xh4Shr3W%sB!_HE@={j!4xm3NRE_z-j-hYlg= z8+m!JIrwcmbE23>$6AKb`ms0?)UbPijE2pE39>0#Q8~l08XL2~>pF3T;gjXU73>-3 zQXH!dW2NkGe3cwH^}%c@w^BZh7~?}tb4E^MaDMDZ-KjhWH-PkWa&+Asp1!Z}YH@Uf z`!K%y^g9rmvRkov?6)hg7XB$tD!i)AFb25$;K4)skjI|S+dT_0K6T{YktfYI?fckb zA}}0$k*u8sS}l%RH zeAB*8vcl{~LFr+20Bg9^^N;qbi#-Z`PmtNdW5`)&aqE)ph1zZ-v7=GZ8n!jmBR)o& zwICF#NV0Zho;7VqADLEN6$#(}Ww*DgYKBfdAx7YSqo(zXZ-{mlqyam08NAElFfz`*xs8skJ%n zHmB8r9COGZ=dioNZV)Zi)G=~4eAs3JZTeB~>+43`8GV5#VPI7F(}S4|UO?6&tdeNX zGG0c{5Xz&dTSy>~=j;G}O(>o{fLoTX<5HPS?lO)EGu9C!2Mu9~xzOlm#AV4~Ttb&z zH!WRUsNHD$(dLSuIjQ_Sk$Vn^yUgfs7`%jkoWg0G+h!AI2LW3~m}S58V+yB`;#~Zj zCs`fLcAc$XCU&3QbxKYw9zkN(!NT1GE1D-XDW~f*tu?`qkpBUHOjoyjb#& z!TQzu>ecoA{q@S~`oWf!{e`QO&anjXvk`eJAnW|c$8HE(F~O} zv6U)I`WQ2`&zJ#F2_y3-^uH|6#8EJ(F^e=Ysd3nRM3#KyENX>MJ~>#1RAzH#*aO{# ztEUyNcH6C@-{!Z92^RPn_S?#B`l5zxCX;R06%5*|Vo^tVnFDQAo5SmMD7B8HOG!E$ zgbZS?c-pGLdmj*jbo>;;;| zW8ceX;E#T2tUuN}_R&v%p7hYLdA*3;y#e;@6B%+~_|C%IgsC9M!dS5|^L|!f*G95O z=}N~%tbwkPk`WV1EP;W-0$-uxgP}Ht{-##WA<7WJ76CJ$H9@`^oD0+tA8DO}=5R=y zG}sZH(ojDSSA-c0%Z!VJW>E5DX^sn#2=M+- zK;~h#Lk~UUF*FD`w6YOrgXTmXHohb5ZpstS_AczzMPIopW;R%pUoEV9IB9PXGu5ve zBik$d!?T4Selw$XIBgSB30+s0w)qmF8*dCHe73ayStiTGKQx7Vizd0!_*P&tgCGuV zrrAslP(~wD6DUdq9dROtOr@ORIf@NPh6r(EV$x?s%^u=p>*DsnlGqU9ArAxnf)*Nm4 z!eh;qVmdf-Kz$Qy&4YLDCb=kTFsOek(GadPS~bTk5M%lUi~!uaq0~SsR-hk85Qfei z^hExSF*?dqtvP*ruC;%0KNN<0a;q!%b8#HpwM5^(WY;cj)BMWSxoj54=VK}9Gjgpo z)D7X(60v6qowilzTb_Wv#e(;xS8++(K`Dilz<94Q8wqze?sCkAeYB<3u(I>*;OJ+8 zRw;pKnKV+;NGYu=XNHY_uX-76?!&wBS5qG)#n*rTI%*5KRu+%5gh@~}R0VbqC+w!I@L>3#m97G#> zIf*Q7Ko+yqEw*7877T|xE(sjDf@-upEaIQPvLIF{3?Ws^gGHSs0q}O5^G|#cTkNl*@Y}>?<0Gf@pqSx+3OB3?Ejmr zv#Gu*8_lw7iOj4fv#TxH#cXWU5i>O#+!72*h`*Rp%&7)?zh7GqBIv^!p>CQHK9qsz zuNOkLu>_TyplxNUF>CaV5WiLKtEstEuPGdk$3>>*czr(tXWI1p_o?w<3>%9!qp+;z z_?k-<3;v4w8htB*XWGTG;i@7frccckcy@!#U)N?@V$=;Z)c9?XrK!s^Aglp+bnzh7 zZA8D3T3kO?I6ce_d?Py+!>I~P8KgF>Z(8QyAA~K2)CzC}r|d`m3oZ~phX5@g|3G6a zIV6&7En)KqFW`Q0L(p$~+Lj55J;97ER(Jp}9SgP}YzxK!L1nT(%FQRZ7irYqXEL?J z7vV7elSs%*4cM+5`J6UY+X78`AF>|x8~z^LX$+~KJgo^YPDz$+jJyQPe>0A|59707 zei+yfxu#l0d3LA|-AFP7m0foPtR6JY{m2g!D`vAj`kXP;I=B*5D={9?#)?4w1iK>g zEl#mle5QWTCiEZZo9rmn3yI*<4gF=R$hX?XE#fl`16D=TkWwpjUZ}ph96IRRP1T55 z7qGo9hm?bj5@Tz{*x(Rknjt|k14AcEK8-qQX2)m51O^9%`ylm+7*`W&8hP-`B{5NO zWn|=0egeNlM=H)`E)V_!jaiD)G`%vBQCC|0_S)vzmDzP*RGJ7cAf$#djts)Z58w^gGAnV7KzyEC$)xM(@TVFR zfVyE)cnpS62ZI`6$dl0L1|U$1hWYnrLe_@cwRPwF%x2&D>$HDswuUnI&p##Psd!X8 zX02J+U=8ST@p{18u&~Ce&w8}N6M8#)QiaP>o@+lfWLNx-(5daYa*M0tq-?ieS=}0+ zR^OC%eyX*y-i}s_|5XbHLpFx%{UvA%MIzc?hx+@ME0Zdn z$;!swXv~}Ngluk0PvNCB687}fSEd{liM-WqV}|Z6pfyuKYZgJ~+(uueHK6l-fHjSA zHfg>#j9eOY7VS8*Mrt10VNF8eT@aLZz?5j(fOan0G}`%S*PvZYo7q}Sox%4{#U3+3 z-g*gokPI=Q6et(J^aN5`l2fMmuokom`#e5n@F|J&&1kF9cA#C0wioSGv@#Q)q*4&^ zLv#|(Vo?R$u#T6uiE%wrJ4xBVR~tP^=(y>0q6eiPb5Q2HklqYxr_sK09^|P7rwI{n zZT0#rr2)L1O4Cs3cA-_n2LgvOvlk@qm}G)LZv#p3XU(c{o8gUUMW(%lwj)v*tl zPX+l59@I|5PSt>YfH7o@M|Q&VwFy#+;Xc@0?2YjsBqEZ4q80}f#C|K>{#q?bw`NZH zf2=x}pI2L69=mvP;km_^L~RxI=QUeCr?h`gvBeu^ExX{_3zpAliYc@2__lW1dCT=v zIv<-dWyRTNt&FbvPN(?7^7Hi1JKuT7>}js=NL7T>EiHAo3Dg$EKKDNOyhkOU7co_l zO|r{vOTIG=0Hw$Q%Gyv;jVh(oH4RBFb0*!4uH`powWeTr6kSV^{h+6N}NnLz>SSL&?6a4=(q6~8Mz2*U+(cAM+E&2`$Z3YX}Y&mYb8-I(_!+(`RRnXmD@wvylVJ&k(;; zx;I&2%982_I?C6M_;T@9;#%X0;tJ!5!&e$llsr3f1RFd%V*y!HI)RBWn_rALY3@=1^S`0%&4_tY7-&0S1Nq64;#1qQ*3-^-4R#xI~;cJvSiW0~S1omtyUUj#4_wFZ< zF?#IUAzUT>tVJ_ofDr9NA-r0~P4px0vEc<|xNeb0G6Gp?Q8wJ&7AqI?0#tXL&{V5 zQ+Q^y`w-r}UiE1wPJQ^{DN`PPSbqlRck{GU~$Fm|Z3^LxaT{Xm@zyL;a7 zP~_Cgk%hr@gu&N^!Pi0FGW-(5;OoNR>+t5Jg>k+;?HICPVH3Q&18xmlg0CwNV?`+F zMZXm`j!w)LcwdNV41{pQJP!ey1s`&1?6^okG&*b+bEU^7G*?w-V#8-1w+EI69gkn% zJ}VQkDppU#VzD_yW1w~KWk(sW>n z8iHFZm>^`Zg1_NZsh{^@?s_qIDRNYuxJQ@#0+drys(uoe2}uU1if2Fpxv4IE!3*9B z)$s7C9JgRvFXBIKMii}R4edlr8y$uCUP_0^l87`DqoF_y|3P(lGu@YXPL=1FJFy#u zhjE6n+6nEUtj!Verz;`{WlWG{P7X#Y(*B6UmQ~*@OpDm;6<*&^#N|Ag9rAfA>^1}m zse{3I&}~!2@PiBng6b!!WT{T&_Zf3;n|!~U}^`WLpnT6V@@Yj=06cGXX}6-u>Z(b^9FS*{jTibkivG(9o|FNp@eb3sp9;JKL_`QPfLBCB{ml&0j z2A{!fCWg9&lpu~H*fDT~&XY1;gmEJ3DCC&Yu2#Mo{RoZiga%=aID(=gNACm;Bpu_p zCPoeLt?_#a^ab1nw&Sm|W!#4u^y(fuSkz_(4b7Ikj4Fm$F*;!UxVQ(78&?veU~VB} zT-3`(aRgq_I6~v792b?kW8S3nlc3s{9Hx*OIs*i@;$AR*3`g&V922x8iR`#B96g|e z9J01){FroSaqwfKf>)`;VOgs{-G}#UGHrVj42Y$OEy&FUvQNbIV;pXbtPuzdW(Xs* z;z%Wq@JtJRB*^2(G0H}a$k-2w_Xan^QG$=bjl8(rjIVJss2UwDg&*ofAO=A_TH425VA=o}q8&OV=7Z7RSh_9~zy;N4GE#wY?*ZD1tD?F@F9yUq{a&be((0 zO&?HD-#1RBI$e9HG_JAPI&uO@dki1DO>*8I0E58^0BHGwRkXpr4y~cI!EP^g;H;pYu;H&(N;&88%$V zWl@i>!WSL6YD&@+&HqP2i`F%|I!S&9@jVHjveKAJ@hqoOs+@!3q~a{Y-&bmv$6X~IU`4orbEY?bIj>b;jANPefYuu?W}`u5xJ2+spo2a z*lZkFcPx_08l^IVTS5+=iqHD`}_{~ znS{HT%0x~gEy_%HiD}}kSR;bv%H4~4C30Ei{3D;IR^b+S6+9dG zF7@H+Z?G)wpeB??xwjg*A%Rmt(cL1txh*J<7v_pP^tIZ(!>_Ax<@1l~Prvr9Z@qT- zXG~NI-ltfb#R1FdcbSgURwP)|ZMRA)Kzd;8n9L+(=>5p7s6b=leHnS6Qf^f;O{J?vOka>`I6!fOR?{I=cqVP@pq>6}vb2P^i+Om_pQn_E0H6?(o7A zzcd7X36c@(6b_a6C4g>_p6f&Kmj@d}2C4AsI0i{ck1|LYr}Qns9#RLGetwLL?Th#QY#M}XA;y)izs12E<^jpsAz^~DWJ z##*EAMW4sWaURKS0#iPcyBvd}x_CT%im~OR@KNLRkT*gNm9xe{NI|w($wH2U(D3U9 zDCPROedKm6pnes6S84sA^fc@DLc0sCNKRcgm^x{VzC+xw=A>oo3tv!9sa3z4SUN|4 zNk24a`HCgtWpRkn6t^RGA)x+r+rB2?dj8R0QeOJN3mW$+$9=9Dcb__B3c-jh z@~!ZYqX+Tw2VRit^GhRN*PPG?o1y9*g^-jC&5(~#hYdtU#7BtJzc2J!i{QYh=!h)w8ESnQpa4Ht#&WHZ}3IS^2o% zib`Y8lvm)L-yeAa^71ASl1kI5*jBM{{XjjYEq5DxF(e=s5HUVLRe+dl=tw{W+#m;b zDPgfn26AlT7=yCxKwk<;q&KL9&CRJ~{VVYk5Q9)8juMb0{8ACptgPflxp%~0$xZTp z?2upt$t&s3hfz&lxw^zbA#MY{z^_QZXE!u?-NyS;$w#ivfoD6w$r{W8b8s>5X_4+y z|G{0pq`x)$kb5A7ZCeEM-3OJoG6RU9TUnSkR3ltN+NMR#!zb)gAH4v@P(`?_aNx8AfZJniylF2DSl zfYpDhqAC95f^y{_n;&^(^U(Fz5AVF>FMqj2bd5CuUN#5RKg#!p4T#juE`3o*)t5)e^t>3d}_?(OX{O60+g`M3OWwRG`cV3vyUMT$>e`GFG-;m>|kh?11 zi1FIw*N^oE3DgNnWCO|-M?Lcd{oCE$VxU8L_q0bIIc?o_*A1U_@gM(qvGT|D>#=ix zX5=Mvjrs=w$plgqvqSN7xUY_}3U z=3+AVl{I*pVb9_|$^Eh$Eo-f>LB9`uwkMMf7_DU<3cG;)mfzv&DGDX?3mfoxqH_1bHpv_!MW-5v~0{~_Qbps&TVV#S=N5h z6ko!tYO(CJbb9V!y6x`XJu{n5Uf3VD1kxA2MB@;8JPmDwpam=r67}fJw|T z^S>>1y`iiDpxKSg4|DfmhYzS4-c6D?g5c&rC~wkJ}g z9)|(ay|{<~$DaShQS*<)SccVzPEv?3zz7r$$e_j@9G$K2Wem*7l*c{h_QuFO z@me--bA;R_yl9zK_|eQo5-+MGUM$p?bS$fmR0*Ng_ReW+nAMADH&Gj}p8G=E?9NJk z%{=`)AVzEF`7>vpC$2h4b5sUwma_V6zM?|-BVzNZN_o;{4?sKjZ@`*NdTM9PW{p-) zIKQ6r&Jbtr>D@C6IFmEy7o5;Ia}QBwNrS~^Zk&~?A=)~8w)PX# z$>!%GlV{9IBxXsJsZko0jUrOl=m{i!0B5$TT2CAReiidSynm82QSfDU|Wz?2&~g0lEx zLSDx72zf~-62&QJMS-(%^z_lAyW!@4HqL$u2yqVDi_z{tdquIm+F-BErjz8`Yy=Ci zO=8wbxTqNyHK5I+&EnQPmPeoM31~OsQ9GsjavP4EgCpC~o-5BhZn_BVmH5m@Z^MtKtOYC6Q&1!^J0;ybtMKCNg+I=oe1%%I0CeifMf%cC;A0f{SVuwye6*;w@z~t& zv=`Cw+(>ptTjvEcXPm24yMjU2BB?vg8*@by18284<(IZ! zGRYtJT1hc8^9C}&!W(Bbow6_o%C&HH!>m33%r}8@!L6s!pj;VGux)j^w(+@2U|}*j zbNZx6RWh!u54zpKg|0xrwUE6!@lLjx-?`B8;;YI?}HC;eiYf&^@+PoYsthWTaEh<-ilFbmC7wFtX`mY5H1MS zK`n<{H5xl=L6PTxCT}vGBQi{>L%Rqm@mBOe&Cu&akHXB8a6z)0PL{n69GNG3)CDnx zhM~x$RJ0RtrFy0lE%`BW^W?#H0=h5-0nYPqM0y_O0S;PJ3{Ah`wjRe3<8h~=XDk?M zkPJU)YKH(s+=R9vYIvwWB}pzr%T2!;ExAOhWM`p0745v2o-oao-{R2)ILfOQq0Qoc z@O8rdPDO8{yygrX=eHO>!&lu^{CqarvngwpH1E)DO4U4TSE4u^ejsup_<=FV(hg1U zO~l3_r%Ew%a-9)kJa%=ROxT3)beloLQSiD6nOLFk;7>46C$p&+k7c!6w=XWdG4G5w z-#lZU_>aPkR;TK6h1|glduK<=f_Am>hPn=YVbvQv&CHI@EkYAt~!+O7QVJ%`}R4C`r^Xv zg)<|bfXf;5*lhZt^)|O%%+|8C_x5LAEEH0GeVG&8W|ViHToJB_njQL~2j+C?hc0Rz zaQjrNO|gC33ePD=l_Rj;>~V!Xj+3Zfgr2Vt_;()aq|jD$oN2&_B{n9VmbV6pPgD^a zHA1*jr%is<^?7|gUh}rB@NT?e&6=5^*xM5}UVmEO zU#ml?7jpf^?!P2swSVm+T}+LuXjkrt*=4+MTF>gN!dA z_q3QmlP*2kP}4wef3PnUdrrEUYW4UqG`O*3QwZ3KxmrJzhBdL?tdhdxr9) zZWU9-KM#LjEL^JpP24w8;(TD_Q`+t7^LQR@G)4}6tmLrBX#J-g{@Kau^XrCd){$1Q ze!<<^7qlMi3CyLHr8f#Kuk<4@G;w7h%K=b`YElRfSSus#tp|rHaLS2RX0ix*aR>aW zkj4`c3)>JodH-b@(0E{pU~K{ebtF@swfxlg-Oj+uN*3UW=W zVSVG?JehU3KeBo=eW&G6OYygBHy01_h{YR<=e+Qq=t?48IaKafW_!T9-)h}2 z>)xo)tS$uZT@FkLW2E%+V=gW#7g+VduooGz9flPdTPi6dY-$0E`XPO7!{J|{0Cq@A zAksJVA$_&Fra2aCuF-F)X|2J3{r2jHWU`?ede?VMleB+Vug5#FhWl32IS@*pq$nus zk+b}Oktb#R8}h9;$+u=Cjgj}4Dr=|YDVQt@^)9ax&}Bp87<3! zZj?u7;L{B98skRDzT`Lj#e;R&$zVJ{z(FR>6bbpRRN9&h(ollWRtpRi*hhkvaDXfY zKZipwU4(*`ekDuKdVZAg3J5;P=DTxdW77d-wc`)}IFw9=wAN5fP2rb?Uxt#^E@e?= zVIPkw&B~C))#CNW%PduJU9W0tvHEJ_<+kR=xYZd&Y<0>LY4E^$(CTwlI~;+EGIzA0 z!4|5G`qG)C+ZHW%I@2L-V*Jy$xYJ(H5xmSQ3rt z@|yU?J&W`C#XVS8DA6_YeeH|z+aoRcI67ifh%nN8{IBSU`p>WE_v@AVSFkGHcz)mS zyubgw_jmhN-1Ub04}WmKan}m<8xQCa{eH1b{6Q=~{GR8x_bk2p_wF~}bpQVDrT6^S z^Cs}fkM;jKEebp%eUu?Yz=b+FowOLqX)jr_FpIE`X*-&l>=h9=>{hMrNQI-mUi?7s zs;^IF#E-?xnPgLw-YI@)Zbp$J6G>8RUt=t)~PvAltWoTohb+#NzH+TUsD%gvX z)Nn@wY3Q`3lyCg)yz_+R&JD?=?d!oi`;_Si&l1+}2BS4YFhq-y|Arm67tV~%Z4mcN?Jmr|pY7c+EUfAk&F=k6 zjKTIRr#Jk`UK|)YILBAHq7uF_@ZSFbb@Pz43nPsee`vE9D+P>|4!k>Uorb3q3a%OmqwWGWalS6R>HS+V=RWJ8*0%GjAl2e;`Mm?FhS7bSy(iq zUc3mx8bYCgv*8!cyV&k=?q2rv(~^B`kx)8%TD7ci)=Q!)Vbq<{{x&(tr9Hch zXQv&~$+MW|ibT8~ai9Yk7|1Z(0*-#P15`aY&qSu!dOv*k@Cp=5ND>Dw31Vr`#pgbC z>UkkFc8)Y}-{`$dch9f(boE>$*o6 z-IRiY(9%r8D4Hv2#d_o*vU1Y0fIMyl7dWPkO1{~cuxaTc4n#75Kynaw9naEp?yyeJSj=bd)dCQTvoNh)kL^bYQ zJ#pu1+_@TeuEw45yqK6F0V?&1&dz>}F*JVU`V8JYbe{EfhP1Ajc=O^VUW_mGb&Ow# z7{v5V*>`VV7LA6Zu~@Y0M=X^6Mz$jRbr$+jUgN^4g9xymbul~J#vIw-XRprwLAWOS z-Yv|xBp53yiUniBMd9p2KmKj@n{3W+f6Us#g~jDfP358P^2*Bcv9%9m|Hy0)9A(bz z2ei^6cl;jdkd#54kZW3z_RhVq8$5^^AGC`B9OvLon!pTAwc2|R;JpVX-g^M=J%INf zz&H4(~YSJs<9?RH@+urvOIy&0x3OBp2UnCqs3B34RcXetF5`Hfw`!Gxga-p zq6X%o2Ik`CdThTHWNX@#)=0#;68Z*_!%+xuMh;(ga{E%$ibZnwo`wy^7B z9#70@vyDCmvOAbGG{?6wQFI{^0`JJo2c4=?#rC(dM@-BjRJ^38l z_gwZ#ChuSmyQ#c;tiYoe_pr;{9*fyzA>stbzCna02ojVEL1N{ZB&mIgS>w5lM7BOS9$Vie$j(nu3gEP~%6uq(u5b|kwzI|8`e!>Y%= z#UjEp?BM9L>^2++*==jG&t-op%r>A4N@0EYZb{_#rO4oZSQm6Z)`YfZJgr4?>M-<( zSle-WL?j!9MYCy1;4c~%X?(OG)rM5^2AznUMdm7+7b9~Ox#H0NRJqz!Dn-3Gjjmom zGGvj!LFxH`DV^+WL@^AgPmAmMXeOP~O8`j$iUQ^WmI6{fa+#v^ zGC;ZyEqSN=R{#=yn(LtSYCyVAEg;>W3~qFtgjPx?!yDa)3~xlY4v_NI15$beAl)Yo zNcYbGQocq&N+-J@-G^Ey-M<--%C`d2eMl&#`?LcRy$(R4(+Nm)x&VnzH|c&dkujjFN&klcca3RNXhp{n!)QdLqus!BSK@N=q4 zDpvwn07z9yBCmjP1wIA9H6^NFL7o#+WDwpv2NXkwJAHUU@-NOY5cM3<_R zu2YrL^%Os+Dy4I(Qld*$+6+ilO693asXSFFm8UAD{A7cr{H=hLpQ>^iAXO!$cLGv+ z7a*l~YjR@!REqVBY10Xqik-&)QCdnySvr{Ol~-PU_0^YOe)*MGUcv9^XaDgzyYJ_)lx##AavXAM<&4;r;(2q0HZpJ^d+trSLQ~I3bH7r0=*F(C_AbrggC$SHKSO0B< zc30GB`6VTJsWl&+>0YJ7oNqOoJCsW;`4+QzZ?eOTjcB#=0<(6Gbc+SotpUKjO1pO6 zp8i1G`az~$OB5bS?lqf1k4h8lP%hKpWwjIMdr>yuvbVNfgY63P(>dk06qq|eZRCTr zeu5S!7%H)M?bT8~hQT$4KT=3E+G?8`;tCAPD>aN(h%eT#K45b+4AE{eG*Z4b=G4+~eFh&N9L49K_AT<<%#OP}P*U{M7G}-2<_3O6b6mDLpkzI|HHVuOo&L4#Q zZ1tIj05Dx#qZJ2`r*Qj~AWWSQLE=n;eSmF%^ZEHAe!dit+WjixTumhALvc{R>Lz_u zhQ32c3h{;iIt4bDi4<}_0S;5l-$BSvemMIGo7QG?xomB13V{)Rq9QTr22jrS>EIW`?xt2B4UZHMs$nIdP4hO~2<-vi2h!Xs2b4?dMSdwexgb|7Fv% zk5GM&pBjHqIwoBJTg66N7mNvZt>Z;IV35Z*;;U0X43B@&Ps{NAJ{23IeIiCqI3K(G ziHWD_eA49@%Voxc3ABNLwX&(&WU>a#RZ|m?KLVD-)P7mAnDfmG8j)bpE>J?iQZ=Q>rX>i`{IlMi#rxY5|e? zl1;XQ5Q^I@RvVI<60%ix%UX6D@|(?g2(yC-^fx6$yAcG;i78cP2VJYWIv!E)by6 zkVe50KpHQ?fZB>R6@GaLY7!^sJVa_GCpizf>2c>*H7|;ouJF|(r&>&bTHv9Gcrqn$ z;nUo88M`}~Jjvu>OC)=0vG4@q_+7F%I~omzLQEJtkxXVUTg>E0vCEY`B`#W=y)=}Ie;#u*8FW`FsmKU1dsVS-!)TsOnx6tH>{$QCSpZBWk#$q@*^{T^trp z&F<(`)ykTVp1xM4G7&sG==53rvaMoXp|4>|Lp-6j7Q2f5v8M8hitV?4HHWM}(+M$l@`7)ojAb)8e?-TjI6Iz{2 zBAeIdswnVP1;%dAt;p{TrhI=cY77^mj3`SU`wCZ{oXwp%+txB|>{nK+FeHjLv$V2A zkxgt^blOk7C%c_1!Zz`qU~SlL6lCcccPtkH`w?iGp37V8Gf4syp2=^HAcxIJ?_h9@ ze>na}=|1UNFtrVe3+*IL27?qd*Jd~dtTpUnx%V43z!bP$<9>z_T^Gi|I#98wMYQ1R zbYRDjvfa=ErqEi@bj_!$0GB8U(j;s))V1kyB@O%3`H*}}awf^cbWWX_%FBR^5BDb5 zu&JQDK_fFAnfj5r1(1enf)`Q~T?8K1g%a}9CX40$aAuIPLYFXXt^&!Ou+y=zPVXwf zK*R`QB4X?=>4;raok zKJATSE7oZOv9%0qA-3C&r~OQGMn%LA_?MDD7~@cPQmqkUlRjd49>KqN@3+kZiv@}O z&M1hB**T6vyR*91cqYwgSh z{7bV4M%VTT-0za6L<)=;9ra%k)D@!qLzx# z!^}X>LMvG`cbgLOt|=k!8VKL`UM6%U6W<5@D!Ps6U!}lPH&>6Er+e6;$578qk)F?q zB=Q$U6M>3!B$BQO__9l^UfX}=hb9v6WkT2I2LlzENH|jwuv^*fvhj=p;x7u7c#(1J z^1SYJ?Zst=90PqR$XaK3_i!VL=;;vmUeR1j1FTS*^@0!-4&S-I} z*kKYqV;`=(Yfo=D7%FlG>`$AGlAK>!<@1*YERtMMn(&!zrl&%d)YfUMbX$~|+j`BM zT`v+PPy{TGA_|%*mTHOQ7LShhUUJu}Y1>k=QLvewc9-V(V*!gyB>nzUzgZGQ;pv*@ zqA+D!b=M`mB;S5G{-JbKx=}NTt|CE4--BK2t1o!)td~X;i9>QJt3#?Q=^GcYF^nlYzY1%3S)658I!&4 zu^W*$RA1pwS5~I|6=?WqZ)T(LT_;NFBt{Ph6Bs!lTTK@PMr{yoVdFoM?u6gJq)Da; z$U^OgUmpX+Bfi%;evp|TRWl*wx?lh>+oty7=V(EAA5b+ARVA7XKW_6Qb=sG?!{lUQ^Ti%((- z$IyqPc49KRX3Sld#XZbZpF%yPJVuiyu@yss@grUF`4Ngcl34*DJ)s?-geJi>KVPty}V=H?xV!mWw$#VtGwXu9$I& z;@OVT@8u>1Qy$j(NETZ-2k9-SKl}Lqz{dHsv;|dQg`J!vI9jEjg#5M`8rvSj)%U{{ z%c^PS8lTV6_`Dbi`c^b^@M&vK;J_E{0=}0%^APy^TnwG$vwc5IAu@zP!W3XrH6EZ4 z_=@(qi#Z0<5Q>vIs|2LZ1)cz&Kqb|H&bi17i5bFS+^-FSX%Yy@oRZEZ$uXUa0dorc z>EnKkkQgVUl@JpB2rPzxkLLefbtbeb;!}%?*Ss?&KjCh?_N@K| zPX($xjSC*itMnOdCdW|kuzN#gUb)X?GubyFN+bpcj0xdLLxta8(ID=|_!W+%%L9S( zbcEVecA+*#=$FG0j1^-`F`^(duIq(`%Y)`Q(U+aM!jkBY>Gl#|?|q%ao!P9T#5<#% z-3di#w&Ok59%uGhcy`V62!nz03>r1vxFHnIln0DqP96k_@aV#c#|rCD!bI(M6Ayu0 z=--YR)<|RG&FJ4NDgHzP^-zq1%yts$LPD2TrrBUDIJ3}I^jr}wrHaM{(o-3#SMT#g zWFpOvBr}3#kb7uhZ3>ZgX==8i7H+PZhY4yGlSnWI_-Iv4#ON(X_;+dSFAuKxOozwj zvE=8s9lC$^cW>pRD*HcAW51gLGh6!MhcAA$-DV4f+b*>Ymz53ME^P}3 zY_|40e)^dwpZtu9sG!35yNH$ded$H0X9b2BE!47Vq8u320Y;sOIWl3LW$1blJ&8va zfue~urlg+1AGa7Q2c=J+x-pZHh8j*CU9yn0`M7#lIXFE$G)v~OA&>Lhz4 zR8RCl=#8KSLBuR$BYDnB_kmBjD%~Ez{o@zh0`ohZ%yYvH9_Dmay54RI?%JL}Nw)!K-wOVN;~%l*PT zY)M1*Ib_P-JnQqbvtO8XXeMqa!-wE8>A&%9_2k2NqZHN_`2Rr;h_zZXMa=z`um z`Qd&3G&{3O&=EF>))c%xa;!~tX`2b3tU43azLMnk)D6#^i_O2)+v-@_XFXjxS_OFX zn#7)o@0lsW_qQ2kzo&C%N4{{|g`y-_B*$A2gt6n_md)&$WO8W*}D0|p5aM`&vyau1lmu<44HhE`=k+&m_WXhQ$R zo)Bh?{U-Y};rCNgtY0{OsxO=QB|8O*D!%`2362mL0h>Hcu?by?CUk|fOPZ<+3aXn*I4nKy@#_{X zy6*AwMxG$}#K_=x4$PTz;5&m|dp0j=E1h%2cZF;7PiLoM`D68qu77-FiU=pA^OAyn-O zYIEdc@OO2THu7os2fD}*zU)$b*`xS|wDx-lUvDvLXer=oz-2fnZT%a1^*5?;{GZpaYQsJX)@w$vMfxTbh8MGHXc=?054#%QfTpO3&6fjGE1|Tt z^kM&o&4gO80K)>&>qFjUCyt^?l3S|Y3(}M_?Lb40tNpmXSo_BRzLiD(#8x8}{=2pp zcFkl3{0Gf2SN?USNaK6PACosujvwY2KADISfyM{)g#DE(I~3(+=wun09GE$I%5}s`(g$ zDAqCt3=Hq&5Vi^jIZPIjbo|k;KpH2l#Uq`QLIae=(>}i($0|J|7UE#zGn^n?0JNEy zmc=M*IrI}Jlc~JVPp5Fmq8SYsdND*dR~HsmHBGb(Z8s zXJ>;=iOTY{aBp#@tST|u>Qikt@swh*rB1!4+Kcn5;^MvD@wvQ>v^TdQ3K)oc|Oaei3lXYd)kh+LiX07FArwhIkq*DSi`!u9L>cg^vU& zhYi}qa2}MCkK>pGn#jg;p}=V@9jg&d4K)H}W7uX$Cf25fe17TN#%%W1y;+&r&d2JF zH9hcdaL7)%qwav&EIN%q_p4nNiv)$jA$JAYwo}x_marCfOobj4ueg+Qu%*%Qu^)A5Ix(D=x{73G(^u-0a$JYre%Q z%b;Q@fR#~}uc+&?XG(d)-$cArKfp%OHcNio?ET4?xxBO+jed` zr(|>*tMC>$Ge<=A8Pl`oPV1%xsulA9l;v zqR4Rl(DHdfq1BdSv*uW`4&jj5Z5z8%ctWzsV>5);5Q=B4TzHd><)fxhy}|K2q-&)B zxFL#3=jj;8HyW-q{LJvC;XUC}ni_-KGi&gLIc)1NkEk@-Qw0RTa$}9*M9KQC!bsSh7>7IldpmgXoy< zgjR?TJPq~VK6$;1V<7rA9_ueS;EG&`adR0u?PXx-Wte1GhLAGL;99cGunWhPI6jZ# zP8>&ZJb~kBrM(<7huF^iODQ{h-_r%Ke}WIR~X?(PgcR>YKzC za7+&gu^vx;1)lsmye-i`hL1B*=Ap^7hbQ0bt;wtJOw!o_8t;?j^$qllM__7zZ3r(! z4Q&uQtnL71M;f^ZkeP_|TEb2u?IsO-4A{%S;6sS9n_}Y8$2J%O+9O3dMpt!jKm%Zt z_Q5CebWP@-g*y)Nm!7~D@U;63gD83K30+p-s!dRkM7|HSu1B7&TDgbujCx4?mvQY? zV?2hDls6>6b`Q4!ZZl&EAt+82ngymkGm~YzY;)!Y%gcjB6&OEEAs<#q z&9%C0Zd0`{WU>ohr_1Yg36khQR$L34or2xu78cu_cDK347cx48JeSk!bqca*m#rpm zDC9L+WxFdk7>|Rh)nN?zkoc6~^p_+W+GbT12fygFJ&d7#z#A>dl@oKjGP&4*Q!4V9 z#Jqq!na>$?-srO4>r40syd{M>a$;Ur8X0A|BrnfD_Cao~KQ~dxBDs>o>=rT0Z?~2Q z=}l}oW~{KH6?49@+ld`*-LpbIr`2hc=rLVh#vFna_W42!MZ3l6HjN#0oAgX}J2D}p z1KtOD#IV;F8WIJ&h2Ep0DA!}R+lj0v}l^c!tOA+A2<13b6rkRVvbc; z9iEX_mh15|Jm+LCSv+iZK4|iLD3{0_tMy!1zb%zygT}n-9HTRpz18Hw^MK9Kujzj` zp#_~}yZ`o|;1(VhelAwwZ=HCTBuNXU{nB%CoxDOmDF4A2Fb$ZlGQDZuVLoI&VcBGP z)4J4p+_uK{C%ezS$$qar>)7u&;Vg2_b?$XOoqwbMPXS-xj{KbbE%{Ftlo#wT+*{OCG#X3>&kx=bJP~|5G!%L>yeE>3 zY>GS{$rcBSGsUxt_ZGhfzn$eJ=a*bta-!rf(J9gO(f3L_OJ9qrv2C$?Vm~jlmbI5% zPY|}y>Rtk*0iqKx90t|OV_@zF0<~L!Mef4gWCqL z9XvAl!qD#Fyy497(&0VBw-0C653E0gzdvml*l=*e$&D|ZJG!}P%akq0M~ov^j~w6n z%r@h;qHWi2w{Ks#qkYHqJ6_ru*turs;qwjWui900LCytz7Y$wX-oZVVvySnD;lb^oj z;8#AYEwD2LSee$}6W`Y3puV4e%{bF>0fJgH$3@tQJ2_6VF_v?jJh9esoI-S<=ho<$ zA^2U$aSQPM9JgUP!e=>d2mU3FV`-J)TMz;exJv zW2XvsImcx~0lSXlSc}8%<~Rb#vWGYhiywQD<2FMHdxzt8Ly17^xab*j4W&YD$L1}& zMurE6wngrYs7a+RvT9ePV`%NV$oy^F*9>p2iL`Cp7|}9pjf||_x^`s8+BG$^S8mz5 zZS%<5{!Fh+2B$Y~k9Gt;3r)MUs7O6Y%y9POD!>wrx(zc=8 z2-5m-41&@|q>oI}Ka=_t(D`U7N}G7Lk6v4--EXV*WSfvr!CjNudwewKC%?@nr|!hO z?@mx!&A$M>!RhxO#@YWp#~|Kz7rw#}o^dt4!zO$WqP!XN)c7Z8EyOVX9lYWv{9_By z3fE1K827fEBVL zEN>+fLWC8w5*B5pEXK;9nwGN)R*8+^s#rB<&1w;67D5tBVKrAhHuy-h3~OXlU^ZyN zLRQ-Etd+H~cEnETWL>PA^|0w|2J2-r*(^4j^|3i@E}O^t*?hJD3yBwEsqtb2As9eJ zfu(F2Th7j5E7(f5imhgA*jl!Z4YDCN%+|9FY$IY4Y+{?)7Iq#RVOy~XZ#&z;cCz!? zE_MOCkX^(s#@KlY+rutpd)Z}dAG@6GXIHQT>`HbO`xLvHeHyE$KEtkIpJmq~G{EQB zb=X|*26iL+JUhg`z;0qUv%~C*>=t$_`x3j2-Om0WyMuk1eFZy1e3g9-p$@*zzQOKh zN7y&nJ?vZT+w40GyRNbO*im+j-OnCi53>Je53z^YBkX(Z`|MHn11ykzj6KetU{A8A z*wgHX>>2hf7BBw@E1REZFR&NcOYFz&C+w%}XY6J63TBvoj&KC8VaoP(_A7Rh{hGaj zrPgn{LC_-)6vdVkVT6+0f+Xz@$45-M|7&dMt#I zcQI6=0hoQ4Lg85s?d=@H3ZvH3C^}G0+cym-lWj?YYBD(i6@IQ=M|z5%*Kt_SVFQP0 z4l^7!a@eLrwOfbv-BQ=~kj?=5-^y)ahI!>>S)2rw7>N&l7POqNRtLOCUIlX#Lub$JZ=k)41 zy#`LNfzxT=bQ(CF22Q7e(`n#z8aSN>PAARjr1^8DIlVNem*(`+oL-vKOLKZ@PA|>r zWjMVIr18;*45!z~={0hCjhtR1r`O2oHFA25oL-|&PvLy8 zaK2YK-z!PIoWl8E;ry>~{#Q8vE1dro&i@MMe}(hE!uem}{I78SS2+JGoc|Th{|e`S zh4a6{`CsAuuW@?^S{FRU*Y_(aQ;^~|0|sT70&+(=YNIszry)n z;ry>~{#Q8vE1dro&i@MMe}(hE!uem}{I77nS2*7*obMIR_X_8Gh4a0_`Cj3CuW-Is zINvLr?-kDX3g>&JLFWgB^S{FRU*Y_(aQ;^~|0|sT70&+(=YNIszry)n;ry>~{#Q8v zE1dro&i@MMe}(hE!uem}{I78SS2+JGoc|Th{|e`Sh4a6{`CsAuuW@?^S{FRUzy$PTIGDLa=unMU#pz2RnFHc=WCVs>ni7OmGigC`CH}ut#bZW xIe#NigZ@68zg5oPD(7#N^S8?RTh;lyJJa25+^%%jD++;zwlNSr{lqc;_;CNj@5s?52~jceAK!mW{QrRh zNLxXLf%&JR-5*=#2ZlC8jyfiGMvedgXfgl*!U+I?XCB#qoSL|~5CQ;Dia#;f{{h4X zB*Wa%!VUm{nEK%Z|G*hsGn?JQ$oYrc1^E;6KYV`!KrC!M%>e+|pLWYL06@g1EKCpk zmS#q#KOEbiIQIVlm-y6a`Q!ZY75~`(^_dhJ6x77h&cy=&0H*zc*-xL$|B;ii+B%s0 z#6kUVfs1}nxtEbzZD-{1(=Jf|50CIafH;B5*c;jXaGI-s{B1w)k{5mvJ?`k>>;eF^ z{a08}BMXP_`9aHs$3 z1X2ZD1Cak0`eXgbPi?>e5S{<$mf?OVYE9HNqVG zp5;AlaVNMeYEZ&XWozm&FDCoLY{ccbZzv`wtuz`T+ziq}szh@oNJ*#Fxg36I;& z9(&op@vHyO9oOsX>794(yRThtm%;Z%XWe_JK<&G4;JY=lfuj`ky9s=MW&I9)XpkG+ zRmkM3#=Ns7gcmXHocw6YAo(g-N+atrelgPOt*rjlzsw)uuGsXh|9R@d8DT`i(ltk+(O{qT%yh` z^KDp_yR@%tzSAXNmlDpM#T_Hc>Onx3rGiDdI4?x&`>c@(ZFGM^*c>@u&>yu%r>%C3 z)@Kb)uFxq1era6T($*TW(T1kj+w%4HiZQ`;c=1nhg>O41Qyj8(0i*y;3 z0kvz0vAqPT_lG!2j?MA5!!K%cIYPrLsXSSgHMG5Tn4{!4ts>3lA^R@U#JMVe@%BRYG86on%2TRK5ncL{` zp+XnF4OLgJ%vGsOO$qf&tvnjPYK`1B(64cVyGG@`SqaCI=0Uhht&AA$!$zvHN$!uD zG!;+n$EkyQ5Zw1pvf|)Es(P0^^0j)~V`Xl%{+)TR#V}R!%tij=YH@6RAC=si%o1pk z6K%*ddQD!6nBN>GYh@<-sEL>s1yNn-@qm3Tj|GwFtWEo3UDa;TBGN$!;rkp9v zzY$55@>$JH*6VFoO$Q{HNSDK7t02Y)^n{5i@gayB$U=~okXq$J(Sz~RQ`WkW%+Wk6 z!oVyQeY&t9f#H<BGqtOnS$~8SL&l7b??s4(n>~RW7u8HZ*oq-swN zVmyXnm*IG6>7>OXjSD0_%JD#0iAY#UP#RapwF6|j3nhBXkDY-uz0rl?P1x0<9N;od zdn8R%JhP)U4Om%Co-=NL;Ma|KsHOLfNlCcY7(A)|v>YzkQ`VxcgHpT=bbbKZQ&3Mw5toKkNZsOG4W zTPJaX6Fut*3B0`Igw5KYL-cRgB}>Q~Q^VyHsuRBK3q$0sSF_;&W@A_*==T z>BG+XtOESw-9U=_Gm2vC5VnFm=n!{JkbLrzT*d4u* z5jb1kPb#h^!4f4~uMf@X=IYZ{84(MnnrP0x(%+e4PdZhRK1&7?c`;NXnaMT_Gd2~Q zv80`uf#+Ol$Lh>|tonXxEa=479Suy4@Yr1oit0WPwIeO~SkyUKN7Bc%y@Ladc2o(R zXK!SB1mRmjo#SS(UdcoNgLrV(7VmumK`TzTUoOJuJFK7?2u>?Tf@~?wlDcQnEa*%_ zIv{JEou^aPRdQx58}`3P4Eo`$`T41z!>5j5)l6_ zei6ME{TW@BF`i+XZp-9pL~WL7K5EWByE*C;8WJxSJ3=-|Zv%0m!w$<%&#q%Tv*xyz z+hEdg(WGPHVA1y{V2Eg9&%Y=;Dfutj3DpdRE~qZ8F0*c?E|xCNCh4Ypds7ERyMpu1 zuJ6ESL|C#!$QXT`LoRTxb}m+K5-)=%lV^+P)@|(#|IyIF!I8>w)A&hhU3^{4HL(D^ z0EHjeHyDsHkW&C}09*h@U@6!qj5a+`Uq`FmqcW6yoz{odhODMM*WDb3XMgyA$+1}!2_ z@kr4>&8jJjbXK}nXjZceA`5k9mZsGci{rB6x@jY+Xo)Sv7YePyPnEcB*#;d^cf5CA zcUO0LXp5+kXrZY3)YO!nD!NL<%FJcSWiIj=dTTj%g?D&p#%LGRN7N?N9BL_QJr%JP zdsSS@IvVeV+ht#(L1IIZ;w7V)y@W&CUII+UEWkZ_N4NPuRHUM;&K?N_#IzHvMn^q}{nSc*jjfTo1T_n%>84Ztil+a zNvsYKT^v@uBzr5ekapq;D`bXI=m^d3C{*4=9+h#Jjt0^LWK)hqhzOi>!QPZ{MGE3B z+!@q}L(e`-mP&@jb?#~*X3U84=eKG+c?7FvEYds&6-LTc+2V-{OpE)9=g=WjMoS!v z$0`QwhhL2C6B2Hij|&WV18Oa;IMc0Jb}b@8&oF`d3i5H{OH~DzVD66P=+ILf>(&}z zczwalkLQ-Cy=40Ql={?f9on_wd38bmP*fl|!QMupKSxE*u|xUq1R0!~A-fbH#PB8Q zhHkcux>RC^@1Gn=b7@S6o^**0+}4J$+Emc9mh?uf#2yPR8!*XEfF;=}esTRO@j@bn z`ekqAm70w)dvb6dvUUb0Pkl}Qtr`jK;N&$ky5y)tKj{hYRHI8m(O;yqm+(q5cLILt z@TTg6Ik9BMQW$kuFOoBN0>zOklmNlajjTqDN1Aq#{dc)KgZ;7j z@AlbmpOcv}_s==JW6_6@Kl=!Yo9-ja{*L)7ikYrKZ2ta1Gn_1q4xIE8u~1C+b~wv56_)!Cm`UC?3<8zNqk1S zID$V8pLZzUy$?xzC5%oz4=npc7uq^)d5v^=J8sb5UzuU}+RlG+`AD+dKh6|*f-}}W zT4l|3_`BGW)}VK8AMczK^*xe&CD^(np2Y1vNO*EE@_q+7lBU5~WPgz5c^w-+LcH>x zSsn>!KF*0$sp~q8jBD|1`+7rsKT(xA8o!?3)uW<*0dh>k?4=!rezvcp4@B+kzqq~C z-ib~{;kchRFHeK;Mnng$oF*g8mB&%UBvB(n3c~~rDk*BWn)VN?9K#KK173=kV74$O zkB^$1xlpL;{N$y@V&yPd8*yb`YWH_#KdiwtGPRNJFdm#yLxWV*`LmpX1fax=Qph^#} z#s|Pj$ozv)DMD`xl6}Lx!?cJMUQY`=qB(5YJD>n$bJd8B4{zRt8Ww!JF}rZ=*SNfh z6UhvWQ0!&H50Za5{1)$x6YJU;h~36Si7b2Z8hY3?cMnykM&7o86)a#}tk^rJBl z(1Hgoa#(B#{H!~)<|K;0x7mm=uOfbIXn{G>wL6M)H^afR#oPW$Kh4vJJup=zJa)L7c)> zblJ7-&fh$4C-YoMyT56y4+gJBI?UWvLd@fEpRf4{+d>8<3Jft~DheK56!4;hpD113 zy^fHh8XDUJS|!mpuqTJu?XZfEubbHac>f{)n;6nXiFRVaJAjOKV#7HwueEZCuF1nc zu*N(P(M7J*I%_v4q7bfs@bG1J<9kVXPg2&toNCI+*@Sh3d}wZPe&Dfa`$oG=Lq!T@;!UwaBMez!X@ z0&|tg;x0wy5F>s7%iv_ z=9Nu4C*a*J!Qrk~Dv59)S5P7Gor;F%DrXaG*siavkGO)-$Cn+SpC|D$3Wzam@;TLY zv#3>75koTadZQX*Q{ZJn#2kQS(*56Bee$?uOzetOgNx zb7delAJsa@K>12wm;K~B@q7%vLag!MeD$?Vo4WRBZBgT#&aVDS;c`a(LqEQ=zzK2~9-qSC;=gB^XZtZFtfg zBAp-$aPj(s3zLX>^|vUe8`a=ghIk{@DEakB)NF#80jx>OcacNdotO(tH|28Kka5}& zTvF!p9+plL15zuW|p8@#Er0~ zk>ea6hX|5l@us38&}6E8R(46E8gktn2lr-P2QeTedGfih!pFlh!RuK5abXq}&W-+Y z{QYB?$khE3TIDdWWnc9n1qbL3=E~gOzTd@kKK+-!GAy`g)yMKj&YEGltI;7knC6-2 z0#Fw&VcfH~5~*jb*4C~d*HDYoBdqYC`Uk7Pl_{oa0Y{k~#YTp+5+kUJ^kNKTY=2Vf zI~Qd3T_-540Wc&9UlCi|>yqIDBW4Zl=9xM2_p-s}T9uWwO{^aqpf4QqoF7mhJW=nX zCwn`7a2JUDSK+Dl;___q{P=b30R5V;K##|7ED35!A*Z9O?>fvqUo@mWwW`0b-v|hU z@-Y0v`@;=s?NnxJykfEdQ-}ftoo^D74q`)GqXV0`J>Y$U#EaZJ3$L5_$LM)pZo0?5S=cG?S zPv{BI`-rIt6PE^}(}A6h;o34t;hlZ+`@ABH%0QYUgth!#P&2`HT!}-pi7c=~1W7>$ zP@S+^WJn%1$R$C>e`oNbTQIMZpKej9@~4Ay1(i#n74V3zN5kc#h6u+O@!4Yut_L$U z+7E@{4$B9NN6$%4)<0=xb9;?GfXGT$hqwS1%;M#7_{Zf++>QRhs@tH;b6PsEldVqz zwB;^rP2KIVm-QcI-F~wdTNKrTQR|~VbongiiWy^rC-9_&AM~LHRNI1^IwY2fa^NO> z=A(q>*ek+7zhb6CSRmLX@a zg?pMjO|4ADfLqLhDSpDZ^xuUEiU3_op~)y|s&=uuMS0n}%2iVIxy*an;bK}Vo4e*^ zVBvwQfFfwsUrigATw<+h{Hj|}Rys#u4)B|6TqDro5kiiDi~ha3T}+6Vm44NWAVG5_ z(&3EtsF!`*5sdp&QEWUo9(b^L*5#!qUED@9j0hq3vAL&wt6_X9c?*o_#A2#(O~PE~ ztMvsFo7x^XxSg)2b)=I!-(L5-MzbWDxJQN)imK}~mtl0Rg}+V33W@@et)<>x3pGlG zC~u5$8ZtXt-qUP0ueVjTUA3$h3lkIy`(p=MF@7UgzjjntHqx)Irn#dHpdM+n5qsu$ zryd?mGrh|{O|4&zZcQ8T%!wtK?d2M1M&r#$@}7oSKauZH5;rO&!S)IQ&}iK1;ulr4 zOCRcV*91yJHYtThBe%pJQ9Y({ScY5Q{v1udZ+$(F)@=7!PZNHf=!6PMdB#LVM>AlD^vn54aw&c zNB~TxFv&IC5|g?Y?<%r3HJ|NU8Hfk0)T8XZWVt3xsWZE}n?V^AQecAo0M`kywn!%$ z@Fp@R)X9NbLW!RVYsOnpi+2<1jJ5Ve-;Dy=P0#7)%JK|MVnm9gY-EANMUcRwV{rnq zCmZd@w487oU%eZt4#Nn(dQz*<`^!N4moqQtdp)zI0I)DckD z==~g#(m3wI)IuH-;$rzl%x9ForF-YaoVK;L>9bET zZw@09cA;bWceHy|J~CIq4~azC7KkH%F~A95R{Kbzx?jQ8AfAgT&Nljtm*VN3~K4O50Mzyf6-O%Q&>E+ihu z*))qswVrC;hkhTT+dUSHKIse)Jp<*}r4UoOLwG-4WjgPzQC?P2mjLJpeerdS?fecx z7{Bb>VJZH4%dn6&u&>=p%y3XBhk_rde89YB|4-$kVM-xAV+{ z^}Px3BIqz1`Fl>Iz$a#$cD-`;wDCmshd*l+rm{W5-x~vj++$Z}h%r>?^xB&H2+f~W zrx}DWN&Gs)49%+WM#0eOXnv<11gH(uEo|tYA23XSVbRVGrfMAmJH%d}mr6bnvK6GG z^6T$f9Us|Mxa-41A3|t5@RA3{%D_$FH+FvWB;GH$+nN={@P0^cOfUT4Ht~!>i1>^o z{<&lURTP9@R@Cmzz_H*!65gTngAvS-$MS(yQfCUjbc4yFT$<*voLa>CwE46JJ=w-z2`#``8~={6(!opFSTWAZGz;xwBrZW+5usRjrUwa!sfNv79qag)V! zyL#%#mNk2L%$OPLo{^QgeCL(d%UjXm!h5w0S*JF-kt{Qz-)tGP6ew3$`CP2vz%fLR z=ka4mN=XB%FJq~qBAQG~8E~oPMV$kq_pPPWI>Ur3su#3-o#G~}mQv)z+#)rTmetOy zf7x|{Aacu{mo<+Znf1|NuPkwB(IGZCi=CJ6SoUl7m8E6A@bHMfb-0OrT;jayw2QVu zn)atD9K5%lMsZqK9J2hzvQh;;2JVjW?n4}|HG0l_OzB@iGTa}omv?s9PG&f09eT_> z4`#UBKeyk|dDnpMzpDxnZeY)f(wA*Nn7Ff{_!7?QFQB5cBoqu$(fE)!ij_mH>%`=$ zrqLZ*8hUeitB%hvilFX*J^7KON)~BfBNh=`HzpJotGDp&35O0xL|HS215KGT6|)x6 zvy*~hlk-s3Bb)Mr$Sskv3iO2XVTz6H=7+eWu@TE##=&4wugN;yg3+9uCfKX#(p81> zq?C9bRJYMX`6D&`Sxr+Yzpwgoo#7LnYokS7c79#q4Jr7%(H4G;AHl%$!CfnU#lwV$ z1@}2iS-ZzAP$0G9iv=wKJ@`V&uqYjI>!Yn#3UVpv_ zKKJUexOK`6q*iKWt>2f0`ie$&+Gyl03phx-mV52byBo7}gzgE0<+eH+e{CIsOHu1!1BPjfR!f|9GlgTW&> z4L^uVp+fb!sh^3|Zt}6O^06sPrgZd>(m9@|o3*`9B$-CNZR!t_MeUvC6fo&oXK=tK zE}d)c)X6o;JmLSe$G~#;XYAR}B1M`|2E#b=#1=yl@}P8rQm3~yb2H~hlV(aSf)SV?oCsAo ziCuBnaqgJ5+3LMrHWgN|=GEbN?h-GwxjT_!=QUsPAS9fK`}Re(^@%MnH~^;Y1V1Y3 zUtb&?{h##2cH)Abs|y{DTCFbZmRTcl)HA)qS?Yh0RzSy(SN`devHIB$%?R(T!pE~$ z+#W!(itHkJ$-e;174hp8gwSZO69(yDK>H`_DQVY_A-HZn{^oMM5ff16P|kEZ9`2Fp zSa7US$i5}I{0W$XA1Km)?i|gsnLLSHiSjPLLYJZ{-Qx|SiqpYZ4u#x@4U-^QvR{6Kug08xl=j)e9+Vo zyQ{>U^1%#P5aW#Wa(&)NKF@`J+!+F|^+9)fAbY)$KL3d^+K>nSiy&c-%^DZ42979- zXN8`C4W#JrVcFB?24*n=H6PrV3O+Vh7dIr2?w9p=0kS9VUXm)mnF3o^FCJe2nM371 z$P5=j#>EE`ZPG<0Wh(QeogU7%1I^NE%f{6qaF$-3%EKyWX~}zifpk!MWXs%e z<3U#Oo#CtBAC9QFaGCP!zyxcO;7*2JfF!O_j$Xh+QG9?z* zNioH$l**Y7>F{^*CBA3uCj6NFulM-3z&9RWYzR_H9ezrCG_WUK8bllf4Hy<)XlGuq zMs4&_3)=Fc-m(*?pKzRB)5rK&h`RA90&;;WSsd;Y+gM$ksWnHEH;lq2Wuy z;C}4?o0@^({J~~Vre{xP#*s$Ak*?13Z_aQ#5{l2efwSJ#Q%03;ERbs`urn0V9tvfh z2xT4le`#|DoD~Gl0yujyo2_J$tz^TOrg~r2(pbTz@y`Z4v_1&V2m?C>p=as{Ln!0!ieNVH6X#=&qh1jg;N`b}L zgS#7qE6lSyju9I%434lrXDSQrb0Aa76|0$Fvw+)rn7GyT#-Uv>C*^bC*N3{8u55bz zOEHRRR(J|BHTqb#Wd3fem&dJW66F4csImLdQR>QX)NA|*e<7QPv2_f8e>Z}U!3dV` zOY+xcD4O%}X9e@(7G$Ah1=#ReYS7{)kq>v`=)4YtPn}TE!O~b?Jgg**7XPEmB*uMB;(U+SSFPcX&_a zGW=?s@!iQOjw`yI6Ue1#CmCy_j4IMn>tqXk7-#+4`ZAyN+*N-o+iiUAFYr|PGDoc4 zBJ=2UDVs%{T{5VktDZIP_Bj)2Tbgfa>;3QjqOPRK5m;uqU$RBp#T;iYa*89StfvJD zYlTY8LL!b`N)C*|%k9ag@wUh{_Q7x5c-_G>(QvS_GEn4L*mEVLtmjjj%k5WecggFu zYrHH+brC0!4ng85yV~vc{~-Kr1$B9?;LcdTu}NPcgredrdM%E#Ws8QEB&J|+)5;oP zLCoO71bLUG=Ufab4vY?Wq$WOz?58Yq{>^i1E_(-Sof69mkaC`2I@CCd90nqdG6W_w z0Mw>9Rf5}(K)Fwku8_I^tj(*%jW4DrI2Fe59Z*=#IdY-#O_=Ha+^aw&fxzJfZ|*GI zaVLD_5Ivp(e@RrJuC)r{MSueX4W@eO1k`ITob!#VwG^SJeFmk0hYy}mrG!C-|E{Y&F6UH=MrSQmb==L75+0dP5I-Kd zow)>xf#2*;f%fRLP9$n&?owpMR;I<}ShAkeqHhgf(ib672JS6Pfd&aVwEii95o>BH zm5#5mFM4&6n!Pwmd!geixzEiy-wT& z?O7p=C}d?4oWWIckIOL>?Pa6#rn;dix=p+kEw^HH!P#=dGf+EVjatU=%%Q|tfiA9U z)(Z{O_OI*K<|pl@Yy}a?7&nU#zo0rR^~It(7YZLV5GW*z_iR-s1yL?#YZ8N(%U(~U zt}Rjj>M*sI6$w%bsGUGRBerKPtOp*1p2w{muParFl3%ZP``0~sjBR1^GMqm{hiy8+ zM}_~3tNM2N)~RkS-8!37V0pI&Px9@<)Px)}LUf@bVvo?zMSJH^mV9lK!^+FuhWW_g zw5=Tue`1xfYFQ6cMY5QA%gAOG1xI6NPEo*5z25xr(NNEs95tu8m>yD9kbZ~$A4V5Y zo*}ieLa6wz{XzR}{?W{FD)7bT&?^wh7>k)ZIIf7*gJ#A6T_NUaJfC!Tl%`;*f1GPO zpEOH;Of@OA7*Kqe{s54fqZr{WqX<-K%0@WOxr(U@^7@tID9#+}c|t+1|Esh=B_z~{ zJW%|)iY+-R@=SbmS^AN8wf<-P{57q|#j#f*x^j|?oXr)|mX?7{^AH1V%0nWB5j)T0 zIYE!r%ENi<9B`F{fN8mFDn4Ay{fY#|*z1MdTS{a>GemfR=83~|LV;Hq#Z|(-ig8)k z=vxv>S>p6B(k=A44cDDHszOaX`F35TG=1RmZL*04J~ehQ>*jY5Iv|wmtMh8?^xNb* zy3;5*=n7Z7nuCvnqK}G%RH&3lVt z3u<0x(CVNCFLQB{eh2Dfi;Oc3O3Zy%F@`1)ZUQi2^1K>|Sd_`m!U$d9nH*Aay|Thr zO_raH^DC|S2Gs~%XQ6uH={`~o8JQ9)Vg+CDn;KqIar^--bvgkL{3v&~#mS7r1v=fX z*qufO26{ZobPKsmjTPHRhBaNO_Wk)z-I)QOb1&JkR=F?eZW3TRj}(;m@l}v9@5Tf9 z)sWEOS}9I7UwUF(AP|g}0Te|0?d4oH#;;|9r+3-nDN}uiGQ5!SAnhax6*%Y>O+`aC z<3LK&yo#nYyO1BU$;uJhFMJEf@N7KO1nZ@I5M*qi8Ceg8^1JlI|E17_JvuRtyD{Kj zmU*rm(t~Yez6DBWv5tqBpkIn~9%_KCs6fKs2@Jf`6!kNye9Vjk=V6R0VXEs7%gW9I zOlUNm%B^$bph=Gy4#f%oTqxa>M-7hVkU%@QC327sk;J$zp%*zjn?Z^+`d{+4uxLq3 zOB2SFT4UZ|QhI0S;i2n{RdlG7tg82i<}0g~ijz>C=T{|d9$!9V!=w3b1m~=+cRl-d z#t^$Zgzi9)-#2?q)4rGo%l!kFVNB_>MA_Z7>OoG`ICJ| z)ZKJQh#xgfiZ@3aR4F<$h=mN)qpo9E6^J#z#@nZnV?L|{<@cK)F8N|7hQfHBOu&KI zu=g}PgDHJDxE-|*+im_Z?D-~uKmu7B_|F$O<>Q%eBp6= z?)g#CK<=X|@35AB+@zF%A|0hpv@XCYa>P5_pe9WemI0M=OmXB)2^a_Pw2+HGy{Ytb z36@@+cHBxCTQP6NJ#hF5vFl4xOH8QbolIN6c$ePEmw8K~kIL6q(6c&T$Pc(gR zwbEse%ac4xpES|@PbJh z4yB;km`?rBRy0?0j6v{@CK*^vz;Zd@j?i+hjFQuHGgg`9kb_2pA{mBACH&1IXn5#e z;GtZhs6W#+KtVi-kko6uOw;Icr+!9Z<=aL@$Ix>;=Qbqli*+=svBiMT-EoFxDdy>k zD~>10eyu!RLr&k0hwZG|oko1b#oEdq(UNcO!?1jA_m&kkxTe1;u)z4YtLty3U}xzZ z3D014Tv(twN;)8LAPvRZtto@UmFe(aW2c*_B8$f?;(rqmqjmUomB-;W`DvRVZ|ki0 zUCUSKk6byiQ;qjDRTmq9<6Mt(>gih5bN(YdbR`%x8-q!dMcN)A9nk46)tQOPm&) z_4a(&HHtfpiR1+Pg|6{2)iTzlHctuh6ZQ6lM@droeIJTx-Y>`$G$ zrjIhhtIT!{oOCx$IQRih3)7X{UZd#lUtD# zsSUPi;DkCn(R&QAge^EOoQ*?l%o%x8gccns^_NN=k`wcD9TZpRsY3MYuX`|(dU`aa2MO9uSsRdRsAyg0rNRNMB5*#NR1N{x{-}t}S$pcjeLChATiS2niENbWy{ujx~A|DGt_IT`{fT zE%mVKTvaxeU06H2nM)$pwzs-F2js{#29-qpxpo}%#qlR`jNex}FRkxWSLpCjS;nG> zM$g&SwCZ5F#`@;HU`r3ft7Im)XRcRAO14w@J0LT_LLYdcfBXH8+q3a(<6~Eb$;vEnm%9 zc)Q^766vK|eEkLuvKvpgIL{}CKYDJ->Ag2%I%TAiXvbY-!?>M!wMV&vhegDp4aPoTXw|VJu7?x#s z9&i4rAs8?h)mq$kUZJS-ciV7NB&Vfbr~EVT9H;*0WCu4gmC8qbw?mD&o!oX?O^dra^_q5Jhh9@Tl$I{ zDuc&yCa@BqXwN(TI1hv?0fBflPLCPFFG+!5b5WPhaWP)@P%^ZMiP<^hSHNX;kA{P3 zG8Du9EhBfH2W#{yuu@mtP(>;Ya`b6W@Q9DIm*xxFB0wBeGEAjb67l^~bn zPxortg%h_9&3C_+o_M~o(m#H)u+C=`5Ms0r3<6{|ct-?H9S-}w50SHYj-ai;jF2X5 z_$O0+N6-er8_{72r=>}@yjk3wA*F)r)97JN!NA-(GP$-UW{N2SM5SFKoWsqAls*Ma(1>+m5g&1&|q#KN;~`=04$cvEMpSdflL- zr-=TPsMA&n#;ztp2Sk3a}l+%T;&jW8e@tiI-J; zIaQecPVnR0M0b#lap__aFLG>FbC|;a&0zw~gM%_SRQsk{WMS&Cx}$Ld?|OIgHX5Rr zG*+pCW-%yre!%TLY!!FAB65*n3E^fbftsiOXPn-9{WzH!Yt6`}wQF`d=Gm2P?4Sm( z<-j1F88Zu&O{Xx)m{;Hh$Hs^75{JWgLDOJo(O}F*#nE8%s-lfO%=s@%A)$pQlDnAs zWY|bfA<$|sfhBJ(pxIe(6Lg_O>rHOTg-~vF#gx1d7 zDz?PLQG8wHt$r(^$})| zaokmkT6z@3erDZn=IXly)%4-h*6_!&e4)zxOFU;_QD6Qx-fe5p+%a1+%9KH-^qhA96tB zxCt^Q#OVt<#<0gYv{4=KK>OCscEcW24nfFA5F9uF{gb9b6dVazdd7RHDvTJv@&A=5 z;DTKk6s~SC(hL{bOxv@WEj(I@S@!W^z3wX7d3>@w%M;(=f?4-KAoG9sKjs7MFA?`2 z(xH}V1V-})d6M0_RA}FeEu>!QhjrH}pHlhj7qlC|@rr^o!SZAsRBBn+Af{Sx`)87n zxp|b#1S?rm^E#2epF*>S2|=`{IG$JyWlnj3qdhA!cROMV_<*~Ezi(R0m$n!LG-?z) zUBvgYN9P$>-73He#~~DN%}W;(CyOG3O=nCTxnP{_I|tf(3ee+V9P*;K;`|+2PHDg! z5pf^&(j>bIrG(oEl%pVC#owrYJl)~NB4v~ z#njU9AM1xI-&Waxle+aaqTLy=fjJgUluex9zgby%{|(n@st#=L&dB-KkZnDg++C3A zmOg6fsPV4QFtkz;eNoFJ$@l;Rla4&Ab`39ny8ExSQwMD~X*y}pJ~XIqq!6Lu5OJZHesiN!UmY z>gOCOjhKvS12g4SFa7c&Wh#6#vrtK~ov3W1cJm;35asUik-S7R>wirNGcrF<7cr=j zbDoP)^c}GRx)~in%D){Etqr|8LgB*cDcCo$u>k*-C3l}9CY}ai%iwQ2X2l7QSq9J! zX0fM{+$Yo^2x5GRL?`_bO6t~(NQ)QVeLfKfb8r^_^&H^0H0ySxiO{Vj8t7|jtSJA4!UZ(a1$ zVB=eJ+tN>bTt2{CuqY@9CfJLvR0`%JtWomTOO` z0elU`LR~1mn;ZBnss>-Dwd>#H)cPe%%iIL4Kc=DN4(D=OH3_K`72XPb&JL3tGx*Xc zVaEojUBHy}p&B-VwK>CE9{v{!MOAQ1qhmqrvH!lgkN0;Rsz84UEr)lUPU6X$6hp<3 z8Atlg)0ajSX|g#6+c|-J#&Ppl;%$tu2Z!5=pw#vjr15up6iv1!@l}@*j|Q^luemedu#+kI-|(@VEBw3is`7d+Y1t%yG4S zun*CGQkJr5k$)`Szehq7P%a`zxc8Pl=p}0Z$W0FTA?mF7%kl!>r76jEuN4FQhiCY4*55FD~|#(<68DJj5; ztW(it`Fa=SLKC7P?LEtTQLQl!H1C@67B#`LgyBY~Ss%qZn=O0Jkj3{-Fe^~EUHfn4 z@}=%q)G$T}PCMed4w_a(=!g#~5(6rX9%*bh7zWJ+u41xl)DHBcg#u*N#?pP=bu8$H zF$(R!wV1ND_o`6`(lvFhffYKvlo%n2$QVFQJe?&pZ=)IuT>Wg~*F(BB#NV{vk$ z$RC!-z`iNw7;Sm|)|323UHiGJ8y?E$`b+|BjE{1{FFk?f-y%_h(G(g^~LbntQaxNhK?IE}-iT|`*X166mva9MGZ%fEHP~=wXWJ zCT)ewl14>N+aX)oyMmg{aYJk;Vg5TGyZj@+^}9Y+P2vOm_|mWZu1v<|=i_`_Yrmy@ zpSWFI0c0q7fD5H@7v@3W326HW*(#wLanB~^AeRW^{=itl?XrV_CpUwzR=~JL$6e$K z-EIv;M!r{^#XBYf+-ZZy&eKHMy$@RUR8=C0f2L3tql@n*z zle#y%I=lAX`PI(OzP`@Ruim*AF8McGo14zqe1=vPf#%kcK2lddc%u3%t#A7|gSb+7 z4mad-TFi@Boe-}o76O6?$$`5{;rRvXeHXVaJZId=<9i%(tl`QN&RfvF&G0@kok{o> zugO2AT1qvh!_BICruw1QuB%)UZxSa1ABr-+~?`%EAR)s+@SQ2r>BnOE(1ch9y z9+{xtq<(dh`U<)BLH@NK^$+Tqj~^yqBHnRi6<|~?Cy3XI6X2cw++0qZzvzhWh1Lb& z`hM1W1u~98)=|hY3b{t1S_Z-USot8ak}eV?X*j0^&*%%1KRV(ce#M{3aFMg2W7fT@c8|Klej6M{mka(lZ!A~R>dL%N)r``4s$txLZjA~1f8n0 zm~@(BD%>o_65m3U^5%{5QN%GDg$4kc$@W=SJTzM=W>@yrWa&qt#EhGET7l2DXb~`m zwUA(bCQl!~4Y8hmVv@<(ElfV7A&%L7MRtwGqj@&XSk%uxX~2dtzO;Od>NS&oQcJ5N zoS|f?5+BOr%H|tzTaNu$kfwLQ0D{jTjFh_U7dF~K@d+Aqr$;aV* z#?VOhkPu?$-yK&n@|R=zq6~MxiA7?K!8$ZFWHqR_;Uzf%FQ0}S?ewXFN;aTR3*g{3 zK|OB2D&jL+X`u0Y@cZpyj6No@w1t#a!p|bA%9rjx1`DbxlaEz-x+;cy}WlGrVR3vp}X;w(buN3jgv4D z5wEM+wHGatUbwmDQ@+bM3#wQjkpER59E*UAT4wzjd&aeSmPDm@=wI;g?Bj1C=Zg*lcbRG=n0B`3ZGW3VKEdvF;42q zw`xzGYOl$X-v&>N#-r-*`K?J?VJXh@7_@UawBzMC3`~MyNj?#k1S8H6v3H<%_7ru$ zdS7@!tgoN+s|Wh~W=$i5WOis?eeZyJ@ZkxwXH6wJ^$AyG_5_fd5)%ezO;(>J_84v%KjVxi|WO7ovf5^7q#*J86-$Xv7Ceh3b;xvJ{T?v9R|@4Tg}qYM7ua_7w* z9o_tEO(4YYf&MTM}sse%t+y2+?lQqDqI|n0vr=j zSJKu86>bF_Y<*z z?*O2z(R}@mu`4#I

$&(AaI)sRz|D>Ot~OJR67qWUl`EoA`7B*ld7z_ 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 Tl&!WC=vD?#S3j3^P6 \ No newline at end of file diff --git a/web/client/themes/default/ms2-theme.less b/web/client/themes/default/ms2-theme.less new file mode 100644 index 0000000000..c82c7b1daf --- /dev/null +++ b/web/client/themes/default/ms2-theme.less @@ -0,0 +1,901 @@ +button:focus { + outline: 0 !important; +} + +.shadow { + -webkit-box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); + -moz-box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); + box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); +} + +.shadow-soft { + -webkit-box-shadow: -1px 1px 5px 1px rgba(154,154,154,1); + -moz-box-shadow: -1px 1px 5px 1px rgba(154,154,154,1); + box-shadow: -1px 1px 5px 1px rgba(154,154,154,1); +} +/* dropdown-menu */ +.dropdown-menu .dropdown-header { + background-color: @ms2-color-primary; + color: @ms2-color-background; + padding: 15px; + font-weight: bold; +} + +.dropdown-menu .glyphicon { + font-size: @icon-size-md; + margin-right: 15px; + color: @ms2-color-primary; + vertical-align: middle; +} +/* navbar */ +.navbar-dx ul, +ol { + margin-bottom: 0; +} + +.navbar-dx .MapSearchBar .input-group, +.navbar-dx.shadow { + -webkit-box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); + -moz-box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); + box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); +} + +.navbar-dx ul, +ol { + margin-bottom: 0; +} + +.navbar .square-button { + height: @square-btn-size; + width: @square-btn-size; +} + +.nav-menu { + overflow-x: hidden; + overflow-y: hidden; +} + +.nav-content { + position: absolute; + top: 0; + bottom: 0; + width: 100%; + background-color: @ms2-color-background; +} + +.nav-body { + position: absolute; + top: @square-btn-size; + bottom: 0; + overflow: auto; + width: 100%; +} +/* button dividers */ +#mapstore-navbar-container .dropdown-toggle, +#mapstore-navbar-container .square-button { + border-left: 1px solid @ms2-color-info; +} +/* search */ +#mapstore-navbar .navbar-dx .MapSearchBar .input-group { + width: 500px; +} +/* remove default inbox bootstrap shadow on focus for the input */ +div.MapSearchBar .form-control:focus { + box-shadow: none; +} + +div.MapSearchBar .input-group-addon { + height: @square-btn-size; + width: @square-btn-size; + color: @ms2-color-primary; + background-color: @ms2-color-background; + border: 0; + border-radius: 0; + font-size: @icon-size; +} + +#mapstore-navbar .navbar-dx .MapSearchBar .input-group-addon .searchclear { + font-size: @icon-size; +} + +#mapstore-navbar .navbar-dx .search-result-list { + top: @square-btn-size + @padding-left-square; +} + +.navbar-dx .MapSearchBar .input-group, +.navbar-dx.shadow { + -webkit-box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); + -moz-box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} + +#mapstore-navbar #helpbadge-null { + position: absolute; + left: -10px; + bottom: -8px; + z-index: 1; +} +@media (max-width: 768px ) { + #mapstore-navbar .search-toggle { + display: inline-block; + } + + #mapstore-navbar .MapSearchBar { + width: 400px; + top: @square-btn-size; + left: auto; + } + + #mapstore-navbar .search-result-list { + top: 85px; + left: auto; + width: 400px; + } +} +/* Small devices (tablets, 768px and up) */ +@media (max-width: 768px ) { + #mapstore-navbar .search-toggle { + display: inline-block; + } + + #mapstore-navbar .navbar-dx .MapSearchBar { + position: fixed; + left: 1px; + right: 1px; + top: @square-btn-size; + width: auto; + } + + #mapstore-navbar .navbar-dx .MapSearchBar .input-group { + width: 100%; + } + + #mapstore-navbar .navbar-dx .search-result-list { + position: fixed; + left: 15px; + right: 15px; + top: 105px; + width: 95%; + } +} +/* Medium devices (desktops, 992px and up) */ +@media (min-width: 992px) { + #mapstore-navbar .MapSearchBar { + width: 500px; + right: auto; + } + + #mapstore-navbar .search-result-list { + width: 500px; + right: auto; + } +} +/* Large devices (large desktops, 1200px and up) */ +@media (min-width: 1200px) { + #mapstore-navbar .MapSearchBar { + width: 500px; + position: absolute; + } + + #mapstore-navbar .search-result-list { + width: 500px; + right: auto; + } +} + +#mapstore-navbar .form-group { + margin-bottom: 0; +} + +#mapstore-navbar .search-result-list { + background-color: @ms2-color-background; +} +/* dropdown */ +.navbar-dx .dropdown-menu .dropdown-header, +.navbar-home .dropdown-menu .dropdown-header { + background-color: @ms2-color-primary; +} + +.navbar-dx .dropdown-menu, +.navbar-home .dropdown-menu { + text-transform: uppercase; +} + +.navbar-dx .dropdown-menu li, +.navbar-home .dropdown-menu li { + border-bottom: 1px solid @ms2-color-background; +} + +.navbar-dx .dropdown-menu li a, +.navbar-home .dropdown-menu li a { + max-height: @square-btn-size; + color: @ms2-color-text; +} + +.navbar-dx .dropdown-menu li a span { + position: relative; +} + +.mapToolbar { + box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); +} +/* button dividers */ +.mapToolbar.btn-group-vertical .btn { + border-bottom: 2px solid @ms2-color-info; +} +/* no divider for the last button */ +.mapToolbar.btn-group-vertical .btn:last-child { + border-bottom: 0; +} + +div#mapstore-globalspinner { + width: @square-btn-size !important; + height: @square-btn-size !important; +} +/* drawer menu */ +#mapstore-drawermenu .glyphicon { + font-size: @icon-size; +} + +#mapstore-drawermenu .navHeader > .glyphicon-1-close { + float: left; + display: block; + height: @square-btn-size; + width: @square-btn-size; + padding: @padding-left-square 0 0 @padding-left-square; +} + +#mapstore-drawermenu .navHeader .glyphicon-remove { + color: @ms2-color-primary; +} + +#mapstore-drawermenu .panel-default > .panel-heading { + color: @ms2-color-primary; + font-weight: bold; + background: transparent; +} +/* nav buttons */ +#mapstore-drawermenu .navButtons .btn.square-button { + font-size: @icon-size; +} + +#mapstore-drawermenu .navButtons .btn.square-button .glyphicon { + font-size: @icon-size; +} +/* toc */ +#mapstore-drawermenu #mapstore-layers .toc-group-title, +#mapstore-drawermenu #mapstore-layers .toc-title { + position: relative; +} +/* visibility check */ +#mapstore-drawermenu #mapstore-layers .glyphicon, +#mapstore-drawermenu #mapstore-layers .visibility-check.glyphicon { + font-size: @icon-size-md; + z-index: 2; +} + +#mapstore-drawermenu #mapstore-layers .visibility-check.glyphicon { + float: left; + font-size: @icon-size-md; + margin-top: 0; +} + +#mapstore-drawermenu #mapstore-layers .toc-default-group > .visibility-check.glyphicon.visibility-check { + color: @ms2-color-primary; + margin: 5px 8px 0 8px; + width: @icon-size-md; + font-size: @icon-size-md; +} +/* group */ +#mapstore-drawermenu #mapstore-layers .group-expanded, +.group-collapsed { + padding: 5px 0; + border-bottom: 1px solid @ms2-color-shade-lighter; +} + +#mapstore-drawermenu #mapstore-layers .toc-group-title { + background: transparent; +} + +#mapstore-drawermenu #mapstore-layers .toc-default-layer .glyphicon { + font-size: @icon-size-md; + margin: 0 4px 0; + color: @ms2-color-primary; + height: @icon-size-md; + width: @icon-size-md; + display: block; +} + +#mapstore-drawermenu #mapstore-layers .toc-group-title .glyphicon-folder-close, +#mapstore-drawermenu #mapstore-layers .toc-group-title .glyphicon-folder-open { + color: @ms2-color-primary; +} + +#mapstore-drawermenu #mapstore-layers .toc-default-group { + border-bottom: 1px solid @ms2-color-shade-lighter; + padding: 5px 0; +} + +#mapstore-drawermenu #mapstore-layers .toc-group-children { + margin-left: 24px; +} +/* layer */ +#mapstore-drawermenu #mapstore-layers .toc-default-layer { + padding: 10px 0; +} + +#mapstore-drawermenu #mapstore-layers .toc-layer-tool { + font-size: 22px; +} + +.toc-default-layer .toc-title { + max-width: 140px; +} + +.toc-default-layer .inline-spinner { + position: relative; + top: -7px; +} +/* measure panel */ +#measure-result-panel .option-text { + font-size: 14px; + text-transform: uppercase; + vertical-align: middle; +} + +#measure-result-panel .option-icon { + font-size: 32px; + text-transform: uppercase; + vertical-align: middle; +} + +#measure-result-panel .glyphicon { + margin-left: 0; + margin-top: 0; +} +/* various */ +.no-border { + border: none; +} + +.no-border:active, +.no-border:active:focus, +.no-border:focus, +.no-border:hover { + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + outline: none; +} + +#mapstore-getfeatureinfo .panel-body { + padding: 0; +} + +#mapstore-getfeatureinfo .panel-heading { + background-color: @ms2-color-background; +} +/* Leaflet minimap style */ +.leaflet-control-minimap { + border: solid @ms2-color-primary 4px !important; +} + +.leaflet-control-minimap a { + background-color: @ms2-color-primary !important; +} + +.leaflet-control-minimap-toggle-display { + background-image: url("../default/img/toggle.svg") !important; +} + +.leaflet-oldie .leaflet-control-minimap-toggle-display { + background-image: url("../default/img/toggle.png") !important; +} +/* OpenLayers minimap style */ +.ol-custom-overviewmap button { + background-color: @ms2-color-primary !important; +} + +.ol-custom-overviewmap .ol-control button:focus, +.ol-custom-overviewmap button:hover { + background-color: @ms2-color-primary !important; +} + +.ol-custom-overviewmap:not(.ol-collapsed) { + background: @ms2-color-primary !important; + border-radius: 3px !important; +} + +.ol-custom-overviewmap .ol-overviewmap-map { + height: 133px !important; +} + +.ol-custom-overviewmap { + margin-bottom: 3px; +} + +.btn-success { + background-color: @ms2-color-success !important; +} + +.btn-success:hover { + background-color: @ms2-color-success-hover !important; +} + +div.ol-scale-line.ol-unselectable { + border: 2px solid @ms2-color-shade-darker; + border-top: none; + line-height: 1.0; + border-radius: 0; + bottom: 5px; + left: auto; + right: 57px; + padding: 2px 5px 1px; + white-space: nowrap; + overflow: hidden; + -moz-box-sizing: content-box; + box-sizing: content-box; + font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; +} + +div.ol-scale-line-inner { + border: 0; + border-top: 0; + color: @ms2-color-background; + font-size: 11px; + text-align: left; + margin: 0; +} +/* dropzone image*/ +.dropzone.alert.alert-info { + cursor: pointer; +} + +.dropzone-thumbnail-container .alert { + overflow: hidden; + position: relative; + height: 180px; + margin: 0; + padding: 0; + border-color: @ms2-color-shade-lighter; +} + +.dropzone-thumbnail-container div.dropzone-content-image-added { + transition: all 0.2s ease-in; +} + +.dropzone .dropzone-content-image-added { + visibility: hidden; + padding-top: 40px; + color: @ms2-color-background; + text-shadow: @ms2-color-shade-darker 2px 2px 2px; + vertical-align: middle; + top: 0; + left: 0; + width: 100%; + height: 100%; + text-align: center; + position: absolute; + width: 100%; +} + +.dropzone:hover .dropzone-content-image-added { + visibility: visible; + transition: all 0.2s ease-in; + z-index: 2; + background: rgba(0,0,0,.7); + font-size: large; +} + +.dropzone .dropzone-content-image { + padding-top: 40px; + transition: all 0.2s ease-in; + font-size: normal; + text-align: center; +} + +.dropzone:hover .dropzone-content-image { + transition: all 0.2s ease-in; + font-size: large; +} + +.dropzone-thumbnail-container img { + width: 100%; + height: auto; +} + +.dropzone-remove { + top: 0; + right: 0; + z-index: 5; + position: absolute; + font-size: x-large; +} + +.dropzone:hover .dropzone-remove span { + color: @ms2-color-background; +} + +.dropzone-remove span { + color: transparent; +} + +.dropzone-remove span:hover { + color: @ms2-color-danger !important; +} + +.dropzone-errorBox { + margin-bottom: 10px; + padding: 15px; +} + +.modal-header button.close { + margin-top: -7px; + opacity: 1; +} + +.modal-header button.close:hover { + opacity: 0.5; + color: @ms2-color-background; +} + +.modal-header button.close:focus { + opacity: 0.5; + color: @ms2-color-background; +} + +.modal-body { + background-color: @ms2-color-background; +} + +.react-draggable .draggable-header { + cursor: move; +} +/*- icon in lists -*/ +.option-icon { + font-size: @font-size-base; + margin-right: @padding-left-square; + color: @ms2-color-primary; +} +/* btn with icon */ +.btn-primary.focus, +.btn-primary:focus, +.btn-primary:hover, +.open > .dropdown-toggle.btn-primary { + color: @ms2-color-background; + background-color: @ms2-color-primary-hover; + border-color: none; + /*remove active color */ +} + +.btn-primary.active, +.btn-primary:active, +.open > .dropdown-toggle.btn-primary { + background-color: @ms2-color-primary-active !important; +} + +.no-border { + border: none; +} + +.no-border:active, +.no-border:hover { + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; +} +/* square button */ +.square-button { + height: @square-btn-size; + width: @square-btn-size; + line-height: 1; + border-radius: 0; + padding: 0; + margin: 0; +} + +.square-button-md { + height: @square-btn-medium-size; + width: @square-btn-medium-size; + border-radius: 0; + line-height: 1; + padding: 0; + margin: 0; +} + +.square-button-sm { + height: @square-btn-small-size; + width: @square-btn-small-size; + border-radius: 0; + line-height: 1; + padding: 0; + margin: 0; +} + +.glyphicon { + font-family: inherit; +} + +.square-button .glyphicon { + font-size: @icon-size; + padding: 0 0 0 @padding-left-square; + margin: 0; +} + +.square-button-md .glyphicon { + font-size: @icon-size-md; + padding: 0 0 0 @padding-left-square-md; + margin: 0; +} + +.square-button-sm .glyphicon { + font-size: @icon-size-sm; + padding: 0 0 0 @padding-left-square-sm; + margin: 0; +} + +.list-group .list-group-item:not(:last-child) { + border-bottom: 1px solid @ms2-color-shade-lighter; +} + +.list-group list-group-item a:hover { + background-color: @ms2-color-shade-lighter; +} + +.list-group li:not(:last-child) { + border-bottom: 1px solid @ms2-color-shade-lighter; +} +/* btn groups */ +.button-group { + height: @square-btn-size; +} + +.button-group .btn:not(:last-child) { + border-right: 1px solid @ms2-color-primary-hover; +} + +.button-group-md { + height: @square-btn-medium-size; +} + +.button-group-md .btn:not(:last-child) { + border-right: 1px solid @ms2-color-primary-hover; +} + +.button-group-sm { + height: @square-btn-small-size; +} + +.button-group-sm .btn:not(:last-child) { + border-right: 1px solid @ms2-color-primary-hover; +} + +.button-group-vertical { + width: @square-btn-size; +} + +.button-group-vertical .btn:not(:last-child) { + border-bottom: 1px solid @ms2-color-primary-hover; + display: block; +} + +.button-group-vertical-md { + width: @square-btn-medium-size; +} + +.button-group-vertical-md .btn:not(:last-child) { + border-bottom: 1px solid @ms2-color-primary-hover; + display: block; +} + +.button-group-vertical-sm { + width: @square-btn-small-size; +} + +.button-group-vertical-sm .btn:not(:last-child) { + border-bottom: 1px solid @ms2-color-primary-hover; + display: block; +} + +.gridcard-button { + height: 30px; + width: 30px; + padding: floor((30 - @icon-size-sm)/2); +} + +.gridcard-button span.glyphicon { + font-size: @icon-size-sm; +} + +#mapstore-layer-settings { + background-color: @ms2-color-background; +} + +.group-edit-dialog, +.user-edit-dialog { + background: @ms2-color-background; +} +/* query panel */ +#mapstore-drawermenu #toc-query-container { + background-color: darken(@ms2-color-background, 2%); +} + +#mapstore-drawermenu #query-form-panel .remove-filter-button .glyphicon { + font-size: @icon-size-sm; +} + +#mapstore-drawermenu #query-form-panel .remove-filter-button span { + line-height: @icon-size-sm; +} + +#query-form-panel .query-toolbar { + height: @square-btn-size; + background-color: @ms2-color-background; +} + +#query-form-panel button:disabled { + color: @ms2-color-text-disabled; + background-color: @ms2-color-disabled !important; +} + +#query-form-panel .panel .panel .filter-group-panel { + background-color: @ms2-color-background; +} + +#query-form-panel .panel .panel .filter-group-panel button { + background-color: @ms2-color-background; +} + +#query-form-panel div.details-panel { + background-color: @ms2-color-background; +} + +#mapstore-drawermenu #query-form-panel .querypanel > .query-filter-container { + margin-right: 60px; + margin-left: 10px; +} + +#query-form-panel .querypanel { + background-color: darken(@ms2-color-background, 2%); +} + +#query-form-panel .query-content > .container-fluid { + border-top: 1px dashed @ms2-color-shade-lighter; +} + +#query-form-panel .querypanel > .query-filter-container { + border-bottom: 1px solid @ms2-color-shade-lighter; +} + +#query-form-panel hr { + border-top: 1px dashed @ms2-color-shade-lighter; +} + +#mapstore-drawermenu #query-form-panel .glyphicon { + font-size: @icon-size-sm; +} + +#query-form-panel input.form-control { + border: 1px solid @ms2-color-shade-lighter; +} +/* select input */ +.rw-widget { + color: @ms2-color-primary !important; + background-color: @ms2-color-background !important; + border: 1px solid @ms2-color-shade-lighter !important; +} + +.rw-list-option:hover { + color: @ms2-color-background !important; + background-color: @ms2-color-primary !important; + border: none !important; +} + +.rw-state-focus { + color: @ms2-color-primary !important; + background-color: transparent !important; + border: 1px solid @ms2-color-primary !important; +} + +.rw-i { + color: @ms2-color-primary !important; +} + +.rw-input, +.rw-placeholder { + color: @ms2-color-text-placeholder !important; + background-color: @ms2-color-background !important; +} + +.rw-filter-input { + border: 1px solid @ms2-color-primary !important; +} + +.rw-select { + border-left: 1px solid @ms2-color-shade-lighter !important; +} +/* help badge */ +#helpbadge-scaleBox { + background-color: @ms2-color-text-primary; + color: @ms2-color-primary; +} + +#mapstore-navbar #helpbadge-search-help { + background-color: @ms2-color-text-primary; + color: @ms2-color-primary; +} +/* tutorial */ +.group-thumb, +.user-thumb { + background-color: lighten(@ms2-color-background, 2%); +} +/* tutorial */ +.joyride-tooltip__button--primary { + background-color: @ms2-color-primary !important; +} + +.joyride-tooltip__button--primary:active, +.joyride-tooltip__button--primary:focus, +.joyride-tooltip__button--primary:hover { + background-color: @ms2-color-primary !important; +} +/* loading circle */ +.ms2-loading { + background-color: @ms2-color-primary !important; + border-bottom: 2px solid @ms2-color-info !important; +} + +.ms2-loading .circle-wrapper .circle:before { + background-color: @ms2-color-text-primary !important; +} +/* scale bar */ +.leaflet-control-scale-line { + background-color: @ms2-color-primary; + color: @ms2-color-text-primary; +} + +.ol-scale-line { + background-color: @ms2-color-primary !important; + color: @ms2-color-text-primary !important; +} +/* feauture grid */ +.ag-fresh .ag-header, +.ag-fresh .ag-tool-panel-container { + background: @ms2-color-primary !important; + color: @ms2-color-text-primary; + font-family: @font-family-base; +} + +.ag-fresh .ag-tool-panel-container .ag-list-selection { + color: #000000; +} + +.ag-fresh .ag-paging-button { + color: @ms2-color-primary; + background-color: @ms2-color-background; + border: @ms2-color-primary 1px solid; +} + +.ag-fresh .ag-paging-page-summary-panel { + color: @ms2-color-primary; +} + +.ag-fresh .ag-paging-panel { + background-color: @ms2-color-background; +} + +.ag-fresh .ag-body { + background-color: @ms2-color-background !important; +} + +.ag-fresh .ag-body .ag-row-even { + background-color: @ms2-color-background !important; +} + +.ag-fresh .ag-body .ag-row-odd { + background-color: darken(@ms2-color-background,5%) !important; +} +/* card home */ +.map-thumb-description { + color: #000000; +} diff --git a/web/client/themes/default/theme.less b/web/client/themes/default/theme.less new file mode 100644 index 0000000000..7380c44c4d --- /dev/null +++ b/web/client/themes/default/theme.less @@ -0,0 +1,5 @@ +// For LESS file includes, +@import "icons.less"; +@import "bootstrap-theme.less"; +@import "ms2-theme.less"; +@import "variables.less"; diff --git a/web/client/themes/default/variables.less b/web/client/themes/default/variables.less new file mode 100644 index 0000000000..fe18d90a6a --- /dev/null +++ b/web/client/themes/default/variables.less @@ -0,0 +1,64 @@ + +@ms2-color-background: #ffffff; +@ms2-color-code: #c7254e; + +@ms2-color-text-primary: #ffffff; +@ms2-color-text-placeholder: #cccccc; +@ms2-color-text: #333333; + +@ms2-color-disabled: #aacdd4; +@ms2-color-text-disabled: #ffffff; + +@ms2-color-primary: #078aa3; +@ms2-color-info: #5a9aab; +@ms2-color-success: #5ba388; +@ms2-color-warning: #ebbc35; +@ms2-color-danger: #bb4940; + +@ms2-color-primary-hover: lighten(@ms2-color-primary, 10%); +@ms2-color-info-hover: lighten(@ms2-color-info, 10%); +@ms2-color-success-hover: lighten(@ms2-color-success, 10%); +@ms2-color-warning-hover: lighten(@ms2-color-warning, 10%); +@ms2-color-danger-hover: lighten(@ms2-color-danger, 10%); + +@ms2-color-primary-light: lighten(@ms2-color-primary, 40%); +@ms2-color-info-light: lighten(@ms2-color-info, 40%); +@ms2-color-success-light: lighten(@ms2-color-success, 40%); +@ms2-color-warning-light: lighten(@ms2-color-warning, 40%); +@ms2-color-danger-light: lighten(@ms2-color-danger, 40%); + +@ms2-color-primary-active: darken(@ms2-color-primary, 20%); + +@ms2-color-shade: #555555; +@ms2-color-shade-darker: #222222; +@ms2-color-shade-dark: #333333; +@ms2-color-shade-light: #999999; +@ms2-color-shade-lighter: #eeeeee; + +@font-family-base: 'Raleway', sans-serif; +@font-size-base: 14px; +@font-size-large: ceil(@font-size-base * 1.25); +@font-size-small: ceil(@font-size-base * 0.85); +@font-size-h1: floor((@font-size-base * 1.9)); +@font-size-h2: floor((@font-size-base * 1.7)); +@font-size-h3: floor((@font-size-base * 1.5)); +@font-size-h4: floor((@font-size-base * 1.25)); +@font-size-h5: @font-size-base; +@font-size-h6: floor((@font-size-base * 0.85)); +@line-height-computed: floor(@font-size-base * 1.428571429); + +@btn-font-weight: normal; +@icon-margin-ratio: 2; +@icon-resize-ratio: 1.5; + +@icon-size: 25px; +@padding-left-square: floor(@icon-size/@icon-margin-ratio); +@square-btn-size: @padding-left-square * 2 + @icon-size; + +@icon-size-md: floor(@icon-size / @icon-resize-ratio); +@padding-left-square-md: floor(@icon-size-md / @icon-margin-ratio); +@square-btn-medium-size: @padding-left-square-md * 2 + @icon-size-md; + +@icon-size-sm: floor(@icon-size-md / @icon-resize-ratio); +@padding-left-square-sm: floor(@icon-size-sm / @icon-margin-ratio); +@square-btn-small-size: @padding-left-square-sm * 2 + @icon-size-sm; diff --git a/web/client/themes/geosolutions/theme.less b/web/client/themes/geosolutions/theme.less new file mode 100644 index 0000000000..868600e7a8 --- /dev/null +++ b/web/client/themes/geosolutions/theme.less @@ -0,0 +1,5 @@ +@import "../default/icons.less"; +@import "../default/bootstrap-theme.less"; +@import "../default/ms2-theme.less"; +@import "../default/variables.less"; +@import "variables.less"; diff --git a/web/client/themes/geosolutions/variables.less b/web/client/themes/geosolutions/variables.less new file mode 100644 index 0000000000..c8aaae8707 --- /dev/null +++ b/web/client/themes/geosolutions/variables.less @@ -0,0 +1,26 @@ + +@ms2-color-background: #ffffff; + +@ms2-color-text-primary: #ffffff; +@ms2-color-text: #333333; + +@ms2-color-disabled: #eeeeee; +@ms2-color-text-disabled: #aaaaaa; + +@ms2-color-primary: #3ca9d6; +@ms2-color-info: #55ba58; +@ms2-color-success: #8ae234; +@ms2-color-warning: #ffd700; +@ms2-color-danger: #bb384b; + +@ms2-color-primary-hover: #62AE4A; +@ms2-color-primary-light: lighten(@ms2-color-primary-hover, 40%); + +@ms2-color-shade: #bbbbbb; +@ms2-color-shade-darker: darken(@ms2-color-shade, 10%); +@ms2-color-shade-dark: darken(@ms2-color-shade, 5%); +@ms2-color-shade-light: lighten(@ms2-color-shade, 5%); +@ms2-color-shade-lighter: lighten(@ms2-color-shade, 10%); + +@icon-margin-ratio: 8; +@icon-size: 40px; diff --git a/web/client/themes/wasabi/theme.less b/web/client/themes/wasabi/theme.less new file mode 100644 index 0000000000..868600e7a8 --- /dev/null +++ b/web/client/themes/wasabi/theme.less @@ -0,0 +1,5 @@ +@import "../default/icons.less"; +@import "../default/bootstrap-theme.less"; +@import "../default/ms2-theme.less"; +@import "../default/variables.less"; +@import "variables.less"; diff --git a/web/client/themes/wasabi/variables.less b/web/client/themes/wasabi/variables.less new file mode 100644 index 0000000000..a123e11797 --- /dev/null +++ b/web/client/themes/wasabi/variables.less @@ -0,0 +1,20 @@ + +@ms2-color-background: #333333; + +@ms2-color-text-primary: #333333; +@ms2-color-text: #e99e9e; + +@ms2-color-disabled: #eeeeee; +@ms2-color-text-disabled: #aaaaaa; + +@ms2-color-primary: #8ae234; +@ms2-color-info: #7e64a5; +@ms2-color-success: #4abdac; +@ms2-color-warning: #ffd700; +@ms2-color-danger: #bb384b; + +@ms2-color-shade: #333333; +@ms2-color-shade-darker: darken(@ms2-color-shade, 10%); +@ms2-color-shade-dark: darken(@ms2-color-shade, 5%); +@ms2-color-shade-light: lighten(@ms2-color-shade, 5%); +@ms2-color-shade-lighter: lighten(@ms2-color-shade, 10%); diff --git a/web/client/translations/data.de-DE b/web/client/translations/data.de-DE index cc933496af..38ffd70ce0 100644 --- a/web/client/translations/data.de-DE +++ b/web/client/translations/data.de-DE @@ -122,6 +122,7 @@ "deleteMapMessage": "Möchtest du wirklich diese Karte löschen?", "editMapMetadata":"Bearbeite die Eigenschaften der Karte", "mapTypes_combo": "Wähle einen Karten-Viewer: ", + "theme_combo": "Thema wählen:", "maps_title": "Karten", "locales_combo": "Sprache:" }, diff --git a/web/client/translations/data.en-US b/web/client/translations/data.en-US index af2ae9aaf4..38e4b093f4 100644 --- a/web/client/translations/data.en-US +++ b/web/client/translations/data.en-US @@ -122,6 +122,7 @@ "deleteMapMessage": "Do you really want to delete this map?", "editMapMetadata":"Edit Map Properties", "mapTypes_combo": "Select Map Viewer: ", + "theme_combo": "Select Theme:", "maps_title": "Maps", "locales_combo": "Language:" }, diff --git a/web/client/translations/data.fr-FR b/web/client/translations/data.fr-FR index fb5948483d..f60e80f9e3 100644 --- a/web/client/translations/data.fr-FR +++ b/web/client/translations/data.fr-FR @@ -123,6 +123,7 @@ "deleteMapMessage": "Voulez-vous supprimer cette carte?", "editMapMetadata":"Modifier les propriétés de la carte", "mapTypes_combo": "Selectionner le viewer de carte: ", + "theme_combo": "Sélectionne un thème:", "maps_title": "Cartes", "locales_combo": "Langue:" }, diff --git a/web/client/translations/data.it-IT b/web/client/translations/data.it-IT index b8f2350e65..6015884853 100644 --- a/web/client/translations/data.it-IT +++ b/web/client/translations/data.it-IT @@ -122,6 +122,7 @@ "deleteMapMessage": "Vuoi eliminare questa mappa?", "editMapMetadata":"Modifica Proprietà", "mapTypes_combo": "Seleziona il visualizzatore di mappa:", + "theme_combo": "Seleziona Tema:", "maps_title": "Mappe", "locales_combo": "Lingua:" }, diff --git a/webpack.config.js b/webpack.config.js index aa71fc6ab0..bcdc5d7b87 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -3,13 +3,20 @@ var DefinePlugin = require("webpack/lib/DefinePlugin"); var LoaderOptionsPlugin = require("webpack/lib/LoaderOptionsPlugin"); var NormalModuleReplacementPlugin = require("webpack/lib/NormalModuleReplacementPlugin"); var NoEmitOnErrorsPlugin = require("webpack/lib/NoEmitOnErrorsPlugin"); - +const assign = require('object-assign'); +const themeEntries = require('./themes.js').themeEntries; +const extractThemesPlugin = require('./themes.js').extractThemesPlugin; module.exports = { - entry: { + entry: assign({ 'webpack-dev-server': 'webpack-dev-server/client?http://0.0.0.0:8081', // WebpackDevServer host and port 'webpack': 'webpack/hot/only-dev-server', // "only" prevents reload on syntax errors "mapstore2": path.join(__dirname, "web", "client", "product", "app") - }, + }, themeEntries + /* { + "themes/default": path.join(__dirname, "web", "client", "themes", "default", "theme.less"), + "themes/dark": path.join(__dirname, "web", "client", "themes", "dark", "theme.less") + }*/ + ), output: { path: path.join(__dirname, "web", "client", "dist"), publicPath: "/dist/", @@ -27,7 +34,8 @@ module.exports = { new NormalModuleReplacementPlugin(/cesium$/, path.join(__dirname, "web", "client", "libs", "cesium")), new NormalModuleReplacementPlugin(/openlayers$/, path.join(__dirname, "web", "client", "libs", "openlayers")), new NormalModuleReplacementPlugin(/proj4$/, path.join(__dirname, "web", "client", "libs", "proj4")), - new NoEmitOnErrorsPlugin() + new NoEmitOnErrorsPlugin(), + extractThemesPlugin ], resolve: { extensions: [".js", ".jsx"] @@ -45,6 +53,7 @@ module.exports = { }, { test: /\.less$/, + exclude: /themes\/.+\.less$/, use: [{ loader: 'style-loader' }, { @@ -53,6 +62,13 @@ module.exports = { loader: 'less-loader' }] }, + { + test: /themes\/.+\.less$/, + use: extractThemesPlugin.extract({ + fallback: 'style-loader', + use: ['css-loader', 'less-loader'] + }) + }, { test: /\.woff(2)?(\?v=[0-9].[0-9].[0-9])?$/, use: [{ From 6d9abebb48954078c3fb0e2fe843f9ad368d9e44 Mon Sep 17 00:00:00 2001 From: allyoucanmap Date: Fri, 10 Mar 2017 16:51:55 +0100 Subject: [PATCH 3/5] Added styles to theme less --- .../TOC/fragments/settings/WMSStyle.jsx | 2 +- .../components/manager/users/GroupCard.jsx | 4 +- .../components/manager/users/UserCard.jsx | 4 +- .../mapcontrols/Snapshot/SnapshotPanel.jsx | 2 +- .../mapcontrols/search/SearchBar.jsx | 6 +- .../mapcontrols/search/searchbar.css | 4 +- web/client/examples/api/index.html | 4 +- .../examples/plugins/assets/css/plugins.css | 2 +- web/client/plugins/manager/GroupManager.jsx | 2 +- web/client/plugins/manager/Manager.jsx | 2 +- web/client/plugins/manager/UserManager.jsx | 2 +- web/client/plugins/manager/style/manager.css | 1 - web/client/plugins/print/print.css | 1 - web/client/product/assets/css/maps.css | 3 +- web/client/themes/console/variables.less | 3 - web/client/themes/dark/variables.less | 3 - .../themes/default/bootstrap-theme.less | 17 +-- web/client/themes/default/ms2-theme.less | 123 ++++++++++++++++-- web/client/themes/default/variables.less | 12 +- web/client/themes/geosolutions/variables.less | 3 - 20 files changed, 146 insertions(+), 54 deletions(-) diff --git a/web/client/components/TOC/fragments/settings/WMSStyle.jsx b/web/client/components/TOC/fragments/settings/WMSStyle.jsx index 237528e6e4..2018f584b6 100644 --- a/web/client/components/TOC/fragments/settings/WMSStyle.jsx +++ b/web/client/components/TOC/fragments/settings/WMSStyle.jsx @@ -78,7 +78,7 @@ const WMSStyle = React.createClass({
{this.renderLegend()} {this.renderError()} - +
); }, diff --git a/web/client/components/manager/users/GroupCard.jsx b/web/client/components/manager/users/GroupCard.jsx index 5f49aae8d3..b97f2e8e84 100644 --- a/web/client/components/manager/users/GroupCard.jsx +++ b/web/client/components/manager/users/GroupCard.jsx @@ -40,8 +40,8 @@ const GroupCard = React.createClass({ return (

{this.props.group.enabled ? - : - } + : + }
); }, renderAvatar() { diff --git a/web/client/components/manager/users/UserCard.jsx b/web/client/components/manager/users/UserCard.jsx index 91002a6414..dc2cafb4fa 100644 --- a/web/client/components/manager/users/UserCard.jsx +++ b/web/client/components/manager/users/UserCard.jsx @@ -42,8 +42,8 @@ const UserCard = React.createClass({ return (
{this.props.user.enabled ? - : - } + : + }
); }, renderGroups() { diff --git a/web/client/components/mapcontrols/Snapshot/SnapshotPanel.jsx b/web/client/components/mapcontrols/Snapshot/SnapshotPanel.jsx index da315031d3..c8e26e49a2 100644 --- a/web/client/components/mapcontrols/Snapshot/SnapshotPanel.jsx +++ b/web/client/components/mapcontrols/Snapshot/SnapshotPanel.jsx @@ -111,7 +111,7 @@ let SnapshotPanel = React.createClass({ renderButton(enabled) { return (); }, renderError() { diff --git a/web/client/components/mapcontrols/search/SearchBar.jsx b/web/client/components/mapcontrols/search/SearchBar.jsx index 0e44937526..5549700136 100644 --- a/web/client/components/mapcontrols/search/SearchBar.jsx +++ b/web/client/components/mapcontrols/search/SearchBar.jsx @@ -121,13 +121,13 @@ let SearchBar = React.createClass({ if (this.props.loading) { addonAfter = [, addonAfter]; } if (this.props.error) { let tooltip = {this.props.error && this.props.error.message || null}; - addonAfter.push(); + addonAfter.push(); } return {addonAfter}; }, diff --git a/web/client/components/mapcontrols/search/searchbar.css b/web/client/components/mapcontrols/search/searchbar.css index 46aa6f1e15..1cb9b7c488 100644 --- a/web/client/components/mapcontrols/search/searchbar.css +++ b/web/client/components/mapcontrols/search/searchbar.css @@ -13,14 +13,14 @@ box-shadow: 2px 2px 4px #A7A7A7; border-radius: 4px; } -.searchclear { +/*.searchclear { top:0; bottom:0; height:14px; margin:auto; font-size:14px; cursor:pointer; -} +}*/ .search-result-list{ position: absolute; top: 50px; diff --git a/web/client/examples/api/index.html b/web/client/examples/api/index.html index 85cd2dcf28..32a56f689e 100644 --- a/web/client/examples/api/index.html +++ b/web/client/examples/api/index.html @@ -9,9 +9,7 @@ - - - + diff --git a/web/client/examples/plugins/assets/css/plugins.css b/web/client/examples/plugins/assets/css/plugins.css index 2332f90ebe..182ee734db 100644 --- a/web/client/examples/plugins/assets/css/plugins.css +++ b/web/client/examples/plugins/assets/css/plugins.css @@ -10,7 +10,7 @@ html, body, #container, #map { } #plugins-list button { display: inline-block; - margin-right: 10px; + margin: 2px 10px 0 0; } #plugins-list li .form-group:nth-child(2) { display: inline-block; diff --git a/web/client/plugins/manager/GroupManager.jsx b/web/client/plugins/manager/GroupManager.jsx index 2fc2efc9a1..c3afe07da1 100644 --- a/web/client/plugins/manager/GroupManager.jsx +++ b/web/client/plugins/manager/GroupManager.jsx @@ -65,7 +65,7 @@ const GroupManager = React.createClass({

diff --git a/web/client/plugins/manager/Manager.jsx b/web/client/plugins/manager/Manager.jsx index 0132f471cc..1762adabd3 100644 --- a/web/client/plugins/manager/Manager.jsx +++ b/web/client/plugins/manager/Manager.jsx @@ -50,7 +50,7 @@ const Manager = React.createClass({ this.context.router.push("/manager/" + tool.id); }}> {this.renderToolIcon(tool)} - {tool.msgId ? : tool.title || tool.id} +  {tool.msgId ? : tool.title || tool.id} )); }, renderPlugin() { diff --git a/web/client/plugins/manager/UserManager.jsx b/web/client/plugins/manager/UserManager.jsx index 9a1f1d7cce..bf1a89a29a 100644 --- a/web/client/plugins/manager/UserManager.jsx +++ b/web/client/plugins/manager/UserManager.jsx @@ -64,7 +64,7 @@ const UserManager = React.createClass({ limit={this.props.limit} />

- +
diff --git a/web/client/plugins/manager/style/manager.css b/web/client/plugins/manager/style/manager.css index 4eb489f12e..0a3f26a540 100644 --- a/web/client/plugins/manager/style/manager.css +++ b/web/client/plugins/manager/style/manager.css @@ -6,7 +6,6 @@ } .Manager-Container .Manager-Tools-Nav .glyphicon { - font-size: 25px; vertical-align: middle; } diff --git a/web/client/plugins/print/print.css b/web/client/plugins/print/print.css index 9fba4d368b..08a55f313e 100644 --- a/web/client/plugins/print/print.css +++ b/web/client/plugins/print/print.css @@ -152,7 +152,6 @@ #mapstore-print-panel .panel-body { padding: 10px; - border: solid 1px #078AA3; } #mapstore-print-panel .form-control { diff --git a/web/client/product/assets/css/maps.css b/web/client/product/assets/css/maps.css index 5ed60de014..6807b7179c 100644 --- a/web/client/product/assets/css/maps.css +++ b/web/client/product/assets/css/maps.css @@ -22,8 +22,7 @@ #mapstore-navbar #mapstore-langselector { float: right; - margin-top: 10px; - margin-bottom: 5px; + margin-top: 8px; margin-right: 10px; width: auto; } diff --git a/web/client/themes/console/variables.less b/web/client/themes/console/variables.less index fcb31b64e9..aee7e6d66d 100644 --- a/web/client/themes/console/variables.less +++ b/web/client/themes/console/variables.less @@ -20,6 +20,3 @@ @ms2-color-shade-lighter: lighten(@ms2-color-shade, 10%); @font-family-base: monospace; - -@icon-margin-ratio: 5; -@icon-size: 36px; diff --git a/web/client/themes/dark/variables.less b/web/client/themes/dark/variables.less index c34deb3789..20af0fcbf4 100644 --- a/web/client/themes/dark/variables.less +++ b/web/client/themes/dark/variables.less @@ -18,6 +18,3 @@ @ms2-color-shade-dark: darken(@ms2-color-shade, 2%); @ms2-color-shade-light: lighten(@ms2-color-shade, 2%); @ms2-color-shade-lighter: lighten(@ms2-color-shade, 5%); - -@icon-margin-ratio: 5; -@icon-size: 36px; diff --git a/web/client/themes/default/bootstrap-theme.less b/web/client/themes/default/bootstrap-theme.less index f324bf920c..d6812f14d3 100644 --- a/web/client/themes/default/bootstrap-theme.less +++ b/web/client/themes/default/bootstrap-theme.less @@ -2344,7 +2344,6 @@ fieldset[disabled] .btn-link:focus { .btn-group-sm > .btn { padding: 6px 12px; font-size: @font-size-small; - } .btn-xs, .btn-group-xs > .btn { @@ -2392,15 +2391,14 @@ input[type="button"].btn-block { display: inline-block; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + top: 0; } /* btn with icon */ .btn .glyphicon{ - float: left; - margin-top: 0; - font-size: @font-size-base; - /*margin-right: 5px;*/ - + float: left; + margin-top: 0; + font-size: @font-size-base; } .btn-lg .glyphicon{ @@ -2415,12 +2413,11 @@ input[type="button"].btn-block { .btn-sm .glyphicon{ font-size: ceil(@font-size-small * 1); - margin-right: 5px; + /*margin-right: 5px;*/ } .btn-xs .glyphicon{ font-size: ceil(@font-size-small * 1); - /*margin-right: 5px;*/ } .caret { @@ -3009,7 +3006,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { - color: @ms2-color-text; + color: @ms2-color-background; background-color: @ms2-color-primary; } .nav-stacked > li { @@ -4257,7 +4254,7 @@ a.list-group-item-danger.active:focus { color: inherit; } .panel-title > a { - color: inherit; + color: @ms2-color-text; } .panel-footer { padding: 10px 15px; diff --git a/web/client/themes/default/ms2-theme.less b/web/client/themes/default/ms2-theme.less index c82c7b1daf..1f766dadf3 100644 --- a/web/client/themes/default/ms2-theme.less +++ b/web/client/themes/default/ms2-theme.less @@ -94,8 +94,14 @@ div.MapSearchBar .input-group-addon { font-size: @icon-size; } -#mapstore-navbar .navbar-dx .MapSearchBar .input-group-addon .searchclear { - font-size: @icon-size; +.MapSearchBar .input-group-addon .searchclear, +.MapSearchBar .input-group-addon .searcherror { + font-size: @icon-size-md; + margin-right: 4px; +} + +.MapSearchBar .input-group-addon .searcherror { + color: @ms2-color-danger; } #mapstore-navbar .navbar-dx .search-result-list { @@ -530,8 +536,21 @@ div.ol-scale-line-inner { } .modal-header button.close { - margin-top: -7px; + margin-top: -2px; + opacity: 1; + font-size: @font-size-base * 2; +} + +.draggable-header button.close { + margin-top: 0; opacity: 1; + font-size: @font-size-base; +} + +.modal-header .login-panel-close { + margin-top: -2px !important; + opacity: 1 !important; + font-size: @font-size-base * 2 !important; } .modal-header button.close:hover { @@ -697,14 +716,19 @@ div.ol-scale-line-inner { display: block; } +.gridcard-tools { + height: @grid-btn-size !important; +} + .gridcard-button { - height: 30px; - width: 30px; - padding: floor((30 - @icon-size-sm)/2); + height: @grid-btn-size; + width: @grid-btn-size; + padding: 0 0 0 @grid-btn-padding-left; } -.gridcard-button span.glyphicon { - font-size: @icon-size-sm; +.gridcard-button .glyphicon { + font-size: @grid-icon-size; + margin-top: -2px; /* remove after new icons */ } #mapstore-layer-settings { @@ -715,6 +739,24 @@ div.ol-scale-line-inner { .user-edit-dialog { background: @ms2-color-background; } + +.user-status { + width: @grid-btn-size + @grid-btn-padding-left * 2; + text-align: center; +} + +.user-status .glyphicon { + font-size: @grid-icon-size; + padding: 0 0 @grid-btn-padding-left 0; +} + +.user-status .glyphicon-ok-sign { + color: @ms2-color-success; +} + +.user-status .glyphicon-minus-sign { + color: @ms2-color-danger; +} /* query panel */ #mapstore-drawermenu #toc-query-container { background-color: darken(@ms2-color-background, 2%); @@ -814,6 +856,56 @@ div.ol-scale-line-inner { .rw-select { border-left: 1px solid @ms2-color-shade-lighter !important; } + +.Select-placeholder { + background-color: @ms2-color-background; + border: 1px solid @ms2-color-shade-lighter; + color: @ms2-color-text-placeholder !important; +} + +.Select-control { + border: none !important; +} + +.Select-arrow { + border-color: @ms2-color-primary transparent transparent !important; +} + +.Select-menu-outer { + background-color: @ms2-color-background !important; + border: 1px solid @ms2-color-shade-lighter !important; +} + +.Select-option { + background-color: @ms2-color-background !important; + color: @ms2-color-text-placeholder !important; +} + +.Select-option:hover { + background-color: @ms2-color-primary !important; + color: @ms2-color-background !important; +} + +select.form-control { + border: 1px solid @ms2-color-shade-lighter; +} + +select.form-control option { + color: @ms2-color-text; + background-color: darken(@ms2-color-background, 5%); +} + +#mapstore-scalebox select { + background-color: #fff; + color: #222; + border: none; +} + +#mapstore-scalebox option { + background-color: #fff; + color: #222; +} + /* help badge */ #helpbadge-scaleBox { background-color: @ms2-color-text-primary; @@ -827,7 +919,7 @@ div.ol-scale-line-inner { /* tutorial */ .group-thumb, .user-thumb { - background-color: lighten(@ms2-color-background, 2%); + background-color: darken(@ms2-color-background, 4%); } /* tutorial */ .joyride-tooltip__button--primary { @@ -899,3 +991,16 @@ div.ol-scale-line-inner { .map-thumb-description { color: #000000; } + +#mapstore-langselector button{ + padding: 6px 12px; +} + +#mapstore-print-panel .panel-body { + border: solid 1px @ms2-color-primary; +} + +.ms-footer { + border-top: solid 1px @ms2-color-primary !important; + color: @ms2-color-primary !important; +} diff --git a/web/client/themes/default/variables.less b/web/client/themes/default/variables.less index fe18d90a6a..660b2d98b5 100644 --- a/web/client/themes/default/variables.less +++ b/web/client/themes/default/variables.less @@ -3,15 +3,15 @@ @ms2-color-code: #c7254e; @ms2-color-text-primary: #ffffff; -@ms2-color-text-placeholder: #cccccc; +@ms2-color-text-placeholder: #999999; @ms2-color-text: #333333; -@ms2-color-disabled: #aacdd4; +@ms2-color-disabled: #5C9FB4; @ms2-color-text-disabled: #ffffff; @ms2-color-primary: #078aa3; @ms2-color-info: #5a9aab; -@ms2-color-success: #5ba388; +@ms2-color-success: #398439; @ms2-color-warning: #ebbc35; @ms2-color-danger: #bb4940; @@ -51,7 +51,7 @@ @icon-margin-ratio: 2; @icon-resize-ratio: 1.5; -@icon-size: 25px; +@icon-size: 26px; @padding-left-square: floor(@icon-size/@icon-margin-ratio); @square-btn-size: @padding-left-square * 2 + @icon-size; @@ -62,3 +62,7 @@ @icon-size-sm: floor(@icon-size-md / @icon-resize-ratio); @padding-left-square-sm: floor(@icon-size-sm / @icon-margin-ratio); @square-btn-small-size: @padding-left-square-sm * 2 + @icon-size-sm; + +@grid-icon-size: 18px; +@grid-btn-padding-left: 6px; +@grid-btn-size: @grid-btn-padding-left * 2 + @grid-icon-size; diff --git a/web/client/themes/geosolutions/variables.less b/web/client/themes/geosolutions/variables.less index c8aaae8707..6839b10086 100644 --- a/web/client/themes/geosolutions/variables.less +++ b/web/client/themes/geosolutions/variables.less @@ -21,6 +21,3 @@ @ms2-color-shade-dark: darken(@ms2-color-shade, 5%); @ms2-color-shade-light: lighten(@ms2-color-shade, 5%); @ms2-color-shade-lighter: lighten(@ms2-color-shade, 10%); - -@icon-margin-ratio: 8; -@icon-size: 40px; From 6ac5aa21642cec24598c7c25ddc0ffdadceea3f2 Mon Sep 17 00:00:00 2001 From: allyoucanmap Date: Fri, 10 Mar 2017 16:57:01 +0100 Subject: [PATCH 4/5] Removed useless props --- web/client/plugins/manager/GroupManager.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/client/plugins/manager/GroupManager.jsx b/web/client/plugins/manager/GroupManager.jsx index c3afe07da1..9ff4c7df8a 100644 --- a/web/client/plugins/manager/GroupManager.jsx +++ b/web/client/plugins/manager/GroupManager.jsx @@ -65,7 +65,7 @@ const GroupManager = React.createClass({

From 002179ee3819a0701cdae331762f065bcb5d4bb9 Mon Sep 17 00:00:00 2001 From: allyoucanmap Date: Mon, 13 Mar 2017 08:13:08 +0100 Subject: [PATCH 5/5] Updated bootstrap to version 3.3.7 --- web/client/examples/api/index.html | 1 - web/client/examples/plugins/index.html | 1 - web/client/index.html | 1 - web/client/themes/console/theme.less | 5 +- web/client/themes/console/variables.less | 35 +- web/client/themes/dark/theme.less | 4 +- web/client/themes/dark/variables.less | 32 +- .../themes/default/bootstrap-theme.less | 4977 ----------------- .../default/bootstrap-theme/.csscomb.json | 304 + .../themes/default/bootstrap-theme/.csslintrc | 19 + .../default/bootstrap-theme/alerts.less | 73 + .../default/bootstrap-theme/badges.less | 66 + .../default/bootstrap-theme/bootstrap.less | 56 + .../default/bootstrap-theme/breadcrumbs.less | 26 + .../bootstrap-theme/button-groups.less | 244 + .../default/bootstrap-theme/buttons.less | 166 + .../default/bootstrap-theme/carousel.less | 270 + .../themes/default/bootstrap-theme/close.less | 34 + .../themes/default/bootstrap-theme/code.less | 69 + .../bootstrap-theme/component-animations.less | 33 + .../default/bootstrap-theme/dropdowns.less | 216 + .../themes/default/bootstrap-theme/forms.less | 613 ++ .../default/bootstrap-theme/glyphicons.less | 305 + .../themes/default/bootstrap-theme/grid.less | 84 + .../default/bootstrap-theme/input-groups.less | 171 + .../default/bootstrap-theme/jumbotron.less | 54 + .../default/bootstrap-theme/labels.less | 64 + .../default/bootstrap-theme/list-group.less | 130 + .../themes/default/bootstrap-theme/media.less | 66 + .../default/bootstrap-theme/mixins.less | 40 + .../bootstrap-theme/mixins/alerts.less | 14 + .../mixins/background-variant.less | 9 + .../bootstrap-theme/mixins/border-radius.less | 18 + .../bootstrap-theme/mixins/buttons.less | 70 + .../bootstrap-theme/mixins/center-block.less | 7 + .../bootstrap-theme/mixins/clearfix.less | 22 + .../default/bootstrap-theme/mixins/forms.less | 85 + .../bootstrap-theme/mixins/gradients.less | 59 + .../mixins/grid-framework.less | 91 + .../default/bootstrap-theme/mixins/grid.less | 122 + .../bootstrap-theme/mixins/hide-text.less | 21 + .../default/bootstrap-theme/mixins/image.less | 33 + .../bootstrap-theme/mixins/labels.less | 12 + .../bootstrap-theme/mixins/list-group.less | 30 + .../bootstrap-theme/mixins/nav-divider.less | 10 + .../mixins/nav-vertical-align.less | 9 + .../bootstrap-theme/mixins/opacity.less | 8 + .../bootstrap-theme/mixins/pagination.less | 24 + .../bootstrap-theme/mixins/panels.less | 24 + .../bootstrap-theme/mixins/progress-bar.less | 10 + .../bootstrap-theme/mixins/reset-filter.less | 8 + .../bootstrap-theme/mixins/reset-text.less | 18 + .../bootstrap-theme/mixins/resize.less | 6 + .../mixins/responsive-visibility.less | 15 + .../default/bootstrap-theme/mixins/size.less | 10 + .../bootstrap-theme/mixins/tab-focus.less | 9 + .../bootstrap-theme/mixins/table-row.less | 28 + .../bootstrap-theme/mixins/text-emphasis.less | 9 + .../bootstrap-theme/mixins/text-overflow.less | 8 + .../mixins/vendor-prefixes.less | 227 + .../default/bootstrap-theme/modals.less | 152 + .../default/bootstrap-theme/navbar.less | 660 +++ .../themes/default/bootstrap-theme/navs.less | 242 + .../default/bootstrap-theme/normalize.less | 424 ++ .../themes/default/bootstrap-theme/pager.less | 54 + .../default/bootstrap-theme/pagination.less | 89 + .../default/bootstrap-theme/panels.less | 271 + .../default/bootstrap-theme/popovers.less | 131 + .../themes/default/bootstrap-theme/print.less | 101 + .../bootstrap-theme/progress-bars.less | 87 + .../bootstrap-theme/responsive-embed.less | 35 + .../bootstrap-theme/responsive-utilities.less | 194 + .../default/bootstrap-theme/scaffolding.less | 161 + .../default/bootstrap-theme/tables.less | 234 + .../themes/default/bootstrap-theme/theme.less | 291 + .../default/bootstrap-theme/thumbnails.less | 36 + .../default/bootstrap-theme/tooltip.less | 101 + .../themes/default/bootstrap-theme/type.less | 302 + .../default/bootstrap-theme/utilities.less | 55 + .../bootstrap-theme/variables-default.less | 869 +++ .../default/bootstrap-theme/variables.less | 866 +++ .../themes/default/bootstrap-theme/wells.less | 29 + web/client/themes/default/icons/icons.eot | Bin 93364 -> 55064 bytes web/client/themes/default/icons/icons.svg | 419 +- web/client/themes/default/icons/icons.ttf | Bin 93192 -> 54900 bytes web/client/themes/default/icons/icons.woff | Bin 47948 -> 34536 bytes .../default/mapstore2-theme/button.less | 19 + .../default/mapstore2-theme/draggable.less | 8 + .../default/mapstore2-theme/drawer-menu.less | 50 + .../mapstore2-theme/dropdown-menu.less | 37 + .../default/mapstore2-theme/dropzone.less | 83 + .../default/mapstore2-theme/feature-grid.less | 38 + .../default/mapstore2-theme/gridcard.less | 23 + .../themes/default/mapstore2-theme/help.less | 10 + .../themes/default/mapstore2-theme/home.less | 14 + .../default/mapstore2-theme/loading.less | 14 + .../default/mapstore2-theme/login-page.less | 24 + .../default/mapstore2-theme/map-controls.less | 87 + .../default/mapstore2-theme/map-toolbar.less | 4 + .../default/mapstore2-theme/mapstore2.less | 20 + .../default/mapstore2-theme/measure.less | 17 + .../themes/default/mapstore2-theme/print.less | 4 + .../default/mapstore2-theme/query-panel.less | 53 + .../default/mapstore2-theme/search.less | 131 + .../default/mapstore2-theme/select.less | 82 + .../default/mapstore2-theme/tutorial.less | 12 + web/client/themes/default/ms2-theme.less | 1006 ---- web/client/themes/default/theme.less | 4 +- web/client/themes/default/variables.less | 101 +- web/client/themes/geosolutions/theme.less | 4 +- web/client/themes/geosolutions/variables.less | 35 +- web/client/themes/wasabi/theme.less | 4 +- web/client/themes/wasabi/variables.less | 32 +- 113 files changed, 10632 insertions(+), 6262 deletions(-) delete mode 100644 web/client/themes/default/bootstrap-theme.less create mode 100644 web/client/themes/default/bootstrap-theme/.csscomb.json create mode 100644 web/client/themes/default/bootstrap-theme/.csslintrc create mode 100644 web/client/themes/default/bootstrap-theme/alerts.less create mode 100644 web/client/themes/default/bootstrap-theme/badges.less create mode 100644 web/client/themes/default/bootstrap-theme/bootstrap.less create mode 100644 web/client/themes/default/bootstrap-theme/breadcrumbs.less create mode 100644 web/client/themes/default/bootstrap-theme/button-groups.less create mode 100644 web/client/themes/default/bootstrap-theme/buttons.less create mode 100644 web/client/themes/default/bootstrap-theme/carousel.less create mode 100644 web/client/themes/default/bootstrap-theme/close.less create mode 100644 web/client/themes/default/bootstrap-theme/code.less create mode 100644 web/client/themes/default/bootstrap-theme/component-animations.less create mode 100644 web/client/themes/default/bootstrap-theme/dropdowns.less create mode 100644 web/client/themes/default/bootstrap-theme/forms.less create mode 100644 web/client/themes/default/bootstrap-theme/glyphicons.less create mode 100644 web/client/themes/default/bootstrap-theme/grid.less create mode 100644 web/client/themes/default/bootstrap-theme/input-groups.less create mode 100644 web/client/themes/default/bootstrap-theme/jumbotron.less create mode 100644 web/client/themes/default/bootstrap-theme/labels.less create mode 100644 web/client/themes/default/bootstrap-theme/list-group.less create mode 100644 web/client/themes/default/bootstrap-theme/media.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/alerts.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/background-variant.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/border-radius.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/buttons.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/center-block.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/clearfix.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/forms.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/gradients.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/grid-framework.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/grid.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/hide-text.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/image.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/labels.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/list-group.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/nav-divider.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/nav-vertical-align.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/opacity.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/pagination.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/panels.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/progress-bar.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/reset-filter.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/reset-text.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/resize.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/responsive-visibility.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/size.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/tab-focus.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/table-row.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/text-emphasis.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/text-overflow.less create mode 100644 web/client/themes/default/bootstrap-theme/mixins/vendor-prefixes.less create mode 100644 web/client/themes/default/bootstrap-theme/modals.less create mode 100644 web/client/themes/default/bootstrap-theme/navbar.less create mode 100644 web/client/themes/default/bootstrap-theme/navs.less create mode 100644 web/client/themes/default/bootstrap-theme/normalize.less create mode 100644 web/client/themes/default/bootstrap-theme/pager.less create mode 100644 web/client/themes/default/bootstrap-theme/pagination.less create mode 100644 web/client/themes/default/bootstrap-theme/panels.less create mode 100644 web/client/themes/default/bootstrap-theme/popovers.less create mode 100644 web/client/themes/default/bootstrap-theme/print.less create mode 100644 web/client/themes/default/bootstrap-theme/progress-bars.less create mode 100644 web/client/themes/default/bootstrap-theme/responsive-embed.less create mode 100644 web/client/themes/default/bootstrap-theme/responsive-utilities.less create mode 100644 web/client/themes/default/bootstrap-theme/scaffolding.less create mode 100644 web/client/themes/default/bootstrap-theme/tables.less create mode 100644 web/client/themes/default/bootstrap-theme/theme.less create mode 100644 web/client/themes/default/bootstrap-theme/thumbnails.less create mode 100644 web/client/themes/default/bootstrap-theme/tooltip.less create mode 100644 web/client/themes/default/bootstrap-theme/type.less create mode 100644 web/client/themes/default/bootstrap-theme/utilities.less create mode 100644 web/client/themes/default/bootstrap-theme/variables-default.less create mode 100644 web/client/themes/default/bootstrap-theme/variables.less create mode 100644 web/client/themes/default/bootstrap-theme/wells.less create mode 100644 web/client/themes/default/mapstore2-theme/button.less create mode 100644 web/client/themes/default/mapstore2-theme/draggable.less create mode 100644 web/client/themes/default/mapstore2-theme/drawer-menu.less create mode 100644 web/client/themes/default/mapstore2-theme/dropdown-menu.less create mode 100644 web/client/themes/default/mapstore2-theme/dropzone.less create mode 100644 web/client/themes/default/mapstore2-theme/feature-grid.less create mode 100644 web/client/themes/default/mapstore2-theme/gridcard.less create mode 100644 web/client/themes/default/mapstore2-theme/help.less create mode 100644 web/client/themes/default/mapstore2-theme/home.less create mode 100644 web/client/themes/default/mapstore2-theme/loading.less create mode 100644 web/client/themes/default/mapstore2-theme/login-page.less create mode 100644 web/client/themes/default/mapstore2-theme/map-controls.less create mode 100644 web/client/themes/default/mapstore2-theme/map-toolbar.less create mode 100644 web/client/themes/default/mapstore2-theme/mapstore2.less create mode 100644 web/client/themes/default/mapstore2-theme/measure.less create mode 100644 web/client/themes/default/mapstore2-theme/print.less create mode 100644 web/client/themes/default/mapstore2-theme/query-panel.less create mode 100644 web/client/themes/default/mapstore2-theme/search.less create mode 100644 web/client/themes/default/mapstore2-theme/select.less create mode 100644 web/client/themes/default/mapstore2-theme/tutorial.less delete mode 100644 web/client/themes/default/ms2-theme.less diff --git a/web/client/examples/api/index.html b/web/client/examples/api/index.html index 32a56f689e..caaf95398b 100644 --- a/web/client/examples/api/index.html +++ b/web/client/examples/api/index.html @@ -8,7 +8,6 @@ - diff --git a/web/client/examples/plugins/index.html b/web/client/examples/plugins/index.html index 5a0f959c6d..a7a4f58f35 100644 --- a/web/client/examples/plugins/index.html +++ b/web/client/examples/plugins/index.html @@ -8,7 +8,6 @@ - diff --git a/web/client/index.html b/web/client/index.html index 44b5c7b66b..ed9a207944 100644 --- a/web/client/index.html +++ b/web/client/index.html @@ -9,7 +9,6 @@ - diff --git a/web/client/themes/console/theme.less b/web/client/themes/console/theme.less index a2127ee51a..4a3542f16c 100644 --- a/web/client/themes/console/theme.less +++ b/web/client/themes/console/theme.less @@ -1,6 +1,5 @@ - @import "../default/icons.less"; -@import "../default/bootstrap-theme.less"; -@import "../default/ms2-theme.less"; +@import "../default/bootstrap-theme/bootstrap.less"; +@import "../default/mapstore2-theme/mapstore2.less"; @import "../default/variables.less"; @import "variables.less"; diff --git a/web/client/themes/console/variables.less b/web/client/themes/console/variables.less index aee7e6d66d..76dfe45884 100644 --- a/web/client/themes/console/variables.less +++ b/web/client/themes/console/variables.less @@ -1,22 +1,23 @@ -@ms2-color-background: #0a0b30; +/* base color */ +@ms2-text-color: #f2f2f2; +@ms2-body-bg: #0a0b30; -@ms2-color-text-primary: #ffffff; -@ms2-color-text: #f2f2f2; +/* disabled color */ +@ms2-disabled-color: #aaaaaa; +@ms2-disabled-bg: #eeeeee; -@ms2-color-disabled: #aea79f; -@ms2-color-text-disabled: #eeeeee; +/* brand color */ +@ms2-primary-color: #ffffff; +@ms2-primary-bg: #E95420; +@ms2-info-bg: #7e64a5; +@ms2-success-bg: #8ae234; +@ms2-warning-bg: #ffd700; +@ms2-danger-bg: #bb384b; -@ms2-color-primary: #E95420; -@ms2-color-info: #7e64a5; -@ms2-color-success: #8ae234; -@ms2-color-warning: #ffd700; -@ms2-color-danger: #bb384b; +/* btn disabled */ +@ms2-btn-disabled-color: #aaaaaa; +@ms2-btn-disabled-bg: #eeeeee; -@ms2-color-shade: #555555; -@ms2-color-shade-darker: darken(@ms2-color-shade, 10%); -@ms2-color-shade-dark: darken(@ms2-color-shade, 5%); -@ms2-color-shade-light: lighten(@ms2-color-shade, 5%); -@ms2-color-shade-lighter: lighten(@ms2-color-shade, 10%); - -@font-family-base: monospace; +/* font */ +@ms2-font-family-sans-serif: Menlo, Monaco, Consolas, "Courier New", monospace;; diff --git a/web/client/themes/dark/theme.less b/web/client/themes/dark/theme.less index 868600e7a8..4a3542f16c 100644 --- a/web/client/themes/dark/theme.less +++ b/web/client/themes/dark/theme.less @@ -1,5 +1,5 @@ @import "../default/icons.less"; -@import "../default/bootstrap-theme.less"; -@import "../default/ms2-theme.less"; +@import "../default/bootstrap-theme/bootstrap.less"; +@import "../default/mapstore2-theme/mapstore2.less"; @import "../default/variables.less"; @import "variables.less"; diff --git a/web/client/themes/dark/variables.less b/web/client/themes/dark/variables.less index 20af0fcbf4..8f27772e8c 100644 --- a/web/client/themes/dark/variables.less +++ b/web/client/themes/dark/variables.less @@ -1,20 +1,20 @@ -@ms2-color-background: #111111; +/* base color */ +@ms2-text-color: #b29600; +@ms2-body-bg: #111111; -@ms2-color-text-primary: #333333; -@ms2-color-text: #b29600; +/* disabled color */ +@ms2-disabled-color: #aaaaaa; +@ms2-disabled-bg: #555555; -@ms2-color-disabled: #555555; -@ms2-color-text-disabled: #aaaaaa; +/* brand color */ +@ms2-primary-color: #333333; +@ms2-primary-bg: #998100; +@ms2-info-bg: #7e64a5; +@ms2-success-bg: #4abdac; +@ms2-warning-bg: #ffd700; +@ms2-danger-bg: #bb384b; -@ms2-color-primary: #998100; -@ms2-color-info: #7e64a5; -@ms2-color-success: #4abdac; -@ms2-color-warning: #ffd700; -@ms2-color-danger: #bb384b; - -@ms2-color-shade: #333333; -@ms2-color-shade-darker: darken(@ms2-color-shade, 5%); -@ms2-color-shade-dark: darken(@ms2-color-shade, 2%); -@ms2-color-shade-light: lighten(@ms2-color-shade, 2%); -@ms2-color-shade-lighter: lighten(@ms2-color-shade, 5%); +/* btn disabled */ +@ms2-btn-disabled-color: #aaaaaa; +@ms2-btn-disabled-bg: #555555; diff --git a/web/client/themes/default/bootstrap-theme.less b/web/client/themes/default/bootstrap-theme.less deleted file mode 100644 index d6812f14d3..0000000000 --- a/web/client/themes/default/bootstrap-theme.less +++ /dev/null @@ -1,4977 +0,0 @@ -html,body { - font-family: @font-family-base; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; - margin: 0; - height:100%; - width:100%; -} - -.shadow{ - -webkit-box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); - -moz-box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); - box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); -} - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - font-size: @font-size-h1; - margin: 0.67em 0; -} -mark { - background: @ms2-color-primary; - color: @ms2-color-background; -} -small { - font-size: 80%; -} -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; - padding:0; -} - -:focus { - outline-color: transparent; - outline-style: none; -} - -button { - overflow: visible; -} - -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-appearance: textfield; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - box-sizing: content-box; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - border: 1px solid @ms2-color-shade; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} -legend { - border: 0; - padding: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-collapse: collapse; - border-spacing: 0; -} -td, -th { - padding: 0; -} -@media print { - * { - text-shadow: none !important; - color: @ms2-color-text !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) ")"; - } - a[href^="javascript:"]:after, - a[href^="#"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid @ms2-color-shade; - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - select { - background: @ms2-color-background !important; - } - .navbar { - display: none; - } - .table td, - .table th { - background-color: @ms2-color-background !important; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: @ms2-color-shade-darker !important; - } - .label { - border: 1px solid @ms2-color-shade-darker; - } - .table { - border-collapse: collapse !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid @ms2-color-shade !important; - } -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 62.5%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-size: @font-size-base; - line-height: 1.428571429; - color: @ms2-color-text; - background-color: @ms2-color-background; -} -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -a { - color: @ms2-color-primary; - text-decoration: none; -} -a:hover, -a:focus { - color: @ms2-color-primary-hover; - text-decoration: underline; -} -a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -figure { - margin: 0; -} -img { - vertical-align: middle; -} -.img-responsive, -.thumbnail > img, -.thumbnail a > img, - -.img-rounded { - border-radius: 0px; -} -.img-thumbnail { - line-height: 1.428571429; - background-color: @ms2-color-background; - border: 1px solid @ms2-color-shade-light; - border-radius: 0px; - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - display: inline-block; - max-width: 100%; - height: auto; -} -.img-circle { - border-radius: 50%; -} -hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid @ms2-color-shade-lighter; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-weight: 500; - line-height: 1.1; - color: inherit; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: @ms2-color-text; -} -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 20px; - margin-bottom: 10px; -} -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 10px; - margin-bottom: 10px; -} -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} -h1, -.h1 { - font-size: @font-size-h1; -} -h2, -.h2 { - font-size: @font-size-h2; -} -h3, -.h3 { - font-size: @font-size-h3; -} -h4, -.h4 { - font-size: @font-size-h4; -} -h5, -.h5 { - font-size: @font-size-h5; -} -h6, -.h6 { - font-size: @font-size-h6; -} -p { - margin: 0 0 10px; -} -.lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 200; - line-height: 1.4; -} -@media (min-width: 768px) { - .lead { - font-size: 21px; - } -} -small, -.small { - font-size: 85%; -} -cite { - font-style: normal; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.text-center { - text-align: center; -} -.text-justify { - text-align: justify; -} -.text-muted { - color: @ms2-color-disabled; -} -.text-primary { - color: @ms2-color-primary; -} -a.text-primary:hover { - color: @ms2-color-primary-hover; -} -.text-success { - color: @ms2-color-success; -} -a.text-success:hover { - color: @ms2-color-success-hover; -} -.text-info { - color: @ms2-color-info; -} -a.text-info:hover { - color: @ms2-color-info-hover; -} -.text-warning { - color: @ms2-color-warning; -} -a.text-warning:hover { - color: @ms2-color-warning-hover; -} -.text-danger { - color: @ms2-color-danger; -} -a.text-danger:hover { - color: @ms2-color-danger-hover; -} -.bg-primary { - color: @ms2-color-text-primary; - background-color: @ms2-color-primary; -} -a.bg-primary:hover { - background-color: @ms2-color-primary-hover; -} -.bg-success { - background-color: @ms2-color-success; - color: @ms2-color-text-primary; -} -a.bg-success:hover { - background-color: @ms2-color-success-hover; -} -.bg-info { - background-color: @ms2-color-info; - color: @ms2-color-text-primary; -} -a.bg-info:hover { - background-color: @ms2-color-info-hover; -} -.bg-warning { - background-color: @ms2-color-warning; - color: @ms2-color-text-primary; -} -a.bg-warning:hover { - background-color: @ms2-color-warning-hover; -} -.bg-danger { - background-color: @ms2-color-danger; - color: @ms2-color-text-primary; -} -a.bg-danger:hover { - background-color: @ms2-color-danger-hover; -} -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid @ms2-color-shade-lighter; -} -ul, -ol { - margin-top: 0; - margin-bottom: 0; -} -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} -.list-unstyled { - padding-left: 0; - list-style: none; -} -.list-inline { - padding-left: 0; - list-style: none; -} -.list-inline > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; -} -.list-inline > li:first-child { - padding-left: 0; -} -dl { - margin-top: 0; - margin-bottom: 20px; -} -dt, -dd { - line-height: 1.428571429; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - clear: left; - text-align: right; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted @ms2-color-shade-light; -} -.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid @ms2-color-shade-lighter; -} -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.428571429; - color: @ms2-color-text; -} -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid @ms2-color-shade-lighter; - border-left: 0; - text-align: right; -} -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} -blockquote:before, -blockquote:after { - content: ""; -} -address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.428571429; -} -code, -kbd, -pre, -samp { - font-family: Monaco; -} -code { - padding: 2px 4px; - font-size: 90%; - color: @ms2-color-code; - background-color: @ms2-color-shade-lighter; - white-space: nowrap; - border-radius: 0; -} -kbd { - padding: 2px 4px; - font-size: 90%; - color: @ms2-color-text-primary; - background-color: @ms2-color-shade-dark; - border-radius: 0 ; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); -} -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.428571429; - word-break: break-all; - word-wrap: break-word; - color: @ms2-color-text; - background-color: @ms2-color-shade-lighter; - border: 1px solid @ms2-color-shade-light; - border-radius: 0; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.container { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} - -@media (min-width: 768px) { - .container { - width: 750px; - } -} -@media (min-width: 992px) { - .container { - width: 970px; - } -} -@media (min-width: 1200px) { - .container { - width: 1170px; - } -} -.container-fluid { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} -.row { - margin-left: -15px; - margin-right: -15px; -} -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-left: 15px; - padding-right: 15px; -} -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; -} -.col-xs-12 { - width: 100%; -} -.col-xs-11 { - width: 91.66666666666666%; -} -.col-xs-10 { - width: 83.33333333333334%; -} -.col-xs-9 { - width: 75%; -} -.col-xs-8 { - width: 66.66666666666666%; -} -.col-xs-7 { - width: 58.333333333333336%; -} -.col-xs-6 { - width: 50%; -} -.col-xs-5 { - width: 41.66666666666667%; -} -.col-xs-4 { - width: 33.33333333333333%; -} -.col-xs-3 { - width: 25%; -} -.col-xs-2 { - width: 16.666666666666664%; -} -.col-xs-1 { - width: 8.333333333333332%; -} -.col-xs-pull-12 { - right: 100%; -} -.col-xs-pull-11 { - right: 91.66666666666666%; -} -.col-xs-pull-10 { - right: 83.33333333333334%; -} -.col-xs-pull-9 { - right: 75%; -} -.col-xs-pull-8 { - right: 66.66666666666666%; -} -.col-xs-pull-7 { - right: 58.333333333333336%; -} -.col-xs-pull-6 { - right: 50%; -} -.col-xs-pull-5 { - right: 41.66666666666667%; -} -.col-xs-pull-4 { - right: 33.33333333333333%; -} -.col-xs-pull-3 { - right: 25%; -} -.col-xs-pull-2 { - right: 16.666666666666664%; -} -.col-xs-pull-1 { - right: 8.333333333333332%; -} -.col-xs-pull-0 { - right: 0%; -} -.col-xs-push-12 { - left: 100%; -} -.col-xs-push-11 { - left: 91.66666666666666%; -} -.col-xs-push-10 { - left: 83.33333333333334%; -} -.col-xs-push-9 { - left: 75%; -} -.col-xs-push-8 { - left: 66.66666666666666%; -} -.col-xs-push-7 { - left: 58.333333333333336%; -} -.col-xs-push-6 { - left: 50%; -} -.col-xs-push-5 { - left: 41.66666666666667%; -} -.col-xs-push-4 { - left: 33.33333333333333%; -} -.col-xs-push-3 { - left: 25%; -} -.col-xs-push-2 { - left: 16.666666666666664%; -} -.col-xs-push-1 { - left: 8.333333333333332%; -} -.col-xs-push-0 { - left: 0%; -} -.col-xs-offset-12 { - margin-left: 100%; -} -.col-xs-offset-11 { - margin-left: 91.66666666666666%; -} -.col-xs-offset-10 { - margin-left: 83.33333333333334%; -} -.col-xs-offset-9 { - margin-left: 75%; -} -.col-xs-offset-8 { - margin-left: 66.66666666666666%; -} -.col-xs-offset-7 { - margin-left: 58.333333333333336%; -} -.col-xs-offset-6 { - margin-left: 50%; -} -.col-xs-offset-5 { - margin-left: 41.66666666666667%; -} -.col-xs-offset-4 { - margin-left: 33.33333333333333%; -} -.col-xs-offset-3 { - margin-left: 25%; -} -.col-xs-offset-2 { - margin-left: 16.666666666666664%; -} -.col-xs-offset-1 { - margin-left: 8.333333333333332%; -} -.col-xs-offset-0 { - margin-left: 0%; -} - -@media (min-width: 768px) { - - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666666666666%; - } - .col-sm-10 { - width: 83.33333333333334%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666666666666%; - } - .col-sm-7 { - width: 58.333333333333336%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666666666667%; - } - .col-sm-4 { - width: 33.33333333333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.666666666666664%; - } - .col-sm-1 { - width: 8.333333333333332%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666666666666%; - } - .col-sm-pull-10 { - right: 83.33333333333334%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666666666666%; - } - .col-sm-pull-7 { - right: 58.333333333333336%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666666666667%; - } - .col-sm-pull-4 { - right: 33.33333333333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.666666666666664%; - } - .col-sm-pull-1 { - right: 8.333333333333332%; - } - .col-sm-pull-0 { - right: 0%; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666666666666%; - } - .col-sm-push-10 { - left: 83.33333333333334%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666666666666%; - } - .col-sm-push-7 { - left: 58.333333333333336%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666666666667%; - } - .col-sm-push-4 { - left: 33.33333333333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.666666666666664%; - } - .col-sm-push-1 { - left: 8.333333333333332%; - } - .col-sm-push-0 { - left: 0%; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666666666666%; - } - .col-sm-offset-10 { - margin-left: 83.33333333333334%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666666666666%; - } - .col-sm-offset-7 { - margin-left: 58.333333333333336%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666666666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.666666666666664%; - } - .col-sm-offset-1 { - margin-left: 8.333333333333332%; - } - .col-sm-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 992px) { - .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { - float: left; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666666666666%; - } - .col-md-10 { - width: 83.33333333333334%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666666666666%; - } - .col-md-7 { - width: 58.333333333333336%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666666666667%; - } - .col-md-4 { - width: 33.33333333333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.666666666666664%; - } - .col-md-1 { - width: 8.333333333333332%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666666666666%; - } - .col-md-pull-10 { - right: 83.33333333333334%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666666666666%; - } - .col-md-pull-7 { - right: 58.333333333333336%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666666666667%; - } - .col-md-pull-4 { - right: 33.33333333333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.666666666666664%; - } - .col-md-pull-1 { - right: 8.333333333333332%; - } - .col-md-pull-0 { - right: 0%; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666666666666%; - } - .col-md-push-10 { - left: 83.33333333333334%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666666666666%; - } - .col-md-push-7 { - left: 58.333333333333336%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666666666667%; - } - .col-md-push-4 { - left: 33.33333333333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.666666666666664%; - } - .col-md-push-1 { - left: 8.333333333333332%; - } - .col-md-push-0 { - left: 0%; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666666666666%; - } - .col-md-offset-10 { - margin-left: 83.33333333333334%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666666666666%; - } - .col-md-offset-7 { - margin-left: 58.333333333333336%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666666666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.666666666666664%; - } - .col-md-offset-1 { - margin-left: 8.333333333333332%; - } - .col-md-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 1200px) { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { - float: left; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666666666666%; - } - .col-lg-10 { - width: 83.33333333333334%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666666666666%; - } - .col-lg-7 { - width: 58.333333333333336%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666666666667%; - } - .col-lg-4 { - width: 33.33333333333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.666666666666664%; - } - .col-lg-1 { - width: 8.333333333333332%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666666666666%; - } - .col-lg-pull-10 { - right: 83.33333333333334%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666666666666%; - } - .col-lg-pull-7 { - right: 58.333333333333336%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666666666667%; - } - .col-lg-pull-4 { - right: 33.33333333333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.666666666666664%; - } - .col-lg-pull-1 { - right: 8.333333333333332%; - } - .col-lg-pull-0 { - right: 0%; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666666666666%; - } - .col-lg-push-10 { - left: 83.33333333333334%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666666666666%; - } - .col-lg-push-7 { - left: 58.333333333333336%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666666666667%; - } - .col-lg-push-4 { - left: 33.33333333333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.666666666666664%; - } - .col-lg-push-1 { - left: 8.333333333333332%; - } - .col-lg-push-0 { - left: 0%; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666666666666%; - } - .col-lg-offset-10 { - margin-left: 83.33333333333334%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666666666666%; - } - .col-lg-offset-7 { - margin-left: 58.333333333333336%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666666666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.666666666666664%; - } - .col-lg-offset-1 { - margin-left: 8.333333333333332%; - } - .col-lg-offset-0 { - margin-left: 0%; - } -} -table { - max-width: 100%; - background-color: transparent; -} -th { - text-align: left; -} -.table { - width: 100%; - margin-bottom: 20px; -} -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.428571429; - vertical-align: top; - border-top: 1px solid @ms2-color-shade-light; -} -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid @ms2-color-shade-light; -} -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.table > tbody + tbody { - border-top: 2px solid @ms2-color-shade-light; -} -.table .table { - background-color: @ms2-color-background; -} -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} -.table-bordered { - border: 1px solid @ms2-color-shade-light; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid @ms2-color-shade-light; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table-striped > tbody > tr:nth-child(odd) > td, -.table-striped > tbody > tr:nth-child(odd) > th { - background-color: darken(@ms2-color-background, 2%); -} -.table-hover > tbody > tr:hover > td, -.table-hover > tbody > tr:hover > th { - background-color: @ms2-color-shade-lighter; -} -table col[class*="col-"] { - position: static; - float: none; - display: table-column; -} -table td[class*="col-"], -table th[class*="col-"] { - position: static; - float: none; - display: table-cell; -} -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: @ms2-color-shade-lighter; -} -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr.active:hover > th { - background-color: @ms2-color-shade-lighter; -} -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: @ms2-color-shade-lighter; -} -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr.success:hover > th { - background-color: @ms2-color-shade-lighter; -} -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: @ms2-color-shade-lighter; -} -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr.info:hover > th { - background-color: @ms2-color-shade-lighter; -} -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: @ms2-color-shade-lighter; -} -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr.warning:hover > th { - background-color: @ms2-color-shade-lighter; -} -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: @ms2-color-shade-lighter; -} -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr.danger:hover > th { - background-color: @ms2-color-shade-lighter; -} -@media (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-y: hidden; - overflow-x: scroll; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid @ms2-color-shade-lighter; - -webkit-overflow-scrolling: touch; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} -fieldset { - padding: 0; - margin: 0; - border: 0; - min-width: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: @ms2-color-text; - border: 0; - border-bottom: 1px solid @ms2-color-shade-lighter; -} -label { - display: inline-block; -} - -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - /* IE8-9 */ - - line-height: normal; -} -input[type="file"] { - display: block; -} -input[type="range"] { - display: block; - width: 100%; -} -select[multiple], -select[size] { - height: auto; -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -output { - display: block; - padding-top: 1; - font-size: @font-size-base; - line-height: 1.428571429; - color: @ms2-color-text; -} -.form-control { - display: block; - width: 100%; - height: @square-btn-size; - padding: 0 22px 0 12px; - font-size: @font-size-base; - line-height: 1.428571429; - color: @ms2-color-text; - background-color: @ms2-color-background; - background-image: none; - border-radius: 0; - border: @ms2-color-background; -} -.form-control:focus { - border: @ms2-color-background; - outline: 0; - -} -.form-control::-moz-placeholder { - color: @ms2-color-text-placeholder; - opacity: 1; -} -.form-control:-ms-input-placeholder { - color: @ms2-color-text-placeholder; -} -.form-control::-webkit-input-placeholder { - color: @ms2-color-text-placeholder; -} - -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - cursor: not-allowed; - background-color: @ms2-color-background; - opacity: 1; -} -textarea.form-control { - height: auto; -} -input[type="search"] { - -webkit-appearance: none; -} -input[type="date"] { - line-height: 22px; -} -.form-group { - margin-bottom: 15px; -} -.radio, -.checkbox { - display: block; - min-height: 20px; - margin-top: 10px; - margin-bottom: 10px; - padding-left: 20px; -} -.radio label, -.checkbox label { - display: inline; - font-weight: normal; - cursor: pointer; -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - float: left; - margin-left: -20px; -} -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} -.radio-inline, -.checkbox-inline { - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -.radio[disabled], -.radio-inline[disabled], -.checkbox[disabled], -.checkbox-inline[disabled], -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"], -fieldset[disabled] .radio, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} -select.input-sm { - height: 30px; - line-height: 30px; -} -textarea.input-sm, -select[multiple].input-sm { - height: auto; -} -.input-lg { - height: 45px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 0; -} -select.input-lg { - height: 45px; - line-height: 45px; -} -textarea.input-lg, -select[multiple].input-lg { - height: auto; -} -.has-feedback { - position: relative; -} -.has-feedback .form-control { - padding-right: 27.5px; -} -.has-feedback .form-control-feedback { - position: absolute; - top: 25px; - right: 0; - display: block; - width: 22px; - height: 22px; - line-height: 22px; - text-align: center; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline { - color: @ms2-color-success; -} -.has-success .form-control { - border-color: @ms2-color-success; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-success .form-control:focus { - border-color: @ms2-color-success-hover; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px @ms2-color-success; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px @ms2-color-success; -} -.has-success .input-group-addon { - color: @ms2-color-success; - border-color: @ms2-color-success; - background-color: @ms2-color-success-hover; -} -.has-success .form-control-feedback { - color: @ms2-color-success; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline { - color: @ms2-color-warning; -} -.has-warning .form-control { - border-color: @ms2-color-warning; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-warning .form-control:focus { - border-color: @ms2-color-warning-hover; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px @ms2-color-warning; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px @ms2-color-warning; -} -.has-warning .input-group-addon { - color: @ms2-color-warning; - border-color: @ms2-color-warning; - background-color: @ms2-color-warning-light; -} -.has-warning .form-control-feedback { - color: @ms2-color-warning; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline { - color: @ms2-color-danger; -} -.has-error .form-control { - border-color: @ms2-color-danger; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-error .form-control:focus { - border-color: @ms2-color-danger-hover; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px @ms2-color-danger; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px @ms2-color-danger; -} -.has-error .input-group-addon { - color: @ms2-color-danger; - border-color: @ms2-color-danger; - background-color: @ms2-color-warning-light; -} -.has-error .form-control-feedback { - color: @ms2-color-danger; -} -.form-control-static { - margin-bottom: 0; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: @ms2-color-text; -} -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .input-group > .form-control { - width: 100%; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - padding-left: 0; - vertical-align: middle; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} -.form-horizontal .control-label, -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - margin-top: 0; - margin-bottom: 0; - padding-top: 1; -} -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 21px; -} -.form-horizontal .form-group { - margin-left: -15px; - margin-right: -15px; -} -.form-horizontal .form-control-static { - padding-top: 1; -} -@media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - } -} -.form-horizontal .has-feedback .form-control-feedback { - top: 0; - right: 15px; -} -.btn { - display: inline-block; - margin-bottom: 0; - font-weight: @btn-font-weight; - padding: 6px 12px; - text-align: center; - vertical-align: middle; - cursor: pointer; - background-image: none; - white-space: nowrap; - font-size: @font-size-base; - border-radius: 0px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none; - transition: all 0.2s ease-in; - -webkit-transition:all 0.2s ease-in; - -moz-transition:all 0.2s ease-in; - -o-transition:all 0.2s ease-in; -} - -.btn:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -.btn:hover, -.btn:focus { - color: @ms2-color-text-primary; - text-decoration: none; -} -.btn:active, -.btn.active { - outline: 0; - background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} - -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - cursor: not-allowed; - pointer-events: none; - opacity: 1; - filter: alpha(opacity=100); - -webkit-box-shadow: none; - box-shadow: none; -} - -.btn-default { - color: @ms2-color-primary ; - background-color: @ms2-color-background !important; - border:@ms2-color-primary 1px solid; -} - -.btn-default:hover, -.btn-default:focus, -.btn-default:active, -.btn-default.active, -.open .dropdown-toggle.btn-default { - color: lighten(@ms2-color-primary-hover, 5%); - border-color:@ms2-color-primary-hover; -} -.btn-default:active, -.btn-default.active, -.open .dropdown-toggle.btn-default { - background-image: none; -} -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - color: @ms2-color-text-disabled; - background-color: @ms2-color-disabled; - border-color: none; -} -.btn-default .badge { - color: @ms2-color-primary; - background-color: @ms2-color-background; -} -.btn-primary { - color: @ms2-color-text-primary; - background-color: @ms2-color-primary; - border:none; -} - -.btn-primary:hover, -.btn-primary:focus, -.btn-primary:active, -.btn-primary.active, -.open .dropdown-toggle.btn-primary { - color: @ms2-color-text-primary; - background-color:@ms2-color-primary-hover; -} -.btn-primary:active, -.btn-primary.active, -.open .dropdown-toggle.btn-primary { - background-image: none; -} -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - color: @ms2-color-text-disabled; - background-color: @ms2-color-disabled; -} -.btn-primary .badge { - color: @ms2-color-primary; - background-color: @ms2-color-background; -} -.btn-success { - color: @ms2-color-text-primary; - background-color: @ms2-color-success; - border: none; -} -.btn-success:hover, -.btn-success:focus, -.btn-success:active, -.btn-success.active, -.open .dropdown-toggle.btn-success { - color: @ms2-color-text-primary; - background-color: @ms2-color-success-hover; -} -.btn-success:active, -.btn-success.active, -.open .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - color: @ms2-color-text-disabled; - background-color: @ms2-color-disabled; -} -.btn-success .badge { - color: @ms2-color-success; - background-color: @ms2-color-background; -} -.btn-info { - color: @ms2-color-text-primary; - background-color: @ms2-color-info; - border: none; - -} -.btn-info:hover, -.btn-info:focus, -.btn-info:active, -.btn-info.active, -.open .dropdown-toggle.btn-info { - color: @ms2-color-text-primary; - background-color: @ms2-color-info-hover; - -} -.btn-info:active, -.btn-info.active, -.open .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - color: @ms2-color-text-disabled; - background-color: @ms2-color-disabled; -} -.btn-info .badge { - color: @ms2-color-info; - background-color: @ms2-color-background; -} -.btn-warning { - color: @ms2-color-text-primary; - background-color: @ms2-color-warning; - border: none; -} -.btn-warning:hover, -.btn-warning:focus, -.btn-warning:active, -.btn-warning.active, -.open .dropdown-toggle.btn-warning { - color: @ms2-color-text-primary; - background-color: @ms2-color-warning-hover; -} -.btn-warning:active, -.btn-warning.active, -.open .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - color: @ms2-color-text-disabled; - background-color: @ms2-color-disabled; - border: none; -} -.btn-warning .badge { - color: @ms2-color-warning; - background-color: @ms2-color-background; -} -.btn-danger { - color: @ms2-color-text-primary; - background-color: @ms2-color-danger; - border: none; -} - -.btn-danger:hover, -.btn-danger:focus, -.btn-danger:active, -.btn-danger.active, -.open .dropdown-toggle.btn-danger { - color: @ms2-color-text-primary; - background-color: @ms2-color-danger-hover; -} -.btn-danger:active, -.btn-danger.active, -.open .dropdown-toggle.btn-danger { - background-image: none; -} -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - color: @ms2-color-text-disabled; - background-color: @ms2-color-disabled; - border: none; -} -.btn-danger .badge { - color: @ms2-color-danger; - background-color: @ms2-color-background; -} -.btn-link { - color: @ms2-color-primary; - font-weight: @btn-font-weight; - cursor: pointer; -} -.btn-link, -.btn-link:active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} -.btn-link:hover, -.btn-link:focus { - color: @ms2-color-primary-hover; - text-decoration: underline; - background-color: transparent; -} - -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: @ms2-color-text; - text-decoration: none; -} -.btn-lg, -.btn-group-lg > .btn { - font-size: @font-size-large; - padding: 10px 15px -} - -.btn-md, -.btn-group-md > .btn { - padding: 6px 12px; - font-size: @font-size-large; - -} - -.btn-sm, -.btn-group-sm > .btn { - padding: 6px 12px; - font-size: @font-size-small; -} -.btn-xs, -.btn-group-xs > .btn { - padding: 5px 5px; - font-size: @font-size-small; -} - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} -.fade.in { - opacity: 1; -} -.collapse { - display: none; -} -.collapse.in { - display: block; -} -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition: height 0.35s ease; - transition: height 0.35s ease; -} - -.glyphicon { - display: inline-block; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - top: 0; -} - -/* btn with icon */ -.btn .glyphicon{ - float: left; - margin-top: 0; - font-size: @font-size-base; -} - -.btn-lg .glyphicon{ - font-size: ceil(@font-size-large * 1); - margin-right: 5px; -} - -.btn-md .glyphicon{ - font-size: ceil(@font-size-large * 1); - margin-right: 5px; -} - -.btn-sm .glyphicon{ - font-size: ceil(@font-size-small * 1); - /*margin-right: 5px;*/ -} - -.btn-xs .glyphicon{ - font-size: ceil(@font-size-small * 1); -} - -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px solid; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} -.dropdown { - position: relative; -} - -.dropdown-toggle:focus { - outline: 0; -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 0; - margin: 2px 0 0; - list-style: none; - font-size: @font-size-base; - background-color: @ms2-color-background; - border-radius: 0; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-clip: padding-box; -} - -.dropdown-menu ul li { - margin-bottom: 1px solid @ms2-color-shade-lighter; -} - -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - overflow: hidden; - border-top: 1px solid @ms2-color-shade-lighter; - margin: 6px 12px; -} -.dropdown-menu > li > a { - display: block; - padding: 10px 15px; - clear: both; - font-weight: normal; - line-height: 1.428571429; - color: @ms2-color-text; - white-space: nowrap; - -webkit-transition:all 0.2s ease-in; - -moz-transition:all 0.2s ease-in; - -o-transition:all 0.2s ease-in; -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - text-decoration: none; - background-color: @ms2-color-shade-lighter; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: @ms2-color-text; - text-decoration: none; - outline: 0; - background-color: @ms2-color-primary; -} -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: @ms2-color-text; -} -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - cursor: not-allowed; -} -.open > .dropdown-menu { - display: block; -} -.open > a { - outline: 0; -} -.dropdown-menu-right { - left: auto; - right: 0; -} -.dropdown-menu-left { - left: 0; - right: auto; -} -.dropdown-header { - display: block; - padding: 3px 16px; - font-size: @font-size-small; - line-height: 1.428571429; - background-color: @ms2-color-primary-hover; - color: @ms2-color-text; -} -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: 990; -} -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px solid; - content: ""; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - left: auto; - right: 0; - } - .navbar-right .dropdown-menu-left { - left: 0; - right: auto; - } -} -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} -.btn-group-vertical { - width:@square-btn-size; -} -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus { - outline: none; -} -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} -.btn-toolbar { - margin-left: -5px; -} -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; -} -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; -} -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} -.btn-group > .btn:first-child { - margin-left: 0; -} -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child > .btn:last-child, -.btn-group > .btn-group:first-child > .dropdown-toggle { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.btn-group > .btn-group:last-child > .btn:first-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn .caret { - margin-left: 0; -} -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} -.btn-group-vertical > .btn-group > .btn { - float: none; -} -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-bottom-left-radius: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - float: none; - display: table-cell; - width: 1%; -} -.btn-group-justified > .btn-group .btn { - width: 100%; -} -[data-toggle="buttons"] > .btn > input[type="radio"], -[data-toggle="buttons"] > .btn > input[type="checkbox"] { - display: none; -} -.input-group { - position: relative; - display: table; - border-collapse: separate; -} -.input-group[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; -} -.input-group .form-control { - float: left; - width: 100%; - margin-bottom: 0; -} -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 45px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 0; -} -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 45px; - line-height: 45px; -} -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 0; -} -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} -.input-group-addon { - padding: 0 0px; - font-size: @font-size-base; - font-weight: normal; - line-height: 1; - color: @ms2-color-text; - text-align: center; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; -} -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 0; -} -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 0; -} -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.input-group-addon:last-child { - border-left: 0; -} -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; -} -.input-group-btn > .btn { - position: relative; -} -.input-group-btn > .btn + .btn { - margin-left: -1px; -} -.input-group-btn > .btn:hover, -.input-group-btn > .btn:focus, -.input-group-btn > .btn:active { - z-index: 2; -} -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group { - margin-right: -1px; -} -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group { - margin-left: -1px; -} -.nav { - margin-bottom: 0; - padding-left: 0; - list-style: none; -} -.nav > li { - position: relative; - display: block; -} - -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: @ms2-color-shade-lighter; -} -.nav > li.disabled > a { - color: @ms2-color-text; -} -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: @ms2-color-text; - text-decoration: none; - background-color: transparent; - cursor: not-allowed; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: @ms2-color-shade-lighter; - border-color: @ms2-color-primary; -} -.nav .nav-divider { - height: 1px; - overflow: hidden; - border-top: 1px solid @ms2-color-shade-lighter; - margin: 6px 12px; -} -.nav > li > a > img { - max-width: none; -} -.nav-tabs { - border-bottom: 1px solid @ms2-color-shade-lighter; -} -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.428571429; - border: 1px solid transparent; - border-radius: 0; -} -.nav-tabs > li > a:hover { - border-color: @ms2-color-shade-lighter; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: @ms2-color-text; - background-color: @ms2-color-background; - border: 1px solid @ms2-color-shade-lighter; - border-bottom-color: transparent; - cursor: default; -} -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} -.nav-tabs.nav-justified > li { - float: none; -} -.nav-tabs.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 0; -} -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid @ms2-color-shade-lighter; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid @ms2-color-shade-lighter; - border-radius: 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: @ms2-color-background; - } -} -.nav-pills > li { - float: left; -} -.nav-pills > li > a { - border-radius: 0; -} -.nav-pills > li + li { - margin-left: 2px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: @ms2-color-background; - background-color: @ms2-color-primary; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} -.nav-justified { - width: 100%; -} -.nav-justified > li { - float: none; -} -.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs-justified { - border-bottom: 0; -} -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 0; -} -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid @ms2-color-shade-lighter; -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid @ms2-color-shade-lighter; - border-radius: 0 0 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: @ms2-color-background; - } -} -.tab-content > .tab-pane { - display: none; -} -.tab-content > .active { - display: block; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.navbar { - position: relative; - min-height: @square-btn-size; -} -@media (min-width: 768px) { - .navbar { - border-radius: 0; - } -} -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} - -.navbar-collapse { - max-height: 340px; - overflow-x: visible; - padding-right: 15px; - padding-left: 15px; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-overflow-scrolling: touch; -} -.navbar-collapse.in { - overflow-y: auto; -} -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; - } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-left: 0; - padding-right: 0; - } -} -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} -.navbar-brand { - float: left; - padding: 18px 15px; - font-size: @font-size-base; - line-height: 20px; - height: @square-btn-size; -} -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} - -@media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} -.navbar-toggle { - position: relative; - float: right; - margin-right: 15px; - padding: 9px 10px; - margin-top: 8px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 0; -} -.navbar-toggle:focus { - outline: none; -} -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; -} -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; -} -@media (min-width: 768px) { - .navbar-toggle { - display: none; - } -} -.navbar-nav { - margin: 7px -15px; -} -.navbar-nav > li > a { - padding: 18px; - line-height: 20px; -} -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: ; - padding-bottom: ; - } - .navbar-nav.navbar-right:last-child { - margin-right: -15px; - } -} -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - } -} -.navbar-form { - margin-left: -15px; - margin-right: -15px; - padding: 10px 15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-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); - margin-top: 14px; - margin-bottom: 14px; -} -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .navbar-form .input-group > .form-control { - width: 100%; - } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - padding-left: 0; - vertical-align: middle; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } -} -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } -} -@media (min-width: 768px) { - .navbar-form { - width: auto; - border: 0; - margin-left: 0; - margin-right: 0; - padding-top: 0; - padding-bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-form.navbar-right:last-child { - margin-right: -15px; - } -} -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.navbar-btn { - margin-top: 14px; - margin-bottom: 14px; -} -.navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; -} -.navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; -} -.navbar-text { - margin-top: 15px; - margin-bottom: 15px; -} -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-left: 15px; - margin-right: 15px; - } - .navbar-text.navbar-right:last-child { - margin-right: 0; - } -} -.navbar-default { - background-color: @ms2-color-background; - border-color: gray-light; -} -.navbar-default .navbar-brand { - color: @ms2-color-text; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: @ms2-color-text; - background-color: transparent; -} -.navbar-default .navbar-text { - color: @ms2-color-primary; -} -.navbar-default .navbar-nav > li > a { - color: @ms2-color-primary; - background-color: @ms2-color-background; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: @ms2-color-primary; - background-color: @ms2-color-shade-lighter; -} - -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: @ms2-color-primary; - background-color: @ms2-color-shade-lighter; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: @ms2-color-text; - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: ; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color:; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: @ms2-color-primary; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: @ms2-color-shade-lighter; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - background-color: @ms2-color-shade-lighter; -} - -@media (max-width: 767px) { -.dropdown li .dropdown-menu.open{ -} - - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: @ms2-color-text; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: @ms2-color-text; - background-color: @ms2-color-shade-lighter; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - background-color: @ms2-color-shade-lighter; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: @ms2-color-text; - - background-color: transparent; - } - - .navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - color: @ms2-color-primary; - right:0px; -} - -} -.navbar-default .navbar-link { - color: @ms2-color-text; -} -.navbar-default .navbar-link:hover { - color: @ms2-color-text; -} - - - - -.navbar-inverse { - background-color: @ms2-color-primary; - border-color: @ms2-color-primary-light; -} -.navbar-inverse .navbar-brand { - color: @ms2-color-text-primary; -} -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: @ms2-color-text-primary; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: @ms2-color-text; -} -.navbar-inverse .navbar-nav > li > a { - color: @ms2-color-text-primary; -} -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: @ms2-color-text-primary; - background-color: @ms2-color-primary-hover; -} -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: @ms2-color-text-primary; - background-color: @ms2-color-primary-hover; -} -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: @ms2-color-text; - background-color: transparent; -} -.navbar-inverse .navbar-toggle { - border-color: none; -} -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: @ms2-color-primary; -} -.navbar-inverse .navbar-toggle .icon-bar { - background-color: @ms2-color-background; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: @ms2-color-primary-hover; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - background-color: @ms2-color-primary-hover; - color: @ms2-color-text-primary; -} -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: @ms2-color-primary-hover; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: @ms2-color-primary-hover; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: @ms2-color-text-primary; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: @ms2-color-text-primary; - background-color: @ms2-color-primary-hover; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: @ms2-color-text-primary; - background-color: @ms2-color-primary; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: @ms2-color-text; - background-color: transparent; - } -} -.navbar-inverse .navbar-link { - color: @ms2-color-text; -} -.navbar-inverse .navbar-link:hover { - color: @ms2-color-text-primary; -} -.breadcrumb { - padding: 6px padding-base-horizontal; - margin-bottom: 20px; - list-style: none; - background-color: @ms2-color-shade-lighter; - border-radius: 0px; - border: 1px solid @ms2-color-primary-light; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - content: "/\00a0"; - padding: 0 5px; - color: @ms2-color-text; -} -.breadcrumb > .active { - color: @ms2-color-text; -} -.pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 0; -} -.pagination > li { - display: inline; -} -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding:12px; - line-height: 1.428571429; - text-decoration: none; - color: @ms2-color-primary; - background-color: @ms2-color-background; - border: 1px solid @ms2-color-shade-lighter; - margin-left: -1px; -} -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - color: @ms2-color-text; - background-color: @ms2-color-shade-lighter; - border-color: @ms2-color-shade-lighter; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 2; - color: @ms2-color-text-primary; - background-color: @ms2-color-primary; - border-color: @ms2-color-primary; - cursor: default; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: @ms2-color-text; - background-color: @ms2-color-background; - border-color: @ms2-color-shade-lighter; - cursor: not-allowed; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-bottom-left-radius: ; - border-top-left-radius: ; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-bottom-right-radius: ; - border-top-right-radius: ; -} -.pager { - padding-left: 0; - margin: 20px 0; - list-style: none; - text-align: center; -} -.pager li { - display: inline; -} -.pager li > a, -.pager li > span { - display: inline-block; - padding: 6px 12px; - border: 1px solid @ms2-color-primary; - border-radius: 0px; -} -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - border-color: @ms2-color-primary-hover; -} - -.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: @ms2-color-text; - background-color: @ms2-color-background; - cursor: not-allowed; -} -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - line-height: 1; - color: @ms2-color-text-primary; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 0px; -} -.label[href]:hover, -.label[href]:focus { - color: @ms2-color-text-primary; - text-decoration: none; - cursor: pointer; -} -.label:empty { - display: none; -} -.btn .label { - position: relative; - top: -1px; -} -.label-default { - color: @ms2-color-text; - background-color: @ms2-color-info; -} -.label-default[href]:hover, -.label-default[href]:focus { - background-color: @ms2-color-shade-dark; -} -.label-primary { - background-color: @ms2-color-primary; -} -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: @ms2-color-primary-hover; -} -.label-success { - background-color: @ms2-color-success; -} -.label-success[href]:hover, -.label-success[href]:focus { - background-color: @ms2-color-success-hover; -} -.label-info { - background-color: @ms2-color-info; -} -.label-info[href]:hover, -.label-info[href]:focus { - background-color: @ms2-color-info-hover; -} -.label-warning { - background-color: @ms2-color-warning; -} -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: @ms2-color-warning-hover; -} -.label-danger { - background-color: @ms2-color-danger; -} -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: @ms2-color-danger-hover; -} -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - color: @ms2-color-text-primary; - line-height: 1; - vertical-align: baseline; - white-space: nowrap; - text-align: center; - background-color: @ms2-color-shade-light; -} -.badge:empty { - display: none; -} -.btn .badge { - position: relative; - top: -1px; -} -.btn-xs .badge { - top: 0; - padding: 1px 5px; -} -a.badge:hover, -a.badge:focus { - color: @ms2-color-text-primary; - text-decoration: none; - cursor: pointer; -} -a.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: @ms2-color-primary; - background-color: @ms2-color-background; -} -.nav-pills > li > a > .badge { - margin-left: 3px; -} -.jumbotron { - padding: 30px; - margin-bottom: 30px; - color: inherit; - background-color: @ms2-color-shade-lighter; -} -.jumbotron h1, -.jumbotron .h1 { - color: inherit; -} -.jumbotron p { - margin-bottom: 15px; - font-size: 21px; - font-weight: 200; -} -.container .jumbotron { - border-radius: 0; -} -.jumbotron .container { - max-width: 100%; -} -@media screen and (min-width: 768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; - } - .container .jumbotron { - padding-left: 60px; - padding-right: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; - } -} -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.428571429; - background-color: @ms2-color-background; - border: 1px solid @ms2-color-shade-lighter; - border-radius: 0px; - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - margin-left: auto; - margin-right: auto; -} -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: @ms2-color-primary; -} -.thumbnail .caption { - padding: 9px; - color: @ms2-color-text; -} -.alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 0px; -} -.alert h4 { - margin-top: 0; - color: inherit; -} -.alert .alert-link { - font-weight: bold; -} -.alert > p, -.alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} -.alert-dismissable { - padding-right: 35px; -} -.alert-dismissable .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} - - -.alert-success { - background-color: @ms2-color-success-hover; - border-color: @ms2-color-success-hover; - color: @ms2-color-success; -} -.alert-success hr { - border-top-color: @ms2-color-success-hover; -} -.alert-success .alert-link { - color: @ms2-color-success; -} - - -.alert-info { - background-color: @ms2-color-info-light; - border-color: @ms2-color-info-hover; - color: @ms2-color-info; -} -.alert-info hr { - border-top-color: @ms2-color-info-light; -} -.alert-info .alert-link { - color: @ms2-color-info; -} - - -.alert-warning { - background-color: @ms2-color-warning-light; - border-color: @ms2-color-warning-hover; - color: @ms2-color-warning; -} -.alert-warning hr { - border-top-color: @ms2-color-warning-light; -} -.alert-warning .alert-link { - color: @ms2-color-warning; -} - - -.alert-danger { - background-color: @ms2-color-danger-light; - border-color: @ms2-color-danger-hover; - color: @ms2-color-danger; -} -.alert-danger hr { - border-top-color: @ms2-color-danger-light; -} -.alert-danger .alert-link { - color: @ms2-color-danger; -} - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -.progress { - overflow: hidden; - height: 20px; - margin-bottom: 20px; - background-color: @ms2-color-shade-lighter; - border-radius: 0px; - -webkit-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; - line-height: 20px; - color: @ms2-color-text-primary; - text-align: center; - background-color: @ms2-color-primary; - -webkit-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-transition: width 0.6s ease; - transition: width 0.6s ease; -} -.progress-striped .progress-bar { - 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: 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-size: 40px 40px; -} -.progress.active .progress-bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-bar-success { - background-color: @ms2-color-success; -} -.progress-striped .progress-bar-success { - 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: 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-bar-info { - background-color: @ms2-color-info; -} -.progress-striped .progress-bar-info { - 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: 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-bar-warning { - background-color: @ms2-color-warning; -} -.progress-striped .progress-bar-warning { - 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: 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-bar-danger { - background-color: @ms2-color-danger; -} -.progress-striped .progress-bar-danger { - 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: 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); -} -.media, -.media-body { - overflow: hidden; - 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 { - padding-left: 0; - list-style: none; -} -.list-group { - margin-bottom:; - padding-left: ; - border-radius:; -} - -.list-group ul { - list-style: none; - padding: 0; -} - -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: 0; - background-color: @ms2-color-background; - border-radius: 0; -} - -.list-group-item:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.list-group-item > .badge { - float: right; -} -.list-group-item > .badge + .badge { - margin-right: 5px; -} -a.list-group-item { - color: @ms2-color-text; - transition: all 0.2s ease-in; - -webkit-transition:all 0.2s ease-in; - -moz-transition:all 0.2s ease-in; - -o-transition:all 0.2s ease-in; - -} -a.list-group-item .list-group-item-heading { - color: @ms2-color-text; -} -a.list-group-item:hover, -a.list-group-item:focus { - text-decoration: none; - background-color: @ms2-color-shade-lighter; -} -a.list-group-item.active, -a.list-group-item.active:hover, -a.list-group-item.active:focus { - z-index: 2; - color: @ms2-color-text-primary; - background-color: @ms2-color-primary; - border-color: @ms2-color-primary; -} -a.list-group-item.active .list-group-item-heading, -a.list-group-item.active:hover .list-group-item-heading, -a.list-group-item.active:focus .list-group-item-heading { - color: inherit; -} -a.list-group-item.active .list-group-item-text, -a.list-group-item.active:hover .list-group-item-text, -a.list-group-item.active:focus .list-group-item-text { - color: @ms2-color-primary-light; -} - - -.list-group-item-success { - color: @ms2-color-success-hover; -} -a.list-group-item-success { - color: @ms2-color-success-hover; -} -a.list-group-item-success .list-group-item-heading { - color: inherit; -} -a.list-group-item-success:hover, -a.list-group-item-success:focus { - color: @ms2-color-success; - background-color:@ms2-color-success-hover; -} -a.list-group-item-success.active, -a.list-group-item-success.active:hover, -a.list-group-item-success.active:focus { - color: @ms2-color-success; - background-color: @ms2-color-success-hover; -} - - -.list-group-item-info { - color: @ms2-color-info-hover; -} -a.list-group-item-info { - color: @ms2-color-info-hover; -} -a.list-group-item-info .list-group-item-heading { - color: inherit; -} -a.list-group-item-info:hover, -a.list-group-item-info:focus { - color: @ms2-color-info; - background-color: @ms2-color-info-light; -} -a.list-group-item-info.active, -a.list-group-item-info.active:hover, -a.list-group-item-info.active:focus { - color: @ms2-color-info; - background-color: @ms2-color-info-light; -} - - -.list-group-item-warning { - color: @ms2-color-warning-hover; -} -a.list-group-item-warning { - color: @ms2-color-warning-hover; -} -a.list-group-item-warning .list-group-item-heading { - color: inherit; -} -a.list-group-item-warning:hover, -a.list-group-item-warning:focus { - color: @ms2-color-warning; - background-color: @ms2-color-warning-light; -} -a.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus { - color: @ms2-color-warning; - background-color: @ms2-color-warning-light; -} - - -.list-group-item-danger { - color: @ms2-color-danger-hover; -} -a.list-group-item-danger { - color: @ms2-color-danger-hover; -} -a.list-group-item-danger .list-group-item-heading { - color: inherit; -} -a.list-group-item-danger:hover, -a.list-group-item-danger:focus { - color: @ms2-color-danger; - background-color: @ms2-color-danger-light; -} -a.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus { - color: @ms2-color-danger; - background-color: @ms2-color-danger-light; -} - - -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} -.panel { - margin-bottom: 20px; - background-color: @ms2-color-background; - border: 1px solid transparent; - border-radius: 0; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); -} -.panel-body { - padding: 15px; -} -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-right-radius: -1; - border-top-left-radius: -1; -} -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: @font-size-base; - color: inherit; -} -.panel-title > a { - color: @ms2-color-text; -} -.panel-footer { - padding: 10px 15px; - background-color: @ms2-color-shade-lighter; - border-top: 1px solid @ms2-color-shade-light; - border-bottom-right-radius: -1; - border-bottom-left-radius: -1; -} -.panel > .list-group { - margin-bottom: 0; -} -.panel > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0px; -} -.panel > .list-group .list-group-item:first-child { - border-top: 0; -} -.panel > .list-group .list-group-item:last-child { - border-bottom: 0; -} -.panel > .list-group:first-child .list-group-item:first-child { - border-top-right-radius: -1; - border-top-left-radius: -1; -} -.panel > .list-group:last-child .list-group-item:last-child { - border-bottom-right-radius: -1; - border-bottom-left-radius: -1; -} -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} -.panel > .table, -.panel > .table-responsive > .table { - margin-bottom: 0; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: -1; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: -1; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: -1; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: -1; -} -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive { - border-top: 1px solid @ms2-color-shade-lighter; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; -} -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; -} -.panel > .table-responsive { - border: 0; - margin-bottom: 0; -} -.panel-group { - margin-bottom: 20px; -} -.panel-group .panel { - margin-bottom: 0; - border-radius: 0px; - overflow: hidden; -} -.panel-group .panel + .panel { - margin-top: 5px; -} -.panel-group .panel-heading { - border-bottom: 0; -} -.panel-group .panel-heading + .panel-collapse .panel-body { - border-top: 1px solid @ms2-color-shade-light; -} -.panel-group .panel-footer { - border-top: 0; -} -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid @ms2-color-shade-light; -} -.panel-default { - border-color: @ms2-color-shade-lighter; -} -.panel-default > .panel-heading { - color: @ms2-color-text-primary; - background-color: @ms2-color-shade-light; - border-color: @ms2-color-shade-lighter; -} -.panel-default > .panel-heading + .panel-collapse .panel-body { - border-top-color: @ms2-color-shade-light; -} -.panel-default > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: @ms2-color-shade-light; -} -.panel-primary { - border-color: @ms2-color-primary; -} -.panel-primary > .panel-heading { - color: @ms2-color-text-primary; - background-color:@ms2-color-primary; - border-color: @ms2-color-primary; -} -.panel-primary > .panel-heading + .panel-collapse .panel-body { - border-top-color: @ms2-color-primary; -} -.panel-primary > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: @ms2-color-primary; -} -.panel-success { - border-color: @ms2-color-success; -} -.panel-success > .panel-heading { - color: @ms2-color-text-primary; - background-color:@ms2-color-success; - border-color: @ms2-color-success; -} -.panel-success > .panel-heading + .panel-collapse .panel-body { - border-top-color: @ms2-color-success-hover; -} -.panel-success > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: @ms2-color-success-hover; -} -.panel-info { - border-color: @ms2-color-info; -} -.panel-info > .panel-heading { - color: @ms2-color-text-primary; - background-color:@ms2-color-info; - border-color: @ms2-color-info; -} -.panel-info > .panel-heading + .panel-collapse .panel-body { - border-top-color: @ms2-color-info-light; -} -.panel-info > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: @ms2-color-info-light; -} -.panel-warning { - border-color: @ms2-color-warning; -} -.panel-warning > .panel-heading { - color: @ms2-color-text-primary; - background-color:@ms2-color-warning; - border-color: @ms2-color-warning; -} -.panel-warning > .panel-heading + .panel-collapse .panel-body { - border-top-color: @ms2-color-warning-light; -} -.panel-warning > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: @ms2-color-warning-light; -} -.panel-danger { - border-color: @ms2-color-danger; -} -.panel-danger > .panel-heading { - color: @ms2-color-text-primary; - background-color:@ms2-color-danger; - border-color: @ms2-color-danger; -} -.panel-danger > .panel-heading + .panel-collapse .panel-body { - border-top-color: @ms2-color-danger-light; -} -.panel-danger > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: @ms2-color-danger-light; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: @ms2-color-shade-lighter; - border: 1px solid @ms2-color-shade; - border-radius: 0px; - -webkit-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: @ms2-color-shade-lighter; - border-color: rgba(0, 0, 0, 0.15); -} -.well-lg { - padding: 24px; - border-radius: 0px; -} -.well-sm { - padding: 9px; - border-radius: 0px ; -} - -.close { - position:absolute; - right: 15px; - top: 10px; - background-color: @ms2-color-danger; - color: @ms2-color-text-primary; - border:none; - transition: all 0.2s ease-in; - -webkit-transition:all 0.2s ease-in; - -moz-transition:all 0.2s ease-in; - -o-transition:all 0.2s ease-in; -} - -.close:hover, -.close:focus { - text-decoration: none; - cursor: pointer; - color: @ms2-color-primary-light; -} - -button.close { - cursor: pointer; - background: transparent; - -webkit-appearance: none; -} -.modal-open { - overflow: hidden; -} - -.modal { - display: none; - overflow: auto; - overflow-y: auto; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - -webkit-overflow-scrolling: touch; - outline: 0; -} - -.modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - -moz-transition: -moz-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; - transition: transform 0.3s ease-out; -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - transform: translate(0, 0); -} -.modal-dialog { - position: relative; - width: auto; - margin:auto; - background-color: @ms2-color-background; -} -.modal-content { - position: relative; - background-color: @ms2-color-background; - border-radius: 0; - background-clip: padding-box; - outline: none; -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: @ms2-color-shade-darker; -} -.modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); -} -.modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); -} -.modal-header { - background-color:@ms2-color-primary; - color: @ms2-color-text-primary; - padding:10px 15px; -} - -.modal-title { - margin: 0; - -} -.modal-body { - position: relative; -} -.modal-footer { - margin-top: 15px; - padding: 19px 20px 20px; - text-align: right; - border-top: 1px solid gray-light; - background-color:@ms2-color-background; -} -.modal-footer .btn + .btn { - margin-left: 5px; - margin-bottom: 0; -} -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} - -.modal-dialog { - width: 290px; -} - -@media (min-width: 768px) { - .modal-dialog { - width: 290px; - margin: auto; - margin-top: 150px; - } - .modal-sm { - width: 300px; - } -} -@media (min-width: 992px) { - .modal-lg { - width: 900px; - } -} - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - max-width: 276px; - padding: 1px; - text-align: left; - background-color: @ms2-color-background; - background-clip: padding-box; - border: 1px solid @ms2-color-shade-light; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 0; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - white-space: normal; -} -.popover.top { - margin-top: -10px; -} -.popover.right { - margin-left: 10px; -} -.popover.bottom { - margin-top: 10px; -} -.popover.left { - margin-left: -10px; -} -.popover-title { - margin: 0; - padding: 8px 14px; - font-size: @font-size-base; - font-weight: normal; - line-height: 18px; - background-color: @ms2-color-shade-lighter; - border-bottom: 1px solid @ms2-color-shade-light; -} -.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 { - left: 50%; - margin-left: -11px; - border-bottom-width: 0; - border-top-color: @ms2-color-shade-light; - border-top-color: rgba(0, 0, 0, 0.25); - bottom: -11px; -} -.popover.top > .arrow:after { - content: " "; - bottom: 1px; - margin-left: -10px; - border-bottom-width: 0; - border-top-color: @ms2-color-background; -} -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-left-width: 0; - border-right-color: @ms2-color-shade-light; - border-right-color: rgba(0, 0, 0, 0.25); -} -.popover.right > .arrow:after { - content: " "; - left: 1px; - bottom: -10px; - border-left-width: 0; - border-right-color: @ms2-color-background; -} -.popover.bottom > .arrow { - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: @ms2-color-shade-light; - border-bottom-color: rgba(0, 0, 0, 0.25); - top: -11px; -} -.popover.bottom > .arrow:after { - content: " "; - top: 1px; - margin-left: -10px; - border-top-width: 0; - border-bottom-color: @ms2-color-background; -} -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: @ms2-color-shade-light; - border-left-color: rgba(0, 0, 0, 0.25); -} -.popover.left > .arrow:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: @ms2-color-background; - bottom: -10px; -} - -.clearfix:before, -.clearfix:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-footer:before, -.modal-footer:after { - content: " "; - display: table; -} -.clearfix:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-footer:after { - clear: both; -} -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} -.pull-right { - float: right !important; -} -.pull-left { - float: left !important; -} -.hide { - display: none !important; -} -.show { - display: block !important; -} -.invisible { - visibility: hidden; -} -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.hidden { - display: none !important; - visibility: hidden !important; -} -.affix { - position: fixed; -} -@-ms-viewport { - width: device-width; -} -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; -} -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } -} -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } -} -.visible-print { - display: none !important; -} -@media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } -} -@media print { - .hidden-print { - display: none !important; - } -} diff --git a/web/client/themes/default/bootstrap-theme/.csscomb.json b/web/client/themes/default/bootstrap-theme/.csscomb.json new file mode 100644 index 0000000000..40695a4782 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/.csscomb.json @@ -0,0 +1,304 @@ +{ + "always-semicolon": true, + "block-indent": 2, + "color-case": "lower", + "color-shorthand": true, + "element-case": "lower", + "eof-newline": true, + "leading-zero": false, + "remove-empty-rulesets": true, + "space-after-colon": 1, + "space-after-combinator": 1, + "space-before-selector-delimiter": 0, + "space-between-declarations": "\n", + "space-after-opening-brace": "\n", + "space-before-closing-brace": "\n", + "space-before-colon": 0, + "space-before-combinator": 1, + "space-before-opening-brace": 1, + "strip-spaces": true, + "unitless-zero": true, + "vendor-prefix-align": true, + "sort-order": [ + [ + "position", + "top", + "right", + "bottom", + "left", + "z-index", + "display", + "float", + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "-webkit-box-sizing", + "-moz-box-sizing", + "box-sizing", + "-webkit-appearance", + "padding", + "padding-top", + "padding-right", + "padding-bottom", + "padding-left", + "margin", + "margin-top", + "margin-right", + "margin-bottom", + "margin-left", + "overflow", + "overflow-x", + "overflow-y", + "-webkit-overflow-scrolling", + "-ms-overflow-x", + "-ms-overflow-y", + "-ms-overflow-style", + "clip", + "clear", + "font", + "font-family", + "font-size", + "font-style", + "font-weight", + "font-variant", + "font-size-adjust", + "font-stretch", + "font-effect", + "font-emphasize", + "font-emphasize-position", + "font-emphasize-style", + "font-smooth", + "-webkit-hyphens", + "-moz-hyphens", + "hyphens", + "line-height", + "color", + "text-align", + "-webkit-text-align-last", + "-moz-text-align-last", + "-ms-text-align-last", + "text-align-last", + "text-emphasis", + "text-emphasis-color", + "text-emphasis-style", + "text-emphasis-position", + "text-decoration", + "text-indent", + "text-justify", + "text-outline", + "-ms-text-overflow", + "text-overflow", + "text-overflow-ellipsis", + "text-overflow-mode", + "text-shadow", + "text-transform", + "text-wrap", + "-webkit-text-size-adjust", + "-ms-text-size-adjust", + "letter-spacing", + "-ms-word-break", + "word-break", + "word-spacing", + "-ms-word-wrap", + "word-wrap", + "-moz-tab-size", + "-o-tab-size", + "tab-size", + "white-space", + "vertical-align", + "list-style", + "list-style-position", + "list-style-type", + "list-style-image", + "pointer-events", + "-ms-touch-action", + "touch-action", + "cursor", + "visibility", + "zoom", + "flex-direction", + "flex-order", + "flex-pack", + "flex-align", + "table-layout", + "empty-cells", + "caption-side", + "border-spacing", + "border-collapse", + "content", + "quotes", + "counter-reset", + "counter-increment", + "resize", + "-webkit-user-select", + "-moz-user-select", + "-ms-user-select", + "-o-user-select", + "user-select", + "nav-index", + "nav-up", + "nav-right", + "nav-down", + "nav-left", + "background", + "background-color", + "background-image", + "-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient", + "filter:progid:DXImageTransform.Microsoft.gradient", + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader", + "filter", + "background-repeat", + "background-attachment", + "background-position", + "background-position-x", + "background-position-y", + "-webkit-background-clip", + "-moz-background-clip", + "background-clip", + "background-origin", + "-webkit-background-size", + "-moz-background-size", + "-o-background-size", + "background-size", + "border", + "border-color", + "border-style", + "border-width", + "border-top", + "border-top-color", + "border-top-style", + "border-top-width", + "border-right", + "border-right-color", + "border-right-style", + "border-right-width", + "border-bottom", + "border-bottom-color", + "border-bottom-style", + "border-bottom-width", + "border-left", + "border-left-color", + "border-left-style", + "border-left-width", + "border-radius", + "border-top-left-radius", + "border-top-right-radius", + "border-bottom-right-radius", + "border-bottom-left-radius", + "-webkit-border-image", + "-moz-border-image", + "-o-border-image", + "border-image", + "-webkit-border-image-source", + "-moz-border-image-source", + "-o-border-image-source", + "border-image-source", + "-webkit-border-image-slice", + "-moz-border-image-slice", + "-o-border-image-slice", + "border-image-slice", + "-webkit-border-image-width", + "-moz-border-image-width", + "-o-border-image-width", + "border-image-width", + "-webkit-border-image-outset", + "-moz-border-image-outset", + "-o-border-image-outset", + "border-image-outset", + "-webkit-border-image-repeat", + "-moz-border-image-repeat", + "-o-border-image-repeat", + "border-image-repeat", + "outline", + "outline-width", + "outline-style", + "outline-color", + "outline-offset", + "-webkit-box-shadow", + "-moz-box-shadow", + "box-shadow", + "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity", + "-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha", + "opacity", + "-ms-interpolation-mode", + "-webkit-transition", + "-moz-transition", + "-ms-transition", + "-o-transition", + "transition", + "-webkit-transition-delay", + "-moz-transition-delay", + "-ms-transition-delay", + "-o-transition-delay", + "transition-delay", + "-webkit-transition-timing-function", + "-moz-transition-timing-function", + "-ms-transition-timing-function", + "-o-transition-timing-function", + "transition-timing-function", + "-webkit-transition-duration", + "-moz-transition-duration", + "-ms-transition-duration", + "-o-transition-duration", + "transition-duration", + "-webkit-transition-property", + "-moz-transition-property", + "-ms-transition-property", + "-o-transition-property", + "transition-property", + "-webkit-transform", + "-moz-transform", + "-ms-transform", + "-o-transform", + "transform", + "-webkit-transform-origin", + "-moz-transform-origin", + "-ms-transform-origin", + "-o-transform-origin", + "transform-origin", + "-webkit-animation", + "-moz-animation", + "-ms-animation", + "-o-animation", + "animation", + "-webkit-animation-name", + "-moz-animation-name", + "-ms-animation-name", + "-o-animation-name", + "animation-name", + "-webkit-animation-duration", + "-moz-animation-duration", + "-ms-animation-duration", + "-o-animation-duration", + "animation-duration", + "-webkit-animation-play-state", + "-moz-animation-play-state", + "-ms-animation-play-state", + "-o-animation-play-state", + "animation-play-state", + "-webkit-animation-timing-function", + "-moz-animation-timing-function", + "-ms-animation-timing-function", + "-o-animation-timing-function", + "animation-timing-function", + "-webkit-animation-delay", + "-moz-animation-delay", + "-ms-animation-delay", + "-o-animation-delay", + "animation-delay", + "-webkit-animation-iteration-count", + "-moz-animation-iteration-count", + "-ms-animation-iteration-count", + "-o-animation-iteration-count", + "animation-iteration-count", + "-webkit-animation-direction", + "-moz-animation-direction", + "-ms-animation-direction", + "-o-animation-direction", + "animation-direction" + ] + ] +} diff --git a/web/client/themes/default/bootstrap-theme/.csslintrc b/web/client/themes/default/bootstrap-theme/.csslintrc new file mode 100644 index 0000000000..005b86236c --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/.csslintrc @@ -0,0 +1,19 @@ +{ + "adjoining-classes": false, + "box-sizing": false, + "box-model": false, + "compatible-vendor-prefixes": false, + "floats": false, + "font-sizes": false, + "gradients": false, + "important": false, + "known-properties": false, + "outline-none": false, + "qualified-headings": false, + "regex-selectors": false, + "shorthand": false, + "text-indent": false, + "unique-headings": false, + "universal-selector": false, + "unqualified-attributes": false +} diff --git a/web/client/themes/default/bootstrap-theme/alerts.less b/web/client/themes/default/bootstrap-theme/alerts.less new file mode 100644 index 0000000000..c4199db927 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/alerts.less @@ -0,0 +1,73 @@ +// +// Alerts +// -------------------------------------------------- + + +// Base styles +// ------------------------- + +.alert { + padding: @alert-padding; + margin-bottom: @line-height-computed; + border: 1px solid transparent; + border-radius: @alert-border-radius; + + // Headings for larger alerts + h4 { + margin-top: 0; + // Specified for the h4 to prevent conflicts of changing @headings-color + color: inherit; + } + + // Provide class for links that match alerts + .alert-link { + font-weight: @alert-link-font-weight; + } + + // Improve alignment and spacing of inner content + > p, + > ul { + margin-bottom: 0; + } + + > p + p { + margin-top: 5px; + } +} + +// Dismissible alerts +// +// Expand the right padding and account for the close button's positioning. + +.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. +.alert-dismissible { + padding-right: (@alert-padding + 20); + + // Adjust close link position + .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; + } +} + +// Alternate styles +// +// Generate contextual modifier classes for colorizing the alert. + +.alert-success { + .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text); +} + +.alert-info { + .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text); +} + +.alert-warning { + .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text); +} + +.alert-danger { + .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text); +} diff --git a/web/client/themes/default/bootstrap-theme/badges.less b/web/client/themes/default/bootstrap-theme/badges.less new file mode 100644 index 0000000000..6ee16dca41 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/badges.less @@ -0,0 +1,66 @@ +// +// Badges +// -------------------------------------------------- + + +// Base class +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: @font-size-small; + font-weight: @badge-font-weight; + color: @badge-color; + line-height: @badge-line-height; + vertical-align: middle; + white-space: nowrap; + text-align: center; + background-color: @badge-bg; + border-radius: @badge-border-radius; + + // Empty badges collapse automatically (not available in IE8) + &:empty { + display: none; + } + + // Quick fix for badges in buttons + .btn & { + position: relative; + top: -1px; + } + + .btn-xs &, + .btn-group-xs > .btn & { + top: 0; + padding: 1px 5px; + } + + // Hover state, but only for links + a& { + &:hover, + &:focus { + color: @badge-link-hover-color; + text-decoration: none; + cursor: pointer; + } + } + + // Account for badges in navs + .list-group-item.active > &, + .nav-pills > .active > a > & { + color: @badge-active-color; + background-color: @badge-active-bg; + } + + .list-group-item > & { + float: right; + } + + .list-group-item > & + & { + margin-right: 5px; + } + + .nav-pills > li > a > & { + margin-left: 3px; + } +} diff --git a/web/client/themes/default/bootstrap-theme/bootstrap.less b/web/client/themes/default/bootstrap-theme/bootstrap.less new file mode 100644 index 0000000000..94a1a0dc87 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/bootstrap.less @@ -0,0 +1,56 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +// Core variables and mixins +@import "variables.less"; +@import "mixins.less"; + +// Reset and dependencies +@import "normalize.less"; +@import "print.less"; +// @import "glyphicons.less"; + +// Core CSS +@import "scaffolding.less"; +@import "type.less"; +@import "code.less"; +@import "grid.less"; +@import "tables.less"; +@import "forms.less"; +@import "buttons.less"; + +// Components +@import "component-animations.less"; +@import "dropdowns.less"; +@import "button-groups.less"; +@import "input-groups.less"; +@import "navs.less"; +@import "navbar.less"; +@import "breadcrumbs.less"; +@import "pagination.less"; +@import "pager.less"; +@import "labels.less"; +@import "badges.less"; +@import "jumbotron.less"; +@import "thumbnails.less"; +@import "alerts.less"; +@import "progress-bars.less"; +@import "media.less"; +@import "list-group.less"; +@import "panels.less"; +@import "responsive-embed.less"; +@import "wells.less"; +@import "close.less"; + +// Components w/ JavaScript +@import "modals.less"; +@import "tooltip.less"; +@import "popovers.less"; +@import "carousel.less"; + +// Utility classes +@import "utilities.less"; +@import "responsive-utilities.less"; diff --git a/web/client/themes/default/bootstrap-theme/breadcrumbs.less b/web/client/themes/default/bootstrap-theme/breadcrumbs.less new file mode 100644 index 0000000000..cb01d503fb --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/breadcrumbs.less @@ -0,0 +1,26 @@ +// +// Breadcrumbs +// -------------------------------------------------- + + +.breadcrumb { + padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; + margin-bottom: @line-height-computed; + list-style: none; + background-color: @breadcrumb-bg; + border-radius: @border-radius-base; + + > li { + display: inline-block; + + + li:before { + content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space + padding: 0 5px; + color: @breadcrumb-color; + } + } + + > .active { + color: @breadcrumb-active-color; + } +} diff --git a/web/client/themes/default/bootstrap-theme/button-groups.less b/web/client/themes/default/bootstrap-theme/button-groups.less new file mode 100644 index 0000000000..d3ccd12d03 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/button-groups.less @@ -0,0 +1,244 @@ +// +// Button groups +// -------------------------------------------------- + +// Make the div behave like a button +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; // match .btn alignment given font-size hack above + > .btn { + position: relative; + float: left; + // Bring the "active" button to the front + &:hover, + &:focus, + &:active, + &.active { + z-index: 2; + } + } +} + +// Prevent double borders when buttons are next to each other +.btn-group { + .btn + .btn, + .btn + .btn-group, + .btn-group + .btn, + .btn-group + .btn-group { + margin-left: -1px; + } +} + +// Optional: Group multiple button groups together for a toolbar +.btn-toolbar { + margin-left: -5px; // Offset the first child's margin + &:extend(.clearfix all); + + .btn, + .btn-group, + .input-group { + float: left; + } + > .btn, + > .btn-group, + > .input-group { + margin-left: 5px; + } +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +// 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; + &:not(:last-child):not(.dropdown-toggle) { + .border-right-radius(0); + } +} +// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + .border-left-radius(0); +} + +// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child:not(:last-child) { + > .btn:last-child, + > .dropdown-toggle { + .border-right-radius(0); + } +} +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + .border-left-radius(0); +} + +// On active and open, don't show outline +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + + +// Sizing +// +// Remix the default button sizing classes into new ones for easier manipulation. + +.btn-group-xs > .btn { &:extend(.btn-xs); } +.btn-group-sm > .btn { &:extend(.btn-sm); } +.btn-group-lg > .btn { &:extend(.btn-lg); } + + +// Split button dropdowns +// ---------------------- + +// Give the line between buttons some depth +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} + +// The clickable button for toggling the menu +// Remove the gradient and set the same inset shadow as the :active state +.btn-group.open .dropdown-toggle { + .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + + // Show no shadow for `.btn-link` since it has no other button styles. + &.btn-link { + .box-shadow(none); + } +} + + +// Reposition the caret +.btn .caret { + margin-left: 0; +} +// Carets in other button sizes +.btn-lg .caret { + border-width: @caret-width-large @caret-width-large 0; + border-bottom-width: 0; +} +// Upside down carets for .dropup +.dropup .btn-lg .caret { + border-width: 0 @caret-width-large @caret-width-large; +} + + +// Vertical button groups +// ---------------------- + +.btn-group-vertical { + > .btn, + > .btn-group, + > .btn-group > .btn { + display: block; + float: none; + /*width: 100%; + max-width: 100%;*/ /* new ms2 */ + } + + // Clear floats so dropdown menus can be properly placed + > .btn-group { + &:extend(.clearfix all); + > .btn { + float: none; + } + } + + > .btn + .btn, + > .btn + .btn-group, + > .btn-group + .btn, + > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; + } +} + +.btn-group-vertical > .btn { + &:not(:first-child):not(:last-child) { + border-radius: 0; + } + &:first-child:not(:last-child) { + .border-top-radius(@btn-border-radius-base); + .border-bottom-radius(0); + } + &:last-child:not(:first-child) { + .border-top-radius(0); + .border-bottom-radius(@btn-border-radius-base); + } +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) { + > .btn:last-child, + > .dropdown-toggle { + .border-bottom-radius(0); + } +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + .border-top-radius(0); +} + + +// Justified button groups +// ---------------------- + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; + > .btn, + > .btn-group { + float: none; + display: table-cell; + width: 1%; + } + > .btn-group .btn { + width: 100%; + } + + > .btn-group .dropdown-menu { + left: auto; + } +} + + +// Checkbox and radio options +// +// In order to support the browser's form validation feedback, powered by the +// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use +// `display: none;` or `visibility: hidden;` as that also hides the popover. +// Simply visually hiding the inputs via `opacity` would leave them clickable in +// certain cases which is prevented by using `clip` and `pointer-events`. +// This way, we ensure a DOM element is visible to position the popover from. +// +// See https://github.com/twbs/bootstrap/pull/12794 and +// https://github.com/twbs/bootstrap/pull/14559 for more information. + +[data-toggle="buttons"] { + > .btn, + > .btn-group > .btn { + input[type="radio"], + input[type="checkbox"] { + position: absolute; + clip: rect(0,0,0,0); + pointer-events: none; + } + } +} diff --git a/web/client/themes/default/bootstrap-theme/buttons.less b/web/client/themes/default/bootstrap-theme/buttons.less new file mode 100644 index 0000000000..be8f20897b --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/buttons.less @@ -0,0 +1,166 @@ +// +// Buttons +// -------------------------------------------------- + + +// Base styles +// -------------------------------------------------- + +.btn { + display: inline-block; + margin-bottom: 0; // For input.btn + font-weight: @btn-font-weight; + text-align: center; + vertical-align: middle; + touch-action: manipulation; + cursor: pointer; + background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 + border: 1px solid transparent; + white-space: nowrap; + .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base); + .user-select(none); + + &, + &:active, + &.active { + &:focus, + &.focus { + .tab-focus(); + } + } + + &:hover, + &:focus, + &.focus { + color: @btn-default-color; + text-decoration: none; + } + + &:active, + &.active { + outline: 0; + background-image: none; + .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + } + + &.disabled, + &[disabled], + fieldset[disabled] & { + cursor: @cursor-disabled; + /*.opacity(.65);*/ + .box-shadow(none); + } + + a& { + &.disabled, + fieldset[disabled] & { + pointer-events: none; // Future-proof disabling of clicks on `
` elements + } + } +} + + +// Alternate buttons +// -------------------------------------------------- + +.btn-default { + .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border); +} +.btn-primary { + .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border); +} +// Success appears as green +.btn-success { + .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border); +} +// Info appears as blue-green +.btn-info { + .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border); +} +// Warning appears as orange +.btn-warning { + .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border); +} +// Danger and error appear as red +.btn-danger { + .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border); +} + + +// Link buttons +// ------------------------- + +// Make a button look and behave like a link +.btn-link { + color: @link-color; + font-weight: normal; + border-radius: 0; + + &, + &:active, + &.active, + &[disabled], + fieldset[disabled] & { + background-color: transparent; + .box-shadow(none); + } + &, + &:hover, + &:focus, + &:active { + border-color: transparent; + } + &:hover, + &:focus { + color: @link-hover-color; + text-decoration: @link-hover-decoration; + background-color: transparent; + } + &[disabled], + fieldset[disabled] & { + &:hover, + &:focus { + color: @btn-link-disabled-color; + text-decoration: none; + } + } +} + + +// Button Sizes +// -------------------------------------------------- + +.btn-lg { + // line-height: ensure even-numbered height of button next to large input + .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large); +} +.btn-sm { + // line-height: ensure proper height of button next to small input + .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small); +} +.btn-xs { + .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small); +} + + +// Block button +// -------------------------------------------------- + +.btn-block { + display: block; + width: 100%; +} + +// 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%; + } +} diff --git a/web/client/themes/default/bootstrap-theme/carousel.less b/web/client/themes/default/bootstrap-theme/carousel.less new file mode 100644 index 0000000000..252011e9e2 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/carousel.less @@ -0,0 +1,270 @@ +// +// Carousel +// -------------------------------------------------- + + +// Wrapper for the slide container and indicators +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + overflow: hidden; + width: 100%; + + > .item { + display: none; + position: relative; + .transition(.6s ease-in-out left); + + // Account for jankitude on images + > img, + > a > img { + &:extend(.img-responsive); + line-height: 1; + } + + // WebKit CSS3 transforms for supported devices + @media all and (transform-3d), (-webkit-transform-3d) { + .transition-transform(~'0.6s ease-in-out'); + .backface-visibility(~'hidden'); + .perspective(1000px); + + &.next, + &.active.right { + .translate3d(100%, 0, 0); + left: 0; + } + &.prev, + &.active.left { + .translate3d(-100%, 0, 0); + left: 0; + } + &.next.left, + &.prev.right, + &.active { + .translate3d(0, 0, 0); + left: 0; + } + } + } + + > .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: 0; + left: 0; + bottom: 0; + width: @carousel-control-width; + .opacity(@carousel-control-opacity); + font-size: @carousel-control-font-size; + color: @carousel-control-color; + text-align: center; + text-shadow: @carousel-text-shadow; + background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug + // We can't have this transition here because WebKit cancels the carousel + // animation if you trip this while in the middle of another animation. + + // Set gradients for backgrounds + &.left { + #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001)); + } + &.right { + left: auto; + right: 0; + #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5)); + } + + // Hover/focus state + &:hover, + &:focus { + outline: 0; + color: @carousel-control-color; + text-decoration: none; + .opacity(.9); + } + + // Toggles + .icon-prev, + .icon-next, + .glyphicon-chevron-left, + .glyphicon-chevron-right { + position: absolute; + top: 50%; + margin-top: -10px; + z-index: 5; + display: inline-block; + } + .icon-prev, + .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; + } + .icon-next, + .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; + } + .icon-prev, + .icon-next { + width: 20px; + height: 20px; + line-height: 1; + font-family: serif; + } + + + .icon-prev { + &:before { + content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) + } + } + .icon-next { + &:before { + content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) + } + } +} + +// Optional indicator pips +// +// Add an unordered list with the following class and add a list item for each +// slide your carousel holds. + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + margin-left: -30%; + padding-left: 0; + list-style: none; + text-align: center; + + li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + border: 1px solid @carousel-indicator-border-color; + border-radius: 10px; + cursor: pointer; + + // IE8-9 hack for event handling + // + // Internet Explorer 8-9 does not support clicks on elements without a set + // `background-color`. We cannot use `filter` since that's not viewed as a + // background color by the browser. Thus, a hack is needed. + // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer + // + // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we + // set alpha transparency for the best results possible. + background-color: #000 \9; // IE8 + background-color: rgba(0,0,0,0); // IE9 + } + .active { + margin: 0; + width: 12px; + height: 12px; + background-color: @carousel-indicator-active-bg; + } +} + +// Optional captions +// ----------------------------- +// Hidden by default for smaller viewports +.carousel-caption { + position: absolute; + left: 15%; + right: 15%; + bottom: 20px; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: @carousel-caption-color; + text-align: center; + text-shadow: @carousel-text-shadow; + & .btn { + text-shadow: none; // No shadow for button elements in carousel-caption + } +} + + +// Scale up controls for tablets and up +@media screen and (min-width: @screen-sm-min) { + + // Scale up the controls a smidge + .carousel-control { + .glyphicon-chevron-left, + .glyphicon-chevron-right, + .icon-prev, + .icon-next { + width: (@carousel-control-font-size * 1.5); + height: (@carousel-control-font-size * 1.5); + margin-top: (@carousel-control-font-size / -2); + font-size: (@carousel-control-font-size * 1.5); + } + .glyphicon-chevron-left, + .icon-prev { + margin-left: (@carousel-control-font-size / -2); + } + .glyphicon-chevron-right, + .icon-next { + margin-right: (@carousel-control-font-size / -2); + } + } + + // Show and left align the captions + .carousel-caption { + left: 20%; + right: 20%; + padding-bottom: 30px; + } + + // Move up the indicators + .carousel-indicators { + bottom: 20px; + } +} diff --git a/web/client/themes/default/bootstrap-theme/close.less b/web/client/themes/default/bootstrap-theme/close.less new file mode 100644 index 0000000000..6d5bfe087a --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/close.less @@ -0,0 +1,34 @@ +// +// Close icons +// -------------------------------------------------- + + +.close { + float: right; + font-size: (@font-size-base * 1.5); + font-weight: @close-font-weight; + line-height: 1; + color: @close-color; + text-shadow: @close-text-shadow; + .opacity(.2); + + &:hover, + &:focus { + color: @close-color; + text-decoration: none; + cursor: pointer; + .opacity(.5); + } + + // Additional properties for button version + // iOS requires the button element instead of an anchor tag. + // If you want the anchor version, it requires `href="#"`. + // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile + button& { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; + } +} diff --git a/web/client/themes/default/bootstrap-theme/code.less b/web/client/themes/default/bootstrap-theme/code.less new file mode 100644 index 0000000000..a08b4d48c4 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/code.less @@ -0,0 +1,69 @@ +// +// Code (inline and block) +// -------------------------------------------------- + + +// Inline and block code styles +code, +kbd, +pre, +samp { + font-family: @font-family-monospace; +} + +// Inline code +code { + padding: 2px 4px; + font-size: 90%; + color: @code-color; + background-color: @code-bg; + border-radius: @border-radius-base; +} + +// User input typically entered via keyboard +kbd { + padding: 2px 4px; + font-size: 90%; + color: @kbd-color; + background-color: @kbd-bg; + border-radius: @border-radius-small; + box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); + + kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + box-shadow: none; + } +} + +// Blocks of code +pre { + display: block; + padding: ((@line-height-computed - 1) / 2); + margin: 0 0 (@line-height-computed / 2); + font-size: (@font-size-base - 1); // 14px to 13px + line-height: @line-height-base; + word-break: break-all; + word-wrap: break-word; + color: @pre-color; + background-color: @pre-bg; + border: 1px solid @pre-border-color; + border-radius: @border-radius-base; + + // Account for some code outputs that place code tags in pre tags + code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; + } +} + +// Enable scrollable blocks of code +.pre-scrollable { + max-height: @pre-scrollable-max-height; + overflow-y: scroll; +} diff --git a/web/client/themes/default/bootstrap-theme/component-animations.less b/web/client/themes/default/bootstrap-theme/component-animations.less new file mode 100644 index 0000000000..0bcee910ac --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/component-animations.less @@ -0,0 +1,33 @@ +// +// Component animations +// -------------------------------------------------- + +// Heads up! +// +// We don't use the `.opacity()` mixin here since it causes a bug with text +// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. + +.fade { + opacity: 0; + .transition(opacity .15s linear); + &.in { + opacity: 1; + } +} + +.collapse { + display: none; + + &.in { display: block; } + tr&.in { display: table-row; } + tbody&.in { display: table-row-group; } +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + .transition-property(~"height, visibility"); + .transition-duration(.35s); + .transition-timing-function(ease); +} diff --git a/web/client/themes/default/bootstrap-theme/dropdowns.less b/web/client/themes/default/bootstrap-theme/dropdowns.less new file mode 100644 index 0000000000..f6876c1a9b --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/dropdowns.less @@ -0,0 +1,216 @@ +// +// Dropdown menus +// -------------------------------------------------- + + +// Dropdown arrow/caret +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: @caret-width-base dashed; + border-top: @caret-width-base solid ~"\9"; // IE8 + border-right: @caret-width-base solid transparent; + border-left: @caret-width-base solid transparent; +} + +// The dropdown wrapper (div) +.dropup, +.dropdown { + position: relative; +} + +// Prevent the focus on the dropdown toggle when closing dropdowns +.dropdown-toggle:focus { + outline: 0; +} + +// The dropdown menu (ul) +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: @zindex-dropdown; + 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; + font-size: @font-size-base; + text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) + background-color: @dropdown-bg; + border: 1px solid @dropdown-fallback-border; // IE8 fallback + border: 1px solid @dropdown-border; + border-radius: @border-radius-base; + .box-shadow(0 6px 12px rgba(0,0,0,.175)); + background-clip: padding-box; + + // Aligns the dropdown menu to right + // + // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]` + &.pull-right { + right: 0; + left: auto; + } + + // Dividers (basically an hr) within the dropdown + .divider { + .nav-divider(@dropdown-divider-bg); + } + + // Links within the dropdown menu + > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: @line-height-base; + color: @dropdown-link-color; + white-space: nowrap; // prevent links from randomly breaking onto new lines + } +} + +// Hover/Focus state +.dropdown-menu > li > a { + &:hover, + &:focus { + text-decoration: none; + color: @dropdown-link-hover-color; + background-color: @dropdown-link-hover-bg; + } +} + +// Active state +.dropdown-menu > .active > a { + &, + &:hover, + &:focus { + color: @dropdown-link-active-color; + text-decoration: none; + outline: 0; + background-color: @dropdown-link-active-bg; + } +} + +// Disabled state +// +// Gray out text and ensure the hover/focus state remains gray + +.dropdown-menu > .disabled > a { + &, + &:hover, + &:focus { + color: @dropdown-link-disabled-color; + } + + // Nuke hover/focus effects + &:hover, + &:focus { + text-decoration: none; + background-color: transparent; + background-image: none; // Remove CSS gradient + .reset-filter(); + cursor: @cursor-disabled; + } +} + +// Open state for the dropdown +.open { + // Show the menu + > .dropdown-menu { + display: block; + } + + // Remove the outline when :focus is triggered + > a { + outline: 0; + } +} + +// Menu positioning +// +// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown +// menu with the parent. +.dropdown-menu-right { + left: auto; // Reset the default from `.dropdown-menu` + right: 0; +} +// With v3, we enabled auto-flipping if you have a dropdown within a right +// aligned nav component. To enable the undoing of that, we provide an override +// to restore the default dropdown menu alignment. +// +// This is only for left-aligning a dropdown menu within a `.navbar-right` or +// `.pull-right` nav component. +.dropdown-menu-left { + left: 0; + right: auto; +} + +// Dropdown section headers +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: @font-size-small; + line-height: @line-height-base; + color: @dropdown-header-color; + white-space: nowrap; // as with > li > a +} + +// Backdrop to catch body clicks on mobile, etc. +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: (@zindex-dropdown - 10); +} + +// Right aligned dropdowns +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +// Allow for dropdowns to go bottom up (aka, dropup-menu) +// +// Just add .dropup after the standard .dropdown class and you're set, bro. +// TODO: abstract this so that the navbar fixed styles are not placed here? + +.dropup, +.navbar-fixed-bottom .dropdown { + // Reverse the caret + .caret { + border-top: 0; + border-bottom: @caret-width-base dashed; + border-bottom: @caret-width-base solid ~"\9"; // IE8 + content: ""; + } + // Different positioning for bottom up menu + .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; + } +} + + +// Component alignment +// +// Reiterate per navbar.less and the modified component alignment there. + +@media (min-width: @grid-float-breakpoint) { + .navbar-right { + .dropdown-menu { + .dropdown-menu-right(); + } + // Necessary for overrides of the default right aligned menu. + // Will remove come v4 in all likelihood. + .dropdown-menu-left { + .dropdown-menu-left(); + } + } +} diff --git a/web/client/themes/default/bootstrap-theme/forms.less b/web/client/themes/default/bootstrap-theme/forms.less new file mode 100644 index 0000000000..9377d3846b --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/forms.less @@ -0,0 +1,613 @@ +// +// Forms +// -------------------------------------------------- + + +// Normalize non-controls +// +// Restyle and baseline non-control form elements. + +fieldset { + padding: 0; + margin: 0; + border: 0; + // Chrome and Firefox set a `min-width: min-content;` on fieldsets, + // so we reset that to ensure it behaves more like a standard block element. + // See https://github.com/twbs/bootstrap/issues/12359. + min-width: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: @line-height-computed; + font-size: (@font-size-base * 1.5); + line-height: inherit; + color: @legend-color; + border: 0; + border-bottom: 1px solid @legend-border-color; +} + +label { + display: inline-block; + max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141) + margin-bottom: 5px; + font-weight: bold; +} + + +// Normalize form controls +// +// While most of our form styles require extra classes, some basic normalization +// is required to ensure optimum display with or without those classes to better +// address browser inconsistencies. + +// Override content-box in Normalize (* isn't specific enough) +input[type="search"] { + .box-sizing(border-box); +} + +// Position radios and checkboxes better +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; // IE8-9 + line-height: normal; +} + +input[type="file"] { + display: block; +} + +// Make range inputs behave like textual form controls +input[type="range"] { + display: block; + width: 100%; +} + +// Make multiple select elements height not fixed +select[multiple], +select[size] { + height: auto; +} + +// Focus for file, radio, and checkbox +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + .tab-focus(); +} + +// Adjust output element +output { + display: block; + padding-top: (@padding-base-vertical + 1); + font-size: @font-size-base; + line-height: @line-height-base; + color: @input-color; +} + + +// Common form controls +// +// Shared size and type resets for form controls. Apply `.form-control` to any +// of the following form controls: +// +// 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"] + +.form-control { + display: block; + width: 100%; + height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border) + padding: @padding-base-vertical @padding-base-horizontal; + font-size: @font-size-base; + line-height: @line-height-base; + color: @input-color; + background-color: @input-bg; + background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 + border: 1px solid @input-border; + border-radius: @input-border-radius; // Note: This has no effect on s in CSS. + .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); + .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s"); + + // Customize the `:focus` state to imitate native WebKit styles. + .form-control-focus(); + + // Placeholder + .placeholder(); + + // Unstyle the caret on `` +// element gets special love because it's special, and that's a fact! +.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { + height: @input-height; + padding: @padding-vertical @padding-horizontal; + font-size: @font-size; + line-height: @line-height; + border-radius: @border-radius; + + select& { + height: @input-height; + line-height: @input-height; + } + + textarea&, + select[multiple]& { + height: auto; + } +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/gradients.less b/web/client/themes/default/bootstrap-theme/mixins/gradients.less new file mode 100644 index 0000000000..0b88a89cc5 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/gradients.less @@ -0,0 +1,59 @@ +// Gradients + +#gradient { + + // Horizontal gradient, from left to right + // + // Creates two color stops, start and end, by specifying a color and position for each color stop. + // Color stops are not available in IE9 and below. + .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) { + background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+ + background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12 + background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ + background-repeat: repeat-x; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down + } + + // Vertical gradient, from top to bottom + // + // Creates two color stops, start and end, by specifying a color and position for each color stop. + // Color stops are not available in IE9 and below. + .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) { + background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+ + background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12 + background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ + background-repeat: repeat-x; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down + } + + .directional(@start-color: #555; @end-color: #333; @deg: 45deg) { + background-repeat: repeat-x; + background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+ + background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12 + background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+ + } + .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) { + background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); + background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); + background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color); + background-repeat: no-repeat; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback + } + .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) { + background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color); + background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color); + background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color); + background-repeat: no-repeat; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback + } + .radial(@inner-color: #555; @outer-color: #333) { + background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color); + background-image: radial-gradient(circle, @inner-color, @outer-color); + background-repeat: no-repeat; + } + .striped(@color: rgba(255,255,255,.15); @angle: 45deg) { + background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); + background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); + } +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/grid-framework.less b/web/client/themes/default/bootstrap-theme/mixins/grid-framework.less new file mode 100644 index 0000000000..8c23eed24e --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/grid-framework.less @@ -0,0 +1,91 @@ +// Framework grid generation +// +// Used only by Bootstrap to generate the correct number of grid classes given +// any value of `@grid-columns`. + +.make-grid-columns() { + // Common styles for all sizes of grid columns, widths 1-12 + .col(@index) { // initial + @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}"; + .col((@index + 1), @item); + } + .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo + @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}"; + .col((@index + 1), ~"@{list}, @{item}"); + } + .col(@index, @list) when (@index > @grid-columns) { // terminal + @{list} { + position: relative; + // Prevent columns from collapsing when empty + min-height: 1px; + // Inner gutter via padding + padding-left: ceil((@grid-gutter-width / 2)); + padding-right: floor((@grid-gutter-width / 2)); + } + } + .col(1); // kickstart it +} + +.float-grid-columns(@class) { + .col(@index) { // initial + @item: ~".col-@{class}-@{index}"; + .col((@index + 1), @item); + } + .col(@index, @list) when (@index =< @grid-columns) { // general + @item: ~".col-@{class}-@{index}"; + .col((@index + 1), ~"@{list}, @{item}"); + } + .col(@index, @list) when (@index > @grid-columns) { // terminal + @{list} { + float: left; + } + } + .col(1); // kickstart it +} + +.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) { + .col-@{class}-@{index} { + width: percentage((@index / @grid-columns)); + } +} +.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) { + .col-@{class}-push-@{index} { + left: percentage((@index / @grid-columns)); + } +} +.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) { + .col-@{class}-push-0 { + left: auto; + } +} +.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) { + .col-@{class}-pull-@{index} { + right: percentage((@index / @grid-columns)); + } +} +.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) { + .col-@{class}-pull-0 { + right: auto; + } +} +.calc-grid-column(@index, @class, @type) when (@type = offset) { + .col-@{class}-offset-@{index} { + margin-left: percentage((@index / @grid-columns)); + } +} + +// Basic looping in LESS +.loop-grid-columns(@index, @class, @type) when (@index >= 0) { + .calc-grid-column(@index, @class, @type); + // next iteration + .loop-grid-columns((@index - 1), @class, @type); +} + +// Create grid for specific class +.make-grid(@class) { + .float-grid-columns(@class); + .loop-grid-columns(@grid-columns, @class, width); + .loop-grid-columns(@grid-columns, @class, pull); + .loop-grid-columns(@grid-columns, @class, push); + .loop-grid-columns(@grid-columns, @class, offset); +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/grid.less b/web/client/themes/default/bootstrap-theme/mixins/grid.less new file mode 100644 index 0000000000..df496d0b3c --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/grid.less @@ -0,0 +1,122 @@ +// Grid system +// +// Generate semantic grid columns with these mixins. + +// Centered container element +.container-fixed(@gutter: @grid-gutter-width) { + margin-right: auto; + margin-left: auto; + padding-left: floor((@gutter / 2)); + padding-right: ceil((@gutter / 2)); + &:extend(.clearfix all); +} + +// Creates a wrapper for a series of columns +.make-row(@gutter: @grid-gutter-width) { + margin-left: ceil((@gutter / -2)); + margin-right: floor((@gutter / -2)); + &:extend(.clearfix all); +} + +// Generate the extra small columns +.make-xs-column(@columns; @gutter: @grid-gutter-width) { + position: relative; + float: left; + width: percentage((@columns / @grid-columns)); + min-height: 1px; + padding-left: (@gutter / 2); + padding-right: (@gutter / 2); +} +.make-xs-column-offset(@columns) { + margin-left: percentage((@columns / @grid-columns)); +} +.make-xs-column-push(@columns) { + left: percentage((@columns / @grid-columns)); +} +.make-xs-column-pull(@columns) { + right: percentage((@columns / @grid-columns)); +} + +// Generate the small columns +.make-sm-column(@columns; @gutter: @grid-gutter-width) { + position: relative; + min-height: 1px; + padding-left: (@gutter / 2); + padding-right: (@gutter / 2); + + @media (min-width: @screen-sm-min) { + float: left; + width: percentage((@columns / @grid-columns)); + } +} +.make-sm-column-offset(@columns) { + @media (min-width: @screen-sm-min) { + margin-left: percentage((@columns / @grid-columns)); + } +} +.make-sm-column-push(@columns) { + @media (min-width: @screen-sm-min) { + left: percentage((@columns / @grid-columns)); + } +} +.make-sm-column-pull(@columns) { + @media (min-width: @screen-sm-min) { + right: percentage((@columns / @grid-columns)); + } +} + +// Generate the medium columns +.make-md-column(@columns; @gutter: @grid-gutter-width) { + position: relative; + min-height: 1px; + padding-left: (@gutter / 2); + padding-right: (@gutter / 2); + + @media (min-width: @screen-md-min) { + float: left; + width: percentage((@columns / @grid-columns)); + } +} +.make-md-column-offset(@columns) { + @media (min-width: @screen-md-min) { + margin-left: percentage((@columns / @grid-columns)); + } +} +.make-md-column-push(@columns) { + @media (min-width: @screen-md-min) { + left: percentage((@columns / @grid-columns)); + } +} +.make-md-column-pull(@columns) { + @media (min-width: @screen-md-min) { + right: percentage((@columns / @grid-columns)); + } +} + +// Generate the large columns +.make-lg-column(@columns; @gutter: @grid-gutter-width) { + position: relative; + min-height: 1px; + padding-left: (@gutter / 2); + padding-right: (@gutter / 2); + + @media (min-width: @screen-lg-min) { + float: left; + width: percentage((@columns / @grid-columns)); + } +} +.make-lg-column-offset(@columns) { + @media (min-width: @screen-lg-min) { + margin-left: percentage((@columns / @grid-columns)); + } +} +.make-lg-column-push(@columns) { + @media (min-width: @screen-lg-min) { + left: percentage((@columns / @grid-columns)); + } +} +.make-lg-column-pull(@columns) { + @media (min-width: @screen-lg-min) { + right: percentage((@columns / @grid-columns)); + } +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/hide-text.less b/web/client/themes/default/bootstrap-theme/mixins/hide-text.less new file mode 100644 index 0000000000..2bb84a3b44 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/hide-text.less @@ -0,0 +1,21 @@ +// CSS image replacement +// +// Heads up! v3 launched with only `.hide-text()`, but per our pattern for +// mixins being reused as classes with the same name, this doesn't hold up. As +// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. +// +// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 + +// Deprecated as of v3.0.1 (has been removed in v4) +.hide-text() { + font: ~"0/0" a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +// New mixin to use as of v3.0.1 +.text-hide() { + .hide-text(); +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/image.less b/web/client/themes/default/bootstrap-theme/mixins/image.less new file mode 100644 index 0000000000..f233cb3e19 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/image.less @@ -0,0 +1,33 @@ +// Image Mixins +// - Responsive image +// - Retina image + + +// Responsive image +// +// Keep images from scaling beyond the width of their parents. +.img-responsive(@display: block) { + display: @display; + max-width: 100%; // Part 1: Set a maximum relative to the parent + height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching +} + + +// Retina image +// +// Short retina mixin for setting background-image and -size. Note that the +// spelling of `min--moz-device-pixel-ratio` is intentional. +.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) { + background-image: url("@{file-1x}"); + + @media + only screen and (-webkit-min-device-pixel-ratio: 2), + only screen and ( min--moz-device-pixel-ratio: 2), + only screen and ( -o-min-device-pixel-ratio: 2/1), + only screen and ( min-device-pixel-ratio: 2), + only screen and ( min-resolution: 192dpi), + only screen and ( min-resolution: 2dppx) { + background-image: url("@{file-2x}"); + background-size: @width-1x @height-1x; + } +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/labels.less b/web/client/themes/default/bootstrap-theme/mixins/labels.less new file mode 100644 index 0000000000..9f7a67ee3d --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/labels.less @@ -0,0 +1,12 @@ +// Labels + +.label-variant(@color) { + background-color: @color; + + &[href] { + &:hover, + &:focus { + background-color: darken(@color, 10%); + } + } +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/list-group.less b/web/client/themes/default/bootstrap-theme/mixins/list-group.less new file mode 100644 index 0000000000..03aa19069d --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/list-group.less @@ -0,0 +1,30 @@ +// List Groups + +.list-group-item-variant(@state; @background; @color) { + .list-group-item-@{state} { + color: @color; + background-color: @background; + + a&, + button& { + color: @color; + + .list-group-item-heading { + color: inherit; + } + + &:hover, + &:focus { + color: @color; + background-color: darken(@background, 5%); + } + &.active, + &.active:hover, + &.active:focus { + color: #fff; + background-color: @color; + border-color: @color; + } + } + } +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/nav-divider.less b/web/client/themes/default/bootstrap-theme/mixins/nav-divider.less new file mode 100644 index 0000000000..feb1e9ed0d --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/nav-divider.less @@ -0,0 +1,10 @@ +// Horizontal dividers +// +// Dividers (basically an hr) within dropdowns and nav lists + +.nav-divider(@color: #e5e5e5) { + height: 1px; + margin: ((@line-height-computed / 2) - 1) 0; + overflow: hidden; + background-color: @color; +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/nav-vertical-align.less b/web/client/themes/default/bootstrap-theme/mixins/nav-vertical-align.less new file mode 100644 index 0000000000..d458c78613 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/nav-vertical-align.less @@ -0,0 +1,9 @@ +// Navbar vertical align +// +// Vertically center elements in the navbar. +// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. + +.navbar-vertical-align(@element-height) { + margin-top: ((@navbar-height - @element-height) / 2); + margin-bottom: ((@navbar-height - @element-height) / 2); +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/opacity.less b/web/client/themes/default/bootstrap-theme/mixins/opacity.less new file mode 100644 index 0000000000..33ed25ce67 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/opacity.less @@ -0,0 +1,8 @@ +// Opacity + +.opacity(@opacity) { + opacity: @opacity; + // IE8 filter + @opacity-ie: (@opacity * 100); + filter: ~"alpha(opacity=@{opacity-ie})"; +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/pagination.less b/web/client/themes/default/bootstrap-theme/mixins/pagination.less new file mode 100644 index 0000000000..618804f2de --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/pagination.less @@ -0,0 +1,24 @@ +// Pagination + +.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { + > li { + > a, + > span { + padding: @padding-vertical @padding-horizontal; + font-size: @font-size; + line-height: @line-height; + } + &:first-child { + > a, + > span { + .border-left-radius(@border-radius); + } + } + &:last-child { + > a, + > span { + .border-right-radius(@border-radius); + } + } + } +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/panels.less b/web/client/themes/default/bootstrap-theme/mixins/panels.less new file mode 100644 index 0000000000..49ee10d4ad --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/panels.less @@ -0,0 +1,24 @@ +// Panels + +.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) { + border-color: @border; + + & > .panel-heading { + color: @heading-text-color; + background-color: @heading-bg-color; + border-color: @heading-border; + + + .panel-collapse > .panel-body { + border-top-color: @border; + } + .badge { + color: @heading-bg-color; + background-color: @heading-text-color; + } + } + & > .panel-footer { + + .panel-collapse > .panel-body { + border-bottom-color: @border; + } + } +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/progress-bar.less b/web/client/themes/default/bootstrap-theme/mixins/progress-bar.less new file mode 100644 index 0000000000..f07996a34d --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/progress-bar.less @@ -0,0 +1,10 @@ +// Progress bars + +.progress-bar-variant(@color) { + background-color: @color; + + // Deprecated parent class requirement as of v3.2.0 + .progress-striped & { + #gradient > .striped(); + } +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/reset-filter.less b/web/client/themes/default/bootstrap-theme/mixins/reset-filter.less new file mode 100644 index 0000000000..68cdb5e186 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/reset-filter.less @@ -0,0 +1,8 @@ +// Reset filters for IE +// +// When you need to remove a gradient background, do not forget to use this to reset +// the IE filter for IE9 and below. + +.reset-filter() { + filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/reset-text.less b/web/client/themes/default/bootstrap-theme/mixins/reset-text.less new file mode 100644 index 0000000000..58dd4d19b4 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/reset-text.less @@ -0,0 +1,18 @@ +.reset-text() { + font-family: @font-family-base; + // We deliberately do NOT reset font-size. + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-break: auto; + line-height: @line-height-base; + text-align: left; // Fallback for where `start` is not supported + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + white-space: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/resize.less b/web/client/themes/default/bootstrap-theme/mixins/resize.less new file mode 100644 index 0000000000..3acd3afdba --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/resize.less @@ -0,0 +1,6 @@ +// Resize anything + +.resizable(@direction) { + resize: @direction; // Options: horizontal, vertical, both + overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/responsive-visibility.less b/web/client/themes/default/bootstrap-theme/mixins/responsive-visibility.less new file mode 100644 index 0000000000..ecf1e979fd --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/responsive-visibility.less @@ -0,0 +1,15 @@ +// Responsive utilities + +// +// More easily include all the states for responsive-utilities.less. +.responsive-visibility() { + display: block !important; + table& { display: table !important; } + tr& { display: table-row !important; } + th&, + td& { display: table-cell !important; } +} + +.responsive-invisibility() { + display: none !important; +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/size.less b/web/client/themes/default/bootstrap-theme/mixins/size.less new file mode 100644 index 0000000000..a8be650896 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/size.less @@ -0,0 +1,10 @@ +// Sizing shortcuts + +.size(@width; @height) { + width: @width; + height: @height; +} + +.square(@size) { + .size(@size; @size); +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/tab-focus.less b/web/client/themes/default/bootstrap-theme/mixins/tab-focus.less new file mode 100644 index 0000000000..d12d23629f --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/tab-focus.less @@ -0,0 +1,9 @@ +// WebKit-style focus + +.tab-focus() { + // WebKit-specific. Other browsers will keep their default outline style. + // (Initially tried to also force default via `outline: initial`, + // but that seems to erroneously remove the outline in Firefox altogether.) + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/table-row.less b/web/client/themes/default/bootstrap-theme/mixins/table-row.less new file mode 100644 index 0000000000..0f287f1a8b --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/table-row.less @@ -0,0 +1,28 @@ +// Tables + +.table-row-variant(@state; @background) { + // Exact selectors below required to override `.table-striped` and prevent + // inheritance to nested tables. + .table > thead > tr, + .table > tbody > tr, + .table > tfoot > tr { + > td.@{state}, + > th.@{state}, + &.@{state} > td, + &.@{state} > th { + background-color: @background; + } + } + + // Hover states for `.table-hover` + // Note: this is not available for cells or rows within `thead` or `tfoot`. + .table-hover > tbody > tr { + > td.@{state}:hover, + > th.@{state}:hover, + &.@{state}:hover > td, + &:hover > .@{state}, + &.@{state}:hover > th { + background-color: darken(@background, 5%); + } + } +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/text-emphasis.less b/web/client/themes/default/bootstrap-theme/mixins/text-emphasis.less new file mode 100644 index 0000000000..9e8a77a698 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/text-emphasis.less @@ -0,0 +1,9 @@ +// Typography + +.text-emphasis-variant(@color) { + color: @color; + a&:hover, + a&:focus { + color: darken(@color, 10%); + } +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/text-overflow.less b/web/client/themes/default/bootstrap-theme/mixins/text-overflow.less new file mode 100644 index 0000000000..c11ad2fb74 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/text-overflow.less @@ -0,0 +1,8 @@ +// Text overflow +// Requires inline-block or block for proper styling + +.text-overflow() { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} diff --git a/web/client/themes/default/bootstrap-theme/mixins/vendor-prefixes.less b/web/client/themes/default/bootstrap-theme/mixins/vendor-prefixes.less new file mode 100644 index 0000000000..2b5e74b99e --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/mixins/vendor-prefixes.less @@ -0,0 +1,227 @@ +// Vendor Prefixes +// +// All vendor mixins are deprecated as of v3.2.0 due to the introduction of +// Autoprefixer in our Gruntfile. They have been removed in v4. + +// - Animations +// - Backface visibility +// - Box shadow +// - Box sizing +// - Content columns +// - Hyphens +// - Placeholder text +// - Transformations +// - Transitions +// - User Select + + +// Animations +.animation(@animation) { + -webkit-animation: @animation; + -o-animation: @animation; + animation: @animation; +} +.animation-name(@name) { + -webkit-animation-name: @name; + animation-name: @name; +} +.animation-duration(@duration) { + -webkit-animation-duration: @duration; + animation-duration: @duration; +} +.animation-timing-function(@timing-function) { + -webkit-animation-timing-function: @timing-function; + animation-timing-function: @timing-function; +} +.animation-delay(@delay) { + -webkit-animation-delay: @delay; + animation-delay: @delay; +} +.animation-iteration-count(@iteration-count) { + -webkit-animation-iteration-count: @iteration-count; + animation-iteration-count: @iteration-count; +} +.animation-direction(@direction) { + -webkit-animation-direction: @direction; + animation-direction: @direction; +} +.animation-fill-mode(@fill-mode) { + -webkit-animation-fill-mode: @fill-mode; + animation-fill-mode: @fill-mode; +} + +// Backface visibility +// Prevent browsers from flickering when using CSS 3D transforms. +// Default value is `visible`, but can be changed to `hidden` + +.backface-visibility(@visibility) { + -webkit-backface-visibility: @visibility; + -moz-backface-visibility: @visibility; + backface-visibility: @visibility; +} + +// Drop shadows +// +// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's +// supported browsers that have box shadow capabilities now support it. + +.box-shadow(@shadow) { + -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1 + box-shadow: @shadow; +} + +// Box sizing +.box-sizing(@boxmodel) { + -webkit-box-sizing: @boxmodel; + -moz-box-sizing: @boxmodel; + box-sizing: @boxmodel; +} + +// CSS3 Content Columns +.content-columns(@column-count; @column-gap: @grid-gutter-width) { + -webkit-column-count: @column-count; + -moz-column-count: @column-count; + column-count: @column-count; + -webkit-column-gap: @column-gap; + -moz-column-gap: @column-gap; + column-gap: @column-gap; +} + +// Optional hyphenation +.hyphens(@mode: auto) { + word-wrap: break-word; + -webkit-hyphens: @mode; + -moz-hyphens: @mode; + -ms-hyphens: @mode; // IE10+ + -o-hyphens: @mode; + hyphens: @mode; +} + +// Placeholder text +.placeholder(@color: @input-color-placeholder) { + // Firefox + &::-moz-placeholder { + color: @color; + opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526 + } + &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+ + &::-webkit-input-placeholder { color: @color; } // Safari and Chrome +} + +// Transformations +.scale(@ratio) { + -webkit-transform: scale(@ratio); + -ms-transform: scale(@ratio); // IE9 only + -o-transform: scale(@ratio); + transform: scale(@ratio); +} +.scale(@ratioX; @ratioY) { + -webkit-transform: scale(@ratioX, @ratioY); + -ms-transform: scale(@ratioX, @ratioY); // IE9 only + -o-transform: scale(@ratioX, @ratioY); + transform: scale(@ratioX, @ratioY); +} +.scaleX(@ratio) { + -webkit-transform: scaleX(@ratio); + -ms-transform: scaleX(@ratio); // IE9 only + -o-transform: scaleX(@ratio); + transform: scaleX(@ratio); +} +.scaleY(@ratio) { + -webkit-transform: scaleY(@ratio); + -ms-transform: scaleY(@ratio); // IE9 only + -o-transform: scaleY(@ratio); + transform: scaleY(@ratio); +} +.skew(@x; @y) { + -webkit-transform: skewX(@x) skewY(@y); + -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+ + -o-transform: skewX(@x) skewY(@y); + transform: skewX(@x) skewY(@y); +} +.translate(@x; @y) { + -webkit-transform: translate(@x, @y); + -ms-transform: translate(@x, @y); // IE9 only + -o-transform: translate(@x, @y); + transform: translate(@x, @y); +} +.translate3d(@x; @y; @z) { + -webkit-transform: translate3d(@x, @y, @z); + transform: translate3d(@x, @y, @z); +} +.rotate(@degrees) { + -webkit-transform: rotate(@degrees); + -ms-transform: rotate(@degrees); // IE9 only + -o-transform: rotate(@degrees); + transform: rotate(@degrees); +} +.rotateX(@degrees) { + -webkit-transform: rotateX(@degrees); + -ms-transform: rotateX(@degrees); // IE9 only + -o-transform: rotateX(@degrees); + transform: rotateX(@degrees); +} +.rotateY(@degrees) { + -webkit-transform: rotateY(@degrees); + -ms-transform: rotateY(@degrees); // IE9 only + -o-transform: rotateY(@degrees); + transform: rotateY(@degrees); +} +.perspective(@perspective) { + -webkit-perspective: @perspective; + -moz-perspective: @perspective; + perspective: @perspective; +} +.perspective-origin(@perspective) { + -webkit-perspective-origin: @perspective; + -moz-perspective-origin: @perspective; + perspective-origin: @perspective; +} +.transform-origin(@origin) { + -webkit-transform-origin: @origin; + -moz-transform-origin: @origin; + -ms-transform-origin: @origin; // IE9 only + transform-origin: @origin; +} + + +// Transitions + +.transition(@transition) { + -webkit-transition: @transition; + -o-transition: @transition; + transition: @transition; +} +.transition-property(@transition-property) { + -webkit-transition-property: @transition-property; + transition-property: @transition-property; +} +.transition-delay(@transition-delay) { + -webkit-transition-delay: @transition-delay; + transition-delay: @transition-delay; +} +.transition-duration(@transition-duration) { + -webkit-transition-duration: @transition-duration; + transition-duration: @transition-duration; +} +.transition-timing-function(@timing-function) { + -webkit-transition-timing-function: @timing-function; + transition-timing-function: @timing-function; +} +.transition-transform(@transition) { + -webkit-transition: -webkit-transform @transition; + -moz-transition: -moz-transform @transition; + -o-transition: -o-transform @transition; + transition: transform @transition; +} + + +// User select +// For selecting text on the page + +.user-select(@select) { + -webkit-user-select: @select; + -moz-user-select: @select; + -ms-user-select: @select; // IE10+ + user-select: @select; +} diff --git a/web/client/themes/default/bootstrap-theme/modals.less b/web/client/themes/default/bootstrap-theme/modals.less new file mode 100644 index 0000000000..8f01a72737 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/modals.less @@ -0,0 +1,152 @@ +// +// Modals +// -------------------------------------------------- + +// .modal-open - body class for killing the scroll +// .modal - container to scroll within +// .modal-dialog - positioning shell for the actual modal +// .modal-content - actual modal w/ bg and corners and shit + +// Kill the scroll on the body +.modal-open { + overflow: hidden; +} + +// Container that the modal scrolls within +.modal { + display: none; + overflow: hidden; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: @zindex-modal; + -webkit-overflow-scrolling: touch; + + // Prevent Chrome on Windows from adding a focus outline. For details, see + // https://github.com/twbs/bootstrap/pull/10951. + outline: 0; + + // When fading in the modal, animate it to slide down + &.fade .modal-dialog { + .translate(0, -25%); + .transition-transform(~"0.3s ease-out"); + } + &.in .modal-dialog { .translate(0, 0) } +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +// Shell div to position the modal with bottom padding +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} + +// Actual modal +.modal-content { + position: relative; + background-color: @modal-content-bg; + border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc) + border: 1px solid @modal-content-border-color; + border-radius: @border-radius-large; + .box-shadow(0 3px 9px rgba(0,0,0,.5)); + background-clip: padding-box; + // Remove focus outline from opened modal + outline: 0; +} + +// Modal background +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: @zindex-modal-background; + background-color: @modal-backdrop-bg; + // Fade for backdrop + &.fade { .opacity(0); } + &.in { .opacity(@modal-backdrop-opacity); } +} + +// Modal header +// Top section of the modal w/ title and dismiss +.modal-header { + padding: @modal-title-padding; + border-bottom: 1px solid @modal-header-border-color; + color: @modal-header-color; /* new ms2 */ + background-color: @modal-header-bg; /* new ms2 */ + &:extend(.clearfix all); +} +// Close icon +.modal-header .close { + margin-top: -2px; +} + +// Title text within header +.modal-title { + margin: 0; + line-height: @modal-title-line-height; +} + +// Modal body +// Where all modal content resides (sibling of .modal-header and .modal-footer) +.modal-body { + position: relative; + padding: @modal-inner-padding; +} + +// Footer (for actions) +.modal-footer { + padding: @modal-inner-padding; + text-align: right; // right align buttons + border-top: 1px solid @modal-footer-border-color; + &:extend(.clearfix all); // 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; + } +} + +// Measure scrollbar width for padding body during modal show/hide +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +// Scale up the modal +@media (min-width: @screen-sm-min) { + // Automatically set modal's width for larger viewports + .modal-dialog { + width: @modal-md; + margin: 30px auto; + } + .modal-content { + .box-shadow(0 5px 15px rgba(0,0,0,.5)); + } + + // Modal sizes + .modal-sm { width: @modal-sm; } +} + +@media (min-width: @screen-md-min) { + .modal-lg { width: @modal-lg; } +} diff --git a/web/client/themes/default/bootstrap-theme/navbar.less b/web/client/themes/default/bootstrap-theme/navbar.less new file mode 100644 index 0000000000..6d751bb9ce --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/navbar.less @@ -0,0 +1,660 @@ +// +// Navbars +// -------------------------------------------------- + + +// Wrapper and base class +// +// Provide a static navbar from which we expand to create full-width, fixed, and +// other navbar variations. + +.navbar { + position: relative; + min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode) + margin-bottom: @navbar-margin-bottom; + border: 1px solid transparent; + + // Prevent floats from breaking the navbar + &:extend(.clearfix all); + + @media (min-width: @grid-float-breakpoint) { + border-radius: @navbar-border-radius; + } +} + + +// Navbar heading +// +// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy +// styling of responsive aspects. + +.navbar-header { + &:extend(.clearfix all); + + @media (min-width: @grid-float-breakpoint) { + float: left; + } +} + + +// Navbar collapse (body) +// +// Group your navbar content into this for easy collapsing and expanding across +// various device sizes. By default, this content is collapsed when <768px, but +// will expand past that for a horizontal display. +// +// To start (on mobile devices) the navbar links, forms, and buttons are stacked +// vertically and include a `max-height` to overflow in case you have too much +// content for the user's viewport. + +.navbar-collapse { + overflow-x: visible; + padding-right: @navbar-padding-horizontal; + padding-left: @navbar-padding-horizontal; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255,255,255,.1); + &:extend(.clearfix all); + -webkit-overflow-scrolling: touch; + + &.in { + overflow-y: auto; + } + + @media (min-width: @grid-float-breakpoint) { + width: auto; + border-top: 0; + box-shadow: none; + + &.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; // Override default setting + overflow: visible !important; + } + + &.in { + overflow-y: visible; + } + + // Undo the collapse side padding for navbars with containers to ensure + // alignment of right-aligned contents. + .navbar-fixed-top &, + .navbar-static-top &, + .navbar-fixed-bottom & { + padding-left: 0; + padding-right: 0; + } + } +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + .navbar-collapse { + max-height: @navbar-collapse-max-height; + + @media (max-device-width: @screen-xs-min) and (orientation: landscape) { + max-height: 200px; + } + } +} + + +// Both navbar header and collapse +// +// When a container is present, change the behavior of the header and collapse. + +.container, +.container-fluid { + > .navbar-header, + > .navbar-collapse { + margin-right: -@navbar-padding-horizontal; + margin-left: -@navbar-padding-horizontal; + + @media (min-width: @grid-float-breakpoint) { + margin-right: 0; + margin-left: 0; + } + } +} + + +// +// Navbar alignment options +// +// Display the navbar across the entirety of the page or fixed it to the top or +// bottom of the page. + +// Static top (unfixed, but 100% wide) navbar +.navbar-static-top { + z-index: @zindex-navbar; + border-width: 0 0 1px; + + @media (min-width: @grid-float-breakpoint) { + border-radius: 0; + } +} + +// Fix the top/bottom navbars when screen real estate supports it +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: @zindex-navbar-fixed; + + // Undo the rounded corners + @media (min-width: @grid-float-breakpoint) { + border-radius: 0; + } +} +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; // override .navbar defaults + border-width: 1px 0 0; +} + + +// Brand/project name + +.navbar-brand { + float: left; + padding: @navbar-padding-vertical @navbar-padding-horizontal; + font-size: @font-size-large; + line-height: @line-height-computed; + height: @navbar-height; + + &:hover, + &:focus { + text-decoration: none; + } + + > img { + display: block; + } + + @media (min-width: @grid-float-breakpoint) { + .navbar > .container &, + .navbar > .container-fluid & { + margin-left: -@navbar-padding-horizontal; + } + } +} + + +// Navbar toggle +// +// Custom button for toggling the `.navbar-collapse`, powered by the collapse +// JavaScript plugin. + +.navbar-toggle { + position: relative; + float: right; + margin-right: @navbar-padding-horizontal; + padding: 9px 10px; + .navbar-vertical-align(34px); + background-color: transparent; + background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 + border: 1px solid transparent; + border-radius: @border-radius-base; + + // We remove the `outline` here, but later compensate by attaching `:hover` + // styles to `:focus`. + &:focus { + outline: 0; + } + + // Bars + .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; + } + .icon-bar + .icon-bar { + margin-top: 4px; + } + + @media (min-width: @grid-float-breakpoint) { + display: none; + } +} + + +// Navbar nav links +// +// Builds on top of the `.nav` components with its own modifier class to make +// the nav the full height of the horizontal nav (above 768px). + +.navbar-nav { + margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal; + + > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: @line-height-computed; + } + + @media (max-width: @grid-float-breakpoint-max) { + // Dropdowns get custom display when collapsed + .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + > li > a, + .dropdown-header { + padding: 5px 15px 5px 25px; + } + > li > a { + line-height: @line-height-computed; + &:hover, + &:focus { + background-image: none; + } + } + } + } + + // Uncollapse the nav + @media (min-width: @grid-float-breakpoint) { + float: left; + margin: 0; + + > li { + float: left; + > a { + padding-top: @navbar-padding-vertical; + padding-bottom: @navbar-padding-vertical; + } + } + } +} + + +// Navbar form +// +// Extension of the `.form-inline` with some extra flavor for optimum display in +// our navbars. + +.navbar-form { + margin-left: -@navbar-padding-horizontal; + margin-right: -@navbar-padding-horizontal; + padding: 10px @navbar-padding-horizontal; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1); + .box-shadow(@shadow); + + // Mixin behavior for optimum display + .form-inline(); + + .form-group { + @media (max-width: @grid-float-breakpoint-max) { + margin-bottom: 5px; + + &:last-child { + margin-bottom: 0; + } + } + } + + // Vertically center in expanded, horizontal navbar + .navbar-vertical-align(@input-height-base); + + // Undo 100% width for pull classes + @media (min-width: @grid-float-breakpoint) { + width: auto; + border: 0; + margin-left: 0; + margin-right: 0; + padding-top: 0; + padding-bottom: 0; + .box-shadow(none); + } +} + + +// Dropdown menus + +// Menu position and menu carets +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + .border-top-radius(0); +} +// Menu position and menu caret support for dropups via extra dropup class +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + .border-top-radius(@navbar-border-radius); + .border-bottom-radius(0); +} + + +// Buttons in navbars +// +// Vertically center a button within a navbar (when *not* in a form). + +.navbar-btn { + .navbar-vertical-align(@input-height-base); + + &.btn-sm { + .navbar-vertical-align(@input-height-small); + } + &.btn-xs { + .navbar-vertical-align(22); + } +} + + +// Text in navbars +// +// Add a class to make any element properly align itself vertically within the navbars. + +.navbar-text { + .navbar-vertical-align(@line-height-computed); + + @media (min-width: @grid-float-breakpoint) { + float: left; + margin-left: @navbar-padding-horizontal; + margin-right: @navbar-padding-horizontal; + } +} + + +// Component alignment +// +// Repurpose the pull utilities as their own navbar utilities to avoid specificity +// issues with parents and chaining. Only do this when the navbar is uncollapsed +// though so that navbar contents properly stack and align in mobile. +// +// Declared after the navbar components to ensure more specificity on the margins. + +@media (min-width: @grid-float-breakpoint) { + .navbar-left { .pull-left(); } + .navbar-right { + .pull-right(); + margin-right: -@navbar-padding-horizontal; + + ~ .navbar-right { + margin-right: 0; + } + } +} + + +// Alternate navbars +// -------------------------------------------------- + +// Default navbar +.navbar-default { + background-color: @navbar-default-bg; + border-color: @navbar-default-border; + + .navbar-brand { + color: @navbar-default-brand-color; + &:hover, + &:focus { + color: @navbar-default-brand-hover-color; + background-color: @navbar-default-brand-hover-bg; + } + } + + .navbar-text { + color: @navbar-default-color; + } + + .navbar-nav { + > li > a { + color: @navbar-default-link-color; + + &:hover, + &:focus { + color: @navbar-default-link-hover-color; + background-color: @navbar-default-link-hover-bg; + } + } + > .active > a { + &, + &:hover, + &:focus { + color: @navbar-default-link-active-color; + background-color: @navbar-default-link-active-bg; + } + } + > .disabled > a { + &, + &:hover, + &:focus { + color: @navbar-default-link-disabled-color; + background-color: @navbar-default-link-disabled-bg; + } + } + } + + .navbar-toggle { + border-color: @navbar-default-toggle-border-color; + &:hover, + &:focus { + background-color: @navbar-default-toggle-hover-bg; + } + .icon-bar { + background-color: @navbar-default-toggle-icon-bar-bg; + } + } + + .navbar-collapse, + .navbar-form { + border-color: @navbar-default-border; + } + + // Dropdown menu items + .navbar-nav { + // Remove background color from open dropdown + > .open > a { + &, + &:hover, + &:focus { + background-color: @navbar-default-link-active-bg; + color: @navbar-default-link-active-color; + } + } + + @media (max-width: @grid-float-breakpoint-max) { + // Dropdowns get custom display when collapsed + .open .dropdown-menu { + > li > a { + color: @navbar-default-link-color; + &:hover, + &:focus { + color: @navbar-default-link-hover-color; + background-color: @navbar-default-link-hover-bg; + } + } + > .active > a { + &, + &:hover, + &:focus { + color: @navbar-default-link-active-color; + background-color: @navbar-default-link-active-bg; + } + } + > .disabled > a { + &, + &:hover, + &:focus { + color: @navbar-default-link-disabled-color; + background-color: @navbar-default-link-disabled-bg; + } + } + } + } + } + + + // Links in navbars + // + // Add a class to ensure links outside the navbar nav are colored correctly. + + .navbar-link { + color: @navbar-default-link-color; + &:hover { + color: @navbar-default-link-hover-color; + } + } + + .btn-link { + color: @navbar-default-link-color; + &:hover, + &:focus { + color: @navbar-default-link-hover-color; + } + &[disabled], + fieldset[disabled] & { + &:hover, + &:focus { + color: @navbar-default-link-disabled-color; + } + } + } +} + +// Inverse navbar + +.navbar-inverse { + background-color: @navbar-inverse-bg; + border-color: @navbar-inverse-border; + + .navbar-brand { + color: @navbar-inverse-brand-color; + &:hover, + &:focus { + color: @navbar-inverse-brand-hover-color; + background-color: @navbar-inverse-brand-hover-bg; + } + } + + .navbar-text { + color: @navbar-inverse-color; + } + + .navbar-nav { + > li > a { + color: @navbar-inverse-link-color; + + &:hover, + &:focus { + color: @navbar-inverse-link-hover-color; + background-color: @navbar-inverse-link-hover-bg; + } + } + > .active > a { + &, + &:hover, + &:focus { + color: @navbar-inverse-link-active-color; + background-color: @navbar-inverse-link-active-bg; + } + } + > .disabled > a { + &, + &:hover, + &:focus { + color: @navbar-inverse-link-disabled-color; + background-color: @navbar-inverse-link-disabled-bg; + } + } + } + + // Darken the responsive nav toggle + .navbar-toggle { + border-color: @navbar-inverse-toggle-border-color; + &:hover, + &:focus { + background-color: @navbar-inverse-toggle-hover-bg; + } + .icon-bar { + background-color: @navbar-inverse-toggle-icon-bar-bg; + } + } + + .navbar-collapse, + .navbar-form { + border-color: darken(@navbar-inverse-bg, 7%); + } + + // Dropdowns + .navbar-nav { + > .open > a { + &, + &:hover, + &:focus { + background-color: @navbar-inverse-link-active-bg; + color: @navbar-inverse-link-active-color; + } + } + + @media (max-width: @grid-float-breakpoint-max) { + // Dropdowns get custom display + .open .dropdown-menu { + > .dropdown-header { + border-color: @navbar-inverse-border; + } + .divider { + background-color: @navbar-inverse-border; + } + > li > a { + color: @navbar-inverse-link-color; + &:hover, + &:focus { + color: @navbar-inverse-link-hover-color; + background-color: @navbar-inverse-link-hover-bg; + } + } + > .active > a { + &, + &:hover, + &:focus { + color: @navbar-inverse-link-active-color; + background-color: @navbar-inverse-link-active-bg; + } + } + > .disabled > a { + &, + &:hover, + &:focus { + color: @navbar-inverse-link-disabled-color; + background-color: @navbar-inverse-link-disabled-bg; + } + } + } + } + } + + .navbar-link { + color: @navbar-inverse-link-color; + &:hover { + color: @navbar-inverse-link-hover-color; + } + } + + .btn-link { + color: @navbar-inverse-link-color; + &:hover, + &:focus { + color: @navbar-inverse-link-hover-color; + } + &[disabled], + fieldset[disabled] & { + &:hover, + &:focus { + color: @navbar-inverse-link-disabled-color; + } + } + } +} diff --git a/web/client/themes/default/bootstrap-theme/navs.less b/web/client/themes/default/bootstrap-theme/navs.less new file mode 100644 index 0000000000..a3d11b1362 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/navs.less @@ -0,0 +1,242 @@ +// +// Navs +// -------------------------------------------------- + + +// Base class +// -------------------------------------------------- + +.nav { + margin-bottom: 0; + padding-left: 0; // Override default ul/ol + list-style: none; + &:extend(.clearfix all); + + > li { + position: relative; + display: block; + + > a { + position: relative; + display: block; + padding: @nav-link-padding; + &:hover, + &:focus { + text-decoration: none; + background-color: @nav-link-hover-bg; + } + } + + // Disabled state sets text to gray and nukes hover/tab effects + &.disabled > a { + color: @nav-disabled-link-color; + + &:hover, + &:focus { + color: @nav-disabled-link-hover-color; + text-decoration: none; + background-color: transparent; + cursor: @cursor-disabled; + } + } + } + + // Open dropdowns + .open > a { + &, + &:hover, + &:focus { + background-color: @nav-link-hover-bg; + border-color: @link-color; + } + } + + // Nav dividers (deprecated with v3.0.1) + // + // This should have been removed in v3 with the dropping of `.nav-list`, but + // we missed it. We don't currently support this anywhere, but in the interest + // of maintaining backward compatibility in case you use it, it's deprecated. + .nav-divider { + .nav-divider(); + } + + // Prevent IE8 from misplacing imgs + // + // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989 + > li > a > img { + max-width: none; + } +} + + +// Tabs +// ------------------------- + +// Give the tabs something to sit on +.nav-tabs { + border-bottom: 1px solid @nav-tabs-border-color; + > li { + float: left; + // Make the list-items overlay the bottom border + margin-bottom: -1px; + + // Actual tabs (as links) + > a { + margin-right: 2px; + line-height: @line-height-base; + border: 1px solid transparent; + border-radius: @border-radius-base @border-radius-base 0 0; + &:hover { + border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color; + } + } + + // Active state, and its :hover to override normal :hover + &.active > a { + &, + &:hover, + &:focus { + color: @nav-tabs-active-link-hover-color; + background-color: @nav-tabs-active-link-hover-bg; + border: 1px solid @nav-tabs-active-link-hover-border-color; + border-bottom-color: transparent; + cursor: default; + } + } + } + // pulling this in mainly for less shorthand + &.nav-justified { + .nav-justified(); + .nav-tabs-justified(); + } +} + + +// Pills +// ------------------------- +.nav-pills { + > li { + float: left; + + // Links rendered as pills + > a { + border-radius: @nav-pills-border-radius; + } + + li { + margin-left: 2px; + } + + // Active state + &.active > a { + &, + &:hover, + &:focus { + color: @nav-pills-active-link-hover-color; + background-color: @nav-pills-active-link-hover-bg; + } + } + } +} + + +// Stacked pills +.nav-stacked { + > li { + float: none; + + li { + margin-top: 2px; + margin-left: 0; // no need for this gap between nav items + } + } +} + + +// Nav variations +// -------------------------------------------------- + +// Justified nav links +// ------------------------- + +.nav-justified { + width: 100%; + + > li { + float: none; + > a { + text-align: center; + margin-bottom: 5px; + } + } + + > .dropdown .dropdown-menu { + top: auto; + left: auto; + } + + @media (min-width: @screen-sm-min) { + > li { + display: table-cell; + width: 1%; + > a { + margin-bottom: 0; + } + } + } +} + +// Move borders to anchors instead of bottom of list +// +// Mixin for adding on top the shared `.nav-justified` styles for our tabs +.nav-tabs-justified { + border-bottom: 0; + + > li > a { + // Override margin from .nav-tabs + margin-right: 0; + border-radius: @border-radius-base; + } + + > .active > a, + > .active > a:hover, + > .active > a:focus { + border: 1px solid @nav-tabs-justified-link-border-color; + } + + @media (min-width: @screen-sm-min) { + > li > a { + border-bottom: 1px solid @nav-tabs-justified-link-border-color; + border-radius: @border-radius-base @border-radius-base 0 0; + } + > .active > a, + > .active > a:hover, + > .active > a:focus { + border-bottom-color: @nav-tabs-justified-active-link-border-color; + } + } +} + + +// Tabbable tabs +// ------------------------- + +// Hide tabbable panes to start, show them when `.active` +.tab-content { + > .tab-pane { + display: none; + } + > .active { + display: block; + } +} + + +// Dropdowns +// ------------------------- + +// Specific dropdowns +.nav-tabs .dropdown-menu { + // make dropdown border overlap tab border + margin-top: -1px; + // Remove the top rounded corners here since there is a hard edge above the menu + .border-top-radius(0); +} diff --git a/web/client/themes/default/bootstrap-theme/normalize.less b/web/client/themes/default/bootstrap-theme/normalize.less new file mode 100644 index 0000000000..9dddf73ad2 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/normalize.less @@ -0,0 +1,424 @@ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ + +// +// 1. Set default font family to sans-serif. +// 2. Prevent iOS and IE text size adjust after device orientation change, +// without disabling user zoom. +// + +html { + font-family: sans-serif; // 1 + -ms-text-size-adjust: 100%; // 2 + -webkit-text-size-adjust: 100%; // 2 +} + +// +// Remove default margin. +// + +body { + margin: 0; +} + +// HTML5 display definitions +// ========================================================================== + +// +// Correct `block` display not defined for any HTML5 element in IE 8/9. +// Correct `block` display not defined for `details` or `summary` in IE 10/11 +// and Firefox. +// Correct `block` display not defined for `main` in IE 11. +// + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +// +// 1. Correct `inline-block` display not defined in IE 8/9. +// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. +// + +audio, +canvas, +progress, +video { + display: inline-block; // 1 + vertical-align: baseline; // 2 +} + +// +// Prevent modern browsers from displaying `audio` without controls. +// Remove excess height in iOS 5 devices. +// + +audio:not([controls]) { + display: none; + height: 0; +} + +// +// Address `[hidden]` styling not present in IE 8/9/10. +// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. +// + +[hidden], +template { + display: none; +} + +// Links +// ========================================================================== + +// +// Remove the gray background color from active links in IE 10. +// + +a { + background-color: transparent; +} + +// +// Improve readability of focused elements when they are also in an +// active/hover state. +// + +a:active, +a:hover { + outline: 0; +} + +// Text-level semantics +// ========================================================================== + +// +// Address styling not present in IE 8/9/10/11, Safari, and Chrome. +// + +abbr[title] { + border-bottom: 1px dotted; +} + +// +// Address style set to `bolder` in Firefox 4+, Safari, and Chrome. +// + +b, +strong { + font-weight: bold; +} + +// +// Address styling not present in Safari and Chrome. +// + +dfn { + font-style: italic; +} + +// +// Address variable `h1` font-size and margin within `section` and `article` +// contexts in Firefox 4+, Safari, and Chrome. +// + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +// +// Address styling not present in IE 8/9. +// + +mark { + background: #ff0; + color: #000; +} + +// +// Address inconsistent and variable font size in all browsers. +// + +small { + font-size: 80%; +} + +// +// Prevent `sub` and `sup` affecting `line-height` in all browsers. +// + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +// Embedded content +// ========================================================================== + +// +// Remove border when inside `a` element in IE 8/9/10. +// + +img { + border: 0; +} + +// +// Correct overflow not hidden in IE 9/10/11. +// + +svg:not(:root) { + overflow: hidden; +} + +// Grouping content +// ========================================================================== + +// +// Address margin not present in IE 8/9 and Safari. +// + +figure { + margin: 1em 40px; +} + +// +// Address differences between Firefox and other browsers. +// + +hr { + box-sizing: content-box; + height: 0; +} + +// +// Contain overflow in all browsers. +// + +pre { + overflow: auto; +} + +// +// Address odd `em`-unit font size rendering in all browsers. +// + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +// Forms +// ========================================================================== + +// +// Known limitation: by default, Chrome and Safari on OS X allow very limited +// styling of `select`, unless a `border` property is set. +// + +// +// 1. Correct color not being inherited. +// Known issue: affects color of disabled elements. +// 2. Correct font properties not being inherited. +// 3. Address margins set differently in Firefox 4+, Safari, and Chrome. +// + +button, +input, +optgroup, +select, +textarea { + color: inherit; // 1 + font: inherit; // 2 + margin: 0; // 3 +} + +// +// Address `overflow` set to `hidden` in IE 8/9/10/11. +// + +button { + overflow: visible; +} + +// +// Address inconsistent `text-transform` inheritance for `button` and `select`. +// All other form control elements do not inherit `text-transform` values. +// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. +// Correct `select` style inheritance in Firefox. +// + +button, +select { + text-transform: none; +} + +// +// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` +// and `video` controls. +// 2. Correct inability to style clickable `input` types in iOS. +// 3. Improve usability and consistency of cursor style between image-type +// `input` and others. +// + +button, +html input[type="button"], // 1 +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; // 2 + cursor: pointer; // 3 +} + +// +// Re-set default cursor for disabled elements. +// + +button[disabled], +html input[disabled] { + cursor: default; +} + +// +// Remove inner padding and border in Firefox 4+. +// + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +// +// Address Firefox 4+ setting `line-height` on `input` using `!important` in +// the UA stylesheet. +// + +input { + line-height: normal; +} + +// +// It's recommended that you don't attempt to style these elements. +// Firefox's implementation doesn't respect box-sizing, padding, or width. +// +// 1. Address box sizing set to `content-box` in IE 8/9/10. +// 2. Remove excess padding in IE 8/9/10. +// + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; // 1 + padding: 0; // 2 +} + +// +// Fix the cursor style for Chrome's increment/decrement buttons. For certain +// `font-size` values of the `input`, it causes the cursor style of the +// decrement button to change from `default` to `text`. +// + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +// +// 1. Address `appearance` set to `searchfield` in Safari and Chrome. +// 2. Address `box-sizing` set to `border-box` in Safari and Chrome. +// + +input[type="search"] { + -webkit-appearance: textfield; // 1 + box-sizing: content-box; //2 +} + +// +// Remove inner padding and search cancel button in Safari and Chrome on OS X. +// Safari (but not Chrome) clips the cancel button when the search input has +// padding (and `textfield` appearance). +// + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +// +// Define consistent border, margin, and padding. +// + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +// +// 1. Correct `color` not being inherited in IE 8/9/10/11. +// 2. Remove padding so people aren't caught out if they zero out fieldsets. +// + +legend { + border: 0; // 1 + padding: 0; // 2 +} + +// +// Remove default vertical scrollbar in IE 8/9/10/11. +// + +textarea { + overflow: auto; +} + +// +// Don't inherit the `font-weight` (applied by a rule above). +// NOTE: the default cannot safely be changed in Chrome and Safari on OS X. +// + +optgroup { + font-weight: bold; +} + +// Tables +// ========================================================================== + +// +// Remove most spacing between table cells. +// + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/web/client/themes/default/bootstrap-theme/pager.less b/web/client/themes/default/bootstrap-theme/pager.less new file mode 100644 index 0000000000..41abaaadc5 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/pager.less @@ -0,0 +1,54 @@ +// +// Pager pagination +// -------------------------------------------------- + + +.pager { + padding-left: 0; + margin: @line-height-computed 0; + list-style: none; + text-align: center; + &:extend(.clearfix all); + li { + display: inline; + > a, + > span { + display: inline-block; + padding: 5px 14px; + background-color: @pager-bg; + border: 1px solid @pager-border; + border-radius: @pager-border-radius; + } + + > a:hover, + > a:focus { + text-decoration: none; + background-color: @pager-hover-bg; + } + } + + .next { + > a, + > span { + float: right; + } + } + + .previous { + > a, + > span { + float: left; + } + } + + .disabled { + > a, + > a:hover, + > a:focus, + > span { + color: @pager-disabled-color; + background-color: @pager-bg; + cursor: @cursor-disabled; + } + } +} diff --git a/web/client/themes/default/bootstrap-theme/pagination.less b/web/client/themes/default/bootstrap-theme/pagination.less new file mode 100644 index 0000000000..31f77aae4e --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/pagination.less @@ -0,0 +1,89 @@ +// +// Pagination (multiple pages) +// -------------------------------------------------- +.pagination { + display: inline-block; + padding-left: 0; + margin: @line-height-computed 0; + border-radius: @border-radius-base; + + > li { + display: inline; // Remove list-style and block-level defaults + > a, + > span { + position: relative; + float: left; // Collapse white-space + padding: @padding-base-vertical @padding-base-horizontal; + line-height: @line-height-base; + text-decoration: none; + color: @pagination-color; + background-color: @pagination-bg; + border: 1px solid @pagination-border; + margin-left: -1px; + } + &:first-child { + > a, + > span { + margin-left: 0; + .border-left-radius(@border-radius-base); + } + } + &:last-child { + > a, + > span { + .border-right-radius(@border-radius-base); + } + } + } + + > li > a, + > li > span { + &:hover, + &:focus { + z-index: 2; + color: @pagination-hover-color; + background-color: @pagination-hover-bg; + border-color: @pagination-hover-border; + } + } + + > .active > a, + > .active > span { + &, + &:hover, + &:focus { + z-index: 3; + color: @pagination-active-color; + background-color: @pagination-active-bg; + border-color: @pagination-active-border; + cursor: default; + } + } + + > .disabled { + > span, + > span:hover, + > span:focus, + > a, + > a:hover, + > a:focus { + color: @pagination-disabled-color; + background-color: @pagination-disabled-bg; + border-color: @pagination-disabled-border; + cursor: @cursor-disabled; + } + } +} + +// Sizing +// -------------------------------------------------- + +// Large +.pagination-lg { + .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); +} + +// Small +.pagination-sm { + .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); +} diff --git a/web/client/themes/default/bootstrap-theme/panels.less b/web/client/themes/default/bootstrap-theme/panels.less new file mode 100644 index 0000000000..65aa3a83f3 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/panels.less @@ -0,0 +1,271 @@ +// +// Panels +// -------------------------------------------------- + + +// Base class +.panel { + margin-bottom: @line-height-computed; + background-color: @panel-bg; + border: 1px solid transparent; + border-radius: @panel-border-radius; + .box-shadow(0 1px 1px rgba(0,0,0,.05)); +} + +// Panel contents +.panel-body { + padding: @panel-body-padding; + &:extend(.clearfix all); +} + +// Optional heading +.panel-heading { + padding: @panel-heading-padding; + border-bottom: 1px solid transparent; + .border-top-radius((@panel-border-radius - 1)); + + > .dropdown .dropdown-toggle { + color: inherit; + } +} + +// Within heading, strip any `h*` tag of its default margins for spacing. +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: ceil((@font-size-base * 1.125)); + color: inherit; + + > a, + > small, + > .small, + > small > a, + > .small > a { + color: inherit; + } +} + +// Optional footer (stays gray in every modifier class) +.panel-footer { + padding: @panel-footer-padding; + background-color: @panel-footer-bg; + border-top: 1px solid @panel-inner-border; + .border-bottom-radius((@panel-border-radius - 1)); +} + + +// List groups in panels +// +// By default, space out list group content from panel headings to account for +// any kind of custom content between the two. + +.panel { + > .list-group, + > .panel-collapse > .list-group { + margin-bottom: 0; + + .list-group-item { + border-width: 1px 0; + border-radius: 0; + } + + // Add border top radius for first one + &:first-child { + .list-group-item:first-child { + border-top: 0; + .border-top-radius((@panel-border-radius - 1)); + } + } + + // Add border bottom radius for last one + &:last-child { + .list-group-item:last-child { + border-bottom: 0; + .border-bottom-radius((@panel-border-radius - 1)); + } + } + } + > .panel-heading + .panel-collapse > .list-group { + .list-group-item:first-child { + .border-top-radius(0); + } + } +} +// Collapse space between when there's no additional content. +.panel-heading + .list-group { + .list-group-item:first-child { + border-top-width: 0; + } +} +.list-group + .panel-footer { + border-top-width: 0; +} + +// Tables in panels +// +// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and +// watch it go full width. + +.panel { + > .table, + > .table-responsive > .table, + > .panel-collapse > .table { + margin-bottom: 0; + + caption { + padding-left: @panel-body-padding; + padding-right: @panel-body-padding; + } + } + // Add border top radius for first one + > .table:first-child, + > .table-responsive:first-child > .table:first-child { + .border-top-radius((@panel-border-radius - 1)); + + > thead:first-child, + > tbody:first-child { + > tr:first-child { + border-top-left-radius: (@panel-border-radius - 1); + border-top-right-radius: (@panel-border-radius - 1); + + td:first-child, + th:first-child { + border-top-left-radius: (@panel-border-radius - 1); + } + td:last-child, + th:last-child { + border-top-right-radius: (@panel-border-radius - 1); + } + } + } + } + // Add border bottom radius for last one + > .table:last-child, + > .table-responsive:last-child > .table:last-child { + .border-bottom-radius((@panel-border-radius - 1)); + + > tbody:last-child, + > tfoot:last-child { + > tr:last-child { + border-bottom-left-radius: (@panel-border-radius - 1); + border-bottom-right-radius: (@panel-border-radius - 1); + + td:first-child, + th:first-child { + border-bottom-left-radius: (@panel-border-radius - 1); + } + td:last-child, + th:last-child { + border-bottom-right-radius: (@panel-border-radius - 1); + } + } + } + } + > .panel-body + .table, + > .panel-body + .table-responsive, + > .table + .panel-body, + > .table-responsive + .panel-body { + border-top: 1px solid @table-border-color; + } + > .table > tbody:first-child > tr:first-child th, + > .table > tbody:first-child > tr:first-child td { + border-top: 0; + } + > .table-bordered, + > .table-responsive > .table-bordered { + border: 0; + > thead, + > tbody, + > tfoot { + > tr { + > th:first-child, + > td:first-child { + border-left: 0; + } + > th:last-child, + > td:last-child { + border-right: 0; + } + } + } + > thead, + > tbody { + > tr:first-child { + > td, + > th { + border-bottom: 0; + } + } + } + > tbody, + > tfoot { + > tr:last-child { + > td, + > th { + border-bottom: 0; + } + } + } + } + > .table-responsive { + border: 0; + margin-bottom: 0; + } +} + + +// Collapsible panels (aka, accordion) +// +// Wrap a series of panels in `.panel-group` to turn them into an accordion with +// the help of our collapse JavaScript plugin. + +.panel-group { + margin-bottom: @line-height-computed; + + // Tighten up margin so it's only between panels + .panel { + margin-bottom: 0; + border-radius: @panel-border-radius; + + + .panel { + margin-top: 5px; + } + } + + .panel-heading { + border-bottom: 0; + + + .panel-collapse > .panel-body, + + .panel-collapse > .list-group { + border-top: 1px solid @panel-inner-border; + } + } + + .panel-footer { + border-top: 0; + + .panel-collapse .panel-body { + border-bottom: 1px solid @panel-inner-border; + } + } +} + + +// Contextual variations +.panel-default { + .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border); +} +.panel-primary { + .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border); +} +.panel-success { + .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border); +} +.panel-info { + .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border); +} +.panel-warning { + .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border); +} +.panel-danger { + .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border); +} diff --git a/web/client/themes/default/bootstrap-theme/popovers.less b/web/client/themes/default/bootstrap-theme/popovers.less new file mode 100644 index 0000000000..3a62a6455a --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/popovers.less @@ -0,0 +1,131 @@ +// +// Popovers +// -------------------------------------------------- + + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: @zindex-popover; + display: none; + max-width: @popover-max-width; + padding: 1px; + // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element. + // So reset our font and text properties to avoid inheriting weird values. + .reset-text(); + font-size: @font-size-base; + + background-color: @popover-bg; + background-clip: padding-box; + border: 1px solid @popover-fallback-border-color; + border: 1px solid @popover-border-color; + border-radius: @border-radius-large; + .box-shadow(0 5px 10px rgba(0,0,0,.2)); + + // Offset the popover to account for the popover arrow + &.top { margin-top: -@popover-arrow-width; } + &.right { margin-left: @popover-arrow-width; } + &.bottom { margin-top: @popover-arrow-width; } + &.left { margin-left: -@popover-arrow-width; } +} + +.popover-title { + margin: 0; // reset heading margin + padding: 8px 14px; + font-size: @font-size-base; + background-color: @popover-title-bg; + border-bottom: 1px solid darken(@popover-title-bg, 5%); + border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +// Arrows +// +// .arrow is outer, .arrow:after is inner + +.popover > .arrow { + &, + &:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + } +} +.popover > .arrow { + border-width: @popover-arrow-outer-width; +} +.popover > .arrow:after { + border-width: @popover-arrow-width; + content: ""; +} + +.popover { + &.top > .arrow { + left: 50%; + margin-left: -@popover-arrow-outer-width; + border-bottom-width: 0; + border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback + border-top-color: @popover-arrow-outer-color; + bottom: -@popover-arrow-outer-width; + &:after { + content: " "; + bottom: 1px; + margin-left: -@popover-arrow-width; + border-bottom-width: 0; + border-top-color: @popover-arrow-color; + } + } + &.right > .arrow { + top: 50%; + left: -@popover-arrow-outer-width; + margin-top: -@popover-arrow-outer-width; + border-left-width: 0; + border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback + border-right-color: @popover-arrow-outer-color; + &:after { + content: " "; + left: 1px; + bottom: -@popover-arrow-width; + border-left-width: 0; + border-right-color: @popover-arrow-color; + } + } + &.bottom > .arrow { + left: 50%; + margin-left: -@popover-arrow-outer-width; + border-top-width: 0; + border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback + border-bottom-color: @popover-arrow-outer-color; + top: -@popover-arrow-outer-width; + &:after { + content: " "; + top: 1px; + margin-left: -@popover-arrow-width; + border-top-width: 0; + border-bottom-color: @popover-arrow-color; + } + } + + &.left > .arrow { + top: 50%; + right: -@popover-arrow-outer-width; + margin-top: -@popover-arrow-outer-width; + border-right-width: 0; + border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback + border-left-color: @popover-arrow-outer-color; + &:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: @popover-arrow-color; + bottom: -@popover-arrow-width; + } + } +} diff --git a/web/client/themes/default/bootstrap-theme/print.less b/web/client/themes/default/bootstrap-theme/print.less new file mode 100644 index 0000000000..66e54ab489 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/print.less @@ -0,0 +1,101 @@ +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ + +// ========================================================================== +// Print styles. +// Inlined to avoid the additional HTTP request: h5bp.com/r +// ========================================================================== + +@media print { + *, + *:before, + *:after { + background: transparent !important; + color: #000 !important; // Black prints faster: h5bp.com/s + box-shadow: none !important; + text-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 that are fragment identifiers, + // or use the `javascript:` pseudo protocol + a[href^="#"]:after, + a[href^="javascript:"]: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; + } + + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { + page-break-after: avoid; + } + + // Bootstrap specific changes start + + // Bootstrap components + .navbar { + display: none; + } + .btn, + .dropup > .btn { + > .caret { + border-top-color: #000 !important; + } + } + .label { + border: 1px solid #000; + } + + .table { + border-collapse: collapse !important; + + td, + th { + background-color: #fff !important; + } + } + .table-bordered { + th, + td { + border: 1px solid #ddd !important; + } + } + + // Bootstrap specific changes end +} diff --git a/web/client/themes/default/bootstrap-theme/progress-bars.less b/web/client/themes/default/bootstrap-theme/progress-bars.less new file mode 100644 index 0000000000..8868a1feef --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/progress-bars.less @@ -0,0 +1,87 @@ +// +// Progress bars +// -------------------------------------------------- + + +// Bar animations +// ------------------------- + +// WebKit +@-webkit-keyframes progress-bar-stripes { + from { background-position: 40px 0; } + to { background-position: 0 0; } +} + +// Spec and IE10+ +@keyframes progress-bar-stripes { + from { background-position: 40px 0; } + to { background-position: 0 0; } +} + + +// Bar itself +// ------------------------- + +// Outer container +.progress { + overflow: hidden; + height: @line-height-computed; + margin-bottom: @line-height-computed; + background-color: @progress-bg; + border-radius: @progress-border-radius; + .box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); +} + +// Bar of progress +.progress-bar { + float: left; + width: 0%; + height: 100%; + font-size: @font-size-small; + line-height: @line-height-computed; + color: @progress-bar-color; + text-align: center; + background-color: @progress-bar-bg; + .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); + .transition(width .6s ease); +} + +// Striped bars +// +// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the +// `.progress-bar-striped` class, which you just add to an existing +// `.progress-bar`. +.progress-striped .progress-bar, +.progress-bar-striped { + #gradient > .striped(); + background-size: 40px 40px; +} + +// Call animation for the active one +// +// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the +// `.progress-bar.active` approach. +.progress.active .progress-bar, +.progress-bar.active { + .animation(progress-bar-stripes 2s linear infinite); +} + + +// Variations +// ------------------------- + +.progress-bar-success { + .progress-bar-variant(@progress-bar-success-bg); +} + +.progress-bar-info { + .progress-bar-variant(@progress-bar-info-bg); +} + +.progress-bar-warning { + .progress-bar-variant(@progress-bar-warning-bg); +} + +.progress-bar-danger { + .progress-bar-variant(@progress-bar-danger-bg); +} diff --git a/web/client/themes/default/bootstrap-theme/responsive-embed.less b/web/client/themes/default/bootstrap-theme/responsive-embed.less new file mode 100644 index 0000000000..080a5118fe --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/responsive-embed.less @@ -0,0 +1,35 @@ +// Embeds responsive +// +// Credit: Nicolas Gallagher and SUIT CSS. + +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; + + .embed-responsive-item, + iframe, + embed, + object, + video { + position: absolute; + top: 0; + left: 0; + bottom: 0; + height: 100%; + width: 100%; + border: 0; + } +} + +// Modifier class for 16:9 aspect ratio +.embed-responsive-16by9 { + padding-bottom: 56.25%; +} + +// Modifier class for 4:3 aspect ratio +.embed-responsive-4by3 { + padding-bottom: 75%; +} diff --git a/web/client/themes/default/bootstrap-theme/responsive-utilities.less b/web/client/themes/default/bootstrap-theme/responsive-utilities.less new file mode 100644 index 0000000000..b1db31d7bf --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/responsive-utilities.less @@ -0,0 +1,194 @@ +// +// Responsive: Utility classes +// -------------------------------------------------- + + +// IE10 in Windows (Phone) 8 +// +// Support for responsive views via media queries is kind of borked in IE10, for +// Surface/desktop in split view and for Windows Phone 8. This particular fix +// must be accompanied by a snippet of JavaScript to sniff the user agent and +// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at +// our Getting Started page for more information on this bug. +// +// For more information, see the following: +// +// Issue: https://github.com/twbs/bootstrap/issues/10497 +// Docs: http://getbootstrap.com/getting-started/#support-ie10-width +// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/ +// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ + +@-ms-viewport { + width: device-width; +} + + +// Visibility utilities +// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0 +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + .responsive-invisibility(); +} + +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} + +.visible-xs { + @media (max-width: @screen-xs-max) { + .responsive-visibility(); + } +} +.visible-xs-block { + @media (max-width: @screen-xs-max) { + display: block !important; + } +} +.visible-xs-inline { + @media (max-width: @screen-xs-max) { + display: inline !important; + } +} +.visible-xs-inline-block { + @media (max-width: @screen-xs-max) { + display: inline-block !important; + } +} + +.visible-sm { + @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { + .responsive-visibility(); + } +} +.visible-sm-block { + @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { + display: block !important; + } +} +.visible-sm-inline { + @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { + display: inline !important; + } +} +.visible-sm-inline-block { + @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { + display: inline-block !important; + } +} + +.visible-md { + @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { + .responsive-visibility(); + } +} +.visible-md-block { + @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { + display: block !important; + } +} +.visible-md-inline { + @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { + display: inline !important; + } +} +.visible-md-inline-block { + @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { + display: inline-block !important; + } +} + +.visible-lg { + @media (min-width: @screen-lg-min) { + .responsive-visibility(); + } +} +.visible-lg-block { + @media (min-width: @screen-lg-min) { + display: block !important; + } +} +.visible-lg-inline { + @media (min-width: @screen-lg-min) { + display: inline !important; + } +} +.visible-lg-inline-block { + @media (min-width: @screen-lg-min) { + display: inline-block !important; + } +} + +.hidden-xs { + @media (max-width: @screen-xs-max) { + .responsive-invisibility(); + } +} +.hidden-sm { + @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { + .responsive-invisibility(); + } +} +.hidden-md { + @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { + .responsive-invisibility(); + } +} +.hidden-lg { + @media (min-width: @screen-lg-min) { + .responsive-invisibility(); + } +} + + +// Print utilities +// +// Media queries are placed on the inside to be mixin-friendly. + +// Note: Deprecated .visible-print as of v3.2.0 +.visible-print { + .responsive-invisibility(); + + @media print { + .responsive-visibility(); + } +} +.visible-print-block { + display: none !important; + + @media print { + display: block !important; + } +} +.visible-print-inline { + display: none !important; + + @media print { + display: inline !important; + } +} +.visible-print-inline-block { + display: none !important; + + @media print { + display: inline-block !important; + } +} + +.hidden-print { + @media print { + .responsive-invisibility(); + } +} diff --git a/web/client/themes/default/bootstrap-theme/scaffolding.less b/web/client/themes/default/bootstrap-theme/scaffolding.less new file mode 100644 index 0000000000..64a29c6a5e --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/scaffolding.less @@ -0,0 +1,161 @@ +// +// Scaffolding +// -------------------------------------------------- + + +// Reset the box-sizing +// +// Heads up! This reset may cause conflicts with some third-party widgets. +// For recommendations on resolving such conflicts, see +// http://getbootstrap.com/getting-started/#third-box-sizing +* { + .box-sizing(border-box); +} +*:before, +*:after { + .box-sizing(border-box); +} + + +// Body reset + +html { + font-size: 10px; + -webkit-tap-highlight-color: rgba(0,0,0,0); +} + +body { + font-family: @font-family-base; + font-size: @font-size-base; + line-height: @line-height-base; + color: @text-color; + background-color: @body-bg; +} + +// Reset fonts for relevant elements +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + + +// Links + +a { + color: @link-color; + text-decoration: none; + + &:hover, + &:focus { + color: @link-hover-color; + text-decoration: @link-hover-decoration; + } + + &:focus { + .tab-focus(); + } +} + + +// Figures +// +// We reset this here because previously Normalize had no `figure` margins. This +// ensures we don't break anyone's use of the element. + +figure { + margin: 0; +} + + +// Images + +img { + vertical-align: middle; +} + +// Responsive images (ensure images don't scale beyond their parents) +.img-responsive { + .img-responsive(); +} + +// Rounded corners +.img-rounded { + border-radius: @border-radius-large; +} + +// Image thumbnails +// +// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`. +.img-thumbnail { + padding: @thumbnail-padding; + line-height: @line-height-base; + background-color: @thumbnail-bg; + border: 1px solid @thumbnail-border; + border-radius: @thumbnail-border-radius; + .transition(all .2s ease-in-out); + + // Keep them at most 100% wide + .img-responsive(inline-block); +} + +// Perfect circle +.img-circle { + border-radius: 50%; // set radius in percents +} + + +// Horizontal rules + +hr { + margin-top: @line-height-computed; + margin-bottom: @line-height-computed; + border: 0; + border-top: 1px solid @hr-border; +} + + +// Only display content to screen readers +// +// See: http://a11yproject.com/posts/how-to-hide-content + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// Credit: HTML5 Boilerplate + +.sr-only-focusable { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} + + +// iOS "clickable elements" fix for role="button" +// +// Fixes "clickability" issue (and more generally, the firing of events such as focus as well) +// for traditionally non-focusable elements with role="button" +// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile + +[role="button"] { + cursor: pointer; +} diff --git a/web/client/themes/default/bootstrap-theme/tables.less b/web/client/themes/default/bootstrap-theme/tables.less new file mode 100644 index 0000000000..2242c03686 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/tables.less @@ -0,0 +1,234 @@ +// +// Tables +// -------------------------------------------------- + + +table { + background-color: @table-bg; +} +caption { + padding-top: @table-cell-padding; + padding-bottom: @table-cell-padding; + color: @text-muted; + text-align: left; +} +th { + text-align: left; +} + + +// Baseline styles + +.table { + width: 100%; + max-width: 100%; + margin-bottom: @line-height-computed; + // Cells + > thead, + > tbody, + > tfoot { + > tr { + > th, + > td { + padding: @table-cell-padding; + line-height: @line-height-base; + vertical-align: top; + border-top: 1px solid @table-border-color; + } + } + } + // Bottom align for column headings + > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid @table-border-color; + } + // Remove top border from thead by default + > caption + thead, + > colgroup + thead, + > thead:first-child { + > tr:first-child { + > th, + > td { + border-top: 0; + } + } + } + // Account for multiple tbody instances + > tbody + tbody { + border-top: 2px solid @table-border-color; + } + + // Nesting + .table { + background-color: @body-bg; + } +} + + +// Condensed table w/ half padding + +.table-condensed { + > thead, + > tbody, + > tfoot { + > tr { + > th, + > td { + padding: @table-condensed-cell-padding; + } + } + } +} + + +// Bordered version +// +// Add borders all around the table and between all the columns. + +.table-bordered { + border: 1px solid @table-border-color; + > thead, + > tbody, + > tfoot { + > tr { + > th, + > td { + border: 1px solid @table-border-color; + } + } + } + > thead > tr { + > th, + > td { + border-bottom-width: 2px; + } + } +} + + +// Zebra-striping +// +// Default zebra-stripe styles (alternating gray and transparent backgrounds) + +.table-striped { + > tbody > tr:nth-of-type(odd) { + background-color: @table-bg-accent; + } +} + + +// Hover effect +// +// Placed here since it has to come after the potential zebra striping + +.table-hover { + > tbody > tr:hover { + background-color: @table-bg-hover; + } +} + + +// Table cell sizing +// +// Reset default table behavior + +table col[class*="col-"] { + position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623) + float: none; + display: table-column; +} +table { + td, + th { + &[class*="col-"] { + position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623) + float: none; + display: table-cell; + } + } +} + + +// Table backgrounds +// +// Exact selectors below required to override `.table-striped` and prevent +// inheritance to nested tables. + +// Generate the contextual variants +.table-row-variant(active; @table-bg-active); +.table-row-variant(success; @state-success-bg); +.table-row-variant(info; @state-info-bg); +.table-row-variant(warning; @state-warning-bg); +.table-row-variant(danger; @state-danger-bg); + + +// Responsive tables +// +// Wrap your tables in `.table-responsive` and we'll make them mobile friendly +// by enabling horizontal scrolling. Only applies <768px. Everything above that +// will display normally. + +.table-responsive { + overflow-x: auto; + min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837) + + @media screen and (max-width: @screen-xs-max) { + width: 100%; + margin-bottom: (@line-height-computed * 0.75); + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid @table-border-color; + + // Tighten up spacing + > .table { + margin-bottom: 0; + + // Ensure the content doesn't wrap + > thead, + > tbody, + > tfoot { + > tr { + > th, + > td { + white-space: nowrap; + } + } + } + } + + // Special overrides for the bordered tables + > .table-bordered { + border: 0; + + // Nuke the appropriate borders so that the parent can handle them + > thead, + > tbody, + > tfoot { + > tr { + > th:first-child, + > td:first-child { + border-left: 0; + } + > th:last-child, + > td:last-child { + border-right: 0; + } + } + } + + // Only nuke the last row's bottom-border in `tbody` and `tfoot` since + // chances are there will be only one `tr` in a `thead` and that would + // remove the border altogether. + > tbody, + > tfoot { + > tr:last-child { + > th, + > td { + border-bottom: 0; + } + } + } + + } + } +} diff --git a/web/client/themes/default/bootstrap-theme/theme.less b/web/client/themes/default/bootstrap-theme/theme.less new file mode 100644 index 0000000000..fb6174427b --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/theme.less @@ -0,0 +1,291 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +// +// Load core variables and mixins +// -------------------------------------------------- + +@import "variables.less"; +@import "mixins.less"; + + +// +// Buttons +// -------------------------------------------------- + +// Common styles +.btn-default, +.btn-primary, +.btn-success, +.btn-info, +.btn-warning, +.btn-danger { + text-shadow: 0 -1px 0 rgba(0,0,0,.2); + @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075); + .box-shadow(@shadow); + + // Reset the shadow + &:active, + &.active { + .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + } + + &.disabled, + &[disabled], + fieldset[disabled] & { + .box-shadow(none); + } + + .badge { + text-shadow: none; + } +} + +// Mixin for generating new styles +.btn-styles(@btn-color: #555) { + #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%)); + .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620 + background-repeat: repeat-x; + border-color: darken(@btn-color, 14%); + + &:hover, + &:focus { + background-color: darken(@btn-color, 12%); + background-position: 0 -15px; + } + + &:active, + &.active { + background-color: darken(@btn-color, 12%); + border-color: darken(@btn-color, 14%); + } + + &.disabled, + &[disabled], + fieldset[disabled] & { + &, + &:hover, + &:focus, + &.focus, + &:active, + &.active { + background-color: darken(@btn-color, 12%); + background-image: none; + } + } +} + +// Common styles +.btn { + // Remove the gradient for the pressed/active state + &:active, + &.active { + background-image: none; + } +} + +// Apply the mixin to the buttons +.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; } +.btn-primary { .btn-styles(@btn-primary-bg); } +.btn-success { .btn-styles(@btn-success-bg); } +.btn-info { .btn-styles(@btn-info-bg); } +.btn-warning { .btn-styles(@btn-warning-bg); } +.btn-danger { .btn-styles(@btn-danger-bg); } + + +// +// Images +// -------------------------------------------------- + +.thumbnail, +.img-thumbnail { + .box-shadow(0 1px 2px rgba(0,0,0,.075)); +} + + +// +// Dropdowns +// -------------------------------------------------- + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%)); + background-color: darken(@dropdown-link-hover-bg, 5%); +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%)); + background-color: darken(@dropdown-link-active-bg, 5%); +} + + +// +// Navbar +// -------------------------------------------------- + +// Default navbar +.navbar-default { + #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg); + .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered + border-radius: @navbar-border-radius; + @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075); + .box-shadow(@shadow); + + .navbar-nav > .open > a, + .navbar-nav > .active > a { + #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%)); + .box-shadow(inset 0 3px 9px rgba(0,0,0,.075)); + } +} +.navbar-brand, +.navbar-nav > li > a { + text-shadow: 0 1px 0 rgba(255,255,255,.25); +} + +// Inverted navbar +.navbar-inverse { + #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg); + .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257 + border-radius: @navbar-border-radius; + .navbar-nav > .open > a, + .navbar-nav > .active > a { + #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%)); + .box-shadow(inset 0 3px 9px rgba(0,0,0,.25)); + } + + .navbar-brand, + .navbar-nav > li > a { + text-shadow: 0 -1px 0 rgba(0,0,0,.25); + } +} + +// Undo rounded corners in static and fixed navbars +.navbar-static-top, +.navbar-fixed-top, +.navbar-fixed-bottom { + border-radius: 0; +} + +// Fix active state of dropdown items in collapsed mode +@media (max-width: @grid-float-breakpoint-max) { + .navbar .navbar-nav .open .dropdown-menu > .active > a { + &, + &:hover, + &:focus { + color: #fff; + #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%)); + } + } +} + + +// +// Alerts +// -------------------------------------------------- + +// Common styles +.alert { + text-shadow: 0 1px 0 rgba(255,255,255,.2); + @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05); + .box-shadow(@shadow); +} + +// Mixin for generating new styles +.alert-styles(@color) { + #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%)); + border-color: darken(@color, 15%); +} + +// Apply the mixin to the alerts +.alert-success { .alert-styles(@alert-success-bg); } +.alert-info { .alert-styles(@alert-info-bg); } +.alert-warning { .alert-styles(@alert-warning-bg); } +.alert-danger { .alert-styles(@alert-danger-bg); } + + +// +// Progress bars +// -------------------------------------------------- + +// Give the progress background some depth +.progress { + #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg) +} + +// Mixin for generating new styles +.progress-bar-styles(@color) { + #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%)); +} + +// Apply the mixin to the progress bars +.progress-bar { .progress-bar-styles(@progress-bar-bg); } +.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); } +.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); } +.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); } +.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); } + +// Reset the striped class because our mixins don't do multiple gradients and +// the above custom styles override the new `.progress-bar-striped` in v3.2.0. +.progress-bar-striped { + #gradient > .striped(); +} + + +// +// List groups +// -------------------------------------------------- + +.list-group { + border-radius: @border-radius-base; + .box-shadow(0 1px 2px rgba(0,0,0,.075)); +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%); + #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%)); + border-color: darken(@list-group-active-border, 7.5%); + + .badge { + text-shadow: none; + } +} + + +// +// Panels +// -------------------------------------------------- + +// Common styles +.panel { + .box-shadow(0 1px 2px rgba(0,0,0,.05)); +} + +// Mixin for generating new styles +.panel-heading-styles(@color) { + #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%)); +} + +// Apply the mixin to the panel headings only +.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); } +.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); } +.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); } +.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); } +.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); } +.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); } + + +// +// Wells +// -------------------------------------------------- + +.well { + #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg); + border-color: darken(@well-bg, 10%); + @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1); + .box-shadow(@shadow); +} diff --git a/web/client/themes/default/bootstrap-theme/thumbnails.less b/web/client/themes/default/bootstrap-theme/thumbnails.less new file mode 100644 index 0000000000..0713e67d00 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/thumbnails.less @@ -0,0 +1,36 @@ +// +// Thumbnails +// -------------------------------------------------- + + +// Mixin and adjust the regular image class +.thumbnail { + display: block; + padding: @thumbnail-padding; + margin-bottom: @line-height-computed; + line-height: @line-height-base; + background-color: @thumbnail-bg; + border: 1px solid @thumbnail-border; + border-radius: @thumbnail-border-radius; + .transition(border .2s ease-in-out); + + > img, + a > img { + &:extend(.img-responsive); + margin-left: auto; + margin-right: auto; + } + + // Add a hover state for linked versions only + a&:hover, + a&:focus, + a&.active { + border-color: @link-color; + } + + // Image captions + .caption { + padding: @thumbnail-caption-padding; + color: @thumbnail-caption-color; + } +} diff --git a/web/client/themes/default/bootstrap-theme/tooltip.less b/web/client/themes/default/bootstrap-theme/tooltip.less new file mode 100644 index 0000000000..b48d63e07a --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/tooltip.less @@ -0,0 +1,101 @@ +// +// Tooltips +// -------------------------------------------------- + + +// Base class +.tooltip { + position: absolute; + z-index: @zindex-tooltip; + display: block; + // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. + // So reset our font and text properties to avoid inheriting weird values. + .reset-text(); + font-size: @font-size-small; + + .opacity(0); + + &.in { .opacity(@tooltip-opacity); } + &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; } + &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; } + &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; } + &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; } +} + +// Wrapper for the tooltip content +.tooltip-inner { + max-width: @tooltip-max-width; + padding: 3px 8px; + color: @tooltip-color; + text-align: center; + background-color: @tooltip-bg; + border-radius: @border-radius-base; +} + +// Arrows +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1 +.tooltip { + &.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -@tooltip-arrow-width; + border-width: @tooltip-arrow-width @tooltip-arrow-width 0; + border-top-color: @tooltip-arrow-color; + } + &.top-left .tooltip-arrow { + bottom: 0; + right: @tooltip-arrow-width; + margin-bottom: -@tooltip-arrow-width; + border-width: @tooltip-arrow-width @tooltip-arrow-width 0; + border-top-color: @tooltip-arrow-color; + } + &.top-right .tooltip-arrow { + bottom: 0; + left: @tooltip-arrow-width; + margin-bottom: -@tooltip-arrow-width; + border-width: @tooltip-arrow-width @tooltip-arrow-width 0; + border-top-color: @tooltip-arrow-color; + } + &.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -@tooltip-arrow-width; + border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0; + border-right-color: @tooltip-arrow-color; + } + &.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -@tooltip-arrow-width; + border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width; + border-left-color: @tooltip-arrow-color; + } + &.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -@tooltip-arrow-width; + border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; + border-bottom-color: @tooltip-arrow-color; + } + &.bottom-left .tooltip-arrow { + top: 0; + right: @tooltip-arrow-width; + margin-top: -@tooltip-arrow-width; + border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; + border-bottom-color: @tooltip-arrow-color; + } + &.bottom-right .tooltip-arrow { + top: 0; + left: @tooltip-arrow-width; + margin-top: -@tooltip-arrow-width; + border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; + border-bottom-color: @tooltip-arrow-color; + } +} diff --git a/web/client/themes/default/bootstrap-theme/type.less b/web/client/themes/default/bootstrap-theme/type.less new file mode 100644 index 0000000000..0d4fee4848 --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/type.less @@ -0,0 +1,302 @@ +// +// Typography +// -------------------------------------------------- + + +// Headings +// ------------------------- + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + font-family: @headings-font-family; + font-weight: @headings-font-weight; + line-height: @headings-line-height; + color: @headings-color; + + small, + .small { + font-weight: normal; + line-height: 1; + color: @headings-small-color; + } +} + +h1, .h1, +h2, .h2, +h3, .h3 { + margin-top: @line-height-computed; + margin-bottom: (@line-height-computed / 2); + + small, + .small { + font-size: 65%; + } +} +h4, .h4, +h5, .h5, +h6, .h6 { + margin-top: (@line-height-computed / 2); + margin-bottom: (@line-height-computed / 2); + + small, + .small { + font-size: 75%; + } +} + +h1, .h1 { font-size: @font-size-h1; } +h2, .h2 { font-size: @font-size-h2; } +h3, .h3 { font-size: @font-size-h3; } +h4, .h4 { font-size: @font-size-h4; } +h5, .h5 { font-size: @font-size-h5; } +h6, .h6 { font-size: @font-size-h6; } + + +// Body text +// ------------------------- + +p { + margin: 0 0 (@line-height-computed / 2); +} + +.lead { + margin-bottom: @line-height-computed; + font-size: floor((@font-size-base * 1.15)); + font-weight: 300; + line-height: 1.4; + + @media (min-width: @screen-sm-min) { + font-size: (@font-size-base * 1.5); + } +} + + +// Emphasis & misc +// ------------------------- + +// Ex: (12px small font / 14px base font) * 100% = about 85% +small, +.small { + font-size: floor((100% * @font-size-small / @font-size-base)); +} + +mark, +.mark { + background-color: @state-warning-bg; + padding: .2em; +} + +// Alignment +.text-left { text-align: left; } +.text-right { text-align: right; } +.text-center { text-align: center; } +.text-justify { text-align: justify; } +.text-nowrap { white-space: nowrap; } + +// Transformation +.text-lowercase { text-transform: lowercase; } +.text-uppercase { text-transform: uppercase; } +.text-capitalize { text-transform: capitalize; } + +// Contextual colors +.text-muted { + color: @text-muted; +} +.text-primary { + .text-emphasis-variant(@brand-primary); +} +.text-success { + .text-emphasis-variant(@state-success-text); +} +.text-info { + .text-emphasis-variant(@state-info-text); +} +.text-warning { + .text-emphasis-variant(@state-warning-text); +} +.text-danger { + .text-emphasis-variant(@state-danger-text); +} + +// Contextual backgrounds +// For now we'll leave these alongside the text classes until v4 when we can +// safely shift things around (per SemVer rules). +.bg-primary { + // Given the contrast here, this is the only class to have its color inverted + // automatically. + color: #fff; + .bg-variant(@brand-primary); +} +.bg-success { + .bg-variant(@state-success-bg); +} +.bg-info { + .bg-variant(@state-info-bg); +} +.bg-warning { + .bg-variant(@state-warning-bg); +} +.bg-danger { + .bg-variant(@state-danger-bg); +} + + +// Page header +// ------------------------- + +.page-header { + padding-bottom: ((@line-height-computed / 2) - 1); + margin: (@line-height-computed * 2) 0 @line-height-computed; + border-bottom: 1px solid @page-header-border-color; +} + + +// Lists +// ------------------------- + +// Unordered and Ordered lists +ul, +ol { + margin-top: 0; + margin-bottom: (@line-height-computed / 2); + ul, + ol { + margin-bottom: 0; + } +} + +// List options + +// Unstyled keeps list items block level, just removes default browser padding and list-style +.list-unstyled { + padding-left: 0; + list-style: none; +} + +// Inline turns list items into inline-block +.list-inline { + .list-unstyled(); + margin-left: -5px; + + > li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; + } +} + +// Description Lists +dl { + margin-top: 0; // Remove browser default + margin-bottom: @line-height-computed; +} +dt, +dd { + line-height: @line-height-base; +} +dt { + font-weight: bold; +} +dd { + margin-left: 0; // Undo browser default +} + +// Horizontal description lists +// +// Defaults to being stacked without any of the below styles applied, until the +// grid breakpoint is reached (default of ~768px). + +.dl-horizontal { + dd { + &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present + } + + @media (min-width: @dl-horizontal-breakpoint) { + dt { + float: left; + width: (@dl-horizontal-offset - 20); + clear: left; + text-align: right; + .text-overflow(); + } + dd { + margin-left: @dl-horizontal-offset; + } + } +} + + +// Misc +// ------------------------- + +// Abbreviations and acronyms +abbr[title], +// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257 +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted @abbr-border-color; +} +.initialism { + font-size: 90%; + .text-uppercase(); +} + +// Blockquotes +blockquote { + padding: (@line-height-computed / 2) @line-height-computed; + margin: 0 0 @line-height-computed; + font-size: @blockquote-font-size; + border-left: 5px solid @blockquote-border-color; + + p, + ul, + ol { + &:last-child { + margin-bottom: 0; + } + } + + // Note: Deprecated small and .small as of v3.1.0 + // Context: https://github.com/twbs/bootstrap/issues/11660 + footer, + small, + .small { + display: block; + font-size: 80%; // back to default font-size + line-height: @line-height-base; + color: @blockquote-small-color; + + &:before { + content: '\2014 \00A0'; // em dash, nbsp + } + } +} + +// Opposite alignment of blockquote +// +// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0. +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid @blockquote-border-color; + border-left: 0; + text-align: right; + + // Account for citation + footer, + small, + .small { + &:before { content: ''; } + &:after { + content: '\00A0 \2014'; // nbsp, em dash + } + } +} + +// Addresses +address { + margin-bottom: @line-height-computed; + font-style: normal; + line-height: @line-height-base; +} diff --git a/web/client/themes/default/bootstrap-theme/utilities.less b/web/client/themes/default/bootstrap-theme/utilities.less new file mode 100644 index 0000000000..7a8ca27a8f --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/utilities.less @@ -0,0 +1,55 @@ +// +// Utility classes +// -------------------------------------------------- + + +// Floats +// ------------------------- + +.clearfix { + .clearfix(); +} +.center-block { + .center-block(); +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} + + +// Toggling content +// ------------------------- + +// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + .text-hide(); +} + + +// Hide from screenreaders and browsers +// +// Credit: HTML5 Boilerplate + +.hidden { + display: none !important; +} + + +// For Affix plugin +// ------------------------- + +.affix { + position: fixed; +} diff --git a/web/client/themes/default/bootstrap-theme/variables-default.less b/web/client/themes/default/bootstrap-theme/variables-default.less new file mode 100644 index 0000000000..03b54980ae --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/variables-default.less @@ -0,0 +1,869 @@ +// +// Variables +// -------------------------------------------------- + + +//== Colors +// +//## Gray and brand colors for use across Bootstrap. + +@gray-base: #000; +@gray-darker: lighten(@gray-base, 13.5%); // #222 +@gray-dark: lighten(@gray-base, 20%); // #333 +@gray: lighten(@gray-base, 33.5%); // #555 +@gray-light: lighten(@gray-base, 46.7%); // #777 +@gray-lighter: lighten(@gray-base, 93.5%); // #eee + +@brand-primary: darken(#428bca, 6.5%); // #337ab7 +@brand-success: #5cb85c; +@brand-info: #5bc0de; +@brand-warning: #f0ad4e; +@brand-danger: #d9534f; + + +//== Scaffolding +// +//## Settings for some of the most global styles. + +//** Background color for ``. +@body-bg: #fff; +//** Global text color on ``. +@text-color: @gray-dark; + +//** Global textual link color. +@link-color: @brand-primary; +//** Link hover color set via `darken()` function. +@link-hover-color: darken(@link-color, 15%); +//** Link hover decoration. +@link-hover-decoration: underline; + + +//== Typography +// +//## Font, line-height, and color for body text, headings, and more. + +@font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif; +@font-family-serif: Georgia, "Times New Roman", Times, serif; +//** Default monospace fonts for ``, ``, and `
`.
+@font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace;
+@font-family-base:        @font-family-sans-serif;
+
+@font-size-base:          14px;
+@font-size-large:         ceil((@font-size-base * 1.25)); // ~18px
+@font-size-small:         ceil((@font-size-base * 0.85)); // ~12px
+
+@font-size-h1:            floor((@font-size-base * 2.6)); // ~36px
+@font-size-h2:            floor((@font-size-base * 2.15)); // ~30px
+@font-size-h3:            ceil((@font-size-base * 1.7)); // ~24px
+@font-size-h4:            ceil((@font-size-base * 1.25)); // ~18px
+@font-size-h5:            @font-size-base;
+@font-size-h6:            ceil((@font-size-base * 0.85)); // ~12px
+
+//** Unit-less `line-height` for use in components like buttons.
+@line-height-base:        1.428571429; // 20/14
+//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
+@line-height-computed:    floor((@font-size-base * @line-height-base)); // ~20px
+
+//** By default, this inherits from the ``.
+@headings-font-family:    inherit;
+@headings-font-weight:    500;
+@headings-line-height:    1.1;
+@headings-color:          inherit;
+
+
+//== Iconography
+//
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+
+//** Load fonts from this directory.
+@icon-font-path:          "../fonts/";
+//** File name for all font files.
+@icon-font-name:          "glyphicons-halflings-regular";
+//** Element ID within SVG icon file.
+@icon-font-svg-id:        "glyphicons_halflingsregular";
+
+
+//== Components
+//
+//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
+
+@padding-base-vertical:     6px;
+@padding-base-horizontal:   12px;
+
+@padding-large-vertical:    10px;
+@padding-large-horizontal:  16px;
+
+@padding-small-vertical:    5px;
+@padding-small-horizontal:  10px;
+
+@padding-xs-vertical:       1px;
+@padding-xs-horizontal:     5px;
+
+@line-height-large:         1.3333333; // extra decimals for Win 8.1 Chrome
+@line-height-small:         1.5;
+
+@border-radius-base:        4px;
+@border-radius-large:       6px;
+@border-radius-small:       3px;
+
+//** Global color for active items (e.g., navs or dropdowns).
+@component-active-color:    #fff;
+//** Global background color for active items (e.g., navs or dropdowns).
+@component-active-bg:       @brand-primary;
+
+//** Width of the `border` for generating carets that indicate dropdowns.
+@caret-width-base:          4px;
+//** Carets increase slightly in size for larger components.
+@caret-width-large:         5px;
+
+
+//== Tables
+//
+//## Customizes the `.table` component with basic values, each used across all table variations.
+
+//** Padding for `
`s and ``s. +@table-cell-padding: 8px; +//** Padding for cells in `.table-condensed`. +@table-condensed-cell-padding: 5px; + +//** Default background color used for all tables. +@table-bg: transparent; +//** Background color used for `.table-striped`. +@table-bg-accent: #f9f9f9; +//** Background color used for `.table-hover`. +@table-bg-hover: #f5f5f5; +@table-bg-active: @table-bg-hover; + +//** Border color for table and cell borders. +@table-border-color: #ddd; + + +//== Buttons +// +//## For each of Bootstrap's buttons, define text, background and border color. + +@btn-font-weight: normal; + +@btn-default-color: #333; +@btn-default-bg: #fff; +@btn-default-border: #ccc; + +@btn-primary-color: #fff; +@btn-primary-bg: @brand-primary; +@btn-primary-border: darken(@btn-primary-bg, 5%); + +@btn-success-color: #fff; +@btn-success-bg: @brand-success; +@btn-success-border: darken(@btn-success-bg, 5%); + +@btn-info-color: #fff; +@btn-info-bg: @brand-info; +@btn-info-border: darken(@btn-info-bg, 5%); + +@btn-warning-color: #fff; +@btn-warning-bg: @brand-warning; +@btn-warning-border: darken(@btn-warning-bg, 5%); + +@btn-danger-color: #fff; +@btn-danger-bg: @brand-danger; +@btn-danger-border: darken(@btn-danger-bg, 5%); + +@btn-link-disabled-color: @gray-light; + +// Allows for customizing button radius independently from global border radius +@btn-border-radius-base: @border-radius-base; +@btn-border-radius-large: @border-radius-large; +@btn-border-radius-small: @border-radius-small; + + +//== Forms +// +//## + +//** `` background color +@input-bg: #fff; +//** `` background color +@input-bg-disabled: @gray-lighter; + +//** Text color for ``s +@input-color: @gray; +//** `` border color +@input-border: #ccc; + +// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4 +//** Default `.form-control` border radius +// This has no effect on ``s in CSS. +@input-border-radius: @border-radius-base; +//** Large `.form-control` border radius +@input-border-radius-large: @border-radius-large; +//** Small `.form-control` border radius +@input-border-radius-small: @border-radius-small; + +//** Border color for inputs on focus +@input-border-focus: #66afe9; + +//** Placeholder text color +@input-color-placeholder: #999; + +//** Default `.form-control` height +@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); +//** Large `.form-control` height +@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2); +//** Small `.form-control` height +@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2); + +//** `.form-group` margin +@form-group-margin-bottom: 15px; + +@legend-color: @gray-dark; +@legend-border-color: #e5e5e5; + +//** Background color for textual input addons +@input-group-addon-bg: @gray-lighter; +//** Border color for textual input addons +@input-group-addon-border-color: @input-border; + +//** Disabled cursor for form controls and buttons. +@cursor-disabled: not-allowed; + + +//== Dropdowns +// +//## Dropdown menu container and contents. + +//** Background for the dropdown menu. +@dropdown-bg: #fff; +//** Dropdown menu `border-color`. +@dropdown-border: rgba(0,0,0,.15); +//** Dropdown menu `border-color` **for IE8**. +@dropdown-fallback-border: #ccc; +//** Divider color for between dropdown items. +@dropdown-divider-bg: #e5e5e5; + +//** Dropdown link text color. +@dropdown-link-color: @gray-dark; +//** Hover color for dropdown links. +@dropdown-link-hover-color: darken(@gray-dark, 5%); +//** Hover background for dropdown links. +@dropdown-link-hover-bg: #f5f5f5; + +//** Active dropdown menu item text color. +@dropdown-link-active-color: @component-active-color; +//** Active dropdown menu item background color. +@dropdown-link-active-bg: @component-active-bg; + +//** Disabled dropdown menu item background color. +@dropdown-link-disabled-color: @gray-light; + +//** Text color for headers within dropdown menus. +@dropdown-header-color: @gray-light; + +//** Deprecated `@dropdown-caret-color` as of v3.1.0 +@dropdown-caret-color: #000; + + +//-- Z-index master list +// +// Warning: Avoid customizing these values. They're used for a bird's eye view +// of components dependent on the z-axis and are designed to all work together. +// +// Note: These variables are not generated into the Customizer. + +@zindex-navbar: 1000; +@zindex-dropdown: 1000; +@zindex-popover: 1060; +@zindex-tooltip: 1070; +@zindex-navbar-fixed: 1030; +@zindex-modal-background: 1040; +@zindex-modal: 1050; + + +//== Media queries breakpoints +// +//## Define the breakpoints at which your layout will change, adapting to different screen sizes. + +// Extra small screen / phone +//** Deprecated `@screen-xs` as of v3.0.1 +@screen-xs: 480px; +//** Deprecated `@screen-xs-min` as of v3.2.0 +@screen-xs-min: @screen-xs; +//** Deprecated `@screen-phone` as of v3.0.1 +@screen-phone: @screen-xs-min; + +// Small screen / tablet +//** Deprecated `@screen-sm` as of v3.0.1 +@screen-sm: 768px; +@screen-sm-min: @screen-sm; +//** Deprecated `@screen-tablet` as of v3.0.1 +@screen-tablet: @screen-sm-min; + +// Medium screen / desktop +//** Deprecated `@screen-md` as of v3.0.1 +@screen-md: 992px; +@screen-md-min: @screen-md; +//** Deprecated `@screen-desktop` as of v3.0.1 +@screen-desktop: @screen-md-min; + +// Large screen / wide desktop +//** Deprecated `@screen-lg` as of v3.0.1 +@screen-lg: 1200px; +@screen-lg-min: @screen-lg; +//** Deprecated `@screen-lg-desktop` as of v3.0.1 +@screen-lg-desktop: @screen-lg-min; + +// So media queries don't overlap when required, provide a maximum +@screen-xs-max: (@screen-sm-min - 1); +@screen-sm-max: (@screen-md-min - 1); +@screen-md-max: (@screen-lg-min - 1); + + +//== Grid system +// +//## Define your custom responsive grid. + +//** Number of columns in the grid. +@grid-columns: 12; +//** Padding between columns. Gets divided in half for the left and right. +@grid-gutter-width: 30px; +// Navbar collapse +//** Point at which the navbar becomes uncollapsed. +@grid-float-breakpoint: @screen-sm-min; +//** Point at which the navbar begins collapsing. +@grid-float-breakpoint-max: (@grid-float-breakpoint - 1); + + +//== Container sizes +// +//## Define the maximum width of `.container` for different screen sizes. + +// Small screen / tablet +@container-tablet: (720px + @grid-gutter-width); +//** For `@screen-sm-min` and up. +@container-sm: @container-tablet; + +// Medium screen / desktop +@container-desktop: (940px + @grid-gutter-width); +//** For `@screen-md-min` and up. +@container-md: @container-desktop; + +// Large screen / wide desktop +@container-large-desktop: (1140px + @grid-gutter-width); +//** For `@screen-lg-min` and up. +@container-lg: @container-large-desktop; + + +//== Navbar +// +//## + +// Basics of a navbar +@navbar-height: 50px; +@navbar-margin-bottom: @line-height-computed; +@navbar-border-radius: @border-radius-base; +@navbar-padding-horizontal: floor((@grid-gutter-width / 2)); +@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2); +@navbar-collapse-max-height: 340px; + +@navbar-default-color: #777; +@navbar-default-bg: #f8f8f8; +@navbar-default-border: darken(@navbar-default-bg, 6.5%); + +// Navbar links +@navbar-default-link-color: #777; +@navbar-default-link-hover-color: #333; +@navbar-default-link-hover-bg: transparent; +@navbar-default-link-active-color: #555; +@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%); +@navbar-default-link-disabled-color: #ccc; +@navbar-default-link-disabled-bg: transparent; + +// Navbar brand label +@navbar-default-brand-color: @navbar-default-link-color; +@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%); +@navbar-default-brand-hover-bg: transparent; + +// Navbar toggle +@navbar-default-toggle-hover-bg: #ddd; +@navbar-default-toggle-icon-bar-bg: #888; +@navbar-default-toggle-border-color: #ddd; + + +//=== Inverted navbar +// Reset inverted navbar basics +@navbar-inverse-color: lighten(@gray-light, 15%); +@navbar-inverse-bg: #222; +@navbar-inverse-border: darken(@navbar-inverse-bg, 10%); + +// Inverted navbar links +@navbar-inverse-link-color: lighten(@gray-light, 15%); +@navbar-inverse-link-hover-color: #fff; +@navbar-inverse-link-hover-bg: transparent; +@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color; +@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%); +@navbar-inverse-link-disabled-color: #444; +@navbar-inverse-link-disabled-bg: transparent; + +// Inverted navbar brand label +@navbar-inverse-brand-color: @navbar-inverse-link-color; +@navbar-inverse-brand-hover-color: #fff; +@navbar-inverse-brand-hover-bg: transparent; + +// Inverted navbar toggle +@navbar-inverse-toggle-hover-bg: #333; +@navbar-inverse-toggle-icon-bar-bg: #fff; +@navbar-inverse-toggle-border-color: #333; + + +//== Navs +// +//## + +//=== Shared nav styles +@nav-link-padding: 10px 15px; +@nav-link-hover-bg: @gray-lighter; + +@nav-disabled-link-color: @gray-light; +@nav-disabled-link-hover-color: @gray-light; + +//== Tabs +@nav-tabs-border-color: #ddd; + +@nav-tabs-link-hover-border-color: @gray-lighter; + +@nav-tabs-active-link-hover-bg: @body-bg; +@nav-tabs-active-link-hover-color: @gray; +@nav-tabs-active-link-hover-border-color: #ddd; + +@nav-tabs-justified-link-border-color: #ddd; +@nav-tabs-justified-active-link-border-color: @body-bg; + +//== Pills +@nav-pills-border-radius: @border-radius-base; +@nav-pills-active-link-hover-bg: @component-active-bg; +@nav-pills-active-link-hover-color: @component-active-color; + + +//== Pagination +// +//## + +@pagination-color: @link-color; +@pagination-bg: #fff; +@pagination-border: #ddd; + +@pagination-hover-color: @link-hover-color; +@pagination-hover-bg: @gray-lighter; +@pagination-hover-border: #ddd; + +@pagination-active-color: #fff; +@pagination-active-bg: @brand-primary; +@pagination-active-border: @brand-primary; + +@pagination-disabled-color: @gray-light; +@pagination-disabled-bg: #fff; +@pagination-disabled-border: #ddd; + + +//== Pager +// +//## + +@pager-bg: @pagination-bg; +@pager-border: @pagination-border; +@pager-border-radius: 15px; + +@pager-hover-bg: @pagination-hover-bg; + +@pager-active-bg: @pagination-active-bg; +@pager-active-color: @pagination-active-color; + +@pager-disabled-color: @pagination-disabled-color; + + +//== Jumbotron +// +//## + +@jumbotron-padding: 30px; +@jumbotron-color: inherit; +@jumbotron-bg: @gray-lighter; +@jumbotron-heading-color: inherit; +@jumbotron-font-size: ceil((@font-size-base * 1.5)); +@jumbotron-heading-font-size: ceil((@font-size-base * 4.5)); + + +//== Form states and alerts +// +//## Define colors for form feedback states and, by default, alerts. + +@state-success-text: #3c763d; +@state-success-bg: #dff0d8; +@state-success-border: darken(spin(@state-success-bg, -10), 5%); + +@state-info-text: #31708f; +@state-info-bg: #d9edf7; +@state-info-border: darken(spin(@state-info-bg, -10), 7%); + +@state-warning-text: #8a6d3b; +@state-warning-bg: #fcf8e3; +@state-warning-border: darken(spin(@state-warning-bg, -10), 5%); + +@state-danger-text: #a94442; +@state-danger-bg: #f2dede; +@state-danger-border: darken(spin(@state-danger-bg, -10), 5%); + + +//== Tooltips +// +//## + +//** Tooltip max width +@tooltip-max-width: 200px; +//** Tooltip text color +@tooltip-color: #fff; +//** Tooltip background color +@tooltip-bg: #000; +@tooltip-opacity: .9; + +//** Tooltip arrow width +@tooltip-arrow-width: 5px; +//** Tooltip arrow color +@tooltip-arrow-color: @tooltip-bg; + + +//== Popovers +// +//## + +//** Popover body background color +@popover-bg: #fff; +//** Popover maximum width +@popover-max-width: 276px; +//** Popover border color +@popover-border-color: rgba(0,0,0,.2); +//** Popover fallback border color +@popover-fallback-border-color: #ccc; + +//** Popover title background color +@popover-title-bg: darken(@popover-bg, 3%); + +//** Popover arrow width +@popover-arrow-width: 10px; +//** Popover arrow color +@popover-arrow-color: @popover-bg; + +//** Popover outer arrow width +@popover-arrow-outer-width: (@popover-arrow-width + 1); +//** Popover outer arrow color +@popover-arrow-outer-color: fadein(@popover-border-color, 5%); +//** Popover outer arrow fallback color +@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%); + + +//== Labels +// +//## + +//** Default label background color +@label-default-bg: @gray-light; +//** Primary label background color +@label-primary-bg: @brand-primary; +//** Success label background color +@label-success-bg: @brand-success; +//** Info label background color +@label-info-bg: @brand-info; +//** Warning label background color +@label-warning-bg: @brand-warning; +//** Danger label background color +@label-danger-bg: @brand-danger; + +//** Default label text color +@label-color: #fff; +//** Default text color of a linked label +@label-link-hover-color: #fff; + + +//== Modals +// +//## + +//** Padding applied to the modal body +@modal-inner-padding: 15px; + +//** Padding applied to the modal title +@modal-title-padding: 15px; +//** Modal title line-height +@modal-title-line-height: @line-height-base; + +//** Background color of modal content area +@modal-content-bg: #fff; +//** Modal content border color +@modal-content-border-color: rgba(0,0,0,.2); +//** Modal content border color **for IE8** +@modal-content-fallback-border-color: #999; + +//** Modal backdrop background color +@modal-backdrop-bg: #000; +//** Modal backdrop opacity +@modal-backdrop-opacity: .5; +//** Modal header border color +@modal-header-border-color: #e5e5e5; +//** Modal footer border color +@modal-footer-border-color: @modal-header-border-color; + +@modal-lg: 900px; +@modal-md: 600px; +@modal-sm: 300px; + + +//== Alerts +// +//## Define alert colors, border radius, and padding. + +@alert-padding: 15px; +@alert-border-radius: @border-radius-base; +@alert-link-font-weight: bold; + +@alert-success-bg: @state-success-bg; +@alert-success-text: @state-success-text; +@alert-success-border: @state-success-border; + +@alert-info-bg: @state-info-bg; +@alert-info-text: @state-info-text; +@alert-info-border: @state-info-border; + +@alert-warning-bg: @state-warning-bg; +@alert-warning-text: @state-warning-text; +@alert-warning-border: @state-warning-border; + +@alert-danger-bg: @state-danger-bg; +@alert-danger-text: @state-danger-text; +@alert-danger-border: @state-danger-border; + + +//== Progress bars +// +//## + +//** Background color of the whole progress component +@progress-bg: #f5f5f5; +//** Progress bar text color +@progress-bar-color: #fff; +//** Variable for setting rounded corners on progress bar. +@progress-border-radius: @border-radius-base; + +//** Default progress bar color +@progress-bar-bg: @brand-primary; +//** Success progress bar color +@progress-bar-success-bg: @brand-success; +//** Warning progress bar color +@progress-bar-warning-bg: @brand-warning; +//** Danger progress bar color +@progress-bar-danger-bg: @brand-danger; +//** Info progress bar color +@progress-bar-info-bg: @brand-info; + + +//== List group +// +//## + +//** Background color on `.list-group-item` +@list-group-bg: #fff; +//** `.list-group-item` border color +@list-group-border: #ddd; +//** List group border radius +@list-group-border-radius: @border-radius-base; + +//** Background color of single list items on hover +@list-group-hover-bg: #f5f5f5; +//** Text color of active list items +@list-group-active-color: @component-active-color; +//** Background color of active list items +@list-group-active-bg: @component-active-bg; +//** Border color of active list elements +@list-group-active-border: @list-group-active-bg; +//** Text color for content within active list items +@list-group-active-text-color: lighten(@list-group-active-bg, 40%); + +//** Text color of disabled list items +@list-group-disabled-color: @gray-light; +//** Background color of disabled list items +@list-group-disabled-bg: @gray-lighter; +//** Text color for content within disabled list items +@list-group-disabled-text-color: @list-group-disabled-color; + +@list-group-link-color: #555; +@list-group-link-hover-color: @list-group-link-color; +@list-group-link-heading-color: #333; + + +//== Panels +// +//## + +@panel-bg: #fff; +@panel-body-padding: 15px; +@panel-heading-padding: 10px 15px; +@panel-footer-padding: @panel-heading-padding; +@panel-border-radius: @border-radius-base; + +//** Border color for elements within panels +@panel-inner-border: #ddd; +@panel-footer-bg: #f5f5f5; + +@panel-default-text: @gray-dark; +@panel-default-border: #ddd; +@panel-default-heading-bg: #f5f5f5; + +@panel-primary-text: #fff; +@panel-primary-border: @brand-primary; +@panel-primary-heading-bg: @brand-primary; + +@panel-success-text: @state-success-text; +@panel-success-border: @state-success-border; +@panel-success-heading-bg: @state-success-bg; + +@panel-info-text: @state-info-text; +@panel-info-border: @state-info-border; +@panel-info-heading-bg: @state-info-bg; + +@panel-warning-text: @state-warning-text; +@panel-warning-border: @state-warning-border; +@panel-warning-heading-bg: @state-warning-bg; + +@panel-danger-text: @state-danger-text; +@panel-danger-border: @state-danger-border; +@panel-danger-heading-bg: @state-danger-bg; + + +//== Thumbnails +// +//## + +//** Padding around the thumbnail image +@thumbnail-padding: 4px; +//** Thumbnail background color +@thumbnail-bg: @body-bg; +//** Thumbnail border color +@thumbnail-border: #ddd; +//** Thumbnail border radius +@thumbnail-border-radius: @border-radius-base; + +//** Custom text color for thumbnail captions +@thumbnail-caption-color: @text-color; +//** Padding around the thumbnail caption +@thumbnail-caption-padding: 9px; + + +//== Wells +// +//## + +@well-bg: #f5f5f5; +@well-border: darken(@well-bg, 7%); + + +//== Badges +// +//## + +@badge-color: #fff; +//** Linked badge text color on hover +@badge-link-hover-color: #fff; +@badge-bg: @gray-light; + +//** Badge text color in active nav link +@badge-active-color: @link-color; +//** Badge background color in active nav link +@badge-active-bg: #fff; + +@badge-font-weight: bold; +@badge-line-height: 1; +@badge-border-radius: 10px; + + +//== Breadcrumbs +// +//## + +@breadcrumb-padding-vertical: 8px; +@breadcrumb-padding-horizontal: 15px; +//** Breadcrumb background color +@breadcrumb-bg: #f5f5f5; +//** Breadcrumb text color +@breadcrumb-color: #ccc; +//** Text color of current page in the breadcrumb +@breadcrumb-active-color: @gray-light; +//** Textual separator for between breadcrumb elements +@breadcrumb-separator: "/"; + + +//== Carousel +// +//## + +@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6); + +@carousel-control-color: #fff; +@carousel-control-width: 15%; +@carousel-control-opacity: .5; +@carousel-control-font-size: 20px; + +@carousel-indicator-active-bg: #fff; +@carousel-indicator-border-color: #fff; + +@carousel-caption-color: #fff; + + +//== Close +// +//## + +@close-font-weight: bold; +@close-color: #000; +@close-text-shadow: 0 1px 0 #fff; + + +//== Code +// +//## + +@code-color: #c7254e; +@code-bg: #f9f2f4; + +@kbd-color: #fff; +@kbd-bg: #333; + +@pre-bg: #f5f5f5; +@pre-color: @gray-dark; +@pre-border-color: #ccc; +@pre-scrollable-max-height: 340px; + + +//== Type +// +//## + +//** Horizontal offset for forms and lists. +@component-offset-horizontal: 180px; +//** Text muted color +@text-muted: @gray-light; +//** Abbreviations and acronyms border color +@abbr-border-color: @gray-light; +//** Headings small color +@headings-small-color: @gray-light; +//** Blockquote small color +@blockquote-small-color: @gray-light; +//** Blockquote font size +@blockquote-font-size: (@font-size-base * 1.25); +//** Blockquote border color +@blockquote-border-color: @gray-lighter; +//** Page header border color +@page-header-border-color: @gray-lighter; +//** Width of horizontal description list titles +@dl-horizontal-offset: @component-offset-horizontal; +//** Point at which .dl-horizontal becomes horizontal +@dl-horizontal-breakpoint: @grid-float-breakpoint; +//** Horizontal line color. +@hr-border: @gray-lighter; diff --git a/web/client/themes/default/bootstrap-theme/variables.less b/web/client/themes/default/bootstrap-theme/variables.less new file mode 100644 index 0000000000..3d72f9205f --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/variables.less @@ -0,0 +1,866 @@ +// +// Variables +// -------------------------------------------------- + + +//== Colors +// + +@brand-primary: @ms2-primary-bg; +@brand-success: @ms2-success-bg; +@brand-info: @ms2-info-bg; +@brand-warning: @ms2-warning-bg; +@brand-danger: @ms2-danger-bg; + + +//== Scaffolding +// +//## Settings for some of the most global styles. + +//** Background color for ``. +@body-bg: @ms2-body-bg; +//** Global text color on ``. +@text-color: @ms2-text-color; + +//** Global textual link color. +@link-color: @brand-primary; +//** Link hover color set via `darken()` function. +@link-hover-color: darken(@link-color, 15%); +//** Link hover decoration. +@link-hover-decoration: underline; + + +//== Typography +// +//## Font, line-height, and color for body text, headings, and more. + +@font-family-sans-serif: @ms2-font-family-sans-serif; +@font-family-serif: @ms2-font-family-serif; +//** Default monospace fonts for ``, ``, and `
`.
+@font-family-monospace:   @ms2-font-family-monospace;
+@font-family-base:        @font-family-sans-serif;
+
+@font-size-base:          @ms2-font-size-base;
+@font-size-large:         ceil((@font-size-base * 1.25)); // ~18px
+@font-size-small:         ceil((@font-size-base * 0.85)); // ~12px
+
+@font-size-h1:            floor((@font-size-base * 2.6)); // ~36px
+@font-size-h2:            floor((@font-size-base * 2.15)); // ~30px
+@font-size-h3:            ceil((@font-size-base * 1.7)); // ~24px
+@font-size-h4:            ceil((@font-size-base * 1.25)); // ~18px
+@font-size-h5:            @font-size-base;
+@font-size-h6:            ceil((@font-size-base * 0.85)); // ~12px
+
+//** Unit-less `line-height` for use in components like buttons.
+@line-height-base:        1.428571429; // 20/14
+//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
+@line-height-computed:    floor((@font-size-base * @line-height-base)); // ~20px
+
+//** By default, this inherits from the ``.
+@headings-font-family:    inherit;
+@headings-font-weight:    500;
+@headings-line-height:    1.1;
+@headings-color:          inherit;
+
+
+//== Iconography
+//
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+
+//** Load fonts from this directory.
+@icon-font-path:          "../fonts/";
+//** File name for all font files.
+@icon-font-name:          "glyphicons-halflings-regular";
+//** Element ID within SVG icon file.
+@icon-font-svg-id:        "glyphicons_halflingsregular";
+
+
+//== Components
+//
+//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
+
+@padding-base-vertical:     6px;
+@padding-base-horizontal:   12px;
+
+@padding-large-vertical:    10px;
+@padding-large-horizontal:  16px;
+
+@padding-small-vertical:    5px;
+@padding-small-horizontal:  10px;
+
+@padding-xs-vertical:       1px;
+@padding-xs-horizontal:     5px;
+
+@line-height-large:         1.3333333; // extra decimals for Win 8.1 Chrome
+@line-height-small:         1.5;
+
+@border-radius-base:        @ms2-radius-base;
+@border-radius-large:       @ms2-radius-large;
+@border-radius-small:       @ms2-radius-small;
+
+//** Global color for active items (e.g., navs or dropdowns).
+@component-active-color:    @ms2-body-bg;
+//** Global background color for active items (e.g., navs or dropdowns).
+@component-active-bg:       @brand-primary;
+
+//** Width of the `border` for generating carets that indicate dropdowns.
+@caret-width-base:          4px;
+//** Carets increase slightly in size for larger components.
+@caret-width-large:         5px;
+
+
+//== Tables
+//
+//## Customizes the `.table` component with basic values, each used across all table variations.
+
+//** Padding for `
`s and ``s. +@table-cell-padding: 8px; +//** Padding for cells in `.table-condensed`. +@table-condensed-cell-padding: 5px; + +//** Default background color used for all tables. +@table-bg: transparent; +//** Background color used for `.table-striped`. +@table-bg-accent: darken(@ms2-body-bg, 4%); +//** Background color used for `.table-hover`. +@table-bg-hover: darken(@ms2-body-bg, 2%); +@table-bg-active: @table-bg-hover; + +//** Border color for table and cell borders. +@table-border-color: darken(@ms2-body-bg, 2%); + + +//== Buttons +// +//## For each of Bootstrap's buttons, define text, background and border color. + +@btn-font-weight: normal; + +@btn-disabled-color: @ms2-btn-disabled-color; +@btn-disabled-bg: @ms2-btn-disabled-bg; + +@btn-default-color: @ms2-default-bg; +@btn-default-bg: @ms2-body-bg; +@btn-default-border: @ms2-default-border; + +@btn-primary-color: @ms2-primary-color; +@btn-primary-bg: @brand-primary; +@btn-primary-border: @ms2-primary-border; + +@btn-success-color: @ms2-primary-color; +@btn-success-bg: @brand-success; +@btn-success-border: @ms2-success-border; + +@btn-info-color: @ms2-primary-color; +@btn-info-bg: @brand-info; +@btn-info-border: @ms2-info-border; + +@btn-warning-color: @ms2-primary-color; +@btn-warning-bg: @brand-warning; +@btn-warning-border: @ms2-warning-border; + +@btn-danger-color: @ms2-primary-color; +@btn-danger-bg: @brand-danger; +@btn-danger-border: @ms2-danger-border; + +@btn-link-disabled-color: @ms2-disabled-color; + +// Allows for customizing button radius independently from global border radius +@btn-border-radius-base: @border-radius-base; +@btn-border-radius-large: @border-radius-large; +@btn-border-radius-small: @border-radius-small; + + +//== Forms +// +//## + +//** `` background color +@input-bg: @ms2-body-bg; +//** `` background color +@input-bg-disabled: @ms2-disabled-bg; + +//** Text color for ``s +@input-color: @ms2-text-color; +//** `` border color +@input-border: lighten(@ms2-body-bg, 10%); + +// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4 +//** Default `.form-control` border radius +// This has no effect on ``s in CSS. +@input-border-radius: @border-radius-base; +//** Large `.form-control` border radius +@input-border-radius-large: @border-radius-large; +//** Small `.form-control` border radius +@input-border-radius-small: @border-radius-small; + +//** Border color for inputs on focus +@input-border-focus: lighten(@brand-primary, 18%); + +//** Placeholder text color +@input-color-placeholder: @ms2-placeholder-color; + +//** Default `.form-control` height +@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); +//** Large `.form-control` height +@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2); +//** Small `.form-control` height +@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2); + +//** `.form-group` margin +@form-group-margin-bottom: 15px; + +@legend-color: @ms2-text-color; +@legend-border-color: darken(@ms2-body-bg, 5%); + +//** Background color for textual input addons +@input-group-addon-bg: darken(@ms2-body-bg, 5%); +//** Border color for textual input addons +@input-group-addon-border-color: darken(@ms2-body-bg, 5%); + +//** Disabled cursor for form controls and buttons. +@cursor-disabled: default; // not-allowed; + + +//== Dropdowns +// +//## Dropdown menu container and contents. + +//** Background for the dropdown menu. +@dropdown-bg: @ms2-body-bg; +//** Dropdown menu `border-color`. +@dropdown-border: rgba(0,0,0,.15); +//** Dropdown menu `border-color` **for IE8**. +@dropdown-fallback-border: darken(@ms2-body-bg, 18%); +//** Divider color for between dropdown items. +@dropdown-divider-bg: darken(@ms2-body-bg, 12%); + +//** Dropdown link text color. +@dropdown-link-color: @ms2-primary-bg; +//** Hover color for dropdown links. +@dropdown-link-hover-color: darken(@dropdown-link-color, 5%); +//** Hover background for dropdown links. +@dropdown-link-hover-bg: darken(@ms2-body-bg, 5%); + +//** Active dropdown menu item text color. +@dropdown-link-active-color: @component-active-color; +//** Active dropdown menu item background color. +@dropdown-link-active-bg: @component-active-bg; + +//** Disabled dropdown menu item background color. +@dropdown-link-disabled-color: @ms2-disabled-bg; + +//** Text color for headers within dropdown menus. +@dropdown-header-color: @ms2-text-color; + +//** Deprecated `@dropdown-caret-color` as of v3.1.0 +@dropdown-caret-color: @ms2-text-color; + + +//-- Z-index master list +// +// Warning: Avoid customizing these values. They're used for a bird's eye view +// of components dependent on the z-axis and are designed to all work together. +// +// Note: These variables are not generated into the Customizer. + +@zindex-navbar: 1000; +@zindex-dropdown: 1000; +@zindex-popover: 1060; +@zindex-tooltip: 1070; +@zindex-navbar-fixed: 1030; +@zindex-modal-background: 1040; +@zindex-modal: 1050; + + +//== Media queries breakpoints +// +//## Define the breakpoints at which your layout will change, adapting to different screen sizes. + +// Extra small screen / phone +//** Deprecated `@screen-xs` as of v3.0.1 +@screen-xs: 480px; +//** Deprecated `@screen-xs-min` as of v3.2.0 +@screen-xs-min: @screen-xs; +//** Deprecated `@screen-phone` as of v3.0.1 +@screen-phone: @screen-xs-min; + +// Small screen / tablet +//** Deprecated `@screen-sm` as of v3.0.1 +@screen-sm: 768px; +@screen-sm-min: @screen-sm; +//** Deprecated `@screen-tablet` as of v3.0.1 +@screen-tablet: @screen-sm-min; + +// Medium screen / desktop +//** Deprecated `@screen-md` as of v3.0.1 +@screen-md: 992px; +@screen-md-min: @screen-md; +//** Deprecated `@screen-desktop` as of v3.0.1 +@screen-desktop: @screen-md-min; + +// Large screen / wide desktop +//** Deprecated `@screen-lg` as of v3.0.1 +@screen-lg: 1200px; +@screen-lg-min: @screen-lg; +//** Deprecated `@screen-lg-desktop` as of v3.0.1 +@screen-lg-desktop: @screen-lg-min; + +// So media queries don't overlap when required, provide a maximum +@screen-xs-max: (@screen-sm-min - 1); +@screen-sm-max: (@screen-md-min - 1); +@screen-md-max: (@screen-lg-min - 1); + + +//== Grid system +// +//## Define your custom responsive grid. + +//** Number of columns in the grid. +@grid-columns: 12; +//** Padding between columns. Gets divided in half for the left and right. +@grid-gutter-width: 30px; +// Navbar collapse +//** Point at which the navbar becomes uncollapsed. +@grid-float-breakpoint: @screen-sm-min; +//** Point at which the navbar begins collapsing. +@grid-float-breakpoint-max: (@grid-float-breakpoint - 1); + + +//== Container sizes +// +//## Define the maximum width of `.container` for different screen sizes. + +// Small screen / tablet +@container-tablet: (720px + @grid-gutter-width); +//** For `@screen-sm-min` and up. +@container-sm: @container-tablet; + +// Medium screen / desktop +@container-desktop: (940px + @grid-gutter-width); +//** For `@screen-md-min` and up. +@container-md: @container-desktop; + +// Large screen / wide desktop +@container-large-desktop: (1140px + @grid-gutter-width); +//** For `@screen-lg-min` and up. +@container-lg: @container-large-desktop; + + +//== Navbar +// +//## + +// Basics of a navbar +@navbar-height: 50px; +@navbar-margin-bottom: @line-height-computed; +@navbar-border-radius: @border-radius-base; +@navbar-padding-horizontal: floor((@grid-gutter-width / 2)); +@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2); +@navbar-collapse-max-height: 340px; + +@navbar-default-color: lighten(@ms2-text-color, 5%); +@navbar-default-bg: darken(@ms2-body-bg, 2%); +@navbar-default-border: darken(@navbar-default-bg, 6.5%); + +// Navbar links +@navbar-default-link-color: lighten(@ms2-text-color, 6%); +@navbar-default-link-hover-color: @ms2-text-color; +@navbar-default-link-hover-bg: transparent; +@navbar-default-link-active-color: lighten(@ms2-text-color, 3%); +@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%); +@navbar-default-link-disabled-color: @ms2-disabled-color; +@navbar-default-link-disabled-bg: transparent; + +// Navbar brand label +@navbar-default-brand-color: @navbar-default-link-color; +@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%); +@navbar-default-brand-hover-bg: transparent; + +// Navbar toggle +@navbar-default-toggle-hover-bg: darken(@ms2-body-bg, 8%); +@navbar-default-toggle-icon-bar-bg: darken(@ms2-body-bg, 25%); +@navbar-default-toggle-border-color: darken(@ms2-body-bg, 8%); + + +//=== Inverted navbar +// Reset inverted navbar basics +@navbar-inverse-color: @navbar-default-toggle-icon-bar-bg; +@navbar-inverse-bg: @ms2-text-color; +@navbar-inverse-border: darken(@navbar-inverse-bg, 10%); + +// Inverted navbar links +@navbar-inverse-link-color: @navbar-default-toggle-icon-bar-bg; +@navbar-inverse-link-hover-color: @ms2-body-bg; +@navbar-inverse-link-hover-bg: transparent; +@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color; +@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%); +@navbar-inverse-link-disabled-color: lighten(@ms2-text-color, 5%); +@navbar-inverse-link-disabled-bg: transparent; + +// Inverted navbar brand label +@navbar-inverse-brand-color: @navbar-inverse-link-color; +@navbar-inverse-brand-hover-color: @ms2-body-bg; +@navbar-inverse-brand-hover-bg: transparent; + +// Inverted navbar toggle +@navbar-inverse-toggle-hover-bg: @ms2-text-color; +@navbar-inverse-toggle-icon-bar-bg: @ms2-body-bg; +@navbar-inverse-toggle-border-color: @ms2-text-color; + + +//== Navs +// +//## + +//=== Shared nav styles +@nav-link-padding: 10px 15px; +@nav-link-hover-bg: @ms2-body-bg; + +@nav-disabled-link-color: @ms2-disabled-color; +@nav-disabled-link-hover-color: @ms2-disabled-color; + +//== Tabs +@nav-tabs-border-color: darken(@ms2-body-bg, 8%); + +@nav-tabs-link-hover-border-color: @ms2-body-bg; + +@nav-tabs-active-link-hover-bg: @body-bg; +@nav-tabs-active-link-hover-color: lighten(@ms2-text-color, 5%); +@nav-tabs-active-link-hover-border-color: darken(@ms2-body-bg, 8%); + +@nav-tabs-justified-link-border-color: darken(@ms2-body-bg, 8%); +@nav-tabs-justified-active-link-border-color: @body-bg; + +//== Pills +@nav-pills-border-radius: @border-radius-base; +@nav-pills-active-link-hover-bg: @component-active-bg; +@nav-pills-active-link-hover-color: @component-active-color; + + +//== Pagination +// +//## + +@pagination-color: @link-color; +@pagination-bg: @ms2-body-bg; +@pagination-border: darken(@ms2-body-bg, 5%); + +@pagination-hover-color: @link-hover-color; +@pagination-hover-bg: darken(@ms2-body-bg, 8%); +@pagination-hover-border: darken(@ms2-body-bg, 12%); + +@pagination-active-color: @ms2-primary-color; +@pagination-active-bg: @brand-primary; +@pagination-active-border: @brand-primary; + +@pagination-disabled-color: darken(@ms2-body-bg, 20%); +@pagination-disabled-bg: @ms2-body-bg; +@pagination-disabled-border: darken(@ms2-body-bg, 5%); + + +//== Pager +// +//## + +@pager-bg: @pagination-bg; +@pager-border: @pagination-border; +@pager-border-radius: 15px; + +@pager-hover-bg: @pagination-hover-bg; + +@pager-active-bg: @pagination-active-bg; +@pager-active-color: @pagination-active-color; + +@pager-disabled-color: @pagination-disabled-color; + + +//== Jumbotron +// +//## + +@jumbotron-padding: 30px; +@jumbotron-color: inherit; +@jumbotron-bg: darken(@ms2-body-bg, 8%); +@jumbotron-heading-color: inherit; +@jumbotron-font-size: ceil((@font-size-base * 1.5)); +@jumbotron-heading-font-size: ceil((@font-size-base * 4.5)); + + +//== Form states and alerts +// +//## Define colors for form feedback states and, by default, alerts. + +@state-success-text: desaturate(darken(@brand-success, 20%), 5%); +@state-success-bg: mix(@ms2-body-bg, lighten(@brand-success, 45%), 90%); +@state-success-border: darken(spin(@state-success-bg, -10), 5%); + +@state-info-text: desaturate(darken(@brand-info, 20%), 5%); +@state-info-bg: mix(@ms2-body-bg, lighten(@brand-info, 45%), 90%); +@state-info-border: darken(spin(@state-info-bg, -10), 7%); + +@state-warning-text: desaturate(darken(@brand-warning, 20%), 5%); +@state-warning-bg: mix(@ms2-body-bg, lighten(@brand-warning, 45%), 90%); +@state-warning-border: darken(spin(@state-warning-bg, -10), 5%); + +@state-danger-text: desaturate(darken(@brand-danger, 20%), 5%); +@state-danger-bg: mix(@ms2-body-bg, lighten(@brand-danger, 45%), 90%); +@state-danger-border: darken(spin(@state-danger-bg, -10), 5%); + + +//== Tooltips +// +//## + +//** Tooltip max width +@tooltip-max-width: 200px; +//** Tooltip text color +@tooltip-color: @ms2-tooltip-color; +//** Tooltip background color +@tooltip-bg: @ms2-tooltip-bg; +@tooltip-opacity: .9; + +//** Tooltip arrow width +@tooltip-arrow-width: 5px; +//** Tooltip arrow color +@tooltip-arrow-color: @tooltip-bg; + + +//== Popovers +// +//## + +//** Popover body background color +@popover-bg: @ms2-body-bg; +//** Popover maximum width +@popover-max-width: 276px; +//** Popover border color +@popover-border-color: rgba(0,0,0,.2); +//** Popover fallback border color +@popover-fallback-border-color: darken(@ms2-body-bg, 20%); + +//** Popover title background color +@popover-title-bg: darken(@popover-bg, 3%); + +//** Popover arrow width +@popover-arrow-width: 10px; +//** Popover arrow color +@popover-arrow-color: @popover-bg; + +//** Popover outer arrow width +@popover-arrow-outer-width: (@popover-arrow-width + 1); +//** Popover outer arrow color +@popover-arrow-outer-color: fadein(@popover-border-color, 5%); +//** Popover outer arrow fallback color +@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%); + + +//== Labels +// +//## + +//** Default label background color +@label-default-bg: @ms2-default-bg; +//** Primary label background color +@label-primary-bg: @brand-primary; +//** Success label background color +@label-success-bg: @brand-success; +//** Info label background color +@label-info-bg: @brand-info; +//** Warning label background color +@label-warning-bg: @brand-warning; +//** Danger label background color +@label-danger-bg: @brand-danger; + +//** Default label text color +@label-color: @ms2-primary-color; +//** Default text color of a linked label +@label-link-hover-color: @ms2-primary-color; + + +//== Modals +// +//## + +//** Padding applied to the modal body +@modal-inner-padding: 15px; + +//** Padding applied to the modal title +@modal-title-padding: 15px; +//** Modal title line-height +@modal-title-line-height: @line-height-base; + +//** Background color of modal content area +@modal-content-bg: @ms2-body-bg; +//** Modal content border color +@modal-content-border-color: rgba(0,0,0,.2); +//** Modal content border color **for IE8** +@modal-content-fallback-border-color: lighten(@ms2-body-bg, 5%); + +//** Modal backdrop background color +@modal-backdrop-bg: @ms2-body-bg; +//** Modal backdrop opacity +@modal-backdrop-opacity: .5; +//** Modal header border color +@modal-header-border-color: lighten(@ms2-body-bg, 5%); +@modal-header-color: @ms2-primary-color; /* new ms2 */ +@modal-header-bg: @ms2-primary-bg; /* new ms2 */ +//** Modal footer border color +@modal-footer-border-color: @modal-header-border-color; + +@modal-lg: 900px; +@modal-md: 290px; +@modal-sm: 290px; + + +//== Alerts +// +//## Define alert colors, border radius, and padding. + +@alert-padding: 15px; +@alert-border-radius: @border-radius-base; +@alert-link-font-weight: bold; + +@alert-success-bg: @state-success-bg; +@alert-success-text: @state-success-text; +@alert-success-border: @state-success-border; + +@alert-info-bg: @state-info-bg; +@alert-info-text: @state-info-text; +@alert-info-border: @state-info-border; + +@alert-warning-bg: @state-warning-bg; +@alert-warning-text: @state-warning-text; +@alert-warning-border: @state-warning-border; + +@alert-danger-bg: @state-danger-bg; +@alert-danger-text: @state-danger-text; +@alert-danger-border: @state-danger-border; + + +//== Progress bars +// +//## + +//** Background color of the whole progress component +@progress-bg: lighten(@ms2-body-bg, 2%); +//** Progress bar text color +@progress-bar-color: @ms2-text-color; +//** Variable for setting rounded corners on progress bar. +@progress-border-radius: @border-radius-base; + +//** Default progress bar color +@progress-bar-bg: @brand-primary; +//** Success progress bar color +@progress-bar-success-bg: @brand-success; +//** Warning progress bar color +@progress-bar-warning-bg: @brand-warning; +//** Danger progress bar color +@progress-bar-danger-bg: @brand-danger; +//** Info progress bar color +@progress-bar-info-bg: @brand-info; + + +//== List group +// +//## + +//** Background color on `.list-group-item` +@list-group-bg: @ms2-body-bg; +//** `.list-group-item` border color +@list-group-border: darken(@ms2-body-bg, 20%); +//** List group border radius +@list-group-border-radius: @border-radius-base; + +//** Background color of single list items on hover +@list-group-hover-bg: darken(@ms2-body-bg, 5%); +//** Text color of active list items +@list-group-active-color: @component-active-color; +//** Background color of active list items +@list-group-active-bg: @component-active-bg; +//** Border color of active list elements +@list-group-active-border: @list-group-active-bg; +//** Text color for content within active list items +@list-group-active-text-color: lighten(@list-group-active-bg, 40%); + +//** Text color of disabled list items +@list-group-disabled-color: @ms2-disabled-color; +//** Background color of disabled list items +@list-group-disabled-bg: @ms2-disabled-bg; +//** Text color for content within disabled list items +@list-group-disabled-text-color: @list-group-disabled-color; + +@list-group-link-color: lighten(@ms2-text-color, 5%); +@list-group-link-hover-color: @list-group-link-color; +@list-group-link-heading-color: @ms2-text-color; + + +//== Panels +// +//## + +@panel-bg: @ms2-body-bg; +@panel-body-padding: 15px; +@panel-heading-padding: 10px 15px; +@panel-footer-padding: @panel-heading-padding; +@panel-border-radius: @border-radius-base; + +//** Border color for elements within panels +@panel-inner-border: @ms2-body-bg; +@panel-footer-bg: @ms2-body-bg; + +@panel-default-text: @ms2-text-color; +@panel-default-border: darken(@ms2-body-bg, 5%); +@panel-default-heading-bg: @ms2-body-bg; + +@panel-primary-text: @ms2-primary-color; +@panel-primary-border: @brand-primary; +@panel-primary-heading-bg: @brand-primary; + +@panel-success-text: @state-success-text; +@panel-success-border: @state-success-border; +@panel-success-heading-bg: @state-success-bg; + +@panel-info-text: @state-info-text; +@panel-info-border: @state-info-border; +@panel-info-heading-bg: @state-info-bg; + +@panel-warning-text: @state-warning-text; +@panel-warning-border: @state-warning-border; +@panel-warning-heading-bg: @state-warning-bg; + +@panel-danger-text: @state-danger-text; +@panel-danger-border: @state-danger-border; +@panel-danger-heading-bg: @state-danger-bg; + + +//== Thumbnails +// +//## + +//** Padding around the thumbnail image +@thumbnail-padding: 4px; +//** Thumbnail background color +@thumbnail-bg: @body-bg; +//** Thumbnail border color +@thumbnail-border: darken(@body-bg, 1%); +//** Thumbnail border radius +@thumbnail-border-radius: @border-radius-base; + +//** Custom text color for thumbnail captions +@thumbnail-caption-color: @text-color; +//** Padding around the thumbnail caption +@thumbnail-caption-padding: 9px; + + +//== Wells +// +//## + +@well-bg: @ms2-body-bg; +@well-border: darken(@well-bg, 7%); + + +//== Badgess +// +//## + +@badge-color: @ms2-primary-color; +//** Linked badge text color on hover +@badge-link-hover-color: @ms2-primary-color; +@badge-bg: darken(@ms2-body-bg, 20%); + +//** Badge text color in active nav link +@badge-active-color: @link-color; +//** Badge background color in active nav link +@badge-active-bg: @ms2-body-bg; + +@badge-font-weight: bold; +@badge-line-height: 1; +@badge-border-radius: 10px; + + +//== Breadcrumbs +// +//## + +@breadcrumb-padding-vertical: 8px; +@breadcrumb-padding-horizontal: 15px; +//** Breadcrumb background color +@breadcrumb-bg: darken(@ms2-body-bg, 5%); +//** Breadcrumb text color +@breadcrumb-color: lighten(@ms2-text-color, 5%); +//** Text color of current page in the breadcrumb +@breadcrumb-active-color: lighten(@ms2-text-color, 10%); +//** Textual separator for between breadcrumb elements +@breadcrumb-separator: "/"; + + +//== Carousel +// +//## + +@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6); + +@carousel-control-color: @ms2-info-bg; +@carousel-control-width: 15%; +@carousel-control-opacity: .5; +@carousel-control-font-size: 20px; + +@carousel-indicator-active-bg: @ms2-info-bg; +@carousel-indicator-border-color: @ms2-body-bg; + +@carousel-caption-color: #fff; + + +//== Close +// +//## + +@close-font-weight: bold; +@close-color: @ms2-primary-color; +@close-text-shadow: 0 1px 0 @ms2-primary-bg; + + +//== Code +// +//## + +@code-color: @ms2-code-color; +@code-bg: @ms2-body-bg; + +@kbd-color: @ms2-body-bg; +@kbd-bg: @ms2-text-color; + +@pre-bg: @ms2-body-bg; +@pre-color: darken(@ms2-text-color, 10%); +@pre-border-color: darken(@ms2-body-bg, 5%); +@pre-scrollable-max-height: 340px; + + +//== Type +// +//## + +//** Horizontal offset for forms and lists. +@component-offset-horizontal: 180px; +//** Text muted color +@text-muted: @ms2-disabled-color; +//** Abbreviations and acronyms border color +@abbr-border-color: lighten(@ms2-text-color, 10%); +//** Headings small color +@headings-small-color: lighten(@ms2-text-color, 10%); +//** Blockquote small color +@blockquote-small-color: lighten(@ms2-text-color, 10%); +//** Blockquote font size +@blockquote-font-size: (@font-size-base * 1.25); +//** Blockquote border color +@blockquote-border-color: @ms2-body-bg; +//** Page header border color +@page-header-border-color: @ms2-body-bg; +//** Width of horizontal description list titles +@dl-horizontal-offset: @component-offset-horizontal; +//** Point at which .dl-horizontal becomes horizontal +@dl-horizontal-breakpoint: @grid-float-breakpoint; +//** Horizontal line color. +@hr-border: darken(@ms2-body-bg, 10%); diff --git a/web/client/themes/default/bootstrap-theme/wells.less b/web/client/themes/default/bootstrap-theme/wells.less new file mode 100644 index 0000000000..15d072b0cd --- /dev/null +++ b/web/client/themes/default/bootstrap-theme/wells.less @@ -0,0 +1,29 @@ +// +// Wells +// -------------------------------------------------- + + +// Base class +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: @well-bg; + border: 1px solid @well-border; + border-radius: @border-radius-base; + .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); + blockquote { + border-color: #ddd; + border-color: rgba(0,0,0,.15); + } +} + +// Sizes +.well-lg { + padding: 24px; + border-radius: @border-radius-large; +} +.well-sm { + padding: 9px; + border-radius: @border-radius-small; +} diff --git a/web/client/themes/default/icons/icons.eot b/web/client/themes/default/icons/icons.eot index c7ead8ba9cc6425b9a15b409afa457f045ab2d44..4e4cf60a2f24b0729d1e39e66db5629a614fd909 100644 GIT binary patch delta 19275 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%0A>UP5KdyGBBeiZFAu29&}N#f`yNm18jK%$v2P|` z8%#o~7z{IpM4*!tlLToaK2JRdy(324ob1dJu$PrwR+-(VR2UOYZ6uGV5{ueMh?OW3 z*S6uOaW#npZN!`Sq>WUlaTP7#w*Cd$s*^ zTlz|JM0eJHy!ii! z=%Uk@zOuJ!vCFl%syF*Tk^XNuADBklY2?wr$Wwq|h>Lg^sMijfh=2o?!#~-~41s5B z97C1-3=vZzp>&XlcajcMF(fT0qOLGIyRfdMuE^mi+MPJwNk&`!A$^EVIEw20fjUYr zbpd}}QL;TTY7`mfXGo**Kb38NHm3kx=5RQKT?o9Zd#+W=D@E z1(2T?j3(PbDsrX_#_9%`T-1{u#5~KuD;ub_m^inKJTfo~!6$#?ujXyw6yE+N%w{fR z-eNvuzQX3G1Gf9kNNQNhA~0&x!C^64j)fB^$3Y^NCzRvK6b@03i3Q_Ho2S6z>B!P5 zb+YCHw@k&FHCn{ivplDks3aCoed4Y0q?_gCiJ}RlCBG&o$E7sL)ma*g+g;$%Y2+%I zuH9|HFP5ad#!O#^&W&GL7E~o}oj}I3#&Du<0%?e=;NKy@HRg$x8v4sDxC@O=pdSv4 zTHIge(dM@PvIM%;v;Ac$;Gdu+;T3>TCsn4*LONvkm+|+PfV&Kw#%xh7kaXb%37k7S z`zxfVcokQT)0kdJ?qwKwDJ6yB(|XTcwsk<%MU#3l%e(-m*gEC3u20*t&Spvev~*XP@J(@t*D(#nNbDSz)xK6fOSy1k!(5 zs+<{n&eC(|E?(pBlf*+a$YqbV%p|>Xm@}De Pcr$oim=1ULUxWHTY#!gj literal 93364 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�T2@H}zw5d0T-ZA=i<`p}6SbA!o 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 diff --git a/web/client/themes/default/icons/icons.svg b/web/client/themes/default/icons/icons.svg index 589ffa8059..675394f78b 100644 --- a/web/client/themes/default/icons/icons.svg +++ b/web/client/themes/default/icons/icons.svg @@ -2,9 +2,8 @@ -Created by FontForge 20161003 at Mon Feb 13 15:08:14 2017 - By www-data -Copyright (c) 2017 by Chef Studio. All rights reserved. +Created by FontForge 20161013 at Sun Mar 12 16:48:47 2017 + By stefano,,, @@ -17,32 +16,38 @@ Copyright (c) 2017 by Chef Studio. All rights reserved. ascent="960" descent="-240" x-height="997" - cap-height="1063" - bbox="-217 -220 1478 1242" + cap-height="960" + bbox="-217 -195 1478 1242" underline-thickness="50" underline-position="-100" - unicode-range="U+0020-1F6AA" + unicode-range="U+002A-1F6AA" /> + - +d="M546.552 364.545q3.63672 10 -3.63574 14.0918q-7.27344 4.09082 -17.2734 -0.455078l-274.545 -197.272q-24.5459 -17.2725 -39.0908 10.9092l-55.4551 94.5449q-13.6357 24.5459 14.5459 39.0908l307.272 140q30.9092 11.8184 0 26.3643l-310 142.727 +q-25.4541 14.5459 -11.8184 39.0918l55.4551 90.9082q18.1816 28.1826 39.0908 8.18262l274.545 -190.909q7.27344 -2.72754 11.8184 -2.72754q4.5459 0 6.81836 4.09082t2.27246 12.2725l-25.4541 332.728q0 31.8184 25.4541 31.8184h105.455q28.1816 0 28.1816 -31.8184 +l-28.1816 -332.728q-2.72754 -10 4.54492 -14.0908q7.27246 -4.09082 18.1816 0.455078l273.637 190.909q22.7275 20 40 -8.18262l54.5459 -90.9082q14.5449 -24.5459 -10.9092 -39.0918l-310 -142.727q-30 -14.5459 0 -26.3643l307.272 -140 +q28.1816 -14.5449 13.6367 -39.0908l-54.5459 -94.5449q-13.6367 -28.1816 -40 -10.9092l-273.637 197.272q-9.09082 2.72754 -13.1816 2.72754q-4.09082 0 -6.81836 -4.09082q-2.72656 -4.09082 -2.72656 -12.2734l28.1816 -332.727q0 -31.8184 -28.1816 -31.8184h-105.455 +q-25.4541 0 -25.4541 31.8184z" /> - +d="M1002.21 401.354h-321.425v-323.989q0 -33.3389 -23.5078 -55.5654q-23.5088 -22.2266 -56.4209 -22.2266q-32.9111 0 -56.4199 22.2266q-23.5088 22.2266 -23.5088 55.5654v323.989h-323.989q-29.9199 0 -53.4277 23.0811q-23.5088 23.0811 -23.5088 56.4199 +q0 33.3398 23.5088 55.1387q23.5078 21.7988 53.4277 21.7988h323.989v324.844q0 32.4844 23.5088 55.1377q23.5088 22.6543 56.4199 22.6543q32.9121 0 56.4209 -22.6543q23.5078 -22.6533 23.5078 -55.1377v-324.844h321.425q33.3398 0 55.5654 -21.7988 +q22.2266 -21.7988 22.2266 -55.1387q0 -33.3389 -22.2266 -56.4199q-22.2256 -23.0811 -55.5654 -23.0811z" /> +d="M796.363 960h218.183q8.72656 0 10.9082 -4.36328q2.18262 -4.36426 -4.7998 -11.3457l-317.673 -317.673q-5.23633 -5.23633 -9.59961 -15.709h233.891q8.72754 0 11.3457 -5.23633q2.61816 -5.23633 -2.61816 -12.2188l-104.728 -139.636 +q-5.23633 -6.98242 -15.709 -12.2188t-19.2002 -5.23633h-109.091v-87.2725h240q8.72754 0 11.3457 -5.23633q2.61816 -5.23633 -2.61816 -12.2178l-104.728 -139.637q-5.23633 -6.98145 -15.709 -12.2178q-10.4727 -5.2373 -19.2002 -5.2373h-109.091v-151.854 +q0 -9.59961 -6.54492 -16.1455q-6.5459 -6.54492 -16.1455 -6.54492h-129.164q-9.59961 0 -16.1455 6.54492q-6.54492 6.5459 -6.54492 16.1455v151.854h-240q-8.72754 0 -11.3457 5.2373q-2.61816 5.23633 2.61816 12.2178l104.728 139.637q5.23633 6.98145 15.709 12.2178 +q10.4727 5.23633 19.2002 5.23633h109.091v87.2725h-240q-8.72754 0 -11.3457 5.23633q-2.61816 5.23633 2.61816 12.2188l104.728 139.636q5.23633 6.98242 15.709 12.2188q10.4727 5.23633 19.2002 5.23633h102.981q-4.36328 10.4727 -9.59961 15.709l-317.673 317.673 +q-6.98242 6.98145 -4.7998 11.3457q2.18164 4.36328 10.9082 4.36328h218.183q21.8174 0 37.5273 -15.709l143.127 -143.127q6.98145 -6.98242 15.709 -6.98242t15.709 6.98242l143.127 143.127q15.71 15.709 37.5273 15.709z" /> +d="M690.126 960q194.735 0 284.861 -152.087q48.2822 -83.6885 53.1104 -168.182h-145.65q0 36.2119 -14.082 66.3877t-35.0039 49.4883t-46.6719 32.5908q-25.751 13.2773 -48.6846 19.3125t-41.4414 6.03516q-15.2891 0 -32.5898 -4.42578 +q-17.3018 -4.42578 -39.833 -16.4961q-22.5312 -12.0713 -42.6484 -30.5791t-39.4297 -50.293q-19.3135 -31.7852 -31.3838 -72.0205h304.979l-80.4697 -80.4688h-241.408q-4.82812 -40.2354 -4.82812 -80.4697h326.706l-80.4697 -80.4697h-241.408 +q7.24219 -59.5469 26.5547 -106.22q19.3125 -46.6719 42.2471 -73.2266q22.9336 -26.5547 49.4883 -43.8564q26.5547 -17.3008 47.4766 -23.3359q20.9229 -6.03516 37.8213 -6.03516q17.7031 0 40.6367 6.03516t48.6846 19.7148q25.75 13.6797 46.6719 32.9932 +q20.9219 19.3125 35.0039 49.0859t14.082 64.376h140.018q-24.1416 -137.604 -103.001 -223.705q-86.1025 -94.1494 -220.486 -94.1494q-165.768 0 -260.721 127.142q-28.9697 38.625 -55.5244 107.024q-26.5547 68.3984 -36.2109 164.157h-174.619l80.4697 80.4697h90.126 +q0.804688 37.8203 4.82812 80.4697h-175.424l80.4697 80.4688h107.829q16.0938 70.0088 41.0391 123.521q24.9463 53.5127 49.8916 83.2861q94.1494 113.462 238.994 113.462z" /> +d="M453.6 960h280q53.6006 0 96 -10.4004q42.4004 -10.3994 68.8008 -24.7998q26.3994 -14.3994 45.5996 -39.5996q19.2002 -25.2002 28 -45.2002t13.5996 -51.5996q4.80078 -31.6006 5.2002 -48.4004q0.400391 -16.7998 0.400391 -45.5996v-13.2002v-13.2002 +q0 -28.7998 -0.400391 -45.5996q-0.399414 -16.8008 -5.2002 -48.8008q-4.7998 -32 -13.5996 -52t-28 -45.5996t-45.5996 -40.4004q-26.4004 -14.7998 -68.8008 -25.1992q-42.3994 -10.4004 -96 -10.4004h-142.399l-1.60059 -80h230.4q8 0 10.4004 -4.7998 +q2.39941 -4.7998 -2.40039 -11.2002l-96 -128q-4.7998 -6.40039 -14.4004 -11.2002q-9.59961 -4.7998 -17.5996 -4.7998h-110.4v-140q0 -8.7998 -4.39941 -14.4004q-4.40039 -5.59961 -12.4004 -5.59961h-119.2q-8 0 -14 6t-6 14v140h-213.6q-8 0 -10.4004 4.7998 +q-2.39941 4.7998 2.40039 11.2002l96 128q4.7998 6.40039 14.4004 11.2002q9.59961 4.7998 17.5996 4.7998h93.5996v80h-213.6q-8 0 -10.4004 4.7998q-2.39941 4.7998 2.40039 11.2002l96 128q4.7998 6.40039 14.4004 11.2002q9.59961 4.7998 17.5996 4.7998h93.5996v380 +q0 8 6 14t14 6zM591.2 800v-240h162.399q51.2002 0 69.2002 26.4004q18 26.3994 18 95.1992q0 67.2002 -18 92.8008q-18 25.5996 -69.2002 25.5996h-162.399z" /> +d="M197.838 558.271h803.459q31.1357 0 54.9189 -22.4863q23.7842 -22.4873 23.7842 -55.7842t-23.7842 -55.7842q-23.7832 -22.4863 -54.9189 -22.4863h-803.459q-32.8652 0 -55.3516 22.4863q-22.4863 22.4873 -22.4863 55.7842t22.4863 55.7842 +q22.4863 22.4863 55.3516 22.4863z" /> +d="M915.589 893.434q-7.21777 -110.677 -60.5518 -229.373q-53.333 -118.697 -133.533 -178.046q80.2002 -64.1602 133.533 -185.263q53.334 -121.103 60.5518 -230.176h80.2002v-70.5762h-791.578v70.5762h82.6064q6.41602 109.073 59.749 230.176t131.93 185.263 +q-78.5967 59.3486 -131.93 178.046q-53.333 118.696 -59.749 229.373h-82.6064v66.5664h791.578v-66.5664h-80.2002zM506.566 696.141l93.835 -167.619l94.6357 167.619h-188.471zM600.401 416.24l-175.64 -271.879h352.883z" /> +d="M1072.36 412.032q24.8301 -93.8896 -31.0381 -174.588q-39.5732 -55.8682 -112.513 -69.835h-25.6055h-297.964q-300.291 -2.32812 -300.291 0q-117.168 0 -166.828 103.977q-26.3818 55.0928 -14.3555 114.84q12.0273 59.748 55.4805 99.3213 +q28.71 26.3818 82.25 39.5732l10.8633 3.87988q-17.0703 89.2334 47.333 136.566q34.1416 20.9502 76.8184 22.5029q42.6777 1.55176 86.9062 -30.2627q22.502 41.126 36.4697 59.748q52.7637 62.0762 141.222 74.4912q238.216 17.0703 276.237 -188.555 +q4.65527 -27.9346 0 -58.1963q-6.20801 -5.43164 3.10352 -5.43164q104.753 -31.8135 131.911 -128.031z" /> +d="M751.2 866.421l-108.8 -149.6l373.6 -596.8h24q16 0 28 -14.7998q12 -14.8008 12 -31.6006v-33.5996h-960v33.5996q0 16.7998 12 31.6006q12 14.7998 28 14.7998h24l374.4 596.8l-108 146.4q-8 12.7998 -4.40039 27.1992q3.59961 14.4004 16.4004 22.4004 +q12.7998 8 27.1992 4.40039q14.4004 -3.60059 22.4004 -16.4004l88.7998 -118.4l89.6006 120q7.19922 12.8008 21.5996 16.4004q14.4004 3.59961 27.2002 -4q12.7998 -7.59961 16.3994 -21.5996q3.60059 -14 -4.39941 -26.8008zM600 120.021h301.6l-145.6 89.5996 +l-156 427.2v-516.8z" /> +d="M798.295 416.263q-1.57324 -19.6729 14.1641 -40.9189l206.164 -203.016h-435.147h-298.229h-103.082l204.59 199.082q28.3281 28.3271 8.65625 58.2295q-11.0166 16.5244 -32.6562 18.8848q-21.6396 2.36035 -36.5898 -11.0166l-206.164 -201.442v287.213v99.1475 +v106.229l448.524 -371.409q24.3936 -26.7539 59.8037 -3.93457l451.672 368.262v-482.36l-203.804 198.295q-20.459 19.6729 -46.4258 13.377q-23.6064 -6.29492 -31.4756 -34.6221zM596.853 446.164l-410.754 341.508h138.491h694.033z" /> +d="M1080 740.366l-516.739 -514.343l-443.261 -226.023l232.413 452.047l507.953 507.953zM536.905 298.702q-3.99316 9.58398 -9.9834 18.7686t-14.376 15.9736q-8.38574 6.78809 -19.5674 10.7822q-11.1816 3.99316 -26.3564 2.39551q2.39648 15.9736 -0.798828 27.5547 +q-3.19434 11.5801 -9.9834 20.3652q-6.78809 8.78613 -15.9727 14.376q-9.18457 5.59082 -18.7686 9.58398l-12.7793 -13.5771l-94.2432 -185.291q5.59082 -3.99316 15.1748 -11.9795q7.18848 -7.18848 10.3828 -14.377l186.09 95.042zM936.239 815.44l-58.3027 56.7061 +l-416.905 -416.905q16.7725 -5.59082 27.9541 -14.7754q11.1807 -9.18457 17.5703 -18.7686q7.98633 -11.1816 11.9805 -23.1611z" /> +d="M680 520v-440h200q16.7998 0 28.4004 -11.5996q11.5996 -11.6006 11.5996 -28.4004v-40h-640v40q0 16.7998 11.5996 28.4004q11.6006 11.5996 28.4004 11.5996h200v440l-400 440h960z" /> +d="M449.406 822.227l521.195 131.713q31.5146 12.1211 50.9072 0q19.3936 -12.1211 19.3936 -39.5947v-671.494q0 -44.4424 -33.5342 -77.1689q-33.5342 -32.7266 -90.0977 -51.3115q-63.8369 -20.2012 -118.784 -3.63574q-54.9482 16.5645 -69.4932 60.6035 +q-14.5449 44.0391 20.6055 90.0986q35.1504 46.0586 98.9863 66.2598q58.1807 19.3936 111.512 6.46484v420.997l-484.833 -125.249v-489.682q0 -33.9375 -35.5547 -72.7246q-35.5537 -38.7871 -88.0771 -55.7559q-63.8369 -21.0098 -118.784 -4.44434 +q-54.9482 16.5654 -69.4932 61.0078q-14.5449 44.4434 20.6055 90.0986q35.1504 45.6553 98.9863 66.6641q58.1807 19.3936 111.512 5.65723v516.347q0 30.7061 11.7168 47.6758q11.7168 16.9688 43.2314 27.4736z" /> +d="M460.363 280.066q-69.8174 0 -131.306 24.9912q-61.4873 24.9922 -108.297 74.1816q-49.9844 49.9844 -75.3721 112.661q-25.3887 62.6777 -25.3887 128.133q0 65.4541 25.3887 127.339q25.3877 61.8838 75.3721 111.074q46.8096 49.1904 108.297 75.7686 +q61.4883 26.5781 131.306 26.5781q67.4385 0 128.926 -26.5781t110.678 -75.7686q49.9834 -49.1904 74.9756 -111.074q24.9912 -61.8848 24.9912 -127.339q0 -65.4551 -24.9912 -128.133q-24.9922 -62.6768 -74.9756 -112.661q-49.1904 -49.1895 -110.678 -74.1816 +q-61.4873 -24.9912 -128.926 -24.9912zM460.363 868.761q-52.3633 0 -96.793 -19.4385q-44.4297 -19.4375 -77.752 -55.9336q-37.2891 -35.7031 -55.9346 -81.3223q-18.6445 -45.6201 -18.6445 -93.2236q0 -47.6035 18.6445 -93.2227q18.6455 -45.6201 55.9346 -81.3223 +q33.3223 -35.7031 77.752 -53.5537q44.4297 -17.8516 96.793 -17.8516q49.1904 0 94.0166 17.8516q44.8271 17.8506 80.5293 53.5537q35.7021 35.7021 53.5537 81.3223q17.8516 45.6191 17.8516 93.2227q0 47.6035 -17.8516 93.2236q-17.8516 45.6191 -53.5537 81.3223 +q-35.7021 36.4961 -80.5293 55.9336q-44.8262 19.4385 -94.0166 19.4385zM1080 109.487l-110.281 -110.28l-231.669 233.256l-31.7354 75.3721l65.8506 65.0576l75.3721 -31.7354z" /> +d="M600.494 24.4502q-322.746 232.033 -450.698 487.938q-53.4727 111.72 -10.9814 234.897q42.4922 123.179 158.986 169.013q57.292 23.8711 104.559 18.1426q47.2656 -5.72949 79.7314 -19.5752q32.4648 -13.8457 63.499 -41.5371q31.0332 -27.6904 40.1045 -39.1494 +q9.07129 -11.458 14.7998 -16.2324l35.3301 41.0596q39.1504 42.0137 107.423 64.4531q68.2734 22.4395 158.031 -9.07129q118.404 -43.9238 160.418 -167.103q42.0146 -123.178 -12.4131 -234.897q-121.269 -253.041 -448.789 -487.938z" /> +d="M745.078 637.928l334.922 -53.8867l-242.072 -232.953l57.2021 -327.461l-295.959 158.342l-295.13 -155.025l58.8604 328.29l-242.901 232.953l334.922 49.7412l147.565 298.445z" /> +d="M508.192 609.956l-15.9307 -29.3447l-31.8604 -3.35352l-207.092 -31.0225l150.079 -147.562l20.9609 -24.3145l-5.03125 -30.1836l-36.0518 -209.607l189.484 97.2578l25.9912 16.7686l29.3447 -16.7686l188.646 -97.2578l-34.375 209.607l-7.5459 30.1836 +l23.4756 24.3145l150.917 147.562l-208.769 31.0225l-31.0215 3.35352l-16.7686 27.668l-93.9043 192zM747.982 635.109l332.018 -46.1143l-239.79 -235.598l55.3359 -330.341l-296.804 156.786l-295.965 -156.786l57.0127 331.179l-239.79 234.76l333.694 50.3057 +l145.048 297.643z" /> +d="M824.16 736.24q0 -95.4385 -68.1699 -178.445q-68.1709 -83.0078 -155.99 -83.0078t-155.589 83.0078q-67.7695 83.0068 -67.7695 178.445q0 92.2305 66.5664 157.995q66.5664 65.7646 157.193 65.7646q90.626 0 157.192 -65.7646q66.5664 -65.7646 66.5664 -157.995z +M149.674 -0q0 116.291 127.52 222.557q127.519 106.266 322.405 106.266q194.888 0 322.808 -106.266q127.92 -106.266 127.92 -222.557h-900.652z" /> +d="M140 920h920q8 0 14 -6t6 -14v-840q0 -8 -6 -14t-14 -6h-920q-8 0 -14 6t-6 14v840q0 8 6 14t14 6zM200 840v-80h80v80h-80zM820 840h-440q-8 0 -14 -6t-6 -14v-280q0 -8 6 -14t14 -6h440q8 0 14 6t6 14v280q0 8 -6 14t-14 6zM920 840v-80h80v80h-80zM200 680v-80h80v80 +h-80zM920 680v-80h80v80h-80zM200 520v-80h80v80h-80zM920 520v-80h80v80h-80zM820 440h-440q-8 0 -14 -6t-6 -14v-280q0 -8 6 -14t14 -6h440q8 0 14 6t6 14v280q0 8 -6 14t-14 6zM200 360v-80h80v80h-80zM920 360v-80h80v80h-80zM200 200v-80h80v80h-80zM920 200v-80h80v80 +h-80z" /> +d="M120 955.213h444.751v-440.398h-444.751v440.398zM636.12 955.213h443.88v-440.398h-443.88v440.398zM120 446.927h444.751v-442.14h-444.751v442.14zM636.12 446.927h443.88v-442.14h-443.88v442.14z" /> +d="M120 941.734h442.619v-251.469h-442.619v251.469zM637.381 941.734h442.619v-251.469h-442.619v251.469zM120 605.31h442.619v-251.469h-442.619v251.469zM637.381 605.31h442.619v-251.469h-442.619v251.469zM120 266.336h442.619v-248.07h-442.619v248.07z +M637.381 266.336h442.619v-248.07h-442.619v248.07z" /> +d="M120 915.229h98.1523v-96.4307h-98.1523v96.4307zM368.825 915.229h711.175v-96.4307h-711.175v96.4307zM120 658.654h98.1523v-98.1523h-98.1523v98.1523zM368.825 658.654h711.175v-98.1523h-711.175v98.1523zM120 400.358h98.1523v-98.1523h-98.1523v98.1523z +M368.825 400.358h711.175v-98.1523h-711.175v98.1523zM120 141.202h98.1523v-96.4307h-98.1523v96.4307zM368.825 141.202h711.175v-96.4307h-711.175v96.4307z" /> +d="M567.427 39.0498l-417.898 403.604q-27.748 26.0664 -29.4297 66.0068q-1.68164 39.9395 25.2256 69.3691q29.4297 31.9521 69.3691 31.9521q39.9404 0 71.8926 -29.4297l248.89 -239.641l365.767 536.458q22.7021 35.3154 64.3242 42.042 +q41.6211 6.72656 73.5732 -15.9756q31.9521 -22.7031 39.0996 -61.8018q7.14746 -39.0996 -14.7148 -74.415z" /> +d="M1045.17 212.188q66.3242 -62.6904 6.36035 -138.1q-75.4102 -73.5918 -143.551 -4.54297l-307.997 279.833l-307.089 -287.101q-29.9814 -19.0801 -69.958 -19.0801q-39.9756 0 -73.5918 30.8906q-60.873 75.4092 4.54199 138.1l298.004 268.021l-298.004 268.021 +q-65.415 62.6895 -4.54199 137.19q73.5918 73.5918 143.55 6.35938l307.089 -279.832l307.997 287.101q29.0732 19.9883 68.1406 19.9883q39.0674 0 75.4102 -33.6162q59.9639 -74.501 -6.36035 -137.19l-297.095 -268.021z" /> +d="M460.594 283.564q-69.7031 0 -131.089 25.3467q-61.3857 25.3467 -108.119 73.6631q-49.9004 48.3164 -75.2471 110.495q-25.3467 62.1777 -25.3467 127.524t25.3467 128.317q25.3467 62.9697 75.2471 112.871q46.7334 48.3164 108.119 73.2676 +q61.3857 24.9502 131.089 24.9502q67.3271 0 128.713 -24.9502q61.3867 -24.9512 110.495 -73.2676q49.9014 -49.9014 74.8516 -112.871q24.9502 -62.9707 24.9502 -128.317t-24.9502 -127.524q-24.9502 -62.1787 -74.8516 -110.495q-49.1084 -48.3164 -110.495 -73.6631 +q-61.3857 -25.3467 -128.713 -25.3467zM460.594 868.119q-52.2773 0 -96.6338 -17.8223q-44.3564 -17.8213 -77.623 -54.2578q-37.2275 -35.6436 -55.8418 -81.1875q-18.6143 -45.5449 -18.6143 -93.0693q0 -47.5244 18.6143 -92.6738q18.6143 -45.1484 55.8418 -80.792 +q33.2666 -36.4355 77.623 -54.2568q44.3564 -17.8223 96.6338 -17.8223q49.1094 0 93.8613 17.8223q44.7529 17.8213 80.3965 54.2568q35.6436 35.6436 53.4648 80.792q17.8223 45.1494 17.8223 92.6738q0 47.5244 -17.8223 93.0693q-17.8213 45.5439 -53.4648 81.1875 +q-35.6436 36.4365 -80.3965 54.2578q-44.752 17.8223 -93.8613 17.8223zM1079.21 110.099l-110.099 -110.099l-231.288 235.247l-31.6826 75.248l65.7422 62.5742l75.248 -27.7227zM600.792 598.02h-270.099q-11.0898 0 -17.4258 6.73242q-6.33691 6.7334 -6.33691 17.0303 +q0 11.0889 6.33691 17.4258q6.33594 6.33691 17.4258 6.33691h270.099q10.2969 0 17.0293 -6.33691q6.7334 -6.33691 6.7334 -17.4258q0 -10.2969 -6.7334 -17.0303q-6.73242 -6.73242 -17.0293 -6.73242zM463.763 464.95q-10.2969 0 -17.0303 6.33691 +q-6.73242 6.33691 -6.73242 14.2578v273.267q0 7.9209 6.73242 13.8613q6.7334 5.94141 17.0303 5.94141t17.4258 -5.94141q7.12793 -5.94043 7.12793 -13.8613v-273.267q0 -7.9209 -7.12793 -14.2578q-7.12891 -6.33691 -17.4258 -6.33691z" /> +d="M460.594 280.396q-69.7031 0 -131.089 24.9512q-61.3857 24.9502 -108.119 74.0596q-49.9004 49.9004 -75.2471 112.475t-25.3467 127.921q0 65.3467 25.3467 127.129q25.3467 61.7822 75.2471 110.891q46.7334 49.1094 108.119 75.6436q61.3857 26.5352 131.089 26.5352 +q67.3271 0 128.713 -26.5352q61.3867 -26.5342 110.495 -75.6436q49.9014 -49.1084 74.8516 -110.891q24.9502 -61.7822 24.9502 -127.129q0 -65.3467 -24.9502 -127.921q-24.9502 -62.5742 -74.8516 -112.475q-49.1084 -49.1094 -110.495 -74.0596 +q-61.3857 -24.9512 -128.713 -24.9512zM460.594 868.119q-52.2773 0 -96.6338 -19.4062q-44.3564 -19.4062 -77.623 -55.8418q-37.2275 -35.6436 -55.8418 -81.1875q-18.6143 -45.5449 -18.6143 -93.0693q0 -47.5254 18.6143 -93.0693q18.6143 -45.5449 55.8418 -81.1885 +q33.2666 -35.6436 77.623 -53.4658q44.3564 -17.8213 96.6338 -17.8213q49.1094 0 93.8613 17.8213q44.7529 17.8223 80.3965 53.4658q35.6436 35.6436 53.4648 81.1885q17.8223 45.5439 17.8223 93.0693q0 47.5244 -17.8223 93.0693q-17.8213 45.5439 -53.4648 81.1875 +q-35.6436 36.4355 -80.3965 55.8418q-44.752 19.4062 -93.8613 19.4062zM1079.21 110.099l-110.099 -110.099l-231.288 232.871l-31.6826 75.248l65.7422 64.9502l75.248 -31.6836zM600.792 594.852h-270.099q-11.0898 0 -17.4258 6.73242 +q-6.33691 6.73242 -6.33691 17.0303q0 11.0889 6.33691 17.4248q6.33594 6.33691 17.4258 6.33691h270.099q10.2969 0 17.0293 -6.33691q6.7334 -6.33594 6.7334 -17.4248q0 -10.2979 -6.7334 -17.0303q-6.73242 -6.73242 -17.0293 -6.73242z" /> +d="M145.047 454.953q0 123.182 62.002 229.939q62.002 106.759 167.938 164.243l48.4512 -89.5117q-82.9424 -46.8096 -130.573 -128.932q-47.6299 -82.1211 -47.6299 -175.739q0 -150.282 104.294 -252.935q104.295 -102.651 251.292 -102.651q146.997 0 251.292 102.651 +q104.294 102.652 104.294 252.935q0 93.6182 -47.6309 175.739q-47.6299 82.1221 -129.752 128.932l48.4521 89.5117q104.294 -57.4844 165.886 -164.243q61.5908 -106.758 61.5908 -229.939q0 -188.88 -134.269 -321.916q-134.269 -133.037 -320.685 -133.037 +t-320.685 133.037q-134.269 133.036 -134.269 321.916zM549.085 571.565v337.52q0 21.3516 15.6025 36.1328q15.6035 14.7822 36.5439 14.7822q20.9414 0 36.5439 -14.7822q15.6035 -14.7812 15.6035 -36.1328v-337.52q0 -22.1729 -15.6035 -35.3125 +q-15.6025 -13.1396 -36.5439 -13.1396q-20.9404 0 -36.5439 13.1396q-15.6025 13.1396 -15.6025 35.3125z" /> +d="M526.661 41.2012q0 -41.2012 -39.5537 -41.2012h-50.2666q-37.9053 0 -37.9053 41.2012v302.421q0 43.6738 37.9053 43.6738h50.2666q39.5537 0 39.5537 -43.6738v-302.421zM251.434 41.2012q0 -41.2012 -42.0254 -41.2012h-46.9707q-16.4805 0 -29.2529 13.1846 +q-12.7725 13.1846 -12.7725 28.0166v200.241q0 17.3047 12.7725 29.2529q12.7725 11.9482 29.2529 11.9482h46.9707q42.0254 0 42.0254 -41.2012v-200.241zM803.536 41.2012q0 -41.2012 -39.5537 -41.2012h-51.0898q-37.0811 0 -37.0811 41.2012v514.198 +q0 40.377 37.0811 40.377h51.0898q39.5537 0 39.5537 -40.377v-514.198zM947.742 917.975q0 42.0254 43.6738 42.0254h46.9707q16.4805 0 28.8408 -13.1846q12.3604 -13.1846 12.3604 -28.8408v-876.773q0 -14.832 -12.3604 -28.0166t-28.8408 -13.1846h-46.9707 +q-43.6738 0 -43.6738 41.2012v876.773z" /> +d="M1074.62 532.597q8.2832 -51.3545 0 -106.851q0 -26.5059 -27.334 -26.5059l-4.96973 3.31348q-70.4053 0 -98.5684 -67.0918q-26.5049 -67.9209 28.1631 -118.447q18.2227 -16.5664 3.3125 -35.6172q-35.6162 -41.415 -77.8604 -78.6885 +q-19.0508 -16.5654 -35.6162 4.96973q-53.0117 53.8398 -119.689 25.6777q-66.6787 -28.1621 -66.6787 -101.881q0 -24.8496 -23.1924 -24.8496q-37.2734 -6.62598 -52.1826 -6.62598q-15.7373 0 -55.4961 6.62598q-24.0205 0 -24.0205 28.1631 +q5.79785 72.8896 -63.7793 101.881q-72.8906 29.8184 -120.104 -28.9912q-16.5664 -14.9092 -36.4453 -2.48438q-43.8994 43.0713 -74.5469 78.6885q-16.5664 21.5361 3.31348 35.6172q52.1826 51.3545 24.0205 119.274q-28.9902 70.4062 -95.2549 63.7793 +q-32.3037 0 -32.3037 24.8496q-8.2832 53.8389 0 109.335q0 24.0205 28.1621 24.0205q75.376 0 102.71 65.4365q28.9902 67.9199 -24.0215 119.275q-23.1924 14.9092 -6.62598 35.6162q50.5264 55.4961 77.8604 77.8604q19.8789 15.7383 36.4453 -6.62598 +q52.1826 -51.3545 119.274 -23.6064q67.0928 27.748 67.0928 101.467q0 25.6768 21.5361 25.6768q52.1826 8.2832 107.679 0q24.8486 0 24.8486 -28.1621q-4.96973 -75.375 64.6074 -103.537q72.8906 -29.8193 119.275 28.1621q17.3945 15.7373 35.6172 4.1416 +q43.8994 -43.0723 75.375 -78.6885q16.5664 -23.1934 -3.3125 -35.6172q-52.1836 -51.3545 -24.8496 -119.275q23.1924 -63.7793 98.5684 -63.7793q28.9902 0 28.9902 -26.5059zM600 319.724q66.2637 0 114.306 46.7988q48.041 46.7998 48.041 114.72 +q0 63.7793 -48.041 110.578q-48.042 46.7988 -114.306 46.7988q-63.7793 0 -110.578 -46.7988t-46.7988 -110.578q0 -67.9199 46.7988 -114.72q46.7988 -46.7988 110.578 -46.7988z" /> +d="M927.346 835.793q35.2588 0 35.2588 -35.6592q0 -35.6602 -35.2588 -35.6602h-656.294q-33.6562 0 -33.6562 35.6602q0 35.6592 33.6562 35.6592h96.9619v35.2588q0 36.8613 20.834 62.9043q20.835 26.0439 48.8818 26.0439h322.938q31.252 0 51.6855 -26.0439 +q20.4346 -26.043 20.4346 -62.9043v-35.2588h94.5576zM402.471 835.793h395.059v35.2588q0 52.8877 -36.8613 52.8877h-322.938q-35.2588 0 -35.2588 -52.8877v-35.2588zM910.518 673.122l-90.5508 -673.122h-443.139l-88.9482 673.122h622.638zM473.79 48.8818 +q26.4434 5.60938 26.4434 33.6553l-55.292 516.061q-7.21191 32.8545 -33.6562 28.0469q-25.6426 0 -25.6426 -30.4512l56.8945 -521.669q0 -25.6426 26.4443 -25.6426h4.80859zM629.249 598.598q0 28.0469 -29.6494 28.0469t-29.6494 -28.0469v-520.066 +q0 -29.6494 29.6494 -29.6494t29.6494 29.6494v520.066zM812.755 596.193q0 30.4512 -24.04 30.4512q-28.0469 4.80762 -32.0537 -28.0469l-56.0938 -516.061q0 -28.0459 25.6426 -33.6553h1.60352q30.4502 0 30.4502 25.6426z" /> +d="M1012.11 -0h-284.326v444.06h-256.373v-444.06h-283.527v596.605l411.314 363.395l412.912 -363.395v-596.605z" /> +d="M941.983 716.287q8.73535 -8.73438 8.73535 -20.9639v-590.501q0 -38.4346 -23.1484 -66.3877q-23.1484 -27.9521 -60.71 -35.8145q-5.24023 -1.74707 -10.9189 -2.18359q-5.67773 -0.436523 -11.792 -0.436523h-488.299q-42.8027 0 -71.1914 25.332 +q-28.3896 25.332 -35.3779 67.2607v11.3564v377.361v375.614q0 36.6875 23.585 65.5137q23.585 28.8262 59.3994 35.8145q6.11426 1.74707 11.793 1.74707h12.666h325.823q9.6084 0 19.2178 -6.98828q60.2725 -60.2725 120.108 -118.799q59.8369 -58.5264 120.109 -117.926z +M909.663 687.461q2.62109 0 7.8623 -0.436523q5.24121 -0.436523 6.9873 -0.436523l-242.839 237.598v-20.0908v-115.305q0 -20.0908 7.8623 -38.4355q7.86133 -18.3438 21.4014 -32.3203q13.5391 -13.9756 31.4463 -22.2744q17.9072 -8.29883 38.8721 -8.29883 +q32.3203 -0.873047 64.2041 -0.436523q31.8828 0.436523 64.2031 0.436523z" /> +d="M325.833 753.753q-114.306 -114.306 -114.306 -273.753q0 -159.448 115.548 -273.753q115.548 -114.306 274.167 -114.306q158.62 0 273.339 114.306q114.72 114.305 114.72 273.753q0 159.447 -114.72 273.339q-114.719 113.892 -273.339 113.892 +q-158.619 0 -275.409 -113.478zM936.29 815.048q143.296 -138.326 143.296 -335.048t-141.226 -338.36q-141.225 -141.64 -337.946 -141.64t-338.36 141.64q-141.64 141.639 -141.64 338.36t141.64 338.36q141.639 141.64 338.36 141.64t335.876 -144.952zM842.692 550.819 +q12.4238 -37.2734 -24.0215 -48.8691l-205.418 -71.2344h-4.1416q-6.62598 -4.1416 -15.7373 -4.1416q-33.9609 0 -33.9609 33.9609v327.179q0 34.7881 34.7891 34.7881q34.7881 0 34.7881 -34.7881v-274.996l168.146 56.3242q32.3037 10.7686 45.5566 -18.2227z" /> +d="M565.033 92.8916h-445.033l92.5391 774.217h352.494v-134.923h70.6396v134.923h355.32l89.0068 -774.217h-444.327v191.435h-70.6396v-191.435zM565.033 412.186h70.6396v182.958h-70.6396v-182.958z" /> +d="M520 960h160q16.7998 0 28.4004 -11.5996q11.5996 -11.6006 11.5996 -28.4004v-360h152.8q16 0 20.4004 -9.2002q4.39941 -9.2002 -6 -22l-261.601 -320q-10.3994 -12.7998 -25.5996 -12.7998t-25.5996 12.7998l-261.601 320q-10.3994 12.7998 -6 22 +q4.40039 9.2002 20.4004 9.2002h152.8v360q0 16.7998 11.5996 28.4004q11.6006 11.5996 28.4004 11.5996zM980 320h40q8 0 14 -6t6 -14v-280q0 -8 -6 -14t-14 -6h-840q-8 0 -14 6t-6 14v280q0 8 6 14t14 6h40q8 0 14 -6t6 -14v-140h720v140q0 8 6 14t14 6z" /> +d="M600.41 235.688l-195.448 214.337q-10.6758 13.1396 -10.6758 33.6699q0 21.3516 15.6025 36.1338q33.6699 31.2061 63.2334 -6.57031l72.2676 -76.373v216.801h101.009v-228.297l80.4795 87.8691q32.0273 37.7764 62.4121 6.57031q39.418 -32.0273 4.10645 -69.8037z +M873.054 206.946q115.791 114.148 115.791 273.054t-114.97 273.054q-114.97 114.149 -272.644 114.149q-157.673 0 -272.643 -114.149q-114.971 -114.148 -114.971 -273.054t114.971 -273.054q114.97 -114.149 272.643 -114.149q157.674 0 271.822 114.149z +M258.785 139.606q-138.785 143.713 -138.785 339.982q0 196.271 142.48 337.931q142.481 141.659 337.93 141.659q195.449 0 337.52 -141.659q142.07 -141.66 142.07 -337.931q0 -196.27 -142.07 -337.519q-142.07 -141.249 -337.52 -141.249q-195.448 0 -341.625 138.785z +" /> +d="M599.59 724.312l195.448 -214.337q10.6758 -13.1396 10.6758 -33.6699q0 -21.3516 -15.6025 -36.1338q-33.6699 -31.2061 -63.2334 6.57031l-72.2676 76.3721v-216.8h-101.009v228.297l-80.4795 -87.8691q-32.0273 -37.7764 -62.4121 -6.57031 +q-39.418 32.0273 -4.10645 69.8037zM326.946 753.054q-115.791 -114.148 -115.791 -273.054t114.97 -273.054q114.97 -114.149 272.644 -114.149q157.673 0 272.643 114.149q114.971 114.148 114.971 273.054t-114.971 273.054q-114.97 114.149 -272.643 114.149 +q-157.674 0 -271.822 -114.149zM941.215 820.394q138.785 -143.713 138.785 -339.983q0 -196.27 -142.48 -337.93q-142.481 -141.659 -337.93 -141.659q-195.449 0 -337.52 141.659q-142.07 141.66 -142.07 337.93q0 196.271 142.07 337.52t337.52 141.249 +q195.448 0 341.625 -138.785z" /> +d="M1080 376.996v-269.46h-960v269.46l100.532 475.468h758.936zM822.077 449.511h168.927l-72.5146 330.438h-637.803l-71.6904 -330.438h167.278v-5.76855v-133.493q0 -28.0176 18.541 -45.3223q18.541 -17.3047 44.9102 -17.3047h320.549q28.0176 0 44.9102 17.3047 +q16.8926 17.3047 16.8926 45.3223v133.493v5.76855z" /> +d="M325.833 754.167q-113.333 -115 -113.333 -274.167t115 -272.917q115 -113.75 273.75 -113.75t273.75 113.75q115 113.75 115 272.917t-115 273.75t-273.75 114.583t-275.417 -114.166zM936.667 816.667q143.333 -140.834 143.333 -337.084t-141.667 -337.916 +q-141.666 -141.667 -338.333 -141.667t-338.333 141.667q-141.667 141.666 -141.667 337.916t141.667 338.334q141.666 142.083 338.333 142.083t336.667 -143.333zM505 642.5l281.667 -162.5l-281.667 -163.333v325.833z" /> +d="M595.884 98.7988q128.438 0 230.531 76.9814q102.093 76.9814 136.673 200.48l93.0352 -28.8164q-42.8125 -150.669 -172.075 -246.587q-129.263 -95.918 -288.164 -95.918q-195.952 0 -335.918 138.731q-139.966 138.73 -139.966 335.917q0 197.188 139.966 336.33 +q139.966 139.142 335.918 139.142q234.647 0 379.554 -184.425l13.9961 111.149q5.76367 47.7529 47.7529 41.9893q16.4668 0 33.7568 -19.7598q9.05664 -10.7031 9.05664 -30.4629l-37.0498 -277.462l-270.875 60.9268q-20.583 1.64648 -30.4629 18.1133 +q-9.87988 16.4658 -3.29297 32.9326q8.2334 44.46 53.5156 35.4033l99.623 -23.0537q-116.089 141.613 -295.574 141.613q-157.256 0 -267.993 -112.385q-110.738 -112.384 -110.738 -269.64t110.738 -269.229q110.737 -111.973 267.993 -111.973z" /> +d="M1068.43 900.309q8.2334 -9.05664 8.2334 -29.6396l-33.7568 -275.814l-270.051 60.9258q-19.7598 1.64648 -30.4639 18.1133q-10.7031 16.4668 -4.11621 32.9336q9.05664 43.6357 55.1631 34.5791l97.9756 -23.0527q-116.912 140.789 -293.928 140.789 +q-156.433 0 -267.581 -111.562q-111.149 -111.561 -111.149 -267.17h-93.8594q0 196.775 138.319 334.271q138.318 137.496 334.271 137.496q234.648 0 376.261 -186.072l14.8203 111.973q4.93945 47.7529 48.5762 41.9893q13.9961 0 31.2861 -19.7598zM1072.54 480.411 +q0 -195.951 -139.555 -334.271q-139.554 -138.319 -335.506 -138.319q-231.354 0 -372.968 180.309l-9.87988 -111.148q-6.58594 -45.2832 -53.5156 -37.873q-16.4668 0 -26.3467 17.2891q-15.6436 13.1738 -9.87988 29.6406l32.9326 277.461l270.875 -60.1025 +q42.8135 -13.1738 32.9336 -52.6934q-3.29395 -18.9365 -19.7598 -30.0518q-16.4668 -11.1143 -33.7568 -4.52832l-99.623 23.877q113.619 -138.319 288.988 -138.319q159.726 0 270.052 111.562q110.326 111.561 110.326 267.169h94.6826z" /> +d="M427.407 629.13q0 -15.9072 -11.9307 -28.6328q-11.9307 -12.7256 -29.4287 -12.7256q-38.1768 0 -38.1768 41.3584q0 40.5635 38.1768 40.5635q41.3594 0 41.3594 -40.5635zM386.048 392.908q-38.1768 0 -38.1768 40.9609t38.1768 40.9609q17.498 0 29.4287 -11.9307 +q11.9307 -11.9297 11.9307 -28.6328q0 -16.7021 -11.9307 -29.0303t-29.4287 -12.3281zM427.407 239.403q0 -38.9727 -41.3594 -38.9727q-38.1768 0 -38.1768 38.9727q0 40.5635 38.1768 40.5635q17.498 0 29.4287 -12.3281t11.9307 -28.2354zM967.456 960v-960h-734.912 +v960h734.912zM906.214 59.6523v738.89h-614.019v-738.89h614.019zM490.24 660.149h347.572v-62.834h-347.572v62.834zM490.24 464.49h347.572v-60.4473h-347.572v60.4473zM490.24 272.809h347.572v-63.6289h-347.572v63.6289z" /> +d="M933.162 703.342q24.6787 0 46.0664 -9.04883q21.3887 -9.04883 37.4297 -25.0898q16.041 -16.041 25.501 -37.4297q9.45996 -21.3877 9.45996 -45.2441v-468.895q0 -24.6787 -9.45996 -46.0664q-9.45996 -21.3887 -25.501 -37.4297q-16.041 -16.041 -37.4297 -25.0898 +q-21.3877 -9.04883 -46.0664 -9.04883h-667.97q-23.8555 0 -45.2441 9.04883q-21.3877 9.04883 -37.4287 25.0898t-25.0898 37.4297q-9.04883 21.3877 -9.04883 46.0664v468.895q0 23.8564 9.04883 45.2441q9.04883 21.3887 25.0898 37.4297t37.4287 25.0898 +q21.3887 9.04883 45.2441 9.04883h38.6641v120.103q0 27.9697 9.45996 53.0596t25.501 43.5986q16.041 18.5088 38.252 29.2031q22.2109 10.6943 46.8896 10.6943h351.26q24.6787 0 46.8896 -10.6943q22.21 -10.6943 38.252 -29.2031q16.041 -18.5088 25.501 -43.5986 +t9.45996 -53.0596v-120.103h37.8408zM629.614 384.164q13.9844 8.22656 22.6221 22.2109t8.6377 31.2598q0 26.3242 -17.6865 44.4219t-43.1875 18.0977q-26.3242 0 -44.4219 -18.0977t-18.0977 -44.4219q0 -17.2754 8.6377 -31.2598q8.6377 -13.9844 22.6221 -22.2109 +l-30.4365 -213.059h122.57zM772.751 823.444q0 9.87207 -3.29102 13.1621h-339.743q-1.64453 -1.64551 -2.87891 -4.93555q-1.2334 -3.29004 -1.2334 -8.22656v-120.103h347.146v120.103z" /> +d="M185.454 960h43.6367q8.72754 0 15.2725 -6.5459q6.5459 -6.54492 6.5459 -15.2725v-938.182h-87.2725v938.182q0 8.72754 6.54492 15.2725q6.5459 6.5459 15.2725 6.5459zM1014.55 918.109q3.49023 0 7.85449 -1.74609q13.9629 -5.23633 13.9629 -20.0723v-367.418 +q0 -5.23633 -2.61816 -10.4727q-28.7998 -51.4912 -58.0361 -86.4004t-57.1631 -50.6182q-27.9277 -15.709 -49.3096 -21.3818t-45.8184 -5.67285q-22.6904 0 -50.1816 5.67285t-45.8184 11.7822q-18.3271 6.1084 -52.3633 18.3271q-35.7822 13.0908 -54.9824 19.6357 +q-19.1992 6.5459 -50.1816 13.0908q-30.9814 6.5459 -57.1631 6.5459q-74.1816 0 -139.637 -49.7451q-6.10938 -4.36426 -13.0908 -4.36426q-5.23633 0 -9.59961 2.61816q-12.2188 6.10938 -12.2188 19.2002v382.255q19.2002 48 71.5635 85.9629 +q52.3643 37.9639 103.854 40.582q20.0732 1.74609 37.5273 0.436523q17.4551 -1.30859 37.5273 -6.10938q20.0732 -4.7998 28.3643 -7.41797q8.29004 -2.61816 33.1631 -11.3457q24.873 -8.72656 28.3643 -9.59961q35.7812 -12.2178 55.418 -18.3271 +q19.6357 -6.10938 49.7451 -12.2188q30.1094 -6.1084 55.418 -6.1084q89.8916 0 159.709 75.9268q6.10938 6.98242 15.71 6.98242z" /> +d="M1080 470v-240q0 -8 -6 -14t-14 -6h-40q-8 0 -14 6t-6 14v240q0 101.6 -56.4004 185.2q-56.3994 83.5996 -147.6 129.2q-91.2002 45.5996 -196 45.5996t-196 -45.5996q-91.2002 -45.6006 -147.6 -129.2q-56.4004 -83.6006 -56.4004 -185.2v-240q0 -8 -6 -14t-14 -6h-40 +q-8 0 -14 6t-6 14v240q0 92.7998 39.5996 181.6q39.6006 88.8008 104.801 154q65.1992 65.2002 154 104.801q88.7998 39.5996 181.6 39.5996t181.6 -39.5996q88.8008 -39.6006 154 -104.801q65.2002 -65.1992 104.801 -154q39.5996 -88.7998 39.5996 -181.6zM296 410h128 +q6.40039 0 11.2002 -4.7998q4.7998 -4.7998 4.7998 -11.2002v-368q0 -6.40039 -4.7998 -11.2002q-4.7998 -4.7998 -11.2002 -4.7998h-128q-6.40039 0 -11.2002 4.7998q-4.7998 4.7998 -4.7998 11.2002v368q0 6.40039 4.7998 11.2002q4.7998 4.7998 11.2002 4.7998zM776 410 +h128q6.40039 0 11.2002 -4.7998q4.7998 -4.7998 4.7998 -11.2002v-368q0 -6.40039 -4.7998 -11.2002q-4.7998 -4.7998 -11.2002 -4.7998h-128q-6.40039 0 -11.2002 4.7998q-4.7998 4.7998 -4.7998 11.2002v368q0 6.40039 4.7998 11.2002q4.7998 4.7998 11.2002 4.7998z" /> @@ -193,25 +262,34 @@ d="M1006 934h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM805 830h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" /> +d="M569.379 508.235h-449.379v446.197h449.379v-446.197zM182.038 571.068h324.507v322.121h-324.507v-322.121zM249.644 826.38h190.887v-191.683h-190.887v191.683zM249.644 314.963h190.887v-193.272h-190.887v193.272zM761.061 826.38h191.682v-191.683h-191.682 +v191.683zM569.379 5.56738h-449.379v449.379h449.379v-449.379zM182.038 69.9912h324.507v317.35h-324.507v-317.35zM1080 508.235h-448.583v446.197h448.583v-446.197zM695.046 571.068h321.325v322.121h-321.325v-322.121zM634.599 450.97h110.555v-221.906h-110.555 +v221.906zM634.599 120.1h110.555v-110.556h-110.555v110.556zM745.153 229.063h111.351v-108.964h-111.351v108.964zM745.153 340.414v-111.351h111.351v111.351h-111.351zM963.877 340.414h112.146v-111.351h-112.146v111.351zM963.877 120.1h112.146v-110.556h-112.146 +v110.556zM634.599 450.97v-110.556h110.555v110.556h-110.555zM856.504 450.97h107.373v-110.556h-107.373v110.556z" /> +d="M192.021 17.4844q0 -17.4844 -17.4844 -17.4844h-37.4678q-13.3213 0 -13.3213 17.4844v925.03q0 17.4854 13.3213 17.4854h37.4678q17.4844 0 17.4844 -17.4854v-925.03zM570.858 17.4844q0 -17.4844 -14.9863 -17.4844h-38.3008q-14.9863 0 -14.9863 17.4844v925.03 +q0 17.4854 14.9863 17.4854h38.3008q14.9863 0 14.9863 -17.4854v-925.03zM949.696 17.4844q0 -17.4844 -16.6523 -17.4844h-39.9648q-12.4893 0 -12.4893 17.4844v925.03q0 17.4854 12.4893 17.4854h39.9648q16.6523 0 16.6523 -17.4854v-925.03zM1076.25 17.4844 +q0 -17.4844 -14.1543 -17.4844h-37.4668q-15.8203 0 -15.8203 17.4844v925.03q0 17.4854 15.8203 17.4854h37.4668q14.1543 0 14.1543 -17.4854v-925.03zM840.624 17.4844q0 -17.4844 -14.9863 -17.4844h-97.416q-18.3174 0 -18.3174 17.4844v925.03 +q0 17.4854 18.3174 17.4854h97.416q14.9863 0 14.9863 -17.4854v-925.03zM438.474 17.4844q0 -17.4844 -16.6523 -17.4844h-99.9131q-16.6523 0 -16.6523 17.4844v925.03q0 17.4854 16.6523 17.4854h99.9131q16.6523 0 16.6523 -17.4854v-925.03z" /> +d="M573.401 194.782q0 11.458 -4.0918 25.7803q-4.0918 14.3223 -33.1455 37.2383q-29.0537 22.915 -83.8877 22.915h-324.092v620.358h320.818q54.0146 0 85.1143 -22.916q31.1006 -22.915 35.1924 -40.9209l4.0918 -22.915v-619.54zM629.872 194.782v619.54 +l4.91016 22.915q2.45605 18.0059 33.1465 40.9209q30.6904 22.916 83.8867 22.916h328.185v-620.358h-328.185q-53.1963 0 -83.8867 -22.915q-30.6904 -22.916 -34.374 -37.2383q-3.68262 -14.3223 -3.68262 -25.7803zM659.335 58.9258h-121.125v31.0996 +q0 6.54785 -4.09277 18.0049q-4.0918 11.458 -27.0068 24.5527q-22.916 13.0947 -62.2002 13.0947h-324.91v60.5625h324.91q120.308 0 146.496 -85.9336h14.7314q28.6445 85.9336 145.678 85.9336h328.185v-60.5625h-328.185q-38.4648 0 -61.3809 -13.0947 +q-22.915 -13.0947 -27.0078 -27.0078l-4.0918 -15.5498v-31.0996z" /> +d="M912.517 -0l-312.873 293.63l-312.16 -293.63v960h625.033v-960z" /> +d="M421.404 238.395h299.398v-59.3975h-299.398v59.3975zM421.404 357.19h357.994v-57.793h-357.994v57.793zM1016.99 714.381q24.8828 0 42.1406 -15.6514q17.2568 -15.6523 17.2568 -42.1406v-357.191q0 -26.4883 -15.251 -43.7451q-15.25 -17.2578 -44.1465 -17.2578 +h-117.993v-238.395h-597.191v238.395h-121.204q-24.8828 0 -40.9355 17.2578q-16.0537 17.2568 -16.0537 43.7451v357.191q0 26.4883 17.2568 42.1406q17.2578 15.6514 39.7324 15.6514h836.389zM840.401 58.5957v357.993h-480.803v-357.993h480.803zM1012.98 549.833 +v99.5312h-100.334v-99.5312h100.334zM905.418 757.726h-65.0166v137.258h-480.803v-137.258h-61.0029v202.274h606.822v-202.274z" /> +d="M706.443 546.276q47.3975 -43.3809 47.3975 -107.648q0 -64.2686 -44.9873 -108.452q-44.9873 -44.1846 -108.854 -44.1846t-107.247 44.1846q-43.3809 44.1836 -43.3809 108.452q0 64.2676 44.5859 108.05t106.443 43.7822q61.8584 0 106.042 -44.1836zM1080 799.33 +v-723.815h-960v723.815h705.339v85.1553h129.339v-85.1553h125.322zM381.088 437.824q0 -91.582 65.874 -155.447q65.875 -63.8662 154.645 -63.8662q88.7705 0 153.439 63.8662q64.6699 63.8652 64.6699 155.447q0 89.1719 -64.6699 154.242 +q-64.6689 65.0713 -153.439 65.0713q-88.7695 0 -154.645 -65.0713q-65.874 -65.0703 -65.874 -154.242z" /> +d="M310.443 670.854q0 118.771 84.7783 203.959q84.7783 85.1875 204.369 85.1875q119.59 0 204.777 -85.1875q85.1885 -85.1875 85.1885 -203.959q0 -248.191 -289.966 -670.854q-289.147 422.662 -289.147 670.854zM673.311 561.092q31.9453 28.6689 31.9453 72.082 +t-30.7168 74.5391q-30.7168 31.127 -73.7197 31.127q-43.0039 0 -73.7207 -31.127q-30.7168 -31.126 -30.7168 -74.5391t30.7168 -73.7197q30.7168 -30.3076 73.7207 -30.3076q43.0029 0 72.4912 31.9453z" /> +d="M283.893 694.77q0 64.2227 39.2002 120.104q35.8643 61.7197 110.93 103.423q80.0693 41.7031 174.318 41.7031q90.0781 0 160.973 -35.0303q71.7295 -38.3672 108.428 -94.249q38.3662 -59.2178 38.3662 -124.274q0 -53.3799 -21.6855 -94.248 +q-16.6807 -35.0303 -53.3789 -70.8955q-27.5244 -24.1875 -106.76 -98.418q-25.8555 -24.1885 -32.5283 -35.8652q-18.3496 -18.3486 -21.6855 -26.6895q-8.34082 -19.1836 -8.34082 -23.3535q-5.00391 -9.1748 -9.17383 -43.3711q-18.3496 -67.5586 -77.5674 -67.5586 +q-31.6943 0 -58.3848 22.5195q-17.5146 18.3496 -17.5146 63.3887q0 48.375 15.8467 93.4141q12.5107 32.5283 44.2051 68.3926q40.8691 41.7031 69.2266 68.3926q28.3584 26.6904 60.0527 54.2139q20.8516 12.5107 31.6943 40.0352q9.17383 19.1826 9.17383 50.043 +q0 50.0439 -35.8643 83.4062q-36.6982 34.1963 -95.082 34.1963q-72.5635 0 -103.424 -34.1963q-34.1963 -33.3623 -55.0469 -105.926q-22.5195 -67.5586 -83.4062 -67.5586q-35.0303 0 -58.3838 25.8555q-24.1875 21.6855 -24.1875 52.5459zM592.493 -0 +q-41.7021 0 -67.5586 25.8555q-28.3574 30.0264 -28.3574 68.3926q0 41.7031 28.3574 68.3936q28.3584 29.1914 67.5586 29.1914q35.8652 0 65.0566 -29.6094q29.1924 -29.6084 29.1924 -67.9756q0 -38.3662 -27.5244 -68.3926q-25.8555 -25.8555 -66.7246 -25.8555z" /> @@ -329,9 +410,11 @@ t-408.5 -171t-409 171t-171 408t171 408.5t409 171.5t406 -174z" /> d="M378 1026q222 92 445 0q215 -89 307 -307q93 -222 0 -445q-92 -218 -307 -307q-223 -92 -445 0q-218 89 -306 307q-94 223 0 445q88 218 306 307zM600 940q-179 2 -311.5 -131t-130.5 -312q0 -110 83 -245l606 608q-136 80 -247 80zM969 734l-605 -603q129 -78 236 -78 q181 -2 313.5 131t129.5 313q0 103 -74 237z" /> +d="M723.898 72.0371q-68.4473 -79.7119 -140.36 -4.33203l-463.538 416.751l463.538 416.75q26.8594 27.7256 69.3135 27.7256q50.2529 0 71.0469 -31.1904q76.2461 -74.5127 -4.33203 -141.228l-168.086 -151.625h528.52v-240h-528.52l168.086 -154.224 +q80.5781 -67.5811 4.33203 -138.628z" /> +d="M471.769 887.849q71.9141 79.7109 142.095 5.19824l466.137 -417.617l-466.137 -416.751q-25.9932 -27.7256 -66.7148 -27.7256q-53.7188 0 -75.3799 31.1914q-71.9131 74.5127 6.06543 141.228l167.22 151.624h-525.054v240h525.054l-167.22 154.224 +q-77.9785 66.7148 -6.06543 138.629z" /> +d="M494.124 468.282l95.4141 -94.5771l-157.35 -157.35l-83.6973 -82.8594l-47.707 -32.6416l58.5879 22.5977l156.513 12.5547l-37.6631 -125.545l-358.222 -10.043l10.8809 356.547l126.382 38.501l-13.3916 -156.513l-22.5986 -57.751l32.6416 46.8701l82.8604 82.8594z +M1080 959.581l-10.0439 -357.384l-125.545 -37.6641l12.5547 156.513l21.7617 57.751l-32.6426 -46.8701l-82.0225 -83.6963l-157.35 -157.35l-94.5771 94.5771l157.35 158.187l82.0225 82.8594l47.707 31.8047l-57.75 -22.5977l-156.513 -12.5547l37.6631 126.382z" /> +d="M600.389 818.252q83.8828 0 168.932 -36.5049q85.0488 -36.5039 144.078 -81.9414q59.0283 -45.4365 116.116 -104.077q57.0869 -58.6416 74.9512 -80.7773t28.7383 -35.3398l-68.3496 -86.9902q-67.5732 -80.7764 -200 -165.825q-132.428 -85.0488 -264.466 -85.0488 +q-82.3301 0 -168.544 36.1172q-86.2139 36.1162 -144.854 81.5527q-58.6406 45.4375 -115.729 104.078q-57.0869 58.6406 -74.9512 80.7764q-17.8643 22.1367 -29.5146 35.3398l69.126 86.9902q67.5732 80.7773 199.612 166.214q132.039 85.4365 264.854 85.4365z +M748.738 331.262q61.3584 61.3594 61.3584 148.35t-61.3584 148.738q-61.3594 61.7471 -147.962 61.7471q-86.6016 0 -148.737 -61.7471q-62.1357 -61.748 -62.1357 -148.738t62.1357 -148.35q62.1357 -61.3584 148.737 -61.3584q86.6025 0 147.962 61.3584z +M657.864 479.611q57.4756 0 70.6797 52.8154q10.873 -20.9707 10.873 -52.8154q0 -57.4756 -40.7764 -98.252q-40.7764 -40.7773 -98.252 -40.7773t-98.6416 40.7773q-41.165 40.7764 -41.165 98.252t41.165 98.6406q41.166 41.165 98.6416 41.165h21.7471 +q-34.9512 -26.4072 -34.9512 -66.0186q0 -31.0684 20.9707 -52.4277q20.9707 -21.3594 49.709 -21.3594z" /> +d="M496.311 304.466l-106.407 -107.961l-196.505 -196.505l-73.0098 72.2334l178.641 180.193l708.35 707.573l73.7861 -70.6797l-301.359 -302.136zM932.039 689.709q119.611 -97.0879 201.165 -207.379l-68.3496 -86.9902q-67.5732 -80.7764 -200 -165.825 +q-132.428 -85.0488 -264.466 -85.0488q-82.3301 0 -178.642 37.2822l107.962 107.961q37.2812 -16.3105 70.6797 -16.3105q86.9902 0 148.35 60.9707q61.3584 60.9707 61.3584 147.961q0 34.1748 -16.3105 70.6797zM271.068 273.398q-121.942 96.3105 -204.272 208.932 +l69.126 86.9902q67.5732 83.1064 199.612 167.379q132.039 84.2715 264.854 84.2715q86.9902 0 182.524 -40.3877l-108.738 -104.078q-35.7285 16.3105 -73.7861 16.3105q-86.2139 0 -148.35 -61.7471q-62.1357 -61.748 -62.1357 -148.738q0 -34.9512 16.3105 -73.7861z +M739.417 495.534v-16.3105q0 -57.4756 -40.7764 -97.8643t-98.252 -40.3887h-13.9805zM460.582 461.359v17.8643q0 59.0283 41.165 100.971q41.166 41.9414 98.6416 41.9414q3.10645 0 9.70801 -1.55273q6.60254 -1.55371 8.15527 -1.55371z" /> +d="M516.977 906.977q0 53.0229 51.6279 53.0234h64.1865q48.8364 0 48.8369 -53.0234v-595.813q0 -53.0244 -48.8369 -53.0234h-64.1865q-51.627 0 -51.6279 53.0234v595.813zM666.279 26.5117q-12.5581 -12.5581 -30 -19.5352q-17.4419 -6.97705 -35.582 -6.97656 +q-18.1392 0 -36.2783 6.97656q-18.1406 6.97705 -30.6982 19.5352q-26.5107 26.5107 -26.5117 68.3721q0 41.8608 25.1162 69.7676q13.9541 15.3486 32.0938 23.0234q18.1392 7.67432 36.2783 7.67383q18.1406 0 35.582 -7.67383q17.4419 -7.67578 30 -23.0234 +q26.5107 -26.5122 26.5117 -69.7676q0 -41.8608 -26.5117 -68.3721z" /> @@ -391,10 +481,14 @@ q-58 -40 -104 9l-117 127v-402z" /> d="M474 359h618v-100h-807v100l-175 537h-136v100h349v-100h730h174l-170 -401zM500 93q0 -22 -8.5 -41.5t-23 -34t-34.5 -23t-42 -8.5t-41.5 8.5t-34 23t-23 34t-8.5 41.5t8.5 42t23 34.5t34 23t41.5 8.5t42 -8.5t34.5 -23t23 -34.5t8.5 -42zM1061 93q0 -22 -8.5 -41.5 t-23 -34t-34.5 -23t-42 -8.5t-41.5 8.5t-34 23t-23 34t-8.5 41.5t8.5 42t23 34.5t34 23t41.5 8.5t42 -8.5t34.5 -23t23 -34.5t8.5 -42z" /> +d="M188.24 215.496v559.595q0 13.207 7.99414 22.5918q7.99414 9.38477 23.9824 10.7754h6.25684h217.581q29.1963 0 36.8428 -22.9404q2.78125 -5.56152 2.43359 -11.1221q-0.347656 -5.56152 1.04297 -11.123q0.694336 -11.1221 4.86523 -18.7686 +q3.47656 -8.3418 11.8184 -12.165q8.3418 -3.82324 18.0732 -3.82324q1.39062 -2.78027 8.3418 -2.78027h444.896q11.1221 0 19.4639 -2.43359q8.3418 -2.43262 13.9033 -12.8604q2.08496 -3.47559 3.82324 -7.99414q1.7373 -4.51855 1.7373 -10.0791 +q0.695312 -8.3418 0.347656 -17.3789q-0.347656 -9.03711 -0.347656 -18.0742v-505.373h-823.056v63.9541z" /> +d="M1080 561.332l-173.787 -407.356l-1.39062 -2.78125h-736.857l173.093 408.748l0.694336 1.38965h614.512h123.736zM318.812 653.092q-25.7207 0 -44.8369 -15.9883q-19.1172 -15.9883 -22.5928 -40.3184l-131.383 -314.902v493.556q0 12.5127 8.3418 21.8965 +q8.3418 9.38477 22.9395 11.4697h5.56152h218.276q28.501 0 37.5381 -24.3301q1.39062 -4.86523 1.39062 -10.4268q0 -5.56152 0.695312 -11.1221q1.38965 -5.56152 2.08496 -9.73242t3.47559 -8.3418q9.73242 -15.9883 29.1963 -15.9883q2.78125 -2.08594 4.86621 -2.43359 +q2.08594 -0.347656 3.47559 -0.347656h444.896q11.1221 0 19.4639 -2.78027q8.3418 -2.78027 14.5986 -13.208q2.08496 -3.47559 3.82324 -7.64648q1.7373 -4.1709 1.7373 -9.73145q1.39062 -9.73242 0.695312 -18.4219q-0.695312 -8.68945 -0.695312 -17.0312v-4.1709 +h-623.548z" /> +d="M295.27 605.658l154.036 161.294l-181.456 170.165q27.4199 42.7432 147.987 5.64551q120.567 -37.0977 147.987 -108.066q38.71 -106.454 -20.5654 -233.877q-59.2754 -127.422 -197.988 -138.712q-57.2588 -5.64551 -100.002 19.3545q-42.7432 25.001 -63.7109 66.9375 +q-20.9678 41.9365 -33.0654 85.082q-12.0967 43.1465 -14.5166 72.9854q-2.41895 29.8398 0.806641 32.2588zM1067.06 164.52l-162.906 -164.52l-422.59 424.203l-19.3555 7.25781q72.582 37.0977 116.132 104.841q24.1934 37.0977 38.71 93.5508l23.3877 -39.5166z" /> +d="M600.624 395.784q-17.4668 0 -32.751 6.55078q-15.2832 6.5498 -26.8242 18.0908q-11.54 11.54 -18.4023 27.1357q-6.8623 15.5957 -6.8623 33.0625q0 17.4668 6.8623 32.75q6.8623 15.2842 18.4023 26.5127q11.541 11.2285 26.8242 17.7783 +q15.2842 6.55078 32.751 6.55078q17.4668 0 32.75 -6.55078q15.2842 -6.5498 26.5127 -17.7783t17.7783 -26.5127q6.55078 -15.2832 6.55078 -32.75q0 -17.4668 -6.55078 -33.0625q-6.5498 -15.5957 -17.7783 -27.1357q-11.2285 -11.541 -26.5127 -18.0908 +q-15.2832 -6.55078 -32.75 -6.55078zM925.01 601.645q-11.2295 0 -19.9629 8.42188q-8.7334 8.4209 -8.7334 20.8975v82.9678l-102.93 -103.554q-8.10938 -8.10938 -19.9619 -8.10938t-19.3389 8.10938q-8.7334 8.7334 -8.7334 20.5859q0 11.8525 8.7334 19.9629 +l102.307 102.93h-83.5918q-11.8525 0 -20.5859 8.42188q-8.7334 8.4209 -8.7334 19.6494q0 12.4766 8.7334 20.2744q8.7334 7.79785 20.5859 7.79785h179.659v-179.036q0 -12.4766 -7.79688 -20.8975q-7.79785 -8.42188 -19.6504 -8.42188zM925.01 358.355 +q11.8525 0 19.6504 -8.42188q7.79688 -8.4209 7.79688 -20.2734v-179.66h-179.659q-11.8525 0 -20.5859 8.10938q-8.7334 8.11035 -8.7334 19.3389q0 11.8525 8.7334 20.5859q8.7334 8.7334 20.5859 8.7334h83.5918l-102.307 102.93q-8.7334 7.48633 -8.7334 19.0264 +q0 11.541 8.7334 20.2744q7.48633 8.10938 19.3389 8.10938t19.9619 -8.10938l102.93 -103.554v84.2158q0 11.8525 8.7334 20.2734q8.7334 8.42188 19.9629 8.42188zM276.238 601.645q-11.8525 0 -20.2744 8.42188q-8.4209 8.4209 -8.4209 20.8975v179.036h181.53 +q11.2295 0 19.3389 -7.79785q8.10938 -7.79785 8.10938 -20.2744q0 -11.2285 -8.10938 -19.6494q-8.10938 -8.42188 -19.3389 -8.42188h-84.8389l102.93 -102.93q8.7334 -8.11035 8.7334 -19.9629q0 -11.8525 -8.7334 -20.5859q-8.10938 -8.10938 -19.6504 -8.10938 +q-11.54 0 -20.2734 8.10938l-102.307 103.554v-82.9678q0 -12.4766 -8.4209 -20.8975q-8.42188 -8.42188 -20.2744 -8.42188zM276.238 358.355q11.8525 0 20.2744 -8.42188q8.4209 -8.4209 8.4209 -20.2734v-84.2158l102.307 103.554q8.7334 8.10938 20.2734 8.10938 +q11.541 0 19.6504 -8.10938q8.7334 -8.7334 8.7334 -20.2744q0 -11.54 -8.7334 -19.0264l-102.93 -102.93h84.8389q11.2295 0 19.3389 -8.7334q8.10938 -8.7334 8.10938 -20.5859q0 -11.2285 -8.10938 -19.3389q-8.10938 -8.10938 -19.3389 -8.10938h-181.53v179.66 +q0 11.8525 8.4209 20.2734q8.42188 8.42188 20.2744 8.42188z" /> +t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5l2.5 12 +l7 15l15 12l25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" /> @@ -632,7 +733,7 @@ d="M750 730h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400 d="M750 730h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1050 830h-200v200zM912 130h-162v-200h-100v200h-162l212 212zM530 -70h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1050 10v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" /> +t33.5 15.5h8h313q38 0 54 -36q2 -8 2 -14v-16l3.5 -14l6.5 -13q7 -11 16 -16.5t24 -5.5q5 -4 7.5 -4.5t4.5 -0.5h638q16 0 27.5 -3.5t21.5 -18.5q2 -5 6 -10.5t4 -15.5q2 -13 1 -24.5t-1 -25.5v-6h-896z" /> @@ -703,7 +804,9 @@ d="M525 1230h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q- +d="M677.336 556.903q33.6992 -30.2422 33.6992 -76.9033t-31.5391 -78.6318q-31.5391 -31.9717 -79.0645 -31.9717q-47.5244 0 -78.6318 31.9717q-31.1064 31.9707 -31.1064 78.6318t31.1064 78.6318q31.1074 31.9717 78.6318 31.9717q47.5254 0 76.9043 -33.7002z +M310.099 556.903q35.4277 -30.2422 35.4277 -76.9033t-31.9707 -78.6318q-31.9717 -31.9717 -79.0645 -31.9717q-47.0928 0 -80.792 31.9717q-33.6992 31.9707 -33.6992 78.6318t33.6992 78.6318q33.6992 31.9717 80.792 31.9717q47.0928 0 75.6074 -33.7002z +M1048.89 556.903q31.1074 -30.2422 31.1074 -76.9033t-32.835 -78.6318q-32.8359 -31.9717 -80.3604 -31.9717q-47.5244 0 -79.0635 31.9717q-31.54 31.9707 -31.54 78.6318t31.54 78.6318q31.5391 31.9717 79.0635 31.9717q47.5244 0 82.0879 -33.7002z" /> +d="M334.016 -0q-59.4297 0 -92.9785 31.6318q-90.1025 80.5176 3.83398 152.408l382.457 291.396l-382.457 287.562q-93.9365 71.8906 -3.83398 154.325q81.4756 83.3936 179.247 3.83398l582.792 -445.721l-582.792 -448.597q-34.5078 -26.8389 -86.2686 -26.8389z" /> - @@ -814,27 +915,34 @@ t58 -39.5t39 -58.5t14 -71.5q0 -39 -14 -77.5t-39 -69t-58 -50t-71 -19.5q-44 0 -80. t-112.5 129zM579 481q-51 0 -93.5 27.5t-72.5 70.5q-25 35 -39 75.5t-14 81.5q0 7 0.5 11.5t1.5 9.5q4 42 22.5 78t47.5 62.5t66.5 42t80.5 15.5q40 0 76.5 -14t65 -38.5t48 -58t25.5 -72.5q3 -15 3 -36q0 -47 -18 -93t-50 -84q-29 -36 -67 -57t-83 -21zM821 285 q48 -26 85 -58.5t62.5 -68t38.5 -72t13 -70.5h-414h-77h-391q0 34 12.5 70t37.5 71t60.5 67t82.5 57q51 27 113.5 44t134.5 17q71 0 131.5 -16t110.5 -41zM1305 855h-221q-14 0 -24 10t-10 24t10 24t24 10h221q15 0 25 -10t10 -24t-10 -24t-25 -10z" /> +d="M376.901 -0l-164.057 43.2676l-86.5352 21.6338v736.451l141.521 -36.0566l109.07 -28.8457v-736.45zM925.859 461.521q101.859 153.239 145.127 283.042l2.7041 -1.80273v-738.254l-143.324 38.7607l-116.281 27.9434v459.719q9.91504 -15.3242 23.4365 -38.7607 +q13.5205 -23.4365 21.6338 -30.6475l34.2529 -44.1689zM776.226 844.62q0 48.6758 35.1543 82.0273q35.1553 33.3525 83.3809 33.3525q48.2256 0 82.4785 -35.1553q34.2539 -35.1543 34.2539 -80.2246q0 -89.2402 -118.085 -288.451q-117.183 182.085 -117.183 288.451z +M893.408 769.803q56.7891 0 56.7891 55.4365q0 55.4365 -56.7891 55.4365q-23.4365 0 -41.4648 -15.3232q-18.0283 -15.3242 -18.0283 -39.6621q0 -24.3379 18.0283 -40.1133q18.0283 -15.7744 41.4648 -15.7744zM704.112 801.353q1.80273 -48.6768 32.4512 -120.789 +v-609.353l-279.437 -71.2109v736.45z" /> +d="M890.493 287.584q60.6758 0 102.649 -43.6357q41.9746 -43.6367 41.9746 -103.065q0 -59.4287 -41.9746 -100.155q-41.9736 -40.7275 -100.986 -40.7275q-59.0137 0 -100.987 40.7275q-41.9746 40.7266 -41.9746 100.571q0 18.2852 4.15625 42.3896l-340.779 199.48 +q-39.8955 -49.8701 -102.233 -49.8701q-59.8447 0 -102.649 43.6357q-42.8057 43.6367 -42.8057 102.649q0 59.0137 42.8057 102.234q42.8047 43.2207 102.649 43.2207q62.3379 0 102.233 -48.208l340.779 198.649q-4.15625 24.9346 -4.15625 43.2207 +q0 59.0127 41.9746 100.156q41.9736 41.1426 100.987 41.1426q59.0127 0 100.986 -41.1426q41.9746 -41.1436 41.9746 -100.156t-41.9746 -102.649q-41.9736 -43.6367 -100.986 -43.6367q-59.0137 0 -104.728 44.0527l-340.779 -196.156q6.64941 -28.2598 6.64941 -40.3115 +t-6.64941 -41.9736l340.779 -198.649q41.5586 48.207 103.064 48.207z" /> +d="M1080 736.323v-511.765q0 -95.2939 -65.2939 -160.146q-65.2939 -64.8535 -160.589 -64.8535h-510q-93.5293 0 -158.823 64.8535q-65.2939 64.8525 -65.2939 160.146v511.765q0 91.7646 65.2939 157.941q65.2939 66.1768 158.823 66.1768h510q95.2949 0 160.589 -66.1768 +q65.2939 -66.1768 65.2939 -157.941zM194.117 224.559q0 -62.6465 43.2354 -106.323q43.2354 -43.6768 106.765 -43.6768h510q65.2949 0 108.089 43.6768q42.7939 43.6768 42.7939 106.323v511.765q0 62.6475 -42.7939 106.324q-42.7939 43.6758 -108.089 43.6758h-510 +q-63.5293 0 -106.765 -43.6758q-43.2354 -43.6768 -43.2354 -106.324v-511.765zM711.177 318.088q30 30.8828 70.5879 30.8828q40.5879 0 69.2646 -28.6768q28.6768 -28.6768 28.6768 -69.2646q0 -44.1172 -28.6768 -72.7939q-28.6768 -28.6768 -69.2646 -28.6768 +q-40.5879 0 -70.1475 28.6768q-29.5586 28.6768 -29.5586 72.7939q0 17.6475 2.64746 26.4707l-232.941 135.882q-30.8818 -30.8818 -74.1172 -30.8818q-41.4707 0 -70.1475 30.4414q-28.6768 30.4404 -28.6768 69.7061q0 39.2646 28.6768 67.9404 +q28.6768 28.6768 70.1475 28.6768q43.2354 0 74.1172 -28.2354l232.941 135q-2.64746 9.70605 -2.64746 26.4707q0 45 29.5586 74.1172q29.5596 29.1182 70.1475 29.1182q40.5879 0 69.2646 -29.1182q28.6768 -29.1172 28.6768 -74.1172q0 -38.8232 -28.6768 -67.9414 +q-28.6768 -29.1172 -69.2646 -29.1172q-40.5879 0 -70.5879 31.7646l-240 -136.765q7.05859 -19.4121 7.05859 -28.6768q0 -9.26465 -7.05859 -28.6768z" /> +d="M1048.66 658.557l-400 -416.495l-528.66 266.392l399.175 415.671zM670.928 35.876l-544.33 277.113l76.7012 69.2783l448.66 -223.505l334.021 351.341l94.0205 -51.959z" /> +d="M1034.64 733.196h-871.752q-18.1445 0 -30.5156 12.7832q-12.3711 12.7832 -12.3711 30.9277t12.3711 30.1035q12.3711 11.958 30.5156 11.958h871.752q18.1445 0 31.7529 -11.958q13.6084 -11.959 13.6084 -30.1035t-13.6084 -30.9277 +q-13.6084 -12.7832 -31.7529 -12.7832zM1034.64 435.464h-871.752q-18.1445 0 -30.5156 12.7832q-12.3711 12.7842 -12.3711 31.7529t12.3711 31.7529q12.3711 12.7832 30.5156 12.7832h871.752q18.1445 0 31.7529 -12.7832q13.6084 -12.7842 13.6084 -31.7529 +t-13.6084 -31.7529q-13.6084 -12.7832 -31.7529 -12.7832zM1034.64 141.031h-871.752q-18.1445 0 -30.5156 12.3711t-12.3711 29.2783q0 16.9072 12.3711 30.9277q12.3711 14.0205 30.5156 14.0205h871.752q18.1445 0 31.7529 -14.0205q13.6084 -14.0205 13.6084 -30.9277 +q0 -16.9072 -13.6084 -29.2783t-31.7529 -12.3711z" /> +d="M1002.06 728.323h-838.188q-17.2344 0 -30.5508 12.5332q-13.3174 12.5342 -13.3174 29.7676q0 17.2344 13.3174 28.9844q13.3164 11.75 30.5508 11.75h838.188q17.2334 0 29.375 -11.75q12.1426 -11.75 12.1426 -28.9844q0 -17.2334 -12.1426 -29.7676 +q-12.1416 -12.5332 -29.375 -12.5332zM591.579 441.615h-427.711q-17.2344 0 -30.5508 12.5342q-13.3174 12.5332 -13.3174 30.5508q0 14.8838 11.75 28.2002q11.751 13.3174 21.9346 13.3174h464.528zM638.58 158.042h-474.712q-17.2344 0 -30.5508 12.1416 +q-13.3174 12.1416 -13.3174 28.9844q0 16.8418 13.3174 29.7676q13.3164 12.9248 30.5508 12.9248h435.544zM1078.83 400.098q2.34961 0 0 -25.0674v-24.2832q-4.7002 -14.1006 -14.8838 -14.1006h-1.56641q-33.6846 0 -46.2188 -29.7676q-17.2334 -32.9014 12.5342 -58.752 +q9.40039 -4.7002 0 -16.4502q-14.1006 -20.3672 -36.0342 -36.0342q-6.2666 -6.2666 -17.2344 2.34961q-26.6338 23.501 -57.1846 13.3174q-29.7676 -18.0166 -29.7676 -50.1348q0 -12.5332 -13.3164 -12.5332h-21.9346h-28.2002q-17.2344 0 -10.9668 12.5332 +q0 36.8174 -32.1182 50.1348q-32.1172 14.8838 -54.0508 -13.3174q-10.9678 -8.61621 -18.0176 0q-18.8008 16.4512 -34.4678 37.6016q-8.61621 7.83301 0 14.1006q23.501 26.6338 13.3174 57.1846q-13.3174 32.9004 -49.3516 32.9004q-11.75 0 -11.75 10.9678 +q-5.4834 24.2832 0 51.7012q0 8.61621 11.75 8.61621q32.1182 0 51.7012 34.4678q11.751 28.2012 -15.667 54.0518q-8.61621 10.9668 0 17.2334q15.667 18.8008 37.6016 39.168q9.40039 4.7002 14.8838 -3.13379q25.0674 -26.6338 57.9678 -14.0996 +q34.4678 14.0996 28.2012 49.3506q0 12.5342 14.0996 12.5342q25.0674 1.56641 49.3516 0q13.3174 0 13.3174 -12.5342q-5.4834 -32.1172 29.7676 -50.918q33.6836 -14.8838 54.834 12.5342q10.9678 10.9668 17.2344 3.13281q17.2334 -10.1836 38.3838 -38.3838 +q4.7002 -9.40039 -2.34961 -14.8838q-25.0674 -25.8506 -12.5342 -57.9688q12.5342 -30.5508 47.7852 -30.5508q10.1836 0 14.8838 -10.9668zM853.219 299.045q30.5508 0 52.877 21.9346q22.3252 21.9336 22.3252 54.0508q0 32.1182 -22.3252 53.6602 +q-22.3262 21.542 -52.877 21.542q-32.9004 0 -53.6592 -21.542q-20.7588 -21.542 -20.7588 -53.6602q0 -32.1172 20.7588 -54.0508q20.7588 -21.9346 53.6592 -21.9346z" /> +d="M941.333 821.333q138.667 -141.948 138.667 -341.743t-139.897 -339.692q-139.897 -139.897 -339.282 -139.897t-340.103 139.897q-140.718 139.897 -140.718 339.692t140.718 340.103q140.718 140.308 340.103 140.308t340.513 -138.667zM637.743 110.77 +q132.924 12.3076 226.462 105.436t106.667 229.333h-187.897v68.9238h187.897q-13.1289 135.384 -106.667 229.333q-93.5381 93.9482 -226.462 105.436v-190.358h-71.3838v190.358q-134.564 -11.4873 -228.924 -105.436q-94.3584 -93.9492 -105.846 -229.333h189.538 +v-68.9238h-189.538q11.4873 -136.205 105.846 -229.333q94.3594 -93.1279 228.924 -105.436v190.358h71.3838v-190.358z" /> +d="M1061.56 79.1064q36.873 -35.1582 0 -63.457q-8.5752 -14.5771 -29.1562 -14.5771q-21.4385 0 -33.4434 14.5771l-398.749 395.319l-399.607 -395.319q-12.0059 -14.5771 -33.4434 -14.5771q-20.5811 0 -30.0137 14.5771q-34.3008 28.2988 0 63.457l394.462 397.893 +l-394.462 400.464q-34.3008 33.4434 0 63.457q30.0137 36.0166 63.457 0l399.607 -395.319l398.749 395.319q33.4434 36.0166 62.5996 0q36.873 -30.0137 0 -63.457l-395.319 -400.464l395.319 -397.893v0z" /> +d="M615.231 361.66l-63.2705 -238.243l-406.965 -123.417l199.187 199.968q49.9912 -32.8076 96.0781 10.1543q24.2148 25.7773 24.2148 56.2412q0 30.4629 -24.9961 54.6777t-54.6787 24.2148t-56.2412 -24.9951q-42.1807 -45.3057 -8.5918 -94.5166l-199.968 -200.748 +l123.417 407.746l236.681 64.0518zM1080 778.779l-354.63 -353.849l-75.7686 -21.8711l-127.323 125.761l22.6523 78.8936l354.63 353.849z" /> +d="M277.936 370.451q87.4834 0 135.871 -61.1611q48.3867 -61.1611 53.0322 -96.3867q4.64453 -35.2256 4.64453 -61.5488l-13.1611 27.0967q-10.8389 29.4199 -59.6123 56.9033q-48.7744 27.4844 -120.774 27.4844v-98.3232l-157.936 145.549l157.936 140.129v-79.7422z +M1080 808.646v-617.032h-527.226v105.29h424.258v409.548h-656.516v-179.612h-102.968v281.807h862.451z" /> +d="M917.6 169.2l162.4 147.2l-162.4 147.199v-81.5996q-87.1992 -4 -137.199 -60t-54.8008 -112.8l-5.59961 -55.2002q0.799805 13.5996 12.4004 31.5996q11.5996 18 62.3994 51.2002q50.7998 33.2002 122.8 33.2002v-100.8zM224.8 276.4h433.601v-103.2h-538.4v632.8h884 +v-289.6h-105.6v182.399h-673.601v-422.399z" /> @@ -897,9 +1017,12 @@ q-9 -8 -9 -21t9 -20q8 -9 20 -9t21 9l83 82l59 -60l-44 -43q-5 -3 -6.5 -9t-1.5 -12q d="M431 1001q48 0 48 -44.5t-48 -44.5h-228l261 -259q29 -34 -2 -64.5t-63 -2.5l-261 261v-228q0 -48 -44 -48t-44 48v382h381zM763 912q-43 0 -43 44.5t43 44.5h383v-382q0 -48 -44 -48t-44 48v228l-260 -261q-35 -24 -65 0q-30 33 0 67l258 259h-228zM431 -6q48 0 48 -45 t-48 -45h-381v383q0 43 44 43t44 -43v-228l261 260q32 28 65 0q15 -17 15 -32q0 -19 -15 -35l-261 -258h228zM1058 287q0 43 44 43t44 -43v-383h-383q-43 0 -43 45t43 45h228l-258 258q-30 35 0 67q30 25 65 0l260 -260v228z" /> +d="M938.799 817.964q141.201 -141.201 141.201 -338.382q0 -197.18 -141.619 -338.381q-141.618 -141.201 -338.381 -141.201t-338.381 141.201q-141.619 141.201 -141.619 338.381q0 197.181 141.619 338.799q141.618 141.619 338.381 141.619t338.799 -142.036z +M376.501 641.671q0 -21.7236 17.5459 -37.5977q16.71 -18.3818 42.6113 -18.3818q44.2812 0 59.3213 47.624q15.874 53.4727 40.9395 77.7031q22.5586 24.2295 74.3604 24.2295q43.4463 0 69.3477 -24.2295q26.7363 -24.2305 26.7363 -60.9922q0 -21.7236 -6.68457 -36.7627 +q-7.51953 -18.3809 -24.2295 -27.5723q-21.7236 -20.8877 -42.6113 -40.1035q-20.8877 -19.2168 -50.1299 -49.2959q-22.5596 -26.7363 -32.585 -48.459q-11.6973 -34.2559 -11.6973 -69.3477q0 -32.585 13.3682 -45.9531q19.2168 -15.874 41.7754 -15.874 +q44.2822 0 56.8145 48.459q3.3418 25.0654 6.68457 31.75q0 3.3418 5.84766 16.71q2.50684 6.68359 15.875 19.2168q5.0127 9.19043 23.3945 25.9004q56.8145 54.3086 77.7021 71.8535q25.9004 26.7363 39.2686 50.9668q15.04 30.9131 15.04 68.5117 +q0 47.624 -28.4082 90.2344q-25.9004 40.1045 -77.7021 68.5117q-52.6367 25.0654 -117.807 25.0654q-67.6758 0 -126.162 -29.2422q-54.3076 -30.9141 -80.209 -76.0322q-28.4072 -40.9395 -28.4072 -86.8926zM601.253 137.859q28.4072 0 46.7891 19.2158 +q20.0518 20.8887 20.0518 48.8779t-20.4697 49.2949q-20.4697 21.3057 -46.3711 21.3057q-29.2422 0 -50.1299 -20.8877q-20.0527 -18.3818 -20.0527 -49.2949q0 -28.4072 20.0527 -49.2959q18.3809 -19.2158 50.1299 -19.2158z" /> @@ -980,7 +1103,7 @@ t18 133q0 103 -39.5 194t-107 159t-159 107t-194.5 39zM1361 885h-112v110q0 28 -28 d="M601 663q-34 0 -64.5 -13t-53 -36t-36 -53.5t-13.5 -64.5q0 -35 13.5 -65.5t36 -53t53 -35.5t64.5 -13t64.5 13t53.5 35.5t36 53t13 65.5q0 34 -13 64.5t-36 53.5t-53.5 36t-64.5 13zM522 -55q-40 6 -78 16.5t-75 27.5l22 47q32 -16 67 -26t71 -15zM680 -55l-8 50 q37 6 71 15.5t68 25.5l20 -46q-35 -17 -73.5 -28t-77.5 -17zM236 74q-60 52 -103 120l42 28q40 -63 95 -109zM964 75l-33 38q56 49 94 110l44 -27q-43 -68 -105 -121zM66 338q-22 75 -22 157h50q0 -37 5.5 -72.5t16.5 -70.5zM1135 339l-49 14q9 35 14.5 70.5t5.5 72.5l51 2 v-2q0 -82 -22 -157zM115 637l-50 15q12 38 28.5 74.5t36.5 69.5l44 -28q-39 -60 -59 -131zM1085 640q-21 71 -61 130l43 28q44 -67 67 -143zM268 877l-33 38q29 27 62.5 48.5t69.5 38.5l22 -47q-32 -16 -63 -35t-58 -43zM930 879q-28 23 -58 43t-63 35l21 46q74 -33 133 -85 -zM527 996l-7 50q20 4 39.5 5.5t39.5 1.5h1q40 0 78 -6l-8 -51l-34 4t-37 2q-17 0 -35.5 -2t-36.5 -4z" /> +zM527 996l-7 50q20 4 39.5 5.5t39.5 1.5h1q40 0 78 -6l-8 -51l-34 4l-37 2q-17 0 -35.5 -2t-36.5 -4z" /> .query-filter-container { + margin-left: 10px; + margin-right: @ms2-square-btn-side + 10; +} + +#query-form-panel .query-content > .container-fluid { + border-top: 1px dashed darken(@ms2-body-bg, 10%); +} + +#mapstore-drawermenu #query-form-panel .remove-filter-button .glyphicon { + font-size: @ms2-square-btn-icon-size-sm; +} + +#mapstore-drawermenu #query-form-panel .remove-filter-button span { + line-height: @ms2-square-btn-icon-size-sm; +} + +#query-form-panel .querypanel > .query-filter-container { + border-bottom: 1px solid darken(@ms2-body-bg, 10%); +} + +#query-form-panel .panel .panel .filter-group-panel { + background-color: @ms2-body-bg; +} + +#query-form-panel div.details-panel { + background-color: @ms2-body-bg; +} + +#query-form-panel .queryFormToolbar { + margin: (@ms2-square-btn-side - 26) / 2 !important; +} diff --git a/web/client/themes/default/mapstore2-theme/search.less b/web/client/themes/default/mapstore2-theme/search.less new file mode 100644 index 0000000000..1d770f49f4 --- /dev/null +++ b/web/client/themes/default/mapstore2-theme/search.less @@ -0,0 +1,131 @@ + +/* search */ +#mapstore-navbar .navbar-dx .MapSearchBar .input-group { + width: 500px; +} + +div.MapSearchBar .form-control:focus { + box-shadow: none; +} + +div.MapSearchBar .input-group-addon { + height: @ms2-square-btn-side; + width: @ms2-square-btn-side; + color: @ms2-primary-bg; + background-color: @ms2-body-bg; + border: 0; + border-radius: 0; + font-size: @ms2-square-btn-icon-size; +} + +.navbar-dx .MapSearchBar .input-group, +.navbar-dx.shadow { + -webkit-box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); + -moz-box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} + +.MapSearchBar input { + height: @ms2-square-btn-side; + box-shadow: none; + -webkit-box-shadow: none; + border: none; +} + +.MapSearchBar input:focus { + border: none; +} + +.MapSearchBar .input-group-addon .searchclear, +.MapSearchBar .input-group-addon .searcherror { + font-size: @ms2-square-btn-icon-size-md; +} + +.MapSearchBar .input-group-addon .searchclear { + cursor: pointer; +} + +.MapSearchBar .input-group-addon .searcherror { + color: @ms2-danger-bg; + margin-left: 4px; +} + +#mapstore-navbar .navbar-dx .search-result-list { + top: @ms2-square-btn-side + @ms2-square-btn-padding; +} + +@media (max-width: 768px ) { + #mapstore-navbar .search-toggle { + display: inline-block; + } + + #mapstore-navbar .MapSearchBar { + width: 400px; + top: @ms2-square-btn-side; + left: auto; + } + + #mapstore-navbar .search-result-list { + top: @ms2-square-btn-side + @ms2-square-btn-padding; + left: auto; + width: 400px; + } +} + +@media (max-width: 768px ) { + #mapstore-navbar .search-toggle { + display: inline-block; + } + + #mapstore-navbar .navbar-dx .MapSearchBar { + position: fixed; + left: 1px; + right: 1px; + top: @ms2-square-btn-side; + width: auto; + } + + #mapstore-navbar .navbar-dx .MapSearchBar .input-group { + width: 100%; + } + + #mapstore-navbar .navbar-dx .search-result-list { + position: fixed; + left: 15px; + right: 15px; + top: 105px; + width: 95%; + } +} + +@media (min-width: 992px) { + #mapstore-navbar .MapSearchBar { + width: 500px; + right: auto; + } + + #mapstore-navbar .search-result-list { + width: 500px; + right: auto; + } +} + +@media (min-width: 1200px) { + #mapstore-navbar .MapSearchBar { + width: 500px; + position: absolute; + } + + #mapstore-navbar .search-result-list { + width: 500px; + right: auto; + } +} + +#mapstore-navbar .form-group { + margin-bottom: 0; +} + +#mapstore-navbar .search-result-list { + background-color: @ms2-body-bg; +} diff --git a/web/client/themes/default/mapstore2-theme/select.less b/web/client/themes/default/mapstore2-theme/select.less new file mode 100644 index 0000000000..5fdce36ba4 --- /dev/null +++ b/web/client/themes/default/mapstore2-theme/select.less @@ -0,0 +1,82 @@ + +/* rw select input */ +.rw-widget { + color: @ms2-text-color !important; + background-color: @ms2-body-bg !important; + border: 1px solid darken(@ms2-body-bg, 5%) !important; +} + +.rw-widget.rw-state-focus, +.rw-widget.rw-state-focus:hover { + color: @ms2-primary-bg !important; + background-color: transparent !important; + border-color: lighten(@ms2-primary-bg, 18%) !important; + box-shadow: 0 0 8px fade(lighten(@ms2-primary-bg, 18%),30%) !important; + -webkit-box-shadow: 0 0 8px fade(lighten(@ms2-primary-bg, 18%), 30%) !important; +} + +.rw-list-option.rw-state-focus { + color: @ms2-body-bg !important; + background-color: @ms2-primary-bg !important; + border: none !important; +} + +.rw-input, +.rw-placeholder { + color: lighten(@ms2-text-color, 2%) !important; + background-color: @ms2-body-bg !important; +} + +.rw-filter-input { + border-color: @ms2-primary-bg !important; +} + +.rw-list-option:hover { + color: @ms2-body-bg !important; + background-color: @ms2-primary-bg !important; + border: none !important; +} + +.rw-i { + color: @ms2-text-color !important; +} + +.rw-select { + border: none !important; +} + +/* Select select input */ +.Select-placeholder { + background-color: @ms2-body-bg; + border: 1px solid darken(@ms2-body-bg, 5%); + color: lighten(@ms2-text-color, 2%) !important; +} + +.Select-control { + border: none !important; +} + +.Select-arrow { + border-color: lighten(@ms2-text-color, 2%) transparent transparent !important; +} + +.Select-option { + background-color: @ms2-body-bg !important; + color: @ms2-text-color !important; +} + +.Select-option:hover { + background-color: @ms2-primary-bg !important; + color: @ms2-body-bg !important; +} + +.Select-menu-outer { + background-color: @ms2-body-bg !important; + border: 1px solid darken(@ms2-body-bg, 5%) !important; +} + +.is-focused:not(.is-open) > .Select-control { + border-color: lighten(@ms2-primary-bg, 18%) !important; + box-shadow: 0 0 8px fade(lighten(@ms2-primary-bg, 18%),30%) !important; + -webkit-box-shadow: 0 0 8px fade(lighten(@ms2-primary-bg, 18%), 30%) !important; +} diff --git a/web/client/themes/default/mapstore2-theme/tutorial.less b/web/client/themes/default/mapstore2-theme/tutorial.less new file mode 100644 index 0000000000..38f0d3f9d3 --- /dev/null +++ b/web/client/themes/default/mapstore2-theme/tutorial.less @@ -0,0 +1,12 @@ +/* tutorial */ +.joyride-tooltip__button--primary { + background-color: @ms2-primary-bg !important; + color: @ms2-primary-color !important; +} + +.joyride-tooltip__button--primary:active, +.joyride-tooltip__button--primary:focus, +.joyride-tooltip__button--primary:hover { + background-color: @ms2-primary-bg !important; + color: @ms2-primary-color !important; +} diff --git a/web/client/themes/default/ms2-theme.less b/web/client/themes/default/ms2-theme.less deleted file mode 100644 index 1f766dadf3..0000000000 --- a/web/client/themes/default/ms2-theme.less +++ /dev/null @@ -1,1006 +0,0 @@ -button:focus { - outline: 0 !important; -} - -.shadow { - -webkit-box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); - -moz-box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); - box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); -} - -.shadow-soft { - -webkit-box-shadow: -1px 1px 5px 1px rgba(154,154,154,1); - -moz-box-shadow: -1px 1px 5px 1px rgba(154,154,154,1); - box-shadow: -1px 1px 5px 1px rgba(154,154,154,1); -} -/* dropdown-menu */ -.dropdown-menu .dropdown-header { - background-color: @ms2-color-primary; - color: @ms2-color-background; - padding: 15px; - font-weight: bold; -} - -.dropdown-menu .glyphicon { - font-size: @icon-size-md; - margin-right: 15px; - color: @ms2-color-primary; - vertical-align: middle; -} -/* navbar */ -.navbar-dx ul, -ol { - margin-bottom: 0; -} - -.navbar-dx .MapSearchBar .input-group, -.navbar-dx.shadow { - -webkit-box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); - -moz-box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); - box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); -} - -.navbar-dx ul, -ol { - margin-bottom: 0; -} - -.navbar .square-button { - height: @square-btn-size; - width: @square-btn-size; -} - -.nav-menu { - overflow-x: hidden; - overflow-y: hidden; -} - -.nav-content { - position: absolute; - top: 0; - bottom: 0; - width: 100%; - background-color: @ms2-color-background; -} - -.nav-body { - position: absolute; - top: @square-btn-size; - bottom: 0; - overflow: auto; - width: 100%; -} -/* button dividers */ -#mapstore-navbar-container .dropdown-toggle, -#mapstore-navbar-container .square-button { - border-left: 1px solid @ms2-color-info; -} -/* search */ -#mapstore-navbar .navbar-dx .MapSearchBar .input-group { - width: 500px; -} -/* remove default inbox bootstrap shadow on focus for the input */ -div.MapSearchBar .form-control:focus { - box-shadow: none; -} - -div.MapSearchBar .input-group-addon { - height: @square-btn-size; - width: @square-btn-size; - color: @ms2-color-primary; - background-color: @ms2-color-background; - border: 0; - border-radius: 0; - font-size: @icon-size; -} - -.MapSearchBar .input-group-addon .searchclear, -.MapSearchBar .input-group-addon .searcherror { - font-size: @icon-size-md; - margin-right: 4px; -} - -.MapSearchBar .input-group-addon .searcherror { - color: @ms2-color-danger; -} - -#mapstore-navbar .navbar-dx .search-result-list { - top: @square-btn-size + @padding-left-square; -} - -.navbar-dx .MapSearchBar .input-group, -.navbar-dx.shadow { - -webkit-box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); - -moz-box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); - box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); -} - -#mapstore-navbar #helpbadge-null { - position: absolute; - left: -10px; - bottom: -8px; - z-index: 1; -} -@media (max-width: 768px ) { - #mapstore-navbar .search-toggle { - display: inline-block; - } - - #mapstore-navbar .MapSearchBar { - width: 400px; - top: @square-btn-size; - left: auto; - } - - #mapstore-navbar .search-result-list { - top: 85px; - left: auto; - width: 400px; - } -} -/* Small devices (tablets, 768px and up) */ -@media (max-width: 768px ) { - #mapstore-navbar .search-toggle { - display: inline-block; - } - - #mapstore-navbar .navbar-dx .MapSearchBar { - position: fixed; - left: 1px; - right: 1px; - top: @square-btn-size; - width: auto; - } - - #mapstore-navbar .navbar-dx .MapSearchBar .input-group { - width: 100%; - } - - #mapstore-navbar .navbar-dx .search-result-list { - position: fixed; - left: 15px; - right: 15px; - top: 105px; - width: 95%; - } -} -/* Medium devices (desktops, 992px and up) */ -@media (min-width: 992px) { - #mapstore-navbar .MapSearchBar { - width: 500px; - right: auto; - } - - #mapstore-navbar .search-result-list { - width: 500px; - right: auto; - } -} -/* Large devices (large desktops, 1200px and up) */ -@media (min-width: 1200px) { - #mapstore-navbar .MapSearchBar { - width: 500px; - position: absolute; - } - - #mapstore-navbar .search-result-list { - width: 500px; - right: auto; - } -} - -#mapstore-navbar .form-group { - margin-bottom: 0; -} - -#mapstore-navbar .search-result-list { - background-color: @ms2-color-background; -} -/* dropdown */ -.navbar-dx .dropdown-menu .dropdown-header, -.navbar-home .dropdown-menu .dropdown-header { - background-color: @ms2-color-primary; -} - -.navbar-dx .dropdown-menu, -.navbar-home .dropdown-menu { - text-transform: uppercase; -} - -.navbar-dx .dropdown-menu li, -.navbar-home .dropdown-menu li { - border-bottom: 1px solid @ms2-color-background; -} - -.navbar-dx .dropdown-menu li a, -.navbar-home .dropdown-menu li a { - max-height: @square-btn-size; - color: @ms2-color-text; -} - -.navbar-dx .dropdown-menu li a span { - position: relative; -} - -.mapToolbar { - box-shadow: -1px 1px 5px 1px rgba(94,94,94,1); -} -/* button dividers */ -.mapToolbar.btn-group-vertical .btn { - border-bottom: 2px solid @ms2-color-info; -} -/* no divider for the last button */ -.mapToolbar.btn-group-vertical .btn:last-child { - border-bottom: 0; -} - -div#mapstore-globalspinner { - width: @square-btn-size !important; - height: @square-btn-size !important; -} -/* drawer menu */ -#mapstore-drawermenu .glyphicon { - font-size: @icon-size; -} - -#mapstore-drawermenu .navHeader > .glyphicon-1-close { - float: left; - display: block; - height: @square-btn-size; - width: @square-btn-size; - padding: @padding-left-square 0 0 @padding-left-square; -} - -#mapstore-drawermenu .navHeader .glyphicon-remove { - color: @ms2-color-primary; -} - -#mapstore-drawermenu .panel-default > .panel-heading { - color: @ms2-color-primary; - font-weight: bold; - background: transparent; -} -/* nav buttons */ -#mapstore-drawermenu .navButtons .btn.square-button { - font-size: @icon-size; -} - -#mapstore-drawermenu .navButtons .btn.square-button .glyphicon { - font-size: @icon-size; -} -/* toc */ -#mapstore-drawermenu #mapstore-layers .toc-group-title, -#mapstore-drawermenu #mapstore-layers .toc-title { - position: relative; -} -/* visibility check */ -#mapstore-drawermenu #mapstore-layers .glyphicon, -#mapstore-drawermenu #mapstore-layers .visibility-check.glyphicon { - font-size: @icon-size-md; - z-index: 2; -} - -#mapstore-drawermenu #mapstore-layers .visibility-check.glyphicon { - float: left; - font-size: @icon-size-md; - margin-top: 0; -} - -#mapstore-drawermenu #mapstore-layers .toc-default-group > .visibility-check.glyphicon.visibility-check { - color: @ms2-color-primary; - margin: 5px 8px 0 8px; - width: @icon-size-md; - font-size: @icon-size-md; -} -/* group */ -#mapstore-drawermenu #mapstore-layers .group-expanded, -.group-collapsed { - padding: 5px 0; - border-bottom: 1px solid @ms2-color-shade-lighter; -} - -#mapstore-drawermenu #mapstore-layers .toc-group-title { - background: transparent; -} - -#mapstore-drawermenu #mapstore-layers .toc-default-layer .glyphicon { - font-size: @icon-size-md; - margin: 0 4px 0; - color: @ms2-color-primary; - height: @icon-size-md; - width: @icon-size-md; - display: block; -} - -#mapstore-drawermenu #mapstore-layers .toc-group-title .glyphicon-folder-close, -#mapstore-drawermenu #mapstore-layers .toc-group-title .glyphicon-folder-open { - color: @ms2-color-primary; -} - -#mapstore-drawermenu #mapstore-layers .toc-default-group { - border-bottom: 1px solid @ms2-color-shade-lighter; - padding: 5px 0; -} - -#mapstore-drawermenu #mapstore-layers .toc-group-children { - margin-left: 24px; -} -/* layer */ -#mapstore-drawermenu #mapstore-layers .toc-default-layer { - padding: 10px 0; -} - -#mapstore-drawermenu #mapstore-layers .toc-layer-tool { - font-size: 22px; -} - -.toc-default-layer .toc-title { - max-width: 140px; -} - -.toc-default-layer .inline-spinner { - position: relative; - top: -7px; -} -/* measure panel */ -#measure-result-panel .option-text { - font-size: 14px; - text-transform: uppercase; - vertical-align: middle; -} - -#measure-result-panel .option-icon { - font-size: 32px; - text-transform: uppercase; - vertical-align: middle; -} - -#measure-result-panel .glyphicon { - margin-left: 0; - margin-top: 0; -} -/* various */ -.no-border { - border: none; -} - -.no-border:active, -.no-border:active:focus, -.no-border:focus, -.no-border:hover { - box-shadow: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - outline: none; -} - -#mapstore-getfeatureinfo .panel-body { - padding: 0; -} - -#mapstore-getfeatureinfo .panel-heading { - background-color: @ms2-color-background; -} -/* Leaflet minimap style */ -.leaflet-control-minimap { - border: solid @ms2-color-primary 4px !important; -} - -.leaflet-control-minimap a { - background-color: @ms2-color-primary !important; -} - -.leaflet-control-minimap-toggle-display { - background-image: url("../default/img/toggle.svg") !important; -} - -.leaflet-oldie .leaflet-control-minimap-toggle-display { - background-image: url("../default/img/toggle.png") !important; -} -/* OpenLayers minimap style */ -.ol-custom-overviewmap button { - background-color: @ms2-color-primary !important; -} - -.ol-custom-overviewmap .ol-control button:focus, -.ol-custom-overviewmap button:hover { - background-color: @ms2-color-primary !important; -} - -.ol-custom-overviewmap:not(.ol-collapsed) { - background: @ms2-color-primary !important; - border-radius: 3px !important; -} - -.ol-custom-overviewmap .ol-overviewmap-map { - height: 133px !important; -} - -.ol-custom-overviewmap { - margin-bottom: 3px; -} - -.btn-success { - background-color: @ms2-color-success !important; -} - -.btn-success:hover { - background-color: @ms2-color-success-hover !important; -} - -div.ol-scale-line.ol-unselectable { - border: 2px solid @ms2-color-shade-darker; - border-top: none; - line-height: 1.0; - border-radius: 0; - bottom: 5px; - left: auto; - right: 57px; - padding: 2px 5px 1px; - white-space: nowrap; - overflow: hidden; - -moz-box-sizing: content-box; - box-sizing: content-box; - font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; -} - -div.ol-scale-line-inner { - border: 0; - border-top: 0; - color: @ms2-color-background; - font-size: 11px; - text-align: left; - margin: 0; -} -/* dropzone image*/ -.dropzone.alert.alert-info { - cursor: pointer; -} - -.dropzone-thumbnail-container .alert { - overflow: hidden; - position: relative; - height: 180px; - margin: 0; - padding: 0; - border-color: @ms2-color-shade-lighter; -} - -.dropzone-thumbnail-container div.dropzone-content-image-added { - transition: all 0.2s ease-in; -} - -.dropzone .dropzone-content-image-added { - visibility: hidden; - padding-top: 40px; - color: @ms2-color-background; - text-shadow: @ms2-color-shade-darker 2px 2px 2px; - vertical-align: middle; - top: 0; - left: 0; - width: 100%; - height: 100%; - text-align: center; - position: absolute; - width: 100%; -} - -.dropzone:hover .dropzone-content-image-added { - visibility: visible; - transition: all 0.2s ease-in; - z-index: 2; - background: rgba(0,0,0,.7); - font-size: large; -} - -.dropzone .dropzone-content-image { - padding-top: 40px; - transition: all 0.2s ease-in; - font-size: normal; - text-align: center; -} - -.dropzone:hover .dropzone-content-image { - transition: all 0.2s ease-in; - font-size: large; -} - -.dropzone-thumbnail-container img { - width: 100%; - height: auto; -} - -.dropzone-remove { - top: 0; - right: 0; - z-index: 5; - position: absolute; - font-size: x-large; -} - -.dropzone:hover .dropzone-remove span { - color: @ms2-color-background; -} - -.dropzone-remove span { - color: transparent; -} - -.dropzone-remove span:hover { - color: @ms2-color-danger !important; -} - -.dropzone-errorBox { - margin-bottom: 10px; - padding: 15px; -} - -.modal-header button.close { - margin-top: -2px; - opacity: 1; - font-size: @font-size-base * 2; -} - -.draggable-header button.close { - margin-top: 0; - opacity: 1; - font-size: @font-size-base; -} - -.modal-header .login-panel-close { - margin-top: -2px !important; - opacity: 1 !important; - font-size: @font-size-base * 2 !important; -} - -.modal-header button.close:hover { - opacity: 0.5; - color: @ms2-color-background; -} - -.modal-header button.close:focus { - opacity: 0.5; - color: @ms2-color-background; -} - -.modal-body { - background-color: @ms2-color-background; -} - -.react-draggable .draggable-header { - cursor: move; -} -/*- icon in lists -*/ -.option-icon { - font-size: @font-size-base; - margin-right: @padding-left-square; - color: @ms2-color-primary; -} -/* btn with icon */ -.btn-primary.focus, -.btn-primary:focus, -.btn-primary:hover, -.open > .dropdown-toggle.btn-primary { - color: @ms2-color-background; - background-color: @ms2-color-primary-hover; - border-color: none; - /*remove active color */ -} - -.btn-primary.active, -.btn-primary:active, -.open > .dropdown-toggle.btn-primary { - background-color: @ms2-color-primary-active !important; -} - -.no-border { - border: none; -} - -.no-border:active, -.no-border:hover { - box-shadow: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; -} -/* square button */ -.square-button { - height: @square-btn-size; - width: @square-btn-size; - line-height: 1; - border-radius: 0; - padding: 0; - margin: 0; -} - -.square-button-md { - height: @square-btn-medium-size; - width: @square-btn-medium-size; - border-radius: 0; - line-height: 1; - padding: 0; - margin: 0; -} - -.square-button-sm { - height: @square-btn-small-size; - width: @square-btn-small-size; - border-radius: 0; - line-height: 1; - padding: 0; - margin: 0; -} - -.glyphicon { - font-family: inherit; -} - -.square-button .glyphicon { - font-size: @icon-size; - padding: 0 0 0 @padding-left-square; - margin: 0; -} - -.square-button-md .glyphicon { - font-size: @icon-size-md; - padding: 0 0 0 @padding-left-square-md; - margin: 0; -} - -.square-button-sm .glyphicon { - font-size: @icon-size-sm; - padding: 0 0 0 @padding-left-square-sm; - margin: 0; -} - -.list-group .list-group-item:not(:last-child) { - border-bottom: 1px solid @ms2-color-shade-lighter; -} - -.list-group list-group-item a:hover { - background-color: @ms2-color-shade-lighter; -} - -.list-group li:not(:last-child) { - border-bottom: 1px solid @ms2-color-shade-lighter; -} -/* btn groups */ -.button-group { - height: @square-btn-size; -} - -.button-group .btn:not(:last-child) { - border-right: 1px solid @ms2-color-primary-hover; -} - -.button-group-md { - height: @square-btn-medium-size; -} - -.button-group-md .btn:not(:last-child) { - border-right: 1px solid @ms2-color-primary-hover; -} - -.button-group-sm { - height: @square-btn-small-size; -} - -.button-group-sm .btn:not(:last-child) { - border-right: 1px solid @ms2-color-primary-hover; -} - -.button-group-vertical { - width: @square-btn-size; -} - -.button-group-vertical .btn:not(:last-child) { - border-bottom: 1px solid @ms2-color-primary-hover; - display: block; -} - -.button-group-vertical-md { - width: @square-btn-medium-size; -} - -.button-group-vertical-md .btn:not(:last-child) { - border-bottom: 1px solid @ms2-color-primary-hover; - display: block; -} - -.button-group-vertical-sm { - width: @square-btn-small-size; -} - -.button-group-vertical-sm .btn:not(:last-child) { - border-bottom: 1px solid @ms2-color-primary-hover; - display: block; -} - -.gridcard-tools { - height: @grid-btn-size !important; -} - -.gridcard-button { - height: @grid-btn-size; - width: @grid-btn-size; - padding: 0 0 0 @grid-btn-padding-left; -} - -.gridcard-button .glyphicon { - font-size: @grid-icon-size; - margin-top: -2px; /* remove after new icons */ -} - -#mapstore-layer-settings { - background-color: @ms2-color-background; -} - -.group-edit-dialog, -.user-edit-dialog { - background: @ms2-color-background; -} - -.user-status { - width: @grid-btn-size + @grid-btn-padding-left * 2; - text-align: center; -} - -.user-status .glyphicon { - font-size: @grid-icon-size; - padding: 0 0 @grid-btn-padding-left 0; -} - -.user-status .glyphicon-ok-sign { - color: @ms2-color-success; -} - -.user-status .glyphicon-minus-sign { - color: @ms2-color-danger; -} -/* query panel */ -#mapstore-drawermenu #toc-query-container { - background-color: darken(@ms2-color-background, 2%); -} - -#mapstore-drawermenu #query-form-panel .remove-filter-button .glyphicon { - font-size: @icon-size-sm; -} - -#mapstore-drawermenu #query-form-panel .remove-filter-button span { - line-height: @icon-size-sm; -} - -#query-form-panel .query-toolbar { - height: @square-btn-size; - background-color: @ms2-color-background; -} - -#query-form-panel button:disabled { - color: @ms2-color-text-disabled; - background-color: @ms2-color-disabled !important; -} - -#query-form-panel .panel .panel .filter-group-panel { - background-color: @ms2-color-background; -} - -#query-form-panel .panel .panel .filter-group-panel button { - background-color: @ms2-color-background; -} - -#query-form-panel div.details-panel { - background-color: @ms2-color-background; -} - -#mapstore-drawermenu #query-form-panel .querypanel > .query-filter-container { - margin-right: 60px; - margin-left: 10px; -} - -#query-form-panel .querypanel { - background-color: darken(@ms2-color-background, 2%); -} - -#query-form-panel .query-content > .container-fluid { - border-top: 1px dashed @ms2-color-shade-lighter; -} - -#query-form-panel .querypanel > .query-filter-container { - border-bottom: 1px solid @ms2-color-shade-lighter; -} - -#query-form-panel hr { - border-top: 1px dashed @ms2-color-shade-lighter; -} - -#mapstore-drawermenu #query-form-panel .glyphicon { - font-size: @icon-size-sm; -} - -#query-form-panel input.form-control { - border: 1px solid @ms2-color-shade-lighter; -} -/* select input */ -.rw-widget { - color: @ms2-color-primary !important; - background-color: @ms2-color-background !important; - border: 1px solid @ms2-color-shade-lighter !important; -} - -.rw-list-option:hover { - color: @ms2-color-background !important; - background-color: @ms2-color-primary !important; - border: none !important; -} - -.rw-state-focus { - color: @ms2-color-primary !important; - background-color: transparent !important; - border: 1px solid @ms2-color-primary !important; -} - -.rw-i { - color: @ms2-color-primary !important; -} - -.rw-input, -.rw-placeholder { - color: @ms2-color-text-placeholder !important; - background-color: @ms2-color-background !important; -} - -.rw-filter-input { - border: 1px solid @ms2-color-primary !important; -} - -.rw-select { - border-left: 1px solid @ms2-color-shade-lighter !important; -} - -.Select-placeholder { - background-color: @ms2-color-background; - border: 1px solid @ms2-color-shade-lighter; - color: @ms2-color-text-placeholder !important; -} - -.Select-control { - border: none !important; -} - -.Select-arrow { - border-color: @ms2-color-primary transparent transparent !important; -} - -.Select-menu-outer { - background-color: @ms2-color-background !important; - border: 1px solid @ms2-color-shade-lighter !important; -} - -.Select-option { - background-color: @ms2-color-background !important; - color: @ms2-color-text-placeholder !important; -} - -.Select-option:hover { - background-color: @ms2-color-primary !important; - color: @ms2-color-background !important; -} - -select.form-control { - border: 1px solid @ms2-color-shade-lighter; -} - -select.form-control option { - color: @ms2-color-text; - background-color: darken(@ms2-color-background, 5%); -} - -#mapstore-scalebox select { - background-color: #fff; - color: #222; - border: none; -} - -#mapstore-scalebox option { - background-color: #fff; - color: #222; -} - -/* help badge */ -#helpbadge-scaleBox { - background-color: @ms2-color-text-primary; - color: @ms2-color-primary; -} - -#mapstore-navbar #helpbadge-search-help { - background-color: @ms2-color-text-primary; - color: @ms2-color-primary; -} -/* tutorial */ -.group-thumb, -.user-thumb { - background-color: darken(@ms2-color-background, 4%); -} -/* tutorial */ -.joyride-tooltip__button--primary { - background-color: @ms2-color-primary !important; -} - -.joyride-tooltip__button--primary:active, -.joyride-tooltip__button--primary:focus, -.joyride-tooltip__button--primary:hover { - background-color: @ms2-color-primary !important; -} -/* loading circle */ -.ms2-loading { - background-color: @ms2-color-primary !important; - border-bottom: 2px solid @ms2-color-info !important; -} - -.ms2-loading .circle-wrapper .circle:before { - background-color: @ms2-color-text-primary !important; -} -/* scale bar */ -.leaflet-control-scale-line { - background-color: @ms2-color-primary; - color: @ms2-color-text-primary; -} - -.ol-scale-line { - background-color: @ms2-color-primary !important; - color: @ms2-color-text-primary !important; -} -/* feauture grid */ -.ag-fresh .ag-header, -.ag-fresh .ag-tool-panel-container { - background: @ms2-color-primary !important; - color: @ms2-color-text-primary; - font-family: @font-family-base; -} - -.ag-fresh .ag-tool-panel-container .ag-list-selection { - color: #000000; -} - -.ag-fresh .ag-paging-button { - color: @ms2-color-primary; - background-color: @ms2-color-background; - border: @ms2-color-primary 1px solid; -} - -.ag-fresh .ag-paging-page-summary-panel { - color: @ms2-color-primary; -} - -.ag-fresh .ag-paging-panel { - background-color: @ms2-color-background; -} - -.ag-fresh .ag-body { - background-color: @ms2-color-background !important; -} - -.ag-fresh .ag-body .ag-row-even { - background-color: @ms2-color-background !important; -} - -.ag-fresh .ag-body .ag-row-odd { - background-color: darken(@ms2-color-background,5%) !important; -} -/* card home */ -.map-thumb-description { - color: #000000; -} - -#mapstore-langselector button{ - padding: 6px 12px; -} - -#mapstore-print-panel .panel-body { - border: solid 1px @ms2-color-primary; -} - -.ms-footer { - border-top: solid 1px @ms2-color-primary !important; - color: @ms2-color-primary !important; -} diff --git a/web/client/themes/default/theme.less b/web/client/themes/default/theme.less index 7380c44c4d..ee91afa991 100644 --- a/web/client/themes/default/theme.less +++ b/web/client/themes/default/theme.less @@ -1,5 +1,5 @@ // For LESS file includes, @import "icons.less"; -@import "bootstrap-theme.less"; -@import "ms2-theme.less"; +@import "bootstrap-theme/bootstrap.less"; +@import "mapstore2-theme/mapstore2.less"; @import "variables.less"; diff --git a/web/client/themes/default/variables.less b/web/client/themes/default/variables.less index 660b2d98b5..e943676f36 100644 --- a/web/client/themes/default/variables.less +++ b/web/client/themes/default/variables.less @@ -1,60 +1,66 @@ -@ms2-color-background: #ffffff; -@ms2-color-code: #c7254e; +/* base color */ +@ms2-text-color: #333333; +@ms2-code-color: #c7254e; +@ms2-placeholder-color: #999999; +@ms2-body-bg: #ffffff; -@ms2-color-text-primary: #ffffff; -@ms2-color-text-placeholder: #999999; -@ms2-color-text: #333333; +/* disabled color */ +@ms2-disabled-color: #333333; +@ms2-disabled-bg: #eeeeee; -@ms2-color-disabled: #5C9FB4; -@ms2-color-text-disabled: #ffffff; +/* brand color */ +@ms2-primary-color: #ffffff; +@ms2-primary-bg: #078aa3; +@ms2-default-bg: @ms2-primary-bg; +@ms2-info-bg: #5a9aab; +@ms2-success-bg: #398439; +@ms2-warning-bg: #ebbc35; +@ms2-danger-bg: #bb4940; -@ms2-color-primary: #078aa3; -@ms2-color-info: #5a9aab; -@ms2-color-success: #398439; -@ms2-color-warning: #ebbc35; -@ms2-color-danger: #bb4940; +/* border btn */ +@ms2-primary-border: darken(@ms2-primary-bg, 5%); +@ms2-default-border: @ms2-default-bg; +@ms2-info-border: darken(@ms2-info-bg, 5%); +@ms2-success-border: darken(@ms2-success-bg, 5%); +@ms2-warning-border: darken(@ms2-warning-bg, 5%); +@ms2-danger-border: darken(@ms2-danger-bg, 5%); -@ms2-color-primary-hover: lighten(@ms2-color-primary, 10%); -@ms2-color-info-hover: lighten(@ms2-color-info, 10%); -@ms2-color-success-hover: lighten(@ms2-color-success, 10%); -@ms2-color-warning-hover: lighten(@ms2-color-warning, 10%); -@ms2-color-danger-hover: lighten(@ms2-color-danger, 10%); +/* btn disabled */ +@ms2-btn-disabled-color: #ffffff; +@ms2-btn-disabled-bg: #5C9FB4; -@ms2-color-primary-light: lighten(@ms2-color-primary, 40%); -@ms2-color-info-light: lighten(@ms2-color-info, 40%); -@ms2-color-success-light: lighten(@ms2-color-success, 40%); -@ms2-color-warning-light: lighten(@ms2-color-warning, 40%); -@ms2-color-danger-light: lighten(@ms2-color-danger, 40%); +/* tooltip */ +@ms2-tooltip-color: #ffffff; +@ms2-tooltip-bg: #444444; -@ms2-color-primary-active: darken(@ms2-color-primary, 20%); +/* font */ +@ms2-font-size-base: 14px; +@ms2-font-family-sans-serif: 'Raleway', sans-serif; +@ms2-font-family-serif: Georgia, "Times New Roman", Times, serif; +@ms2-font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace; -@ms2-color-shade: #555555; -@ms2-color-shade-darker: #222222; -@ms2-color-shade-dark: #333333; -@ms2-color-shade-light: #999999; -@ms2-color-shade-lighter: #eeeeee; +/* radius */ +@ms2-radius-base: 0; // 4px; +@ms2-radius-large: @ms2-radius-base; // 6px; +@ms2-radius-small: @ms2-radius-base; // 3px; -@font-family-base: 'Raleway', sans-serif; -@font-size-base: 14px; -@font-size-large: ceil(@font-size-base * 1.25); -@font-size-small: ceil(@font-size-base * 0.85); -@font-size-h1: floor((@font-size-base * 1.9)); -@font-size-h2: floor((@font-size-base * 1.7)); -@font-size-h3: floor((@font-size-base * 1.5)); -@font-size-h4: floor((@font-size-base * 1.25)); -@font-size-h5: @font-size-base; -@font-size-h6: floor((@font-size-base * 0.85)); -@line-height-computed: floor(@font-size-base * 1.428571429); +/* grid btn */ +@ms2-grid-btn-icon-size: 18px; +@ms2-grid-btn-padding: 6px; +@ms2-grid-btn-side: @ms2-grid-btn-padding * 2 + @ms2-grid-btn-icon-size; -@btn-font-weight: normal; -@icon-margin-ratio: 2; -@icon-resize-ratio: 1.5; +/* square btn */ +@ms2-square-btn-margin-ratio: 2; +@ms2-square-btn-resize-ratio: 1.5; +@ms2-square-btn-icon-size: 26px; +@ms2-square-btn-padding: floor(@ms2-square-btn-icon-size / @ms2-square-btn-margin-ratio); +@ms2-square-btn-side: @ms2-square-btn-padding * 2 + @ms2-square-btn-icon-size; -@icon-size: 26px; -@padding-left-square: floor(@icon-size/@icon-margin-ratio); -@square-btn-size: @padding-left-square * 2 + @icon-size; +@ms2-square-btn-icon-size-md: floor(@ms2-square-btn-icon-size / @ms2-square-btn-resize-ratio); +@ms2-square-btn-icon-size-sm: floor(@ms2-square-btn-icon-size-md / @ms2-square-btn-resize-ratio); +/* @icon-size-md: floor(@icon-size / @icon-resize-ratio); @padding-left-square-md: floor(@icon-size-md / @icon-margin-ratio); @square-btn-medium-size: @padding-left-square-md * 2 + @icon-size-md; @@ -62,7 +68,4 @@ @icon-size-sm: floor(@icon-size-md / @icon-resize-ratio); @padding-left-square-sm: floor(@icon-size-sm / @icon-margin-ratio); @square-btn-small-size: @padding-left-square-sm * 2 + @icon-size-sm; - -@grid-icon-size: 18px; -@grid-btn-padding-left: 6px; -@grid-btn-size: @grid-btn-padding-left * 2 + @grid-icon-size; +*/ diff --git a/web/client/themes/geosolutions/theme.less b/web/client/themes/geosolutions/theme.less index 868600e7a8..4a3542f16c 100644 --- a/web/client/themes/geosolutions/theme.less +++ b/web/client/themes/geosolutions/theme.less @@ -1,5 +1,5 @@ @import "../default/icons.less"; -@import "../default/bootstrap-theme.less"; -@import "../default/ms2-theme.less"; +@import "../default/bootstrap-theme/bootstrap.less"; +@import "../default/mapstore2-theme/mapstore2.less"; @import "../default/variables.less"; @import "variables.less"; diff --git a/web/client/themes/geosolutions/variables.less b/web/client/themes/geosolutions/variables.less index 6839b10086..27cb82e2da 100644 --- a/web/client/themes/geosolutions/variables.less +++ b/web/client/themes/geosolutions/variables.less @@ -1,23 +1,20 @@ -@ms2-color-background: #ffffff; +/* base color */ +@ms2-text-color: #333333; +@ms2-body-bg: #ffffff; -@ms2-color-text-primary: #ffffff; -@ms2-color-text: #333333; +/* disabled color */ +@ms2-disabled-color: #aaaaaa; +@ms2-disabled-bg: #eeeeee; -@ms2-color-disabled: #eeeeee; -@ms2-color-text-disabled: #aaaaaa; +/* brand color */ +@ms2-primary-color: #ffffff; +@ms2-primary-bg: #3ca9d6; +@ms2-info-bg: #55ba58; +@ms2-success-bg: #8ae234; +@ms2-warning-bg: #ffd700; +@ms2-danger-bg: #bb384b; -@ms2-color-primary: #3ca9d6; -@ms2-color-info: #55ba58; -@ms2-color-success: #8ae234; -@ms2-color-warning: #ffd700; -@ms2-color-danger: #bb384b; - -@ms2-color-primary-hover: #62AE4A; -@ms2-color-primary-light: lighten(@ms2-color-primary-hover, 40%); - -@ms2-color-shade: #bbbbbb; -@ms2-color-shade-darker: darken(@ms2-color-shade, 10%); -@ms2-color-shade-dark: darken(@ms2-color-shade, 5%); -@ms2-color-shade-light: lighten(@ms2-color-shade, 5%); -@ms2-color-shade-lighter: lighten(@ms2-color-shade, 10%); +/* btn disabled */ +@ms2-btn-disabled-color: #aaaaaa; +@ms2-btn-disabled-bg: #eeeeee; diff --git a/web/client/themes/wasabi/theme.less b/web/client/themes/wasabi/theme.less index 868600e7a8..4a3542f16c 100644 --- a/web/client/themes/wasabi/theme.less +++ b/web/client/themes/wasabi/theme.less @@ -1,5 +1,5 @@ @import "../default/icons.less"; -@import "../default/bootstrap-theme.less"; -@import "../default/ms2-theme.less"; +@import "../default/bootstrap-theme/bootstrap.less"; +@import "../default/mapstore2-theme/mapstore2.less"; @import "../default/variables.less"; @import "variables.less"; diff --git a/web/client/themes/wasabi/variables.less b/web/client/themes/wasabi/variables.less index a123e11797..10f01482e4 100644 --- a/web/client/themes/wasabi/variables.less +++ b/web/client/themes/wasabi/variables.less @@ -1,20 +1,20 @@ -@ms2-color-background: #333333; +/* base color */ +@ms2-text-color: #e99e9e; +@ms2-body-bg: #333333; -@ms2-color-text-primary: #333333; -@ms2-color-text: #e99e9e; +/* disabled color */ +@ms2-disabled-color: #aaaaaa; +@ms2-disabled-bg: #eeeeee; -@ms2-color-disabled: #eeeeee; -@ms2-color-text-disabled: #aaaaaa; +/* brand color */ +@ms2-primary-color: #333333; +@ms2-primary-bg: #8ae234; +@ms2-info-bg: #8ae234; +@ms2-success-bg: #4abdac; +@ms2-warning-bg: #ffd700; +@ms2-danger-bg: #bb384b; -@ms2-color-primary: #8ae234; -@ms2-color-info: #7e64a5; -@ms2-color-success: #4abdac; -@ms2-color-warning: #ffd700; -@ms2-color-danger: #bb384b; - -@ms2-color-shade: #333333; -@ms2-color-shade-darker: darken(@ms2-color-shade, 10%); -@ms2-color-shade-dark: darken(@ms2-color-shade, 5%); -@ms2-color-shade-light: lighten(@ms2-color-shade, 5%); -@ms2-color-shade-lighter: lighten(@ms2-color-shade, 10%); +/* btn disabled */ +@ms2-btn-disabled-color: #aaaaaa; +@ms2-btn-disabled-bg: #eeeeee;