:root {
  --cc-bg-color: #00123c;
  --cc-input-bg-color: none;
  --cc-font-color: #fafafa;
  --cc-font: "TeX Gyre Adventor";
  --cc-grey-color: #1a2c56;
  --cc-grey2-color: #55595c;
  --cc-grey3-color: #1a2c56;
  --cc-success-color: #28a745;
  --cc-warning-color: #f2a40e;
  --cc-danger-color: #eb091e;
  --cc-blue-color: #00baff;
  --cc-blue2-color: #1c7cd5;
  --cc-primary-color: #1c7cd5;
  --cc-archive-color: #acacac;
  --cc-secondary-color: #ff2ec8;
  --cc-yellow-color: #eaea1f;
  --cc-focus-color: #8400ff;
  --cc-purple-color: #8400ff;
  --cc-pink-color: #ff2ec8;
  --cc-hover-color: #5897fb;
  --margin-gap: 10px;
  --negative-gap: calc(var(--margin-gap) * -1);
  --border-radius: 10px;
  --border-radius-input: 4px;
  --field-padding: 0.375rem 0.75rem;
}


@font-face {
  font-family: "TeX Gyre Adventor";
  src: url("/dist/webfonts/texgyreadventor-regular.otf") format("opentype");
  font-style: normal;
}

@font-face {
  font-family: "TeX Gyre Adventor";
  src: url("/dist/webfonts/texgyreadventor-italic.otf") format("opentype");
  font-style: italic;
}

@font-face {
  font-family: "TeX Gyre Adventor";
  src: url("/dist/webfonts/texgyreadventor-bold.otf") format("opentype");
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: "TeX Gyre Adventor";
  src: url("/dist/webfonts/texgyreadventor-bolditalic.otf") format("opentype");
  font-weight: bold;
  font-style: italic;
}

@font-face {
  font-family: "SF Mono";
  src: url("/dist/webfonts/SF-Mono-Regular.otf") format("opentype");
  font-style: normal;
}

/*!
 * Font Awesome Pro 6.1.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license (Commercial License)
 * Copyright 2022 Fonticons, Inc.
 */
@font-face {
  font-family: "Font Awesome 5 Brands";
  font-display: block;
  font-weight: 400;
  src: url(../webfonts/fa-brands-400.woff2) format("woff2"), url(../webfonts/fa-brands-400.ttf) format("truetype")
}

@font-face {
  font-family: "Font Awesome 5 Pro";
  font-display: block;
  font-weight: 900;
  src: url(../webfonts/fa-solid-900.woff2) format("woff2"), url(../webfonts/fa-solid-900.ttf) format("truetype")
}

@font-face {
  font-family: "Font Awesome 5 Pro";
  font-display: block;
  font-weight: 400;
  src: url(../webfonts/fa-regular-400.woff2) format("woff2"), url(../webfonts/fa-regular-400.ttf) format("truetype")
}

@font-face {
  font-family: "Font Awesome 5 Pro";
  font-display: block;
  font-weight: 300;
  src: url(../webfonts/fa-light-300.woff2) format("woff2"), url(../webfonts/fa-light-300.ttf) format("truetype")
}

@font-face {
  font-family: "Font Awesome 5 Duotone";
  font-display: block;
  font-weight: 900;
  src: url(../webfonts/fa-duotone-900.woff2) format("woff2"), url(../webfonts/fa-duotone-900.ttf) format("truetype")
}

html,
body {
  background-color: var(--cc-bg-color);
  color: var(--cc-font-color);
  font-family: var(--cc-font);
  white-space: pre-wrap;
}

html.error,
html.error body {
  height: 100%;
}

footer .copyright {
  font-size: 0.8em;
}

.form-control,
.form-control:focus {
  background-color: var(--cc-input-bg-color);
  color: var(--cc-font-color);
}

.form-floating>.form-control:focus,
.form-floating>.form-control:not(:placeholder-shown) {
  padding-top: 2rem;
}

/*
	TOP BAR
*/

