#app-wrapper {
    display: -ms-grid;
    display: grid;
    grid-template-areas: "header header" "sidebar content" "footer footer";
    -ms-grid-columns: 5rem 1fr;
    grid-template-columns: 5rem 1fr;
    -ms-grid-rows: 4rem 1fr auto;
    grid-template-rows: 4rem 1fr auto;
    min-height: 100vh
}

#app-wrapper[aria-expanded="true"] {
    -ms-grid-columns: 14rem 1fr;
    grid-template-columns: 14rem 1fr
}

#app-wrapper #app-nav {
    -ms-grid-row: 1;
    -ms-grid-column: 1;
    -ms-grid-column-span: 2;
    grid-area: header
}

#app-wrapper #app-sidebar {
    -ms-grid-row: 2;
    -ms-grid-column: 1;
    grid-area: sidebar
}

#app-wrapper #app-content {
    -ms-grid-row: 2;
    -ms-grid-column: 2;
    grid-area: content;
    margin-top: 10px;
    //overflow: auto
}

#app-wrapper #app-footer {
    -ms-grid-row: 3;
    -ms-grid-column: 1;
    -ms-grid-column-span: 2;
    grid-area: footer
}

body#login-page #app-wrapper,
body#login-page #app-wrapper[aria-expanded="true"] {
    -ms-grid-columns: 0 1fr;
    grid-template-columns: 0 1fr
}

_:-ms-fullscreen,:root #app-content {
    min-height: calc(-110vh)
}

.app--padding {
    padding: 1rem
}

.container-fluid {
    max-width: 98%;
}

section {
    padding: 10px 0;
}

@media (max-width: 979px) {
    body.expanded {
        overflow:hidden
    }

    #app-wrapper {
        -ms-grid-columns: 0 1fr;
        grid-template-columns: 0 1fr
    }

    #app-wrapper[aria-expanded="true"] {
        -ms-grid-columns: 0 1fr;
        grid-template-columns: 0 1fr
    }
}

.app-navbar {
    background: #fff;
    margin-bottom: 0;
    border-bottom: 1px solid rgba(0,0,0,0.2);
    box-shadow: 0 1px 2px 0 rgba(0,0,0,0.2);
    height: 4rem;
    width: 100%;
    padding: 0 1rem
}

.app-navbar.app-navbar--fixed {
    position: fixed;
    top: 0;
    z-index: 1000
}

.app-navbar__container {
    display: flex;
    flex-wrap: nowrap;
    height: 100%;
    align-items: center
}

.app-navbar__menu-toggle {
    background-color: transparent;
    background-image: none;
    border: none;
    border-radius: 50%;
    width: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center
}

.app-navbar__menu-toggle:hover,.app-navbar__menu-toggle:focus {
    background-color: #dedede;
    outline: none
}

.app-brand {
    flex-grow: 1
}

.app-brand .app-brand__link {
    display: flex;
    align-items: center;
    height: inherit;
    flex-grow: 1;
    text-decoration: none;
    color: #202024
}

.app-brand .app-brand__logo {
    background-image: url(crest.svg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    display: block;
    height: 40px;
    width: 40px
}

.app-brand .app-brand__title {
    display: block;
    margin-left: 7px;
    border-left: 1px solid #202024;
    padding-left: 10px;
    line-height: 1.2;
    font-weight: normal
}

.app-navbar__menu-toggle+.app-brand {
    margin-left: 1rem
}

.app-logged-in {
    font-size: 1rem;
    margin-left: 1rem
}

@media (max-width: 568px) {
    .app-logged-in .app-logged-in__info {
        display:none
    }
}

.app-logged-in a {
    font-weight: normal;
    text-decoration: underline
}

@media (max-width: 568px) {
    .app-navbar {
        padding-left:0.5rem
    }

    .app-navbar__menu-toggle+.app-brand {
        margin-left: 0.5rem
    }
}

.app-sidebar__nav {
    width: inherit;
    font-size: 1rem
}

.app-sidebar__nav-list {
    list-style: none;
    padding: 0;
    margin: 0
}

.app-sidebar__nav-list li {
    margin: 0
}

.app-sidebar__nav-list li.active {
    background-color: #dedede
}

.app-sidebar__nav-divider {
    border-top: 1px solid rgba(0,0,0,0.2)
}

.app-sidebar__expanded-only {
    display: none
}

.app-sidebar__nav-item {
    padding: 0.5rem 1rem
}

.app-sidebar__nav-item a {
    color: inherit;
    font-weight: normal;
    text-decoration: underline
}

.app-sidebar__nav-item a:hover,.app-sidebar__nav-item a:focus {
    color: #00539b
}

.app-sidebar__nav-icon {
    width: 3rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto
}

.app-sidebar__nav-text {
    display: none;
    line-height: 1.25
}

.app-sidebar__nav-item--link {
    color: #202024;
    display: flex;
    text-decoration: none;
    -ms-flex-align: center;
    align-items: center;
    min-height: 3.5rem
}

.app-sidebar__nav-item--link:hover,.app-sidebar__nav-item--link:focus {
    background-color: #dedede;
    color: inherit;
    text-decoration: none
}

.app-sidebar__nav-item--link:focus {
    background-color: #dedede
}

.app-sidebar__nav-item--link:focus .app-sidebar__nav-text {
    text-decoration: underline
}

@media (max-width: 568px) {
    .app-sidebar__nav-item--link {
        padding-left:0.5em
    }
}

#app-wrapper[aria-expanded="true"] .app-sidebar__nav-text {
    display: inline-block
}

