/* 퍼브리싱 추가(LCW):2024-11-18 시작*/
@import url(//spoqa.github.io/spoqa-han-sans/css/SpoqaHanSansNeo.css);
* {font-family: 'Spoqa Han Sans Neo', 'sans-serif';letter-spacing:-0.5px;}
/* HTML root 요소에 기본 폰트 사이즈 설정 */
/* html {
    font-size: 16px;
}

@media screen and (max-width: 768px) {
    html {
        font-size: 14px;
    }
}

@media screen and (max-width: 480px) {
    html {
        font-size: 12px;
    }
} */

.detail-view{
    border-top:1px solid #C3CCDA;
}

.col-lg-2-4 {
    width: 20%;
}
.need-border-bot .vi-con .text-subj{
    width: 90px;
    font-size:14px;
    font-weight: 500;
}
.need-border-bot .vi-con span{
    font-weight: 700;
}
.vi-con{
    display: flex;
    padding: 1rem 0;
    gap: 0.5rem;
    align-items: center;
    border-bottom: 1px solid #EAEFF4;
    margin-top: 0;
}
.vi-con:last-child{border-bottom: 0;}
.vi-con .btn-box{
    display: flex;
    width:100%;
}
.vi-con .form-select{
    border: 0;
    padding-left: 0;
    text-decoration: underline;
}
.vi-con span{
    color:#2A3547;
    font-size: 0.875rem;
    font-weight: 400;
}
.vi-con .btn{
    font-size:12px;
    color: #1968DF;
}
.location-detail-btn{
    min-width: 65px;
}
.text-subj{
    min-width: 80px;
    font-size:12px;
    color:#7C8FAC;
}
.text-subj-auto{
    min-width:auto;
    font-size: 12px;
    color: #7C8FAC;
    line-height: 15px;
}
.file-download{
    display: flex;
    align-items: center;
}
.file-download img{
    display: flex;
    width: 13px;
    height: 15px;
    align-items: center;
    justify-content: center;
    margin-right: 5px;
}
.file-download span{
    border-bottom: 1px solid #2A3547;
}
.border-secondary-dark {
    border: 1px solid #A863EC;
}

.border-bot-gray-light{
    border-bottom:1px solid #EAEFF4;
}

.calendar-icon {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    cursor: pointer;
    background: url(../images/ico/ico-cal.webp) no-repeat;
}

.calendar-icon.disabled {
    opacity: 0.5;
    pointer-events: none;
}

.table > :not(caption) > * > * {
    padding: 14px 4px;
    background-color: var(--bs-table-bg);
    border-bottom-width: var(--bs-border-width);
    box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg);
    vertical-align: middle;
}

/* 말줄임 */
.abbreviation{
    width: 160px;
    max-width: 160px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* border-box */
.group-box-gray{
    border:1px solid #C3CCDA;
    border-radius: var(--bs-border-radius);
}

/* 정렬 버튼 추가  */
.sort-buttons {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sort-btn {
    width: 12px;
    height: 6px;
    background-color: #7C8FAC;
    cursor: pointer;
    border-radius: 10px;
}

.sort-btn-up {
    clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
}

.sort-btn-down {
    clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
}

.sort-btn:hover {
    background-color: #4A92FF;
}

.sort-btn.active {
    background-color: #4A92FF;
}

.cursor-pointer {
    cursor: pointer;
}

.education-status {
    position: absolute;
    bottom: 8px;
    right: 0;
}

.list-item {
    white-space: nowrap;
    display: flex;
    align-items: center;
}

.d-sort{
    background-color: #fff;
    border-bottom:1px solid #EAEFF4;
    box-shadow: 0px 4px 4px 0px rgb(234 239 244 / 5%);
}

.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    padding: 10px 0;
}

.pagination .page-link {
    min-width: 32px;
    height: 32px;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #7C8FAC;
    text-decoration: none;
    border: none;
    border-radius: 4px;
    font-size: 14px;
}

.pagination .page-link:hover {
    background-color: #EEF5FF;
    color: #4A92FF;
}

.pagination .page-link.active {
    background-color: #4A92FF;
    color: white;
}

.pagination .page-link i {
    font-size: 20px;
    line-height: 1;
}

.pagination .dots {
    color: #7C8FAC;
    cursor: default;
}

.pagination .dots:hover {
    background: none;
}

.pagination .page-link.disabled {
    color: #EAEFF4;
    cursor: default;
    pointer-events: none;
    background: transparent;
}

.pagination .page-link.disabled:hover {
    background: none;
}

.status-badge {
    background-color: #F5EBFF;
    color: #A863EC;
    padding: 4px 12px;
    border-radius: 14px;
    font-size: 12px;
    font-weight: 500;
}

.title-info {
    display: flex;
    gap: 4px;
    align-items: center;
}

.education-title {
    margin-bottom: 0;
    font-size: 21px;
    font-weight: 600;
    color: #1B2559;
    /* padding: 10px; */
}

.education-date {
    font-size: 13px;
    color: #7C8FAC;
}

.education-id {
    font-size: 13px;
    color: #C3CCDA;
    font-weight: 500;
}

.progress-container {
    width: 100%;
    max-width: 600px;
}

.progress-top {
    display: flex;
    justify-content: space-between;
}

.progress-top .date {
    width: 33.33%;
    text-align: center;
    font-weight: 500;
    letter-spacing: -0.5px;
    font-size: 12px;
    color: #7C8FAC;
}

.progress-steps {
    position: relative;
    display: flex;
    justify-content: space-between;
    margin: 0;
}

.progress-steps .line {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    height: 2px;
    width: 100%;
    background: #C3CCDA;
    z-index: 1;
    background: linear-gradient(
        to right,
        transparent 0%,
        transparent 15%,
        #C3CCDA 15%,
        #C3CCDA 85%,
        transparent 85%,
        transparent 100%
    );
}

.progress-steps .step {
    z-index: 2;
    width: 33.33%;
    display: flex;
    justify-content: center;
}

.progress-steps .step .circle {
    position: relative;
    width: 31px;
    height: 32px;
    color: #C3CCDA;
    background: white;
    border: 2px solid #C3CCDA;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 6px;
    font-weight: 700;
}

.progress-steps .step .circle:before
{
    content:'';
    display:flex;
    position: absolute;
    left: -6px;
    width: 4px;
    height:4px;
    background:#fff;
}

.progress-steps .step .circle:after
{
    content:'';
    display:flex;
    position: absolute;
    right: -6px;
    width: 4px;
    height:4px;
    background:#fff;
}

.progress-steps .step.active .circle {
    position: relative;
    background-color: #1968DF;
    border-color:#1968DF;
    color: #fff;
}

.progress-steps .step.current .circle {
    position: relative;
    background-color: #13DEB9;
    border-color:#13DEB9;
    color: #fff;
    background-image: url('../images/ico/ico-check.webp');
    background-repeat: no-repeat;
    background-position: center;
    background-size: 16px;
    color: transparent;
}

.progress-labels {
    display: flex;
    justify-content: space-between;
}

.progress-labels .label {
    width: 33.33%;
    text-align: center;
    color: #C3CCDA;
}
.progress-labels .label.active{
    font-weight:700;
    color:#2A3547;
}

.progress-labels .label.current{
    font-weight:700;
    color:#13DEB9;
}

/* 전문강사 모집/선정 현황 */
.title-section {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.title-section h1 {
    font-size: 1.5em;
    color: #333;
}

.applicants-count {
    font-size: 1em;
    color: #007bff;
}

.table-container {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    background-color: white;
}

.recruitment-status-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.recruitment-status-table thead th {
    padding: 5px;
    padding-left: 0;
    text-align: left;
    border-bottom: 1px solid #C3CCDA;
    font-weight:500;
    position: sticky;
    top: 0;
    z-index: 1;
    vertical-align: middle;
}
.recruitment-status-table thead th:first-child{
    padding-left:4px;
}
.recruitment-status-table thead th:last-child{
    text-align: center;
}

.recruitment-status-table thead th.p-name,
.recruitment-status-table thead th.p-count{
    width: 70px;
    min-width: 70px;
}
.recruitment-status-table thead th.p-distance{
    width:70px;
    min-width:60px;
}

.he-auto{
    min-height:772px;
}
.table-scroll tbody td.p-name,
.table-scroll tbody td.p-count{
    width: 75px;
    min-width:75px;
}
.table-scroll tbody td.p-distance{
    width: 72px;
    min-width: 72px;
}
.table-scroll tbody td:first-child{
    text-align:left;
    padding-left: 6px;
}
.table-scroll tbody td:last-child{
    text-align: center;
    padding-left: 0;
}
.table-scroll {
    height: auto;
    max-height: 559px;
    overflow-y: auto;
    position: relative;
}

.recruitment-status-table-body {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed; /* Ensures all columns maintain the same width */
}

.table-scroll tbody td {
    padding: 20px 5px 20px 2px;
    text-align: left;
    border-bottom: 1px solid #ddd;
    color: #2A3547;
    letter-spacing: -1.2px;
}
.table-scroll tbody td  .badge{
    margin-left: 0;
    padding: 5px;
    width: 45px;
}

.table-scroll tbody tr {
    display: table;
    width: 100%;
    table-layout: fixed;
}

.recruitment-status-table-body tr.bg-light-primary {
    background-color: #EDF4FE !important;
}
.recruitment-status-table-body tr.bg-disabled td{
    background-color: #fff !important;
    color:#C3CCDA !important;
    font-weight:400 !important;
}

/* hover 효과와 함께 사용할 경우 */
.recruitment-status-table-body tr.bg-light-primary:hover {
    background-color: #e2edfb !important;
}

.bg-light-primary {
    background-color: #EDF4FE;
}

.btn-box-area{
    position: absolute;
    width: calc(100% - 40px);
    /* left: 20px; */
    bottom: 30px;
    display:flex;
    padding-top: 30px;
    align-items: flex-end;
    gap: 2px;
}

/* 캘린더 추가 */
#calendar-table tbody td:first-child {
    border-left: 0 !important;
}
#calendar-table thead th:last-child,
#calendar-table tbody td:last-child {
    border-right: 0 !important;
}
#calendar-table thead {
    border: 1px solid white !important;
    border-bottom: 1px solid #C3CCDA !important;
}

#calendar-table {
    table-layout: fixed; /* 모든 열 동일한 너비 */
    width: 100%;
}

#calendar-table th,
#calendar-table td {
    width: calc(100% / 7); /* 7등분 */
}

#calendar-table tbody td {
    border: 1px solid #C3CCDA;
    padding: 5px !important;
    height: 155px;
    position: relative;
    background-color: transparent;
    vertical-align: top;
}
.date{
    font-size:16px;
    font-weight:500;
    color:#2A3547;
}

.date-content {
    display: flex;
    width: 100%;
     /* 날짜 표시 영역 제외한 높이 */
    margin-top: 5px;
    flex-wrap: wrap;
    gap: 2px;
}

.date-content::-webkit-scrollbar {
    width: 4px;
    }

.date-content::-webkit-scrollbar-track {
    background: #f1f1f1;
}

.date-content::-webkit-scrollbar-thumb {
    background: #C3CCDA;
    border-radius: 2px;
}

