html, body {
    height: 100%;
}

.fill {
    height: 100%;
    overflow: hidden;
}

body {
    background-color: #F5F5F5;
    padding: 0;
    -webkit-user-select: none; /* disable text selection */
    word-break: break-all;
}

/* don't break label elements into separate lines when there is no space */
form label {
    white-space: nowrap;
}

.hidden {
    display: none;
}

.clear {
    clear: both;
}

.btn-link {
    padding: 0;
    vertical-align: top;
}

.container-fluid {
    padding: 0;
}

#debugDisabled {
    padding: 15px;
}

#waiting {
    padding: 15px;
}

.mainTabs {
    height: 100%;
    margin-right: 0 !important;
    margin-bottom: 0;
}

/* Turns dropdown into dropright for left-aligned nav-tabs */
.tabs-left .nav-tabs .dropdown-menu {
    position: absolute;
    left: -89px;
    top: 35px;
    border-radius: 0;
}

.tabs-left .nav-tabs .dropdown-menu li a {
    padding: 10px 20px;
}

.tabs-left .nav-tabs .dropdown-menu li a:hover {
    background: #03a9f4;
}

.caret-right {
    -webkit-transform: rotate(270deg);
}

/* Position tabs to the top */
.tabs-left .nav-tabs {
    float: right;
    border: 0;
    width: 100%;
    height: auto;
}

.tabs-left .mainTabs {
    background: #FFFFFF;
    box-shadow: 2px 2px 4px rgba( 0, 0, 0, 0.1);
}

@media (max-width: 380px) {
    .tabs-left .mainTabs {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .tabs-left .mainTabs #optionsTab {
        order: 5;
    }

    .tabs-left .mainTabs #appRoutersTab {
        order: 4;
    }

    .tabs-left .mainTabs #appCollectionsTab {
        order: 3;
    }

    .tabs-left .mainTabs #appModelsTab {
        order: 2;
    }

    .tabs-left .mainTabs #appViewsTab {
        order: 1;
    }

}

.tabs-left>.nav-tabs.nav-tabs>li>.dropdown-toggle>.caret {
    transition: transform 0.3s ease-in-out;
}

.tabs-left>.nav-tabs.nav-tabs .open .dropdown-toggle {
    color: #0088cc;
    border: none;
    background: transparent;
}

.tabs-left>.nav-tabs.nav-tabs .open .caret {
    border-top-color: #0088cc;
    border-bottom-color: #0088cc;

    transform: rotate(360deg);
}

.tabs-left>.nav-tabs>li, .tabs-right>.nav-tabs>li {
    float: right;
    display: inline-block;
}

.tabs-left>.nav-tabs>li>a {
    border-width: 0 0 2px 0;
    border-radius: 0;
}

.tabs-left>.nav-tabs>li>a:hover, .tabs-left>.nav-tabs>li>a:focus {
    border: 0;
    border-bottom: 2px solid #B3E5FC;
    background: transparent;
}

.tabs-left>.nav-tabs>li#appTitleTab {
    float: left;
}

.tabs-left>.nav-tabs>li>p {
    padding: 8px;
    line-height: 20px;
    margin: 0;
}

.tabs-left>.nav-tabs>li#appTitleTab>p {
    font-family: sans-serif;
    font-weight: 500;
    font-size: 1rem;
    padding: 10px;
}

.mainTabsContent {
    position: relative; /* required for .tab-pane absolute positioning */
    width: 100vw;
    margin-top: 40px; /* Push the content down so it's visible */
}

.mainTabsContent>.tab-pane {
    height: calc(100% - 40px);
    overflow-y: auto;
    display: block !important; /* prevents render on tab change */
    position: absolute;
    width: 100%;
}

.appComponentsOptions li {
    height: 40px;
}

/** Responsive **/
.appComponentsOptions .navbar-inner {
    border: none;
    padding-left: 12px;
    padding-right: 0;
    box-shadow: none;
}

