/** MAIN VARIABLES **/
:root {
	--blue: #2277e4;
	--green: #00c035;
	--red: #b01500;
	--dark-grey: #222;
	--yellow: #eeae50;
	--off-white: #f0efdd;
	--box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.15);
	--heading-font: 'Montserrat', Helvetica, sans-serif;
	--body-font: 'Arimo', Georgia, sans-serif;
	--header-height: 80px;
}

/** HTML ELEMENT STYLES **/

* {
	box-sizing: border-box;
}

html {
	margin: 0;
	padding: 0;
	border: 0;
	margin-top: -10px;
}

body {
	padding: 0;
	margin: 0;
	background-color: #fff;
	font-family: var(--body-font);
	color: var(--dark-grey);
	position: relative;
	font-size: 15px;
}

a {
	position: relative;
	text-decoration: none;
	color: inherit;
}

ul, ol {
	margin: 5px 0 0;
	padding-left: 20px;
}

ul li, ol li {padding: 2px 0;}
ul > ul > li {list-style-type: square;}

code {
	border-radius: 2px;
	background-color: var(--off-white);
	padding: 1px;
	color: var(--red);
	display: inline-block;
	margin: 5px 0;
	font-size: 13px;
}



/** HEADING STYLES **/
h1, h2, h3, h4, h5, h6 {
	padding: 10px 0 15px;
	margin: 0;
	font-family: var(--heading-font);
	text-transform: uppercase;
	font-size: 35px;
	line-height: 25px;
}

h1 {
	padding-bottom: 30px;
}

h2 {
	font-size: 28px;
}

h3 {
	font-family: var(--body-font);
	font-size: 24px;
}

h4 {
	text-transform: none;
	font-size: 20px;
}

h5 {
	text-transform: uppercase;
	font-size: 15px;
	padding: 10px 0;
}

p {
	margin: 10px 0;
}

section section:not(:first-child) {
	margin: 20px 0;
}

/** HEADER STYLES **/
header {
	font-family: var(--heading-font);
	font-weight: 700;
	font-size: 16px;
	color: #fff;
	background-color: var(--green);
	position: fixed;
	height: var(--header-height);
	padding: 0;
	box-shadow: var(--box-shadow);
	z-index: 20;
	width: 100%;
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
}

header img {
	object-fit: cover;
	width: 55px;
	height: 55px;
}

header a.notification-toggle span {
	position: absolute;
	font-size: 10px;
	border-radius: 50%;
	background-color: var(--red);
	padding: 2px 6px;
	right: 15px;
	bottom: 20px;
}

header ul {
	margin: 0;
	padding:0;
	display: grid;
	grid-template-columns: repeat(10, auto);
	justify-content: end;
	list-style-type: none;
	align-items: center;
}

header ul li {
	height: var(--header-height);
	position: relative;
	display: grid;
	align-items: center;
}

header ul li:hover {
	background-color: var(--dark-grey);
}

header ul li a {
	display: inline-block;
	padding: 0 15px;
	text-align: center;
	position: relative;
	height: 100%;
	display: flex;
	align-items: center;
}

header ul li a i.fa {
	font-size: 22px;
	padding: 0 8px;
}

header ul.dropdown-menu {
	background-color: var(--green);
	list-style-type: initial;
	position: absolute;
	display: block;
	right: 0;
	top: var(--header-height);
	display: none;
	width: 100%;
}

header ul.dropdown-menu li a, header ul.dropdown-menu li{
	display: block;
	padding: 15px;
	margin: 0;
	height: auto;
	text-align: left;
}

header ul.dropdown-menu li {
	padding: 0;
}

header ul.dropdown-menu li a i.fa{
	padding-right: 20px;
}

li:hover > ul.dropdown-menu {
	display: block;
}


/** NOTIFICATION SLIDER CONTAINER */
.notification-slider {
	position: fixed;
	z-index: 0;
	width: 100%;
	height: 100vh;
	display: grid;
	justify-content: right;
	background-color: rgba(0,0,0,0.3);
	transition: 0.2s;
}
.notification-slider.active {z-index: 100;}

