@charset "UTF-8";
/*
Colores pendientes:
#999
#cccccc
#f5f5f56e
#fff*/
@font-face {
  font-family: Open-Sans-Light;
  src: URL("../fonts/OpenSans-Light.ttf") format("truetype"); }
@font-face {
  font-family: Open-Sans;
  src: URL("../fonts/OpenSans-Regular.ttf") format("truetype"); }
#footer {
  color: white; }

.nowrap {
  white-space: nowrap; }

.breadcrumbs {
  list-style: none;
  font-size: 95%;
  padding: 0; }
.breadcrumbs li {
  display: inline; }
.breadcrumbs li:before {
  content: "»";
  margin: 0 0.1em;
  display: inline-block; }
.breadcrumbs li:first-child:before {
  display: none; }

.monospace {
  font-family: monospace; }

.control-panel #main-content {
  min-height: 200px; }
.control-panel .content {
  margin-left: 15%;
  margin-right: 15%; }
.control-panel .checkbox ul {
  list-style: none; }
@media all and (min-width: 768px) {
  .control-panel .headerAdminImg {
    display: flex;
    align-items: center;
    margin-left: 15%;
    margin-right: 15%; } }
@media all and (max-width: 768px) {
  .control-panel #header h1 {
    text-align: center; }
  .control-panel #header h1 small {
    display: block; }
  .control-panel #header .homeRedirect {
    text-align: center; }
  .control-panel #header .homeRedirect a {
    float: none !important; } }
.control-panel .btn-contrast {
  color: white;
  font-size: 15px;
  background-color: #33cc99;
  border-radius: 3px; }
.control-panel .btn-contrast a {
  color: white; }
.control-panel .table-striped > tbody > tr:nth-of-type(2n+1).alert-warning {
  background-color: #ffffc5; }
.control-panel .table-striped > tbody > tr:nth-of-type(2n+1).alert-danger {
  background-color: #ffc9c9; }
.control-panel #footer {
  width: auto;
  right: 0;
  bottom: 0;
  left: 0;
  margin-top: 2%;
  padding: 1rem;
  background-color: #54647a; }
.control-panel #footer #footer-wrapper {
  margin-left: 15%;
  margin-right: 15%; }
.control-panel .view .fieldset {
  display: table; }
.control-panel .view .fieldset .field {
  display: table-row; }
.control-panel .view .fieldset .field .field-name, .control-panel .view .fieldset .field .field-value {
  display: table-cell;
  padding: 0.2em 0.6em; }
.control-panel .view .fieldset .field .field-name {
  font-weight: bold;
  text-align: right; }
.control-panel .view .fieldset .field .field-name:after {
  content: ": "; }
.control-panel .view.room .description {
  padding: 0.5em 0 0.5em 10px;
  border-left: 4px solid #999;
  font-style: italic;
  color: #444; }
.control-panel #room-status-list-wrapper {
  margin-top: 1em; }
.control-panel .ott-details td {
  padding-left: 2.5em; }

.nav-tabs {
  margin-bottom: 1em; }

#slots-tables table .appointment-slot {
  margin-right: 3px;
  margin-left: 3px; }

#slots-tables table .appointment-slot:hover {
  cursor: pointer; }

