text:
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: inherit;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small {
  font-weight: normal;
  line-height: 1;
  color: #95a5a6;
}
/* -----------------------------------------
   Template helpers
----------------------------------------- */
/* ------------------ Sizes --------------------*/
.s12 {
  font-size: 12px !important;
}
.s16 {
  font-size: 16px !important;
}
.s20 {
  font-size: 20px !important;
}
.s24 {
  font-size: 24px !important;
}
.s32 {
  font-size: 32px !important;
}
.s64 {
  font-size: 64px !important;
}
.vat {
  vertical-align: top !important;
}
.vam {
  vertical-align: middle !important;
}
.vab {
  vertical-align: bottom !important;
}
/* ------------------ Margins --------------------*/
.row.no-padding {
  margin-left: 0;
  margin-right: 0;
}
.row.no-padding [class^="col-"] {
  padding: 0;
}
.m0 {
  margin: 0 !important;
}
.m5 {
  margin: 5px !important;
}
.m10 {
  margin: 10px !important;
}
.m15 {
  margin: 15px !important;
}
.m20 {
  margin: 20px !important;
}
.m25 {
  margin: 25px !important;
}
.mt0 {
  margin-top: 0 !important;
}
.mt5 {
  margin-top: 5px !important;
}
.mt10 {
  margin-top: 10px !important;
}
.mt15 {
  margin-top: 15px !important;
}
.mt20 {
  margin-top: 20px !important;
}
.mt25 {
  margin-top: 25px !important;
}
.mt50 {
  margin-top: 50px !important;
}
.mr0 {
  margin-right: 0 !important;
}
.mr5 {
  margin-right: 5px !important;
}
.mr10 {
  margin-right: 10px !important;
}
.mr15 {
  margin-right: 15px !important;
}
.mr20 {
  margin-right: 20px !important;
}
.mr25 {
  margin-right: 25px !important;
}
.mb0 {
  margin-bottom: 0 !important;
}
.mb5 {
  margin-bottom: 5px !important;
}
.mb10 {
  margin-bottom: 10px !important;
}
.mb15 {
  margin-bottom: 15px !important;
}
.mb20 {
  margin-bottom: 20px !important;
}
.mb25 {
  margin-bottom: 25px !important;
}
.mb50 {
  margin-bottom: 50px !important;
}
.ml0 {
  margin-left: 0 !important;
}
.ml5 {
  margin-left: 5px !important;
}
.ml10 {
  margin-left: 10px !important;
}
.ml15 {
  margin-left: 15px !important;
}
.ml20 {
  margin-left: 20px !important;
}
.ml25 {
  margin-left: 25px !important;
}
/* ------------------ Paddings --------------------*/
.p0 {
  padding: 0 !important;
}
.p5 {
  padding: 5px !important;
}
.p10 {
  padding: 10px !important;
}
.p15 {
  padding: 15px !important;
}
.p20 {
  padding: 20px !important;
}
.p25 {
  padding: 25px !important;
}
.pt0 {
  padding-top: 0 !important;
}
.pt5 {
  padding-top: 5px !important;
}
.pt10 {
  padding-top: 10px !important;
}
.pt15 {
  padding-top: 15px !important;
}
.pt20 {
  padding-top: 20px !important;
}
.pt25 {
  padding-top: 25px !important;
}
.pr0 {
  padding-right: 0 !important;
}
.pr5 {
  padding-right: 5px !important;
}
.pr10 {
  padding-right: 10px !important;
}
.pr15 {
  padding-right: 15px !important;
}
.pr20 {
  padding-right: 20px !important;
}
.pr25 {
  padding-right: 25px !important;
}
.pb0 {
  padding-bottom: 0 !important;
}
.pb5 {
  padding-bottom: 5px !important;
}
.pb10 {
  padding-bottom: 10px !important;
}
.pb15 {
  padding-bottom: 15px !important;
}
.pb20 {
  padding-bottom: 20px !important;
}
.pb25 {
  padding-bottom: 25px !important;
}
.pl0 {
  padding-left: 0 !important;
}
.pl5 {
  padding-left: 5px !important;
}
.pl10 {
  padding-left: 10px !important;
}
.pl15 {
  padding-left: 15px !important;
}
.pl20 {
  padding-left: 20px !important;
}
.pl25 {
  padding-left: 25px !important;
}
/* ------------------ Percent widths --------------------*/
.per5 {
  width: 5% !important;
}
.per10 {
  width: 10% !important;
}
.per15 {
  width: 15% !important;
}
.per20 {
  width: 20% !important;
}
.per25 {
  width: 25% !important;
}
.per30 {
  width: 30% !important;
}
.per35 {
  width: 35% !important;
}
.per40 {
  width: 40% !important;
}
.per45 {
  width: 45% !important;
}
.per50 {
  width: 50% !important;
}
.per55 {
  width: 55% !important;
}
.per60 {
  width: 60% !important;
}
.per65 {
  width: 65% !important;
}
.per70 {
  width: 70% !important;
}
.per75 {
  width: 75% !important;
}
.per80 {
  width: 80% !important;
}
.per85 {
  width: 85% !important;
}
.per90 {
  width: 90% !important;
}
.per95 {
  width: 95% !important;
}
.per100 {
  width: 100% !important;
}
/* ------------------ Borders --------------------*/
.b {
  border: 1px solid #95a5a6;
}
.bt {
  border-top: 1px solid #95a5a6;
}
.br {
  border-right: 1px solid #95a5a6;
}
.bb {
  border-bottom: 1px solid #95a5a6;
}
.bl {
  border-left: 1px solid #95a5a6;
}
.btlr {
  border-top-left-radius: 2px;
}
.btrr {
  border-top-right-radius: 2px;
}
.bblr {
  border-bottom-left-radius: 2px;
}
.bbrr {
  border-bottom-right-radius: 2px;
}
.brall {
  border-radius: 2px;
}
.bn {
  border: none !important;
}
.bnt {
  border-top: none !important;
}
.bnb {
  border-bottom: none !important;
}
.bnl {
  border-left: none !important;
}
.bnr {
  border-right: none !important;
}
/* ------------------ Colors --------------------*/
.color-red {
  color: #ef4836 !important;
}
.color-blue {
  color: #1e8bc3 !important;
}
.color-green {
  color: #3fc380 !important;
}
.color-yellow {
  color: #f39c12 !important;
}
.color-orange {
  color: #e87e04 !important;
}
.color-white {
  color: #ffffff !important;
}
.color-teal {
  color: #1bbc9b !important;
}
.color-dark {
  color: #2c3e50 !important;
}
.color-pink {
  color: #f78db8 !important;
}
.color-lime {
  color: #a8db43 !important;
}
.color-magenta {
  color: #e65097 !important;
}
.color-purple {
  color: #9a12b3 !important;
}
.color-brown {
  color: #ae5304 !important;
}
.color-gray {
  color: #ecf0f1 !important;
}
.color-grayspr {
  color: #f2f1ef !important;
}
/* ------------------ Backgrounds --------------------*/
.white-bg {
  color: #030303;
  background-color: #ffffff;
}
.red-bg {
  color: #ffffff;
  background-color: #ef4836;
}
.blue-bg {
  color: #ffffff;
  background-color: #1e8bc3;
}
.green-bg {
  color: #ffffff;
  background-color: #3fc380;
}
.yellow-bg {
  color: #ffffff;
  background-color: #f39c12;
}
.orange-bg {
  color: #ffffff;
  background-color: #e87e04;
}
.purple-bg {
  color: #ffffff;
  background-color: #9a12b3;
}
.pink-bg {
  color: #ffffff;
  background-color: #f78db8;
}
.lime-bg {
  color: #ffffff;
  background-color: #a8db43;
}
.magenta-bg {
  color: #ffffff;
  background-color: #e65097;
}
.teal-bg {
  color: #ffffff;
  background-color: #1bbc9b;
}
.brown-bg {
  color: #ffffff;
  background-color: #ae5304;
}
.gray-bg {
  color: #030303;
  background-color: #e7e5e1;
}
.dark-bg {
  color: #ffffff;
  background-color: #2c3e50;
}
/* ------------------ Opacity --------------------*/
.opacity {
  opacity: 1 !important;
}
.opacity0 {
  opacity: 0 !important;
}
/* ------------------ Typo --------------------*/
.strong {
  font-weight: bold;
}
.uppercase {
  text-transform: uppercase;
}
.normal {
  font-weight: normal;
}
/* ------------------ Contextual colors --------------------*/
.text-muted {
  color: #292929;
}
.text-primary {
  color: #1e8bc3;
}
a.text-primary:hover {
  color: #176b97;
}
.text-success {
  color: #3fc380;
}
a.text-success:hover {
  color: #319e67;
}
.text-info {
  color: #60b9e7;
}
a.text-info:hover {
  color: #34a6e0;
}
.text-warning {
  color: #e87e04;
}
a.text-warning:hover {
  color: #b66303;
}
.text-danger {
  color: #ef4836;
}
a.text-danger:hover {
  color: #e02612;
}
.text-yellow {
  color: #f39c12;
}
a.text-yellow:hover {
  color: #c87f0a;
}
.text-orange {
  color: #e87e04;
}
a.text-orange:hover {
  color: #b66303;
}
.text-dark {
  color: #2c3e50;
}
a.text-dark:hover {
  color: #1a242f;
}
.text-brown {
  color: #ae5304;
}
a.text-brown:hover {
  color: #7c3b03;
}
.text-pink {
  color: #f78db8;
}
a.text-pink:hover {
  color: #f45d9a;
}
.text-magenta {
  color: #e65097;
}
a.text-magenta:hover {
  color: #e0237c;
}
.text-lime {
  color: #a8db43;
}
a.text-lime:hover {
  color: #90c526;
}
/* ------------------ Positions --------------------*/
.relative {
  position: relative;
}
.absolute {
  position: absolute;
}
/* ------------------ Rotate --------------------*/
.rotate0 {
  -webkit-transform: rotate(0deg);
  -ms-transform: rotate(0deg);
  transform: rotate(0deg);
}
.rotate15 {
  -webkit-transform: rotate(15deg);
  -ms-transform: rotate(15deg);
  transform: rotate(15deg);
}
.rotate30 {
  -webkit-transform: rotate(30deg);
  -ms-transform: rotate(30deg);
  transform: rotate(30deg);
}
.rotate45 {
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
.rotate60 {
  -webkit-transform: rotate(60deg);
  -ms-transform: rotate(60deg);
  transform: rotate(60deg);
}
.rotate75 {
  -webkit-transform: rotate(75deg);
  -ms-transform: rotate(75deg);
  transform: rotate(75deg);
}
.rotate90 {
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}
.rotate105 {
  -webkit-transform: rotate(105deg);
  -ms-transform: rotate(105deg);
  transform: rotate(105deg);
}
.rotate120 {
  -webkit-transform: rotate(120deg);
  -ms-transform: rotate(120deg);
  transform: rotate(120deg);
}
.rotate135 {
  -webkit-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
}
.rotate150 {
  -webkit-transform: rotate(150deg);
  -ms-transform: rotate(150deg);
  transform: rotate(150deg);
}
.rotate165 {
  -webkit-transform: rotate(165deg);
  -ms-transform: rotate(165deg);
  transform: rotate(165deg);
}
.rotate180 {
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.rotateM15 {
  -webkit-transform: rotate(-15deg);
  -ms-transform: rotate(-15deg);
  transform: rotate(-15deg);
}
.rotateM30 {
  -webkit-transform: rotate(-30deg);
  -ms-transform: rotate(-30deg);
  transform: rotate(-30deg);
}
.rotateM45 {
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
.rotateM60 {
  -webkit-transform: rotate(-60deg);
  -ms-transform: rotate(-60deg);
  transform: rotate(-60deg);
}
.rotateM75 {
  -webkit-transform: rotate(-75deg);
  -ms-transform: rotate(-75deg);
  transform: rotate(-75deg);
}
.rotateM90 {
  -webkit-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  transform: rotate(-90deg);
}
.rotateM105 {
  -webkit-transform: rotate(-105deg);
  -ms-transform: rotate(-105deg);
  transform: rotate(-105deg);
}
.rotateM120 {
  -webkit-transform: rotate(-120deg);
  -ms-transform: rotate(-120deg);
  transform: rotate(-120deg);
}
.rotateM135 {
  -webkit-transform: rotate(-135deg);
  -ms-transform: rotate(-135deg);
  transform: rotate(-135deg);
}
.rotateM150 {
  -webkit-transform: rotate(-150deg);
  -ms-transform: rotate(-150deg);
  transform: rotate(-150deg);
}
.rotateM165 {
  -webkit-transform: rotate(-165deg);
  -ms-transform: rotate(-165deg);
  transform: rotate(-165deg);
}
.rotateM180 {
  -webkit-transform: rotate(-180deg);
  -ms-transform: rotate(-180deg);
  transform: rotate(-180deg);
}
/* -----------------------------------------
   Body styles
----------------------------------------- */
/*  IE10 and windows phone 8 fix. */
@-webkit-viewport {
  width: device-width;
}
@-moz-viewport {
  width: device-width;
}
@-ms-viewport {
  width: device-width;
}
@-o-viewport {
  width: device-width;
}
@viewport {
  width: device-width;
}
html {
  height: 100%;
}
body {
  overflow-x: hidden;
  min-height: 100%;
  background: #f2f1ef;
  color: #030303;
  -webkit-font-smoothing: antialiased;
  font-weight: 300;
  position: relative;
}
body.ovh {
  overflow: hidden;
}
body.stop-scrolling {
  height: 100%;
  overflow: hidden;
  -webkit-filter: blur(6px);
  -moz-filter: blur(6px);
  -ms-filter: blur(6px);
  -o-filter: blur(6px);
  filter: blur(6px);
}
body.remove-scroll {
  height: 100%;
  overflow: hidden;
}
body.login-page {
  background: #1ed2ad;
  min-height: inherit;
}
body.login-page #login {
  margin: 10% auto 0 auto;
  position: relative;
  width: 420px;
}
body.login-page #login #logo {
  position: absolute;
  top: -75px;
  left: 50%;
  margin-left: -105px;
  /* width of the logo devided by 2 */
}
body.login-page #login .login-wrapper {
  width: 100%;
  height: auto;
  background-color: #ffffff;
  border-radius: 2px;
  display: inline-block;
  box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.1);
}
body.login-page #login .login-wrapper .nav-tabs.nav-justified li:first-child a {
  border-top-left-radius: 2px;
}
body.login-page #login .login-wrapper .nav-tabs.nav-justified li:last-child a {
  border-top-right-radius: 2px;
}
body.login-page #login .login-wrapper .nav-tabs.nav-justified li a {
  border: none;
  color: #1bbc9b;
  background: #ecf0f1;
}
body.login-page #login .login-wrapper .nav-tabs.nav-justified li.active a {
  color: #030303;
  background-color: #ffffff;
}
body.login-page #login .login-wrapper #user-info {
  position: relative;
  height: 156px;
}
body.login-page #login .login-wrapper #user-info img.cover {
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
}
body.login-page #login .login-wrapper #user-info h4.headline {
  float: left;
  padding: 10px 30px;
}
body.error-page {
  margin-top: 5%;
  background-color: #f2f1ef;
}
body.error-page h1.error-number {
  text-align: center;
  font-size: 20em;
  font-family: 'Cantarell';
}
body.mce-fullscreen #header {
  display: none;
}
body.full-screen {
  width: 100%;
}
body.full-screen #header {
  left: 0;
}
* {
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  outline: none !important;
}
/* ------------------ Preloader --------------------*/
#preloader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #ecf0f1;
  z-index: 10000;
}
#preloader #preloader-icon {
  width: 30px;
  height: 30px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin: -15px 0 0 -15px;
  font-size: 32px;
  color: #1bbc9b;
}
#preloader #preloader-logo {
  float: left;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -50px;
  margin-left: -93px;
}
/* -----------------------------------------
   Header styles
----------------------------------------- */
#header {
  height: 52px;
  background: #1bbc9b;
  box-shadow: 0 4px 0 #18a689;
  z-index: 999;
  position: absolute;
  width: 100%;
  top: 0;
}
#header .container-fluid {
  padding-left: 0;
  padding-right: 0;
}
#header.header-fixed {
  position: fixed;
}
#header .navbar {
  height: 52px;
  margin-bottom: 0;
  padding-right: 20px;
  background: #1bbc9b;
  border-radius: 0;
  border: none;
}
#header .navbar .navbar-brand {
  padding: 0;
  width: 255px;
}
#header .navbar .navbar-brand > img {
  padding-left: 15px;
  margin-top: 6px;
  margin-bottom: 6px;
}
#header .navbar .navbar-toggle {
  float: left;
  padding: 10px;
  margin-top: 6px;
  margin-bottom: 6px;
}
#header .navbar .navbar-toggle .icon-bar {
  background-color: #ffffff;
  width: 26px;
}
#header .navbar .navbar-toggle .icon-bar + .icon-bar {
  margin-top: 6px;
}
#header .navbar #top-nav .resSearchBtn {
  float: left;
  color: #ffffff;
  padding: 0 18px;
  height: 52px;
  line-height: 52px;
  outline: none;
  -webkit-transition: all;
  transition: all;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
}
#header .navbar #top-nav .resSearchBtn > i {
  font-size: 20px;
}
#header .navbar #top-nav .resSearchBtn:hover,
#header .navbar #top-nav .resSearchBtn:focus {
  background: #18a689;
}
#header .navbar #top-nav .closeSearchForm {
  display: none;
  position: absolute;
  right: 15px;
  top: 17px;
  z-index: 99;
}
#header .navbar #top-nav .navbar-form {
  margin: 0;
  padding: 9px 15px 9px 0;
  position: relative;
  background: #1bbc9b;
}
#header .navbar #top-nav .navbar-form:after,
#header .navbar #top-nav .navbar-form:before {
  left: 0;
  top: 50%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
  z-index: 9;
}
#header .navbar #top-nav .navbar-form:after {
  border-color: rgba(27, 188, 155, 0);
  border-left-color: #1bbc9b;
  border-width: 4px;
  margin-top: -4px;
}
#header .navbar #top-nav .navbar-form:before {
  border-color: rgba(255, 255, 255, 0);
  border-left-color: #ffffff;
  border-width: 5px;
  margin-top: -5px;
}
#header .navbar #top-nav .navbar-form input {
  background-color: #1bbc9b;
  border: transparent;
  box-shadow: none;
  border-left: 1px solid #ffffff;
  padding-left: 45px;
  position: relative;
}
#header .navbar #top-nav .navbar-form input::-moz-placeholder {
  color: #ffffff;
  opacity: 1;
}
#header .navbar #top-nav .navbar-form input:-ms-input-placeholder {
  color: #ffffff;
}
#header .navbar #top-nav .navbar-form input::-webkit-input-placeholder {
  color: #ffffff;
}
#header .navbar #top-nav .navbar-form input:focus {
  -webkit-transition: all;
  transition: all;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
  background-color: #18a689;
}
#header .navbar #top-nav .navbar-form i {
  color: #ffffff;
  position: absolute;
  top: 20px;
  margin-left: 5px;
  left: 12px;
  z-index: 99;
}
#header .navbar #top-nav .navbar-form button.btn {
  opacity: 0;
  position: absolute;
  top: -9999px;
}
#header .navbar #top-nav .navbar-nav li a {
  color: #ffffff;
  padding: 0 18px;
  height: 52px;
  line-height: 52px;
  outline: none;
  -webkit-transition: all;
  transition: all;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
}
#header .navbar #top-nav .navbar-nav li a > i {
  font-size: 20px;
}
#header .navbar #top-nav .navbar-nav li a > i.nav-notification {
  font-size: 8px;
  color: #ef4836;
  position: absolute;
  top: 12px;
  right: 12px;
  border-radius: 50%;
  border: 3px solid #1bbc9b;
}
#header .navbar #top-nav .navbar-nav li a:hover,
#header .navbar #top-nav .navbar-nav li a:focus {
  background: #18a689;
}
#header .navbar #top-nav .navbar-nav li a:hover .nav-notification,
#header .navbar #top-nav .navbar-nav li a:focus .nav-notification {
  border-color: #18a689;
}
#header .navbar #top-nav .navbar-nav li a .avatar {
  border-radius: 50%;
  margin-right: 5px;
  width: 36px;
  height: 36px;
}
#header .navbar #top-nav .navbar-nav li.dropdown.open a {
  background: #18a689;
}
#header .navbar #top-nav .navbar-nav li.dropdown.open .dropdown-menu li a {
  color: #030303;
  text-align: left;
  height: auto;
  padding: 5px 10px;
  line-height: 28px;
  background-color: #ffffff;
}
#header .navbar #top-nav .navbar-nav li.dropdown.open .dropdown-menu li a.view-all {
  text-align: center;
  background: #1bbc9b;
  color: #ffffff;
}
#header .navbar #top-nav .navbar-nav li.dropdown.open .dropdown-menu li a.view-all:hover {
  background: #18a689;
}
#header .navbar #top-nav .navbar-nav li.dropdown.open .dropdown-menu li a:hover {
  color: #ffffff;
  background: #1bbc9b;
}
#header .navbar #top-nav .navbar-nav li.dropdown.open .dropdown-menu li a:hover .time-ago {
  color: #ffffff;
}
#header .navbar #top-nav .navbar-nav li.dropdown.open .dropdown-menu li a i {
  margin-right: 10px;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu {
  margin-top: 13px;
  border-radius: 2px;
  border-width: 2px;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu li {
  padding: 5px;
  border-radius: 2px;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu li.divider {
  padding: 0;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu:after,
#header .navbar #top-nav .navbar-nav li .dropdown-menu:before {
  bottom: 100%;
  left: 50%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu:after {
  border-color: rgba(255, 255, 255, 0);
  border-bottom-color: #fff;
  border-width: 10px;
  margin-left: -10px;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu:before {
  border-bottom-color: #1bbc9b;
  border-width: 12px;
  margin-left: -13px;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu.right:before {
  right: 15px;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu.right:after {
  right: 16px;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu a .time-ago {
  font-size: 85%;
  font-style: italic;
  color: #95a5a6;
  float: right;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu a.dropdown-menu-header {
  font-size: 16px;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu a.dropdown-menu-header:hover {
  background-color: #ffffff !important;
  color: #030303 !important;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu.dropdown-email {
  max-width: 320px;
  min-width: 320px;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu.dropdown-email a {
  white-space: inherit;
  padding-left: 5px !important;
  padding-right: 10px !important;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu.dropdown-email a .avatar {
  margin-right: 10px;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu.dropdown-email a.dropdown-menu-header {
  padding-left: 20px !important;
}
#header .navbar #top-nav .navbar-nav li .dropdown-menu.dropdown-notification {
  min-width: 255px;
}
/* -----------------------------------------
   Left Sidebar styles
----------------------------------------- */
#sidebar {
  width: 255px;
  height: auto;
  position: absolute;
  left: 0;
  bottom: 0;
  top: 52px;
  z-index: 2;
}
#sidebar.sidebar-fixed {
  position: fixed;
}
#sidebar.sidebar-fixed .sidebar-inner {
  padding-bottom: 70px;
}
#sidebar.hide-sidebar {
  margin-left: -255px;
}
#sidebar.hide-sidebar:after {
  left: -255px;
}
#sidebar.collapse-sidebar {
  width: 65px;
  bottom: auto;
}
#sidebar.collapse-sidebar:after {
  width: 65px;
}
#sidebar.collapse-sidebar .option-buttons {
  padding: 26px 0 !important;
  background-color: #2c3e50;
}
#sidebar.collapse-sidebar .option-buttons .option-buttons-inner {
  display: none;
}
#sidebar.collapse-sidebar .sidebar-title {
  display: none;
}
#sidebar.collapse-sidebar #sideNav {
  margin-top: 15px;
  padding: 0 10px !important;
}
#sidebar.collapse-sidebar #sideNav li {
  border-radius: 2px;
  height: 40px;
}
#sidebar.collapse-sidebar #sideNav li a {
  padding: 8px 14px !important;
}
#sidebar.collapse-sidebar #sideNav li a .sideNav-arrow {
  display: none;
}
#sidebar.collapse-sidebar #sideNav li a .label {
  display: none;
}
#sidebar.collapse-sidebar #sideNav li a i {
  margin-right: 0 !important;
}
#sidebar.collapse-sidebar #sideNav li a span.txt {
  display: none;
  position: absolute;
  left: 45px;
  top: 0;
  z-index: 9998;
}
#sidebar.collapse-sidebar #sideNav li.hover-li a {
  width: 255px;
  background-color: #3e5771;
  color: #ecf0f1;
}
#sidebar.collapse-sidebar #sideNav li.hover-li a span.txt {
  display: inline-block;
  width: auto;
  padding: 9px 0 10px 15px;
}
#sidebar.collapse-sidebar #sideNav li.hover-li a i {
  color: #1bbc9b;
}
#sidebar.collapse-sidebar #sideNav li.hover-li a.notExpand {
  border-bottom-right-radius: 0;
}
#sidebar.collapse-sidebar #sideNav li.hover-li ul.sub {
  position: absolute;
  z-index: 9999;
  left: 54px;
  top: 44px;
  width: auto;
  display: block;
  margin: 0;
}
#sidebar.collapse-sidebar #sideNav li.hover-li ul.sub li {
  height: auto;
}
#sidebar.collapse-sidebar #sideNav li.hover-li ul.sub li a {
  width: 201px;
  padding: 3px 10px !important;
  border-radius: 0;
  background-color: #2c3e50;
  color: #ecf0f1;
  box-shadow: none;
  font-size: 12px;
}
#sidebar.collapse-sidebar #sideNav li.hover-li ul.sub li a span.txt {
  position: relative;
  left: auto;
  top: auto;
  padding: 5px;
}
#sidebar.collapse-sidebar #sideNav li.hover-li ul.sub li + li {
  margin-top: 0;
}
#sidebar.collapse-sidebar #sideNav li.hover-li ul.sub li + li:last-child {
  padding-bottom: 0;
}
#sidebar.collapse-sidebar #sideNav li.hover-li ul.sub li + li:last-child a {
  padding-bottom: 8px !important;
}
#sidebar.collapse-sidebar #sideNav li.hover-li ul.sub li:last-child a {
  border-bottom-right-radius: 2px;
}
#sidebar:after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 255px;
  background: #2c3e50;
  border-right: 1px solid #ffffff;
  z-index: -1;
}
#sidebar .sidebar-inner {
  position: relative;
  width: auto;
  height: 100%;
}
#sidebar .sidebar-inner .toggle-sidebar {
  float: left;
  width: 34px;
  height: 34px;
  background-color: #e7e5e1;
  border-radius: 50%;
  position: absolute;
  right: -16px;
  top: 10px;
  box-shadow: 0px 0px 1px #e7e5e1;
  z-index: 999;
}
#sidebar .sidebar-inner .toggle-sidebar > a {
  margin: 4px;
  border-radius: 50%;
  background: #d2d7d3;
  width: 26px;
  height: 26px;
  display: inline-block;
}
#sidebar .sidebar-inner .toggle-sidebar > a > i {
  font-size: 20px;
  padding-top: 0;
  padding-left: 3px;
  color: #ffffff;
  margin-top: -4px;
}
#sidebar .sidebar-inner .option-buttons {
  margin: 0 1px 0 0;
  padding: 14px 0 10px;
  border-bottom: 1px solid #354b60;
  position: relative;
  text-align: center;
}
#sidebar .sidebar-inner .option-buttons .toggle-option-buttons {
  display: none;
}
#sidebar .sidebar-inner .option-buttons #search-nav {
  display: none;
  position: absolute;
}
#sidebar .sidebar-inner .option-buttons #search-nav.show-form {
  display: block;
  top: 6px;
}
#sidebar .sidebar-inner .option-buttons #search-nav .form-group {
  margin: 0;
}
#sidebar .sidebar-inner .option-buttons #search-nav .form-group input {
  background-color: #2c3e50;
  border: transparent;
  box-shadow: none;
  padding-left: 40px;
  padding-right: 40px;
  position: relative;
}
#sidebar .sidebar-inner .option-buttons #search-nav .form-group i {
  color: #ffffff;
  position: absolute;
  top: 17px;
  margin-left: 5px;
  left: 12px;
  z-index: 99;
}
#sidebar .sidebar-inner .option-buttons #search-nav .btn {
  opacity: 0;
  position: absolute;
  left: -9999px;
}
#sidebar .sidebar-inner .option-buttons #search-nav #close-search-nav {
  position: absolute;
  right: 25px;
  top: 12px;
  color: #ffffff;
  font-weight: normal;
  opacity: 1;
  text-shadow: none;
  font-size: 18px;
}
#sidebar .sidebar-inner .option-buttons .option-buttons-inner {
  padding: 0 10px;
}
#sidebar .sidebar-inner .option-buttons .option-buttons-inner .btn {
  margin-right: 5px;
  box-shadow: none;
}
#sidebar .sidebar-inner .sidebar-title {
  font-size: 12px;
  text-transform: uppercase;
  color: #ecf0f1;
  padding: 0 15px;
}
#sidebar .sidebar-inner .sidebar-scrollarea {
  position: relative;
  width: auto;
  height: 100%;
}
#sidebar .sidebar-inner ul#sideNav {
  padding: 0 15px;
}
#sidebar .sidebar-inner ul#sideNav li + li {
  margin-top: 4px;
}
#sidebar .sidebar-inner ul#sideNav li + li:last-child {
  padding-bottom: 4px;
}
#sidebar .sidebar-inner ul#sideNav li a {
  background-color: #2c3e50;
  color: #ecf0f1;
  position: relative;
  padding: 6px 15px;
  display: inline-block;
  width: 100%;
  text-decoration: none;
  border-radius: 2px;
  -webkit-transition: background;
  transition: background;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
}
#sidebar .sidebar-inner ul#sideNav li a.active,
#sidebar .sidebar-inner ul#sideNav li a.active:hover {
  color: #ffffff;
  background-color: #1bbc9b;
}
#sidebar .sidebar-inner ul#sideNav li a.active i,
#sidebar .sidebar-inner ul#sideNav li a.active:hover i {
  color: #ecf0f1;
}
#sidebar .sidebar-inner ul#sideNav li a.active .label,
#sidebar .sidebar-inner ul#sideNav li a.active:hover .label {
  background: #2c3e50;
}
#sidebar .sidebar-inner ul#sideNav li a i {
  margin-right: 10px;
  font-size: 16px;
  width: 16px;
  -webkit-transition: rotate;
  transition: rotate;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
  margin-top: -2px;
}
#sidebar .sidebar-inner ul#sideNav li a i.sideNav-arrow {
  float: right;
  margin: 6px 0px 0 5px;
  font-size: 16px;
}
#sidebar .sidebar-inner ul#sideNav li a .label {
  float: right;
  background: #1bbc9b;
  color: #ffffff;
  font-size: 11px;
  margin-top: 3px;
  padding: 5px 6px;
}
#sidebar .sidebar-inner ul#sideNav li a:hover,
#sidebar .sidebar-inner ul#sideNav li a.active-state {
  color: #ffffff;
  background-color: #3e5771;
}
#sidebar .sidebar-inner ul#sideNav li a:hover i,
#sidebar .sidebar-inner ul#sideNav li a.active-state i {
  color: #1bbc9b;
}
#sidebar .sidebar-inner ul#sideNav li ul.sub {
  list-style: none;
  padding: 0;
  margin: 0;
  display: none;
}
#sidebar .sidebar-inner ul#sideNav li ul.sub li {
  margin: 0;
}
#sidebar .sidebar-inner ul#sideNav li ul.sub li a {
  padding: 6px 15px 6px 21px;
  -webkit-transition: color;
  transition: color;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
  font-size: 13px;
}
#sidebar .sidebar-inner ul#sideNav li ul.sub li a i {
  margin-right: 5px;
}
#sidebar .sidebar-inner ul#sideNav li ul.sub li a:hover {
  background-color: #2c3e50;
  color: #1bbc9b;
}
#sidebar .sidebar-inner ul#sideNav li ul.sub li a.active,
#sidebar .sidebar-inner ul#sideNav li ul.sub li a.active:hover {
  color: #ffffff;
  background-color: #1bbc9b;
}
#sidebar .sidebar-inner ul#sideNav li.highlight-menu {
  background-color: #3e5771;
  border-radius: 2px;
}
#sidebar .sidebar-inner ul#sideNav li.highlight-menu a {
  background-color: #3e5771;
}
#sidebar .sidebar-inner ul#sideNav li.highlight-menu a:hover {
  background-color: #3e5771 !important;
}
#sidebar .sidebar-inner ul#sideNav li.highlight-menu a.active,
#sidebar .sidebar-inner ul#sideNav li.highlight-menu a.active:hover {
  background-color: #1bbc9b !important;
}
/*-----------------------------------------
   Right Sidebar styles
----------------------------------------- */
#right-sidebar {
  width: 255px;
  height: auto;
  position: fixed;
  right: 0;
  bottom: 0;
  top: 52px;
  z-index: 2;
  /*Hided Sidebar*/
}
#right-sidebar:after {
  content: "";
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 255px;
  background: #ecf0f1;
  border-left: 1px solid #ffffff;
  z-index: -1;
}
#right-sidebar .sidebar-inner {
  position: relative;
  width: auto;
  height: 100%;
}
#right-sidebar.hide-sidebar {
  margin-right: -255px;
}
#right-sidebar.hide-sidebar:after {
  right: -255px;
}
/* -----------------------------------------
   Chat user styles
----------------------------------------- */
.chat-user-list {
  position: relative;
  display: block;
  -webkit-transition: opacity;
  transition: opacity;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
  /*chat search*/
}
.chat-user-list.hide-it {
  display: none;
}
.chat-user-list .chat-search {
  position: relative;
  padding: 0 15px;
}
.chat-user-list .chat-search .form-group {
  margin-left: 0;
  margin-right: 0;
}
.chat-user-list .chat-search input {
  border: none;
  border-bottom: 1px solid #8d9e9f;
  background: none;
  padding: 16px 0 17px 35px;
  height: auto;
  width: 100%;
  box-shadow: none;
  border-radius: 0;
  color: #030303;
}
.chat-user-list .chat-search input:focus,
.chat-user-list .chat-search input:hover {
  box-shadow: none;
  border-color: #7f9293;
}
.chat-user-list .chat-search button {
  position: absolute;
  left: 15px;
  top: 11px;
  border: none;
  background: none;
}
.chat-user-list .chat-search button i {
  color: #acb1b8;
}
.chat-user-list .chat-ui {
  padding-left: 0px;
  margin-bottom: 35px;
  margin-top: 8px;
  list-style: none;
}
.chat-user-list .chat-ui.bsAccordion li:last-child ul {
  margin-bottom: 20px;
}
.chat-user-list .chat-ui li {
  display: block;
  position: relative;
}
.chat-user-list .chat-ui li a {
  padding: 7px 15px;
  color: #030303;
  font-weight: bold;
  width: 100%;
  display: inline-block;
  position: relative;
}
.chat-user-list .chat-ui li a.chat-ui-heading {
  text-transform: uppercase;
  color: #95a5a6;
}
.chat-user-list .chat-ui li a .chat-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  margin-right: 5px;
  border: 1px solid transparent;
  -webkit-transition: border;
  transition: border;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
}
.chat-user-list .chat-ui li a.chat-name {
  color: #292929;
  font-weight: normal;
  font-size: 13px;
  padding: 0;
  text-decoration: none;
  -webkit-transition: color;
  transition: color;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
}
.chat-user-list .chat-ui li ul {
  padding-left: 0;
}
.chat-user-list .chat-ui li ul li {
  padding: 7px 10px;
  margin: 0 5px;
  -webkit-transition: background;
  transition: background;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
  border-radius: 2px;
}
.chat-user-list .chat-ui li ul li:hover {
  background: #dde4e6;
}
.chat-user-list .chat-ui li ul li .chat-notification {
  position: absolute;
  border-radius: 50%;
  background: #ef4836;
  font-size: 10px;
  font-weight: bold;
  color: white;
  border: 2px solid #ecf0f1;
  top: -8px;
  left: 25px;
  display: inline-block;
  width: 20px;
  height: 20px;
  text-align: center;
  padding-top: 1px;
  line-height: 14px;
}
.chat-user-list .chat-ui li ul li .device {
  float: right;
  width: 16px;
  height: 16px;
  color: #95a5a6;
  margin-top: 10px;
  margin-right: 5px;
}
.chat-user-list .chat-ui li ul li .device i {
  font-size: 20px;
}
.chat-user-list .chat-ui li ul li .status {
  float: right;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  margin-top: 10px;
}
.chat-user-list .chat-ui li ul li .status i {
  font-size: 20px;
}
.chat-user-list .chat-ui li ul li .status.busy {
  color: #ef4836;
}
.chat-user-list .chat-ui li ul li .status.online {
  color: #3fc380;
}
.chat-user-list .chat-ui li ul li .status.offline {
  color: #95a5a6;
}
.chat-box {
  position: relative;
  display: none;
  opacity: 0;
}
.chat-box h5 {
  padding: 16px 0;
  border-bottom: 1px solid #d2d7d3;
  font-size: 16px;
  margin: 0 15px;
  color: #95a5a6;
}
.chat-box h5 .device {
  float: none;
  width: 16px;
  height: 16px;
  color: #95a5a6;
  margin-top: 10px;
  margin-right: 5px;
}
.chat-box h5 .device i {
  font-size: 20px;
}
.chat-box h5 .status {
  float: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  margin-top: 10px;
}
.chat-box h5 .status i {
  font-size: 20px;
}
.chat-box h5 .status.busy {
  color: #ef4836;
}
.chat-box h5 .status.online {
  color: #3fc380;
}
.chat-box h5 .status.offline {
  color: #95a5a6;
}
.chat-box .close {
  position: absolute;
  top: 15px;
  right: 15px;
}
.chat-box.chatbox-show {
  display: block;
  opacity: 1;
}
.chat-box .chat-messages {
  margin: 10px 15px 40px;
  padding: 0;
  list-style: none;
}
.chat-box .chat-messages li {
  margin-bottom: 10px;
}
.chat-box .chat-messages li .avatar {
  float: left;
}
.chat-box .chat-messages li .avatar img {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  margin-right: 5px;
  border: 1px solid transparent;
  -webkit-transition: border;
  transition: border;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
}
.chat-box .chat-messages li .message {
  margin-left: 55px;
  border-radius: 4px;
  background-color: #ffffff;
  padding: 5px 10px;
  border: 1px solid #ffffff;
  position: relative;
}
.chat-box .chat-messages li .message:after,
.chat-box .chat-messages li .message:before {
  right: 100%;
  top: 20px;
  border: solid transparent;
  content: "";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
}
.chat-box .chat-messages li .message:after {
  border-color: rgba(136, 183, 213, 0);
  border-right-color: #ffffff;
  border-width: 8px;
  margin-top: -8px;
}
.chat-box .chat-messages li .message:before {
  border-color: rgba(194, 225, 245, 0);
  border-right-color: #ffffff;
  border-width: 9px;
  margin-top: -9px;
}
.chat-box .chat-messages li .message .chat-name {
  color: #95a5a6;
  margin-bottom: 2px;
}
.chat-box .chat-messages li .message .chat-name .chat-time {
  font-size: 75%;
  float: right;
  padding: 2px 0;
  font-style: italic;
}
.chat-box .chat-messages li .message .chat-txt {
  font-size: 13px;
  line-height: 18px;
  margin-bottom: 0;
}
.chat-box .chat-messages li.chat-me .avatar {
  float: right;
}
.chat-box .chat-messages li.chat-me .avatar img {
  margin-right: 0;
  margin-left: 5px;
}
.chat-box .chat-messages li.chat-me .message {
  margin-right: 55px;
  margin-left: 0;
}
.chat-box .chat-messages li.chat-me .message:after,
.chat-box .chat-messages li.chat-me .message:before {
  left: 100%;
}
.chat-box .chat-messages li.chat-me .message:after {
  border-left-color: #ffffff;
  border-right-color: transparent;
}
.chat-box .chat-messages li.chat-me .message:before {
  border-left-color: #ffffff;
  border-right-color: transparent;
}
.chat-box .chat-messages li:last-child {
  margin-bottom: 0;
}
.chat-box .chat-write {
  padding: 0;
  position: fixed;
  width: 100%;
  bottom: 10px;
  width: 225px;
  right: 15px;
}
.chat-box .chat-write form {
  position: relative;
}
.chat-box .chat-write form .form-group {
  margin-left: 0;
  margin-right: 0;
}
.chat-box .chat-write form textarea {
  resize: none;
  border-radius: 0;
  box-shadow: none;
  padding: 6px 36px 6px 12px;
  color: #030303;
}
.chat-box .chat-write form #attach_photo_btn {
  position: absolute;
  top: 2px;
  right: 4px;
  left: auto;
  width: 40px;
}
.chat-box .chat-write form input[type="file"] {
  opacity: 0;
  position: absolute;
  width: 40px;
  height: 34px;
  top: 0;
  right: 2px;
}
/* -----------------------------------------
   Content
----------------------------------------- */
#content {
  margin-left: 255px;
  padding: 52px 0 0 0;
  min-height: 100%;
}
#content.sidebar-page {
  margin-left: 255px;
}
#content.collapsed-sidebar {
  margin-left: 65px;
}
#content.full-page {
  margin-left: 0;
}
#content.overLap {
  margin-left: 0;
}
#content.offCanvas {
  width: 100%;
  margin-left: 255px;
}
#content .content-wrapper {
  height: auto;
  float: left;
  width: 100%;
  position: relative;
}
#content .content-wrapper #page-heading {
  padding: 15px 25px;
  position: relative;
  margin: 0;
  background-color: #e7e5e1;
  border-bottom: 1px solid #ffffff;
}
#content .content-wrapper #page-heading > h2 {
  margin: 0;
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 0.5px;
}
#content .content-wrapper #page-heading > h2 > i {
  font-size: 16px;
}
#content .content-wrapper #page-heading #crumb {
  margin: 0;
  position: absolute;
  right: 25px;
  top: 8px;
  background: transparent;
  font-size: 14px;
}
#content .content-wrapper #page-heading #crumb li > i {
  margin-right: 8px;
}
#content .content-wrapper #page-heading #crumb li a {
  padding-right: 5px;
}
#content .content-wrapper .content-inner {
  position: relative;
  padding: 15px 25px;
}
/*Template elements*/
/* -----------------------------------------
   Sidebar panel
----------------------------------------- */
.sidebar-panel {
  margin-top: 10px;
  width: 100%;
  height: auto;
  float: left;
  position: relative;
}
.sidebar-panel:before,
.sidebar-panel:after {
  content: " ";
  display: table;
}
.sidebar-panel:after {
  clear: both;
}
.sidebar-panel .sidebar-panel-title {
  font-size: 13px;
  padding-left: 17px;
  text-transform: uppercase;
}
.sidebar-panel .sidebar-panel-title i {
  margin-right: 15px;
}
.sidebar-panel .sidebar-panel-content {
  padding: 5px 15px 15px;
  position: relative;
}
.sidebar-panel .sidebar-panel-content.fullwidth {
  padding: 5px 0px 15px;
}
/* -----------------------------------------
   Input sizes
----------------------------------------- */
.input-mini {
  width: 60px!important;
}
.input-small {
  width: 90px!important;
}
.input-medium {
  width: 150px!important;
}
.input-large {
  width: 210px!important;
}
.input-xlarge {
  width: 270px!important;
}
.input-block {
  width: 100%;
  display: block;
}
/* -----------------------------------------
   Circfull progress bars
----------------------------------------- */
.circliful {
  position: relative;
  float: left;
  margin-right: 10px;
  margin-bottom: 10px;
}
.circliful .circle-text,
.circliful .circle-info,
.circliful .circle-text-half,
.circliful .circle-info-half {
  width: 100%;
  position: absolute;
  text-align: center;
  display: inline-block;
  color: #030303;
  font-weight: bold;
}
.circliful .circle-text-half {
  top: 8px;
}
.circliful i {
  margin: 5px 3px 0 3px;
  position: relative;
  bottom: 4px;
}
/* -----------------------------------------
   Flot charts
----------------------------------------- */
#flotTip {
  padding: 5px 10px;
  color: #ffffff;
  border-radius: 2px;
  background: #000000 !important;
  font-family: "Open Sans";
  font-size: 12px;
  font-weight: bold;
  white-space: nowrap;
  display: inline-block;
  z-index: 100;
  opacity: 0.8;
  filter: alpha(opacity=80);
}
.tickLabel {
  font-family: "Open Sans";
  font-size: 11px;
  text-align: center;
  font-weight: bold;
}
/* -----------------------------------------
   Sparklines
----------------------------------------- */
.spark {
  width: 100%;
}
.spark .percent {
  float: left;
  font-size: 16px;
  width: 35%;
}
.spark .sparkline {
  width: 65%;
  display: inline-block;
  margin-top: 4px;
}
.jqstooltip {
  padding: 5px;
  display: inline-block;
}
.jqsfield {
  color: white;
  text-align: left;
  padding: 5px;
  margin-left: -5px;
  margin-right: 5px;
  margin-top: -5px;
  margin-bottom: 5px;
  border-radius: 2px;
  background: #000000;
  font-family: verdana;
  font-size: 12px;
  font-weight: bold;
  white-space: nowrap;
  display: inline-block;
  z-index: 100;
  opacity: 0.8;
  filter: alpha(opacity=80);
  border-color: #000000;
}
/* -----------------------------------------
   Easy pie charts
----------------------------------------- */
.easyPieChart {
  position: relative;
  text-align: center;
}
.easyPieChart canvas {
  position: absolute;
  top: 0;
  left: 0;
}
.pie-charts {
  display: inline-block;
  text-align: center;
  padding: 0 12px;
  margin-bottom: 20px;
}
.pie-charts .easyPieChart {
  font-weight: bold;
}
.pie-charts div.label {
  color: #030303;
  font-size: 100%;
  width: 100%;
  float: left;
  margin-top: 10px;
}
.pie-charts.red-pie .easyPieChart {
  color: #ef4836;
}
.pie-charts.red-pie div.label {
  color: #ef4836;
}
.pie-charts.green-pie .easyPieChart {
  color: #3fc380;
}
.pie-charts.green-pie div.label {
  color: #3fc380;
}
.pie-charts.blue-pie .easyPieChart {
  color: #1e8bc3;
}
.pie-charts.blue-pie div.label {
  color: #1e8bc3;
}
.pie-charts.teal-pie .easyPieChart {
  color: #1bbc9b;
}
.pie-charts.teal-pie div.label {
  color: #1bbc9b;
}
.pie-charts.purple-pie .easyPieChart {
  color: #9a12b3;
}
.pie-charts.purple-pie div.label {
  color: #9a12b3;
}
/* -----------------------------------------
   Invoice page
----------------------------------------- */
#print-invoice {
  position: absolute;
  right: 15px;
  top: 10px;
  cursor: pointer;
}
#print-invoice i {
  font-size: 20px;
}
.invoice {
  position: relative;
}
/* -----------------------------------------
   Timeline
----------------------------------------- */
.timeline {
  position: relative;
  list-style: none;
  padding: 0;
}
.timeline:before {
  content: '';
  position: absolute;
  width: 2px;
  height: 100%;
  top: 0;
  left: 100px;
  background: #1bbc9b;
}
.timeline li {
  position: relative;
}
.timeline li .timeline-label {
  width: 16px;
  height: 16px;
  left: 93px;
  top: 6px;
  position: absolute;
  display: block;
  border-radius: 50%;
  background-color: #ffffff;
  border: 2px solid #1bbc9b;
}
.timeline li .timeline-label:after {
  content: "";
  width: 20px;
  height: 20px;
  left: -4px;
  top: -4px;
  position: absolute;
  display: block;
  border-radius: 50%;
  border: 2px solid #ffffff;
}
.timeline li .date-time {
  float: left;
  padding-top: 1px;
}
.timeline li .timeline-event-title {
  margin-left: 120px;
  padding-top: 6px;
  margin-bottom: 5px;
}
.timeline li .timeline-event {
  margin-left: 120px;
}
.timeline-advanced:before {
  left: 110px;
}
.timeline-advanced li .timeline-label {
  width: 36px;
  height: 36px;
  left: 93px;
  top: 0;
  position: absolute;
  display: block;
  border-radius: 50%;
  background-color: #1bbc9b;
  border: 2px solid #1bbc9b;
}
.timeline-advanced li .timeline-label:after {
  content: "";
  width: 40px;
  height: 40px;
  left: -4px;
  top: -4px;
  position: absolute;
  display: block;
  border-radius: 50%;
  border: 2px solid #ffffff;
}
.timeline-advanced li .timeline-label i {
  margin-top: 1px;
  margin-left: 7px;
  font-size: 16px;
  color: #ffffff;
}
.timeline-advanced li .timeline-event-title {
  margin-left: 135px;
  padding-top: 8px;
}
.timeline-advanced li .timeline-event {
  margin-top: 10px;
  margin-left: 135px;
}
.timeline-twoside:before {
  left: 50%;
}
.timeline-twoside li .timeline-label {
  width: 36px;
  height: 36px;
  left: 50%;
  margin-left: -18px;
  top: 0;
}
.timeline-twoside li .timeline-label:after {
  width: 40px;
  height: 40px;
  left: -4px;
  top: -4px;
}
.timeline-twoside li .timeline-label i {
  margin-left: 7px;
}
.timeline-twoside li .date-time {
  margin-left: 50%;
  padding-left: 25px;
  float: none;
  display: inline-block;
}
.timeline-twoside li .timeline-event-title {
  margin-left: 10px;
  margin-top: -29px;
  padding-top: 8px;
}
.timeline-twoside li .timeline-event {
  margin-left: 10px;
  padding-bottom: 20px;
  width: 45%;
}
.timeline-twoside li.right-side .date-time {
  margin-right: 0;
  margin-left: 0;
  padding-left: 0;
  padding-right: 53%;
  float: none;
  display: inline-block;
  text-align: right;
  width: 100%;
}
.timeline-twoside li.right-side .timeline-event-title {
  text-align: right;
}
.timeline-twoside li.right-side .timeline-event {
  text-align: right;
  margin-left: 55%;
}
/* -----------------------------------------
   Profile
----------------------------------------- */
.profile-cover {
  position: relative;
}
.profile-cover #change-cover {
  position: absolute;
  bottom: 15px;
  right: 15px;
}
.profile-cover .change-cover {
  position: absolute;
  bottom: 15px;
  right: 15px;
  width: 110px;
}
.profile-cover .change-cover input {
  opacity: 0;
  cursor: pointer;
  width: 110px;
}
.profile-cover .profile {
  position: absolute;
  bottom: 15px;
  left: 15px;
}
.profile-cover .profile img {
  border-radius: 50%;
  border: 2px solid #d2d7d3;
}
.profile-cover .profile #change-profile-image {
  position: absolute;
  bottom: -10px;
  right: 51px;
}
.profile-cover .profile .change-profile-image {
  position: absolute;
  bottom: -10px;
  right: 51px;
  width: 30px;
}
.profile-cover .profile .change-profile-image input {
  opacity: 0;
  cursor: pointer;
  width: 30px;
}
/* -----------------------------------------
   Search page
----------------------------------------- */
.search-page .search-page-toolbar {
  margin-top: 12px;
  margin-bottom: 12px;
}
.search-page .search-results .search-results-item {
  margin-top: 10px;
  float: left;
}
.search-page .search-results .search-results-item:before,
.search-page .search-results .search-results-item:after {
  content: " ";
  display: table;
}
.search-page .search-results .search-results-item:after {
  clear: both;
}
.search-page .search-results .search-results-item .search-result-video {
  float: left;
  margin-right: 10px;
  position: relative;
}
.search-page .search-results .search-results-item .search-result-video .play-video {
  position: absolute;
  right: 4px;
  bottom: 4px;
  background: black;
  padding: 0 10px 2px;
}
.search-page .search-results .search-results-item .search-result-video .play-video i {
  color: white;
}
.search-page .search-results .search-results-item .search-results-item-name {
  margin-bottom: 2px;
}
.search-page .search-results .search-results-item .search-results-item-url a {
  color: #3fc380;
}
/* -----------------------------------------
   Weather widget
----------------------------------------- */
.weather-widget .weather-location {
  font-size: 16px;
  margin-top: 10px;
  color: #1bbc9b;
}
.weather-widget .weather-day {
  font-weight: bold;
  margin-top: 10px;
  color: #ffffff;
}
.weather-widget .weather-degree {
  color: #ffffff;
}
/* -----------------------------------------
   Blog post widget
----------------------------------------- */
.blog-post-widget .blog-post-image {
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
}
.blog-post-widget .blog-post-date {
  color: #1d1d1d;
  font-size: 13px;
  margin-bottom: 5px;
  display: inline-block;
}
.blog-post-widget .blog-post-text {
  color: #030303;
}
.blog-post-widget .blog-post-info {
  padding: 5px 0;
}
.blog-post-widget .blog-post-info .blog-post-author {
  margin-right: 10px;
}
.blog-post-widget .blog-post-info .blog-post-likes {
  margin-right: 10px;
}
/* -----------------------------------------
   Instagram widget
----------------------------------------- */
.instagram-widget:before,
.instagram-widget:after {
  content: " ";
  display: table;
}
.instagram-widget:after {
  clear: both;
}
.instagram-widget .instagram-widget-header {
  width: 100%;
  float: left;
}
.instagram-widget .instagram-widget-header a {
  color: #030303;
  -webkit-transition: color;
  transition: color;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
}
.instagram-widget .instagram-widget-header a .instagram-widget-text {
  text-transform: uppercase;
  font-size: 12px;
  margin-bottom: 0;
  margin-top: 10px;
}
.instagram-widget .instagram-widget-header a .instagram-widget-number {
  font-size: 20px;
  display: inline-block;
  margin-bottom: 10px;
}
.instagram-widget .instagram-widget-header a:hover {
  color: #1bbc9b;
  text-decoration: none;
}
.instagram-widget .instagram-widget-image {
  width: 100%;
  float: left;
}
.instagram-widget .instagram-widget-image .carousel-indicators {
  bottom: 10px;
  left: 10px;
  width: auto;
  margin-left: 0;
}
.instagram-widget .instagram-widget-footer {
  width: 100%;
  float: left;
  padding: 15px 0;
  background: #1bbc9b;
}
.instagram-widget .instagram-widget-footer p {
  margin-bottom: 0;
}
.instagram-widget .instagram-widget-footer p a {
  color: #ffffff;
  -webkit-transition: color;
  transition: color;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
}
.instagram-widget .instagram-widget-footer p a i {
  font-size: 24px;
}
.instagram-widget .instagram-widget-footer p a .instagram-widget-number {
  font-size: 20px;
}
.instagram-widget .instagram-widget-footer p a:hover {
  color: #e6e6e6;
  text-decoration: none;
}
/* -----------------------------------------
   Carousel dot style indicators
----------------------------------------- */
.dotstyle {
  display: inline-block;
  margin: 0;
  padding: 0;
  list-style: none;
  cursor: default;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  bottom: 10px !important;
}
.dotstyle.center {
  width: auto;
  left: 45%;
}
.dotstyle li {
  position: relative;
  display: block;
  float: left;
  margin: 0 5px;
  width: 16px;
  height: 16px;
  cursor: pointer;
  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0);
  -webkit-transition: box-shadow 0.3s ease;
  transition: box-shadow 0.3s ease;
  border: none;
  background-color: none;
}
.dotstyle li a {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  outline: none;
  border-radius: 50%;
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.3);
  text-indent: -999em;
  /* make the text accessible to screen readers */
  cursor: pointer;
  position: absolute;
  background-color: rgba(255, 255, 255, 0.7);
  -webkit-transition: background-color 0.3s ease, -webkit-transform 0.3s ease;
  transition: background-color 0.3s ease, transform 0.3s ease;
}
.dotstyle li a:hover,
.dotstyle li a:focus {
  background-color: white;
}
.dotstyle li a:focus {
  outline: none;
}
.dotstyle li.active {
  margin: 0 5px;
  width: 16px;
  height: 16px;
  background: none;
  box-shadow: 0 0 0 2px white;
}
.dotstyle li.active a {
  -webkit-transform: scale(0.4);
  -ms-transform: scale(0.4);
  transform: scale(0.4);
  background-color: white;
}
/* -----------------------------------------
   Chat widget
----------------------------------------- */
.chat-widget {
  margin: 0 15px 0;
  padding: 0;
  list-style: none;
}
.chat-widget > li {
  margin-bottom: 10px;
}
.chat-widget > li .avatar {
  float: left;
}
.chat-widget > li .avatar img {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  margin-right: 5px;
  border: 1px solid transparent;
  -webkit-transition: border;
  transition: border;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
}
.chat-widget > li .message {
  margin-left: 55px;
  border-radius: 4px;
  background-color: #ecf0f1;
  padding: 5px 10px;
  border: 1px solid #ecf0f1;
  position: relative;
}
.chat-widget > li .message:after,
.chat-widget > li .message:before {
  right: 100%;
  top: 20px;
  border: solid transparent;
  content: "";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
}
.chat-widget > li .message:after {
  border-color: rgba(136, 183, 213, 0);
  border-right-color: #ecf0f1;
  border-width: 8px;
  margin-top: -8px;
}
.chat-widget > li .message:before {
  border-color: rgba(194, 225, 245, 0);
  border-right-color: #ecf0f1;
  border-width: 9px;
  margin-top: -9px;
}
.chat-widget > li .message .chat-name {
  color: #95a5a6;
  margin-bottom: 2px;
}
.chat-widget > li .message .chat-name .chat-time {
  font-size: 75%;
  float: right;
  padding: 2px 0;
  font-style: italic;
}
.chat-widget > li .message .chat-txt {
  font-size: 13px;
  line-height: 18px;
  margin-bottom: 0;
}
.chat-widget > li.chat-me .avatar {
  float: right;
}
.chat-widget > li.chat-me .avatar img {
  margin-right: 0;
  margin-left: 5px;
}
.chat-widget > li.chat-me .message {
  margin-right: 55px;
  margin-left: 0;
}
.chat-widget > li.chat-me .message:after,
.chat-widget > li.chat-me .message:before {
  left: 100%;
}
.chat-widget > li.chat-me .message:after {
  border-left-color: #ecf0f1;
  border-right-color: transparent;
}
.chat-widget > li.chat-me .message:before {
  border-left-color: #ecf0f1;
  border-right-color: transparent;
}
.chat-widget .attach_photo_btn {
  top: 5px;
  right: 4px;
  left: -10px;
  width: 40px;
  position: relative;
}
.chat-widget input[type="file"] {
  opacity: 0;
  position: absolute;
  width: 40px;
  height: 34px;
  bottom: 0;
  left: 2px;
}
/* -----------------------------------------
   Twitter widget
----------------------------------------- */
.twitter-widget:before,
.twitter-widget:after {
  content: " ";
  display: table;
}
.twitter-widget:after {
  clear: both;
}
.twitter-widget .twitter-widget-header {
  width: 100%;
  float: left;
}
.twitter-widget .twitter-widget-header a {
  color: #030303;
  -webkit-transition: color;
  transition: color;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
}
.twitter-widget .twitter-widget-header a .twitter-widget-text {
  text-transform: uppercase;
  font-size: 12px;
  margin-bottom: 0;
  margin-top: 10px;
}
.twitter-widget .twitter-widget-header a .twitter-widget-number {
  font-size: 20px;
  display: inline-block;
  margin-bottom: 10px;
}
.twitter-widget .twitter-widget-header a:hover {
  color: #1bbc9b;
  text-decoration: none;
}
.twitter-widget .twitter-widget-tweets {
  float: left;
  padding: 15px 20px;
}
.twitter-widget .twitter-widget-tweets ul {
  list-style: none;
  margin-bottom: 0;
  padding-left: 0;
}
.twitter-widget .twitter-widget-tweets ul li {
  margin-bottom: 5px;
}
.twitter-widget .twitter-widget-tweets ul li .twitter-widget-avatar {
  float: left;
  margin: 5px 10px 10px 0;
  width: 40px;
  height: 40px;
  border-radius: 2px;
}
.twitter-widget .twitter-widget-tweets ul li p.tweet-text {
  margin-bottom: 0;
  font-weight: normal;
  color: #101010;
  padding-left: 50px;
  font-size: 13px;
}
.twitter-widget .twitter-widget-tweets ul li .twitter-widget-date {
  font-size: 11px;
  color: #5c5c5c;
  font-weight: normal;
}
/* -----------------------------------------
   Recent users widget
----------------------------------------- */
.recent-users-widget .recent-users-header {
  padding: 15px;
}
.recent-users-widget ul.list-group {
  margin-bottom: 0;
}
.recent-users-widget ul.list-group li.list-group-item {
  border-color: transparent;
  -webkit-transition: background;
  transition: background;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
  border-radius: 2px;
}
.recent-users-widget ul.list-group li.list-group-item:before,
.recent-users-widget ul.list-group li.list-group-item:after {
  content: " ";
  display: table;
}
.recent-users-widget ul.list-group li.list-group-item:after {
  clear: both;
}
.recent-users-widget ul.list-group li.list-group-item:nth-child(even) {
  background: #f2f1ef;
}
.recent-users-widget ul.list-group li.list-group-item:nth-child(even) .status {
  background: #f2f1ef;
}
.recent-users-widget ul.list-group li.list-group-item:hover {
  background: #e7e5e1;
}
.recent-users-widget ul.list-group li.list-group-item:hover .status {
  background: #e7e5e1;
}
.recent-users-widget ul.list-group li.list-group-item .chat-avatar {
  float: left;
  width: 42px;
  height: 42px;
  border-radius: 20px;
  margin-right: 5px;
  border: 1px solid transparent;
  -webkit-transition: border;
  transition: border;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
}
.recent-users-widget ul.list-group li.list-group-item .name {
  float: left;
  padding: 13px 5px 8px;
}
.recent-users-widget ul.list-group li.list-group-item .status {
  position: absolute;
  left: 45px;
  top: 10px;
  color: #ef4836;
  background: #ffffff;
  width: 16px;
  height: 16px;
  border-radius: 16px;
}
.recent-users-widget ul.list-group li.list-group-item .status i {
  font-size: 24px;
  margin-top: -12px;
  margin-left: -5px;
}
.recent-users-widget ul.list-group li.list-group-item .status.online {
  color: #3fc380;
}
.recent-users-widget ul.list-group li.list-group-item .status.offline {
  color: #292929;
}
/* -----------------------------------------
   Todo widget
----------------------------------------- */
.todo-widget {
  position: relative;
}
.todo-widget .todo-header {
  margin-bottom: 15px;
  float: left;
  width: 100%;
}
.todo-widget .todo-header:before,
.todo-widget .todo-header:after {
  content: " ";
  display: table;
}
.todo-widget .todo-header:after {
  clear: both;
}
.todo-widget .todo-header .todo-search {
  width: 75%;
  float: left;
}
.todo-widget .todo-header .todo-add {
  width: 25%;
  float: right;
  text-align: right;
}
.todo-widget .todo-period {
  font-size: 16px;
}
.todo-widget .todo-list {
  list-style: none;
  margin-left: 0;
  margin-bottom: 0px;
  min-height: 40px;
  padding-left: 0;
  position: relative;
}
.todo-widget .todo-list.ui-sortable {
  cursor: move;
}
.todo-widget .todo-list .todo-task-item {
  margin-bottom: 0;
  border-top: 1px solid #95a5a6;
  padding: 10px 0;
  position: relative;
}
.todo-widget .todo-list .todo-task-item:before,
.todo-widget .todo-list .todo-task-item:after {
  content: " ";
  display: table;
}
.todo-widget .todo-list .todo-task-item:after {
  clear: both;
}
.todo-widget .todo-list .todo-task-item .checkbox {
  float: left;
  margin-top: 0;
  margin-bottom: 0;
}
.todo-widget .todo-list .todo-task-item .todo-priority {
  margin-left: 10px;
  margin-right: 10px;
  float: left;
}
.todo-widget .todo-list .todo-task-item .todo-priority i {
  font-size: 16px;
  color: #2c3e50;
}
.todo-widget .todo-list .todo-task-item .todo-priority.normal i {
  color: #3fc380;
}
.todo-widget .todo-list .todo-task-item .todo-priority.high i {
  color: #ef4836;
}
.todo-widget .todo-list .todo-task-item .todo-priority.medium i {
  color: #e87e04;
}
.todo-widget .todo-list .todo-task-item .todo-category {
  float: right;
  margin-right: 18px;
}
.todo-widget .todo-list .todo-task-item .todo-task-text {
  font-weight: bold;
  padding-top: 1px;
}
.todo-widget .todo-list .todo-task-item .todo-close {
  position: absolute;
  right: 0;
  font-size: 16px;
  top: 14px;
}
.todo-widget .todo-list .todo-task-item.task-done {
  opacity: 0.5;
  filter: alpha(opacity=50);
}
.todo-widget .todo-list .todo-task-item.task-done .todo-task-text {
  text-decoration: line-through;
}
.todo-widget .todo-list .ui-sortable-helper {
  background: #f2f1ef;
}
.todo-widget .todo-list .placeholder {
  border: 2px dashed #95a5a6;
  margin-bottom: 10px;
  width: 100%;
  height: 40px;
}
/* -----------------------------------------
   Shortcut buttons
----------------------------------------- */
.shortcut-buttons {
  width: 100%;
  text-align: center;
}
.shortcut-buttons .shortcut-btn {
  margin: 0 10px 15px;
  width: 100px;
  height: 72px;
  display: inline-block;
  border-radius: 2px;
  background: #ffffff;
  border-top: 2px solid #e7e5e1;
  border-bottom: 1px solid #dbd8d3;
  position: relative;
  -webkit-transition: border-color;
  transition: border-color;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
}
.shortcut-buttons .shortcut-btn .shortcut-icon {
  width: 100%;
  height: 45px;
  display: inline-block;
}
.shortcut-buttons .shortcut-btn .shortcut-icon i {
  font-size: 24px;
  padding-top: 15px;
  color: #030303;
  -webkit-transition: color;
  transition: color;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
}
.shortcut-buttons .shortcut-btn .shortcut-text {
  display: inline-block;
  width: 100%;
  font-size: 12px;
  font-weight: bold;
  color: #030303;
  background-color: #e7e5e1;
  border-bottom-left-radius: 2px;
  border-bottom-right-radius: 2px;
  -webkit-transition: all;
  transition: all;
  -webkit-transition-duration: 0.4s;
  transition-duration: 0.4s;
}
.shortcut-buttons .shortcut-btn .label {
  position: absolute;
  top: -10px;
  right: -10px;
}
.shortcut-buttons .shortcut-btn:hover {
  border-top-color: #1bbc9b;
}
.shortcut-buttons .shortcut-btn:hover .shortcut-icon i {
  color: #1bbc9b;
}
.shortcut-buttons .shortcut-btn:hover .shortcut-text {
  background-color: #1bbc9b;
  color: #ffffff;
}
/* -----------------------------------------
   Datatables row fix
----------------------------------------- */
.dataTables_wrapper .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.dataTables_paginate .pagination {
  margin-top: -5px;
  float: right;
}
/* -----------------------------------------
   Responsive media queries
----------------------------------------- */
/* -----------------------------------------
   Big screens
----------------------------------------- */
/* -----------------------------------------
   Desktops
----------------------------------------- */
@media all and (max-width: 1366px) {
  /* ------------------ Offline page --------------------*/
  body.error-page h1.offline-page {
    font-size: 10em;
  }
}
/* -----------------------------------------
   Tablets and some phones
----------------------------------------- */
@media all and (max-width: 991px) {
  /* ------------------ Header --------------------*/
  #header .navbar .navbar-brand {
    width: auto;
    padding-right: 15px;
  }
  #header .navbar #top-nav {
    float: right;
  }
  #header .navbar #top-nav:before,
  #header .navbar #top-nav:after {
    content: " ";
    display: table;
  }
  #header .navbar #top-nav:after {
    clear: both;
  }
  #header .navbar #top-nav .navbar-form.show {
    display: inline-block !important;
    position: absolute;
    left: 70px;
    top: 0;
    right: 0;
    border-top: none;
    border-bottom: none;
    z-index: 10;
  }
  #header .navbar #top-nav .navbar-form.show .form-group {
    margin-bottom: 0;
  }
  /* ------------------ Dual list --------------------*/
  .bootstrap-duallistbox-container .box2 {
    margin-top: 10px;
  }
  /* ------------------ Form grid --------------------*/
  .form-group .row .form-control,
  .form-group .row .input-group,
  .form-group .row .ui-spinner {
    margin-bottom: 10px;
  }
  .form-group .row .input-group .form-control,
  .form-group .row .ui-spinner .form-control {
    margin-bottom: 0;
  }
  .form-horizontal .control-label,
  .form-vertical .control-label {
    text-align: left;
    margin-bottom: 10px;
  }
  /* ------------------ Datatables --------------------*/
  .table-responsive .dataTables_wrapper {
    padding-top: 10px;
  }
  .dataTable {
    margin-bottom: 15px;
  }
  .dataTables_wrapper .dataTables_length {
    float: none;
    margin-bottom: 5px;
    text-align: center;
  }
  .dataTables_wrapper .dataTables_filter {
    float: none;
    text-align: center;
    margin-top: 10px;
  }
  .dataTables_wrapper .dataTables_info {
    float: none;
    text-align: center;
    margin-bottom: 0;
  }
  .dataTables_wrapper .dataTables_paginate {
    float: none;
    text-align: center;
    margin-top: 10px;
  }
  .dataTables_wrapper .dataTables_paginate .pagination {
    float: none;
  }
  /* ------------------ Pagination--------------------*/
  .pagination {
    margin-bottom: 0;
  }
  .pagination > li > a {
    margin-bottom: 10px;
  }
  /* ------------------ Login page --------------------*/
  body.login-page #login {
    margin-top: 100px;
  }
}
/* -----------------------------------------
   Most phones
----------------------------------------- */
@media all and (max-width: 767px) {
  /* ------------------ Header --------------------*/
  #header .navbar .navbar-header {
    float: left;
  }
  #header .navbar .navbar-header .navbar-toggle {
    margin-left: 15px;
  }
  #header .navbar #top-nav .navbar-nav {
    margin: 0;
  }
  #header .navbar #top-nav .navbar-nav li {
    display: inline-block;
  }
  #header .navbar #top-nav .navbar-nav > li > a {
    float: left;
  }
  #header .navbar #top-nav .navbar-nav .open .dropdown-menu {
    margin-top: -3px;
    max-height: 300px;
    overflow: auto;
    position: absolute;
    float: left;
    background-color: #ffffff;
    border: 3px solid #1bbc9b;
  }
  #header .navbar #top-nav .navbar-nav .open .dropdown-menu li {
    width: 100%;
    padding: 1px 5px;
  }
  #header .navbar #top-nav .navbar-nav .open .dropdown-menu li .dropdown-menu-header {
    padding-bottom: 0 !important;
  }
  #header .navbar #top-nav .navbar-nav .open .dropdown-menu li .view-all {
    margin-top: -5px;
  }
  #header .navbar #top-nav .navbar-nav .open .dropdown-menu li:first-child,
  #header .navbar #top-nav .navbar-nav .open .dropdown-menu li:last-child {
    padding: 5px;
  }
  /* ------------------  Sidebar  --------------------*/
  #sidebar .sidebar-inner .toggle-sidebar {
    display: none;
  }
  /* ------------------ Center modal --------------------*/
  .modal-dialog-center {
    width: 100%;
  }
  /* ------------------ Full calendar --------------------*/
  .fc-header-left,
  .fc-header-center,
  .fc-header-right {
    float: left;
    text-align: center;
    width: 100%;
    padding: 0;
  }
  .fc-header-left {
    padding-top: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #95a5a6;
  }
  .fc-header-center {
    padding: 5px 0;
  }
  .fc-header-right {
    padding-bottom: 10px;
    padding-top: 10px;
    border-top: 1px solid #95a5a6;
  }
  /* ------------------ Form grid --------------------*/
  .form-group .row .form-control,
  .form-group .row .input-group,
  .form-group .row .ui-spinner {
    margin-bottom: 10px;
  }
  .form-group .row .input-group .form-control,
  .form-group .row .ui-spinner .form-control {
    margin-bottom: 0;
  }
  .form-horizontal .control-label,
  .form-vertical .control-label {
    text-align: left;
    margin-bottom: 10px;
  }
  /* ------------------ Dual list --------------------*/
  .bootstrap-duallistbox-container .box2 {
    margin-top: 10px;
  }
  /* ------------------ Justified nav tabs --------------------*/
  .nav-tabs.nav-justified li a {
    border-right-width: 1px;
  }
  .nav-tabs.nav-justified li.active a {
    border-right-width: 1px;
  }
  .nav-tabs.nav-justified li:last-child a {
    margin-bottom: 0;
  }
  /* ------------------ Offline page --------------------*/
  body.error-page h1.offline-page {
    font-size: 7em;
  }
  /* ------------------ Email app --------------------*/
  .email-list {
    padding-left: 0;
    padding-right: 0;
  }
  /* ------------------ Timeline --------------------*/
  .timeline-twoside li.right-side .date-time {
    padding-right: 55%;
  }
}
/* -----------------------------------------
   Small devices
----------------------------------------- */
@media all and (max-width: 640px) {
  /* ------------------ Wizard styles --------------------*/
  .form-wizard .wizard-steps .wstep {
    width: 100%;
    margin-right: 0;
    margin-bottom: 5px;
    padding-top: 5px;
    border-bottom: 1px solid #95a5a6;
  }
  .form-wizard .wizard-steps .wstep .donut {
    margin-left: auto;
    margin-right: auto;
  }
  .form-wizard .wizard-steps .wstep .txt {
    width: 100%;
    display: inline-block;
    margin-bottom: 5px;
  }
  .form-wizard .wizard-steps .wstep:after {
    display: none;
  }
  .form-wizard.wizard-vertical .wizard-steps .wstep {
    width: 100%;
    margin-right: 0;
    margin-bottom: 5px;
    padding-top: 5px;
    border-bottom: 1px solid #95a5a6;
  }
  .form-wizard.wizard-vertical .wizard-steps .wstep .donut {
    margin-left: auto;
    margin-right: auto;
    float: none;
  }
  .form-wizard.wizard-vertical .wizard-steps .wstep .txt {
    width: 100%;
    display: inline-block;
    margin-bottom: 5px;
  }
  .form-wizard.wizard-vertical .wizard-steps .wstep:after {
    display: none;
  }
  .form-wizard.wizard-vertical .wizard-steps.show {
    width: 100%;
    margin-right: 0;
    float: none;
    border-right: none;
  }
  .form-wizard.wizard-vertical .wrap {
    padding-left: 0;
  }
  .form-wizard.wizard-vertical .wizard-actions {
    padding-left: 0;
  }
  /* ------------------ Email app --------------------*/
  .email-toolbar div[role=toolbar] {
    width: 100%;
    margin-bottom: 10px;
  }
  .email-pager {
    width: 100%;
    padding-left: 0;
    margin-bottom: 10px;
  }
  /* ------------------ Gallery  --------------------*/
  button.filter,
  span.sort {
    margin-bottom: 10px;
  }
  .gallery-toolbar {
    text-align: center;
  }
}
/* -----------------------------------------
   Small devices
----------------------------------------- */
@media all and (max-width: 500px) {
  /*Header*/
  #header .navbar {
    padding-right: 0;
  }
  #header .navbar #top-nav {
    width: 100%;
    float: none;
    text-align: center;
  }
  #header .navbar #top-nav .navbar-nav {
    float: none !important;
  }
  #header .navbar #top-nav .navbar-nav li > a {
    padding: 0 15px;
  }
  #header .navbar #top-nav .navbar-nav .avatar-name {
    display: none;
  }
  /*Breadcrumb*/
  #content .content-wrapper #page-heading #crumb {
    display: none;
  }
  /* ------------------ Error pages --------------------*/
  body.error-page h1.error-number {
    font-size: 12em;
  }
  body.error-page .btn-group a {
    width: 100%;
    border-radius: 2px;
  }
  /* ------------------ Offline page --------------------*/
  body.error-page h1.offline-page {
    font-size: 5em;
  }
  /* ------------------ Email app --------------------*/
  #email-content {
    padding-left: 0;
    padding-right: 0;
  }
  .email-select,
  .email-star {
    width: 30px !important;
  }
  /* ------------------ Login page --------------------*/
  body.login-page #login {
    width: 400px;
  }
}
/* -----------------------------------------
   Small devices
----------------------------------------- */
@media all and (max-width: 420px) {
  /* Header */
  #header .navbar #top-nav .navbar-nav li a {
    padding: 0 10px;
  }
  /* ------------------ Filestyle --------------------*/
  .bootstrap-filestyle label {
    margin-top: 10px;
  }
  /* ------------------ Login page --------------------*/
  body.login-page #login {
    width: 360px;
  }
}
/* -----------------------------------------
   Crapy phones
----------------------------------------- */
@media all and (max-width: 320px) {
  /* ------------------ Login page --------------------*/
  body.login-page #login {
    width: 300px;
  }
}
/* -----------------------------------------
   Print styles
----------------------------------------- */
@media print {
  .row.printable {
    display: block !important;
  }
  body {
    background: #fff;
    margin: 0;
    padding: 0;
  }
  #content,
  .row {
    margin: 0 !important;
    padding: 0 !important;
  }
  .panel {
    box-shadow: none;
  }
  .panel .panel-heading {
    background: none;
    border: none;
    box-shadow: none;
  }
  .panel .content {
    padding-left: 0;
    padding-right: 0;
    border: none;
  }
  #header,
  #right-sidebar,
  #sidebar,
  .heading {
    display: none;
  }
}


