.marker {
  background-image: url("/assets/images/mapbox-icon.png");
  background-size: cover;
  width: 35px;
  height: 48px;
  cursor: pointer;
}

.mapboxgl-popup {
  max-width: 200px;
}

.mapboxgl-popup-content {
  text-align: center;
  font-family: "Open Sans", sans-serif;
}

.ng-table th.sortable {
  background-color: transparent !important;
}

.noUi-handle {
  outline: none;
}

.noUi-handle:focus {
  outline: none;
}

html:not([dir="rtl"]) .noUi-horizontal .noUi-handle {
  right: -6px;
  left: auto;
}

.noUi-target {
  height: 1px;
  background: rgba(0, 0, 0, 0.14);
}

.lighter {
  font-weight: lighter;
  margin-right: 8px;
}

.cursor-pointer {
  cursor: pointer;
}

.table-alert b {
  color: #5f6368;
}

.table-alert p {
  margin: 4px 0;
}

.table-alert a {
  font-weight: 400;
}

.table-alert {
  color: #5f6368;
  background-color: rgba(50, 50, 50, 0.1);
  border-radius: 2px;
  width: 100%;
  border-bottom: 1px rgba(100, 121, 143, 0.122) solid;
  margin: 0 0 8px;
  padding: 8px;
  display: flex;
  justify-content: center;
  -webkit-font-smoothing: antialiased;
}

.pmd-switch label::before {
  content: attr(data-description);
  margin-left: 48px;
  float: right;
  font-size: 14px;
  line-height: 1.3;
  color: rgba(0, 0, 0, 0.4);
}

.form-group.pmd-switch {
  margin-top: 36px;
}

.pmd-switch label[data-float="small"]::before {
  font-size: 12px;
}

.extreme {
  min-width: 100px;
  text-align: center;
}

h4.pmd-card-title-text {
  font-size: 16px;
  margin-bottom: 2px;
  font-weight: 500;
}

.dot {
  height: 12px;
  width: 12px;
  border-radius: 50%;
  display: inline-block;
}

.loginBg {
  height: 100vh;
  overflow-y: hidden;
  position: relative;
  background: url("/assets/images/login_bg.jpg") 0;
  background-size: cover;
}

.table-hover {
  cursor: pointer;
}

.nv-controlsWrap {
  display: none;
}

.pull-left {
  float: left;
}

.pull-right {
  float: right;
}

@media (min-width: 768px) {
  .loginBg .title-box {
    top: 28%;
  }
}

@media (min-width: 480px) and (max-width: 768px) {
  .loginBg .title-box {
    top: 11%;
  }
}

@media (min-width: 480px) and (max-height: 768px) {
  .loginBg .title-box {
    top: 11%;
  }
}

@media (min-width: 480px) {
  .login-card {
    width: 720px;
  }
}

@media (max-width: 480px) {
  .loginBg .title-box {
    top: 11%;
  }

  .login-card {
    max-width: 360px important;
  }
}

.logincard-sm .login-card {
  width: 520px;
}

.logincard-sm {
  max-width: 360px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  margin: auto;
}

.loginBg .title-box {
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.24);
  position: relative;
}

.loginBg .title {
  font-size: 48px;
  font-weight: 100;
  color: #ffffff;
  vertical-align: middle;
}

.loginBg .title b {
  font-weight: 500;
  color: #ffffff;
}

.ng-hide.ng-hide-animate {
  display: none !important;
}

.no-animate {
  -webkit-transition: none !important;
  transition: none !important;
}

span.version {
  font-size: 9px;
  cursor: pointer;
}

.list-group-item:hover {
  cursor: pointer !important;
}

.media,
.media-body {
  overflow: visible !important;
  zoom: 1;
}

.pmd-floating-action-btn.btn-default {
  background-color: #fff;
}

.btn-default > i.mdi {
  color: rgba(0, 0, 0, 0.54);
}

i.mdi.white {
  color: white;
}

h1.section-title {
  margin-top: 2rem;
}

/** - DROPDOWN FIX BY TIAGO.RIBEIRO (06/08/2018) **/
.dropdown-menu > li > a {
  padding: 12px 16px;
}

.pmd-dropdown.open > .pmd-dropdown-menu-container > .dropdown-menu {
  transform: scale(1);
}

