@charset "utf-8";

/**  로그인 **/
/* 기존 CSS */
.login_wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    padding: 15px;
}

.login_inner {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 920px;
}

header.login {
    text-align: center;
    margin-top: 25px;
}

header.login h1 {
    margin-bottom: 50px;
    font-size: 0;
}

header.login h1 a {
    display: inline-block;
    max-width: 250px;
    width: 100%;
    height: 30px;
    background: url('../images/logo.svg') no-repeat 0 0 / 100%;
    text-indent: -9999px;
}

.login_contents_wrap {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0px 1px 54px rgba(0, 0, 0, .1);
    display: flex;
    overflow: hidden;
    width: 100%;
}

.login_contents_wrap .left_cont_wrap {
    background: url(../images/bg_login.png) no-repeat 0 0 / cover;
    color: #fff;
    width: 475px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 0 0 5% 4%;
}

.login_contents_wrap .left_cont_wrap span {
    font-size: 22px;
}

/* 2025.05.28 수정 */
.login_contents_wrap .left_cont_wrap strong {
    font-size: 32px;
}

.login_contents_wrap .left_cont_wrap p {
    font-size: 18px;
    opacity: 0.8;
    line-height: 24px;
    margin-top: 15px;
    font-weight: 200;
}

.login_contents_wrap .right_cont_wrap {
    text-align: center;
    max-width: 445px;
    width: 100%;
    padding: 10% 0;
}

.login_contents_wrap .right_cont_wrap h2 {
    font-size: 30px;
    color: #000;
    font-weight: 800
}

.login_contents_wrap .right_cont_wrap h2 strong {
    font-weight: 800;
    display: none;
}

.login_contents_wrap .right_cont_wrap p {
    margin-top: 10px;
    color: #898989;
    font-weight: 400;
}

.login_contents_wrap .right_cont_wrap p em {
    color: #1783B5
}

.login_form_inner {
    max-width: 320px;
    width: 100%;
    margin: 40px auto 0;
}

.login_form_inner fieldset ul {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.login_form_inner fieldset ul li span {
    display: block;
    position: relative;
}

.login_form_inner fieldset ul li .id_icon:before {
    content: '';
    width: 17px;
    height: 17px;
    background: url('../images/icon_id.svg') no-repeat 0 0 / 100%;
    position: absolute;
    top: 50%;
    left: 15px;
    z-index: 1;
    margin-top: -8px;
}

.login_form_inner fieldset ul li .pw_icon:before {
    content: '';
    width: 17px;
    height: 17px;
    background: url('../images/icon_pw.svg') no-repeat 0 0 / 100%;
    position: absolute;
    top: 50%;
    left: 15px;
    z-index: 1;
    margin-top: -8px;
}

.login_form_inner fieldset ul li .name_icon:before {
    content: '';
    width: 17px;
    height: 17px;
    background: url('../images/icon_name.svg') no-repeat 0 0 / 100%;
    position: absolute;
    top: 50%;
    left: 15px;
    z-index: 1;
    margin-top: -8px;
}

.login_form_inner fieldset ul li input[type="text"],
.login_form_inner fieldset input[type="password"] {
    border: 1px solid #D4D4D4;
    height: 48px;
    width: 100%;
    border-radius: 3px;
    padding: 0 0 0 40px;
}

.login_form_inner fieldset .btn_login {
    background: #2ca6e0;
    border: 0;
    color: #fff;
    width: 100%;
    border-radius: 3px;
    font-size: 16px;
    padding: 12px 0;
    margin-top: 10px;
    font-weight: 600;
}

.join_link {
    margin-top: 25px;
}

.join_link:hover {
    color: #0d6efd
}

;

/* 미리 정의된 로그인 버튼 스타일 */
.predefined-login {
    margin-top: 20px;
}

.button-container {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.button-container h5 {
    margin: 10px 0 5px;
    font-size: 14px;
}

.button-container button {
    background: #f5f5f5;
    border: 1px solid #ddd;
    border-radius: 3px;
    padding: 8px 10px;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.button-container button:hover {
    background: #e9e9e9;
}

.error-message {
    color: #ff3333;
    margin-bottom: 15px;
}

/* 반응형 미디어 쿼리 */
@media screen and (max-width: 992px) {
    .login_inner {
        max-width: 800px;
    }

    .login_contents_wrap .left_cont_wrap {
        width: 400px;
    }

    .login_contents_wrap .left_cont_wrap strong {
        font-size: 28px;
    }
}

@media screen and (max-width: 768px) {
    .login_wrap {
        padding: 10px;
    }

    .login_inner {
        max-width: 100%;
    }

    .login_contents_wrap {
        flex-direction: column;
    }

    .login_contents_wrap .left_cont_wrap {
        width: 100%;
        min-height: 150px;
        padding: 30px 20px;
        text-align: center;
        justify-content: center;
        align-items: center;
    }

    .login_contents_wrap .right_cont_wrap {
        max-width: 100%;
        padding: 30px 20px;
    }

    header.login h1 {
        margin-bottom: 30px;
    }
}

@media screen and (max-width: 480px) {
    .login_wrap {
        padding: 0;
        align-items: flex-start;
    }

    .login_contents_wrap {
        border-radius: 0;
        box-shadow: none;
    }

    .login_contents_wrap .left_cont_wrap {
        padding: 20px;
        min-height: 120px;
    }

    .login_contents_wrap .left_cont_wrap strong {
        font-size: 24px;
    }

    .login_contents_wrap .right_cont_wrap {
        padding: 20px;
    }

    .login_contents_wrap .right_cont_wrap h2 {
        font-size: 24px;
    }

    .login_form_inner {
        margin: 20px auto 0;
    }

    .button-container button {
        font-size: 12px;
        padding: 6px 8px;
    }
}

/* 테스트 계정 버튼 반응형 스타일 */
@media screen and (max-width: 480px) {
    .button-container {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 5px;
    }

    .button-container h5 {
        grid-column: span 2;
        text-align: center;
    }

    .mt-3.fw-bold.text-primary {
        grid-column: span 2;
    }
}

#multiAccountList .account-radio {
    position: relative;
    top: 4.5px;
}

/**  대시보드 **/
/* 2025.06.18 수정 - 2026.02.06 레이아웃 재구성 */
.dashboard_cont_wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    padding: 20px;
}

/* 3행 새소식 + 바로가기 (각각 50%) */
.dashboard_cont_wrap .dashboard_cont_list {
    background: #fff;
    padding: 30px 30px 100px;
    box-shadow: 1px 1px 19px rgba(0, 0, 0, .1);
    flex: 1 1 45%;
    width: 45%;
    border-radius: 10px;
    position: relative;
}

/* 바로가기 섹션 스타일 */
.dashboard_shortcuts .shortcuts_list_wrap {
    margin-top: 20px;
}

.dashboard_shortcuts .shortcuts_list_wrap ul {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.dashboard_shortcuts .shortcuts_list_wrap li {
    list-style: none;
}

.dashboard_shortcuts .shortcuts_list_wrap a {
    display: flex;
    flex-direction: column;
    padding: 20px 25px;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 12px;
    text-decoration: none;
    color: #495057;
    transition: all 0.3s ease;
    border: 1px solid #e9ecef;
    position: relative;
    overflow: hidden;
}

.dashboard_shortcuts .shortcuts_list_wrap a:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
    background: linear-gradient(135deg, #e7f5ff 0%, #d0ebff 100%);
    border-color: #a5d8ff;
}

.dashboard_shortcuts .shortcuts_list_wrap a strong {
    font-size: 16px;
    font-weight: 600;
    color: #212529;
}

/* 바로가기 아이콘 (DB에서 가져온 이미지) */
.dashboard_shortcuts .shortcuts_list_wrap a::after {
    content: '';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 56px;
    height: 56px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: all 0.3s ease;
}

.dashboard_shortcuts .shortcuts_list_wrap a:hover::after {
    transform: translateY(-50%) scale(1.05);
}

/* 바로가기 타이틀 아이콘 */
.main_tit_head h3.ico_tit04 {
    position: relative;
    padding-left: 40px;
}

.main_tit_head h3.ico_tit04::before {
    content: '';
    width: 32px;
    height: 32px;
    background: url('../images/ico_link.png') no-repeat center / contain;
    position: absolute;
    top: 0;
    left: 0;
}

.main_tit_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.main_tit_head h3 {
    color: #212121;
    font-size: 25px;
}

.main_tit_head h3 em {
    color: #a6a6a6;
    font-weight: 600;
}

.main_tit_head h3 em.f_type {
    color: #144EE4;
    font-weight: 600;
    font-size: 14px;
}

.main_tit_head span {
    display: inline-block;
    padding: 2px 17px;
    border: 1px solid #88b6e1;
    border-radius: 30px;
    color: #666;
    font-size: 13px;
}

.main_tit_head span strong {
    color: #397ebd;
}

/* 전체 N건 링크 (나의 할 일 → 전체보기) */
.main_tit_head .todo-total-link {
    display: inline-block;
    padding: 2px 17px;
    border: 1px solid #88b6e1;
    border-radius: 30px;
    color: #666;
    font-size: 13px;
    text-decoration: none;
    transition: all 0.2s ease;
}

.main_tit_head .todo-total-link:hover {
    background: #e7f5ff;
    border-color: #1971c2;
    color: #1971c2;
}

.main_tit_head .todo-total-link strong {
    color: #397ebd;
}

/* 역할 뱃지 스타일 */
.main_tit_head .role-badge {
    display: inline-block;
    padding: 4px 12px;
    margin-left: 12px;
    margin-right: auto;
    border-radius: 15px;
    font-size: 12px;
    font-weight: 600;
}

/* 시스템 관리자 - 보라색 */
.main_tit_head .role-badge.role-sys-admin {
    background-color: #f3e8ff;
    border: 1px solid #c4b5fd;
    color: #5b21b6;
}

/* 경영평가 담당자 - 파란색 */
.main_tit_head .role-badge.role-center-admin {
    background-color: #dbeafe;
    border: 1px solid #93c5fd;
    color: #2563eb;
}

/* 평가위원 - 초록색 */
.main_tit_head .role-badge.role-evaluator {
    background-color: #dcfce7;
    border: 1px solid #86efac;
    color: #16a34a;
}

/* 시도사서원 - 주황색 */
.main_tit_head .role-badge.role-local-user {
    background-color: #ffedd5;
    border: 1px solid #fdba74;
    color: #ea580c;
}

/* 시스템 관리자 메시지 스타일 */
.sys-admin-message {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 200px;
    text-align: center;
    background-color: #fafafa;
    border: 1px dashed #ddd;
    border-radius: 8px;
    margin-top: 20px;
}

.sys-admin-message p {
    font-size: 15px;
    color: #888;
    margin: 0;
}

/* D-Day 뱃지 스타일 */
.d-day-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    background-color: #e0f2fe;
    color: #0369a1;
    border: 1px solid #7dd3fc;
    line-height: 1.2;
    box-sizing: border-box;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}

.d-day-badge.urgent {
    background-color: #fef3c7;
    color: #d97706;
    border-color: #fcd34d;
    animation: pulse-urgent 2s infinite;
}

.d-day-badge.expired {
    background-color: #fff7ed;
    color: #ea580c;
    border-color: #f97316;
}

.d-day-badge.upcoming {
    background-color: #f3f4f6;
    color: #6b7280;
    border-color: #d1d5db;
}

/* 기한만료 경고 */
.expired-warning {
    display: inline-block;
    padding: 2px 6px;
    margin-left: 4px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
    background-color: #f97316;
    color: #fff;
}

/* 만료된 항목 스타일 (보더는 카드에만 적용) */
.expired-item {
    background-color: transparent !important;
}

.expired-item .schedule_wrap {
    background-color: transparent !important;
}

/* 긴급 항목 스타일 - 카드 레벨에서만 적용 (li 보더 제거) */
.urgent-item {}

.expired-badge {
    background-color: #f97316 !important;
    color: #fff !important;
}

/* 펄스 애니메이션 */
@keyframes pulse-urgent {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.7;
    }
}


.main_list_wrap {
    margin-top: 30px;
}

/* ===== 관리업무 역할자용 메시지 (모니터링 모드) ===== */
.no-todo-access-message {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 40px;
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 50%, #f0fdf4 100%);
    border: 1px solid #bae6fd;
    border-radius: 16px;
    text-align: center;
}

.no-todo-icon {
    font-size: 48px;
    margin-bottom: 16px;
}

.no-todo-title {
    font-size: 18px;
    font-weight: 700;
    color: #0c4a6e;
    margin: 0 0 8px 0;
}

.no-todo-desc {
    font-size: 14px;
    color: #64748b;
    margin: 0;
    line-height: 1.5;
}

/* ===== 3단 컬럼 레이아웃 (나의 할 일) ===== */
.todo-columns-wrapper {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin-top: 20px;
}

.todo-column {
    background: #f8fafc;
    border-radius: 12px;
    padding: 16px;
    min-height: 200px;
}

.todo-column-todo {
    background: linear-gradient(180deg, #fef2f2 0%, #fff 30%);
    border: 1px solid #fecaca;
}

.todo-column-upcoming {
    background: linear-gradient(180deg, #f0f9ff 0%, #fff 30%);
    border: 1px solid #bae6fd;
}

.todo-column-done {
    background: linear-gradient(180deg, #ecfdf5 0%, #fff 30%);
    border: 1px solid #a7f3d0;
}

/* 컬럼 헤더 */
.column-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 2px solid rgba(0, 0, 0, 0.05);
}

.column-header h4 {
    font-size: 16px;
    font-weight: 700;
    margin: 0;
    color: #374151;
}

.column-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 8px;
    border-radius: 14px;
    font-size: 13px;
    font-weight: 700;
    background: #ef4444;
    color: #fff;
}

/* 기한만료 서브 카운트 텍스트 */
.expired-sub-count {
    font-size: 12px;
    font-weight: 600;
    color: #dc2626;
    margin-left: 6px;
}

.column-count.upcoming {
    background: #0ea5e9;
}

.column-count.done {
    background: #10b981;
}

/* 스크롤 영역 */
.todo-scroll-area {
    max-height: 320px;
    overflow-x: hidden;
    overflow-y: auto;
    padding-right: 4px;
}

.todo-scroll-area::-webkit-scrollbar {
    width: 6px;
}

.todo-scroll-area::-webkit-scrollbar-track {
    background: #f1f5f9;
    border-radius: 3px;
}

.todo-scroll-area::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 3px;
}

.todo-scroll-area::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* 카드 리스트 */
.todo-card-list {
    list-style: none;
    padding: 4px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.todo-card-list li.no-data {
    background: transparent;
}

/* 할일 카드 */
.todo-card {
    background: #fff;
    border-radius: 8px;
    padding: 12px 14px;
    /* 패딩 축소 */
    border: 1px solid #d1d5db;
    border-left: 4px solid #3b82f6;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06), 0 4px 8px rgba(0, 0, 0, 0.08);
    cursor: pointer;
    overflow: hidden;
    /* 텍스트 넘침 방지 */
}

.todo-card:hover {
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1), 0 8px 16px rgba(0, 0, 0, 0.1);
}

.todo-card.upcoming {
    border-left-color: #0ea5e9;
}

.todo-card.done {
    border-left-color: #10b981;
    opacity: 0.85;
    background: linear-gradient(135deg, #fff 0%, #f0fdf4 100%);
}

/* 카드 뱃지 영역 */
.card-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    /* 세로 가운데 정렬 */
    gap: 6px;
    margin-bottom: 8px;
}

