From 522238f2e2d6cc475b8c08435d56765bf07fa95e Mon Sep 17 00:00:00 2001 From: Alex Solomaha Date: Sun, 29 Jan 2017 21:43:39 +0200 Subject: [PATCH 01/45] Material try --- assets/AppAsset.php | 1 + config/main.php | 3 +- views/layouts/_header.php | 116 +- web/css/site.css | 9 + web/css/theme.css | 6795 +++++++++++++++++++++++++++++++++++++ 5 files changed, 6810 insertions(+), 114 deletions(-) create mode 100644 web/css/theme.css diff --git a/assets/AppAsset.php b/assets/AppAsset.php index 87f2f9c..aea4238 100644 --- a/assets/AppAsset.php +++ b/assets/AppAsset.php @@ -10,6 +10,7 @@ class AppAsset extends AssetBundle public $baseUrl = '@web'; public $css = [ 'https://fonts.googleapis.com/css?family=Product+Sans', + 'css/theme.css', 'css/site.css', ]; public $js = [ diff --git a/config/main.php b/config/main.php index 44726b4..b0a5291 100644 --- a/config/main.php +++ b/config/main.php @@ -40,7 +40,6 @@ return [ 'showScriptName' => false, 'rules' => [ '' => 'panel/index', - 'login' => 'auth/login', '' => '/index', 'admin///' => 'admin//', 'admin//' => 'admin//view', @@ -62,7 +61,7 @@ return [ 'assetManager' => [ 'bundles' => [ 'dmstr\web\AdminLteAsset' => [ - 'skin' => 'skin-purple', +// 'skin' => 'skin-purple', ], // 'yii\bootstrap\BootstrapAsset' => [ // 'css' => [], diff --git a/views/layouts/_header.php b/views/layouts/_header.php index 3d291fc..f9b4486 100644 --- a/views/layouts/_header.php +++ b/views/layouts/_header.php @@ -10,47 +10,16 @@ use yii\helpers\Url;
- SHSolomaha Home', - Yii::$app->homeUrl, ['class' => 'logo']) ?> +
diff --git a/views/layouts/base.php b/views/layouts/base.php index 10144cb..9e401db 100644 --- a/views/layouts/base.php +++ b/views/layouts/base.php @@ -9,7 +9,7 @@ use yii\helpers\Html; use app\assets\AppAsset; AppAsset::register($this); -AdminLteAsset::register($this); +//AdminLteAsset::register($this); MDThemeAsset::register($this); ?> @@ -36,7 +36,7 @@ MDThemeAsset::register($this); head() ?> - + beginBody() ?> diff --git a/views/layouts/main.php b/views/layouts/main.php index f5ed0bf..d466cea 100644 --- a/views/layouts/main.php +++ b/views/layouts/main.php @@ -7,7 +7,7 @@ render('_header.php') ?> - render('_left.php') ?> +render('_left.php') ?> render('_content.php', ['content' => $content]) ?> diff --git a/views/panel/_rgb.php b/views/panel/_rgb.php index d5a0b04..306423d 100644 --- a/views/panel/_rgb.php +++ b/views/panel/_rgb.php @@ -3,35 +3,17 @@ /* @var $this yii\web\View */ /* @var $item \app\models\Item */ +use rmrevin\yii\fontawesome\FA; + ?> -
-
- - -
-
- name ?> - - -
-
- Режимы -
-
-
-
-
-
-
-
-
+
+
+
+ icon) ?> +
+
+ name ?>
diff --git a/views/panel/_variable.php b/views/panel/_variable.php index b648885..b896649 100644 --- a/views/panel/_variable.php +++ b/views/panel/_variable.php @@ -3,17 +3,15 @@ /* @var $this yii\web\View */ /* @var $item \app\models\Item */ +use rmrevin\yii\fontawesome\FA; + ?> -
-
- - -
- name ?> - NaN +
+
+
+ icon) ?>
- +
0
diff --git a/web/css/md.theme.css b/web/css/md.theme.css index 2fb065e..5af674b 100644 --- a/web/css/md.theme.css +++ b/web/css/md.theme.css @@ -1,4 +1,12 @@ -/* Fixes to Admin */ +/* General Syles */ +body { + background: #e8e8e8; +} + +main { + padding-top: 60px; +} + .navbar-title { display: inline-block; line-height: 64px; @@ -7,10 +15,6 @@ font-size: 24px; } -.main-header .navbar { - margin-left: 0; -} - a.product-font { color: #fff; } @@ -19,26 +23,18 @@ a.product-font:hover { text-decoration: none; } -.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p { - color: #000; -} - -.navbar-nav > .user-menu > .dropdown-menu { - width: 400px; -} - -.navbar-nav > .user-menu > .dropdown-menu > li.user-header { - height: auto; -} - -/* General Syles */ -body { - background: #e8e8e8; +.navbar .user-image { + float: left; + width: 25px; + height: 25px; + border-radius: 50%; + margin-right: 10px; + margin-top: -1px; } .card { background: #fff; - box-shadow: 0 2px 2px 0 rgba(0,0,0,.14), 0 3px 1px -2px rgba(0,0,0,.2), 0 1px 5px 0 rgba(0,0,0,.12); + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12); overflow: hidden; margin-bottom: 20px; border-radius: 2px; @@ -69,7 +65,8 @@ body { background: #909090; } -.panel-item-switch-icon { +.panel-item-switch-icon, +.panel-item-rgb-icon { position: absolute; padding: 0 15px 0 20px; font-size: 20px; @@ -80,12 +77,47 @@ body { border-bottom-left-radius: 30px; } -.panel-item-switch-name { +.panel-item-switch-name, +.panel-item-rgb-name { text-align: center; width: 100%; padding-left: 35px; } +.panel-item.panel-item-variable { + width: 100%; + background: #009688; + border-radius: 2px; + box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, .12), 0 1px 1px 0 rgba(0, 0, 0, .24); + color: #fff; + text-align: center; + margin: 15px 0; + cursor: pointer; +} + +.panel-item-variable .item-variable-icon { + font-size: 45px; +} + +.panel-item-variable .item-variable-value { + background: rgba(0, 0, 0, 0.3); + font-size: 20px; +} + +.panel-item.panel-item-rgb { + background: #909090; + border-radius: 30px; + color: #fff; + margin: 10px 0; + display: flex; + cursor: pointer; + align-items: center; + min-height: 50px; + box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, .12), 0 1px 1px 0 rgba(0, 0, 0, .24); + transition: 0.5s; + user-select: none; +} + /* Migration styles !!! */ .box { position: relative; diff --git a/web/css/theme.less b/web/css/theme.less deleted file mode 100644 index 1d32ced..0000000 --- a/web/css/theme.less +++ /dev/null @@ -1,623 +0,0 @@ -// Paper 3.3.7 -// Bootswatch -// ----------------------------------------------------- - -@web-font-path: "https://fonts.googleapis.com/css?family=Roboto:300,400,500,700"; - -.web-font(@path) { - @import url("@{path}"); -} -.web-font(@web-font-path); - -// Navbar ===================================================================== - -.navbar { - border: none; - .box-shadow(0 1px 2px rgba(0,0,0,.3)); - - &-brand { - font-size: 24px; - } - - &-inverse { - .navbar-form { - - input[type=text], - input[type=password] { - color: #fff; - .box-shadow(inset 0 -1px 0 @navbar-inverse-link-color); - .placeholder(@navbar-inverse-link-color); - - &:focus { - .box-shadow(inset 0 -2px 0 #fff); - } - } - } - } -} - -// Buttons ==================================================================== - -#btn(@class,@bg) { - .btn-@{class} { - background-size: 200% 200%; - background-position: 50%; - - &:focus { - background-color: @bg; - } - - &:hover, - &:active:hover { - background-color: darken(@bg, 6%); - } - - &:active { - background-color: darken(@bg, 12%); - #gradient > .radial(darken(@bg, 12%) 10%, @bg 11%); - background-size: 1000% 1000%; - .box-shadow(2px 2px 4px rgba(0,0,0,.4)); - } - } -} - -#btn(default,@btn-default-bg); -#btn(primary,@btn-primary-bg); -#btn(success,@btn-success-bg); -#btn(info,@btn-info-bg); -#btn(warning,@btn-warning-bg); -#btn(danger,@btn-danger-bg); -#btn(link,#fff); - -.btn { - text-transform: uppercase; - border: none; - .box-shadow(1px 1px 4px rgba(0,0,0,.4)); - .transition(all 0.4s); - - &-link { - border-radius: @btn-border-radius-base; - .box-shadow(none); - color: @btn-default-color; - - &:hover, - &:focus { - .box-shadow(none); - color: @btn-default-color; - text-decoration: none; - } - } - - &-default { - - &.disabled { - background-color: rgba(0, 0, 0, 0.1); - color: rgba(0, 0, 0, 0.4); - opacity: 1; - } - } -} - -.btn-group { - .btn + .btn, - .btn + .btn-group, - .btn-group + .btn, - .btn-group + .btn-group { - margin-left: 0; - } - - &-vertical { - > .btn + .btn, - > .btn + .btn-group, - > .btn-group + .btn, - > .btn-group + .btn-group { - margin-top: 0; - } - } -} - -// Typography ================================================================= - -body { - -webkit-font-smoothing: antialiased; - letter-spacing: .1px; -} - -p { - margin: 0 0 1em; -} - -input, -button { - -webkit-font-smoothing: antialiased; - letter-spacing: .1px; -} - -a { - .transition(all 0.2s); -} - -// Tables ===================================================================== - -.table-hover { - > tbody > tr, - > tbody > tr > th, - > tbody > tr > td { - .transition(all 0.2s); - } -} - -// Forms ====================================================================== - -label { - font-weight: normal; -} - -textarea, -textarea.form-control, -input.form-control, -input[type=text], -input[type=password], -input[type=email], -input[type=number], -[type=text].form-control, -[type=password].form-control, -[type=email].form-control, -[type=tel].form-control, -[contenteditable].form-control { - padding: 0; - border: none; - border-radius: 0; - -webkit-appearance: none; - .box-shadow(inset 0 -1px 0 #ddd); - font-size: 16px; - - &:focus { - .box-shadow(inset 0 -2px 0 @brand-primary); - } - - &[disabled], - &[readonly] { - .box-shadow(none); - border-bottom: 1px dotted #ddd; - } - - &.input { - &-sm { - font-size: @font-size-small; - } - - &-lg { - font-size: @font-size-large; - } - } -} - -select, -select.form-control { - border: 0; - border-radius: 0; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - padding-left: 0; - padding-right: 0\9; // remove padding for < ie9 since default arrow can't be removed - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEVmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmaP/QSjAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=); - background-size: 13px; - background-repeat: no-repeat; - background-position: right center; - .box-shadow(inset 0 -1px 0 #ddd); - font-size: 16px; - line-height: 1.5; - - &::-ms-expand { - display: none; - } - - &.input { - &-sm { - font-size: @font-size-small; - } - - &-lg { - font-size: @font-size-large; - } - } - - &:focus { - .box-shadow(inset 0 -2px 0 @brand-primary); - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEUhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISF8S9ewAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=); - } - - &[multiple] { - background: none; - } -} - -.radio, -.radio-inline, -.checkbox, -.checkbox-inline { - label { - padding-left: 25px; - } - - input[type="radio"], - input[type="checkbox"] { - margin-left: -25px; - } -} - -input[type="radio"], -.radio input[type="radio"], -.radio-inline input[type="radio"] { - position: relative; - margin-top: 6px; - margin-right: 4px; - vertical-align: top; - border: none; - background-color: transparent; - -webkit-appearance: none; - appearance: none; - cursor: pointer; - - &:focus { - outline: none; - } - - &:before, - &:after { - content: ""; - display: block; - width: 18px; - height: 18px; - border-radius: 50%; - .transition(240ms); - } - - &:before { - position: absolute; - left: 0; - top: -3px; - background-color: @brand-primary; - .scale(0); - } - - &:after { - position: relative; - top: -3px; - border: 2px solid @gray; - } - - &:checked:before { - .scale(0.5); - } - - &:disabled:checked:before { - background-color: @gray-light; - } - - &:checked:after { - border-color: @brand-primary; - } - - &:disabled:after, - &:disabled:checked:after { - border-color: @gray-light; - } -} - -input[type="checkbox"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: relative; - border: none; - margin-bottom: -4px; - -webkit-appearance: none; - appearance: none; - cursor: pointer; - - &:focus { - outline: none; - } - - &:focus:after { - border-color: @brand-primary; - } - - &:after { - content: ""; - display: block; - width: 18px; - height: 18px; - margin-top: -2px; - margin-right: 5px; - border: 2px solid @gray; - border-radius: 2px; - .transition(240ms); - } - - &:checked:before { - content: ""; - position: absolute; - top: 0; - left: 6px; - display: table; - width: 6px; - height: 12px; - border: 2px solid #fff; - border-top-width: 0; - border-left-width: 0; - .rotate(45deg); - } - - &:checked:after { - background-color: @brand-primary; - border-color: @brand-primary; - } - - &:disabled:after { - border-color: @gray-light; - } - - &:disabled:checked:after { - background-color: @gray-light; - border-color: transparent; - } -} - -.has-warning { - input:not([type=checkbox]), - .form-control, - input.form-control[readonly], - input[type=text][readonly], - [type=text].form-control[readonly], - input:not([type=checkbox]):focus, - .form-control:focus { - border-bottom: none; - .box-shadow(inset 0 -2px 0 @brand-warning); - } -} - -.has-error { - input:not([type=checkbox]), - .form-control, - input.form-control[readonly], - input[type=text][readonly], - [type=text].form-control[readonly], - input:not([type=checkbox]):focus, - .form-control:focus { - border-bottom: none; - .box-shadow(inset 0 -2px 0 @brand-danger); - } -} - -.has-success { - input:not([type=checkbox]), - .form-control, - input.form-control[readonly], - input[type=text][readonly], - [type=text].form-control[readonly], - input:not([type=checkbox]):focus, - .form-control:focus { - border-bottom: none; - .box-shadow(inset 0 -2px 0 @brand-success); - } -} - -// Remove the Bootstrap feedback styles for input addons -.input-group-addon { - .has-warning &, .has-error &, .has-success & { - color: @input-color; - border-color: @input-group-addon-border-color; - background-color: @input-group-addon-bg; - } -} - -.form-group-lg { - select, - select.form-control { - line-height: 1.5; - } -} - -// Navs ======================================================================= - -.nav-tabs { - > li > a, - > li > a:focus { - margin-right: 0; - background-color: transparent; - border: none; - color: @navbar-default-link-color; - .box-shadow(inset 0 -1px 0 #ddd); - .transition(all 0.2s); - - &:hover { - background-color: transparent; - .box-shadow(inset 0 -2px 0 @brand-primary); - color: @brand-primary; - } - } - - & > li.active > a, - & > li.active > a:focus { - border: none; - .box-shadow(inset 0 -2px 0 @brand-primary); - color: @brand-primary; - - &:hover { - border: none; - color: @brand-primary; - } - } - - & > li.disabled > a { - .box-shadow(inset 0 -1px 0 #ddd); - } - - &.nav-justified { - - & > li > a, - & > li > a:hover, - & > li > a:focus, - & > .active > a, - & > .active > a:hover, - & > .active > a:focus { - border: none; - } - } - - .dropdown-menu { - margin-top: 0; - } -} - -.dropdown-menu { - margin-top: 0; - border: none; - .box-shadow(0 1px 4px rgba(0,0,0,.3)); -} - -// Indicators ================================================================= - -.alert { - border: none; - color: #fff; - - &-success { - background-color: @brand-success; - } - - &-info { - background-color: @brand-info; - } - - &-warning { - background-color: @brand-warning; - } - - &-danger { - background-color: @brand-danger; - } - - a:not(.close):not(.btn), - .alert-link { - color: #fff; - font-weight: bold; - } - - .close { - color: #fff; - } -} - -.badge { - padding: 4px 6px 4px; -} - -.progress { - position: relative; - z-index: 1; - height: 6px; - border-radius: 0; - - .box-shadow(none); - - &-bar { - .box-shadow(none); - - &:last-child { - border-radius: 0 3px 3px 0; - } - - &:last-child { - &:before { - display: block; - content: ""; - position: absolute; - width: 100%; - height: 100%; - left: 0; - right: 0; - z-index: -1; - background-color: lighten(@progress-bar-bg, 35%); - } - } - - &-success:last-child.progress-bar:before { - background-color: lighten(@brand-success, 35%); - } - - &-info:last-child.progress-bar:before { - background-color: lighten(@brand-info, 45%); - } - &-warning:last-child.progress-bar:before { - background-color: lighten(@brand-warning, 35%); - } - - &-danger:last-child.progress-bar:before { - background-color: lighten(@brand-danger, 25%); - } - } -} - -// Progress bars ============================================================== - -// Containers ================================================================= - -.close { - font-size: 34px; - font-weight: 300; - line-height: 24px; - opacity: 0.6; - .transition(all 0.2s); - - &:hover { - opacity: 1; - } -} - -.list-group { - - &-item { - padding: 15px; - } - - &-item-text { - color: @gray-light; - } -} - -.well { - border-radius: 0; - .box-shadow(none); -} - -.panel { - border: none; - border-radius: 2px; - .box-shadow(0 1px 4px rgba(0,0,0,.3)); - - &-heading { - border-bottom: none; - } - - &-footer { - border-top: none; - } -} - -.popover { - border: none; - .box-shadow(0 1px 4px rgba(0,0,0,.3)); -} - -.carousel { - &-caption { - h1, h2, h3, h4, h5, h6 { - color: inherit; - } - } -} - diff --git a/web/css/theme.min.css b/web/css/theme.min.css deleted file mode 100644 index cc6d71c..0000000 --- a/web/css/theme.min.css +++ /dev/null @@ -1,1548 +0,0 @@ -/*! Generated by Live LESS Theme Customizer */ -@import url(https://fonts.googleapis.com/css?family=Roboto:300,400,500,700); -.label,sub,sup{vertical-align:baseline} -body,figure{margin:0} -.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px} -html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-size:10px;-webkit-tap-highlight-color:transparent} -article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,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-color:transparent} -a:active,a:hover{outline:0} -b,optgroup,strong{font-weight:700} -dfn{font-style:italic} -h1{margin:.67em 0} -mark{background:#ff0;color:#000} -sub,sup{font-size:75%;line-height:0;position:relative} -sup{top:-.5em} -sub{bottom:-.25em} -img{border:0;vertical-align:middle} -svg:not(:root){overflow:hidden} -hr{box-sizing:content-box;height:0} -pre,textarea{overflow:auto} -code,kbd,pre,samp{font-size:1em} -button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0} -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[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-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none} -table{border-collapse:collapse;border-spacing:0} -td,th{padding:0} -@media print{blockquote,img,pre,tr{page-break-inside:avoid} -*,:after,:before{background:0 0!important;color:#000!important;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) ")"} -a[href^="javascript:"]:after,a[href^="#"]:after{content:""} -blockquote,pre{border:1px solid #999} -thead{display:table-header-group} -img{max-width:100%!important} -h2,h3,p{orphans:3;widows:3} -h2,h3{page-break-after:avoid} -.navbar{display:none} -.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important} -.label{border:1px solid #000} -.table{border-collapse:collapse!important} -.table td,.table th{background-color:#fff!important} -.table-bordered td,.table-bordered th{border:1px solid #ddd!important} -} -.img-thumbnail,body{background-color:#fff} -.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none} -@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')} -.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale} -.glyphicon-asterisk:before{content:"\002a"} -.glyphicon-plus:before{content:"\002b"} -.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"} -.glyphicon-minus:before{content:"\2212"} -.glyphicon-cloud:before{content:"\2601"} -.glyphicon-envelope:before{content:"\2709"} -.glyphicon-pencil:before{content:"\270f"} -.glyphicon-glass:before{content:"\e001"} -.glyphicon-music:before{content:"\e002"} -.glyphicon-search:before{content:"\e003"} -.glyphicon-heart:before{content:"\e005"} -.glyphicon-star:before{content:"\e006"} -.glyphicon-star-empty:before{content:"\e007"} -.glyphicon-user:before{content:"\e008"} -.glyphicon-film:before{content:"\e009"} -.glyphicon-th-large:before{content:"\e010"} -.glyphicon-th:before{content:"\e011"} -.glyphicon-th-list:before{content:"\e012"} -.glyphicon-ok:before{content:"\e013"} -.glyphicon-remove:before{content:"\e014"} -.glyphicon-zoom-in:before{content:"\e015"} -.glyphicon-zoom-out:before{content:"\e016"} -.glyphicon-off:before{content:"\e017"} -.glyphicon-signal:before{content:"\e018"} -.glyphicon-cog:before{content:"\e019"} -.glyphicon-trash:before{content:"\e020"} -.glyphicon-home:before{content:"\e021"} -.glyphicon-file:before{content:"\e022"} -.glyphicon-time:before{content:"\e023"} -.glyphicon-road:before{content:"\e024"} -.glyphicon-download-alt:before{content:"\e025"} -.glyphicon-download:before{content:"\e026"} -.glyphicon-upload:before{content:"\e027"} -.glyphicon-inbox:before{content:"\e028"} -.glyphicon-play-circle:before{content:"\e029"} -.glyphicon-repeat:before{content:"\e030"} -.glyphicon-refresh:before{content:"\e031"} -.glyphicon-list-alt:before{content:"\e032"} -.glyphicon-lock:before{content:"\e033"} -.glyphicon-flag:before{content:"\e034"} -.glyphicon-headphones:before{content:"\e035"} -.glyphicon-volume-off:before{content:"\e036"} -.glyphicon-volume-down:before{content:"\e037"} -.glyphicon-volume-up:before{content:"\e038"} -.glyphicon-qrcode:before{content:"\e039"} -.glyphicon-barcode:before{content:"\e040"} -.glyphicon-tag:before{content:"\e041"} -.glyphicon-tags:before{content:"\e042"} -.glyphicon-book:before{content:"\e043"} -.glyphicon-bookmark:before{content:"\e044"} -.glyphicon-print:before{content:"\e045"} -.glyphicon-camera:before{content:"\e046"} -.glyphicon-font:before{content:"\e047"} -.glyphicon-bold:before{content:"\e048"} -.glyphicon-italic:before{content:"\e049"} -.glyphicon-text-height:before{content:"\e050"} -.glyphicon-text-width:before{content:"\e051"} -.glyphicon-align-left:before{content:"\e052"} -.glyphicon-align-center:before{content:"\e053"} -.glyphicon-align-right:before{content:"\e054"} -.glyphicon-align-justify:before{content:"\e055"} -.glyphicon-list:before{content:"\e056"} -.glyphicon-indent-left:before{content:"\e057"} -.glyphicon-indent-right:before{content:"\e058"} -.glyphicon-facetime-video:before{content:"\e059"} -.glyphicon-picture:before{content:"\e060"} -.glyphicon-map-marker:before{content:"\e062"} -.glyphicon-adjust:before{content:"\e063"} -.glyphicon-tint:before{content:"\e064"} -.glyphicon-edit:before{content:"\e065"} -.glyphicon-share:before{content:"\e066"} -.glyphicon-check:before{content:"\e067"} -.glyphicon-move:before{content:"\e068"} -.glyphicon-step-backward:before{content:"\e069"} -.glyphicon-fast-backward:before{content:"\e070"} -.glyphicon-backward:before{content:"\e071"} -.glyphicon-play:before{content:"\e072"} -.glyphicon-pause:before{content:"\e073"} -.glyphicon-stop:before{content:"\e074"} -.glyphicon-forward:before{content:"\e075"} -.glyphicon-fast-forward:before{content:"\e076"} -.glyphicon-step-forward:before{content:"\e077"} -.glyphicon-eject:before{content:"\e078"} -.glyphicon-chevron-left:before{content:"\e079"} -.glyphicon-chevron-right:before{content:"\e080"} -.glyphicon-plus-sign:before{content:"\e081"} -.glyphicon-minus-sign:before{content:"\e082"} -.glyphicon-remove-sign:before{content:"\e083"} -.glyphicon-ok-sign:before{content:"\e084"} -.glyphicon-question-sign:before{content:"\e085"} -.glyphicon-info-sign:before{content:"\e086"} -.glyphicon-screenshot:before{content:"\e087"} -.glyphicon-remove-circle:before{content:"\e088"} -.glyphicon-ok-circle:before{content:"\e089"} -.glyphicon-ban-circle:before{content:"\e090"} -.glyphicon-arrow-left:before{content:"\e091"} -.glyphicon-arrow-right:before{content:"\e092"} -.glyphicon-arrow-up:before{content:"\e093"} -.glyphicon-arrow-down:before{content:"\e094"} -.glyphicon-share-alt:before{content:"\e095"} -.glyphicon-resize-full:before{content:"\e096"} -.glyphicon-resize-small:before{content:"\e097"} -.glyphicon-exclamation-sign:before{content:"\e101"} -.glyphicon-gift:before{content:"\e102"} -.glyphicon-leaf:before{content:"\e103"} -.glyphicon-fire:before{content:"\e104"} -.glyphicon-eye-open:before{content:"\e105"} -.glyphicon-eye-close:before{content:"\e106"} -.glyphicon-warning-sign:before{content:"\e107"} -.glyphicon-plane:before{content:"\e108"} -.glyphicon-calendar:before{content:"\e109"} -.glyphicon-random:before{content:"\e110"} -.glyphicon-comment:before{content:"\e111"} -.glyphicon-magnet:before{content:"\e112"} -.glyphicon-chevron-up:before{content:"\e113"} -.glyphicon-chevron-down:before{content:"\e114"} -.glyphicon-retweet:before{content:"\e115"} -.glyphicon-shopping-cart:before{content:"\e116"} -.glyphicon-folder-close:before{content:"\e117"} -.glyphicon-folder-open:before{content:"\e118"} -.glyphicon-resize-vertical:before{content:"\e119"} -.glyphicon-resize-horizontal:before{content:"\e120"} -.glyphicon-hdd:before{content:"\e121"} -.glyphicon-bullhorn:before{content:"\e122"} -.glyphicon-bell:before{content:"\e123"} -.glyphicon-certificate:before{content:"\e124"} -.glyphicon-thumbs-up:before{content:"\e125"} -.glyphicon-thumbs-down:before{content:"\e126"} -.glyphicon-hand-right:before{content:"\e127"} -.glyphicon-hand-left:before{content:"\e128"} -.glyphicon-hand-up:before{content:"\e129"} -.glyphicon-hand-down:before{content:"\e130"} -.glyphicon-circle-arrow-right:before{content:"\e131"} -.glyphicon-circle-arrow-left:before{content:"\e132"} -.glyphicon-circle-arrow-up:before{content:"\e133"} -.glyphicon-circle-arrow-down:before{content:"\e134"} -.glyphicon-globe:before{content:"\e135"} -.glyphicon-wrench:before{content:"\e136"} -.glyphicon-tasks:before{content:"\e137"} -.glyphicon-filter:before{content:"\e138"} -.glyphicon-briefcase:before{content:"\e139"} -.glyphicon-fullscreen:before{content:"\e140"} -.glyphicon-dashboard:before{content:"\e141"} -.glyphicon-paperclip:before{content:"\e142"} -.glyphicon-heart-empty:before{content:"\e143"} -.glyphicon-link:before{content:"\e144"} -.glyphicon-phone:before{content:"\e145"} -.glyphicon-pushpin:before{content:"\e146"} -.glyphicon-usd:before{content:"\e148"} -.glyphicon-gbp:before{content:"\e149"} -.glyphicon-sort:before{content:"\e150"} -.glyphicon-sort-by-alphabet:before{content:"\e151"} -.glyphicon-sort-by-alphabet-alt:before{content:"\e152"} -.glyphicon-sort-by-order:before{content:"\e153"} -.glyphicon-sort-by-order-alt:before{content:"\e154"} -.glyphicon-sort-by-attributes:before{content:"\e155"} -.glyphicon-sort-by-attributes-alt:before{content:"\e156"} -.glyphicon-unchecked:before{content:"\e157"} -.glyphicon-expand:before{content:"\e158"} -.glyphicon-collapse-down:before{content:"\e159"} -.glyphicon-collapse-up:before{content:"\e160"} -.glyphicon-log-in:before{content:"\e161"} -.glyphicon-flash:before{content:"\e162"} -.glyphicon-log-out:before{content:"\e163"} -.glyphicon-new-window:before{content:"\e164"} -.glyphicon-record:before{content:"\e165"} -.glyphicon-save:before{content:"\e166"} -.glyphicon-open:before{content:"\e167"} -.glyphicon-saved:before{content:"\e168"} -.glyphicon-import:before{content:"\e169"} -.glyphicon-export:before{content:"\e170"} -.glyphicon-send:before{content:"\e171"} -.glyphicon-floppy-disk:before{content:"\e172"} -.glyphicon-floppy-saved:before{content:"\e173"} -.glyphicon-floppy-remove:before{content:"\e174"} -.glyphicon-floppy-save:before{content:"\e175"} -.glyphicon-floppy-open:before{content:"\e176"} -.glyphicon-credit-card:before{content:"\e177"} -.glyphicon-transfer:before{content:"\e178"} -.glyphicon-cutlery:before{content:"\e179"} -.glyphicon-header:before{content:"\e180"} -.glyphicon-compressed:before{content:"\e181"} -.glyphicon-earphone:before{content:"\e182"} -.glyphicon-phone-alt:before{content:"\e183"} -.glyphicon-tower:before{content:"\e184"} -.glyphicon-stats:before{content:"\e185"} -.glyphicon-sd-video:before{content:"\e186"} -.glyphicon-hd-video:before{content:"\e187"} -.glyphicon-subtitles:before{content:"\e188"} -.glyphicon-sound-stereo:before{content:"\e189"} -.glyphicon-sound-dolby:before{content:"\e190"} -.glyphicon-sound-5-1:before{content:"\e191"} -.glyphicon-sound-6-1:before{content:"\e192"} -.glyphicon-sound-7-1:before{content:"\e193"} -.glyphicon-copyright-mark:before{content:"\e194"} -.glyphicon-registration-mark:before{content:"\e195"} -.glyphicon-cloud-download:before{content:"\e197"} -.glyphicon-cloud-upload:before{content:"\e198"} -.glyphicon-tree-conifer:before{content:"\e199"} -.glyphicon-tree-deciduous:before{content:"\e200"} -.glyphicon-cd:before{content:"\e201"} -.glyphicon-save-file:before{content:"\e202"} -.glyphicon-open-file:before{content:"\e203"} -.glyphicon-level-up:before{content:"\e204"} -.glyphicon-copy:before{content:"\e205"} -.glyphicon-paste:before{content:"\e206"} -.glyphicon-alert:before{content:"\e209"} -.glyphicon-equalizer:before{content:"\e210"} -.glyphicon-king:before{content:"\e211"} -.glyphicon-queen:before{content:"\e212"} -.glyphicon-pawn:before{content:"\e213"} -.glyphicon-bishop:before{content:"\e214"} -.glyphicon-knight:before{content:"\e215"} -.glyphicon-baby-formula:before{content:"\e216"} -.glyphicon-tent:before{content:"\26fa"} -.glyphicon-blackboard:before{content:"\e218"} -.glyphicon-bed:before{content:"\e219"} -.glyphicon-apple:before{content:"\f8ff"} -.glyphicon-erase:before{content:"\e221"} -.glyphicon-hourglass:before{content:"\231b"} -.glyphicon-lamp:before{content:"\e223"} -.glyphicon-duplicate:before{content:"\e224"} -.glyphicon-piggy-bank:before{content:"\e225"} -.glyphicon-scissors:before{content:"\e226"} -.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"} -.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"} -.glyphicon-rub:before,.glyphicon-ruble:before{content:"\20bd"} -.glyphicon-scale:before{content:"\e230"} -.glyphicon-ice-lolly:before{content:"\e231"} -.glyphicon-ice-lolly-tasted:before{content:"\e232"} -.glyphicon-education:before{content:"\e233"} -.glyphicon-option-horizontal:before{content:"\e234"} -.glyphicon-option-vertical:before{content:"\e235"} -.glyphicon-menu-hamburger:before{content:"\e236"} -.glyphicon-modal-window:before{content:"\e237"} -.glyphicon-oil:before{content:"\e238"} -.glyphicon-grain:before{content:"\e239"} -.glyphicon-sunglasses:before{content:"\e240"} -.glyphicon-text-size:before{content:"\e241"} -.glyphicon-text-color:before{content:"\e242"} -.glyphicon-text-background:before{content:"\e243"} -.glyphicon-object-align-top:before{content:"\e244"} -.glyphicon-object-align-bottom:before{content:"\e245"} -.glyphicon-object-align-horizontal:before{content:"\e246"} -.glyphicon-object-align-left:before{content:"\e247"} -.glyphicon-object-align-vertical:before{content:"\e248"} -.glyphicon-object-align-right:before{content:"\e249"} -.glyphicon-triangle-right:before{content:"\e250"} -.glyphicon-triangle-left:before{content:"\e251"} -.glyphicon-triangle-bottom:before{content:"\e252"} -.glyphicon-triangle-top:before{content:"\e253"} -.glyphicon-console:before{content:"\e254"} -.glyphicon-superscript:before{content:"\e255"} -.glyphicon-subscript:before{content:"\e256"} -.glyphicon-menu-left:before{content:"\e257"} -.glyphicon-menu-right:before{content:"\e258"} -.glyphicon-menu-down:before{content:"\e259"} -.glyphicon-menu-up:before{content:"\e260"} -*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box} -body{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.846;color:#666} -button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit} -a{color:#2196f3;text-decoration:none} -a:focus,a:hover{color:#0a6ebd;text-decoration:underline} -a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px} -.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto} -.img-rounded{border-radius:3px} -.img-thumbnail{padding:4px;line-height:1.846;border:1px solid #ddd;border-radius:3px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto} -.img-circle{border-radius:50%} -hr{margin-top:23px;margin-bottom:23px;border:0;border-top:1px solid #eee} -.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0} -.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} -[role=button]{cursor:pointer} -.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:400;line-height:1.1;color:#444} -.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#bbb} -.h1,.h2,.h3,h1,h2,h3{margin-top:23px;margin-bottom:11.5px} -.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,.h5,.h6,h4,h5,h6{margin-top:11.5px;margin-bottom:11.5px} -.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:56px} -.h2,h2{font-size:45px} -.h3,h3{font-size:34px} -.h4,h4{font-size:24px} -.h5,h5{font-size:20px} -.h6,.lead,h6{font-size:14px} -.lead{margin-bottom:23px;font-weight:300;line-height:1.4} -dt,kbd kbd{font-weight:700} -@media (min-width:768px){.lead{font-size:19.5px} -} -.small,small{font-size:92%} -.mark,mark{background-color:#ffe0b2;padding:.2em} -.list-inline,.list-unstyled{list-style:none;padding-left:0} -.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} -.text-lowercase{text-transform:lowercase} -.text-uppercase{text-transform:uppercase} -.text-capitalize{text-transform:capitalize} -.text-muted{color:#bbb} -.text-primary{color:#2196f3} -a.text-primary:focus,a.text-primary:hover{color:#0c7cd5} -.text-success{color:#4caf50} -a.text-success:focus,a.text-success:hover{color:#3d8b40} -.text-info{color:#9c27b0} -a.text-info:focus,a.text-info:hover{color:#771e86} -.text-warning{color:#ff9800} -a.text-warning:focus,a.text-warning:hover{color:#cc7a00} -.text-danger{color:#e51c23} -a.text-danger:focus,a.text-danger:hover{color:#b9151b} -.bg-primary{color:#fff;background-color:#2196f3} -a.bg-primary:focus,a.bg-primary:hover{background-color:#0c7cd5} -.bg-success{background-color:#dff0d8} -a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3} -.bg-info{background-color:#e1bee7} -a.bg-info:focus,a.bg-info:hover{background-color:#d099d9} -.bg-warning{background-color:#ffe0b2} -a.bg-warning:focus,a.bg-warning:hover{background-color:#ffcb7f} -.bg-danger{background-color:#f9bdbb} -a.bg-danger:focus,a.bg-danger:hover{background-color:#f5908c} -pre code,table{background-color:transparent} -.page-header{padding-bottom:10.5px;margin:46px 0 23px;border-bottom:1px solid #eee} -dl,ol,ul{margin-top:0} -ol,ul{margin-bottom:11.5px} -ol ol,ol ul,ul ol,ul ul{margin-bottom:0} -.list-inline{margin-left:-5px} -.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px} -dl{margin-bottom:23px} -dd,dt{line-height:1.846} -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[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #bbb} -.initialism{font-size:90%;text-transform:uppercase} -blockquote{padding:11.5px 23px;margin:0 0 23px;font-size:16.25px;border-left:5px solid #eee} -blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0} -blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.846;color:#bbb} -blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'} -.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right} -caption,th{text-align:left} -code,kbd{padding:2px 4px;font-size:90%;border-radius:3px} -.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''} -.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'} -address{margin-bottom:23px;font-style:normal;line-height:1.846} -code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace} -code{color:#c7254e;background-color:#f9f2f4} -kbd{color:#fff;background-color:#333;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)} -kbd kbd{padding:0;font-size:100%;box-shadow:none} -pre{display:block;padding:11px;margin:0 0 11.5px;font-size:12px;line-height:1.846;word-break:break-all;word-wrap:break-word;color:#212121;background-color:#f5f5f5;border:1px solid #ccc;border-radius:3px} -.container,.container-fluid{margin-right:auto;margin-left:auto} -pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0} -.container,.container-fluid{padding-left:15px;padding-right:15px} -.pre-scrollable{overflow-y:scroll} -@media (min-width:768px){.container{width:750px} -} -@media (min-width:992px){.container{width:970px} -} -@media (min-width:1200px){.container{width:1170px} -} -.row{margin-left:-15px;margin-right:-15px} -.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px} -.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left} -.col-xs-12{width:100%} -.col-xs-11{width:91.66666667%} -.col-xs-10{width:83.33333333%} -.col-xs-9{width:75%} -.col-xs-8{width:66.66666667%} -.col-xs-7{width:58.33333333%} -.col-xs-6{width:50%} -.col-xs-5{width:41.66666667%} -.col-xs-4{width:33.33333333%} -.col-xs-3{width:25%} -.col-xs-2{width:16.66666667%} -.col-xs-1{width:8.33333333%} -.col-xs-pull-12{right:100%} -.col-xs-pull-11{right:91.66666667%} -.col-xs-pull-10{right:83.33333333%} -.col-xs-pull-9{right:75%} -.col-xs-pull-8{right:66.66666667%} -.col-xs-pull-7{right:58.33333333%} -.col-xs-pull-6{right:50%} -.col-xs-pull-5{right:41.66666667%} -.col-xs-pull-4{right:33.33333333%} -.col-xs-pull-3{right:25%} -.col-xs-pull-2{right:16.66666667%} -.col-xs-pull-1{right:8.33333333%} -.col-xs-pull-0{right:auto} -.col-xs-push-12{left:100%} -.col-xs-push-11{left:91.66666667%} -.col-xs-push-10{left:83.33333333%} -.col-xs-push-9{left:75%} -.col-xs-push-8{left:66.66666667%} -.col-xs-push-7{left:58.33333333%} -.col-xs-push-6{left:50%} -.col-xs-push-5{left:41.66666667%} -.col-xs-push-4{left:33.33333333%} -.col-xs-push-3{left:25%} -.col-xs-push-2{left:16.66666667%} -.col-xs-push-1{left:8.33333333%} -.col-xs-push-0{left:auto} -.col-xs-offset-12{margin-left:100%} -.col-xs-offset-11{margin-left:91.66666667%} -.col-xs-offset-10{margin-left:83.33333333%} -.col-xs-offset-9{margin-left:75%} -.col-xs-offset-8{margin-left:66.66666667%} -.col-xs-offset-7{margin-left:58.33333333%} -.col-xs-offset-6{margin-left:50%} -.col-xs-offset-5{margin-left:41.66666667%} -.col-xs-offset-4{margin-left:33.33333333%} -.col-xs-offset-3{margin-left:25%} -.col-xs-offset-2{margin-left:16.66666667%} -.col-xs-offset-1{margin-left:8.33333333%} -.col-xs-offset-0{margin-left:0} -@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left} -.col-sm-12{width:100%} -.col-sm-11{width:91.66666667%} -.col-sm-10{width:83.33333333%} -.col-sm-9{width:75%} -.col-sm-8{width:66.66666667%} -.col-sm-7{width:58.33333333%} -.col-sm-6{width:50%} -.col-sm-5{width:41.66666667%} -.col-sm-4{width:33.33333333%} -.col-sm-3{width:25%} -.col-sm-2{width:16.66666667%} -.col-sm-1{width:8.33333333%} -.col-sm-pull-12{right:100%} -.col-sm-pull-11{right:91.66666667%} -.col-sm-pull-10{right:83.33333333%} -.col-sm-pull-9{right:75%} -.col-sm-pull-8{right:66.66666667%} -.col-sm-pull-7{right:58.33333333%} -.col-sm-pull-6{right:50%} -.col-sm-pull-5{right:41.66666667%} -.col-sm-pull-4{right:33.33333333%} -.col-sm-pull-3{right:25%} -.col-sm-pull-2{right:16.66666667%} -.col-sm-pull-1{right:8.33333333%} -.col-sm-pull-0{right:auto} -.col-sm-push-12{left:100%} -.col-sm-push-11{left:91.66666667%} -.col-sm-push-10{left:83.33333333%} -.col-sm-push-9{left:75%} -.col-sm-push-8{left:66.66666667%} -.col-sm-push-7{left:58.33333333%} -.col-sm-push-6{left:50%} -.col-sm-push-5{left:41.66666667%} -.col-sm-push-4{left:33.33333333%} -.col-sm-push-3{left:25%} -.col-sm-push-2{left:16.66666667%} -.col-sm-push-1{left:8.33333333%} -.col-sm-push-0{left:auto} -.col-sm-offset-12{margin-left:100%} -.col-sm-offset-11{margin-left:91.66666667%} -.col-sm-offset-10{margin-left:83.33333333%} -.col-sm-offset-9{margin-left:75%} -.col-sm-offset-8{margin-left:66.66666667%} -.col-sm-offset-7{margin-left:58.33333333%} -.col-sm-offset-6{margin-left:50%} -.col-sm-offset-5{margin-left:41.66666667%} -.col-sm-offset-4{margin-left:33.33333333%} -.col-sm-offset-3{margin-left:25%} -.col-sm-offset-2{margin-left:16.66666667%} -.col-sm-offset-1{margin-left:8.33333333%} -.col-sm-offset-0{margin-left:0} -} -@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left} -.col-md-12{width:100%} -.col-md-11{width:91.66666667%} -.col-md-10{width:83.33333333%} -.col-md-9{width:75%} -.col-md-8{width:66.66666667%} -.col-md-7{width:58.33333333%} -.col-md-6{width:50%} -.col-md-5{width:41.66666667%} -.col-md-4{width:33.33333333%} -.col-md-3{width:25%} -.col-md-2{width:16.66666667%} -.col-md-1{width:8.33333333%} -.col-md-pull-12{right:100%} -.col-md-pull-11{right:91.66666667%} -.col-md-pull-10{right:83.33333333%} -.col-md-pull-9{right:75%} -.col-md-pull-8{right:66.66666667%} -.col-md-pull-7{right:58.33333333%} -.col-md-pull-6{right:50%} -.col-md-pull-5{right:41.66666667%} -.col-md-pull-4{right:33.33333333%} -.col-md-pull-3{right:25%} -.col-md-pull-2{right:16.66666667%} -.col-md-pull-1{right:8.33333333%} -.col-md-pull-0{right:auto} -.col-md-push-12{left:100%} -.col-md-push-11{left:91.66666667%} -.col-md-push-10{left:83.33333333%} -.col-md-push-9{left:75%} -.col-md-push-8{left:66.66666667%} -.col-md-push-7{left:58.33333333%} -.col-md-push-6{left:50%} -.col-md-push-5{left:41.66666667%} -.col-md-push-4{left:33.33333333%} -.col-md-push-3{left:25%} -.col-md-push-2{left:16.66666667%} -.col-md-push-1{left:8.33333333%} -.col-md-push-0{left:auto} -.col-md-offset-12{margin-left:100%} -.col-md-offset-11{margin-left:91.66666667%} -.col-md-offset-10{margin-left:83.33333333%} -.col-md-offset-9{margin-left:75%} -.col-md-offset-8{margin-left:66.66666667%} -.col-md-offset-7{margin-left:58.33333333%} -.col-md-offset-6{margin-left:50%} -.col-md-offset-5{margin-left:41.66666667%} -.col-md-offset-4{margin-left:33.33333333%} -.col-md-offset-3{margin-left:25%} -.col-md-offset-2{margin-left:16.66666667%} -.col-md-offset-1{margin-left:8.33333333%} -.col-md-offset-0{margin-left:0} -} -@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left} -.col-lg-12{width:100%} -.col-lg-11{width:91.66666667%} -.col-lg-10{width:83.33333333%} -.col-lg-9{width:75%} -.col-lg-8{width:66.66666667%} -.col-lg-7{width:58.33333333%} -.col-lg-6{width:50%} -.col-lg-5{width:41.66666667%} -.col-lg-4{width:33.33333333%} -.col-lg-3{width:25%} -.col-lg-2{width:16.66666667%} -.col-lg-1{width:8.33333333%} -.col-lg-pull-12{right:100%} -.col-lg-pull-11{right:91.66666667%} -.col-lg-pull-10{right:83.33333333%} -.col-lg-pull-9{right:75%} -.col-lg-pull-8{right:66.66666667%} -.col-lg-pull-7{right:58.33333333%} -.col-lg-pull-6{right:50%} -.col-lg-pull-5{right:41.66666667%} -.col-lg-pull-4{right:33.33333333%} -.col-lg-pull-3{right:25%} -.col-lg-pull-2{right:16.66666667%} -.col-lg-pull-1{right:8.33333333%} -.col-lg-pull-0{right:auto} -.col-lg-push-12{left:100%} -.col-lg-push-11{left:91.66666667%} -.col-lg-push-10{left:83.33333333%} -.col-lg-push-9{left:75%} -.col-lg-push-8{left:66.66666667%} -.col-lg-push-7{left:58.33333333%} -.col-lg-push-6{left:50%} -.col-lg-push-5{left:41.66666667%} -.col-lg-push-4{left:33.33333333%} -.col-lg-push-3{left:25%} -.col-lg-push-2{left:16.66666667%} -.col-lg-push-1{left:8.33333333%} -.col-lg-push-0{left:auto} -.col-lg-offset-12{margin-left:100%} -.col-lg-offset-11{margin-left:91.66666667%} -.col-lg-offset-10{margin-left:83.33333333%} -.col-lg-offset-9{margin-left:75%} -.col-lg-offset-8{margin-left:66.66666667%} -.col-lg-offset-7{margin-left:58.33333333%} -.col-lg-offset-6{margin-left:50%} -.col-lg-offset-5{margin-left:41.66666667%} -.col-lg-offset-4{margin-left:33.33333333%} -.col-lg-offset-3{margin-left:25%} -.col-lg-offset-2{margin-left:16.66666667%} -.col-lg-offset-1{margin-left:8.33333333%} -.col-lg-offset-0{margin-left:0} -} -caption{padding-top:8px;padding-bottom:8px;color:#bbb} -.table{width:100%;max-width:100%;margin-bottom:23px} -.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.846;vertical-align:top;border-top:1px solid #ddd} -.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd} -.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0} -.table>tbody+tbody{border-top:2px solid #ddd} -.table .table{background-color:#fff} -.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px} -.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd} -.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px} -.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9} -.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5} -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} -.btn-group>.btn-group,.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group,.dropdown-menu{float:left} -.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8} -.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8} -.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6} -.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#e1bee7} -.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#d8abe0} -.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#ffe0b2} -.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#ffd699} -.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f9bdbb} -.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#f7a6a4} -.table-responsive{overflow-x:auto;min-height:.01%} -@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:17.25px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd} -.table-responsive>.table{margin-bottom:0} -.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap} -.table-responsive>.table-bordered{border:0} -.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0} -.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0} -.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0} -} -fieldset,legend{padding:0;border:0} -fieldset{margin:0;min-width:0} -legend{display:block;width:100%;margin-bottom:23px;font-size:19.5px;line-height:inherit;color:#212121;border-bottom:1px solid #e5e5e5} -label{display:inline-block;max-width:100%;margin-bottom:5px} -input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none} -input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal} -.form-control,output{display:block;font-size:13px;line-height:1.846;color:#666} -input[type=file]{display:block} -input[type=range]{display:block;width:100%} -select[multiple],select[size]{height:auto} -input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px} -output{padding-top:7px} -.form-control{width:100%;height:37px;padding:6px 16px;background-color:transparent;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s} -.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)} -.form-control::-moz-placeholder{color:#bbb;opacity:1} -.form-control:-ms-input-placeholder{color:#bbb} -.form-control::-webkit-input-placeholder{color:#bbb} -.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#4caf50} -.form-control::-ms-expand{border:0;background-color:transparent} -.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:transparent;opacity:1} -.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed} -textarea.form-control{height:auto} -@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:37px} -.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px} -.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:45px} -} -.form-group{margin-bottom:15px} -.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px} -.checkbox label,.radio label{min-height:23px;margin-bottom:0;font-weight:400;cursor:pointer} -.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{margin-top:4px\9} -.checkbox+.checkbox,.radio+.radio{margin-top:-5px} -.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer} -.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px} -.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed} -.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:36px} -.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0} -.form-group-sm .form-control,.input-sm{font-size:12px;padding:5px 10px;border-radius:3px} -.input-sm{height:30px;line-height:1.5} -select.input-sm{height:30px;line-height:30px} -select[multiple].input-sm,textarea.input-sm{height:auto} -.form-group-sm .form-control{height:30px;line-height:1.5} -.form-group-sm select.form-control{height:30px;line-height:30px} -.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto} -.form-group-sm .form-control-static{height:30px;min-height:35px;padding:6px 10px;font-size:12px;line-height:1.5} -.form-group-lg .form-control,.input-lg{border-radius:3px;font-size:17px;padding:10px 16px} -.input-lg{height:45px;line-height:1.3333333} -select.input-lg{height:45px;line-height:45px} -select[multiple].input-lg,textarea.input-lg{height:auto} -.form-group-lg .form-control{height:45px;line-height:1.3333333} -.form-group-lg select.form-control{height:45px} -.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto} -.form-group-lg .form-control-static{height:45px;min-height:40px;padding:11px 16px;font-size:17px;line-height:1.3333333} -.has-feedback{position:relative} -.has-feedback .form-control{padding-right:46.25px} -.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:37px;height:37px;line-height:37px;text-align:center;pointer-events:none} -.collapsing,.dropdown,.dropup{position:relative} -.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:45px;height:45px;line-height:45px} -.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px} -.has-success .form-control{border-color:#4caf50} -.has-success .form-control:focus{border-color:#3d8b40} -.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#ff9800} -.has-warning .form-control{border-color:#ff9800} -.has-warning .form-control:focus{border-color:#cc7a00} -.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#e51c23} -.has-error .form-control{border-color:#e51c23} -.has-error .form-control:focus{border-color:#b9151b} -.has-feedback label~.form-control-feedback{top:28px} -.has-feedback label.sr-only~.form-control-feedback{top:0} -.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#a6a6a6} -@media (min-width:768px){.form-inline .form-control-static,.form-inline .form-group{display:inline-block} -.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle} -.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle} -.form-inline .input-group{display:inline-table;vertical-align:middle} -.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto} -.form-inline .input-group>.form-control{width:100%} -.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle} -.form-inline .checkbox label,.form-inline .radio label{padding-left:0} -.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0} -.form-inline .has-feedback .form-control-feedback{top:0} -} -.btn-block,input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%} -.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px} -.form-horizontal .checkbox,.form-horizontal .radio{min-height:30px} -.form-horizontal .form-group{margin-left:-15px;margin-right:-15px} -.form-horizontal .has-feedback .form-control-feedback{right:15px} -@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px} -.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:17px} -.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px} -} -.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;white-space:nowrap;padding:6px 16px;font-size:13px;line-height:1.846;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} -.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px} -.btn.focus,.btn:focus,.btn:hover{color:#444;text-decoration:none} -.btn.active,.btn:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)} -.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none} -a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none} -.btn-default{color:#444;background-color:#fff;border-color:transparent} -.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#444;background-color:#e6e6e6;border-color:transparent} -.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#444;background-color:#d4d4d4;border-color:transparent} -.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:transparent} -.btn-default .badge{color:#fff;background-color:#444} -.btn-primary{color:#fff;background-color:#2196f3;border-color:transparent} -.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#0c7cd5;border-color:transparent} -.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#0a68b4;border-color:transparent} -.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#2196f3;border-color:transparent} -.btn-primary .badge{color:#2196f3;background-color:#fff} -.btn-success{color:#fff;background-color:#4caf50;border-color:transparent} -.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#3d8b40;border-color:transparent} -.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#327334;border-color:transparent} -.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none} -.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#4caf50;border-color:transparent} -.btn-success .badge{color:#4caf50;background-color:#fff} -.btn-info{color:#fff;background-color:#9c27b0;border-color:transparent} -.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#771e86;border-color:transparent} -.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#5d1769;border-color:transparent} -.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#9c27b0;border-color:transparent} -.btn-info .badge{color:#9c27b0;background-color:#fff} -.btn-warning{color:#fff;background-color:#ff9800;border-color:transparent} -.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#cc7a00;border-color:transparent} -.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#a86400;border-color:transparent} -.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#ff9800;border-color:transparent} -.btn-warning .badge{color:#ff9800;background-color:#fff} -.btn-danger{color:#fff;background-color:#e51c23;border-color:transparent} -.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#b9151b;border-color:transparent} -.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#991216;border-color:transparent} -.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#e51c23;border-color:transparent} -.btn-danger .badge{color:#e51c23;background-color:#fff} -.btn-link{font-weight:400} -.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none} -.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent} -.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#bbb;text-decoration:none} -.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:17px;line-height:1.3333333;border-radius:3px} -.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px} -.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px} -.btn-block{display:block} -.btn-block+.btn-block{margin-top:5px} -.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear} -.fade.in{opacity:1} -.collapse{display:none} -.collapse.in{display:block} -tr.collapse.in{display:table-row} -tbody.collapse.in{display:table-row-group} -.collapsing{height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease} -.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent} -.dropdown-toggle:focus{outline:0} -.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:13px;text-align:left;background-color:#fff;border-radius:3px;background-clip:padding-box} -.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle,.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0} -.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child,.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-vertical>.btn:not(:first-child):not(:last-child),.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0} -.dropdown-header,.dropdown-menu>li>a{white-space:nowrap;padding:3px 20px;line-height:1.846} -.dropdown-menu-right,.dropdown-menu.pull-right{left:auto;right:0} -.dropdown-menu .divider{height:1px;margin:10.5px 0;overflow:hidden;background-color:#e5e5e5} -.dropdown-menu>li>a{display:block;clear:both;font-weight:400;color:#666} -.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#141414;background-color:#eee} -.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#2196f3} -.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#bbb} -.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed} -.open>.dropdown-menu{display:block} -.open>a{outline:0} -.dropdown-menu-left{left:0;right:auto} -.dropdown-header{display:block;font-size:12px;color:#bbb} -.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990} -.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{left:auto;top:auto} -.pull-right>.dropdown-menu{right:0;left:auto} -.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""} -.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px} -@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>.btn,.btn-group>.btn{position:relative;float:left} -.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2} -.btn-toolbar{margin-left:-5px} -.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px} -.btn .caret,.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group,.btn-group>.btn:first-child{margin-left: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,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)} -.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none} -.btn-lg .caret{border-width:5px 5px 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:first-child:not(:last-child){border-radius:3px 3px 0 0} -.btn-group-vertical>.btn:last-child:not(:first-child){border-radius:0 0 3px 3px} -.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%} -.btn-group-justified>.btn-group .dropdown-menu{left:auto} -[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events: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{position:relative;z-index:2;float:left;width:100%;margin-bottom:0} -.input-group .form-control:focus{z-index:3} -.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:17px;line-height:1.3333333;border-radius:3px} -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} -select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.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:3px} -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} -select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto} -.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell} -.nav>li,.nav>li>a{position:relative;display:block} -.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn: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:6px 16px;font-size:13px;font-weight:400;line-height:1;color:#666;text-align:center;background-color:transparent;border:1px solid transparent;border-radius:3px} -.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px} -.input-group-addon.input-lg{padding:10px 16px;font-size:17px;border-radius:3px} -.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{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-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){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:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{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{z-index:2;margin-left:-1px} -.nav{margin-bottom:0;padding-left:0;list-style:none} -.nav>li>a{padding:10px 15px} -.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee} -.nav>li.disabled>a{color:#bbb} -.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#bbb;text-decoration:none;background-color:transparent;cursor:not-allowed} -.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#2196f3} -.nav .nav-divider{height:1px;margin:10.5px 0;overflow:hidden;background-color:#e5e5e5} -.nav>li>a>img{max-width:none} -.nav-tabs{border-bottom:1px solid transparent} -.nav-tabs>li{float:left;margin-bottom:-1px} -.nav-tabs>li>a{line-height:1.846;border-radius:3px 3px 0 0} -.nav-tabs>li>a:hover{border-color:#eee #eee transparent} -.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{background-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;margin-right:0;border-radius:3px} -@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%} -.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid transparent;border-radius:3px 3px 0 0} -.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff} -} -.nav-pills>li{float:left} -.nav-justified>li,.nav-stacked>li{float:none} -.nav-pills>li>a{border-radius:3px} -.nav-pills>li+li{margin-left:2px} -.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#2196f3} -.nav-stacked>li+li{margin-top:2px;margin-left:0} -.nav-justified{width:100%} -.nav-justified>li>a{text-align:center;margin-bottom:5px} -.nav-tabs-justified{border-bottom:0} -.nav-tabs-justified>li>a{margin-right:0;border-radius:3px} -.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid transparent} -@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%} -.nav-justified>li>a{margin-bottom:0} -.nav-tabs-justified>li>a{border-bottom:1px solid transparent;border-radius:3px 3px 0 0} -.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff} -} -.tab-content>.tab-pane{display:none} -.tab-content>.active{display:block} -.nav-tabs .dropdown-menu{border-top-right-radius:0;border-top-left-radius:0} -.navbar{position:relative;min-height:64px;margin-bottom:23px} -.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch} -.navbar-collapse.in{overflow-y:auto} -@media (min-width:768px){.navbar{border-radius:3px} -.navbar-header{float:left} -.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-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0} -} -.embed-responsive,.modal,.modal-open,.progress{overflow:hidden} -@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px} -} -.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px} -.navbar-static-top{z-index:1000;border-width:0 0 1px} -.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030} -.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:20.5px 15px;line-height:23px;height:64px} -.navbar-brand:focus,.navbar-brand:hover{text-decoration:none} -.navbar-brand>img{display:block} -@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0} -.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0} -.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:15px;margin-bottom:15px;background-color:transparent;border:1px solid transparent;border-radius:3px} -.navbar-toggle:focus{outline:0} -.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px} -.navbar-toggle .icon-bar+.icon-bar{margin-top:4px} -.navbar-nav{margin:10.25px -15px} -.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:23px} -@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 .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px} -.navbar-nav .open .dropdown-menu>li>a{line-height:23px} -.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none} -} -.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-danger,.progress-striped .progress-bar-info,.progress-striped .progress-bar-success,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)} -@media (min-width:768px){.navbar-toggle{display:none} -.navbar-nav{float:left;margin:0} -.navbar-nav>li{float:left} -.navbar-nav>li>a{padding-top:20.5px;padding-bottom:20.5px} -} -.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:13.5px -15px} -@media (min-width:768px){.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block} -.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle} -.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle} -.navbar-form .input-group{display:inline-table;vertical-align:middle} -.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto} -.navbar-form .input-group>.form-control{width:100%} -.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle} -.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0} -.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0} -.navbar-form .has-feedback .form-control-feedback{top:0} -} -.btn .badge,.btn .label{position:relative;top:-1px} -.breadcrumb>li,.pagination{display:inline-block} -@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px} -.navbar-form .form-group:last-child{margin-bottom:0} -} -@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-default,.navbar-default .navbar-collapse,.navbar-default .navbar-form,.navbar-default .navbar-toggle,.navbar-inverse,.navbar-inverse .navbar-toggle{border-color:transparent} -.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{margin-bottom:0;border-radius:3px 3px 0 0} -.navbar-btn{margin-top:13.5px;margin-bottom:13.5px} -.navbar-btn.btn-sm{margin-top:17px;margin-bottom:17px} -.navbar-btn.btn-xs{margin-top:21px;margin-bottom:21px} -.navbar-text{margin-top:20.5px;margin-bottom:20.5px} -@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px} -.navbar-left{float:left!important} -.navbar-right{float:right!important;margin-right:-15px} -.navbar-right~.navbar-right{margin-right:0} -} -.navbar-default{background-color:#fff} -.navbar-default .navbar-brand{color:#666} -.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#212121;background-color:transparent} -.navbar-default .navbar-text{color:#bbb} -.navbar-default .navbar-nav>li>a{color:#666} -.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#212121;background-color:transparent} -.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#212121;background-color:#eee} -.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent} -.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:transparent} -.navbar-default .navbar-toggle .icon-bar{background-color:rgba(0,0,0,.5)} -.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#eee;color:#212121} -@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#666} -.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#212121;background-color:transparent} -.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#212121;background-color:#eee} -.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent} -} -.navbar-default .navbar-link{color:#666} -.navbar-default .navbar-link:hover{color:#212121} -.navbar-default .btn-link{color:#666} -.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#212121} -.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc} -.navbar-inverse{background-color:#2196f3} -.navbar-inverse .navbar-brand{color:#fff} -.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent} -.navbar-inverse .navbar-text{color:#bbb} -.navbar-inverse .navbar-nav>li>a{color:#fff} -.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent} -.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#0c7cd5} -.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent} -.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:transparent} -.navbar-inverse .navbar-toggle .icon-bar{background-color:rgba(0,0,0,.5)} -.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#0c84e4} -.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#0c7cd5;color:#fff} -@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:transparent} -.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:transparent} -.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#fff} -.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent} -.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#0c7cd5} -.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent} -} -.navbar-inverse .btn-link,.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover,.navbar-inverse .navbar-link,.navbar-inverse .navbar-link:hover{color:#fff} -.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444} -.breadcrumb{padding:8px 15px;margin-bottom:23px;list-style:none;background-color:#f5f5f5;border-radius:3px} -.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc} -.breadcrumb>.active{color:#bbb} -.pagination{padding-left:0;margin:23px 0;border-radius:3px} -.pager li,.pagination>li{display:inline} -.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 16px;line-height:1.846;text-decoration:none;color:#2196f3;background-color:#fff;border:1px solid #ddd;margin-left:-1px} -.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span,.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px} -.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span,.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span,.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px} -.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:3px;border-top-left-radius:3px} -.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#0a6ebd;background-color:#eee;border-color:#ddd} -.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;background-color:#2196f3;border-color:#2196f3;cursor:default} -.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#bbb;background-color:#fff;border-color:#ddd;cursor:not-allowed} -.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:17px;line-height:1.3333333} -.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5} -.badge,.label{text-align:center;line-height:1;white-space:nowrap} -.pager{padding-left:0;margin:23px 0;list-style:none;text-align:center} -.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px} -.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee} -.pager .next>a,.pager .next>span{float:right} -.pager .previous>a,.pager .previous>span{float:left} -.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#bbb;background-color:#fff;cursor:not-allowed} -.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;color:#fff;border-radius:.25em} -a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer} -.label:empty{display:none} -.label-default{background-color:#bbb} -.label-default[href]:focus,.label-default[href]:hover{background-color:#a2a2a2} -.label-primary{background-color:#2196f3} -.label-primary[href]:focus,.label-primary[href]:hover{background-color:#0c7cd5} -.label-success{background-color:#4caf50} -.label-success[href]:focus,.label-success[href]:hover{background-color:#3d8b40} -.label-info{background-color:#9c27b0} -.label-info[href]:focus,.label-info[href]:hover{background-color:#771e86} -.label-warning{background-color:#ff9800} -.label-warning[href]:focus,.label-warning[href]:hover{background-color:#cc7a00} -.label-danger{background-color:#e51c23} -.label-danger[href]:focus,.label-danger[href]:hover{background-color:#b9151b} -.badge{display:inline-block;min-width:10px;font-size:12px;font-weight:400;color:#fff;vertical-align:middle;background-color:#bbb;border-radius:10px} -.badge:empty{display:none} -.list-group-item,.media-object,.thumbnail{display:block} -.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px} -a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer} -.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#2196f3;background-color:#fff} -.list-group-item>.badge{float:right} -.list-group-item>.badge+.badge{margin-right:5px} -.nav-pills>li>a>.badge{margin-left:3px} -.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#f5f5f5} -.jumbotron .h1,.jumbotron h1{color:#444} -.jumbotron p{margin-bottom:15px;font-size:20px;font-weight:200} -.popover,.tooltip{text-decoration:none;font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal} -.alert,.thumbnail{margin-bottom:23px} -.jumbotron>hr{border-top-color:#dcdcdc} -.container .jumbotron,.container-fluid .jumbotron{border-radius:3px;padding-left:15px;padding-right:15px} -.jumbotron .container{max-width:100%} -@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px} -.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px} -.jumbotron .h1,.jumbotron h1{font-size:59px} -} -.thumbnail{padding:4px;line-height:1.846;background-color:#fff;border:1px solid #ddd;border-radius:3px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out} -.thumbnail a>img,.thumbnail>img{margin-left:auto;margin-right:auto} -a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#2196f3} -.thumbnail .caption{padding:9px;color:#666} -.alert{padding:15px;border-radius:3px} -.alert h4{margin-top:0;color:inherit} -.alert>p,.alert>ul{margin-bottom:0} -.alert>p+p{margin-top:5px} -.alert-dismissable,.alert-dismissible{padding-right:35px} -.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit} -.modal,.modal-backdrop{right:0;bottom:0;left:0} -.alert-success{border-color:#d6e9c6;color:#4caf50} -.alert-success hr{border-top-color:#c9e2b3} -.alert-success .alert-link{color:#3d8b40} -.alert-info{border-color:#cba4dd;color:#9c27b0} -.alert-info hr{border-top-color:#c191d6} -.alert-info .alert-link{color:#771e86} -.alert-warning{border-color:#ffc599;color:#ff9800} -.alert-warning hr{border-top-color:#ffb67f} -.alert-warning .alert-link{color:#cc7a00} -.alert-danger{border-color:#f7a4af;color:#e51c23} -.alert-danger hr{border-top-color:#f58c9a} -.alert-danger .alert-link{color:#b9151b} -@-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{margin-bottom:23px;background-color:#f5f5f5} -.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:23px;color:#fff;text-align:center;background-color:#2196f3;-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease} -.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px} -.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite} -.progress-bar-success{background-color:#4caf50} -.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)} -.progress-bar-info{background-color:#9c27b0} -.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)} -.progress-bar-warning{background-color:#ff9800} -.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)} -.progress-bar-danger{background-color:#e51c23} -.progress-striped .progress-bar-danger{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)} -.media{margin-top:15px} -.media:first-child{margin-top:0} -.media,.media-body{zoom:1;overflow:hidden} -.media-body{width:10000px} -.media-object.img-thumbnail{max-width:none} -.media-right,.media>.pull-right{padding-left:10px} -.media-left,.media>.pull-left{padding-right:10px} -.media-body,.media-left,.media-right{display:table-cell;vertical-align:top} -.media-middle{vertical-align:middle} -.media-bottom{vertical-align:bottom} -.media-heading{margin-top:0;margin-bottom:5px} -.media-list{padding-left:0;list-style:none} -.list-group{margin-bottom:20px;padding-left:0} -.list-group-item{position:relative;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd} -.panel-group .panel-heading,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0} -.list-group-item:first-child{border-top-right-radius:3px;border-top-left-radius:3px} -.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px} -a.list-group-item,button.list-group-item{color:#555} -a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333} -a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5} -button.list-group-item{width:100%;text-align:left} -.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#bbb;cursor:not-allowed} -.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit} -.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#bbb} -.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#2196f3;border-color:#2196f3} -.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit} -.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#e3f2fd} -.list-group-item-success{color:#4caf50;background-color:#dff0d8} -a.list-group-item-success,button.list-group-item-success{color:#4caf50} -a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit} -a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#4caf50;background-color:#d0e9c6} -a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#4caf50;border-color:#4caf50} -.list-group-item-info{color:#9c27b0;background-color:#e1bee7} -a.list-group-item-info,button.list-group-item-info{color:#9c27b0} -a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit} -a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#9c27b0;background-color:#d8abe0} -a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#9c27b0;border-color:#9c27b0} -.list-group-item-warning{color:#ff9800;background-color:#ffe0b2} -a.list-group-item-warning,button.list-group-item-warning{color:#ff9800} -a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit} -a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#ff9800;background-color:#ffd699} -a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#ff9800;border-color:#ff9800} -.list-group-item-danger{color:#e51c23;background-color:#f9bdbb} -a.list-group-item-danger,button.list-group-item-danger{color:#e51c23} -a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit} -a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#e51c23;background-color:#f7a6a4} -a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#e51c23;border-color:#e51c23} -.panel-heading>.dropdown .dropdown-toggle,.panel-title,.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit} -.list-group-item-heading{margin-top:0;margin-bottom:5px} -.list-group-item-text{margin-bottom:0;line-height:1.3} -.modal-title,.popover,.tooltip{line-height:1.846} -.panel{margin-bottom:23px;background-color:#fff} -.panel-title,.panel>.list-group,.panel>.panel-collapse>.list-group,.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0} -.panel-body{padding:15px} -.panel-heading{padding:10px 15px;border-top-right-radius:2px;border-top-left-radius:2px} -.panel-title{margin-top:0;font-size:15px} -.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-bottom-right-radius:2px;border-bottom-left-radius:2px} -.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0} -.panel>.table-responsive:last-child>.table:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px} -.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:2px;border-top-left-radius:2px} -.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px} -.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0} -.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-right-radius:2px;border-top-left-radius:2px} -.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0} -.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-left:15px;padding-right:15px} -.panel>.table-responsive:first-child>.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 th:first-child,.panel>.table-responsive:first-child>.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 th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:2px} -.panel>.table-responsive:first-child>.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 th:last-child,.panel>.table-responsive:first-child>.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 th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:2px} -.panel>.table-responsive:last-child>.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 th:first-child,.panel>.table-responsive:last-child>.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 th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:2px} -.panel>.table-responsive:last-child>.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 th:last-child,.panel>.table-responsive:last-child>.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 th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:2px} -.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd} -.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0} -.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0} -.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0} -.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0} -.panel>.table-responsive{border:0;margin-bottom:0} -.panel-group{margin-bottom:23px} -.panel-group .panel{margin-bottom:0;border-radius:3px} -.panel-group .panel+.panel{margin-top:5px} -.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd} -.panel-group .panel-footer{border-top:0} -.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd} -.panel-default{border-color:#ddd} -.panel-default>.panel-heading{color:#212121;background-color:#f5f5f5;border-color:#ddd} -.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd} -.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#212121} -.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd} -.panel-primary{border-color:#2196f3} -.panel-primary>.panel-heading{color:#fff;background-color:#2196f3;border-color:#2196f3} -.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#2196f3} -.panel-primary>.panel-heading .badge{color:#2196f3;background-color:#fff} -.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#2196f3} -.panel-success{border-color:#d6e9c6} -.panel-success>.panel-heading{color:#fff;background-color:#4caf50;border-color:#d6e9c6} -.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6} -.panel-success>.panel-heading .badge{color:#4caf50;background-color:#fff} -.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6} -.panel-info{border-color:#cba4dd} -.panel-info>.panel-heading{color:#fff;background-color:#9c27b0;border-color:#cba4dd} -.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#cba4dd} -.panel-info>.panel-heading .badge{color:#9c27b0;background-color:#fff} -.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#cba4dd} -.panel-warning{border-color:#ffc599} -.panel-warning>.panel-heading{color:#fff;background-color:#ff9800;border-color:#ffc599} -.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ffc599} -.panel-warning>.panel-heading .badge{color:#ff9800;background-color:#fff} -.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ffc599} -.panel-danger{border-color:#f7a4af} -.panel-danger>.panel-heading{color:#fff;background-color:#e51c23;border-color:#f7a4af} -.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f7a4af} -.panel-danger>.panel-heading .badge{color:#e51c23;background-color:#fff} -.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f7a4af} -.embed-responsive{position:relative;display:block;height:0;padding:0} -.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0} -.embed-responsive-16by9{padding-bottom:56.25%} -.embed-responsive-4by3{padding-bottom:75%} -.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid transparent} -.well-lg,.well-sm{border-radius:3px} -.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)} -.well-lg{padding:24px} -.well-sm{padding:9px} -.close{float:right;color:#000;text-shadow:none;filter:alpha(opacity=20)} -.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)} -button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none} -.modal-content,.popover{background-clip:padding-box} -.modal{display:none;position:fixed;top:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0} -.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out} -.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)} -.modal-open .modal{overflow-x:hidden;overflow-y:auto} -.modal-dialog{position:relative;width:auto;margin:10px} -.modal-content{position:relative;background-color:#fff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0} -.modal-backdrop{position:fixed;top:0;z-index:1040;background-color:#000} -.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)} -.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)} -.modal-header{padding:15px;border-bottom:1px solid transparent} -.tooltip.bottom .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow{top:0;border-width:0 5px 5px;border-bottom-color:#727272} -.modal-header .close{margin-top:-2px} -.modal-title{margin:0} -.modal-body{position:relative;padding:15px} -.modal-footer{padding:15px;text-align:right;border-top:1px solid transparent} -.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-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll} -@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto} -.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)} -.modal-sm{width:300px} -} -.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#727272} -@media (min-width:992px){.modal-lg{width:900px} -} -.popover>.arrow,.popover>.arrow:after,.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid} -.tooltip{position:absolute;z-index:1070;display:block;text-align:left;text-align:start;font-size:12px;opacity:0;filter:alpha(opacity=0)} -.tooltip.in{opacity:.9;filter:alpha(opacity=90)} -.tooltip.top{margin-top:-3px;padding:5px 0} -.tooltip.right{margin-left:3px;padding:0 5px} -.tooltip.bottom{margin-top:3px;padding:5px 0} -.tooltip.left{margin-left:-3px;padding:0 5px} -.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#727272;border-radius:3px} -.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#727272} -.tooltip.top-left .tooltip-arrow{right:5px} -.tooltip.top-right .tooltip-arrow{left:5px} -.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#727272} -.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#727272} -.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-5px} -.tooltip.bottom-left .tooltip-arrow{right:5px;margin-top:-5px} -.tooltip.bottom-right .tooltip-arrow{left:5px;margin-top:-5px} -.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;text-align:start;font-size:13px;background-color:#fff;border-radius:3px} -.carousel-caption,.carousel-control{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6)} -.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:13px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:2px 2px 0 0} -.popover-content{padding:9px 14px} -.popover>.arrow,.popover>.arrow:after{display:block} -.carousel,.carousel-inner{position:relative} -.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:transparent;border-top-color:rgba(0,0,0,.12);bottom:-11px} -.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff} -.popover.left>.arrow:after,.popover.right>.arrow:after{content:" ";bottom:-10px} -.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:transparent;border-right-color:rgba(0,0,0,.12)} -.popover.right>.arrow:after{left:1px;border-left-width:0;border-right-color:#fff} -.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:transparent;border-bottom-color:rgba(0,0,0,.12);top:-11px} -.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff} -.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:transparent;border-left-color:rgba(0,0,0,.12)} -.popover.left>.arrow:after{right:1px;border-right-width:0;border-left-color:#fff} -.carousel-inner{overflow:hidden;width:100%} -.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left} -.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1} -@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-moz-transition:-moz-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;-moz-perspective:1000px;perspective:1000px} -.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0} -.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0} -.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0} -} -.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block} -.carousel-inner>.active{left:0} -.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%} -.carousel-inner>.next{left:100%} -.carousel-inner>.prev{left:-100%} -.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0} -.carousel-inner>.active.left{left:-100%} -.carousel-inner>.active.right{left:100%} -.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;text-align:center;background-color:transparent} -.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)} -.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)} -.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)} -.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block} -.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px} -.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px} -.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;line-height:1;font-family:serif} -.carousel-control .icon-prev:before{content:'\2039'} -.carousel-control .icon-next:before{content:'\203a'} -.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} -.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000\9;background-color:transparent} -.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff} -.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;text-align:center} -.carousel-caption .btn,.text-hide{text-shadow:none} -@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px} -.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px} -.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px} -.carousel-caption{left:20%;right:20%;padding-bottom:30px} -.carousel-indicators{bottom:20px} -} -.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table} -.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row: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} -.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important} -.invisible{visibility:hidden} -.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0} -.affix{position:fixed} -@-ms-viewport{width:device-width} -@media (max-width:767px){.visible-xs{display:block!important} -table.visible-xs{display:table!important} -tr.visible-xs{display:table-row!important} -td.visible-xs,th.visible-xs{display:table-cell!important} -.visible-xs-block{display:block!important} -.visible-xs-inline{display:inline!important} -.visible-xs-inline-block{display:inline-block!important} -} -@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important} -table.visible-sm{display:table!important} -tr.visible-sm{display:table-row!important} -td.visible-sm,th.visible-sm{display:table-cell!important} -.visible-sm-block{display:block!important} -.visible-sm-inline{display:inline!important} -.visible-sm-inline-block{display:inline-block!important} -} -@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important} -table.visible-md{display:table!important} -tr.visible-md{display:table-row!important} -td.visible-md,th.visible-md{display:table-cell!important} -.visible-md-block{display:block!important} -.visible-md-inline{display:inline!important} -.visible-md-inline-block{display:inline-block!important} -} -@media (min-width:1200px){.visible-lg{display:block!important} -table.visible-lg{display:table!important} -tr.visible-lg{display:table-row!important} -td.visible-lg,th.visible-lg{display:table-cell!important} -.visible-lg-block{display:block!important} -.visible-lg-inline{display:inline!important} -.visible-lg-inline-block{display:inline-block!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!important} -tr.visible-print{display:table-row!important} -td.visible-print,th.visible-print{display:table-cell!important} -} -.visible-print-block{display:none!important} -@media print{.visible-print-block{display:block!important} -} -.visible-print-inline{display:none!important} -@media print{.visible-print-inline{display:inline!important} -} -.visible-print-inline-block{display:none!important} -@media print{.visible-print-inline-block{display:inline-block!important} -.hidden-print{display:none!important} -} -.navbar{border:none;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3)} -.navbar-brand{font-size:24px} -.navbar-inverse .navbar-form input[type=password],.navbar-inverse .navbar-form input[type=text]{color:#fff;-webkit-box-shadow:inset 0 -1px 0 #fff;box-shadow:inset 0 -1px 0 #fff} -.navbar-inverse .navbar-form input[type=password]::-moz-placeholder,.navbar-inverse .navbar-form input[type=text]::-moz-placeholder{color:#fff;opacity:1} -.navbar-inverse .navbar-form input[type=password]:-ms-input-placeholder,.navbar-inverse .navbar-form input[type=text]:-ms-input-placeholder{color:#fff} -.navbar-inverse .navbar-form input[type=password]::-webkit-input-placeholder,.navbar-inverse .navbar-form input[type=text]::-webkit-input-placeholder{color:#fff} -.navbar-inverse .navbar-form input[type=password]:focus,.navbar-inverse .navbar-form input[type=text]:focus{-webkit-box-shadow:inset 0 -2px 0 #fff;box-shadow:inset 0 -2px 0 #fff} -.btn-default{background-size:200% 200%;background-position:50%} -.btn-default:focus{background-color:#fff} -.btn-default:active:hover,.btn-default:hover{background-color:#f0f0f0} -.btn-default:active{background-color:#e0e0e0;background-image:-webkit-radial-gradient(circle,#e0e0e0 10%,#fff 11%);background-image:radial-gradient(circle,#e0e0e0 10%,#fff 11%);background-repeat:no-repeat;background-size:1000% 1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,.4);box-shadow:2px 2px 4px rgba(0,0,0,.4)} -.btn-primary{background-size:200% 200%;background-position:50%} -.btn-primary:focus{background-color:#2196f3} -.btn-primary:active:hover,.btn-primary:hover{background-color:#0d87e9} -.btn-primary:active{background-color:#0b76cc;background-image:-webkit-radial-gradient(circle,#0b76cc 10%,#2196f3 11%);background-image:radial-gradient(circle,#0b76cc 10%,#2196f3 11%);background-size:1000% 1000%;box-shadow:2px 2px 4px rgba(0,0,0,.4)} -.btn-primary:active,.btn-success:active{background-repeat:no-repeat;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,.4)} -.btn-success{background-size:200% 200%;background-position:50%} -.btn-success:focus{background-color:#4caf50} -.btn-success:active:hover,.btn-success:hover{background-color:#439a46} -.btn-success:active{background-color:#39843c;background-image:-webkit-radial-gradient(circle,#39843c 10%,#4caf50 11%);background-image:radial-gradient(circle,#39843c 10%,#4caf50 11%);background-size:1000% 1000%;box-shadow:2px 2px 4px rgba(0,0,0,.4)} -.btn-info{background-size:200% 200%;background-position:50%} -.btn-info:focus{background-color:#9c27b0} -.btn-info:active:hover,.btn-info:hover{background-color:#862197} -.btn-info:active{background-color:#701c7e;background-image:-webkit-radial-gradient(circle,#701c7e 10%,#9c27b0 11%);background-image:radial-gradient(circle,#701c7e 10%,#9c27b0 11%);background-size:1000% 1000%;box-shadow:2px 2px 4px rgba(0,0,0,.4)} -.btn-info:active,.btn-warning:active{background-repeat:no-repeat;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,.4)} -.btn-warning{background-size:200% 200%;background-position:50%} -.btn-warning:focus{background-color:#ff9800} -.btn-warning:active:hover,.btn-warning:hover{background-color:#e08600} -.btn-warning:active{background-color:#c27400;background-image:-webkit-radial-gradient(circle,#c27400 10%,#ff9800 11%);background-image:radial-gradient(circle,#c27400 10%,#ff9800 11%);background-size:1000% 1000%;box-shadow:2px 2px 4px rgba(0,0,0,.4)} -.btn-danger{background-size:200% 200%;background-position:50%} -.btn-danger:focus{background-color:#e51c23} -.btn-danger:active:hover,.btn-danger:hover{background-color:#cb171e} -.btn-danger:active{background-color:#b0141a;background-image:-webkit-radial-gradient(circle,#b0141a 10%,#e51c23 11%);background-image:radial-gradient(circle,#b0141a 10%,#e51c23 11%);background-size:1000% 1000%;box-shadow:2px 2px 4px rgba(0,0,0,.4)} -.btn-danger:active,.btn-link:active{background-repeat:no-repeat;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,.4)} -.btn-link{background-size:200% 200%;background-position:50%} -.btn-link:focus{background-color:#fff} -.btn-link:active:hover,.btn-link:hover{background-color:#f0f0f0} -.btn-link:active{background-color:#e0e0e0;background-image:-webkit-radial-gradient(circle,#e0e0e0 10%,#fff 11%);background-image:radial-gradient(circle,#e0e0e0 10%,#fff 11%);background-size:1000% 1000%;box-shadow:2px 2px 4px rgba(0,0,0,.4)} -.btn{text-transform:uppercase;border:none;-webkit-box-shadow:1px 1px 4px rgba(0,0,0,.4);box-shadow:1px 1px 4px rgba(0,0,0,.4);-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s} -.btn-link{border-radius:3px;-webkit-box-shadow:none;box-shadow:none;color:#444} -.btn-link:focus,.btn-link:hover{-webkit-box-shadow:none;box-shadow:none;color:#444;text-decoration:none} -.btn-default.disabled{background-color:rgba(0,0,0,.1);color:rgba(0,0,0,.4);opacity:1} -.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:0} -.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:0} -body,button,input{-webkit-font-smoothing:antialiased;letter-spacing:.1px} -p{margin:0 0 1em} -.table-hover>tbody>tr,.table-hover>tbody>tr>td,.table-hover>tbody>tr>th,a{-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s} -label{font-weight:400} -[contenteditable].form-control,[type=email].form-control,[type=password].form-control,[type=tel].form-control,[type=text].form-control,input.form-control,input[type=email],input[type=number],input[type=password],input[type=text],textarea,textarea.form-control{padding:0;border:none;border-radius:0;-webkit-appearance:none;-webkit-box-shadow:inset 0 -1px 0 #ddd;box-shadow:inset 0 -1px 0 #ddd;font-size:16px} -[contenteditable].form-control:focus,[type=email].form-control:focus,[type=password].form-control:focus,[type=tel].form-control:focus,[type=text].form-control:focus,input.form-control:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=text]:focus,textarea.form-control:focus,textarea:focus{-webkit-box-shadow:inset 0 -2px 0 #2196f3;box-shadow:inset 0 -2px 0 #2196f3} -[contenteditable].form-control[disabled],[contenteditable].form-control[readonly],[type=email].form-control[disabled],[type=email].form-control[readonly],[type=password].form-control[disabled],[type=password].form-control[readonly],[type=tel].form-control[disabled],[type=tel].form-control[readonly],[type=text].form-control[disabled],[type=text].form-control[readonly],input.form-control[disabled],input.form-control[readonly],input[type=email][disabled],input[type=email][readonly],input[type=number][disabled],input[type=number][readonly],input[type=password][disabled],input[type=password][readonly],input[type=text][disabled],input[type=text][readonly],textarea.form-control[disabled],textarea.form-control[readonly],textarea[disabled],textarea[readonly]{-webkit-box-shadow:none;box-shadow:none;border-bottom:1px dotted #ddd} -[contenteditable].form-control.input-sm,[type=email].form-control.input-sm,[type=password].form-control.input-sm,[type=tel].form-control.input-sm,[type=text].form-control.input-sm,input.form-control.input-sm,input[type=email].input-sm,input[type=number].input-sm,input[type=password].input-sm,input[type=text].input-sm,textarea.form-control.input-sm,textarea.input-sm{font-size:12px} -[contenteditable].form-control.input-lg,[type=email].form-control.input-lg,[type=password].form-control.input-lg,[type=tel].form-control.input-lg,[type=text].form-control.input-lg,input.form-control.input-lg,input[type=email].input-lg,input[type=number].input-lg,input[type=password].input-lg,input[type=text].input-lg,textarea.form-control.input-lg,textarea.input-lg{font-size:17px} -select,select.form-control{border:0;border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-left:0;padding-right:0\9;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEVmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmaP/QSjAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=);background-size:13px;background-repeat:no-repeat;background-position:right center;-webkit-box-shadow:inset 0 -1px 0 #ddd;box-shadow:inset 0 -1px 0 #ddd;font-size:16px;line-height:1.5} -select.form-control::-ms-expand,select::-ms-expand{display:none} -select.form-control.input-sm,select.input-sm{font-size:12px} -select.form-control.input-lg,select.input-lg{font-size:17px} -select.form-control:focus,select:focus{-webkit-box-shadow:inset 0 -2px 0 #2196f3;box-shadow:inset 0 -2px 0 #2196f3;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEUhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISF8S9ewAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=)} -select.form-control[multiple],select[multiple]{background:0 0} -.checkbox label,.checkbox-inline label,.radio label,.radio-inline label{padding-left:25px} -.checkbox input[type=checkbox],.checkbox input[type=radio],.checkbox-inline input[type=checkbox],.checkbox-inline input[type=radio],.radio input[type=checkbox],.radio input[type=radio],.radio-inline input[type=checkbox],.radio-inline input[type=radio]{margin-left:-25px} -.radio input[type=radio],.radio-inline input[type=radio],input[type=radio]{position:relative;margin-top:6px;margin-right:4px;vertical-align:top;border:none;background-color:transparent;-webkit-appearance:none;appearance:none;cursor:pointer} -.radio input[type=radio]:focus,.radio-inline input[type=radio]:focus,input[type=radio]:focus{outline:0} -.radio input[type=radio]:after,.radio input[type=radio]:before,.radio-inline input[type=radio]:after,.radio-inline input[type=radio]:before,input[type=radio]:after,input[type=radio]:before{content:"";display:block;width:18px;height:18px;border-radius:50%;-webkit-transition:240ms;-o-transition:240ms;transition:240ms} -.radio input[type=radio]:before,.radio-inline input[type=radio]:before,input[type=radio]:before{position:absolute;left:0;top:-3px;background-color:#2196f3;-webkit-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0)} -.radio input[type=radio]:after,.radio-inline input[type=radio]:after,input[type=radio]:after{position:relative;top:-3px;border:2px solid #666} -.radio input[type=radio]:checked:before,.radio-inline input[type=radio]:checked:before,input[type=radio]:checked:before{-webkit-transform:scale(.5);-ms-transform:scale(.5);-o-transform:scale(.5);transform:scale(.5)} -.radio input[type=radio]:disabled:checked:before,.radio-inline input[type=radio]:disabled:checked:before,input[type=radio]:disabled:checked:before{background-color:#bbb} -.radio input[type=radio]:checked:after,.radio-inline input[type=radio]:checked:after,input[type=radio]:checked:after{border-color:#2196f3} -.radio input[type=radio]:disabled:after,.radio input[type=radio]:disabled:checked:after,.radio-inline input[type=radio]:disabled:after,.radio-inline input[type=radio]:disabled:checked:after,input[type=radio]:disabled:after,input[type=radio]:disabled:checked:after{border-color:#bbb} -.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],input[type=checkbox]{position:relative;border:none;margin-bottom:-4px;-webkit-appearance:none;appearance:none;cursor:pointer} -.checkbox input[type=checkbox]:focus,.checkbox-inline input[type=checkbox]:focus,input[type=checkbox]:focus{outline:0} -.checkbox input[type=checkbox]:focus:after,.checkbox-inline input[type=checkbox]:focus:after,input[type=checkbox]:focus:after{border-color:#2196f3} -.checkbox input[type=checkbox]:after,.checkbox-inline input[type=checkbox]:after,input[type=checkbox]:after{content:"";display:block;width:18px;height:18px;margin-top:-2px;margin-right:5px;border:2px solid #666;border-radius:2px;-webkit-transition:240ms;-o-transition:240ms;transition:240ms} -.checkbox input[type=checkbox]:checked:before,.checkbox-inline input[type=checkbox]:checked:before,input[type=checkbox]:checked:before{content:"";position:absolute;top:0;left:6px;display:table;width:6px;height:12px;border:2px solid #fff;border-top-width:0;border-left-width:0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)} -.checkbox input[type=checkbox]:checked:after,.checkbox-inline input[type=checkbox]:checked:after,input[type=checkbox]:checked:after{background-color:#2196f3;border-color:#2196f3} -.checkbox input[type=checkbox]:disabled:after,.checkbox-inline input[type=checkbox]:disabled:after,input[type=checkbox]:disabled:after{border-color:#bbb} -.checkbox input[type=checkbox]:disabled:checked:after,.checkbox-inline input[type=checkbox]:disabled:checked:after,input[type=checkbox]:disabled:checked:after{background-color:#bbb;border-color:transparent} -.has-warning .form-control,.has-warning .form-control:focus,.has-warning [type=text].form-control[readonly],.has-warning input.form-control[readonly],.has-warning input:not([type=checkbox]),.has-warning input:not([type=checkbox]):focus,.has-warning input[type=text][readonly]{border-bottom:none;-webkit-box-shadow:inset 0 -2px 0 #ff9800;box-shadow:inset 0 -2px 0 #ff9800} -.has-error .form-control,.has-error .form-control:focus,.has-error [type=text].form-control[readonly],.has-error input.form-control[readonly],.has-error input:not([type=checkbox]),.has-error input:not([type=checkbox]):focus,.has-error input[type=text][readonly]{border-bottom:none;-webkit-box-shadow:inset 0 -2px 0 #e51c23;box-shadow:inset 0 -2px 0 #e51c23} -.has-success .form-control,.has-success .form-control:focus,.has-success [type=text].form-control[readonly],.has-success input.form-control[readonly],.has-success input:not([type=checkbox]),.has-success input:not([type=checkbox]):focus,.has-success input[type=text][readonly]{border-bottom:none;-webkit-box-shadow:inset 0 -2px 0 #4caf50;box-shadow:inset 0 -2px 0 #4caf50} -.has-error .input-group-addon,.has-success .input-group-addon,.has-warning .input-group-addon{color:#666;border-color:transparent;background-color:transparent} -.form-group-lg select,.form-group-lg select.form-control{line-height:1.5} -.nav-tabs>li>a,.nav-tabs>li>a:focus{margin-right:0;background-color:transparent;border:none;color:#666;-webkit-box-shadow:inset 0 -1px 0 #ddd;box-shadow:inset 0 -1px 0 #ddd;transition:all .2s} -.close,.nav-tabs>li>a,.nav-tabs>li>a:focus{-webkit-transition:all .2s;-o-transition:all .2s} -.nav-tabs>li>a:focus:hover,.nav-tabs>li>a:hover{background-color:transparent;-webkit-box-shadow:inset 0 -2px 0 #2196f3;box-shadow:inset 0 -2px 0 #2196f3;color:#2196f3} -.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus{border:none;-webkit-box-shadow:inset 0 -2px 0 #2196f3;box-shadow:inset 0 -2px 0 #2196f3;color:#2196f3} -.nav-tabs>li.active>a:focus:hover,.nav-tabs>li.active>a:hover{border:none;color:#2196f3} -.alert,.alert .close{color:#fff} -.nav-tabs>li.disabled>a{-webkit-box-shadow:inset 0 -1px 0 #ddd;box-shadow:inset 0 -1px 0 #ddd} -.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>li>a,.nav-tabs.nav-justified>li>a:focus,.nav-tabs.nav-justified>li>a:hover{border:none} -.nav-tabs .dropdown-menu{margin-top:0} -.dropdown-menu{margin-top:0;border:none;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.3);box-shadow:0 1px 4px rgba(0,0,0,.3)} -.alert{border:none} -.alert-success{background-color:#4caf50} -.alert-info{background-color:#9c27b0} -.alert-warning{background-color:#ff9800} -.alert-danger{background-color:#e51c23} -.alert .alert-link,.alert a:not(.close):not(.btn){color:#fff;font-weight:700} -.badge{padding:4px 6px} -.progress{position:relative;z-index:1;height:6px;border-radius:0;-webkit-box-shadow:none;box-shadow:none} -.progress-bar{box-shadow:none} -.progress-bar,.well{-webkit-box-shadow:none} -.progress-bar:last-child{border-radius:0 3px 3px 0} -.progress-bar:last-child:before{display:block;content:"";position:absolute;width:100%;height:100%;left:0;right:0;z-index:-1;background-color:#cae6fc} -.progress-bar-success:last-child.progress-bar:before{background-color:#c7e7c8} -.progress-bar-info:last-child.progress-bar:before{background-color:#edc9f3} -.progress-bar-warning:last-child.progress-bar:before{background-color:#ffe0b3} -.progress-bar-danger:last-child.progress-bar:before{background-color:#f28e92} -.close{font-size:34px;font-weight:300;line-height:24px;opacity:.6;transition:all .2s} -.close:hover{opacity:1} -.list-group-item{padding:15px} -.list-group-item-text{color:#bbb} -.well{border-radius:0;box-shadow:none} -.panel{border:none;border-radius:2px;box-shadow:0 1px 4px rgba(0,0,0,.3)} -.panel,.popover{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.3)} -.panel-heading{border-bottom:none} -.panel-footer{border-top:none} -.popover{border:none;box-shadow:0 1px 4px rgba(0,0,0,.3)} -.carousel-caption h1,.carousel-caption h2,.carousel-caption h3,.carousel-caption h4,.carousel-caption h5,.carousel-caption h6{color:inherit} \ No newline at end of file diff --git a/web/js/md.theme.js b/web/js/md.theme.js index 7a95ada..4fb8530 100644 --- a/web/js/md.theme.js +++ b/web/js/md.theme.js @@ -1,3 +1,3 @@ $(document).ready(function () { - $('.withripple, .panel-item-switch, .btn').ripples(); + $('.withripple, .btn').ripples(); }); diff --git a/web/js/panel.js b/web/js/panel.js index 8643c54..15c3d6f 100644 --- a/web/js/panel.js +++ b/web/js/panel.js @@ -3,10 +3,6 @@ var wsURL; var WS; var WSConnectionOpened; -function log(msg) { - console.log(msg); -} - function initWebSocket(callback) { WS = new WebSocket(wsURL); @@ -30,7 +26,7 @@ function onMessage(e) { try { var data = JSON.parse(e.data); - log(data); + console.log(data); switch (data.type) { case 'init': @@ -67,8 +63,6 @@ function send(msg) { msg = JSON.stringify(msg); } - log(msg); - if (WS && WS.readyState == 1) { WS.send(msg); } @@ -78,39 +72,60 @@ function updateValue(data) { updateItemValue(data.item_id, data.item_type, data.value); } +function itemSwitchOn(itemId) { + var $item = $('.panel-item-switch[data-item-id="' + itemId + '"]'); + $item.removeClass('off'); +} + +function itemSwitchOff(itemId) { + var $item = $('.panel-item-switch[data-item-id="' + itemId + '"]'); + $item.addClass('off'); +} + +function itemSetValue(itemId, value) { + console.log(itemId, value); + $('.panel-item-variable[data-item-id="' + itemId + '"] > .item-variable-value').html(value); +} + function updateItemValue(id, type, value) { type = parseInt(type); switch (type) { case 10: // Switch - $('.item-switch-checkbox[data-item-id="' + id + '"]').prop('checked', value); + if (value == true) { + itemSwitchOn(id); + } else { + itemSwitchOff(id); + } break; case 20: // Variable + itemSetValue(id, value); + break; case 21: // Variable Temperature - $('.item-variable[data-item-id="' + id + '"]').find('.item-value').html(value + '°C'); + itemSetValue(id, value + ' °C'); break; case 22: // Variable Humidity - $('.item-variable[data-item-id="' + id + '"]').find('.item-value').html(value + "%"); + itemSetValue(id, value + '%'); break; case 25: // Variable boolean - var $item_value = $('.item-variable[data-item-id="' + id + '"]').find('.item-value'); - if (value) { - $item_value.html('ДА'); + value = 'да'; } else { - $item_value.html('НЕТ'); + value = 'нет'; } + itemSetValue(id, value); + break; case 26: // Variable boolean door - var $item_value = $('.item-variable[data-item-id="' + id + '"]').find('.item-value'); - if (value) { - $item_value.html('ОТКРЫТО'); + value = 'открыто'; } else { - $item_value.html('ЗАКРЫТО'); + value = 'закрыто'; } + itemSetValue(id, value); + break; case 30: // RGB if (typeof value === 'string') { @@ -153,37 +168,37 @@ $(document).ready(function () { } }); - $('.fade-checkbox').each(function () { - var localStorageValue = window.localStorage.getItem('fade-checkbox-' + $(this).data('item-id')); - - console.log(localStorageValue); - - this.checked = localStorageValue != null && localStorageValue != 'false'; - }); + // $('.fade-checkbox').each(function () { + // var localStorageValue = window.localStorage.getItem('fade-checkbox-' + $(this).data('item-id')); + // + // console.log(localStorageValue); + // + // this.checked = localStorageValue != null && localStorageValue != 'false'; + // }); initWebSocket(function () { - $('input[type="checkbox"].item-switch-checkbox').click(function (e) { - e.preventDefault(); - - var item_id = $(this).data('item-id'); - var action = $(this).prop('checked') ? 'turnON' : 'turnOFF'; - - send({ - "type": action, - "item_id": item_id - }); - }); + // $('input[type="checkbox"].item-switch-checkbox').click(function (e) { + // e.preventDefault(); + // + // var item_id = $(this).data('item-id'); + // var action = $(this).prop('checked') ? 'turnON' : 'turnOFF'; + // + // send({ + // "type": action, + // "item_id": item_id + // }); + // }); // Delegate click on block to checkbox - $('.item-switch .info-box').click(function (e) { - e.preventDefault(); - - if ($(e.target).is('.item-switch-checkbox')) { - return false; - } - - $(this).find('.item-switch-checkbox').click(); - }); + // $('.item-switch .info-box').click(function (e) { + // e.preventDefault(); + // + // if ($(e.target).is('.item-switch-checkbox')) { + // return false; + // } + // + // $(this).find('.item-switch-checkbox').click(); + // }); $('.rgb-mode').click(function (e) { e.preventDefault(); @@ -204,14 +219,20 @@ $(document).ready(function () { }); }); - $('.fade-checkbox').change(function (e) { - window.localStorage.setItem('fade-checkbox-' + $(this).data('item-id'), this.checked); - }); + // $('.fade-checkbox').change(function (e) { + // window.localStorage.setItem('fade-checkbox-' + $(this).data('item-id'), this.checked); + // }); $('.panel-item-switch').click(function (e) { e.preventDefault(); - $(this).toggleClass('off'); + var item_id = $(this).data('item-id'); + var action = $(this).hasClass('off') ? 'turnON' : 'turnOFF'; + + send({ + "type": action, + "item_id": item_id + }); return false; }) From 1c1152f51fb366a2f428528802eaa2657730a7d1 Mon Sep 17 00:00:00 2001 From: Alex Solomaha Date: Fri, 10 Feb 2017 22:53:27 +0200 Subject: [PATCH 05/45] New loader; Added snackbars; Fixes --- assets/AppAsset.php | 1 + assets/MDThemeAsset.php | 1 + assets/SnackbarjsAsset.php | 25 ++++ composer.json | 10 +- composer.lock | 38 +++++- controllers/PanelController.php | 2 + views/layouts/main-no-content.php | 12 ++ views/panel/_switch.php | 2 +- views/panel/_variable.php | 4 +- views/panel/index.php | 97 ++++++++------ web/css/md.theme.css | 47 ++++--- web/css/panel.css | 175 +++++++++++++------------ web/css/site.css | 185 +------------------------- web/img/logo-round-256.png | Bin 0 -> 5091 bytes web/js/panel.js | 207 ++++++++++++++++-------------- web/js/site.js | 18 +-- 16 files changed, 385 insertions(+), 439 deletions(-) create mode 100644 assets/SnackbarjsAsset.php create mode 100644 views/layouts/main-no-content.php create mode 100644 web/img/logo-round-256.png diff --git a/assets/AppAsset.php b/assets/AppAsset.php index 03c9c7b..1206796 100644 --- a/assets/AppAsset.php +++ b/assets/AppAsset.php @@ -21,5 +21,6 @@ class AppAsset extends AssetBundle 'rmrevin\yii\fontawesome\AssetBundle', // 'dmstr\web\AdminLteAsset', 'shifrin\noty\NotyAsset', + 'app\assets\MDThemeAsset', ]; } diff --git a/assets/MDThemeAsset.php b/assets/MDThemeAsset.php index 72f75ee..09956a8 100644 --- a/assets/MDThemeAsset.php +++ b/assets/MDThemeAsset.php @@ -20,5 +20,6 @@ class MDThemeAsset extends AssetBundle public $depends = [ 'yii\web\JqueryAsset', 'yii\bootstrap\BootstrapPluginAsset', + 'app\assets\SnackbarjsAsset', ]; } diff --git a/assets/SnackbarjsAsset.php b/assets/SnackbarjsAsset.php new file mode 100644 index 0000000..e9e4f09 --- /dev/null +++ b/assets/SnackbarjsAsset.php @@ -0,0 +1,25 @@ + [ + '*.js', + '*.css', + '*.js.*', + '*.css.*', + ] + ]; +} diff --git a/composer.json b/composer.json index f26d211..06af386 100644 --- a/composer.json +++ b/composer.json @@ -11,6 +11,7 @@ "cboden/ratchet": "^0.3.4", "bower-asset/handlebars": "^4.0", "bower-asset/spectrum": "^1.8", + "bower-asset/snackbarjs": "dev-fixes", "rmrevin/yii2-fontawesome": "~2.12", "linslin/yii2-curl": "1.0.8", "shifrin/yii2-noty": "^1.0", @@ -31,6 +32,13 @@ "asset-installer-paths": { "npm-asset-library": "vendor/npm", "bower-asset-library": "vendor/bower" - } + }, + "asset-repositories": [ + { + "type": "bower-github", + "url": "https://github.com/CyanoFresh/snackbarjs", + "name": "bower-asset/snackbarjs" + } + ] } } diff --git a/composer.lock b/composer.lock index 69c8ac9..c6bcffc 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "92864bfe10c2801fc39e079651eaf8ad", - "content-hash": "5c9a74d5c23bfcff41b8812cf37ddf42", + "hash": "36277b6bc1344ef7568626d02d35eec2", + "content-hash": "30799817bc717ac25ecda917be4bbef5", "packages": [ { "name": "bower-asset/bootstrap", @@ -211,6 +211,36 @@ ] } }, + { + "name": "bower-asset/snackbarjs", + "version": "dev-fixes", + "source": { + "type": "git", + "url": "https://github.com/CyanoFresh/snackbarjs.git", + "reference": "18df00bca47dea8421922b37db2ebd798cadd0fa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/CyanoFresh/snackbarjs/zipball/18df00bca47dea8421922b37db2ebd798cadd0fa", + "reference": "18df00bca47dea8421922b37db2ebd798cadd0fa", + "shasum": "" + }, + "require": { + "bower-asset/jquery": ">=2.0.0,<3.0.0" + }, + "type": "bower-asset-library", + "extra": { + "bower-asset-main": [ + "dist/snackbar.min.js", + "dist/snackbar.min.css" + ], + "bower-asset-ignore": [ + ".jshintrc", + "**/*.txt" + ] + }, + "time": "2017-02-08 21:57:42" + }, { "name": "bower-asset/spectrum", "version": "1.8.0", @@ -3654,7 +3684,9 @@ ], "aliases": [], "minimum-stability": "dev", - "stability-flags": [], + "stability-flags": { + "bower-asset/snackbarjs": 20 + }, "prefer-stable": true, "prefer-lowest": false, "platform": { diff --git a/controllers/PanelController.php b/controllers/PanelController.php index 525248c..e511309 100644 --- a/controllers/PanelController.php +++ b/controllers/PanelController.php @@ -30,6 +30,8 @@ class PanelController extends Controller public function actionIndex() { + $this->layout = 'main-no-content'; + $this->view->registerJs(' var wsURL = "' . Yii::$app->params['wsURL'] . '/?type=user&id=' . Yii::$app->user->identity->id diff --git a/views/layouts/main-no-content.php b/views/layouts/main-no-content.php new file mode 100644 index 0000000..4d18730 --- /dev/null +++ b/views/layouts/main-no-content.php @@ -0,0 +1,12 @@ + + +beginContent('@app/views/layouts/base.php'); ?> + + render('_header.php') ?> + + + +endContent(); ?> diff --git a/views/panel/_switch.php b/views/panel/_switch.php index dca5676..c9d329b 100644 --- a/views/panel/_switch.php +++ b/views/panel/_switch.php @@ -8,7 +8,7 @@ use rmrevin\yii\fontawesome\FA; ?>
-
+
icon) ?>
diff --git a/views/panel/_variable.php b/views/panel/_variable.php index b896649..b5debea 100644 --- a/views/panel/_variable.php +++ b/views/panel/_variable.php @@ -7,11 +7,11 @@ use rmrevin\yii\fontawesome\FA; ?> -
+
icon) ?>
-
0
+
getDefaultValue() ?>
diff --git a/views/panel/index.php b/views/panel/index.php index 62c74ba..acdda6a 100644 --- a/views/panel/index.php +++ b/views/panel/index.php @@ -4,54 +4,69 @@ /* @var $roomModels \app\models\Room[] */ use app\assets\PanelAsset; +use rmrevin\yii\fontawesome\FA; +use yii\helpers\Html; PanelAsset::register($this); $this->title = 'Панель Управления'; ?> -
-
- - - -
-
+
+
-
- - -
-
-

name ?>

-
- -
-
- getItems()->switches()->active()->all() as $item): ?> - render('_switch', [ - 'item' => $item, - ]) ?> - -
-
- getItems()->variables()->active()->all() as $item): ?> - render('_variable', [ - 'item' => $item, - ]) ?> - -
-
- getItems()->rgb()->all() as $item): ?> - render('_rgb', [ - 'item' => $item, - ]) ?> - -
-
- +
+
+
+
- - +
+
+ Solomaha Home +
+
OFFLINE
+ +
+
+

title) ?>

