/* =========================================
   SIMS - Custom Styles (egovframe.css 보완)
   ========================================= */

/* =============================================================================
   SIMS Compact Density (Phase A → B → C)
   A: 표 행·버튼 패딩 축소 | B: medium 컨트롤 높이 4.0rem | C: 모바일 터치 4.4rem
   ============================================================================= */
:root {
    --sims-table-row-height: 4.4rem;
    --sims-control-height: var(--krds-size-height-6);
    --sims-touch-target-min: 4.4rem;
    --sims-list-sort-row-height: var(--krds-size-height-5, 3.2rem);
    --sims-advanced-expand-row-height: var(--krds-size-height-5, 3.2rem);
    /* 검색존 compact — 사업관리 기준 일괄 */
    --sims-search-zone-padding-y: var(--krds-padding-6, 1.2rem);
    --sims-search-zone-padding-x: var(--krds-padding-8, 1.6rem);
    --sims-search-zone-row-gap: var(--krds-gap-3, 0.8rem);
    --sims-search-zone-field-gap: var(--krds-gap-4, 1.2rem);
    /* 검색존 ↔ 목록 상단 — 샘플·MD 목록상단↔표 공통 (gap-5) */
    --sims-search-to-list-gap: var(--krds-gap-5, 1.6rem);
    /* 검색존 ↔ MD 목록 블록(사업·위험성) — 한 단계 더 여유 */
    --sims-search-zone-to-list-gap: var(--krds-gap-8, 3.2rem);
}

/* SIMS 브랜드 로고 — ico_logo_krds.png / high_contrast (633×200, 가로형+브랜드명) */
#krds-header .header-container .logo {
    width: 15.2rem;
    height: var(--krds-size-height-7);
}

#krds-header .header-container .logo a {
    background-image: url(../img/component/icon/ico_logo_krds.png);
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
}

[data-krds-mode=high-contrast] #krds-header .header-container .logo a,
[data-krds-mode=theme] #krds-header .header-container .logo a {
    background-image: url(../img/component/icon/ico_logo_krds_high_contrast.png);
}

#krds-footer .f-logo {
    width: 15.2rem;
    height: var(--krds-size-height-7);
    background-image: url(../img/component/icon/ico_logo_krds.png);
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
}

[data-krds-mode=high-contrast] #krds-footer .f-logo,
[data-krds-mode=theme] #krds-footer .f-logo {
    background-image: url(../img/component/icon/ico_logo_krds_high_contrast.png);
}

.krds-identifier .logo {
    width: 15.2rem;
    height: var(--krds-size-height-7);
    background-image: url(../img/component/icon/ico_logo_krds.png);
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
}

[data-krds-mode=high-contrast] .krds-identifier .logo,
[data-krds-mode=theme] .krds-identifier .logo {
    background-image: url(../img/component/icon/ico_logo_krds_high_contrast.png);
}

@media (max-width: 767px) {
    #krds-header .header-container .logo {
        width: 10.1rem;
        height: 3.2rem;
    }

    #krds-footer .f-logo {
        width: 10.1rem;
        height: 3.2rem;
    }
}

/* 헤더 로고 (텍스트 폴백) */
.sims-logo-text {
    font-size: 1.75rem;
    font-weight: 800;
    color: #0D2B4E;
    letter-spacing: -0.04em;
    line-height: 1;
}

/* 페이지 타이틀 */
.page-tit-area {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-bottom: 1.4rem;
}

