* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

@media (max-width: 767px) {
    .container-flex {
        display: block;
    }
}

@media (min-width: 768px) {
    .container-flex {
        display: flex;
    }
}

body {
    /* display: flex;
  justify-content: center;
  align-items: center; */
    height: 100vh;
    background-color: #f2f9fb;
}

.navigation {
    position: fixed;
    top: 0;
    left: 0;
    /*position: relative;*/
    height: 100vh;
    max-height: 100%;
    width: 50px;
    background-color: #181a64;
    box-shadow: 5px 0 0 #e09f45;
    border-left: 1px solid #4d4c86;
    overflow-x: hidden;
    overflow-y: auto;
    z-index: 1050;
    transition: all 0.9s;
}

@media (max-width: 576px) {
    /* スマートフォンの場合のみ、navigation要素のpositionをfixedにする */
    .navigation {
        position: fixed;
        height: 100%;
    }

        .navigation:hover {
            width: 160px;
        }
}

.navigation:hover {
    width: 200px;
}

.navigation ul {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding-top: 20px;
    padding-left: 3px;
}

    .navigation ul li {
        list-style: none;
        display: block;
        position: relative;
        width: 100%;
        border-radius: 15px;
    }

        .navigation ul li:hover {
            background-color: #5e8be6;
        }

        .navigation ul li.active {
            background-color: #e09f45;
            border-top-left-radius: 20px;
            border-bottom-left-radius: 20px;
        }

        .navigation ul li a {
            display: block;
            position: relative;
            text-decoration: none;
            color: white;
            width: 100%;
            display: flex;
        }

        .navigation ul li.active a::before {
            content: "";
            position: absolute;
            width: 30px;
            height: 30px;
            /*background-color: red;*/
            top: -30px;
            right: 0;
            border-radius: 50%;
            box-shadow: 15px 15px 0px #e09f45;
        }

        .navigation ul li.active a::after {
            content: "";
            position: absolute;
            width: 30px;
            height: 30px;
            /*background-color: red; */
            top: 60px;
            right: 0;
            border-radius: 50%;
            box-shadow: 15px -15px 0 #e09f45;
        }

        .navigation ul li a .icon {
            display: block;
            min-width: 45px;
            height: 60px;
            line-height: 60px;
            text-align: center;
        }


            .navigation ul li a .icon ion-icon {
                font-size: 1.5em;
            }

        .navigation ul li a .title {
            padding-left: 10px;
            height: 60px;
            line-height: 60px;
            white-space: nowrap;
        }

.errmess {
    color: #ac2323;
    font-weight: bold;
}



main {
    margin-left: 50px; /* サイドバーの幅に加えた余白 */
    /*padding: 10px;*/
}