+
+ +
+ + +
+
+

name ?>

+
+ +
+
+ getItems()->switches()->active()->all() as $item): ?> + render('_switch', [ + 'item' => $item, + ]) ?> + +
+
+ getItems()->variables()->active()->all() as $item): ?> + render('_variable', [ + 'item' => $item, + ]) ?> + +
+
+ getItems()->rgb()->all() as $item): ?> + render('_rgb', [ + 'item' => $item, + ]) ?> + +
+
+ +
+ + +
+
diff --git a/web/css/md.theme.css b/web/css/md.theme.css index 5af674b..65fc971 100644 --- a/web/css/md.theme.css +++ b/web/css/md.theme.css @@ -71,7 +71,7 @@ a.product-font:hover { padding: 0 15px 0 20px; font-size: 20px; line-height: 50px; - border-right: 1px solid rgba(95, 95, 95, 0.3); + /*border-right: 1px solid rgba(95, 95, 95, 0.3);*/ background: rgba(0, 0, 0, 0.1); border-top-left-radius: 30px; border-bottom-left-radius: 30px; @@ -91,7 +91,7 @@ a.product-font:hover { box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, .12), 0 1px 1px 0 rgba(0, 0, 0, .24); color: #fff; text-align: center; - margin: 15px 0; + margin: 10px 0; cursor: pointer; } @@ -118,21 +118,34 @@ a.product-font:hover { user-select: none; } +@media (max-width: 767px) { + /* CSS goes here */ +} + +/* Snackbar fixes */ +#snackbar-container { + position: fixed; + right: 20px; + bottom: 0; + left: auto; + z-index: 99999; +} + /* Migration styles !!! */ -.box { - position: relative; - border-radius: 0; - border: none; - background: #ffffff; - margin-bottom: 20px; - width: 100%; - box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 1px 6px 0 rgba(0, 0, 0, 0.12); -} +/*.box {*/ + /*position: relative;*/ + /*border-radius: 0;*/ + /*border: none;*/ + /*background: #ffffff;*/ + /*margin-bottom: 20px;*/ + /*width: 100%;*/ + /*box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 1px 6px 0 rgba(0, 0, 0, 0.12);*/ +/*}*/ -.box.box-success { - border: none; -} +/*.box.box-success {*/ + /*border: none;*/ +/*}*/ -.content-wrapper { - background: #e8e8e8; -} +/*.content-wrapper {*/ + /*background: #e8e8e8;*/ +/*}*/ diff --git a/web/css/panel.css b/web/css/panel.css index f336ab2..d90548b 100644 --- a/web/css/panel.css +++ b/web/css/panel.css @@ -1,107 +1,112 @@ -.temperature { - font-size: 40px; +body { + opacity: 0; + transition: 0.3s; } -.item-rgb .sp-replacer { - margin: 4px 0; - padding: 0; - border: 0; - border-radius: 0; - color: inherit; - background: #efefef; - display: inline-block; +body.loaded { + opacity: 1; +} + +/* Linear loader */ +.linear-loader { + position: absolute; + top: 64px; + left: 0; + right: 0; + overflow: hidden; + width: 100%; + height: 4px; + background-color: #B3E5FC; + z-index: 500; +} + +.indeterminate { position: relative; - height: 30px; width: 100%; - box-shadow: 0 0 10px rgba(0,0,0,0.5); + height: 100%; } -.item-rgb .sp-preview { - border: none; - margin-right: 0; - height: 30px; - width: 100%; +.indeterminate:before { + content: ''; + position: absolute; + height: 100%; + background-color: #03A9F4; + animation: indeterminate_first 3s infinite ease-out; } -.item-rgb .sp-dd { - display: none; +.indeterminate:after { + content: ''; + position: absolute; + height: 100%; + background-color: #4FC3F7; + animation: indeterminate_second 3s infinite ease-in; } -.item-rgb label { - margin: 0; -} - -.item-rgb .col-xs-4 { - margin: 0; - padding: 0; - padding-right: 10px; -} - -.item-rgb .col-xs-8 { - margin: 0; - padding: 0; - padding-left: 10px; -} - -.item-rgb .border-right { - border-right: 1px solid rgba(255, 255, 255, 0.5); -} - -.item-rgb .rgb-mode { - display: inline-block; - width: 60px; - height: 50px; - cursor: pointer; - margin: 5px 5px 0 0; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); - transition: 0.5s; -} - -@media (min-width: 768px) { - .item-rgb .rgb-mode { - width: 50px; - margin: 5px 10px 0 0; +@keyframes indeterminate_first { + 0% { + left: -100%; + width: 100%; + } + 100% { + left: 100%; + width: 10%; } } -.item-rgb .rgb-mode.active { - /*border: 1px solid #fff;*/ +@keyframes indeterminate_second { + 0% { + left: -150%; + width: 100%; + } + 100% { + left: 100%; + width: 10%; + } } -.item-rgb .rgb-mode.active .rgb-mode-image { - box-shadow: inset 0 0 0 2px #fff; +/* Content loader */ +#loader { + position: relative; } -.item-rgb .rgb-mode-image { - height: 100%; - width: 100%; - transition: 0.5s; +.loader-icon { + background: #2f2f2f; + border-radius: 100%; + height: 150px; + width: 150px; + margin: 100px auto 30px; + color: #fff; + text-align: center; + line-height: 150px; + font-size: 100px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); } -.item-rgb .rgb-mode-rainbow { - background: red; /* not working, let's see some red */ - background: -moz-linear-gradient(left, - rgba(255, 0, 0, 1) 0%, - rgba(255, 255, 0, 1) 15%, - rgba(0, 255, 0, 1) 30%, - rgba(0, 255, 255, 1) 50%, - rgba(0, 0, 255, 1) 65%, - rgba(255, 0, 255, 1) 80%, - rgba(255, 0, 0, 1) 100%); - background: -webkit-gradient(linear, left top, right top, - color-stop(0%, rgba(255, 0, 0, 1)), - color-stop(15%, rgba(255, 255, 0, 1)), - color-stop(30%, rgba(0, 255, 0, 1)), - color-stop(50%, rgba(0, 255, 255, 1)), - color-stop(65%, rgba(0, 0, 255, 1)), - color-stop(80%, rgba(255, 0, 255, 1)), - color-stop(100%, rgba(255, 0, 0, 1))); +.loader-brand { + text-align: center; + font-size: 40px; } -.item-rgb .rgb-mode-breath { - background: #000000; /* Old browsers */ - background: -moz-linear-gradient(left, #000000 0%, #30ff60 51%, #000000 100%); /* FF3.6-15 */ - background: -webkit-linear-gradient(left, #000000 0%, #30ff60 51%, #000000 100%); /* Chrome10-25,Safari5.1-6 */ - background: linear-gradient(to right, #000000 0%, #30ff60 51%, #000000 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr='#000000', GradientType=1); +.loader-message { + opacity: 0; + text-align: center; + font-size: 18px; + position: absolute; + left: calc(50% - 15px); + top: 125px; + background: #F44336; + border-radius: 50px; + padding: 0 10px; + color: #fff; + box-shadow: 0 0 10px #f44336; + width: 100px; + transition: 0.8s; +} + +#loader.error .loader-message { + opacity: 1; +} + +.control-panel { + display: none; } diff --git a/web/css/site.css b/web/css/site.css index 92b5d59..c74f139 100644 --- a/web/css/site.css +++ b/web/css/site.css @@ -1,8 +1,3 @@ -.not-set { - color: #c55; - font-style: italic; -} - .product-font { font-family: 'Product Sans', Arial, sans-serif; } @@ -11,182 +6,14 @@ font-weight: bold; } -.control-panel-room-title { - color: #8a8a8a; - border-bottom: 1px solid #efefef; - font-size: 30px; - margin-bottom: 20px; +.not-set { + color: #c55; + font-style: italic; } -.item-switch .info-box-text { - font-weight: 400; - font-size: 20px; - text-align: center; - line-height: 80px; -} - -.login-page { - background: url("../img/login-bg.png") no-repeat center center fixed; - -webkit-background-size: cover; - -moz-background-size: cover; - -o-background-size: cover; - background-size: cover; -} - -.login-box { - box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.5); -} - -.material-switch > input[type="checkbox"] { - display: none; -} - -.material-switch > label { - cursor: pointer; - height: 0px; - position: relative; - width: 40px; -} - -.material-switch > label::before { - background: rgb(0, 0, 0); - /*box-shadow: inset 0px 0px 10px rgba(0, 0, 0, 0.5);*/ - border-radius: 8px; - content: ''; - height: 16px; - margin-top: -8px; - position: absolute; - opacity: 0.3; - transition: all 0.4s ease-in-out; - width: 40px; -} - -.material-switch > label::after { - background: rgb(255, 255, 255); - border-radius: 16px; - box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.3); - content: ''; - height: 24px; - left: -4px; - margin-top: -8px; - position: absolute; - top: -4px; - transition: all 0.3s ease-in-out; - width: 24px; -} - -.material-switch > input[type="checkbox"]:checked + label::before { - background: inherit; - opacity: 0.5; -} - -.material-switch > input[type="checkbox"]:checked + label::after { - background: inherit; - left: 20px; -} - -.info-box-action { - border-radius: 2px 0 0 2px; - float: left; - height: 90px; - width: 90px; - /*text-align: center;*/ - /*font-size: 45px;*/ - /*line-height: 90px;*/ - background: rgba(0, 0, 0, 0.2); - display: flex; - justify-content: center; - align-items: center; -} - -.item-switch .info-box { - cursor: pointer; -} - -/* WS Loader */ -.content-wrapper { - position: relative; -} - -.control-panel { - display: none; -} - -.loader .loader-animation { - margin: 30px auto 0; -} - -.loader .loader-text { - margin: 30px auto; - text-align: center; - font-weight: 600; - text-transform: uppercase; - display: none; -} - -.loader .loader-animation span { - transition: 0.5s; -} - -.loader.error .loader-animation span { - background: #DD4B39; -} - -.loader-animation { - position: relative; - display: block; - width: 100px; - height: 100px; - margin: 50px; - background: transparent; -} - -.loader-animation span { - position: absolute; - top: 50px; - display: block; - width: 30px; - height: 30px; - background: #605ca8; - border-radius: 50%; -} - -.loader-animation span:nth-child(1) { - -webkit-animation: bounce 0.8s ease-in-out infinite; - animation: bounce 0.8s ease-in-out infinite; -} - -.loader-animation span:nth-child(2) { - left: 40px; - -webkit-animation: bounce 0.8s ease-in-out 0.25s infinite; - animation: bounce 0.8s ease-in-out 0.25s infinite; -} - -.loader-animation span:nth-child(3) { - left: 80px; - -webkit-animation: bounce 0.8s ease-in-out 0.5s infinite; - animation: bounce 0.8s ease-in-out 0.5s infinite; -} - -@-webkit-keyframes bounce { - 0%, 100% { - -webkit-transform: translateY(0px); - transform: translateY(0px); - } - 50% { - -webkit-transform: translateY(-25px); - transform: translateY(-25px); - } -} - -@keyframes bounce { - 0%, 100% { - -webkit-transform: translateY(0px); - transform: translateY(0px); - } - 50% { - -webkit-transform: translateY(-25px); - transform: translateY(-25px); +@media (max-width: 767px) { + .content-header h1 { + font-size: 35px; } } diff --git a/web/img/logo-round-256.png b/web/img/logo-round-256.png new file mode 100644 index 0000000000000000000000000000000000000000..174a285fff6fa6fa3c2cfd5b8ad04b4f15d44651 GIT binary patch literal 5091 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 S3vIvucC)o~w5UAllki{hVDdHq literal 0 HcmV?d00001 diff --git a/web/js/panel.js b/web/js/panel.js index 15c3d6f..3fab131 100644 --- a/web/js/panel.js +++ b/web/js/panel.js @@ -3,25 +3,33 @@ var wsURL; var WS; var WSConnectionOpened; -function initWebSocket(callback) { +function initWebSocket(onOpenCallback, onMessageCallback, onCloseCallback) { WS = new WebSocket(wsURL); - WS.onmessage = onMessage; - WS.onopen = callback; - WS.onclose = function () { - if (WSConnectionOpened) { - $('.loader-text').html('Отключен от сервера').fadeIn(); - - $('.control-panel').fadeOut(function () { - $('#loader').addClass('error').fadeIn(); - }); - } else { - $('#loader').addClass('error'); - $('.loader-text').html('Не удалось подключиться к серверу').fadeIn(); - } - }; + WS.onmessage = onMessageCallback; + WS.onopen = onOpenCallback; + WS.onclose = onCloseCallback; } +initWebSocket(function () { + WSConnectionOpened = true; + + $('#loader, .linear-loader').fadeOut(function () { + $('main').fadeIn(); + }); +}, onMessage, function () { + if (WSConnectionOpened) { + $('main').fadeOut(function () { + $('#loader').fadeIn().addClass('error'); + }); + } else { + $('#loader').addClass('error'); + $('.linear-loader').fadeOut(); + } + + WSConnectionOpened = false; +}); + function onMessage(e) { try { var data = JSON.parse(e.data); @@ -92,11 +100,12 @@ function updateItemValue(id, type, value) { switch (type) { case 10: // Switch - if (value == true) { + if (Boolean(value)) { itemSwitchOn(id); } else { itemSwitchOff(id); } + break; case 20: // Variable itemSetValue(id, value); @@ -108,11 +117,7 @@ function updateItemValue(id, type, value) { itemSetValue(id, value + '%'); break; case 25: // Variable boolean - if (value) { - value = 'да'; - } else { - value = 'нет'; - } + value = Boolean(value) ? 'да' : 'нет'; itemSetValue(id, value); @@ -128,6 +133,7 @@ function updateItemValue(id, type, value) { break; case 30: // RGB + // TODO if (typeof value === 'string') { $('.item-rgb[data-item-id="' + id + '"]') .find('.rgb-mode[data-mode="' + value + '"]') @@ -145,29 +151,48 @@ function updateItemValue(id, type, value) { } $(document).ready(function () { - $('.rgb-colorpicker').spectrum({ - showInput: true, - showButtons: false, - preferredFormat: 'rgb', - change: function (color) { - var item_id = $(this).data('item-id'); - var red = Math.round(color._r); - var green = Math.round(color._g); - var blue = Math.round(color._b); - var fade = ($('.fade-checkbox[data-item-id="' + item_id + '"]:checked').length > 0); + $('body').addClass('loaded'); - send({ - 'type': 'rgb', - 'item_id': item_id, - 'fade': fade, - 'red': red, - 'green': green, - 'blue': blue - }); - } + // Event listeners + $('.panel-item-switch').click(function (e) { + e.preventDefault(); + + var item_id = $(this).data('item-id'); + var action = $(this).hasClass('off') ? 'turnON' : 'turnOFF'; + + send({ + "type": action, + "item_id": item_id + }); + + return false; }); + // TODO: + // $('.rgb-colorpicker').spectrum({ + // showInput: true, + // showButtons: false, + // preferredFormat: 'rgb', + // change: function (color) { + // var item_id = $(this).data('item-id'); + // var red = Math.round(color._r); + // var green = Math.round(color._g); + // var blue = Math.round(color._b); + // + // var fade = ($('.fade-checkbox[data-item-id="' + item_id + '"]:checked').length > 0); + // + // send({ + // 'type': 'rgb', + // 'item_id': item_id, + // 'fade': fade, + // 'red': red, + // 'green': green, + // 'blue': blue + // }); + // } + // }); + // $('.fade-checkbox').each(function () { // var localStorageValue = window.localStorage.getItem('fade-checkbox-' + $(this).data('item-id')); // @@ -176,65 +201,51 @@ $(document).ready(function () { // this.checked = localStorageValue != null && localStorageValue != 'false'; // }); - initWebSocket(function () { - // $('input[type="checkbox"].item-switch-checkbox').click(function (e) { - // e.preventDefault(); - // - // var item_id = $(this).data('item-id'); - // var action = $(this).prop('checked') ? 'turnON' : 'turnOFF'; - // - // send({ - // "type": action, - // "item_id": item_id - // }); - // }); + // initWebSocket(function () { + // $('input[type="checkbox"].item-switch-checkbox').click(function (e) { + // e.preventDefault(); + // + // var item_id = $(this).data('item-id'); + // var action = $(this).prop('checked') ? 'turnON' : 'turnOFF'; + // + // send({ + // "type": action, + // "item_id": item_id + // }); + // }); - // Delegate click on block to checkbox - // $('.item-switch .info-box').click(function (e) { - // e.preventDefault(); - // - // if ($(e.target).is('.item-switch-checkbox')) { - // return false; - // } - // - // $(this).find('.item-switch-checkbox').click(); - // }); + // Delegate click on block to checkbox + // $('.item-switch .info-box').click(function (e) { + // e.preventDefault(); + // + // if ($(e.target).is('.item-switch-checkbox')) { + // return false; + // } + // + // $(this).find('.item-switch-checkbox').click(); + // }); - $('.rgb-mode').click(function (e) { - e.preventDefault(); + // $('.rgb-mode').click(function (e) { + // e.preventDefault(); + // + // var mode = $(this).data('mode'); + // var start = true; + // var item_id = $(this).parents('.item-rgb').data('item-id'); + // + // if ($(this).hasClass('active')) { + // start = false + // } + // + // send({ + // "type": "rgbMode", + // "item_id": item_id, + // "mode": mode, + // "start": start + // }); + // }); - var mode = $(this).data('mode'); - var start = true; - var item_id = $(this).parents('.item-rgb').data('item-id'); - - if ($(this).hasClass('active')) { - start = false - } - - send({ - "type": "rgbMode", - "item_id": item_id, - "mode": mode, - "start": start - }); - }); - - // $('.fade-checkbox').change(function (e) { - // window.localStorage.setItem('fade-checkbox-' + $(this).data('item-id'), this.checked); - // }); - - $('.panel-item-switch').click(function (e) { - e.preventDefault(); - - var item_id = $(this).data('item-id'); - var action = $(this).hasClass('off') ? 'turnON' : 'turnOFF'; - - send({ - "type": action, - "item_id": item_id - }); - - return false; - }) - }); + // $('.fade-checkbox').change(function (e) { + // window.localStorage.setItem('fade-checkbox-' + $(this).data('item-id'), this.checked); + // }); + // }); }); diff --git a/web/js/site.js b/web/js/site.js index 2b2d827..e9ecc21 100644 --- a/web/js/site.js +++ b/web/js/site.js @@ -1,20 +1,14 @@ function showErrorMessage(message) { - return noty({ - layout: 'bottomRight', - text: message, - timeout: 5000, - type: 'error', - theme: 'relax' + return $.snackbar({ + content: message, + timeout: 5000 }); } function showSuccessMessage(message) { - return noty({ - layout: 'bottomRight', - text: message, - timeout: 5000, - type: 'success', - theme: 'relax' + return $.snackbar({ + content: message, + timeout: 5000 }); } From 1ea3671f1a8356ad2a6f7acbe6d2d33d057f6256 Mon Sep 17 00:00:00 2001 From: Alex Solomaha Date: Sun, 12 Feb 2017 22:16:14 +0200 Subject: [PATCH 06/45] Drawer --- assets/AppAsset.php | 1 + assets/JSCookieAsset.php | 18 ++++ composer.json | 3 +- composer.lock | 39 +++++++- config/main.php | 1 + views/layouts/_drawer.php | 67 +++++++++++++ views/layouts/_header.php | 18 ++-- views/layouts/main-no-content.php | 2 + views/layouts/main.php | 2 +- web/css/md.theme.css | 155 ++++++++++++++++++++++++------ web/css/panel.css | 9 -- web/js/md.theme.js | 2 +- web/js/panel.js | 4 - web/js/site.js | 37 +++++++ 14 files changed, 305 insertions(+), 53 deletions(-) create mode 100644 assets/JSCookieAsset.php create mode 100644 views/layouts/_drawer.php diff --git a/assets/AppAsset.php b/assets/AppAsset.php index 1206796..9dfaacc 100644 --- a/assets/AppAsset.php +++ b/assets/AppAsset.php @@ -22,5 +22,6 @@ class AppAsset extends AssetBundle // 'dmstr\web\AdminLteAsset', 'shifrin\noty\NotyAsset', 'app\assets\MDThemeAsset', + 'app\assets\JSCookieAsset', ]; } diff --git a/assets/JSCookieAsset.php b/assets/JSCookieAsset.php new file mode 100644 index 0000000..32e0244 --- /dev/null +++ b/assets/JSCookieAsset.php @@ -0,0 +1,18 @@ + [ + '*.js', + ] + ]; +} diff --git a/composer.json b/composer.json index 06af386..f2d06a8 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,8 @@ "voskobovich/yii2-many-many-behavior": "^3.2", "kartik-v/yii2-widgets": "^3.4", "kartik-v/yii2-datecontrol": "^1.9", - "voskobovich/yii2-linker-behavior": "4.0.1-rc" + "voskobovich/yii2-linker-behavior": "4.0.1-rc", + "bower-asset/js-cookie": "^2.1" }, "require-dev": { "yiisoft/yii2-debug": "*", diff --git a/composer.lock b/composer.lock index c6bcffc..347a4d4 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "36277b6bc1344ef7568626d02d35eec2", - "content-hash": "30799817bc717ac25ecda917be4bbef5", + "hash": "1627a6b0056d96c8d2ba8573dd280894", + "content-hash": "9a05371bbaeb69fb2a58db60a6d72bb5", "packages": [ { "name": "bower-asset/bootstrap", @@ -162,6 +162,41 @@ "plugins" ] }, + { + "name": "bower-asset/js-cookie", + "version": "v2.1.3", + "source": { + "type": "git", + "url": "https://github.com/js-cookie/js-cookie.git", + "reference": "68acf18560eb7a5d21db7197ae24d975971d1ae0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/js-cookie/js-cookie/zipball/68acf18560eb7a5d21db7197ae24d975971d1ae0", + "reference": "68acf18560eb7a5d21db7197ae24d975971d1ae0", + "shasum": "" + }, + "type": "bower-asset-library", + "extra": { + "bower-asset-main": [ + "src/js.cookie.js" + ], + "bower-asset-ignore": [ + "travis.sh", + "test", + "Gruntfile.js", + "package.json", + ".gitignore", + ".jshintignore", + ".jshintrc", + ".tm_properties", + ".travis.yml" + ] + }, + "license": [ + "MIT" + ] + }, { "name": "bower-asset/noty", "version": "v2.4.0", diff --git a/config/main.php b/config/main.php index 9722a63..d20aa51 100644 --- a/config/main.php +++ b/config/main.php @@ -59,6 +59,7 @@ return [ 'timeZone' => 'Europe/Kiev', ], 'assetManager' => [ + 'appendTimestamp' => true, 'bundles' => [ 'dmstr\web\AdminLteAsset' => [ // 'skin' => 'skin-purple', diff --git a/views/layouts/_drawer.php b/views/layouts/_drawer.php new file mode 100644 index 0000000..ecc25cb --- /dev/null +++ b/views/layouts/_drawer.php @@ -0,0 +1,67 @@ +request->cookies->has('drawer-hidden') + +?> + + diff --git a/views/layouts/_header.php b/views/layouts/_header.php index 9190a85..95ccd46 100644 --- a/views/layouts/_header.php +++ b/views/layouts/_header.php @@ -20,14 +20,16 @@ use yii\helpers\Url; + + + + + Solomaha Home - params['breadcrumbs'])): ?> - -
@@ -35,7 +37,7 @@ use yii\helpers\Url;
+ diff --git a/views/layouts/_left.php b/views/layouts/_left.php deleted file mode 100644 index 0055887..0000000 --- a/views/layouts/_left.php +++ /dev/null @@ -1,41 +0,0 @@ - diff --git a/views/layouts/main-no-content.php b/views/layouts/main-no-content.php index 728409d..c0407e5 100644 --- a/views/layouts/main-no-content.php +++ b/views/layouts/main-no-content.php @@ -5,10 +5,10 @@ beginContent('@app/views/layouts/base.php'); ?> - render('_header.php') ?> +render('_header.php') ?> - render('_drawer.php') ?> +render('_drawer.php') ?> - + endContent(); ?> diff --git a/views/panel/_rgb.php b/views/panel/_rgb.php index 306423d..955eba0 100644 --- a/views/panel/_rgb.php +++ b/views/panel/_rgb.php @@ -7,7 +7,7 @@ use rmrevin\yii\fontawesome\FA; ?> -
+
icon) ?> @@ -16,4 +16,7 @@ use rmrevin\yii\fontawesome\FA; name ?>
+
diff --git a/views/panel/_switch.php b/views/panel/_switch.php index c9d329b..7e95468 100644 --- a/views/panel/_switch.php +++ b/views/panel/_switch.php @@ -7,7 +7,7 @@ use rmrevin\yii\fontawesome\FA; ?> -
+
icon) ?> diff --git a/views/panel/_variable.php b/views/panel/_variable.php index b5debea..d2d02b4 100644 --- a/views/panel/_variable.php +++ b/views/panel/_variable.php @@ -7,7 +7,7 @@ use rmrevin\yii\fontawesome\FA; ?> -
+
icon) ?> diff --git a/views/panel/index.php b/views/panel/index.php index acdda6a..7e139f5 100644 --- a/views/panel/index.php +++ b/views/panel/index.php @@ -16,57 +16,57 @@ $this->title = 'Панель Управления';
-
-
-
- +
+
+
+
+
+ +
+
+
+ Solomaha Home +
+
OFFLINE
+
+ +
+
+

