/* General */

body {
    /* The height of a horizontal scrollbar can cause a vertical scrollbar to appear on the `body`.
     * Add an `overflow-y: hidden` to prevent this, and just ignore the small part of the content
     * hidden under the horizontal scrollbar.
     */
    overflow-y: hidden;
}

a.cardlink {
    text-decoration: none;
    border-radius: var(--bs-border-radius);
    box-shadow: 0 0px 0px rgba(0, 0, 0, 0.0);
    transition: box-shadow 0.2s;
}

a.cardlink:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

/* Footer */

footer.dtc-footer {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    text-align: center;
    padding: 0.25rem;
    color: #ffffff;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.9);
    pointer-events: all;
    font-size: 12px;
}

@media(max-width: 1900px) {
    footer.dtc-footer {
        text-align: right;
        right: 2rem;
        width: auto;
    }
}

/* Navbar */

:root {
    --w: 4rem;
    --expand-w: 20rem;
    --bg: #b3daff;
    --fg: black;
    --active-bg: #0071d8;
    --active-fg: white;
    --hover-bg: #e6f3ff;
    --hover-fg: black;
}

div.nav-links-container {
    position: relative;
    display: flex;
    flex-direction: column;
    margin-top: 0.5rem;
    gap: 0.5rem;
    width: var(--w);
    z-index: 10;
}

a.nav-link {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    background-color: var(--bg);
    color: var(--fg);
    border-radius: 0 1.5rem 1.5rem 0;
    width: var(--w);
    height: var(--w);
    overflow: hidden;
    transition: width 0.2s ease-in-out;
}

div.nav-links-container:hover a.nav-link {
    width: var(--expand-w);
}

a.nav-link:hover {
    background-color: var(--hover-bg);
    color: var(--hover-fg);
}

a.nav-link.active {
    background-color: var(--active-bg);
    color: var(--active-fg);
}

div.nav-link-symbol {
    position: absolute;
    left: 0;
    top: 0;
    width: var(--w);
    height: var(--w);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
}

div.nav-link-symbol img {
    width: 2.5rem;
    filter: invert();
}

a.nav-link.active div.nav-link-symbol img {
    filter: none;
}

div.nav-link-text {
    position: absolute;
    left: var(--w);
    top: 0;
    height: var(--w);
    padding-right: 2rem;
    line-height: var(--w);
    white-space: nowrap;
    padding-left: 1rem
}

/* Dashboards */

.dashboard-section {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    pointer-events: all;
    opacity: 1;
    transition: opacity 0.5s ease-in-out;
}

.dashboard-section.hidden {
    opacity: 0;
    pointer-events: none;
}