header.topbar {
  position: fixed;
  width: 100%;
  top: 0;
  background-color: var(--cc-bg-color);
  z-index: 99;
  max-height: 60px;
}

.topbar_wrapper {
  display: flex;
  justify-content: space-between;
  background-color: var(--cc-bg-color);
  padding: 0 15px;
  border-bottom: var(--cc-grey-color) 4px solid;
  flex-wrap: wrap;
  align-items: center;
  height: 60px;
  position: relative;
}

.topbar .title {
  text-transform: uppercase;
  font-size: 20px;
  font-weight: bold;
  text-align: center;
}

.topbar .branding {
  display: flex;
}

.topbar .branding img {
  max-width: 100%;
  max-height: 30px;
}

/*
	PAGE
*/

.page {
  position: relative;
  margin-top: 60px;
}

nav.sidebar {
  background-color: var(--cc-grey-color);
  padding: 25px 15px;
  position: fixed;
  top: 60px;
  bottom: 0;
  left: 0;
  z-index: 100;
  box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.1);
  overflow-y: auto;
}

nav a.sidebar-item {
  text-decoration: none;
  display: flex;
  color: #fff;
  font-size: 16px;
  padding: 10px 0;
}

nav a.sidebar-item .no-icon,
nav a.sidebar-item i {
  width: 25px;
  font-size: 25px;
  height: 25px;
}

nav a.sidebar-item i {
  width: 25px;
  font-size: 25px;
  height: 25px;
  text-align: center;
}

nav a.sidebar-item span {
  margin: auto 0;
  display: none;
  margin-left: 20px;
}

nav.sidebar:hover {
  min-width: 200px;
}

nav.sidebar:hover a.sidebar-item span {
  display: block;
}

.sidebar_main {
  margin-bottom: 5px;
}

.sidebar_secondary {
  margin-top: 5px;
  padding-top: 5px;
  border-top: 1px solid #fff;
}

/*
  Menu groups
*/

.menu_group:not(.show_childs) .menu_childs {
  display: none;
}

/*
  Tables
*/

table.datatable {
  width: 100% !important;
  border-collapse: collapse !important;
}

table thead {
  color: var(--cc-blue-color);
}

table tbody tr {
  border-bottom: 1px solid var(--cc-grey-color);
}

table tr td {
  padding: 20px 10px;
}

table thead td {
  padding-top: 0;
  padding-bottom: 0;
}

.top-row {
  margin-bottom: 20px;
}

.top-row .search {
  flex: 1 1 0;
}

.datatable_search {
  width: 100%;
  border-color: var(--cc-blue-color);
}

.datatable_search::placeholder {
  color: #fff;
}

span.status {
  background-color: var(--cc-primary-color);
  border-radius: 20px;
  padding: 5px 7.5px;
  text-align: center;
  font-size: 0.75rem;
}

span.status {
  min-width: 100px;
  display: inline-block;
}

span.select2-selection span.status {
  line-height: 1rem;
}

span.status.status-concept,
span.status.status-new {
  background-color: var(--cc-warning-color);
}

span.status.status_confirmed,
span.status.status_live {
  background-color: var(--cc-success-color);
}

span.status.status_cancelled,
span.status.status_canceled {
  background-color: var(--cc-danger-color);
}

span.status.status_returned,
span.status.status_archive {
  background-color: var(--cc-archive-color);
}

.datatable tbody tr:hover {
  background-color: #4a5d86;
}

table.dataTable>thead>tr>th:not(.sorting_disabled),
table.dataTable>thead>tr>td:not(.sorting_disabled) {
  padding-right: 40px;
}

table.dataTable>thead .sorting:before,
table.dataTable>thead .sorting:after,
table.dataTable>thead .sorting_asc:before,
table.dataTable>thead .sorting_asc:after,
table.dataTable>thead .sorting_desc:before,
table.dataTable>thead .sorting_desc:after,
table.dataTable>thead .sorting_asc_disabled:before,
table.dataTable>thead .sorting_asc_disabled:after,
table.dataTable>thead .sorting_desc_disabled:before,
table.dataTable>thead .sorting_desc_disabled:after {
  bottom: 0.1em;
}

