.calendar {
    display: flex;
    flex-direction: column;
    width: var(--site-width);
}

.month-select {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 15px;
    padding-left: 6px;
    width: 100%;
    height: 50px;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    border: 2px solid rgb(50, 50, 50);
    border-bottom: none;
    background-color: rgb(25, 25, 25);
    box-sizing: border-box;
}

.month-navigation {
    width: 150px;
    height: 38px;
    line-height: 38px;
    border-radius: 8px;
    text-decoration: none;
    color: white;
    background-color: rgb(50, 50, 50);
    font-weight: 600;
    text-align: center;
    transition: background-color 0.15s;
}

.month-navigation:hover {
    background-color: rgb(45, 45, 45);
}

.month-display {
    color: white;
    font-weight: 700;
    text-align: center;
    width: 200px;
}

.calendar-table {
    background-color: rgb(220, 220, 220);
    width: 100%;
    padding: 0;
    border-collapse: collapse;
    table-layout: fixed;
}

.calendar-header-container {
    background-color: rgb(200, 200, 200);
    width: 100%;
    height: 40px;
}

.calendar-header, .calendar-cell {
    width: calc(var(--site-width) / 7);
    box-sizing: border-box;
}

.calendar-header {
    line-height: 40px;
    font-weight: 600;
    border: 2px solid rgb(120, 120, 120);
}

.calendar-row {
    height: calc(var(--site-width) / 7);
}

.calendar-cell {
    justify-content: center;
    align-items: center;
    gap: 5px;
    background-color: white;
    border: 2px solid rgb(150, 150, 150);
    height: calc(var(--site-width) / 7);
    box-sizing: border-box;
}

.calendar-cell-content {
    display: flex;
    justify-self: center;
    align-self: center;
    flex-direction: column;
    gap: 5px;
    width: 100%;
    max-width: 100%;
    height: 76%;
    max-height: 76%;
    padding: 3px;
    overflow-y: scroll;
    box-sizing: border-box;
}

.calendar-body {
    width: 100%;
}

.calendar-empty-cell {
    background-color: rgb(230, 230, 230);
    background: repeating-linear-gradient(45deg, rgb(230, 230, 230), rgb(230, 230, 230) 4px, rgb(215, 215, 215) 4px, rgb(215, 215, 215) 8px);
}

.calendar-day-number {
    font-size: 24px;
    font-weight: 600;
    text-align: left;
    margin: 5px;
    pointer-events: none;
}

.calendar-event {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8px;
    width: 100%;
    height: 75px;
    min-height: 75px;
    border-radius: 5px;
    text-decoration: none;
    color: black;
    box-sizing: border-box;
}

.public-event {
    background-color: rgb(115, 255, 130);
    border: 2px solid rgb(85, 195, 95);
    transition: background-color 0.15s;
}

.public-event:hover {
    background-color: rgb(105, 245, 120);
}

.private-event {
    background-color: rgb(200, 200, 200);
    background: repeating-linear-gradient(45deg, rgb(230, 230, 230), rgb(230, 230, 230) 4px, rgb(215, 215, 215) 4px, rgb(215, 215, 215) 8px);
    border: 2px solid rgb(170, 170, 170);
    transition: background-color 0.15s;
}

.private-event:hover {
    background-color: rgb(190, 190, 190);
}

.event-name {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-align: center;
    font-size: 18px;
    font-weight: 600;
    padding: 0 5px 0 5px;
    pointer-events: none;
}

.event-time-range {
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    pointer-events: none;
}