.reservations-table tr.separator, .room-reservations-table tr.separator {
  height: 2.5em;
  border-top: 1px solid #ddd; }
.reservations-table th, .room-reservations-table th {
  text-align: center; }
.reservations-table td.slot, .room-reservations-table td.slot {
  text-align: center; }
.reservations-table .free, .room-reservations-table .free {
  background-color: #4caf50;
  border-radius: 8px;
  color: #fff; }
.reservations-table .occupied, .room-reservations-table .occupied {
  background-color: #d9534f;
  border-radius: 8px;
  color: #fff; }
.reservations-table .past, .reservations-table .closed, .room-reservations-table .past, .room-reservations-table .closed {
  background-color: #ccc;
  border-radius: 8px;
  color: #fff; }
.reservations-table .past-booked-by-user, .room-reservations-table .past-booked-by-user {
  background-color: #cff;
  border-radius: 8px;
  color: #000; }
.reservations-table .booked-by-user, .room-reservations-table .booked-by-user {
  background-color: #fca960;
  border-radius: 8px;
  color: #fff; }
.reservations-table .booked-another-room, .room-reservations-table .booked-another-room {
  background-color: #d58fdb;
  border-radius: 8px;
  color: #fff; }
.reservations-table .booking-requested, .room-reservations-table .booking-requested {
  background: #f3f60c;
  color: #000; }
.reservations-table .booking-requested::after, .room-reservations-table .booking-requested::after {
  content: "*"; }
.reservations-table .cancel-requested, .room-reservations-table .cancel-requested {
  background: orangered;
  color: #fff; }
.reservations-table .cancel-requested::after, .room-reservations-table .cancel-requested::after {
  content: "*"; }

.btn-fixed-reservation-button {
  position: fixed;
  right: 25px;
  bottom: 25px;
  -webkit-box-shadow: 0px 0px 5px 5px rgba(0, 0, 0, 0.75);
  -moz-box-shadow: 0px 0px 5px 5px rgba(0, 0, 0, 0.75);
  box-shadow: 0px 0px 5px 5px rgba(0, 0, 0, 0.75); }

.header-accent-secundary {
  font-weight: bold;
  font-size: 16px;
  color: #54647a; }

.header-accent-secundary:hover:active {
  font-weight: bold;
  font-size: 16px;
  color: #33cc99; }

.header-menu-white {
  font-weight: bold;
  font-size: 14px;
  color: white; }

.map-body {
  font-size: 14px;
  color: #54647a; }

.main-buttons {
  font-size: 15px;
  color: white;
  padding-left: 30px;
  padding-right: 30px;
  text-transform: uppercase; }

.hero-title {
  font-family: Open-Sans-Light, sans-serif;
  font-size: 50px;
  color: white;
  text-shadow: 2px 2px 8px #343434; }

.hero-subtitle {
  font-family: Open-Sans-Light, sans-serif;
  font-size: 24px;
  line-height: 35px;
  color: white;
  text-shadow: 2px 2px 8px #343434; }

.panel-header {
  font-size: 17px;
  color: #54647a; }

.panel-body-accent {
  font-weight: bold;
  font-size: 18px; }

.panel-header-title {
  font-weight: bold;
  font-size: 22px;
  color: #54647a; }

.panel-body-secundary-accent {
  font-weight: bold;
  font-size: 15px;
  color: #54647a;
  margin: 0;
  padding: 0px 20px 10px 20px; }

.panel-btn {
  font-size: 13px;
  padding: 6px 22px;
  color: white; }

.panel-body-dates {
  font-weight: bold;
  color: #54647a;
  font-size: 15px; }

.panel-txt {
  font-size: 17px;
  color: #54647a; }

.title-accent {
  font-weight: bold;
  font-size: 34px;
  color: #33cc99; }

.error-message {
  font-weight: bold;
  font-size: 34px;
  color: #54647a;
  padding: 2em 0;
  margin: 0; }

.login-title {
  font-family: Open-Sans-Light, sans-serif;
  font-size: 31px;
  padding-bottom: 10px;
  margin-top: 10px;
  color: #54647a; }

.login-form .login-input {
  font-family: Open-Sans-Light, sans-serif;
  font-size: 16px;
  margin-bottom: 20px;
  color: #54647a;
  background-color: #f2f2f2;
  position: relative; }
.login-form .help-popup {
  position: absolute;
  right: 8px;
  top: 8px;
  cursor: help;
  z-index: 99; }
.login-form .help-popup .help-message {
  position: absolute;
  right: 0;
  top: 100%;
  display: none;
  max-width: 20em;
  font-size: 90%;
  z-index: 999;
  width: 18em; }
.login-form .help-popup .help-message .help-message-inner {
  background: #54647a;
  color: white;
  border: 1px solid #ddd;
  float: right;
  padding: 0.2em 0.3em; }
.login-form .help-popup:hover .help-message {
  display: block; }

.login-help {
  margin-top: 0.3em;
  text-align: center; }

#banner {
  background-image: URL("../img/foto-cabecera-mini.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  text-transform: uppercase;
  max-height: 300px;
  margin-bottom: 1em;
  padding-top: 2em;
  padding-bottom: 3em; }
#banner small {
  color: white;
  font-size: 16px; }

.main-image {
  background-image: url("/img/foto-cabecera-1-optimizada-7057d2c2618d96b6c49e114f55e27726.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding-top: 10%;
  color: white; }
.main-image .container {
  position: relative;
  margin-top: 10%;
  margin-bottom: 10%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center; }
.main-image .container a {
  margin: 10px 20px; }
.main-image .container button {
  margin: 5px;
  text-transform: uppercase; }
.main-image .container h1 {
  font-size: 50px; }
@media all and (min-width: 800px) {
  .main-image .container h1 {
    padding: 15px; } }
.main-image .container h3 {
  margin-top: 1.5em; }
@media screen and (min-width: 800px) {
  .main-image .container h3 {
    padding: 15px; } }
.main-image .container img {
  width: 20px; }

.icon {
  margin-right: 7px; }

.public {
  font-family: Open-Sans, sans-serif;
  color: #33cc99; }
.public .slots {
  overflow-x: scroll; }
.public #main-content > .container {
  min-height: 7em; }
.public #main-content .items-content {
  margin-top: 50px;
  margin-bottom: 30px; }
.public #main-content .modal .modal-body {
  padding: 20px 30px; }
.public #main-content .modal .modal-footer .btn-success {
  background-color: #33cc99; }
.public #main-content .modal .modal-footer button {
  background-color: #54647a;
  color: white; }
.public #main-content .modal .modal-footer .btn-danger {
  background-color: #d9534f; }
.public #main-content .modal.modal-embed-chart .modal-header {
  color: #54647a; }
.public #main-content .modal.modal-embed-chart .modal-body {
  color: #54647a;
  padding: 20px 30px; }
.public #main-content .events-alert {
  padding-bottom: 50px; }
.public #main-content .location-selector {
  margin-top: 15px; }
.public #main-content .location-selector .location-list {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  align-content: flex-start;
  margin-top: 15px;
  margin-bottom: 15px; }
.public #main-content .location-selector .location-list .location-container {
  flex-grow: 0;
  display: flex; }
.public #main-content .location-selector .location-list .location-container .location {
  width: 100%;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
  margin: 10px;
  box-shadow: 0px 0px 3px 3px rgba(0, 0, 0, 0.1); }
.public #main-content .location-selector .location-list .location-container .location h4 {
  color: #54647a;
  font-weight: bold;
  font-size: 22px; }
.public #main-content .location-selector .location-list .location-container .location p {
  font-size: 17px;
  color: #54647a; }
.public #main-content #locations-map {
  box-shadow: 0px 0px 3px 3px rgba(0, 0, 0, 0.1); }
.public #main-content #os-map {
  box-shadow: 0px 0px 3px 3px rgba(0, 0, 0, 0.1); }
.public #main-content .btn-panel {
  padding-left: 0; }
.public #main-content .upcoming-events {
  padding: 35px;
  padding-bottom: 60px; }
.public #main-content .cancel-reserv {
  padding: 10px 15px; }
.public #main-content .reservable-rooms-list {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  align-content: flex-start;
  margin-top: 15px;
  margin-bottom: 15px; }
.public #main-content .reservable-rooms-list .reservable-room-container {
  flex-grow: 0;
  display: flex; }
.public #main-content .reservable-rooms-list .reservable-room-container .reservable-room {
  width: 100%;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
  margin: 10px;
  box-shadow: 0px 0px 3px 3px rgba(0, 0, 0, 0.1); }
.public #main-content .reservable-rooms-list .reservable-room-container .reservable-room h4 {
  color: #54647a;
  font-weight: bold;
  font-size: 22px; }
