.catalog__category__content {
    margin: 5px;
    padding: 5px;
    border: 1px solid black;
}

.catalog__entry {
    margin: 5px;
    padding: 5px;
    border: 1px solid black;
}

.catalog__entry__name {
    flex: 0 1 auto;
}

.catalog__entry__properties {
    flex: 0 0 auto;
    margin-left: auto;
}

.course {
    border: 1px solid black;
    font-size: smaller; /* TODO It should grow back to normal size if there's enough space */
}

.course--year {
    height: 100%;
}

.course--semester {
    height: 50%;
}

.course--semester:only-of-type {
    margin-bottom: calc(25% + 4px);
}

td.grid__box > .course--semester:nth-last-of-type(2) {
    margin-bottom: -1px;
}

td.grid__box > .course--semester:nth-of-type(2) {
    margin-top: -1px;
}

.course--ap {
    border: 2px solid purple;
}

.course--post-ap {
    border: 2px solid green;
}

#lab_placeholder {
    border: thick ridge cyan;
    background: azure;
}

#lab_placeholder.mentorship {
    height: calc(300% + 1rem - 2px);
    border-color: magenta;
    background: lightgoldenrodyellow;
}

.course__status {
    float: left;
    margin-right: 5px;
}

td.grid__box {
    width: 25%;
    height: 11%;
    border: 1px solid black;
}

td.grid__box.grid__box--summer {
    background-color: cornsilk;
}

td.grid__box.grid__box--online {
    background: rgb(215,235,255);
    background: -moz-linear-gradient(0deg, rgba(215,235,255,1) 0%, rgba(200,241,255,1) 50%, rgba(215,235,255,1) 100%);
    background: -webkit-linear-gradient(0deg, rgba(215,235,255,1) 0%, rgba(200,241,255,1) 50%, rgba(215,235,255,1) 100%);
    background: linear-gradient(0deg, rgba(215,235,255,1) 0%, rgba(200,241,255,1) 50%, rgba(215,235,255,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#d7ebff",endColorstr="#d7ebff",GradientType=1);
}

td.grid__box.grid__box--joined {
    border-top: none;
    border-bottom: none;
}

.grid__hint {
    text-align: center;
    font-style: italic;
    font-size: larger;
    pointer-events: none;
}

.grid__hint:not(:only-child) {
    visibility: hidden;
    display: none;
}