text:
          <button type="button" class="btn-profile-pic navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar2" aria-expanded="false" aria-controls="navbar" style="background:url('http://i.huffpost.com/gen/1103941/images/o-INDIAN-WOMAN-facebook.jpg')">
          </button>

          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            Toggle navigation

          </button>

  <button class="profile-pic-visibility-2 btn-profile-pic btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"
    style="background:url('http://i.huffpost.com/gen/1103941/images/o-INDIAN-WOMAN-facebook.jpg')">
  </button>

Perfil

Cerrar sesión

¿Quiénes somos?

                      Para Jóvenes

Talento Global

Emprendedor Global

Voluntario Global

                      Alianzas

Empresas

Organizaciones

Familia Global

                      Proyectos

YouthSpeak

YouthSpeak Forum

Tu Historia

Blog

Perfil

Cerrar sesión

redpajama_set_name: RedPajamaGithub


text:
<?php

/**
 * Adminhtml Google Base Items Grids Container
 *
 * @category   Mage
 * @package    Mage_GoogleBase
 * @author     Magento Core Team <core@magentocommerce.com>
 */
class Mage_GoogleBase_Block_Adminhtml_Items extends Mage_Adminhtml_Block_Widget_Grid_Container
{

    public function __construct()
    {
        parent::__construct();
        $this->setTemplate('googlebase/items.phtml');
    }