td.td-1px {
  width: 1px !important;
  text-align: center;
}

td.buttons {
  white-space: nowrap !important;
}

td.buttons a,
td.buttons span {
  text-decoration: none;
  color: #fff;
  margin: 0 5px;
}

div.dataTables_wrapper div.dataTables_paginate ul.pagination {
  justify-content: center;
}

div.dataTables_wrapper div.dataTables_paginate {
  margin-top: 20px;
}

.page-item.disabled .page-link,
.page-item .page-link {
  background: none;
  color: #fff;
  border-color: var(--cc-blue-color);
}

.page-item.previous .page-link,
.page-item.next .page-link {
  background-color: #263862;
  color: var(--cc-blue-color);
}

.page-item.active .page-link {
  background-color: var(--cc-blue-color);
}

table.datatable div.form-type-select {
  margin-bottom: 0 !important;
}

table.datatable div.form-type-select .select2-selection {
  border: none !important;
  background: none !important;
}

table.datatable div.form-type-select .select2-selection__arrow {
  display: none !important;
}

/* Panels */
.panel {
  display: flex;
  flex-direction: column;
}

.panel_header {
  display: flex;
  justify-content: space-between;
  background-color: var(--cc-grey-color);
  padding: 5px 10px;
}

.panel_body {
  padding: 20px 10px;
}

.field_with_label {
  margin-bottom: 5px;
}

.field_with_label label {
  color: var(--cc-blue-color);
}

.field_with_label .span.status {
  padding-top: 3px;
  padding-bottom: 3px;
}

.field_with_label a {
  margin-left: -5px;
}

/* Kanban */

#connect_sensors .panel_body {
  display: flex;
  overflow: auto;
}

.kanban_col {
  background-color: var(--cc-grey-color);
}

.kanban_col,
.new_zone_wrapper {
  min-width: 300px;
  max-width: 300px;
  margin-right: var(--margin-gap);
  border-radius: var(--border-radius);
}

.kanban_header {
  padding: 10px;
  border-radius: var(--border-radius);
  background-color: var(--cc-blue-color);
}

.sensorgroup_header_right i,
.kanban_header i {
  margin-right: 10px;
}

.kanban_body {
  padding: var(--margin-gap);
}

.info_row label {
  color: var(--cc-blue-color);
  margin-right: 10px;
}

.info_row {
  display: flex;
}

.sensorgroup {
  background-color: var(--cc-bg-color);
  padding: 10px;
  margin-bottom: 10px;
  border-radius: var(--border-radius);
  border: 1px solid #707070;
}

.sensorgroup_sensors .title,
.sensorgroup_header_left {
  color: var(--cc-blue-color);
}

.sensorgroup .sensor_row i {
  color: var(--cc-blue-color);
}

.sensorgroup .sensor_row.sensor_reversed i {
  color: var(--cc-secondary-color);
}

/*
  Modals
*/

.modal-content {
  background-color: var(--cc-bg-color);
  border-color: var(--cc-grey2-color);
}

.modal-header {
  background-color: var(--cc-primary-color);
  border: none;
}

.modal.new-item .modal-header {
  background-color: var(--cc-success-color);
}

.modal-footer {
  border: none;
  justify-content: space-around;
}

.modal .close-button {
  color: #fff;
  background: none;
}

.modal span.color-block {
  content: "";
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: block;
  background-color: white;
  margin-left: 5px;
}

.modal-header_left,
.modal-header_right {
  display: flex;
}

#zone-editor .modal-header_left i {
  margin-right: 5px;
}

#zone-editor .modal-header_left .zone_icon {
  margin: auto;
}

#filter .modal-header {
  background-color: var(--cc-focus-color);
}

/*
  FORMS
*/

.form-control {
  border-color: var(--cc-blue-color);
}

