/* 
 * MES 시스템 커스텀 CSS
 */
body {
	overflow-y: scroll;
}

.data-section {
	opacity: 0;
	transition: opacity 0.5s ease-in-out;
}

/* onload 후에 붙는 .loaded 클래스가 있으면 페이드 인 */
.loaded .data-section {
	opacity: 1;
}

@media (min-width : 992px) {
	body.no-body-scroll {
		overflow: hidden;
	}
}

/* 체크된 체크박스의 공통 스타일 (활성화 및 비활성화 모두) */
.form-check-input:checked[type="checkbox"],
.form-check-input:disabled:checked[type="checkbox"] {
	/* 배경색 설정 */
	background-color: #0d6efd !important;
	border-color: #0d6efd !important;
	/* 기본 체크 마크 제거 */
	background-image: none !important;
	/* 체크 마크를 텍스트로 대체 */
	position: relative;
	appearance: none !important;
	-webkit-appearance: none !important;
}

/* 체크된 체크박스에 텍스트 체크 마크 추가 (활성화 및 비활성화 모두) */
.form-check-input:checked[type="checkbox"]::after,
.form-check-input:disabled:checked[type="checkbox"]::after {
	content: "✓";
	position: absolute;
	top: -4px;
	left: 2.5px;
	font-size: 14px;
	color: white;
	font-weight: bold;
}

.form-check-input:checked[type="checkbox"]#selectAllGroups::after,
.form-check-input:checked[type="checkbox"]#selectAllAuthUsers::after {
	top: 7px !important;
}

.form-switch .form-check-input[type="checkbox"] {
	position: relative;
	top: 3px !important;
}

.form-check-input:checked[type="checkbox"]#accountLockYn::after {
	top: -10px !important;
}

.form-switch .form-check-input:checked[type="checkbox"]::after {
	content: none !important;
}

.h-34 {
	height: 34px;
	line-height: 34px;
}

/* ===== PRIMARY ===== */
.text-primary {
	color: #0056b3 !important;
}

.bg-primary {
	background-color: #0056b3 !important;
}

.border-primary {
	border-color: #0056b3 !important;
}

.btn-primary {
	background-color: #20598d !important;
	border-color: #0056b3 !important;
	color: #fff !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
	background-color: #00408f !important;
	border-color: #003874 !important;
	color: #fff !important;
}

.btn:disabled,
.btn[disabled] {
	pointer-events: none;
	cursor: not-allowed;
}

/* ===== SUCCESS ===== */
.text-success {
	color: #218838 !important;
}

.bg-success {
	background-color: #218838 !important;
}

.border-success {
	border-color: #218838 !important;
}

.btn-success {
	background-color: #218838 !important;
	border-color: #218838 !important;
	color: #fff !important;
}

.btn-success:hover,
.btn-success:focus,
.btn-success:active {
	background-color: #18662d !important;
	border-color: #145523 !important;
	color: #fff !important;
}

.btn-success:disabled {
	background-color: #b2d8c2 !important;
	border-color: #b2d8c2 !important;
	color: #fff !important;
}

/* ===== DANGER ===== */
.text-danger {
	color: #c82333 !important;
}

.bg-danger {
	background-color: #c82333 !important;
}

.border-danger {
	border-color: #c82333 !important;
}