    protected function _prepareLayout()
    {
        $this->setChild('item', $this->getLayout()->createBlock('googlebase/adminhtml_items_item'));
        $this->setChild('product', $this->getLayout()->createBlock('googlebase/adminhtml_items_product'));
        $this->setChild('store_switcher', $this->getLayout()->createBlock('googlebase/adminhtml_store_switcher'));
    }

    public function getAddButtonHtml()
    {
        $addButtonData = array(
            'id'    => 'products_grid_button',
            'label' => $this->__('View Available Products'),
        );
        return $this->getLayout()
            ->createBlock('adminhtml/widget_button')
            ->setData($addButtonData)
            ->toHtml();
    }

    public function getStoreSwitcherHtml()
    {
        return $this->getChildHtml('store_switcher');
    }

    public function getCaptchaHtml()
    {
        return $this->getLayout()->createBlock('googlebase/adminhtml_captcha')
            ->setGbaseCaptchaToken($this->getGbaseCaptchaToken())
            ->setGbaseCaptchaUrl($this->getGbaseCaptchaUrl())
            ->toHtml();
    }

    public function getStore()
    {
        return $this->_getData('store');
    }
}


text:
/**
 * Default Wallpaper stuff
 */
body.WallpaperColor {
  background-image : none;
}
body.WallpaperDefault {
  background-repeat : repeat;
}
body.WallpaperNormal {
  background-repeat : no-repeat;
}
body.WallpaperCenter {
  background-repeat : no-repeat;
  background-position : center center;
}
body.WallpaperFill {
  background-repeat : no-repeat;
  background-size : cover;
  background-position : center center fixed;
}
body.WallpaperStrech {
  background-repeat : no-repeat;
  background-size : 100% auto;
}

