/*!
 * Start Bootstrap - Simple Sidebar (http://startbootstrap.com/)
 * Copyright 2013-2016 Start Bootstrap
 * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE)
 */

/* Toggle Styles */

#wrapper {
    padding-left: 0;
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;
}

#wrapper.toggled {
    padding-left: 300px;
}

#sidebar-wrapper {
    z-index: 1000;
    position: fixed;
    left: 350px;
    width: 0;
    height: 100%;
    margin-left: -350px;
    overflow-y: auto;
    background: #323544;
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;
}

#wrapper.toggled #sidebar-wrapper {
    width: 350px;}

#page-content-wrapper {
    width: 100%;
    position: absolute;
}

#wrapper.toggled #page-content-wrapper {
    position: absolute;
    margin-right: -350px;
}

/* Sidebar Styles */
.sidebar-nav {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sidebar-nav > li {
    line-height: 50px;
    padding: 0 20px;
    border-bottom: 1px #1c1e2a solid;
}
.sidebar-nav > li a {
    display: block;
    text-decoration: none;
    color: #fff;
}

.sidebar-nav > li a:hover {
    text-decoration: none;
    color: #fff;
}

.sidebar-nav > li a:active,
.sidebar-nav > li a:focus {
    text-decoration: none;
}

.sidebar-nav > .sidebar-brand {
    font-size: 18px;
    line-height: 60px;
}

.sidebar-nav > .sidebar-brand a {
    color: #ddd;
    letter-spacing: 1px;
}

.sidebar-nav > .sidebar-brand a:hover {
    color: #fff;
    background: none;
}

/* Extended Elements */
.sidebar-input .input-group {
    margin: 10px 0px;
}
.sidebar-input .form-control,
.sidebar-input .input-group-addon {
    background-color: transparent;
    border-radius: 0px;
}
.sidebar-input .form-control {
    border-right: none;
    color: #eee;
}
.sidebar-input .input-group-addon {
    border-left: none;
    color: #ccc;
}
.sidebar-input .form-control:focus + .input-group-addon {
    border-color: #66afe9;
}

@media(min-width:768px) {
    #wrapper {
        padding-left: 350px;
    }

    #wrapper.toggled {
        padding-left: 0;
    }

    #sidebar-wrapper {
        width: 350px;    }

    #wrapper.toggled #sidebar-wrapper {
        width: 0;
        padding: 0;
    }

    #page-content-wrapper {
        position: relative;
    }

    #wrapper.toggled #page-content-wrapper {
        position: relative;
        margin-right: 0;
    }
}