.event-item {
    width: 100%;
    height: 44px;
    padding: 4px 6px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 500;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-all;
}
.icon-box{
    display:flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 8px;
    margin-right: 10px;
}
.icon-box-sm{
    display:flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 7px;
    border-radius: 4px;
}
.icon-box-sm img{
    display:block;
    width: 100%;
}
.icon-box-green{
    background-color: #EEFCEA;  
}
.icon-box-purple{
    background-color: #F7F0FF;
}
.icon-box-orange{
    background-color: #FFEEE6;
}
.icon-box-blue{
    background-color: #E6F6FF;
}
.cal-label{
    display:flex;
    gap: 3px;
}

.cal-label span{
    display: flex;
    width:14px;
    height:20px;
    border-radius:2px;
    font-size:12px;
    font-weight: 500;
    align-items: center;
    justify-content: center;
}

.etc-more{
    font-size:12px;
    font-weight: 500;
    color:#7C8FAC;
    margin-top: 4px;
}

.box-gray{
    background-color: #FFF;
    border: 1px solid #C3CCDA;
}

.box-blue{
    background-color: #E6F6FF;
    border: 1px solid #638AEC;
}

.box-green{
    background-color: #EEFCEA;
    border: 1px solid #60CA3B;
}

.box-orange{
    background-color: #FFEEE6;
    border: 1px solid #EC9863;
}

.box-purple{
    background-color: #F7F0FF;
    border: 1px solid #A863EC;
}

.count-box-yellow{
    background-color: #EC9863;
    border: 1px solid #EC9863;
    color:#fff
}

.count-box-blue{
    background-color: #638AEC;
    border: 1px solid #638AEC;
    color:#fff;
}

.count-box-green{
    background-color: #60CA3B;
    border: 1px solid #60CA3B;
    color:#fff;
}

.count-box-purple{
    background-color: #A863EC;
    border: 1px solid #A863EC;
    color:#fff;
}

.bg-light-green{
    background-color: rgba(198, 244, 181, 0.29); 
}
.bg-light-purple{ 
    background: #F7F0FF; 
}
.bg-light-orange{
    background: #FFEEE7;
}     
.bg-light-skyblue{
    background: #E7F5FF;
}
.bg-light-yellow{
    background: #FAF8CC;
}
.bg-light-purple-dark{
    background: #EAE7FF;
}
.bg-skyblue{
    background: #47CEFF;
}
.bg-green-dark{
    background: #75C9DC;
}

.bg-purple-darkest{
    background: #6A73FF;
}
.bg-orange{
    background: #EC9863;
}
.bg-green{
    background:#60CA3B;
}
.bg-purple-dark{
    background:#A763EC
}

.round-12 {
    width: 12px;
    height: 12px;
}

.fund-support-list .bg-light-primary {
    background-color: rgba(59, 130, 246, 0.1);
}

.fund-support-list .bg-light-purple {
    background-color: rgba(147, 51, 234, 0.1);
}

.fund-support-list .bg-light-warning {
    background-color: rgba(245, 158, 11, 0.1);
}

.fund-support-list .text-purple {
    color: #9333EA;
}

.apexcharts-datalabels-group{
    margin-top:-10px;
}

#calendar-table tbody tr:nth-child(even) {
    background-color: #F2F6FA;
}

/* 이전 달 날짜 색상 */
#calendar-table tbody td .prev-month {
    font-size: 16px;
    color: #C3CCDA;
    font-weight: 500;
}

/* 토요일, 일요일 날짜 색상 */
#calendar-table tbody td:first-child .date-number,
#calendar-table tbody td:last-child .date-number {
    position: static;
    color: #7C8FAC;
    font-weight:500;
    font-size:16px;
}

/* 슬라이더 */
.transition-300 {
    transition: transform 0.3s ease-in-out;
}

.documents-wrapper {
    transform: translateX(0);
    z-index: 1;
}
.slide-prev,
.slide-next {
    width:26px;
    height:26px;
    border-radius:100%;
    background:#fff;
    box-shadow: 0px 4px 8px 0px rgba(145, 158, 171, 0.30);
}
.slide-prev:hover,
.slide-next:hover {
    width:26px;
    height:26px;
}

.slide-prev:disabled,
.slide-next:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    border: 0;
    box-shadow: 0px 0px 5px 2px rgba(145, 158, 171, 0.30) !important;!i;!;
}
/* PC 화면에서의 스타일 */
.document-slide {
  min-width: calc(50% - 12px);
  margin-right: 24px;
}

/* 모바일 화면에서의 스타일 (768px 미만) */
@media screen and (max-width: 767px) {
    .cal-top-area{
        padding: 16px;
    }
    .slide-area{
        padding: 16px;
    }
    .documents-wrapper{
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }
    .document-slide {
        min-width: 100%;
        margin-right: 0;
    }
    .big-94{
        width: 60px;
        height: 60px;
    }

}

/* 입력폼 */
.form-control{
    /* padding: 7px 16px; */
}
.form-select{
    /* line-height: 1.6; */
}

.form-label{
    font-weight: 500;
}

.form-check-input[type=radio]{
    border-color:#2A3547;
}

.form-check-input:checked{
    background-color: #1968DF;
    border-color:#1968DF;
}
.form-check-input:disabled{
    border-color: #C3CCDA;
}
.form-check-input:checked:disabled{
    background-color: #C3CCDA;
    border-color: #C3CCDA;
}

.address-input{
    position: absolute;
    top: 11px;
    right: 15px;
    display: flex;
    width: 20px;
    height: 17px;
    background: url(../images/ico/ico-address.webp) no-repeat;
    border: 0;
    font-size: 0;
}

.resident-num{
    display:flex;
    align-items: center;
    gap:1px;
    border: var(--bs-border-width) solid #DFE5EF;
    border-radius: 8px;
}
.disabled{
    background:#F2F6FA;
}

.ssn-input{
    width: 100%;
    text-align: left;
    letter-spacing: 5px;
    border: 0;
}
.ssn-input::placeholder{
    letter-spacing: 0;
}
.hidden-box{position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);margin-left: 15px;pointer-events: none;}

.hidden-box .hidden-text{letter-spacing: 5px;color: #2A3547;}

/* 뱃지 스타일 수정 */
.selectdate,
.selectdate-dark{
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: bold;
    font-size: 16px;
    margin-left: auto;
    padding: 0 !important;
}
.selectdate{
    background: #FA6B6B;
}
.selectdate-dark {
    background: #2A3547;
}
.today{
    font-size:16px;
    color:#FA6B6B;
}

/* 날짜 컨테이너 여백 조정 */
.date-container {
    padding: 5px;
    display: flex;
    justify-content: flex-end;
}

table.tb-score th{
    background:#F2F6FA;
    border:1px solid #E9ECF1;
    font-size:14px;
    font-weight:700;
    color:#2A3547;
}
table.tb-score td{
    border:1px solid #E9ECF1;
    vertical-align:middle;
    font-size:14px;
    font-weight:500;
    color:#2A3547;
    padding: 7px 10px;
}
table.tb-score td input{
    padding: 10px;
    max-width: 70px;
    margin: auto;
}
table.tb-score th:first-child,
table.tb-score td:first-child{
    border-left:none;
}
table.tb-score th:last-child,
table.tb-score td:last-child{
    border-right:none;
}
tbody tr:hover {
    background-color: #f5f5f5;
}

td input[type="checkbox"] {
    cursor: pointer;
}

.table-lighter {
    --bs-table-color: #2A3547;
    --bs-table-bg: #EDF4FE;
    --bs-table-border-color: #dde0e3;
    --bs-table-striped-bg: #eaedef;
    --bs-table-striped-color: #000;
    --bs-table-active-bg: #dde0e3;
    --bs-table-active-color: #000;
    --bs-table-hover-bg: #e4e6e9;
    --bs-table-hover-color: #000;
    color: var(--bs-table-color);
    border-color: var(--bs-table-border-color);
  }

/* 테이블 반응형 스타일 */
.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* 테이블 최소 너비 설정 */
.tb-evaluation {
    width:100%;
    min-width: 1000px; /* PC/노트북 기준 */
}

.tb-evaluation thead th{
    background:#F2F6FA;
    border:1px solid #C3CCDA;
    color: #2A3547;
    font-size:12px;
    font-weight: 700;
    vertical-align: middle;
}
.tb-evaluation thead th:first-child,
.tb-evaluation tbody td:first-child,
.tb-evaluation tfoot td:first-child
{
    border-left:0;
}
.tb-evaluation thead th:last-child,
.tb-evaluation tbody td:last-child,
.tb-evaluation tfoot td:last-child
{
    border-right:0;
}
.tb-evaluation thead th.tb-big,
.tb-evaluation tbody td.tb-big,
.tb-evaluation tfoot td.tb-big
{
    font-size:14px;
    color:#2A3547;
    background:#EDF4FE;
}

.tb-evaluation tbody td{
    border:1px solid #C3CCDA;
}
.tb-evaluation tbody td.tbg{
    background:#EDF4FE;
}
.tb-evaluation tfoot td{
    background: #f2f6fa;
    border: 1px solid #c3ccda;
    text-align: center;
}

.allowance-table {
    width:100%;
    /* min-width: 900px; */ /* PC/노트북 기준 */
}

.tb-dashboard thead th, .tb-dashboard tbody td{
    padding:12px 2px;
}

.tb-dashboard tbody tr:last-child td{
    border-bottom: 0;
}

.tb-statistics thead th,.tb-statistics-list thead th{
    background: #EAEFF4;
    border: 1px solid #C3CCDA;
    color: #2A3547;
    font-weight: 700;
    font-size: 14px;
    text-align: center;
    height: 54px;
}
.tb-statistics-list thead th{
    padding: 7px;
}
.tb-statistics thead th:first-child, .tb-statistics tbody td:first-child,
.tb-statistics-list thead th:first-child, .tb-statistics-list tbody td:first-child,
.tb-statistics tfoot td:first-child
{
    border-left:none;
}
.tb-statistics thead th:last-child, .tb-statistics tbody td:last-child,
.tb-statistics-list thead th:last-child, .tb-statistics-list tbody td:last-child,
.tb-statistics tfoot td:last-child
{
    border-right:none;
}
.tb-statistics tbody td, .tb-statistics-list tbody td{
    border: 1px solid #C3CCDA;
    color: #5A6A85;
    text-align: center;
    font-weight: 500;
    height: 54px;
    padding: 6px;
}

.tb-statistics tbody td .form-control{
    text-align: center;
}

.tb-statistics tfoot td{
    background: #F2F6FA;
    border: 1px solid #C3CCDA;
    color: #2A3547;
    text-align: center;
}

.tb-statistics-list tbody td{
    padding: 7px;
}

/* Progress Bar */
.tb-progress-bar{
    display: flex;
    width: 100%;
    height: 22px;
    border-radius: 25px;
    background: #EDF4FE;
    font-size: 12px;
}

.tb-progress-bar .tb-progress-bar-inner{
    position:absolute;
    display: flex;
    height: 100%;
    background: #4A92FF;
    align-items: center;
    border-top-left-radius: 25px;
    border-bottom-left-radius: 25px;
}

.tb-progress-bar .tb-progress-bar-inner.finished{
    border-top-right-radius: 25px;
    border-bottom-right-radius: 25px;
}

.tb-progress-bar .tb-progress-bar-inner .tb-progress-bar-text{
    position: absolute;
    right: 20px;
    color: #fff;
}

.tb-progress-bar .tb-progress-bar-inner .tb-progress-bar-text.below{
    right: -30px;
    color: #4A92FF;
}

/* 통계 차트 관련 스타일 */
.statistics-legend{
    display:flex;
    flex-wrap: wrap;
}
.chart-legend{display: flex;gap: 4px;flex-wrap: wrap;min-height:40px;align-items: flex-start;margin-top: 5px;}
.chart-legend li{
    margin-right: 2px;
}
.pie-chart-container{
  position: relative;
}
.responsive-chart-box{}
@media screen and (max-width: 991px) {
    .chart-legend{display: flex;gap: 4px;flex-wrap: wrap;}
    .chart-legend li{
        margin-right: 2px;
    }
    .responsive-chart-box{
      display: flex;
      width: 100%;
      align-items: flex-start;
      gap: 10px;
    }
    
    /* calendar */    
    #calendar-table th,
    #calendar-table td {
        width: calc(100% / 7); /* 7등분 */
        font-size: 16px;
    }
    
    #calendar-table tbody td {
        padding: 5px !important;
        height: 96px;
        position: relative;
        background-color: transparent;
        vertical-align: top;
    }
    #calendar-table tbody td .cal-label{
        position: absolute;
        bottom: 3px;
    }
    .date{
        position: absolute;
        top: 5px;
        right: 5px;
        font-size:16px;
        font-weight:500;
        color:#2A3547;
    }
     .date-number{
        position: absolute;
        top: 5px;
        right: 5px;
        font-size:16px;
        font-weight:500;
        color:#2A3547;
    }
    
    .date-content {
        display: none;
        
         /* 날짜 표시 영역 제외한 높이 */
    }
    
    .date-content::-webkit-scrollbar {
        width: 4px;
        }
    
    .date-content::-webkit-scrollbar-track {
        background: #f1f1f1;
    }
    
    .date-content::-webkit-scrollbar-thumb {
        background: #C3CCDA;
        border-radius: 2px;
    }
    
    .event-item {
        width: 100%;
        height: 44px;
        padding: 4px 6px;
        border-radius: 8px;
        font-size: 12px;
        font-weight: 500;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
        word-break: break-all;
    }
    .icon-box{
        display:flex;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        border-radius: 4px;
        margin-right: 10px;
    }
    .icon-box-sm{
        display:flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        padding: 7px;
        border-radius: 4px;
    }
    .icon-box-sm img{
        display:block;
        width: 100%;
    }
    .icon-box-green{
        background-color: #EEFCEA;  
    }
    .icon-box-purple{
        background-color: #F7F0FF;
    }
    .icon-box-orange{
        background-color: #FFEEE6;
    }
    .icon-box-blue{
        background-color: #E6F6FF;
    }
    .cal-label{
        display:flex;
        gap: 3px;
    }
    
    .cal-label span{
        display: flex;
        width: 13px;
        height: 15px;
        border-radius:2px;
        font-size: 10px;
        font-weight: 500;
        align-items: center;
        justify-content: center;
    }
    
    .etc-more{
        display: none;
    }
}
@media screen and (max-width: 768px) {
    .statistics-legend{
        display:flex;
        flex-wrap: nowrap;
        gap: 0;
        align-items: flex-start;
        justify-content: space-between;
    }
    .chart-legend{display: flex;min-width: 110px;gap: 4px;flex-wrap: wrap;flex-direction: column;}
    .chart-legend li{
        margin-right: 2px;
    }
    .pie-chart-container{
      width: 110%;
      max-width: 250px;
      margin-top: -30px;
      margin-right: -30px;
    }
    .pie-chart-container h2{
        text-align:center;
    }
}



