*{
box-sizing: border-box;
}
.fc-header-toolbar{
flex-wrap: wrap !important;
}
table.fc-scrollgrid, table.fc-scrollgrid-sync-table{
margin: 0 !important;
}
.fc-day-future,.fc-day-today{
cursor: pointer;
}
.fc-day-future{
background-color: rgba(173, 255, 40, 0.034);
}
#calendar{
width: 100%;
height: 100vh;
}
#calendar-backdrop{
height: 100vh;
width: 100vw;
background-color: rgba(0,0,0,.6);
backdrop-filter: blur(3px);
position: fixed;
top: 0;
left: 0;
z-index: 999;
display: flex;
justify-content: center;
align-items: center;
opacity: 0;
display: none;
}
#calendar-backdrop.active{
display: flex;
opacity: 1;
}
.book-appointment-form{
width: 30%;
padding: 20px 15px;
background-color: white;
border-radius: 15px;
display: flex;
flex-wrap: wrap;
justify-content: center;
position: relative;
}
.book-appointment-form > div{
width: 100%;
margin-bottom: 5px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
}
.book-appointment-form input{
background-color: rgba(0,0,0,.025);
border: 1px solid rgba(0,0,0,.1);
border-radius: 5px;
width: 100%;
height: 36px;
}
.book-appointment-form select{
width: 80%;
background-color: rgba(0,0,0,.025);
}
.appointment-detail-field:focus{
border: 1px solid rgb(80, 80, 255) !important;
}
.book-appointment-form .invalid-data{
color: red;
font-size: 14px;
visibility: hidden;
opacity: 0;
transition: all 0.2s linear;
}
.invalid-field{
border: 1px solid red !important;
}
.invalid-field + .invalid-data{
opacity: 1;
visibility: visible;
}
.book-appointment-form textarea{
max-height: 100px;
max-width: 100%;
}
#book-appointment-form-remove-btn{
position: absolute;
top: 0;  
right: 0;
height: 34px;
width: 34px;
cursor: pointer;
background-color: transparent;
color: black;
border: 6px solid transparent;
padding: 0;
}
#book-appointment-form-remove-btn::before, #book-appointment-form-remove-btn::after{
content: "";
position: absolute;
top: 50%;
left: 0;
width: 100%;
height: 2px;
background-color: black;
border-radius: 2px;
}
#book-appointment-form-remove-btn::before{
transform: rotate(45deg);
}
#book-appointment-form-remove-btn::after{
transform: rotate(-45deg);
}
#book-appointment-btn:disabled{
background-color: #7d9bcf;
}
#form-response-msg{
width: 100%;
text-align: left;
font-weight: 700;
transition: all 0.2s linear;
visibility: hidden;
}
#form-response-msg.failed{
color: red;
visibility: visible;
}
#form-response-msg.success{
color: green;
visibility: visible;
}
#msg-length{
font-size: 14px;
color: gray;
}
.book-appointment-form > div:last-of-type{
justify-content: center;
align-items: center;
}
.loader{
height: 20px;
width: 20px;
border: 1px solid gray;
border-bottom: 1px solid transparent;
border-radius: 50%;
margin-left: 5px;
display: none;
}
.loader.active-loader{
animation: loader 0.3s linear infinite;
display: block;
}
@keyframes loader{
from{
transform: rotate(0deg);
}
to{
transform: rotate(360deg);
}
}
@media (width <= 1024px){
.book-appointment-form{
width: 70%;
}
}
@media (width <= 500px){
.book-appointment-form{
width: 90%;
}
}