:root {
	--success: #5cb85c;
	--danger: #d9534f;
	--primary: #0D6EFD;
	--info: #5bc0de;
	--warning: #ffc107;
	
	--success-pastel: #d6f0e0;
	--danger-pastel: #ff9e99; 
	--primary-pastel: #dfe7f6;
	--info-pastel: #5bc0de;
	--warning-pastel: #ff964f;
}

* {
	box-sizing: border-box;
}

html, body {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: 0px;
	font-family: 'Roboto Condensed', sans-serif;
	font-size: 16px;
	background-color: white;
	background-repeat: no-repeat;
	background-position: right bottom;
	background-attachment: fixed;
	background-size: 600px;
}

a:hover {
	text-decoration: none;
}

hr {
	border-color: gray;
}

#spinner {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255,255,255,0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  color: var(--primary);
}

.crudbutton {
	min-width: 125px;
	margin-left: 5px;
}
.narrow-button {
	margin-left: 5px;
}

.config-button {
	padding: 3px 2px 0px 2px;
	cursor: pointer;
	color: lightgray;
	border: none;
	background-color: transparent;
}
.config-button svg {
	transition: 0.4s;
}
.config-button:hover svg {
	color: #eee;
	transform: scale(1.2);
}
	
.button-layout-main {
	position: absolute;
	top: 0px;
	width: 116px;
	height: 150px;
	background-color: #333;
}
.button-layout-buttons {
	position: absolute;
	top: 150px;
	bottom: 0px;
	width: 116px;
	background-color: #333;
	overflow-y: auto;
}
.button-layout-content {
	position: absolute;
	top: 0px;
	bottom: 0px;
	left: 116px;
	right: 0px;
	overflow-y: auto;
}
.mobile-view {
	display: none;
}
.normal-view {
	display: inline;
}

.page-header {
	width: 100%;
	height: 50px;
	margin: 0px;
	border: none;
	padding: 10px 15px;
	color: white;
	background-color: var(--primary);
	font-size: 24px;
	white-space: nowrap; 
	text-overflow: ellipsis;
}
.page-header.update {
	color: white;
	background-color: var(--warning);
}
.page-header.create {
	color: white;
	background-color: var(--success);
}
.page-header-help-icon {
	float: right;
	transition: transform 0.4s;
}
.page-header-help-icon:hover {
	cursor: pointer;
	transform: scale(1.2);
	-ms-transform: scale(1.2);
	-webkit-transform: scale(1.2);
}

.container.update input,
.container.update select,
.container.update textarea,
.container-fluid.update input,
.container-fluid.update select,
.container-fluid.update textarea {
	background-color: #f6f6b8;
}

.container.create input,
.container.create select,
.container.create textarea,
.container-fluid.create input,
.container-fluid.create select,
.container-fluid.create textarea {
	background-color: #cff7d5;
}

input:read-only,
select:disabled,
textarea:read-only {
	background-color: lightgray !important;
}

.button-bar {
	display: flex;
	align-items: center;
	width: 100%;
	margin: 8px 0px;
	padding: 0px 4px 0px 10px;
}
.button-bar .filler{
    flex-grow: 1;
}
.button-bar button {
	margin: 0px 3px;
}
.button-bar button.glued-left {
	margin-right: 0px;
}
.button-bar button.glued-right {
	margin-left	: 0px;
}
.button-bar select {
	display: inline-block;
	width: auto;
}
.button-bar label {
	margin: 0px 10px 0px 50px;
}

table.sort-table {
	width: 100%;
	border-collapse: collapse;
}
table.sort-table tr {
	display: grid;
	grid-gap: 0px;
	width: 100%;
}
table.sort-table thead {
	position: sticky;
	top: 56px;
}
table.sort-table thead tr th {
	padding: 8px 12px;
	font-weight: bold;
	color: white;
	background-color: #4672F4;
}
table.sort-table thead tr th.sort-column:hover {
	cursor: pointer;
	background-color: darkblue;
}
table.sort-table tbody tr td {
	padding: 8px 12px;
	background-color: #F8F9FA;
	border-bottom: 1px solid #DFE2E6;
}
table.sort-table tfoot tr td {
	padding: 8px 12px;
	font-weight: bold;
	background-color: #D3D3D3;
}