.statistics-chart-container .legend {
    display: flex;
    gap: 20px;
}

.statistics-chart-container .legend .legend-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
}

.statistics-chart-container .legend .legend-item .dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
}

.statistics-chart-container .legend .legend-item .dot.blue {
    background-color: #1968DF;
}

.statistics-chart-container .legend .legend-item .dot.gray {
    background-color: #E5E7EB;
}

.statistics-chart-container .chart {
    display: flex;
    flex-direction: column;
    gap: 9px;
    margin-top: 16px;
}

.statistics-chart-container .chart .bar-row {
    display: flex;
    align-items: center;
    width:95%;
    gap: 8px;
}

.statistics-chart-container .chart .bar-row .label {
    min-width: 125px;
    font-size: 12px;
    text-align: right; /* 라벨 우측 정렬 */
    color: #2A3547;
}

.statistics-chart-container .chart .bar-row .bar-container {
    flex: 1;
    height: 12px;
    background-color: #EAEFF4;
    border-radius: 12px;
    overflow: hidden;
}

.statistics-chart-container .chart .bar-row  .bar {
    height: 100%;
    background-color: #1968DF;
    border-top-left-radius: 12px;
    border-bottom-left-radius: 12px;
    transition: width 0.3s ease;
}

.statistics-chart-container .chart-1 {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 16px;
}

.statistics-chart-container .chart-1 .bar-row {
    display: flex;
    align-items: center;
    width:95%;
    gap: 8px;
}

.statistics-chart-container .chart-1 .bar-row .label {
    min-width: 125px;
    font-size: 12px;
    text-align: right; /* 라벨 우측 정렬 */
    color: #2A3547;
}

.statistics-chart-container .chart-1 .bar-row .bar-container {
    flex: 1;
    height: 12px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
}

.statistics-chart-container .chart-1 .bar-row  .bar {
    height: 100%;
    background-color: #1968DF;
    border-radius: 12px;
    transition: width 0.3s ease;
}

.statistics-chart-container .chart-1 .bar-row  .percentage{
    display: inline-flex;
    margin-left: 10px;
}

  /* 가로 차트 그래프 눈금자 관련 스타일 추가 */
.scale-container {
    position: relative;
    margin-left: 130px; /* label width + gap */
    margin-right: 64px; /* percentage width + gap */
    margin-top: 0;
}

.scale-labels {
    display: flex;
    justify-content: space-between;
    position: relative;
    margin-top: 5px;
}

.scale-labels span {
    font-size: 12px;
    color: #7C8FAC;
    position: relative;
}

.percentage {
    min-width: 40px;
    font-size: 14px;
    color: #1968DF;
    font-weight: 500;
    text-align:right;
}

/* 교육통계 achievement-charts */
.achievement-charts {
    margin: 0 !important;
}

.achievement-charts .chart-container {
    position: relative;
    width: 100%;
    padding: 10px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.achievement-charts .progress-container {
    width: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 15px 0;
    aspect-ratio: 1;
}

.achievement-charts .progress-ring {
    width: 100%;
    height: auto;
    transform: rotate(-90deg);
}

.achievement-charts .progress-background {
    fill: none;
    stroke: #E5E7EB;
    stroke-width: 12;
}

.achievement-charts .progress-bar {
    fill: none;
    stroke: #6A73FF;
    stroke-width: 12;
    /* stroke-linecap: round; */
    transition: stroke-dasharray 1s ease-in-out;
}

.achievement-charts .progress-over {
    fill: none;
    stroke: #60CA3B;
    stroke-width: 12;
    /* stroke-linecap: round; */
    transition: stroke-dasharray 1s ease-in-out;
}

.achievement-charts .progress-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 1.5em;
    font-weight: bold;
}

.achievement-charts .chart-details {
    width: 100%;
    display: flex;
    margin-top: 15px;
    justify-content: space-around;
}

.achievement-charts .chart-details .line-v{
    display: flex;
    width: 1px;
    height: 30px;
    background: #5A6A85;
    margin-top: 10px;
}

.achievement-charts .detail-item {
    display: flex;
    margin: 5px 0;
    font-size: 14px;
    color: #2A3547;
    flex-direction: column;
    align-items: center;
}

.achievement-charts .chart-label {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 10px;
    width: 100%;
    color: #2A3547;
}

/* achievement-charts 반응형 스타일 */
@media (min-width: 992px) {
    .achievement-charts .col-lg {
        flex: 1;
        max-width: 20%;
        margin-top: 0;
    }
    .achievement-charts .progress-container {
        max-width: 177px;
    }
    .achievement-charts .progress-text {
        font-size: 28px;
        color: #2A3547;
    }
    .achievement-charts .chart-label{
        font-size: 16px;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .achievement-charts .col-md-4 {
        flex: 0 0 33.333333%;
        max-width: 33.333333%;
    }
    .achievement-charts .progress-container {
        max-width: 180px;
        margin: auto;
        margin-top: -35px;
    }
    .achievement-charts .progress-text {
        font-size: 24px;
    }
    .achievement-charts .chart-label{
        font-size: 16px;
    }
}

@media (max-width: 767.98px) {
    .achievement-charts .chart-container {
        margin-bottom: 20px;
    }
    .achievement-charts .progress-container {
        max-width: 200px;
        margin: auto;
        margin-top: -35px;
    }
    .achievement-charts .progress-text {
        font-size: 28px;
    }
    .achievement-charts .chart-label{
        font-size: 16px;
    }
}

/* monthly-stats-container 월별 교육 실적 카드 */
.monthly-stats-container {
    display: grid;
    gap: 20px;
    padding: 0;
    width: 100%;
}

.monthly-stats-card {
    border: 1px solid #C3CCDA;
    border-radius: 8px;
    padding: 16px;
    background: #fff;
}

.month-title {
    margin-bottom: 10px;
    font-size: 18px;
    color: #2A3547;
    font-weight: 500;
}

.stats-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    font-size: 14px;
}

.stats-row:last-child {
    margin-bottom: 0;
}

.label {
    color: #2A3547;
}

.value {
    color: #2A3547;
    font-weight: 700;
}

/* monthly-stats-container 모바일 (기본) */
.monthly-stats-container {
    grid-template-columns: repeat(2, 1fr);
}

/* monthly-stats-container 태블릿 */
@media screen and (min-width: 768px) {
    .monthly-stats-container {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* monthly-stats-container PC */
@media screen and (min-width: 1024px) {
    .monthly-stats-container {
        grid-template-columns: repeat(6, 1fr);
    }
}
/* 미디어 쿼리 적용 */
@media screen and (max-width: 1600px) {
    .smart-check-row .d-flex{
        flex-wrap: wrap;
    }
}
/* 미디어 쿼리 적용 */
@media screen and (max-width: 1200px) {
    .tb-evaluation, .tb-statistics {
        min-width: 1000px; /* 태블릿 기준 */
    }
    .allowance-table {
        min-width: 900px;
    }
    .smart-check-row .d-flex span{
        font-size:12px;
    }
}

@media screen and (max-width: 768px) {
    .tb-evaluation, .tb-statistics {
        min-width: 800px; /* 모바일 기준 */
    }
    .allowance-table {
        min-width: 700px;
    }
}

.applicant-name{
    letter-spacing: -1.5px;
    border-bottom: 1px solid #2A3547;
    margin-left: -4px;
}
.bg-disabled .applicant-name{
    border-color:#C3CCDA;
}
.buttons-container {
    display: flex;
    justify-content: center;
    margin-top: 20px;
}

/* Custom scrollbar styling */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
    margin: 4px 2px;
}

::-webkit-scrollbar-track {
    background: #C3CCDA;
}

::-webkit-scrollbar-thumb {
    background: #7C8FAC;
    border-radius: 6px;
}

::-webkit-scrollbar-thumb:hover {
    background: #6b7991;
}

/* 전문강사 지원자 정보 */
.applicant-info {
    border-radius: 8px;
}

.score-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #dee2e6;
}

