.cbc-topbar.portal-nav {
    min-height: 54px;
    margin-bottom: .5rem !important;
    box-shadow: 0 4px 14px rgba(7, 29, 55, .16) !important;
}

header.portal-sticky-header {
    position: sticky;
    top: 0;
    z-index: 1030;
}

.portal-nav > .container-fluid {
    gap: .4rem;
    padding: .3rem .85rem;
}

.portal-nav .navbar-brand {
    gap: .45rem !important;
    font-size: .86rem;
}

.portal-nav .academic-brand-logo {
    width: 40px;
    height: 40px;
    border-radius: 7px;
}

.portal-nav .portal-brand-copy {
    max-width: 140px;
}

.portal-nav .portal-brand-title {
    font-size: .82rem;
}

.portal-nav .portal-brand-subtitle {
    font-size: .53rem;
}

.portal-workspace-context {
    gap: .4rem;
    margin-left: .15rem;
    padding: .27rem .45rem;
    border-radius: 8px;
}

.portal-workspace-icon {
    width: 27px;
    height: 27px;
    flex-basis: 27px;
    border-radius: 7px;
}

.portal-workspace-copy small {
    font-size: .52rem;
}

.portal-workspace-copy strong {
    max-width: 175px;
    font-size: .7rem;
}

.portal-role-badge {
    padding: .2rem .38rem;
    font-size: .56rem;
}

.portal-nav .nav-link {
    padding: .42rem .48rem !important;
    font-size: .72rem;
}

.portal-nav .navbar-collapse {
    row-gap: .2rem;
}

.portal-nav .portal-primary-nav {
    gap: .05rem;
    padding-bottom: .2rem;
}

.portal-nav .portal-global-search .form-control {
    min-height: 34px;
    font-size: .78rem;
}

.portal-nav .portal-global-search .btn {
    min-height: 34px;
    padding: .3rem .5rem;
}

.cbc-portal-footer {
    border-top-width: 2px !important;
    font-size: .7rem !important;
}

.cbc-footer-shell {
    gap: 1.1rem !important;
    padding: .9rem clamp(.85rem, 2vw, 1.75rem) !important;
}

.cbc-footer-kicker {
    font-size: .98rem !important;
}

.cbc-footer-brand p {
    margin: .4rem 0 .5rem !important;
    font-size: .68rem;
    line-height: 1.35 !important;
}

.cbc-footer-status {
    font-size: .66rem !important;
}

.cbc-footer-links {
    gap: .75rem !important;
}

.cbc-footer-links section {
    gap: .24rem !important;
}

.cbc-footer-links h2 {
    margin-bottom: .15rem !important;
    font-size: .61rem !important;
}

.cbc-portal-footer .cbc-footer-links a {
    font-size: .68rem;
    line-height: 1.25;
}

.cbc-footer-bottom {
    gap: .45rem !important;
    padding: .48rem clamp(.85rem, 2vw, 1.75rem) !important;
    font-size: .62rem !important;
}

@media (min-width: 1200px) {
    .portal-nav > .container-fluid {
        padding-top: .25rem;
        padding-bottom: .25rem;
    }

    .portal-nav .portal-primary-nav {
        flex: 1 1 100%;
        padding-bottom: .15rem;
    }

    .portal-nav .portal-global-search {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }
}

@media (max-width: 1199.98px) {
    .portal-nav {
        min-height: 48px;
    }

    .portal-nav .navbar-toggler {
        min-height: 38px;
        padding: .28rem .48rem;
        font-size: .78rem;
    }

    .portal-nav .portal-global-search-mobile {
        margin-bottom: .3rem !important;
    }

    .portal-nav .portal-global-search-mobile .form-control,
    .portal-nav .portal-global-search-mobile .btn {
        min-height: 38px;
    }

    .portal-nav .nav-link,
    .portal-nav .dropdown-item {
        min-height: 38px;
        padding-top: .48rem !important;
        padding-bottom: .48rem !important;
    }
}

@media (max-width: 767.98px) {
    .portal-nav > .container-fluid {
        row-gap: .2rem;
        padding: .25rem .65rem;
    }

    .portal-workspace-context {
        padding: .23rem .4rem;
    }

    .portal-workspace-copy strong {
        max-width: calc(100vw - 105px);
    }
}

@media (max-width: 576px) {
    .portal-nav .academic-brand-logo {
        width: 36px;
        height: 36px;
    }

    .portal-nav .navbar-brand {
        gap: .35rem !important;
    }

    .portal-nav .navbar-brand span {
        max-width: 125px;
    }

    .portal-brand-title {
        font-size: .77rem !important;
    }

    .portal-brand-subtitle {
        font-size: .49rem !important;
    }

    .cbc-footer-shell {
        grid-template-columns: 1fr !important;
        gap: .7rem !important;
        padding: .75rem .8rem !important;
    }

    .cbc-footer-links {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: .65rem .8rem !important;
    }

    .cbc-footer-bottom {
        flex-direction: row !important;
        align-items: flex-start;
        padding: .45rem .8rem !important;
        font-size: .6rem !important;
    }
}