/**
 * Desktop Notification
 */
#Notifications {
  position : absolute;
  top : 0px;
  right : 0px;
  z-index : 10000000;
  width : 400px;
}

#Notifications .Notification {
  position : relative;
  min-height : 10px;
  padding : 10px;
  margin : 10px;
  overflow : hidden;
  white-space : nowrap;
}
#Notifications .Notification.HasIcon {
  min-height : 32px;
}
#Notifications .Notification.HasIcon img {
  position : absolute;
}
#Notifications .Notification.HasIcon .Title,
#Notifications .Notification.HasIcon .Message {
  margin-left : 32px;
  padding-left : 5px;
  white-space: -moz-pre-wrap;
  white-space:   -o-pre-wrap;
  white-space:     -pre-wrap;
  white-space:      pre-wrap;
  word-wrap: break-word;
}

/**
 * WindowManager Panels
 */
.WMPanel {
  position : absolute;
  top : 0px;
  left : 0px;
  right : 0px;
  height : 26px;
  overflow : visible;
  z-index : 2;
  padding : 5px;
  margin : 0;

  -webkit-user-select: none;
   -khtml-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.WMPanel.Ontop {
  z-index : 9999998;
}
.WMPanel.Bottom {
  top : auto;
  bottom : 0px;
}
.WMPanel.Autohide {
  height : 0px;
}
.WMPanel.Autohide > * {
  visibility : hidden;
}
.WMPanel ul {
  margin : 0;
  padding : 0;
  list-style-type : none;
  position : relative;
  z-index : 10;
}
.WMPanel > ul {
  margin : 0;
  padding : 0;
  list-style-type : none;
  height : 26px;

  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;

  -webkit-flex-wrap: nowrap;
     -moz-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
       -o-flex-wrap: nowrap;
          flex-wrap: nowrap;
}
.WMPanel ul > li.Button {
  margin : 0;
  padding : 0;
  padding-left : 5px;
  padding-right : 5px;
  margin-left : 5px;
  height : 26px;
  line-height : 26px;
  max-width : 150px;

  white-space : nowrap;
  display : inline-block;
  overflow: hidden;
  text-overflow: ellipsis;
  -o-text-overflow: ellipsis;
}
.WMPanel ul > li.Button:last-child {
  margin-right : 0;
}
.WMPanel ul > li.Button span {
  padding-left : 5px;
}
.WMPanel ul > li.Button img {
  vertical-align : middle;
}
.WMPanel > ul > li ul {
  display : inline-block;
}

.WMPanel .PanelItem {
  min-width : 26px;
  min-height : 26px;
  display : block;
}
.WMPanel .PanelItemStatic {
}
.WMPanel .PanelItemFill {
  -webkit-flex: 0 0 auto;
     -moz-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
       -o-flex: 0 0 auto;
          flex: 0 0 auto;
}
.WMPanel .PanelItemWide {
  -webkit-flex: 1 1 auto;
     -moz-flex: 1 1 auto;
      -ms-flex: 1 1 auto;
       -o-flex: 1 1 auto;
          flex: 1 1 auto;
}

.WMPanel .PanelItemRight {
  -webkit-align-self : flex-end;
     -moz-align-self : flex-end;
      -ms-align-self : flex-end;
       -o-align-self : flex-end;
          align-self : flex-end;
}

/**
 * Window Switcher
 */
#WindowSwitcher {
  position : absolute;
  top : 50%;
  left : 50%;
  width : 256px;
  z-index : 999999;
  overflow : hidden;
  margin-left : -128px;
}
#WindowSwitcher > div {
  width : 256px;
  height : 32px;
  line-height : 32px;
  overflow : hidden;
}
#WindowSwitcher > div > img {
  vertical-align : middle;
  margin-right : 5px;
  margin-left : 5px;
}
#WindowSwitcher > div > span {
}
#WindowSwitcher > div.Active {
}