.score-item {
    text-align: center;
}

.score-label {
    display: block;
    font-size: 0.875rem;
    color: #6c757d;
    margin-bottom: 0.25rem;
}

.score-value {
    font-size: 1.25rem;
    color: #212529;
}
.comment-list{
    border-top: 1px solid #EAEFF4;
    padding-top: 16px;
}

.comment-item {    
    padding-bottom: 1rem;
}
.profile-wrapper{
    min-width:100px;
}
.comment-input textarea {
    border: 1px solid #dee2e6;
    resize: none;
}
.comment-input textarea::placeholder{
    color: #C3CCDA;
}
.comment-content{
    width: 85%;
    color: #2A3547;
}
.co-date{
    color:#7C8FAC;
    font-weight: 400;
}

.file-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.file-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px;
    background-color: #F2F6FA;
    border: 1px solid #C3CCDA;
    border-radius: 8px;
}

.file-content {
    display: flex;
    align-items: center;
    gap: 12px;
}

.file-image-wrapper {
    width: 140px;
    height: 105px;
    overflow: hidden;
}

.file-thumbnail {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.file-name {
    font-size: 14px;
    color: #2A3547;
    border-bottom: 1px solid #2A3547;
}

.file-size {
    font-size: 14px;
    color: #7C8FAC;
}

/* 도핑방지 교육 */
.lecture-info{background: #F2F6FA;padding: 30px;}

/* 리스트 스타일 */
.list-point{}

.list-point li{
    display: flex;
    align-items: center;
    color: #2A3547;
}

.list-point li:before{
    content:'';
    width: 4px;
    height: 4px;
    background:#2A3547;
    border-radius: 100%;
    margin-left: -8px;
    margin-right: 5px;
}
/* width */
.w-badge-60{
    width:60px;
}
/* 이미지 사이즈 */
.smg{
    width: 20px;
    height: 20px;
    border-radius:100%;
    overflow:hidden;
    /* background:#fff; */
}
.mdg{
    width:54px;
    height:54px;
    border-radius:100%;
    overflow:hidden;
    background:#fff;
}
.mdg-1{
    width:76px;
    height:76px;
    border-radius:100%;
    overflow:hidden;
    background:#fff;
}
.big{
    width:94px;
    height:94px;
    border-radius:100%;
    overflow:hidden;
    background:#fff;
}

.pc-hidden{
    display:none;
}

/* 텍스트 밑줄 스타일 */
.text-underline {
    text-decoration: underline;
    text-underline-offset: 2px; /* 텍스트와 밑줄 사이 간격 */
}
/* Modal 관련 스타일 추가 */
.modal-dialog.modal-xl {
    max-width: 1146px;
    margin: auto;
}

.modal-dialog.modal-lg {
    max-width: 870px;
    margin: auto;
}
.modal-dialog.modal-sm {
    max-width: 340px;
}
.modal-content{
    border-radius: 8px;
    /* background:transparent; */
    overflow: hidden;
}
.modal-header {
    position: relative;
    padding: 1rem;
    background:#fff;
}
.modal-body{
    background:#fff;
    padding: 1.5rem;
}
.modal-header .btn-close {
    margin: 0;
}

@media (max-width: 991px) {
    .pc-hidden{
        display:block;
    }

    #allowanceModal {
        padding: 0 !important; 
    }

    .modal-dialog.modal-lg {
        max-width: 100%;
        margin: 0;
        transform: none !important; /* transform 제거로 top:0 유지 */
    }

    .modal-content {
        border: 0;
        border-radius: 0;
        margin-top: 0;
        border-radius: 0;
    }    

    .modal-dialog.modal-xl {
        width: 100%;
    }

}
@media (max-width: 575px) {
    .modal-dialog.modal-lg {
        width: 100%;
    }
    .allowance-details label {
    white-space: nowrap;
    }
            /* calendar */
    #calendar-table tbody td:first-child {
    border-left: 0 !important;
    }
    #calendar-table thead th:last-child,
    #calendar-table tbody td:last-child {
        border-right: 0 !important;
    }
    #calendar-table thead {
        border: 1px solid white !important;
        border-bottom: 1px solid #C3CCDA !important;
    }
    
    #calendar-table {
        table-layout: fixed; /* 모든 열 동일한 너비 */
        width: 100%;
    }
    
    #calendar-table th{
        font-size:10px;
    }
    #calendar-table td {
        width: calc(100% / 7); /* 7등분 */
    }
    
    #calendar-table tbody td {
        border: 0;
        position: relative;
        height: 44px;
        background-color: transparent;
        vertical-align: middle;
        text-align: center;
    }
        #calendar-table tbody td .d-flex{
            justify-content: center !important;
        }
    .selectdate, .selectdate-dark{
        margin:auto;
    }
    .date{
        position: static;
        font-size:16px;
        font-weight:500;
        color:#2A3547;
    }
    .date-number{
        position: absolute;
        top: 5px;
        right: 5px;
        font-size:16px;
        font-weight:500;
        color:#2A3547;
    }
    
    .date-content::-webkit-scrollbar {
        width: 4px;
        }
    
    .date-content::-webkit-scrollbar-track {
        background: #f1f1f1;
    }
    
    .date-content::-webkit-scrollbar-thumb {
        background: #C3CCDA;
        border-radius: 2px;
    }
    
    .event-item {
        width: 100%;
        height: 44px;
        padding: 4px 6px;
        border-radius: 8px;
        font-size: 12px;
        font-weight: 500;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
        word-break: break-all;
    }
    .icon-box{
        display:flex;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        border-radius: 8px;
        margin-right: 10px;
    }
    .icon-box-sm{
        display:flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        padding: 7px;
        border-radius: 4px;
    }
    .icon-box-sm img{
        display:block;
        width: 100%;
    }
    .icon-box-green{
        background-color: #EEFCEA;  
    }
    .icon-box-purple{
        background-color: #F7F0FF;
    }
    .icon-box-orange{
        background-color: #FFEEE6;
    }
    .icon-box-blue{
        background-color: #E6F6FF;
    }
    .cal-label{
        display:flex;
        gap: 3px;
    }
    
    .cal-label span{
        display: flex;
        width: 5px;
        height: 5px;
        border-radius: 7px;
        font-size: 0;
        font-weight: 500;
        align-items: center;
        justify-content: center;
    }
    
    .etc-more{
        font-size:12px;
        font-weight: 500;
        color:#7C8FAC;
        margin-top: 4px;
    }
}

#allowanceModal .modal-content,
#cancelConfirmModal .modal-content,
.educationui-modal .modal-content {
    overflow:hidden;
}

#allowanceModal .modal-footer > *,
#cancelConfirmModal .modal-footer > *,
.educationui-modal .modal-footer > *{
    margin: 0;
}

.allowance-table{
    border-radius: 8px;
}