.notification-slider .notif-container{
	width: 400px;
	-webkit-transform: translateX(400px);
    -ms-transform: translateX(400px);
  	transform: translateX(400px);
	transition: 0.2s;
}

.notification-slider.active .notif-container {
	-webkit-transform: translateX(0px);
    -ms-transform: translateX(0px);
  	transform: translateX(0px);
}

.notification-slider .header-bar{
	background-color: var(--green);
	color: #fff;
	display: grid;
	grid-template-columns: 1fr 20px;
	align-items: center;
	height: var(--header-height);
	padding: 0 22px;
}

.notification-slider .header-bar h2{padding: 0;font-size: 20px;}
.notification-slider .header-bar i.fa{font-size: 20px;}

.notification-slider .notif-list {
	background-color: #fff;
	height: 100%;
}

.notification-slider .notif-list ul{
	list-style-type: none;
	margin: 0;
	padding: 0;
}

.notification-slider .notif-list ul li{border-bottom: 2px solid #ddd;padding: 22px;position: relative;}
.notification-slider .notif-list ul li h4{padding: 4px 0;}

.notification-slider .notif-list ul li span.dot {
	position: absolute;
	right: 20px;
	height: 8px;
	width: 8px;
	background-color: #fff;
	border-radius: 50%;
	top: 50%;
}

.notification-slider .notif-list ul li span.dot.unread {background-color: var(--blue);}

.notification-slider .notif-list a {
	position: absolute;
	bottom: 30px;
	right: 140px;
}
/** MAIN CONTAINER STYLES **/
.main {
	height: calc(100vh - 80px);
}

.main.login .container{
	background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6));
	background-size: cover;
	background-position: center;
}

nav.sidebar {
	background-color: var(--dark-grey);
	width: 85px;
	position: fixed;
	z-index: 10;
	height: calc(100% - var(--header-height));
	margin-top: var(--header-height);
	max-width: 85px;
	overflow-y: auto;
	overflow-x: auto;
}

nav.sidebar ul {
	list-style-type: none;
	display: block;
	padding: 0;
	margin: 0;
	position: relative;
}

nav.sidebar ul li{
	list-style: none;
	text-align: center;
	font-size: 10px;
	color: #fff;
	text-transform: uppercase;
	font-weight: 700;
	font-family: var(--heading-font);
	border-bottom: 2px solid #12121280;

}

nav.sidebar ul li:hover{
	background-color: var(--green);
}


nav.sidebar ul li a {
	display: inline-block;
	padding: 10px 0;
	width: 80px;
}

nav.sidebar ul li a i.fa {
	display: block;
	font-size: 30px;
	padding-bottom: 8px;
}

nav.sidebar::-webkit-scrollbar {
    width: 5px;
    background-color: #555;
}
nav.sidebar::-webkit-scrollbar-thumb {
    background: #ccc; 
}

.content {
	padding-left: 85px;
	padding-top: var(--header-height);
}

/** TABLE STYLES **/
table {
	width: 100%;
	text-align: left;
	border-collapse: collapse;
	margin: 20px 0;
	table-layout: fixed;
}

table thead tr{
	border-bottom: 3px solid #ccc;
}

table tbody tr{
	border-bottom: 1px solid #ddd;
}

table th, table td {
	padding: 22px 0 22px 20px;
}

table.table-striped tbody tr:nth-child(odd), table.table-hover tbody tr:hover {
	background-color: var(--off-white);
}

table.table-bordered tr td, table.table-bordered tr th{
	border: 1px solid #bbb;
}

table.table-condensed th, table.table-condensed td{
	padding: 12px 0 12px 10px;
}

table.inner-table tr td:first-child table {
	margin: 0;
	display: none; 
}

table.inner-table tr td:first-child {
	display: block;
	width:20px;
	font-size: 20px;
	text-align: center;
}