.public #main-content .reservable-rooms-list .reservable-room-container .reservable-room p {
  font-size: 17px;
  color: #54647a; }
.public #main-content .reading-room-picker {
  text-align: center; }
.public #main-content .reading-room-picker .reading-room {
  margin-top: 5px;
  padding-right: 5px;
  padding-left: 5px;
  display: inline-block;
  column-count: 1;
  width: 100%;
  text-align: left; }
@media (min-width: 768px) {
  .public #main-content .reading-room-picker.several-locations {
    column-count: 2; }
  .public #main-content .reading-room-picker.one-location .reading-room {
    width: 50%; } }
.public #main-content .panel-rooms {
  width: 100%; }
.public #main-content .panel-rooms a {
  margin: 0; }
.public #main-content .panel-rooms p {
  padding-left: 5px;
  margin: 0; }
.public #main-content .book-room {
  margin-top: 15px; }
.public #main-content .reservables .row {
  margin-top: 25px;
  margin-bottom: 25px; }
.public #main-content .reservables .row .panel-default {
  box-shadow: none;
  border: none; }
.public #main-content .reservables .row .panel-default .panel-heading {
  padding: 10px 20px 0px 20px; }
.public #main-content .reservables .row .panel-default .panel-heading .event-day {
  padding: 0; }