.allowance-table th{margin: 0;padding: 10px 5px;border-top: 1px solid #C3CCDA;border-bottom: 1px solid #C3CCDA;border-right: 1px solid #C3CCDA;background: #F2F6FA;color: #2A3547;font-size: 14px;font-weight: 700;text-align: center;}

.allowance-table td{margin: 0;padding: 2px 6px;border-right: 1px solid #C3CCDA;text-align: center;border-bottom: 1px solid #C3CCDA;height: 51px;color: #2A3547;}
.allowance-table td.subj{
    background: #F2F6FA;
    COLOR: #2A3547;
    FONT-WEIGHT: 700;
}
.allowance-table th:last-child{
    border-right: 0;
}
.allowance-table td:last-child{
    border-right: 0;
}
.allowance-table .allowance-title {
    display: block;
    margin-bottom: 4px;
    padding: 10px;
    background: #F2F6FA;
    border-bottom: 1px solid #C3CCDA;
    text-align: center;
}

.allowance-table .allowance-con{
    display:flex;
    align-items: center;
    /* padding: 5px 8px; */
}

.allowance-table .allowance-con input{
    min-width: 25px;
    padding: 8px 5px;
    text-align: left;
    background: #fff;
}

.allowance-table .allowance-con input::placeholder{
    color:#C3CCDA;
    font-weight:400;
}

.allowance-table .allowance-con input:disabled{
    background:#F2F6FA;
    color:#C3CCDA;
}

.allowance-details .form-control, .allowance-details .form-select{
    padding: 8px 15px 8px 8px;
    background-position: right 6px center;
}
.form-control:disabled,
.modal-body .form-control:read-only {
    color: #7C8FAC;
    background: #F2F6FA;
    border-color: #C3CCDA;
    font-weight:400;
}
.form-select:disabled {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23C3CCDA' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") !important;
    background-color: #F2F6FA;
    color: #7C8FAC;
}

.allowance-name,.allowance-detail-btn{
    border-bottom: 1px solid #1968DF;
}

.total-allowance{
    border:none;
}

.start-1{
    left:20px;
}

.end-1 {
    right: 10px !important;
}

/* background-style */
.bg-color-action-warning{
    background: #FFAE1F;
}
.bg-color-action-error{
    background: #FA6B6B;
}
.bg-color-gray-light{
    background:#EAEFF4 !important;
}

/* border-style */
.border-left-gray-light{
    border-left: 1px solid #EAEFF4;
}
.border-left-gray-medium{
    border-left: 1px solid #C3CCDA;
}
.border-right-gray-medium{
    border-right: 1px solid #C3CCDA !important;
}
.border-color-primary{
    border: 1px solid #4A92FF;
}
.border-top-primary{
    border-top: 1px solid #1968DF;
}
.border-gray-dark {
    border: 1px solid #7C8FAC
}
.border-gray-medium {
    border: 1px solid #C3CCDA
}
.border-top-action-error {
    border-top: 1px solid #FA6B6B;
}
.border-action-error {
    border: 1px solid #FA6B6B;  
}
.border-action-success {
    border: 1px solid #13DEB9;
}
.border-action-warning {
    border: 1px solid #FFAE1F
}

/* font */
.fs-22-px{
    font-size:22px;
}

/* badge */
.badge{
    display: flex;
    height: 22px;
    padding: 2px 8px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.badge-sm{
    font-size: 10px;
    width: auto;
    min-width: 16px;
    padding: 1px 5px;
    position: relative;
    top: -1px;
}
.badge-md{
    font-size: 12px;
    width: 60px;
    padding: 1px 4px;
    position: relative;
    top: -1px;
    text-align: center;
}
.badge-lab{
    display: flex;
    font-size: 10px;
    width: 28px;
    height: 26px;
    font-size: 16px;
    padding: 1px 5px;
    position: relative;
    top: -1px;
    align-items: center;
    justify-content: center;
}
.flex-1{
    flex: 1;
}

.custom-width {
    width: calc(33.33% - 5px); /* 3열로 정렬되도록 너비 설정 */
}

/* nav-tab(side) */
.nav.custom-nav {
    --bs-nav-link-padding-x: 1rem;
    --bs-nav-link-padding-y: 0.5rem;
    --bs-nav-link-font-size:1rem;
    --bs-nav-link-font-weight: 600;
    --bs-nav-link-color: #2A3547;
    --bs-nav-link-hover-color: #2A3547;
    --bs-nav-link-disabled-color: var(--bs-secondary-color);
    display: flex;
    flex-wrap: wrap;
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}

.nav-link.custom-navlink {
    display: block;
    padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
    font-size: var(--bs-nav-link-font-size);
    font-weight: var(--bs-nav-link-font-weight);
    color: var(--bs-nav-link-color);
    text-decoration: none;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
    .nav-link.custom-navlink {
        transition: none;
    }
}

/* 탭 스타일 */
.nav-link.custom-nav-link:hover, .nav-link.custom-nav-link:focus {
    color: var(--bs-nav-link-hover-color);
}
.nav-link.custom-nav-link.disabled {
    color: var(--bs-nav-link-disabled-color);
    pointer-events: none;
    cursor: default;
}

.nav-tabs.custom-nav-tab {
    --bs-nav-tabs-border-width: 1px;
    --bs-nav-tabs-border-color: var(--bs-border-color);
    --bs-nav-tabs-border-radius: 0;
    --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);
    --bs-nav-tabs-link-active-color: #1968DF;
    --bs-nav-tabs-link-active-bg: #fff;
    --bs-nav-tabs-link-active-border-color: #1968DF;
}
.nav-tabs.custom-nav-tab,
.nav-tabs.custom-nav-tab .nav-link {
    border-radius: 0;
    font-weight: 400;
    padding: 5px 20px;
}
.nav-tabs.custom-nav-tab .nav-link.custom-nav-link {
    margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));
    background: none;
    border: var(--bs-nav-tabs-border-width) solid transparent;
    border-top-left-radius: var(--bs-nav-tabs-border-radius);
    border-top-right-radius: var(--bs-nav-tabs-border-radius);
}
.nav-tabs.custom-nav-tab .nav-link:hover, .nav-tabs .nav-link:focus {
    isolation: isolate;
    color: #1968DF;
    border-color: transparent;
}
.nav-tabs.custom-nav-tab .nav-link.disabled, .nav-tabs .nav-link:disabled {
    color: var(--bs-nav-link-disabled-color);
    background-color: transparent;
    border-color: transparent;
}
.nav-tabs.custom-nav-tab .nav-link.active,
.nav-tabs.custom-nav-tab .nav-item.show .nav-link {
    color: var(--bs-nav-tabs-link-active-color);
    background-color: var(--bs-nav-tabs-link-active-bg);
    border: 0;
    border-color: var(--bs-nav-tabs-link-active-border-color);
    border-bottom: 4px solid #1968DF;
    font-weight: 600;
}
.nav-tabs.custom-nav-tab .dropdown-menu {
    margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.nav-pills.custom-nav-pills {
    --bs-nav-pills-border-radius: 7px;
    --bs-nav-pills-link-active-color: #fff;
    --bs-nav-pills-link-active-bg: #5D87FF;
}
.nav-pills.custom-nav-pills .nav-link {
    background: none;
    border: 0;
    border-radius: var(--bs-nav-pills-border-radius);
}
.nav-pills.custom-nav-pills .nav-link:disabled {
    color: var(--bs-nav-link-disabled-color);
    background-color: transparent;
    border-color: transparent;
}
.nav-pills.custom-nav-pills .nav-link.active,
.nav-pills.custom-nav-pills .show > .nav-link {
    color: var(--bs-nav-pills-link-active-color);
    background-color: var(--bs-nav-pills-link-active-bg);
}

.nav-fill.custom-nav-fills > .nav-link,
.nav-fill.custom-nav-fills .nav-item {
    flex: 1 1 auto;
    text-align: center;
}

.nav-justified.custom-nav-justified > .nav-link,
.nav-justified.custom-nav-justified .nav-item {
    flex-basis: 0;
    flex-grow: 1;
    text-align: center;
}

.nav-fill.custom-nav-fills .nav-item .nav-link,
.nav-justified.custom-nav-justified .nav-item .nav-link {
    width: 100%;
}

.category-tabs .nav-link {
    position: relative;
    color: #5A6A85;
    border: none;
    padding: 10px 24px;
}

.category-tabs .nav-link.active {
    color: #000;
    font-weight: bold;
    background: transparent;
    border-radius: 0;
}

.category-tabs .nav-link:after{
    content:'';
    position:absolute;
    top: 17px;
    right:0;
    width: 1px;
    height: 12px;
    background:#5A6A85;
}

.category-tabs li:last-child .nav-link:after{
    background:transparent;
}

/* gallery */
.gallery-list{
    position:relative;
}

.gallery-item {
    aspect-ratio: 16/9;
    overflow: hidden;
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 8px 8px 0 0 !important;
}

.gallery-list .completed-badge{ 
    display:none;
}

.gallery-list .dimmed::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1;
    border-radius: 8px 8px 0 0;
}

