/*
 * jsCalendar v1.4.5
 * 
 * 
 * MIT License
 * 
 * Copyright (c) 2017-2023 Grammatopoulos Athanasios-Vasileios
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 * 
 */

/* Default Theme */
/* General style */
.jsCalendar * {
  margin: 0;
  padding: 0;
}
.jsCalendar table,
.jsCalendar table th,
.jsCalendar table td {
  border: 0;
  box-sizing: content-box;
}
/* Blue default */
.jsCalendar table {
  background-color: #ffffff;
  border-collapse: collapse;
  border-radius: 4px;
  color: #000000;
  margin: 0;
}
.jsCalendar tr {
  line-height: 0;
}
.jsCalendar thead .jsCalendar-title {
  display: flex;
  justify-content: space-between;
  height: 48px;
  line-height: 48px;
}
.jsCalendar thead .jsCalendar-title-left {
  display: flex;
  align-items: center;
  justify-content: center;
}
.jsCalendar thead .jsCalendar-title-right {
  display: flex;
  align-items: center;
  justify-content: center;
}
.jsCalendar thead .jsCalendar-nav-left,
.jsCalendar thead .jsCalendar-nav-right {
  border-radius: 10px;
  color: #999999;
  cursor: pointer;
  font-family: "Courier New", Courier, monospace;
  font-size: 12px;
  font-weight: bold;
  height: 24px;
  line-height: 20px;
  margin: 0;
  text-align: center;
  transition: color 0.2s, background-color 0.2s;
  width: 24px;
}
.jsCalendar thead .jsCalendar-nav-left:hover,
.jsCalendar thead .jsCalendar-nav-right:hover {
  background-color: #e2e2e2;
  color: #000000;
}
.jsCalendar thead .jsCalendar-nav-left {
  float: left;
}
.jsCalendar thead .jsCalendar-nav-right {
  float: right;
}
.jsCalendar thead .jsCalendar-title-name {
  cursor: default;
  float: left;
  font-size: 20px;
  font-weight: 700;
  padding: 0 20px;
}
.jsCalendar thead .jsCalendar-nav-left:after {
  width: 24px;
  height: 24px;
  display: block;
  content: url("../img/ico/arrow_left_gray.svg");
}
.jsCalendar thead .jsCalendar-nav-right:after {
  width: 24px;
  height: 24px;
  display: block;
  content: url("../img/ico/arrow_right_gray.svg");
}
.jsCalendar thead .jsCalendar-week-days th {
  text-shadow: 0 0 1px rgba(0, 0, 0, 0.2);
}
.jsCalendar thead .jsCalendar-week-days th,
.jsCalendar tbody td {
  border-radius: 24px;
  cursor: default;
  display: inline-block;
  font-size: 14px;
  font-weight: 400;
  height: 40px;
  line-height: 40px;
  margin: 1px 2px;
  text-align: center;
  transition: color 0.1s, background-color 0.2s;
  width: 40px;
  position: relative;
}
.jsCalendar tbody td.active::after {
  content: "";
  width: 4px;
  height: 4px;
  background: #03a9f4;
  border-radius: 4px;
  position: absolute;
  bottom: 2px;
  left: 18px;
}
.jsCalendar tbody td:hover {
  background-color: #e6e6e6;
}
.jsCalendar tbody td.jsCalendar-selected {
  background-color: #ffffff;
  border: 2px solid #e6e6e6;
  height: 32px;
  line-height: 32px;
  width: 32px;
}
.jsCalendar tbody td.jsCalendar-current {
  background-color: #f8f8f8;
  border-radius: 4px;
  color: #000;
}
.jsCalendar tbody td.jsCalendar-previous,
.jsCalendar tbody td.jsCalendar-next,
.jsCalendar tbody td.jsCalendar-unselectable {
  color: #cacaca;
}
.jsCalendar tbody td.jsCalendar-previous:hover,
.jsCalendar tbody td.jsCalendar-next:hover {
  color: #ffffff;
}

.jsCalendar tbody td.jsCalendar-unselectable:hover {
  background: transparent;
}