.public #main-content .reservables .row .panel-default .panel-heading button {
  color: white; }
.public #main-content .reservables .row .panel-default .panel-text-event {
  margin: 0px 20px 0px 20px;
  border-top: 1px solid #ddd; }
.public #main-content .rooms-reservations {
  margin-top: 20px; }
.public #main-content .rooms-reservations .room {
  box-shadow: 0px 0px 3px 3px rgba(0, 0, 0, 0.1); }
.public #main-content .rooms-reservations .room-title {
  color: #54647a;
  font-weight: bold;
  font-size: 22px; }
.public #main-content .rooms-reservations .room-address {
  color: #54647a;
  font-family: Open-Sans-Regular, sans-serif;
  font-size: 17px; }
.public #main-content .rooms-reservations .btn-panel-contrast {
  padding-left: none; }
.public #main-content .rooms-reservations .btn-panel-contrast img {
  width: 20px; }
.public #main-content .rooms-reservations .btn-panel-contrast a {
  padding: 0;
  margin: 6px 12px 6px 0px; }
.public #main-content .btn-panel-contrast {
  color: white;
  font-size: 13px;
  font-weight: bold;
  background-color: #33cc99;
  border-radius: 3px; }
.public #main-content .btn-panel-contrast a {
  color: white; }
.public #main-content .btn-panel-cancel {
  color: white;
  font-size: 13px;
  font-weight: bold;
  background-color: #d9534f;
  border-radius: 3px; }
.public #main-content .btn-panel-cancel a {
  color: white; }
.public #main-content .reservations {
  margin-top: 40px;
  margin-bottom: 40px; }
.public #main-content .reservations .panel-heading {
  font-weight: bold;
  font-size: 22px; }
.public #main-content .reservations .sala-equipo {
  font-family: Open-Sans-Regular, sans-serif;
  font-size: 17px; }
.public #main-content .reservations .reserva {
  margin: 10px 15px;
  border-top: 1px solid #ddd;
  border-bottom: none;
  padding: 5px 0px; }
.public #main-content .reservations .reserva:first-child {
  border-top: none; }
.public #main-content .reservations .reserva .acciones {
  float: right;
  overflow: hidden; }
.public #main-content .reservations .reserva .acciones a {
  display: block;
  margin-bottom: 2px; }
.public #main-content .reservations .edit-members-button {
  margin-left: 0.5em;
  margin-bottom: 0.3em; }
.public #main-content .color-explanation {
  margin-top: 1em; }
.public #main-content .color-explanation .slot-example {
  display: inline-block;
  width: 32px;
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  text-align: center;
  vertical-align: middle; }
.public #main-content .color-explanation span {
  vertical-align: middle; }
.public #main-content .color-explanation .free-example {
  background-color: #4caf50;
  border-radius: 8px;
  color: #fff; }
.public #main-content .color-explanation .occupied-example {
  background-color: #d9534f;
  border-radius: 8px;
  color: #fff; }
.public #main-content .color-explanation .past-example, .public #main-content .color-explanation .closed-example {
  background-color: #ccc;
  border-radius: 8px;
  color: #fff; }
.public #main-content .color-explanation .past-booked-by-user-example {
  background-color: #cff;
  border-radius: 8px;
  color: #000; }
.public #main-content .color-explanation .booked-by-user-example {
  background-color: #fca960;
  border-radius: 8px;
  color: #fff; }
.public #main-content .color-explanation .booked-another-room-example {
  background-color: #d58fdb;
  border-radius: 8px;
  color: #fff; }
.public #main-content .color-explanation .booking-requested-example {
  background: #f3f60c;
  border-radius: 8px;
  color: #000; }
.public #main-content .color-explanation .cancel-requested-example {
  background: orangered;
  border-radius: 8px;
  color: #fff; }
.public #main-content #event-day-events {
  padding: 8px; }
.public #main-content #btn-panel {
  padding-top: 3px;
  padding-bottom: 3px;
  border-radius: 1px; }
.public #main-content .login-layout {
  background-image: URL("../img/foto-cabecera-1.jpg");
  background-size: cover;
  background-position: center; }
.public #main-content .login-layout .col-md-6 {
  padding-top: 25%;
  padding-bottom: 25%; }