.dropdown.open > .pmd-dropdown-menu-container {
  display: block;
}

.dropdown.open > .pmd-dropdown-menu-container > .dropdown-menu {
  display: block;
  border: none;
  border-radius: 0;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.175);
}

.dropdown.open > .pmd-dropdown-menu-container > .pmd-dropdown-menu-bg {
  transform: scale(1);
}

.open > .dropdown-menu {
  -webkit-transform: scale(1, 1);
  transform: scale(1, 1);
}

.open > .dropdown-menu {
  border: none;
  border-radius: 0;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.175);

  -webkit-transform-origin: top;
  transform-origin: top;
}

.open > .dropdown-menu > .pmd-card {
  width: 400px;
}

.open > .dropdown-menu > .pmd-card > .pmd-card-body > .row > .col-md-6 {
  vertical-align: middle;
}

.open > .dropdown-menu > .pmd-card > .pmd-card-body > .row > .col-md-6 > img {
  width: 100% !important;
  height: 100% !important;
  border-radius: 50%;
}

.text-center {
  text-align: center !important;
}

.text-right {
  text-align: right !important;
}

.table-footer-info {
  padding-top: 8px;
  float: left;
}

.table-footer-input {
  width: 75px;
  border: 0;
  box-shadow: none;
  padding: 0;
  border-radius: 0;
  float: right;
  height: 24px;
  line-height: 24px;
  margin-top: 4px;
  outline: none;
  border-bottom: 1px solid #ccc;
  overflow: hidden;
  background-color: transparent;
  position: relative;
}

.pmd-card-table {
  margin-bottom: 0;
}

.my-drop-zone {
  position: relative;
  width: 100%;
  height: 250px;
  background-color: #f0f0f0;
  border: dashed;
  border-color: #c8c8c8;
  cursor: pointer;
}

.dropzoneTextStyle {
  text-align: center;
  position: relative;
}

.dropzoneParagraph {
  font-size: 24px;
  line-height: 1.2;
}

.my-drop-zone i {
  font-size: 96px;
  color: #909090 !important;
}

.pmd-table-header hr {
  margin-top: 0;
  margin-bottom: 0;
}

.pmd-table-header .alert {
  color: #4d575d;
  background-color: rgba(241, 243, 244, 0.871);
  border: 1px solid rgba(119, 119, 119, 0.3);
  margin-bottom: 2px;
  text-align: center;
  padding: 8px;
}

.row.equal-cols {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.row.equal-cols:before,
.row.equal-cols:after {
  display: block;
}

.row.equal-cols > [class*="col-"] {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}

.row.equal-cols > [class*="col-"] > * {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}

.pointer {
  cursor: pointer;
}

/*
  classe striped-list tenta aproximar a aparência da classe table-striped,
  para elementos com estrutura regular de unordered-list (elemento <ul>):

  <ul class="striped-list">
    <li>Entrada sem sombreado</li>
    <li>Entrada a sombrear</li>
    <li>Entrada sem sombreado</li>
    <li>Entrada a sombrear</li>
  </ul>

  Nota: São utilizadas media queries para definir alguns aspetos de espaçamento (padding).
        Estas definições foram adaptadas ao caso especifico onde foram usadas, pelo que poderão
        ter de ser adaptadas para permitir um uso mais generalizado.
*/
ul.striped-list {
  list-style-type: none;
  margin: 0;
  padding: 0;
  cursor: default;
}

ul.striped-list > li:nth-of-type(even) a {
  background-color: rgba(0, 0, 0, 0.025);
}

ul.striped-list > li.list-group-item {
  cursor: default !important;
}

ul.striped-list > li {
  cursor: default;
}

ul.striped-list > li:last-child {
  border-bottom: none;
}

@media (min-width: 768px) {
  ul.striped-list > li {
    padding: 16px 16px 24px !important;
  }
}

@media (min-width: 576px) {
  ul.striped-list > li {
    padding: 8px 8px 16px !important;
  }
}

/*
    Usado para retirar padding à esquerda de elementos que o
    tenham, em ecrãs de largura inferior a 576px
*/
@media (max-width: 575px) {
  .no-left-padding {
    padding-left: 0 !important;
  }
}

/*
    Usado no div dos botões de remoção de recursos para os alinhar
    com o restante conteúdo
*/
@media screen and (min-width: 992px) {
  .button-top-spacing {
    padding-top: 1.5% !important;
  }
}

@media screen and (max-width: 991px) {
  .button-top-spacing {
    padding-top: 0 !important;
  }
}

.v-divider {
  height: 100%;
  border-right: 1px solid #eeeeee;
}

.social-login {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
}

.pmd-extra-sidebar .panel-default > .panel-heading {
  font-size: 12px !important;
  background: none;
  color: inherit;
  border: none;
}

.pmd-extra-sidebar .panel-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 14px;
  color: inherit;
}

