/* ----------------------------------------------------------------------------
 * Easy!Appointments - Online Appointment Scheduler
 *
 * @package     EasyAppointments
 * @author      A.Tselegidis <alextselegidis@gmail.com>
 * @copyright   Copyright (c) Alex Tselegidis
 * @license     https://opensource.org/licenses/GPL-3.0 - GPLv3
 * @link        https://easyappointments.org
 * @since       v1.5.0
 * ---------------------------------------------------------------------------- */
/* BASE STYLES
   ------------------------------------------------------------------------- */
html {
  height: 100%;
}

select {
  -webkit-appearance: none;
}

/* UTILITIES
   ------------------------------------------------------------------------- */
.min-vh-mobile {
  min-height: 100vh;
}
@media (min-width: 992px) {
  .min-vh-mobile {
    min-height: 0;
  }
}

/* COLOR SELECTION COMPONENT
   ------------------------------------------------------------------------- */
.color-selection {
  max-width: 400px;
}
.color-selection .color-selection-option {
  border: none;
  color: var(--bs-white);
  width: 32px;
  height: 32px;
}
.color-selection .color-selection-option .fa-check {
  display: none;
  margin: auto;
}
.color-selection .color-selection-option.selected .fa-check {
  display: block;
}

/* JQUERY UI STYLING
   ------------------------------------------------------------------------- */
@-moz-document url-prefix() {
  body .checkbox input[type=checkbox] {
    float: left;
  }
}
body .ui-widget {
  font-family: var(--bs-body-font-family);
  font-size: 1.1em;
}
body .ui-widget input, body .ui-widget select, body .ui-widget textarea, body .ui-widget button {
  font-family: var(--bs-body-font-family);
  font-size: 1rem;
}
body .ui-widget-overlay {
  background: var(--bs-dark) 50% 50% repeat-x;
  opacity: 0.5;
}
body .ui-widget.ui-widget-content {
  border: 1px solid var(--bs-primary);
  padding: 0;
}
body .ui-dialog {
  padding: 0;
  z-index: 2000;
  border: none !important;
  box-shadow: var(--bs-box-shadow-lg);
}
body .ui-dialog .ui-dialog-titlebar-close {
  display: none;
}
body .ui-dialog .ui-dialog-buttonpane {
  padding: 0.3em 1em 0.3em 0.4em;
  border: none;
}
body .ui-dialog #error-technical {
  max-width: 500px;
}
body .ui-dialog-buttons {
  border-radius: var(--bs-border-radius);
}
body .ui-draggable .ui-dialog-titlebar {
  background: var(--bs-primary);
  color: var(--bs-white);
  font-size: 1.2em;
  font-weight: lighter;
  padding: 12px 10px;
  margin-bottom: 10px;
  border: none;
  border-radius: var(--bs-border-radius) var(--bs-border-radius) 0 0;
}
body .ui-button .ui-icon,
body .ui-button:hover .ui-icon {
  background-image: url("../ext/jquery-ui/images/ui-icons_222222_256x240.png");
}
body .ui-priority-primary,
body .ui-widget-content .ui-priority-primary,
body .ui-widget-header .ui-priority-primary {
  font-weight: normal;
}
body #ui-datepicker-div {
  margin-top: 5px;
  z-index: 1100 !important;
}
body .ui-datepicker {
  width: auto;
  max-width: 288px;
}
body .ui-datepicker .ui-widget-header {
  border: none;
  background: var(--bs-primary);
  border-radius: 0;
}
body .ui-datepicker .ui-widget-header .ui-icon {
  background-image: url("../vendor/jquery-ui-dist/images/ui-icons_ffffff_256x240.png");
}
body .ui-datepicker .ui-datepicker-title {
  color: var(--bs-white);
  padding: 8px 5px;
}
body .ui-datepicker th {
  background: var(--bs-primary);
  color: var(--bs-white);
}
body .ui-datepicker tbody tr:first-child td {
  margin-top: 5px;
}
body .ui-datepicker td a, body .ui-datepicker td span {
  border: none !important;
  background: none !important;
  color: var(--bs-primary) !important;
  text-align: center !important;
  width: 32px;
  height: 32px;
  line-height: 2;
}
body .ui-datepicker td a.ui-state-active {
  color: var(--bs-white) !important;
  font-weight: bold !important;
  background: var(--bs-primary) !important;
  width: 24px;
  height: 24px;
  line-height: 1.2;
  margin: 4px;
  border-radius: 50px;
}
body .ui-datepicker td a.ui-state-highlight {
  background: rgba(var(--bs-primary-rgb), 0.5) !important;
  color: var(--bs-white) !important;
  width: 24px;
  height: 24px;
  line-height: 1.2;
  margin: 4px;
  border-radius: 50px;
  border-radius: 67px;
}
body .ui-datepicker .ui-datepicker-prev-hover,
body .ui-datepicker .ui-datepicker-next-hover {
  top: 2px !important;
  background: rgba(var(--bs-primary-rgb), 0.7);
  border-color: rgba(var(--bs-primary-rgb), 0.7);
  border-radius: 0;
  cursor: pointer;
}
body .ui-datepicker .ui-datepicker-prev-hover {
  left: 2px !important;
}
body .ui-datepicker .ui-datepicker-next-hover {
  right: 2px !important;
}
body .ui-datepicker .ui-slider-handle {
  border-radius: 0;
  border-color: var(--bs-primary);
  background-color: var(--bs-primary);
}
body .ui-datepicker .ui-datepicker-buttonpane button {
  padding: 6px 16px;
}
body .popover {
  max-width: 430px;
}
body .popover-body strong {
  min-width: 90px;
  display: inline-block;
}
body .popover-body button {
  font-size: 1em;
  box-sizing: border-box;
  margin: 0;
  height: 2.1em;
  padding: 0 0.6em;
}
body .popover-body a {
  margin-right: 5px;
}
body .clearfix {
  clear: both;
}