.btn-danger {
	background-color: #c82333 !important;
	border-color: #c82333 !important;
	color: #fff !important;
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active {
	background-color: #a71d2a !important;
	border-color: #921826 !important;
	color: #fff !important;
}

.btn-danger:disabled {
	background-color: #e8b4b8 !important;
	border-color: #e8b4b8 !important;
	color: #fff !important;
}

/* ===== WARNING ===== */
.text-warning {
	color: #e0a800 !important;
}

.bg-warning {
	background-color: #e0a800 !important;
}

.border-warning {
	border-color: #e0a800 !important;
}

.btn-warning {
	background-color: #e0a800 !important;
	border-color: #e0a800 !important;
	color: #000 !important;
}

.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active {
	background-color: #cc9600 !important;
	border-color: #b78300 !important;
	color: #000 !important;
}

.btn-warning:disabled {
	background-color: #f0e1a0 !important;
	border-color: #f0e1a0 !important;
	color: #000 !important;
}

/* 상단 알림(안내) */
.alert-info {
	background-color: #e7f5ff !important;
	border-left-color: #1c7ed6 !important;
	color: #333 !important;
}

.alert-warning {
	color: #856404;
	background-color: #fff3cd;
	border-color: #ffeeba;
}

.alert-danger {
	color: #721c24;
	background-color: #f8d7da;
	border-color: #f5c6cb;
}

.alert-success {
	color: #155724;
	background-color: #d4edda;
	border-color: #c3e6cb;
}

.alert {
	padding: 0.8rem 1rem;
	margin-bottom: 1rem;
	border-radius: 4px;
	border-left: 4px solid;
}

/* 제출기간 종료 안내 배너 - 공통 스타일 */
.period-closed-banner {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 20px;
	margin-bottom: 16px;
	background: linear-gradient(135deg, #ffeaea 0%, #ffd6d6 100%);
	border: 1px solid #f5a3a3;
	border-left: 5px solid #dc3545;
	border-radius: 8px;
	color: #721c24;
	font-size: 15px;
	font-weight: 600;
	box-shadow: 0 2px 8px rgba(220, 53, 69, 0.15);
}

.period-closed-banner i {
	font-size: 24px;
	color: #dc3545;
	flex-shrink: 0;
}

.period-closed-banner.info-type {
	background: linear-gradient(135deg, #cfe2ff 0%, #9ec5fe 100%);
	border-color: #0d6efd;
	border-left-color: #0d6efd;
	color: #084298;
	box-shadow: 0 2px 8px rgba(13, 110, 253, 0.15);
}

.period-closed-banner.info-type i {
	color: #0d6efd;
}

/* 매칭 확정 안내 배너 - 세련된 슬레이트 블루 */
.period-closed-banner.confirmed-type {
	background: linear-gradient(135deg, #f0f4f8 0%, #e2e8f0 100%);
	border-color: #94a3b8;
	border-left-color: #475569;
	color: #334155;
	box-shadow: 0 2px 8px rgba(71, 85, 105, 0.12);
}

.period-closed-banner.confirmed-type i {
	color: #475569;
}

.form-control[readonly] {
	background-color: #e9ecef;
	opacity: 1;
}

/* 토스트 알림 스타일 */
.notification-toast {
	display: block !important;
	position: fixed;
	top: var(--toast-top, 134px);
	right: 19px;
	z-index: 1100;
	max-width: 350px;
	min-width: 300px;
	padding: 10px 16px;
	margin-bottom: 16px;
	border-radius: 4px;
	background-color: #fff;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08), 0 3px 5px rgba(0, 0, 0, 0.05);
	opacity: 0;
	transform: translateX(100%);
	overflow: hidden;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
		Oxygen, Ubuntu, Cantarell, sans-serif;
	transition: opacity 0.3s ease, transform 0.3s ease;
	/* ← 추가 */
}

/* 토스트 내부 구조 */
.notification-toast .toast-header {
	display: flex;
	align-items: center;
	margin-bottom: 8px;
}

.notification-toast .toast-icon {
	width: 24px;
	height: 24px;
	margin-right: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	flex-shrink: 0;
}

.notification-toast .toast-title {
	font-weight: 600;
	font-size: 1rem;
	margin: 0;
	flex-grow: 1;
	color: #1a1a1a;
}

.notification-toast .toast-close {
	background: none;
	border: none;
	cursor: pointer;
	opacity: 0.5;
	color: #666;
	font-size: 25px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity 0.2s;
	position: relative;
	top: -3px;
}

.notification-toast .toast-close:hover {
	opacity: 0.75;
}

.notification-toast .toast-message {
	color: #222;
	font-size: 0.9rem;
	margin: 0;
	line-height: 1.5;
}

/* 토스트 타입별 스타일 */
.notification-toast.success {
	border-left: 4px solid #10b981;
}

.notification-toast.success .toast-icon {
	background-color: rgba(16, 185, 129, 0.1);
	color: #10b981;
}

.notification-toast.danger {
	border-left: 4px solid #ef4444;
}

.notification-toast.danger .toast-icon {
	background-color: rgba(239, 68, 68, 0.1);
	color: #ef4444;
}

.notification-toast.warning {
	border-left: 4px solid #f59e0b;
}

.notification-toast.warning .toast-icon {
	background-color: rgba(245, 158, 11, 0.1);
	color: #f59e0b;
}

.notification-toast.info {
	border-left: 4px solid #3b82f6;
}

.notification-toast.info .toast-icon {
	background-color: rgba(59, 130, 246, 0.1);
	color: #3b82f6;
}

/* 프로그레스 바 스타일 */
.notification-toast .toast-progress {
	position: absolute;
	bottom: 0;
	left: 0;
	height: 3px;
	width: 100%;
	background-color: rgba(0, 0, 0, 0.1);
}

.notification-toast .toast-progress-bar {
	height: 100%;
	width: 100%;
	transition: width linear;
}

.notification-toast.success .toast-progress-bar {
	background-color: #10b981;
}

.notification-toast.danger .toast-progress-bar {
	background-color: #ef4444;
}

.notification-toast.warning .toast-progress-bar {
	background-color: #f59e0b;
}

.notification-toast.info .toast-progress-bar {
	background-color: #3b82f6;
}

/* 애니메이션 */
@keyframes slideInFromRight {
	0% {
		transform: translateX(100%);
		opacity: 0;
	}

	100% {
		transform: translateX(0);
		opacity: 1;
	}
}

@keyframes slideOutToRight {
	0% {
		transform: translateX(0);
		opacity: 1;
	}

	100% {
		transform: translateX(100%);
		opacity: 0;
	}
}

.notification-toast.slide-in {
	animation: slideInFromRight 0.4s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

.notification-toast.slide-out {
	animation: slideOutToRight 0.4s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

/* 작은 화면에서의 반응형 디자인 */
@media (max-width : 576px) {
	.notification-toast {
		left: 16px;
		right: 16px;
		max-width: none;
		width: calc(100% - 32px);
	}
}

/* 필수 표시 */
.required-label::after {
	content: " *";
	color: red;
	font-weight: bold;
}

/* 테이블 헤더 필수 표시 */
.required-mark::after {
	content: " *";
	color: #dc3545;
	font-weight: bold;
}


/* 모달 */
.modal,
.moda-header,
.modal-content {
	border-radius: 10px 10px 0 0;
}

.modal-header {
	padding: 12px 20px;
	background: #2f6da7;
	color: #fff;
}

.modal-body {
	max-height: calc(100vh - 200px);
	/* 헤더/푸터 공간 고려 */
	overflow-y: auto;
}

.modal-title {
	font-weight: 400 !important;
}

/* 커스텀 알림 모달 */
.custom-alert .modal-dialog {
	max-width: 400px;
	margin: 1.75rem auto;
}

@media (max-width: 400px) {
	.custom-alert .modal-dialog {
		max-width: 90%;
	}
}

/* 헤더 배경색 변경 */
.custom-alert .modal-header,
#duplicateLoginModal .modal-header {
	background: #1a1a1a;
}

/* 타이틀 색상 변경 */
.custom-alert .modal-title,
#duplicateLoginModal .modal-title {
	color: #fff !important;
}

/* modal-content에 테두리 추가 */
.custom-alert .modal-content {
	border: 1px solid #1a1a1a;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.custom-alert .modal-body p {
	text-align: center;
}

.custom-alert .modal-content {
	overflow: hidden;
}

/* 커스텀 버튼 스타일 */
/* 확인 버튼 (primary) 스타일 */
.custom-alert .btn-custom-confirm {
	background-color: #1a1a1a !important;
	/* 심플 블랙 */
	border: 1px solid #1a1a1a !important;
	color: #fff !important;
	transition: background-color 0.3s;
}

.custom-alert .btn-custom-confirm:hover,
.custom-alert .btn-custom-confirm:focus,
.custom-alert .btn-custom-confirm:active {
	background-color: #333 !important;
	/* hover: 약간 밝은 검정 */
}

/* 취소 버튼 (secondary) 스타일 */
.custom-alert .btn-custom-cancel {
	background-color: #fff !important;
	border: 1px solid #1a1a1a !important;
	color: #1a1a1a !important;
	transition: background-color 0.3s;
}

.custom-alert .btn-custom-cancel:hover,
.custom-alert .btn-custom-cancel:focus,
.custom-alert .btn-custom-cancel:active {
	background-color: #f5f5f5 !important;
	/* hover: 밝은 회색 */
}



/* //커스텀 알림 모달 */

.modal-header .btn-close {
	background-image: url("../images/btn_pop_close.png");
	background-repeat: no-repeat;
	background-position: center;
	width: 16px;
	height: 16px;
	opacity: 1;
}

@media screen and (max-width: 640px) {
	.modal-header .modal-title {
		font-size: 17px;
	}
}

/* 로그인 메세지 */
.error-message {
	background: rgba(220, 53, 69, 0.1);
	color: #dc3545;
	padding: 10px;
	border-radius: 5px;
	margin-bottom: 15px;
	font-size: 14px;
}

/* SSO 모달 */
.sso-modal .modal-header .modal-title {
	margin: 0;
	padding: 0;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	/* 텍스트 오른쪽 정렬 */
	width: 100%;
}

.sso-modal .modal-header .logo {
	max-width: 160px;
	width: 100%;
	height: 19px;
	background: url(../images/logo02.svg) no-repeat center left/contain;
	display: inline-block;
	flex-shrink: 0;
	margin-right: auto;
	/* 로고는 왼쪽에 고정 */
}

.sso-modal .modal-header .title-text {
	font-size: 1.25rem;
	font-weight: bold;
	white-space: nowrap;
}

.sso-modal #auth-phone,
.sso-modal #auth-code {
	padding-left: 8px;
}

.sso-modal #btn-send-code,
.sso-modal #btn-verify-code {
	height: 34px;
	line-height: 0.5;
	width: 20%;
	border-color: #d8d8d8;
	white-space: nowrap;
	font-size: 14px;
}

/* 반응형: 991px 이하에서 세로로 */
@media (max-width : 991px) {
	.sso-modal .input-group {
		flex-direction: column;
		align-items: stretch;
	}

	.sso-modal #auth-phone,
	.sso-modal #auth-code,
	.sso-modal #btn-send-code,
	.sso-modal #btn-verify-code {
		width: 100%;
		margin-left: 0;
	}

	.sso-modal #btn-send-code,
	.sso-modal #btn-verify-code {
		margin-top: 6px;
	}
}