.public #main-content .login-layout .col-md-6 .login-form {
  background-color: white;
  box-shadow: 0px 0px 33px 0px rgba(0, 0, 0, 0.75);
  padding: 20px;
  border-radius: 3px; }
.public #main-content .login-layout .col-md-6 .login-form .form-control {
  background-color: #f2f2f2;
  border: none;
  box-shadow: none;
  font-size: 16px; }
.public #main-content .login-layout .col-md-6 .login-form .alert {
  margin-top: 15px;
  margin-bottom: 0; }
.public #main-content .login-layout .col-md-6 .login-form button {
  width: 100%;
  margin-bottom: 10px; }
.public #main-content .login-layout .col-md-6 .login-form button img {
  float: left; }
.public #main-content .login-layout .panel {
  box-shadow: none; }
.public #main-content .login-layout .panel-heading:after {
  display: none; }
.public #main-content .login-layout .panel-saml {
  text-align: center; }
.public #main-content .row {
  margin-left: 0;
  margin-right: 0; }
.public .navHeader {
  border: 0; }
.public .panel-heading {
  background: transparent;
  overflow: hidden;
  border-bottom: none;
  text-align: left;
  position: relative; }
.public .panel-heading:after {
  position: absolute;
  bottom: 0;
  display: block;
  height: 1px;
  width: calc(100% - 30px);
  content: "hola";
  border-top: 1px solid #ddd; }
.public .panel-heading.no-body:after {
  display: none; }
.public .panel {
  box-shadow: 0px 0px 3px 3px rgba(0, 0, 0, 0.1); }
.public .panel-footer {
  background-color: transparent;
  padding: 0;
  margin-left: 10px;
  border-top: none; }
.public .btn-contrast {
  color: white;
  font-size: 15px;
  background-color: #33cc99;
  border-radius: 3px; }
.public .btn-contrast a {
  color: white; }
.public .btn-events {
  color: white;
  background-color: #54647a;
  border-radius: 3px; }
.public .btn-events a {
  color: white; }
.public #text-color {
  color: #33cc99;
  margin-left: 10px;
  margin-right: 10px;
  margin-top: 0;
  border-top: 1px solid lightgray;
  padding-top: 5px; }
.public #text-color a {
  color: #33cc99; }
.public .navbar-default .navbar-nav > .open > a, .public .navbar-default .navbar-nav > .open > a:focus, .public .navbar-default .navbar-nav > .open > a:hover {
  background-color: #33cc99; }
.public header {
  text-transform: uppercase; }
.public header .dropdown {
  padding-left: 20px; }
.public header .dropdown .dropdown-toggle {
  padding-left: 35px;
  line-height: 30px;
  background: url("/img/user-icon-c4c22e6aeafb247be6ea79c69779f1bf.png") left center no-repeat; }
.public header .dropdown .dropdown-menu span {
  padding-left: 13px; }
.public header #pages li {
  padding-left: 5px;
  padding-right: 5px; }
.public header .navbar-header img {
  height: 50px;
  margin-top: 5px;
  margin-bottom: 5px; }
.public .navbar-default .navbar-nav > li > a:focus, .public .navbar-default .navbar-nav > li > a:hover {
  background-color: transparent; }
.public .navbar {
  background-color: rgba(247, 248, 248, 0.9);
  margin-bottom: -0; }
.public .typo {
  font-weight: bold;
  font-size: 14px; }
.public header .dropdown-menu {
  border: none;
  box-shadow: none;
  color: white; }
.public header .dropdown-menu a {
  color: white; }
.public .dropdown-user {
  background-color: #33cc99; }
.public .dropdown-user a:hover {
  background-color: #f5f5f56e; }
.public .dropdown-user span {
  color: white; }
.public .dropdown-user li {
  float: none;
  color: white;
  background-color: #33cc99 !important; }
.public .dropdown-user li a {
  color: white; }
.public .dropdown-user li .dropdown-divider {
  margin-left: 10%;
  margin-right: 10%;
  border-top: 1px solid rgba(47, 234, 208, 0.5); }
.public .dropdown-user li .dropdown-item {
  padding: 10px; }
.public .dropdown-user ul {
  background-color: #33cc99 !important; }
@media (min-width: 768px) {
  .public .dropdown-user {
    height: 60px; }
  .public .dropdown-user li {
    text-align: center; } }
.public .language-selector ul {
  list-style: none;
  display: flex;
  height: 100%;
  padding: 0 1em;
  line-height: 60px; }
.public .language-selector ul li {
  margin: 0 0.2em; }
.public .language-selector .language-flag {
  width: 20px;
  background: no-repeat center center;
  background-size: 20px 12px;
  overflow: hidden;
  white-space: nowrap;
  text-indent: 30px;
  display: block; }
.public .language-selector .language-flag:hover {
  opacity: 0.6; }
.public #footer {
  width: auto;
  margin-left: 0;
  margin-right: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 1rem;
  background-color: #54647a; }
.public #footer #footer-wrapper {
  margin-left: 15%;
  margin-right: 15%; }
.public #footer .version {
  margin-top: 1.5em; }
.public #footer .logo img {
  height: 60px; }

.error-message-room {
  margin-top: 10%;
  margin-bottom: 11%; }

.room-picker {
  padding-top: 9%;
  padding-bottom: 10%; }

.room-list.buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center; }
.room-list.buttons a {
  margin: 1em 1%;
  flex-basis: 30%; }