table.grid-table {
	width: 100%;
	border-collapse: collapse;
}
table.grid-table tr {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(100%, 1fr));
	align-items: center;
	border-bottom: 1px solid #ddd;
	background: #fbfbfb;
}
table.grid-table thead.sticky-heading {
	position: sticky;
	top: 56px;
}
table.grid-table thead tr:first-child {
	background-color: #c7d5e0;
}
table.grid-table thead tr:first-child th:hover {
	background: #dbe4eb;
	cursor: pointer;
}
table.grid-table thead tr:last-child {
	background-color: #dbe4eb;
}
table.grid-table tbody tr:hover {
	background: #eee;
	cursor: pointer;
}
table.grid-table tbody tr.sequence:hover {
	cursor: move;
}
table.grid-table tbody tr td {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
table.grid-table thead tr th,
table.grid-table tbody tr td,
table.grid-table tfoot tr td {
	padding: 14px 12px;
	text-align: left;
}
table.grid-table thead tr th.left-border,
table.grid-table tbody tr td.left-border {
	border-left: 1px solid #bbb;
}
table.grid-table tbody tr.inactive td {
		color: lightgray;
}
table.grid-table tfoot tr {
	background-color: #c7d5e0;
}

.selector-grid {
	display: grid;
	grid-template-columns: 1fr 5fr;
	grid-column-gap: 15px;
}
.selector-grid .selector-grid-select {
	padding: 20px 0px 0px 10px;
}
.selector-grid .selector-grid-table {
}

.no-records {
	width: 100%;
	padding: 14px 12px;
	background-color: #fbb;
	text-align: center;
}

select[required=required], input[required=required], textarea[required=required] {
	border-color: #ff8888;
}

button {
	display: inline-block;
	box-shadow: 5px 5px 10px gray;
}

.table-hover tr {
	cursor: pointer;
} 

.navbar-right {
	float: right;
}

ul.navbar-nav li ul li { 
	font-size: 16px; 
}
ul.navbar-right li button,
ul.navbar-right li a {
	padding-left: 10px;
	padding-right: 10px;
} 

.alert {
	position: absolute;
	bottom: 0px;
	left: 15px;
	right: 15px;
}
.text-default {
	color: #bbb;
}
.text-warning {
	color: #f0ad4e;
}
.text-lightgray {
	color: #bbb;
}
.bg-lightgray {
	background-color: #d3d3d3;
}
.bg-success-pastel {
	background-color: #bedabc !important;
}
.bg-warning-pastel {
	background-color: #ffbf00 !important;
}
.bg-danger-pastel {
	background-color: #f39a9b !important;
}

label {
	color: var(--primary);
}
fieldset {
	margin-bottom: 24px;
	padding: 10px 15px;
	border-radius: 5px;
	background-color: #DBE4EB;
}
fieldset div p {
	margin-bottom: 10px;
}
legend {
	width: 100%;
	margin: 0px 0px 10px 0px;
	padding: 3px 15px;
	border-left: 3px solid var(--primary);
	color: var(--primary);
	background-color: #eee;
	font-size: 18px;
}

.nav-tabs {
	margin-bottom: 30px;
}

.form-floating label {
	margin-top: -1px;
	font-weight: normal;
	color: var(--primary) !important;
	background-color: transparent !important;
}
.form-floating input,
.form-floating select,
.form-floating textarea {
	color: gray !important;
}
.form-check-label {
	font-weight: normal;
}
.form-check-input:disabled~.form-check-label,
.form-check-input[disabled]~.form-check-label {
	opacity: 1;
}


.d-none {
	display: none;
}
.transparent {
	visibility: hidden;
}
.protected-data {
	color: red !important;
}

.modal-header {
	color: white;
	background-color: var(--success);
	border-radius: 5px 5px 0px 0px;
	cursor: move;
}
.modal-body {
	overflow: auto;
}
.modal-footer {
	display: block;
	text-align: center;
	background-color: lightgray;
	border-radius: 0px 0px 5px 5px;
}
#delete-modal .modal-header {
	background-color: var(--danger);
}