.gallery-list .con-txt p{color: #7C8FAC;font-size: 12px;}

.gallery-list .con-txt h6{color: #2A3547;font-size: 16px;font-weight: 700;}

.gallery-list .dimmed~ .con-txt h6{color: #7C8FAC;}

.gallery-list .dimmed~ .con-txt p{color: #C3CCDA;}

.gallery-list .dimmed .completed-badge{
    display:block;
    position:absolute;
    top: 45%;
    left: 50%;
    transform: translate(-50%);
    z-index:2;
}
.gallery-list .dimmed .completed-badge .badge {
    color:#fff;
    font-size: 16px;
}

.gallery-item .ti-star-filled {
    font-size: 1.2rem;
    z-index: 2;
}

/* 버튼 */
.btnset-group{
    display:flex;
    justify-content: end;
    gap: 10px;
}
.btn{
    padding: 8px 20px;
    transition: background-color 0.3s;
    word-break: auto-phrase;
}
.btn-sm{
    display: flex;
    padding: 2px 6px !important;
    justify-content: center;
    align-items: center;
    gap: 10px;
}
.btn:disabled, .btn.disabled, fieldset:disabled .btn {
    color: var(--bs-btn-disabled-color);
    pointer-events: none;
    background-color: var(--bs-btn-disabled-bg);
    border-color: var(--bs-btn-disabled-border-color);
    opacity: var(--bs-btn-disabled-opacity);
    box-shadow: none;
}

.btn-md{
    min-width: 160px;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: #1968DF;
    --bs-btn-border-color: #1968DF;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #4f73d9;
    --bs-btn-hover-border-color: #4a6ccc;
    --bs-btn-focus-shadow-rgb: 117, 153, 255;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #4a6ccc;
    --bs-btn-active-border-color: #4665bf;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #C3CCDA;
    --bs-btn-disabled-border-color: #C3CCDA;
}

.select-btn {
    background-color: #007bff;
    color: #fff;
}

.select-btn:disabled {
    background-color: #ccc;
    cursor: not-allowed;
}

.btn-icon {
    padding: 0.25rem;
    color: #6c757d;
}

.btn-icon:hover {
    color: #212529;
    background-color: #e9ecef;
}

.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {
    color: var(--bs-btn-active-color);
    background-color: var(--bs-btn-active-bg);
    border-color: var(--bs-btn-active-border-color);
    box-shadow: var(--bs-btn-active-shadow);
}
.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {
    box-shadow: var(--bs-btn-active-shadow), var(--bs-btn-focus-box-shadow);
}
.btn-outline-primary {
    --bs-btn-color: #1968DF;
    --bs-btn-border-color: #1968DF;
    --bs-btn-hover-color: #FFF;
    --bs-btn-hover-bg: #5D87FF;
    --bs-btn-hover-border-color: #5D87FF;
    --bs-btn-focus-shadow-rgb: 93, 135, 255;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #5D87FF;
    --bs-btn-active-border-color: #5D87FF;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #5D87FF;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #5D87FF;
    --bs-gradient: none;
}

.btn-outline-secondary {
    --bs-btn-color: #49BEFF;
    --bs-btn-border-color: #49BEFF;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #49BEFF;
    --bs-btn-hover-border-color: #49BEFF;
    --bs-btn-focus-shadow-rgb: 73, 190, 255;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #49BEFF;
    --bs-btn-active-border-color: #49BEFF;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #49BEFF;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #49BEFF;
    --bs-gradient: none;
}

.btn-filter-primary{
    font-size:12px;
    border-radius:25px;
    padding: 10px 10px;
    font-weight: 400;
    max-width: 114px;
}
.btn-filter-primary {
    --bs-btn-color: #5A6A85;
    --bs-btn-border-color: #EAEFF4;
    --bs-btn-hover-color: #FFF;
    --bs-btn-hover-bg: #5D87FF;
    --bs-btn-hover-border-color: #5D87FF;
    --bs-btn-focus-shadow-rgb: 93, 135, 255;
    --bs-btn-active-color: #1968DF;
    --bs-btn-active-bg: #F2F6FA;
    --bs-btn-active-border-color: #5D87FF;
    --bs-btn-disabled-color: #5D87FF;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #5D87FF;
    --bs-gradient: none;
}

.btn-cs-outline-primary-dark {
    --bs-btn-color: #1968DF;
    --bs-btn-bg: #ffffff;
    --bs-btn-border-color: #1968DF;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #4f73d9;
    --bs-btn-hover-border-color: #4a6ccc;
    --bs-btn-focus-shadow-rgb: 117, 153, 255;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #4a6ccc;
    --bs-btn-active-border-color: #4665bf;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #5D87FF;
    --bs-btn-disabled-border-color: #5D87FF;
}

.btn-outline-gray-light {
    --bs-btn-color: #2A3547;
    --bs-btn-border-color: #EAEFF4;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #5A6A85;
    --bs-btn-hover-border-color: #5A6A85;
    --bs-btn-focus-shadow-rgb: 90, 106, 133;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #5A6A85;
    --bs-btn-active-border-color: #5A6A85;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #5A6A85;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #5A6A85;
    --bs-gradient: none;
}

.select-button {
    --bs-btn-color: #1968DF;
    --bs-btn-bg: #ffffff;
    --bs-btn-border-color: #1968DF;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #4f73d9;
    --bs-btn-hover-border-color: #4a6ccc;
    --bs-btn-focus-shadow-rgb: 117, 153, 255;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #4a6ccc;
    --bs-btn-active-border-color: #4665bf;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #5D87FF;
    --bs-btn-disabled-border-color: #5D87FF;
}
.select-button{
    background:var(--bs-btn-color);
    color:var(--bs-btn-bg);
}
.select-button:disabled, .select-button.disabled, fieldset:disabled .btn {
    color: var(--bs-btn-disabled-color);
    pointer-events: none;
    background-color: #C3CCDA;
    border-color: #C3CCDA;
    opacity: var(--bs-btn-disabled-opacity);
    box-shadow: none;
}  

.comment-menu-button {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 24px;
    height: 100%;
    cursor: pointer;
    gap: 3px;
    padding-top: 10px;
}

.dot {
    width: 4px;
    height: 4px;
    background-color: #2f3b50; /* 점의 색상 */
    border-radius: 50%;
}

.icon-docu,.icon-docu-result{
    position: relative;
    display: flex;
    padding: 7px 30px;
    font-weight: 700;
    align-items: center;
    justify-content: center;
}
.icon-docu:before,.icon-docu-result:before{
    content:'';
    display: inline-flex;
    width:20px;
    height:20px;    
    align-items: center;
}
.icon-docu:before{
    background:url(../images/ico/ico-docu.webp) no-repeat;
}
.icon-docu-result:before{
    background:url(../images/ico/ico-docu.webp) no-repeat;
}
.icon-docu-result:before{
    background:url(../images/ico/ico-docu-result.webp) no-repeat;
}
.icon-docu-result:hover:before{
    background:url(../images/ico/ico-docu-result-white.webp) no-repeat;
}

.icon-certificate,.icon-certificate-blue{
    position: relative;
    display: flex;
    padding: 7px 30px;
    font-weight: 700;
    align-items: center;
    justify-content: center;
}

.icon-certificate:before,.icon-certificate-blue:before{
    content:'';
    display: inline-flex;
    width: 19px;
    height: 19px;
    align-items: center;
    margin-right: 5px;
}

.icon-certificate:before{
    background:url(../images/ico/ico-key-white.webp) no-repeat;
}

.icon-certificate-blue:before{
    background:url(../images/ico/ico-key-blue.webp) no-repeat;
}

.icon-play{
    position: relative;
    display: flex;
    padding: 7px 30px;
    font-weight: 700;
    align-items: center;
    justify-content: center;
}
.icon-play:before{
    content:'';
    display: inline-flex;
    width: 14px;
    height: 17px;
    background:url(../images/ico/ico-play-blue.webp) no-repeat;
    align-items: center;
    margin-right: 5px;
}

.icon-graduates{
    position: relative;
    display: flex;
    padding: 7px 30px;
    font-weight: 700;
    align-items: center;
    justify-content: center;
}
.icon-graduates:before{
    content:'';
    display: inline-flex;
    width: 20px;
    height: 17px;
    background:url(../images/ico/ico-graduates-blue.webp) no-repeat;
    align-items: center;
    margin-right: 5px;
}

.icon-filter{
    position: relative;
    display: flex;
    padding: 7px 30px;
    font-weight: 700;
    align-items: center;
    justify-content: center;
}
.icon-filter:before{
    content:'';
    display: inline-flex;
    width: 18px;
    height: 14px;
    background:url(../images/ico/ico-filter.webp) no-repeat;
    align-items: center;
    margin-right: 5px;
}
.icon-filter:hover:before{
    background:url(../images/ico/ico-filter-white.webp) no-repeat;
}

.allowance-download-btn{
    position: relative;
    display: flex;
    padding: 7px 30px;
    font-weight: 700;
    align-items: center;
    justify-content: center;
}
.allowance-download-btn:before{
    content:'';
    display: inline-flex;
    width:16px;
    height:19px;
    background:url(../images/ico/ico-download-blue.webp) no-repeat;
    align-items: center;
    margin-right: 4px;
}
.allowance-download-btn:hover{
    color:#fff !important;
}
.allowance-download-btn:hover:before{    
    background:url(../images/ico/ico-download-white.webp) no-repeat;
}
.allowance-btn-add{
    color:#1968DF;
    border:1px solid #1968DF;
    border-radius:8px;
    display: flex;
    width: 214px;
    height: 37px;
    justify-content: center;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
    background: #fff;
    font-weight: 700;
}
.allowance-btn-add:hover{
    color:#fff !important;
    background:#1968DF;
}

.ico-smartcheck{
    position: relative;
    display: flex;
    padding: 7px 30px;
    font-weight: 700;
    align-items: center;
    justify-content: center;
}
.ico-smartcheck:before{
    content:'';
    display: inline-flex;
    width: 16px;
    height: 19px;
    background:url(../images/ico/ico-download-white.webp) no-repeat;
    align-items: center;
    margin-right: 4px;
}

.ico-activity{
    position: relative;
    display: flex;
    padding: 7px 30px;
    font-weight: 700;
    align-items: center;
    justify-content: center;
}
.ico-activity:before{
    content:'';
    display: inline-flex;
    width: 16px;
    height: 19px;
    background:url(../images/ico/ico-pen.webp) no-repeat;
    align-items: center;
    margin-right: 4px;
}

.ico-delete{
    display: flex;
    width: 60px;
    height: 40px;
    padding: 8px 12px;
    color:#FA6B6B;
    border:1px solid #FA6B6B;
    background: #fff;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    justify-content: center;
}
.ico-delete:hover{
    background: #FA6B6B;
    color: #fff !important;
}

.selected-badge{
    background-color: #1968DF;
    color: #fff;
    font-size:12px;
    padding: 5px 12px;
    border-radius: 20px;
    margin-left: 10px;
}

.unselected-badge{
    border:1px solid #C3CCDA;
    color: #C3CCDA;
    font-size:12px;
    padding: 8px 10px;
    border-radius: 20px;
    margin-left: 10px;
}

.re-selection-btn{
    border:1px solid #FA6B6B;
    color:#FA6B6B;
}

.modal-cancel-btn{
    font-weight:700;
    border-radius: 0;
    background:#fff;
    padding: 12px;
}

.modal-cancel-btn:hover{
    background:#5087db;
    color:#fff;
}

.modal-submit-btn{
    font-weight:700;
    border-radius: 0;
    color:#fff;
    padding: 12px;
}
.modal-submit-btn:hover{
    background: #cee2ff;
    color: #1968df;
    border-color: #cee2ff;
}

.m-filter{
    display:flex;
    width: 18px;
    height: 14px;
    background:url(../images/ico/ico-filter-gray.webp) no-repeat;
    border: 0;
}

/* 토글 스위치 버튼 */
.toggle-switch-wrapper {
    display: flex;
    align-items: center;
gap: 8px;
}

.toggle-switch {
    position: relative;
    display: inline-block;
    width: 40px;
    height: 20px;
    margin: 0;
}

.toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #E9ECEF;
    transition: .4s;
    border-radius: 34px;
}

.toggle-slider:before {
    position: absolute;
    content: "";
    height: 16px;
    width: 16px;
    left: 2px;
    bottom: 2px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
}

input:checked + .toggle-slider {
    background-color: #2563EB;
}

input:checked + .toggle-slider:before {
    transform: translateX(20px);
}

.toggle-text {
    font-size: 12px;
    color: #666;
    min-width: 32px;
}

/* 별점 */
.star-icon {
    cursor: pointer;
    color: #ddd;
    font-size: 22px;
    transition: color 0.2s;
}

.favorite-btn {
    background: none;
    border: none;
    padding: 8px;
    cursor: pointer;
    position: relative;
  }
  
  /* 기본 상태 - 테두리만 있는 회색 별 */
  .favorite-btn i:before {
    font-family: "Font Awesome 6 Free";
    content: "\f005";
    font-weight: 400; /* regular 스타일 */
    font-size: 22px;
    /* color: #fff; */
    transition: all 0.3s ease;
    font-style: normal;
  }
  
  /* 활성화 상태 - 노란색으로 채워진 별 */
  .favorite-btn.active i:before {
    font-weight: 900; /* solid 스타일 */
    color: #FFD700;
  }
  
  /* 호버 효과 */
  .favorite-btn:hover i:before {
    color: #FFD700;
  }
  
  /* 클릭 효과 */
  .favorite-btn:active {
    transform: scale(0.95);
  }

/* SMS TAB */
#smsTab{
  padding: 30px;
  padding-bottom: 0;
}
#smsTab .nav-item .nav-link{
  padding: 12px 20px;
  padding-bottom: 8px;
}
#smsTabContent{
  padding: 30px;
}

.star-icon.active {
    color: #FFAE1F;
}