#upcoming-events-panel {
  padding-left: 20px; }
#upcoming-events-panel .panel-heading {
  padding: 20px 0; }
#upcoming-events-panel #text-color {
  padding-top: 20px;
  padding-bottom: 20px;
  margin-bottom: 0;
  margin-left: 0; }
#upcoming-events-panel .panel-footer {
  padding-bottom: 12px;
  margin-left: 0; }
#upcoming-events-panel .event > * {
  overflow: hidden; }
#upcoming-events-panel .event .event-date {
  width: 3em;
  float: left;
  text-align: center;
  border-radius: 3px;
  background: #bce0ff;
  margin-right: 1em;
  line-height: 1.0;
  padding: 0.4em 0; }
#upcoming-events-panel .event .event-date .event-day {
  font-size: 150%; }
#upcoming-events-panel .event .event-date .event-month {
  font-size: 90%;
  text-transform: uppercase; }
#upcoming-events-panel .event .event-title {
  margin-top: 0;
  margin-bottom: 0.3em; }
#upcoming-events-panel .event .event-summary {
  margin-bottom: 0; }

.upcoming-events .event > * {
  overflow: hidden; }
.upcoming-events .event .event-date {
  width: 3em;
  float: left;
  text-align: center;
  border-radius: 3px;
  background: #bce0ff;
  margin-right: 1em;
  line-height: 1.0;
  padding: 0.4em 0; }
.upcoming-events .event .event-date .event-day {
  font-size: 150%; }
.upcoming-events .event .event-date .event-month {
  font-size: 90%;
  text-transform: uppercase; }
.upcoming-events .event .event-title {
  margin-top: 0;
  margin-bottom: 0.3em; }
.upcoming-events .event .event-summary {
  margin-bottom: 0; }

.captcha-block {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center; }
.captcha-block > * {
  flex: 0 0 auto;
  margin: 0.5em 0; }

.ol-popup {
  position: absolute;
  background-color: white;
  -webkit-filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2));
  filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2));
  padding: 15px;
  border-radius: 10px;
  border: 1px solid #cccccc;
  bottom: 12px;
  left: -50px;
  min-width: 280px; }

.ol-popup:after, .ol-popup:before {
  top: 100%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none; }

.ol-popup:after {
  border-top-color: white;
  border-width: 10px;
  left: 48px;
  margin-left: -10px; }

.ol-popup:before {
  border-top-color: #cccccc;
  border-width: 11px;
  left: 48px;
  margin-left: -11px; }

.ol-popup-closer {
  text-decoration: none;
  position: absolute;
  top: 2px;
  right: 8px; }

.ol-popup-closer:after {
  content: "✖"; }

.os-map {
  height: 400px; }