title) ?>

+
+ + +
+
+

name ?>

+
+ +
+
+ getItems()->variables()->active()->all() as $item): ?> + render('_variable', [ + 'item' => $item, + ]) ?> + +
+
+ getItems()->switches()->active()->all() as $item): ?> + render('_switch', [ + 'item' => $item, + ]) ?> + +
+
+ getItems()->rgb()->all() as $item): ?> + render('_rgb', [ + 'item' => $item, + ]) ?> + +
+
+ +
+
-
- Solomaha Home -
-
OFFLINE
-
- -
-
-

title) ?>

-
- -
- - -
-
-

name ?>

-
- -
-
- getItems()->switches()->active()->all() as $item): ?> - render('_switch', [ - 'item' => $item, - ]) ?> - -
-
- getItems()->variables()->active()->all() as $item): ?> - render('_variable', [ - 'item' => $item, - ]) ?> - -
-
- getItems()->rgb()->all() as $item): ?> - render('_rgb', [ - 'item' => $item, - ]) ?> - -
-
- -
- - -
diff --git a/web/css/md.theme.css b/web/css/md.theme.css index 3d554bd..fca0a65 100644 --- a/web/css/md.theme.css +++ b/web/css/md.theme.css @@ -1,10 +1,14 @@ /* General Syles */ body { background: #e8e8e8; + overflow-x: hidden; } -main { - padding-top: 65px; +.content { + padding-top: 64px; + transition: transform .3s ease-in-out, margin .3s ease-in-out; + margin-left: 260px; + overflow-x: hidden; } /* Navbar */ @@ -12,12 +16,12 @@ main { box-shadow: 0 0 10px #9e9e9e; } -.navbar .navbar-title { - display: inline-block; - line-height: 64px; - margin-left: 30px; - color: #fff; - font-size: 24px; +.navbar .container-fluid { + padding-left: 0; +} + +.navbar .navbar-header { + margin-left: 0; } .navbar > .container-fluid a.navbar-brand.product-font { @@ -34,8 +38,7 @@ main { float: left; width: 48px; height: 48px; - /*background: rgba(0,0,0,0.4);*/ - margin: 8px 20px 8px -3px; + margin: 8px 20px 8px 12px; border-radius: 48px; padding: 17.5px 15px; overflow: hidden; @@ -74,24 +77,45 @@ main { position: fixed; top: 0; left: 0; - bottom: 0; + display: block; width: 260px; - height: 100%; + height: calc(100vh - 64px); margin-top: 64px; - z-index: 500; + z-index: 810; background: #fff; - -webkit-transform: translateX(-260px); - transform: translateX(-260px); - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; - will-change: transform; - transition-duration: .2s; - transition-timing-function: cubic-bezier(.4,0,.2,1); - transition-property: transform; + transition: transform .3s ease-in-out, width .3s ease-in-out; + border-right: 1px solid #d5d5d5; + overflow-y: auto; } -.drawer.visible { - transform: translateX(0); +@media (max-width: 767px) { + /* Drawer styles */ + .content { + margin-left: 0; + } + + .drawer { + transform: translate(-260px, 0); + } + + .drawer-open .drawer { + transform: translate(0, 0); + } + + .drawer-open .content { + transform: translate(260px, 0); + } + + /* Navbar styles */ + .navbar .navbar-brand { + margin-left: -20px; + } +} + +@media (max-width: 1200px) { + .content-header h1 { + font-size: 35px; + } } .drawer-menu { @@ -155,6 +179,33 @@ main { color: #009688; } +.user-block { + height: 64px; + padding: 12px; + border-bottom: 1px solid #efefef; +} + +.user-block .user-info { + display: inline-block; + margin-left: 30px; + font-weight: 500; +} + +.user-block .user-avatar { + display: inline-block; +} + +.user-block .user-avatar img { + border-radius: 50%; + height: 40px; + width: 40px; +} + +.user-block .user-caret { + display: inline-block; + margin-left: 30px; +} + /* Cards */ .card { background: #fff; @@ -250,3 +301,60 @@ main { left: auto; z-index: 99999; } + +/* Linear loader */ +.linear-loader { + position: absolute; + top: 64px; + left: 0; + right: 0; + overflow: hidden; + width: 100%; + height: 4px; + background-color: #B3E5FC; + z-index: 1090; +} + +.indeterminate { + position: relative; + width: 100%; + height: 100%; +} + +.indeterminate:before { + content: ''; + position: absolute; + height: 100%; + background-color: #03A9F4; + animation: indeterminate_first 3s infinite ease-out; +} + +.indeterminate:after { + content: ''; + position: absolute; + height: 100%; + background-color: #4FC3F7; + animation: indeterminate_second 3s infinite ease-in; +} + +@keyframes indeterminate_first { + 0% { + left: -100%; + width: 100%; + } + 100% { + left: 100%; + width: 10%; + } +} + +@keyframes indeterminate_second { + 0% { + left: -150%; + width: 100%; + } + 100% { + left: 100%; + width: 10%; + } +} diff --git a/web/css/panel.css b/web/css/panel.css index 336819d..b458711 100644 --- a/web/css/panel.css +++ b/web/css/panel.css @@ -1,59 +1,4 @@ -/* Linear loader */ -.linear-loader { - position: absolute; - top: 64px; - left: 0; - right: 0; - overflow: hidden; - width: 100%; - height: 4px; - background-color: #B3E5FC; - z-index: 500; -} -.indeterminate { - position: relative; - width: 100%; - height: 100%; -} - -.indeterminate:before { - content: ''; - position: absolute; - height: 100%; - background-color: #03A9F4; - animation: indeterminate_first 3s infinite ease-out; -} - -.indeterminate:after { - content: ''; - position: absolute; - height: 100%; - background-color: #4FC3F7; - animation: indeterminate_second 3s infinite ease-in; -} - -@keyframes indeterminate_first { - 0% { - left: -100%; - width: 100%; - } - 100% { - left: 100%; - width: 10%; - } -} - -@keyframes indeterminate_second { - 0% { - left: -150%; - width: 100%; - } - 100% { - left: 100%; - width: 10%; - } -} /* Content loader */ #loader { diff --git a/web/css/site.css b/web/css/site.css index c74f139..fa0569c 100644 --- a/web/css/site.css +++ b/web/css/site.css @@ -11,12 +11,6 @@ font-style: italic; } -@media (max-width: 767px) { - .content-header h1 { - font-size: 35px; - } -} - .select2-container--krajee .select2-selection--single { line-height: 2; } diff --git a/web/js/panel.js b/web/js/panel.js index ec4998a..bff4287 100644 --- a/web/js/panel.js +++ b/web/js/panel.js @@ -15,11 +15,11 @@ initWebSocket(function () { WSConnectionOpened = true; $('#loader, .linear-loader').fadeOut(function () { - $('main').fadeIn(); + $('.control-panel').fadeIn(); }); }, onMessage, function () { if (WSConnectionOpened) { - $('main').fadeOut(function () { + $('.control-panel').fadeOut(function () { $('#loader').fadeIn().addClass('error'); }); } else { diff --git a/web/js/site.js b/web/js/site.js index a2b5bff..0d82d3e 100644 --- a/web/js/site.js +++ b/web/js/site.js @@ -15,7 +15,7 @@ function showSuccessMessage(message) { $('.navbar-toggle-drawer').click(function (e) { e.preventDefault(); - $('.drawer').toggleClass('visible'); + $('body').toggleClass('drawer-open'); return false; }); From 6826829d6c2c5726956c752065798515f8877fc9 Mon Sep 17 00:00:00 2001 From: Alex Solomaha Date: Fri, 17 Feb 2017 17:27:51 +0200 Subject: [PATCH 08/45] Some work --- assets/AppAsset.php | 7 ++-- assets/ChartjsAsset.php | 18 +++++++++ assets/PanelAsset.php | 2 + composer.json | 3 +- composer.lock | 35 +++++++++++++++- views/layouts/_content.php | 20 ++++----- views/layouts/_drawer.php | 44 +++++++++++--------- views/layouts/base.php | 5 ++- views/panel/_rgb.php | 3 -- views/panel/_variable.php | 4 +- views/panel/index.php | 26 ++++++++++++ views/site/index.php | 2 - web/css/md.theme.css | 34 +++++++++++++++- web/favicon.ico | Bin 28714 -> 2406 bytes web/favicon.png | Bin 0 -> 5091 bytes web/js/panel.js | 81 ++++++++++++++++++++++++++++++++----- 16 files changed, 230 insertions(+), 54 deletions(-) create mode 100644 assets/ChartjsAsset.php create mode 100644 web/favicon.png diff --git a/assets/AppAsset.php b/assets/AppAsset.php index 9dfaacc..9087606 100644 --- a/assets/AppAsset.php +++ b/assets/AppAsset.php @@ -17,11 +17,12 @@ class AppAsset extends AssetBundle ]; public $depends = [ 'yii\web\YiiAsset', - 'yii\bootstrap\BootstrapAsset', + 'yii\bootstrap\BootstrapPluginAsset', 'rmrevin\yii\fontawesome\AssetBundle', // 'dmstr\web\AdminLteAsset', - 'shifrin\noty\NotyAsset', +// 'shifrin\noty\NotyAsset', 'app\assets\MDThemeAsset', - 'app\assets\JSCookieAsset', +// 'app\assets\JSCookieAsset', +// 'app\assets\ChartjsAsset', ]; } diff --git a/assets/ChartjsAsset.php b/assets/ChartjsAsset.php new file mode 100644 index 0000000..1d889c5 --- /dev/null +++ b/assets/ChartjsAsset.php @@ -0,0 +1,18 @@ + [ + '*.js', + ] + ]; +} diff --git a/assets/PanelAsset.php b/assets/PanelAsset.php index 07acb4e..833d0ff 100644 --- a/assets/PanelAsset.php +++ b/assets/PanelAsset.php @@ -16,7 +16,9 @@ class PanelAsset extends AssetBundle ]; public $depends = [ 'app\assets\AppAsset', + 'app\assets\HandlebarsAsset', 'app\assets\SpectrumAsset', +// 'app\assets\ChartjsAsset', 'yii\web\JqueryAsset', ]; } diff --git a/composer.json b/composer.json index f2d06a8..bf966b9 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,8 @@ "kartik-v/yii2-widgets": "^3.4", "kartik-v/yii2-datecontrol": "^1.9", "voskobovich/yii2-linker-behavior": "4.0.1-rc", - "bower-asset/js-cookie": "^2.1" + "bower-asset/js-cookie": "^2.1", + "bower-asset/chart.js": ">=2.5" }, "require-dev": { "yiisoft/yii2-debug": "*", diff --git a/composer.lock b/composer.lock index 347a4d4..6698d95 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "1627a6b0056d96c8d2ba8573dd280894", - "content-hash": "9a05371bbaeb69fb2a58db60a6d72bb5", + "hash": "47716d6fa73b8f351afd27ba07ca61ea", + "content-hash": "510df4f657a11c48c1c48bbc30239f09", "packages": [ { "name": "bower-asset/bootstrap", @@ -56,6 +56,37 @@ "web" ] }, + { + "name": "bower-asset/chart.js", + "version": "v2.5.0", + "source": { + "type": "git", + "url": "https://github.com/chartjs/Chart.js.git", + "reference": "c867d3f728d595eafc017f4d4136128824d1db25" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chartjs/Chart.js/zipball/c867d3f728d595eafc017f4d4136128824d1db25", + "reference": "c867d3f728d595eafc017f4d4136128824d1db25", + "shasum": "" + }, + "type": "bower-asset-library", + "extra": { + "bower-asset-main": "./dist/Chart.js", + "bower-asset-ignore": [ + ".github", + ".codeclimate.yml", + ".gitignore", + ".npmignore", + ".travis.yml", + "scripts" + ] + }, + "license": [ + "MIT" + ], + "description": "Simple HTML5 charts using the canvas element." + }, { "name": "bower-asset/handlebars", "version": "v4.0.5", diff --git a/views/layouts/_content.php b/views/layouts/_content.php index 47f1400..b2f16f3 100644 --- a/views/layouts/_content.php +++ b/views/layouts/_content.php @@ -7,8 +7,8 @@ use yii\widgets\Breadcrumbs; ?> -
-
+
+

title) ?>