.CoreWMDesktopIconView {
  background : transparent !important;
  position : absolute;
  top : 10px;
  left : 10px;
  right : 10px;
  bottom : 10px;
  z-index : 1;
  border : 0 none !important;
  box-shadow : none !important;
}
/*
.CoreWMDesktopIconView span {
  -webkit-filter: invert(100%);
  filter: invert(100%);
}
*/


text:
import React from 'react'
import PropTypes from 'prop-types'
import {View, Picker} from 'react-native'
import AppText from './AppText'
import {TouchableOpacity, StyleSheet} from 'react-native';
import Icon from 'react-native-vector-icons/MaterialIcons';
import {K} from '../utils/constants'

class EditableProgramView extends React.Component {

  static propTypes = {
    programs: PropTypes.object.isRequired,
    defaultProgramId: PropTypes.string.isRequired,
    defaultBoardId: PropTypes.string.isRequired,
    selectCb: PropTypes.func.isRequired,
  }

  constructor(props) {
    super(props);
    this.state = {edit: false}
  }

  changeProgram = () => this.setState({edit: true})

  selectProgram = (programId) => {
    this.setState({edit: false})
    this.props.selectCb(programId)
  }

  buildProgramChoices = () => {
    const {programs} = this.props
    let itemArr = []
    // painful realization that stringy number keys are suboptimal
    const sorted = programs.sortBy((v,k) => parseInt(k))
    sorted.mapKeys(programId => {
      itemArr.push(<Picker.Item
        label={programs.get(programId).get(K.TITLE)}
        value={programId}
        key={programId}/>
      )
    })
    return itemArr
  }