/* 테이블 */
.custom-table,
.custom-table tr,
.custom-table th,
.custom-table td {
	border-bottom: 1px solid #d8d8d8;
	padding: 12px 0;
	height: 46px;
	color: #333;
}

.custom-table thead tr th {
	background: #f0f8ff;
	border-top: 1px solid #397ebd;
	border-bottom: 1px solid #c0def7;
	font-weight: 600;
}

/* 메뉴 관리 테이블 관련 추가 스타일 */
.custom-card {
	border-radius: 0;
	color: #333;
}

.custom-card .card-header:first-child {
	border-top: 1px solid #397ebd;
	border-bottom: 1px solid #c0def7;
	background: #f0f8ff;
	font-weight: bold;
	height: 46px;
	line-height: 30px;
	border-radius: 0;
}

.custom-url {
	color: #0d6efd !important;
	text-decoration: underline;
}

.tr-link {
	cursor: pointer;
}

/* 메뉴 관리 */
/* Nestable 아이템 전체 너비 수정 */
#menuSearchInput {
	padding-right: 2rem;
}

#searchMenuBtn {
	border: 1px solid #d8d8d8;
}

#menuSearchInput:focus~.bi-arrow-return-left {
	z-index: 1000 !important;
}

#menuNestable.dd,
#menuNestable .dd-list,
#menuNestable .dd-item,
#menuNestable .dd-handle-custom,
#menuNestable .dd-content {
	width: 100% !important;
	max-width: none !important;
}

.home-icon {
	position: relative;
	top: -1px;
	font-size: 15px;
}

.search-icon {
	border: 1px solid #d8d8d8;
	border-right: none;
}

/* Nestable 컨텐츠 레이아웃 개선 */
#menuNestable .dd-content {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	width: 100% !important;
	justify-content: space-between !important;
	/* 요소들 사이에 균등한 간격 */
}

/* 아이템 내부 요소 레이아웃 */
#menuNestable .menu-name {
	flex: 0 0 500px !important;
	/* 고정 너비 */
	text-align: left !important;
	font-weight: bold !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	color: #333;
	font-size: 15px;
	margin-left: 19px;
}

/* 각 메뉴 아이템 스타일링 */
#menuNestable .menu-item {
	flex: 1 !important;
	/* 동일한 비율로 공간 차지 */
	padding: 0 10px !important;
	text-align: center !important;
	/* 가운데 정렬 */
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	min-width: 100px !important;
	/* 최소 너비 설정 */
	font-size: 13px;
	color: #555;
}

/* 전체 핸들 스타일 개선 */
#menuNestable .dd-handle-custom {
	padding: 10px 18px !important;
	border: 1px solid #dee2e6 !important;
	margin-bottom: 5px;
	cursor: move;
}

/* 버튼 위치 조정 */
.dd-item>button.dd-expand,
.dd-item>button.dd-collapse {
	position: absolute !important;
	left: 9px !important;
	top: 25px !important;
	transform: translateY(-50%) !important;
	margin: 0 !important;
	width: 24px !important;
	height: 24px !important;
	text-align: center !important;
	padding: 0 !important;
	font-size: 18px !important;
	line-height: 1 !important;
}

#menu-title {
	padding: 0.8rem 0.3rem;
}

/* 레벨 1 메뉴 항목만 회색 배경으로 변경 */
#menuNestable>.dd-list>.dd-item>.dd-handle-custom {
	background-color: #D6EFFF !important;
	border-color: #dee2e6 !important;
}

#menuNestable .dd-handle-custom:hover {
	background-color: #D6EFFF !important;
}

/* 하위 레벨은 기존 스타일 유지 */
#menuNestable>.dd-list>.dd-item .dd-item>.dd-handle-custom {
	background-color: #ffffff;
	padding-left: 9px !important;
}

/* 드래그 플레이스홀더 스타일 수정 */
.dd-placeholder {
	border: 2px dashed #6c757d !important;
	/* 회색 점선 테두리 */
	background-color: rgba(108, 117, 125, 0.1) !important;
	/* 연한 회색 배경 */
	padding: 10px !important;
	margin: 5px 0 !important;
	border-radius: 4px !important;
	min-height: 44px !important;
	/* 아이템 높이와 비슷하게 설정 */
	width: 100% !important;
	/* 전체 너비 차지 */
}

/* 레벨 1 아이템 드래그 시 플레이스홀더 */
#menuNestable>.dd-list>.dd-placeholder {
	background-color: rgba(108, 117, 125, 0.15) !important;
	/* 조금 더 진한 회색 배경 */
}

/* 드래그 중인 아이템 스타일 */
.dd-dragel>.dd-item>.dd-handle-custom {
	box-shadow: 0 5px 10px rgba(0, 0, 0, 0.15) !important;
	opacity: 0.9 !important;
}

.dd-dragel .items-container {
	flex: 1 !important;
	display: flex !important;
	justify-content: flex-end !important;
	gap: 20px !important;
}

.dd-empty {
	text-align: center;
	line-height: 3;
	min-height: 0;
	background: #F0F8FF;
}

/* 검색 상태일 때 드래그 핸들 스타일 */
.search-active .dd-handle-custom {
	cursor: default !important;
	opacity: 0.8;
}

.search-active .dd-handle-custom.no-drag:hover {
	background: #f8f9fa !important;
	/* 호버 효과 제거 */
	cursor: not-allowed !important;
}

/* 경고 메시지 스타일 */
.search-warning {
	margin-bottom: 15px;
}

/* 메뉴 관리 */

/* 사용자 관리 */
.equal-height {
	display: flex;
	align-items: stretch;
	min-height: calc(100vh - 200px);
}

.equal-height>.col-lg-4 {
	display: flex;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
}

.equal-height>.col-lg-8 {
	display: flex;
	flex-direction: column;
}

.equal-height>.col-lg-4 .card,
.equal-height>.col-lg-8 .card {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.equal-height>.col-lg-4 .card>.card-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	min-height: 0;
}

.list-scroll {
	flex: 1;
	position: relative;
	min-height: 0;
}

.list-scroll > table {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	overflow-y: auto;
	scrollbar-gutter: stable;
	display: block;
}

#user-detail-header,
#auth-detail-header {
	font-size: 1.17em;
}

.sys-list tr:not(.selected):hover {
	cursor: pointer;
}

.sys-table {
	font-size: 0.95rem;
	border-spacing: 0;
	border-collapse: separate;
	color: #333 !important;
	margin-bottom: 2px;
	table-layout: fixed;
	width: 100%;
}

.sys-table th,
.sys-table td {
	text-align: center;
	vertical-align: middle;
}

.sys-table thead th {
	font-weight: 600;
	font-size: 14px;
	text-align: center;
	vertical-align: middle;
	padding: 0.5rem;
	background-color: #F8F9FA;
	border-bottom: 1px solid #E0E0E0;
	white-space: nowrap;
	overflow: visible;
}

.sys-table tbody td {
	padding: 0.65rem 0.75rem;
	vertical-align: middle;
	text-align: center;
	border-bottom: 1px solid #dee2e6;
}