@@ -17,15 +17,15 @@ use yii\widgets\Breadcrumbs; ]) ?>
-
+
+ + +
- - - diff --git a/views/layouts/_drawer.php b/views/layouts/_drawer.php index 622942e..0044969 100644 --- a/views/layouts/_drawer.php +++ b/views/layouts/_drawer.php @@ -22,48 +22,56 @@ use yii\bootstrap\Nav; [ [ - 'label' => FA::i('sliders') . 'Панель Управления', + 'label' => FA::i('sliders fa-fw') . 'Панель Управления', 'url' => ['/panel/index'], ], [ - 'label' => FA::i('history') . 'История', + 'label' => FA::i('history fa-fw') . 'История', 'url' => ['/history/index'], ], [ - 'label' => FA::i('user') . 'Профиль', + 'label' => FA::i('user fa-fw') . 'Профиль', 'url' => ['/profile/index'], ], [ - 'label' => FA::i('cog') . 'Настройки', + 'label' => FA::i('cog fa-fw') . 'Настройки', 'url' => ['/admin/setting/index'], ], [ - 'label' => FA::i('toggle-on') . 'Элементы', - 'url' => ['/admin/setting/index'], + 'label' => FA::i('toggle-on fa-fw') . 'Элементы', + 'url' => ['/admin/item/index'], ], [ - 'label' => FA::i('hdd-o') . 'Устройства', - 'url' => ['/admin/setting/index'], + 'label' => FA::i('hdd-o fa-fw') . 'Устройства', + 'url' => ['/admin/board/index'], ], [ - 'label' => FA::i('code-fork') . 'События', - 'url' => ['/admin/setting/index'], + 'label' => FA::i('code-fork fa-fw') . 'События', + 'url' => ['/admin/event/index'], ], [ - 'label' => FA::i('feed') . 'Триггеры', - 'url' => ['/admin/setting/index'], + 'label' => FA::i('feed fa-fw') . 'Триггеры', + 'url' => ['/admin/trigger/index'], ], [ - 'label' => FA::i('check') . 'Задачи', - 'url' => ['/admin/setting/index'], + 'label' => FA::i('check fa-fw') . 'Задачи', + 'url' => ['/admin/task/index'], ], [ - 'label' => FA::i('folder-open') . 'Комнаты', - 'url' => ['/admin/setting/index'], + 'label' => FA::i('folder-open fa-fw') . 'Комнаты', + 'url' => ['/admin/room/index'], ], [ - 'label' => FA::i('users') . 'Пользователи', - 'url' => ['/admin/setting/index'], + 'label' => FA::i('users fa-fw') . 'Пользователи', + 'url' => ['/admin/user/index'], + ], + '
  • ', + [ + 'label' => FA::i('sign-out fa-fw') . 'Выйти', + 'url' => ['/auth/logout'], + 'linkOptions' => [ + 'data-method' => 'post', + ], ], ], 'encodeLabels' => false, diff --git a/views/layouts/base.php b/views/layouts/base.php index 9e401db..0a1147f 100644 --- a/views/layouts/base.php +++ b/views/layouts/base.php @@ -4,9 +4,9 @@ /* @var $content string */ use app\assets\MDThemeAsset; -use dmstr\web\AdminLteAsset; use yii\helpers\Html; use app\assets\AppAsset; +use yii\helpers\Url; AppAsset::register($this); //AdminLteAsset::register($this); @@ -28,6 +28,9 @@ MDThemeAsset::register($this); + + + diff --git a/views/panel/_rgb.php b/views/panel/_rgb.php index 955eba0..beee035 100644 --- a/views/panel/_rgb.php +++ b/views/panel/_rgb.php @@ -16,7 +16,4 @@ use rmrevin\yii\fontawesome\FA; name ?>
    -
    diff --git a/views/panel/_variable.php b/views/panel/_variable.php index d2d02b4..42f0b19 100644 --- a/views/panel/_variable.php +++ b/views/panel/_variable.php @@ -8,7 +8,9 @@ use rmrevin\yii\fontawesome\FA; ?>
    -
    +
    icon) ?>
    diff --git a/views/panel/index.php b/views/panel/index.php index 7e139f5..af523dd 100644 --- a/views/panel/index.php +++ b/views/panel/index.php @@ -70,3 +70,29 @@ $this->title = 'Панель Управления';
    + + diff --git a/views/site/index.php b/views/site/index.php index 9da5a7c..976ac51 100644 --- a/views/site/index.php +++ b/views/site/index.php @@ -3,8 +3,6 @@ /* @var $this yii\web\View */ $this->title = 'Главная'; - -\yii\helpers\VarDumper::dump(\app\models\Setting::getValueByKey('log.user_connection'),10,true); ?>

    title ?>

    diff --git a/web/css/md.theme.css b/web/css/md.theme.css index fca0a65..c0a3abc 100644 --- a/web/css/md.theme.css +++ b/web/css/md.theme.css @@ -125,7 +125,7 @@ body { .drawer-menu li a { display: block; width: 100%; - padding: 12px 24px; + padding: 12px 20px; font-size: 13px; color: rgb(68, 68, 68); font-weight: 500; @@ -179,6 +179,15 @@ body { color: #009688; } +.drawer-menu li.divider { + display: block; + position: relative; + height: 1px; + width:100%; + background: #efefef; + margin: 10px 0; +} + .user-block { height: 64px; padding: 12px; @@ -268,6 +277,7 @@ body { text-align: center; margin: 10px 0; cursor: pointer; + user-select: none; } .panel-item-variable .item-variable-icon { @@ -287,12 +297,32 @@ body { display: flex; cursor: pointer; align-items: center; - min-height: 50px; + height: 50px; + width: 100%; box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, .12), 0 1px 1px 0 rgba(0, 0, 0, .24); transition: 0.5s; user-select: none; } +.popover { + position: fixed; + z-index: 1000; + width: 300px; + /*height: 200px;*/ + box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); + max-width: none; + border-radius: 0; + padding: 0; +} + +.popover-title { + display: none; +} + +.popover-content { + padding: 0; +} + /* Snackbar fixes */ #snackbar-container { position: fixed; diff --git a/web/favicon.ico b/web/favicon.ico index 7302949452882710d3926b0a1e0d130e4142e357..cfc942fa8d3b063b1b3d1481cfd77ae3de59f8fc 100644 GIT binary patch delta 1776 zcmcIkc~H^`6#gORRi>4BWr|0NHy|KbnIeLBnMW~{iCP|bhGgX=i5=<`lv))7CV zx|+Tk008Qq9{8j3=<>I#faQ4W(dC&!V<_lcp%({&fjDCA;3zBxfwX}jU~sfO3~LWZ z+QQ&YFsu^{UbvCWDFsDvVnCMaiN3y0htEbwM#ocP@f;9%ml-820uB$4IAaS#At<&O zM`XAyCLE2HXQTt|4Lc~S#EWNK#xVoM+O^mJomV_#oiI2=wUllArWckI|I%RV6j-k!^4@GnOrXS{{8ztK0evm+5Y|v|B;aq0)fD0vqd72P$S_%gYjpWOQ_NVPRo{@DPrPg3c~RB%XtKyf>#Fj3 z1(WP_r4ue{6&|*1O{gUVa<{@{l$Stn@J@LWxjyZy5_q$_T~Vm~l0WFk;gG&=SysHI z&wJOp&e8N+J+=MEZPqsBM*NM=_}mMOS+2Wbf-LpuzR-@?^y4?3wpsz9p^7`{OU?6I zcO8M<6T{)fK#tqI=aSYNrjAyiaVkr()3w;E5#xf_2(rFY2!8Be<4V@kbJ0Lq3Qd>> zA8Nd;`2ebJQI|{oxP5;8BEUV!Ri|5Qf=ejmDXPL5f(R^2(Px6fbVS-YjQ%Kze*Wt) z*Tp%mB9Iog{`lnm>U89TexkCn@~%Z>la(5sc@qN&g2XGk1GEJR=lw5RR=v8a;t{Mm z_G^E8uI{3e_882?^5PkaP9!z&&Y!rgypMbz@)RRq3g{(jU)STbhp;uFl_0=^rk@`_zmw# zY7sh<9ro#Wd($e=)s{Iold4ZfwSo_s3#1#x4HZl<>-r4M$%!G;j+0FV-zMpbQOrK6 z>}Bi_ZxNjz#j_&m5pwaMwTesKedLgzx}!Xh%TUo1vqIvHv%&?ec}F;kA1K=^4sz1m zH7S`o5f!1WF?!4`IG}*wV^i4-(WSq5-9ao1XiE|wbeh zHY~UnH$CYl37y2Jwe)Z8DM)xJ%K77m2EDF~0zCK{Rgbi9Gf$Hkx&3e_{2So_aX9Y*cM~aEpe(tXxbAE=Hs# ziz}!bkFvE^Dv$PeNDmfDSNFGCs0kOirzk7+J$2AaYxXB(i61APb&c=uEkqbUeJ*^E zSZ3>g^7&RTZK`)4a$m`2peV+sfp#TtQ&AU~OfY>K%Ukb|e*?hN-4A~c7n=STcL!vO literal 28714 zcmeFZcT`kM&<8k*h=PJhl&pwImYhM9AX!9mdXh5?0}L6(Kn9g08Htibay9@Xg5(^P zIAno=fq{YTJHGer{;}Vlv-|hH<2&Blx4XK!>ep4(RXv73)Ka-j%0LQ(!7i&lP<#Y~ z5uu^~FPsN0nmI!Y;IC_*N`{`gZnmDtCmuF11#34;8#Yy!Cw4ZEY@S&A!aHqbz=+!p zj}1KyH8rHH++6sdKz;aqT-?EE7)(aq$NhdcPRk@BofJw6y|sHumfWyB?ayX2?z=C zfgXGaUsum3K76hS_Wvj-+90ev9Naw}++5ipicc)vygX%Z08ald!NvW5$hso_6%!Dc zfX@?m0YUyd(31Y^sHyq?+||Y9e|jT4AKCn${Qln(Mm+X)w-I<`gK+cmumXy+WrwD6 zm%8s^^TgB5YXS;tNlA0*LDBEoV2Ulx1B!Y`DN>fux)fM6S z#MR11RZ;c^pu_LrU@ax4s3;+L|DK4Xn6QYTppuw^q==Z3qUb$^JK{=WLP8S%ja78B z@^Z0p_55$F_5V3m^nV=-0m8){%&chR;oxm!t?c3E!bVuQl*9kdi_rf{@87Z3|2r?j z|La%*z>EN--v5ib|7!vmf*$_|yx`@3;BVs!Fz*4teXxCt2?le1r>dy%*k@vWnj}DP zZ(9D3+lAzFSHI3MT8G_^c>45$tI1l?gyS%OW5IOk^oYKRlM`xi+f#m{^_#0xH8(fg z94$4S$^H!c_20ppi#4%Fp_WR^}( z&3tvC>A0158pC9A`S~}J-󩋝iI(?jRC<}w7^vqa$H~-qIy``JlUDLg_@xWHy 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 diff --git a/web/favicon.png b/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..174a285fff6fa6fa3c2cfd5b8ad04b4f15d44651 GIT binary patch literal 5091 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 S3vIvucC)o~w5UAllki{hVDdHq literal 0 HcmV?d00001 diff --git a/web/js/panel.js b/web/js/panel.js index bff4287..ee6f770 100644 --- a/web/js/panel.js +++ b/web/js/panel.js @@ -3,6 +3,8 @@ var wsURL; var WS; var WSConnectionOpened; +var itemValues = {}; + function initWebSocket(onOpenCallback, onMessageCallback, onCloseCallback) { WS = new WebSocket(wsURL); @@ -132,18 +134,19 @@ function updateItemValue(id, type, value) { break; case 30: // RGB + itemValues[id] = value; // TODO - if (typeof value === 'string') { - $('.item-rgb[data-item-id="' + id + '"]') - .find('.rgb-mode[data-mode="' + value + '"]') - .addClass('active'); - } else { - var $colorPicker = $('#colorpicker-' + id); - - $colorPicker.spectrum('set', 'rgb(' + value[0] + ', ' + value[1] + ', ' + value[2] + ')'); - - $('.item-rgb .rgb-mode').removeClass('active'); - } + // if (typeof value === 'string') { + // $('.item-rgb[data-item-id="' + id + '"]') + // .find('.rgb-mode[data-mode="' + value + '"]') + // .addClass('active'); + // } else { + // var $colorPicker = $('#colorpicker-' + id); + // + // $colorPicker.spectrum('set', 'rgb(' + value[0] + ', ' + value[1] + ', ' + value[2] + ')'); + // + // $('.item-rgb .rgb-mode').removeClass('active'); + // } break; } @@ -165,6 +168,62 @@ $(document).ready(function () { return false; }); + $('.panel-item-variable').tooltip(); + + $('.panel-item-rgb').popover({ + html: true, + placement: 'bottom', + trigger: 'click', + content: function () { + var source = $("#rgb-item-widget-popover-content").html(); + var template = Handlebars.compile(source); + + return template({ + item_id: $(this).data('item-id') + }); + } + }).on('inserted.bs.popover', function (e) { + var $colorPicker = $(this).parent().find('input').spectrum({ + flat: true, + showInput: true, + showButtons: false, + preferredFormat: 'rgb', + dragstop: function (color) { + console.log($(this)); + var item_id = $(this).data('item-id'); + var red = Math.round(color._r); + var green = Math.round(color._g); + var blue = Math.round(color._b); + // + // var fade = ($('.fade-checkbox[data-item-id="' + item_id + '"]:checked').length > 0); + // + // send({ + // 'type': 'rgb', + // 'item_id': item_id, + // 'fade': fade, + // 'red': red, + // 'green': green, + // 'blue': blue + // }); + $('.panel-item-rgb[data-item-id="' + item_id + '"]').attr('style', 'background: rgb(' + red + ',' + green + ',' + blue + ')'); + } + }); + + var item_id = $colorPicker.data('item-id'); + + if (Boolean(itemValues[item_id]) != false) { + $colorPicker.spectrum('set', itemValues[item_id]); + } + + $colorPicker.on("dragstop.spectrum", function (e, color) { + var red = Math.round(color._r); + var green = Math.round(color._g); + var blue = Math.round(color._b); + + $('.panel-item-rgb[data-item-id="' + $(this).data('item-id') + '"]').attr('style', 'background-color: rgb(' + red + ',' + green + ',' + blue + ')') + }); + }); + // TODO: // $('.rgb-colorpicker').spectrum({ // showInput: true, From e56bb465b7d71beab5a965bb8a631d846add1a8a Mon Sep 17 00:00:00 2001 From: Alex Solomaha Date: Fri, 24 Feb 2017 20:26:14 +0200 Subject: [PATCH 09/45] Login done --- controllers/AuthController.php | 6 +-- controllers/SiteController.php | 1 + modules/admin/views/item/index.php | 1 + modules/admin/views/setting/index.php | 4 -- views/auth/login.php | 52 ++++++++++----------- views/error/error.php | 15 +++++++ views/error/guest-error.php | 25 +++++++++++ views/layouts/_content.php | 9 +--- views/layouts/base.php | 4 +- views/site/error.php | 26 ----------- web/css/md.theme.css | 62 ++++++++++++++++++++++++++ web/img/login-bg-small.jpg | Bin 0 -> 79231 bytes web/img/login-bg.jpg | Bin 0 -> 495487 bytes web/img/login-bg.png | Bin 521989 -> 0 bytes web/js/site.js | 29 ------------ 15 files changed, 135 insertions(+), 99 deletions(-) create mode 100644 views/error/error.php create mode 100644 views/error/guest-error.php delete mode 100644 views/site/error.php create mode 100644 web/img/login-bg-small.jpg create mode 100644 web/img/login-bg.jpg delete mode 100644 web/img/login-bg.png diff --git a/controllers/AuthController.php b/controllers/AuthController.php index 5dde7e7..2372cad 100644 --- a/controllers/AuthController.php +++ b/controllers/AuthController.php @@ -10,8 +10,6 @@ use app\models\LoginForm; class AuthController extends Controller { - public $layout = 'base'; - public function behaviors() { return [ @@ -41,14 +39,14 @@ class AuthController extends Controller return $this->goHome(); } - $this->layout = 'base'; - $model = new LoginForm(); if ($model->load(Yii::$app->request->post()) && $model->login()) { return $this->goBack(); } + $this->layout = 'base'; + return $this->render('login', [ 'model' => $model, ]); diff --git a/controllers/SiteController.php b/controllers/SiteController.php index d42d7b3..8bbb0c3 100644 --- a/controllers/SiteController.php +++ b/controllers/SiteController.php @@ -13,6 +13,7 @@ class SiteController extends Controller 'error' => [ 'class' => 'app\components\ErrorAction', 'layout' => Yii::$app->user->isGuest ? 'base' : 'main', + 'view' => Yii::$app->user->isGuest ? '/error/guest-error' : '/error/error', ], ]; } diff --git a/modules/admin/views/item/index.php b/modules/admin/views/item/index.php index 1fb3403..03c4600 100644 --- a/modules/admin/views/item/index.php +++ b/modules/admin/views/item/index.php @@ -31,6 +31,7 @@ $this->params['breadcrumbs'][] = $this->title; $dataProvider, 'summaryOptions' => ['class' => 'alert alert-info'], + 'tableOptions' => ['class' => 'table table-hover material-table'], 'layout' => '{summary}
    {items}
    {pager}', 'filterModel' => $searchModel, 'columns' => [ diff --git a/modules/admin/views/setting/index.php b/modules/admin/views/setting/index.php index 1021351..91a32a7 100644 --- a/modules/admin/views/setting/index.php +++ b/modules/admin/views/setting/index.php @@ -11,10 +11,6 @@ $this->params['breadcrumbs'][] = $this->title; ?>
    -

    - title ?> -

    -
    diff --git a/views/auth/login.php b/views/auth/login.php index c2f6810..71a3242 100644 --- a/views/auth/login.php +++ b/views/auth/login.php @@ -8,7 +8,7 @@ use yii\helpers\Html; use yii\bootstrap\ActiveForm; $this->title = 'Авторизация'; -$this->params['body-class'] = 'login-page'; +$this->params['bodyClass'] = 'login-body'; $fieldOptions1 = [ 'options' => ['class' => 'form-group has-feedback'], @@ -21,37 +21,37 @@ $fieldOptions2 = [ ]; ?> -