@charset "utf-8";
/* =========================================================
	기본
========================================================= */
* { margin: 0; padding: 0; }
/* 토큰 */

html { min-height: 100%; }
body { min-width: 0; min-height: 100vh; background: var(--bg); color: var(--text); display: flex; flex-direction: column; font-size: var(--fs-17); font-weight: 400; line-height: var(--lh); letter-spacing: 0; }
a { color: inherit; text-decoration: none; }
.gnb,
.gnb-depth-list,
.family-list,
.list,
.page-loca,
ul#ulTreeview { list-style: none; }



/* 일반 업무화면 폼 배치 */
input:not(.grdImg):not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="file"]),
select,
textarea { width: 100%; }

/* =========================================================
	레이아웃
========================================================= */
.container { width: min(var(--content-max), calc(100% - (var(--page-x-pc) * 2))); margin: 0 auto; }
.skip-link { position: absolute; top: -100px; left: 0; z-index: 1000; padding: 10px 16px; background: var(--secondary); color: var(--text-white); font-weight: 700; }
.skip-link:focus { top: 0; }


/* =========================================================
	헤더
========================================================= */
.top-notice { min-height: 32px; background: var(--secondary-bg); font-size: var(--fs-15); color: var(--text); }
.top-notice .container { min-height: 32px; display: flex; align-items: center; }
.notice-text { display: flex; align-items: center; gap: 8px; font-weight: 400; line-height: var(--lh); }
.notice-icon, .notice-icon img { width: 24px; height: 24px; display: block; flex-shrink: 0; }
.header { background: var(--header-bg); border-bottom: 1px solid var(--header-line); }
.header-inner { height: 80px; display: flex; align-items: center; justify-content: space-between; }
.brand { display: flex; align-items: center; gap: 16px; }
.brand-mark { width: 40px; height: 40px; border-radius: 6px; background: var(--secondary); color: var(--text-white); display: flex; align-items: center; justify-content: center; font-size: var(--fs-13); font-weight: 700; }
.brand-org { display: block; margin-bottom: 4px; color: var(--text-muted); font-size: var(--fs-15); font-weight: 400; }
.brand-title { display: block; color: var(--text-strong); font-size: var(--fs-24); font-weight: 700; line-height: var(--lh); letter-spacing: 0; }

