header { z-index: 9999; }

.map_sidebar .tab-conts-wrap { min-height: calc(100vh - 48px - 38px - 36px - 25px); }

.krds-form-select[disabled] { width: 100%; }

.txt-warn { color: #ff4c00; }
.txt-safe { color: #00a2ff; }

/* 목록 아이템 스타일 보정 */
.item-image model-viewer {
    width: 100%;
    height: 100%;
    border-radius: 4px; /* 기존 이미지와 둥글기 맞춤 */
    outline: none;
}
.sect .layer-group .layer-depth2 .flex-container-image {
    justify-content: space-evenly;
    flex-wrap: wrap;
    gap: 0.6rem 0.6rem;
}
.sect .layer-group .layer-depth2 .flex-container-image .item-image {
    min-width: 30px;
    width: auto;
    min-height: 55px;
    box-shadow: inset 0 0 5px rgba(0, 0, 0, .5);
    background: rgb(0 0 0);
    border-radius: 5px;
    border: 1px solid #464c53;
}
#lib-category-container .layer-group .layer-depth2 {
    max-height: inherit;
    overflow: auto;
}

/* 모델 라벨 컨테이너 */
.u-model-label-container {
    position: absolute;
    width: 0;
    height: 0;
    overflow: visible;
    z-index: 100;
}

/* 대시보드 */
.btn-dashboard {
    position: static !important;   /* 기존 absolute 해제 */
    float: none !important;        /* 기존 float 해제 */
    left: auto !important;
    margin-left: auto !important;  /* 오른쪽 그룹 시작점으로 밀기 */
    margin-right: 8px;             /* 사용자 메뉴얼과 간격 */
    flex: 0 0 auto;
}

/* core_component.css의 .pc margin-left:auto 해제 */
.pc {
    margin-left: 0 !important;
    flex: 0 0 auto;
}
.svg-icon.icon-dashboard {
    background: transparent url("../images/common/ico/icon-dashboard.svg") no-repeat center !important;
    width: 2.4rem;
    height: 2.4rem;
}
.map_tools_btn.ico-shadow {
    background: url(/static/pss/images/PSS/ico-shadow.svg) no-repeat center;
}

/* 통합검색 관련 */
.zone-label-holder {display: flex; flex-direction: column; align-items: center;}
.zone-label-holder:hover .poi-label {background-color: yellow !important; color: black !important; text-shadow: none; -webkit-text-stroke: 0px; }
.poi-holder {display: flex; flex-direction: column; align-items: center;}
.poi-label:hover {background-color: var(--krds-color-light-primary-70);}
.poi-label {background-color: var(--krds-color-light-secondary-70); color: white; padding: 4px 8px; border-radius: 4px; font-size: 14px; font-weight: bold; white-space: nowrap; box-shadow: 0 2px 4px rgba(0,0,0,0.3); margin-bottom: 0px; cursor: pointer; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); -webkit-text-stroke: 2px black; paint-order: stroke fill; }
.poi-holder:has(.poi-label:hover):after {border-top: 8px solid var(--krds-color-light-primary-70);}
.poi-holder:has(.poi-label):after { content:""; width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 8px solid var(--krds-color-light-secondary-70); }
#dssSearchResultList:has(> :nth-child(1):last-child) div { color: var(--krds-color-light-gray-0); text-align:center; padding:20px; font-size: 14px; font-weight: bold; white-space: nowrap; }

/* 사이드바 페이징 관련 */
.map_sidebar .tab-conts-wrap .krds-pagination .page-navi:not(.disabled).prev::before { transform: rotate(0deg); }
.map_sidebar .tab-conts-wrap .krds-pagination .page-navi.disabled.next::after { transform: rotate(0deg); }
.map_sidebar ul.list-address li:has(> :nth-child(2):last-child) span:first-child {max-width: 45px;}
.map_sidebar ul.list-address li:has(> :nth-child(2):last-child) span:last-child {max-width: 185px;}

