.panel {
    padding: 1em;
    padding-bottom: 0.01em;
    margin-bottom: 1em;
    border: 1px solid #999999;
    border-radius: 5px;
}

.panel-with-title {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.paneltitle {
    width: 100%;
    background: #dddddd;
    padding: 0.5em;
    padding-left: 1em;
    border: 1px solid #999999;
    border-bottom: 0;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    font-weight: bold;
}

.customnote {
    display: flex;
    justify-content: flex-start;
    border-radius: 0.5em;
    margin-bottom: 1em;
}

.customnote-body > p, .customnote-body > ol, .customnote-body > ul {
    margin-bottom: 0.5em !important;
}

div.nolastmargin > p:last-of-type {
    margin-bottom: 0 !important;
}

a.file-download {
    color: inherit;
    font-weight: bold;
}

a.file-download > div {
    border: 1px solid #dddddd;
    border-radius: 0.5em;
    box-shadow: 0px 1px 2px 2px #eeeeee;
    background-color: #f5f5f5;
    display: inline-block;
    padding: 0.5em;
    margin-right: 0.4em;
}

a.file-download:hover > div {
    background-color: #eeeeee;
}

a.file-download > div > span {
    padding-left: 0.2em
}

.collapsible-toggle {
    display: none;
}

.collapsible-toggle-label {
    display: inline-block;
    font-weight: bold;
    font-size: large;
}

.collapsible-toggle-label:hover {
    filter: brightness(140%)
}

.collapsible-toggle-label::before {
    display: inline-block;
    content: ' ';
    /* Magical CSS triangle; see https://css-tricks.com/snippets/css/css-triangle/ */
    width: 0px;
    height: 0px;
    border-top: .5em solid transparent;
    border-bottom: .5em solid transparent;
    border-left: .75em solid #2980b9;
    margin-right: 0.5em;
    transform: translateY(2px);
    transition: transform .05s ease-in-out;
}

.collapsible-toggle:checked + .collapsible-toggle-label::before {
    transform: rotate(90deg) translateX(3px);
}

.collapsible-content {
    max-height: 0px;
    overflow: hidden;

    transition: max-height .25s ease-in-out;
    padding-top: 0.2em;
    margin-bottom: 1em;
    margin-left: 1.4em;
}

.collapsible-toggle:checked + .collapsible-toggle-label + .collapsible-content {
    max-height: 100vh;
}

.cardgrid-container {
    display: flex;
    flex-wrap: wrap;
    row-gap: 1em;
    column-gap: 1em;
    margin-bottom: 1em;
}

.card {
    position: relative;
    flex: 1 0 48%;
    border: 1px solid #aaaaaa;
    border-radius: 5px;
    padding: 0.5em;
    box-shadow: 0px 1px 2px 2px #dddddd;
    background-color: #f9f9f9;
}

.card-interactive:hover {
    border-color: #2980b9;
    background-color: #fcfcfc;
}

.card-small {
    flex-basis: 0%;
    flex-grow: 1;
}

.card-empty {
    border: none;
    background: none;
    box-shadow: none;
}

.card > p:last-of-type {
    margin-bottom: 0;
}

/* Trick from https://stackoverflow.com/questions/796087/make-a-div-into-a-link */
.cardlinkspan {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 1;
}

.construction-banner {
    background: repeating-linear-gradient(
        45deg,
        #333333,
        #333333 15px,
        #ffee33 15px,
        #ffee33 30px
    );
}

.construction-banner > .banner-label {
    background-color: #ffee33;
    border: 2px solid #333333;
}