html {
    font-size: 13px;
}
.avatar-xlw {
    width: 11rem!important;
}

.ns-logo-image-light .ns-logo-image-dark {
    width: 11rem;
    object-fit: contain!important;
}

.ns-icon-image-light .ns-icon-image-dark {
    object-fit: contain!important;
}

.form-select.disabled {
    background-color: #f8fafd;
    opacity: 1
}

.tom-select-custom .ts-wrapper.form-select .ts-control,.tom-select-custom .ts-wrapper.multi .ts-control.has-items.hs-select-single-multiple {
    padding: .3125rem 1rem .3125rem 1rem!important;
}

.input-group-sm > .ts-wrapper.multi.has-items .ts-control, .ts-wrapper.form-select-sm.multi.has-items .ts-control, .ts-wrapper.form-control-sm.multi.has-items .ts-control {
    padding-top: calc((calc(2.5em + 0.5rem + 2px) - (1.5 * 0.875rem) - 4px) / 2) !important;
}

.form-control[readonly] {
    background-color: #f8fafd!important;
    opacity: 1
}

.tagify {
    padding: 0 0!important;
}

span.tagify__input::before {
    line-height: 1.5rem!important;
}

.table-lg>:not(caption)>*>* {
    padding: 0.55rem!important;
}

.avatar-4by3 {
    border-radius: 0!important;
}

/* zTree Customization */
.node_name {
    font-size: 0.875rem;
    padding-left: 0.25rem;
}

.ztree li {
    list-style: none;
    font-size: 0.875rem;
}

.ztree li span {
    margin-right: 0.875rem;
}

.ztree li a {
    padding: 0.25rem 0.125rem;
    margin:0;
    cursor:pointer;
    height:1.6rem;
    color:var(--bs-body-color);
    background-color: transparent;
    text-decoration:none;
    vertical-align:top;
    display: inline-block;
    border:1px transparent solid;
}

.ztree li a.curSelectedNode {
    padding: 0.25rem 0.125rem;
    font-weight: 600;
    background-color: rgba(189,197,209,.2);
    color: #377dff;
    height:1.6rem;
    border:none;
    border-radius: 0.2rem;
}

.ztree li span.button.switch {
    margin-top: 0.12rem;
    width:18px;
    height:18px
}

.ztree li span.button.ico_docu {
    padding: 0.55rem 0.2rem;
    font-family: bootstrap-icons !important;
    background-image: none;
    background-position : 0px 0px;
    font-weight: 300;
}

.ztree li span.button.user_ico_docu {
    padding: 0.55rem 0.2rem;
    font-family: bootstrap-icons !important;
    background-image: none;
    background-position : 0px 0px;
    font-weight: 300;
}

.ztree li span.button.system_ico_docu {
    padding: 0.55rem 0.2rem;
    font-family: bootstrap-icons !important;
    background-image: none;
    background-position : 0px 0px;
    font-weight: 300;
}

.ztree li span.button.board_ico_docu {
    padding: 0.55rem 0.2rem;
    font-family: bootstrap-icons !important;
    background-image: none;
    background-position : 0px 0px;
    font-weight: 300;
}

.ztree li span.button.ico_open{
    padding: 0.55rem 0.2rem;
    font-family: bootstrap-icons !important;
    background-image: none;
    background-position : 0px 0px;
    font-weight: 300;
}

.ztree li span.button.user_ico_open{
    padding: 0.55rem 0.2rem;
    font-family: bootstrap-icons !important;
    background-image: none;
    background-position : 0px 0px;
    font-weight: 300;
}

.ztree li span.button.ico_close{
    padding: 0.55rem 0.2rem;
    font-family: bootstrap-icons !important;
    background-image: none;
    background-position : 0px 0px;
    font-weight: 300;
}

.ztree li span.button.user_ico_close{
    padding: 0.55rem 0.2rem;
    font-family: bootstrap-icons !important;
    background-image: none;
    background-position : 0px 0px;
    font-weight: 300;
}

.ztree li span.button.edit {
    padding: 0.55rem 0.2rem;
    font-family: bootstrap-icons !important;
    background-image: none;
    background-position : 0px 0px;
    font-weight: 300;
    margin-right: 0.1rem;
    color:var(--bs-body-color);
}

.ztree li span.button.remove {
    padding: 0.55rem 0.2rem;
    font-family: bootstrap-icons !important;
    background-image: none;
    background-position : 0px 0px;
    font-weight: 300;
    margin-right: 0.1rem;
    color: #ed4c78;
}

.ztree li span.button.ico_close:before {
    content: "\f3d1";
}