  render() {
    const {programs, defaultProgramId} = this.props
    if (!this.state.edit) {
      const name = programs.get(defaultProgramId).get(K.TITLE)
      return (
        <View style={styles.row}>
          <AppText size='sm'>{name}</AppText>
          <TouchableOpacity
            accessible={true}
            accessibilityLabel={'Change program'}
            onPress={this.changeProgram}
            style={[styles.editButton]}>
            <Icon name='mode-edit' size={24} color='black'/>
          </TouchableOpacity>
        </View>
      )
    } else {
      return (
        <View style={styles.row}>
          <Picker
            style={styles.picker}
            selectedValue={defaultProgramId}
            onValueChange={(itemValue) => this.selectProgram(itemValue)}
            >
            {this.buildProgramChoices()}
          </Picker>
        </View>
      )
    }

  }
}

const styles = StyleSheet.create({
  row: {
    flex: .5,
    flexDirection: 'row',
    justifyContent: 'center',
    alignItems: 'center',
  },
  details: {
    color: '#878787',
    fontSize: 32,
  },
  editButton: {
    padding: 10,
  },
  picker: {
    flex: 1,
    borderWidth: 1,
    borderColor: 'blue',
    backgroundColor: 'white',
    // fontSize: 32,  // doesn't work on Android...
    width: 100,
  }
})

