@charset "UTF-8";

.hidden, caption, legend {
    position: absolute;
}
.hidden {
    overflow: hidden;
    border: 0;
    width: 1px;
    height: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    display: inline-block;
}

select {
  appearance: none;
  -webkit-appearance: none; /* 크롬, 사파리 */
  -moz-appearance: none;    /* 파이어폭스 */
  background: none;         /* IE 대비 */
}

/* Loading bar css */
.loading-overlay{
  position: fixed; inset: 0; z-index: 10000;
  display: none; /* 기본 숨김 */
}
.loading-overlay.is-active{ display: block; }

.loading-overlay__backdrop{
  position: absolute; inset: 0;
  background: rgba(0,0,0,.35); /* 회색/어두운 반투명 */
  backdrop-filter: blur(1px);   /* 선택 */
}

/* 가운데 스피너 컨테이너 */
.loading-overlay{ position:fixed; inset:0; z-index:10000; display:none; }
.loading-overlay.is-active{ display:block; }
.loading-overlay_backdrop{ position:absolute; 
	inset:0; 
	background:rgba(0,0,0,.80);
	backdrop-filter:blur(1px); 
}
.loading-overlay_spinner{
  position:absolute; 
  left:50%; 
  top:50%; 
  transform:translate(-50%,-50%);
  display:inline-flex; 
  align-items:center;
  gap:10px;
  flex-direction: column;
}
.loading-overlay_message{ 
	font-size:14px; 
	line-height:1.3; 
	color:#ffffff; 
}


body.no-scroll{ 
 overflow: hidden;
}

.loading-overlay_spinner img{
	    width: 50px;
}


 /* toast container */

 /* 경고창 */

#custom-toast {
    position: fixed;
    top: 10%;           /* 화면 위에서 20px 아래 */
    left: 50%;           /* 화면 가로 중앙 */
    transform: translateX(-50%); /* 자신의 너비의 50%만큼 왼쪽으로 이동 */
    z-index: 2000;
}
.toast {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 200px;
  margin-top: 10px;
  padding: 10px 15px;
  border-radius: 6px;
  color: #fff;
  opacity: 0;
  transform: translateY(-20px);
  transition: all 0.3s ease;
  justify-content: space-between;
}
.toast.show { opacity: 1; transform: translateY(0); }
.toast .toast-close {
  background: none; color: #fff; font-size: 16px; cursor: pointer;
}

.toast.success .toast-close {
 color: #084298;
}
.toast.error .toast-close {
 color: #842029;
}

.toast.warning .toast-close {
 color: #664d03;
}
.toast.info .toast-close {
 color: #0f5132;
}

/* 토스트 래퍼 */
.toast-wrap {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
}
/* 타입별 색상 */
.toast.success {
	color: #084298;
    background-color: #cfe2ff;
    border: 1px solid #b6d4fe;
}
.toast.error   {     
    color: #842029;
    background-color: #f8d7da;
	border: 1px solid #f5c2c7;
   }
.toast.info    {     
	color: #0f5132;
    background-color: #d1e7dd;
    border-color: #badbcc;
}
.toast.warning { 
	color: #664d03;
    background-color: #fff3cd;
    border: 1px solid #ffecb5; 
}
 
 
/*컨펌*/
.custom-confirm-wrap {
  position: fixed; top: 0; left: 0; right:0; bottom:0;
  display: flex; justify-content: center; align-items: center;
  z-index: 3000;
}
.confirm-overlay {
  position:absolute; top:0; left:0; right:0; bottom:0;
  background: rgba(0,0,0,0.5);
}
.confirm-box {
  position:relative;
  background:#fff;
  padding:20px;
  border-radius:8px;
  z-index:1;
  width:300px;
  text-align:center;
}
.confirm-buttons { 
    display: flex;
    justify-content: center;
    gap: 5px;
    margin-top: 30px;
}
.confirm-buttons button { 
	padding:5px 15px; 
	border-radius:4px; 
	cursor:pointer; 
}
.btn-ok { background:#132058; color:#fff; }
.btn-cancel {     
	background: #ffffff;
    color: #132058;
    border: 1px solid #132058 !important;
    }
    
    
    
    /* 필수값 */
     .required { 
    color: #d32f2f;         /* 빨간색 별표 */
    margin-left: 0.25rem;
    font-weight: 700;
  }