.CommentThreadContainer {
    display: grid;
    /* Component間の距離 */
    gap: 30px;

    .Hide {
        display: none !important;
    }
    .ComponentBox {}
}

.CommentThreadComponent {
    display: grid;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    background-color: #fff;

    .OriginSection {
        display: grid;
        gap: 20px;
        padding: 20px;

        .OriginComment {
            display: grid;
            gap: 15px;
            /* padding: 10px 10px 10px 10px; */
            /* border-top: 1px solid #ddd; */
        
            .NewBadge {
                width: fit-content;
                font-size: 0.8em;
                color: #fff;
                background-color: var(--SecondaryColor);
                padding: 2px 10px;
                border-radius: 5px;
            }
    
            .Info {
                display: grid;
                align-items: center;
                grid-template-columns: 20px 1fr;
                gap: 7px;
    
                i {
                    font-size: 20px;
                    color: #555;
                }
                .AuthorName {
                    font-size: 0.9em;
                    color: #555;
                }
            }
    
            .MainContent {
                font-size: 1em;
                color: #555;
            }
    
            .SubContent {
                font-size: 0.8em;
                color: #777;
            }

            .CreatedAt {
                font-size: 0.7em;
                font-weight: 300;
                color: #999;
                text-align: right;
            }

            &.Skeleton {
                .Info {
                    i {
                        color: #ccc;
                    }
                    .AuthorName {
                        color: #ccc;
                    }
                }
                .Comment {
                    height: 50px;
                    background-color: #eee;
                }
                .Translation {
                    height: 50px;
                    background-color: #eee;
                }
                .CreatedAt {
                    color: #ccc;
                }
            }
        }
    }

    .ReplyListSectionWrapper {
        min-height: 130px;
        max-height: 500px;
        height: 200px;
        resize: vertical; /* ユーザーが垂直方向にサイズを変更可能にする */
        
        display: grid;
        align-content: end; /* 下に揃える */

        overflow-x: hidden;
        overflow-y: auto;
        scroll-behavior: smooth;
        /* box-shadow: inset 0 -15px 15px -15px rgba(0, 0, 0, 0.1); */
        background-color: #ddd;
        border-top: 1px solid #ddd;
        position: relative; /* EmptyMessageの絶対配置の基準 */      

        .ReplyListSection {
            display: grid;
            gap: 15px;
            padding: 20px 30px;
            overflow-y: auto;
            max-height: 100%; /* 高さを親要素に合わせる */
        }

        .ReplyComment {
            display: grid;
            gap: 3px;
            width: 80%;

            &.OwnComment {
                justify-self: right;
                .MessageBox {
                    background-color: #eee;
                }
            }

            .MessageBox {
                display: grid;
                gap: 5px;
                border-radius: 5px;
                background-color: #f5f5f5;
                padding: 10px;

                .Info {
                    display: grid;
                    align-items: center;
                    grid-template-columns: 0.9em 1fr;
                    gap: 7px;
        
                    i {
                        font-size: 0.8em;
                        color: #777;
                    }
                    .AuthorName {
                        font-size: 0.7em;
                        color: #777;
                    }
                }
                .MainContent {
                    font-size: 1em;
                    color: #555;
                }
                .SubContent {
                    font-size: 0.8em;
                    color: #777;
                }
            }

            .CreatedAt {
                font-size: 0.65em;
                font-weight: 300;
                color: #999;
                text-align: right;
            }
        }

        .ReplyComment_Empty {
            position: absolute;
            inset: 0;
            
            display: grid;
            place-items: center;
            place-content: center;
            
            font-size: 0.9em;
            color: #777;
        }
    }

    @media screen and (max-width: 600px) {
        .ReplyListSection {
            min-height: 130px;
            max-height: 300px;
            height: fit-content;
        }
    }

    .ReplyInputSection {
        display: grid;
        padding: 20px;
        grid-template-columns: 1fr 50px;
        row-gap: 5px;

        .ReplyTextarea {
            border-radius: 5px 0px 0px 5px;
            border-right: none;
        }
        .ReplyTextarea:focus {
            border: 1px solid var(--SubColor);
            border-right: none;
            outline: none;
        }

        .ReplySubmitButton {
            border: none;
            cursor: pointer;
            border-radius: 0px 5px 5px 0px;
            background: var(--SubColor);

            i {
                font-size: 20px;
                color: #fff;
            }
        }
        .ReplySubmitButton:hover {
            background: var(--PrimaryColor);
        }
        .ReplySubmitButton:disabled {
            background: #999;
            cursor: not-allowed;
        }
    }

    /* 新規コメントコンポーネント用 */
    &.NewComment {
        border: 2px solid var(--TintColor);
    }
    .TitleSection {
        padding: 20px;
        padding-bottom: 0px;
        color: #333;
    }
}