.pmd-extra-sidebar .panel-body > .row {
  font-size: 13px;
}

.text-bold {
  font-weight: 500;
}

.close {
  opacity: 0.5;
}

.pmd-btn {
  min-width: auto;
}

.detail-tags {
  display: flex;
}

.detail-tag {
  display: block;
  flex: 0 1 auto;
  margin-left: 2px;
  margin-right: 2px;
  padding: 2px 4px;
  color: #0f9d58;
  border: 1px solid #0f9d58;
  border-radius: 2px;
  font-size: 10px;
  cursor: pointer;
}

.bordered .active {
  opacity: 1;
}

.bordered .active i {
  color: #4f575d;
}

.pmd-extra-sidebar .pmd-textfield .form-control {
  font-size: 13px;
  height: 20px;
}

.pmd-extra-sidebar .pmd-textfield label {
  font-size: 14px;
}

.pmd-extra-sidebar .pmd-switch label {
  margin-bottom: 0;
}

.pmd-extra-sidebar .pmd-switch label .pmd-switch-label {
  height: 9px;
  width: 20px;
}

.pmd-extra-sidebar .pmd-switch label .pmd-switch-label::after {
  top: -3px;
  height: 15px;
  width: 15px;
}

.pmd-extra-sidebar .pmd-switch label::before {
  margin-left: 27px;
}

.pmd-extra-sidebar
  .pmd-switch
  label
  input[type="checkbox"]:checked
  + .pmd-switch-label::after {
  left: 10px;
}

.pmd-btn-flat.btn-inverse {
  color: #141414;
  background-color: #c2c4ce;
}

.pmd-btn-flat.btn-inverse:hover {
  color: white;
  background-color: #141414;
}

.pmd-extra-sidebar .pmd-btn-fab.btn-xs {
  height: 28px;
  width: 28px;
  min-width: 28px;
}

.pmd-extra-sidebar .pmd-btn-fab.btn-xs {
  height: 28px;
  width: 28px;
  min-width: 28px;
}

.pmd-extra-sidebar .pmd-btn-fab.btn-xs span,
.pmd-extra-sidebar .pmd-btn-fab.btn-xs i {
  line-height: 28px;
  font-size: 16px;
}

.pmd-extra-sidebar .pmd-btn-fab.btn-xs span,
.pmd-btn-fab.btn-xs i {
  line-height: 35px;
  font-size: 16px;
}

html {
  font-size: 90%;
}

h2.pmd-card-title-text {
  margin-bottom: 2px;
  font-size: 1.1rem;
  font-weight: 500;
}

.ui-select-bootstrap > .ui-select-match > .btn {
  text-align: left !important;
  height: 24px;
  line-height: 24px;
}

.pmd-card-body .table-responsive {
  margin-left: -16px;
  width: calc(100% + 32px);
}

.pmd-card-body .table-responsive.no-fix {
  margin-left: auto;
  width: auto;
}

.v-center {
  min-height: 200px;
  display: flex;
  justify-content: center;
  flex-flow: column wrap;
}

.ngduallist .dual-container {
  height: 200px;
  overflow-y: auto;
  border: 1px solid #e5e5e5;
}

.dual-container .list-group-item:hover {
  cursor: pointer;
}

.dual-container.disabled .list-group-item {
  background: #e5e5e5;
}

.dual-container.disabled .list-group-item:hover {
  cursor: not-allowed !important;
}

.dual-container.disabled {
  background: #e5e5e5;
}

.ngduallist.info {
  display: inline-block;
  margin-bottom: 5px;
  font-size: 11px;
}

.disabled .btn {
  cursor: not-allowed !important;
}

.btn-inverse {
  color: #fff;
  background-color: #333c4e;
  border: solid 1px #333c4e;
}