.leaflet-container a.btn-primary {
  color: #fff; }

.statistics-count-sessions input[type="date"] {
  line-height: 1.42857143; }

a[role='tab'].has-error:before {
  content: '* ';
  color: red; }

.search-reservations input.datepicker {
  line-height: 20px; }

.blocked-alert {
  position: fixed;
  z-index: 99;
  left: 1em;
  bottom: 0;
  margin-right: 1em; }

.location-status-charts {
  margin-bottom: 2em;
  max-width: 100%; }
.location-status-charts .location-status {
  border: 1px solid #ddd;
  border-radius: 10px;
  padding: 1em;
  margin-bottom: 1.8%;
  max-width: 100%;
  width: 100%; }
@media (min-width: 768px) {
  .location-status-charts .location-status {
    margin-left: 0.6%;
    margin-right: 0.6%;
    width: 48%; } }
.location-status-charts .location-status > h3 {
  margin-top: 0; }
.location-status-charts .masonry-grid-sizer {
  width: 100%; }
@media (min-width: 768px) {
  .location-status-charts .masonry-grid-sizer {
    width: 50%; } }
.location-status-charts .status-charts .status-chart {
  height: 300px;
  width: 100%;
  position: relative; }
.location-status-charts .status-charts .status-chart .btn-embed-chart {
  position: absolute;
  right: 1em;
  bottom: 1em;
  display: none; }
.location-status-charts .status-charts .status-chart:hover .btn-embed-chart {
  display: inline-block; }

.embed .location-status .status-chart {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  right: 0; }

.form-row .form-group {
  display: flex;
  align-items: center; }
.form-row .form-group > * {
  display: block;
  flex: 0;
  margin-left: 0.6em; }
.form-row .form-group > *:first-child {
  margin-left: 0; }
.form-row .form-group > label {
  white-space: nowrap; }
.form-row .form-group > .field {
  flex: 1; }

.reservations-timetable {
  width: 100%;
  display: flex;
  padding: 10px 0;
  flex-wrap: wrap;
  overflow-x: auto;
  overflow-y: hidden; }
.reservations-timetable .reservation-dates {
  text-align: center;
  font-weight: bold;
  margin-bottom: 0.6em;
  margin-left: 0.6em;
  width: 100%;
  display: flex; }
.reservations-timetable .reservation-dates > * {
  flex: 1; }
.reservations-timetable .reservation-times, .reservations-timetable .reservation-area {
  height: 400px; }
.reservations-timetable .reservation-times {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  font-weight: bold;
  text-align: right;
  width: 4em; }
.reservations-timetable .reservation-area {
  flex: 1;
  position: relative;
  margin-left: 0.6em; }
.reservations-timetable .reservation-area .slot {
  position: absolute;
  padding: 3px 5px;
  display: none;
  text-align: center; }
.reservations-timetable .reservation-area .slot.free, .reservations-timetable .reservation-area .slot.booked-by-user {
  cursor: pointer; }
.reservations-timetable .reservation-area .slot.checked-in {
  cursor: auto; }
.reservations-timetable .reservation-area .slot-inner {
  height: 100%;
  padding: 0 10px;
  display: flex;
  flex-direction: column; }
.reservations-timetable .reservation-area .slot-inner .spacer {
  flex: 1; }
.reservations-timetable .reservation-area .slot-status {
  font-weight: bold; }
.reservations-timetable .reservation-area .booked-by-user:hover, .reservations-timetable .reservation-area .free:hover {
  opacity: 0.9; }
.reservations-timetable .reservation-area .checked-in:hover {
  opacity: 1.0; }
.reservations-timetable .reservation-area .free .slot-inner {
  background-color: #4caf50;
  border-radius: 8px;
  color: #fff; }
.reservations-timetable .reservation-area .occupied .slot-inner {
  background-color: #d9534f;
  border-radius: 8px;
  color: #fff; }
.reservations-timetable .reservation-area .past .slot-inner, .reservations-timetable .reservation-area .closed .slot-inner {
  background-color: #ccc;
  border-radius: 8px;
  color: #fff; }
.reservations-timetable .reservation-area .past-booked-by-user .slot-inner {
  background-color: #cff;
  border-radius: 8px;
  color: #000; }
.reservations-timetable .reservation-area .booked-by-user .slot-inner {
  background-color: #fca960;
  border-radius: 8px;
  color: #fff; }
.reservations-timetable .reservation-area .booked-another-room .slot-inner {
  background-color: #d58fdb;
  border-radius: 8px;
  color: #fff; }
.reservations-timetable .reservation-area .booking-requested .slot-inner {
  background: #f3f60c;
  color: #000; }
.reservations-timetable .reservation-area .booking-requested::after .slot-inner {
  content: "*"; }
.reservations-timetable .reservation-area .cancel-requested .slot-inner {
  background: orangered;
  color: #fff; }
.reservations-timetable .reservation-area .cancel-requested::after .slot-inner {
  content: "*"; }
.reservations-timetable[data-allow-cancel=false] .reservation-area .slot.booked-by-user {
  cursor: default !important;
  opacity: 1 !important; }

.form-group.required label::after {
  content: "*";
  color: #a94442;
  margin-left: 0.2em; }

.select-location ul {
  display: flex;
  flex-wrap: wrap;
  padding: 0;
  margin: 0; }
.select-location li {
  box-shadow: 0px 0px 3px 3px rgba(0, 0, 0, 0.1);
  list-style: none;
  flex: 0 1 48%;
  margin: 0.5em 1%;
  display: flex;
  align-items: center; }
@media screen and (max-width: 480px) {
  .select-location li {
    margin: 0.5em 0; } }
.select-location li:hover {
  background: #f2f2f2; }
.select-location a {
  font-size: 110%;
  display: block;
  padding: 1em 1.5em;
  color: #33cc99; }
.select-location a:hover {
  text-decoration: none; }
@media screen and (max-width: 480px) {
  .select-location ul {
    flex-direction: column; }
  .select-location li {
    flex-basis: 100%; } }

.appointment-form .reservation-help {
  color: #333;
  border: 2px solid #ddd;
  padding: 1em;
  white-space: pre-wrap; }

@keyframes highlight {
  0% {
    background: #ffff99; }
  100% {
    background: none; } }
.highlight {
  animation: highlight 3s; }

.reservation-members-inner {
  border-radius: 3px;
  margin-bottom: 1em; }

.availability-wrapper {
  margin: 0.5em 0 1em; }

#availability-modal .availability-row {
  display: flex;
  margin-bottom: 2px;
  position: relative;
  min-height: 20px;
  align-items: center; }
#availability-modal .availability-row .room-name {
  padding-left: 10px;
  width: 150px; }
#availability-modal .availability-row .spacer {
  width: 140px;
  position: fixed;
  height: 20px;
  z-index: 10;
  background: white; }
#availability-modal .availability-row .room-name {
  position: sticky;
  left: 0; }
#availability-modal .slots {
  position: relative;
  overflow-x: hidden;
  text-align: center;
  min-height: 20px; }
#availability-modal .slots .slot {
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  height: 100%;
  border-radius: 4px; }
#availability-modal .slots .opening-hours {
  background: greenyellow;
  cursor: pointer; }
#availability-modal .slots .opening-hours:hover {
  background: #dfa; }
#availability-modal .slots .occupied {
  background: red;
  cursor: not-allowed; }
#availability-modal .room .slots {
  background: #f5f5f5; }
#availability-modal .hours .slots {
  margin-left: 150px;
  width: 750px;
  z-index: 999;
  line-height: 18px;
  font-weight: bold;
  border-radius: 3px; }
#availability-modal .hours .slots.sticky {
  background: #def; }
#availability-modal .availability-content {
  margin: 1em 0;
  overflow-x: scroll;
  display: flex;
  flex-direction: column;
  align-items: center; }
#availability-modal .availability-content .availability-location {
  margin-bottom: 1.3em; }
#availability-modal .availability-content .location-name {
  font-weight: bold;
  position: sticky;
  left: 0;
  display: inline-block; }