/** PAGE STYLES **/
.container {
	background-color: #fff;
	padding: 30px;
	margin: 0 auto;
	position: relative;
}

/** GRID STYLES **/
.grid-main {
	display: grid;
	grid-template-columns: 100px 1fr;
}

.grid-custom {
	display: grid;
	grid-gap: 15px;
	grid-template-columns: repeat(12, 1fr);
}

.grid-9 {
	display: grid;
	grid-gap: 15px;
	grid-template-columns: 9fr 3fr;
}

.grid-8 {
	display: grid;
	grid-gap: 15px;
	grid-template-columns: 8fr 4fr;
}

.grid-7 {
	display: grid;
	grid-gap: 15px;
	grid-template-columns: 7fr 5fr;
}

.grid-6 {
	display: grid;
	grid-gap: 15px;
	grid-template-columns: repeat(2, 6fr);
}

.grid-5 {
	display: grid;
	grid-gap: 15px;
	grid-template-columns: 5fr 7fr;
}

.grid-4 {
	display: grid;
	grid-gap: 15px;
	grid-template-columns: repeat(3, 4fr);
}

.grid-3 {
	display: grid;
	grid-gap: 15px;
	grid-template-columns: repeat(4, 3fr);
}

.grid-2 {
	display: grid;
	grid-gap: 15px;
	grid-template-columns: repeat(auto-fit, minmax(100px, 2fr));
}

.span1 {grid-column: span 1;}
.span2 {grid-column: span 2;}
.span3 {grid-column: span 3;}
.span4 {grid-column: span 4;}
.span5 {grid-column: span 5;}
.span6 {grid-column: span 6;}
.span7 {grid-column: span 7;}
.span8 {grid-column: span 8;}
.span9 {grid-column: span 9;}
.span10 {grid-column: span 10;}
.span11 {grid-column: span 11;}
.span12 {grid-column: span 12;}

/** BUTTON STYLES **/
.btn {
	text-decoration: none;
	border: 0;
	border-radius: 2px;
	background-color: var(--blue);
	padding: 9px 15px;
	color: #fff;
	-webkit-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.3);
	-moz-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.3);
	box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.3);
	cursor: pointer;
	margin: 5px 0;
	margin-right: 10px;
	position: relative;
	display: inline-block;
	font-size: 14px;
	font-family: var(--body-font);
}

.btn:hover {
	opacity: 0.75;
}

.btn-secondary {
	background-color: var(--green);
}

.btn-default {
	background-color: var(--dark-grey);
}

.btn-danger {
	background-color: var(--red);
}

.btn-info {
	background-color: #00c035;
}

.btn-warning {
	background-color: var(--yellow);
}

.btn-clear {
	background-color: transparent;
	padding: 0;
	margin: 0;
	box-shadow: none;
	color: initial;
}

.btn i.fa {
	padding-right: 8px;
}

.btn-info i.fa {
	padding: 0;
}

/** ACTION BUTTONS **/
.action-buttons {
	position: relative;
	display: inline-flex;
	vertical-align: middle;
	border: 2px solid #ccc;
	border-radius: 4px;
	background-color: #fff;
}

.action-buttons a.action-button {
	width: 30px;
	text-align: center;
	padding: 4px 0;
	font-size: 16px;
}

.action-buttons a.action-button:not(:last-child) {
	border-right: 2px solid #ccc;
}

.action-buttons > a.action-button:first-child:not(:last-child) {
	border-bottom-right-radius: 0;
	border-top-right-radius: 0;
}

.action-buttons > a.action-button:first-child:not(:last-child) {
	border-bottom-right-radius: 0;
	border-top-right-radius: 0;
}

.action-buttons a.action-button {
	position: relative;
	-webkit-box-flex: 0;
	flex: 0 1 auto;
}

.action-buttons a.action-button:hover {
	background-color: #eee;
}