.status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    background-color: #dbeafe;
    color: #1d4ed8;
    letter-spacing: -0.2px;
    line-height: 1.2;
    box-sizing: border-box;
    border: 1px solid transparent;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}

/* 단계 배지 - 정보성, 비강조 (Gray) */
.stage-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    background-color: #F1F5F9;
    color: #64748b;
    border: 1px solid #e2e8f0;
    line-height: 1.2;
    box-sizing: border-box;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}

/* 배지 한 줄 정렬 */
.card-badges-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    margin-bottom: 8px;
}

/* 카드 기본 스타일 - position relative for absolute children */
.todo-card {
    position: relative;
}

/* 카드 우측 상단 링크 아이콘 */
.card-link-icon {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9ca3af;
    transition: color 0.2s ease;
}

.card-link-icon svg {
    width: 22px;
    height: 22px;
}

.todo-card:hover .card-link-icon {
    color: #3b82f6;
}

.status-badge.upcoming {
    background-color: #e0f2fe;
    color: #0369a1;
}

.status-badge.done {
    background-color: #d1fae5;
    color: #047857;
}

/* 대기 상태 - 회색 (미착수) */
.todo-card.bg_color01 {
    border-left-color: #9ca3af;
}

.todo-card.bg_color01 .status-badge,
.status-badge.bg_color01 {
    background-color: #f3f4f6;
    color: #6b7280;
}

/* 보완요청 상태 - 보라색 (기한만료 오렌지와 구분) */
.todo-card.bg_color02 {
    border-left-color: #5b21b6;
    background-color: #ede9fe;
}

.todo-card.bg_color02 .status-badge,
.status-badge.bg_color02 {
    background-color: #5b21b6;
    color: #fff;
    font-weight: 700;
    animation: pulse-revision 2s ease-in-out infinite;
}

@keyframes pulse-revision {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.7;
    }
}

/* 보완요청 배지 클래스 - 보라색 (상세 페이지 제목 옆 배지용) */
.bg-revision {
    background-color: #5b21b6 !important;
}

/* 검토대기 배지 클래스 - 앰버 (관리자 상세 페이지용) */
.bg-warning-custom {
    background-color: #f59e0b !important;
}

/* 완료 상태 - 초록색 */
.todo-card.bg_color03 {
    border-left-color: #10b981;
}

.todo-card.bg_color03 .status-badge,
.status-badge.bg_color03 {
    background-color: #d1fae5;
    color: #047857;
}

/* 카드 제목 */
.card-title {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: #1f2937;
    text-decoration: none;
    line-height: 1.4;
    margin-bottom: 6px;
    word-break: keep-all;
    /* 한글 단어 단위 줄바꿈 */
    overflow-wrap: break-word;
    /* 긴 단어 줄바꿈 */
}

.todo-card:hover .card-title {
    color: #2563eb;
    text-decoration: underline;
}