/* 기타 */
#helper {
    background-color: var(--krds-light-color-alpha-base50);
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 6rem;
    padding: 10px;
    font-weight: 500;
    color: var(--krds-color-light-primary-fill);
    border-radius: 5px;
    backdrop-filter: blur(3px);
    z-index: 9;
}

footer { z-index: 99; }

/* 범례 모달 */
.krds-modal .modal-dialog:has(.modal-caption) {
    width: 20rem;
}
.krds-modal {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
#legend {
    left: 35rem;
    top: calc(100vh - 350px);
    transform: none;
}

/* 쇠퇴/낙후 - 현황 작업창 */
.desc-wrap {
    background-color: var(--krds-color-light-gray-80);
    border-radius: var(--krds-radius-medium3);
    padding: var(--krds-padding-5) var(--krds-padding-4);
    display: flex;
    justify-content: center;
}
.desc-wrap span {
    font-size: small;
    color: var(--krds-color-light-alpha-white100);
    line-height: 50px;
}
.scroll-table-wrap {
    max-height: 350px;
    overflow-y: auto;
}
.scroll-table-wrap::-webkit-scrollbar-thumb {
    background-clip: padding-box;
    border: 3px solid transparent !important; /* 핵심 트릭: 투명한 테두리를 주어 공백 효과를 냄 */
}
.scroll-table-wrap::-webkit-scrollbar-track {
    border: 0px !important;
    background-color: transparent !important; /* 트랙 배경을 투명하게 */
}
.scroll-table-wrap th {
    position: sticky;
    top: 0;
    z-index: 1;
}
.scroll-table-wrap .title {
    font-weight: bold;
}
.scroll-table-wrap .desc {width: 100%;
    color: var(--krds-color-light-alpha-white50);
    /* Flexbox 기반의 멀티라인 말줄임 처리 */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2; /* 2줄 제한 */
    overflow: hidden;

    /* 긴 단어(URL 등)가 있을 때 강제로 줄바꿈 */
    word-break: break-word;
    /* line-height를 명시하면 높이 계산이 더 깔끔함 (선택사항) */
    line-height: 1.5;
    max-height: 3em; /* line-height(1.5) * 2줄 = 3em (안전장치) */
}

/* 지도 우측하단 카메라 정보 */
.f-scene {
    background-color: var(--krds-light-color-alpha-base50);
    position: absolute;
    right: 0;
    bottom: 3.2rem;
    z-index: 3;
    width: auto;
    padding: 0 var(--krds-padding-3);
}
.f-scene .f-inner ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    gap: var(--krds-gap-2);
}
.f-scene .f-inner ul li {
    font-size: 1.2rem;
    color: var(--krds-light-color-text-basic);
}
.f-scene .f-inner ul li .f_line {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    width: 5rem;
    height: 0.5rem;
    border: 2px solid var(--krds-high-contrast-color-surface-white);
    border-top: none;
}