.ztree li span.button.ico_open:before {
    content: "\f3d8";
}

.ztree li span.button.remove:before {
    content: "\f659";
}

.ztree li span.button.edit:before {
    content: "\f4ca";
}

.ztree li span.button.ico_docu:before {
    content: "\f3d1";
}

.ztree li span.button.user_ico_docu:before {
    content: "\f4de";
}

.ztree li span.button.user_ico_open:before {
    content: "\f4de";
}

.ztree li span.button.user_ico_close:before {
    content: "\f4de";
}

.ztree li span.button.system_ico_docu:before {
    content: "\f6a6";
}

.ztree li span.button.board_ico_docu:before {
    content: "\f477";
}

.ztree li a input.rename {
    min-height: calc(1.4285714286em + calc(1px * 2));
    border-radius: 0.2rem;
    margin: -0.2rem -0.25rem;
    color:var(--bs-body-color);
    background-color: #fff;
}

.ztree li a input.rename:focus {
    border-width: 0;
}

table.dataTable {
    border-collapse: collapse;
}

table.dataTable.no-footer {
    border-bottom: var(--bs-card-border-color);
}

table.dataTable thead th>:not(:first-child),
table.dataTable thead td>:not(:first-child){
    padding-right: 1rem!important;
    border-top: .03125rem solid rgba(231,234,243,.7);
    border-bottom: .03125rem solid rgba(231,234,243,.7);
}

table.dataTable.cell-border tbody td .badge {
    padding-right: 0.65rem !important;
}

table.dataTable tbody a {
    text-decoration: underline;
}

table.dataTable tbody tr {
    background-color: var(--bs-body-bg);
}

table.dataTable tbody tr.selected {
    color: #132144;
    background-color: rgba(189,197,209,.2);
}

table.dataTable.cell-border tbody th,
table.dataTable.cell-border tbody td,
table.dataTable.cell-border thead th,
table.dataTable.cell-border thead td{
    border: .03125rem solid rgba(231,234,243,.7);
}

table.dataTable.cell-border tbody tr th:first-child,
table.dataTable.cell-border tbody tr td:first-child {
    border-left: .03125rem solid rgba(231,234,243,.7);
}

table.dataTable.cell-border tbody tr td:last-child {
    border-right: .03125rem solid rgba(231,234,243,.7);
}

table.dataTables_empty {
    border : none!important;
}

.dataTables_wrapper .dataTables_processing {
    background-color: transparent!important;
    background: none;
    text-align: center !important;
}

.tom-select-custom .ts-wrapper.form-select.single .ts-control,.tom-select-custom .ts-control.has-items.hs-select-single-multiple {
    padding: .625rem 1rem!important;
}

.tom-select-custom .ts-wrapper.form-select.multi .ts-control,.tom-select-custom .ts-control.has-items.hs-select-single-multiple {
    padding: .3125rem 1rem .2125rem 1rem!important;
}

.ts-wrapper.is-valid.single,
.was-validated .valid.single,
.was-validated :valid + .ts-wrapper.single {
    background-image: none!important;
}

.ts-wrapper.is-invalid.single,
.was-validated .invalid.single,
.was-validated :invalid + .ts-wrapper.single {
    background-image: none!important;
}

.ts-wrapper.is-valid,
.was-validated .valid,
.was-validated :valid + .ts-wrapper {
    border-color: #00c9a7!important;
}

.w-1 {
    width: 1% !important;
}

.dropzone {
    min-height: 8rem;
    border: 0.0625rem solid rgba(231,234,243,.7);
    border-radius: 0.2rem;
    padding: 0.875rem 0.875rem;
}

.dropzone .dz-message {
    text-align: center;
    color: #8c98a4 !important;
    margin: 0;
    width: 100%;
}

.dropzone .dz-preview {
    position: relative;
    display: inline-block;
    vertical-align: top;
    margin: 0;
    min-height: 6.153rem;
}

.dropzone .dz-preview .dz-image {
    border-radius: 0.2rem;
    overflow: hidden;
    width: 6.153rem;
    height: 6.153rem;
    position: relative;
    display: block;
    z-index: 10;
}

.dropzone .dz-preview .dz-details {
    z-index: 20;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    font-size: 0.875rem;
    min-width: 100%;
    max-width: 100%;
    padding: 1em 1em;
    text-align: center;
    color: rgba(0, 0, 0, .9);
    line-height: 150%;
    cursor: pointer;
}

.dropzone .dz-preview .dz-details .dz-size {
    margin-bottom: 1em;
    font-size: 0.875rem;
    cursor: pointer;
}

