.jconfirm .jconfirm-box {
    max-width: 370px;
}

/* 파일 업로드 진행률 표시 */
.file-progress-bar {
    width: 100%;
    height: 8px;
    background-color: #e0e0e0;
    border-radius: 4px;
    overflow: hidden;
    margin-top: 5px;
}
.file-progress-bar .progress-fill {
    height: 100%;
    background-color: #4CAF50;
    width: 0;
    transition: width 0.3s ease;
}
.file-progress-text {
    font-size: 12px;
    color: #666;
    margin-left: 10px;
}

/* 파일 다운로드 링크 스타일 */
a.file-download-link,
a.file-download-link:link,
a.file-download-link:visited {
    display: inline-flex;
    align-items: center;
    padding: 8px 14px;
    margin: 4px 0;
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 4px;
    color: #495057;
    text-decoration: none;
    font-size: 14px;
    transition: all 0.2s ease;
    cursor: pointer;
}
a.file-download-link:hover,
a.file-download-link:active {
    background-color: #e9ecef;
    border-color: #adb5bd;
    color: #212529;
    text-decoration: none;
}
a.file-download-link::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-right: 8px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23495057' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}
a.file-download-link:hover::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23212529' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
}

/* 목록 첨부파일 아이콘 */
.file-icon {
    display: inline-block;
    width: 20px;
    height: 20px;
    vertical-align: middle;
    background-image: url("./user/img/ic_file.png");
    background-size: contain;
    background-repeat: no-repeat;
}

/* 데이터 없음 메시지 */
.no-data {
    padding: 20px 0;
    text-align: center;
    color: #888;
    font-size: 14px;
}

/* 레이아웃 시프트 방지 */
header.wrap_100per {
    height: 100px;
}
div.wrap_1200 {
    height: 100px;
}
div.wrap_1200 ul.nav {
    height: 100px;
    overflow: visible;
}
section.wrap_main_section {
    min-height: 300px;
}

/* 공지사항 리스트 초기 높이 (AJAX 로드 전 레이아웃 예약) */
div.board_main ul#summary_tbody {
    min-height: 180px;
}

/* 네비게이션 메뉴 깜빡임 방지 */
ul#top_menu {
    opacity: 0;
    transition: opacity 0.15s ease-in;
}
ul#top_menu.menu-loaded {
    opacity: 1;
}