/* 연한 세로 보더 (로그 추적 가독성) */
.sys-table thead th + th,
.sys-table tbody td + td {
	border-left: 1px solid #eef2f6;
}

.sys-table tbody tr:hover td {
	background: #F7FCFF !important;
	cursor: pointer;
}

/* 사용자 목록은 JS로 호버 처리 - 기본 호버 무효화 */
#userList tr:hover td {
	background: inherit !important;
}

#userList tr.row-hover td {
	background-color: #F7FCFF !important;
}

.talbe th.sticky-top {
	position: sticky;
	top: 0;
	z-index: 2 !important;
	background-color: #f8f9fa;
}

.sys-table .bi {
	cursor: pointer;
}

.nav-tabs .nav-link.active {
	background-color: #f0f8ff;
	font-weight: 600;
	border-color: #dee2e6 #dee2e6 #fff;
}

.user-group-text,
.auth-users-text {
	padding: 0 .5rem;
	font-size: .875rem;
	border-radius: 0.25rem;
	font-weight: 400;
	color: #212529;
	background: #f8f9fa;
	border: 1px solid #dee2e6;
	min-height: 34px;
	line-height: 34px;
}

.sortable {
	cursor: default;
}

.sort-icon {
	margin-left: 2px;
	font-size: 0.8rem;
	color: #6c757d;
}

/* 기본 상태 */
.sort-icon::after {
	content: "↕";
}

/* 정렬 상태 아이콘 */
.sort-icon.sort-asc::after {
	content: "▲";
	font-size: 0.6rem;
	position: relative;
	top: -1px;
	color: #495057;
}

.sort-icon.sort-desc::after {
	content: "▼";
	font-size: 0.6rem;
	position: relative;
	top: -1px;
	color: #495057;
}

/* hover 시 강조 */
.sort-icon.sort-asc:hover::after,
.sort-icon.sort-desc:hover::after {
	color: #0d6efd;
}

#mobileCertDt-text {
	margin-left: 18px;
}

#refreshInstList {
	border: 1px solid #dee2e6 !important;
	border-left: none !important;
	height: 34px !important;
}

#instSelect {
	border-radius: 0 !important;
	padding: 0 15px !important;
}

/* 권한관리 */
.auth-group-header {
	font-size: 15px;
	color: #333;
}

.auth-group-header .group-expln {
	font-size: 13px;
	color: #666;
	margin-left: 10px;
	font-weight: normal;
}

.authUser-table th,
.authUser-table td {
	padding: 7px !Important;
}

/* 메뉴 권한 관리 */
#menuTreeContainer {
	overflow-x: auto;
}

#menuTreeBody {
	color: #333;
}

#menuTreeBody .form-check.d-flex {
	height: 100%;
	align-items: center;
	justify-content: center;
	padding: 4px 0;
	/* 위아래 공간 최소화 */
}

/* 체크박스 자체도 정렬 오류 방지 */
#menuTreeBody .form-check-input {
	margin: 0;
}

#auth-menu .menu-row:hover td {
	background-color: rgba(0, 0, 0, 0.03) !important;
}

/* 기존 트리 라인 스타일 비활성화 */

/* 새로운 트리 구성 요소 스타일 */
.tree-branch {
	color: #adb5bd;
	font-family: 'Courier New', monospace;
	font-weight: normal;
	margin-right: 3px;
}

.tree-spacer {
	display: inline-block;
	width: 20px;
}

#auth-menu .menu-level-0 {
	background-color: #f8f9fa;
	font-weight: bold;
	border-top: 1px solid #999 !important;
}

#auth-menu .menu-row td {
	padding: 10px 13px 5px 13px;
}

/* 들여쓰기와 하위 스타일을 통합해서 menu-level로만 관리 */
#auth-menu .menu-level-0 .menu-name {
	padding-left: 0px;
}

#auth-menu .menu-level-1 .menu-name {
	padding-left: 10px;
}

#auth-menu .menu-level-2 .menu-name {
	padding-left: 20px;
}

#auth-menu .menu-level-3 .menu-name {
	padding-left: 30px;
}

#auth-menu .menu-level-4 .menu-name {
	padding-left: 40px;
}

/* 테이블 헤더 스타일 */
#menuTreeContainer thead th {
	background-color: #f1f3f5;
	color: #212529;
	font-family: 'NotoSansKR', sans-serif;
	font-size: 13.125px;
	font-weight: 600;
	line-height: 19.6875px;
	letter-spacing: -0.5px;
	text-align: center;
	vertical-align: middle;
	padding: 7.5px;
	border-bottom: 1px solid #dee2e6;
}

/* 비활성화된 메뉴 행 스타일 - 패턴 배경 적용 */
#auth-menu .disabled-menu-row,
#authTabContent .disabled-menu-row {
	opacity: 0.3 !important;
	font-weight: normal !important;
}

/* td 요소에 직접 스타일 적용 - 패턴 배경 사용 */
#auth-menu .disabled-menu-row td,
#authTabContent .disabled-menu-row td {
	background-color: #e0e0e0 !important;
	background-image: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(150, 150, 150, 0.1) 10px, rgba(150, 150, 150, 0.1) 20px) !important;
	/* 미묘한 줄무늬 패턴 */
	border-color: #ccc !important;
}

/* hover 효과 제어 - 동일한 배경 유지 */
#auth-menu .disabled-menu-row:hover td,
#authTabContent .disabled-menu-row:hover td {
	background-color: #e0e0e0 !important;
	background-image: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(150, 150, 150, 0.1) 10px, rgba(150, 150, 150, 0.1) 20px) !important;
}

/* 체크박스 테두리 강조 */
#auth-menu .disabled-menu-row .form-check-input,
#authTabContent .disabled-menu-row .form-check-input {
	border: 1px solid #999 !important;
}

/* 트리 스타일 개선을 위한 추가 CSS */
#auth-menu .menu-name {
	position: relative;
	display: flex;
	align-items: center;
}

/* 각 레벨별 메뉴명 간격 조정 */
#auth-menu .menu-level-0 .menu-name span {
	margin-left: 0;
}

#auth-menu .menu-level-1 .menu-name span {
	margin-left: 8px;
}

#auth-menu .menu-level-2 .menu-name span {
	margin-left: 8px;
}

#auth-menu .menu-level-3 .menu-name span {
	margin-left: 8px;
}

#auth-menu .menu-level-4 .menu-name span {
	margin-left: 8px;
}

/* 각 탭 내용에 여백 추가 */
#auth-menu {
	padding: 10px 0;
}

/**
 * 공통코드 관리 CSS
 * 
 * @author wpodhccss
 * @since 2025-05-14
 */

/* 브레드크럼 스타일 */
#common_code .breadcrumb {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	font-size: 0.95rem;
	font-weight: 500;
	background-color: #f8f9fa;
	padding: 0.75rem 1rem;
	border-radius: 0.375rem;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
	margin: 0;
}

#common_code .breadcrumb-item {
	color: #0d6efd;
	transition: color 0.2s ease;
}

#common_code .breadcrumb-separator::before {
	content: '›';
	display: inline-block;
	vertical-align: middle;
	color: #0d6efd;
	margin: 0 0.4rem;
	font-weight: bold;
	font-size: 1.4rem;
	line-height: 1;
	position: relative;
	top: -3px;
}