export default EditableProgramView


text:
layout: section
title: "Kritischer Rendering-Pfad"
description: "Den kritischen Rendering-Pfad über die Priorisierung der Anzeige von Inhalten optimieren, die sich auf die primäre Aktion beziehen, die der Nutzer auf einer Seite durchführen möchte"
introduction: "Die Optimierung des kritischen Rendering-Pfads ist für die Verbesserung der Leistung unserer Seiten entscheidend: Unser Ziel ist es, die Inhalte zu priorisieren und darzustellen, die sich auf die primäre Aktion beziehen, die der Nutzer auf einer Seite durchführen möchte."
article:
  written_on: 2014-04-01
  updated_on: 2014-04-28
  order: 1
id: critical-rendering-path
collection: performance
authors:
  - ilyagrigorik
udacity:
  id: ud884
  title: Website Performance Optimization
  description: "Interested in taking a deep dive into the Critical Rendering Path? Check out or companion course and learn how the browser converts HTML, CSS, and JavaScript to pixels on the screen, how to use DevTools to measure performance, and how to optimize the Critical Rendering Path of your pages."
  image: images/crp-udacity.png
---
{% wrap content%}

Für die Bereitstellung einer schnellen Weberfahrung muss der Browser eine Menge leisten. Diese Arbeit bleibt uns als Webentwicklern weitgehend verborgen: Wir schreiben das Markup und eine hübsche Seite erscheint auf dem Bildschirm. Aber wie genau verarbeitet der Browser unsere HTML-, CSS- und JavaScript-Elemente zu gerenderten Pixeln auf dem Bildschirm?