.dropzone .dz-preview .dz-remove {
    font-size: 1rem;
    text-align: center;
    display: block;
    cursor: pointer;
    border: none;
}

.dropzone .dz-preview .dz-success-mark {
    pointer-events: none;
    opacity: 0;
    z-index: 500;
    position: absolute;
    display: block;
    top: 50%;
    left: 50%;
    margin-left: -35%;
    margin-top: -50%;
    background-color: rgba(var(--bs-success-rgb), 1) !important;
    border-radius: 50%;
    cursor: pointer;
}

.dropzone .dz-preview .dz-error-mark {
    pointer-events: none;
    opacity: 0;
    z-index: 500;
    position: absolute;
    display: block;
    top: 50%;
    left: 50%;
    margin-left: -35%;
    margin-top: -50%;
    background-color: rgba(var(--bs-danger-rgb),1)!important;
    border-radius: 50%;
    cursor: pointer;
}
.dropzone .dz-preview .dz-image img {
    display: block;
    width: 6.153rem;
    height: 6.153rem;
}

.tox-tinymce {
    border: 0.0625rem solid rgba(231, 234, 243, 0.7)!important;
}

table.dataTable thead .sorting {
    background-size: 1rem 1rem;
}

table.dataTable thead .sorting_asc {
    background-size: 1rem 1rem;
}

table.dataTable thead .sorting_desc {
    background-size: 1rem 1rem;
}

.ts-wrapper.multi .ts-control > div {
    margin: 0 0.2rem 0 0
}

.bg-soft-primary {
    --bs-text-opacity: 1;
    color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important;
    background-color: rgba(55, 125, 255, 0.1) !important;
}

.bg-soft-secondary {
    --bs-text-opacity: 1;
    color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important;
    background-color: rgba(113, 134, 157, 0.1) !important;
}

.bg-soft-success {
    --bs-text-opacity: 1;
    color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;
    background-color: rgba(0, 201, 167, 0.1) !important;
}

.bg-soft-info {
    --bs-text-opacity: 1;
    color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important;
    background-color: rgba(9, 165, 190, 0.1) !important;
}

.bg-soft-warning {
    --bs-text-opacity: 1;
    color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important;
    background-color: rgba(245, 202, 153, 0.1) !important;
}

.bg-soft-danger {
    --bs-text-opacity: 1;
    color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;
    background-color: rgba(237, 76, 120, 0.1) !important;
}

.bg-soft-light {
    --bs-text-opacity: 1;
    color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important;
    background-color: rgba(249, 250, 252, 0.1) !important;
}

.bg-soft-dark {
    --bs-text-opacity: 1;
    color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important;
    background-color: rgba(19, 33, 68, 0.1) !important;
}

.loader {
    width: 8rem;
    height: 4.5rem;
    color: #269af2;
    --c: radial-gradient(farthest-side,currentColor 96%,#0000);
    background:
            var(--c) 100% 100% /30% 60%,
            var(--c) 70%  0    /50% 100%,
            var(--c) 0    100% /36% 68%,
            var(--c) 27%  18%  /26% 40%,
            linear-gradient(currentColor 0 0) bottom/67% 58%;
    background-repeat: no-repeat;
    position: relative;
}
.loader:after {
    content: "";
    position: absolute;
    inset: 0;
    background: inherit;
    opacity: 0.4;
    animation: l7 1s infinite;
}
@keyframes l7 {
    to {transform:scale(1.8);opacity:0}
}

.table-responsive {
    overflow-x: inherit!important;
}

.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_processing,
.dataTables_wrapper .dataTables_paginate {
    color: inherit;
}

.bootstrap-select > .dropdown-toggle {
    border: 1px solid rgba(231, 234, 243, 0.7);
    background: #fff;
}

.bootstrap-select .btn:focus,
.bootstrap-select .btn:focus-visible,
.bootstrap-select.show .btn {
    outline: none !important;
}

.form-control.is-valid, .was-validated .form-control:valid {
    border-color: #28a745 !important;
}

.form-control.is-invalid, .was-validated .form-control:invalid {
    border-color: #b94a48 !important;
}

.external-user {
    background-color: #d2d2ef !important;
}

/* 외주관리 탭 날짜 선택 스타일 - 가독성 개선 */
.contractor-date-item.active {
    color: #132144 !important;
    background-color: rgba(99, 102, 241, 0.1) !important;
    border-left: 3px solid #6366F1 !important;
}

.contractor-date-item.active .fw-semibold {
    color: #132144 !important;
}

.contractor-date-item.active .text-muted {
    color: #6c757d !important;
}

/* bootstrap-select active 상태의 small 태그 스타일 */
/* theme.min.css보다 나중에 적용되도록 더 구체적인 셀렉터 사용 */
html body .bootstrap-select .dropdown-menu li.active small,
html body > .bootstrap-select .dropdown-menu li.active small,
html body > div[class*="bs-select"] li.active small,
html body .bootstrap-select .dropdown-menu .dropdown-item.active small,
html body > .bootstrap-select .dropdown-menu .dropdown-item.active small {
    color: rgba(60, 60, 60, 0.9) !important; /* 검은색에 가까운 짙은 회색 */
}

/* bootstrap-select 검색 결과 없음 메시지 스타일 */
html body .bootstrap-select .dropdown-menu .no-results,
html body > .bootstrap-select .dropdown-menu .no-results,
html body > div[class*="bs-select"] .no-results {
    color: var(--bs-secondary) !important;
    padding: 0.5rem 0.75rem !important;
}

/* 버전 체크 배너 스타일 */
.version-check-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10000 !important; /* 헤더(z-index: 99)보다 훨씬 높게 설정 */
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-bottom: none;
    padding: 1.25rem 1.5rem;
    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
    width: 100%;
    animation: slideDown 0.3s ease-out;
}