/* 코드 컨테이너 레이아웃 */
#common_code .row {
	display: flex;
	flex-wrap: wrap;
}

#common_code .col-lg-4 {
	display: flex;
	flex-direction: column;
}

/* 카드 컨테이너 - 동일한 높이 유지 */
#common_code .card {
	flex: 1;
	display: flex;
	flex-direction: column;
}

/* 카드 본문 - 남은 공간 채우기 */
#common_code .card-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

/* 테이블 컨테이너 - 스크롤 설정 */
#common_code .code-list-container {
	flex: 1;
	overflow-y: auto;
	/* 높이는 JavaScript에서 동적으로 설정됨 */
}

/* 테이블 헤더 고정 */
#common_code .code-table thead th {
	position: sticky;
	top: 0;
	background-color: #f8f9fa;
	border-bottom: 2px solid #dee2e6;
}

#common_code .code-table th,
#common_code .code-table td {
	vertical-align: middle;
}

/* 드래그 핸들 스타일 */
.drag-handle {
	cursor: move;
	color: #adb5bd;
}

.drag-handle:hover {
	color: #6c757d;
}

/* 액션 버튼 스타일 */
.btn-edit,
.btn-delete {
	padding: 0.25rem 0.5rem;
	margin: 0 0.125rem;
}

/* 반응형 조정 */
@media (max-width : 992px) {
	#common_code .code-container>div {
		margin-bottom: 1rem;
	}
}

/* 드래그 앤 드롭 관련 스타일 */
#common_code .sortable-ghost {
	border: 2px dashed #6c757d !important;
	background-color: rgba(108, 117, 125, 0.1) !important;
	width: 100% !important;
	opacity: 1 !important;
}

#common_code .sortable-chosen {
	background-color: #e9ecef;
}

#common_code .drag-handle {
	color: #adb5bd;
	cursor: move;
}

/* 여기서부터 검색 기능 관련 스타일 추가 */
/* 내비게이션과 검색을 함께 배치 */
.navigation-search-container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background-color: #f8f9fa;
	padding: 10px 15px;
	border-radius: 0.375rem;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
	margin-bottom: 1rem;
}

/* 검색 컨테이너 */
.search-container {
	width: 40%;
	min-width: 250px;
}

/* 검색 입력 필드 */
#search-keyword {
	height: calc(1.5em + 0.75rem + 2px);
	padding: 0.375rem 0.75rem;
	font-size: 1rem;
}

#btn-reset-search:hover {
	color: #343a40;
}

/* 검색 결과 하이라이트 */
.highlight-match {
	background-color: #ffe0b2;
	padding: 0 2px;
	border-radius: 2px;
	font-weight: 500;
}

/* 모바일 반응형 */
@media (max-width : 768px) {
	.navigation-search-container {
		flex-direction: column;
		gap: 10px;
	}

	.search-container {
		width: 100%;
	}
}

/* ===== 로그인/세션 로그 관리 CSS ===== */
/* Clusterize 스크롤 테이블 */
/* Clusterize 페이지에서 바디(right_wrap) 스크롤 제거 — 데이터 영역만 스크롤 */
.right_wrap:has(.clusterize) {
	overflow-y: hidden;
}

/* 알림톡 관리 페이지는 상단 KPI/검색 등 콘텐츠가 많으므로 페이지 스크롤 허용 */
.right_wrap:has(.alimtalk_cont) {
	overflow-y: auto;
}

.clusterize {
	position: relative;
	width: 100%;
}

.clusterize-scroll {
	max-height: none !important;
	overflow-y: auto !important;
	overflow-x: hidden !important;
}

/* 테이블 레이아웃 최적화 - 기존 규칙 강화 */
.clusterize table {
	margin-bottom: 0;
	table-layout: fixed !important;
	width: 100%;
	max-width: 100%;
	/* 최대 너비 제한 */
}

/* 페이지 특화 스타일 */
.audit-log-container {
	overflow: hidden;
	/* 컨테이너 자체의 오버플로우 방지 */
}

/* 데이터가 많은 셀을 위한 개선된 텍스트 처리 */
.clusterize td,
.clusterize th {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 50px;
}

/* 테이블 헤더와 본문 연결 부분 개선 */
.clusterize table:not(.clusterize-scroll table) {
	border-bottom: none;
	margin-bottom: 0;
	border-collapse: separate;
	/* 경계 모델 분리 */
}

/* user-agent-tbl 전용 스타일 */
.user-agent-tbl {
	width: 100%;
	font-size: 0.875rem;
	/* 14px */
	border-collapse: separate;
	border-spacing: 0 0.5rem;
	/* 행 사이 간격 */
}

/* 공통 셀 패딩, 가운데 정렬 */
.user-agent-tbl th,
.user-agent-tbl td {
	padding: 0.5rem 0.75rem;
	vertical-align: middle;
	border: 1px solid #dee2e6;
	/* 셀 경계 */
}

/* 헤더 셀만 배경색 */
.user-agent-tbl th {
	width: 30%;
	background-color: #f8f9fa;
	font-weight: 500;
	color: #495057;
	border-right: 1px solid #dee2e6;
}

/* 바디 셀 배경은 흰색 */
.user-agent-tbl td {
	background-color: #fff;
}

/* 행 단위로 둥근 모서리 만들기 */
.user-agent-tbl tr:first-child th:first-child,
.user-agent-tbl tr:first-child td:first-child {
	border-top-left-radius: 0.25rem;
}

.user-agent-tbl tr:first-child th:last-child,
.user-agent-tbl tr:first-child td:last-child {
	border-top-right-radius: 0.25rem;
}

.user-agent-tbl tr:last-child th:first-child,
.user-agent-tbl tr:last-child td:first-child {
	border-bottom-left-radius: 0.25rem;
}

.user-agent-tbl tr:last-child th:last-child,
.user-agent-tbl tr:last-child td:last-child {
	border-bottom-right-radius: 0.25rem;
}


/* 모바일 최적화 */
@media (max-width : 768px) {

	.clusterize td,
	.clusterize th {
		padding: 0.4rem 0.5rem;
		/* 모바일에서 패딩 축소 */
	}
}

.audit-log-container .card-header.p-0 {
	overflow: hidden;
	padding: 0 !important;
	margin: 0;
	width: 100%;
	box-sizing: border-box;
}

/* 탭 메뉴 수정 */
.audit-log-container .nav-tabs.card-header-tabs {
	margin: 0;
	border-bottom: 0;
	flex-wrap: nowrap;
	width: 100%;
	display: flex;
}

/* 탭 아이템 수정 */
.audit-log-container .nav-tabs .nav-item {
	margin: 0;
	flex: 0 0 auto;
}

/* 탭 링크 버튼 수정 */
.audit-log-container .nav-tabs .nav-link {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 46px;
	padding: 0 16px;
	font-size: 15px;
	font-weight: 500;
	border-radius: 0;
	margin: 0;
	white-space: nowrap;
}

/* 탭 컨텐츠 영역 수정 */
.audit-log-container .tab-content {
	width: 100%;
}

.audit-log-container .nav-tabs .nav-link.active {
	background-color: #e7eef7;
	border-bottom-color: #e7eef7;
}

/* 날짜 필드 간격 조정 */
.audit-log-container .date-range-group .input-group-text {
	padding: 0.375rem 0.5rem;
}