/** FORM STYLES **/
input[type="text"], input[type="date"], input[type="password"], input[type="file"], input[type="month"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], select {
	width: 100%;
	display: block;
	padding: 11px 0;
	border-radius: 3px;
	border: none;
	border: 1px solid #bbb;
	font-family: var(--body-font);
	font-size: 14px;
	position: relative;
	text-indent: 13px;
	box-sizing: border-box;
	box-shadow: var(--box-shadow);
	outline: 0;
}

input:not([type="radio"]):not([type="range"]):focus, select:focus {
	box-shadow: 0px 0px 6px 0px rgba(0,120,255,0.6);
}

.form-input {
	position: relative;
	display: block;
	width: 85%;
}

label ~ input, label ~ select {
	margin-top: 8px;
}

label:not([for]){
	text-transform: uppercase;
	font-family: var(--heading-font);
	font-size: 14px;
	font-weight: bold;
}

label ~ a > i.fas, label ~ i.fas {
	float: right;
	color: #fff;
	background-color: var(--yellow);
	padding: 4px 6px;
	font-size: 13px;
	border-radius: 3px;
}

input[type="radio"], input[type="radio"] + label {
	display: inline-block;
	font-family: var(--body-font);
	text-transform: none;
	font-weight: normal;
	font-size: 16px;
	cursor: pointer;
}

input[type="radio"] ~ label:not(:last-child) {padding-right: 10px;}

span.error {
	background-color: var(--red);
	color: #fff;
	font-size: 12px;
	padding: 4px;
	display: block;
}

.input-group {
	display: flex;
}

.input-group-addon {
	background-color: var(--blue);
	border-radius: 3px;
	color: #fff;
	font-size: 16px;
	text-align: center;
	padding: 12px 6px;
	min-width: 40px;
	white-space: nowrap;
}