.form-group.edit-group {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  width: 100%;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.form-group.vertical-group {
  display: inline-flex;
  flex-direction: column;
}

.edit-group .form-control {
  position: relative;
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
}

.edit-group .row {
  width: 100%;
  margin-right: calc(var(--bs-gutter-x) * -0.5) !important;
  margin-left: calc(var(--bs-gutter-x) * -0.5) !important;
}

.input-group-text {
  background: none;
  justify-content: flex-end;
  color: var(--cc-blue-color);
  border: none;
}

.form-group.form-type-select {
  flex-wrap: nowrap !important;
}

.edit-group .form-check-input {
  height: 1.5em;
  width: 2.8em;
  border: none;
}

.form-type-switch .input-group-text {
  justify-content: flex-start;
  color: white;
}

.form-type-switch label {
  display: flex;
}

.form-type-switch label i {
  margin: auto 10px auto 0;
}

.form-type-switch .form-switch {
  display: flex;
  justify-content: flex-end;
}

.form-switch .form-check-input {
  cursor: pointer;
  background-color: #98999b;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='4' fill='rgba%28255, 255, 255, 1%29'/%3e%3c/svg%3e");
}

.form-switch .form-check-input:checked {
  background-color: var(--cc-primary-color);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='4' fill='rgba%28255, 255, 255, 1%29'/%3e%3c/svg%3e");
}

.form-type-datetimepicker .input-group-text {
  align-items: start;
}

.form-type-textarea .input-group-text {
  justify-content: flex-start;
}

.form-type-textarea textarea {
  min-height: 150px;
}

.weekday-time .weekday {
  color: var(--cc-blue-color);
  text-align: right;
}

.weekday-time .time {
  display: flex;
}

.weekday-time .time input {
  width: 100%;
  border: none;
  background-color: var(--cc-grey-color);
  color: white;
  text-align: center;
  padding: 5px;
  border-radius: 0.25rem;
  margin: 0 10px;
  letter-spacing: 0.2em;
}

.weekday-time.disabled .time input {
  color: var(--cc-grey2-color);
}

/*
 X UNIT GROUP
*/

.x-unit-group.row {
  margin: 0;
}

.x-unit-group input {
  background-color: var(--cc-bg-color);
  border: 1px solid var(--cc-blue-color);
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  color: #fff;
}

/*
  BAROMETER SETTINGS
*/

.barometer-settings {
  margin-top: 10px;
}

.barometer-settings_header,
.pedestrian_density-settings_header,
.color-settings_header {
  color: var(--cc-blue-color);
  margin-bottom: 10px;
}

.barometer-settings .x-unit-group {
  margin-left: -1px;
}

.barometer-settings .x-unit-group input {
  max-width: 80px;
}

.barometer-settings label {
  display: flex;
  align-items: center;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  justify-content: flex-end;
  white-space: nowrap;
}

.barometer-settings label,
.barometer-settings_header span:first-child,
.pedestrian_density-settings_header span:first-child,
.color-settings_header span:first-child {
  padding: 0 0.75rem;
}

span.barometer-color.color-block {
  margin-left: 5px;
}

span.barometer-color.capacity_red,
span.barometer-color.pedestrian_density_red,
span.barometer-color.color_red {
  background-color: var(--cc-danger-color);
}

span.barometer-color.capacity_orange,
span.barometer-color.pedestrian_density_orange,
span.barometer-color.color_orange {
  background-color: var(--cc-warning-color);
}

span.barometer-color.capacity_yellow,
span.barometer-color.pedestrian_density_yellow,
span.barometer-color.color_yellow {
  background-color: var(--cc-yellow-color);
}

/*
	Main page
*/

main {
  margin-left: 55px;
  width: calc(100% - 70px);
  padding: var(--margin-gap);
  padding-right: 0;
}

#page_banner {
  background-color: var(--cc-grey-color);
  margin-left: var(--negative-gap);
  margin-top: var(--negative-gap);
  margin-right: calc(var(--negative-gap) - 5px);
  margin-bottom: 20px;
  padding: var(--margin-gap);
  display: flex;
  justify-content: space-between;
}