.jsCalendar thead {
  display: block;
  margin: 4px 4px 0 4px;
}
.jsCalendar tbody {
  display: block;
  margin: 0 4px 4px 4px;
}
.jsCalendar ::-moz-selection {
  background: #83d8ff;
}
.jsCalendar ::selection {
  background: #83d8ff;
}
/* Yellow */
.jsCalendar.yellow tbody td.jsCalendar-current {
  background-color: #ffe31b;
}
.jsCalendar.yellow ::-moz-selection {
  background: #fde74c;
}
.jsCalendar.yellow ::selection {
  background: #fde74c;
}
/* Orange */
.jsCalendar.orange tbody td.jsCalendar-current {
  background-color: #ffb400;
}
.jsCalendar.orange ::-moz-selection {
  background: #ffb400;
}
.jsCalendar.orange ::selection {
  background: #ffb400;
}
/* Red */
.jsCalendar.red tbody td.jsCalendar-current {
  background-color: #f6511d;
}
.jsCalendar.red ::-moz-selection {
  background: #f6511d;
}
.jsCalendar.red ::selection {
  background: #f6511d;
}
/* Green */
.jsCalendar.green tbody td.jsCalendar-current {
  background-color: #7fb800;
}
.jsCalendar.green ::-moz-selection {
  background: #7fb800;
}
.jsCalendar.green ::selection {
  background: #7fb800;
}

/* Material Theme */
/* Blue default */
.jsCalendar.material-theme table {
  border-radius: 0;
}
.jsCalendar.material-theme thead {
  background-color: #52c9ff;
  color: #ffffff;
  margin: 0;
  padding: 4px 4px 0 4px;
}
.jsCalendar.material-theme thead .jsCalendar-title {
  display: block;
  position: relative;
}
.jsCalendar.material-theme thead .jsCalendar-title-name {
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
  color: #ffffff;
  font-size: 16px;
  left: 15px;
  position: absolute;
  right: 15px;
  text-align: center;
}
.jsCalendar.material-theme thead .jsCalendar-title-left,
.jsCalendar.material-theme thead .jsCalendar-title-right {
  position: absolute;
  z-index: 1;
}
.jsCalendar.material-theme thead .jsCalendar-nav-left,
.jsCalendar.material-theme thead .jsCalendar-nav-right {
  color: #ffffff;
}
.jsCalendar.material-theme thead .jsCalendar-nav-left:hover,
.jsCalendar.material-theme thead .jsCalendar-nav-right:hover {
  background-color: #03a9f4;
}
.jsCalendar.material-theme thead .jsCalendar-title-right {
  right: 0;
}
.jsCalendar.material-theme thead .jsCalendar-week-days th {
  font-size: 14px;
  text-shadow: none;
}
/* Yellow */
.jsCalendar.material-theme.yellow thead {
  background-color: #ffe31b;
}
.jsCalendar.material-theme.yellow thead .jsCalendar-nav-left:hover,
.jsCalendar.material-theme.yellow thead .jsCalendar-nav-right:hover {
  background-color: #e2ca23;
}
/* Orange */
.jsCalendar.material-theme.orange thead {
  background-color: #ffb400;
}
.jsCalendar.material-theme.orange thead .jsCalendar-nav-left:hover,
.jsCalendar.material-theme.orange thead .jsCalendar-nav-right:hover {
  background-color: #d49600;
}
/* Red */
.jsCalendar.material-theme.red thead {
  background-color: #f6511d;
}
.jsCalendar.material-theme.red thead .jsCalendar-nav-left:hover,
.jsCalendar.material-theme.red thead .jsCalendar-nav-right:hover {
  background-color: #bb3d16;
}
/* Green */
.jsCalendar.material-theme.green thead {
  background-color: #7fb800;
}
.jsCalendar.material-theme.green thead .jsCalendar-nav-left:hover,
.jsCalendar.material-theme.green thead .jsCalendar-nav-right:hover {
  background-color: #639000;
}