html body .ui-datepicker td a.ui-state-active {
  color: var(--bs-white) !important;
  font-weight: bold !important;
  background: var(--bs-primary) !important;
  width: 24px;
  height: 24px;
  line-height: 1.2;
  margin: 4px;
  border-radius: 50px;
}

/* WORKING PLAN & BREAKS
   ------------------------------------------------------------------------- */
.working-plan td,
.breaks td {
  vertical-align: middle;
}

.breaks tr:hover td {
  background: var(--bs-warning-bg-subtle) !important;
}

/* LANGUAGE SELECTOR
   ------------------------------------------------------------------------- */
li.language {
  cursor: pointer;
}
li.language:hover {
  color: var(--bs-link-hover-color);
}

#select-language {
  cursor: pointer;
  display: inline-block;
  padding: 5px;
}

#language-list {
  list-style: none;
  padding-left: 0;
  max-height: 500px;
  overflow-y: auto;
}

/* JQUERY UI TIMEPICKER ADDON
   ------------------------------------------------------------------------- */
.ui-timepicker-div .ui-widget-header {
  margin-bottom: 8px;
}
.ui-timepicker-div dl {
  text-align: left;
}
.ui-timepicker-div dl dt {
  float: left;
  clear: left;
  padding: 0 0 0 5px;
}
.ui-timepicker-div dl dd {
  margin: 0 10px 10px 40%;
}
.ui-timepicker-div dl dd.ui_tpicker_time {
  margin-bottom: 4px;
}
.ui-timepicker-div dl dd.ui_tpicker_hour, .ui-timepicker-div dl dd.ui_tpicker_minute {
  padding-top: 8px;
}
.ui-timepicker-div td {
  font-size: 90%;
}
.ui-timepicker-div .ui_tpicker_unit_hide {
  display: none;
}
.ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input {
  background: none;
  color: inherit;
  border: none;
  outline: none;
  width: 95%;
}
.ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input:focus {
  border-bottom-color: var(--bs-secondary);
}
.ui-timepicker-div.ui-timepicker-oneLine {
  padding-right: 2px;
}
.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time,
.ui-timepicker-div.ui-timepicker-oneLine dt {
  display: none;
}
.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time_label {
  display: block;
  padding-top: 2px;
}
.ui-timepicker-div.ui-timepicker-oneLine dl {
  text-align: right;
}
.ui-timepicker-div.ui-timepicker-oneLine dl dd,
.ui-timepicker-div.ui-timepicker-oneLine dl dd > div {
  display: inline-block;
  margin: 0;
}
.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_minute:before,
.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_second:before {
  content: ":";
  display: inline-block;
}
.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_millisec:before,
.ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_microsec:before {
  content: ".";
  display: inline-block;
}
.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide,
.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide:before {
  display: none;
}