/* 헤더 - 로그인 */
.header-actions { display: flex; align-items: center; gap: 12px; }
.header-actions-login { position: relative; display: flex; align-items: center; gap: 12px; }
.header-actions .btn, .header-util-btn { display: inline-flex; align-items: center; justify-content: center; flex-direction: column; gap: 4px; min-width: 64px; min-height: 52px; padding: 4px 8px; border: 0; border-radius: 6px; background: transparent; color: var(--text-strong); font-family: inherit; font-size: var(--fs-15); font-weight: 700; line-height: var(--lh); white-space: nowrap; cursor: pointer; text-decoration: none; }
.header-actions .btn:hover, .header-actions .btn:focus-visible, .header-util-btn:hover, .header-util-btn:focus-visible { background: var(--header-hover-bg); color: var(--text-strong); text-decoration: none; }
.header-actions .btn:active, .header-util-btn:active { background: var(--header-active-bg); color: var(--text-strong); }
.header-actions .btn .btn-icon, .header-util-btn .btn-icon { width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.header-actions .btn .btn-icon img, .header-actions .btn .btn-icon svg, .header-util-btn .btn-icon img, .header-util-btn .btn-icon svg { width: 20px; height: 20px; display: block; }
.header-allmenu-mobile { display: none; }
.header-myinfo { position: relative; }
.header-myinfo-panel { position: absolute; top: calc(100% + 8px); right: 0; z-index: 60; display: none; width: 156px; padding: 14px 16px 12px; border: 1px solid var(--line-soft); border-radius: 10px; background: var(--bg); box-shadow: var(--shadow-panel); }
.header-myinfo-panel.is-open { display: block; }
.header-myinfo-panel::before { content: ""; position: absolute; top: -7px; right: 26px; width: 12px; height: 12px; border-left: 1px solid var(--line-soft); border-top: 1px solid var(--line-soft); background: var(--bg); transform: rotate(45deg); }
.myinfo-user { display: flex; align-items: center; margin-bottom: 12px; color: var(--text); font-size: var(--fs-17); font-weight: 400; line-height: var(--lh); }
.myinfo-user-name { color: var(--text-strong); font-weight: 700; }
.myinfo-session-block { display: block; }
.myinfo-session-label { display: block; margin-bottom: 4px; color: var(--text-muted); font-size: var(--fs-13); font-weight: 400; line-height: var(--lh); white-space: nowrap; }
.myinfo-session-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.myinfo-session-time-wrap { display: inline-flex; align-items: center; gap: 4px; min-width: 0; color: var(--text); white-space: nowrap; }
.myinfo-session-icon { display: block; width: 16px; height: 16px; flex-shrink: 0; }
.myinfo-session-time { color: var(--primary); font-size: var(--fs-15); font-weight: 700; line-height: var(--lh); font-variant-numeric: tabular-nums; }
.myinfo-session-extend { display: inline-flex; align-items: center; justify-content: center; min-width: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--text-strong); font-family: inherit; font-size: var(--fs-13); font-weight: 400; line-height: var(--lh); cursor: pointer; text-decoration: none; white-space: nowrap; }
.myinfo-session-extend:hover, .myinfo-session-extend:focus-visible { background: transparent; color: var(--text-strong); text-decoration: underline; text-underline-offset: 4px; }
.myinfo-session-extend:active { color: var(--text-strong); }
.myinfo-password { display: flex; align-items: center; width: 100%; min-height: 34px; margin-top: 8px; padding: 0 8px; border-radius: 6px; color: var(--text-strong); font-size: var(--fs-15); font-weight: 400; line-height: var(--lh); text-decoration: none; }
.myinfo-password:hover, .myinfo-password:focus-visible { background: var(--header-hover-bg); color: var(--text-strong); text-decoration: none; }
.myinfo-password:active { background: var(--header-active-bg); color: var(--text-strong); }
.myinfo-divider { height: 1px; margin: 8px 0; background: var(--line-soft); }
.myinfo-logout { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 34px; padding: 0 8px; border: 0; border-radius: 6px; background: transparent; color: var(--text-strong); font-family: inherit; font-size: var(--fs-15); font-weight: 400; line-height: var(--lh); cursor: pointer; text-decoration: none; }
.myinfo-logout:hover, .myinfo-logout:focus-visible { background: var(--header-hover-bg); color: var(--text-strong); text-decoration: none; }
.myinfo-logout:active { background: var(--header-active-bg); color: var(--text-strong); }
.myinfo-logout .btn-icon { width: 16px; height: 16px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.myinfo-logout .btn-icon img, .myinfo-logout .btn-icon svg { width: 16px; height: 16px; display: block; }


/* =========================================================
	GNB
========================================================= */
.gnb-wrap { position: relative; z-index: 20; background: var(--gnb-bg); border-bottom: 2px solid var(--gnb-line); }
.gnb { position: relative; z-index: 40; height: 50px; display: flex; align-items: stretch; justify-content: center; gap: 16px; }
.gnb > li { height: 100%; flex: 0 0 auto; }
.gnb-btn { position: relative; height: 100%; min-width: 132px; padding: 0 16px; border: 0; margin: 0; background: var(--gnb-bg); color: var(--text-muted); display: flex; align-items: center; justify-content: center; gap: 6px; font-size: var(--fs-17); font-weight: 700; transition: background-color .15s, box-shadow .15s; }
.gnb-btn:before { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; z-index: 20; height: 3px; background: var(--gnb-active-line); transform: scaleX(0); transform-origin: center; pointer-events: none; }
.gnb-btn:after { content: ""; width: 7px; height: 7px; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .15s, margin-top .15s; }
.gnb-btn:hover { background: var(--gnb-hover-bg); }
.gnb-btn:active { background: var(--gnb-active-bg); }
.gnb-btn.is-current, .gnb-btn.is-open { z-index: 25; background: var(--gnb-bg); color: var(--text-strong); }
.gnb-btn.is-current:before { transform: scaleX(1); }
.gnb-btn.is-open:before { transform: scaleX(1); transition: transform .2s ease; }
.gnb-btn:focus, .gnb-btn:focus-visible { outline: 0; box-shadow: inset 0 0 0 2px var(--primary); z-index: 15; }
.gnb-btn.is-current:focus, .gnb-btn.is-current:focus-visible { box-shadow: inset 2px 0 0 var(--primary), inset -2px 0 0 var(--primary), inset 0 2px 0 var(--primary); z-index: 30; }
.gnb-btn.is-current:focus:before, .gnb-btn.is-current:focus-visible:before { z-index: 35; }
.gnb-btn.is-open:after { margin-top: 4px; transform: rotate(225deg); }
.gnb-allmenu-btn { position: relative; width: 52px; height: 100%; padding: 0; border: 0; margin: 0; background: var(--gnb-bg); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.gnb-allmenu-btn:before { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; z-index: 20; height: 3px; background: var(--gnb-active-line); transform: scaleX(0); transform-origin: center; transition: transform .2s ease; pointer-events: none; }
.gnb-allmenu-btn[aria-expanded="true"]:before { transform: scaleX(1); }
.gnb-allmenu-btn img { width: 24px; height: 24px; display: block; }
.gnb-allmenu-btn:hover { background: var(--gnb-hover-bg); }
.gnb-allmenu-btn:focus, .gnb-allmenu-btn:focus-visible { outline: 0; box-shadow: inset 0 0 0 2px var(--primary); }
.gnb-panel { position: absolute; left: 0; right: 0; top: 52px; z-index: 30; display: none; background: var(--gnb-bg); border-top: 0; border-bottom: 1px solid var(--line); box-shadow: var(--shadow-panel); }
.gnb-panel.is-open { display: block; }
.gnb-panel-inner { padding: 26px 0 28px; }
.gnb-panel.is-all-menu .gnb-panel-inner { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 32px; }
.gnb-panel.is-all-menu .gnb-depth { width: 100%; margin: 0; }
.gnb-panel.is-all-menu .gnb-depth-list { grid-template-columns: 1fr; row-gap: 4px; }
.gnb-depth { display: none; width: min(var(--content-max), calc(100% - (var(--page-x-pc) * 2))); margin: 0 auto; }
.gnb-depth.is-active { display: block; }
.gnb-depth-heading { margin-bottom: 16px; color: var(--text-strong); font-size: var(--fs-19); font-weight: 700; line-height: var(--lh); letter-spacing: 0; text-align: left; }
.gnb-depth-list { width: 100%; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 56px; row-gap: 8px; }
.gnb-depth-list > li { min-width: 0; }
.gnb-depth-link { position: relative; min-height: 40px; padding: 8px 12px 8px 18px; border-radius: 6px; color: var(--text-strong); display: flex; align-items: center; font-size: var(--fs-15); font-weight: 400; line-height: var(--lh); transition: background-color .15s; }
.gnb-depth-link:before { content: ""; position: absolute; left: 8px; top: 50%; width: 3px; height: 3px; border-radius: 50%; background: currentColor; transform: translateY(-50%); }
.gnb-depth-link:hover, .gnb-depth-link:focus-visible { background: var(--gnb-hover-bg); color: var(--text-strong); text-decoration: none; }
.gnb-depth-link:active { background: var(--gnb-active-bg); color: var(--text-strong); text-decoration: none; }
.gnb-depth-link.is-current { background: var(--gnb-hover-bg); color: var(--secondary); font-weight: 700; text-decoration: none; }
.gnb-depth-link.is-current:before { background: var(--primary); }
.page-dim { position: fixed; left: 0; right: 0; top: 0; bottom: 0; z-index: 10; display: none; border: 0; padding: 0; margin: 0; background: var(--dim); box-shadow: none; }
.page-dim.is-open { display: block; }
.page-dim:focus, .page-dim:focus-visible { outline: 0; box-shadow: none; }


/* tip 박스 */
.kbms-tip { margin-bottom: 16px; padding: 16px 20px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-soft); box-sizing: border-box; }
.kbms-tip ul { margin: 0; padding-left: 18px; }
.kbms-tip li { color: var(--text); font-size: var(--fs-15); line-height: 1.7; }
.kbms-tip strong { color: var(--warning); }


/* =========================================================
	파일 업로드
========================================================= */
.file-upload-wrapper, .rprs-file-upload-wrapper { clear: both; width: 100%; margin-top: 10px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
.file-upload-wrapper ul, .file-upload-wrapper li, .rprs-file-upload-wrapper ul, .rprs-file-upload-wrapper li, .file-upload-btn ul, .file-upload-btn li { margin: 0; padding: 0; list-style: none; }
.file-upload-list { width: 100%; height: 184px; overflow-x: hidden; overflow-y: auto; border: 1px solid var(--table-line); background: var(--bg); box-sizing: border-box; }
.file-upload-table { width: 100%; border: 0; border-collapse: collapse; table-layout: fixed; background: var(--bg); }
.file-upload-list:has(.file-upload-body tr.init) { overflow-y: hidden; }
.file-upload-table colgroup { display: table-column-group; }
.file-upload-table .file-upload-check-col { width: 36px; }
.file-upload-table .file-upload-name-col { width: auto; }
.file-upload-table .file-upload-size-col { width: 96px; }
.file-upload-table thead { display: table-header-group; padding-right: 0; }
.file-upload-table .file-upload-body { display: table-row-group; height: auto; min-height: 0; overflow: visible; border-top: 0; }
.file-upload-table thead tr, .file-upload-table .file-upload-body tr { display: table-row; width: auto; }
.file-upload-table th, .file-upload-table td { min-width: 0; box-sizing: border-box; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.file-upload-table thead th { position: sticky; top: 0; z-index: 1; background: var(--table-head-bg); }
.file-upload-table .file-upload-body tr:first-child td { border-top: 0; }
.file-upload-table .file-upload-body tr.init td { height: 153px; color: var(--text-muted); text-align: center; vertical-align: middle; }
.file-upload-wrapper .fileNm, .rprs-file-upload-wrapper .fileNm { max-width: 100%; color: var(--text); text-align: left; }
.file-upload-wrapper .fileSize, .rprs-file-upload-wrapper .fileSize { max-width: 100%; color: var(--text-muted); text-align: right; }
.file-upload-wrapper .flie-upload-wait:empty, .rprs-file-upload-wrapper .flie-upload-wait:empty { display: none; }
.file-upload-msg { clear: both; width: 100%; min-height: 26px; padding: 0 8px; border: 1px solid var(--table-line); border-top: none; border-bottom: none; background-color: var(--bg-soft); line-height: 26px; box-sizing: border-box; }
.file-upload-msg ul { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.file-upload-msg .basic { float: none; width: auto; margin-left: 0; }
.file-upload-msg .current { float: none; padding-right: 0; white-space: nowrap; }
.file-upload-msg .current .totalNum, .file-upload-msg .current .totalSize { color: var(--danger); font-weight: 700; }
.file-upload-msg .current .inserted { color: var(--text-muted); font-weight: 400; }
.file-upload-btn { width: 100%; min-height: 0; padding: 4px 6px; border: 1px solid var(--line); background: var(--bg-soft); display: flex; align-items: center; justify-content: flex-end; gap: 6px; flex-wrap: wrap; box-sizing: border-box; }
.file-upload-btn ul, .file-upload-btn li { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 6px; }
.file-upload-btn button { float: none; margin: 0; border-width: 1px; border-style: solid; }
.file-upload-btn button:not(:disabled) { border-color: transparent; cursor: pointer; }
.file-upload-btn button[id*="add"]:not(:disabled), .file-upload-btn button[id*="Add"]:not(:disabled) { border-color: var(--btn-primary-outline-line); background: var(--btn-primary-outline-bg); color: var(--btn-primary-outline-text); }
.file-upload-btn button[id*="add"]:not(:disabled):hover, .file-upload-btn button[id*="add"]:not(:disabled):focus-visible, .file-upload-btn button[id*="Add"]:not(:disabled):hover, .file-upload-btn button[id*="Add"]:not(:disabled):focus-visible { border-color: var(--btn-primary-outline-hover-line); background: var(--btn-primary-outline-hover-bg); color: var(--btn-primary-outline-hover-text); }
.file-upload-btn button[id*="add"]:not(:disabled):active, .file-upload-btn button[id*="Add"]:not(:disabled):active { border-color: var(--btn-primary-outline-active-line); background: var(--btn-primary-outline-active-bg); color: var(--btn-primary-outline-active-text); }
.file-upload-btn button[id*="upload"]:not([id*="Cancel"]):not([id*="cancel"]):not(:disabled), .file-upload-btn button[id*="Upload"]:not([id*="Cancel"]):not([id*="cancel"]):not(:disabled) { border-color: var(--primary); background: var(--primary); color: var(--text-white); }
.file-upload-btn button[id*="upload"]:not([id*="Cancel"]):not([id*="cancel"]):not(:disabled):hover, .file-upload-btn button[id*="upload"]:not([id*="Cancel"]):not([id*="cancel"]):not(:disabled):focus-visible, .file-upload-btn button[id*="Upload"]:not([id*="Cancel"]):not([id*="cancel"]):not(:disabled):hover, .file-upload-btn button[id*="Upload"]:not([id*="Cancel"]):not([id*="cancel"]):not(:disabled):focus-visible { border-color: var(--primary-hover); background: var(--primary-hover); color: var(--text-white); }
.file-upload-btn button[id*="upload"]:not([id*="Cancel"]):not([id*="cancel"]):not(:disabled):active, .file-upload-btn button[id*="Upload"]:not([id*="Cancel"]):not([id*="cancel"]):not(:disabled):active { border-color: var(--primary-active); background: var(--primary-active); color: var(--text-white); }
.file-upload-btn button[id*="delet"]:not(:disabled), .file-upload-btn button[id*="delete"]:not(:disabled), .file-upload-btn button[id*="Delet"]:not(:disabled), .file-upload-btn button[id*="Delete"]:not(:disabled) { border-color: var(--btn-danger-outline-line); background: var(--btn-danger-outline-bg); color: var(--btn-danger-outline-text); }
.file-upload-btn button[id*="delet"]:not(:disabled):hover, .file-upload-btn button[id*="delet"]:not(:disabled):focus-visible, .file-upload-btn button[id*="delete"]:not(:disabled):hover, .file-upload-btn button[id*="delete"]:not(:disabled):focus-visible, .file-upload-btn button[id*="Delet"]:not(:disabled):hover, .file-upload-btn button[id*="Delet"]:not(:disabled):focus-visible, .file-upload-btn button[id*="Delete"]:not(:disabled):hover, .file-upload-btn button[id*="Delete"]:not(:disabled):focus-visible { border-color: var(--btn-danger-outline-hover-line); background: var(--btn-danger-outline-hover-bg); color: var(--btn-danger-outline-hover-text); }
.file-upload-btn button[id*="delet"]:not(:disabled):active, .file-upload-btn button[id*="delete"]:not(:disabled):active, .file-upload-btn button[id*="Delet"]:not(:disabled):active, .file-upload-btn button[id*="Delete"]:not(:disabled):active { border-color: var(--btn-danger-outline-active-line); background: var(--btn-danger-outline-active-bg); color: var(--btn-danger-outline-active-text); }
.file-upload-btn button[id*="Cancel"]:not(:disabled), .file-upload-btn button[id*="cancel"]:not(:disabled) { border-color: var(--btn-outline-line); background: var(--btn-outline-bg); color: var(--btn-outline-text); }
.file-upload-btn button[id*="Cancel"]:not(:disabled):hover, .file-upload-btn button[id*="Cancel"]:not(:disabled):focus-visible, .file-upload-btn button[id*="cancel"]:not(:disabled):hover, .file-upload-btn button[id*="cancel"]:not(:disabled):focus-visible { border-color: var(--btn-outline-hover-line); background: var(--btn-outline-hover-bg); color: var(--btn-outline-hover-text); }
.file-upload-btn button[id*="Cancel"]:not(:disabled):active, .file-upload-btn button[id*="cancel"]:not(:disabled):active { border-color: var(--btn-outline-active-line); background: var(--btn-outline-active-bg); color: var(--btn-outline-active-text); }

/* =========================================================
	회원가입
========================================================= */
.join-consent-page { flex: 1; padding: 28px 0 40px; background: var(--bg); }
.join-consent { width: min(1000px, 100%); margin: 0 auto; }
.join-consent-head { margin-bottom: 18px; text-align: center; }
.join-consent-head h3 { margin: 0 0 10px; color: var(--text-strong); font-size: var(--fs-24); font-weight: 700; line-height: var(--lh); }
.join-consent-head p { margin: 0; color: var(--text); font-size: var(--fs-15); line-height: var(--lh); }
.join-consent-card { padding: 24px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-soft); box-sizing: border-box; }
.join-consent-title { margin: 0 0 12px; color: var(--text-strong); font-size: var(--fs-15); font-weight: 700; line-height: var(--lh); }
.join-consent-terms-box { border: 1px solid var(--line); background: var(--bg); box-sizing: border-box; overflow: hidden; }
.join-consent-terms { display: block; width: 100%; height: 340px; padding: 16px; border: 0 !important; outline: 0 !important; background: var(--bg); color: var(--text); font-size: var(--fs-13); line-height: 1.7; white-space: pre-wrap; overflow-y: auto; box-shadow: none !important; box-sizing: border-box; }
.join-consent-terms-box:focus-within, .join-consent-terms:focus, .join-consent-terms:focus-visible, .join-consent-terms:active { border-color: var(--line); outline: 0 !important; box-shadow: none !important; }
.join-consent-agree { margin-top: 16px; text-align: center; }
.join-consent-agree label { display: inline-flex; align-items: center; gap: 6px; color: var(--text); font-size: var(--fs-15); line-height: var(--lh); cursor: pointer; }
.join-consent-agree input[type="checkbox"] { flex-shrink: 0; }
.join-consent-actions { display: flex; justify-content: center; gap: 8px; margin-top: 18px; }

.join-member-page { flex: 1; padding: 28px 0 40px; background: var(--bg); }
.join-member-page .join-member-wrap { padding-top: 0; padding-bottom: 32px; }
.join-member-page .join-member { width: min(1000px, 100%); margin: 0 auto; }
.join-member-page .join-member-head { margin-bottom: 18px; padding-bottom: 0; text-align: center; }
.join-member-page .join-member-head h3 { margin: 0; color: var(--text-strong); font-size: var(--fs-24); font-weight: 700; line-height: var(--lh); }
.join-member-card { border: 1px solid var(--line); border-radius: 10px; background: var(--bg); overflow: hidden; box-sizing: border-box; }
.join-member-section-title { margin: 0; padding: 10px 16px; border-bottom: 1px solid var(--line); background: var(--bg-soft); color: var(--text-strong); font-size: var(--fs-15); font-weight: 700; line-height: var(--lh); text-align: center; }
.join-member-table { width: 100%; border: 0; }
.join-member-label-col { width: 130px; }
.join-member-control-col { width: 220px; }
.join-member-table caption { position: absolute; overflow: hidden; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; clip: rect(0, 0, 0, 0); }
table.kbms-info-tb.join-member-table td { white-space: normal; overflow: visible; text-overflow: clip; }
table.kbms-info-tb.join-member-table select, table.kbms-info-tb.join-member-table input[type="text"], table.kbms-info-tb.join-member-table input[type="password"] { height: 30px; box-sizing: border-box; }
table.kbms-info-tb.join-member-table .w200 { width: 200px !important; min-width: 200px; max-width: none; }
.join-member-note { margin-left: 6px; color: var(--primary); font-size: var(--fs-13); line-height: var(--lh); vertical-align: middle; }
.join-member-field { display: inline-flex; align-items: center; vertical-align: middle; }
.join-member-inline { display: inline-flex; align-items: center; gap: 4px; margin-left: 10px; vertical-align: middle; }
.join-member-inline label { margin: 0; }
.join-member-inline input[type="checkbox"] { margin: 0; }
.join-member-tnnl-select { display: none; margin-left: 6px; }
.join-member-ext-input { height: 24px !important; }
.join-member-check-btn { min-width: 112px; margin-left: 4px; }
.join-member-actions { display: flex; justify-content: center; gap: 8px; margin-top: 16px; }

/* 비밀번호 변경 */
.change-pswd-page { flex: 1; padding: 28px 0 40px; background: var(--bg); }
.change-pswd-page .sub_title { margin-bottom: 18px; padding-bottom: 0; }
.change-pswd-page .sub_title h3 { margin: 0; color: var(--text-strong); font-size: var(--fs-24); font-weight: 700; line-height: var(--lh); }
.change-pswd-page .sub_section { width: min(700px, 100%); margin: 0 auto; }
.change-pswd-page .login_wrap { width: 100%; margin: 0; padding: 32px 40px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); box-sizing: border-box; }
.change-pswd-page .login_inner { width: 100%; margin: 0; }
.change-pswd-page .password_form { width: min(500px, 100%); margin: 0 auto; }
.change-pswd-page .password_form dl { display: grid; grid-template-columns: 150px minmax(0, 1fr); align-items: start; gap: 16px; margin: 0 0 16px; }
.change-pswd-page .password_form dl:last-child { margin-bottom: 0; }
.change-pswd-page .password_form dt, .change-pswd-page .password_form dd { float: none; width: auto; margin: 0; }
.change-pswd-page .password_form .password-input { width: 100%; height: 32px; }
.change-pswd-page .btnAction { margin-top: 24px; }
.change-pswd-page .btnAction ul { display: flex; justify-content: center; gap: 8px; margin: 0; }
.change-pswd-page .btnAction li { float: none; width: auto; margin: 0; list-style: none; }

/* =========================================================
	메인페이지
========================================================= */
.main { flex: 1; padding: 16px 0 16px; background: var(--bg); }
.main-banner { margin-bottom: 10px; }
.banner-card { position: relative; width: 100%; aspect-ratio: 2048 / 682; border-radius: 12px; overflow: hidden; background: #02142e; container-type: inline-size; }
.banner-visual { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.banner-visual-bg, .banner-visual-object { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: cover; -webkit-user-drag: none; user-select: none; }
.banner-visual-object { animation: banner-object-float 5.6s ease-in-out infinite; will-change: transform; }
@keyframes banner-object-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.banner-content { position: absolute; left: 5.27%; top: 14.4%; z-index: 1; width: 49%; color: #fff; }
.banner-title { margin: 0; color: #fff; font-size: clamp(28px, 3.32cqw, 40px); font-weight: 700; line-height: 1.62; letter-spacing: -.03em; }
.banner-desc { margin: clamp(20px, 2.15cqw, 26px) 0 0; color: #eef3ff; font-size: clamp(14px, 1.37cqw, 17px); font-weight: 400; line-height: 1.8; letter-spacing: -.02em; white-space: nowrap; }
.banner-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 112px; min-height: 48px; margin-top: clamp(20px, 2.25cqw, 27px); padding: 0 24px; border-radius: 7px; background: #166cff; color: #fff; font-size: 15px; font-weight: 700; line-height: 1; }
.banner-btn:hover, .banner-btn:focus-visible { background: #0f5ee8; color: #fff; text-decoration: none; }
.banner-btn:active { background: #0b50c9; }
.banner-btn:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

/* 바로가기 */
.quick-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 10px; }
.quick-link { min-height: 132px; padding: 24px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--text); display: flex; align-items: flex-start; gap: 16px; }
.quick-link:active { box-shadow: var(--focus-ring); }
.quick-link > span:last-child { min-width: 0; flex: 1; }
.quick-icon { width: 24px; height: 24px; color: var(--secondary); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.quick-icon svg, .quick-icon img { width: 24px; height: 24px; display: block; }
.quick-icon svg { stroke: currentColor; }
.quick-title { color: var(--text-strong); display: inline-flex; align-items: center; gap: 10px; font-size: var(--fs-19); font-weight: 700; line-height: var(--lh); }
.quick-title::after { content: ""; width: 8px; height: 8px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); flex-shrink: 0; }
.quick-link:hover .quick-title { text-decoration: underline; text-underline-offset: 4px; }
.quick-desc { display: block; margin-top: 12px; color: var(--text-muted); font-size: var(--fs-15); font-weight: 400; line-height: var(--lh); }

/* 게시판 */
.board-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.card { min-height: 0; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); overflow: hidden; }
.card-head { height: 54px; padding: 0 20px; border-bottom: 1px solid var(--line-soft); background: var(--bg); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.section-title { color: var(--text-strong); font-size: var(--fs-19); font-weight: 700; line-height: var(--lh); letter-spacing: 0; }
.link-text { min-height: 40px; padding: 0 12px; border-radius: 6px; color: var(--text-strong); display: inline-flex; align-items: center; justify-content: center; font-size: var(--fs-15); font-weight: 400; line-height: var(--lh); text-underline-offset: 4px; transition: background-color .15s; }
.link-text:hover, .link-text:focus-visible { background: var(--bg-soft); color: var(--text-strong); text-decoration: none; }
.link-text:active { background: var(--bg-active); }
.list { padding: 8px 20px 12px; }
.list li { min-height: 42px; border-bottom: 1px solid var(--line-soft); display: flex; align-items: center; gap: 12px; }
.list li:last-child { border-bottom: 0; }
.list-title { flex: 1; min-width: 0; overflow: hidden; color: var(--text); font-size: var(--fs-15); font-weight: 400; white-space: nowrap; text-overflow: ellipsis; text-underline-offset: 3px; }
.list-title:hover, .list-title:focus-visible { color: var(--text-strong); text-decoration: underline; }
.date { flex-shrink: 0; color: var(--text-muted); font-size: var(--fs-15); font-weight: 400; font-variant-numeric: tabular-nums; }

/* 미등록시설물 */
.nreg-search-panel { display: grid; grid-template-columns: 120px 120px auto; gap: 4px 8px; align-items: center; }

.family-section { padding: 12px 0; background: var(--bg-soft); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.family-inner { display: flex; align-items: center; gap: 24px; }
.family-label { color: var(--text-strong); flex-shrink: 0; font-size: var(--fs-15); font-weight: 700; line-height: var(--lh); white-space: nowrap; }
.family-list { flex: 1; display: flex; align-items: center; flex-wrap: wrap; row-gap: 8px; }
.family-list a { position: relative; padding: 0 16px; color: var(--text-muted); font-size: var(--fs-15); font-weight: 400; line-height: var(--lh); white-space: nowrap; }
.family-list a:first-child { padding-left: 0; }
.family-list a:before { content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 12px; background: var(--line); transform: translateY(-50%); }
.family-list a:first-child:before { display: none; }
.family-list a:hover, .family-list a:focus-visible { text-decoration: underline; }

.footer { background: var(--footer-bg); color: var(--footer-text); }
.footer-top { border-bottom: 1px solid rgba(255, 255, 255, .1); }
.footer-top .container { height: 48px; display: flex; align-items: center; gap: 24px; }
.footer-top a { font-size: var(--fs-15); font-weight: 700; }
.footer-top a.strong { color: var(--text-white); }
.footer-top a:hover, .footer-top a:focus-visible { color: var(--text-white); text-decoration: underline; }
.footer-body { padding: 24px 0; display: flex; justify-content: space-between; gap: 32px; }
.footer-name { margin-bottom: 8px; color: var(--text-white); font-size: var(--fs-17); font-weight: 700; }
.footer-info, .footer-note { color: var(--footer-text); font-size: var(--fs-15); font-weight: 400; line-height: var(--lh); }
.footer-note { text-align: right; }

/* =========================================================
	업무 레이아웃
========================================================= */
.sub_wrap { padding-top: 10px; padding-bottom: 100px; }
.inner { width: min(var(--content-max), calc(100% - (var(--page-x-pc) * 2))); margin: 0 auto; }
section div.wrap { position: relative; width: min(var(--content-max), calc(100% - (var(--page-x-pc) * 2))); margin: 0 auto; padding: 0; }
section div.wrap::after { display: block; clear: both; content: ""; }
section article .container { float: none; position: relative; width: 100%; padding: 10px 0 40px; }
section article .login { display: flex; align-items: center; justify-content: center; }
section article .login article { float: none; width: auto; }
.page-head { width: 100%; margin: 0 0 12px; line-height: normal; display: flex; flex-direction: column; gap: 4px; }
.page-title { float: none; margin: 0; color: var(--text-strong); font-size: var(--fs-32); font-weight: 700; line-height: var(--lh); letter-spacing: 0; }
.page-loca { float: none; margin: 0; color: var(--text-muted); font-size: var(--fs-13); font-weight: 400; line-height: var(--lh); }
.page-loca::after { display: block; clear: both; content: ""; }
.page-loca ol, .page-loca ul, ul.page-loca { display: flex; align-items: center; flex-wrap: wrap; list-style: none; }
.page-loca li { float: none; padding-left: 18px; background: url(../images/common/objDivLoca.png) no-repeat 8px 5px; }
.page-loca li:first-child { padding-left: 0; background: none; }
.page-loca a { color: inherit; text-decoration: none; }
.page-loca a:hover, .page-loca a:focus-visible { color: var(--text-strong); text-decoration: underline; }


/* =========================================================
	업무 공통
========================================================= */
.content { font-size: var(--fs-13); }
.kbms-tabs { margin: 10px 0 6px; }
.mtn-rslt-tabs { width: 100%; margin: 20px 0 6px; }
.mtn-rslt-tabs ul.tab { width: 100%; display: flex; margin-top: 20px; }
.mtn-rslt-tabs ul.tab li { flex: 1 1 0; width: auto; font-size: var(--fs-13); }
.mtn-rslt-tabs ul.tab li a { width: 100%; height: 34px; padding: 0 8px; white-space: nowrap; box-sizing: border-box; }

.kbms-options { clear: both; min-height: 28px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.kbms-options-left, .kbms-options-right { display: flex; align-items: center; gap: 6px; }
.kbms-options-right { margin-left: auto; justify-content: flex-end; }
.kbms-options select { width: auto; min-width: 66px; }
.kbms-options label { white-space: nowrap; }
#divFcltDetail #tabTopOptions { margin-top: 12px; }
.kbms-section { clear: both; width: 100%; margin-top: 12px; }
.kbms-section:first-child { margin-top: 0; }
.kbms-section-head { clear: both; min-height: 28px; margin: 11px 0 4px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.kbms-section-head .kbms-section-title { margin: 0; }
.kbms-section-head > .kbms-section-title + * { margin-left: auto; }
.kbms-section-head label { margin: 0; font-size: var(--fs-13); line-height: var(--lh); }
.kbms-section-subhead { clear: both; margin: 0 0 4px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.kbms-section-subhead .kbms-section-subtitle { margin: 0; }
.kbms-section-subhead > .kbms-section-subtitle + * { margin-left: auto; }
.kbms-section-title { margin: 12px 0 6px; padding-left: 0; background: none; color: var(--text-strong); font-size: var(--fs-15); font-weight: 700; line-height: var(--lh); }
.kbms-section-subtitle { margin: 8px 0 5px; padding-left: 0; background: none; color: var(--text-muted); font-size: var(--fs-13); font-weight: 700; line-height: var(--lh); }

/* 섹션 헤더 토글 */
.kbms-toggle-page .kbms-section-title[aria-expanded], #divContentInfo .kbms-section-title[aria-expanded] { cursor: pointer; transition: color .2s ease; }
.kbms-toggle-page .kbms-section-title[aria-expanded]::after, #divContentInfo .kbms-section-title[aria-expanded]::after { content: "▼"; display: inline-block; margin-left: 8px; font-size: 11px; vertical-align: middle; transition: transform .2s ease; }
.kbms-toggle-page .kbms-section-title[aria-expanded="false"], #divContentInfo .kbms-section-title[aria-expanded="false"] { color: var(--text-muted); }
.kbms-toggle-page .kbms-section-title[aria-expanded="false"]::after, #divContentInfo .kbms-section-title[aria-expanded="false"]::after { transform: rotate(-90deg); }

#frmLight .ui-multiselect { width: 100% !important; }
#lightListTbody tr.light-group-start > td { border-top: 2px solid var(--table-group-line); }
.list-util + .kbms-table-list, .list-util + .kbms-table-file { margin-top: 6px; }
.kbms-section-body + .kbms-form-actions, .kbms-table-list + .kbms-form-actions, .kbms-table-file + .kbms-form-actions { margin-top: 8px; }
.kbms-section .kbms-section-head + .kbms-section-body, .kbms-section .kbms-section-head + .kbms-table-list, .kbms-section .kbms-section-head + .kbms-table-file { margin-top: 0; }
.kbms-control-row { display: flex; align-items: center; gap: 4px; width: 100%; min-width: 0; }
.kbms-control-row input, .kbms-control-row select { width: auto; min-width: 0; flex: 1 1 0; }
.kbms-control-row span { flex: 0 0 auto; white-space: nowrap; }
.kbms-select-fit { width: auto !important; min-width: 96px; max-width: 140px; }
.kbms-input-number { text-align: right; }
.kbms-input-center { text-align: center; }
.kbms-input-readonly-plain { border: 0; background: transparent; pointer-events: none; }
.kbms-textarea-lg { min-height: 120px; }
.kbms-text-left { text-align: left !important; }
.kbms-empty-message { color: #999999; text-align: center; font-weight: 400; }
.kbms-empty-cell { height: 50px; }

/* =========================================================
	시설물정보
========================================================= */

/* 시설물정보 검색 패널 */
.fm-main-search-panel { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)) 64px; gap: 4px 8px; align-items: center; }
.fm-main-search-panel > div:has(> #selFcltKd) { grid-column: 1; }
.fm-main-search-panel .kbms-search-actions { align-items: center; }
.fm-search-hidden { display: none; }

.fm-add-select { width: auto; min-width: 104px; max-width: 130px; }
.fm-file-input { width: 100%; min-width: 0; height: 28px; padding: 0; border: 1px solid var(--input-line); border-radius: 6px; background: var(--input-bg); color: var(--text); font-family: inherit; font-size: var(--fs-13); line-height: 28px; box-sizing: border-box; }
.fm-file-input::file-selector-button { height: 26px; margin: 0 6px 0 0; padding: 0 8px; border: 0; border-right: 1px solid var(--input-line); background: var(--bg-soft); color: var(--text); font-family: inherit; font-size: var(--fs-13); font-weight: 400; cursor: pointer; }
.fm-file-input:hover::file-selector-button { background: var(--btn-outline-hover-bg); }
.fm-map-area-cell { height: 350px; }
.fm-map-box-lg { height: 350px; }
.fm-map-box { clear: both; width: 100%; min-height: 360px; border: 1px solid var(--table-line); background: var(--bg-soft); box-sizing: border-box; }
.fm-coordinate-row { display: flex; flex-wrap: nowrap; align-items: center; gap: 4px 6px; }
.fm-coordinate-row span { flex: 0 0 auto; white-space: nowrap; }
.fm-coordinate-row input { flex: 0 0 100px; }
.fm-location-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; width: 520px; max-width: 100%; margin-bottom: 3px; }
.fm-location-row select { width: 100%; min-width: 0; }
.fm-map-row { display: grid; grid-template-columns: repeat(3, 70px); justify-content: end; gap: 4px; align-items: center; width: 100%; }
.fm-map-row .btn, .fm-map-row select { width: 100%; min-width: 0; }
.fm-chart-wrap { margin-top: 15px; margin-bottom: 10px; height: 400px; text-align: center; }
.fm-chart-box { height: 400px; }
.fm-report-container { margin-bottom: 4px; }
.fm-report-panel { margin: 5px; height: 620px; }
.fm-crownix-viewer { position: relative; height: 600px; }
.fm-risk-section { margin-top: 18px; margin-bottom: 18px; padding: 12px; border: 1px solid var(--table-line); background: var(--bg); }
.fm-risk-summary-table th, .fm-risk-summary-table td, .fm-risk-table th, .fm-risk-table td { padding: 2px 3px; line-height: 1.22; vertical-align: middle; word-break: keep-all; overflow-wrap: anywhere; }
.fm-risk-summary-table input, .fm-risk-summary-table select, .fm-risk-table input, .fm-risk-table select { width: 100%; min-width: 0; height: 24px; padding-left: 3px; padding-right: 18px; font-size: var(--fs-13); box-sizing: border-box; }
.fm-risk-table td { white-space: normal; }
.fm-risk-table input.kbms-input-readonly-plain[readonly] { border: 0 !important; background: transparent !important; color: var(--text) !important; box-shadow: none; text-align: center; }
.fm-risk-table select + input { margin-top: 2px; }
.fm-vrfc-search-panel { display: grid; grid-template-columns: 120px repeat(5, minmax(0, 1fr)) auto; gap: 4px 8px; align-items: center; }
.fm-vrfc-search-panel .kbms-search-actions { align-items: center; gap: 4px; }
.fm-vrfc-search-panel .kbms-search-actions input[type="button"] { width: auto; min-width: 72px; }
.fm-vrfc-table th { text-align: left; }
.fm-vrfc-table tbody th { text-align: left; font-weight: 400; }
.fm-vrfc-table .vrfc-count-cell { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fm-vrfc-table .vrfc-count { color: var(--danger); font-weight: 700; }
.fm-vrfc-table .vrfc-action-cell { text-align: center; }
.fm-vrfc-table th.is-vrfc-selected, .fm-vrfc-table td.is-vrfc-selected { background: var(--primary-bg) !important; font-weight: 700; }
.fm-vrfc-table th.is-vrfc-selected { color: var(--secondary); box-shadow: inset 3px 0 0 var(--primary); }
.fm-vrfc-table .vrfc-empty-cell { border: none; background: transparent; }
.fm-vrfc-table .vrfc-empty-message { background: var(--bg-soft); color: #999999; text-align: center; font-weight: 700; }
.fm-3d-layout { display: flex; gap: 12px; align-items: stretch; }
.fm-3d-tree-panel { flex: 0 0 260px; height: 500px; overflow: auto; border: 1px solid var(--line); }
.fm-3d-view-panel { flex: 1 1 auto; min-width: 0; height: 500px; background-color: #bfd3cd; }
.fm-3d-toolbar { min-height: 50px; background-color: #e2e9e9; }
.fm-3d-toolbar-list { padding: 10px 0 0 10px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.fm-3d-color-controls { display: flex; align-items: center; gap: 5px; }
.fm-3d-color-input { margin-top: 1px; }
.fm-3d-canvas-wrap { height: 450px; background-color: #dfded3; }
.fm-3d-canvas { height: 100%; }

/* fms */
.fms-compare-column { width: 49%; }
.fms-compare-column-left { float: left; }
.fms-compare-column-right { float: right; }
.fms-compare-search-line { margin-top: 3px; }
.fms-compare-actions { float: right; }
.fms-compare-list-head { min-height: 30px; margin-top: 10px; }
.fms-compare-list-section, .fms-compare-sub-list { margin-top: 10px; }
.fms-compare-count-label { margin-right: 5px; }
.fms-compare-select-sm { width: 110px !important; }
.fms-compare-select-md { width: 120px !important; }
.fms-compare-keyword { width: 230px !important; }
.fms-compare-paginator { display: none; margin-top: 10px; text-align: center; }
.fms-compare-button-row { width: 100%; height: 30px; margin-top: 10px; }
.fms-compare-half-actions { float: left; width: 50%; height: 30px; }
.fms-compare-half-actions-right { float: right; }
.fms-compare-action-item { float: right; height: 27px; margin-bottom: 10px; }
.fms-compare-action-item-simple { float: right; }
.fms-compare-action-bar { float: right; width: 100%; padding-top: 4px; }
.fms-compare-action-bar-lg { padding-top: 10px; margin-bottom: 10px; }
.fms-compare-action-box { float: right; height: 26px; }
.fms-compare-btn-sm { width: 100px; margin-left: 10px; vertical-align: middle; }
.fms-compare-btn-md { width: 120px; margin-left: 10px; vertical-align: middle; }
.fms-compare-btn-gap-right { margin-right: 10px; }
.fms-compare-btn-no-gap { margin-left: 0; }
.fms-compare-info-section { float: left; width: 100%; margin-bottom: 10px; }
.fms-compare-info-table-min { min-height: 199px; }
.fms-compare-read-offset { margin-left: 5px; }
.fms-compare-control-full { width: 99% !important; }
.fms-compare-sub-list-head { margin-bottom: 15px; }
.fms-compare-total-page { float: left; overflow: visible; display: inline; }
.fms-compare-sub-list-size { float: right; margin-bottom: 10px; }
.fms-compare-pos-alert { display: none; float: left; color: var(--danger); }
.fms-compare-map-select { width: 80px !important; }
.fms-compare-map-cell, .fms-compare-map { height: 350px; }
.fms-compare-map { width: 100%; }
.fms-compare-help-cell { position: relative; }
.fms-compare-nowrap-sm { width: 120px; }
.fms-compare-nowrap-md { width: 150px; }
.fms-compare-empty-text { color: var(--text-subtle); }
.fms-download-hidden { display: none; }

/* 시설물정보 도로대장/FMS 사진 */
.fm-photo-table tr:first-child > th { border-top: 0; }
.fm-photo-grid { display: grid; grid-template-columns: 1fr; gap: 8px; width: 100%; height: 276px; padding: 8px; overflow-x: hidden; overflow-y: auto; box-sizing: border-box; }
.fm-photo-grid .thumb-wrap { position: relative; display: block; width: 100%; height: 260px; padding: 0; border: 0; overflow: hidden; background: #E6E8EA; cursor: pointer; box-sizing: border-box; }
.fm-photo-grid .thumb-wrap:has(.kbms-photo-thumb.is-selected)::after { position: absolute; inset: 0; z-index: 2; box-shadow: inset 0 0 0 calc(var(--focus-width) + 2px) var(--focus-color); pointer-events: none; content: ""; }
.fm-photo-grid .iconlinks { position: absolute; right: 0; bottom: 0; left: 0; z-index: 1; min-height: 58px; padding: 8px 10px; background: rgba(0, 0, 0, .5); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; color: #FFFFFF; text-align: center; opacity: 0; visibility: hidden; transform: translateY(100%); transition: opacity .18s, visibility .18s, transform .18s; pointer-events: none; box-sizing: border-box; }
.fm-photo-grid .thumb-wrap:hover .iconlinks, .fm-photo-grid .kbms-photo-thumb.is-selected + .iconlinks { opacity: 1; visibility: visible; transform: translateY(0); }
.fm-photo-grid.is-empty { display: flex; padding: 0; }
.fm-photo-grid.is-empty .kbms-photo-empty { min-height: 0; }
.fms-photo-cell { height: 180px; }
.fms-photo-cell .kbms-photo-box { height: 160px; }

.rd-report-head { display: flex; align-items: center; justify-content: flex-end; margin: 6px 0; }
.rd-report-close { min-width: auto; }
.rd-report-viewer { position: relative; width: 100%; height: 720px; min-height: 520px; border: 1px solid var(--table-line); background: var(--bg); overflow: hidden; box-sizing: border-box; }

/* KBMS/도로대장/FMS 선택 */
#radioForm { display: flex; align-items: center; gap: 16px; }
#radioForm label { display: inline-flex; align-items: center; gap: 5px; margin: 0; }

/* 구조정보 저장 버튼 */
#divContentInfo .kbms-section-body > .kbms-form-actions { justify-content: center; }

/* 유지관리이력 체크박스 */
.svmtnc-check-row { margin: 4px 4px; display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: center; column-gap: 8px; }
.svmtnc-check-row > div { display: grid; grid-template-columns: repeat(8, minmax(0, 120px)); align-items: center; }
.svmtnc-check-row label { display: inline-flex; align-items: center; justify-self: start; gap: 2px; white-space: nowrap; }

/* 교통량정보 팝업 */
.traf-info-year-list { margin-top: 10px; }
.traf-info-tabs { margin-top: 10px; }
.traf-info-chart-box { margin-bottom: 16px; }


/* =========================================================
	시설물통계
========================================================= */
/* 통계 안내사항 */
.stat-guide { margin: 0 0 8px; }
.stat-guide > summary { min-height: 32px; padding: 0 9px; justify-content: flex-start; gap: 4px; }
.stat-guide > summary::before { content: ""; width: 16px; height: 16px; flex: 0 0 16px; background: url(../images/icons/ico_information_fill.svg) no-repeat 50% 50%; background-size: 16px 16px; }
.stat-guide > summary::after { margin-left: auto; }

.stat-fclt-wrap { display: none; margin-top: 16px; }

/* 통계 검색패널 */
.stat-search-panel { margin-bottom: 8px; display: grid; gap: 4px 8px; align-items: center; }
#divFmOrgStat > .stat-search-panel { grid-template-columns: 76px minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 64px 150px 64px; }
#divFmUseYrStat > .stat-search-panel, #divFmStdgStat > .stat-search-panel { grid-template-columns: 76px 88px minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 64px 64px; }
#divFmCrtrYrStat > .stat-search-panel, #divFmLtStat > .stat-search-panel, #divFmGrdStat > .stat-search-panel { grid-template-columns: 72px 72px 88px minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 64px 64px; }
.stat-search-panel > .kbms-search-actions { grid-column: -2 / -1; align-items: center; }
@media (max-width: 1200px) {
	.stat-search-panel { grid-template-columns: repeat(3, minmax(0, 1fr)) 72px; }
	.stat-search-panel > .kbms-search-actions { grid-column: auto; }
	.stat-search-panel > div:has(> #selTunlType) { grid-column: span 3; }
}

/* =========================================================
	유지관리
========================================================= */
.mtn-hidden { display: none; }
.mtn-fill-height { height: 100%; }
#divSvdmPic.kbms-photo-box, #divCsSmPic.kbms-photo-box, #divCsSmPic2.kbms-photo-box { border: 1px solid #C8D1DA; }
.mtn-cell-actions { text-align: center; }
.mtn-clickable { cursor: pointer; }

/* 유지관리 검색 패널 */
.mtn-main-search-panel > div:nth-child(n+7):not(.kbms-search-actions) { grid-row: 2; }
.mtn-main-search-panel .kbms-search-actions { grid-column: 7; grid-row: 2; }
.mtn-main-search-panel { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)) 64px; gap: 4px 8px; align-items: center; }
.mtn-work-main-search-panel { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)) 64px; gap: 5px 8px; align-items: center; }
.mtn-target-fclt-search-panel { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)) 64px; gap: 4px 8px; align-items: center; }
.mtn-work-fclt-search-panel { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)) 64px; gap: 4px 8px; align-items: center; }
.mtn-svdm-search-panel { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)) 64px; gap: 4px 8px; align-items: center; }
.kbms-detail-search-panel { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)) 64px; gap: 4px 8px; align-items: center; }
.kbms-add-search-panel { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)) 64px; gap: 4px 8px; align-items: center; }
.mtn-work-main-search-panel > div:nth-child(n+7):not(.kbms-search-actions) { grid-row: 2; }
.mtn-work-main-search-panel > div:has(> input[name="keyword"]) { grid-column: span 2; }
.mtn-work-main-search-panel .kbms-search-actions { grid-column: 7; grid-row: 2; }
.mtn-target-fclt-search-panel { row-gap: 5px; }
.mtn-target-fclt-search-panel > select[name="selPrsdNcstyYn"] { grid-column: 1; grid-row: 2; }
.mtn-target-fclt-search-panel > select[name="selRpremgCd"] { grid-column: 2; grid-row: 2; }
.mtn-target-fclt-search-panel > select[name="selInptSttsSe"] { grid-column: 3; grid-row: 2; }
.mtn-target-fclt-search-panel > select[name="selIdntyCd"] { grid-column: 4; grid-row: 2; }
.mtn-target-fclt-search-panel > input[name="keyword"] { grid-column: 5 / span 2; grid-row: 2; }
.mtn-target-fclt-search-panel .kbms-search-actions { grid-column: 7; grid-row: 2; }
.mtn-work-fclt-search-panel { row-gap: 5px; }
.mtn-work-fclt-search-panel > select[name="selInptSttsSe"] { grid-column: 1; grid-row: 2; }
.mtn-work-fclt-search-panel > input[name="keyword"] { grid-column: 2 / span 5; grid-row: 2; }
.mtn-work-fclt-search-panel .kbms-search-actions { grid-column: 7; grid-row: 2; }
.kbms-detail-search-panel .kbms-search-actions, .kbms-add-search-panel .kbms-search-actions { grid-column: 7; }
.mtn-svdm-search-panel { row-gap: 5px; }
.mtn-svdm-search-panel > div:not(.kbms-search-actions) > select, .mtn-svdm-search-panel > div:not(.kbms-search-actions) > input { height: 28px; box-sizing: border-box; }
.mtn-svdm-search-panel .kbms-search-actions { grid-column: 7; }

/* 손상점검 입력 */
.mtn-dmg-vlm-cell { display: flex; align-items: center; gap: 4px; }
.mtn-dmg-vlm-cell input[type="text"] { flex: 1; min-width: 0; }
.mtn-dmg-vlm-cell select { width: 56px; flex-shrink: 0; }
.bms2dItem, .bms3dItem { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 0; }
.bms2dItem .mtn-action-item, .bms3dItem .mtn-action-item { margin-left: 0; }
.mtn-viewer-tree { width: 210px; height: 500px; overflow: auto; border: 1px solid lightgray; }
.mtn-viewer-main { width: 830px; height: 500px; background-color: #bfd3cd; }
.mtn-viewer-toolbar { width: 100%; height: 50px; background-color: #e2e9e9; }
.mtn-viewer-tools { padding-left: 10px; padding-top: 10px; }
.mtn-viewer-canvas { position: relative; width: 100%; height: 450px; background-color: #dfded3; }
.mtn-canvas-fill { width: 100%; height: 100%; }
.mtn-color-input { margin-top: 1px; margin-right: 5px; }
.mtn-viewer-placeholder { width: 100%; min-height: 180px; padding-top: 10px; text-align: center; }

.mtn-tnme-opinion-cell { width: 10%; }
.mtn-tnme-opinion-cell-sm { width: 7%; }
.mtn-damage-cell { width: 120px; }

/* 보수보강방안 */
.svrp-search-panel { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)) 64px; gap: 4px 8px; align-items: center; }
.svrp-search-panel .kbms-search-actions { grid-column: 7; }
#divSvrpPaginator, #divSvrpEditor, #divSvrpQtyTool, #divSvrpDmgModal { display: none; }
#divSvrpEditor { margin-top: 24px; }
#divSvrpQtyTool { margin-top: 8px; padding: 12px; border: 1px solid var(--line-soft); background: var(--bg-soft); }
#divSvrpQtyCalc { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 8px 12px; align-items: center; margin: 0; }
#divSvrpQtyCalc[hidden] { display: none; }
#divSvrpQtyCalc dt, #divSvrpQtyCalc dd { margin: 0; min-width: 0; }
#divSvrpQtyCalc dt { font-weight: 600; }
#inpSvrpQtyRate { width: 80px; }
#divSvrpDmgModal { width: 900px; max-width: 900px; }
#btnSvrpDmgAdd { margin-left: auto; margin-right: auto; }
#selSvrpUnitCd { width: 56px; flex: 0 0 56px; }
#tblSvrpLinked tfoot th { text-align: center !important; }
#tblSvrpLinked tfoot td { font-weight: 700; }
#tblSvrpLinked + .kbms-table-form > tbody > tr:first-child > * { border-top: 0; }

/* 전차수 손상 비교 */
body .modal#divSvdmCompareModal { max-width: 1000px; overflow: hidden; }
#divSvdmCompareTable { max-height: calc(100vh - 300px); overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; scrollbar-gutter: stable; }
#divSvdmCompareTable::-webkit-scrollbar { width: 6px; }
#divSvdmCompareTable::-webkit-scrollbar-track { border-radius: 4px; background: #f1f1f1; }
#divSvdmCompareTable::-webkit-scrollbar-thumb { border-radius: 4px; background: #bcbcbc; }
#divSvdmCompareTable::-webkit-scrollbar-thumb:hover { background: #999; }
#tblSvdmCompare { border-collapse: separate; border-spacing: 0; }
#tblSvdmCompare th, #tblSvdmCompare td { border-width: 0 1px 1px 0; }
#tblSvdmCompare thead tr:first-child > :first-child, #tblSvdmCompare tbody tr > :first-child { border-left-width: 1px; }
#tblSvdmCompare thead tr:first-child > * { border-top-width: 1px; }
#tblSvdmCompare thead { position: sticky; top: 0; z-index: 2; }
#tblSvdmCompare thead th { background: var(--table-head-bg); }
#txtSvdmCompareTarget { color: #FFFFFF; font-weight: 400; }
#divSvdmCompareModal .list-util { min-height: 42px; margin: 0 0 10px; padding: 8px 10px; border: 1px solid var(--line-soft); border-radius: 6px; background: var(--color-secondary-70); box-sizing: border-box; color: #FFFFFF; }
#divSvdmCompareModal .list-util-controls label { font-size: var(--fs-13); white-space: nowrap; }
#tblSvdmCompare col:nth-child(1) { width: 18%; }
#tblSvdmCompare col:nth-child(2) { width: 22%; }
#tblSvdmCompare col:nth-child(3) { width: 10%; }
#tblSvdmCompare col:nth-child(4), #tblSvdmCompare col:nth-child(5) { width: 14%; }
#tblSvdmCompare col:nth-child(6) { width: 12%; }
#tblSvdmCompare col:nth-child(7) { width: auto; }

/* 부재평가 */
.mtn-brme-viewer-layout { width: 100%; margin-bottom: 8px; display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 8px; align-items: stretch; }
.mtn-brme-viewer-layout .mtn-viewer-tree { width: auto; min-width: 0; height: 500px; overflow: auto; border: 1px solid var(--line); }
.mtn-brme-viewer-layout .mtn-viewer-main { width: auto; min-width: 0; height: 500px; background-color: #bfd3cd; }
.mtn-brme-viewer-layout #div3DControl.mtn-viewer-toolbar { width: 100%; height: 50px; background-color: #e2e9e9; }
.mtn-brme-viewer-layout .mtn-viewer-canvas { position: relative; width: 100%; height: 450px; background-color: #dfded3; }
.mtn-brme-viewer-layout #div3DControl ul,
.mtn-brme-viewer-layout .mtn-viewer-tools { margin: 0; padding: 10px; list-style: none; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.mtn-brme-viewer-layout #div3DControl ul li,
.mtn-brme-viewer-layout .mtn-viewer-tools li { margin: 0; padding: 0; list-style: none; display: flex; align-items: center; }
.mtn-brme-viewer-layout #btnAllInit,
.mtn-brme-viewer-layout #btnCameraInit,
.mtn-brme-viewer-layout #btnPerspective,
.mtn-brme-viewer-layout #btnOrthogonal,
.mtn-brme-viewer-layout #btnViewExpand,
.mtn-brme-viewer-layout #btnAllShow,
.mtn-brme-viewer-layout #btnReverseSelects,
.mtn-brme-viewer-layout #btnShowSelects,
.mtn-brme-viewer-layout #btnHideSelects,
.mtn-brme-viewer-layout #btnTransSelects,
.mtn-brme-viewer-layout #btnProperty { width: 32px; height: 32px; flex: 0 0 32px; cursor: pointer; }

/* 점검결과 체크리스트 */
#divJgjgCheckBody td.tl { white-space: normal; }
#divJgjgCheckBody td.tl + td.tl { word-break: break-all; }
#jgjgSafeGrade { font-weight: 700; }

/* 수행정보 이미지 */
.grdImg { display: block; width: 55px; height: 55px; margin: 0 auto; cursor: pointer; }

/* 중대한 결함 등급 이미지 */
#divSvcrInfo .grdImg { width: 40px; height: 40px; }
#divSvcrInfo textarea { height: 40px; min-height: 40px; }

/* 3D 뷰어 유틸 */
.absolute { position: absolute; }
.inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
.w-full { width: 100%; }
.h-full { height: 100%; }

.mtn-brme-wrap { width: 100%; overflow-x: hidden; }
.kbms-table.mtn-brme-table { width: 100%; table-layout: fixed; }
.kbms-table.mtn-brme-table .mtn-brme-span-col, .kbms-table.mtn-brme-table .mtn-brme-point-col { width: 54px; }
.kbms-table.mtn-brme-table .mtn-brme-member-col { width: calc((100% - 108px) / 10); }
.kbms-table.mtn-brme-table th { padding: 4px 3px; text-align: center; }
.kbms-table.mtn-brme-table td { height: 64px; padding: 4px 3px; text-align: center; vertical-align: middle; }
.kbms-table.mtn-brme-table tr[name="opnnCn"] > th,
.kbms-table.mtn-brme-table tr[name="opnnCn"] > td { height: 32px; padding: 3px 5px; vertical-align: middle; }
.kbms-table.mtn-brme-table tr[name="opnnCn"] > td[rowspan],
.kbms-table.mtn-brme-table tr[name="opnnCn"] > th[rowspan] { height: 64px; }
.kbms-table.mtn-brme-table tr[name="weight"] > th,
.kbms-table.mtn-brme-table tr[name="weight"] > td { height: 32px; padding: 3px 5px; vertical-align: middle; }
.mtn-brme-opnn-label, .mtn-brme-opnn-repair-label { text-align: center; white-space: nowrap; }
.mtn-brme-opnn-field { text-align: left; overflow: visible; white-space: normal; }
.mtn-brme-opnn-field input[type="text"] { width: 100%; min-width: 0; height: 28px; box-sizing: border-box; }
.mtn-brme-opnn-photo, .mtn-brme-opnn-repair { text-align: center; vertical-align: middle; }
.kbms-table.mtn-brme-table tr[name="opnnCn"] > td.mtn-brme-opnn-photo { padding-left: 3px; padding-right: 3px; }
.mtn-brme-opnn-photo button[name="btnPicAdd"] { width: 100%; min-width: 0; max-width: 100%; height: 28px; padding: 0 3px; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; letter-spacing: -0.3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#brmeGrdrContainer .mtn-brme-grdr-group { margin-bottom: 16px; }
#brmeGrdrContainer .mtn-brme-grdr-group:last-child { margin-bottom: 0; }
#brmeGrdrContainer .mtn-brme-grdr-title { margin: 0 0 6px; padding: 0; font-size: 14px; font-weight: 700; color: #333; }
.mtn-brme-total-label { margin-left: 16px; }
#svgdSpmaNo, #brmeTotalGrd { width: 108px !important; }

/* 관련시설물 새 창 */
.fm-window-detail { width: 100%; visibility: hidden; background: var(--bg); }
.fm-window-detail > .gis-detailinfo-titlebar { position: static; width: 100%; min-height: 42px; border-bottom: 1px solid var(--line); background: var(--bg); overflow: hidden; box-sizing: border-box; }
.fm-window-detail > .gis-detailinfo-titlebar span { float: left; padding: 10px 15px; color: var(--text-strong); font-size: var(--fs-15); font-weight: 700; }
.fm-window-detail > .gis-detailinfo-content.fm-window-detail-content { height: auto; min-height: 0; margin-top: 0; padding: 5px 12px 16px; overflow: visible; box-sizing: border-box; }

/* =========================================================
	관리자
========================================================= */
.admin-popup-list-section { min-height: 400px; margin-top: 5px; }
.admin-popup-actions-gap { margin-top: 20px; }
.admin-panel-hidden { display: none; }
#addUserId, #addUserPswd1, #addUserPswd2 { width: 100%; max-width: 176px; }
.admin-inline-gap { margin-left: 3px; }
.admin-inline-note { margin-left: 3px; color: var(--primary)}
.admin-empty-text { color: var(--text-subtle); }

/* 사용자관리 검색패널 */
.user-search-panel { display: grid; grid-template-columns: repeat(7, 1fr) 64px; gap: 4px; align-items: center; }
.user-search-panel .kbms-search-actions { grid-column: -2; }

/* 업체관리 검색패널 */
.mngr-search-panel { display: grid; grid-template-columns: repeat(4, 1fr) 106px 16px 106px 1fr 64px; gap: 4px; align-items: center; }
.mngr-search-panel .kbms-search-actions { grid-column: -2; }
.mngr-search-panel > span:not(.kbms-date-cell) { text-align: center; line-height: 32px; }
.list-util-controls { display: flex; align-items: center; justify-content: flex-end; gap: 6px; margin-left: auto; }
.admin-panel-hidden.kbms-section { display: none; }

/* =========================================================
	자료실
========================================================= */

/* 공지사항, 현황조서 */
.board-search-panel { display: grid; grid-template-columns: 140px minmax(0, 1fr) 64px; gap: 4px 8px; align-items: end; }
.board-list-section { margin-top: 10px; }
.board-list-table .notice-title-cell { width: 100%; }
.board-detail-panel { display: none; margin-top: 12px; }
.board-detail-table .board-control { width: 100%; }
.board-file-link { display: inline-block; max-width: 100%; cursor: pointer; color: var(--primary); font-weight: 700; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; vertical-align: middle; }
.board-file-name { display: none; }
.board-file-input { width: 100%; }
.board-file-note { color: var(--danger); }
.notice-popup-wrap { margin: 15px; }
.notice-title-cell { width: 480px; }

/* 만족도 조사 */
.dgex-intro { margin-bottom: 12px; color: var(--text); font-size: var(--fs-15); line-height: 1.6; }
.dgex-guide > summary { justify-content: flex-start; gap: 4px; }
.dgex-guide > summary::before { content: ""; width: 16px; height: 16px; flex: 0 0 16px; background: url(../images/icons/ico_information_fill.svg) no-repeat 50% 50%; background-size: 16px 16px; }
.dgex-guide > summary::after { margin-left: auto; }
.dgex-ref-item { padding: 8px 0; border-top: 1px solid var(--line-soft); }
.dgex-ref-item:first-child { padding-top: 0; border-top: 0; }
.dgex-ref-item h3 { margin: 0 0 6px; color: var(--text-strong); font-size: var(--fs-13); font-weight: 700; }
.dgex-ref-item p { margin: 0; line-height: 1.5; }
.dgex-ref-list { margin: 6px 0 0 16px; line-height: 1.5; }
.dgex-ref-table { width: 100%; margin-top: 6px; font-size: var(--fs-13); }
.dgex-table th { text-align: left; }
.dgex-group-title { height: 36px; padding: 7px 10px !important; background: var(--table-head-bg); color: var(--text-strong); font-size: var(--fs-15) !important; font-weight: 700; }
.dgex-table td.dgex-option-cell { text-align: center; }
.dgex-table td.dgex-option-cell label { display: inline-flex; align-items: center; gap: 4px; width: 90px; white-space: nowrap; }

/* =========================================================
	Legacy
========================================================= */
/* 텍스트 / float */
.clear, .clear-both { clear: both; }
.blind, .sr_only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; border: 0; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.nowrap { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.bold { font-weight: 700 !important; }
.left { float: left; }
.right { float: right; }
.red { color: var(--danger); font-weight: 700; vertical-align: inherit; }
.blue { color: var(--primary); vertical-align: inherit; }


/* 너비 / 여백 */
.w100p { width: 100% !important; }
.w60 { width: 60px !important; }
.w120 { width: 120px !important; }
.w180 { width: 180px !important; }
.w200 { width: 200px !important; }
.mt5 { margin-top: 5px; }

/* 제목 */
.sub_title { padding-bottom: 10px; text-align: center; }
.sub_title h3 { font-size: var(--fs-32); font-weight: 400; }
.title2 { margin-top: 20px; margin-bottom: 10px; padding: 0 0 0 22px; background: url(../images/sub/info_title.gif) no-repeat 0 4px; color: var(--secondary); font-size: var(--fs-15); font-weight: 700; }
.tit_01 { margin-bottom: 10px; color: var(--text); font-size: var(--fs-15); font-weight: 400; }

/* 구형 검색 */
.box-search-line { float: left; white-space: normal; font-size: var(--fs-17); line-height: var(--lh); }
.box-search-line select { width: 150px; margin-right: 8px; }
.box-search-line input[type="text"], .box-search-line input[type="search"], .box-search-line input.basic.search { width: 130px; margin-right: 8px; }
.box-search-line input[type="text"]:first-child, .box-search-line input[type="search"]:first-child, .box-search-line input.basic.search:first-child { margin-left: 0; }

/* 구형 테이블 */
table.kbms-info-tb, table.file-list-tb, table.main { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: var(--fs-13); line-height: var(--lh); }
table.file-list-tb th, table.main th, table.kbms-info-tb th { padding: 4px 5px; border: 1px solid var(--table-line); background: var(--table-head-bg); color: var(--text); font-size: var(--fs-13); font-weight: 700; line-height: var(--lh); text-align: center; white-space: normal; word-break: keep-all; }
table.file-list-tb td, table.main td, table.kbms-info-tb td { padding: 3px 5px; border: 1px solid var(--table-line); color: var(--text); font-size: var(--fs-13); line-height: var(--lh); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
table.kbms-info-tb th.gubun { background: var(--bg-active); }

/* 구형 로딩 */
#back, #backgroundCover { position: absolute; left: 0; top: 0; z-index: 9999; display: none; background-color: #000000; }
#loadingBar { position: fixed; inset: 0; z-index: 9999; display: none; background: var(--overlay-bg); }
#loadingBarImage { position: fixed; left: calc(50% - 16px); top: calc(50% - 16px); z-index: 10000; display: none; width: 32px; height: 32px; margin: 0; border: 4px solid var(--line-soft); border-top-color: var(--primary); border-radius: 50%; background: transparent; animation: kbmsSpin .8s linear infinite; }

/* 구형 지도 / 이미지 */
div.kakaoContainer { display: none; position: fixed; left: 0; top: 0; z-index: 9999; width: 100%; height: 100%; background-color: rgba(0, 0, 0, .5); }
button.roadview { position: absolute; top: 15px; right: 15px; width: 50px; height: 50px; border-radius: 25px; background-color: rgba(0, 0, 0, .7); }
.scrollable { width: 500px; padding: 5px; overflow-x: auto; overflow-y: hidden; border: 1px solid var(--line); }
.scrollable .items { text-align: center; vertical-align: middle; }
.scrollable img { float: left; width: 300px; height: 330px; margin: 5px 5px 10px 10px; padding: 2px; border: 1px solid var(--line); border-radius: 4px; background-color: var(--bg); cursor: pointer; }
.scrollable .active { position: relative; z-index: 10; border: 2px solid var(--text-strong); }
ul#ulTreeview, ul#ulTreeview li { font-size: var(--fs-15); line-height: var(--lh); }
div#div3DControl { width: 100%; height: 50px; background-color: var(--bg-soft); }
div#div3DControl ul { padding-top: 10px; }
div#div3DControl ul li { padding-left: 30px; text-align: center; }
div#btnAllInit, div#btnCameraInit, div#btnOrthogonal, div#btnViewExpand, div#btnAllShow, div#btnReverseSelects, div#btnShowSelects, div#btnHideSelects, div#btnTransSelects, div#btnColorChange, div#btnProperty { width: 32px; height: 32px; cursor: pointer; }
div#btnAllInit { background-image: url("../images/3d/color/btn_all_init.png"); }
div#btnCameraInit { background-image: url("../images/3d/color/btn_camera_init.png"); }
div#btnOrthogonal { background-image: url("../images/3d/color/btn_orthogonal.png"); }
div#btnViewExpand { background-image: url("../images/3d/color/btn_view_expand.png"); }
div#btnAllShow { background-image: url("../images/3d/color/btn_all_show.png"); }
div#btnReverseSelects { background-image: url("../images/3d/color/btn_reverse_selects.png"); }
div#btnShowSelects { background-image: url("../images/3d/color/btn_show_selects.png"); }
div#btnHideSelects { background-image: url("../images/3d/color/btn_hide_selects.png"); }
div#btnTransSelects { background-image: url("../images/3d/color/btn_trans_selects.png"); }
div#btnColorChange { background-image: url("../images/3d/color/btn_color_change.png"); }
div#btnProperty { background-image: url("../images/3d/color/btn_property.png"); }

/* =========================================================
	반응형
========================================================= */
@media (max-width: 1200px) {
	.container { width: calc(100% - (var(--page-x-pc) * 2)); padding-left: 0; padding-right: 0; }
	.quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.board-grid { grid-template-columns: 1fr; }
	.gnb-panel.is-all-menu .gnb-panel-inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.page-dim { display: none !important; }
	section article .container { float: none; width: 100%; }
}
@media (max-width: 767px) {
	.container, .inner, section div.wrap { width: calc(100% - (var(--page-x-mo) * 2)); padding-left: 0; padding-right: 0; }
	.top-notice { height: auto; padding: 8px 0; }
	.header-inner { height: auto; padding: 16px 0; align-items: flex-start; gap: 16px; flex-direction: column; }
	.header-actions, .header-actions-login { width: 100%; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
	.header-actions-login { grid-column: 1 / -1; }
	.header-actions .btn, .header-util-btn { width: 100%; min-width: 0; padding: 0 8px; }
	.header-allmenu-mobile { display: inline-flex; }
	.header-myinfo-panel { right: 0; width: min(156px, calc(100vw - 32px)); }
	.gnb-wrap > .container { display: none; }
	.gnb-panel { position: static; }
	.gnb-depth { width: 100%; }
	.gnb-depth-list, .gnb-panel.is-all-menu .gnb-panel-inner { grid-template-columns: 1fr; }
	.quick-grid { grid-template-columns: 1fr; }
	.banner-card { min-height: 320px; aspect-ratio: auto; }
	.banner-visual { width: 100%; height: 100%; left: 0; }
	.banner-visual-bg { object-fit: cover; }
	.banner-visual-object { object-fit: contain; object-position: right; }
	.banner-content { left: 24px; top: 28px; width: calc(100% - 48px); }
	.banner-title { font-size: 30px; line-height: 1.45; }
	.banner-desc { margin-top: 18px; font-size: 14px; line-height: 1.7; white-space: normal; }
	.banner-desc br { display: none; }
	.banner-btn { width: 104px; height: 44px; margin-top: 20px; border-radius: 6px; font-size: 15px; }
	.footer-top .container { height: auto; padding-top: 14px; padding-bottom: 14px; align-items: flex-start; flex-direction: column; gap: 8px; }
	.footer-body { flex-direction: column; }
	.footer-note { text-align: left; }
	.change-pswd-page .login_wrap { padding: 24px 20px; }
	.change-pswd-page .password_form dl { grid-template-columns: 1fr; gap: 6px; }
}

@media (prefers-reduced-motion: reduce) {
	.banner-visual-object { animation: none; }
}

/* =========================================================
	부속시설(br_affc_t) 영역 커스텀
========================================================= */
/* 목록 헤더/컬럼 폭 고정 해제 - 내용에 맞게 자동으로 늘어나도록 */
#divAFListBody { table-layout: auto; }

/* 제원값(cm) 입력창 + 단위 라벨이 한 줄에 붙어서 나오도록 여유 확보 */
#divBRAFUpdate .kbms-affclt-sp-cell { white-space: nowrap; }
#divBRAFUpdate .kbms-affclt-sp-cell #affcltSp { display: inline-block; width: auto;width: 160px; vertical-align: middle; }
#divBRAFUpdate .kbms-affclt-sp-cell #affcltSpUnit { display: inline-block; margin-left: 4px; white-space: nowrap; vertical-align: middle; color: var(--text-sub, #666); }
