@charset "UTF-8";
/**
 * Project Name : nCommon2026
 * Description  : Elements (Typography, Buttons, Cards) 커스텀 CSS
 */

/* ==========================================================================
   Elements (Typography, Buttons, Cards)
   ========================================================================== */
h2 { font-weight: 700; }

.nav-item { font-size: 15px; }

.btn {
  font-weight: 500;
  font-size: .9rem;
}
.cardContent{
  margin-bottom: 1rem;
}
.card-footer {
  border: none;
  padding: 1rem;
  display: flex;
  justify-content: flex-end;
}
.cardBtnArea {
  justify-content: end;
  display: flex;
  gap: .3rem;
}
.listTitle{
  font-size: 20px;
  margin-top: 15px;
}
.subTitle{
  font-size : 17px;
}
.subTitle label{
  font-weight: 700;
}
.section-wrapper:not(:last-child) {
  margin-bottom: 2rem;
}
.row {
  --phoenix-gutter-x: 1rem;
}
.grid-row{
  align-items: center;
}
/* ==========================================================================
   Form Elements
   ========================================================================== */   
.form-label {
  margin-bottom: .5rem;
  font-size: 15px !important;
  color: var(--phoenix-body-color);
}
.has-validation .btn{
  border-top-right-radius : var(--phoenix-border-radius) !important;
  border-bottom-right-radius: var(--phoenix-border-radius) !important;
}
/* 폼 레이아웃 시프트 방지: 피드백 메시지 영역을 미리 확보 */
.needs-validation .row > [class*="col-"]:not(.col-group) {
  position: relative;
  padding-bottom: calc(0.25em + 0.75em * 1.49);
}

/* 모든 요소 세로 중앙 정렬 */
[class*="col-"]:not(.col-group) {
  align-content: center;
}

.needs-validation .invalid-feedback,
.needs-validation .valid-feedback {
  display: block;
  position: absolute;
  bottom: 0;
}
/* 읽기전용 */
.form-control-plaintext {
  display: block;
  width: 100%;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--phoenix-body-color);
  background-color: rgba(var(--phoenix-primary-rgb), 0.05) !important;
  border-radius: 0.375rem;
  box-shadow: none;
}
/* 읽기전용 placeholder hidden */
.form-control-plaintext::placeholder {
  color: transparent;
}

/* select 읽기전용 */
.form-select.form-control-plaintext {
  border: 0px !important;
  background-image: none;
}

/* Choices.js 스타일 */
.choices .choices__inner {
  font-family: 'notokr', 'Noto Sans KR', sans-serif !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
}

.choices__list--dropdown .choices__placeholder {
  opacity: 1 !important;
  color: #a1a9bd !important;
}

.choices__list--dropdown .choices__item--selectable {
  background-color: var(--bs-secondary-bg); 
  color: var(--bs-body-color);
}

.choices__list--dropdown .choices__item--selectable.is-highlighted {
  background-color: var(--phoenix-primary) !important;
  color: #fff !important;
}

.choices__placeholder {
  color: #a1a9bd;
  opacity: 1;
}

/* Choices.js 읽기전용 */
.choices .choices__inner.form-control-plaintext {
  background-color: rgba(var(--phoenix-primary-rgb), 0.05) !important;
  border: 0px !important;
  font-size: 0.875rem !important;
}
/* Choices.js 읽기전용 우측 화살표(::after) 제거 */
.choices.choices-control-plaintext::after {
  display: none !important;
}
/* Choices.js 읽기전용 삭제 버튼(x), 다중 선택 입력창 제거 */
.choices.choices-control-plaintext .choices__button,
.choices.choices-control-plaintext .choices__input--cloned {
  display: none !important;
}
/* Choices.js 비활성화 */
.choices.is-disabled {
  pointer-events: none !important;
  cursor: not-allowed !important;
}
.choices.is-disabled .choices__inner {  
  color: var(--phoenix-quaternary-color) !important;
  background-color: rgba(var(--phoenix-gray-100-rgb), 0.7) !important;
  opacity: 1;
  border: var(--phoenix-border-width) solid var(--phoenix-border-color);
}
.choices.is-disabled::after {
  display: none !important;
}
/* Choices.js Validation - is-valid */
.choices.is-valid .choices__inner {
  border-color: var(--phoenix-success) !important;
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2325b003' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.choices[data-type=select-one].is-valid .choices__inner {
  background-position: right calc(0.375em + 1.55rem) center;
}
/* Choices.js Validation - is-invalid */
.choices.is-invalid {
  margin-bottom: 0;
}
.choices.is-invalid .choices__inner {
  border-color: var(--phoenix-danger) !important;
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23fa3b1d'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23fa3b1d' stroke='none'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.choices.is-invalid + .invalid-feedback {
  display: block;
}
.choices[data-type=select-one].is-invalid .choices__inner {
  background-position: right calc(0.375em + 1.55rem) center;
}
.choices[data-type*=select-one].is-invalid .choices__button,
.choices[data-type*=select-one].is-valid .choices__button {
  margin-right: 60px !important;
}
.choices[data-type*=select-one].is-invalid .choices__inner,
.choices[data-type*=select-one].is-valid .choices__inner {
  padding-bottom: 6px !important;
}

/* Choices.js Multiple Select */
.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button {
  border: none !important;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjODg4IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);
  background-size: 6px !important;
  width: 11px !important;
  background-position: 0px !important;
}
.choices.is-focused .choices__input--cloned.form-control:focus {
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
  background-color: var(--phoenix-emphasis-bg) !important;
  border-color: #3874ff !important;
}