Die Leistungsoptimierung setzt das Verstehen der Vorgänge zwischen dem Empfang der HTML-, CSS- und JavaScript-Bytes und deren Verarbeitung in gerenderte Pixel voraus - das ist der **kritische Rendering-Pfad**.

<img src="images/progressive-rendering.png" class="center" alt="Progressives Seitenrendering">

Über die Optimierung des kritischen Rendering-Pfads können wir die benötigte Zeit für das erste Rendering unserer Seiten erheblich verkürzen. Darüber hinaus ist das Verständnis des Rendering-Pfads auch eine Voraussetzung für die Erstellung leistungsfähiger interaktiver Anwendungen. Der Prozess für die Verarbeitung interaktiver Updates ist tatsächlich identisch, er wird nur in einer Dauerschleife und idealerweise mit 60 Frames pro Sekunde durchgeführt! Aber wir wollen hier nicht vorgreifen. Zunächst wollen wir uns einen grundsätzlichen Überblick darüber verschaffen, wie im Browser eine einfache Seite dargestellt wird.

{% include modules/udacity.liquid uid=page.udacity.id title=page.udacity.title image=page.udacity.image description=page.udacity.description %}

{% endwrap%}


text:
import unittest
import random

from mock import call, Mock

from dice import dice, _mkhelp, HELP_TXT
from dice import prettytable
# from dice.tests.mock_znc import Module, CONTINUE

TEST_HELP_TXT = """\
+---------+-----------+------------------------+
| Command | Arguments | Description            |
+---------+-----------+------------------------+
| Add     | <chan>    | Enable dice in <chan>  |
| Del     | <chan>    | Disable dice in <chan> |
| Help    |           | Generate this output   |
| List    |           |                        |
+---------+-----------+------------------------+\
"""

class DiceTest(unittest.TestCase):
    def setUp(self):
        self.dice = dice()
        self.old_random = random.randint
        random.randint = Mock()
        random.randint.return_value = 15

    def tearDown(self):
        random.randint = self.old_random

    def mock_commands(self):
        self.dice.cmd_add = Mock()
        self.dice.cmd_del = Mock()
        self.dice.cmd_list = Mock()
        self.dice.cmd_help = Mock()

    def test_nv_add(self):
        self.dice.nv_add('#foo')
        self.assertEqual(self.dice.nv, {'#foo': '1'})

    def test_nv_del(self):
        self.dice.nv['#foo'] = '1'
        self.dice.nv_del('#foo')
        self.assertEqual(self.dice.nv, {})

    def test_nv_del_not_in(self):
        self.dice.nv['#bar'] = '1'
        self.dice.nv_del('#foo')
        self.assertEqual(self.dice.nv, {'#bar': '1'})

    def test_nv_list(self):
        self.dice.nv['#foo'] = '1'
        l = self.dice.nv_list()
        self.assertEqual(l, list(self.dice.nv.keys()))

    def test_cmd_add_blank_input(self):
        self.dice.cmd_add('')
        self.dice.PutModule.assert_called_once_with('Missing argument')

    def test_cmd_add_channel_exists(self):
        self.dice.nv['#foo'] = '1'
        self.dice.cmd_add('#foo')
        self.dice.PutModule.assert_called_once_with('Channel already enabled')

    def test_cmd_add(self):
        self.dice.cmd_add('#foo')
        self.dice.PutModule.assert_called_once_with('Channel enabled')
        self.assertEqual(self.dice.nv, {'#foo': '1'})

    def test_cmd_del_blank_input(self):
        self.dice.cmd_del('')
        self.dice.PutModule.assert_called_once_with('Missing argument')

    def test_cmd_del_not_existant(self):
        self.dice.cmd_del('#foo')
        self.dice.PutModule.assert_called_once_with('Channel not enabled')

    def test_cmd_del(self):
        self.dice.nv['#foo'] = '1'
        self.dice.nv['#bar'] = '1'
        self.dice.cmd_del('#foo')
        self.dice.PutModule.assert_called_once_with('Channel disabled')
        self.assertEqual(self.dice.nv, {'#bar': '1'})

    def test_cmd_list_empty(self):
        self.dice.cmd_list('')
        self.dice.PutModule.assert_called_once_with('No channels enabled')

    def test_cmf_list(self):
        pt = prettytable.PrettyTable(('Channel',))
        pt.add_row(('#foo',))
        pt.align = 'l'
        lines = pt.get_string(sortby='Channel').splitlines()
        lines = [call(x) for x in lines]
        self.dice.nv['#foo'] = '1'
        self.dice.cmd_list('')
        actual = self.dice.PutModule.call_args_list
        self.assertEqual(actual, lines)

    def test_mkhelp(self):
        val = _mkhelp()
        self.assertEquals(TEST_HELP_TXT, val)

    def test_help_txt(self):
        self.assertEquals(TEST_HELP_TXT, HELP_TXT)

    def test_cmd_help(self):
        lines = TEST_HELP_TXT.splitlines()
        lines = [call(x) for x in lines]
        self.dice.cmd_help('')
        actual = self.dice.PutModule.call_args_list
        self.assertEqual(actual, lines)

    def test_omc_help(self):
        self.mock_commands()
        self.dice.OnModCommand('help')
        self.dice.cmd_help.assert_called_once_with('')

    def test_omc_invalid(self):
        self.mock_commands()
        self.dice.OnModCommand('foo')
        self.dice.PutModule.assert_called_once_with(
            'Unknown command.  Try Help.'
        )

    def test_omc_add(self):
        self.mock_commands()
        self.dice.OnModCommand('add #foo')
        self.dice.cmd_add.assert_called_once_with('#foo')

    def test_onchan_invalid(self):
        chan_mock = Mock()
        chan_mock.GetName.return_value = '#foo'
        nick_mock = Mock()
        nick_mock.GetNick.return_value = 'Tritium'
        message = 'something not starting with !roll'
        self.dice.OnChanMsg(nick_mock, chan_mock, message)
        assert not self.dice.PutIRC.called, "PutIRC shouldn't have been called"

    def test_onchan_noarg(self):
        chan_mock = Mock()
        chan_mock.GetName.return_value = '#foo'
        nick_mock = Mock()
        nick_mock.GetNick.return_value = 'Tritium'
        message = '!roll'
        self.dice.cmd_add('#foo')
        self.dice.OnChanMsg(nick_mock, chan_mock, message)
        expected = 'PRIVMSG #foo :Tritium rolled 15 vs. 20: Success'
        self.dice.PutIRC.assert_called_once_with(expected)

    def test_onchan_with_fourteen(self):
        chan_mock = Mock()
        chan_mock.GetName.return_value = '#foo'
        nick_mock = Mock()
        nick_mock.GetNick.return_value = 'Tritium'
        message = '!roll 14'
        self.dice.cmd_add('#foo')
        self.dice.OnChanMsg(nick_mock, chan_mock, message)
        expected = 'PRIVMSG #foo :Tritium rolled 15 vs. 14: Failure'
        self.dice.PutIRC.assert_called_once_with(expected)

    def test_onpriv_invalid(self):
        nick_mock = Mock()
        nick_mock.GetNick.return_value = 'Tritium'
        message = 'something not starting with !roll'
        self.dice.OnPrivMsg(nick_mock, message)
        assert not self.dice.PutIRC.called, "PutIRC shouldn't have been called"

    def test_onpriv_noarg(self):
        nick_mock = Mock()
        nick_mock.GetNick.return_value = 'Tritium'
        message = '!roll'
        self.dice.OnPrivMsg(nick_mock, message)
        expected = 'PRIVMSG Tritium :Tritium rolled 15 vs. 20: Success'
        self.dice.PutIRC.assert_called_once_with(expected)

    def test_onpriv_with_fourteen(self):
        nick_mock = Mock()
        nick_mock.GetNick.return_value = 'Tritium'
        message = '!roll 14'
        self.dice.OnPrivMsg(nick_mock, message)
        expected = 'PRIVMSG Tritium :Tritium rolled 15 vs. 14: Failure'
        self.dice.PutIRC.assert_called_once_with(expected)

    def test_tn_badstring(self):
        t = '!roll foo'.split()
        expected = 20
        actual = self.dice._tn(t, 1)
        self.assertEqual(expected, actual)

    def test_tn_novalue(self):
        t = '!roll'.split()
        expected = 20
        actual = self.dice._tn(t, 1)
        self.assertEqual(expected, actual)

    def test_tn_goodvalue(self):
        t = '!roll 16'.split()
        expected = 16
        actual = self.dice._tn(t, 1)
        self.assertEqual(expected, actual)


text:
'use strict'

var thru = require('thru')
var trim = require('trim')
var dsf = require('tfk-dsf')
var VerboseLogger = require('./verboseLog')

var lookupDSF = thru(function (itemString, callback) {
  var item = JSON.parse(itemString)
  var verboseLog = new VerboseLogger(item.verboseLog)
  verboseLog.log('lookupDSF: starts')

  if (!item) {
    return callback(new Error('Missing required input: item object'))
  }
  if (!item.personnummer || item.personnummer === '') {
    return callback(new Error('Missing required input: item.personnummer'))
  }
  if (!item.navn || item.navn === '') {
    return callback(new Error('Missing required input: item.navn'))
  }
  var nameList = trim(item.navn).split(' ')
  var fodselsNummer = item.personnummer
  var lastName = nameList.pop()
  var firstName = nameList.join(' ')
  var query = {
    saksref: 'tfk-saksbehandling-skoleskyss-dev',
    foedselsnr: fodselsNummer,
    etternavn: lastName,
    fornavn: firstName
  }
  var options = {
    config: item.dsfConnectionConfig,
    query: query
  }

  dsf(options, function (error, data) {
    verboseLog.log('lookupDSF: lookup finished')
    if (error) {
      item.dsfData = error
      verboseLog.log('lookupDSF: Error - ' + error)
    } else {
      if (!data.RESULT) {
        verboseLog.log('lookupDSF: RESULT missing from data')
        item.dsfData = data
        verboseLog.log(data)
      } else {
        item.dsfData = data.RESULT.HOV
        verboseLog.log('lookupDSF: Everything looks fine')
        var address = {
          street: item.dsfData.ADR || '',
          zip: item.dsfData.POSTN,
          city: item.dsfData.POSTS
        }

        item.registeredAddress = address

        if (item.dsfData.GARD) {
          item.registeredGnrBnrAddress = item.dsfData.KOMNR + '-' + parseInt(item.dsfData.GARD, 10) + '/' + parseInt(item.dsfData.BRUK, 10)
        }
      }
      return callback(null, JSON.stringify(item))
    }
    verboseLog.log('lookupDSF: Finishes with error')
    return callback(null, JSON.stringify(item))
  })
})

module.exports = lookupDSF


text:
package model.commands;

import model.Command;
import model.CommandManager;
import model.Turtle;
import model.VariableManager;

/**
 * @author Aaron Paskin
 * @author Ian Eldridge-Allegra
 */
public class RandomCommand implements Command {

	private static final long serialVersionUID = 1L;
	private Command max;

	public RandomCommand(Command max) {
		this.max = max;
	}

	@Override
	public double execute(Turtle t, CommandManager commands, VariableManager variables) {
		return Math.random()*max.execute(t, commands, variables);
	}
}


text:
extern const char *luab_Overlay_lib;
extern const char *luab_Overlay_metatable;
typedef Scripting_userdata_for(Overlay) Overlay_userdata;
Scripting_caster_for(Overlay, luaL_tooverlay);

int luaopen_dabes_overlay(lua_State *L);

#endif