/*
 * 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.
 *
 */

.jsCalendar {
    width: 100%;
    display: block;
    box-sizing: border-box;
    padding: 4px;
    border-collapse: collapse;
    border-radius: 4px;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.4) inset;
    background: none !important;
}
/* Default Theme */
/* General style */
.jsCalendar * {
    margin: 0;
    padding: 0;
}
.jsCalendar table,
.jsCalendar table th,
.jsCalendar table td {
    border: 0;
    box-sizing: border-box;
}
/* Blue default */
.jsCalendar table {
    background-color: #FFFFFF;
    color: #000000;
    font-family: Tahoma, Geneva, sans-serif;
    margin: 0;
    width: 100%;
    height: 100%;
    display: block;
}
.jsCalendar tr {
    line-height: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: space-around;
}
.jsCalendar thead .jsCalendar-title-row {
    display: block;
    width: 100%;
}
.jsCalendar thead .jsCalendar-title {
    line-height: 45px;
    display: block;
    width: 100%;
    text-align: center;
}
.jsCalendar thead .jsCalendar-title-left,
.jsCalendar thead .jsCalendar-title-right,
.jsCalendar thead .jsCalendar-title-name {
    display: inline-block;
    overflow: hidden;
}
.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;
    line-height: 20px;
    margin: 10px 8px;
    text-align: center;
    transition: color 0.2s, background-color 0.2s;
    width: 20px;
    height: 20px;
}
.jsCalendar thead .jsCalendar-nav-left:hover,
.jsCalendar thead .jsCalendar-nav-right:hover {
    background-color: #E2E2E2;
    color: #000000;
}
.jsCalendar thead .jsCalendar-nav-left {}
.jsCalendar thead .jsCalendar-nav-right {}
.jsCalendar thead .jsCalendar-title-name {
    cursor: default;
    font-size: 15px;
    font-weight: bold;
    padding: 0 20px;
    min-width: 30%;
    text-align: center;
}
.jsCalendar thead .jsCalendar-nav-left:after {
    content: "◄";
    font-weight: bold;
}
.jsCalendar thead .jsCalendar-nav-right:after {
    content: "►";
    font-weight: bold;
}
.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: 38px;
    cursor: default;
    font-size: 12px;
    line-height: 40px;
    text-align: center;
    transition: color 0.1s, background-color 0.2s;
    /*margin: 1px 2px;*/
    /*width: 12.7%;*/
    /*height: 12.7%;*/
    width: 40px;
    height: 40px;
    margin: 0 auto;
    font-weight: 600;
}
.jsCalendar tbody td:hover {
    background-color: #E6E6E6;
}
.jsCalendar tbody td.jsCalendar-selected {
    background-color: #FFFFFF;
    border: 2px solid #E6E6E6;
    line-height: 32px;
    width: 12.7%;
    height: 12.7%;
}
.jsCalendar tbody td.jsCalendar-current {
    background-color: #52C9FF;
    border-radius: 38px;
    color: #FFFFFF;
}
.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: flex;
    width: 100%;
    flex-direction: column;
}
.jsCalendar tbody {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    align-items: center;
}
.jsCalendar ::-moz-selection {
    background: none;
    /*background: #83D8FF;*/
}
.jsCalendar ::selection {
    background: none;
    /*background: #83D8FF;*/
}
/* Yellow */
.jsCalendar.yellow tbody td.jsCalendar-current {
    background-color: #FFE31B;
}
.jsCalendar.yellow ::-moz-selection {
    background: none;
    /*background: #FDE74C;*/
}
.jsCalendar.yellow ::selection {
    background: none;
    /*background: #FDE74C;*/
}
/* Orange */
.jsCalendar.orange tbody td.jsCalendar-current {
    background-color: #FFB400;
}
.jsCalendar.orange ::-moz-selection {
    background: none;
    /*background: #FFB400;*/
}
.jsCalendar.orange ::selection {
    background: none;
    /*background: #FFB400;*/
}
/* Red */
.jsCalendar.red tbody td.jsCalendar-current {
    background-color: #F6511D;
}
.jsCalendar.red ::-moz-selection {
    background: none;
    /*background: #F6511D;*/
}
.jsCalendar.red ::selection {
    background: none;
    /*background: #F6511D;*/
}
/* Green */
.jsCalendar.green tbody td.jsCalendar-current {
    background-color: #7FB800;
}
.jsCalendar.green ::-moz-selection {
    background: none;
    /*background: #7FB800;*/
}
.jsCalendar.green ::selection {
    background: none;
    /*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: #E2E2E2;
    color: #000;
}
.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: 0;
}
.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 {
    font-size: 15px;
    left: 41px;
    right: 41px;
    text-align: center;
    text-shadow: none;
}
.jsCalendar.classic-theme thead .jsCalendar-title-left,
.jsCalendar.classic-theme thead .jsCalendar-title-right {
    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 {
    text-shadow: none;
}
.jsCalendar.classic-theme thead .jsCalendar-nav-left:hover,
.jsCalendar.classic-theme thead .jsCalendar-nav-right:hover {
    background-color: #E2E2E2;
    color: #000;
    /*background-color: #03A9F4;*/
}
.jsCalendar.classic-theme thead .jsCalendar-week-days {
    /*background-color: #FFFFFF;*/
    display: flex;
    margin: 0;
}
.jsCalendar.classic-theme thead .jsCalendar-week-days th {
    font-size: 12px;
    height: 25px;
    line-height: 10px;
    text-shadow: none;
}
.jsCalendar.classic-theme tbody td {
    border-left: 1px solid #DADADA;
    border-top: 1px solid #DADADA;
    margin: 0;
    padding: 0;
    width: 20%;
    height: 20%;
}
.jsCalendar.classic-theme tbody {
    margin: 0;
}
.jsCalendar.classic-theme tbody td.jsCalendar-selected{
    background-color: #ceffcc;
    border-bottom: 0;
    border-left: 1px solid #DADADA;
    border-right: 0;
    border-top: 1px solid #DADADA;
    width: 20%;
    height: 20%;
    line-height: 36px;
}
.jsCalendar.classic-theme tbody td.jsCalendar-current.jsCalendar-selected{
    /*background-color: #52C9FF;*/
    background-color: #7FB800;
    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;*/
}