/* 부동산지도 토지정보 팝업용 */
#toji-popup {
    top: calc(100vh - 265px);
    left: 50vw;
}
.krds-modal .modal-conts .krds-tab-area {
    gap: 0.8rem !important;
}
.krds-modal .title-type {
    background-color: var(--krds-color-light-gray-95);
    padding: var(--krds-padding-5);
    border-radius: var(--krds-radius-medium1);
    text-align: center;
}
.krds-modal .title-type span {
    font-size: var(--krds-pc-font-size-body-xsmall);
}
.krds-modal .title-type b {
    display: block;
    margin-top: var(--krds-padding-2);
    color: var(--krds-color-light-secondary-60);
    font-size: var(--krds-pc-font-size-body-medium);
}
.krds-modal .table-flex-container {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: row;
    gap: 0 var(--krds-padding-5);
}
.krds-modal .table-flex-container .table-item {
    width: 33.333%;
    flex-shrink: 0;
    flex: 1;
}
.krds-modal .table-flex-container .table-item .table-title {
    margin-bottom: var(--krds-padding-3);
}
.krds-modal .table-flex-container .table-item .krds-table-wrap .tbl.data tbody th, .krds-modal .table-flex-container .table-item .krds-table-wrap .tbl.data tbody td {
    word-break: normal;
}
.krds-modal .krds-table-wrap.rowtable .tbl tbody tr th {
    background-color: var(--krds-color-light-gray-95);
}
.krds-modal .krds-table-wrap.rowtable .tbl tbody tr:hover th {
    background-color: var(--krds-color-light-gray-95);
}
.krds-modal .krds-table-wrap.rowtable .tbl tbody tr:hover td {
    background-color: var(--krds-color-light-gray-80);
}
.krds-modal .box-area .txt {
    font-size: var(--krds-pc-font-size-body-xsmall);
    color: var(--krds-color-light-gray-10);
}
.krds-modal p.reference {
    font-size: var(--krds-pc-font-size-body-xsmall);
    color: var(--krds-color-light-gray-10);
    position: relative;
    padding-left: 2rem;
}
.krds-modal p.reference:before {
    content: "";
    display: block;
    border: 1px solid var(--krds-color-light-gray-10);
    border-radius: 50%;
    width: 0.4rem;
    height: 0.4rem;
    position: absolute;
    left: 0.8rem;
    top: 0.8rem;
}
.krds-modal .sect .wrap-floor-plan {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: row;
    gap: 0 var(--krds-padding-5);
}
.krds-modal .sect .wrap-floor-plan > .floor-plan {
    width: 49.6rem;
    height: 30rem;
    flex-shrink: 0;
}
.krds-modal .sect .wrap-floor-plan > .list-floor-plan {
    flex: 1;
    width: 26rem;
    border-radius: var(--krds-radius-medium1);
    background-color: var(--krds-high-contrast-color-surface-gray-subtler);
    padding: var(--krds-padding-3) var(--krds-padding-5);
    height: 30rem;
    overflow-y: auto;
}
.krds-modal .sect .wrap-floor-plan > .list-floor-plan .list {
    display: grid;
    grid-auto-flow: column;
    gap: var(--krds-padding-2);
}
.krds-modal .sect .wrap-floor-plan > .list-floor-plan .list li {
    grid-column: 1;
    display: flex;
    color: var(--krds-light-color-text-basic-inverse);
    font-size: var(--krds-pc-font-size-body-xsmall);
    gap: 0 var(--krds-padding-2);
}
.krds-modal .sect .wrap-floor-plan > .list-floor-plan .list li .square {
    display: block;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: var(--krds-radius-xsmall1);
    flex-shrink: 0;
    margin-top: 0.2rem;
}
.krds-modal .tab.line.tab-swiper .swiper-wrapper:has(> .swiper-slide:nth-child(3)) .swiper-slide {
    flex: 1;
}


/* file-upload-btn */
.file-upload-btn.full {
    width: 100%;
}
.file-upload-btn.full .krds-btn {
    width: 100%;
}
.file-upload-btn .krds-btn {
    padding: 0 0.9rem;
}
.file-upload-btn [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;
}
.file-upload-wrap .gray10 {
    font-size: var(--krds-pc-font-size-label-xxsmall);
    color: var(--krds-light-color-surface-gray-subtle);
}
.file-upload {
    background-color: var(--krds-light-color-surface-inverse);
    padding: 1.6rem;
    border-radius: var(--krds-radius-medium3);
}
.file-upload.center {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    text-align: center;
}
.file-upload .txt {
    font-size: var(--krds-pc-font-size-label-xsmall);
    color: var(--krds-light-color-surface-white);
}
.file-upload .file-upload-btn-wrap {
    margin-top: 1.6rem;
}
.file-upload .file-upload-btn-wrap.col {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
}
.upload-list {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    gap: var(--krds-gap-3);
    font-size: var(--krds-pc-font-size-label-xsmall);
    color: var(--krds-light-color-surface-white);
}

