.flexbox {
    display: flex;
    flex-direction: row;
    width: 100vw;
    height: 100vh;
    flex-wrap: nowrap;
}

.flexboxin {
    display:flex;
    flex-direction: column;
    width: 45%;
    height: 100%;
}

ul {
    list-style-type: none;
}
.tab-area {
    display: flex;
    border: 2px solid;
    cursor: pointer;/* カーソルポインターに */
    margin-left: 5%;
    margin-top: 2%;
    padding-left: 0;
}
.tab {
    width: calc(100%/3);
    padding: 5px;
    text-align: center;
}
.tab:nth-child(n+2) {
    border-left: 2px solid;
}
.tab.active {
    background-color: #000;
    color: #fff;
}
.panel-area {
    width: 100%;
    height: 100%;
}
.panel {
    display: none;
    height: 100%;
}
.panel.active {
    display: block;
    height: 100%;
}

.pdf_viewer {
    margin-top: 10px;
    width: 100%;
    height: 95%;
    margin-left: 10px;
}

.container {
    width: 50%;
    height: 95%;
    margin-left: auto;
    margin-right: 20px;
    padding: 20px;
    flex-direction: column;
}

.title {
    padding: 2px;
}

.chat_box {
    width: 99%;
    height: 90%;
    padding-bottom: 70px !important;
    overflow-y: scroll;
    scroll-behavior: smooth;
    box-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.2) inset;
    background-color: #f1f0f0;
}

.send_box {
    display: flex;
    flex-direction: row;
    width: 99%;
    height: 10px;
    padding: 10px;
}


.my-message-box {
    width: fit-content;
    position: relative;
    padding: 20px;
    margin-top: 20px;
    border-radius: 25px 25px 0px 25px;
    /* 吹き出し風 */
}

.my-message {
    margin-left: auto;
    margin-right: 0;
    text-align: left;
    background-color: #007bff;
    color: white;
    font-size: 22;
    font-weight: bold;
}

.ai-message-box {
    width: fit-content;
    position: relative;
    padding: 20px;
    margin-top: 20px;
    border-radius: 25px 25px 25px 0px;
    /* 吹き出し風 */
}

.ai-message {
    margin-left: 0;
    margin-right: 40%;
    text-align: left;
    background-color: #6c757d;
    color: white;
    font-size: 22;
    font-weight: bold;
}

.chat-text {
    padding-left: 0px;
}

.send_message {
    width: calc(100% - 85px);
    /*常に送信ボタンの横幅を引いたサイズに動的に計算*/
    height: 70px;
    line-height: 16px;
    padding: 14px 6px 0px 6px;
    /*文字がテキストエリアの中心になる様に隙間調整*/
    border: 1px solid #ccc;
    border-radius: 4px;
    /*角丸*/
    text-align: left;
    /*文字を左寄せ*/
    box-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.2) inset;
    /*内側に影を入れてテキストエリアらしくした*/
    box-sizing: border-box;
    /*paddingとborderの要素の高さと幅の影響をなくす（要素に高さと幅を含める）*/
}

.send_btn {
    width: 80px;
    height: 70px;
    line-height: 3em;
    margin-left: auto;
    margin-right: 0;
    background-color: #007bff;
    color: white;
    font-weight: bold;
    font-size: 22;
    border-radius: 4px;
    text-align: center;
    /*文字をボタン中央に表示*/
    border: 1px solid #bbb;
    box-sizing: border-box;
    /*paddingとborderの要素の高さと幅の影響をなくす（要素に高さと幅を含める）*/
}

.img-box {
    width: 500px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
}


/*---------- ローディングアニメーション ----------*/

.loading {
    display: flex;
    justify-content: center;
}

.loading>span {
    margin: 0px 10px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: white;
    animation: loading_anime 1s linear 0s infinite normal both;
}

.loading>span:nth-of-type(2) {
    animation-delay: 0.2s;
}

.loading>span:nth-of-type(3) {
    animation-delay: 0.4s;
}

@keyframes loading_anime {
    0% {
        transform: scale(0);
    }

    25% {
        transform: scale(1);
    }

    50% {
        transform: scale(1);
    }

    75% {
        transform: scale(1);
    }

    100% {
        transform: scale(0);
    }
}