body {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background-color: #f0f0f0; /* 배경색을 추가하여 디자인을 개선 */
}

.container {
    position: relative;
    max-width: 95%; /* max-width를 95%에서 80%로 조정하여 컨테이너 크기를 조금 줄임 */
    width: 70vw;
    min-height: 70vh;
    background-color: #ffffff; /* 배경색을 추가하여 컨테이너를 더 잘 보이게 함 */
    padding: 20px;
    border: 1px solid #e5e5e5;
    border-radius: 10px;
    box-shadow: 2px 2px 12px rgba(0, 0, 0, 0.1);
}

h2, h1 {
    color: #333;
    text-align: center;
}

h1 {
    font-size: 20px;
    margin-bottom: 20px;
}

label {
    display: block;
    margin-bottom: 8px;
}

.center {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    margin-bottom: 10px;
}

.low {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    margin-top: 100px;
}

.form-control {
    width: 100%;
    padding: 10px;
    margin-bottom: 20px;
    border: 1px solid #ccc;
    border-radius: 5px;
}

.table {
    border-collapse: collapse;
}

.table th, .table td {
    padding: 15px;
    border: 1px solid #e5e5e5;
    text-align: center;
}

.table-responsive {
    width: 100%;
    overflow-x: auto;
}

.table th {
    background-color: #f5f5f5;
    font-weight: bold;
}

.btn {
    padding: 10px 20px;
    border: none;
    border-radius: 5px;
    color: white;
    cursor: pointer;
    margin-right: 10px;
}

.btn-primary {
    background-color: #007BFF;
}

.btn-secondary {
    background-color: #6c757d;
}

.btn-danger {
    background-color: #dc3545;
}

.btn-primary:hover {
    background-color: #0056b3;
}

.btn-secondary:hover {
    background-color: #5a6268;
}

.btn-danger:hover {
    background-color: #c82333;
}

.btn-group {
    /*margin-top: 100px;  !* 버튼 위쪽에 마진 추가 *!*/
    /*position: absolute;  !* 절대 위치 지정 *!*/
    /*bottom: 20%;  !* 컨테이너 바닥에서 20px 위에 위치 *!*/
    /*left: 50%;  !* 중앙 정렬을 위한 설정 *!*/
    /*transform: translateX(-50%);  !* 중앙 정렬 보정 *!*/

    margin-top: 20px;
    display: flex;
    justify-content: center;
    bottom: 20%;
}

.back-arrow {
    position: absolute;
    top: 10px;
    left: 10px;
    font-size: 25px;
    cursor: pointer;
    background-color: white;
    color: black;
}

.progress-container {
    width: 100%;
    background-color: #f3f3f3;
    margin-top: 20px;
}

.progress-bar {
    width: 0%;
    height: 30px;
    background-color: #4CAF50;
    text-align: center;
    line-height: 30px;
    color: white;
}

.modal-dialog {
    width: 80vw;
    max-width: 600px;
    padding: 20px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.modal-content {
    border-radius: 10px;
    overflow: hidden;
}

.modal-header {
    background-color: #f5f5f5;
}

.modal-title {
    font-weight: bold;
}

.modal-body {
    padding: 20px;
}

.modal-footer {
    justify-content: space-between;
}

.modal-backdrop {
    background-color: rgba(0, 0, 0, 0.5);
}

.modal-body select {
    height: 40px; /* 높이 조절 */
    font-size: 16px; /* 폰트 크기 조절 */
}

.speech-bubble-container {
    /*position: fixed;*/
    /*bottom: 60px;*/
    /*right: 80px;*/
    /*display: flex;*/
    /*align-items: center;*/
    position: absolute; /* 이를 absolute로 변경하여 컨테이너에 상대적으로 위치하도록 함 */
    bottom: -80px; /* 하단에서의 위치를 조정하여 컨테이너 밖에 표시되도록 함 */
    right: 80px; /* 오른쪽 패딩을 조정 */
    /*left: 20px; !* 왼쪽 패딩을 조정하여 중앙에 위치하도록 할 수도 있음 *!*/
    display: flex;
    align-items: center;
}

.speech-bubble {
    padding: 10px;
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 10px;
    margin-right: 10px; /* 사람 이미지와의 간격 조정 */
}

.speech-bubble::after {
    content: '';
    position: absolute;
    right: -10px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 10px solid #fff;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
}

.person-image {
    width: 100px;
    height: 100px;
    background-color: #ccc;
    border-radius: 50%;
    background-image: url('../image/person_img.png'); /* 사람 이미지 URL */
    background-size: cover;
    background-position: center;
}

/* 모바일 환경에서의 스타일 */
@media (max-width: 767px) {
    body {
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        min-height: 100vh;
        background-color: #ffffff;
    }

    .container {
        position: relative;
        max-width: 95%; /* max-width를 95%에서 80%로 조정하여 컨테이너 크기를 조금 줄임 */
        width: 90vw;
        background-color: #ffffff; /* 배경색을 추가하여 컨테이너를 더 잘 보이게 함 */
        padding: 10px;
        border: none;
        box-shadow: none;


    }

    h1 {
        font-size: 17px;
    }

    h1 .mobile-break {
        display: block;
    }

    .low {
        margin-top: 150px;
    }

    .table-responsive table {
        font-size: 14px; /* Smaller font size for mobile */
        margin-bottom: 0;
    }

    .table-responsive table, .speech-bubble {
        font-size: 12px; /* Smaller font size for very small screens */
    }

    .table th, .table td {
        padding: 10px;
        border: 1px solid #e5e5e5;
        text-align: center;
    }

    .form-control {
        padding: 10px;
        margin-bottom: 10px; /* More space between inputs on mobile */
    }

    .speech-bubble {
        font-size: 14px; /* Smaller text in speech bubble for readability on mobile */
    }

    .mobile-break {
        display: block; /* Stack the text for narrower screens */
    }


    /* 버튼과 폼 요소를 위한 스타일 */
    .btn, .form-control {
        font-size: 16px; /* 모바일에서의 탭 가능한 크기 */
        padding: 10px; /* 충분한 패딩을 제공 */
    }

    /* 간격과 패딩 조정 */
    .p-2 {
        padding: 0.5rem !important; /* 모바일에 적합한 패딩 */
    }

    .m-2 {
        margin: 0.5rem !important; /* 모바일에 적합한 마진 */
    }
.person-image {
    width: 100%;
}
    .speech-bubble-container {
        right: 80px; /* 오른쪽 패딩을 조정 */
    }

    /*!* 태블릿 화면 크기에 대한 최적화 *!*/
    /*@media (min-width: 768px) {*/
    /*    .container {*/
    /*        max-width: 80%;*/
    /*        padding: 30px;*/
    /*    }*/
    /*    h1 {*/
    /*        font-size: 24px;*/
    /*    }*/
    /*}*/
    /* 데스크톱 화면 크기에 대한 최적화 */
    @media (min-width: 992px) {
        .container {
            max-width: 80%;
            padding: 40px;
        }

        h1 {
            font-size: 28px;
        }
    }