.clickable {
  cursor: pointer;
}

#page_banner a {
  color: #fff;
}

.new_zone_wrapper {
  display: flex;
  position: relative;
  height: 400px;
  padding: 10px;
  border: 1px solid var(--cc-blue-color);
  cursor: pointer;
}

.new_zone_holder {
  margin: auto;
  position: relative;
  font-size: 2em;
}

/* 
  Sensors 
*/

.sensors_header {
  color: var(--cc-blue-color);
  margin-bottom: 10px;
}

.sensor-connect-row .icons {
  display: flex;
  align-items: center;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  justify-content: flex-end;
  white-space: nowrap;
  padding: 0 0.75rem;
}

.sensor-connect-row .icons i {
  cursor: pointer;
}

.sensor-connect-row .icons .sensor_status:not(.sensor_reversed) {
  color: var(--cc-blue-color);
}

.sensor-connect-row .sensor_status.sensor_reversed {
  color: var(--cc-secondary-color);
}

.zone_kanban .new_row {
  background-color: var(--cc-bg-color);
  text-align: right;
  padding: 10px;
  border-radius: var(--border-radius);
  border: 1px solid #707070;
  cursor: pointer;
}

button.btn-light {
  color: var(--cc-grey2-color);
}

#project_editor .datetimepicker_wrapper {
  flex: 1 1 auto;
  width: 1% !important;
  min-width: 0;
}

.select2-results li {
  cursor: pointer;
}

#project_editor .delete-button,
#user_editor .delete-button {
  color: var(--cc-danger-color);
  display: block;
  margin-top: auto;
  margin-bottom: auto;
  font-size: 1.5rem;
  cursor: pointer;
}

/*
  Focus mode
*/

#filter-bar {
  background-color: var(--cc-focus-color);
  padding: 5px 10px;
  margin-top: -20px;
  margin-left: -10px;
  margin-right: -15px;
  margin-bottom: 10px;
}

.filter-bar_inner {
  display: flex;
  justify-content: space-between;
}

.filter-bar_left {
  display: flex;
  flex-wrap: wrap;
}

#filter-bar .focus_option {
  background-color: #fff;
  color: #000;
  padding: 5px;
  font-weight: bold;
  border-radius: 5px;
  margin: 5px;
  cursor: pointer;
}

#filter-bar .focus_option i {
  margin-right: 5px;
}

/*
  Alert triggers
*/

.triggers_title {
  background-color: #1a2c56;
  margin: 10px -16px;
  padding: 10px 16px;
}

.triggers input {
  background-color: var(--cc-bg-color);
  border: 1px solid var(--cc-blue-color);
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  color: #fff;
  border-radius: var(--border-radius-input);
}

.triggers input,
.triggers select {
  width: 100%;
}

.triggers table {
  width: 100%;
}

.triggers table td {
  padding: 10px 3px;
}

.triggers table tr {
  border-bottom: none;
}

.triggers table tr:last-child td.buttons i.delete-row {
  display: none;
}

.triggers table .size-1 {
  width: 60px;
}

.triggers table .size-2 {
  width: 100px;
}

#select2-color-results .color-blue i,
.select2 .color-blue i {
  color: var(--cc-blue-color);
}

#select2-color-results .color-pink i,
.select2 .color-pink i {
  color: var(--cc-pink-color);
}

#select2-color-results .color-purple i,
.select2 .color-purple i {
  color: var(--cc-purple-color);
}

#select2-color-results .color-blue2 i,
.select2 .color-blue2 i {
  color: var(--cc-blue2-color);
}

#select2-color-results .color-warning i,
.select2 .color-warning i {
  color: var(--cc-warning-color);
}

#select2-color-results .color-danger i,
.select2 .color-danger i {
  color: var(--cc-danger-color);
}

#select2-color-results .color-success i,
.select2 .color-success i {
  color: var(--cc-success-color);
}

.tribute-container ul {
  background-color: var(--cc-bg-color);
  border: 1px solid var(--cc-blue-color);
}