/* 카드 날짜 */
.card-date {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 600;
    color: #374151;
    padding: 5px 10px;
    background: linear-gradient(135deg, #f9fafb 0%, #f3f4f6 100%);
    border-radius: 6px;
    border: 1px solid #d1d5db;
    opacity: 0.85;
}

/* 카드 단계명 */
.card-stage {
    display: block;
    font-size: 11px;
    color: #6b7280;
    margin-bottom: 4px;
    font-weight: 500;
}

/* 카드 바로가기 버튼 */
.card-action-btn {
    display: inline-block;
    margin-top: 6px;
    padding: 0;
    font-size: 12px;
    font-weight: 500;
    color: #3b82f6;
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: none;
}

.card-action-btn:hover {
    color: #1d4ed8;
    text-decoration: underline;
}

/* 빈 상태 메시지 */
.empty-message {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 30px 20px;
    text-align: center;
    color: #9ca3af;
}

.empty-message .empty-icon {
    font-size: 32px;
    margin-bottom: 8px;
    opacity: 0.6;
}

.empty-message p {
    margin: 0;
    font-size: 13px;
}

/* 곧 해야 할 일 메시지 */
.card-upcoming-msg {
    display: inline-block;
    margin-top: 8px;
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 500;
    color: #6b7280;
    background: #f3f4f6;
    border-radius: 4px;
}

/* 만료된 카드 - 딤 처리 (강하게) */
.expired-dimmed {
    opacity: 0.4;
    filter: grayscale(60%);
}

.expired-card {
    border-left-color: #d1d5db !important;
    background: #f3f4f6 !important;
    box-shadow: none !important;
}

.expired-card .card-title {
    text-decoration: line-through;
    color: #9ca3af;
}

.expired-card:hover {
    opacity: 0.7;
    filter: none;
}

.expired-dim {
    background-color: #f3f4f6;
    color: #9ca3af;
    border-color: #d1d5db;
}

/* 완료 헤더 카운트 영역 */
.column-counts {
    display: flex;
    align-items: center;
    gap: 6px;
}

.column-count.expired-count {
    background: #9ca3af;
    font-size: 11px;
    padding: 0 8px;
}

/* 긴급 카드 */
.urgent-item .todo-card {
    border-left-color: #f59e0b;
    background: #fffbeb;
}

/* 빈 상태 메시지 */
.empty-message {
    padding: 30px 15px;
    text-align: center;
}

.empty-message p {
    font-size: 13px;
    color: #9ca3af;
    margin: 0;
}

/* 반응형 - 태블릿 */
@media screen and (max-width: 1200px) {
    .todo-columns-wrapper {
        grid-template-columns: repeat(3, 1fr);
        gap: 15px;
    }
}

/* 반응형 - 모바일 */
@media screen and (max-width: 768px) {
    .todo-columns-wrapper {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .todo-column {
        min-height: auto;
    }
}

.main_list_wrap .dashboard_list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 5px 15px;
    position: relative;
    margin-bottom: 5px;
}

.main_list_wrap .dashboard_list li:not(.new_notice):hover:before {
    content: '';
    width: 100%;
    height: 40px;
    background: #f5fcfe;
    border: 1px solid #b6e5e1;
    position: absolute;
    top: 50%;
    left: 0;
    z-index: 0;
    margin-top: -20px;
    border-radius: 7px;
}

.main_list_wrap .dashboard_list li span {
    background: #2f6da7;
    color: #fff;
    padding: 3px 15px;
    border-radius: 50px;
    font-size: 13px;
    z-index: 1;
}

.main_list_wrap .dashboard_list li a {
    padding-left: 4px;
    flex-grow: 1;
    position: relative;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    word-wrap: break-word;
    line-height: 18px;
    height: 20px;
    overflow: hidden;
}

.main_list_wrap .dashboard_list li a:hover {
    color: #0011ff
}

/* 2025.06.18 수정 */
.main_list_wrap .dashboard_list li em {
    flex-shrink: 0;
    color: #999999;
    padding-left: 20px;
    z-index: 1
}

.main_list_wrap .dashboard_list li.new_notice {
    margin-top: -1px;
    margin-bottom: 4px;
    background-color: #edf7fb;
    border-radius: 10px;
    padding: 11px 15px;
    color: #000000;
    font-weight: 600;
}

.main_list_wrap .dashboard_list li.new_notice em {
    font-weight: 300;
}

.main_list_wrap .dashboard_list li.new_notice a {
    padding-left: 0;
}

.main_list_wrap .dashboard_list li.new_notice a:before {
    content: none;
}

.new {
    display: inline-block;
    color: #ed0000;
    font-style: normal;
    font-size: 12px;
    padding-right: 2px;
    font-weight: 600;
}

.dashboard_cont_wrap .dashboard_cont_list .btn_more {
    display: block;
    margin-top: 35px;
    padding: 10px 0;
    border-radius: 50px;
    color: #6e757a;
    text-align: center;
    transition: all 0.7s;
    border: 1px solid #e3e9ed;
    position: absolute;
    bottom: 30px;
    left: 30px;
    right: 30px;
}

.dashboard_cont_wrap .dashboard_cont_list .btn_more:hover {
    background: #333;
    color: #fff;
}

.dashboard_cont_list .table_layout table {
    min-width: auto;
}

.dashboard_tab_cont {
    display: none;
}

.dashboard_tab_cont.active {
    display: block;
}


/* 대시보드 진행 현황 */
.dashboard_cont_full {
    width: 100%;
    background-color: #fff;
    border-radius: 10px;
    box-shadow: 1px 1px 19px rgba(0, 0, 0, .1);
    padding: 30px;
}

.ps-timeline-sec {
    position: relative;
    background: #fff;
}

.ps-timeline-sec .ps-timeline-container {
    position: relative;
    font-family: "Lato", sans-serif;
}

.ps-timeline-sec .ps-timeline-container ol:before {
    background: #ddd;
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 100%;
    position: absolute;
    left: 0px;
    top: -4px;
}

.ps-timeline-sec .ps-timeline-container ol:after {
    background: #ddd;
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 100%;
    position: absolute;
    right: 0px;
    top: -4px;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline {
    margin: 170px 0 150px;
    padding: 0;
    border-top: 2px solid #ddd;
    list-style: none;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li {
    float: left;
    width: 14.28%;
    /* 7단계: 100/7 = 14.28% */
    padding-top: 30px;
    position: relative;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li h5 {
    font-size: 14px;
    font-weight: bold;
    color: #777;
    min-height: 18px;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span {
    width: 52px;
    height: 50px;
    margin-left: -25px;
    background: #fff;
    border-radius: 25%;
    box-shadow: 0 0 0 0px #fff;
    text-align: center;
    line-height: 50px;
    color: #777;
    font-weight: bold;
    font-size: 1.5em;
    position: absolute;
    top: -27px;
    left: 50%;
    line-height: 2.1;
    z-index: 3;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-top,
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-bot {
    border: 1px solid #ddd;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-top:before {
    content: "";
    color: #ddd;
    width: 2px;
    height: 50px;
    background: #ddd;
    position: absolute;
    top: -50px;
    left: 50%;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-top:after {
    content: "";
    color: #ddd;
    width: 8px;
    height: 8px;
    background: #ddd;
    position: absolute;
    bottom: 90px;
    left: 45%;
    border-radius: 100%;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-bot:before {
    content: "";
    color: #ddd;
    width: 2px;
    height: 50px;
    background: #ddd;
    position: absolute;
    bottom: -50px;
    left: 50%;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-bot:after {
    content: "";
    color: #ddd;
    width: 8px;
    height: 8px;
    background: #ddd;
    position: absolute;
    top: 90px;
    left: 44%;
    border-radius: 100%;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li h4 {
    font-size: 15px;
    font-weight: bold;
    color: #555;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li .step-status {
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: bold;
    background-color: #eeeeee;
    color: #888;
    white-space: nowrap;
    display: inline-block;
    position: relative;
    line-height: 20px;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li .ps-top .step-status {
    bottom: -40px;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li .ps-bot .step-status {
    bottom: 50px;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li .ps-top {
    position: absolute;
    bottom: 0;
    margin-bottom: 105px;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li .ps-bot {
    position: absolute;
    margin-top: 50px;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li .ps-top,
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li .ps-bot {
    width: 160px;
    /* 7단계에 맞게 축소 */
    text-align: center;
}

/* 완료 상태 스타일 */
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.completed {
    border-color: #4caf50;
    color: #fff;
    background-color: #4caf50;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.completed:before,
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.completed:after {
    background: #4caf50;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li h4.completed,
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li h5.completed {
    color: #2e7d32;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li .step-status.completed {
    background-color: #2e7d32;
    color: white;
}

/* 진행 중 상태 스타일 */
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.current {
    border-color: #42A5F5;
    color: #fff;
    background-color: #42A5F5;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.current:before,
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.current:after {
    background: #1E88E5;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li h4.current,
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li h5.current {
    color: #1976D2;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li .step-status.current {
    background-color: #1976D2;
    color: #fff;
}

/* 시작점 색상 변경 */
.ps-timeline-sec .ps-timeline-container ol[data-first-status='완료']:before {
    background: #4caf50;
    /* 완료 색상 */
}

.ps-timeline-sec .ps-timeline-container ol[data-first-status='진행중']:before {
    background: #2196F3;
    /* 현재 색상 */
}

/* 끝점 색상 변경 */
.ps-timeline-sec .ps-timeline-container ol[data-last-status='완료']:after {
    background: #4caf50;
    /* 완료 색상 */
}

.ps-timeline-sec .ps-timeline-container ol[data-last-status='진행중']:after {
    background: #2196F3;
    /* 현재 색상 */
}

/* 항목 사이의 연결선 색상 변경 */
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-top.completed:before,
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-bot.completed:before {
    background: #4caf50 !important;
    /* 완료된 항목의 세로선 */
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-top.current:before,
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-bot.current:before {
    background: #2196F3 !important;
    /* 현재 항목의 세로선 */
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-top.completed:after,
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-bot.completed:after {
    background: #4caf50 !important;
    /* 완료된 항목의 점 */
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-top.current:after,
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-bot.current:after {
    background: #2196F3 !important;
    /* 현재 항목의 점 */
}

/* 대기 상태 스타일 */
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.waiting {
    border-color: #FF9800;
    color: #fff;
    background-color: #FF9800;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.waiting:before,
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.waiting:after {
    background: #FF9800 !important;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li h4.waiting,
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li h5.waiting {
    color: #FF9800;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li .step-status.waiting {
    background-color: #FF9800;
    color: #fff;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-top.waiting:before,
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-bot.waiting:before {
    background: #FF9800 !important;
}

.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-top.waiting:after,
.ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-bot.waiting:after {
    background: #FF9800 !important;
}

.ps-timeline-sec .ps-timeline-container ol[data-first-status='대기']:before {
    background: #FF9800;
}

.ps-timeline-sec .ps-timeline-container ol[data-last-status='대기']:after {
    background: #FF9800;
}

@media screen and (max-width: 767px) {
    .ps-timeline-sec .ps-timeline-container ol:before {
        background: #ddd;
        content: "";
        width: 10px;
        height: 10px;
        border-radius: 100%;
        position: absolute;
        top: 0px !important;
        left: 24px !important;
    }

    .ps-timeline-sec .ps-timeline-container ol:after {
        background: #ddd;
        content: "";
        width: 10px;
        height: 10px;
        border-radius: 100%;
        position: absolute;
        top: inherit !important;
        left: 24px;
    }

    .ps-timeline-sec .ps-timeline-container ol.ps-timeline {
        margin: 30px 0 !important;
        border-left: 2px solid #ddd;
        padding-left: 0 !important;
        padding-top: 120px !important;
        border-top: 0 !important;
        margin-left: 25px !important;
    }

    .ps-timeline-sec .ps-timeline-container ol.ps-timeline li {
        height: 220px;
        float: none !important;
        width: inherit !important;
    }

    .ps-timeline-sec .ps-timeline-container ol.ps-timeline li span {
        left: 0 !important;
    }

    .ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-top:before {
        content: none !important;
    }

    .ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-top:after {
        content: none !important;
    }

    .ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-bot:before {
        content: none !important;
    }

    .ps-timeline-sec .ps-timeline-container ol.ps-timeline li span.ps-sp-bot:after {
        content: none !important;
    }

    .ps-timeline-sec .ps-timeline-container ol.ps-timeline li .ps-top .step-status {
        top: -80px !important;
    }

    .ps-timeline-sec .ps-timeline-container ol.ps-timeline li .ps-bot .step-status {
        top: -35px !important;
    }

    .ps-timeline-sec .ps-timeline-container ol.ps-timeline li {
        padding-top: 0;
    }

    .dashboard_cont_full {
        padding: 15px;
    }

    #timeline-gradient {
        display: none;
    }

    #timeline-gradient-mobile {
        display: block !important;
        left: 28px !important;
        z-index: 0 !important;
    }

    .ps-timeline-sec .ps-timeline-container ol.ps-timeline {
        border-left-color: transparent !important;
    }
}

/*개인정보동의*/
.personal_wrap {
    margin-bottom: 30px;
    border-bottom: 1px solid #c0def7;
}

.personal_wrap input[type="checkbox"] {
    margin-right: 3px;
    min-width: 20px;
    vertical-align: -2px
}

.personal_wrap>ul>li>p {
    background-color: #f0f8ff;
    border-top: 1px solid #397ebd;
    padding: 10px;
}

.personal_wrap>ul>li>.personal_title {
    padding: 10px;
    background-color: #f0f8ff;
    border-top: 1px solid #397ebd;
    border-bottom: 1px solid #c0def7;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.personal_wrap>ul>li>.personal_title>div {
    display: flex;
    align-items: center;
}

.personal_wrap>ul>li>.personal_title>div input[type="checkbox"] {
    margin: 0 6px 0 0;
    flex-shrink: 0;
    vertical-align: middle;
}

.personal_wrap>ul>li>.personal_title>div label {
    margin: 0;
    line-height: 1.4;
    vertical-align: middle;
}

.personal_wrap>ul>li>.personal_title a {
    background: url(../images/open_close.png) no-repeat center 8px;
    text-indent: -999em;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

.personal_wrap>ul>li>ul>li>ol {
    padding-left: 32px;
    margin: 7px 0;
    display: none;
}

.text_authentication {
    border: 1px solid #c9dce5;
    padding: 30px 20px;
    text-align: left;
    border-radius: 3px;
    background-color: #ebf6fb;
}

.text_authentication strong {
    font-size: 20px;
}

.text_authentication .flex_col {
    margin: 16px auto 0;
    display: inline-flex
}

.text_authentication .flex_col {
    margin: 16px auto 0;
    display: inline-flex
}

.text_authentication input[type="text"] {
    height: 35px;
    border-radius: 3px
}

.text_authentication_wrap {
    display: flex;
    gap: 5px;
    justify-content: center;
    margin: 11px 0 0
}

.time_counter {
    letter-spacing: 1px;
    font-weight: 800;
    font-size: 19px
}


/*나의 할일 */
/* 2025.06.18 수정 */
.main_schedule_list {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.main_schedule_list li {
    position: relative;
    flex: 1 1 40%;
}

.main_schedule_list li .schedule_wrap {
    display: flex;
    background: #e2f6ff;
    width: 100%;
    padding: 20px 20px 20px 35px;
    position: relative;
    flex-direction: column;
    justify-content: space-between;
}

/* 2025.06.18 수정 */
.main_schedule_list li .schedule_wrap:before {
    content: '';
    width: 4px;
    height: 100%;
    background: #00a0e7;
    position: absolute;
    top: 0;
    left: 0;
}

.main_schedule_list li .schedule_wrap span {
    max-width: 90px;
    background: #00a0e7;
    border-radius: 30px;
    text-align: center;
    color: #fff;
    padding: 5px 0 4px;
    margin-bottom: 10px;
}

/* 2025.06.18 수정 */
.main_schedule_list li .schedule_wrap a {
    font-weight: 600;
    position: relative;
    line-height: 22px;
    height: 44px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 15px;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-color: #a5cfe1;
    color: #005378;
}

/* 2025.06.18 수정 */
.main_schedule_list li .schedule_wrap em {
    color: #434343;
    display: block;
    font-size: 14px;
    letter-spacing: -0.1px;
    width: 100%;
    text-align: right;
}

/* 2025.06.18 수정 */
.main_schedule_list li .schedule_wrap.bg_color01 {
    background: #e7f3e7;
}

.main_schedule_list li .schedule_wrap.bg_color01:before {
    background: #3f733d;
}

.main_schedule_list li .schedule_wrap.bg_color01 span {
    background: #3f733d;
}

.main_schedule_list li .schedule_wrap.bg_color01 a {
    color: #3f733d;
    text-decoration-color: #c4d9c4;
}

.main_schedule_list li .schedule_wrap.bg_color02 {
    background: #ffeee6;
}

.main_schedule_list li .schedule_wrap.bg_color02:before {
    background: #fb5e13;
}

.main_schedule_list li .schedule_wrap.bg_color02 span {
    background: #fb5e13;
}

.main_schedule_list li .schedule_wrap.bg_color02 a {
    color: #9b3200;
    text-decoration-color: #e9c0ac;
}

.main_schedule_list li .schedule_wrap.bg_color03 {
    background: #f1e7ff;
}

.main_schedule_list li .schedule_wrap.bg_color03:before {
    background: #612cab;
}

.main_schedule_list li .schedule_wrap.bg_color03 span {
    background: #612cab;
}

.main_schedule_list li .schedule_wrap.bg_color03 a {
    color: #410b8b;
    text-decoration-color: #d1c2e7;
}

.main_schedule_list02 li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 15px 15px 10px;
    background: #fff6f7;
    position: relative;
}

.main_schedule_list02 li:before {
    content: '';
    width: 3px;
    height: 100%;
    background: #ff86a7;
    position: absolute;
    top: 0;
    left: 0;
}

.main_schedule_list02 li+li {
    margin-top: 10px
}

.main_schedule_list02 li a {
    flex-grow: 1;
    position: relative;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    word-wrap: break-word;
    line-height: 18px;
    height: 20px;
    overflow: hidden;
}

.main_schedule_list02 li em {
    flex-shrink: 0;
    color: #999999;
    padding-left: 20px;
    z-index: 1
}

.main_schedule_list02.gray_type li {
    background: #f5f5f5
}

.main_schedule_list02.gray_type li:before {
    background: #666666
}


.no-data {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 161.5px;
}

.main_schedule_list .no-data {
    background: #e2f6ff;
}

.main_schedule_list li:before {
    content: '';
    width: 3px;
    height: 100%;
    background: #00a0e7;
    position: absolute;
    top: 0;
    left: 0;
}

.main_schedule_list .empty-message {
    text-align: left;
}


/* 대시보드 하단 버튼 */
.dashboard_bottun_wrap {
    display: flex;
    justify-content: center;
    padding: 20px;
}

.dashboard_bottun_wrap ul {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    max-width: 1200px;
    width: 100%;
    justify-content: center;
}

.dashboard_bottun_wrap ul li {
    flex: 1 1 calc(33.333% - 20px);
    min-width: 250px;
    max-width: 350px;
    position: relative;
}

.dashboard_bottun_wrap ul li a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    border: 1px solid #b8d2e5;
    background: #fff;
    font-size: 16px;
    font-weight: 600;
    color: #333333;
    padding: 30px 30px 30px 30px;
    border-radius: 10px;
    box-shadow: 1px 1px 19px rgba(0, 0, 0, .1);
    position: relative;
    height: 100%;
    min-height: 120px;
}

.dashboard_bottun_wrap ul li a:after {
    content: '';
    width: 80px;
    height: 64px;
    background: url(../images/ico_dashboard01.png) no-repeat 0 0 / contain;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
}

.dashboard_bottun_wrap ul li a strong {
    display: block;
    font-size: 20px;
    color: #212121;
    font-weight: 600;
    padding-right: 85px;
}

.dashboard_cont_list.bg_none {
    background: none;
    box-shadow: none;
    padding: 0;
}

.graph_status_wrap {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.opt_status_wrap {
    background: #fff;
    box-shadow: 1px 1px 19px rgba(0, 0, 0, .1);
    padding: 28px;
}

.opt_status_inner {
    margin-top: 15px;
}

.opt_status_inner ul {
    display: flex;
    justify-content: center;
}

.opt_status_inner ul li {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    position: relative;
}

.opt_status_inner ul li+li {
    padding-left: 30px;
    margin-left: 30px;
}

.opt_status_inner ul li+li:before {
    content: '';
    width: 1px;
    height: 100%;
    background: #E6E6E6;
    position: absolute;
    top: 0;
    left: 0;
}

.opt_status_inner ul li strong.tit {
    background: #1C6BB4;
    color: #fff;
    border-radius: 30px;
    padding: 5px 18%;
    max-width: 155px;
}

.opt_status_inner ul li strong.tit.bg {
    background: #2CA6E0;
}

.opt_status_inner ul li strong.month {
    color: #005ACC;
    font-size: 13px;
}

.status_data span {
    font-size: 13px;
    color: #999;
    padding: 0 2px;
}

.status_data span strong {
    font-size: 16px;
    color: #333
}

.opt_graph_inner {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 15px;
    gap: 10%;
}

.graph_ex {
    max-width: 300px;
    width: 100%;
}

.graph_ex ul {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.graph_ex ul li {
    display: flex;
    gap: 10px;
    font-size: 14px;
    align-items: center;
}

.graph_ex ul li>strong {
    padding-left: 15px;
    position: relative;
}

.graph_ex ul li>strong:before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 100%;
    position: absolute;
    top: 50%;
    left: 0;
    margin-top: -4px;
}

.graph_ex ul li>strong.bg_orange:before {
    background: #F18427
}

.graph_ex ul li>strong.bg_blue:before {
    background: #2CA6E0
}

.graph_ex ul li>strong.bg_blue02:before {
    background: #1C6BB4
}

.graph_ex ul li p {
    padding: 2px 0;
    background: #F7F8FA;
    text-align: center;
    flex-grow: 1;
    border-radius: 3px;
    color: #999999;
}

.graph_ex ul li p strong {
    color: #333333;
}


/**  회원정보 수정 **/
.member_modify_wrap {
    max-width: 700px;
    width: 100%;
    border: 1px solid #e5e5e5;
    border-radius: 10px;
    background: #fff;
    margin: 20px auto 0;
}


/**  검색 **/
.bt_line {
    border-top: 1px solid #e5e5e5;
}

.search_wrap {
    display: flex;
    align-items: center;
    padding: 20px 40px;
    justify-content: space-between;
    flex-wrap: wrap;
}

.search_wrap ul {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    width: calc(100% - 80px);
    justify-content: flex-start;
}

.search_wrap ul>li {
    display: flex;
    align-items: center;
    gap: 4px;
    position: relative;
    padding-left: 8px;
}

.search_wrap ul>li:before {
    content: '';
    position: absolute;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    top: 50%;
    left: 0;
    background-color: #2f6da7;
    margin-top: -2px;
}

.search_wrap ul>li label {
    font-weight: 600;
    flex-shrink: 0;
    margin-right: 5px;
}

.search_wrap ul>li input[type="text"]:not(span.datepicker input) {
    width: 100%;
    min-width: 200px;
    border: 0;
    border: 1px solid #e5e5e5;
    border-radius: 3px;
}

.search_wrap ul>li select {
    min-width: 100px;
    border: 0;
    width: 100%;
    border: 1px solid #e5e5e5;
    border-radius: 3px;
}

.search_wrap.majority ul li.keyword_form {
    flex-grow: 1;
}

.search_wrap ul>li p {
    flex-shrink: 0;
}

.search_wrap ul>li input.w_type {
    max-width: 300px;
    width: 100%;
    flex-shrink: 0;
}

.search_wrap.bg_type {
    background: #f3f3f3;
    border-radius: 5px;
    margin-bottom: 10px;
}

/* 조회 버튼 스타일 재정의 */
.btn_search_basic {
    display: inline-block;
    width: 64px;
    height: 34px;
    background: #2f6da7;
    color: #fff;
    border-radius: 3px;
    flex-shrink: 0;
    text-align: center;
    line-height: 15px;
    /* 세로 중앙 정렬을 위해 15px로 설정 */
}

.btn_search_basic span {
    color: #fff;
    font-size: 14px;
    white-space: nowrap;
}

/* 검색창 영역 확대 */
.search_wrap ul>li input#keyword {
    min-width: 240px;
    flex-grow: 1;
}

.datepicker {
    position: relative;
    display: inline-block;
    max-width: 250px;
    width: 100%;
}

.ui-datepicker-trigger {
    width: auto;
    position: absolute;
    right: 6px;
    top: 9px;
}

.datepicker input[type="text"] {
    padding: 0 30px 0 15px;
}

/* Firefox 전용 css, 레이아웃 오류 */
@-moz-document url-prefix() {

    /* Firefox 전용: flex 아이템이 컨텐츠에 꽉 차면서 줄 바꿈되는 문제 방지 */
    .search_wrap ul>li {
        /* 원래 flex 값이 없다면 아래 flex 를 추가해 주세요 */
        flex: 1 1 auto !important;
        min-width: 0 !important;
    }

    /* 내부 input/select/datepicker 에도 최소 너비 해제 */
    .search_wrap ul>li input[type="text"],
    .search_wrap ul>li select,
    .search_wrap ul>li .datepicker {
        /* 크롬에서 보이는 너비와 동일하게 고정 */
        flex: 0 0 240px !important;
        max-width: 240px !important;
        width: 240px !important;
    }

    /* 조회 버튼은 고정 크기 유지 */
    .btn_search_basic {
        flex: 0 0 auto !important;
    }
}

.tree_wrap {
    border: 1px solid #e5e5e5;
    height: 600px;
    width: 361px;
    overflow: auto;
    padding: 30px;
}

/* 절차 */
.step_wrap {
    margin-bottom: 30px;
}

.step_wrap .step {
    display: flex;
    gap: 20px;
}

.step_wrap .step li {
    padding: 15px 20px;
    font-size: 16px;
    font-weight: 600;
    display: flex;
    position: relative;
    justify-content: flex-start;
    width: 25%;
    background: #f7f7f7;
    border-radius: 10px;
    gap: 15px;
}

.step_wrap .step li:before {
    content: '';
    width: 40px;
    height: 40px;
    border: 1px solid #999;
    border-radius: 100%;
}

.step_wrap .step li.on:before {
    background: #2f6da7;
    border: 1px solid #2f6da7;
}

.step_wrap .step li:after {
    content: '';
    width: 30px;
    height: 30px;
    background: #fff url(../images/next_page.png) no-repeat center;
    border: 1px solid #dbdbdb;
    border-radius: 100%;
    position: absolute;
    top: 50%;
    right: 15px;
    margin-top: -15px;
}

.step_wrap .step li:last-child:after {
    content: none;
}

.step_wrap .step li.step02:before {
    background: url(../images/icon_step02_off.svg) no-repeat center / 55%;
}

.step_wrap .step li.step03:before {
    background: url(../images/icon_step03_off.svg) no-repeat 10px 7px / 59%;
}

.step_wrap .step li.step04:before {
    background: url(../images/icon_step04_off.svg) no-repeat center / 55%;
}

.step_wrap .step li.step05:before {
    background: url(../images/icon_step05_off.svg) no-repeat center / 55%;
}

.step_wrap .step li.step01.on:before {
    background: #2f6da7 url(../images/icon_step01_on.svg) no-repeat center / 55%;
}

.step_wrap .step li.step02.on:before {
    background: #2f6da7 url(../images/icon_step02_on.svg) no-repeat center / 55%;
}

.step_wrap .step li.step03.on:before {
    background: #2f6da7 url(../images/icon_step03_on.svg) no-repeat 10px 7px / 59%;
}

.step_wrap .step li.step04.on:before {
    background: #2f6da7 url(../images/icon_step04_on.svg) no-repeat center / 55%;
}

.step_wrap .step li.step05.on:before {
    background: #2f6da7 url(../images/icon_step05_on.svg) no-repeat center / 55%;
}

.step_wrap .step li.comp {
    background: #f2fbff;
}

.step_wrap .step li.comp:before {
    border: 1px solid #97dbdf;
    background: #defdff url(../images/icon_step_comp.svg) no-repeat 11px 10px / 50%;
}

.step_wrap .step li.comp,
.step_wrap .step li.comp span em {
    color: #0f5cdd;
}

.step_wrap .step li span {
    font-size: 15px;
}

.step_wrap .step li span em {
    display: block;
    font-size: 11px;
    font-weight: 400;
    color: #A8A8A8;
    letter-spacing: 0
}

.step_wrap .step li.on span em {
    color: #1f72ff
}


/* 평가일정 등록 */
.btn_hover {
    display: inline-block;
    width: 25px;
    height: 25px;
    background: url(../images/bl_deatails.png) no-repeat center;
    cursor: help
}

/* 경영평가 계획 위자드 공통 스타일 */
.step_box ul {
    display: flex;
    list-style: none;
    padding: 0;
    margin-bottom: 20px;
    background: white;
    border: 1px solid #e9ecef;
    border-radius: 0.375rem;
}

.step_box li {
    flex: 1;
    text-align: center;
    padding: 1rem 0;
    position: relative;
    border-bottom: 3px solid #e9ecef;
    font-weight: 500;
    color: #a0aec0;
    cursor: default;
}

.step_box li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background-color: #e9ecef;
    color: #6c757d;
    margin-right: 8px;
    font-weight: 500;
}

.step_box li.active {
    border-bottom-color: #38a169;
    color: #38a169;
    font-weight: 700;
}

.step_box li.active span {
    background-color: #38a169;
    color: white;
}

.step_box li.completed {
    border-bottom-color: #2c5282;
    color: #2c5282;
}

.step_box li.completed span {
    background-color: #2c5282;
    color: white;
}

.step_box li.clickable {
    cursor: pointer;
}

.step_box li.clickable:hover {
    background-color: #f8f9fa;
}

/* 저장 완료 아이콘 표시 */
.step_box li.saved::after {
    content: '✓';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: #38a169;
    color: white;
    font-size: 10px;
    font-weight: 700;
    margin-left: 4px;
    vertical-align: middle;
    line-height: 1;
}

/* 미저장 (clickable but not saved) 아이콘 표시 */
.step_box li.unsaved::after {
    content: '—';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: #cbd5e0;
    color: white;
    font-size: 10px;
    font-weight: 700;
    margin-left: 4px;
    vertical-align: middle;
    line-height: 1;
}

/* 위자드 토스트/로딩 스타일 */
.loading-spinner {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.loading-spinner .spinner-border {
    width: 3rem;
    height: 3rem;
}

/* 버튼 내 스피너 크기 보정 */
.btn .spinner-border {
    width: 1rem;
    height: 1rem;
    border-width: 0.15em;
    vertical-align: -0.125em;
    margin-right: 0.25rem;
}

.toast-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 1050;
}

.toast-header {
    display: flex;
    align-items: center;
}

.toast-success .toast-header {
    background-color: #d4edda;
    color: #155724;
}

.toast-error .toast-header {
    background-color: #f8d7da;
    color: #721c24;
}

/* 위자드 폼 유효성 스타일 */
.invalid-feedback {
    color: #dc3545;
    margin-top: 4px;
    font-size: 0.875em;
    display: none;
}

.is-invalid {
    border-color: #dc3545 !important;
}

.is-invalid+.invalid-feedback {
    display: block;
}

/* 위자드 위원장 체크박스 */
.chairman-checkbox {
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.chairman-checkbox.is-invalid {
    border: 1px solid #dc3545;
}

.d-block {
    display: block;
}

.ml-2 {
    margin-left: 0.5rem;
}

/* 위자드 테이블 스크롤 처리 */
.table_layout02.w1400 {
    overflow-x: auto;
}

.table_layout02.w1400 table {
    min-width: 1600px;
    table-layout: fixed;
}

.table_layout02.w1200 {
    overflow-x: auto;
}

.table_layout02.w1200 table {
    min-width: 1200px;
    table-layout: fixed;
}

.table_layout02 .flex_nowrap .s_btn_basic {
    min-width: auto;
    padding: 6px 8px;
    font-size: 12px;
    white-space: nowrap;
}

/* 모달 내 테이블 스크롤 */
.modal .table-responsive {
    max-height: 400px;
    overflow-y: auto;
}

/* 이미 추가된 기관 행 스타일 */
tr.already-added {
    background-color: #f8f9fa !important;
}

tr.already-added td {
    color: #adb5bd !important;
}

/* 데이트피커 입력 스타일 */
.datepicker input {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #ced4da;
    border-radius: 4px;
    font-size: 14px;
}

/* 필수 입력 표시 */
.bl_dot {
    position: relative;
    margin-right: 8px;
    padding-left: 15px;
}

.bl_dot::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background-color: #2c5282;
}

.wp200 {
    width: 200px;
}

/* 서명평가 등록 */
.institution_info {
    margin-bottom: 30px;
}

.institution_info .col_left_wrap {
    width: 30%;
    border: 2px solid #2f6da7;
    padding: 15px;
}

.institution_info .col_right_wrap {
    width: 70%;
    border: 2px solid #2f6da7;
    padding: 15px;
}

.table_layout02.cursor_type tr {
    cursor: pointer;
}

.table_layout02.cursor_type tr.on td {
    background: #f3f9ff;
}

/**  table-layout **/
.table_desc {
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.table_desc p strong {
    color: #397ebd
}

.table_desc select {
    width: 100px;
}

.table_layout {
    position: relative;
    overflow: hidden;
    overflow-y: auto;
    margin-bottom: 30px;
}

.table_layout table {
    border-top: 1px solid #397ebd;
    width: 100%;
    table-layout: fixed;
}

.table_layout table th {
    text-align: center;
    border-bottom: 1px solid #c0def7;
    padding: 12px 5px;
    position: relative;
    background: #f0f8ff;
}

.table_layout table th+th:before {
    content: '';
    width: 1px;
    height: 15px;
    background: #a2c7c2;
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -7px;
}

.table_layout table th[colspan] {
    border-bottom: 1px solid #e1e7eb
}

.table_layout table th[colspan]:before {
    content: none;
}

.table_layout table th[colspan]+th[colspan] {
    border-left: 1px solid #e1e7eb
}

.table_layout table th[rowspan] {
    border-right: 1px solid #e1e7eb
}

.table_layout table th[rowspan]+th:before {
    content: none
}

.table_layout table th.line_type {
    border-right: 1px solid #e1e7eb
}

.table_layout table th.line_type+th:before {
    content: none;
}

.table_layout table td {
    height: 47px;
    border-bottom: 1px solid #d8d8d8;
    padding: 0 5px;
    text-align: center;
    color: #666666;
    position: relative;
    z-index: 1;
}

.table_layout table td a {
    display: block;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    word-wrap: break-word;
    line-height: 18px;
    height: 20px;
    overflow: hidden;
}

.table_layout.td_bd table td {
    border-left: 1px solid #d8d8d8
}

.table_layout.td_bd table td:first-child {
    border-left: 0
}

.table_layout.td_bd table td[rowspan] {
    border-right: 1px solid #d8d8d8
}

.table_layout table tbody tr:hover td:before {
    content: '';
    width: 100%;
    height: 48px;
    border-top: 1px solid #d4ecff;
    border-bottom: 1px solid #d4ecff;
    position: absolute;
    top: -1px;
    left: 0;
    z-index: -1;
    background: #f9fdff;
}

.table_layout table tbody tr:hover td:first-child:before {
    border-left: 1px solid #b6e5e1;
}

.table_layout table tbody tr:hover td:last-child:before {
    border-right: 1px solid #b6e5e1;
}

.table_layout table tbody tr:hover td a {
    color: #0035ff;
    font-weight: 600;
    text-decoration: underline;
}

.table_layout table tbody tr:hover td a.s_btn_basic {
    color: #ffd600
}

.scroll_img {
    display: none;
    position: absolute;
    top: 50%;
    left: 50%;
    height: 100px;
    width: 100px;
    background: rgba(43, 123, 208, 0.82) url(../images/scroll_img.png) no-repeat center / 76%;
    text-indent: -999em;
    border-radius: 100%;
    margin-top: -50px;
    margin-left: -50px;
    z-index: 3
}

.table_layout .tbody_wrap {
    max-height: 500px;
    overflow-y: auto;
}

.table_layout .tbody_wrap table {
    border-top: 0;
}

.table_layout.td_bdtype {
    overflow-x: auto;
}

.table_layout.td_bdtype tbody td {
    border-right: 1px solid #d8d8d8
}

.table_layout.td_bdtype tbody td[rowspan] {
    word-break: break-all;
}

.table_layout.td_bdtype table td a {
    display: inline-block;
    -webkit-line-clamp: none;
    height: auto;
    line-height: normal;
    overflow: inherit;
}

.table_layout.td_bdtype tbody td:last-child {
    border-right: 0;
}

.table_layout02 {
    position: relative;
    overflow: hidden;
    overflow-y: auto;
    margin-bottom: 30px;
    overflow-x: auto;
}

.table_layout02>table {
    border-top: 1px solid #e5e5e5;
    width: 100%;
    table-layout: fixed;
}

.table_layout02>table>thead>tr>th {
    padding: 12px 0;
    background: #f5f6f7;
    border-bottom: 1px solid #e5e5e5;
    border-left: 1px solid #e5e5e5;
    text-align: center;
}

.table_layout02>table>thead>tr>th:first-child {
    border-left: 0;
}

.table_layout02>table>tbody>tr>th {
    width: 150px;
    padding: 12px 10px;
    background: #f5f6f7;
    border-bottom: 1px solid #e5e5e5;
    border-right: 1px solid #e5e5e5;
    text-align: center;
}

.table_layout02>table>tbody>tr>th.bl {
    border-left: 1px solid #e5e5e5;
}

.table_layout02>table>tbody>tr>th select {
    background-color: #fff
}

.table_layout02>table>tbody>tr>td {
    padding: 10px;
    border-bottom: 1px solid #e5e5e5;
}

.table_layout02 table .textarea-view {
    min-height: 150px;
}

.table_layout02 table td select {
    max-width: 250px;
    width: 100%;
}

.table_layout02 table td .td_form {
    width: 30%;
}

.table_layout02 table td .td_form.min_w {
    min-width: 300px;
}

.table_layout02 table tr.sum_row th {
    background: #ffe2e2;
}

.table_layout02 table tr.sum_row td {
    background: #ffe2e2;
}

.table_layout02.list_type table th[rowspan] {
    border-right: 1px solid #e5e5e5;
}

.table_layout02.list_type table th[rowspan]:last-child {
    border-right: 0;
}

.table_layout02.list_type table td {
    min-height: 39px;
    padding: 8px 10px;
    border-left: 1px solid #e5e5e5;
    text-align: center;
    overflow-wrap: break-word;
}

.table_layout02.list_type table td[rowspan] {
    border-right: 1px solid #e5e5e5;
}

.table_layout02.list_type table td[rowspan]:last-child {
    border-right: 0;
}

.table_layout02.list_type table td .w100 {
    max-width: none
}

.table_layout02.list_type table td:first-child {
    border-left: 0;
}

.table_layout02.list_type table td input[type="text"] {
    width: 100%;
}

.table_layout02 table td .td_form select {
    max-width: none;
    width: 30%;
}

.table_layout02 table td .table_layout {
    margin-bottom: 10px;
}

.td_form {
    display: flex;
    align-items: center;
    gap: 5px;
    width: 100%;
}

.td_form select {
    width: 30%;
}

.td_form input[type="text"] {
    width: 35%;
}

.in_table_wrap table th {
    text-align: center;
}

.in_table_wrap .table_layout02 {
    margin: -1px 0 0
}

.table_in_table {
    border: 1px solid #e5e5e5;
    border-bottom: 0
}

.table_in_table table {
    width: 100%;
}

.table_in_table table th {
    padding: 12px 0;
    background: #f5f6f7;
    border-bottom: 1px solid #e5e5e5;
    border-left: 1px solid #e5e5e5;
}

.table_in_table table th:first-child {
    border-left: 0;
}

.table_in_table table td {
    min-height: 39px;
    padding: 8px 10px;
    border-left: 1px solid #e5e5e5;
    text-align: center;
    border-bottom: 1px solid #e5e5e5;
}

/* 반응형 테이블 */
.table_layout_wrap .table_thead ul {
    display: flex;
    background: #f0f8ff;
    border-top: 1px solid #397ebd;
    border-bottom: 1px solid #c0def7;
}

.table_layout_wrap .table_thead ul li {
    padding: 12px 0;
    font-weight: 600;
    text-align: center;
    position: relative;
}

.table_layout_wrap .table_thead ul li+li:before {
    content: '';
    width: 1px;
    height: 15px;
    background: #cdd8e1;
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -7px;
}

.table_layout_wrap .table_tbody.row_form>ul {
    display: table;
    width: 100%;
    border-bottom: 1px solid #d8d8d8
}

.table_layout_wrap .table_tbody.row_form>ul>li {
    padding: 0;
    border-bottom: 0;
    display: table-cell;
    vertical-align: middle;
    border-right: 1px solid #d8d8d8;
}

.table_layout_wrap .table_tbody.row_form>ul>li:last-child {
    border-right: 0
}

.table_layout_wrap .table_tbody.row_form>ul>li>ul>li {
    border-bottom: 1px solid #d8d8d8;
    text-align: center;
    display: block
}

.table_layout_wrap .table_tbody.row_form>ul>li>ul>li>em {
    display: none
}

.table_layout_wrap .table_tbody.row_form>ul>li>ul>li:last-child {
    border-bottom: 0
}

.table_layout_wrap .table_tbody ul li {
    display: flex;
    padding: 12px 0;
    text-align: center;
    border-bottom: 1px solid #d8d8d8;
    align-items: center;
    position: relative;
}

.table_layout_wrap .table_tbody ul li:not(.li-nodata):hover:before,
.table_layout_wrap .table_tbody ul li.on:before {
    content: '';
    width: 100%;
    height: 100%;
    background: #F7FCFF;
    border: 1px solid #d4ecff;
    position: absolute;
    top: 0;
    left: 0;
}

/* 2025.05.26 수정 */
.table_layout_wrap .table_tbody ul li.answer_wrap:hover:before,
.table_layout_wrap .table_tbody ul li.answer_wrap.on:before {
    content: none;
}

/* 2025.05.26 수정 */
.table_layout_wrap .table_tbody ul li:hover a,
.table_layout_wrap .table_tbody ul li.on a {
    color: #0035ff;
    font-weight: bold;
}

/* 2025.05.26 수정 */
.table_layout_wrap .table_tbody ul li .title {
    padding-left: 10px;
}

/* 2025.05.26 수정 */
.table_layout_wrap .table_tbody ul li .title a {
    text-align: left;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    word-wrap: break-word;
    line-height: 18px;
    overflow: hidden;
    max-width: 80%;
}

/* 2025.05.26 수정 */
.table_layout_wrap .table_tbody ul li div {
    z-index: 0
}

/* 2025.05.26 수정 */
.table_layout_wrap .table_tbody ul li div em {
    display: none;
}

.table_layout_wrap .number {
    width: 6%;
    flex-shrink: 0;
}

.table_layout_wrap .years {
    width: 10%;
    flex-shrink: 0;
}

.table_layout_wrap .title {
    flex-grow: 1;
}

.table_layout_wrap .state {
    width: 10%;
    flex-shrink: 0;
}

.table_layout_wrap .writer {
    width: 12%;
    flex-shrink: 0;
}

.table_layout_wrap .date {
    width: 15%;
    flex-shrink: 0;
}

.table_layout_wrap .status {
    width: 15%;
    flex-shrink: 0;
    text-align: center;
}

.table_layout_wrap .category {
    width: 8%;
    flex-shrink: 0;
}

.table_layout_wrap .view {
    width: 10%;
    flex-shrink: 0;
}

.table_layout_wrap .w22_5 {
    width: 22.5%
}

.table_layout_wrap .li-nodata {
    text-align: center;
    display: block !important;
}

.table_layout_wrap .li-nodata:after {
    content: '검색 결과가 없습니다.'
}

/* 평가 일정 달력 */
.schedule_table {
    margin-bottom: 30px;
}

.schedule_table table {
    table-layout: fixed;
    width: 100%;
    border-top: 1px solid #397ebd;
}

.schedule_table table th {
    padding: 12px 0;
    background: #f0f8ff;
    border: 1px solid #c0def7;
    text-align: center;
    border-top: 0;
}

.schedule_table table td {
    padding: 8px 10px;
    border: 1px solid #e5e5e5;
    border-top: 0;
    text-align: center;
}

.schedule_table table td .schedule_table_inner {
    height: 100px;
    position: relative;
}

.schedule_table table td .schedule_table_inner em {
    position: absolute;
    top: -5px;
    left: 0;
}

.schedule_table table td .schedule_table_inner .schedule_select {
    display: block;
    padding: 5px 0;
    border-radius: 50px;
}

.schedule_table table td .schedule_table_inner .schedule_select.on {
    background: #397ebd;
    color: #fff;
}

.selected_schedule {
    margin-bottom: 30px;
}

.selected_schedule strong {
    display: block;
    margin-bottom: 5px
}

/* 테이블 사이즈 */
.w640>table {
    min-width: 640px;
}

.w800>table {
    min-width: 800px;
}

.w1000>table {
    min-width: 1000px;
}

.w1024>table {
    min-width: 1024px;
}

.w1200>table {
    min-width: 1200px;
}

.w1400>table {
    min-width: 1400px;
}

.w1600>table {
    min-width: 1600px;
}

.table_layout02.schedule {
    overflow-x: auto;
}

.table_layout02.schedule table {
    border-top: 2px solid #2f6da7;
}

.table_layout02.field_score {
    border-top: 2px solid #2f6da7;
    overflow-y: hidden;
    overflow-x: auto;
    position: relative;
}

.table_layout02.field_score table {
    width: 100%;
    table-layout: fixed;
}

.table_layout02.field_score table th {
    padding: 5px 2px;
    background: #f5f6f7;
    border-bottom: 1px solid #e5e5e5;
    border-left: 1px solid #e5e5e5;
    text-align: center;
}

.table_layout02.field_score table th[rowspan] {
    border-right: 1px solid #e5e5e5;
}

.table_layout02.field_score table td {
    min-height: 39px;
    padding: 5px;
    border-left: 1px solid #e5e5e5;
    border-bottom: 1px solid #e5e5e5;
    text-align: center;
    overflow-wrap: break-word;
}

.file_upload {
    margin-top: 15px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.file_upload label {
    display: inline-block;
    width: 34px;
    height: 34px;
    border-radius: 3px;
    color: #fff;
    vertical-align: middle;
    background-color: #444444;
    cursor: pointer;
    background-image: url(../images/icon_file_upload.png);
    background-repeat: no-repeat;
    background-position: 50% 50%;
    transition: all 0.3s;
}

.file_upload label span {
    display: inline-block;
    text-indent: -9999px;
}

.file_upload label:hover {
    background-color: #042b65;
}

.file_upload input[type="file"] {
    position: absolute;
    width: 0 !important;
    height: 0 !important;
    padding: 0;
    overflow: hidden;
    border: 0;
}

.file_upload .file-name {
    margin-left: 5px;
    color: #999;
}

.upload_file_list li {
    display: flex;
    align-items: center;
    gap: 15px;
}

.upload_file_list li+li {
    margin-top: 5px
}

.case {
    display: inline-block;
    min-width: 66px;
    padding: 3px 10px;
    border-radius: 3px;
    font-size: 13px;
    height: auto;
    line-height: 1.6;
    white-space: nowrap;
}

.case.c01 {
    color: #707070;
    background: #f3f3f3;
    text-align: center;
}

.case.c02 {
    color: #2c6eb8;
    background: #e6f2fc;
    text-align: center;
}

.case.c03 {
    color: #8b4fae;
    background: #f6ecff;
    text-align: center;
}

.case.c04 {
    color: #01766b;
    background: #ddf5f3;
    text-align: center;
}

.case.c05 {
    color: #51740b;
    background: #edf5dd;
    text-align: center;
}

.case.c11 {
    color: #2f2f2f;
    background: #e0e0e0;
    text-align: center;
    width: 92px;
}

.case.c12 {
    color: #5c3c0d;
    background: #f8ead4;
    text-align: center;
    width: 92px;
}

.case.c13 {
    color: #4a3600;
    background: #f4e5b5;
    text-align: center;
    width: 92px;
}

.case.c14 {
    color: #1a3f66;
    background: #e6f0fa;
    text-align: center;
    width: 92px;
}

.case.c15 {
    color: #1c4f80;
    background: #d2e4f7;
    text-align: center;
    width: 92px;
}

.case.c16 {
    color: #205b99;
    background: #bfd9f5;
    text-align: center;
    width: 92px;
}

.case.c17 {
    color: #1c4b68;
    background: #d2edf1;
    text-align: center;
    width: 92px;
}

.case.c18 {
    color: #1d5c5a;
    background: #c9f1ec;
    text-align: center;
    width: 92px;
}


.auditor_wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.search_input {
    width: 35%;
    position: relative;
}

.search_input .btn_search_ico {
    display: inline-block;
    text-indent: -9999px;
    width: 34px;
    height: 34px;
    background: url('../images/icon_btn_search02.png') no-repeat center;
    position: absolute;
    top: 0;
    right: 0;
}

/* tab_menu */
.authority_tab_wrap {
    display: none;
}


/* paging */
.paging_wrap {
    margin-top: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.paging_wrap>a {
    display: inline-block;
    width: 30px;
    height: 30px;
    line-height: 36px;
    text-indent: -10000em;
    border: 1px solid #efefef;
    border-radius: 3px;
}

.paging_wrap .first {
    background: url('../images/first_page.png') no-repeat center;
}

.paging_wrap .previous {
    background: url('../images/previous_page.png') no-repeat center;
}

.paging_wrap .next {
    background: url('../images/next_page.png') no-repeat center;
}

.paging_wrap .last {
    background: url('../images/last_page.png') no-repeat center;
}

.paging_wrap .number {
    font-size: 14px
}

.paging_wrap .number a {
    display: inline-block;
    width: 30px;
    height: 30px;
    line-height: 28px;
    border-radius: 3px;
    text-align: center;
    border: 1px solid #efefef;
}

.paging_wrap .number a:hover {
    color: #ff0000;
}

.paging_wrap .number strong {
    display: inline-block;
    width: 30px;
    height: 30px;
    line-height: 30px;
    border-radius: 3px;
    text-align: center;
    color: #ff0000;
    border: 1px solid #efefef;
}

/**  popup **/
.bg_overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: #000;
    opacity: .7;
    z-index: 2;
}

.layer_popup {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2;
    width: 100%;
    height: 100vh;
}

.layer_popup_wrap {
    width: 100%;
    height: 100vh;
    padding: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.popup_wrap {
    max-width: 540px;
    width: 100%;
    min-width: 340px;
    border-radius: 10px;
    position: relative;
}

.popup_wrap.w700 {
    max-width: 700px;
}

.popup_wrap.w900 {
    max-width: 900px;
}

.popup_wrap .p_tit {
    padding: 12px 20px;
    background: #2f6da7;
    color: #fff;
    font-size: 20px;
    border-radius: 10px 10px 0 0;
    font-weight: 600;
}

.popup_inner {
    background: #fff;
    border-radius: 0 0 10px 10px;
    border: 2px solid #2f6da7;
}

.popup_inner .popup_cont_wrap {
    padding: 30px;
}

.popup_inner .search_wrap {
    padding: 30px;
}

.popup_inner .p_tit_s {
    margin-bottom: 15px;
    font-size: 16px;
    color: #212121;
}

.notify_list {
    max-height: 500px;
    overflow-x: hidden;
    overflow-y: auto;
    height: 100%;
}

.notify_list ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.notify_list ul li {
    padding: 15px;
    background: #fff;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, .1);
    border-radius: 5px;
}

.notify_list ul li>a {
    font-weight: 600;
    color: #212121;
}

.notify_list ul li p {
    color: #666;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    line-height: 15px;
}

.notify_list ul li p button {
    display: inline-block;
    text-indent: -9999px;
    background: url('../images/icon_delete.svg') no-repeat 0 0 / 100%;
    padding: 0;
    width: 13px;
    height: 13px;
}

.popup_inner .btn_more {
    display: block;
    margin-top: 20px;
    padding: 10px 0;
    border-radius: 50px;
    background: #dce0ea;
    color: #7a83a0;
    text-align: center;
    transition: all 0.7s;
}

.popup_inner .btn_more:hover {
    background: #1d68c7;
    color: #fff;
}

.popup_wrap .pop_close {
    display: inline-block;
    text-indent: -9999px;
    width: 16px;
    height: 16px;
    background: url('../images/btn_pop_close.png') no-repeat 0 0;
    position: absolute;
    top: 17px;
    right: 15px;
}

.popup_wrap .no_data {
    padding: 0 0 20px;
    color: #666;
}

.popup_cont_inner .table_layout {
    max-height: 300px;
    overflow-x: hidden;
    overflow-y: auto;
}

.table_popup_wrap02 {
    border-top: 1px solid #397ebd;
}

.table_popup_wrap02>ul>li {
    border-bottom: 1px solid #d8d8d8;
    padding: 15px 85px 15px 0;
    position: relative;
}

.table_popup_wrap02 ul li strong {
    color: #000
}

.table_popup_wrap02 ul li ul {
    display: flex;
    flex-wrap: wrap;
}

.table_popup_wrap02>ul>li {
    position: relative;
}

.table_popup_wrap02>ul>li>a {
    position: absolute;
    top: 50%;
    right: 0;
    margin-top: -17px;
}

.table_popup_wrap02>ul>li>ul {
    margin: 5px 0 0 -20px;
}

.table_popup_wrap02>ul>li>ul>li {
    position: relative;
    display: flex;
    align-items: center;
    margin-left: 20px;
    gap: 7px;
}

.table_popup_wrap02>ul>li>ul>li:before {
    content: '';
    width: 3px;
    height: 3px;
    background: #6b6b6b;
    border-radius: 100%;
}

/* 평가점수 및 평가표 등록 */
.popup_wrap.evaluation_pop {
    height: 100%;
}

.popup_wrap.evaluation_pop .popup_inner {
    height: calc(100% - 48px);
    overflow-y: scroll;
    overflow-x: hidden;
}

/* 회원정보 수정 */
.member_modify_wrap {
    max-width: 700px;
    width: 100%;
    border: 1px solid #e5e5e5;
    border-radius: 10px;
    background: #fff;
    margin: 20px auto 0;
    padding: 50px;
    box-shadow: 1px 1px 19px rgba(0, 0, 0, .1);
}

.modify_inner {
    margin-bottom: 30px;
}

.modify_inner ul {
    border-top: 1px solid #333;
}

.modify_inner ul li {
    display: flex;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid #e5e5e5;
}

.modify_inner ul li label {
    max-width: 120px;
    width: 100%;
    text-align: center;
    padding: 15px 0;
    font-weight: 700;
}

.modify_inner ul li select {
    max-width: 170px;
    width: 100%;
}


/**  flex type **/
.flex_col {
    display: flex;
    align-items: center;
    gap: 5px;
}

.col_wrap_02 {
    display: flex;
    gap: 50px;
}

.flex_between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* 위저드 하단 버튼 — flex_between 내부에서만 세로 가운데 정렬 */
.flex_between>.btn_wrap {
    display: flex;
    align-items: center;
    gap: 12px;
}

.flex_between>.btn_wrap.flex_1 {
    justify-content: center;
}

/* 팀장 배지 */
.leader-badge {
    display: inline-block;
    padding: 1px 6px;
    font-size: 11px;
    font-weight: 700;
    color: #8b6914;
    background: #fff3cd;
    border: 1px solid #ffc107;
    border-radius: 3px;
    white-space: nowrap;
    line-height: 1.4;
    vertical-align: middle;
}

/* 팀 구분선 */
.table_layout02 table tbody tr.team-separator td {
    border-top: 2px solid #20598d;
}

/* 체크된 팀장 라벨 강조 */
.chairman-checkbox:checked+span {
    color: #8b6914;
    font-weight: 700;
}

.flex_1 {
    flex-grow: 1;
}

.flex_c {
    justify-content: center;
}

.flex_align {
    align-items: center;
}

.flex_shk {
    flex-shrink: 0;
}

.flex_nowrap {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.flex_right {
    display: flex;
    justify-content: flex-end;
    gap: 5px;
}

.flex_colum {
    display: flex;
    flex-direction: column;
    gap: 5px;
}


/**  버튼 **/
.btn_logout {
    display: inline-block;
    padding: 5px 17px 6px;
    background: #20598d;
    color: #fff;
    border-radius: 50px;
    margin-left: 5px;
    font-size: 14px;
}

.btn_wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.btn_wrap.r_type {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: -35px;
}

.btn_basic {
    display: inline-block;
    padding: 8px 3%;
    box-sizing: border-box;
    line-height: 22px;
    min-width: 80px;
    color: #20598d;
    border-radius: 3px;
    text-align: center;
    vertical-align: middle;
}

.s_btn_basic {
    display: inline-block;
    padding: 6px 10px;
    min-width: 70px;
    color: #1e4c92;
    border-radius: 3px;
    text-align: center;
    font-size: 14px;
    font-family: 'NotoSansKR';
}

.s_btn_basic.off {
    background: #dfdfdf;
    border: 1px solid #cfcfcf;
    color: #333333;
}

.bg_type01 {
    background: #20598d;
    border: 1px solid #20598d;
    color: #fff;
    transition: all 0.7s;
}

.bg_type02 {
    background: #4d4d4d;
    border: 1px solid #4d4d4d;
    color: #fff;
    transition: all 0.7s;
}

.bg_type02.h_none {
    background: none;
    border: 0;
    color: #fff;
    transition: all 0.7s;
    padding: 0;
    position: relative;
}

.bg_type02.h_none:after {
    content: '';
    height: 35px;
    display: inline-block;
    position: absolute;
    width: 100%;
    left: 0;
    top: -7px;
    background: #4d4d4d;
    border: 1px solid #4d4d4d;
    z-index: -1;
    border-radius: 3px
}

.bg_type03 {
    background: #ff8f00;
    border: 1px solid #ffa700;
    color: #fff
}

.bg_type04 {
    background: #dbdbdb;
    border: 1px solid #dbdbdb;
    color: #333;
}

.bg_type05 {
    background: #fff7e5 !important;
}

.bg_type06 {
    background: #edf9ff !important;
}

.bg_type07 {
    background: #fff2f2 !important;
}

.bg_type08 {
    background: #f5ffed !important;
}

.bg_type09 {
    background: #f8f3ff !important;
}

.bg_type10 {
    background: #dafffc !important;
}

.bg_type11 {
    background: #e0f5e0 !important;
}

.bg_type12 {
    background: #f6fcff !important;
}

.bg_type13 {
    background: #e2ffd3 !important;
}

.bg_type14 {
    background: #fdffc1 !important;
}

.bg_type15 {
    background: #fff1d0 !important;
}

.bg_type16 {
    background: #fdffef !important;
}

.bg_type17 {
    background: #cdcdcd !important;
}

.bg_type18 {
    background: #1d5487 !important;
    color: #fff;
}


.line_type01,
.line_type02 {
    background: #fff;
}

.line_type01 {
    border: 1px solid #20598d;
    font-weight: 600;
    transition: all 0.7s;
}

.line_type01:hover {
    background: #e9f2ff;
    transition: all 0.7s;
}

.line_type02 {
    border: 1px solid #212121;
    color: #212121;
    font-weight: 600;
    transition: all 0.7s;
}

.line_type02:hover {
    background: #e9e9e9;
    transition: all 0.7s;
}

.btn_basic.exsel {
    border: 1px solid #1f7044;
    color: #1a9150;
    transition: all 0.3s;
}

.btn_basic.exsel:hover {
    background: #1a9150;
    color: #fff;
}

.btn_basic.exsel:hover span:before {
    filter: brightness(0) invert(1);
}

.btn_basic.exsel span {
    position: relative;
    padding-left: 22px;
}

.btn_basic.exsel span:before {
    content: '';
    width: 16px;
    height: 16px;
    background: url('../images/px_excel.png') no-repeat 0 center / 100%;
    position: absolute;
    top: 50%;
    left: 0;
    margin-top: -8px;
}

.s_btn_basic.exsel {
    border: 1px solid #1f7044;
    color: #1a9150;
    transition: all 0.3s;
}

.s_btn_basic.exsel:hover {
    background: #1a9150;
    color: #fff;
}

.s_btn_basic.exsel:hover span:before {
    filter: brightness(0) invert(1);
}

.s_btn_basic.exsel span {
    position: relative;
    padding-left: 22px;
}

.s_btn_basic.exsel span:before {
    content: '';
    width: 16px;
    height: 16px;
    background: url('../images/px_excel.png') no-repeat 0 center / 100%;
    position: absolute;
    top: 50%;
    left: 0;
    margin-top: -8px;
    transition: all 0.3s;
}

.s_btn_basic.exsel02 {
    border: 1px solid #1f7044;
    color: #1a9150;
    transition: all 0.3s;
}

.s_btn_basic.exsel02:hover {
    background: #1a9150;
    color: #fff;
}

.s_btn_basic.exsel02:hover span:before {
    filter: brightness(0) invert(1);
}

.s_btn_basic.exsel02 span {
    position: relative;
    padding-left: 22px;
}

.s_btn_basic.exsel02 span:before {
    content: '';
    width: 16px;
    height: 16px;
    background: url('../images/icon_exel_upload.svg') no-repeat 0 center / 100%;
    position: absolute;
    top: 50%;
    left: 0;
    margin-top: -8px;
    transition: all 0.3s;
}

.s_btn_basic.download {
    border: 1px solid #20598d;
    color: #20598d;
    transition: all 0.3s;
}

.s_btn_basic.download:hover {
    background: #20598d;
    color: #fff;
}

.s_btn_basic.download:hover span:before {
    filter: brightness(0) invert(1);
}

.s_btn_basic.download span {
    position: relative;
    padding-left: 22px;
}

.s_btn_basic.download span:before {
    content: '';
    width: 16px;
    height: 16px;
    background: url('../images/icon_download.svg') no-repeat 0 center / 100%;
    position: absolute;
    top: 50%;
    left: 0;
    margin-top: -8px;
    transition: all 0.3s;
}

.s_btn_basic.upload {
    border: 1px solid #20598d;
    color: #20598d;
    transition: all 0.3s;
}

.s_btn_basic.upload:hover {
    background: #20598d;
    color: #fff;
}

.s_btn_basic.upload:hover span:before {
    filter: brightness(0) invert(1);
}

.s_btn_basic.upload span {
    position: relative;
    padding-left: 22px;
}

.s_btn_basic.upload span:before {
    content: '';
    width: 16px;
    height: 16px;
    background: url('../images/icon_upload.svg') no-repeat 0 center / 100%;
    position: absolute;
    top: 50%;
    left: 0;
    margin-top: -8px;
    transition: all 0.3s;
}

.btn_basic.next {
    background: #20598d;
    border: 1px solid #20598d;
    color: #fff;
    padding: 0 28px 0 22px;
    height: 40px;
    box-sizing: border-box;
    line-height: 38px;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.5px;
    box-shadow: 0 2px 6px rgba(32, 89, 141, 0.3);
    transition: all 0.3s ease;
}

.btn_basic.next:hover {
    background: #174a78;
    border-color: #174a78;
    box-shadow: 0 4px 12px rgba(32, 89, 141, 0.45);
    transform: translateY(-1px);
}

.btn_basic.next span {
    position: relative;
    padding-right: 22px;
}

.btn_basic.next span:before {
    content: '';
    width: 14px;
    height: 14px;
    background: url('../images/icon_next.svg') no-repeat 0 center;
    position: absolute;
    top: 50%;
    right: 0;
    margin-top: -7px;
}

.btn_basic.prev {
    border: 1px solid #212121;
    color: #212121;
    padding: 0 22px 0 28px;
    height: 40px;
    box-sizing: border-box;
    line-height: 38px;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
}

.btn_basic.prev:hover {
    background: #f5f5f5;
    transform: translateY(-1px);
}

.btn_basic.prev span {
    position: relative;
    padding-left: 22px;
}

.btn_basic.prev span:before {
    content: '';
    width: 14px;
    height: 14px;
    background: url('../images/icon_prev.svg') no-repeat 0 center;
    position: absolute;
    top: 50%;
    left: 0;
    margin-top: -7px;
}

.btn_search {
    display: inline-block;
    width: 64px;
    height: 64px;
    background: #00665d;
    color: #fff;
    border-radius: 3px;
    flex-shrink: 0;
    text-align: center;
    padding: 15px 0;
}

.btn_search span {
    display: inline-block;
    padding-top: 15px;
    background: url('../images/icon_btn_search.png') no-repeat center 0;
}

.btn_search02 {
    display: inline-block;
    width: 34px;
    height: 34px;
    background: #006d62 url('../images/icon_btn_search03.png') no-repeat center;
    border-radius: 3px;
    text-indent: -9999px;
}

.s_btn_basic.add {
    border: 1px solid #1d68c7;
    color: #1d68c7;
    font-weight: 600;
}

.s_btn_basic.add:hover {
    background: #1d68c7;
    color: #fff
}

.s_btn_basic.add span {
    padding-left: 22px;
    background: url('../images/icon_btn_add.png') no-repeat 0 center;
}

.s_btn_basic.add:hover span {
    background: url('../images/icon_btn_add_hover.png') no-repeat 0 center;
}

.s_btn_basic.del {
    border: 1px solid #c40000;
    color: #c40000 !important;
    font-weight: 600;
    background: none;
}

.s_btn_basic.del:hover {
    background: #c40000;
    color: #fff !important;
}

.s_btn_basic.del span {
    padding-left: 22px;
    background: url('../images/icon_btn_del.png') no-repeat 0 center;
}

.s_btn_basic.del:hover span {
    background: url('../images/icon_btn_del_hover.png') no-repeat 0 center;
}

.s_btn_basic.print {
    border: 1px solid #212121;
    color: #212121;
    font-weight: 600;
}

.s_btn_basic.print:hover {
    background: #212121;
    color: #fff
}

.s_btn_basic.print span {
    position: relative;
    padding-left: 22px;
}

.s_btn_basic.print span:before {
    content: '';
    width: 16px;
    height: 16px;
    background: url('../images/icon_print.svg') no-repeat 0 0 / 100%;
    position: absolute;
    top: 50%;
    left: 0;
    margin-top: -7px;
}

.s_btn_basic.print:hover span:before {
    background: url('../images/icon_print_hover.svg') no-repeat 0 0 / 100%;
}

.btn_file_del {
    background: none;
    display: inline-block;
    text-indent: -9999px;
    width: 17px;
    height: 17px;
    background: url('../images/icon_btn_del02.png') no-repeat 0 0 / 100%;
}

.btn_search_basic {
    display: inline-block;
    width: 64px;
    height: 34px;
    background: #2f6da7;
    color: #fff;
    border-radius: 3px;
    flex-shrink: 0;
    text-align: center;
    line-height: 34px;
}

.btn_plus {
    width: 34px;
    height: 34px;
    display: inline-block;
    border: 1px solid #d8d8d8;
    text-indent: -9999px;
    background: url('../images/ico_plus.png') no-repeat center;
}

.btn_minus {
    width: 34px;
    height: 34px;
    display: inline-block;
    border: 1px solid #d8d8d8;
    text-indent: -9999px;
    background: url(../images/ico_minus.png) no-repeat center;
}

.s_btn_basic.modify {
    border: 1px solid #212121;
    color: #212121 !important;
    font-weight: 600;
}

.s_btn_basic.modify:hover {
    background: #212121;
    color: #fff !important;
}

.s_btn_basic.modify span {
    position: relative;
    padding-left: 22px;
}

.s_btn_basic.modify span:before {
    content: '';
    width: 16px;
    height: 16px;
    background: url('../images/icon_name.svg') no-repeat 0 0 / 100%;
    position: absolute;
    top: 50%;
    left: 0;
    margin-top: -8px;
}

.s_btn_basic.modify:hover span:before {
    background: url('../images/icon_name_hover.svg') no-repeat 0 0 / 100%;
}

/**  ETC **/
.tal {
    text-align: left;
}

.c_red {
    color: #d80000 !important;
    font-size: 14px;
}

.c_yellow {
    color: #FFD600 !important
}

.c_blue {
    color: #0078b8 !important
}

.c_blue02 {
    color: #0F379F !important
}

.bl_state {
    display: inline-block;
    background: #00897c;
    color: #fff;
    max-width: 80px;
    width: 100%;
    border-radius: 30px;
    font-size: 14px;
    padding: 3px 0;
}

.bl_state_line {
    display: inline-block;
    border: 1px solid #ADADAD;
    color: #ADADAD;
    max-width: 80px;
    width: 100%;
    border-radius: 30px;
    font-size: 14px;
    padding: 3px 0;
}

.h_bg_type {
    height: 10px;
    background: #f8f8f8;
    border-top: 1px solid #e5e5e5;
    border-bottom: 1px solid #e5e5e5;
    opacity: 1;
}

.print_wrap {
    /* border: 1px dashed #d1d1d1; */
    /* background: #f9f9f9; */
    /* padding: 10px; */
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 5px;
}

.bl_dot {
    position: relative;
    padding-left: 10px;
}

.bl_dot:before {
    content: '';
    position: absolute;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    top: 50%;
    left: 0;
    background-color: #20598d;
    margin-top: -2px;
}

.etc_text_wrap {
    background: #f5f6f7;
    border: 1px solid #e5e5e5;
    padding: 30px;
    margin-bottom: 30px;
}

.text_list li {
    line-height: 26px;
    text-indent: -15px;
    padding-left: 15px;
}

.point {
    position: relative;
}

.point:after {
    content: '';
    display: block;
    position: absolute;
    top: -5px;
    right: -5px;
    width: 0;
    height: 0;
    border: 5px solid;
    border-color: #ff0051 transparent transparent transparent;
    transform: rotate(225deg)
}

.br_none {
    display: none
}

.img_line_wrap {
    margin-bottom: 30px;
    border: 1px solid #dfdfdf;
    padding: 30px;
    text-align: center;
}

.font_s {
    font-size: 13px;
    margin-top: 3px
}

.table_layout_wrap .table_tbody .title {
    display: flex;
    align-items: center;
    gap: 5px;
}

.table_layout_wrap .table_tbody ul li .notice {
    background: #397ebd;
    color: #fff;
    padding: 3px 15px;
    border-radius: 50px;
    font-size: 14px;
    z-index: 1;
}

/* 2025.05.26 수정 */
.table_layout_wrap.faq .table_tbody ul li.answer_wrap {
    background: #f5f5f5;
    display: none;
}

/* 기존 마진 유지 */
.table_layout_wrap.faq .table_tbody ul li {
    margin-top: -1px;
}

.table_layout_wrap.faq .table_tbody .faq_laout {
    flex-direction: column;
    align-items: flex-start;
}

.table_layout_wrap.faq .table_tbody .faq_laout .a_wrap {
    display: flex;
    gap: 10px;
    padding: 0 60px 0 20px;
    background: url('../images/bl_faq.png') no-repeat 0 4px;
    align-items: flex-start;
    /* 상단 정렬로 변경 */
}

.table_layout_wrap.faq .table_tbody .faq_laout .a_wrap .answer {
    background: #313131;
    color: #fff;
    min-width: 30px;
    /* width 대신 min-width 사용 */
    min-height: 30px;
    /* height 대신 min-height 사용 */
    height: 30px;
    width: 30px;
    border-radius: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    /* 크기 고정 */
    margin: 3px;
    /* 상단에 약간의 여백 추가 */
}

.table_layout_wrap.faq .table_tbody .faq_laout .a_wrap .answer-content {
    flex: 1;
    /* 남은 공간을 모두 차지하도록 */
    display: block;
    /* flex 아이템으로 인한 문제 방지 */
    word-break: break-word;
    /* 긴 단어가 레이아웃을 깨는 것 방지 */
    text-align: left;
}

/* 2025.05.28 수정 */
.table_layout02 .table_layout table tbody tr:hover td:before {
    content: none
}

.etc_text_wrap02 {
    background: #fff8f8;
    border: 1px dotted #ad5f5f;
    padding: 30px;
    text-align: center;
}

.etc_text_wrap02 span {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px
}

.etc_text_wrap02 span:before {
    content: '';
    width: 19px;
    height: 19px;
    background: url('../images/ico_nofile.png') no-repeat 0 0;
}

.etc_text_wrap03 {
    background: #f0f8ff;
    padding: 20px;
    text-align: center;
    border: 1px dotted #397ebd;
}

.file_upload .file_txt {
    text-align: left;
    line-height: 16px;
}

.file_upload .file_txt em {
    font-size: 12px;
}

/* 2025.06.18 수정 */
.main_tit_head h3.ico_tit01 {
    position: relative;
    padding-left: 35px;
}

.main_tit_head h3.ico_tit01:before {
    content: '';
    width: 30px;
    height: 41px;
    background: url('../images/ico_todo.png') no-repeat 0 0 / 100%;
    position: absolute;
    top: -10px;
    left: 0;
}

.main_tit_head h3.ico_tit02 {
    position: relative;
    padding-left: 40px;
}

.main_tit_head h3.ico_tit02:before {
    content: '';
    width: 32px;
    height: 32px;
    background: url('../images/ico_notice.png') no-repeat 0 0 / 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.main_tit_head h3.ico_tit03 {
    position: relative;
    padding-left: 40px;
}

.main_tit_head h3.ico_tit03:before {
    content: '';
    width: 32px;
    height: 32px;
    background: url('../images/ico_step.png') no-repeat 0 0 / 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.to-do_tap {
    display: flex;
    margin-top: 30px;
    gap: 7px;
}

.to-do_tap a {
    background: #f5f5f5;
    border-radius: 30px;
    padding: 7px 20px;
}

.to-do_tap a em {
    color: #ff0000;
}

.to-do_tap a.on {
    background: #2f6da7;
    color: #fff;
}

.to-do_tap a.on em {
    color: #ffb300;
}

/* ===== 나의 할 일 카드 스타일 ===== */
.main_schedule_list,
.main_schedule_list02 {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.main_schedule_list li,
.main_schedule_list02 li {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.2s ease;
}

.main_schedule_list li:hover,
.main_schedule_list02 li:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}

.main_schedule_list li.no-data,
.main_schedule_list02 li.no-data {
    grid-column: 1 / -1;
    border: 1px dashed #d1d5db;
    background: #fafafa;
}

.main_schedule_list02.gray_type li {
    opacity: 0.7;
}

/* 카드 내부 스타일 */
.schedule_wrap {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-left: 4px solid #3b82f6;
    background: linear-gradient(135deg, #f0f9ff 0%, #fff 100%);
}

.schedule_wrap a {
    font-size: 14px;
    font-weight: 600;
    color: #1f2937;
    text-decoration: none;
    line-height: 1.4;
}

.schedule_wrap a:hover {
    color: #2563eb;
    text-decoration: underline;
}

.schedule_wrap em {
    font-size: 12px;
    color: #6b7280;
    font-style: normal;
}

/* ===== 상태 뱃지 색상 체계 ===== */
.schedule_wrap>span:first-child {
    display: inline-block;
    width: fit-content;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
}

/* 대기 상태 - 노란색 */
.schedule_wrap.bg_color01 {
    border-left-color: #f59e0b;
    background: linear-gradient(135deg, #fffbeb 0%, #fff 100%);
}

.schedule_wrap.bg_color01>span:first-child {
    background-color: #fef3c7;
    color: #b45309;
}

/* 진행중 상태 - 파란색 */
.schedule_wrap>span:first-child {
    background-color: #dbeafe;
    color: #1d4ed8;
}

/* 보완요청 상태 - 주황색 */
.schedule_wrap.bg_color02 {
    border-left-color: #f97316;
    background: linear-gradient(135deg, #fff7ed 0%, #fff 100%);
}

.schedule_wrap.bg_color02>span:first-child {
    background-color: #ffedd5;
    color: #c2410c;
}

/* 완료 상태 - 초록색 */
.schedule_wrap.bg_color03 {
    border-left-color: #10b981;
    background: linear-gradient(135deg, #ecfdf5 0%, #fff 100%);
}

.schedule_wrap.bg_color03>span:first-child {
    background-color: #d1fae5;
    color: #047857;
}

/* 예정 탭 스타일 */
.schedule_wrap.upcoming {
    border-left-color: #9ca3af;
    background: linear-gradient(135deg, #f9fafb 0%, #fff 100%);
}

.schedule_wrap.upcoming>span:first-child {
    background-color: #f3f4f6;
    color: #6b7280;
}

/* 완료 탭 스타일 */
.schedule_wrap.done {
    border-left-color: #10b981;
    background: linear-gradient(135deg, #ecfdf5 0%, #fff 100%);
}

.schedule_wrap.done>span:first-child {
    background-color: #d1fae5;
    color: #047857;
}

/* 빈 상태 메시지 */
.empty-message {
    padding: 40px 20px;
    text-align: center;
}

.empty-message p {
    font-size: 14px;
    color: #6b7280;
    margin: 0;
}

.popup_wrap.small_popup {
    max-width: 400px;
    box-shadow: 1px 1px 19px 11px rgba(0, 0, 0, .16);
}

.popup_wrap.small_popup .p_tit {
    background: #212121;
}

.popup_wrap.small_popup .popup_inner {
    border: 2px solid #212121;
}

.popup_wrap.small_popup .popup_inner .popup_cont_wrap p {
    text-align: center;
}

.bg_type19 {
    background: #212121 !important;
    border: 1px solid #212121;
    color: #fff
}

@media screen and (max-width: 1500px) {
    .dashboard_cont_wrap .dashboard_cont_list {
        flex: 1 1 40%;
        width: 40%;
    }
}

@media screen and (max-width: 1440px) {
    .step_wrap .step {
        gap: 5px;
    }

    .step_wrap .step li {
        padding: 10px;
        gap: 5px;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .step_wrap .step li:after {
        right: -15px;
        z-index: 1;
    }

    /* before → after 변경 */
    .step_wrap .step li span {
        font-size: 14px;
    }

    .institution_info .col_left_wrap {
        width: 40%;
    }
}

@media screen and (max-width: 1400px) {
    .btn_wrap.r_type {
        justify-content: center;
        margin-top: 30px;
    }
}

@media screen and (max-width: 1200px) {
    .dashboard_bottun_wrap ul li {
        flex: 1 1 calc(50% - 20px);
    }
}

@media screen and (max-width: 1024px) {
    .dashboard_cont_wrap {
        padding: 10px;
        gap: 10px;
    }
}

@media screen and (max-width: 940px) {
    .dashboard_cont_wrap {
        flex-direction: column;
    }

    .dashboard_cont_wrap .dashboard_cont_list {
        flex: 1 1 100%;
        width: auto;
        padding: 15px 15px 85px;
    }

    /* 바로가기 섹션 모바일 대응 */
    .dashboard_shortcuts .shortcuts_list_wrap a {
        padding: 15px 20px;
    }

    .dashboard_shortcuts .shortcuts_list_wrap a strong {
        font-size: 15px;
    }

    .main_list_wrap {
        margin-top: 15px;
    }

    .dashboard_bottun_wrap ul li a strong {
        font-size: 18px;
    }

    .dashboard_bottun_wrap ul li a:after {
        width: 70px;
        height: 56px;
        right: 15px;
    }

    .dashboard_bottun_wrap {
        padding: 10px;
    }

    /* 서브 */
    .h_bg_type {
        height: 5px;
    }

    /* 테이블 */
    .table_layout02>table {
        font-size: 14px;
    }

    .table_layout02>table>thead>tr>th,
    .table_layout02>table>tbody>tr>th {
        padding: 8px 0;
    }

    /* 절차 */
    .step_wrap .step {
        gap: 5px;
    }

    .step_wrap .step li {
        font-size: 15px;
        padding: 15px 5px;
        font-weight: normal;
        letter-spacing: -1px;
        align-items: center;
        text-align: center;
    }

    .step_wrap .step li:before,
    .step_wrap .step li.on:before {
        content: none;
    }

    .step_wrap .step li span {
        padding: 0;
        font-size: 14px;
    }

    .step_wrap .step li span em {
        display: block;
        padding: 5px 0;
        margin-bottom: 5px;
    }

    .step_wrap .step li.on span,
    .step_wrap .step li.comp span {
        font-weight: bold;
    }

    .step_wrap .step li.on span em {
        border: 1px solid #1f72ff;
        border-radius: 30px;
        background: #e9f1ff;
        font-weight: bold;
        display: block;
        padding: 5px;
        margin-bottom: 5px;
    }

    /* 버튼 */
    .btn_logout {
        padding: 3px 15px 4px;
        margin-left: 0;
    }

    .table_layout02.cursor_type {
        max-height: 191px;
        overflow-y: auto;
    }

    .col_wrap_02 {
        flex-direction: column;
        gap: 30px;
    }

    .col_wrap_02 .col_left_wrap,
    .col_wrap_02 .col_right_wrap {
        width: 100%;
    }

    .dashboard_cont_wrap .dashboard_cont_list .btn_more {
        left: 15px;
        right: 15px;
        bottom: 15px;
    }

}

@media screen and (max-width: 768px) {

    .dashboard_bottun_wrap ul {
        gap: 15px;
    }

    .dashboard_bottun_wrap ul li {
        min-width: 220px;
    }
}

@media screen and (max-width: 750px) {
    .dashboard_bottun_wrap ul {
        gap: 5px;
    }

    /* 검색 */
    .search_wrap {
        padding: 10px;
    }

    .search_wrap ul {
        flex-direction: column;
        gap: 5px;
    }

    .search_wrap ul li label {
        min-width: 52px;
    }

    .search_wrap ul>li input.w_type {
        flex-shrink: 1;
    }
}

@media screen and (max-width: 680px) {
    .dashboard_bottun_wrap ul li {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .dashboard_bottun_wrap ul li a {
        padding: 20px 100px 20px 20px;
        min-height: auto;
    }

    .dashboard_bottun_wrap ul li a:after {
        width: 60px;
        height: 48px;
        right: 20px;
    }

    .br_none {
        display: block
    }

    /* 목록 테이블 */
    .table_layout_wrap .table_thead {
        display: none;
    }

    .table_layout_wrap .table_tbody ul {
        border-top: 1px solid #397ebd;
    }

    .table_layout_wrap .table_tbody ul li:not(.li-nodata) {
        flex-wrap: wrap;
        align-items: center;
        text-align: left;
        color: #7d7d7d;
        position: relative;
        padding: 12px 10px 12px 83px;
        position: relative;
    }

    .table_layout_wrap .table_tbody ul.pd_0 li {
        padding: 12px 10px 12px 10px;
        display: flex;
        gap: 5px
    }

    .table_layout_wrap .table_tbody ul li div em {
        display: inline-block;
        padding-right: 5px;
    }

    .table_layout_wrap .table_tbody ul li .title {
        padding: 0;
        color: #212121;
        font-weight: 400
    }

    .table_layout_wrap .number {
        display: none;
    }

    .table_layout_wrap .title {
        order: 2;
        width: 100%;
        margin-bottom: 10px;
    }

    .table_layout_wrap .years {
        order: 4;
        width: auto;
        padding-right: 10px;
        position: relative;
        margin-right: 10px;
    }

    .table_layout_wrap .years:after {
        content: '';
        width: 1px;
        height: 10px;
        background: #cdcdcd;
        position: absolute;
        top: 6px;
        right: 0;
    }

    /* before → after 변경 */
    .table_layout_wrap .state {
        width: auto;
        position: absolute;
        top: 14px;
        left: 0;
    }

    .table_layout_wrap .writer {
        order: 5;
        width: auto;
        padding-right: 10px;
        position: relative;
        margin-right: 10px;
    }

    .table_layout_wrap .writer:after {
        content: '';
        width: 1px;
        height: 10px;
        background: #cdcdcd;
        position: absolute;
        top: 6px;
        right: -3px
    }

    /* before → after 변경 */
    .table_layout_wrap .date {
        order: 6;
        width: auto;
    }

    .table_layout_wrap .view {
        position: absolute;
        top: 50%;
        right: 0;
        width: 72px;
        margin-top: -13px;
    }

    .table_layout_wrap .w22_5 {
        width: auto;
        position: relative;
        margin-right: 14px
    }

    .table_layout_wrap .w22_5:after {
        content: '';
        width: 1px;
        display: inline-block;
        height: 13px;
        background-color: #cdcdcd;
        right: -11px;
        position: absolute;
        top: 5px
    }

    .table_layout_wrap .w22_5.cord:after {
        content: none
    }

    .table_layout_wrap .w22_5:last-of-type:after {
        content: none
    }

    .table_layout_wrap .cord {
        width: 100%;
        color: #1b1b1b
    }

    .table_layout_wrap.big .table_tbody ul li {
        flex-direction: column;
        align-items: flex-start;
    }

    .table_layout_wrap.big .table_tbody ul li .years,
    .table_layout_wrap.big .table_tbody ul li .writer,
    .table_layout_wrap.big .table_tbody ul li .date {
        position: relative;
        padding-left: 10px;
        margin-left: 0;
    }

    .table_layout_wrap.big .table_tbody ul li .years:after,
    .table_layout_wrap.big .table_tbody ul li .writer:after,
    .table_layout_wrap.big .table_tbody ul li .date:after {
        content: '';
        width: 3px;
        height: 3px;
        background: #666;
        position: absolute;
        top: 9px;
        left: 0;
        border-radius: 100%;
    }

    /* before → after 변경 */
    .table_layout_wrap .table_tbody.row_form {
        margin-bottom: -1px;
    }

    .table_layout_wrap .table_tbody.row_form>ul {
        display: flex;
        flex-wrap: wrap;
    }

    .table_layout_wrap .table_tbody.row_form>ul>li.row_title {
        display: block;
        width: 100%;
        border-right: 0;
        text-align: center;
        padding: 12px 0;
        font-weight: 700;
        color: #404040;
    }

    .table_layout_wrap .table_tbody.row_form>ul>li {
        width: 33.33333%;
        display: block;
    }

    .table_layout_wrap .table_tbody.row_form>ul>li>ul>li {
        padding: 12px 0
    }

    .table_layout_wrap .table_tbody.row_form>ul>li>ul>li>em {
        display: inline-block;
        color: #404040;
        font-weight: 600
    }

    /* 2025.05.26 수정 */
    .table_layout_wrap.faq .table_tbody ul li.answer_wrap .title {
        margin-bottom: 0;
    }

    .table_layout_wrap .table_tbody ul li .title a {
        width: calc(100% - 10px);
        /* 내부 여백 고려 */
        max-width: 70%;
        /* 모바일에서 제목 영역 최대 너비 제한 */
        white-space: nowrap;
        /* 줄바꿈 방지 */
        overflow: hidden;
        /* 넘치는 부분 숨김 */
        text-overflow: ellipsis;
        /* 말줄임표 표시 */
        display: inline-block;
        /* 인라인 블록으로 설정하여 너비 속성 적용 */
    }

    .notice_b {
        background-color: #184670;
    }

    .notice_b,
    .notice_b .title a {
        color: #fff !important;
    }

    .notice_b .new {
        color: #f9f657;
    }

    .table_layout_wrap .table_tbody ul li.notice_b:hover:after,
    .table_layout_wrap .table_tbody ul li.notice_b.on:after {
        background-color: #184670;
        border: none;
    }

    /* before → after 변경 */
}

@media screen and (max-width: 640px) {
    .step_wrap .step {
        flex-wrap: wrap;
    }

    .step_wrap .step li {
        width: 49%;
    }

    .step_wrap .step li:after {
        width: 25px;
        height: 25px;
        background-size: 10px;
        margin-top: -13px;
        right: -12px;
    }

    .step_wrap .step li span {
        font-size: 13px;
    }

    .step_wrap .step li span em {
        font-size: 10px;
        padding: 2px;
    }

    .step_wrap .step li.on span em {
        font-size: 10px;
        padding: 2px;
        width: 50px;
        margin: 0 auto 5px;
    }

    /* 평가 일정 달력 */
    .schedule_table table td .schedule_table_inner {
        height: 86px;
    }

    .schedule_table table td .schedule_table_inner .schedule_select {
        font-size: 13px;
        padding: 3px 0
    }

    /*회원정보 수정*/
    .member_modify_wrap {
        margin: 20px 15px;
        max-width: none;
        width: auto;
        padding: 20px;
    }

    .modify_inner ul {
        border-bottom: 1px solid #e5e5e5;
    }

    .modify_inner ul li {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        border-bottom: 0;
        padding: 10px 0;
        gap: 5px;
    }

    .modify_inner ul li label {
        padding: 0;
        text-align: left;
    }

    .modify_inner ul li select {
        max-width: none;
    }

    /**/
    .etc_text_wrap {
        padding: 15px;
    }

    /* 팝업 */
    .popup_wrap .p_tit {
        font-size: 17px;
    }

    .popup_inner .search_wrap,
    .popup_inner .popup_cont_wrap {
        padding: 10px;
    }

    .main_tit_head h3 {
        font-size: 18px;
    }

    .main_schedule_list {
        flex-direction: column;
    }

    .main_schedule_list li {
        width: 100%
    }

    /* 2025.06.18 */
    .main_tit_head h3.ico_tit01 {
        padding-left: 30px;
    }

    .main_tit_head h3.ico_tit01:before {
        width: 24px;
        height: 33px;
    }

    .main_tit_head h3.ico_tit02 {
        padding-left: 33px;
    }

    .main_tit_head h3.ico_tit02:before {
        width: 26px;
        height: 26px;
    }

    .main_tit_head h3.ico_tit03 {
        padding-left: 33px;
    }

    .main_tit_head h3.ico_tit03:before {
        width: 26px;
        height: 26px;
    }

    .to-do_tap {
        margin-top: 15px;
    }

    .main_schedule_list02 li {
        flex-direction: column;
        align-items: flex-start;
    }

    .main_schedule_list02 li em {
        padding-left: 0;
    }
}

@media screen and (max-width: 560px) {
    .dashboard_cont_wrap {
        gap: 10px;
    }

    .main_schedule_list li .schedule_wrap {
        flex-direction: column;
        gap: 0;
        align-items: flex-start;
    }

    .main_schedule_list li .schedule_wrap span {
        font-size: 12px;
        padding: 3px 13px;
        margin-bottom: 10px;
    }

    .main_list_wrap .dashboard_list li:hover {
        cursor: none;
    }

    .main_list_wrap .dashboard_list li:hover:before {
        content: none
    }

    .main_list_wrap .dashboard_list li:hover a:before {
        content: '';
    }

    .main_list_wrap .dashboard_list li.new_notice:hover a:before {
        content: none;
    }

    .dashboard_bottun_wrap ul li a strong {
        font-size: 16px;
    }

    /* paging */
    .paging_wrap .namber a {
        display: none;
    }

    .paging_wrap .namber a:last-child {
        display: inline-block;
        position: relative;
        margin-left: 15px;
    }

    .paging_wrap .namber a:last-child:before {
        content: '/';
        position: absolute;
        top: 0;
        left: -11px;
    }
}


/* 대시보드 좁은 모바일 대응 (418px 이하) */
@media screen and (max-width: 418px) {

    /* 나의 할 일 헤더: 그리드로 제목 좌측, 배지 우측 세로 배치 */
    .dashboard_todo .main_tit_head {
        display: grid;
        grid-template-columns: 1fr auto;
        grid-template-rows: auto auto;
        gap: 4px 8px;
        align-items: center;
    }

    .dashboard_todo .main_tit_head h3 {
        grid-row: 1 / 3;
        grid-column: 1;
        white-space: nowrap;
        font-size: 15px;
        align-self: center;
    }

    .dashboard_todo .main_tit_head h3.ico_tit01 {
        padding-left: 26px;
    }

    .dashboard_todo .main_tit_head h3.ico_tit01:before {
        width: 20px;
        height: 28px;
    }

    /* 역할 배지 - 우측 1행 */
    .dashboard_todo .main_tit_head .role-badge {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        font-size: 10px;
        padding: 2px 8px;
        margin-left: 0;
        margin-right: 0;
        white-space: nowrap;
    }

    /* 전체보기 링크 - 우측 2행 */
    .dashboard_todo .main_tit_head .todo-total-link {
        grid-column: 2;
        grid-row: 2;
        justify-self: end;
        font-size: 10px;
        padding: 2px 8px;
        white-space: nowrap;
    }

    /* 전체보기 링크 축소 */
    .dashboard_todo .main_tit_head .todo-total-link {
        font-size: 10px;
        padding: 2px 8px;
        white-space: nowrap;
        flex-shrink: 0;
    }

    /* 카드 배지 줄바꿈 방지 */
    .card-badges-row {
        flex-wrap: nowrap;
        gap: 3px;
        overflow: hidden;
    }

    .card-badges-row .stage-badge,
    .card-badges-row .status-badge,
    .card-badges-row .d-day-badge,
    .card-badges-row .expired-warning {
        font-size: 10px !important;
        padding: 2px 6px !important;
        white-space: nowrap;
        flex-shrink: 0;
    }

    /* 카드 제목 폰트 */
    .todo-card .card-title {
        font-size: 13px;
    }

    /* 카드 날짜 폰트 */
    .todo-card .card-date {
        font-size: 11px;
    }

    /* 컬럼 헤더 */
    .column-header h4 {
        font-size: 13px;
    }
}

@media screen and (max-width: 500px) {

    /* 버튼 */
    .flex_right {
        flex-direction: column;
    }
}

@media screen and (max-width: 480px) {

    .table_layout_wrap .years,
    .table_layout_wrap .writer,
    .table_layout_wrap .date {
        font-size: 14px;
    }

    .table_layout_wrap .table_tbody ul li {
        padding: 12px 0px;
    }

    .table_layout_wrap .state {
        margin-bottom: 7px;
        position: relative;
        top: auto;
        left: auto;
        order: 1;
    }

    .br_none {
        display: none
    }

    .dashboard_bottun_wrap ul {
        gap: 10px;
    }

    .dashboard_bottun_wrap ul li a {
        padding: 15px 80px 15px 15px;
    }

    .dashboard_bottun_wrap ul li a:after {
        width: 50px;
        height: 40px;
        right: 15px;
    }

    .dashboard_bottun_wrap ul li a strong {
        font-size: 16px;
        padding-right: 0;
    }

    /* 2025.06.18 */
    .to-do_tap a {
        padding: 7px 13px;
        font-size: 14px;
    }
}

@media screen and (max-width: 388px) {
    .dashboard_cont_list .to-do_tap a {
        padding: 5px 10px;
    }

    .dashboard_cont_list .to-do_tap em {
        float: right;
        margin-left: 2px;
    }
}

/* 경영평가 담당자 기타 업무 - 컴팩트 인라인 */
.admin-quicklinks-compact {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    padding: 10px 14px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 1px solid #e9ecef;
}

.admin-quicklinks-compact .quicklinks-label {
    font-size: 12px;
    font-weight: 600;
    color: #6c757d;
    margin-right: 4px;
}

.quicklink-chip {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.2s ease;
}

.quicklink-chip:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}

.quicklink-chip.quicklink-blue {
    background: #e7f5ff;
    color: #1971c2;
    border: 1px solid #a5d8ff;
}

.quicklink-chip.quicklink-blue:hover {
    background: #d0ebff;
    color: #1864ab;
}

.quicklink-chip.quicklink-green {
    background: #ebfbee;
    color: #2f9e44;
    border: 1px solid #b2f2bb;
}

.quicklink-chip.quicklink-green:hover {
    background: #d3f9d8;
    color: #2b8a3e;
}

.quicklink-chip.quicklink-orange {
    background: #fff4e6;
    color: #e8590c;
    border: 1px solid #ffd8a8;
}

.quicklink-chip.quicklink-orange:hover {
    background: #ffe8cc;
    color: #d9480f;
}

/* 공지 및 안내 섹션 - 한 줄 인라인 */
.notice-section {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    padding: 10px 14px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 1px solid #e9ecef;
}

.notice-label {
    font-size: 12px;
    font-weight: 600;
    color: #6c757d;
    margin-right: 4px;
}

.notice-chip {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
    text-decoration: none;
    background: #e7f5ff;
    color: #1971c2;
    border: 1px solid #a5d8ff;
    cursor: pointer;
    transition: all 0.2s ease;
}

.notice-chip:hover {
    background: #d0ebff;
    transform: translateY(-1px);
}

/* 액션 링크 칩 (클릭하여 이동 가능한 항목) */
.notice-chip.notice-action {
    background: #ebfbee;
    color: #2b8a3e;
    border-color: #b2f2bb;
}

.notice-chip.notice-action::after {
    content: ' ↗';
    font-size: 11px;
}

.notice-chip.notice-action:hover {
    background: #d3f9d8;
    color: #2b8a3e;
}

/* 경영평가 담당자 고정 퀵링크 (기존 - 레거시) */
.admin-quicklinks {
    margin-top: 20px;
    padding: 15px;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 12px;
    border: 1px solid #dee2e6;
}

.admin-quicklinks .quicklinks-header {
    margin-bottom: 12px;
}

.admin-quicklinks .quicklinks-header h4 {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: #495057;
}

.admin-quicklinks .quicklinks-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.quicklink-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: 8px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.2s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.quicklink-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.quicklink-btn .quicklink-icon {
    font-size: 16px;
}

.quicklink-btn .quicklink-text {
    white-space: nowrap;
}

/* 색상 변형 */
.quicklink-btn.quicklink-blue {
    background: linear-gradient(135deg, #4dabf7 0%, #339af0 100%);
    color: #fff;
}

.quicklink-btn.quicklink-blue:hover {
    background: linear-gradient(135deg, #339af0 0%, #228be6 100%);
    color: #fff;
}

.quicklink-btn.quicklink-green {
    background: linear-gradient(135deg, #69db7c 0%, #51cf66 100%);
    color: #fff;
}

.quicklink-btn.quicklink-green:hover {
    background: linear-gradient(135deg, #51cf66 0%, #40c057 100%);
    color: #fff;
}

.quicklink-btn.quicklink-orange {
    background: linear-gradient(135deg, #ffa94d 0%, #ff922b 100%);
    color: #fff;
}

.quicklink-btn.quicklink-orange:hover {
    background: linear-gradient(135deg, #ff922b 0%, #fd7e14 100%);
    color: #fff;
}

/* 모바일 반응형 */
@media screen and (max-width: 767px) {
    .admin-quicklinks .quicklinks-buttons {
        flex-direction: column;
    }

    .quicklink-btn {
        justify-content: center;
    }

    /* 카드 배지 모바일 대응 */
    .card-badges-row {
        gap: 4px;
    }
}

/* ============================================
   카카오 알림톡 관리 페이지 스타일
   ============================================ */

/* ★ KPI 카드 - 관리자 정석형 디자인 */
.kpi-card {
    border: none;
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    position: relative;
}

.kpi-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
}

.kpi-card .card-body {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
}

.kpi-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    flex-shrink: 0;
}

.kpi-content {
    flex: 1;
    min-width: 0;
}

.kpi-value {
    font-size: 1.8rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.kpi-label {
    font-size: 0.82rem;
    font-weight: 600;
    margin-top: 2px;
}

.kpi-desc {
    font-size: 0.7rem;
    margin-top: 1px;
    opacity: 0.6;
}

/* KPI 카드 - 오늘 발송 (블루) */
.kpi-today {
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    border-left: 4px solid #3b82f6;
}

.kpi-today .kpi-icon {
    background: rgba(59, 130, 246, 0.15);
    color: #2563eb;
}

.kpi-today .kpi-value {
    color: #1e40af;
}

.kpi-today .kpi-label {
    color: #3b82f6;
}

.kpi-today .kpi-desc {
    color: #64748b;
}

/* KPI 카드 - 성공률 (그린) */
.kpi-success-rate {
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    border-left: 4px solid #22c55e;
}

.kpi-success-rate .kpi-icon {
    background: rgba(34, 197, 94, 0.15);
    color: #16a34a;
}

.kpi-success-rate .kpi-value {
    color: #166534;
}

.kpi-success-rate .kpi-label {
    color: #22c55e;
}

.kpi-success-rate .kpi-desc {
    color: #64748b;
}

/* KPI 카드 - 실패 건수 (레드 - 진하게) */
.kpi-fail {
    background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%);
    border-left: 4px solid #ef4444;
}

.kpi-fail .kpi-icon {
    background: rgba(239, 68, 68, 0.18);
    color: #dc2626;
}

.kpi-fail .kpi-value {
    color: #991b1b;
}

.kpi-fail .kpi-label {
    color: #ef4444;
}

.kpi-fail .kpi-desc {
    color: #64748b;
}

/* KPI 카드 - 이번달 누적 (앰버) */
.kpi-month {
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
    border-left: 4px solid #f59e0b;
}

.kpi-month .kpi-icon {
    background: rgba(245, 158, 11, 0.15);
    color: #d97706;
}

.kpi-month .kpi-value {
    color: #92400e;
}

.kpi-month .kpi-label {
    color: #f59e0b;
}

.kpi-month .kpi-desc {
    color: #64748b;
}

/* 태스크 리스트 */

.task-group {
    border-bottom: none;
    margin-bottom: 2px;
}

.task-group:last-child {
    margin-bottom: 0;
}

.task-group-header {
    padding: 10px 16px;
    font-size: 0.82rem;
    font-weight: 700;
    color: #2d3748;
    letter-spacing: 0.3px;
    background: linear-gradient(135deg, #e8edf5, #eef1f8);
    border-left: 4px solid #4a6cf7;
    border-top: 1px solid #cbd5e0;
    border-bottom: 1px solid #cbd5e0;
    margin-top: 4px;
    position: sticky;
    top: 0;
    z-index: 1;
}

.task-group:first-child .task-group-header {
    border-top: none;
    margin-top: 0;
}

.task-item {
    padding: 9px 16px 9px 24px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: background-color 0.15s;
    border-left: 3px solid transparent;
    border-bottom: 1px solid #f0f4f8;
}

.task-item:hover {
    background-color: #edf2f7;
}

.task-item.active {
    background-color: #ebf8ff;
    border-left-color: #4a6cf7;
    font-weight: 600;
}

.task-item-name {
    font-size: 0.85rem;
}

/* 알림톡 미리보기 스타일 → kakao-alimtalk.css로 통합 */

/* 검색 영역 */
.filter-section .form-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: #4a5568;
    margin-bottom: 4px;
}

/* 이력 테이블 실패 행 하이라이트 */
.table-danger-subtle {
    background-color: rgba(254, 215, 215, 0.3) !important;
}

.table-warning-subtle {
    background-color: rgba(254, 243, 199, 0.3) !important;
}

/* 카드 헤더 */
.alimtalk_cont .custom-card .card-header {
    background: #f8fafc;
    font-weight: 600;
    font-size: 0.9rem;
    padding: 10px 16px;
}

/* 검색 카드 */
.alimtalk_cont .search-card .card-body {
    padding: 16px;
}

/* Clusterize 스크롤 영역 높이 - JS 자동 높이 조정 활성화 (알림톡 관리 전용) */
.alimtalk_cont .clusterize-scroll {
    max-height: none;
}

/* 반응형 */
@media screen and (max-width: 991px) {
    .alimtalk-preview-box {
        max-width: 100%;
    }
}

/* ==========================================
   개인정보동의 & 문자 인증 페이지 - 모바일 반응형
   ========================================== */
@media screen and (max-width: 480px) {

    /* 개인정보동의 체크박스 영역 */
    .personal_wrap>ul>li>p {
        padding: 8px;
    }

    .personal_wrap>ul>li>p label {
        font-size: 13px;
        line-height: 1.4;
    }

    /* 약관 행: 체크박스+라벨 / 열기 버튼 */
    .personal_wrap>ul>li>.personal_title {
        padding: 8px;
        gap: 4px;
    }

    .personal_wrap>ul>li>.personal_title>div {
        flex: 1;
        min-width: 0;
    }

    .personal_wrap>ul>li>.personal_title>div label {
        font-size: 13px;
        line-height: 1.4;
        word-break: keep-all;
    }

    .personal_wrap>ul>li>.personal_title a {
        flex-shrink: 0;
    }

    /* 문자 인증 영역 */
    .text_authentication {
        padding: 20px 14px;
    }

    .text_authentication p {
        font-size: 13px;
        line-height: 1.5;
        word-break: keep-all;
    }

    /* 인증 입력 영역: 세로 배치 */
    .text_authentication .flex_col {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        gap: 8px;
    }

    .text_authentication .flex_col .form-label {
        margin-bottom: 0;
        font-size: 13px;
        white-space: nowrap;
    }

    .text_authentication .flex_col input[type="text"] {
        width: 100%;
        min-width: 0;
    }

    .text_authentication .flex_col .s_btn_basic {
        width: 100%;
        text-align: center;
        padding: 10px;
        font-size: 14px;
        white-space: nowrap;
    }

    /* 인증번호 확인/취소 버튼 */
    .text_authentication_wrap {
        flex-direction: row;
    }

    .text_authentication_wrap .s_btn_basic {
        flex: 1;
        padding: 10px;
    }
}