.ui-tpicker-grid-label {
  background: none;
  border: none;
  margin: 0;
  padding: 0;
}

.ui-timepicker-rtl {
  direction: rtl;
}
.ui-timepicker-rtl dl {
  text-align: right;
  padding: 0 5px 0 0;
}
.ui-timepicker-rtl dl dt {
  float: right;
  clear: right;
}
.ui-timepicker-rtl dl dd {
  margin: 0 40% 10px 10px;
}

/* LOADING SPINNER
   ------------------------------------------------------------------------- */
.is-loading {
  position: relative;
}
.is-loading:before, .is-loading:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
}

.animation:after {
  width: 60px;
  height: 60px;
  margin: -25px 0 0 -25px;
  border: 5px solid rgba(var(--bs-body-color-rgb), 0.4);
  border-radius: 50px;
  border-bottom-color: transparent;
  animation: spin 1s infinite linear;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes spin-reverse {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(-360deg);
  }
}
.any-element {
  width: 60px;
  height: 60px;
  position: fixed;
  left: 50vw;
  top: 50vh;
  margin-left: -30px;
  margin-bottom: -30px;
}

/* MESSAGE BOX
   ------------------------------------------------------------------------- */
#message-box pre,
#message-box .card {
  max-height: 250px;
  max-width: 500px;
}

/* FORM VALIDATION
   ------------------------------------------------------------------------- */
.has-error .control-label,
.has-error label {
  color: var(--bs-danger);
}
.has-error .form-control,
.has-error .form-select {
  border-color: var(--bs-danger);
}

/* FLATPICKR CALENDAR
   ------------------------------------------------------------------------- */
.flatpickr-wrapper {
  width: 100%;
}

.flatpickr-calendar {
  box-shadow: none;
}
.flatpickr-calendar .flatpickr-monthDropdown-months:hover {
  background: rgba(var(--bs-body-color-rgb), 0.05) !important;
}
.flatpickr-calendar .flatpickr-months {
  padding: 10px 0;
  background: var(--bs-primary);
  border-radius: var(--bs-border-radius) var(--bs-border-radius) 0 0;
}
.flatpickr-calendar .flatpickr-current-month {
  padding: 3px;
}
.flatpickr-calendar .flatpickr-innerContainer {
  border-radius: 0 0 var(--bs-border-radius) var(--bs-border-radius);
}
.flatpickr-calendar .dayContainer {
  padding: 10px 0;
}
.flatpickr-calendar .flatpickr-months .flatpickr-month,
.flatpickr-calendar .flatpickr-weekdays,
.flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-calendar span.flatpickr-weekday {
  background: var(--bs-primary);
  color: var(--bs-white);
  -webkit-appearance: none;
}
.flatpickr-calendar .flatpickr-day.selected, .flatpickr-calendar .flatpickr-day.selected.inRange, .flatpickr-calendar .flatpickr-day.selected.nextMonthDay, .flatpickr-calendar .flatpickr-day.selected.prevMonthDay, .flatpickr-calendar .flatpickr-day.selected:focus, .flatpickr-calendar .flatpickr-day.selected:hover, .flatpickr-calendar .flatpickr-day.startRange, .flatpickr-calendar .flatpickr-day.startRange.inRange, .flatpickr-calendar .flatpickr-day.startRange.nextMonthDay, .flatpickr-calendar .flatpickr-day.startRange.prevMonthDay, .flatpickr-calendar .flatpickr-day.startRange:focus, .flatpickr-calendar .flatpickr-day.startRange:hover, .flatpickr-calendar .flatpickr-day.endRange, .flatpickr-calendar .flatpickr-day.endRange.inRange, .flatpickr-calendar .flatpickr-day.endRange.nextMonthDay, .flatpickr-calendar .flatpickr-day.endRange.prevMonthDay, .flatpickr-calendar .flatpickr-day.endRange:focus, .flatpickr-calendar .flatpickr-day.endRange:hover {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: var(--bs-white);
}
.flatpickr-calendar .flatpickr-day.prevMonthDay, .flatpickr-calendar .flatpickr-day.nextMonthDay {
  height: 0;
  width: 0;
  visibility: hidden;
}

/* COOKIE CONSENT
   ------------------------------------------------------------------------- */
.cc-revoke,
.cc-window {
  z-index: 999 !important;
}