@keyframes slideDown {
    from {
        transform: translateY(-100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.version-check-banner .container-fluid {
    max-width: 100%;
    padding-left: 1rem;
    padding-right: 1rem;
}

.version-check-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.version-check-text-wrapper {
    flex: 1;
    min-width: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.version-check-text {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.version-check-title {
    font-weight: 700;
    font-size: 1rem;
    color: #fff;
    line-height: 1.4;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.version-check-message {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.95);
    line-height: 1.5;
}

.version-refresh-icon {
    font-size: 1.5rem;
    color: #fff;
    cursor: pointer;
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .version-check-content {
        flex-direction: column;
        gap: 1rem;
    }
    
    .version-check-text-wrapper {
        flex-direction: column;
        align-items: center;
        gap: 0.75rem;
    }
}

body[data-hs-theme-appearance="dark"] .version-check-banner {
    background: linear-gradient(135deg, #4c63d2 0%, #5a3d7a 100%);
}

/* 헤더가 고정되어 있을 때 배너 아래로 헤더 위치 조정 */
#header.version-banner-visible {
    top: 48px !important;
}

/* 헤더 네비게이션 그룹 스타일 */
.nav-item-group {
    position: relative;
    margin-right: 0.5rem;
}

.nav-item-group:not(:last-child)::after {
    content: '';
    position: absolute;
    right: -0.75rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 1.5rem;
    background-color: rgba(231, 234, 243, 0.7);
}

.nav-group-wrapper {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* 글자 크기 조절 컨트롤 그룹 스타일 */
.font-size-control-group {
    padding: 0.25rem;
    background-color: rgba(55, 125, 255, 0.05);
    border-radius: 0.5rem;
    border: 1px solid rgba(55, 125, 255, 0.1);
}

.font-size-control {
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.font-size-control .btn {
    padding: 0.375rem 0.5rem;
    min-width: 2rem;
    height: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.font-size-control .btn i {
    font-size: 0.875rem;
}

.font-size-control .btn:hover {
    background-color: rgba(55, 125, 255, 0.15);
    color: #377dff;
    transform: translateY(-1px);
}

.font-size-control .btn:active {
    transform: translateY(0) scale(0.95);
}

/* 배율 표시 스타일 */
.font-size-display {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3rem;
    padding: 0 0.5rem;
    margin: 0 0.125rem;
}

.font-size-value {
    font-size: 0.75rem;
    font-weight: 600;
    color: #377dff;
    line-height: 1;
    white-space: nowrap;
}

@media (max-width: 575.98px) {
    .nav-item-group {
        margin-right: 0.375rem;
    }
    
    .nav-item-group:not(:last-child)::after {
        right: -0.5rem;
        height: 1.25rem;
    }
    
    .nav-group-wrapper {
        gap: 0.375rem;
    }
    
    .font-size-control-group {
        padding: 0.125rem;
    }
    
    .font-size-control {
        gap: 0.25rem;
    }
    
    .font-size-control .btn {
        padding: 0.25rem 0.375rem;
        min-width: 1.75rem;
        height: 1.75rem;
    }
    
    .font-size-control .btn i {
        font-size: 0.75rem;
    }
    
    .font-size-display {
        min-width: 2.5rem;
        padding: 0 0.375rem;
        margin: 0 0.0625rem;
    }
    
    .font-size-value {
        font-size: 0.6875rem;
    }
}

.tooltip {
    position: fixed !important;
    
}