.tribute-container li.highlight,
.tribute-container li:hover {
  background-color: var(--cc-hover-color);
}

.statuspage table tr td[data-key=status]::before {
  font-family: "Font Awesome 6 Pro";
  margin-right: 5px;
}

.statuspage table tr.online td[data-key=status]::before {
  content: '\f8dd';
  color: var(--cc-success-color)
}

.statuspage table tr.offline td[data-key=status]::before {
  content: '\e250';
  color: var(--cc-danger-color)
}

.statuspage table tr.delayed td[data-key=status]::before {
  content: '\f071';
  color: var(--cc-warning-color)
}


/* Dashboard Builder */
.dashboard-builder .builder-row {
  border: 1px solid var(--cc-blue-color);
  background-color: var(--cc-bg-color);
  padding: 10px 20px;
  margin: 10px 0;
  display: flex;
  flex-wrap: wrap;
}

.dashboard-builder .builder-row .cols {
  display: flex;
  position: relative;
  flex-wrap: wrap;
  width: 100%;
}

.dashboard-builder .builder-col .modules {
  min-height: 100%;
}

.dashboard-builder .builder-col {
  border: 1px solid var(--cc-secondary-color);
  background-color: var(--cc-bg-color);
  padding: 10px;
  margin: 10px 0;
}

.dashboard-builder .builder-module {
  border: 1px solid var(--cc-warning-color);
  padding: 10px;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
}

.dashboard-builder .builder-module .slots {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
}

.dashboard-builder .builder-module .title {
  font-weight: bold;
  margin-bottom: 5px;
}

.dashboard-builder .builder-module_slot {
  border: 1px solid black;
  background-color: black;
  padding: 10px;
}

.dashboard-builder .builder-module_slot:not(:first-child) {
  margin-top: 10px;
}

.dashboard-builder .builder-module .right i {
  cursor: pointer;
}

.dashboard-builder .builder-col i.col-resize {
  transform: rotate(45deg);
}

.dashboard-builder .builder-row i,
.dashboard-builder .builder-col>div i,
.dashboard-builder #visible_size,
.dashboard-builder .builder-module i,
.dashboard-builder .builder-module .title .left {
  margin-top: auto;
  margin-bottom: auto;
  padding: 5px;
}

.dashboard-builder .builder-col>div #visible_size {
  width: 20px;
  text-align: center;
}

.dashboard-builder .builder-col.col-lg-2 .col-resize[type=shrink],
.dashboard-builder .builder-col.col-lg-12 .col-resize[type=grow] {
  color: grey;
  cursor: not-allowed;
}


.dashboard-builder .builder-row>div.buttons {
  width: 100%;
}

.dashboard-builder .builder-module>.module_setting {
  font-size: .75em;
  padding: 5px;
  line-height: .75em;
}

.dashboard-builder .builder-module .slots {
  margin-top: 5px;
}

.dashboard-builder .update-settings:hover {
  cursor: pointer
}


.switch-buttons {
  row-gap: 10px;
  column-gap: 10px;
  border-top: 3px solid var(--cc-grey-color);
  border-bottom: 3px solid var(--cc-grey-color);
  padding: 10px 0
}

.switch-pane:not(.active) {
  display: none;
}

.switch-buttons button.active {
  background-color: var(--cc-blue-color);
}

.switch-pane.active.loading {
  text-align: center;
  padding: 50px 20px;
}

#add-layer-bulk-modal .layer {
  cursor: pointer;
  margin-bottom: 10px;
}

#add-layer-bulk-modal .layer i {
  width: 20px;
  text-align: center;
}

#add-layer-bulk-modal .layer.selected {
  color: var(--cc-success-color)
}




div.sensorgroup .mojogates {
  margin-top: 10px;
}

div.sensorgroup .mojogates .title {
  color: var(--cc-blue-color);
}



.text-black {
  color: #000
}

@media screen and (max-width: 575px) {
  .input-group-text {
    justify-content: start;
    padding-left: 0;
  }
}