/* 검색 필터 섹션 패딩 조정 */
.audit-log-container .filter-section {
	padding: 1rem;
}

/* 결과 없음 메시지 스타일 */
.audit-log-container .no-data-message {
	text-align: center;
	padding: 2rem;
	color: #6c757d;
}

.search-card .input-group-text,
.search-card .form-control,
.search-card .form-select {
	height: 34px;
	font-size: 0.875rem;
	line-height: 1.5;
}

.custom-tooltip {
	position: fixed;
	z-index: 9999;
	background-color: #323232;
	color: #ffffff;
	font-size: 13px;
	padding: 6px 10px;
	border-radius: 6px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	white-space: nowrap;
	max-width: 500px;
	line-height: 1.4;
	pointer-events: none;
	opacity: 0;
	transform: translateY(4px);
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.custom-tooltip.show {
	opacity: 1;
	transform: translateY(0);
}

/* 정렬 아이콘 */
.bi-sort-down::before,
.bi-sort-up::before {
	font-size: 13px;
}

.el-tag {
	display: inline-block;
	height: 24px;
	padding: 0 8px;
	line-height: 22px;
	font-size: 12px;
	border-radius: 4px;
	box-sizing: border-box;
	white-space: nowrap;
	background: #ecf5ff;
	border: 1px solid #d9ecff;
	min-width: 50px;
}

.el-tag.el-tag-primary {
	background-color: #ecf5ff;
	border-color: #d9ecff;
	color: #409eff;
}

.el-tag.el-tag-success {
	background-color: #f0f9eb;
	border-color: #e1f3d8;
	color: #67c23a;
}

.el-tag.el-tag-info {
	background-color: #f4f4f5;
	border-color: #e9e9eb;
	color: #909399;
}

.el-tag.el-tag-warning {
	background-color: #fdf6ec;
	border-color: #faecd8;
	color: #e6a23c;
}

.el-tag.el-tag-danger {
	background-color: #fef0f0;
	border-color: #fde2e2;
	color: #f56c6c;
}

/* 회색 계열 (secondary) - 기본/미지정용 */
.el-tag.el-tag-secondary {
	background-color: #f5f5f5;
	border-color: #e9e9e9;
	color: #909399;
}

/* 연한 파랑 (light) - 정보성/읽기 전용 */
.el-tag.el-tag-light {
	background-color: #f0f9ff;
	border-color: #e1f3fb;
	color: #409eff;
}

/* 짙은 회색 (dark) - 강조/타이틀용 */
.el-tag.el-tag-dark {
	background-color: #e9ecef;
	border-color: #ced4da;
	color: #495057;
}

/* 보라 계열 (purple) - 커스텀 알림용 */
.el-tag.el-tag-purple {
	background-color: #f4f0ff;
	border-color: #e6dbff;
	color: #8c6ac2;
}

/* 청록 계열 (teal) - 진행 중/중립 상태 */
.el-tag.el-tag-teal {
	background-color: #e0f7fa;
	border-color: #b2ebf2;
	color: #0097a7;
}

/* 주황 계열 (orange) - 중요 경고 혹은 중간 상태 */
.el-tag.el-tag-orange {
	background-color: #fff7e6;
	border-color: #ffe7ba;
	color: #d46b08;
}

/* 모달 내 diff-container 기본 스타일 */
.diff-container {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	border-left: .25rem solid #6C757D;
	background-color: #f8f9fa;
	padding: 1rem;
	margin: 1rem 0;
	font-size: 0.875rem;
	border-radius: 4px;
	word-break: break-all;
	white-space: pre-wrap;
}

#jsonDetailModal .card-header {
	font-size: 0.875rem;
}

/* 1) pre 태그 안에서 자동 줄바꿈, 가로 스크롤 제거 */
#jsonDetailModal .json-view {
	white-space: pre-wrap !important;
	/* 줄바꿈 허용 */
	word-break: break-word !important;
	/* 단어 단위로라도 줄바꿈 */
	overflow-x: hidden !important;
	/* 가로 스크롤바 숨기기 */
}

/* 2) 두 컬럼(.col-md-6)을 flex 컨테이너로 만들어 같은 높이 */
#jsonDetailModal .modal-body>.row {
	display: flex;
	align-items: stretch;
	/* 높이 맞춤 */
}

/* flex 컨테이너 안에서 카드가 늘어나도록 */
#jsonDetailModal .modal-body .col-md-6 {
	display: flex;
	flex-direction: column;
}

#jsonDetailModal .modal-body .col-md-6 .card {
	flex: 1;
	/* 같은 높이로 확장 */
	display: flex;
	flex-direction: column;
}

/* 카드 본문만 스크롤 허용 (세로로 길어질 때) */
#jsonDetailModal .modal-body .col-md-6 .card-body {
	overflow-y: auto;
}

#jsonDetailTitle .el-tag {
	min-width: 39px !important;
}

/* 게시판 관리 전용 스타일 */
/* 탭 스타일링 */
#bbsConfigTabs .nav-link {
	position: relative;
	display: flex;
	align-items: center;
}

#bbsConfigTabs .nav-link .tab-status-icon {
	font-size: 0.8em;
	margin-left: 5px;
}

/* 비활성화된 탭 */
.tab-disabled {
	color: #6c757d !important;
	cursor: not-allowed;
	opacity: 0.6;
	pointer-events: none;
}

/* 저장 버튼 펄스 효과 */
.btn-pulse {
	animation: btn-pulse 2s infinite;
}

@keyframes btn-pulse {
	0% {
		box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.4);
	}

	70% {
		box-shadow: 0 0 0 10px rgba(0, 123, 255, 0);
	}

	100% {
		box-shadow: 0 0 0 0 rgba(0, 123, 255, 0);
	}
}

#noRestriction {
	position: relative;
	top: 3px;
	left: 1px;
}

.menu-list-container .form-check-input {
	top: 3px;
	left: 3px;
}

/* 게시판 스타일 */
.btn-clear-date {
	position: absolute;
	right: 25px;
	top: 50%;
	transform: translateY(-50%);
	background: transparent;
	border: none;
	font-size: 16px;
	font-weight: bold;
	cursor: pointer;
	color: #999;
	padding: 0;
	width: 20px;
	height: 20px;
	line-height: 1;
	z-index: 1;
}

.btn-clear-date:hover {
	color: #333;
}

/* 답변 들여쓰기 스타일 */
.reply-indent {
	margin-right: 8px;
	color: #777;
}

/* 내 글만 보기 체크박스 스타일 */
.checkbox-container {
	display: flex;
	align-items: center;
	cursor: pointer;
}

.checkbox-label {
	margin-left: 5px;
}

/* 사용자 정보 표시 스타일 */
.user-info {
	display: inline-block;
}

.user-name {
	font-weight: bold;
}

.user-id {
	font-size: 0.9em;
	color: #666;
}

#myPostYn {
	top: 1px;
}

/* 배너관리 */
.banner_cont .card {
	background: #EFF7FD;
	border: none;
	margin-bottom: 20px;
}

.banner_cont .card-header {
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
	padding: 0.75rem 1.25rem;
}

