:root {
    --main-color: #008803;
    --gray: #cccccc;
    --light-gray: #efefef;
    --unavailable-bg: white;
    --unavailable-text: #c9c9c9;
    --available-bg: #EFF7E1;
    --available-text: black;
    --available-selected-bg: #008803;
    --available-selected-text: white;
    --selected-bg: #008803;
    --selected-text: white;
    --border-color: #959595;
}

.calendar {
    width: 300px;
    margin: 20px auto;
    border: 1px solid var(--border-color);
    padding: 10px;
    border-radius: 5px;
}

.calendar-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
}

.calendar-header button {
    background-color: var(--main-color);
    color: white;
    border: none;
    padding: 5px 10px;
    cursor: pointer;
    border-radius: 3px;
}

.calendar-header button:hover {
    background-color: #006602;
}

.calendar-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    border-top: 1px solid var(--border-color);
    border-left: 1px solid var(--border-color);
}

.weekday, .day {
    padding: 10px;
    border-bottom: 1px solid var(--border-color);
    border-right: 1px solid var(--border-color);
    text-align: center;
}

.weekday {
    font-weight: bold;
    background-color: #FFF;
}

.day.previous-month, .day.next-month {
    background-color: var(--light-gray);
    color: #FFF;
}

.day.unavailable {
    background-color: var(--unavailable-bg);
    color: var(--unavailable-text);
    cursor: not-allowed;
}

.day.available {
    background-color: var(--available-bg);
    color: var(--available-text);
    cursor: pointer;
}
.day.available:hover {
    background-color: var(--available-selected-bg);
    color: var(--available-selected-text);
}
.day.available.selected {
    background-color: var(--available-selected-bg);
    color: var(--available-selected-text);

}
.day.selected {
    background-color: var(--selected-bg);
    color: var(--selected-text);
}