/* 지도 분석 범례 공통 스타일 */
.legend-panel {
    display: none; /* 기본 숨김, JS로 제어 */
    margin: 10px 0;
    padding: 10px;
    background-color: #f8f9fa;
    border: 1px solid #eee;
    border-radius: 4px;
}

.legend-panel .legend-title {
    font-size: 13px;
    font-weight: bold;
    margin: 0 0 8px 0;
    color: #333;
}

.legend-panel .gradient-bar {
    height: 12px;
    width: 100%;
    /* 빨강 -> 파랑 그라디언트 */
    background: linear-gradient(to right, #FF0000, #FFA500, #FFFF00, #00FF00, #0000FF);
    border-radius: 2px;
    margin-bottom: 4px;
    border: 1px solid #ccc;
}

.legend-panel .legend-labels {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    color: #666;
}

/* 시계열 관련 */
/* 1. 메인 컨테이너 */
.timeline-container {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(20, 20, 25, 0.9);
    border-radius: 12px;
    padding: 10px 15px;

    /* 가변 너비 설정 */
    width: fit-content;
    max-width: 450px;

    height: auto;
    box-shadow: 0 4px 10px rgba(0,0,0,0.5);
    backdrop-filter: blur(4px);
    color: #fff;
    box-sizing: border-box;
}

/* 2. 좌측 라벨 */
.timeline-label {
    font-size: 16px;
    font-weight: 700;
    margin-right: 15px;
    white-space: nowrap;
    letter-spacing: -0.5px;
    padding-bottom: 5px;
}

/* 3. 슬라이더 래퍼 */
.timeline-slider-wrapper {
    display: flex;
    align-items: center;
    flex-grow: 1;
    overflow: hidden;
    position: relative;
}

/* 4. 연도 리스트 (스크롤 영역) */
.timeline-list {
    display: flex;
    align-items: flex-end;
    gap: 20px;
    overflow-x: auto;
    scroll-behavior: smooth;
    scrollbar-width: none;

    /* 배지 공간 확보 */
    padding-top: 35px;
    padding-bottom: 5px;
    width: 100%;
}

.timeline-list::-webkit-scrollbar {
    display: none;
}

/* 5. 연도 아이템 */
.year-item {
    position: relative;
    cursor: pointer;
    color: #888;
    font-size: 14px;
    text-align: center;
    transition: color 0.2s;
    user-select: none;
    min-width: 40px;
    flex-shrink: 0;
}

/* 눈금 (Tick) */
.year-item::before {
    content: '';
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    height: 6px;
    background-color: #666;
}

.year-item:hover {
    color: #ccc;
}

/* 활성화 상태 */
.year-item.active {
    color: #ff9f43;
    font-weight: bold;
}

.year-item.active::before {
    background-color: #ff9f43;
}

/* 6. 배지 (Badge) */
.active-badge {
    position: absolute;
    top: -32px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #999;
    color: #000;
    font-size: 12px;
    font-weight: bold;
    padding: 3px 6px;
    border-radius: 4px;
    display: none;
    white-space: nowrap;
}

.active-badge::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 4px 4px 0;
    border-style: solid;
    border-color: #999 transparent transparent transparent;
}

.year-item.active .active-badge {
    display: block;
}

/* 7. 네비게이션 버튼 */
.nav-btn {
    background: rgba(255, 255, 255, 0.1);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    width: 32px;
    height: 32px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
    transition: all 0.2s;
}

.nav-btn:hover {
    background: rgba(255, 255, 255, 0.3);
}

.nav-btn.prev { margin-right: 10px; }
.nav-btn.next { margin-left: 10px; }

.nav-btn svg {
    width: 16px;
    height: 16px;
    fill: #fff;
}

.hidden {
    display: none !important;
}