.color-bar {
	width: 60px;
	text-align: center;
	border-radius: 5px;
}

#processing-box {
	position: fixed;
	left: 0px;
	right: 0px;
	top: 0px;
	bottom: 0px;
	display: none;
	grid-template-columns: 1fr;
	align-items: center;
	justify-items: center;
	background-color: rgba(0, 0, 0, 0.7);
}
#processing-spinner {
	width: 180px;
	height: 180px;
	background-color: var(--primary);
	opacity: unset;
	text-align: center;
	color: white;
	padding-top: 30px;
}

input[type="checkbox"]:checked {
	background-color: var(--primary) !important;
}

.rounded-pill {
	padding-left: 10px;
	padding-right: 10px;
}

.badge-primary {
  color: white;
  background-color: var(--primary);
}
.badge-error {
  color: white;
  background-color: #b94a48;
}
.badge-warning {
  color: white;
  background-color: #f89406;
}
.badge-success {
  color: white;
  background-color: #468847;
}
.badge-info {
  color: white;
  background-color: #3a87ad;
}
.badge-inverse {
  color: white;
  background-color: #333333;
}

.btn-xsm {
	padding: 0px 3px;
}

.switch-container {
	display: grid;
	grid-template-columns: 70px 1fr;
	align-items: center;
}
.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 29px;
}
.switch:hover {
	cursor: pointer;
}
.switch[disabled]:hover {
	cursor: not-allowed;
}
.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}
.slider {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
  border-radius: 40px;
}
.slider:before {
  position: absolute;
  content: "";
  height: 21px;
  width: 21px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
  border-radius: 50%;
}
input:checked + .slider {
  background-color: var(--success);
}
input:focus + .slider {
  box-shadow: 0 0 1px var(--success);
}
input:checked + .slider:before {
  -webkit-transform: translateX(30px);
  -ms-transform: translateX(30px);
  transform: translateX(30px);
}

#image-modal {
	width: 100%;
	max-width: 1000px;
	margin: 0px auto;
}
#image-modal > div,
#image-modal > div > div > div > img {
	max-width: 100%;
}

.keep-visible {
	width: auto;
	min-width: 135px;
	display: inline;
}
.nopointer {
	cursor: default;
}
.no-shadow {
	box-shadow: none !important;
}
.no-padding {
	padding: 0px !important;
}
.no-margin {
	margin: 0px !important;
}

.label {
	font-size: 14px;
	font-weight: normal;
	border-radius: 10px;
}
.button100 {
	min-width: 125px;
}
.button-space-right {
	margin-right: 5px
}
.max-w250 {
	max-width: 250px;
}
.text-italic {
	font-style: italic;
}
.size80pct {
	font-size: 80%;
}
.size85pct {
	font-size: 85%;
}
.size90pct {
	font-size: 90%;
}
.size95pct {
	font-size: 95%;
}
.size105pct {
	font-size: 105%;
}
.size110pct {
	font-size: 110%;
}

#loadmore {
	float: left;
	clear: both;
	width: 100%;
	margin: 20px 0px 40px 0px;	
	text-align: center;
}

@media screen and (max-width: 640px) {
	.only-large {
		display: none !important;
	}
	.button-bar {
		padding: 0px;
	}
	.crudbutton {
		min-width: unset;
	}
	.navbar-btn {
		display: inline-block;
		box-shadow: none;
		width: unset;
	}
	.button100 {
		min-width: unset;
	}	
}