#app-wrapper[aria-expanded="true"] .app-sidebar__expanded-only {
    display: block
}

_:-ms-fullscreen,:root #app-sidebar #app-sidebar-nav ul li a {
    height: 3vh
}

@media (min-width: 979px) {
    #app-wrapper[aria-expanded="true"] #app-sidebar {
        width:14rem
    }

    #app-wrapper .app-sidebar {
        background: #fafafa;
        border-right: 1px solid rgba(0,0,0,0.2)
    }

    #app-wrapper .app-sidebar__nav {
        position: sticky;
        top: 4rem
    }
}

@media (max-width: 979px) {
    .app-sidebar {
        background-color:rgba(68,68,68,0.4);
        z-index: 1000
    }

    .app-sidebar__nav {
        background-color: #fafafa;
        width: 60vw;
        height: 100vh;
        transform: translateX(-60vw) translateZ(0);
        transition: transform 0.35s;
        padding: 0
    }

    #app-wrapper.expanded .app-sidebar {
        position: fixed;
        width: 100vw;
        height: 100%;
        top: 4rem
    }

    #app-wrapper.expanded .app-sidebar__nav {
        transform: translateX(0) translateZ(0);
        border-bottom: 4rem solid;
        overflow-y: auto !important
    }

    #app-wrapper.expanded #app-sidebar-scrim {
        position: fixed;
        top: 0;
        bottom: 0;
        right: 0;
        left: 0;
        z-index: -1
    }
}

@media (max-width: 568px) {
    .app-sidebar__nav {
        width:80vw;
        transform: translateX(-80vw) translateZ(0)
    }

    #app-wrapper.expanded .app-sidebar__nav {
        transform: translateX(0) translateZ(0)
    }
}

.app-footer {
    background: #fafafa;
    border-top: 1px solid rgba(0,0,0,0.2);
    padding: 1rem;
    font-size: 1rem
}

.app-footer p {
    margin: 0 0 0.5rem 0
}

.app-footer__links {
    list-style: none;
    margin: 0 -0.5rem;
    padding: 0
}

.app-footer__links li {
    display: inline-block;
    margin: 0 0.5rem
}

.app-footer__links a {
    color: inherit;
    font-weight: normal;
    text-decoration: underline
}

.app-footer__links a:hover,.app-footer__links a:focus {
    color: #00539b
}

.callout {
    padding: 20px;
    margin-bottom: 20px
}

.callout.no-siblings {
    margin-bottom: 0
}

.callout h4 {
    margin-top: 0;
    margin-bottom: 5px
}

.callout p:last-child {
    margin-bottom: 0
}

.callout.callout-default {
    border-left: 5px solid #202024
}

.callout.callout-default h4,.callout.callout-default a {
    color: #202024
}

.callout.callout-primary {
    border-left: 5px solid #00539b
}

.callout.callout-primary h4,.callout.callout-primary a {
    color: #00539b
}

.callout.callout-success {
    border-left: 5px solid #00853f
}

.callout.callout-success h4,.callout.callout-success a {
    color: #00853f
}

.callout.callout-danger {
    border-left: 5px solid #ea1a13
}

.callout.callout-danger h4,.callout.callout-danger a {
    color: #ea1a13
}

.callout.callout-warning {
    border-left: 5px solid #bf5909
}

.callout.callout-warning h4,.callout.callout-warning a {
    color: #bf5909
}

.callout.callout-info {
    border-left: 5px solid #007bc2
}

.callout.callout-info h4,.callout.callout-info a {
    color: #007bc2
}

/* Reduce the slightly overkill bottom margin inflicted on all tables by the DPL */
.table {
    margin-bottom: 1rem;
}