@font-face {
  font-family: 'S-CoreDream-3Light';
  src: url('https://fastly.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-3Light.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
body {
  -ms-overflow-style: none;
  font-family: 'S-CoreDream-3Light';
  font-size: 15px;
}
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-thumb {
  background-color: #aaa;
  border-radius: 4px;
}

::-webkit-scrollbar-track {
  background-color: #f0f0f0;;
}
/* Scroll to Top Button */
.scroll-to-top {
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 50px;
  height: 50px;
  background-color: #007bff;
  color: white;
  border: none;
  border-radius: 50%;
  font-size: 24px;
  cursor: pointer;
  display: none; /* 초기에는 숨김 */
  justify-content: center;
  align-items: center;
  box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.2);
  transition: opacity 0.3s ease-in-out;
}

.scroll-to-top:hover {
  background-color: #0056b3;
}

.scroll-to-top i {
  font-size: 24px;
}
.custom-toast {
  font-size: 13px !important;
}

.base-container {
  display: flex;
  width: 100%;
}
.base-container-content {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  margin-left: 250px;
  min-height: 100vh;
  padding: 55px;
  background-color: #f3f3f3;
  height: 100vh;
  overflow: auto;
}

/* 리스트 스타일 제거 */
ol, ul, p{
  list-style: none;
  margin: 0;
  padding: 0;
}

a{
  color:inherit;
  text-decoration:none;
  margin: 0;
  padding: 0;
}

/* 이미지 기본 설정 */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* 입력 및 버튼 요소 스타일 */
button, input, select, textarea {
  font-family: inherit;
  font-size: inherit;
  color: black;
  margin: 0;
  padding: 0;
}

.button {
  padding: 6px 12px;
  font-size: 12px;
  border: 1px solid transparent;
  border-radius: 4px;
  cursor: pointer;
  max-width: 200px;
  min-width: 80px;
  background-color: #343a40;
  color: white;
}
/* 하단 버튼 컨테이너 */
.footer-buttons {
  display: flex;
  width: 100%;
  justify-content: end;
  gap: 10px;
}

.button__save {
  background-color: #007bff;
  color: white;
}
.button__save:hover {
  background-color: #0056b3;
  font-weight: bold;
}
.button__update {
  background-color: gold;
  color: black;
}
/* 취소 버튼 - 회색 (보조 동작) */
.button__cancel {
  background-color: #dc3545;
  color: white;
}
.button__cancel:hover {
  background-color: #c82333;
  font-weight: bold;
}

/*검색*/
.search-bar{
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
  background-color: white;
  border-radius: 8px;
  border: 1px solid #ddd;
}
.search-bar__form {
  display: flex;
  width: 100%;
  gap: 10px;
}
.search-bar .search-bar__input {
  flex-grow: 1;
  min-width: 350px;
}
.search-bar__dropdown-button {
  font-weight: bold;
  border-radius: 4px;
}
.search-bar__dropdown-button,
.search-bar__input-field {
  height: 100%;
}
.search-bar__input-field {
  font-size: 13px;
}
.search-bar__button--search {
  background-color: #343a40;
  font-weight: bold;
  color: white;
}
/*드롭다운 */
.search-bar__dropdown-menu,
.search-bar__dropdown-button {
  min-width: 130px;
  max-width: 130px;
}
.search-bar__dropdown-item {
  width: 100%;
}

/* 폼 그룹 */
.form-group {
  margin-bottom: 15px;
}

.form-label {
  display: block;
  font-size: 13px;
  font-weight: bold;
  margin-bottom: 5px;
}

.form-input,
.form-textarea {
  width: 100%;
  padding: 10px;
  border: 1px solid #ccc;
  border-radius: 5px;
  font-size: 15px;
}

.form-input.readonly {
  background-color: #f5f5f5;
  cursor: not-allowed;
}

/* 텍스트 영역 스타일 */
.form-textarea {
  min-height: 100px;
  resize: vertical;
}
.filter-panel{
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
  background-color: white;
  border-radius: 8px;
  border: 1px solid #ddd;
}
.filter-panel__row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
}

.filter-panel__group {
  display: flex;
  flex-direction: column;
  width: 48%;
}

.filter-panel__label {
  font-size: 13px;
  font-weight: bold;
  margin-bottom: 4px;
}

.filter-panel__select,
.filter-panel__input {
  width: 100%;
  padding: 4px;
  border: 1px solid #ccc;
  border-radius: 5px;
  font-size: 13px;
}

.filter-panel__date-range {
  display: flex;
  align-items: center;
  gap: 8px;
}

.filter-panel__separator {
  font-size: 16px;
  color: #555;
}

.filter-panel__button--blue {
  background-color: white;
  color: #007bff;
  border: 1px solid #007bff;
  font-weight: bold;
}

.filter-panel__button--blue:hover {
  background-color: #007bff;
  color: white;
}

.filter-panel__actions {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 10px;
}
.filter-panel__button--reset {
  background-color: #343a40;
  color: white;
}
/* ✅ 라디오 버튼 그룹 */
.filter-panel__radio-group {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ✅ 기본 라디오 버튼 숨김 (커스텀 스타일 적용) */
.filter-panel__radio {
  display: none;
}

/* ✅ 커스텀 라벨 디자인 (라디오 버튼) */
.filter-panel__radio-label {
  display: inline-block;
  padding: 3px 9px;
  font-size: 12px;
  border: 1px solid #007bff;
  border-radius: 4px;
  color: #007bff;
  background-color: white;
  cursor: pointer;
  text-align: center;
  transition: all 0.3s ease-in-out;
}

/* ✅ 선택된 상태일 때 */
.filter-panel__radio:checked + .filter-panel__radio-label {
  background-color: #007bff;
  color: white;
  font-weight: bold;
}
.list {
  display: flex;
  flex-direction: column;
  background-color: white;
  border-radius: 8px;
  border: 1px solid #ddd;
  margin-bottom: 30px;
  overflow: hidden;
  width:100%;
}
.list__header {
  border-radius: 8px;
  border: 1px solid #ddd;
  background-color: white;
  margin: 0px;
  padding: 10px 0;
  font-size: 13px;
}
.list__header-column {
  display: flex;
  justify-content: center;
  font-weight: bold;
}
.list__content {
  padding: 6px 0;
}
.list__content-column {
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
}
.list__content:hover {
  background-color: rgba(0, 0, 0, 0.05); /* 연한 회색 배경 */
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); /* 살짝 그림자 효과 */
}
/* 리스트 내에서만 로딩 스피너 표시 */
.loading-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.8); /* 반투명 배경 */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 10; /* 리스트 위로 오도록 설정 */
}

/* 로딩 메시지 스타일 */
.loading-text {
  margin-top: 10px;
  font-size: 18px;
  font-weight: bold;
  color: #007bff;
}
.hidden {
  display: none;
}
.list-wrapper {
  flex-grow: 1;
}