/* Classic Theme */
/* Blue default */
.jsCalendar.classic-theme table,
.jsCalendar.classic-theme thead .jsCalendar-nav-left,
.jsCalendar.classic-theme thead .jsCalendar-nav-right,
.jsCalendar.classic-theme thead .jsCalendar-week-days th,
.jsCalendar.classic-theme tbody td,
.jsCalendar.classic-theme tbody td.jsCalendar-current {
  border-radius: 0;
}
.jsCalendar.classic-theme thead {
  background-color: #52c9ff;
  margin: 0;
  padding: 4px 4px 0 4px;
}
.jsCalendar.classic-theme thead .jsCalendar-title-row,
.jsCalendar.classic-theme thead .jsCalendar-title {
  display: block;
  width: 100%;
}
.jsCalendar.classic-theme thead .jsCalendar-title {
  position: relative;
}
.jsCalendar.classic-theme thead .jsCalendar-title-name {
  color: #ffffff;
  font-size: 16px;
  left: 41px;
  position: absolute;
  right: 41px;
  text-align: center;
  text-shadow: none;
}
.jsCalendar.classic-theme thead .jsCalendar-title-left,
.jsCalendar.classic-theme thead .jsCalendar-title-right {
  position: absolute;
  z-index: 1;
}
.jsCalendar.classic-theme thead .jsCalendar-title-right {
  right: 0;
}
.jsCalendar.classic-theme thead .jsCalendar-nav-left,
.jsCalendar.classic-theme thead .jsCalendar-nav-right {
  color: #ffffff;
  text-shadow: none;
}
.jsCalendar.classic-theme thead .jsCalendar-nav-left:hover,
.jsCalendar.classic-theme thead .jsCalendar-nav-right:hover {
  background-color: #03a9f4;
}
.jsCalendar.classic-theme thead .jsCalendar-week-days {
  background-color: #ffffff;
  display: block;
  margin: 0 -4px;
}
.jsCalendar.classic-theme thead .jsCalendar-week-days th {
  font-size: 10px;
  height: 20px;
  line-height: 20px;
  text-shadow: none;
}
.jsCalendar.classic-theme tbody td {
  border-left: 1px solid #dadada;
  border-top: 1px solid #dadada;
  margin: -1px 0 0 -1px;
  padding: 1px 1px 0 1px;
  width: 38px;
}
.jsCalendar.classic-theme tbody {
  margin: 0;
}
.jsCalendar.classic-theme tbody td.jsCalendar-selected {
  background-color: #ccefff;
  border-bottom: 0;
  border-left: 1px solid #dadada;
  border-right: 0;
  border-top: 1px solid #dadada;
  height: 36px;
  line-height: 36px;
}
.jsCalendar.classic-theme tbody td.jsCalendar-current.jsCalendar-selected {
  background-color: #52c9ff;
  text-shadow: 0 0 3px #000000;
}
/* Yellow */
.jsCalendar.classic-theme.yellow thead {
  background-color: #ffe31b;
}
.jsCalendar.classic-theme.yellow thead .jsCalendar-nav-left:hover,
.jsCalendar.classic-theme.yellow thead .jsCalendar-nav-right:hover {
  background-color: #e2ca23;
}
/* Orange */
.jsCalendar.classic-theme.orange thead {
  background-color: #ffb400;
}
.jsCalendar.classic-theme.orange thead .jsCalendar-nav-left:hover,
.jsCalendar.classic-theme.orange thead .jsCalendar-nav-right:hover {
  background-color: #d49600;
}
/* Red */
.jsCalendar.classic-theme.red thead {
  background-color: #f6511d;
}
.jsCalendar.classic-theme.red thead .jsCalendar-nav-left:hover,
.jsCalendar.classic-theme.red thead .jsCalendar-nav-right:hover {
  background-color: #bb3d16;
}
/* Green */
.jsCalendar.classic-theme.green thead {
  background-color: #7fb800;
}
.jsCalendar.classic-theme.green thead .jsCalendar-nav-left:hover,
.jsCalendar.classic-theme.green thead .jsCalendar-nav-right:hover {
  background-color: #639000;
}

.auto-jsCalendar {
  display: flex;
  justify-content: center;
  align-items: center;
}

@media all and (max-width: 400px) {
  .jsCalendar thead .jsCalendar-week-days th,
  .jsCalendar tbody td {
    width: 36px;
    height: 36px;
    line-height: 36px;
  }
}