/* 미사용 배너 스타일 */
.dashboard_bottun_wrap ul li a.inactive {
	opacity: 0.6;
	background-color: #f8f9fa;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.dashboard_bottun_wrap ul li a:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* 컨트롤 버튼 스타일 */
.banner-controls {
	position: absolute;
	top: 10px;
	right: 10px;
	display: none;
	z-index: 10;
}

.dashboard_bottun_wrap ul li:hover .banner-controls {
	display: flex;
}

.banner_cont .no-data {
	width: 100%;
	padding: 20px;
	text-align: center;
	color: #888;
}

#bannerModal .form-check-input {
	position: relative;
	top: 3px;
}

/* 드래그 앤 드롭 시 영역 표시 */
.banner_cont .ui-sortable-placeholder {
	border: 2px dashed #0088cc;
	background-color: rgba(0, 136, 204, 0.1) !important;
	visibility: visible !important;
	border-radius: 8px;
	margin: 0 !important;
	padding: 0 !important;
	flex: 0 0 calc(33.333% - 10px);
	max-width: calc(33.333% - 10px);
}

/* 비밀번호 변경 모달 */
/* 비밀번호 강도 표시 스타일링 */
#strengthBar {
	height: 8px;
	width: 0%;
	background: #e9ecef;
	margin-top: 5px;
	border-radius: 4px;
	transition: all 0.3s ease;
}

/* 진행도 레벨 (요구사항 충족 수에 따라) */
#strengthBar.strength-0 {
	width: 0%;
	background-color: #e9ecef;
}

#strengthBar.strength-1 {
	width: 25%;
	background-color: #dc3545;
	/* 빨강 - 1개 요구사항 충족 */
}

#strengthBar.strength-2 {
	width: 50%;
	background-color: #ffc107;
	/* 노랑 - 2-3개 요구사항 충족 */
}

#strengthBar.strength-3 {
	width: 75%;
	background-color: #0dcaf0;
	/* 파랑 - 4개 요구사항 충족 */
}

#strengthBar.strength-4 {
	width: 100%;
	background-color: #198754;
	/* 초록 - 모든 요구사항 충족 */
}

/* 정책 항목 스타일링 */
.policy-item {
	position: relative;
	padding-left: 20px;
	margin-bottom: 5px;
	transition: all 0.2s ease;
}

.policy-item i {
	position: absolute;
	left: 0;
}

.policy-item.valid {
	color: #198754;
	/* 초록색 - 충족됨 */
}

.policy-item.invalid {
	color: #dc3545;
	/* 빨간색 - 미충족 (모바일에서도 명확히 보이도록) */
}

/* Bootstrap Icons - 요구사항 체크 표시 */
.policy-item.valid i::before {
	content: "\F26B";
	/* check-circle-fill */
	color: #198754;
}

.policy-item.invalid i::before {
	content: "\F622";
	/* x-circle-fill */
	color: #dc3545;
}

/* 비밀번호 정책 가이드 */
.password-policy-guide {
	background-color: #f8f9fa;
	border-radius: 4px;
	padding: 10px;
	margin-top: 10px;
	font-size: 0.85rem;
}

/* 비밀번호 일치 오류 메시지 */
#password-match-error {
	display: none;
	margin-top: 5px;
}

/* 버튼 비활성화 시 스타일 */
#savePasswordBtn:disabled {
	cursor: not-allowed;
}

/* 알림 스타일 */
#passwordChangeAlert {
	margin-bottom: 20px;
}

/* 마이페이지 */
#profileEditModal #verifyPhoneBtn {
	line-height: 1;
}

#profileEditModal #btn-verify-code {
	height: 34px;
}

/* 시도사서원 담당자 및 평가위원 관리*/
.sys-table .form-check-input {
	margin: 0;
	vertical-align: middle;
}

/* 헤더 클릭 가능 스타일 */
.check-header {
	cursor: pointer;
}

/* 버튼 너비 조정 */
.btn-fixed-width {
	width: 100px;
}

.member_cont #checkAll,
.member_cont #evalCheckAll {
	vertical-align: middle;
	margin-top: 0;
	left: 1.75px;
}

.member_cont select,
#historyKeyword {
	min-width: 205px !important;
}

#historySearchTypeLabel {
	margin-right: 21px;
}

/* ===== 사용자 목록 - 2행 구조 스타일 ===== */

/* 사용자 목록 기본 호버 제외 (JS로 처리) */
#userList tr:hover td {
	background: inherit !important;
}

/* 권한 행 (위쪽) */
#userList .user-group-row td.user-group-cell {
	padding-bottom: 0.25rem !important;
	padding-left: 0.75rem;
	text-align: left;
	border-bottom: none !important;
}

/* 정보 행 (아래쪽) */
#userList .user-info-row td {
	padding-top: 0.1rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid #dee2e6;
}

/* 권한 뱃지 스타일 */
#userList .user-group-cell .badge {
	font-size: 0.7rem;
	font-weight: 500;
	padding: 0.2em 0.5em;
	color: #6c757d !important;
	border-color: #adb5bd !important;
}

/* 권한 없음 텍스트 */
#userList .user-group-cell .text-muted {
	font-size: 0.75rem;
	color: #adb5bd !important;
}

/* JS 호버 클래스 - 두 행 모두 적용 */
#userList tr.row-hover td {
	background-color: #F7FCFF !important;
}

/* 선택된 상태 */
#userList tr.selected td,
#userList tr.table-primary td {
	background-color: #cfe2ff !important;
}

/* ==============================================
   사용자 관리 UX v1.0 — 좌측 툴바
   =============================================== */

/* 사용자 목록 스크롤 영역 */
.user-list-tbl {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	overflow-x: hidden;
}