/* 아코디언 */
.accordion {
    --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23003BAF'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23003BAF'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.accordion-button {
    color: #003BAF;
}

.accordion-se .accordion-item{
    border:0;
    box-shadow: none;
}

.accordion-se .accordion-item .accordion-header .accordion-button{
    color: #2A3547;
    padding: 0;
    box-shadow: none;
    border: 0;
}

.accordion-se .accordion-item .accordion-collapse{
    border:0;
}

.min-h-630{
    min-height:630px;
}
.w-15 {
  width: 15% !important;
}
.tooltip-inner {
    text-align: left;
    padding:16px;
    word-break:keep-all;
}

.pc-border{
    border-bottom: 1px solid #EAEFF4;
}
.pc-border-0{
    border:0;
}

.item-container{position: relative;display: flex;flex-wrap: nowrap;gap: 0px;}
.item-container .m-item{min-width: 0;margin-right: 10px;}

/* 주요통계 */
.top-statistics{}
.top-statistics .result-box{
    position: relative;
    display: flex;
    justify-content: space-between;
}
.top-statistics .result-box .statistics-box{}
.top-statistics .result-box .statistics-box .statistics-icon{
    width: 48px;
    height: 48px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    margin-bottom: 20px;
}
.top-statistics .result-box .statistics-box .statistics-icon img{
    width: 36px;
    height: 32px;
}
.top-statistics .result-box .statistics-box .statistics-info{}
.top-statistics .result-box .statistics-box .statistics-info h6{
    margin-bottom: 2px;
    font-size: 14px;
    color: #2A3547;
}
.top-statistics .result-box .statistics-box .statistics-info h2{
    font-size: 30px;
    font-weight: 700;
    color: #2A3547;
}
.top-statistics .result-box .arrow-icon{
    position: absolute;
    right: 0;
}
.top-statistics .result-box .arrow-icon i{
    font-size: 20px;
    color: #5A6A85;
}
.n-row-7{
    min-height: 330px;
}
.n-row-8{
    min-height: 330px;
}
.n-row-9{
    min-height: 330px;
}

.institutional-profile{
    display: flex;
    align-items: center;
    gap: 20px;
}
.institutional-status{
    display: flex;
    justify-content: space-evenly;
    padding-top: 15px;
    align-items: center;
    gap: 0px;
}
.institutional-status .pros{}
.institutional-status .pros .head-title{
    color: #2A3547;
    font-weight: 500;
}
.institutional-status .pros .con-sec{
    display: flex;
    margin-top: 5px;
}
.institutional-status .pros .con-sec .sc-count{
    font-size: 24px;
    color: #1968DF;
    font-weight: 700;
}
.institutional-status .pros .con-sec .confirm-status{
    display: flex;
    justify-content: center;
    align-items: center;
    margin-left: 5px;
    gap: 4px;
}
.left-card{
    text-align: center;
}
.left-card .border-end{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex: 1 0 0;
    align-self: stretch;
}
.inst-section{}
.inst-section .subj-1{
    font-size: 14px;
    color: #2A3547;
    font-weight: 500;
    margin-bottom: 12px;
}
.inst-section .count-1{
    font-size: 24px;
    color: #1968DF;
    font-weight: 700;
}
.card-box{
    position: relative;
    display: flex;
    width: 100%;
    border: 1px solid #C3CCDA;
    box-shadow: 0px 4px 8px 0px rgba(145, 158, 171, 0.30);
    border-radius: 6px;
    padding: 16px;
    flex-direction: column;
    cursor: pointer;
}
.card-box .box-cont{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.card-box .box-cont .icon-box{}
.card-box .box-cont .icon-box img{}
.card-box .box-cont a.i-right{}
.card-box .box-cont a.i-right i{
    font-size: 23px;
    color: #5A6A85;
}
.card-box .ftitle{
    font-size: 14px;
    color: #2A3547;
    font-weight: 700;
    margin-top: 16px;
}
.card-box .fcount{
    font-size: 24px;
    color: #2A3547;
    font-weight: 700;
}

@media (min-width: 992px) {
    .d-ti-none {
        display: none !important;
    }
    .instructor-filter-dialog {
        max-width: 400px;
    }
}


@media (max-width: 991px) {
    .ico-delete{
        display: flex;
        width: 24px;
        height: 24px;
        padding: 3px 5px 3px 6px;
        justify-content: center;
        align-items: center;
        color:#FA6B6B;
        border:1px solid #FA6B6B;
        background: #fff;
        border-radius: 24px;
        font-size: 24px;
    }    
    .favorite-btn i:before {
        font-size: 18px;
    }
    #applicantDetailModal .modal-dialog,#addRosterModal .modal-dialog{
        margin:0;
        width: 100% !important;
        max-width:100%;
    }
    #applicantDetailModal .modal-dialog .modal-content,#addRosterModal .modal-dialog .modal-content{
        border-radius:0;
    }
    .document-slide .fs-18-px{
        font-size: 14px !important;
    }
    .document-slide .fs-14-px{
        font-size: 12px !important;
    }
        .need-border-bot .vi-con .text-subj{
        font-size:14px;
        color:#2A3547;
        font-weight:500;
    }
    .need-border-bot .vi-con span{
        font-size:14px;
        font-weight:700;
    }

    .category-tabs .nav-link {
        font-size:14px;
        padding: 5px 8px;
    }
    .category-tabs .nav-link:after{
        top: 10px;
    }
    .statistics-wrap{
        padding: 24px;
    }
    .top-statistics .result-box{}
    .top-statistics .result-box .statistics-box{
        display: flex;
        gap: 10px;
        justify-content: center;
        align-items: center;
    }
    .top-statistics .result-box .statistics-box .statistics-icon{
        width: 60px;
        height: 60px;
        margin-bottom: 0;
    }
    .top-statistics .result-box .statistics-box .statistics-icon img{
        width: 34px;
        height: 34px;
    }
    .top-statistics .result-box .statistics-box .statistics-info{}
    .top-statistics .result-box .statistics-box .statistics-info h6{}
    .top-statistics .result-box .statistics-box .statistics-info h2{
        margin-bottom: 0;
        font-size: 22px;
    }
    .top-statistics .result-box .arrow-icon{
        top: 25%;
    }
    .top-statistics .result-box .arrow-icon i{
        font-size: 30px;
    }
    .n-row-7{}
    .n-row-8{}
    .n-row-9{}

    .institutional-profile{
        justify-content: center;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 5px;
    }
    .institutional-profile img{
        margin: 10px auto;
    }
    .institutional-status{
        position: relative;
        width: 60%;
        margin: auto;
        align-items: start;
    }
    .institutional-status .arr-r{
        display: flex;
        height: 62px;
        flex-wrap: wrap;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }
    .institutional-status .pros{}
    .institutional-status .pros .head-title{
        font-size: 12px;
    }
    .institutional-status .pros .con-sec{
        flex-direction: column;
        text-align: center;
    }
    .institutional-status .pros .con-sec .sc-count{
        font-size: 22px;
    }
    .institutional-status .pros .con-sec .confirm-status{
        margin: auto;
    }

    .check-box-wrap{
        display: flex;
        gap: 20px;
        padding-top: 16px;
        margin-bottom: 16px;
        border-top: 1px solid #DFE5EF;
    }
    /* 모달게시판 반응형 리스트 컨테츠 아이템 st */
    .view-list .view-item {
      border-bottom: 1px solid #EAEFF4;
      padding-bottom: 8px;
    }
    .view-list .view-item .view-title{
  display: flex;
  font-size: 14px;
  color: #2A3547;
  font-weight: 700;
  margin-bottom: 6px;
  justify-content: space-between;
  align-items: center;
}
    .view-list .view-item .item-list-col{
  display: flex;
  gap: 15px;
  padding-top: 0;
  margin-bottom: 0px;
}
    .view-list .view-item .item-list-col .item-flex{
  display: flex;
  gap: 2px;
  align-items: center;
}
    .view-list .view-item .item-list-col .item-flex .subject{
  font-size: 12px;
  color: #7C8FAC;
  margin-right: 4px;
}
    
    .view-list .view-item .item-list-col .item-flex .con{
  font-size: 12px;
  color: #2A3547;
}
    .view-list .view-item .item-list-col .item-flex .item-photo{
  display: flex;
  align-items: center;
  margin-bottom: 3px;
}
    .view-list .view-item .item-list-col .item-flex .item-photo img{
  margin-top: 1px;
}
    .view-list .view-item .item-list-col .item-flex .item-photo span{
  font-size: 12px;
  color: #2A3547;
}


/* 반응형 스타일 */
/* 태블릿 화면에 대한 스타일 */
@media screen and (min-width: 768px) and (max-width: 991px) {
    .btn-md{
        min-width:50%;
    }
    .re-selection-btn{
        width:100%;
        margin-top: 20px;
    }
    .d-tl-flex{
        display: flex !important;
    }
    .d-tl-block{
        display: block !important;
    }
    .recruitment-status-table thead th.p-name,
    .recruitment-status-table thead th.p-count{
        width:auto;
        min-width:75px;
    }
    .recruitment-status-table thead th.p-distance{
        width:auto;
        min-width:60px;
    }
    
    .table-scroll tbody td.p-name,
    .table-scroll tbody td.p-count{
        width:auto;
        min-width:75px;
    }
    .table-scroll tbody td.p-distance{
        width:auto;
        min-width:60px;
    }
    .table-scroll tbody td:last-child{
        text-align:center;
    }
    .education-item .comment-menu-button {
        padding-top:0;
        margin-top:0;
    }
    .comment-menu-button {
        padding-top:0;
        margin-top:-23px;
    }

    .mo-flex{
        display:flex;
        gap:6px;
    }
    #applicantDetailModal .modal-dialog .modal-content .btn-close{
        top:20px;
        left:10px;
        color: #222;
        opacity: 1;
    }
    .table-scroll {
        height: 100%;
        max-height: 559px;
        overflow-y: auto;
        position: relative;
    }
    .he-auto {
        min-height: auto;
    }

    .btn-box-area{
        position:relative;
        display: flex;
        width: calc(100% - 10px);
        left: 5px;
        right: 0;
        margin-top: 10px;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
    }
    .instructor-filter-dialog {
        max-width: 100%;
        margin: 0;
    }
    .allowance-table td{
        padding-left:20px;
        padding-right:20px;
    }
    .card{
        margin-bottom:24px;
    }
    .card-body{
        padding:24px;
    }
    .vi-con:last-child.tablet-border{
        border-bottom: 1px solid #EAEFF4;
    }
    .tablet-border-0{
        border:0;
    }
    .institutional-status .pros{}
    .institutional-status .pros .head-title{}
    .institutional-status .pros .con-sec{}
    .institutional-status .pros .con-sec .sc-count{}
    .institutional-status .pros .con-sec .confirm-status{}
    .left-card{
        display: flex;
        align-items: center;
    }
    .left-card .border-end{}
    .inst-section{}
    .inst-section .subj-1{
        font-size: 12px;
    }
    .inst-section .count-1{
        font-size: 22px;
    }
    .card-box{
        padding: 8px;
    }
    .card-box .box-cont{}
    .card-box .box-cont .icon-box{
        width: 32px;
        height: 32px;
    }
    .card-box .box-cont .icon-box img{
        width: 16px;
    }
    .card-box .box-cont a.i-right{
        position: absolute;
        right: 10px;
        bottom: 10px;
    }
    .card-box .box-cont a.i-right i{
        font-size: 16px;
    }
    .card-box .ftitle{
        margin-top: 4px;
        margin-bottom: 12px;
    }
    .card-box .fcount{
        font-size: 18px;
    }
}