@media (min-width: 1181px) {
    .tab-pane .appComponentsOptions {
        height: 0;
        opacity: 0;
    }

    .tab-pane.active .appComponentsOptions {
        position: fixed;
        top: 0;
        left: 160px;
        height: initial;
        opacity: 1;
    }

    .appComponentsOptions .navbar-inner {
        background: transparent;
    }

    .appComponentsOptions .navbar-inner > .nav {
        background: #FFF;
    }

    .appComponentsOptions .navbar-inner .searchForm .searchTerm {
        border: none;
        box-shadow: 1px 1px 2px rgba( 0, 0, 0, 0.1);
    }

    .appComponentsOptions .navbar-inner .sortForm select {
        border: none;
        box-shadow: 1px 1px 2px rgba( 0, 0, 0, 0.1);
    }
}

@media (max-width: 1180px) {

    .appComponentsOptions .navbar-inner {
        background: transparent;
        margin-top: 5px;
    }

    .appComponentsOptions .navbar-inner {
        background: transparent;
    }

    .appComponentsOptions .navbar-inner .searchForm .searchTerm {
        border: none;
        box-shadow: 1px 1px 2px rgba( 0, 0, 0, 0.1);
    }

    .appComponentsOptions .navbar-inner .sortForm select {
        border: none;
        box-shadow: 1px 1px 2px rgba( 0, 0, 0, 0.1);
    }
}

@media (max-width: 655px) {
    #appTitleTab {
        display: none;
    }
}

@media (max-width: 500px) {

    .tabs-left>.nav-tabs>li>a, .tabs-right>.nav-tabs>li>a {
        min-width: initial;
    }

}

.icon-chevron-bottom {
    -webkit-transform: rotate(90deg);
}

.icon-chevron-top {
    -webkit-transform: rotate(-90deg);
    margin-top: 3px;
}

/* prevent highlight around button on click */
.resetSearch:focus {
    outline: none;
}

.appComponentsOptions .sortForm {
    margin-top: 5px;
    margin-left: 10px;
}
.appComponentsOptions .sortForm label {
    margin-right: 5px;
}
.appComponentsOptions .sortForm select {
    width: 120px;
}

.more {
    text-align: center;
    width: 100%;
    word-break: initial;
    padding-bottom: 40px;
}

.appComponentsContent {
    margin: 0;
    padding: 5px 15px 15px 15px;
}

.appComponentList>li {
    background-color: #EBEBEB;
    margin-bottom: 0;
}

.appComponentList {
    background: transparent;
    float: none !important;
}

.appComponentToggle {
    text-align: left;
    margin-top: -1px;
}
.appComponentToggle span {
    -webkit-user-select: text;
}

.removed {
    text-decoration: line-through;
    color: #808080; /* grey */
}

@-webkit-keyframes highlight {
    0%  { background-color: #57A0FF;
        color: black; }
}
.highlight {
    -webkit-animation: highlight 2s;
}

.appComponent {
    background-color: white;
    border-style: solid;
    border-color: rgb(221, 221, 221);
    border-width: 0 1px 1px;
    border-collapse: collapse;
    -webkit-user-select: text;
}

.appComponent ul {
    padding-top: 5px;
}

.appComponentActions {
    max-height: 185px !important;
    overflow-x: hidden;
    overflow-y: auto;
    margin-bottom: 20px;
}

.appComponentActions form {
    margin-bottom: 10px;
    margin-right: 10px;
}

.appComponentActions form input {
    height: 14px;
}

.appComponentActions .resetSearch {
    margin-top: 4px;
}

.appComponentActions .sortForm {
    margin-top: 5px;
}

.appComponentActions .sortForm select {
    width: 100px;
    padding: 0;
    height: 24px;
}

.appComponentActions table {
    margin-bottom: 0;
}

.nav-tabs.nav-stacked>li>a {
    background: #03A9F4;
    color: #FFF;
    text-shadow: none;
}

.nav-tabs.nav-stacked>li>a.collapse, .nav-tabs.nav-stacked>li>a.collapsed {
    background: #FFF;
    color: #333333;
    text-shadow: none;
}

.nav-tabs.nav-stacked>li>a.collapse:hover, .nav-tabs.nav-stacked>li>a.collapsed:hover {
    border-color: #64B5F6;
    background: #64B5F6;
    color: #FFF;
}

.appComponent > ul {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
}

.appComponent > ul > li {
    width: 25%;
    padding: 5px;
}

.appComponent > ul > li:last-child {
    width: 100%;
}

@media (max-width: 750px) {
    .appComponent > ul {
        flex-direction: column;
    }

    .appComponent > ul > li {
        width: 100%;
    }
}