#availability-modal .availability-content .location-name, #availability-modal .availability-content .room-name {
  background: white;
  z-index: 10; }
#availability-modal .loader {
  height: 300px;
  background: url(/img/ajax-loader-272b00142f20e52503bf98f30c6f717c.svg) center no-repeat; }
@media all and (max-width: 768px) {
  #availability-modal .spacer {
    display: none; }
  #availability-modal .availability-row {
    flex-wrap: wrap;
    align-items: start; }
  #availability-modal .availability-location .availability-row {
    margin-left: 150px;
    margin-bottom: 0.3em; } }

#room-reservation-edit-members-dialog .loader {
  height: 300px;
  background: url(/img/ajax-loader-272b00142f20e52503bf98f30c6f717c.svg) center no-repeat;
  display: none; }
#room-reservation-edit-members-dialog .delete-member {
  margin-right: 1em; }
#room-reservation-edit-members-dialog form {
  display: flex;
  justify-content: middle; }
#room-reservation-edit-members-dialog form > * {
  margin: 0 5px; }
#room-reservation-edit-members-dialog form .form-group {
  flex: 1; }
#room-reservation-edit-members-dialog.loading .modal-body h5, #room-reservation-edit-members-dialog.loading .modal-body div, #room-reservation-edit-members-dialog.loading .modal-body form {
  display: none; }
#room-reservation-edit-members-dialog.loading .modal-body .loader {
  display: block; }

/*# sourceMappingURL=estilos.css.map */