@media (max-width: 768px) {
    /* 모바일 스타일 */
    .row {
        --bs-gutter-x: 0px;
    }
    .sm-card{
        margin-bottom: 0 !important;
        border-radius: 0;
    }
    .card{
        margin-bottom:24px;
    }
    .card-body{
        padding:16px;
    }
    .education-item {
        position: relative;
        padding-bottom: 5px;
        border-bottom: 1px solid #EAEFF4;
    }
    .d-ti-none{
        display:none;
    }
    .list-item {
        width: calc(50% - 0.75rem); /* 2줄 레이아웃을 위한 너비 설정 */
    }
    .border-radius-0{
        border-radius: 0% !important;
    }
    .pagination {
        display: none !important;
    }
    .education-title-wrapper {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    .title-info {
        flex-direction: column;
    }
    .education-id {
        margin-left: 76px; /* status-badge width + gap */
    }
    .table-scroll tbody td:last-child{
        text-align:center;
    }
    .education-item .comment-menu-button {
        padding-top:0;
        margin-top:0;
    }
    
    .comment-menu-button {
        padding-top:0;
        margin-top:-23px;
    }
    .comment-adm {
        padding-top:0;
        margin-top: 0;
    }
    .instructor-filter-dialog {
        max-width: 100%;
        margin: 0;
        border-radius: 0;
    }

    #applicantDetailModal .modal-dialog .modal-content .btn-close{
        top:20px;
        left:10px;
        color: #222;
        opacity: 1;
    }
    .re-selection-btn{
        width:100%;
        margin-top: 20px;
    }
    .he-auto {
        min-height: auto;
    }
    .btn-box-area{
        position:relative;
        display: flex;
        width: calc(100% - 10px);
        left: 5px;
        right: 0;
        margin-top: 10px;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
    }
    .btnset-group{
        display:flex;
        justify-content: end;
        padding: 20px;
    }
    .form-control{
        padding: 6px 4px;
        min-width: 60px;
    }
    .vi-con{
        padding: 0.5rem 0;
        gap: 0.5rem;
        align-items: center;
        border-bottom: 0px solid #EAEFF4;
        margin-top: 0;
    }
    .vi-con span{
        font-size: 0.75rem;
    }
    .vi-con .btn-box{
        display:flex;
        width:100%;
        justify-content: space-between;
        align-items: center;
    }
    .need-border-bot .vi-con{
        padding: 1rem 0 !important;
        gap: 0.5rem;
        align-items: center;
        border-bottom: 1px solid #EAEFF4;
        margin-top: 0;
    }
    .need-border-bot .vi-con.tablet-border-0{
        border-bottom:0;
    }
    /* 모달게시판 반응형 리스트 컨테츠 아이템 st */
    .view-list .view-item {
      border-bottom: 1px solid #EAEFF4;
      padding-bottom: 8px;
    }
    .view-list .view-item .view-title{
  font-size: 14px;
  color: #2A3547;
  font-weight: 700;
  margin-bottom: 6px;
}
    .view-list .view-item .item-list-col{
  display: flex;
  gap: 15px;
  padding-top: 0;
  margin-bottom: 0px;
}
    .view-list .view-item .item-list-col .item-flex{
  display: flex;
  gap: 2px;
  align-items: center;
}
    .view-list .view-item .item-list-col .item-flex .subject{
  font-size: 12px;
  color: #7C8FAC;
  margin-right: 4px;
}
    
    .view-list .view-item .item-list-col .item-flex .con{
  font-size: 12px;
  color: #2A3547;
}
    .view-list .view-item .item-list-col .item-flex .item-photo{
  display: flex;
  align-items: center;
  margin-bottom: 3px;
}
    .view-list .view-item .item-list-col .item-flex .item-photo img{
  margin-top: 1px;
}
    .view-list .view-item .item-list-col .item-flex .item-photo span{
  font-size: 12px;
  color: #2A3547;
}
    
    .allowance-table th,.allowance-table td{
        padding-left: 20px;
        padding-right:20px;
        font-size: 12px;
    }
    .education-status {
        position: absolute;
        bottom: 8px;
        right: 0;
    }
    .allowance-btn-add{
        width:100%;
    }
    /* SMS TAB */
    #smsTab{
        padding: 16px;
        padding-bottom: 0;
    }
    #smsTab .nav-item .nav-link{
        padding-bottom: 8px;
    }
    #smsTabContent{
        padding: 16px;
    }
    .category-tabs {
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
    }

    .category-tabs::-webkit-scrollbar {
        display: none;
    }

    .category-tabs .nav-tabs {
        flex-wrap: nowrap;
        width: max-content;
    }

    .category-tabs .nav-item {
        display: inline-block;
        white-space: nowrap;
    }
    .statistics-wrap{
        padding: 16px;
    }
    .top-statistics .result-box{}
    .top-statistics .result-box .statistics-box{}
    .top-statistics .result-box .statistics-box .statistics-icon{}
    .top-statistics .result-box .statistics-box .statistics-info{}
    .top-statistics .result-box .statistics-box .statistics-info h6{}
    .top-statistics .result-box .statistics-box .statistics-info h2{}
    .top-statistics .result-box .arrow-icon{}
    .n-row-7{}
    .n-row-8{
        min-height: 100%;
    }
    .n-row-9{
        min-height: 100%;
    }
    .statistics-chart-container .form-select{
        width:120px;
        padding-left: 10px;
    }
    .check-box-wrap{
        flex-wrap: wrap;
        flex-direction: column;
        gap: 10px;
    }
    .item-container{flex-direction: column;}
    .item-container .m-item{flex:0 0 calc(50% - 10px);margin-bottom: 5px;}
    .institutional-profile{}
    .institutional-status{
        min-width: 320px;
        justify-content: space-between;
    }
    .institutional-status .pros{}
    .institutional-status .pros .head-title{}
    .institutional-status .pros .con-sec{}
    .institutional-status .pros .con-sec .sc-count{}
    .institutional-status .pros .con-sec .confirm-status{
        font-size: 12px;
    }
    .left-card{}
    .left-card .border-end{}
    .inst-section{}
    .inst-section .subj-1{
        font-size: 12px;
    }
    .inst-section .count-1{}
    .card-box{
        justify-content: flex-start;
        padding: 8px;
    }
    .card-box .box-cont{}
    .card-box .box-cont .icon-box{
        width: 24px;
        height: 24px;
    }
    .card-box .box-cont .icon-box img{
        width: 14px;
    }
    .card-box .box-cont a.i-right{
        position: absolute;
        right: 10px;
        bottom: 9px;
    }
    .card-box .box-cont a.i-right i{
        font-size: 14px;
    }
    .card-box .ftitle{
        min-height: 68px;
        font-size: 12px;
    }
    .card-box .fcount{
        font-size: 16px;
    }
}
@media (max-width: 576px) {
    .card-body{
        padding:16px;
    }
    
    .vi-con-m{
        padding: 1rem 0;
        gap: 0.5rem;
        align-items: center;
        border-bottom: 1px solid #EAEFF4;
        margin-top: 0;
    }
    .recruitment-status-table thead th {
        font-size:12px;
    }
    .recruitment-status-table thead th.p-name,
    .recruitment-status-table thead th.p-count
    {
        width:80px;
        min-width:75px;
    }
    .table-scroll tbody td{
        font-size:12px;
        font-weight:500;
    }
    .table-scroll tbody td.p-name,
    .table-scroll tbody td.p-count
    {
        width:80px;
        min-width:75px;
    }
    .icon-docu{
        width: 94%;
        margin: auto;
        text-align: center;
    }
    .top-statistics{}
    .top-statistics .result-box{}
    .top-statistics .result-box .statistics-box{}
    .top-statistics .result-box .statistics-box .statistics-icon{}
    .top-statistics .result-box .statistics-box .statistics-info{}
    .top-statistics .result-box .statistics-box .statistics-info h6{}
    .top-statistics .result-box .statistics-box .statistics-info h2{}
    .top-statistics .result-box .arrow-icon{}
}
@media (max-width: 375px) {
    .list-item {
        width: calc(100% - 0.75rem); /* 1줄 레이아웃으로 변경 */
    }
    .education-details {
        padding-bottom: 12px; /* 상태 뱃지 너비만큼 여백 확보 */
    }

}

@media (min-width: 768px) {
/* 태블릿 스타일 */
    .education-item {
        position: relative;
        padding-bottom:12px;
        border-bottom: 1px solid #EAEFF4;
    }
    .education-list{
        margin-bottom:12px;
    }   
    .info-container {
        flex-wrap: nowrap !important;
        justify-content: flex-start;
    }
    .divider {
        color: var(--gray-dark);
    }

}

/* 반응형에 따른 케이스 */
/* PC */
.pc-only{
    display:block !important;
}

.pc-flex-only{
    display:flex !important;
}

.tablet-only{
    display:none !important;
}

.tablet-flex-only{
    display:none !important;
}

.mobile-only{
    display:none !important;
}

.mobile-flex-only{
    display:none !important;
}

.tb-mo-only{
    display:none !important;
}
.tb-mo-flex-only{
    display:none !important;
}
.sacd-h{
    min-height: 567px;
}


/* Tablet */
@media (max-width: 991px) {
    .pc-only{
        display:none !important;
    }
    .pc-flex-only{
        display:none !important;
    }
    .notebook-only{
        display:none !important;
    }
    .notebook-flex-only{
        display:none !important;
    }
    .tablet-only{
        display:block !important;
    }
    .tablet-flex-only{
        display:flex !important;
    }
    .mobile-only{
        display:none !important;
    }
    .mobile-flex-only{
        display:none !important;
    }
    .tb-mo-only{
        display:block !important;
    }
    .tb-mo-flex-only{
        display:flex !important;
    }
    .tablet-hidden{
        display:none !important;
    }
    .min-h-630{
        min-height:100%;
    }
    .fs-21-px {
        font-size: 18px !important;
    }
    .tb-mo-only .allowance-table{
        min-width:100%;
    }
    .education-title {
        font-size:18px;
    }
    .sacd-h{
        min-height:100%;
    }
}
/* Mobile */
@media (max-width: 768px) {
    .pc-only{
        display:none !important;
    }
    .pc-flex-only{
        display:none !important;
    }
    .notebook-only{
        display:none !important;
    }
    .notebook-flex-only{
        display:none !important;
    }
    .tablet-only{
        display:none !important;
    }
    .tablet-flex-only{
        display:none !important;
    }
    .mobile-only{
        display:block !important;
    }
    .mobile-flex-only{
        display:flex !important;
    }
    .mobile-hidden{
        display:none !important;
    }
    .fs-18-px {
        font-size: 16px !important;
    }
    .fs-16-px {
        font-size: 14px !important;
    }
    .fs-14-px {
        font-size: 12px !important;
    }
    .mo-p-16px{
        padding-left:16px;
        padding-right:16px;
    }
    .tb-statistics thead th,.tb-statistics tbody td{
        font-size:12px;
    }
    .tb-statistics-list thead th,.tb-statistics-list tbody td{
        font-size:12px;
        height: 30px;
    }
    .tb-dashboard thead th, .tb-dashboard tbody td{
        font-size:12px;
    }
    .tb-mo-form-group{
        width:100%;
    }
}


/* 모바일 및 테블릿 작업 부분 : 작업완료 시 css 정리 예정 */
.allowance-secM{
    display: flex;
    align-items: center;
}
.allowance-secM .allowance-title{
    display: flex;
    width: 50%;
    height: 56px;
    text-align: center;
    background: #F2F6FA;
    justify-content: center;
    align-items: center;
}
.allowance-secM .allowance-con{
    width: 50%;
}
.allowance-secM .allowance-con .form-control{}
.allowance-secM .allowance-con .form-select{
    width: 100%;
}
.allowance-secM .allowance-con span{}

.top-summary {
    display: flex;
    flex-wrap: nowrap;
    gap: 1rem;
    padding: 0;
    list-style: none;
    margin-bottom: 1rem;
}

.top-summary li {
    flex: 1;
    min-width: 0; /* flex item 최소 너비 방지 */
}

.top-summary .card {
    height: 100%;
}

.top-summary .card-body {
    display: flex;
    height: 100%;
    justify-content: center;
    align-items: center;
    padding: 20px;
}
.top-summary .card-body .card-text{
    font-size:21px;
    color: #2A3547;
    font-weight: 700;
}

/* 태블릿/모바일 스타일 */
@media (max-width: 991px) {
    .top-summary .card-body {
        align-items: flex-start;
        padding: 8px;
        justify-content: flex-start;
        flex-wrap: wrap;
        flex-direction: column;
    }
    
    .top-summary .icon-box {
        display: flex;
        width: 24px;
        height: 24px;
        padding: 4px;
        justify-content: center;
        align-items: center;
    }
     .top-summary .icon-box img{
         display:flex;
         width: auto;
         height: 100%;
     }
    .top-summary .card-body > div:nth-child(2) {
        margin: 0.5rem 0;
    }
    
    .top-summary .card-body h6 {
        margin-bottom: 0.5rem;
        font-size: 12px;
    }
    
    .top-summary .card-body .ms-auto {
        display: flex;
        width: 10px;
        height: 10px;
    }
    
    .top-summary .card-body .card-text {
        margin-bottom: 0;
        font-size: 16px;
        font-weight: 700;
    }
    .top-summary .card-body .tb-mo-flex-only{
        width:100%;
    }
}


@media (max-width: 576px) {
    .top-summary {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 0.5rem;
    }
    
    .top-summary li {
      min-width: 68px; /* 모바일에서 최소 너비 설정 */
      font-size: 12px;
    }
}

.pm-tabl {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* 모바일 환경 (319px ~ 767px) */
@media (min-width: 319px) and (max-width: 767px) {
    .top-summary{padding: 0;gap: 8px;margin-bottom: 0;}
    .top-summary li{
    
    }
    .pm-tabl {
        display: grid;
        grid-template-columns: repeat(2, 1fr); /* 2열 그리드 */
        gap: 1.5rem;
    }

    .pm-tabl .tablet-col-2 {
        /* grid-column: span 2; */
    }
}

/* 테블릿 환경 (768px ~ 1199px) */
@media (min-width: 768px) and (max-width: 1199px) {
    .top-summary{

    }
    .top-summary li{
    
    }
    .pm-tabl {
        display: grid;
        grid-template-columns: repeat(2, 1fr); /* 2열 그리드 */
        gap: 1.5rem;
    }

    .pm-tabl .tablet-col-2 {
        /* grid-column: span 2; */
    }
}

/* PC 환경 (1200px 이상) */
@media (min-width: 1200px) {
    .top-summary{

    }
    .top-summary li{
    
    }
    .pm-tabl {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }
}