.btn-inverse:hover,
.btn-inverse:focus {
  color: #fff;
  background-color: #2d3646;
  border: solid 1px #2d3646;
}

.ui-select-bootstrap .ui-select-match-text {
  width: 100%;
  padding-right: 1em;
  text-overflow: ellipsis;
  overflow: hidden;
}

/* Notifications */
.list-group-item.unread .list-group-item-heading {
  font-weight: 450;
}

.notification .list-group-item div.media-left {
  vertical-align: middle;
  text-align: center;
}

.notification .list-group-item i {
  padding: 8px;
  border: 1px solid #53556220;
  background: #53556220;
  border-radius: 5px;
}

.notification-info {
  color: #4285f4 !important;
}

.notification-warning {
  color: #f5a623 !important;
}

.notification-danger {
  color: #f03a3e !important;
}

.notification .list-group-item a {
  border: 0;
  float: none;
  position: relative;
  right: 0;
}

div.chartWrapper {
  position: relative;
  overflow: auto;
  width: 100%;
}

div.chartContainer {
  position: relative;
  height: 420px;
}

.scrollable-menu {
  height: auto;
  max-height: 320px;
  overflow-x: hidden;
}

@keyframes raise {
  0% {
    transform: scaleY(0.01);
  }
  75% {
    transform: scaleY(1.1);
  }
  100% {
    transform: scaleY(1);
  }
}
.chart {
  transform-origin: bottom;
  transform: scaleY(0.01);
  opacity: 0.5;
}

.chart {
  opacity: 1;
  animation: raise 0.5s ease 0.5s forwards;
}

.chart-container {
  position: relative;
}
.chart-legend {
  position: absolute;
  top: 50%;
  right: 0%;
  transform: translateY(-50%);
}

.vcenter {
  display: grid;
  align-items: center;
}

.equal {
  display: flex;
  display: -webkit-flex;
  flex-wrap: wrap;
}

@-webkit-keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }

  50% {
    opacity: 1;
  }
}

@keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }

  50% {
    opacity: 1;
  }
}

.zoomIn {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn;
}

.animated {
  -webkit-animation-duration: 0.3s;
  animation-duration: 0.3;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

.event {
  font-weight: 500;
}

.event-Info {
  color: #0d47a1;
}

.event-Medium {
  color: #fbc02d;
}

.event-Event {
  color: #e65100;
}

.event-Warning {
  color: #b71c1c;
}

.grid > div.opened {
  background-color: #b71c1c;
}

.grid > div.closed {
  background-color: #0f9d58;
}

.grid > div.opened h2,
.grid > div.opened h3,
.grid > div.opened p,
.grid > div.opened i {
  color: #fff;
}

.grid > div h2 {
  margin-bottom: 2px;
  margin-top: 8px;
  font-size: 1.1rem;
  font-weight: 500;
}

.grid > div h3 {
  margin-bottom: 2px;
  margin-top: 0;
  font-size: 0.8rem;
  font-weight: 800;
}

.grid > div p {
  margin-bottom: 0;
  font-size: 14px;
  line-height: 1.6;
}

.grid > div.closed h2,
.grid > div.closed h3,
.grid > div.closed p,
.grid > div.closed i {
  color: #fff;
}

.grid > div.unknown {
  background-color: #2d3646;
  color: #fff;
}
.grid > div.unknown h2,
.grid > div.unknown h3,
.grid > div.unknown p,
.grid > div.unknown i {
  color: #fff;
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  grid-gap: 1rem;
  text-align: center;
}

.grid > div {
  background: black;
  padding: 1rem;
  border-radius: 10px;
}

.grid > div::before {
  content: "";
  display: block;
}

.grid > div::before {
  grid-area: 1 / 1 / 2 / 2;
}

/* Bootstrap adjustments */
.pmd-card {
  margin-bottom: 16px;
}

/* Dashboard Energy Total power styles */
.total-energy-ev {
  color: #4285f4;
  height: 30px;
  font-size: 1.5rem;
}

.total-energy-production {
  color: #fda50f;
  height: 30px;
  font-size: 1.5rem;
}

.total-energy-grid {
  color: #aa3033;
  height: 30px;
  font-size: 1.5rem;
}

.total-water-consumption {
  color: #0F53BA;
  height: 30px;
  font-size: 1.5rem;
}

.total-energy-return {
  color: #512da8;
  height: 30px;
  font-size: 1.5rem;
}

.card-error {
  background-color: #b71c1c;
  color: white !important;
}

.card-success {
  background-color: #0f9d58;
  color: white !important;
}

.card-info {
  background-color: #333c4e;
  color: white !important;
}

.card-primary {
  background-color: #4285f4;
  color: white !important;
}

.connectors {
  display: flex;
}

.tooltip .mdi {
  font-size: 12px;
}

.tooltip hr {
  margin: 0;
}

.connector.charging {
  color: transparent;
  background-color: #4285f4;
  background-image: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 5px,
    rgba(255, 255, 255, 0.5) 7.5px,
    rgba(255, 255, 255, 0.5) 15px
  );
  background-clip: text;
  -webkit-background-clip: text;
  animation: color 3s linear infinite;
  background-size: 200%;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-transform: translate3d(0, 0, 0);
  -webkit-backface-visibility: hidden;
}