.input-group-addon:first-child {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

.input-group-addon:last-child {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.input-group input[type=text] {
	border: 2px solid var(--blue);
	display: inline-block;
	max-width: 400px;
}

.input-group input[type=text]:not(:first-child) {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.input-group input[type=text]:not(:last-child) {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

/** SLIDER CHECKBOX **/
.switch {
  position: relative;
  display: inline-block;
  width: 35px;
  height: 12px;
  margin-top: 10px;
}

input[type="checkbox"] {
	display:none;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #999;
  -webkit-transition: .4s;
  transition: .4s;
  box-shadow: var(--box-shadow);
  border-radius: 34px;
}

.slider:before {
  position: absolute;
  content: "";
  height: 20px;
  width: 20px;
  left: 0px;
  bottom: -4px;
  background-color: white;
  -webkit-transition: .3s;
  transition: .3s;
  box-shadow: 0px 1px 6px 0px rgba(0,0,0,0.4);
  border-radius: 50%;
}

input:checked + .slider {
  background-color: #2277e480;
}

input:checked + .slider:before {
  -webkit-transform: translateX(16px);
  -ms-transform: translateX(16px);
  transform: translateX(16px);
  background-color: var(--blue);
}

/** CHECKMARK CHECKBOX **/
.checkbox {
    display: block;
    position: relative;
    padding-left: 35px;
    cursor: pointer;
    height: 22px;
    width: 22px;
}

.checkbox input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
}

.checkmark {
    position: absolute;
    top: 0;
    left: 0;
    height: 22px;
    width: 22px;
    background-color: #999;
	border-radius: 3px;
	box-shadow: var(--box-shadow);
	-webkit-transition: .3s;
  	transition: .3s;
}

.checkbox input:checked ~ .checkmark {
    background-color: var(--blue);
}

.checkbox .checkmark:after {
    content: "";
    position: absolute;
    display: none;
}

.checkbox input:checked ~ .checkmark:after {
    display: block;
}

.checkbox .checkmark:after {
    left: 8px;
    top: 4px;
    width: 4px;
    height: 10px;
    border: solid white;
    border-width: 0 3px 3px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}

/** RADIO BUTTON STYLES **/ 
.radio {
  margin: 0.5rem;
}

input[type="radio"] {
	position: absolute;
    opacity: 0;
}

input[type="radio"] + .radio-label:before {
	content: '';
    background: #999;
    border-radius: 100%;
    display: inline-block;
    width: 11px;
    height: 11px;
    position: relative;
    top: -2px;
    margin-right: 10px; 
    vertical-align: top;
    cursor: pointer;
    text-align: center;
    -webkit-transition: .3s;
  	transition: .3s;
    border: 4px solid #999;
    box-shadow: var(--box-shadow);
}

input[type="radio"]:checked + .radio-label:before {
    background-color: #fff;
    border-color: var(--blue);
    box-shadow: var(--box-shadow);
}

input[type="radio"]:focus + .radio-label:before {
	outline: none;
}

input[type="radio"]:disabled + .radio-label:before {	
	opacity: 0.5;
}

input[type="radio"] + .radio-label:empty:before {
	margin-right: 0;
}

/** TAB CONTAINER **/
.tab-container {
	max-width: 100%;
}
.tab-container ul{
	list-style-type: none;
	border-bottom: 1px solid #aaa;
	position: relative;
	margin: 0;
	padding: 8px 0;
	text-align: center;
	box-shadow: inset 0px -12px 12px -12px rgba(0,0,0,0.15);
}

.tab-container li{
	display: inline;
	border: none !important;
}

.tab-container a{
	border: 0;
	padding: 8px 28px;
	margin: 0 6px;
	border-top-left-radius: 3px;
	border-top-right-radius: 3px;
	text-decoration: none;
	color: inherit;
	outline: 0;
	font-family: var(--heading-font);
	font-weight: 600;
	text-transform: uppercase;
	z-index: 10;
}

.tab-container li.active a{
	border: 1px solid #aaa;
	border-bottom: 1px solid #fff;
	box-shadow: 0px -4px 15px -4px rgba(0,0,0,0.2);
	background-color: #fff;
	
}

.tab-container .tab-item {
	padding: 0 10px;
	margin: 5px auto;
	max-width: 700px;
}

.ui-state-focus, .ui-state-active, .ui-state-hover {
	border: none;
}

/** RANGE SLIDER **/
.range-slider {
    -webkit-appearance: none;
    width: calc(100% - 60px);
    height: 10px;
    border-radius: 5px;   
    background: #b3b3b3;
    outline: none !important;
}

.range-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 25px;
    height: 25px;
    border-radius: 50%; 
    background: var(--blue);
    cursor: pointer;
    box-shadow: var(--box-shadow);
}

.range-slider::-moz-range-thumb {
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background:  var(--blue);
    cursor: pointer;
}

.range-slider-value {
	display: inline-block;
  	position: relative;
  	width: 40px;
  	color: #fff;
  	line-height: 20px;
  	text-align: center;
  	border-radius: 3px;
  	background: var(--blue);
  	padding: 8px 0;
  	margin-left: 8px;
}

.range-slider-value:after {
	position: absolute;
  	top: 10px;
  	left: -7px;
  	width: 0;
  	height: 0;
  	border-top: 7px solid transparent;
  	border-right: 7px solid var(--blue);
  	border-bottom: 7px solid transparent;
  	content: '';
}

/** LOGIN PAGE STYLES **/
.login-container {
	max-width: 450px;
	margin: 0 auto;
	text-align: center;
	display: grid;
	height: calc(100vh - 60px);
	align-items: center;
}

.login-container a {
	color: #fff;
	display: block;
	margin-top: 10px;
}

/** MISC **/
.color-panel {
	width: 100px;
	height: 100px;
	padding: 15px;
	padding-top: 30px;
	border-radius: 50%;
	text-align: center;
	color: #fff;
	font-weight: 700;
	font-size: 17px;
	display: inline-block;
}

.color-panel:nth-of-type(1) {background-color: var(--blue);}
.color-panel:nth-of-type(2) {background-color: var(--green);}
.color-panel:nth-of-type(3) {background-color: var(--red);}
.color-panel:nth-of-type(4) {background-color: var(--dark-grey);}
.color-panel:nth-of-type(5) {background-color: var(--off-white);color:#222;}
.color-panel:nth-of-type(6) {background-color: var(--yellow);}

.grid-system {
	background-color: #ddd;
	padding: 15px;
}

.grid-system p {
	background-color: #888;
	color: #fff;
	padding: 5px;
	margin: 5px 0;
}

.grid-system > div {
	background-color: #ccc;
	padding: 10px;
}

.grid-system > div:not(:last-child) {
	margin-bottom: 10px;
}

/** HELPER CLASSES **/
.uppercase {text-transform: uppercase !important;}
.align-center {text-align: center !important;}
.align-left {text-align: left !important;}
.align-right {text-align: right !important;}
.hide {display: none;}
.grid-justify-center {justify-items: center;}
.grid-align-center {align-items: center;}
.clearfix {
	content: '';
	clear: both;
	margin: 5px 0;
	display: block;
}
.card-container {
	padding: 20px;
	background-color: #fff;
	margin: 20px 0;
	border-radius: 4px;
	border: 1px solid #ccc;
	box-shadow: var(--box-shadow);
	position: relative;
	border-left: 5px solid var(--blue);
	border-color: var(--blue);
}
.card-container.warning {border-color: var(--yellow);}
.card-container.danger {border-color: var(--red);}

.no-padding {padding: 0 !important;}
.no-margin {margin: 0 !important;}

.bg-green {background-color: var(--green) !important;}
.bg-blue {background-color: var(--blue) !important;}
.bg-red {background-color: var(--red) !important;}


/****************** TABLET LAYOUT ***************************/
@media only screen and (max-width: 850px) {
	:root {
		--header-height: 65px;
	}

	header {
		font-size: 12px;
		height: var(--header-height);
	}

	header ul li {height: var(--header-height);}

	header ul li a {padding: 0 10px;}

	header ul li a i.fa {
		font-size: 20px;
		padding: 0 6px;
	}

	header img {
		width: 45px;
		height: 45px;
	}

	nav.sidebar{width: 65px;}

	nav.sidebar ul li{font-size: 8px;}

	nav.sidebar ul li a {padding: 8px 0; width: auto;}

	nav.sidebar ul li a i.fa {
		display: block;
		font-size: 25px;
		padding-bottom: 8px;
	}

	.content {
		padding-left: 65px;
		padding-top: var(--header-height);
	}

	.container {padding: 15px;}

	.form-input {width: 100%;}

	.grid-7 {grid-template-columns: 1fr;}
	.grid-6 {grid-template-columns: 1fr;}
	.grid-4 {grid-gap: 15px;grid-template-columns: 1fr;}
	.grid-3 {grid-template-columns: repeat(2, 1fr);}
	.grid-2 {grid-template-columns: repeat(2, 1fr);}

	.uppercase-lg {text-transform: uppercase !important;}
	.align-center-lg {text-align: center !important;}
	.align-left-lg {text-align: left !important;}
	.align-right-lg {text-align: right !important;}
	.hide-lg {display: none;}
	.grid-center-lg {justify-items: center;}
}

@media only screen and (max-width: 660px) {
	.span1, .span2 ,.span3,.span4,.span5 ,.span6 ,.span7,.span8,.span9,.span10,.span11,.span12 {
		grid-column: span 12;
	}

	.uppercase-md {text-transform: uppercase !important;}
	.align-center-md {text-align: center !important;}
	.align-left-md {text-align: left !important;}
	.align-right-md {text-align: right !important;}
	.hide-md {display: none;}
	.grid-center-md {justify-items: center;}
	.block-content {margin: 6px 0;}
}

/****************** MOBILE LAYOUT ***************************/
@media only screen and (max-width: 450px) {

	.grid-3 {grid-template-columns: 1fr;}

	.uppercase-sm {text-transform: uppercase !important;}
	.align-center-sm {text-align: center !important;}
	.align-left-sm {text-align: left !important;}
	.align-right-sm {text-align: right !important;}
	.hide-sm {display: none;}
	.grid-center-sm {justify-items: center;}
}