.choices.is-focused {
  border-color: #3874ff !important;
  box-shadow: 0 0 0 0.2rem rgba(56, 116, 255, 0.15) !important;
  border-radius: 0.5rem;
}
.choices__input--cloned {
  min-width: 150px !important;
}
.choices .choices__list--multiple .choices__item {
  text-transform: uppercase;
  padding: 3.5px 8px !important;
  font-size: 0.75rem !important;
  border: 0;
  background-color: var(--phoenix-choices-item-bg) !important;
  border-radius: 4px;
  margin-bottom: 0 !important;
  color: var(--phoenix-choices-item-color);
  line-height: 1;
  font-weight: 500;
}

/* File Uploader */
/* ==========================================================================
   Plugins & Others (Flatpickr, Treeview, Modal)
   ========================================================================== */

/* Scrollbar */
.content::-webkit-scrollbar { width: 6px; }
.content::-webkit-scrollbar-thumb {
	background: var(--phoenix-gray-300);
	border-radius: 10px;
}


/* Treeview */
.treeview-wrapper {
  padding-left: 1rem !important;
  font-weight: 300 !important;
  font-size: 15px !important;
}

/* Modal */
.modal-header, .modal-footer { 
  border: none;
}

/* Tab */
.tab-nav .nav .nav-item .nav-link.active{
  color: var(--phoenix-primary) !important;
  border-bottom: 1px solid var(--phoenix-primary) !important;
}

/* jsTree */
.jstree-themeicon.phoenix-folder {  
  background: none !important;
  position: relative;
}
.jstree-themeicon.phoenix-folder::before {
  content: '';
  display: inline-block;
  width: 1em;
  height: 1em;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z'/></svg>") no-repeat center / contain;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z'/></svg>") no-repeat center / contain;
}

.jstree-themeicon.phoenix-folder {
  color: var(--phoenix-quaternary-color);
}
a.jstree-anchor.jstree-clicked .jstree-themeicon.phoenix-folder{
  color: var(--phoenix-info-light);
}
a.jstree-anchor.jstree-clicked .jstree-themeicon.phoenix-folder,
a.jstree-anchor.jstree-clicked .jstree-themeicon.leaf-dot {
  color: var(--phoenix-info-light) !important;
}
.jstree-themeicon.leaf-dot {
  background: none !important;
  position: relative;
  color: var(--phoenix-quaternary-color);
  transform: scale(0.5);
}

.jstree-themeicon.leaf-dot::before {
  content: '';
  display: inline-block;
  width: 1em;
  height: 1em;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><circle cx='256' cy='256' r='192'/></svg>") no-repeat center / contain;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><circle cx='256' cy='256' r='192'/></svg>") no-repeat center / contain;
}
/* tree 검색 */
.jstree-search {
  background: none !important;
  background-image: none !important;
  box-shadow: none !important;
  color: #111 !important;
  font-weight: normal !important;
}
.search-hit {
  box-shadow: inset 0 1.2em 0 var(--phoenix-warning-lighter) !important;
}

/* fileUpload Component Custom Styles */
.file-upload__selected-item {
    transition: all 0.2s ease-in-out;
}

.file-upload__lookup-control {
    flex-grow: 1;
}

.file-upload__lookup-input {
    padding-right: 36px;
}

.file-upload__clear-btn {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    padding: 0;
    font-size: 1.25rem;
    line-height: 1;
    color: var(--bs-tertiary-color);
    cursor: pointer;
    z-index: 5;
}

.file-upload__clear-btn:hover,
.file-upload__clear-btn:focus {
    color: var(--bs-body-color);
}

.file-upload__remove-btn {
    min-width: 48px;
}
/* ==========================================================================
	Button
   ========================================================================== */
.btn-outline-light:hover,
.btn-outline-light:active{
  background-color: transparent !important;
  background-image: none !important;
  color: var(--phoenix-light) !important;
  border-color: var(--phoenix-light) !important;
  box-shadow: none !important;
}
.btn-outline-primary:hover {
  border-color: var(--phoenix-light-dark) !important;
  color: var(--phoenix-light-dark) !important;
  opacity: 0.8;
}

.btn-outline-primary:hover,
.btn-outline-primary:active{
  background-color: transparent !important;
  background-image: none !important;
  color: var(--phoenix-primary) !important;
  border-color: var(--phoenix-primary) !important;
  box-shadow: none !important;
}
.btn-outline-primary:hover {
  border-color: var(--phoenix-primary-dark) !important;
  color: var(--phoenix-primary-dark) !important;
  opacity: 0.8;
}

.btn-outline-light:hover,
.btn-outline-light:active{
  background-color: transparent !important;
  background-image: none !important;
  color: var(--phoenix-light) !important;
  border-color: var(--phoenix-light) !important;
  box-shadow: none !important;
}
.btn-outline-light:hover {
  border-color: var(--phoenix-light-dark) !important;
  color: var(--phoenix-light-dark) !important;
  opacity: 0.8;
}

.btn-outline-success:hover,
.btn-outline-success:active{
  background-color: transparent !important;
  background-image: none !important;
  color: var(--phoenix-success) !important;
  border-color: var(--phoenix-success) !important;
  box-shadow: none !important;
}
.btn-outline-success:hover {
  border-color: var(--phoenix-success-dark) !important;
  color: var(--phoenix-success-dark) !important;
  opacity: 0.8;
}
.btn-outline-danger:hover,
.btn-outline-danger:active{
  background-color: transparent !important;
  background-image: none !important;
  color: var(--phoenix-danger) !important;
  border-color: var(--phoenix-danger) !important;
  box-shadow: none !important;
}
.btn-outline-danger:hover {
  border-color: var(--phoenix-danger-dark) !important;
  color: var(--phoenix-danger-dark) !important;
  opacity: 0.8;
}

/* Dropzone 파일 확장자 아이콘 */
.dz-file-icon {
  font-size: 1.2rem;
  width: 1.2rem;
  height: 1.2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}