/* 메인 비주얼 버튼 영역 fade-in */
section.wrap_main_visual ul.main_visual {
    animation: fadeIn 0.3s ease-in forwards;
}
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* tui-grid */
/* 그리드 색상 custom */
.tui-grid-table { color: black; }
.tui-grid-cell-editable {cursor:pointer; background-color:#fffdeb !important;}
.tui-grid-cell-editable:hover {background-color:#fff5a5 !important;}
.tui-grid-cell-editable:focus {background-color:#fff5a5 !important;}
.tui-grid-cell-editable.tui-grid-cell-disabled {background-color:#fff !important; cursor:default;}
/*.tui-grid-cell-editable.tui-grid-cell-disabled:hover {background-color:#e5f6ff !important;}*/
.tui-grid-row-hover>.tui-grid-cell-disabled{background-color:#cee2c1 !important;}
.grid-link:hover {background-color:#bceaff !important;}
.grid-link:focus {background-color:#bceaff !important;}

.tui-grid-container p, .tui-grid-container input, .tui-grid-container textarea { font-size: 16px !important; }

.tui-grid-cell-content input[type='text'] { height: 50px !important; line-height: 50px !important; }

/* 셀 클릭 시 빨간 포커스 테두리 제거 */
.tui-grid-layer-focus-border { display: none !important; }

/* 헤더 클릭 시 파란 열 선택 영역 제거 */
.tui-grid-layer-selection { display: none !important; }

/* 셀 텍스트 드래그 선택 허용 */
.tui-grid-cell-content {
    -webkit-user-select: text !important;
       -moz-user-select: text !important;
        -ms-user-select: text !important;
            user-select: text !important;
}

.grid-legend-editable { display: inline-block; vertical-align: middle; width: 50px; height: 24px; background-color: #fffdeb !important; border: 1px solid #dedede; }

/* datepicker */
.ui-datepicker-trigger {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1;
    display: block;
    width: 40px;
}

.ui-datepicker td span, .ui-datepicker td a { text-align: center; }
.ui-state-default:not(.ui-state-active):not(.ui-state-highlight), .ui-widget-content .ui-state-default:not(.ui-state-active):not(.ui-state-highlight) { border: none; background: none; }
.ui-state-hover, .ui-widget-content .ui-state-hover { border: none; background: #c5c5c5 !important; font-weight: bold; }
.ui-state-active, .ui-widget-content .ui-state-active, .ui-state-highlight, .ui-widget-content .ui-state-highlight { border: none; }
.ui-datepicker select { text-align: left; padding: 0 10px; border: 1px solid #c5c5c5;}
.ui-datepicker select.ui-datepicker-year { width: 90px;}
.ui-datepicker select.ui-datepicker-month { width: 70px;}
/* datepicker 폭 확보 + 팝업 z-index 우선 */
.ui-datepicker { z-index: 200 !important; width: 320px !important; }

    /* radio */
.radio-container span {position:relative; top:1px;}
.radio-container {display:inline-block; position:relative; margin-right:10px; top:0; white-space:nowrap;}
.radio-container input[type="radio"] {position:absolute;width:18px;height:18px;padding:0;border-radius:20px;-webkit-appearance:none;-moz-appearance:none;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}
.radio-container input[type="radio"] + label {display:inline-block;position:relative ;min-width:10px!important; background:transparent; cursor:pointer; -webkit-user-select:none;-moz-user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}
.radio-container input[type="radio"] + label:before {content:'';display:inline-block; width:24px; height:24px; border:1px solid #999; border-radius:50px; background:#fff; text-align:center; vertical-align:middle; line-height:18px;}
.radio-container input[type="radio"] + label:active:before, .radio-container input[type="radio"]:checked + label:active::before {-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.5),inset 0px 1px 3px rgba(0,0,0,0.0); box-shadow:0px 1px 2px rgba(0,0,0,0.0),inset 0px 1px 3px rgba(0,0,0,0.0);}
.radio-container input[type="radio"]:checked + label:before {content:'\2713';font-weight:bold;border-color:#0069ec;background:#fff;color:#0069ec;text-shadow:1px 1px white;}
.radio-container input[type="radio"]:disabled + label:before {border-color:#c4c4c4;background-color:#e6e6e6;/*-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.5),inset 0px -15px; box-shadow:0px 1px 2px rgba(0,0,0,0.5),inset 0px -15px;*/}
.radio-container input[type="radio"]:focus + label:before {outline: 1px solid #000000;}
.radio-container input[type="radio"] + label.dot {display:inline-block;width:20px; height:20px; border-radius:50%; background-color:#ddd;}
.radio-container input[type="radio"] + label span {margin-left:5px;}
.radio-container .dot {display:inline-block;width:12px; height:12px; margin-right:5px; border-radius:50%; background:#ddd; vertical-align:middle;}
.radio-container .dot.green {background:#53d368;}
.radio-container .dot.blue {background:#549fff;}
.radio-container .dot.orange {background:#ffa811;}
.radio-container .dot.pink {background:#f86d6d;}
.radio-container .dot.gray {background:#c5c5c5;}


/* file */
.file_txt {cursor: pointer; display: inline-block; color: #007bff;}
.file_txt:hover {font-weight: 500 !important; letter-spacing: -0.4px; text-decoration: underline; }
.file_remove_btn {display: inline-block; margin: 0 20px; background: none;}
.origin_file_area { display: flex; align-items: center; margin-bottom: 10px; }

div.sub_complete p.notice { font-size: 30px; color: red; text-align: center; }

.bbs_content { white-space: pre-line; min-height: 300px; }

span.notice_txt { color: red; vertical-align: middle; margin-left: 10px; }

/* ===== 시험제도 소개 (intro/system.jsp - test 탭) ===== */

/* 시험제도 소개 탭 컨텐츠 너비 제한 (system.jsp 전용) */
.sub_cont.test_intro { max-width: 760px; margin-left: auto; margin-right: auto; }

/* 타이틀 + 부제 */
.test_intro_title { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.test_intro_subtitle { font-size: 18px; font-weight: 500; color: #1a1a1a; vertical-align: baseline; }

/* 시험 품목 트리 이미지 */
.test_tree_image { text-align: center; }
.test_tree_image img { max-width: 100%; height: auto; display: inline-block; }

/* 인정서 */
.cert_wrap { justify-content: center; align-items: center; gap: 40px; flex-wrap: wrap; }
.cert_image img { max-width: 260px; display: block; }
.cert_info { padding-left: 0; }
.cert_info ul.dot li { line-height: 2; font-size: 16px; }

/* 4가지 가치 (화합/안심/참여/미래) */
.value_grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px 50px;
  padding: 0 20px;
}
.value_item {
  display: flex;
  align-items: flex-start;
  gap: 20px;
}
.value_label {
  flex-shrink: 0;
  font-size: 18px;
  font-weight: 700;
  color: #3F68AA;
  min-width: 40px;
}
.value_desc {
  font-size: 15px;
  line-height: 1.7;
  color: #414141;
  margin: 0;
}

#gdMttrCn .notice-line {
  padding-left: 1em;
  text-indent: -1em;
  word-break: keep-all;
  overflow-wrap: break-word;
  white-space: normal;
}

.valign-bottom {
  vertical-align: bottom;
  font-weight: normal;
}

/* layout_menu_name4가 display:none일 때 name3가 마지막이 되도록 색상 적용 */
div.sub_section div.sub_title ul li.breadcrumb-last {
  color: #3F68AA;
}

/* 검사신청 페이지 결제/취소 안내 박스: 자식 요소까지 강제로 빨간 글씨 */
.notice-warning,
.notice-warning h5,
.notice-warning ul,
.notice-warning li {
  color: #E73A3A !important;
}

/* 시험 접수 캘린더 - 접수 가능 건수 초과 날짜 회색 표시 */
.ui-datepicker td.date-blocked a {
  background: #e5e5e5 !important;
  color: #999 !important;
  cursor: not-allowed;
}
.ui-datepicker td.date-blocked a:hover {
  background: #d5d5d5 !important;
}

/* 시험 접수 캘린더 - 날짜별 접수 건수 (n/2) 배지 */
.ui-datepicker .date-count { display: block; font-size: 10px; font-weight: 600; line-height: 0;}
.ui-datepicker .date-count.cnt-0 { color: #2e8b2e; }  /* 초록 */
.ui-datepicker .date-count.cnt-1 { color: #1565c0; }  /* 파랑 */
.ui-datepicker .date-count.cnt-2 { color: #c62828; }  /* 빨강 */

/* 접수 초과 날짜 커스텀 툴팁 */
#date-blocked-tooltip {
  display: none;
  position: absolute;
  transform: translateX(-50%);
  padding: 5px 10px;
  background: rgba(33, 33, 33, 0.92);
  color: #fff;
  font-size: 12px;
  white-space: nowrap;
  border-radius: 4px;
  pointer-events: none;
  z-index: 10000;
}
#date-blocked-tooltip::after {
  content: "";
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  border-width: 6px 6px 0 6px;
  border-style: solid;
  border-color: rgba(33, 33, 33, 0.92) transparent transparent transparent;
}


/* inspType 아이콘: 원본 비율 유지하고 높이만 160px 고정 */
ul.btn_subgo li a.bg_insp1,
ul.btn_subgo li a.bg_insp2,
ul.btn_subgo li a.bg_insp3,
ul.btn_subgo li a.bg_insp1:hover,
ul.btn_subgo li a.bg_insp2:hover,
ul.btn_subgo li a.bg_insp3:hover {
  background-size: auto 160px;
}

.sm[type="checkbox"] {width: 20px; height: 20px; visibility: visible !important;}
.sm[type="checkbox"]:checked {background-size: 20px 20px;}

/* === 시험/검사/교정신청 폼 가이드 === */
/* 1단계 미선택 시 안내 박스 (divDigPlaceholder) */
.divDigPlaceholder .placeholder-guide {
    text-align: center;
    padding: 60px 20px;
    color: #666;
    background: #fafafa;
    border: 1px dashed #ddd;
    border-radius: 6px;
}
.divDigPlaceholder .placeholder-arrow {
    display: block;
    font-size: 36px;
    color: #4A90E2;
    margin-bottom: 12px;
    animation: dig-bounce 1.4s ease-in-out infinite;
}
.divDigPlaceholder .placeholder-main {
    font-size: 18px;
    font-weight: bold;
    margin: 8px 0;
    color: #333;
}
.divDigPlaceholder .placeholder-sub {
    font-size: 14px;
    color: #888;
    margin-top: 4px;
}
@keyframes dig-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

/* 1단계 미선택 또는 1단계 선택 후 2단계 미선택 상태 강조 */
#selectCombo.pulse-empty,
#selectCombo2.pulse-empty {
    animation: dig-pulse 1.6s ease-in-out infinite;
    border-radius: 4px;
}
@keyframes dig-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(74, 144, 226, 0.5); }
    50% { box-shadow: 0 0 0 8px rgba(74, 144, 226, 0); }
}