@keyframes color {
  from {
    background-position: 0% 0%;
  }
  to {
    background-position: 100% 0%;
  }
}

.row.no-margin {
  margin-left: -8px;
  margin-right: -8px;
}

.custom-dropdown {
  max-width: 260px !important;
  min-width: 260px !important;
  max-height: 324px !important;
  overflow-y: scroll;
}

.dropdown-menu .no-shadow {
  box-shadow: none;
}

.pmd-dropdown .dropdown-menu ul > li > a.header {
  text-transform: uppercase;
  display: flex;
  height: 44px;
  align-items: center;
  font-weight: 500;
  background-color: #f5f5f5;
}

.footprint {
  margin-top: 24px;
  font-size: 2.2rem;
  font-weight: 500;
  text-align: center;
}

.footprint .unit {
  font-size: 1.1rem;
  font-weight: 300;
  opacity: 0.8;
}

.footprint p {
  font-size: 1rem;
  font-weight: normal;
}

.ui-select-choices {
  position: fixed;
  top: auto;
  left: auto;
  width: auto !important;
}

.weather-container {
  display: flex;
}

.weather-icon {
  height: 60px;
  width: auto;
  margin-left: 20px;
}

.weather-temp {
  color: rgba(0, 0, 0, 0.84);
  margin: 0;
  text-align: left;
}

.weather-desc {
  margin: 0;
}

/* Fix zoom canvas blur*/
canvas {
  image-rendering: -moz-crisp-edges;
  image-rendering: -webkit-crisp-edges;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.gauge canvas,
.gauge > canvas {
  image-rendering: -moz-auto;
  image-rendering: -webkit-auto;
  image-rendering: auto;
  image-rendering: auto;
}

.gauge span,
.gauge > span {
  font-size: 24px;
}

td .dropdown {
  position: inherit;
}

td .dropdown.open > .pmd-dropdown-menu-container > .dropdown-menu {
  clip: auto;
  background-color: white;
}

td
  .dropdown.open
  > .pmd-dropdown-menu-container
  > .dropdown-menu.dropdown-menu-right {
  right: -40px;
}

.pmd-table.table thead th {
  vertical-align: bottom !important;
}

.tooltip {
  pointer-events: none !important;
}

@media screen and (min-width: 768px) {
.gauges:first-child .gauge {
  border-right: 1px solid rgba(0, 0, 0, 0.1);
}
}

.nav-scroll {
  height:calc(100% - 192px); /* 64px * 3 items */
  overflow-y: auto;
}

/* Works on Firefox */
* {
  scrollbar-width: thin;
  scrollbar-color: rgb(68, 68, 68) transparent;
}

/* Works on Chrome, Edge, and Safari */
*::-webkit-scrollbar {
  width: 6px;
}

*::-webkit-scrollbar-track {
  background: transparent;
}

*::-webkit-scrollbar-thumb {
  background-color: rgb(68, 68, 68);
  border-radius: 20px;
  border: 0px solid transparent;
}

.pmd-alert-container .pmd-alert.error {
  color: #fff;
  background: #a94442;
}

.miago-alert .error {
  color: #fff;
  background: #a94442;
  padding: 24px;
  vertical-align: middle;
  margin-bottom: 5px;
}

.row.no-gutter {
  margin-left: -31px;
  margin-right: -31px;
}