.main-page-tit-area {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.8rem;
}
.main-page-yr-area {
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

.flex-space-between {
    display: flex;
    justify-content: space-between;
}

.ft-color-gray {
    color: #9e9e9e;
}
.ft-color-blue {
    color: #256ef4;
}
.main-span-badge {
    border-width: 0.1rem;
    border-style: solid;
    border-radius: 1.3rem;
    background: #fff;
    border-color: #d1d5db; /* 더 밝은 회색 테두리 */
    display: inline-flex; /* 내부 요소 정렬 */
    align-items: center;
    height: 3rem; /* 높이 고정 */
    font-size: 1.3rem;
    font-weight: 500;
    color: #333;
    padding: 0 1rem;
    margin-right: 0.8rem; /* 배지 간 간격 */
}

.clickable-card:hover {
    background-color: #f0f4ff;
    border-color: #9ab4ea;
}

.circle-badge {
    border-radius: 50%; /* 완전한 원 */
    background: #256ef4;
    color: #fff;
    font-size: 1.1rem;
    font-weight: bold;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 1.8rem; /* 고정 너비 */
    height: 1.8rem; /* 고정 높이 */
    margin-right: 0.6rem; /* 텍스트와의 간격 */
    padding: 0; /* 패딩 제거 */
}

/* 페이지 제목 + 하위 섹션(사업 목록·설명) */
.page-tit-area--stack {
    align-items: flex-start;
    margin-bottom: var(--krds-gap-3, 0.8rem);
}

.page-tit-block {
    flex: 1 1 auto;
    min-width: 0;
}

.page-sub-block {
    margin-top: var(--krds-gap-3, 0.8rem);
}

.page-sub-tit {
    margin: 0;
    font-size: var(--krds-pc-font-size-heading-xsmall, 1.9rem);
    font-weight: 700;
    color: var(--krds-light-color-text-basic, #1e2124);
}

.page-sub-desc {
    margin: var(--krds-gap-2, 0.4rem) 0 0;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
}

/* 위험성 평가 — 타이틀 옆 KRDS 단계 표시기 (클릭 시 Tier 이동) */
.page-tit-area--with-step .page-tit-extra--step {
    flex: 0 1 auto;
    margin-left: auto;
    min-width: 0;
    max-width: 100%;
}

.page-tit-area--with-step .krds-step-wrap.sims-risk-step-wrap {
    margin-bottom: 0;
}

.sims-risk-step-wrap > li[role="button"] {
    cursor: pointer;
}

.sims-risk-step-wrap > li[role="button"]:focus-visible > span {
    outline: 2px solid var(--krds-light-color-element-primary, #2563eb);
    outline-offset: 2px;
    border-radius: var(--krds-radius-small, 0.4rem);
}

/* 위험성 평가 — 단계별 서브 타이틀 (Tier 구역 상단 · 스크롤 연동) */
.risk-tier-sub-tit {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--krds-gap-2, 0.4rem);
    margin: 0 0 var(--krds-gap-3, 0.8rem);
    font-size: var(--krds-pc-font-size-heading-xsmall, 1.9rem);
    font-weight: var(--krds-font-weight-bold, 700);
    color: var(--krds-light-color-text-basic, #1e2124);
}

.risk-tier-sub-tit__step {
    font-size: var(--krds-pc-font-size-body-medium, 1.7rem);
    font-weight: var(--krds-font-weight-regular, 400);
    color: var(--krds-light-color-text-primary, #2563eb);
}

.risk-tier-sub-tit__sep {
    color: var(--krds-light-color-text-disabled, #8a949e);
    font-weight: var(--krds-font-weight-regular, 400);
}

.risk-tier-sub-tit__label {
    font-weight: var(--krds-font-weight-bold, 700);
}

.page-tit {
    font-size: 2rem;
    font-weight: 700;
    color: var(--krds-color-neutral-90, #1a1a1a);
}

/* KRDS heading-large 기준 */
/* 도움말 버튼 위치 보정 — 제목 베이스라인에 맞춤 */
.page-help {
    display: flex;
    align-items: center;
}

/* 게시판 검색 */
.board-search-area {
    margin-bottom: 2.4rem;
    background: var(--krds-color-neutral-5, #f5f6f8);
    padding: 1.6rem 2rem;
    border-radius: 0.4rem;
}

.board-search-area .input-group {
    display: flex;
    gap: 0.8rem;
    align-items: center;
    flex-wrap: wrap;
}

.search-list-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--krds-number-7, 1.2rem);
    flex-wrap: wrap;
    gap: var(--krds-number-5, 0.8rem);
}

.search-list-top .total-count {
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-color-neutral-60, #666);
}

.search-list-top .total-count strong {
    color: var(--krds-color-primary-50, #0055cc);
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
}

/* 목록상단 정렬·표시 — KRDS sch-sort (output.css) 우선, SIMS는 높이·정렬만 보정 */
.search-list-top .sch-sort .sort-label {
    display: inline-flex;
    align-items: center;
    min-height: var(--sims-list-sort-row-height, var(--krds-size-height-5, 3.2rem));
    margin: 0;
    line-height: 1.2;
}

.search-list-top .sch-sort-pageunit,
.search-list-top .sch-sort-order {
    align-items: center !important;
}

/* 정렬 세그먼트 — compact (테이블 행 4rem과 분리) */
.search-list-top .sch-sort .w-sort-btn.sims-sort-btn-group {
    display: inline-flex;
    align-items: center;
    gap: var(--krds-gap-2, 0.4rem);
    flex-wrap: wrap;
}

.search-list-top .sch-sort .w-sort-btn .sims-sort-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--sims-list-sort-row-height, var(--krds-size-height-5, 3.2rem));
    height: auto;
    padding: 0 var(--krds-padding-3, 0.8rem);
    font-size: var(--krds-pc-font-size-label-small, 1.5rem);
    line-height: 1.2;
    box-sizing: border-box;
    cursor: pointer;
    /* KRDS output.css — border·배경·색상 */
}

.search-list-top .sch-sort .w-sort-btn .sims-sort-btn.active {
    /* KRDS: 채움 강조 대신 밑줄 (global_04) */
    text-decoration: underline;
    text-underline-offset: var(--krds-font-underline-offset, 0.2rem);
    font-weight: var(--krds-font-weight-bold, 700);
}

.krds-table-wrap {
    border-top: 0.2rem solid var(--krds-color-neutral-90, #1a1a1a);
}

.krds-table-wrap .tbl td,
.krds-table-wrap .tbl th,
.krds-table-wrap .tbl .tbl-link {
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
}

.txt-left {
    text-align: left !important;
}

/* 로그인 */
.login-option-area {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 1.6rem 0;
}

.login-option-area .find-links {
    display: flex;
    gap: 1.2rem;
}

.login-option-area .find-links a {
    font-size: 1.4rem;
    color: var(--krds-color-neutral-60, #666);
    text-decoration: none;
}

.login-option-area .find-links a:hover {
    text-decoration: underline;
}

.login-info-box {
    margin-top: 2.4rem;
    padding: 1.6rem;
    background: var(--krds-color-neutral-5, #f8f8f8);
    border-radius: 0.4rem;
    border: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
}

.login-info-box p {
    font-size: 1.3rem;
    color: var(--krds-color-neutral-60, #666);
    line-height: 1.6;
}

/* 메인 대시보드 */
.main-section-title {
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 1.6rem;
    color: var(--krds-color-neutral-90, #1a1a1a);
}

.quick-menu-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.6rem;
    margin-bottom: 3.2rem;
    list-style: none;
    padding: 0;
}

.quick-menu-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.8rem;
    padding: 2.4rem 1.6rem;
    border: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
    border-radius: 0.8rem;
    text-decoration: none;
    color: var(--krds-color-neutral-80, #333);
    background: #fff;
    transition: all 0.2s;
}

.quick-menu-item:hover {
    border-color: var(--krds-color-primary-50, #246BEB);
    background: var(--krds-color-primary-5, #EBF2FF);
    color: var(--krds-color-primary-50, #246BEB);
}

.quick-menu-item .svg-icon {
    width: 3.2rem;
    height: 3.2rem;
}

.quick-menu-item .menu-label {
    font-size: 1.5rem;
    font-weight: 700;
}

    .dashboard-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
    }
    .dashboard-card-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1rem;
    }

    .dashboard-card {
        border: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
        border-radius: 0.8rem;
        overflow: hidden;
        background: #fff;
    }
    .dashboard-card .b-dashed{
        border: 0.1rem dashed var(--krds-color-neutral-20, #e0e0e0)!important;
        background: var(--krds-color-neutral-3, #FAFAFA);
    }

    .dashboard-card .card-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 1.2rem 1.6rem;
        border-bottom: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
        background: var(--krds-color-neutral-3, #FAFAFA);
    }

    .dashboard-card .inner-card-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 1.2rem 1.6rem;
    }

    .dashboard-card .card-head .card-title {
        font-size: 1.6rem;
        font-weight: 700;
        margin: 0;
    }
    .dashboard-card .inner-card-head .inner-card-title {
        font-size: 1.4rem;
        font-weight: 600;
        margin: 0;
    }

    .dashboard-card .card-body {
        padding: 1.6rem;
    }

    .notice-list {
        list-style: none;
        padding: 0;
        margin: 0;
        display: flex;
        flex-direction: column;
        gap: 0.8rem;
    }

    .notice-item {
        display: flex;
        align-items: center;
        gap: 0.6rem;
    }

    .notice-link {
        flex: 1;
        font-size: 1.4rem;
        color: var(--krds-color-neutral-80, #333);
        text-decoration: none;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .notice-link:hover {
        text-decoration: underline;
        color: var(--krds-color-primary-50, #246BEB);
    }

    .notice-date {
        font-size: 1.2rem;
        color: var(--krds-color-neutral-50, #888);
        flex-shrink: 0;
    }

.status-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.status-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 1.4rem;
}

.status-running {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--krds-color-success-50, #1D6A35);
    font-weight: 700;
}

.my-info-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.2rem;
    text-align: center;
}

.my-avatar {
    width: 6rem;
    height: 6rem;
    border-radius: 50%;
    border: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--krds-color-neutral-5, #FAFAFA);
}

.my-avatar .svg-icon {
    width: 3rem;
    height: 3rem;
}

.my-info-dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.4rem 1.2rem;
    text-align: left;
    width: 100%;
}

.my-info-dl dt {
    font-size: 1.3rem;
    color: var(--krds-color-neutral-60, #777);
}

.my-info-dl dd {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--krds-color-neutral-80, #333);
    margin: 0;
}

/* 사이드바 + 본문 레이아웃 */
.sims-body {
    display: flex;
    align-items: flex-start;
    gap: 2.4rem;
}

.sims-sidebar {
    width: 22rem;
    flex-shrink: 0;
    position: sticky;
    top: 2rem;
    align-self: flex-start;
}

.sims-main {
    flex: 1;
    min-width: 0;
}

/* 사이드 메뉴 아이템 행 (링크 + 도움말 버튼) */
.lnb-item-row {
    display: flex;
    align-items: center;
}

.lnb-item-row .lnb-btn {
    flex: 1;
}

.btn-menu-help {
    flex-shrink: 0;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.4rem;
    color: var(--krds-color-neutral-40, #aaa);
    display: flex;
    align-items: center;
    border-radius: 0.4rem;
    transition: color 0.15s;
}

.btn-menu-help:hover,
.btn-menu-help[aria-expanded="true"] {
    color: var(--krds-color-primary-50, #246BEB);
}

.menu-help-panel {
    margin: 0.2rem 1.2rem 0.8rem 1.6rem;
    padding: 0.8rem 1rem;
    background: var(--krds-color-neutral-3, #FAFAFA);
    border-left: 0.3rem solid var(--krds-color-primary-50, #246BEB);
    border-radius: 0 0.4rem 0.4rem 0;
    font-size: 1.3rem;
    color: var(--krds-color-neutral-70, #555);
    line-height: 1.6;
}

.menu-help-panel p {
    margin: 0;
}

/* 공통 검색 필터 스타일 삭제 (정식 .sch-filter-box로 대체됨) */

/* 등록/수정 폼 fieldset 표준화 */
.fieldset.input-form {
    border-top: 0.2rem solid var(--krds-light-color-border-primary, var(--krds-color-light-primary-50));
    border-left: none;
    border-right: none;
    border-bottom: none;
    border-radius: 0;
    padding: var(--krds-number-9, 2rem) 0 !important;
}

/* PC 환경 수평 정렬 — fieldset 직계 form-group만 (sims-form-grid 내부 제외) */
@media (min-width: 768px) {
    .fieldset.input-form > .form-group {
        display: grid;
        grid-template-columns: 20rem 1fr;
        align-items: start;
        gap: var(--krds-gap-5, 1.6rem);
    }

    .fieldset.input-form > .form-group .form-tit {
        width: auto;
        padding-top: 0.8rem; /* 라벨 수직 정렬 보정 */
    }

    .fieldset.input-form > .form-group .form-conts {
        width: 100%;
    }
}

@media (max-width: 768px) {
    .quick-menu-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .dashboard-grid {
        grid-template-columns: 1fr;
    }
}

/* 파일 목록 상단 여백 표준화 */
.krds-file-list {
    margin-top: var(--krds-number-5, 0.8rem) !important;
}

/* 목록 화면의 버튼 영역 상단 여백 */
.search-top-box .page-btn-wrap {
    margin-top: var(--krds-number-8, 1.6rem) !important;
}

/* 등록/수정 폼의 버튼 영역 상단 여백 */
.conts-wrap .page-btn-wrap {
    margin-top: var(--krds-number-10, 2.4rem) !important;
}

/* =========================================
   컴포넌트 크기 및 글꼴 크기 표준화 (FTC 주요사건 게시판 벤치마킹 - 토큰 적용)
   ========================================= */

/* 1. 검색 필터 버튼 내부 정렬 */
.search-top-box .sch-filter-box .btn-search {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--krds-gap-3);
    padding: 0 var(--krds-padding-8);
}

.search-top-box .sch-filter-box .btn-search .svg-icon {
    width: var(--krds-padding-8);
    height: var(--krds-padding-8);
    margin: 0;
}

/* 2. 데이터 테이블 폰트 및 셀 높이 표준화 (17px로 통일, 줄간격 23px) */
.krds-table-wrap .tbl th,
.krds-table-wrap .tbl td,
.krds-table-wrap .tbl .tbl-link {
    font-size: var(--krds-pc-font-size-body-medium) !important; /* 1.7rem */
}

/* 테이블 헤더(th) — Phase A: KRDS data 표에 가깝게 compact */
.krds-table-wrap .tbl th {
    padding: var(--krds-padding-3) var(--krds-padding-5) !important;
    line-height: 1.5 !important;
    font-weight: 700 !important;
    background-color: var(--krds-color-neutral-5, #f5f6f8) !important;
    color: var(--krds-color-neutral-90, #1a1a1a) !important;
    border-bottom: 0.1rem solid var(--krds-color-neutral-30, #ccc) !important;
}

/* 테이블 본문(td) — Phase A */
.krds-table-wrap .tbl td {
    padding: var(--krds-padding-5) var(--krds-padding-5) !important;
    line-height: 1.5 !important;
    vertical-align: middle !important;
    border-bottom: 0.1rem solid var(--krds-color-neutral-10, #e9ecef) !important;
}

/* 목록 표시 셀렉트 — KRDS sorting select 높이(컨트롤 4rem 아님) */
.search-list-top .sch-sort-pageunit .krds-form-select-sort {
    height: var(--sims-list-sort-row-height, var(--krds-size-height-5, 3.2rem)) !important;
    min-height: var(--sims-list-sort-row-height, var(--krds-size-height-5, 3.2rem)) !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    box-sizing: border-box;
    font-size: var(--krds-pc-font-size-label-small, 1.5rem) !important;
    line-height: 1.2 !important;
}

.search-list-top .sch-sort-order .krds-form-select-sort.m-sort-btn {
    height: var(--sims-list-sort-row-height, var(--krds-size-height-5, 3.2rem)) !important;
    min-height: var(--sims-list-sort-row-height, var(--krds-size-height-5, 3.2rem)) !important;
    box-sizing: border-box;
}

/* 정렬기준 — KRDS global_04 (PC 세그먼트 · 모바일 셀렉트) */
.search-list-top .sch-sort-order {
    display: inline-flex !important;
    align-items: center !important;
    gap: var(--krds-gap-3, 0.8rem) !important;
}

.search-list-top .sch-sort-pageunit {
    display: inline-flex !important;
    align-items: center !important;
    gap: var(--krds-gap-3, 0.8rem) !important;
}

.sch-sort .sort-label {
    font-size: var(--krds-pc-font-size-label-small, 1.5rem) !important;
    color: var(--krds-color-neutral-80, #333) !important;
}

/* 페이징 컴포넌트 여백 및 크기 개선 */
.krds-pagination {
    margin-top: var(--krds-number-12) !important; /* 3.2rem (32px) */
    margin-bottom: var(--krds-number-12) !important;
}

.krds-pagination .page-links a,
.krds-pagination .page-links strong {
    font-size: 1.6rem !important; /* 16px */
    width: 3.6rem !important;
    height: 3.6rem !important;
    line-height: 3.6rem !important;
    display: inline-block !important;
    text-align: center !important;
    vertical-align: middle !important;
}

.krds-pagination .page-navi {
    font-size: 1.6rem !important;
    padding: 0 var(--krds-padding-5) !important; /* 1.2rem */
    height: 3.6rem !important;
    line-height: 3.6rem !important;
    vertical-align: middle !important;
}

/* =========================================
   헤더 KRDS 가이드 링크
   ========================================= */
.krds-guide-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1.2rem;
    margin-left: 1.2rem;
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--krds-color-primary-50, #0055cc);
    background: rgba(0, 85, 204, 0.06);
    border: 1px solid rgba(0, 85, 204, 0.25);
    border-radius: 999px;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s, border-color 0.15s;
    vertical-align: middle;
}

.krds-guide-link:hover {
    background: rgba(0, 85, 204, 0.12);
    border-color: var(--krds-color-primary-50, #0055cc);
    color: var(--krds-color-primary-50, #0055cc);
}

/* =========================================
   텍스트에어리어 — KRDS 표준 마크업 지원
   (.textarea-wrap > textarea + .textarea-bottom > .textarea-count)
   ========================================= */
.textarea-wrap {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.textarea-wrap .krds-input {
    resize: vertical;
    min-height: 15rem;
    line-height: var(--krds-number-10, 1.6);
}

.textarea-bottom {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.4rem;
}

.textarea-count {
    font-size: var(--krds-pc-font-size-label-small, 1.3rem);
    color: var(--krds-color-neutral-50, #777);
    margin: 0;
}

.textarea-count .count-now {
    color: var(--krds-color-primary-base, #0055cc);
    font-weight: 600;
}

.textarea-count .text-num {
    color: var(--krds-color-neutral-40, #999);
}

/* textarea에 아이콘을 배치하는 경우 */
.textarea-input-wrap {
    position: relative;
}

.textarea-input-wrap .krds-textarea {
    padding-left: 36px;
}

/* 아이콘 절대 위치 설정 */
.textarea-input-wrap .krds-icon {
    position: absolute;
    top: 14px;
    left: 12px;
    pointer-events: none;
    color: #666;
}

/* =========================================
   KRDS 표준안에 따른 버튼 및 입력 폼 세밀 교정
   ========================================= */

/* 1. 버튼 좌우 패딩 — Phase A: KRDS 기본(medium = padding-6)
 * icon 제외
 */
.krds-btn.small:not(.icon) {
    padding: 0 var(--krds-padding-6) !important;
}

.krds-btn.medium:not(.icon) {
    padding: 0 var(--krds-padding-6) !important;
}

.krds-btn.large:not(.icon) {
    padding: 0 var(--krds-padding-10) !important; /* 20px -> 32px */
}

.krds-btn.xlarge:not(.icon) {
    padding: 0 var(--krds-padding-12) !important; /* 24px -> 40px */
}

/* Phase B: medium 입력·셀렉트·버튼 높이 4.0rem (클래스 medium 유지) */
.krds-input.medium,
.krds-form-select.medium {
    height: var(--sims-control-height);
    min-height: var(--sims-control-height);
    box-sizing: border-box;
}

.krds-btn.medium:not(.icon) {
    height: var(--sims-control-height);
    min-height: var(--sims-control-height);
    box-sizing: border-box;
}

/* Phase C: 모바일 터치 타깃 최소 44px */
@media (max-width: 767px) {
    .krds-btn.medium:not(.icon),
    .search-top-box .sch-filter-box .btn-search,
    .filter-chip .krds-btn.icon.large,
    .page-btn-wrap .krds-btn.medium {
        min-height: var(--sims-touch-target-min);
        min-width: var(--sims-touch-target-min);
    }

    .filter-chip .krds-btn.icon.large {
        width: auto;
        height: auto;
        padding: 0.6rem;
    }
}

/* Disabled Button용 Tooltip */
/* =========================================
   SIMS - Custom Tooltip (Disabled 버튼용)
   ========================================= */
.tooltip-wrap {
    display: inline-block;
    position: relative;
    cursor: not-allowed;
}

.tooltip-wrap::after {
    content: attr(data-tooltip);
    position: absolute;
    top: calc(100% + 0.8rem);
    left: 50%;
    transform: translateX(-50%);
    padding: 0.6rem 1rem;
    background-color: rgba(33, 33, 33, 0.9);
    color: #fff;
    font-size: 1.2rem;
    border-radius: 0.4rem;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease;
    z-index: 100;
}

.tooltip-wrap[data-tooltip]:hover::after {
    opacity: 1;
    visibility: visible;
}

/* 2. 입력 폼 레이아웃 여백 및 라벨 스타일 최적화 */
.fieldset.input-form {
    padding: var(--krds-number-8, 1.6rem) 0 !important; /* 20px -> 16px 상하 여백 최적화 */
    max-width: 100rem !important;
    margin: 0 auto !important;
}

.fieldset.input-form .form-group {
    margin-bottom: var(--krds-number-5, 1.0rem) !important; /* 폼 그룹 간의 미세한 간격 확보 및 압축 */
}

/*.page-btn-wrap {
    max-width: 100rem !important;
    margin: var(--krds-number-8, 2.4rem) auto 0 auto !important;
}*/

@media (min-width: 768px) {
    .fieldset.input-form > .form-group {
        display: grid;
        grid-template-columns: 16rem 1fr !important;
        gap: var(--krds-gap-4, 1.2rem) !important;
        align-items: start !important;
    }

    .fieldset.input-form > .form-group .form-tit {
        padding-top: 0.8rem !important;
    }
}

/* 3. 폼 라벨(타이틀) 텍스트 스타일 보정 */
.fieldset.input-form .form-group .form-tit label {
    font-size: var(--krds-pc-font-size-body-small, 1.5rem) !important; /* 15px 규격 명시 */
    font-weight: 700 !important; /* 굵게 표시하여 가독성 강화 */
    color: var(--krds-color-neutral-90, #1a1a1a) !important; /* 흐릿한 회색에서 뚜렷한 흑색으로 변경 */
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

/* 필수 표시 (*) 스타일 보정 */
.fieldset.input-form .form-group .form-tit label .required,
.required {
    color: var(--krds-color-danger-50, #dc2626) !important; /* 빨간색 필수 표시 강조 */
    font-weight: 700;
}

/* 4. 파일 업로드의 네이티브 input 숨김 보정 */
.krds-file-upload [type=file] {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* 5. 폼 내의 체크박스/라디오 가로 배치 (직계 form-group) */
.fieldset.input-form > .form-group .form-conts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--krds-gap-6, 1.6rem);
    align-items: flex-start;
}

/* 6. 라디오 버튼 가로 배치 보정 (직계 form-group) */
.fieldset.input-form > .form-group .form-conts .krds-form-check {
    display: inline-flex !important;
    width: auto !important;
    margin-right: 2.4rem !important;
    align-items: center;
}

/* =========================================
   7. 검색 필터 (KRDS 제안 A + 모바일 모달 D)
   ========================================= */

/* PC: 공통필터 행 — KRDS 목록 탐색(global_04) 검색+고급검색 인라인 */
.search-top-box .sch-filter-box .sch-form-wrap.flex-inline.sch-filter-primary-layout {
    display: grid;
    grid-template-columns: auto minmax(12rem, 1fr) auto;
    align-items: center;
    column-gap: var(--sims-search-zone-field-gap, var(--krds-gap-4, 1.2rem));
    row-gap: var(--sims-search-zone-row-gap, var(--krds-gap-3, 0.8rem));
    margin-bottom: 0;
}

.search-top-box .sch-filter-box .sch-form-wrap.flex-inline.sch-filter-primary-layout > select {
    grid-column: 1;
    grid-row: 1;
}

.search-top-box .sch-filter-box .sch-form-wrap.flex-inline.sch-filter-primary-layout > .input-group {
    grid-column: 2;
    grid-row: 1;
    align-items: center;
    min-width: 0;
}

.search-top-box .sch-filter-box .sch-form-wrap.flex-inline {
    align-items: center;
}

.search-top-box .sch-filter-box .sch-form-wrap.flex-inline .input-group {
    align-items: center;
}

/* 고급검색 인라인 — disclosure 래퍼는 레이아웃만 위임(display:contents) */
.search-top-box .sch-filter-box .sch-filter-advanced--inline {
    display: contents;
    width: auto;
    margin-top: 0;
}

.search-top-box .sch-filter-box .sch-filter-advanced--inline .btn-conts-expand {
    grid-column: 3;
    grid-row: 1;
    align-self: center;
    min-height: var(--sims-control-height);
    white-space: nowrap;
}

.search-top-box .sch-filter-box .sch-filter-advanced--inline .expand-wrap {
    grid-column: 1 / -1;
    grid-row: 2;
}

/* 사업관리·위험성 — 1행 그리드 + 고급검색 토글 */
.search-top-box .biz-sch-filter .biz-filter-layout,
.search-top-box .risk-sch-filter .risk-filter-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: var(--sims-search-zone-field-gap, var(--krds-gap-4, 1.2rem));
    row-gap: var(--sims-search-zone-row-gap, var(--krds-gap-3, 0.8rem));
}

/* 검색존 회색 박스 — KRDS padding-10 대신 compact (전 화면 통일) */
.search-top-box > .sch-filter-box {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: var(--sims-search-zone-padding-y) var(--sims-search-zone-padding-x) !important;
    border-radius: var(--krds-radius-large2, 1rem);
}

.search-top-box .sch-filter-box .filter-form:not(.sch-filter-advanced-fields) {
    gap: var(--sims-search-zone-field-gap, var(--krds-gap-4, 1.2rem));
}

/* MD 목록 — 검색존 ↔ 마스터 패널 */
.search-top-box.biz-list-search,
.search-top-box.risk-list-search {
    margin-bottom: var(--sims-search-zone-to-list-gap, var(--krds-gap-8, 3.2rem)) !important;
}

.search-top-box.biz-list-search + .sims-md-layout,
.search-top-box.risk-list-search + .sims-md-layout {
    margin-top: 0 !important;
}

.search-top-box .biz-sch-filter .biz-filter-layout > .biz-filter-primary,
.search-top-box .risk-sch-filter .risk-filter-layout > .risk-filter-primary {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
}

.search-top-box .biz-sch-filter .biz-filter-layout .sch-filter-advanced--inline .btn-conts-expand,
.search-top-box .risk-sch-filter .risk-filter-layout .sch-filter-advanced--inline .btn-conts-expand {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    min-height: var(--sims-control-height);
    white-space: nowrap;
}

.search-top-box .biz-sch-filter .biz-filter-layout .sch-filter-advanced--inline .expand-wrap,
.search-top-box .risk-sch-filter .risk-filter-layout .sch-filter-advanced--inline .expand-wrap {
    grid-column: 1 / -1;
    grid-row: 2;
}

/* 공통 searchFilter — 1행 필터(고급 제외) 행 높이 */
.search-top-box .sch-filter-box .filter-form:not(.sch-filter-advanced-fields) > div {
    min-height: var(--sims-control-height);
}

.search-top-box .sch-filter-box .filter-form:not(.sch-filter-advanced-fields) .krds-form-select.medium,
.search-top-box .sch-filter-box .filter-form:not(.sch-filter-advanced-fields) .krds-input.medium {
    min-height: var(--sims-control-height);
}

.search-top-box .sch-filter-box .sch-filter-advanced:not(.sch-filter-advanced--inline) {
    margin-top: var(--krds-gap-3, 0.8rem);
}

/* 고급검색 펼침 — 외곽 sch-filter-box 회색 유지, 내부는 상단 구분선만 (flat) */
.search-top-box .sch-filter-box .sch-filter-advanced--inline .expand-wrap .expand-in.sch-filter-expand-card {
    background-color: transparent;
    border-radius: 0;
    padding: var(--krds-padding-5, 1rem) 0 0;
    margin-top: 0;
    border-top: var(--search-box-filter-chip-width-border, 0.1rem) solid var(--search-box-filter-chip-color-border, var(--krds-light-color-divider-secondary-light, #e6e8ea));
}

.search-top-box .sch-filter-box .sch-filter-advanced-fields {
    margin: 0;
    gap: var(--krds-gap-5, 1.6rem);
}

/* 고급 필드 행 — compact (1행 컨트롤 4rem과 분리) */
.search-top-box .sch-filter-box .sch-filter-advanced-fields > div {
    min-height: var(--sims-advanced-expand-row-height, var(--krds-size-height-5, 3.2rem));
}

.search-top-box .sch-filter-box .sch-filter-advanced-fields .krds-form-select.medium,
.search-top-box .sch-filter-box .sch-filter-advanced-fields .krds-input.medium {
    min-height: var(--sims-advanced-expand-row-height, var(--krds-size-height-5, 3.2rem));
}

/* 샘플 고급검색 — 삭제포함 체크박스 */
.search-top-box .sch-filter-box .sch-filter-advanced-fields > .sample-filter-check {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    min-height: var(--sims-advanced-expand-row-height, var(--krds-size-height-5, 3.2rem));
}

.search-top-box .sch-filter-box .sch-filter-advanced-fields > .sample-filter-check .krds-form-check {
    display: inline-flex;
    align-items: center;
    min-height: var(--sims-advanced-expand-row-height, var(--krds-size-height-5, 3.2rem));
    margin: 0;
}

.search-top-box .sch-filter-box .sch-filter-advanced-fields > .sample-filter-check .krds-form-check.medium > input[type=checkbox] ~ label {
    display: inline-flex;
    align-items: center;
    margin: 0;
    font-weight: var(--krds-font-weight-bold, 700);
}

/* 펼침 내부 적용조건 — 구분선 ② + 칩 (배경 없음) */
.search-top-box .filter-chip.filter-chip--in-expand {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--krds-gap-4, 1.2rem);
    margin: var(--krds-gap-4, 1.2rem) 0 0;
    padding: var(--krds-gap-3, 0.8rem) 0 0;
    background: transparent;
    border-radius: 0;
    border-top: var(--search-box-filter-chip-width-border, 0.1rem) solid var(--search-box-filter-chip-color-border, var(--krds-light-color-divider-secondary-light, #e6e8ea));
}

.search-top-box .filter-chip.filter-chip--in-expand dt {
    height: auto;
    min-height: 0;
}

/* 고급검색 토글 — KRDS ico-sch-plus (⊕) */
.search-top-box .sch-filter-advanced .btn-conts-expand.sch-filter-advanced-toggle::before {
    -webkit-mask-image: url(../img/component/icon/ico_sch_plus.svg);
    mask-image: url(../img/component/icon/ico_sch_plus.svg);
    transform: rotate(0deg);
}

.search-top-box .sch-filter-advanced.active .btn-conts-expand.sch-filter-advanced-toggle::before {
    transform: rotate(45deg);
}

/* 검색존 ↔ 목록 상단 — 샘플·MD 공통 (gap-5 ≈ 1.6rem) */
.search-top-box > .search-list-top,
.search-top-box .sch-filter-box + .search-list-top {
    margin-top: var(--sims-search-to-list-gap, var(--krds-gap-5, 1.6rem)) !important;
    margin-bottom: var(--sims-search-to-list-gap, var(--krds-gap-5, 1.6rem)) !important;
}

/* MD 마스터 패널 — 목록 상단(건수·정렬) ↔ 테이블 */
.sims-md-master > .search-list-top {
    margin-top: 0;
    margin-bottom: var(--sims-search-to-list-gap, var(--krds-gap-5, 1.6rem));
}

/* 상세검색 초기화 버튼 (filter-form 4번째 열) — 고급존에서는 칩 행 ↻ 로 대체 */
.search-top-box .sch-filter-box .filter-form-action {
    display: flex;
    align-items: center;
    max-width: fit-content;
    margin-left: auto;
}

/* filter-chip 삭제 버튼 */
.sch-chip-remove {
    display: inline-flex !important;
    align-items: center;
    gap: 0.4rem;
}

.sch-chip-remove .svg-icon {
    width: 1.6rem;
    height: 1.6rem;
}

/* 모바일 모달 폼 */
#popFilterId .form-group {
    margin-bottom: var(--krds-gap-5, 0.8rem);
}

#popFilterId .form-tit label {
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    font-weight: 700;
}

.search-list-top .sch-page-info {
    margin-left: var(--krds-gap-4, 1.2rem);
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-color-neutral-60, #666);
}

.search-list-top .sch-sort-pageunit {
    display: inline-flex !important;
    align-items: center !important;
    gap: var(--krds-gap-3, 0.8rem) !important;
}

/* 레거시 — 적용 버튼 제거됨, 호환용 숨김 */
.search-list-top .btn-pageunit-apply {
    display: none !important;
}

/* 목록 하단 버튼: 좌(선택삭제) · 우(등록) 양쪽 정렬 */
.search-top-box > .page-btn-wrap.both {
    width: 100%;
    max-width: none !important;
    justify-content: space-between;
}

@media (max-width: 767px) {
    /* KRDS 기본: sch-filter-box 숨김 → 공통필터만 노출 */
    .search-top-box .sch-filter-box {
        display: block !important;
        padding: 0 !important;
        margin-top: 0 !important;
        background: transparent !important;
        border-radius: 0 !important;
    }

    .search-top-box .sch-filter-box .sch-filter-advanced,
    .search-top-box .sch-filter-box .filter-chip {
        display: none !important;
    }

    .search-list-top .sch-sort-pageunit {
        display: none !important;
    }
}

/* ============================================================
   8. 싱글페이지 마스터-디테일 레이아웃 (masterDetailLayout)
   - Zone B: 마스터 목록 / Zone C·D: 상세·하위목록
   - 재해관리·현장점검·계약관리 등 MD3 화면 공통
   ============================================================ */

.md-wire-badge {
    font-size: var(--krds-pc-font-size-body-small, 1.3rem);
}

/* 공통 래퍼 */
.sims-md-layout {
    margin-top: var(--krds-gap-5, 1.6rem);
}

.sims-md-master,
.sims-md-detail {
    min-width: 0;
}

/* split variant: 좌(목록) · 우(상세) 2열 */
.sims-md-layout--split {
    display: grid;
    grid-template-columns: minmax(0, 42%) minmax(0, 58%);
    gap: var(--krds-gap-6, 2.4rem);
    align-items: start;
}

.sims-md-layout--split .md-master-table-wrap {
    max-height: 42rem;
    overflow-y: auto;
}

/* 상세 패널: 미선택 시 접힘 */
.sims-md-detail.is-collapsed .sims-md-detail-stack,
.sims-md-detail.is-collapsed .md-context-bar {
    display: none;
}

.sims-md-detail.is-collapsed .md-detail-placeholder {
    display: flex;
}

.sims-md-detail:not(.is-collapsed) .md-detail-placeholder {
    display: none;
}

.md-detail-placeholder {
    display: none;
    align-items: center;
    justify-content: center;
    min-height: 24rem;
    padding: var(--krds-gap-7, 3.2rem);
    background: var(--krds-light-color-surface-gray-subtle, #f4f5f6);
    border-radius: var(--krds-radius-xlarge2, 1.2rem);
    border: 1px dashed var(--krds-light-color-border-gray, #cdd1d5);
}

.md-detail-empty-text {
    margin: 0;
    text-align: center;
    color: var(--krds-light-color-text-subtle, #6d7882);
    font-size: var(--krds-pc-font-size-body-medium, 1.7rem);
}

/* 선택 컨텍스트 바 */
.md-context-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--krds-gap-4, 1.2rem);
    padding: var(--krds-gap-4, 1.2rem) var(--krds-gap-5, 1.6rem);
    margin-bottom: var(--krds-gap-5, 1.6rem);
    background: var(--krds-light-color-surface-primary-subtlest, #eef2ff);
    border-radius: var(--krds-radius-medium, 0.6rem);
    border-left: 4px solid var(--krds-light-color-element-primary, #2563eb);
}

.md-context-text {
    margin: 0;
    font-size: var(--krds-pc-font-size-body-medium, 1.7rem);
}

.md-context-label {
    margin-right: var(--krds-gap-2, 0.4rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.md-context-value.is-empty {
    font-weight: 400;
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.md-context-value:not(.is-empty) {
    font-weight: 700;
    color: var(--krds-light-color-text-bolder, #1e2124);
}

/* 섹션 헤더 */
.md-section-head {
    margin-bottom: var(--krds-gap-4, 1.2rem);
}

.md-section-head.bar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--krds-gap-3, 0.8rem);
}

/* 1행 2열: 좌(제목·설명) | 우(버튼) */
.md-section-head.bar.md-section-head--1x2 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: var(--krds-gap-4, 1.2rem) var(--krds-gap-6, 2.4rem);
}

.md-section-head--1x2 .md-section-head-text--inline {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: var(--krds-gap-2, 0.4rem) var(--krds-gap-4, 1.2rem);
    min-width: 0;
}

.md-section-head--1x2 .md-section-head-text--inline .md-section-desc {
    margin: 0;
    flex: 1 1 auto;
    min-width: 12rem;
}

.md-section-head--1x2 .md-section-actions.btn-wrap {
    display: flex !important;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end !important;
    justify-self: stretch;
    width: 100%;
    gap: var(--krds-gap-3, 0.8rem);
    margin-left: 0;
}

.md-section-tit {
    margin: 0;
    font-size: var(--krds-pc-font-size-heading-xsmall, 1.9rem);
    font-weight: 700;
}

.md-section-desc {
    margin: var(--krds-gap-2, 0.4rem) 0 0;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.md-section-actions.btn-wrap {
    flex-shrink: 0;
}

/* 마스터 목록 행 선택 */
.md-master-table .md-master-row {
    cursor: pointer;
}

.md-master-table .md-master-row:hover > td {
    background: var(--krds-light-color-surface-gray-subtle, #f4f5f6);
}

/* 신고 목록 행 클릭(조회 모달) — 유해위험요인 신고 관리 목록 공통 */
.sims-row-clickable {
    cursor: pointer;
}

.sims-row-clickable:hover > td {
    background: var(--krds-light-color-surface-gray-subtle, #f4f5f6);
}

/* 사업장 미지정(미매핑) 신고 행 강조 — 총괄 신고현황 목록 */
.sims-row-unmapped > td {
    background-color: var(--krds-light-color-surface-warning-subtlest, #fffbeb);
}

.sims-row-unmapped:hover > td {
    background-color: #fef3c7;
}

/* tr outline은 좌·하단 표 테두리와 겹침 → 셀 inset 링으로 통일 */
.md-master-table .md-master-row.is-selected > td,
.risk-assessment-table .md-assessment-row.is-selected > td {
    --sims-row-ring: var(--krds-light-color-element-primary, #2563eb);
    background-color: var(--krds-light-color-surface-primary-subtlest, #eef2ff);
    position: relative;
    z-index: 1;
    box-shadow: inset 0 2px 0 0 var(--sims-row-ring),
    inset 0 -2px 0 0 var(--sims-row-ring);
}

.md-master-table .md-master-row.is-selected > td:first-child,
.risk-assessment-table .md-assessment-row.is-selected > td:first-child {
    box-shadow: inset 2px 0 0 0 var(--sims-row-ring),
    inset 0 2px 0 0 var(--sims-row-ring),
    inset 0 -2px 0 0 var(--sims-row-ring);
}

.md-master-table .md-master-row.is-selected > td:last-child,
.risk-assessment-table .md-assessment-row.is-selected > td:last-child {
    box-shadow: inset -2px 0 0 0 var(--sims-row-ring),
    inset 0 2px 0 0 var(--sims-row-ring),
    inset 0 -2px 0 0 var(--sims-row-ring);
}

.md-master-table .md-master-row:focus,
.risk-assessment-table .md-assessment-row:focus,
.md-master-table .md-master-row:focus-visible,
.risk-assessment-table .md-assessment-row:focus-visible {
    /* KRDS *:focus 바깥 링 제거(마우스 클릭 시 이중 테두리) */
    outline: none;
    box-shadow: none;
}

/* 키보드 포커스 — 선택 전에만 셀 inset 표시 */
.md-master-table .md-master-row:focus-visible:not(.is-selected) > td,
.risk-assessment-table .md-assessment-row:focus-visible:not(.is-selected) > td {
    --sims-row-focus-ring: var(--krds-light-color-border-inverse, #1a1a1a);
    box-shadow: inset 0 0 0 2px var(--sims-row-focus-ring);
}

.md-master-table .md-master-row.is-selected .md-row-label {
    font-weight: 700;
    color: var(--krds-light-color-text-primary, #2563eb);
}

.md-master-btn-wrap {
    margin-top: var(--krds-gap-4, 1.2rem);
}

/* 표 하단 액션: 전체 너비 · 좌우 여백 최소 (선택삭제 | 다운로드·등록 등) */
.sims-md-layout .page-btn-wrap.md-table-actions {
    max-width: none !important;
    width: 100%;
    margin: var(--krds-gap-4, 1.2rem) 0 var(--krds-gap-4, 1.2rem) 0 !important;
    padding: 0;
    justify-content: space-between;
    align-items: center;
    gap: var(--krds-gap-4, 1.2rem);
}

.sims-md-layout .page-btn-wrap.md-table-actions .btn-wrap {
    display: flex;
    align-items: center;
    gap: var(--krds-gap-3, 0.8rem);
    width: auto;
    flex: 0 0 auto;
}

.sims-md-layout .page-btn-wrap.md-table-actions.both .btn-wrap:first-child {
    justify-content: flex-start;
}

.sims-md-layout .page-btn-wrap.md-table-actions.both .btn-wrap:last-child {
    justify-content: flex-end;
    margin-left: auto;
}

/* 우측 정렬만 필요한 표 액션 */
.sims-md-layout .page-btn-wrap.md-table-actions--end {
    justify-content: flex-end;
}

.sims-md-layout .page-btn-wrap.md-table-actions--end .btn-wrap {
    margin-left: 0;
}

/* 탭·상세 영역 테이블 블록: 좌우 여백 최소 */
.sims-md-detail .tab-conts .krds-table-wrap,
.sims-md-master .krds-table-wrap {
    margin-left: 0;
    margin-right: 0;
}

.conts-wrap .page-btn-wrap.md-table-actions {
    margin-top: var(--krds-gap-4, 1.2rem) !important;
}

@media (max-width: 767px) {
    .sims-md-layout .page-btn-wrap.md-table-actions {
        flex-wrap: wrap;
        padding: 0;
    }

    .sims-md-layout .page-btn-wrap.md-table-actions.both .btn-wrap:last-child {
        width: 100%;
        margin-left: 0;
        justify-content: flex-end;
    }
}

/* @deprecated: md-master-btn-wrap → md-table-actions 사용 */
.sims-md-master .md-master-btn-wrap.page-btn-wrap.both {
    max-width: none !important;
    width: 100%;
    margin: var(--krds-gap-4, 1.2rem) 0 0 0 !important;
    padding: 0;
    justify-content: space-between;
    align-items: center;
    gap: var(--krds-gap-4, 1.2rem);
}

.sims-md-master .md-master-btn-wrap.page-btn-wrap.both .btn-wrap {
    display: flex;
    align-items: center;
    gap: var(--krds-gap-3, 0.8rem);
    width: auto;
    flex: 0 0 auto;
}

.sims-md-master .md-master-btn-wrap.page-btn-wrap.both .btn-wrap:first-child {
    justify-content: flex-start;
}

.sims-md-master .md-master-btn-wrap.page-btn-wrap.both .btn-wrap:last-child {
    justify-content: flex-end;
    margin-left: auto;
}

@media (max-width: 767px) {
    .sims-md-master .md-master-btn-wrap.page-btn-wrap.both {
        position: static;
        flex-wrap: wrap;
        padding: 0;
    }

    .sims-md-master .md-master-btn-wrap.page-btn-wrap.both .btn-wrap:last-child {
        width: 100%;
        margin-left: 0;
        justify-content: flex-end;
    }
}

/* 상세 스택 */
.sims-md-detail-stack {
    display: flex;
    flex-direction: column;
    gap: var(--krds-gap-6, 2.4rem);
}

.sims-md-detail-section {
    padding-bottom: var(--krds-gap-5, 1.6rem);
    border-bottom: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
}

.sims-md-detail-section:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.md-detail-form .md-period-group:not(.md-period-inline) {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--krds-gap-3, 0.8rem);
}

.md-period-sep {
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.md-section-btn-wrap {
    margin-top: var(--krds-gap-4, 1.2rem);
}

/* 하위 섹션 disclosure */
.sims-md-sub-section .md-sub-disclosure .expand-in {
    padding-top: var(--krds-gap-4, 1.2rem);
}

.md-sub-btn-wrap {
    margin-top: var(--krds-gap-4, 1.2rem);
}

/* split: 태블릿 이하 1열 */
@media (max-width: 1023px) {
    .sims-md-layout--split {
        grid-template-columns: 1fr;
        gap: var(--krds-gap-5, 1.6rem);
    }

    .sims-md-layout--split .md-master-table-wrap {
        max-height: none;
    }

    .sims-md-layout--split .sims-md-detail.is-collapsed {
        display: none;
    }

    .md-context-clear.m-hide {
        display: inline-flex !important;
    }
}

@media (max-width: 767px) {
    .md-section-head.bar {
        flex-direction: column;
        align-items: stretch;
    }

    .md-section-head.bar.md-section-head--1x2 {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .md-section-head--1x2 .md-section-actions.btn-wrap {
        justify-self: stretch;
        justify-content: flex-end;
    }

    .md-section-actions.btn-wrap {
        justify-content: flex-end;
    }
}

/* ============================================================
   8-2. C안 stack variant (세로 + sticky + 탭) — MD3 권장
   ============================================================ */

.md-variant-badge {
    font-size: var(--krds-pc-font-size-body-small, 1.3rem);
}

.sims-md-layout--stack {
    display: flex;
    flex-direction: column;
    gap: var(--krds-gap-6, 2.4rem);
    width: 100%;
}

.sims-md-layout--stack .sims-md-master,
.sims-md-layout--stack .sims-md-detail {
    width: 100%;
}

/* stack: 미선택 시 상세 영역 전체 숨김 (placeholder 없음) */
.sims-md-layout--stack .sims-md-detail.is-collapsed {
    display: none;
}

/* stack A안: 목록 ↔ 상세 영역 구분 (구분선 + 상세 소제목) */
.sims-md-layout--stack .sims-md-detail:not(.is-collapsed) {
    border-top: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
    padding-top: var(--krds-gap-5, 1.6rem);
}

.md-detail-zone-head {
    margin-bottom: var(--krds-gap-4, 1.2rem);
}

.md-detail-zone-tit {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: var(--krds-gap-2, 0.4rem);
    margin: 0;
    font-size: var(--krds-pc-font-size-heading-xsmall, 1.9rem);
    font-weight: 700;
    color: var(--krds-light-color-text-basic, #1e2124);
    line-height: 1.4;
}

.md-detail-zone-sep {
    color: var(--krds-light-color-text-subtle, #6d7882);
    font-weight: 400;
}

.md-detail-zone-value {
    font-weight: 700;
    color: var(--krds-light-color-text-primary, #2563eb);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.md-detail-zone-value:empty {
    display: none;
}

.md-detail-zone-tit:not(:has(.md-detail-zone-value:not(:empty))) .md-detail-zone-sep {
    display: none;
}

.sims-md-detail > .md-back-to-list + .md-detail-zone-head {
    margin-top: var(--krds-gap-3, 0.8rem);
}

.sims-md-layout--stack .md-master-table-wrap {
    max-height: none;
}

/* sticky 바 */
.md-sticky-bar-wrap {
    position: sticky;
    top: 0;
    z-index: 30;
    margin-bottom: var(--krds-gap-4, 1.2rem);
}

.md-sticky-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: var(--krds-gap-4, 1.2rem);
    padding: var(--krds-gap-4, 1.2rem) var(--krds-gap-5, 1.6rem);
    background: var(--krds-light-color-surface-white, #fff);
    border: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
    border-left: 4px solid var(--krds-light-color-element-primary, #2563eb);
    border-radius: var(--krds-radius-medium, 0.6rem);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.md-sticky-leading {
    display: flex;
    align-items: center;
    gap: var(--krds-gap-3, 0.8rem);
    min-width: 0;
    flex: 1 1 auto;
}

.md-sticky-text {
    margin: 0;
    font-size: var(--krds-pc-font-size-body-medium, 1.7rem);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.md-sticky-value {
    font-weight: 700;
    color: var(--krds-light-color-text-primary, #2563eb);
}

.md-sticky-actions.btn-wrap {
    display: flex !important;
    flex: 0 0 auto;
    flex-shrink: 0;
    width: auto !important;
    justify-content: flex-end;
    align-items: center;
    gap: var(--krds-gap-3, 0.8rem);
}

.md-back-to-list {
    flex-shrink: 0;
}

/* 상세 탭 */
.sims-md-layout--stack .md-detail-tabs {
    gap: 0;
}

.sims-md-layout--stack .md-detail-tabs .tab-conts {
    margin-top: var(--krds-gap-5, 1.6rem);
}

.sims-md-layout--stack .md-detail-tabs .tab-conts.active {
    display: block;
    width: 100%;
}

/* 탭 패널 폼: 탭 전체 너비 사용 */
.md-tab-form-wrap {
    width: 100%;
    max-width: none !important;
    margin-bottom: 0;
}

.fieldset.input-form.md-detail-form {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.sims-md-layout--stack .md-detail-tabs .tab-conts-wrap,
.sims-md-layout--stack .md-detail-tabs .tab-conts {
    width: 100%;
    max-width: none;
}

.md-tab-panel-desc {
    margin: 0 0 var(--krds-gap-4, 1.2rem);
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
}

/* A안: 기본정보 탭 삭제|저장 — 상단(레거시) */
.md-detail-form-actions {
    margin-bottom: var(--krds-gap-4, 1.2rem);
}

/* A안: 기본정보 탭 삭제|저장 — 하단 (권장) */
.md-detail-form-actions--bottom {
    margin-top: var(--krds-gap-6, 2.4rem);
    margin-bottom: 0;
    justify-content: flex-end;
}

/* MD 레이아웃 내 폼 하단 — md-table-actions space-between 보다 우선 */
.sims-md-layout .page-btn-wrap.md-detail-form-actions--bottom {
    max-width: none !important;
    width: 100%;
    margin-top: var(--krds-gap-6, 2.4rem) !important;
    margin-bottom: 0 !important;
    justify-content: flex-end;
}

.sims-md-layout .page-btn-wrap.md-detail-form-actions--bottom .btn-wrap {
    margin-left: 0;
    justify-content: flex-end;
}

.md-detail-form-actions--bottom .btn-wrap {
    display: flex;
    gap: var(--krds-gap-3, 0.8rem);
    justify-content: flex-end;
}

.md-detail-form-actions .md-tab-panel-desc {
    margin: 0;
}

.md-detail-form-actions .md-section-actions.btn-wrap {
    display: flex !important;
    width: auto !important;
    flex-shrink: 0;
    justify-content: flex-end;
    gap: var(--krds-gap-3, 0.8rem);
}

.sims-md-detail > .md-back-to-list {
    margin-bottom: var(--krds-gap-3, 0.8rem);
}

@media (max-width: 767px) {
    .md-sticky-bar {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
    }

    .md-sticky-actions.btn-wrap {
        justify-content: flex-end;
        flex-shrink: 0;
    }

    .md-sticky-text {
        white-space: nowrap;
    }
}

/* ============================================================
   9. 반응형 폼 그리드 (sims-form-grid)
   - 기본(모바일·태블릿): 2열 (1×2)
   - sims-form-grid--biz: 사업 상세정보 4열 비율
     PC 1행 name(3)|dt(1) · 2행 place(2)|period(2)
   - sims-form-grid-row: 행 전체 너비
   ============================================================ */

.sims-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--krds-gap-5, 1.6rem) var(--krds-gap-6, 2.4rem);
    width: 100%;
}

/* 균등 4열 (옵션) */
@media (min-width: 1024px) {
    .sims-form-grid--pc4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* 유해위험요인 신고 폼(공개신고·조회·매핑 모달 공통): 모바일에서는 1열로 전환 */
@media (max-width: 767px) {
    .sims-form-grid.sims-form-grid--fld-dclr {
        grid-template-columns: 1fr;
    }
}

/* 사업 상세정보(탭): 4열 — 1행 name(3)|dt(1) · 2행 place(2)|period(2) — 모달 제외 */
@media (min-width: 1024px) {
    .md-tab-form-wrap .sims-form-grid.sims-form-grid--biz {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    .md-tab-form-wrap .sims-form-grid.sims-form-grid--biz > .fg-name {
        grid-column: 1 / span 3;
        grid-row: 1;
    }

    .md-tab-form-wrap .sims-form-grid.sims-form-grid--biz > .fg-dt {
        grid-column: 4 / span 1;
        grid-row: 1;
    }

    .md-tab-form-wrap .sims-form-grid.sims-form-grid--biz > .fg-place {
        grid-column: 1 / span 2;
        grid-row: 2;
    }

    .md-tab-form-wrap .sims-form-grid.sims-form-grid--biz > .fg-period {
        grid-column: 3 / span 2;
        grid-row: 2;
    }
}

/* 사업기간: 라벨 + 시작일~종료일 한 줄 — 아래 fg-period 블록으로 통합 */

.sims-form-grid--biz > .sims-form-grid-row:not(.fg-period) .form-conts {
    width: 100%;
}

/* 상세 탭 — 모바일·태블릿: 2열 + 긴 필드는 행 전체 (모달 제외) */
@media (max-width: 1023px) {
    .md-tab-form-wrap .sims-form-grid.sims-form-grid--biz > .fg-dt {
        grid-column: 1;
        grid-row: 1;
    }

    .md-tab-form-wrap .sims-form-grid.sims-form-grid--biz > .fg-place {
        grid-column: 2;
        grid-row: 1;
    }

    .md-tab-form-wrap .sims-form-grid.sims-form-grid--biz > .fg-name {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .md-tab-form-wrap .sims-form-grid.sims-form-grid--biz > .fg-period {
        grid-column: 1 / -1;
        grid-row: 3;
    }

    .md-tab-form-wrap .biz-period-inline {
        flex-wrap: nowrap !important;
        overflow-x: auto;
    }

    .md-tab-form-wrap .biz-period-inline .krds-input {
        width: 12rem !important;
        min-width: 10rem !important;
    }
}

/* 행 전체 너비 (공통) */
.sims-form-grid .sims-form-grid-row,
.sims-form-grid .sims-form-grid-full {
    grid-column: 1 / -1;
}

/* 그리드 셀: 라벨 상단 · 입력 하단 */
.fieldset.input-form .sims-form-grid .form-group {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: var(--krds-gap-2, 0.4rem) !important;
    margin-bottom: 0 !important;
    grid-template-columns: unset !important;
}

.fieldset.input-form .sims-form-grid .form-group .form-tit {
    width: 100%;
    padding-top: 0 !important;
}

.fieldset.input-form .sims-form-grid .form-group .form-tit label,
.fieldset.input-form .sims-form-grid .form-group .form-tit .form-tit-label {
    font-size: var(--krds-pc-font-size-body-small, 1.5rem) !important;
    font-weight: 700 !important;
}

.fieldset.input-form .sims-form-grid .form-group .form-conts {
    width: 100%;
    display: block;
}

/* 사업기간: 시작일~종료일만 가로 한 줄 */
.biz-period-inline {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: var(--krds-gap-2, 0.4rem);
    width: 100%;
    max-width: 100%;
}

.biz-period-field-label {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    font-weight: 500;
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.biz-period-inline .krds-input {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
}

/* PC 2열 셀 안에서도 날짜가 한 줄 유지되도록 최소 너비 */
@media (min-width: 1024px) {
    .sims-form-grid--biz > .fg-period .biz-period-inline .krds-input {
        min-width: 9rem !important;
    }
}

/* 기본정보: 입력 높이 통일 (medium) */
.sims-form-grid--biz .krds-input.medium,
.sims-form-grid--biz .krds-form-select.medium {
    width: 100%;
}

.sims-form-grid--biz .biz-period-inline {
    min-height: var(--sims-control-height, 4rem);
}

/* 선임정보: 1×2 — 1행 이름|연락처, 2행 소속(전체), 3행 선임기간(전체) */
.sims-form-grid--sup-appoint {
    gap: var(--krds-gap-4, 1.2rem) var(--krds-gap-5, 1.6rem);
}

@media (min-width: 768px) {
    .sims-form-grid.sims-form-grid--sup-appoint {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .sims-form-grid--sup-appoint > .fg-sup-name {
        grid-column: 1;
        grid-row: 1;
    }

    .sims-form-grid--sup-appoint > .fg-sup-tel {
        grid-column: 2;
        grid-row: 1;
    }

    .sims-form-grid--sup-appoint > .fg-sup-dept {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .sims-form-grid--sup-appoint > .fg-sup-period {
        grid-column: 1 / -1;
        grid-row: 3;
    }
}

@media (max-width: 767px) {
    .sims-form-grid--sup-appoint > .fg-sup-name,
    .sims-form-grid--sup-appoint > .fg-sup-dept,
    .sims-form-grid--sup-appoint > .fg-sup-period,
    .sims-form-grid--sup-appoint > .fg-sup-tel {
        grid-column: 1 / -1;
    }
}

.sims-form-grid--sup-appoint .krds-input.medium {
    width: 100%;
}

.sims-form-grid--sup-appoint .biz-period-inline--compact .krds-input {
    min-width: 0 !important;
}

.biz-period-inline--compact {
    gap: var(--krds-gap-2, 0.4rem);
}

/* 담당자 이름 인라인 자동완성 (SimsUserTypeahead) — 모달 안에 모달을 띄우지 않기 위한 드롭다운.
   document.body에 fixed로 붙여 .modal-conts(overflow-y:auto) 클리핑을 피한다. */
.sims-user-typeahead-list {
    position: fixed;
    z-index: 2000;
    margin: 0;
    padding: 0.4rem 0;
    max-height: 22rem;
    overflow-y: auto;
    list-style: none;
    background: var(--krds-light-color-background-white, #fff);
    border: 0.1rem solid var(--krds-light-color-border-gray, #d1d5db);
    border-radius: var(--krds-radius-2, 0.4rem);
    box-shadow: 0 0.4rem 1.2rem rgba(0, 0, 0, 0.16);
}

.sims-user-typeahead-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    padding: 0.8rem 1.2rem;
    cursor: pointer;
    font-size: var(--krds-pc-font-size-body-medium, 1.5rem);
}

.sims-user-typeahead-item:hover,
.sims-user-typeahead-item.is-active {
    background: var(--krds-light-color-background-gray, #f3f4f6);
}

.sims-user-typeahead-name {
    font-weight: 600;
    color: var(--krds-light-color-text-basic, #1a1a1a);
}

.sims-user-typeahead-dept {
    color: var(--krds-light-color-text-subtle, #6b7280);
    font-size: var(--krds-pc-font-size-body-small, 1.3rem);
}

.sims-user-typeahead-empty {
    padding: 0.8rem 1.2rem;
    color: var(--krds-light-color-text-subtle, #6b7280);
    font-size: var(--krds-pc-font-size-body-small, 1.3rem);
}

.biz-period-sep {
    flex: 0 0 auto;
    white-space: nowrap;
    color: var(--krds-light-color-text-subtle, #6d7882);
    font-weight: 500;
}

/* 현장지원 유해위험요인 — 위치 QR코드 표시 모달 */
.sims-fld-qr-pstn-nm {
    margin: 0 0 var(--krds-gap-4, 1.2rem);
    font-weight: 600;
    text-align: center;
}

.sims-fld-qr-image-wrap {
    display: flex;
    justify-content: center;
    padding: var(--krds-gap-4, 1.2rem);
    border: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
    border-radius: var(--krds-radius-2, 0.4rem);
    background: var(--krds-color-neutral-5, #f5f6f8);
}

.sims-fld-qr-image-wrap img {
    width: 100%;
    max-width: 24rem;
    height: auto;
}

.sims-form-grid .krds-form-checks-inline {
    flex-wrap: wrap;
    gap: var(--krds-gap-3, 0.8rem);
}

.fieldset.input-form .sims-form-grid .form-group .form-conts .krds-form-check {
    margin-right: 0 !important;
}

/* ============================================================
   10. 사업 관리 와이어 전용
   ============================================================ */

.search-top-box.biz-list-search + .sims-md-layout,
.biz-md-layout {
    margin-top: 0;
}

.search-top-box.risk-list-search + .sims-md-layout,
.risk-md-layout {
    margin-top: 0;
}

/* 도움 패널 — DB 상단 · 목차형 (본문 ? 없음) */
.sims-help-db {
    padding-bottom: var(--krds-gap-4, 1.2rem);
    margin-bottom: var(--krds-gap-4, 1.2rem);
    border-bottom: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
}

.sims-help-db .conts-desc p {
    margin: 0;
}

.sims-help-db-menu-nm {
    margin-bottom: var(--krds-gap-2, 0.4rem) !important;
}

.sims-help-db-label {
    margin: var(--krds-gap-3, 0.8rem) 0 var(--krds-gap-1, 0.2rem) !important;
    font-size: var(--krds-pc-font-size-label-small, 1.5rem);
    font-weight: 600;
    color: var(--krds-light-color-text-basic, #1e2124);
}

.sims-help-db-text {
    margin: 0 !important;
}

.sims-help-ref-files {
    margin-top: var(--krds-gap-2, 0.4rem);
}

.sims-help-db--sample {
    border-left: 3px solid var(--krds-light-color-border-primary, #246beb);
    padding-left: var(--krds-gap-3, 0.8rem);
}

.sims-help-sample-badge {
    margin-left: var(--krds-gap-2, 0.4rem);
    vertical-align: middle;
    font-size: var(--krds-pc-font-size-label-xsmall, 1.3rem);
    font-weight: 400;
}

.sims-help-sample-note {
    margin-top: var(--krds-gap-3, 0.8rem) !important;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
}

/* 참고파일 행 — 파일명 / 형식·용량 / 미리보기(2열 그리드) */
.sims-help-attach {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--krds-gap-3, 0.8rem);
    margin-top: var(--krds-gap-2, 0.4rem);
    padding: var(--krds-gap-3, 0.8rem);
    background: var(--krds-light-color-surface-gray-subtler, #f4f5f6);
    border-radius: var(--krds-radius-medium, 0.4rem);
}

.sims-help-attach-body {
    min-width: 0;
}

.sims-help-attach-name {
    margin: 0;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    font-weight: 600;
    color: var(--krds-light-color-text-basic, #1e2124);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sims-help-attach-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--krds-gap-1, 0.4rem);
    margin: var(--krds-gap-1, 0.4rem) 0 0;
}

.sims-help-attach-meta-sep {
    color: var(--krds-light-color-text-subtle, #6d7882);
    font-size: var(--krds-pc-font-size-label-small, 1.3rem);
    line-height: 1;
}

.sims-help-attach-type {
    flex-shrink: 0;
    font-size: var(--krds-pc-font-size-label-xsmall, 1.3rem);
}

.sims-help-attach-size {
    font-size: var(--krds-pc-font-size-label-small, 1.3rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.sims-help-attach-preview {
    align-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 3.2rem;
    height: 3.2rem;
    margin: 0;
    padding: 0;
    border: 0.1rem solid var(--krds-light-color-border-gray, #b1b8be);
    border-radius: 999rem;
    background: var(--krds-light-color-background-white, #fff);
    color: var(--krds-light-color-text-primary, #246beb);
    cursor: pointer;
    text-decoration: none;
}

.sims-help-attach-preview:hover {
    background: var(--krds-light-color-surface-gray-subtler, #f4f5f6);
}

.sims-help-attach-preview:focus-visible {
    outline: 0.2rem solid var(--krds-light-color-border-primary, #246beb);
    outline-offset: 0.1rem;
}

.sims-help-attach-preview__icon {
    display: block;
    width: 2rem;
    height: 2rem;
    flex-shrink: 0;
}

.sims-help-attach-list {
    margin: var(--krds-gap-3, 0.8rem) 0 0;
    padding: 0;
    list-style: none;
}

.sims-help-attach-list__item + .sims-help-attach-list__item {
    margin-top: var(--krds-gap-2, 0.4rem);
}

.sims-help-flow {
    margin: var(--krds-gap-3, 0.8rem) 0;
}

.sims-help-flow-note {
    margin: var(--krds-gap-3, 0.8rem) 0 0;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.sims-help-toc-title {
    margin-top: var(--krds-gap-5, 1.6rem);
}

.sims-help-toc-list {
    margin: var(--krds-gap-3, 0.8rem) 0 0;
    padding: 0;
    list-style: none;
}

.sims-help-toc-list .sims-help-toc-item {
    width: 100%;
    justify-content: space-between;
    text-align: left;
}

.sims-help-toc-item--child {
    padding-left: var(--krds-gap-5, 1.6rem);
}

.sims-help-section--detail .sims-help-back {
    margin-bottom: var(--krds-gap-3, 0.8rem);
}

.sims-help-panel-sections .sims-help-section--default[hidden],
.sims-help-panel-sections .sims-help-section--detail[hidden] {
    display: none !important;
}

/* 도움 패널 — 참고파일 새 창(탭) 웹뷰어 페이지 (/help/viewer) */
.sims-help-doc-viewer-page {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--krds-light-color-surface-white, #fff);
}

.sims-doc-viewer-page-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--krds-gap-4, 1.2rem);
    flex-wrap: wrap;
    padding: var(--krds-gap-4, 1.2rem) var(--krds-gap-5, 1.6rem);
    border-bottom: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
    background: var(--krds-light-color-surface-white, #fff);
}

.sims-doc-viewer-page-head__inner {
    min-width: 0;
    flex: 1 1 auto;
}

.sims-doc-viewer-page-title {
    margin: 0;
    font-size: var(--krds-pc-font-size-heading-xsmall, 1.9rem);
    font-weight: 700;
    word-break: break-all;
}

.sims-doc-viewer-page-title-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--krds-gap-2, 0.8rem);
}

.sims-doc-viewer-type-badge,
.sims-doc-viewer-sample-badge {
    flex-shrink: 0;
    font-size: var(--krds-pc-font-size-label-small, 1.3rem);
}

.sims-doc-viewer-page-meta {
    margin: var(--krds-gap-1, 0.4rem) 0 0;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.sims-doc-viewer-page-actions {
    display: flex;
    align-items: center;
    gap: var(--krds-gap-2, 0.8rem);
    flex-shrink: 0;
}

.sims-doc-viewer-page-body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* PDF/HWP 공통 뷰어 패널 */
.sims-doc-viewer-panel {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 8rem);
    background: var(--krds-light-color-surface-gray-subtler, #f4f5f6);
}

.sims-doc-viewer-layout {
    flex: 1 1 auto;
    display: flex;
    min-height: 0;
    min-height: calc(100vh - 8rem);
}

.sims-doc-viewer-layout[hidden] {
    display: none !important;
}

.sims-doc-viewer-sidebar {
    flex: 0 0 14rem;
    width: 14rem;
    border-right: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
    background: var(--krds-light-color-background-white, #fff);
    overflow-y: auto;
    overflow-x: hidden;
}

.sims-doc-viewer-thumb-list {
    display: flex;
    flex-direction: column;
    gap: var(--krds-gap-2, 0.8rem);
    padding: var(--krds-gap-3, 0.8rem);
}

.sims-doc-viewer-thumb {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--krds-gap-1, 0.4rem);
    width: 100%;
    margin: 0;
    padding: var(--krds-gap-2, 0.8rem);
    border: 2px solid transparent;
    border-radius: var(--krds-radius-medium2, 0.6rem);
    background: var(--krds-light-color-surface-gray-subtler, #f4f5f6);
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.sims-doc-viewer-thumb:hover {
    border-color: var(--krds-light-color-border-gray, #cdd1d5);
}

.sims-doc-viewer-thumb.is-active {
    border-color: var(--krds-light-color-element-primary, #256ef4);
    box-shadow: 0 0 0 1px var(--krds-light-color-element-primary, #256ef4);
    background: var(--krds-light-color-surface-primary-subtler, #ecf2fe);
}

.sims-doc-viewer-thumb__preview {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 8.8rem;
    overflow: hidden;
    border-radius: var(--krds-radius-small, 0.2rem);
    background: #fff;
    box-shadow: 0 0.1rem 0.4rem rgba(0, 0, 0, 0.06);
}

.sims-doc-viewer-thumb__preview.is-loading::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.7), transparent);
    animation: sims-doc-thumb-shimmer 1.2s infinite;
}

@keyframes sims-doc-thumb-shimmer {
    0% {
        transform: translateX(-100%);
    }
    100% {
        transform: translateX(100%);
    }
}

.sims-doc-viewer-thumb__preview canvas,
.sims-doc-viewer-thumb__preview svg {
    display: block;
    max-width: 100%;
    height: auto;
}

.sims-doc-viewer-thumb__label {
    font-size: var(--krds-pc-font-size-label-small, 1.3rem);
    font-weight: 600;
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.sims-doc-viewer-thumb.is-active .sims-doc-viewer-thumb__label {
    color: var(--krds-light-color-element-primary, #256ef4);
}

.sims-doc-viewer-main {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.sims-doc-viewer-toolbar {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--krds-gap-3, 0.8rem);
    padding: var(--krds-gap-3, 0.8rem) var(--krds-gap-5, 1.6rem);
    border-bottom: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
    background: var(--krds-light-color-background-white, #fff);
    flex-shrink: 0;
}

.sims-doc-viewer-toolbar-group {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--krds-gap-2, 0.8rem);
}

.sims-doc-viewer-toolbar-divider {
    display: inline-block;
    width: 1px;
    height: 2rem;
    margin: 0 var(--krds-gap-1, 0.4rem);
    background: var(--krds-light-color-border-gray-light, #e6e8ea);
    flex-shrink: 0;
}

.sims-doc-viewer-page-label {
    min-width: 6rem;
    text-align: center;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.sims-doc-viewer-zoom-label {
    min-width: 4.8rem;
    text-align: center;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    font-weight: 600;
    color: var(--krds-light-color-text-basic, #1e2124);
}

.sims-doc-viewer-zoom-btn {
    min-width: 3.2rem;
    padding-left: 0.8rem;
    padding-right: 0.8rem;
    font-size: 1.8rem;
    line-height: 1;
}

.sims-doc-viewer-fit-btn {
    min-width: 3.2rem;
    padding: 0.55rem 0.7rem;
    line-height: 0;
}

.sims-doc-viewer-fit-btn.is-active {
    border-color: var(--krds-light-color-element-primary, #256ef4);
    background: var(--krds-light-color-surface-primary-subtler, #ecf2fe);
    color: var(--krds-light-color-element-primary, #256ef4);
}

.sims-doc-viewer-fit-icon {
    display: block;
    width: 1.8rem;
    height: 1.8rem;
}

.sims-doc-viewer-stage {
    flex: 1 1 auto;
    overflow: auto;
    padding: var(--krds-gap-5, 1.6rem);
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.sims-doc-viewer-stage svg,
.sims-doc-viewer-page-canvas {
    display: block;
    background: #fff;
    box-shadow: 0 0.4rem 1.2rem rgba(0, 0, 0, 0.08);
}

/* 맞춤(100%) — 본문 영역 너비에 맞춤 */
.sims-doc-viewer-stage:not(.is-zoomed) .sims-doc-viewer-page-canvas {
    max-width: 100%;
    height: auto;
}

/* 확대 시 실제 픽셀 크기 유지 → 스크롤로 탐색 */
.sims-doc-viewer-stage.is-zoomed .sims-doc-viewer-page-canvas {
    max-width: none;
    height: auto;
}

.sims-doc-viewer-panel-error {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--krds-gap-3, 0.8rem);
    padding: var(--krds-gap-8, 3.2rem) var(--krds-gap-5, 1.6rem);
    text-align: center;
    min-height: calc(100vh - 8rem);
}

.sims-doc-viewer-panel-error[hidden] {
    display: none !important;
}

.sims-doc-viewer-panel-error__text {
    margin: 0;
    font-size: var(--krds-pc-font-size-body-large, 1.7rem);
    color: var(--krds-light-color-text-danger, #bd2c0f);
}

.sims-doc-viewer-panel-error__hint {
    margin: 0;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.sims-doc-viewer-page-placeholder {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--krds-gap-8, 3.2rem) var(--krds-gap-5, 1.6rem);
    text-align: center;
    min-height: calc(100vh - 8rem);
}

.sims-doc-viewer-page-placeholder--error .sims-doc-viewer-placeholder-title {
    color: var(--krds-light-color-text-danger, #bd2c0f);
}

.sims-doc-viewer-placeholder-hint {
    margin: var(--krds-gap-4, 1.2rem) 0 0;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.sims-doc-viewer-placeholder-hint code {
    padding: 0.1rem 0.4rem;
    border-radius: var(--krds-radius-small, 0.2rem);
    background: var(--krds-light-color-surface-gray-subtle, #eef0f2);
}

/* ── KRDS 공통 로딩 (sims-loading.js) ─────────────────────────────
 * 스피너 = 이미지 파일 없음. output.css .krds-spinner::before CSS 도넛 애니메이션
 * form-spinner는 입력필드 오버레이용(absolute)이라 단독 로딩에 쓰면 링이 안 보임 → sims-spinner-block
 */
.sims-spinner-block {
    --sims-spinner-size: 4.8rem;
    --sims-spinner-border: 0.4rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--krds-gap-4, 1.2rem);
    text-align: center;
}

.sims-spinner-block__ring {
    /* form-spinner 절대배치·width 100% 무력화 */
    position: static !important;
    display: inline-flex !important;
    width: var(--sims-spinner-size) !important;
    height: var(--sims-spinner-size) !important;
    min-height: var(--sims-spinner-size) !important;
    flex-shrink: 0;
    --krds-spinner--size: var(--sims-spinner-size);
    --krds-spinner--border-width: var(--sims-spinner-border);
    --krds-spinner--color-border: var(--krds-light-color-element-disabled-light, #cdd1d5);
    --krds-spinner--color-border-active: var(--krds-light-color-element-primary, #256ef4);
}

.sims-spinner-block__ring::before {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

.sims-spinner-block__label {
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
    line-height: 1.5;
}

.sims-page-loading {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.72);
}

.sims-page-loading[hidden] {
    display: none !important;
}

.sims-page-loading__panel {
    padding: var(--krds-gap-6, 2.4rem) var(--krds-gap-7, 3.2rem);
    border-radius: var(--krds-radius-medium3, 0.8rem);
    background: var(--krds-light-color-background-white, #fff);
    box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.12);
}

.sims-page-loading__spinner {
    --sims-spinner-size: 5.6rem;
    --sims-spinner-border: 0.45rem;
}

.sims-inline-loading {
    padding: var(--krds-gap-4, 1.2rem) 0;
}

tr.sims-loading-row td {
    vertical-align: middle;
}

/* 도움패널 뷰어 — 문서 영역 인라인 스피너 */
.sims-doc-viewer-loading-wrap {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 8rem);
    background: var(--krds-light-color-surface-gray-subtler, #f4f5f6);
}

.sims-doc-viewer-loading-wrap[hidden] {
    display: none !important;
}

.sims-doc-viewer-loading-wrap--error .sims-spinner-block__ring {
    display: none !important;
}

.sims-doc-viewer-loading-wrap--error .sims-spinner-block__label,
.sims-doc-viewer-loading-wrap--error #helpDocViewerLoadingMessage {
    color: var(--krds-light-color-text-danger, #bd2c0f);
}

.sims-doc-viewer-loading {
    margin: 0;
    padding: var(--krds-gap-4, 1.2rem);
    text-align: center;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.sims-doc-viewer-loading--error {
    color: var(--krds-light-color-text-danger, #bd2c0f);
}


.sims-doc-viewer-placeholder-title {
    margin: 0 0 var(--krds-gap-3, 0.8rem);
    font-size: var(--krds-pc-font-size-body-large, 1.7rem);
    font-weight: 600;
}

.sims-doc-viewer-placeholder-desc {
    margin: 0;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
}

/* SIMS #contents — 도움패널 오버레이 (본문 너비 유지)
 * KRDS flexible은 help-panel-expanded 시 padding-right를 키우지만 SIMS는 #contents 사용.
 * 주의: padding-right: 0 은 .inner 기본 패딩까지 제거해 본문 너비가 변함 → 기본값 유지.
 */
#contents > .layout > .inner.help-panel-flexible,
#contents > .layout > .inner.help-panel-flexible.help-panel-expanded {
    --krds-help-panel--width: 32rem;
    --krds-contents-wrap-size-for-help: var(--krds-contents-wrap-size, 1248px);
    box-sizing: border-box;
    padding-right: var(--krds-contents-padding-x);
    transition: none;
}

/* 목차형 도움패널 PC 너비 (기본 39rem → SIMS 32rem) */
#contents .krds-help-panel {
    --krds-help-panel--pc-width: 32rem;
    width: var(--krds-help-panel--pc-width);
}

/* 도움패널 스크롤 — inner flex 늘림·space-between 으로 생기던 상단 빈 공간 제거 */
#contents .krds-help-panel .help-panel-wrap .help-conts-area {
    padding-top: var(--krds-gap-5, 1.6rem);
    align-items: stretch;
}

#contents .krds-help-panel .help-panel-wrap .help-conts-area-inner {
    justify-content: flex-start;
    flex: 0 0 auto;
    width: 100%;
    min-height: auto;
    gap: var(--krds-gap-6, 2.4rem);
}

#contents .krds-help-panel .help-panel-wrap .conts-area {
    gap: var(--krds-gap-6, 2.4rem);
}

.biz-md-layout.sims-md-layout--stack {
    gap: var(--krds-gap-5, 1.6rem);
}

/* biz-md-layout .search-list-top — sims-md-master > .search-list-top 규칙으로 통일 */

/* 목록 페이징 — 표와 하단 액션 사이 */
.sims-list-paging:empty,
.sims-list-paging[hidden] {
    display: none !important;
}

.biz-md-layout .sims-list-paging .krds-pagination,
.biz-worker-list-top + .krds-table-wrap + .sims-list-paging .krds-pagination {
    margin-top: var(--krds-gap-5, 1.6rem);
    margin-bottom: 0;
}

.biz-worker-list-top {
    margin-bottom: var(--krds-gap-3, 0.8rem);
}

/* 검색 1행: 소속 | 연도 | 반기 | 사업명/검색 — 사업·위험성 공통 인라인 행 */
.search-top-box .biz-sch-filter .filter-form.biz-filter-primary,
.search-top-box .risk-sch-filter .filter-form.risk-filter-primary {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: var(--sims-search-zone-field-gap, var(--krds-gap-4, 1.2rem));
    width: 100%;
}

.search-top-box .biz-sch-filter .filter-form.biz-filter-primary > div,
.search-top-box .risk-sch-filter .filter-form.risk-filter-primary > div {
    flex: 0 0 auto;
    max-width: none;
    width: auto;
}

.search-top-box .biz-sch-filter .filter-form.biz-filter-primary .krds-form-select.medium,
.search-top-box .risk-sch-filter .filter-form.risk-filter-primary .krds-form-select.medium {
    width: 14rem;
    min-width: 11rem;
}

.search-top-box .biz-sch-filter .filter-form.biz-filter-primary > .biz-filter-name {
    flex: 1 1 auto;
    min-width: 14rem;
    max-width: 32rem;
}

.search-top-box .biz-sch-filter .filter-form.biz-filter-primary > .biz-filter-name .krds-input {
    width: 100%;
    min-width: 12rem;
}

.search-top-box .biz-sch-filter .filter-form.biz-filter-primary > .biz-filter-action,
.search-top-box .risk-sch-filter .filter-form.risk-filter-primary > .risk-filter-action {
    margin-left: 0;
    flex: 0 0 auto;
    align-self: center;
    min-height: var(--sims-control-height, 4rem);
    display: inline-flex;
    align-items: center;
    gap: var(--sims-search-zone-field-gap, var(--krds-gap-4, 1.2rem));
}

.search-top-box .biz-sch-filter .filter-form.biz-filter-primary > div:not(.biz-filter-action),
.search-top-box .risk-sch-filter .filter-form.risk-filter-primary > div:not(.risk-filter-action) {
    align-items: center;
    min-height: var(--sims-control-height, 4rem);
}

.search-top-box .biz-sch-filter .filter-form.biz-filter-primary > div .label,
.search-top-box .risk-sch-filter .filter-form.risk-filter-primary > div .label {
    display: inline-flex;
    align-items: center;
    min-height: var(--sims-control-height, 4rem);
    margin: 0;
}

.search-top-box .biz-sch-filter .filter-form.biz-filter-primary .krds-form-select.medium,
.search-top-box .biz-sch-filter .filter-form.biz-filter-primary .krds-input.medium,
.search-top-box .risk-sch-filter .filter-form.risk-filter-primary .krds-form-select.medium,
.search-top-box .risk-sch-filter .filter-form.risk-filter-primary .krds-input.medium {
    min-height: var(--sims-control-height, 4rem);
}

/* 상세검색 — 삭제포함 체크박스 · 초기화 (KRDS filter-form: 초기화는 검색 버튼 열과 우측 정렬) */
.search-top-box .biz-sch-filter .filter-form.biz-filter-advanced {
    align-items: center;
    flex-wrap: nowrap;
    gap: var(--krds-gap-5, 1.6rem);
    width: 100%;
}

.search-top-box .biz-sch-filter .filter-form.biz-filter-advanced > .biz-filter-check {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    max-width: none;
    width: auto;
    min-height: var(--sims-advanced-expand-row-height, 3.2rem);
}

.search-top-box .biz-sch-filter .filter-form.biz-filter-advanced > .biz-filter-check .krds-form-check {
    display: inline-flex;
    align-items: center;
    min-height: var(--sims-advanced-expand-row-height, 3.2rem);
    margin: 0;
}

.search-top-box .biz-sch-filter .filter-form.biz-filter-advanced > .biz-filter-check .krds-form-check.medium > input[type=checkbox] ~ label {
    display: inline-flex;
    align-items: center;
    min-height: var(--sims-advanced-expand-row-height, 3.2rem);
    margin: 0;
    font-weight: var(--krds-font-weight-bold, 700);
}

.search-top-box .biz-sch-filter .filter-form.biz-filter-advanced > .biz-filter-check .krds-form-check.medium > input[type=checkbox] ~ label::before {
    margin-top: 0;
}

.search-top-box .biz-sch-filter .filter-form.biz-filter-advanced > .biz-filter-advanced-action {
    margin-left: auto;
    align-self: center;
    min-height: var(--sims-control-height, 4rem);
}

@media (max-width: 1023px) {
    .search-top-box .biz-sch-filter .filter-form.biz-filter-primary {
        flex-wrap: wrap;
    }

    .search-top-box .biz-sch-filter .filter-form.biz-filter-primary > .biz-filter-name {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .search-top-box .biz-sch-filter .filter-form.biz-filter-primary > .biz-filter-action {
        flex: 1 1 100%;
    }

    .search-top-box .biz-sch-filter .filter-form.biz-filter-primary > .biz-filter-action .btn-search {
        width: 100%;
    }
}

/* 넓은 목록·하위 테이블 가로 스크롤 */
.md-table-scroll-x {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/*.md-table-scroll-x .tbl {
    min-width: 88rem;
}*/

/* 하위 테이블 — 관리 열 (행 단위 수정) */
.tbl.col.data th.col-manage,
.tbl.col.data td.col-manage {
    background-color: var(--krds-light-color-surface-secondary-subtler, #f4f5f6);
    border-left: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
}

.tbl.col.data thead th.col-manage {
    font-weight: 600;
}

.tbl.col.data .btn-row-edit {
    color: var(--krds-light-color-text-primary, #096ab3);
    text-decoration: underline;
    text-underline-offset: 0.2rem;
}

.tbl.col.data .btn-row-edit:hover,
.tbl.col.data .btn-row-edit:focus-visible {
    color: var(--krds-light-color-text-basic, #1e2124);
}

/*.md-master-table-wrap.md-table-scroll-x .tbl {
    min-width: 88rem;
}*/

/* --------------------------------------------------------------------------
   표 뷰포트: 헤더 고정(세로) + 본문 5행 세로 스크롤
   - 일반: 부모(.sims-table-viewport-5) 단일 가로 스크롤
   - 위험요인(pinned-manage): 데이터(__main)만 가로 스크롤, 관리(__pin) 우측 고정
   -------------------------------------------------------------------------- */
.sims-table-viewport-5 {
    /* 행 높이: :root --sims-table-row-height (Phase A compact) */
    --sims-table-visible-rows: 5;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

/* 위험요인 — 루트는 스크롤 없음, __main에서만 가로 스크롤 */
.sims-table-viewport-5--pinned-manage {
    overflow-x: visible;
    overflow-y: visible;
}

.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__layout {
    display: flex;
    align-items: stretch;
    width: 100%;
}

.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__main {
    flex: 1 1 auto;
    min-width: 0;
    overflow: visible;
}

/* 헤더·본문을 함께 감싸는 가로 스크롤 영역 */
.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__hscroll {
    width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__hscroll-inner {
    width: var(--sims-factor-scroll-width, 100%);
    min-width: 100%;
}

.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__pin {
    flex: 0 0 var(--sims-manage-col-width, 13rem);
    width: var(--sims-manage-col-width, 13rem);
    max-width: var(--sims-manage-col-width, 13rem);
}

/* 자식 래퍼는 가로 스크롤 위임 — 부모만 스크롤바 표시 */
.sims-table-viewport-5 .md-table-scroll-x,
.sims-table-viewport-5 .sims-table-viewport-5__head,
.sims-table-viewport-5 .sims-table-viewport-5__body {
    overflow-x: clip;
}

.sims-table-viewport-5 .sims-table-viewport-5__head {
    overflow-x: visible; /* 넓은 헤더 표가 부모 가로 스크롤 폭을 결정 */
    overflow-y: visible;
}

.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__hscroll-inner .sims-table-viewport-5__head {
    overflow-x: visible;
    overflow-y: visible;
}

/* 본문은 세로만 스크롤 — 가로는 hscroll-inner가 처리(clip 시 본문만 잘림) */
.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__hscroll-inner .sims-table-viewport-5__body {
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
}

.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__main .sims-table-viewport-5__head {
    overflow-x: visible;
}

.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__main .sims-table-viewport-5__body {
    overflow-x: hidden;
}

.sims-table-viewport-5__table--head,
.sims-table-viewport-5__table--body {
    width: 100%;
    table-layout: fixed;
}

/* 위험요인 — 데이터 표 너비(JS: 뷰포트×2) */
.sims-table-viewport-5--pinned-manage .risk-factor-table:not(.risk-factor-table--pin) {
    width: auto;
    min-width: 0;
}

/* 위험요인 — 관리 패널(우측 고정, 가로 스크롤 제외) */
.sims-table-viewport-5--pinned-manage .risk-factor-table--pin {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
}

.sims-table-viewport-5--pinned-manage .risk-factor-table--pin th.col-manage,
.sims-table-viewport-5--pinned-manage .risk-factor-table--pin td.col-manage {
    width: var(--sims-manage-col-width, 13rem);
    min-width: var(--sims-manage-col-width, 13rem);
    max-width: var(--sims-manage-col-width, 13rem);
}

.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__pin-head.krds-table-wrap {
    overflow: visible;
    max-height: none;
    border-top: 0.2rem solid var(--krds-color-neutral-90, #1a1a1a);
    border-left: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
}

.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__pin-head .tbl th {
    border-bottom: 0.1rem solid var(--krds-color-neutral-30, #ccc) !important;
}

/* 관리 패널 헤더 — 메인 그룹헤더와 동일 스타일 */
.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__pin-head .risk-factor-grouphead th.col-manage {
    font-size: var(--krds-pc-font-size-label-small, 1.4rem);
    font-weight: 600;
    background: var(--krds-light-color-surface-gray-subtler, #f4f5f6);
    vertical-align: middle;
    box-sizing: border-box;
}

/* 서브헤더 높이 맞춤용 빈 행(JS가 높이 지정) */
.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__pin-head .risk-factor-pin-subhead {
    line-height: 0;
    font-size: 0;
}

.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__pin-head .risk-factor-pin-subhead th,
.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__pin-head .risk-factor-pin-subhead td {
    padding: 0;
    border: none;
    line-height: 0;
}

.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__pin-body.krds-table-wrap {
    overflow-y: auto;
    overflow-x: clip;
    scrollbar-width: none;
    -ms-overflow-style: none;
    border-top: none !important;
    border-left: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
}

.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__pin-body.krds-table-wrap::-webkit-scrollbar {
    display: none;
}

/* 빈도·강도법 2행 헤더 — 서브헤더 행 높이 */
.sims-table-viewport-5--head-2 .sims-table-viewport-5__head .risk-factor-subhead th {
    padding-top: 0.4rem;
    padding-bottom: 0.6rem;
    line-height: 1.3;
}

/* 건수·정렬 영역 ↔ 표 — 사업관리·샘플과 동일(여백만, 구분선 없음) */
.risk-md-layout .sims-md-master > .search-list-top,
.risk-md-layout .risk-assessment-panel > .search-list-top,
.risk-md-layout .risk-factor-section > .search-list-top {
    padding-bottom: 0;
    margin-bottom: var(--sims-search-to-list-gap, var(--krds-gap-5, 1.6rem));
    border-bottom: none;
}

/* Tier 블록 사이 — 여백만(표 하단 이중 구분선 방지) */
.risk-md-layout .sims-md-master,
.usr-md-layout .sims-md-master {
    padding-bottom: var(--krds-gap-5, 1.6rem);
    margin-bottom: var(--krds-gap-5, 1.6rem);
    border-bottom: none;
}

.risk-md-layout .risk-assessment-panel:not(.is-collapsed) {
    padding-bottom: var(--krds-gap-5, 1.6rem);
    margin-bottom: var(--krds-gap-5, 1.6rem);
    border-bottom: none;
}

.risk-md-layout .risk-detail-panel:not(.is-collapsed) {
    padding-top: var(--krds-gap-5, 1.6rem);
    border-top: none;
}

/* 헤더: 세로 스크롤 밖 · KRDS 표 상단 굵은 선 1줄만 */
.sims-table-viewport-5__head.krds-table-wrap {
    overflow-x: visible;
    overflow-y: visible;
    max-height: none;
    border-top: 0.2rem solid var(--krds-color-neutral-90, #1a1a1a);
}

.sims-table-viewport-5__head .tbl th {
    border-bottom: 0.1rem solid var(--krds-color-neutral-30, #ccc) !important;
}

.sims-table-viewport-5__head .risk-factor-subhead th {
    font-size: var(--krds-pc-font-size-label-xsmall, 1.3rem);
    font-weight: 500;
    background: var(--krds-light-color-surface-gray-subtler, #f9fafb);
}

/* 본문: 5행 높이 세로 스크롤만 · 가로는 부모 뷰포트(이중 스크롤바 방지) */
.sims-table-viewport-5__body.krds-table-wrap,
.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__hscroll-inner .sims-table-viewport-5__body,
.sims-table-viewport-5--pinned-manage .sims-table-viewport-5__pin-body.krds-table-wrap {
    max-height: var(
            --sims-table-body-max-height,
            calc(var(--sims-table-visible-rows) * var(--sims-table-row-height))
    );
}

.sims-table-viewport-5__body.krds-table-wrap {
    overflow-y: auto;
    overflow-x: clip;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
    /* 분리 본문 래퍼 — krds-table-wrap 기본 상단선 제거(헤더 th 하단선만) */
    border-top: none !important;
}

/* 사업·평가 목록 — 행 높이를 토큰과 맞춰 5행 뷰포트 정확도 확보 */
.sims-table-viewport-5__body .md-master-table tbody tr,
.sims-table-viewport-5__body .risk-assessment-table tbody tr {
    height: var(--sims-table-row-height);
}

.sims-table-viewport-5__body .md-master-table tbody td,
.sims-table-viewport-5__body .risk-assessment-table tbody td {
    box-sizing: border-box;
    height: var(--sims-table-row-height);
    padding-top: var(--krds-padding-3, 0.8rem) !important;
    padding-bottom: var(--krds-padding-3, 0.8rem) !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sims-table-viewport-5__body .md-master-table .md-row-label {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 페이징 목록(사업관리·샘플) — 행 높이만 고정, 5행 뷰포트 없음 */
.sims-table-rows-fixed .md-master-table tbody tr,
.sims-table-rows-fixed .tbl.data tbody tr {
    height: var(--sims-table-row-height);
}

.sims-table-rows-fixed .md-master-table tbody td,
.sims-table-rows-fixed .tbl.data tbody td {
    box-sizing: border-box;
    height: var(--sims-table-row-height);
    padding-top: var(--krds-padding-3, 0.8rem) !important;
    padding-bottom: var(--krds-padding-3, 0.8rem) !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sims-table-rows-fixed .md-master-table .md-row-label,
.sims-table-rows-fixed .tbl.data .tbl-link {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

/* 체크박스·배지 셀 — 줄임·클리핑 완화 */
.sims-table-rows-fixed tbody td:has(.krds-form-check),
.sims-table-rows-fixed tbody td:has(.krds-badge) {
    overflow: visible;
}

.sims-table-rows-fixed tbody tr td[colspan] {
    white-space: normal;
}

.sims-table-viewport-5 .md-master-table {
    min-width: 88rem;
}

.sims-table-viewport-5 .risk-assessment-table {
    min-width: 72rem;
}

/* 위험요인 — 방법론 클래스(가로 스크롤 너비는 JS: 뷰포트×2 + 관리 열) */
.sims-table-viewport-5 .risk-factor-table {
    min-width: 0;
}

.sims-table-viewport-5--frequency,
.sims-table-viewport-5--threestep,
.sims-table-viewport-5--checklist {
    --sims-manage-col-width: 13rem;
}

/* 위험요인 — 긴 텍스트 열 줄바꿈 */
.sims-table-viewport-5 .risk-factor-table th,
.sims-table-viewport-5 .risk-factor-table td {
    word-break: keep-all;
    overflow-wrap: break-word;
    white-space: normal;
}

.sims-table-viewport-5 .risk-factor-table .col-manage,
.sims-table-viewport-5 .risk-factor-table .risk-check-badge,
.sims-table-viewport-5 .risk-factor-table .risk-evidence-badge {
    white-space: nowrap;
}

/* 관리 열 — 수정·조치상세 세로 1×2 배치 */
.col-manage-actions {
    display: inline-flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: var(--krds-gap-2, 0.4rem);
    width: 100%;
    max-width: 10rem;
    margin: 0 auto;
}

.col-manage-actions .krds-btn {
    width: 100%;
    padding-left: 0.4rem;
    padding-right: 0.4rem;
}

/* 그룹 헤더 1행 */
.sims-table-viewport-5__head .risk-factor-grouphead th {
    font-size: var(--krds-pc-font-size-label-small, 1.4rem);
    font-weight: 600;
    background: var(--krds-light-color-surface-gray-subtler, #f4f5f6);
    vertical-align: middle;
}

.sch-page-info--scroll {
    color: var(--krds-light-color-text-subtle, #6d7882);
    font-size: var(--krds-pc-font-size-label-small, 1.4rem);
}

/* 삭제 포함 조회 시 삭제 행 표시 */
.md-master-row--deleted {
    opacity: 0.72;
}

.md-master-row--deleted .md-row-label {
    text-decoration: line-through;
}

/* 관리감독자 하위 블록 */
.md-sub-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--krds-gap-4, 1.2rem);
    margin-bottom: var(--krds-gap-4, 1.2rem);
}

.md-sub-section-tit {
    margin: 0;
    font-size: var(--krds-pc-font-size-heading-xsmall, 1.7rem);
    font-weight: 700;
}

.md-sub-block-tit {
    margin: var(--krds-gap-5, 1.6rem) 0 var(--krds-gap-3, 0.8rem);
    font-size: var(--krds-pc-font-size-body-medium, 1.7rem);
    font-weight: 700;
    color: var(--krds-light-color-text-basic, #1e2124);
}

.md-supervisor-card + .md-supervisor-card {
    margin-top: var(--krds-gap-6, 2.4rem);
    padding-top: var(--krds-gap-6, 2.4rem);
    border-top: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
}

/* =============================================================================
   15. SIMS 폼 모달 (modalLayout + SimsFormModal)
   ============================================================================= */

/* 헤더·푸터(액션) 고정 — 본문(modal-conts)만 스크롤 */
.sims-form-modal .modal-content {
    overflow: hidden;
}

/* 헤더 — 닫기(X)는 modal-content 직계(KRDS 패턴) */
.sims-form-modal .modal-header {
    flex-shrink: 0;
    position: relative;
    z-index: 1;
    padding-right: calc(var(--krds-modal--btn-close-position, 2.4rem) + var(--krds-size-height-4, 4rem));
}

.sims-form-modal .modal-header .modal-title {
    -webkit-line-clamp: 2;
}

/* 모달 닫기(X) — 우상단 고정 · 인라인 SVG */
.krds-modal .modal-dialog .modal-content > .btn-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: var(--krds-modal--btn-close-position, 2.4rem);
    right: var(--krds-modal--btn-close-position, 2.4rem);
    z-index: 902;
    margin: 0;
    color: var(--krds-light-color-text-basic, #1e2124);
}

.krds-modal .modal-dialog .modal-content > .btn-close .sims-modal-close-icon {
    display: block;
    width: var(--krds-icon--size-medium, 2.4rem);
    height: var(--krds-icon--size-medium, 2.4rem);
    flex-shrink: 0;
    pointer-events: none;
}

.sims-form-modal .modal-header,
.sims-form-modal .modal-btn {
    flex-shrink: 0;
}

.sims-form-modal .modal-conts {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.sims-form-modal .sims-modal-desc {
    margin: 0 0 var(--krds-gap-5, 1.6rem);
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-subtle, #58616a);
    line-height: 1.5;
}

.sims-form-modal .sims-modal-fields .fieldset {
    margin: 0;
}

.sims-form-modal .form-hint.sims-modal-file-hint {
    margin-top: var(--krds-gap-2, 0.4rem);
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-subtle, #58616a);
}

.sims-form-modal .sims-file-input {
    padding: var(--krds-padding-3, 0.8rem);
}

/* =============================================================================
   SIMS 파일 드롭존 — KRDS file-upload (simple · full)
   https://www.krds.go.kr/html/site/component/component_09_04.html
   ============================================================================= */

.krds-file-upload.sims-file-dropzone {
    gap: var(--krds-gap-4, 1.2rem);
    width: 100%;
}

.krds-file-upload.sims-file-dropzone .file-upload {
    border-style: dashed;
    border-color: var(--krds-light-color-border-gray-light, #cdd1d5);
    cursor: pointer;
}

.krds-file-upload.sims-file-dropzone .file-upload:focus-visible {
    outline: 2px solid var(--krds-light-color-border-primary, #256ef4);
    outline-offset: 2px;
}

.krds-file-upload.sims-file-dropzone--compact .file-upload {
    padding: var(--krds-padding-6, 1.6rem) var(--krds-padding-8, 2.4rem);
    gap: var(--krds-gap-5, 1.6rem);
}

.krds-file-upload.sims-file-dropzone--compact .file-upload .txt {
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    line-height: 1.5;
}

.sims-file-dropzone__error {
    margin: var(--krds-gap-3, 0.8rem) 0 0;
    padding: var(--krds-padding-4, 1rem) var(--krds-padding-5, 1.2rem);
    border-radius: var(--krds-radius-medium1, 0.6rem);
    border: 1px solid var(--krds-light-color-border-danger, #de3412);
    background-color: var(--krds-light-color-surface-danger-subtler, #fdefec);
    font-size: 1.3rem;
    line-height: 1.5;
    color: var(--krds-light-color-text-danger, #bd2c0f);
}

.krds-file-upload.sims-file-dropzone.is-error .file-upload {
    border-color: var(--krds-light-color-border-danger, #de3412);
}

.krds-file-upload.sims-file-dropzone.is-disabled {
    opacity: 0.55;
    pointer-events: none;
}

.sims-file-dropzone .sims-file-list-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--krds-gap-4, 1.2rem);
    width: 100%;
}

.sims-file-dropzone .sims-file-list-toolbar__counter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 4rem;
    margin: 0;
    padding: 0 var(--krds-padding-6, 1.6rem);
    border: var(--krds-border-width-variable-regular, 1px) solid var(--krds-light-color-border-gray, #b1b8be);
    border-radius: var(--krds-radius-medium1, 0.6rem);
    background-color: var(--krds-light-color-surface-gray-subtle, #f4f5f6);
    font-size: var(--krds-pc-font-size-label-small, 1.5rem);
    font-weight: var(--krds-font-weight-bold, 700);
    line-height: 1;
    white-space: nowrap;
}

.sims-file-dropzone .sims-file-list-toolbar__counter .current {
    color: var(--krds-light-color-text-primary, #256ef4);
}

.sims-file-dropzone .sims-file-clear-all {
    flex-shrink: 0;
    margin: 0;
}

/* 모달 compact */
.sims-form-modal .krds-file-upload.sims-file-dropzone--compact .file-upload {
    padding: var(--krds-padding-5, 1.2rem) var(--krds-padding-7, 2rem);
    gap: var(--krds-gap-4, 1.2rem);
}

.sims-form-modal .sims-file-dropzone .file-list {
    margin-top: var(--krds-gap-2, 0.4rem);
}

/* =============================================================================
   시설물관리 — 카드 기반 레이아웃 (리뉴얼)
   기본정보(좌 7fr) + 구분·사진(우 5fr) / 하단 재해대상유형+법령
   ============================================================================= */

/* 전체 레이아웃 wrapper */
.sims-civ-fac-layout {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    width: 100%;
}

/* 상단 2-영역 */
.sims-civ-fac-top {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 1.5rem;
    align-items: stretch;
}

@media (max-width: 1023px) {
    .sims-civ-fac-top { grid-template-columns: 1fr; }
}

/* 개별 카드 패널 공통 */
.sims-civ-fac-panel {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    padding: 1.25rem 1.5rem;
}

/* 카드 헤더 */
.sims-civ-fac-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 0.875rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid #f1f5f9;
}

.sims-civ-fac-panel-tit {
    font-size: var(--krds-pc-font-size-heading-6, 1.6rem);
    font-weight: 700;
    color: #1e293b;
    margin: 0;
}

.sims-civ-fac-required-hint {
    font-size: 1.2rem;
    color: var(--krds-color-danger-50, #dc2626);
    font-weight: 500;
}

/* 우측: 구분 + 사진 컬럼 */
.sims-civ-fac-right-col {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    height: 100%;
}

/* 사진 카드 — 남은 공간 채우기 */
.sims-civ-fac-photo-panel {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.sims-civ-fac-photo-panel .fg-photo,
.sims-civ-fac-photo-panel .fg-photo > .form-conts {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* 기본정보 내부 2-컬럼 그리드 */
.sims-form-grid--civ-fac-info {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sims-form-grid--civ-fac-info > .fg-name,
.sims-form-grid--civ-fac-info > .fg-period {
    grid-column: 1 / -1;
}

/* 재해대상유형 badge */
.sims-civ-fac-disaster-badge {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--krds-color-danger-50, #dc2626);
    background: #fff5f5;
    border: 1px solid #fecaca;
    padding: 0.2rem 0.6rem;
    border-radius: 0.375rem;
    white-space: nowrap;
}

/* 재해대상유형 + 적용법령 2-열 (4:8 비율) */
.sims-civ-fac-disaster-body {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    gap: 1.5rem;
    align-items: start;
}

@media (max-width: 1023px) {
    .sims-civ-fac-disaster-body { grid-template-columns: 1fr; }
}

/* 재해대상유형 선택 박스 */
.sims-civ-fac-civ-tgt-area {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    padding: 1rem 1.25rem;
}

.sims-civ-fac-civ-tgt-area .form-group {
    margin-bottom: 0 !important;
}

.sims-civ-fac-disaster-hint-text {
    margin-top: 0.5rem;
    font-size: 1.1rem;
    line-height: 1.6;
}

/* 적용법령 체크박스 스크롤 영역 */
.fac-law-area {
    min-height: 8rem;
    max-height: 14rem;
    overflow-y: auto;
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    padding: 1rem 1.25rem;
    background: #f8fafc;
    width: 100%;
    box-sizing: border-box;
}

.sims-civ-fac-law-area-wrap .form-group {
    margin-bottom: 0 !important;
}

/* =============================================================================
   도급-계약관리 — 카드 패널 내 그리드 오버라이드
   sims-civ-fac-disaster-body 의 4fr:8fr 비율을 2열 동등분으로 재정의
   ============================================================================= */

.sims-con-mgt-fields .sims-civ-fac-disaster-body {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* 계약명 · 계약기간 — 전체 너비 */
.sims-con-mgt-fields .sims-civ-fac-disaster-body > .fg-name,
.sims-con-mgt-fields .sims-civ-fac-disaster-body > .fg-period {
    grid-column: 1 / -1;
}

/* 시설물 사진 업로드 영역 */
.fac-photo-upload {
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: var(--krds-gap-4, 1.2rem);
}

/* 썸네일 컨테이너 — X 버튼 기준점 (file-upload 밖) */
.fac-preview-container {
    position: relative;
    flex: 1;
    width: 100%;
}

/* 파일 선택 버튼 영역 */
.fac-photo-upload .file-upload.fac-upload-btn-area {
    padding: var(--krds-padding-4, 1.2rem);
    flex-direction: row;
    justify-content: center;
    min-height: unset;
}

/* 썸네일 — 컨테이너를 채우되 최소 높이 보장 */
.fac-file-preview {
    width: 100%;
    height: 20rem;
    min-height: 20rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--krds-light-color-bg-secondary, #f7f8f9);
    border-radius: var(--krds-radius-1, 0.4rem);
    border: 1px dashed var(--krds-light-color-border-gray-light, #cdd1d5);
    overflow: hidden;
}

/* X 삭제 버튼 — 썸네일 우측 상단 */
.btn-fac-close {
    position: absolute;
    top: 0.6rem;
    right: 0.6rem;
    z-index: 2;
    width: 2.4rem;
    height: 2.4rem;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.45);
    color: #fff;
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
}

.btn-fac-close:hover {
    background: rgba(0, 0, 0, 0.7);
}

.fac-file-thumb {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    height: 100%;
}

.fac-file-thumb-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fac-file-thumb-name {
    position: absolute;
    bottom: 0.4rem;
    left: 0;
    right: 0;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-secondary, #6b737d);
    word-break: break-all;
    text-align: center;
    padding: 0 0.4rem;
}

.fac-file-icon {
    font-size: 3.2rem;
}

.fac-file-empty {
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-disabled, #adb4bc);
}

/* 사진 파일 목록 */
.fac-photo-file-list .upload-list {
    padding: 0;
    margin: 0;
}

/* 근로자 업로드 안내 목록 */
.sims-file-hint-list {
    list-style: disc;
    padding-left: 1.6rem;
    margin-top: 0.4rem;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-secondary, #6b737d);
    line-height: 1.6;
}

/* 근로자 업로드 모달 */
.sims-worker-file-upload {
    width: 100%;
}

/* 근로자 모달 — 2열 그리드 */
.sims-form-grid.sims-form-grid--worker {
    display: grid;
    gap: var(--krds-gap-5, 1.6rem) var(--krds-gap-6, 2.4rem);
    grid-template-columns: 1fr;
}

@media (min-width: 768px) {
    .sims-form-grid.sims-form-grid--worker {
        grid-template-columns: repeat(2, 1fr);
    }

    .sims-form-grid.sims-form-grid--worker > .fg-period,
    .sims-form-grid.sims-form-grid--worker > .form-group:last-child {
        grid-column: 1 / -1;
    }
}

/* =============================================================================
   모달 폼 그리드 — 1×2 혼합 (size와 분리 · 모바일 1열)
   ============================================================================= */

/* 모바일: 전 모달 필드 1열 */
.sims-form-modal .sims-form-grid.sims-form-grid--risk,
.sims-form-modal .sims-form-grid.sims-form-grid--biz {
    grid-template-columns: 1fr;
}

.sims-form-modal .sims-form-grid--risk > .form-group,
.sims-form-modal .sims-form-grid--biz > .form-group {
    grid-column: 1 / -1;
}

.sims-risk-excel-hint {
    margin-top: var(--krds-gap-2, 0.4rem);
    font-size: 1.3rem;
    color: var(--krds-light-color-text-subtle, #464c53);
}

.sims-risk-factor-method-hint {
    margin-bottom: var(--krds-gap-3, 0.8rem);
    font-size: 1.3rem;
    color: var(--krds-light-color-text-subtle, #464c53);
}

.form-optional {
    font-weight: 400;
    font-size: 1.3rem;
    color: var(--krds-light-color-text-subtle, #464c53);
}

/* 위험요인 모달 — 화면 너비별 고정 레이아웃 (모바일 1단 / PC 설계안 유지) */
.sims-risk-factor-layout {
    display: flex;
    flex-direction: column;
    gap: var(--krds-gap-5, 1.6rem);
}

.sims-risk-factor-group {
    margin: 0;
    padding: var(--krds-gap-4, 1.2rem);
    border: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
    border-radius: var(--krds-radius-2, 0.4rem);
    background: var(--krds-color-neutral-0, #fff);
}

.sims-risk-factor-group__title {
    margin: 0 0 var(--krds-gap-4, 1.2rem);
    padding-bottom: var(--krds-gap-2, 0.4rem);
    border-bottom: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--krds-color-neutral-90, #1a1a1a);
}

.sims-risk-factor-panel {
    display: block;
}

#modalRiskFactor [data-factor-panel][hidden] {
    display: none !important;
}

.sims-risk-factor-group--legal[data-factor-panel][hidden] {
    display: none !important;
}

.sims-risk-factor-dates {
    display: flex;
    flex-direction: column;
    gap: var(--krds-gap-4, 1.2rem);
    min-width: 0;
}

.sims-risk-factor-dates > .form-group {
    margin: 0 !important;
}

.sims-risk-factor-score-hint {
    margin: 0;
    padding: 0.8rem 1rem;
    min-height: 4rem;
    display: flex;
    align-items: center;
    border: 0.1rem dashed var(--krds-color-neutral-30, #c6c6c6);
    border-radius: var(--krds-radius-2, 0.4rem);
    background: var(--krds-color-neutral-5, #f8f8f8);
    font-size: 1.3rem;
    color: var(--krds-light-color-text-subtle, #464c53);
}

#modalRiskFactor .sims-form-grid[class*="sims-form-grid--risk-factor"] {
    display: grid;
    width: 100%;
    gap: var(--krds-gap-4, 1.2rem) var(--krds-gap-5, 1.6rem);
}

#modalRiskFactor .sims-form-grid[class*="sims-form-grid--risk-factor"] .form-group {
    margin-bottom: 0 !important;
}

/* 모바일: 1단 세로 스택 */
@media (max-width: 767px) {
    #modalRiskFactor .sims-form-grid[class*="sims-form-grid--risk-factor"] {
        grid-template-columns: 1fr !important;
    }

    #modalRiskFactor .sims-form-grid[class*="sims-form-grid--risk-factor"] > .form-group,
    #modalRiskFactor .sims-form-grid[class*="sims-form-grid--risk-factor"] > .sims-risk-factor-dates {
        grid-column: 1 / -1 !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-frequency > .fg-score-hint {
        display: none;
    }
}

/* PC(768px+): 설계 레이아웃 고정 — 화면이 좁아지면 1단으로만 전환 */
@media (min-width: 768px) {
    #modalRiskFactor.sims-form-modal .modal-dialog.modal-lg {
        max-width: 96rem;
    }

    #modalRiskFactor.sims-form-modal .modal-content {
        max-height: min(92vh, 72rem);
    }

    /* 1. 유해위험요인 파악: 공정|위험|조치 */
    #modalRiskFactor .sims-form-grid--risk-factor-identify {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-identify > .fg-process {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-identify > .fg-hazard {
        grid-column: 2 !important;
        grid-row: 1 !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-identify > .fg-measure {
        grid-column: 3 !important;
        grid-row: 1 !important;
    }

    /* 체크리스트 — 유해위험요인 파악 */
    #modalRiskFactor [data-methodology="checklist"] .sims-form-grid--risk-factor-identify > .fg-check-result {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    #modalRiskFactor [data-methodology="checklist"] .sims-form-grid--risk-factor-identify > .fg-process {
        grid-column: 2 !important;
        grid-row: 1 !important;
    }

    #modalRiskFactor [data-methodology="checklist"] .sims-form-grid--risk-factor-identify > .fg-eval-target {
        grid-column: 3 !important;
        grid-row: 1 !important;
    }

    #modalRiskFactor [data-methodology="checklist"] .sims-form-grid--risk-factor-identify > .fg-span-full {
        grid-column: 1 / -1 !important;
    }

    /* 체크리스트 — 비고|법령|수준 */
    #modalRiskFactor .sims-form-grid--risk-factor-checklist-tail {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-checklist-tail > .fg-remark {
        grid-column: 1 !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-checklist-tail > .fg-law {
        grid-column: 2 !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-checklist-tail > .fg-risk-level {
        grid-column: 3 !important;
    }

    /* 2a. 빈도·강도: F|S|위험성 × 2행 */
    #modalRiskFactor .sims-form-grid--risk-factor-frequency {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-frequency > .form-group:nth-child(1) {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-frequency > .form-group:nth-child(2) {
        grid-column: 2 !important;
        grid-row: 1 !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-frequency > .form-group:nth-child(3) {
        grid-column: 3 !important;
        grid-row: 1 !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-frequency > .form-group:nth-child(4) {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-frequency > .form-group:nth-child(5) {
        grid-column: 2 !important;
        grid-row: 2 !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-frequency > .form-group:nth-child(6) {
        grid-column: 3 !important;
        grid-row: 2 !important;
    }

    /* 2b. 3단계: 현재|개선후 */
    #modalRiskFactor .sims-form-grid--risk-factor-threestep {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-threestep > .form-group:nth-child(1) {
        grid-column: 1 !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-threestep > .form-group:nth-child(2) {
        grid-column: 2 !important;
    }

    /* 3. 감소대책: 대책|담당|일정 */
    #modalRiskFactor .sims-form-grid--risk-factor-action {
        grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) !important;
        align-items: start;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-action > .fg-countermeasure {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-action > .fg-assignee {
        grid-column: 2 !important;
        grid-row: 1 !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-action > .fg-dates {
        grid-column: 3 !important;
        grid-row: 1 !important;
    }

    /* 4. 법적기준: 조문|근거 */
    #modalRiskFactor .sims-form-grid--risk-factor-legal {
        grid-template-columns: minmax(12rem, 1fr) minmax(0, 3fr) !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-legal > .fg-article {
        grid-column: 1 !important;
    }

    #modalRiskFactor .sims-form-grid--risk-factor-legal > .fg-legal-basis {
        grid-column: 2 !important;
    }
}

/* PC: 위험성평가 등록 — 1×2 혼합 (구분·방법론 / 일·평가자) */
@media (min-width: 768px) {
    .sims-form-modal .sims-form-grid.sims-form-grid--risk {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sims-form-modal .sims-form-grid--risk > .fg-biz,
    .sims-form-modal .sims-form-grid--risk > .fg-name,
    .sims-form-modal .sims-form-grid--risk > .fg-result-file {
        grid-column: 1 / -1;
    }

    .sims-form-modal .sims-form-grid--risk > .fg-type {
        grid-column: 1;
    }

    .sims-form-modal .sims-form-grid--risk > .fg-methodology {
        grid-column: 2;
    }

    .sims-form-modal .sims-form-grid--risk > .fg-date {
        grid-column: 1;
    }

    .sims-form-modal .sims-form-grid--risk > .fg-evaluator {
        grid-column: 2;
    }
}

/* 위험성평가 등록 모달 — 넓은 lg · PC 한 화면(스크롤 최소화) */
@media (min-width: 768px) {
    #modalRiskRegister.sims-form-modal .modal-dialog.modal-lg {
        max-width: 84rem;
    }

    #modalRiskRegister.sims-form-modal .modal-content {
        max-height: min(92vh, 68rem);
    }

    #modalRiskRegister .sims-form-grid--risk {
        gap: var(--krds-gap-4, 1.2rem) var(--krds-gap-6, 2.4rem);
    }

    #modalRiskRegister .sims-modal-desc {
        margin-bottom: var(--krds-gap-4, 1.2rem);
    }

    #modalRiskRegister .form-hint {
        margin-top: var(--krds-gap-1, 0.2rem);
        font-size: 1.3rem;
        line-height: 1.4;
    }

    #modalRiskAction.sims-form-modal .modal-dialog.modal-lg {
        max-width: 84rem;
    }

    #modalRiskReport.sims-form-modal .modal-dialog.modal-lg {
        width: min(96vw, 94rem);
        max-width: min(96vw, 94rem);
        min-width: min(92vw, 34rem);
    }

    #modalRiskReport.sims-form-modal .modal-content {
        max-height: min(96vh, 94rem);
        min-height: min(88vh, 80rem);
    }

    #modalRiskReport .modal-conts {
        flex: 1 1 auto;
        min-height: min(74vh, 66rem);
        max-height: none;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        padding-left: var(--krds-gap-3, 0.8rem);
        padding-right: var(--krds-gap-3, 0.8rem);
    }

    #modalRiskReport .sims-modal-fields,
    #modalRiskReport .risk-report-document,
    #modalRiskReport .risk-report-preview {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    #modalRiskReport .sims-modal-fields {
        flex: 1 1 auto;
        min-height: 0;
        display: flex;
        flex-direction: column;
    }

    #modalRiskReport .risk-report-document {
        flex: 1 1 auto;
        min-height: 0;
        display: flex;
        flex-direction: column;
    }

    #modalRiskReport .risk-report-preview {
        flex: 1 1 auto;
        min-height: 0;
    }
}

/* 보고서 모달 — 가로 A4 미리보기 (넓은 dialog + 높은 본문) */
#modalRiskReport.sims-form-modal .modal-dialog.modal-lg {
    width: min(96vw, 94rem);
    max-width: min(96vw, 94rem);
    min-width: min(92vw, 34rem);
}

#modalRiskReport.sims-form-modal .modal-content {
    max-height: min(96vh, 94rem);
    min-height: min(88vh, 80rem);
}

#modalRiskReport .modal-conts {
    flex: 1 1 auto;
    min-height: min(74vh, 66rem);
    max-height: none;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

#modalRiskReport .sims-modal-fields,
#modalRiskReport .risk-report-document {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

#modalRiskReport .risk-report-preview {
    flex: 1 1 auto;
    min-height: 0;
}

@media (max-width: 767px) {
    #modalRiskReport.sims-form-modal .modal-dialog.modal-lg {
        width: calc(100vw - 2.4rem);
        max-width: calc(100vw - 2.4rem);
        min-width: 0;
    }
}

/* 조치상세 — 전·후 사진 2열 */
.sims-risk-photo-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--krds-gap-5, 1.6rem);
    margin-top: var(--krds-gap-4, 1.2rem);
}

.sims-risk-photo-block__title {
    margin: 0 0 var(--krds-gap-3, 0.8rem);
    font-size: var(--krds-pc-font-size-label-medium, 1.7rem);
    font-weight: 700;
}

.sims-risk-photo-preview {
    margin-bottom: var(--krds-gap-3, 0.8rem);
    padding: var(--krds-gap-3, 0.8rem);
    border: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
    border-radius: var(--krds-radius-2, 0.4rem);
    background: var(--krds-color-neutral-5, #f5f6f8);
    text-align: center;
}

.sims-risk-photo-preview img {
    display: block;
    max-width: 100%;
    max-height: 14rem;
    margin: 0 auto var(--krds-gap-2, 0.4rem);
    object-fit: contain;
    border-radius: var(--krds-radius-1, 0.2rem);
}

.sims-risk-photo-hint,
.sims-risk-action-factor-summary {
    font-size: 1.3rem;
    color: var(--krds-light-color-text-subtle, #464c53);
}

.sims-form-modal .sims-form-grid.sims-form-grid--risk-action {
    grid-template-columns: 1fr;
    gap: var(--krds-gap-4, 1.2rem);
    margin-bottom: var(--krds-gap-2, 0.4rem);
}

@media (min-width: 768px) {
    .sims-risk-photo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sims-form-modal .sims-form-grid.sims-form-grid--risk-action {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sims-form-modal .sims-form-grid--risk-action > .fg-countermeasure {
        grid-column: 1 / -1;
    }
}

/* 위험성평가 보고서 — 미리보기 문서 */
.risk-report-document {
    color: var(--krds-color-neutral-90, #1a1a1a);
    font-size: 1.1rem;
    line-height: 1.45;
    --risk-report-body-font-size: 1.05rem;
    --risk-report-body-line-height: 1.35;
}

/* A4 가로(랜드스케이프) — 인쇄·실제 출력 기준 */
.risk-report-viewport {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
}

/* 미리보기 — 고정 비율 스테이지 (페이징은 스테이지 하단 오버레이) */
.risk-report-preview {
    width: 100%;
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.risk-report-preview__stage {
    position: relative;
    width: var(--risk-report-stage-width, 100%);
    max-width: 100%;
    aspect-ratio: 297 / 210;
    margin: 0 auto;
    background: var(--krds-color-neutral-10, #e8eaed);
    border-radius: var(--krds-radius-2, 0.4rem);
    overflow: hidden;
    flex-shrink: 0;
}

/* 이전/페이지/다음 — 미리보기 영역 하단 플로팅 레이어 */
.risk-report-preview__pager {
    position: absolute;
    left: 50%;
    bottom: var(--krds-gap-4, 1.2rem);
    z-index: 10;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--krds-gap-3, 0.8rem);
    width: auto;
    max-width: calc(100% - 2.4rem);
    padding: var(--krds-gap-2, 0.4rem) var(--krds-gap-4, 1.2rem);
    border-radius: 999px;
    border: 0.1rem solid rgba(255, 255, 255, 0.55);
    background: rgba(13, 43, 78, 0.88);
    box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.22);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    pointer-events: none;
}

.risk-report-preview__pager > * {
    pointer-events: auto;
}

.risk-report-preview__pager .krds-btn {
    min-height: 3.2rem;
    padding-inline: var(--krds-gap-4, 1.2rem);
}

.risk-report-preview__pager .krds-btn.tertiary {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.1);
}

.risk-report-preview__pager .krds-btn.tertiary:hover:not(:disabled) {
    background: rgba(255, 255, 255, 0.2);
}

.risk-report-preview__pager .krds-btn:disabled {
    opacity: 0.42;
}

.risk-report-preview__status {
    min-width: 5.6rem;
    text-align: center;
    font-size: 1.4rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.02em;
}

.risk-report-preview__stage .risk-report-viewport {
    position: absolute;
    inset: 0;
    padding: 0;
    background: transparent;
    gap: 0;
}

/* A4 landscape 페이지 — 인쇄 시 mm, 미리보기는 스테이지 100% */
.risk-report-page {
    width: 297mm;
    min-height: 210mm;
    box-sizing: border-box;
    background: #fff;
    box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.12);
    border: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
    flex-shrink: 0;
}

/* 모달 미리보기 — 한 페이지씩, 스테이지에 맞춤 */
body:not(.sims-risk-report-printing) #modalRiskReport .risk-report-preview__stage .risk-report-page {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-width: none;
    aspect-ratio: auto;
    margin: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    box-shadow: none;
    border: none;
    overflow: hidden;
}

body:not(.sims-risk-report-printing) #modalRiskReport .risk-report-preview__stage .risk-report-page.is-preview-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    box-shadow: 0 0.2rem 0.8rem rgba(0, 0, 0, 0.1);
    border: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
    z-index: 1;
}

body:not(.sims-risk-report-printing) #modalRiskReport .risk-report-preview__stage .risk-report-page__inner {
    width: 1122px;
    height: 794px;
    min-height: 794px;
    max-height: 794px;
    padding: 10mm 14mm 8mm;
    overflow: hidden;
    transform: scale(var(--risk-report-preview-scale, 1));
    transform-origin: top left;
    box-sizing: border-box;
}

.risk-report-page__inner {
    display: flex;
    flex-direction: column;
    min-height: 210mm;
    padding: 10mm 14mm 8mm;
    box-sizing: border-box;
}

.risk-report-page__heading {
    margin-bottom: var(--krds-gap-3, 0.8rem);
    padding-bottom: var(--krds-gap-2, 0.4rem);
    border-bottom: 0.1rem solid var(--krds-color-neutral-30, #cdd1d5);
}

.risk-report-page__title {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 700;
}

.risk-report-page__subtitle {
    margin: var(--krds-gap-1, 0.2rem) 0 0;
    font-size: 1rem;
    color: var(--krds-light-color-text-subtle, #464c53);
}

.risk-report-page__body {
    flex: 1 1 auto;
}

.risk-report-page__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--krds-gap-4, 1.2rem);
    margin-top: auto;
    padding-top: var(--krds-gap-3, 0.8rem);
    border-top: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
    font-size: 0.95rem;
    color: var(--krds-light-color-text-subtle, #464c53);
}

.risk-report-page--cover .risk-report-header--cover {
    margin-bottom: var(--krds-gap-6, 2.4rem);
    padding-bottom: var(--krds-gap-5, 1.6rem);
    border-bottom: 0.2rem solid var(--krds-color-neutral-90, #1a1a1a);
    text-align: center;
}

.risk-report-page--cover .risk-report-title {
    font-size: 2.6rem;
}

.risk-report-cover-note {
    margin: var(--krds-gap-5, 1.6rem) 0 0;
    padding: var(--krds-gap-4, 1.2rem);
    font-size: 1.3rem;
    color: var(--krds-light-color-text-subtle, #464c53);
    background: var(--krds-color-neutral-5, #f5f6f8);
    border-radius: var(--krds-radius-2, 0.4rem);
}

/* 공식 양식 — 이중 테두리 제목 */
.risk-report-official-title {
    margin-bottom: var(--krds-gap-4, 1.2rem);
    padding: var(--krds-gap-3, 0.8rem) var(--krds-gap-4, 1.2rem);
    border: 0.25rem double var(--krds-color-neutral-90, #1a1a1a);
    text-align: center;
}

.risk-report-official-title__main {
    margin: 0 0 var(--krds-gap-2, 0.4rem);
    font-size: 1.85rem;
    font-weight: 700;
    letter-spacing: 0.28em;
    line-height: 1.35;
}

.risk-report-official-title__sub {
    margin: 0;
    font-size: 1.05rem;
    color: var(--krds-light-color-text-subtle, #464c53);
    letter-spacing: -0.01em;
}

/* 공식 양식 — 평가 기본정보 2×2 표 */
.risk-report-info-table {
    width: 100%;
    margin-bottom: var(--krds-gap-4, 1.2rem);
    border-collapse: collapse;
    table-layout: fixed;
    font-size: var(--risk-report-body-font-size, 1.05rem);
}

.risk-report-info-table th,
.risk-report-info-table td {
    padding: 0.45rem 0.55rem;
    border: 0.1rem solid var(--krds-color-neutral-40, #b1b8be);
    vertical-align: middle;
    word-break: break-word;
}

.risk-report-info-table th {
    width: 14%;
    background: var(--krds-color-neutral-10, #e8eaed);
    font-weight: 700;
    text-align: center;
}

.risk-report-info-table td {
    width: 36%;
    text-align: center;
}

.risk-report-info-table__method {
    color: var(--krds-color-primary-50, #246beb);
    font-weight: 700;
}

.risk-report-header {
    margin-bottom: var(--krds-gap-5, 1.6rem);
    padding-bottom: var(--krds-gap-4, 1.2rem);
    border-bottom: 0.2rem solid var(--krds-color-neutral-90, #1a1a1a);
}

.risk-report-title {
    margin: 0 0 var(--krds-gap-2, 0.4rem);
    font-size: 2.2rem;
    font-weight: 700;
}

.risk-report-print-date {
    margin: 0;
    font-size: 1.3rem;
    color: var(--krds-light-color-text-subtle, #464c53);
}

.risk-report-section {
    margin-bottom: var(--krds-gap-6, 2.4rem);
}

.risk-report-section__title {
    margin: 0 0 var(--krds-gap-3, 0.8rem);
    font-size: 1.7rem;
    font-weight: 700;
}

.risk-report-dl {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--krds-gap-2, 0.4rem) var(--krds-gap-5, 1.6rem);
    margin: 0;
}

.risk-report-dl > div {
    display: grid;
    grid-template-columns: 10rem 1fr;
    gap: var(--krds-gap-3, 0.8rem);
}

.risk-report-dl dt {
    margin: 0;
    font-weight: 700;
    color: var(--krds-light-color-text-subtle, #464c53);
}

.risk-report-dl dd {
    margin: 0;
}

.risk-report-table-wrap {
    border-top: 0.2rem solid var(--krds-color-neutral-90, #1a1a1a);
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

/* 가로 A4 — 공식 양식 7열 요인 표 */
.risk-report-table--landscape {
    table-layout: fixed;
    width: 100% !important;
    max-width: 100%;
    border-collapse: collapse;
}

.risk-report-table--landscape .col-no {
    width: 4%;
}

.risk-report-table--landscape .col-process {
    width: 8%;
}

.risk-report-table--landscape .col-scenario {
    width: 26%;
}

.risk-report-table--landscape .col-action {
    width: 30%;
}

.risk-report-table--landscape .col-schedule {
    width: 10%;
}

.risk-report-table--landscape .col-assignee {
    width: 9%;
}

.risk-report-table--landscape .col-law {
    width: 13%;
}

.risk-report-table-wrap.risk-report-table-wrap .risk-report-table--landscape th,
.risk-report-table-wrap.risk-report-table-wrap .risk-report-table--landscape td {
    font-size: var(--risk-report-body-font-size, 1.05rem) !important;
    padding: 0.35rem 0.4rem !important;
    vertical-align: top !important;
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: anywhere;
    line-height: var(--risk-report-body-line-height, 1.35) !important;
    border: 0.1rem solid var(--krds-color-neutral-40, #b1b8be);
    background-color: transparent !important;
    color: var(--krds-color-neutral-90, #1a1a1a) !important;
}

.risk-report-table-wrap.risk-report-table-wrap .risk-report-table--landscape thead th {
    background: var(--krds-color-neutral-10, #e8eaed) !important;
    font-weight: 700;
    text-align: center;
    vertical-align: middle;
    border-bottom: 0.1rem solid var(--krds-color-neutral-40, #b1b8be) !important;
}

.risk-report-table--landscape tbody td.col-scenario,
.risk-report-table--landscape tbody td.col-action,
.risk-report-table--landscape tbody td.col-law {
    text-align: left;
}

.risk-report-page--main .risk-report-page__body,
.risk-report-page--continued .risk-report-page__body {
    min-width: 0;
    overflow: hidden;
}

/* 하단 확인·서명 — 가로 양식 하단 여백 축소 */
.risk-report-signoff {
    margin-top: var(--krds-gap-4, 1.2rem);
    padding-top: var(--krds-gap-3, 0.8rem);
    text-align: center;
}

.risk-report-signoff__statement {
    margin: 0 0 var(--krds-gap-3, 0.8rem);
    font-size: 1.05rem;
    line-height: 1.5;
}

.risk-report-signoff__date {
    margin: 0 0 var(--krds-gap-4, 1.2rem);
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.risk-report-signoff__signature {
    margin: 0;
    font-size: 1.05rem;
}

.risk-report-signoff__line {
    display: inline-block;
    min-width: 14rem;
    border-bottom: 0.1rem solid var(--krds-color-neutral-90, #1a1a1a);
    vertical-align: bottom;
}

.risk-report-empty,
.risk-report-placeholder {
    margin: 0;
    padding: var(--krds-gap-4, 1.2rem);
    text-align: center;
    color: var(--krds-light-color-text-subtle, #464c53);
    background: var(--krds-color-neutral-5, #f5f6f8);
    border-radius: var(--krds-radius-2, 0.4rem);
}

.risk-report-photo-list {
    display: grid;
    gap: var(--krds-gap-5, 1.6rem);
}

.risk-report-photo-item {
    padding: var(--krds-gap-4, 1.2rem);
    border: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
    border-radius: var(--krds-radius-2, 0.4rem);
}

.risk-report-photo-item__title {
    margin: 0 0 var(--krds-gap-3, 0.8rem);
    font-size: 1.5rem;
    font-weight: 700;
}

.risk-report-photo-pair {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--krds-gap-4, 1.2rem);
}

.risk-report-photo-figure {
    margin: 0;
    text-align: center;
}

.risk-report-photo-figure figcaption {
    margin-bottom: var(--krds-gap-2, 0.4rem);
    font-weight: 700;
    font-size: 1.3rem;
}

.risk-report-photo-figure img {
    max-width: 100%;
    max-height: 18rem;
    object-fit: contain;
    border: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
    border-radius: var(--krds-radius-1, 0.2rem);
}

.risk-report-photo-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 8rem;
    padding: var(--krds-gap-3, 0.8rem);
    font-size: 1.3rem;
    color: var(--krds-light-color-text-subtle, #464c53);
    background: var(--krds-color-neutral-5, #f5f6f8);
    border-radius: var(--krds-radius-2, 0.4rem);
}

.risk-report-footer {
    margin-top: var(--krds-gap-6, 2.4rem);
    padding-top: var(--krds-gap-4, 1.2rem);
    border-top: 0.1rem solid var(--krds-color-neutral-20, #e0e0e0);
    font-size: 1.2rem;
    color: var(--krds-light-color-text-subtle, #464c53);
}

@media (min-width: 768px) {
    .risk-report-dl {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .risk-report-photo-pair {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* 보고서 인쇄 — #printable-risk-report 만 출력 */
@media print {
    @page {
        size: A4 landscape;
        margin: 10mm 14mm 8mm;
    }

    body.sims-risk-report-printing header,
    body.sims-risk-report-printing footer,
    body.sims-risk-report-printing main {
        display: none !important;
    }

    body.sims-risk-report-printing #modalRiskReport {
        position: static !important;
        display: block !important;
        visibility: visible !important;
        overflow: visible !important;
    }

    body.sims-risk-report-printing #modalRiskReport .modal-back,
    body.sims-risk-report-printing #modalRiskReport .modal-btn,
    body.sims-risk-report-printing #modalRiskReport .btn-close,
    body.sims-risk-report-printing #modalRiskReport .sims-modal-desc {
        display: none !important;
    }

    body.sims-risk-report-printing #modalRiskReport .modal-dialog {
        max-width: none !important;
        width: 100% !important;
        margin: 0 !important;
        transform: none !important;
    }

    body.sims-risk-report-printing #modalRiskReport .modal-content {
        max-height: none !important;
        box-shadow: none !important;
        border: none !important;
    }

    body.sims-risk-report-printing #modalRiskReport .modal-header {
        border-bottom: 0.2rem solid #000;
    }

    body.sims-risk-report-printing #modalRiskReport .modal-conts {
        max-height: none !important;
        overflow: visible !important;
    }

    body.sims-risk-report-printing #printable-risk-report {
        display: block !important;
    }

    body.sims-risk-report-printing .risk-report-preview__pager {
        display: none !important;
    }

    body.sims-risk-report-printing .risk-report-preview__stage {
        width: auto !important;
        max-width: none !important;
        aspect-ratio: auto !important;
        height: auto !important;
        position: static !important;
        overflow: visible !important;
        background: transparent !important;
    }

    body.sims-risk-report-printing .risk-report-viewport {
        display: block;
        position: static;
        width: auto;
        height: auto;
        padding: 0;
        background: transparent;
        gap: 0;
    }

    body.sims-risk-report-printing .risk-report-page {
        position: static !important;
        width: 297mm !important;
        max-width: none;
        aspect-ratio: auto;
        min-height: 210mm !important;
        height: auto;
        margin: 0;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        box-shadow: none;
        border: none;
        overflow: visible !important;
        page-break-after: always;
        break-after: page;
    }

    body.sims-risk-report-printing .risk-report-page:last-child {
        page-break-after: auto;
        break-after: auto;
    }

    body.sims-risk-report-printing .risk-report-page__inner {
        min-height: 210mm !important;
        width: auto !important;
        height: auto !important;
        max-height: none !important;
        transform: none !important;
        padding: 10mm 14mm 8mm !important;
    }

    body.sims-risk-report-printing .risk-report-official-title__main {
        font-size: 18pt;
        letter-spacing: 0.25em;
    }

    body.sims-risk-report-printing .risk-report-table--landscape th,
    body.sims-risk-report-printing .risk-report-table--landscape td {
        font-size: 9pt !important;
        line-height: 1.35 !important;
        padding: 1.5mm 2mm !important;
    }

    body.sims-risk-report-printing .risk-report-info-table {
        font-size: 9pt;
    }

    .risk-report-photo-figure img {
        max-height: 14rem;
    }
}

/* PC: 사업 등록 모달 — 사업명 전체 / 소속·장소 1×2 / 기간 전체 (§모달_템플릿 2.4) */
@media (min-width: 768px) {
    .sims-form-modal .sims-form-grid.sims-form-grid--biz {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .sims-form-modal .sims-form-grid--biz > .fg-name {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .sims-form-modal .sims-form-grid--biz > .fg-dept {
        grid-column: 1;
        grid-row: 2;
    }

    .sims-form-modal .sims-form-grid--biz > .fg-place {
        grid-column: 2;
        grid-row: 2;
    }

    .sims-form-modal .sims-form-grid--biz > .fg-period {
        grid-column: 1 / -1;
        grid-row: 3;
    }
}

/* 모바일(~767px): 사업 등록 모달 — DOM 순서대로 1열 스택 */
@media (max-width: 767px) {
    .sims-form-modal .sims-form-grid--biz > .fg-name {
        grid-row: 1;
    }

    .sims-form-modal .sims-form-grid--biz > .fg-dept {
        grid-row: 2;
    }

    .sims-form-modal .sims-form-grid--biz > .fg-place {
        grid-row: 3;
    }

    .sims-form-modal .sims-form-grid--biz > .fg-period {
        grid-row: 4;
    }
}

@media (min-width: 768px) {
    #modalBizRegister.sims-form-modal .modal-dialog.modal-md {
        max-width: 56rem;
    }

    #modalBizRegister .sims-form-grid--biz {
        gap: var(--krds-gap-4, 1.2rem) var(--krds-gap-6, 2.4rem);
    }

    #modalBizRegister .sims-form-grid--biz .biz-period-inline .krds-input {
        min-width: 11rem !important;
    }
}

/* 모달 내 선임정보 — 1×2 (modal-lg, 근로자 모달 기간 행과 동일 패턴) */
@media (min-width: 768px) {
    .sims-form-modal .sims-form-grid.sims-form-grid--sup-appoint {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .sims-form-modal .sims-form-grid--sup-appoint > .fg-sup-name {
        grid-column: 1;
        grid-row: 1;
    }

    .sims-form-modal .sims-form-grid--sup-appoint > .fg-sup-tel {
        grid-column: 2;
        grid-row: 1;
    }

    .sims-form-modal .sims-form-grid--sup-appoint > .fg-sup-dept {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .sims-form-modal .sims-form-grid--sup-appoint > .fg-sup-period {
        grid-column: 1 / -1;
        grid-row: 3;
    }
}

/* 모달 내 근로자 — 3열 (modal-lg) */
@media (min-width: 992px) {
    .sims-form-modal .sims-form-grid.sims-form-grid--worker {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sims-form-modal .sims-form-grid--worker > .fg-period {
        grid-column: 1 / -1;
    }
}

/* =========================================
   위험성 평가 — 3-Tier 인라인 레이아웃
   ========================================= */

/* sticky 타이틀·스테퍼 (시각 단계 표시는 스테퍼만 — 중복 문구 제거) */
.risk-page-step-sticky {
    position: sticky;
    top: 0;
    z-index: 25;
    margin-bottom: var(--sims-search-zone-to-list-gap, var(--krds-gap-5, 1.6rem));
    padding-bottom: var(--krds-gap-4, 1.2rem);
    background: var(--krds-light-color-surface-white, #fff);
    border-bottom: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
}

.risk-page-step-sticky .page-tit-area--with-step {
    margin-bottom: 0;
}

/* 단계 클릭·선택 시 스크롤 앵커 — sticky 바 높이만큼 여백 */
.risk-md-layout .risk-tier-sub-tit-wrap,
.risk-md-layout #mdMasterPanel,
.risk-md-layout #riskAssessmentPanel,
.risk-md-layout #riskDetailPanel {
    scroll-margin-top: var(--sims-risk-step-sticky-height, 10rem);
}

@media (max-width: 767px) {
    .page-tit-area--with-step {
        flex-direction: column;
        align-items: stretch;
    }

    .page-tit-area--with-step .page-tit-extra--step {
        margin-left: 0;
        width: 100%;
    }
}

.risk-md-layout.sims-md-layout--stack {
    gap: var(--krds-gap-5, 1.6rem);
}

/* 위험성평가 사업목록 — 조회·선택 전용 (일괄작업·목록표시 셀렉트 숨김) */
.sims-md-master--readonly .sch-sort-pageunit {
    display: none !important;
}

/* Tier2: 평가 목록 */
.sims-md-tier2.risk-assessment-panel {
    width: 100%;
    padding-top: 0;
}

.sims-md-tier2.risk-assessment-panel .risk-tier-sub-tit-wrap {
    padding-top: var(--krds-gap-5, 1.6rem);
}

.sims-md-tier2.risk-assessment-panel.is-collapsed {
    display: none;
}

.risk-tier-tit {
    margin: 0 0 var(--krds-gap-4, 1.2rem);
    font-size: var(--krds-pc-font-size-heading-xsmall, 1.9rem);
    font-weight: 700;
    color: var(--krds-light-color-text-basic, #1e2124);
}

.md-assessment-row {
    cursor: pointer;
}

.md-assessment-row:hover > td {
    background: var(--krds-light-color-surface-gray-subtle, #f4f5f6);
}

.md-master-table .md-master-row.is-selected:hover > td,
.md-assessment-row.is-selected:hover > td {
    background-color: var(--krds-light-color-surface-primary-subtlest, #eef2ff);
}

/* Tier3: 상세 헤더 액션 */
.risk-detail-zone-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--krds-gap-4, 1.2rem);
    margin-bottom: var(--krds-gap-4, 1.2rem);
}

.risk-detail-zone-head .md-detail-zone-head {
    margin-bottom: 0;
    flex: 1 1 auto;
    min-width: 0;
}

.risk-detail-actions {
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--krds-gap-3, 0.8rem);
}

.risk-detail-actions .krds-btn.danger {
    margin-left: var(--krds-gap-2, 0.4rem);
}

/* 평가 요약 블록 */
.risk-overview-block {
    margin-bottom: var(--krds-gap-5, 1.6rem);
    padding: var(--krds-gap-5, 1.6rem);
    background: var(--krds-light-color-surface-gray-subtle, #f4f5f6);
    border: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
    border-radius: var(--krds-radius-medium, 0.6rem);
}

.risk-overview-dl {
    margin: 0;
    display: grid;
    gap: var(--krds-gap-3, 0.8rem);
}

.risk-overview-row {
    display: grid;
    grid-template-columns: 8rem 1fr 8rem 1fr;
    gap: var(--krds-gap-2, 0.4rem) var(--krds-gap-4, 1.2rem);
    align-items: baseline;
}

.risk-overview-row dt {
    margin: 0;
    font-size: var(--krds-pc-font-size-label-small, 1.4rem);
    font-weight: 600;
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.risk-overview-row dd {
    margin: 0;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-light-color-text-basic, #1e2124);
}

.risk-overview-row .risk-overview-name {
    grid-column: 2 / -1;
    font-weight: 600;
}

@media (max-width: 767px) {
    .risk-overview-row {
        grid-template-columns: 7rem 1fr;
    }

    .risk-overview-row .risk-overview-name {
        grid-column: 2;
    }
}

/* 공정 필터 — 위험요인 목록 상단(KRDS search-list-top · sch-sort 패턴) */
.risk-factor-list-top {
    align-items: center;
    gap: var(--krds-gap-4, 1.2rem);
}

.risk-process-filter {
    display: inline-flex;
    align-items: center;
    gap: var(--krds-gap-3, 0.8rem);
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.risk-process-filter__label {
    margin: 0;
    font-weight: 600;
    font-size: var(--krds-pc-font-size-label-small, 1.4rem);
    white-space: nowrap;
    color: var(--krds-color-neutral-90, #1a1a1a);
}

.risk-process-filter__select,
.risk-process-filter .krds-form-select.medium {
    min-width: 14rem;
    max-width: 24rem;
    width: auto;
    min-height: var(--sims-list-sort-row-height, var(--krds-size-height-5, 3.2rem));
}

.risk-factor-method-hint {
    margin: 0 0 var(--krds-gap-3, 0.8rem);
    font-size: 1.3rem;
    color: var(--krds-light-color-text-subtle, #464c53);
}

/* 위험요인 그리드 */
.risk-factor-section {
    margin-top: var(--krds-gap-4, 1.2rem);
}

@media (max-width: 767px) {
    .risk-factor-list-top {
        flex-direction: column;
        align-items: stretch;
    }

    .risk-process-filter {
        width: 100%;
        justify-content: flex-start;
    }

    .risk-process-filter__select,
    .risk-process-filter .krds-form-select.medium {
        flex: 1 1 auto;
        max-width: none;
    }
}

.risk-factor-table .risk-factor-subhead th {
    font-size: var(--krds-pc-font-size-label-xsmall, 1.3rem);
    font-weight: 500;
    background: var(--krds-light-color-surface-gray-subtler, #f9fafb);
}

.risk-score-cell .risk-score-value {
    display: inline-block;
    min-width: 2.4rem;
    padding: 0.2rem 0.6rem;
    border-radius: 0.4rem;
    background: var(--krds-light-color-element-gray, #818181);
    color: #fff;
    font-weight: 700;
    font-size: var(--krds-pc-font-size-label-small, 1.4rem);
}
.risk-score-cell .risk-score-value.bg-danger{
	background: var(--krds-light-color-element-danger, #cc2222);
}
.risk-score-cell .risk-score-value.bg-warning{
	background: var(--krds-light-color-element-warning, #f59e0b);
}
.risk-score-cell .risk-score-value.bg-success{
	background: var(--krds-light-color-element-primary, #25ac17);
}

.risk-done-date {
    font-size: var(--krds-pc-font-size-label-xsmall, 1.3rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
}

.risk-evidence-badge {
    white-space: nowrap;
}

.risk-method-badge {
    white-space: nowrap;
}

.risk-result-file-link {
    color: var(--krds-light-color-text-primary, #2563eb);
    text-decoration: underline;
    font-weight: 600;
}

.risk-result-file-link:hover {
    text-decoration: none;
}

.risk-legal-basis-cell,
.risk-checklist-item-cell {
    word-break: keep-all;
    overflow-wrap: break-word;
    line-height: 1.45;
}

.risk-check-badge {
    white-space: nowrap;
}

.risk-overview-row--file dd {
    word-break: break-all;
}

/* 검색 필터 — 위험성 고급(평가명·삭제포함) — 1행은 사업관리와 공통 flex 규칙 사용 */
.search-top-box .risk-sch-filter .filter-form.risk-filter-advanced {
    align-items: center;
    flex-wrap: wrap;
    gap: var(--sims-search-zone-field-gap, var(--krds-gap-4, 1.2rem));
    width: 100%;
}

.search-top-box .risk-sch-filter .filter-form.risk-filter-advanced > .risk-filter-name {
    flex: 1 1 24rem;
    max-width: 36rem;
    min-width: 0;
}

.search-top-box .risk-sch-filter .filter-form.risk-filter-advanced > .risk-filter-name .krds-input.medium {
    min-height: var(--sims-advanced-expand-row-height, 3.2rem);
}

.search-top-box .risk-sch-filter .filter-form.risk-filter-advanced > .risk-filter-check {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    min-height: var(--sims-advanced-expand-row-height, 3.2rem);
}

.search-top-box .risk-sch-filter .filter-form.risk-filter-advanced > .risk-filter-check .krds-form-check {
    display: inline-flex;
    align-items: center;
    min-height: var(--sims-advanced-expand-row-height, 3.2rem);
    margin: 0;
}

.search-top-box .risk-sch-filter .filter-form.risk-filter-advanced > .risk-filter-advanced-action {
    margin-left: auto;
    align-self: center;
    min-height: var(--sims-control-height, 4rem);
}

@media (max-width: 1023px) {
    .search-top-box .biz-sch-filter .filter-form.biz-filter-primary,
    .search-top-box .risk-sch-filter .filter-form.risk-filter-primary {
        flex-wrap: wrap;
    }

    .search-top-box .biz-sch-filter .filter-form.biz-filter-primary > .biz-filter-name {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .search-top-box .risk-sch-filter .filter-form.risk-filter-primary > .risk-filter-action {
        flex: 1 1 100%;
    }

    .search-top-box .risk-sch-filter .filter-form.risk-filter-advanced > .risk-filter-name {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .search-top-box .risk-sch-filter .filter-form.risk-filter-advanced > .risk-filter-advanced-action {
        margin-left: 0;
        width: 100%;
    }
}

/* =========================================
   메뉴설명 관리 — 분할 패널 (/gen/menu/mng)
   좌: KRDS side-navigation 트리 · 우: 설명 편집 폼
   ========================================= */

.menu-desc-split {
    display: flex;
    align-items: flex-start;
    gap: var(--krds-gap-6, 2.4rem);
    margin-top: var(--krds-gap-4, 1.2rem);
}

.menu-desc-split__tree {
    flex: 0 0 28rem;
    max-width: 100%;
    border: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
    border-radius: var(--krds-radius-medium2, 0.6rem);
    background: var(--krds-light-color-surface-white, #fff);
    overflow: hidden;
}

.menu-desc-split__tree .krds-side-navigation {
    padding: var(--krds-gap-4, 1.2rem) 0;
}

.menu-desc-split__tree .lnb-tit {
    padding-left: var(--krds-gap-5, 1.6rem);
    padding-right: var(--krds-gap-5, 1.6rem);
}

.menu-desc-split__tree .lnb-link.selected {
    color: var(--krds-side-navigation--color-text-selected, var(--krds-light-color-text-secondary));
    font-weight: 700;
    background-color: var(--krds-side-navigation--color-action-selected, #ecf2fe);
}

.menu-desc-tree__label {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
}

.menu-desc-split__tree .lnb-link {
    display: flex;
    align-items: center;
    gap: var(--krds-gap-2, 0.4rem);
    width: 100%;
}

.menu-desc-tree__badge {
    flex: 0 0 auto;
    padding: 0.1rem 0.6rem;
    border-radius: var(--krds-radius-small, 0.4rem);
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--krds-light-color-text-primary, #0b50d0);
    background: var(--krds-light-color-surface-primary-subtler, #ecf2fe);
}

/* KRDS 토스트 — 하단 중앙 알림 */
.sims-toast {
    position: fixed;
    left: 50%;
    bottom: 2.4rem;
    z-index: 10050;
    max-width: min(48rem, calc(100vw - 3.2rem));
    padding: 1.2rem 1.6rem;
    border-radius: var(--krds-radius-medium2, 0.6rem);
    color: #fff;
    background: var(--krds-light-color-surface-inverse, #1e2124);
    box-shadow: 0 0.2rem 0 0 rgba(0, 0, 0, 0.1), 0 0.4rem 0.8rem 0 rgba(0, 0, 0, 0.1);
    opacity: 0;
    transform: translate(-50%, 1rem);
    transition: opacity 0.25s ease, transform 0.25s ease;
    pointer-events: none;
}

.sims-toast.is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

.menu-desc-split__editor {
    flex: 1 1 auto;
    min-width: 0;
}

.menu-desc-empty {
    padding: var(--krds-gap-8, 3.2rem) var(--krds-gap-5, 1.6rem);
    text-align: center;
    border: 1px dashed var(--krds-light-color-border-gray, #b1b8be);
    border-radius: var(--krds-radius-medium2, 0.6rem);
    background: var(--krds-light-color-surface-gray-subtler, #f4f5f6);
}

.menu-desc-empty__text {
    margin: 0;
    color: var(--krds-light-color-text-subtle, #464c53);
    font-size: var(--krds-pc-font-size-body-medium, 1.7rem);
}

.menu-desc-form__header .menu-desc-form__selected-title {
    margin: 0;
    font-size: var(--krds-pc-font-size-body-medium, 1.7rem);
    font-weight: 700;
    color: var(--krds-light-color-text-basic, #1e2124);
}

.menu-desc-panel {
    border: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
    border-radius: var(--krds-radius-medium2, 0.6rem);
    background: var(--krds-light-color-surface-white, #fff);
    overflow: hidden;
}

.menu-desc-form__header {
    padding: var(--krds-gap-5, 1.6rem) var(--krds-gap-6, 2.4rem);
    border-bottom: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
    background: var(--krds-light-color-surface-gray-subtler, #f4f5f6);
}

.menu-desc-form .menu-desc-form__fieldset {
    max-width: none !important;
    margin: 0 !important;
    padding: var(--krds-gap-6, 2.4rem) !important;
    border-top: none;
}

.menu-desc-form .menu-desc-form__actions {
    margin: 0 !important;
    max-width: none !important;
    padding: var(--krds-gap-5, 1.6rem) var(--krds-gap-6, 2.4rem);
    border-top: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
    justify-content: flex-end;
}

/* textarea · 참고파일 — form-conts 열 전체 너비 정렬 */
.menu-desc-form .fieldset.input-form > .form-group .form-conts.menu-desc-form__conts--stack {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    gap: var(--krds-gap-3, 0.8rem);
}

.menu-desc-form__textarea-wrap,
.menu-desc-form__textarea,
.menu-desc-form__file-area,
.menu-desc-form__file-area > .krds-file-upload.sims-file-dropzone {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.menu-desc-form .form-hint.menu-desc-form__hint {
    flex: 1 1 100%;
    width: 100%;
    margin-top: 0;
}

.menu-desc-file-list {
    margin: 0;
    padding: 0;
    list-style: none;
    border: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
    border-radius: var(--krds-radius-medium, 0.4rem);
}

.menu-desc-file-list__item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--krds-gap-3, 0.8rem);
    padding: var(--krds-gap-3, 0.8rem) var(--krds-gap-4, 1.2rem);
}

.menu-desc-file-list__item + .menu-desc-file-list__item {
    border-top: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
}

.menu-desc-file-list__name {
    flex: 1 1 auto;
    min-width: 0;
    word-break: break-all;
}

.menu-desc-file-list__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--krds-gap-2, 0.4rem);
    margin-left: auto;
}

/* 도움패널과 동일한 ↗ 미리보기 — PDF·HWP/HWPX만 표시 */
.menu-desc-file-list__preview.sims-help-attach-preview {
    flex-shrink: 0;
}

.menu-desc-file-list__add {
    margin-top: var(--krds-gap-3, 0.8rem);
}

.menu-desc-form__textarea {
    min-height: 10rem;
    resize: vertical;
}

@media (max-width: 1023px) {
    .menu-desc-split {
        flex-direction: column;
    }

    .menu-desc-split__tree {
        flex: 1 1 auto;
        width: 100%;
    }
}

.text-align-right {
    text-align: right;
}

.mb-0 {
    margin-bottom: 0;
}

.mb-1 {
    margin-bottom: 4px;
}

.mb-2 {
    margin-bottom: 8px;
}

.mb-3 {
    margin-bottom: 12px;
}

.mb-4 {
    margin-bottom: 16px;
}

.mb-5 {
    margin-bottom: 20px;
}

.mb-6 {
    margin-bottom: 24px;
}

.mt-0  { margin-top: 0; }
.mt-1  { margin-top: 4px; }
.mt-2  { margin-top: 8px; }
.mt-3  { margin-top: 12px; }
.mt-4  { margin-top: 16px; }
.mt-5  { margin-top: 20px; }
.mt-6  { margin-top: 24px; }

.ml-0  { margin-left: 0; }
.ml-1  { margin-left: 4px; }
.ml-2  { margin-left: 8px; }
.ml-3  { margin-left: 12px; }
.ml-4  { margin-left: 16px; }
.ml-5  { margin-left: 20px; }
.ml-6  { margin-left: 24px; }

.mr-0  { margin-right: 0; }
.mr-1  { margin-right: 4px; }
.mr-2  { margin-right: 8px; }
.mr-3  { margin-right: 12px; }
.mr-4  { margin-right: 16px; }
.mr-5  { margin-right: 20px; }
.mr-6  { margin-right: 24px; }

/* =============================================================================
   현장점검 — 4열 그리드 (PC)
   ============================================================================= */

.sims-form-grid.sims-form-grid--si {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--krds-gap-5, 1.6rem) var(--krds-gap-6, 2.4rem);
}

@media (min-width: 1024px) {
    .sims-form-grid.sims-form-grid--si {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    /* 좌 2열: 입력 필드 */
    .sims-form-grid--si > .fg-name     { grid-column: 1 / span 6; grid-row: 1; }
    .sims-form-grid--si > .fg-ty       { grid-column: 1 / span 1; grid-row: 2; }
    .sims-form-grid--si > .fg-pic      { grid-column: 2 / span 2; grid-row: 2; }
    .sims-form-grid--si > .fg-dt       { grid-column: 4 / span 3; grid-row: 2; }
    .sims-form-grid--si > .fg-file     { grid-column: 1 / span 6; grid-row: 3; }
    .sims-form-grid--si > .fg-rmrk     { grid-column: 1 / span 6; grid-row: 4; }

}

/* =============================================================================
   현장점검 — 첨부파일 영역
   ============================================================================= */

/* 1. 첨부파일 영역 전체 레이아웃 (좌: 리스트, 우: 버튼) */
.fg-file .form-conts {
    display: flex;
    gap: 12px;               /* 리스트와 버튼 사이 간격 */
    align-items: flex-start; /* 버튼이 위쪽에 맞춰지도록 설정 */
}

/* 2. 왼쪽 파일 리스트 영역 (남은 공간 모두 차지) */
.si-file-list {
    flex: 1;                 /* 남은 가로 영역 100% 사용 */
    display: flex;
    flex-direction: column;  /* 파일 항목을 세로로 배치 */
    gap: 8px;                /* 파일 항목 간의 상하 간격 */
}

/* 3. 개별 파일 항목 디자인 (예쁜 박스 형태) */
.si-file-item {
    display: flex;
    align-items: center;
    justify-content: space-between; /* 파일명은 좌측, X버튼은 우측 끝으로 */
    padding: 8px 14px;
    background-color: #f8f9fa;      /* 옅은 회색 배경 */
    border: 1px solid #e9ecef;      /* 부드러운 테두리 */
    border-radius: 6px;             /* 둥근 모서리 */
    font-size: 14px;
    min-height: 40px;               /* 입력창과 비슷한 높이 유지 */
}

/* 4. 파일명 (너무 길면 ... 으로 말줄임 처리) */
.si-file-name {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;        /* 넘치는 글자는 ... 표시 */
    margin-right: 12px;
    color: #333;
}

/* 5. 파일 삭제(X) 버튼 보정 */
.btn-si-file-remove {
    flex-shrink: 0;                 /* 찌그러짐 방지 */
    font-size: 16px;
    font-weight: bold;
    color: #868e96;
    padding: 0 4px;
}
.btn-si-file-remove:hover {
    color: #fa5252;                 /* 마우스 올리면 붉은색으로 (선택사항) */
}

/* 6. 오른쪽 [+ 첨부] 버튼 */
.btn-si-file-add {
    flex-shrink: 0;                 /* 너비가 줄어들지 않도록 고정 */
    height: 40px;                   /* 파일 항목 박스와 높이 맞춤 */
}
/* read only */
input[type="text"][readonly], input[type="password"][readonly], input[type="number"][readonly], input[type="date"][readonly], select[readonly], .input[readonly], textarea[readonly], button[readonly], .btn[readonly] {
    background-color: #f6f6f6;
    color: #888;
    cursor: default;
    outline: 0 none;
    border-color: #bcbcbc;
}

/* =========================================
   사업장/사용자 검색 필터 전용 스타일
   ========================================= */
/* 1. 라벨과 콤보박스 사이 여백 축소 */
.gen-search-filter .usr-filter-group {
    display: flex;
    align-items: center;
    gap: 0.2rem;
}

/* 라벨 텍스트 가운데 정렬 및 고정 너비 부여 */
.gen-search-filter .label {
    text-align: center;
    justify-content: center;
}

/* 2. 입력창 공통 너비 제어 */
.gen-search-filter .sw-input {
    width: 15rem;
}

.gen-search-filter .mw-input {
    width: 20rem;
}

/* 3. 레이아웃 정렬 제어: 이름 입력창이 남은 여백을 모두 차지하며 팽창하는 것 방지 */
.gen-search-filter .filter-form.biz-filter-primary > .biz-filter-name {
    flex: 0 0 auto;
}

/* 4. 레이아웃 정렬 제어: 검색 버튼 영역을 우측 끝으로 밀어냄 */
#usr-search-filter .filter-form.biz-filter-primary {
    gap: 1.8rem;
}

#bplc-search-filter .filter-form.biz-filter-primary {
    gap: 1.6rem;
}

.gen-search-filter .filter-form.biz-filter-primary > .biz-filter-action {
    margin-left: auto !important;
}

/* 5. 모바일/태블릿 등 좁은 화면에서 검색 버튼이 100% 너비로 떨어질 때 정렬 보정 */
@media (max-width: 1023px) {
    .gen-search-filter .filter-form.biz-filter-primary > .biz-filter-action {
        margin-left: 0;
        width: 100%;
    }
}

#relawMstTbody tr[data-relaw-mst-sn] {
    cursor: pointer;
    user-select: none;
    outline: none;
}

#relawMstTbody tr[data-relaw-mst-sn]:focus {
    outline: none;
}

#relawMstTbody tr[data-relaw-mst-sn]:hover td {
    background-color: #f5fbff !important;
}

#relawMstTbody tr.relaw-mst-selected td {
    background-color: #eaf7fe !important;
}

/* ── 관계법령 조치/증빙 아코디언 패널 ──────────────────────────────────── */

/* 토글 버튼 아이콘 회전 */
.relaw-actn-toggle-btn .relaw-toggle-icon {
    transition: transform 0.2s ease;
    display: inline-block;
    vertical-align: middle;
    margin-left: 0.2rem;
    width: 1em;
    height: 1em;
}
.relaw-actn-toggle-btn[aria-expanded="true"] .relaw-toggle-icon {
    transform: rotate(180deg);
}

/* 패널 셀 배경 */
.relaw-actn-td {
    padding: 1.2rem 1.5rem !important;
    background: #f5f7fa !important;
    border-top: 2px solid #d0d5dd;
}

/* 패널 내부 카드 */
.relaw-actn-card {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    font-size: 1.5rem;
}

/* 2-컬럼 그리드 */
.relaw-actn-body {
    display: flex;
    gap: 1.5rem;
    flex-direction: column;
}
/*@media (max-width: 900px) {
    .relaw-actn-body { grid-template-columns: 1fr; }
}*/

/* 공통 컬럼 */
.relaw-actn-col {
    display: flex;
    flex-direction: column;
}

/* 오른쪽: 증빙파일 */
.relaw-actn-col--right {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 0.625rem;
    padding: 0.875rem 1rem;
}

/* 증빙파일 헤더 (라벨 + 파일첨부 버튼) */
.relaw-file-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.9rem;
}

/* 증빙파일 스크롤 영역 */
.relaw-file-scroll {
    overflow-y: auto;
    max-height: 300px;
}

/* 하단 푸터 */
.relaw-actn-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid #e2e8f0;
    padding-top: 1rem;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.relaw-actn-footer-btns {
    display: flex;
    gap: 0.5rem;
}

/* 이행상태 행 */
.relaw-actn-stts-row {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: nowrap;
}
.relaw-actn-stts-label {
    white-space: nowrap;
    color: #344054;
}

/* 파일 첨부 버튼 (label) */
.relaw-file-upload-label,
.sims-file-attach-label {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    flex-shrink: 0;
}
.relaw-file-upload-label input[type="file"],
.sims-file-attach-label input[type="file"] {
    display: none;
}

/* box-group-area 파일 목록 */
.relaw-file-list .box-group-area,
.sims-fld-file-list .box-group-area {
    margin: 0;
}

.sims-no-file {
    display: block;
    font-size: 0.875rem;
    color: #98a2b3;
    padding: 0.4rem 0;
}

/* 첨부파일 그룹 */
.sims-fld-file-group {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 0.625rem;
    padding: 0.875rem 1rem;
    width: 100%
}

.sims-fld-file-group-head {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0.75rem;
}

/* 이미 저장된 첨부(dclr-persisted-files)와 아직 저장 전인 새 선택(dclr-staged-files) 사이 여백 */
.dclr-persisted-files:not(:empty) + .dclr-staged-files:not(:empty) {
    margin-top: 0.75rem;
}

/* =============================================================================
   유해위험요인 신고 — 관리자용 상세 페이지 (총괄/산업 공용)
   ============================================================================= */

.sims-hrf-detail {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

/* 상단 배너 — 신고번호/등록일/제목 + 접수·조치 상태 */
.sims-hrf-detail-banner {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    padding: 1.25rem 1.5rem;
}

.sims-hrf-detail-banner-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.sims-hrf-detail-banner-meta {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.4rem;
}

.sims-hrf-detail-banner-date {
    font-size: 1.2rem;
    color: #94a3b8;
}

.sims-hrf-detail-banner-tit {
    font-size: 1.7rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0;
}

.sims-hrf-detail-status-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: #f8fafc;
    border: 1px solid #f1f5f9;
    border-radius: 0.75rem;
    padding: 0.6rem 1rem;
}

.sims-hrf-detail-status-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
}

.sims-hrf-detail-status-label {
    font-size: 1.1rem;
    font-weight: 500;
    color: #94a3b8;
}

.sims-hrf-detail-status-divider {
    width: 1px;
    height: 2rem;
    background: #e2e8f0;
}

/* 개별 섹션 카드 (기본정보/신고내용/첨부파일/접수·조치현황 공통) */
.sims-hrf-detail-section {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.sims-hrf-detail-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.9rem 1.5rem;
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}

.sims-hrf-detail-section-tit {
    font-size: 1.4rem;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
}

/* 큰 구분 타이틀 — 신고 내용과 조치 관련 영역 사이를 시각적으로 명확히 분리 */
.sims-hrf-detail-divider-tit {
    font-size: 1.8rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 1.25rem;
    padding-top: 1.75rem;
    border-top: 2px solid #e2e8f0;
}

.sims-hrf-detail-section-body {
    padding: 1.5rem;
}

/* 접수/조치 정보 카드 (접수 및 조치 현황 섹션 내부) */
.sims-hrf-detail-card-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 1024px) {
    .sims-hrf-detail-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
    }
}

.sims-hrf-detail-card {
    border: 1px solid #e2e8f0;
    border-radius: 0.875rem;
    padding: 1.25rem;
    background: #fafbfc;
}

/* 조치후사진·비고 — 접수/조치 정보 2열 카드 밖에서 전체 너비를 차지하는 별도 영역 */
.sims-hrf-detail-card--full {
    grid-column: 1 / -1;
}

/* =============================================================================
   재해관리 — 8열 그리드 (PC)
   ============================================================================= */

.sims-form-grid.sims-form-grid--acc {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--krds-gap-5, 1.6rem) var(--krds-gap-6, 2.4rem);
}

@media (min-width: 1024px) {
    .sims-form-grid.sims-form-grid--acc {
        grid-template-columns: repeat(8, minmax(0, 1fr));
    }

    .sims-form-grid--acc > .fg-name     { grid-column: 1 / span 8; grid-row: 1; }

    .sims-form-grid--acc > .form-group:nth-child(2) { grid-column: 1 / span 2; grid-row: 2; }
    .sims-form-grid--acc > .form-group:nth-child(3) { grid-column: 3 / span 2; grid-row: 2; }
    .sims-form-grid--acc > .form-group:nth-child(4) { grid-column: 5 / span 2; grid-row: 2; }
    .sims-form-grid--acc > .form-group:nth-child(5) { grid-column: 7 / span 2; grid-row: 2; }


    .sims-form-grid--acc > .fg-type { grid-column: 1 / span 8; grid-row: 3; }
    .sims-form-grid--acc > .fg-rmrk { grid-column: 1 / span 8; grid-row: 4; }

}

/* 재해유형 뱃지 및 버튼 래퍼 */
.acc-type-wrap {
    display: flex;
    align-items: center;
    width: 100%;
    height: auto;
    min-height: 4.8rem;
    padding: 0;
    border: none!important;
}

/* 뱃지들이 나열되는 영역 */
.acc-type-wrap .badge-area {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.8rem;
    flex: 1;
    padding-right: 1.6rem;
}

/* 유형 추가 버튼 */
.acc-type-wrap .btn-add-type {
    margin-left: auto;
    flex-shrink: 0;
}

/* 파일 셀 내 좌우 배치 영역 */
.actn-file-wrap, .drill-file-wrap {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
}

/* 좌측 파일 목록 리스트 */
.actn-file-list, .drill-file-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
    min-width: 0;
}

/* 개별 파일 항목 */
.actn-file-item, .drill-file-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background-color: #f8f9fa;
    padding: 4px 8px;
    border-radius: 4px;
    box-sizing: border-box;
}

/* 파일명 말줄임 처리 */
.actn-file-name {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
    text-align: left;
    font-size: 0.9em;
}

.drill-file-name {
    display: inline-block;
    max-width: 150px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}

/* 삭제 버튼 영역 찌그러짐 방지 */
.btn-actn-file-remove, .btn-drill-file-remove {
    flex-shrink: 0;
    margin-left: 6px;
}

/* 우측 첨부 버튼 영역 고정 */
.actn-file-action {
    flex-shrink: 0;
    padding-top: 2px;
}

/* =============================================================================
   예산
   ============================================================================= */
.bgt-overview-header {
    display: flex;
    align-items: flex-end; /* 하단 텍스트 라인 기준 정렬 */
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--krds-gap-5, 1.6rem);
    margin-bottom: var(--krds-gap-4, 1.2rem);
    padding-bottom: var(--krds-gap-4, 1.2rem);
    border-bottom: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
}

/* 좌측 입력 영역 */
.bgt-overview-input {
    display: flex;
    flex-direction: column;
    gap: var(--krds-gap-2, 0.4rem);
}

.bgt-overview-label {
    font-size: var(--krds-pc-font-size-label-small, 1.4rem);
    font-weight: 600;
    color: var(--krds-color-neutral-90, #1a1a1a);
}

.bgt-overview-input .input-group {
    display: flex;
    align-items: center;
    gap: var(--krds-gap-3, 0.8rem);
}

/* 입력창 내부 단위(원) 고정 처리 */
.bgt-input-inner-unit {
    position: relative;
    display: inline-flex;
    width: 30rem;
}

.bgt-input-inner-unit .krds-input.medium {
    width: 100%;
    height: var(--sims-control-height) !important;
    padding-right: 3.2rem !important; /* 💡 사용자가 입력한 숫자가 '원' 글자와 겹치지 않도록 우측 패딩 강제 확보 */
}

.bgt-input-inner-unit .unit-text {
    position: absolute;
    right: 1.2rem;
    top: 0;
    bottom: 0;
    display: flex;
    align-items: center;

    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    font-weight: 700;
    color: var(--krds-color-neutral-50, #888);
    pointer-events: none;
    margin-top: 0.1rem;
}

/* 우측 요약 영역 */
.bgt-overview-summary {
    display: flex;
    align-items: center;
    gap: var(--krds-gap-6, 2.4rem);
    margin-bottom: 0.4rem;
}

.bgt-overview-summary .summary-item {
    display: flex;
    align-items: baseline;
    justify-content: space-between; /* 라벨은 좌측, 숫자는 우측으로 밀어냄 */
    min-width: 27rem;
    gap: var(--krds-gap-4, 1.2rem);
    margin: 0;
}

.bgt-overview-summary .summary-item dt {
    font-size: var(--krds-pc-font-size-label-small, 1.4rem);
    color: var(--krds-light-color-text-subtle, #6d7882);
    font-weight: 500;
    white-space: nowrap; /* 라벨 줄바꿈 방지 */
}

.bgt-overview-summary .summary-item dd {
    margin: 0;
    flex: 1; /* 남은 공간을 모두 차지 */
    text-align: right;
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    color: var(--krds-color-neutral-90, #1a1a1a);
}

.bgt-overview-summary .summary-item strong {
    font-size: var(--krds-pc-font-size-heading-xsmall, 1.9rem);
    font-weight: 700;
    letter-spacing: 0.02em;
}

/* 세로 구분선 */
.bgt-overview-summary .summary-divider {
    display: inline-block;
    width: 1px;
    height: 1.8rem;
    background-color: var(--krds-color-neutral-30, #cdd1d5);
}

/* 잔액 마이너스 경고 클래스 */
#wrapRemainingBgt.is-danger strong {
    color: var(--krds-light-color-text-danger, #bd2c0f) !important;
}

/* 반응형 (태블릿/모바일) */
@media (max-width: 767px) {
    .bgt-overview-header {
        flex-direction: column;
        align-items: stretch;
    }

    .bgt-overview-summary {
        justify-content: flex-end;
        flex-wrap: wrap; /* 좁은 화면에서 줄바꿈 허용 */
        margin-top: var(--krds-gap-2, 0.4rem);
    }

    .bgt-overview-summary .summary-item {
        min-width: 100%; /* 모바일에서는 100% 꽉 채우기 */
    }

    .bgt-overview-summary .summary-divider {
        display: none; /* 모바일에서는 세로 구분선 숨김 */
    }
}

.input-unit-wrap {
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
}

.input-unit-wrap label {
    flex: 1;
}

.input-unit-wrap .input-unit {
    flex: 1;
}

/* 지원 및 정보게시판 > 유해·위험요인 신고 (공개신고 페이지, 모바일 우선 단일 컬럼) */
.sims-sup-hrf-section {
    margin-bottom: var(--krds-gap-7, 2.4rem);
}

.sims-sup-hrf-section-tit {
    font-size: var(--krds-pc-font-size-title-small, 1.8rem);
    font-weight: var(--krds-font-weight-bold, 700);
    margin: 0;
}

.sims-sup-hrf-section-desc {
    color: var(--krds-color-neutral-60, #666);
    font-size: var(--krds-pc-font-size-body-small, 1.5rem);
    margin: 0 0 var(--krds-gap-4, 1.2rem);
}

.sims-sup-hrf-row {
    cursor: pointer;
}

.sims-sup-hrf-row:hover,
.sims-sup-hrf-row:focus-visible {
    background-color: var(--krds-color-neutral-5, #f5f5f5);
}

.sims-sup-hrf-row.is-selected {
    background-color: var(--krds-color-primary-5, #eaf2ff);
    box-shadow: inset 3px 0 0 var(--krds-color-primary-50, #0055cc);
}

/* ================ 시민 안전점검 ================ */
.btn-safe-dup {
    justify-content: flex-end;
    margin-left: auto;
}

#safeCheckTbody tr td input[type=text] {
    text-overflow: ellipsis;
}


/* 탭 관련 추가*/
/* =============================================================================
   SIMS 범용 표준 탭 컴포넌트 (SIMS General Tab)
   ============================================================================= */
.sims-tab-area {
	width: 100%;
	margin-top: 1.6rem;
	margin-bottom: 2.4rem;
}

/* 탭 네비게이션바 (하단 구분선) */
.sims-tab-area .sims-tab-bar {
	position: relative;
	border-bottom: 2px solid #e6e8ea;
}

.sims-tab-area .sims-tab-list {
	display: flex;
	flex-wrap: wrap;
	padding: 0;
	margin: 0;
	list-style: none;
	gap: 0.4rem;
}

.sims-tab-area .sims-tab-item {
	margin-bottom: -2px; /* 하단 구분선과 겹치도록 설정 */
}

/* 탭 버튼 기본 스타일 */
.sims-tab-area .sims-tab-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 4.4rem;
	padding: 0 2rem;
	font-size: 1.6rem;
	font-weight: 500;
	color: #58616a;
	background: transparent;
	border: none;
	border-bottom: 2px solid transparent;
	cursor: pointer;
	transition: all 0.15s ease-in-out;
	white-space: nowrap;
}

.sims-tab-area .sims-tab-btn:hover {
	color: #1e2124;
	background-color: #f4f5f6;
	border-radius: 0.4rem 0.4rem 0 0;
}

/* 활성화된 탭 스타일 (Active) */
.sims-tab-area .sims-tab-item.active .sims-tab-btn,
.sims-tab-area .sims-tab-btn[aria-selected="true"] {
	font-weight: 700;
	color: #2563eb; /* SIMS 시그니처 파란색 */
	border-bottom-color: #2563eb;
	background: transparent;
}

/* 탭 콘텐츠 영역 */
.sims-tab-area .sims-tab-conts-wrap {
	margin-top: 2rem;
}

.sims-tab-area .sims-tab-conts {
	display: none;
}

.sims-tab-area .sims-tab-conts.active {
	display: block;
}

/* =============================================================================
   SIMS 테이블 선택 행(Row) 및 인라인 편집 요소 스타일
   ============================================================================= */

/* 선택된 행 배경색 강조 */
.krds-table-wrap table.tbl tbody tr.is-selected {
	background-color: #e0f2fe !important; /* 소프트 라이트 블루 */
}

.krds-table-wrap table.tbl tbody tr.is-selected td {
	background-color: transparent !important;
	border-top: 1px solid #7dd3fc;
	border-bottom: 1px solid #7dd3fc;
}

/* Hover 시 배경색 효과 */
.krds-table-wrap table.tbl tbody tr:hover {
	background-color: #f1f5f9;
	cursor: pointer;
}

/* 인라인 수정 모드 input/select 스타일 */
.krds-table-wrap table.tbl td .tbl-inline-input,
.krds-table-wrap table.tbl td .tbl-inline-select {
	width: 100%;
	height: 3.2rem;
	padding: 0 0.8rem;
	font-size: 1.4rem;
	border: 1px solid #2563eb;
	border-radius: 0.4rem;
	background-color: #ffffff;
}

/* KRDS solo 체크박스 checked 연동 스타일 보완 */
.krds-form-check.solo .krds-check-input:checked + label::before {
	background-color: var(--krds-color-primary-60, #1d4ed8) !important;
	border-color: var(--krds-color-primary-60, #1d4ed8) !important;
}

.krds-form-check.solo .krds-check-input:checked + label::after {
	display: block !important;
	opacity: 1 !important;
}

/* 마스터/상세 테이블 레이아웃 고정 */
.md-master-table {
	table-layout: fixed;
	width: 100%;
}

/* 말줄임표(ellipsis) 공통 스타일 */
.md-master-table td.ellipsis {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 0; /* flex/grid 레이아웃 내 테이블 셀 넘침 방지 */
}

/* ================ 이행 통계 ================ */
/* 대시보드 컨테이너 */
.sims-dash-container {
    display: flex;
    gap: 20px;
    margin-bottom: 24px;
    flex-wrap: nowrap;
}

/* 대시보드 카드 기본 */
.sims-dash-card {
    flex: 1;
    min-width: 0;
    padding: 20px;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    display: flex;
    flex-direction: column;
}

/* 대시보드 카드 (너비 넓음 - 산업탭용) */
.sims-dash-card.is-lg {
    flex: 1.5;
}

/* 대시보드 타이틀 */
.sims-dash-title {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 10px;
    color: #333;
}

/* 차트 렌더링 영역 */
.sims-dash-chart {
    min-height: 180px;
    width: 100%; /* 부모 너비에 꽉 차게 렌더링 */
    flex: 1;
}

/* =======================================================
   재해발생 현황 - 구분 필터 버튼 그룹 스타일
   ======================================================= */
.acc-filter-group {
    display: inline-flex;
    background-color: #f1f3f5; /* 버튼 그룹 옅은 회색 배경 */
    border-radius: 8px;        /* 전체 모서리 둥글게 */
    padding: 4px;              /* 내부 여백 */
    gap: 2px;                  /* 버튼 사이 간격 */
}

.acc-filter-btn {
    border: none;
    background: transparent;
    color: #495057;            /* 비활성 상태 텍스트 색상 (진한 회색) */
    font-size: 14px;
    font-weight: 500;
    padding: 6px 16px;
    border-radius: 6px;        /* 개별 버튼 모서리 둥글게 */
    cursor: pointer;
    transition: all 0.2s ease-in-out; /* 부드러운 전환 효과 */
}

.acc-filter-btn:hover {
    color: #212529;            /* 마우스 오버 시 텍스트 더 진하게 */
}

/* 활성화(Active) 상태 스타일 */
.acc-filter-btn.active {
    background-color: #ffffff; /* 흰색 배경 */
    color: #0056b3;            /* 브랜드 메인 색상 (파란색 계열) - 프로젝트 컬러에 맞춰 수정하세요 */
    font-weight: 600;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); /* 살짝 튀어나와 보이는 그림자 효과 */
}
.acc-tab-div {
    display: flex;
    justify-content: flex-end;
}
.acc-tab-ul {
    width: fit-content!important;
    background: #eaeaeaab;
    border-radius: var(--krds-radius-large2, 1rem);
}


/*
    메인화면 디자인
*/
/* --- 대시보드 권한별 뷰 구분 (임시) --- */
.role-view-section {
    margin-bottom: 5rem;
    padding-bottom: 3rem;
    border-bottom: 2px dashed #d1d5db;
}
.role-view-title {
    font-size: 1.6rem;
    font-weight: bold;
    color: #4b5563;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.8rem;
}
.role-view-title .krds-badge { font-size: 1.2rem; }

/* --- 업무 카드 내부 2단 분할 (산업, 시민, 도급) --- */
.task-grid-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}
.task-box {
    border: 1px solid #e5e7eb;
    border-radius: 0.8rem;
    padding: 1.5rem 2rem;
}
.task-box-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}
.task-box-title {
    font-size: 1.4rem;
    font-weight: bold;
    color: #333;
}
.task-link {
    font-size: 1.3rem;
    color: #256ef4;
    text-decoration: none;
    font-weight: 500;
}
.text-invalid {
    color: #bd2c0f;
    text-decoration: none;
}
.task-count-wrap {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    margin-bottom: 1rem;
}
.task-count {
    font-size: 2.8rem;
    font-weight: bold;
    color: #111;
}
.task-desc {
    font-size: 1.3rem;
    color: #6b7280;
}
.tag-badge {
    display: inline-block;
    background: #f3f4f6;
    color: #4b5563;
    font-size: 1.1rem;
    padding: 0.3rem 0.8rem;
    border-radius: 1.2rem;
    margin-right: 0.5rem;
    margin-top: 0.3rem;
}

/* --- 예산 프로그레스 바 --- */
.progress-wrap { margin-top: 0.5rem; }
.progress-bar-bg {
    background: #e5e7eb;
    height: 0.8rem;
    border-radius: 0.4rem;
    overflow: hidden;
    margin-bottom: 0.8rem;
}
.progress-bar-fill {
    background: #256ef4;
    height: 100%;
    border-radius: 0.4rem;
}
.progress-text {
    font-size: 1.2rem;
    color: #6b7280;
    display: flex;
    justify-content: space-between;
}

/* --- 하단 3단 상태/그래프 카드 영역 --- */
.grid-3col {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-top: 2rem;
}
.status-card {
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 0.8rem;
    padding: 2rem;
    border-top: 4px solid #d1d5db;
    box-shadow: 0 2px 6px rgba(0,0,0,0.02);
}
.status-card.border-orange { border-top-color: #f97316; }
.status-card.border-blue { border-top-color: #3b82f6; }
.status-card.border-purple { border-top-color: #a855f7; }

.status-card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}
.status-card-title {
    font-size: 1.5rem;
    font-weight: bold;
    color: #111;
}
.status-sub-wrap {
    display: flex;
    align-items: baseline;
    gap: 1rem;
}
.status-sub-text {
    font-size: 1.3rem;
    color: #6b7280;
}
/* 그래프 영역 PlaceHolder */
.graph-placeholder {
    height: 250px;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    border-radius: 0.8rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #9ca3af;
    font-size: 1.3rem;
    margin-top: 1rem;
}



/* =============================================================================
   SIMS 범용 파일 리스트 (Modal Container Box Style)
   ============================================================================= */
.sims-modal-file-list {
    border: 1px solid var(--krds-light-color-border-gray, #ebedef);
    border-radius: 0.8rem;
    overflow: hidden;
    background-color: var(--krds-light-color-surface-white, #ffffff);
    margin-top: 0.8rem;
}

/* 파일이 비어있을 때 테두리 제거 */
.sims-modal-file-list:empty {
    border: none;
}

.sims-modal-file-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.0rem 1.6rem;
    transition: background-color 0.2s;
}

/* 아이템 사이 구분선 (마지막 아이템 제외) */
.sims-modal-file-item:not(:last-child) {
    border-bottom: 1px solid var(--krds-light-color-border-gray-light, #e6e8ea);
}

.sims-modal-file-item__info {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 1.2rem;
    min-width: 0;
}

.sims-modal-file-item__icon {
    display: inline-flex;
    width: 2.4rem;
    height: 2.4rem;
    flex-shrink: 0;
}

.sims-modal-file-item__name {
    font-size: 1.5rem;
    color: var(--krds-light-color-text-basic, #1e2124);
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sims-modal-file-item__name:hover {
    text-decoration: underline;
}

.sims-modal-file-item__del-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.2rem;
    height: 3.2rem;
    background-color: transparent;
    border: none;
    border-radius: 0.4rem;
    color: #a1a9b1;
    cursor: pointer;
    transition: all 0.2s;
    flex-shrink: 0;
}

.sims-modal-file-item__del-btn:hover {
    background-color: #fce8e8;
    color: #e30000;
}

.sims-modal-file-section {
    margin-top: 1.2rem;
    width: 100%
}

.sims-modal-file-info {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    margin-bottom: 0.8rem;
    width: 100%;
}

.sims-modal-file-info__title {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--krds-light-color-text-basic, #1e2124);
}


/* 승인대기 안내 화면 */
/* 승인 대기 화면 컨테이너 */
.pending-wrap {
    max-width: 640px;
    margin: 60px auto;
    padding: 0 20px;
    text-align: center;
}

/* 상단 헤더 영역 */
.pending-header {
    margin-bottom: 32px;
}

.pending-badge {
    display: inline-block;
    padding: 6px 16px;
    background-color: #fffbeb;
    border: 1px solid #fcd34d;
    color: #d97706;
    border-radius: 20px;
    font-weight: bold;
    margin-bottom: 20px;
    font-size: 14px;
}

.pending-title {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 12px;
    color: #111827;
}

/* 안내 사항 박스 */
.pending-info-box {
    background-color: #f8fafc;
    border-left: 4px solid #0f4c81;
    padding: 24px;
    text-align: left;
    margin-bottom: 24px;
    border-radius: 4px;
}

.pending-info-title {
    font-weight: 700;
    margin-bottom: 8px;
    color: #0f4c81;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
}

.pending-info-icon {
    background-color: #0f4c81;
    color: white;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
}

.pending-info-desc {
    color: #4b5563;
    font-size: 15px;
    line-height: 1.6;
    padding-left: 28px;
}

/* 신청 정보 박스 */
.pending-apply-box {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 24px;
    text-align: left;
    margin-bottom: 32px;
}

.pending-apply-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 16px;
    margin-bottom: 16px;
}

.pending-apply-title {
    font-size: 16px;
    font-weight: 700;
    color: #111827;
}

.pending-apply-status {
    font-size: 14px;
    color: #4b5563;
}

.pending-apply-status-val {
    color: #d97706;
    font-weight: 700;
}

/* 신청 정보 리스트 */
.pending-apply-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.pending-apply-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.pending-apply-label {
    color: #6b7280;
    font-size: 15px;
}

.pending-apply-value {
    color: #4b5563;
    font-size: 15px;
}

.pending-apply-value-strong {
    color: #111827;
    font-size: 16px;
}

/* 하단 버튼 영역 */
.pending-btn-group {
    display: flex;
    gap: 12px;
}

.pending-btn-primary {
    flex: 1;
    padding: 16px;
    font-size: 16px;
    border-radius: 6px;
    font-weight: 600;
    cursor: pointer;
    text-align: center;
    border: 1px solid transparent;
    background-color: #0f4c81;
    color: #fff;
}


/* 내 정보 관리 전용 스타일 */
.myinfo-section {
    background-color: #f9f9f9;
    padding: 40px;
    border-radius: 8px;
    margin-top: 20px;
    border: 1px solid #ebebeb;
}
.myinfo-header-title {
    font-size: 22px;
    font-weight: 700;
    color: #222;
    padding-bottom: 20px;
    border-bottom: 1px solid #ddd;
    margin-bottom: 10px;
}
.info-row {
    padding: 20px 0;
    border-bottom: 1px solid #ebebeb;
}
.info-row:nth-last-of-type(2) {
    border-bottom: none;
}
.info-label {
    display: block;
    font-weight: 700;
    color: #333;
    margin-bottom: 12px;
    font-size: 15px;
}
.info-input {
    width: 100%;
    max-width: 320px;
    padding: 10px 14px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-size: 15px;
    background-color: #fff;
    color: #333;
    box-sizing: border-box;
}
/* 읽기 전용 입력창 스타일 (회색 배경) */
.info-input[readonly] {
    background-color: #f3f4f6;
    color: #9ca3af;
    cursor: not-allowed;
}
/* 연락처 등 2개 이상의 input을 나란히 배치 */
.info-flex-group {
    display: flex;
    gap: 15px;
}
/* 하단 저장 버튼 영역 */
.my-info-btn-wrap {
    text-align: right;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #ddd;
}

/* display 상태 제어 */
.is-hidden, .only-admin {
    display: none !important;
}

/* 줄바꿈 제어 */
.is-pre-line {
    white-space: pre-wrap;
    overflow-wrap: break-word;
    word-break: keep-all;
}
/* KRDS Form Check Indeterminate (Minus) State */
.krds-form-check > input[type=checkbox]:indeterminate ~ label:before {
    background-color: var(--krds-form-check--checkbox-button-color-element-checked, var(--krds-light-color-element-primary));
    border-color: var(--krds-form-check--button-color-border-checked, var(--krds-light-color-element-primary));
}
.krds-form-check > input[type=checkbox]:indeterminate ~ label:after {
    content: "";
    position: absolute;
    top: calc((var(--krds-form-check--button-size-medium, 1.5rem) - var(--krds-form-check--checkbox-check-size-medium, 1.2rem)) / 2 + var(--krds-form-check--button-margin-top, 0.3rem));
    left: calc((var(--krds-form-check--button-size-medium, 1.5rem) - var(--krds-form-check--checkbox-check-size-medium, 1.2rem)) / 2);
    display: inline-flex;
    width: var(--krds-form-check--checkbox-check-size-medium, 1.2rem);
    height: var(--krds-form-check--checkbox-check-size-medium, 1.2rem);
    background-color: var(--krds-form-check--checkbox-check-color-element-checked, #fff);
    -webkit-mask-image: linear-gradient(#000, #000);
    mask-image: linear-gradient(#000, #000);
    -webkit-mask-size: 60% 15%;
    mask-size: 60% 15%;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}
