/*
 * PAGE SPECIFIC
 */
* {
    font-family: 'Roboto', sans-serif;
}

#date {
    text-align: center;
    grid-area: header;
}

#calendar {
    grid-area: calendar;
    width: 415px;
    height: 360px;
    border: 1px solid lightgrey;
    border-radius: 5px;
}

#container {
    display: grid;
    margin: 0 auto;
    grid-column-gap: 20px;
    grid-template-columns: auto max-content auto;
    grid-template-areas:
            "header header header"
            "back calendar forward"
}

#left {
    grid-area: back;
    justify-self: right;
}

#right {
    grid-area: forward;
    justify-self: left;
}

#left, #right {
    background-color: black;
    color: white;
    align-self: center;
}

/*
 * MISC STYLES
 */

.btn-circle {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    font-size: 40px;
    position: relative;
    outline: 0 !important;
    opacity: 0.2;
    transition: opacity 0.25s;
}

.btn-circle:hover {
    opacity: 0.4;
    cursor: pointer;
}

.btn-circle:active {
    opacity: 1;
}

.btn-circle > span {
    position: absolute;
    top: 50%;
    right: 50%;
    transform: translate(-50%, -50%);
}

.calendar .last, .calendar .first {
    color: red;
}

/*
* CALENDAR STYLES
*/
.calendar {
    display: grid;
    justify-content: stretch;
    align-items: center;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    font-size: 20px;
}

.calendar .header {
    display: grid;
    height: 100%;
    grid-template-columns: repeat(7, 1fr);
    grid-column: 1 / 8;
    font-weight: 700;
    align-items: center;
    border-bottom: 1px solid lightgrey;
}