.sinkhole-main-row { cursor: pointer; transition: background 0.1s; }
.sinkhole-main-row:hover { background-color: #f2f8ff; }
.sinkhole-main-row.active { background-color: #eef6fc; font-weight: bold; }
.sinkhole-detail-row { display: none; }
.sinkhole-detail-wrap { padding: 15px 20px; text-align: left; border-top: 1px dashed #ddd; background-color: #fafafa; }
.detail-grid { display: grid; grid-template-columns: 90px 1fr 90px 1fr; gap: 8px 10px; font-size: 13px; color: #333; }
.d-label { color: #666; font-weight: 700; }
.d-value { color: #222; word-break: break-all; }
.d-full { grid-column: 2 / -1; }
.ico-arr { display: inline-block; transition: transform 0.2s; font-size: 11px; }
.sinkhole-main-row.active .ico-arr { transform: rotate(180deg); }

@keyframes error-flash {
    0% {
        /* 그림자 없음, 붉은색, 불투명도 0.7 */
        box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.7);
    }
    70% {
        /* 그림자가 10px만큼 퍼지면서, 완전히 투명해짐(rgba(..., 0)) */
        box-shadow: 0 0 0 10px rgba(231, 76, 60, 0);
    }
    100% {
        /* 마무리 */
        box-shadow: 0 0 0 0 rgba(231, 76, 60, 0);
    }
}

.highlight-error-btn {
    animation: error-flash 1.5s infinite ease-out; /* 속도 및 느낌 조정 */
    z-index: 9999;
    position: relative;
    border-radius: 4px; /* 버튼이 둥글다면 그림자도 둥글게 처리 (필요시 값 조정) */
}

/* diagnosis.css - 쇠퇴/낙후 진단 스타일 */
/* [아이콘 스타일] - 기존 유지 */
.marker { position: relative; width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; margin-right: 5px; }
.marker .svg-icon.pin.crown_blue { background: url(/static/dss/images/common/ico/pin-basic_blue.svg) no-repeat center; width: 22px; height: 22px; }
.marker .svg-icon.pin.crown_yellow { background: url(/static/dss/images/common/ico/pin-basic_yellow.svg) no-repeat center; width: 22px; height: 22px; }
.marker .svg-icon.pin.crown_red { background: url(/static/dss/images/common/ico/pin-basic_red.svg) no-repeat center; width: 22px; height: 22px; }
.marker .svg-icon.pin.crown_navy { background: url(/static/dss/images/common/ico/pin-basic_navy.svg) no-repeat center; width: 22px; height: 22px; }

.legend-wrapper {
    background-color: #ffffff;
    width: 100%;
    padding: 5px;
    box-sizing: border-box;
}

/* [공통 Row] */
.legend-row {
    display: flex;
    width: 100%;
    border-bottom: 1px solid #e0e0e0;
}
.legend-row:last-child { border-bottom: none; }

/* [헤더 스타일] */
.legend-header {
    background-color: #f7f7f7;
    font-weight: bold;
    text-align: center;
    padding: 8px 0;
    font-size: 12px;
}

/* [NEW] 2분할 컬럼 (50% : 50%) */
.leg-half {
    width: 50%;
    border-right: 1px solid #eee;
    box-sizing: border-box;
}
.leg-half:last-child { border-right: none; }

/* [테이블 내부 스타일] */
.sub-tbl { width: 100%; border-collapse: collapse; }
.sub-tbl td {
    /* padding: 4px 5px; */ /* 좌우 여백 조금 늘림 */
    font-size: 11px;
    vertical-align: middle;
    text-align: center;
    height: 26px;
}

/* [컬럼 비율 통일] - 총합 100% */
.leg-col-1 { width: 28%; border-right: 1px solid #eee; } /* 인구수 */
.leg-col-2 { width: 38%; border-right: 1px solid #eee; } /* 노후도 */
.leg-col-3 { width: 34%; } /* 결과 */

.leg-col-1:last-child, .leg-col-2:last-child { border-right: none; }

/* [내용 테이블 스타일] */
/* .sub-tbl { */
/*     width: 100%; */
/*     border-collapse: collapse; */
/* } */
/* .sub-tbl td { */
/*     padding: 4px 2px; */
/*     font-size: 11px; */
/*     vertical-align: middle; */
/*     text-align: center; */
/*     height: 26px; 행 높이 고정 */
/* } */

/* [셀 내부 스타일] */
.cell-color-box {
    display: block;
    width: 100%;
    height: 100%;
    color: #fff;
    line-height: 26px; /* 수직 정렬 */
    font-weight: normal;
}
.flex-center {
    display: flex;
    align-items: center;
    justify-content: center; /* 가운데 정렬 */
}
.text-right-pad {
    text-align: right;
    padding-right: 8px !important;
}

/* [배경색 유틸리티] */
.bg-step-1 { background-color: #b2182b; }/* 매우 위험 (Deep Red) */
.bg-step-2 { background-color: #ef8a62; }/* 위험 (Orange-Red) */
.bg-step-3 { background-color: #fdae61; }/* 주의 (Orange) */
.bg-step-4 { background-color: #ffffbf; }/* 경계 / 중립 (Pale Yellow) */
.bg-step-5 { background-color: #d9ef8b; }/* 보통 (Yellow-Green) */
.bg-step-6 { background-color: #91cf60; }/* 양호 (Green) */
.bg-step-7 { background-color: #2c7bb6; }/* 매우 양호 (Blue) */
.txt-black { color: #333; }

/* [강제 수정] 진단 결과 아이콘/텍스트 정렬 및 색상 */
.result-item-box {
    display: flex !important;
    align-items: center !important;       /* 수직 중앙 정렬 */
    justify-content: flex-start !important; /* 왼쪽 정렬 */
    width: 100% !important;
    height: 100% !important;
    
    color: #222222 !important; 
    font-weight: 500; /* 살짝 두께감 줌 */
    
    font-size: 11px;
    padding-left: 5px !important;        /* 왼쪽 여백 */
    box-sizing: border-box;
    white-space: nowrap;                 /* 줄바꿈 금지 */
}

/* 아이콘 스타일 보정 */
.result-item-box .marker {
    margin-right: 5px !important;        /* 아이콘-글자 사이 간격 */
    display: inline-flex !important;
    flex-shrink: 0;                      /* 아이콘 찌그러짐 방지 */
    position: static !important;         /* relative/absolute 해제 */
    transform: none !important;          /* 위치 변형 해제 */
}

/* 건수(0건) 텍스트 - 밝은 회색 */
.cnt-text {
    color: #666666 !important;
    font-size: 11px;
    text-align: right !important;        /* 오른쪽 정렬 */
    padding-right: 8px !important;
    white-space: nowrap;
    vertical-align: middle !important;
}

/* dssToolbox.jsp 또는 dev.css에 적용 */

/* 1. 부모 아이템: 고정 크기 및 기준점 설정 */
.map_tools_item.compas {
    position: relative !important; /* 자식의 absolute 기준 */
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden; /* 아이콘이 튀어나가지 않게 처리 */
}

/* 2. 아이콘: 절대 좌표로 정중앙 고정 */
.ico-compass {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    /* translate로 자신의 크기 절반만큼 보정하여 정확히 중앙 배치 */
    /* 기존 JS에서 rotate가 들어가므로, CSS에서는 기본 translate만 유지 */
    transform: translate(-50%, -50%) rotate(0deg); 
    transform-origin: center center !important;
    
    width: 24px !important;  /* 실제 아이콘 크기에 맞춰 조정 */
    height: 24px !important;
    margin: 0 !important;
    padding: 0 !important;
    transition: transform 0.1s linear;
}

.map_controls .map_tools_btn.ico-compass {
  position: relative;
  background: none; /* 기존 배경 아이콘 제거 */
}

.map_controls .map_tools_btn.ico-compass::before {
  display: none;
}

#toolbox-camera-compass {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 24px;
  height: 24px;
  transform: translate(-50%, -50%);
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: transform;
}

#toolbox-camera-compass svg {
  width: 24px;
  height: 24px;
  display: block;
}

/* 풍선형 라벨 디자인 및 애니메이션 효과 */
.zone-label-holder.floating {
    display: flex;
    flex-direction: column;
    align-items: center;
    filter: drop-shadow(0 4px 8px rgba(0,0,0,0.4));
    pointer-events: auto;
    cursor: pointer;
    transform: translateX(-50%);
    opacity: 0.7;
}

.poi-label.balloon {
    padding: 6px 14px;
    border-radius: 20px;
    color: #fff;
    font-weight: bold;
    font-size: 13px;
    white-space: nowrap;
    border: 1.5px solid rgba(255,255,255,0.4);
}

.balloon-arrow {
    width: 0;
    height: 0;
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-top: 9px solid; /* 인라인 스타일에서 배경색 전달받음 */
    margin-top: -1px;
}
.zone-label-holder:hover .balloon-arrow {border-top-color: yellow !important;}



.svg-icon.ico_tile1 {
    background: url("/static/pss/images/PSS/ico_tile01.svg") no-repeat center;
    width: 1.8rem;
    height: 1.8rem;
}
.svg-icon.ico_tile2 {
    background: url("/static/pss/images/PSS/ico_tile02.svg") no-repeat center;
    width: 1.8rem;
    height: 1.8rem;
}
.svg-icon.ico_bnd11 {
    background: url("/static/pss/images/PSS/ico_bndry_1-1.svg") no-repeat center;
    width: 1.8rem;
    height: 1.8rem;
}
.svg-icon.ico_bnd12 {
    background: url("/static/pss/images/PSS/ico_bndry_1-2.svg") no-repeat center;
    width: 1.8rem;
    height: 1.8rem;
}
.svg-icon.ico_bnd13 {
    background: url("/static/pss/images/PSS/ico_bndry_1-3.svg") no-repeat center;
    width: 1.8rem;
    height: 1.8rem;
}
.svg-icon.ico_bnd14 {
    background: url("/static/pss/images/PSS/ico_bndry_1-4.svg") no-repeat center;
    width: 1.8rem;
    height: 1.8rem;
}
.svg-icon.ico_bnd15 {
    background: url("/static/pss/images/PSS/ico_bndry_1-5.svg") no-repeat center;
    width: 1.8rem;
    height: 1.8rem;
}
.svg-icon.ico_bnd21 {
    background: url("/static/pss/images/PSS/ico_bndry_2-1.svg") no-repeat center;
    width: 1.8rem;
    height: 1.8rem;
}
.svg-icon.ico_bnd22 {
    background: url("/static/pss/images/PSS/ico_bndry_2-2.svg") no-repeat center;
    width: 1.8rem;
    height: 1.8rem;
}
.svg-icon.ico_bnd23 {
    background: url("/static/pss/images/PSS/ico_bndry_2-3.svg") no-repeat center;
    width: 1.8rem;
    height: 1.8rem;
}

#toolbox-graphic .krds-check-area {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  row-gap: 6px;
}
#toolbox-graphic .krds-form-check {
  width: 100%;
}

.map_tools_btn.ico-hq {
  background: url(/static/sgp_ipd/images/common/ico/ico-hq.svg) no-repeat center;
  background-size: 20px 20px;
}

.map_tools_btn.ico-layer_option {
  background: url(/static/sgp_ipd/images/common/ico/ico-layer_option.svg) no-repeat center;
  background-size: 20px 20px;
}

#toolbox-layer-info .modal-title,
#toolbox-layer-info .modal-conts,
#toolbox-layer-info #idt-layer-info-tooltip,
#toolbox-layer-info .layer-info-table th,
#toolbox-layer-info .layer-info-table td {
  color: var(--krds-light-color-text-basic-inverse);
}

#toolbox-layer-info .layer-info-table th {
  color: var(--krds-light-color-text-subtle-inverse);
}

#toolbox-layer-info .modal-small {
  width: 380px;
}

#toolbox-layer-info .layer-info-table th,
#toolbox-layer-info .layer-info-table td {
  vertical-align: top;
}