/* 툴바 컨테이너 */
.um-toolbar {
	position: relative;
	padding: 10px 12px;
	background: #f8f9fa;
	border-bottom: 1px solid #dee2e6;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* 툴바 행 */
.um-toolbar-row {
	display: flex;
	align-items: center;
	gap: 6px;
}

/* 검색 입력 래퍼 */
.um-search-wrap {
	flex: 1;
	display: flex;
	position: relative;
}

.um-search-wrap .form-control {
	border-radius: 4px 0 0 4px;
	border-right: none;
	height: 31px;
}

.um-search-wrap .form-control:focus {
	box-shadow: none;
	border-color: #dee2e6;
}

.um-search-btn {
	border-radius: 0 4px 4px 0 !important;
	border: 1px solid #dee2e6 !important;
	border-left: none !important;
	background: #fff;
	color: #6c757d;
	padding: 0 10px !important;
	height: 31px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.um-search-btn:hover {
	background: #f8f9fa;
	color: #0d6efd;
}

/* "+ 사용자" 버튼 */
.um-add-btn {
	height: 31px;
	min-width: 90px;
	white-space: nowrap;
	font-size: 13px;
	font-weight: 600;
	flex-shrink: 0;
}

/* 승인/미승인 토글 버튼 */
.um-status-toggle {
	flex-shrink: 0;
}

/* btn-check 강제 숨김 */
.um-status-toggle .btn-check {
	position: absolute !important;
	clip: rect(0, 0, 0, 0) !important;
	pointer-events: none !important;
}

.um-status-toggle .um-toggle-label {
	height: 28px;
	line-height: 26px;
	padding: 0 10px;
	font-size: 12px;
	font-weight: 500;
	border-color: #dee2e6;
	color: #adb5bd;
	background: #fff;
	transition: all 0.15s;
}

.um-status-toggle .um-toggle-label:hover {
	background: #f8f9fa;
	color: #6c757d;
}

.um-status-toggle .btn-check:checked+.um-toggle-label {
	background-color: #e7f1ff;
	border-color: #a8cbf5;
	color: #0d6efd;
}

.um-status-toggle .btn-check:checked+.um-toggle-label:hover {
	background-color: #d6e8ff;
	border-color: #a8cbf5;
}

.um-auth-filter-btn {
	height: 28px;
	font-size: 12px;
	white-space: nowrap;
	flex: 1;
	border-color: #dee2e6;
	color: #6c757d;
	background: #fff;
	line-height: 26px;
	padding: 0 10px;
}

.um-auth-filter-btn:hover {
	background: #f8f9fa;
	color: #495057;
}

.um-auth-filter-btn.active {
	background-color: #f0f0f0;
	border-color: #adb5bd;
	color: #495057;
}

/* X 초기화 버튼 */
.um-reset-btn {
	width: 28px;
	height: 28px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #adb5bd;
	border: 1px solid #dee2e6;
	border-radius: 4px;
	background: #fff;
	flex-shrink: 0;
	transition: all 0.15s;
}

.um-reset-btn:hover {
	color: #dc3545;
	border-color: #dc3545;
	background: #fff5f5;
}

/* 권한 필터 패널 — relative 위치로 목록을 밀어내기 */
.um-auth-panel-wrapper {
	position: relative;
	left: 0;
	right: 0;
	z-index: 10;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.2s ease;
}

.um-auth-panel-wrapper.open {
	max-height: 200px;
}

.um-auth-panel {
	padding: 10px 12px 14px;
	background: #f8f9fa;
	border: 1px solid #ced4da;
	border-top: none;
	border-radius: 0 0 6px 6px;
	box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);
}

.um-auth-panel-actions {
	display: flex;
	gap: 6px;
	align-items: center;
	margin-bottom: 6px;
}

.um-auth-panel-actions a {
	font-size: 12px;
	text-decoration: none;
}

.um-auth-checkboxes {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 12px;
}

#authGroupFilterContainer .custom-filter-checkbox {
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 0;
	min-height: auto;
}

#authGroupFilterContainer .form-check-input {
	width: 15px;
	height: 15px;
	margin: 0 5px 0 0;
	cursor: pointer;
	flex-shrink: 0;
}

#authGroupFilterContainer .form-check-label {
	font-size: 0.8rem;
	font-weight: 500;
	color: #495057;
	cursor: pointer;
	line-height: 1;
	white-space: nowrap;
}

#authGroupFilterContainer .form-check:hover .form-check-label {
	color: #0d6efd;
}

#authGroupFilterContainer .form-check-input:checked+.form-check-label {
	color: #0d6efd;
	font-weight: 600;
}

/* 카운트 표시 영역 */
.um-count-info {
	font-size: 0.82rem;
	color: #6c757d;
	padding: 6px 0 2px;
	transition: all 0.2s;
}

.um-count-info strong {
	font-weight: 700;
	color: #0d6efd;
	font-size: 0.9rem;
}

/* 필터 적용 시 강조 */
.um-count-info.filtered {
	background: #eef4ff;
	padding: 6px 8px 6px;
	border-radius: 4px;
	margin: 0 -4px;
}

.um-filter-applied {
	font-size: 0.78rem;
	color: #6c757d;
	margin-left: 4px;
}

/* 결과 0건 */
.um-count-info.no-result strong {
	color: #dc3545 !important;
}

/* ==============================================
   사용자 목록 — 선택 하이라이트 강화
   =============================================== */
#userList tr.selected td,
#userList tr.table-primary td {
	background-color: #e7f1ff !important;
}

/* 선택된 행 좌측 3px primary border */
#userList tr.selected.user-group-row td:first-child {
	border-left: 3px solid #0d6efd;
	padding-left: calc(0.75rem - 3px);
}

#userList tr.selected.user-info-row td:first-child {
	border-left: 3px solid #0d6efd;
}

/* hover와 구분 */
#userList tr.row-hover:not(.selected) td {
	background-color: #f7fcff !important;
}

/* 권한/기관 배지 공통 */
.um-badge {
	display: inline-block;
	padding: 2px 8px;
	font-size: 11px;
	font-weight: 500;
	border-radius: 10px;
	margin-right: 4px;
	margin-bottom: 2px;
	line-height: 1.4;
	white-space: nowrap;
}

.um-badge-auth {
	background: #f1f5f9;
	color: #475569;
	border: 1px solid #cbd5e1;
}

.um-badge-inst {
	background: #f8f9fa;
	color: #6c757d;
	border: 1px solid #dee2e6;
}

.um-badge-inst-linked {
	background: #f0fdf4;
	color: #166534;
	border: 1px solid #bbf7d0;
}

/* ==============================================
   우측 액션 버튼 표준 (v1.0)
   =============================================== */
.um-action-btn {
	height: 32px !important;
	min-width: 80px;
	font-size: 13px !important;
	font-weight: 600;
	padding: 0 14px !important;
	border-radius: 6px;
	line-height: 30px !important;
	vertical-align: middle;
}

.um-save-btn {
	min-width: 80px;
}

/* 중복확인 버튼 */
#checkIdBtn {
	font-size: 13px;
	border-color: #dee2e6;
	color: #6c757d;
}

#checkIdBtn:hover {
	background: #f8f9fa;
	border-color: #adb5bd;
	color: #495057;
}

/* Bootstrap 툴팁 너비 확장 */
.tooltip-inner {
	max-width: 500px !important;
	white-space: nowrap !important;
}

/* 모바일 목록 카드 레이아웃 개선 */
@media screen and (max-width: 680px) {
	.table_layout_wrap .table_tbody ul li:not(.li-nodata) {
		padding: 12px 10px 12px 10px;
	}

	.table_layout_wrap .state {
		position: static;
		margin-bottom: 6px;
	}
}

/* ══════════════════════════════════════════════════════════
   개인정보 접근유형 배지 — 공통 (Single Source of Truth)
   조회=회색 / 수정=파랑 / 삭제=빨강 / 다운로드=주황
   ══════════════════════════════════════════════════════════ */
.badge-acs-view {
	background-color: #6B7280 !important;
	color: #fff !important;
}
.badge-acs-edit {
	background-color: #2563EB !important;
	color: #fff !important;
}
.badge-acs-delete {
	background-color: #DC2626 !important;
	color: #fff !important;
}
.badge-acs-download,
.badge-acs-export {
	background-color: #EA580C !important;
	color: #fff !important;
}

/* 배지 공통 디테일 — 접근유형 + 정보주체 모두 동일 크기 */
.badge[class*="badge-acs-"],
#privacyLogsBody .badge {
	font-size: 12px;
	padding: 3px 10px;
	border-radius: 6px;
	font-weight: 500;
	letter-spacing: 0.02em;
	vertical-align: middle;
	transition: filter 0.15s ease;
}
.badge[class*="badge-acs-"]:hover {
	filter: brightness(0.9);
}

/* 개인정보 접근 로그 테이블 — 셀 세로 가운데 정렬 */
#privacyLogsBody td {
	vertical-align: middle;
}