/* ### font ### */
/* --- 나눔바른고딕 --- */
@font-face {
    font-family: 'NanumBarunGothic';
    font-style: normal;
    font-weight: 300;
    src: url('//cdn.jsdelivr.net/font-nanumlight/1.0/NanumBarunGothicWebLight.eot');
    src: url('//cdn.jsdelivr.net/font-nanumlight/1.0/NanumBarunGothicWebLight.eot?#iefix') format('embedded-opentype'), url('//cdn.jsdelivr.net/font-nanumlight/1.0/NanumBarunGothicWebLight.woff') format('woff'), url('//cdn.jsdelivr.net/font-nanumlight/1.0/NanumBarunGothicWebLight.ttf') format('truetype');
}
@font-face {
    font-family: 'NanumBarunGothic';
    font-style: normal;
    font-weight: 400;
    src: url('//cdn.jsdelivr.net/font-nanumlight/1.0/NanumBarunGothicWeb.eot');
    src: url('//cdn.jsdelivr.net/font-nanumlight/1.0/NanumBarunGothicWeb.eot?#iefix') format('embedded-opentype'), url('//cdn.jsdelivr.net/font-nanumlight/1.0/NanumBarunGothicWeb.woff') format('woff'), url('//cdn.jsdelivr.net/font-nanumlight/1.0/NanumBarunGothicWeb.ttf') format('truetype');
}
@font-face {
    font-family: 'NanumBarunGothic';
    font-style: normal;
    font-weight: 700;
    src: url('//cdn.jsdelivr.net/font-nanumlight/1.0/NanumBarunGothicWebBold.eot');
    src: url('//cdn.jsdelivr.net/font-nanumlight/1.0/NanumBarunGothicWebBold.eot?#iefix') format('embedded-opentype'), url('//cdn.jsdelivr.net/font-nanumlight/1.0/NanumBarunGothicWebBold.woff') format('woff'), url('//cdn.jsdelivr.net/font-nanumlight/1.0/NanumBarunGothicWebBold.ttf') format('truetype')
}

/* ### root ### */
:root {
    --ct-orange: #fd7e14;
    --ct-secondary: #6c757d;
    --ct-success: #0acf97;
    --ct-info: #39afd1;
    --ct-warning: #ffbc00;
    --ct-danger: #fa5c7c;
    --ct-light: #eef2f7;
    --ct-secondary-rgb: 108, 117, 125;
    --ct-success-rgb: 10, 207, 151;
    --ct-info-rgb: 57, 175, 209;
    --ct-warning-rgb: 255, 188, 0;
    --ct-danger-rgb: 250, 92, 124;
    --ct-light-rgb: 238, 242, 247;
    --ct-border-color: #dee2e6;
    --ct-text-muted: #98a6ad;
    --ct-input-disabled-bg: #eef2f7;
    --form-disabled: #f6f7f7;

    --bs-primary-light: rgba(var(--bs-primary-rgb), 0.1);
    --bs-border-color: #ced4da;

    --custom-color: #2c8ef8;
    --custom-color-rgb: 44, 142, 248;

    --point: #537EEB;
    --point-rgb: 83,126,235;
    --point-light: #EEF3FD;
    --point-dark: #294daa;
    --point-border-light: #d7e1fa;
    --point-dark-light: #697698;
    --default-color: #3c4651;
    --hover-color: #f7f7f7;

    --ct-btn-h: 40px;
    --ct-form-h: 32px;
    --ct-bdrad: 7px;
    --table-checkbox: 40px;
    --table-short: 90px;
    --table-status: 90px;
    --table-num: 120px;
    --table-long: 185px;
    --table-text: 300px;
}

/* ### CSS Components ### */
/* --- display --- */
.w-20 {
    width: 20% !important;
}
.w-30 {
    width: 30% !important;
}
.w-40 {
    width: 40% !important;
}
.w-60 {
    width: 60%;
}
.w-70 {
    width: 70%;
}
.w-80 {
    width: 80%;
}
.h-20 {
    height: 20% !important;
}
.h-80 {
    height: 80% !important;
}
.row {
    --bs-gutter-x: 0.5rem;
}
.custom-col-row {
    display: flex;
    gap: 12px;
}
.custom-col-12 {
    display: block;
    width: 100%;
}
.custom-col-11 {
    width: calc(calc(100% / 12) * 11);
}
.custom-col-10 {
    width: calc(calc(100% / 12) * 10);
}
.custom-col-9 {
    width: calc(calc(100% / 12) * 9);
}
.custom-col-8 {
    width: calc(calc(100% / 12) * 8);

}
.custom-col-7 {
    width: calc(calc(100% / 12) * 7);

}
.custom-col-6 {
    width: calc(calc(100% / 12) * 6);
}
.custom-col-5 {
    width: calc(calc(100% / 12) * 5);

}
.custom-col-4 {
    width: calc(calc(100% / 12) * 4);

}
.custom-col-3 {
    width: calc(calc(100% / 12) * 3);

}
.custom-col-2 {
    width: calc(calc(100% / 12) * 2);

}
.custom-col-1 {
    width: calc(calc(100% / 12) * 1);
}

/* --- form --- */
.form-control, .form-select, .form-check-label, .input-group-text {
    font-size: 14px;
}
.form-control, .form-select, .input-group-text {
    border-radius: var(--ct-bdrad);
}
.form-control, .form-select {
    height: var(--ct-btn-h);
    padding-top: 0;
    padding-bottom: 0;
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
    box-shadow: none;
    outline: none;
}
:not([class *= "input-group"]) textarea.form-control {
    padding-top: 10px;
    padding-bottom: 10px;
}
.input-group-text,
.form-control::file-selector-button {
    background-color: var(--hover-color) !important;
}
.form-control:disabled, .form-control[readonly], .form-select:disabled, .disabled, .readonly {
    background-color: var(--form-disabled);
}
.form-control:disabled:focus, .form-control[readonly]:focus {
    border-color: var(--bs-border-color);
}
.form-control[type=file],
[class *= "input-group"] :is(.form-control, .form-select) {
    height: auto;
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
}
.form-control::placeholder {
    color: var(--ct-text-muted);
}
.form-select {
    white-space: normal;
}
[class *= "input-group"] .form-select:not(#category-year) {
    border-radius: 0 var(--ct-bdrad) var(--ct-bdrad) 0 !important;
}
.table .form-select {
    height: var(--ct-form-h);
}
.custom-page-inner-top .input-group {
    flex-wrap: unset;
}
.custom-page-inner-top .form-control[type=date] {
    min-width: 130px;
}
.resize-none {
    resize: none !important;
}

/* --- table --- */
.table {
    font-size: 15px;
}
.table-centered :is(th, td) {
    vertical-align: middle !important;
}
.table-striped>tbody>tr:nth-of-type(odd)>* {
    --bs-table-accent-bg: #fafbfc;
}
.table.table-hover tbody tr:hover :is(th, td) {
    background: var(--hover-color);
    box-shadow: none !important;
}
.table-striped-reverse tbody tr:not(:nth-child(odd)) :is(th, td) {
    background: #fafbfc;
}
.table :is(th, td):last-child {
    /* padding-right: 20px !important; */
}
.custom-table-checkbox {
    width: var(--table-checkbox);
}
.custom-table-short {
    width: var(--table-short);
}
.custom-table-status {
    width: var(--table-status);
}
.custom-table-num {
    width: var(--table-num);
}
.custom-table-long {
    width: var(--table-long);
}
.custom-table-text {
    width: var(--table-text);
}
.custom-table-marea .marea {
    width: 320.15px;
}

/* --- btn --- */
.btn:active, .btn:focus, .btn:active:focus, .btn:hover {
    box-shadow: none !important;
    outline: none !important;
}
.btn-text {
    background: transparent;
    border: none;
    box-shadow: none;
}
.btn-text:hover {
    text-decoration: underline;
}
[class *= "custom-type-btn"] {
    height: var(--ct-btn-h);
    line-height: var(--ct-btn-h);
    padding: 0;
    border-radius: var(--ct-bdrad);
    text-align: center;
    font-size: 14px;
}
[class *= "custom-type-btn"].btn-sm {
    height: var(--ct-form-h);
    line-height: var(--ct-form-h);
    font-size: 13px;
}
.custom-page-inner-top [class *= "custom-type-btn"].btn-sm {
    height: 35px;
    line-height: 35px;
}
[class *= "custom-type-btn"].btn-lg {
    height: 50px;
    line-height: 50px;
    font-size: 16px;
}
.custom-type-btn1 {
    min-width: 59px;
    width: 59px;
}
.custom-type-btn2 {
    min-width: 144px;
    width: 144px;
}
.custom-type-btnTest {
    min-width: 89px;
    width: 89px;
}

/* --- badge --- */
.badge {
    border-radius: var(--ct-bdrad);
}

/* --- bg --- */
.bg-secondary-light,
.bg-secondary-light:hover {
    background-color: rgba(var(--ct-secondary-rgb), 0.1);
    color: var(--ct-secondary);
}
.bg-success-light,
.bg-success-light:hover {
    background-color: rgba(var(--ct-success-rgb), 0.1);
    color: var(--ct-success);
}
.bg-danger-light,
.bg-danger-light:hover {
    background-color: rgba(var(--ct-danger-rgb), 0.1);
    color: var(--ct-danger);
}
.bg-warning-light,
.bg-warning-light:hover {
    background-color: rgba(var(--ct-warning-rgb), 0.15);
    color: var(--ct-orange);
}
.bs-primary-light {
    background-color: var(--bs-primary-light);
    color: var(--bs-primary);
}
.bg-point {
    background: var(--point);
    color: #fff;
}
.bg-point-light {
    background: var(--point-light);
    color: var(--point);
}
.bg-point-outline {
    background: #fff;
    border: 1px solid var(--point) !important;
    color: var(--point);
}
.bg-plain {
    border: 1px solid var(--ct-border-color);
    background: #fff;
    color: var(--ct-secondary);
}
.bg-point-outline:hover,
.bg-point-light:hover {
    color: var(--point);
}
.bg-point-outline:hover {
    opacity: 0.8;
}
.bg-plain:hover {
    border-color: var(--default-color);
}
.bs-primary-light:hover {
    color: rgba(var(--bs-primary-rgb), 1);
}

/* --- font --- */
.font-nanum {
    font-family: 'NanumBarunGothic', sans-serif !important;
}
.font-10 {
    font-size: 10px !important;
}
.font-11 {
    font-size: 11px !important;
}
.font-12 {
    font-size: 12px !important;
}
.font-13 {
    font-size: 13px !important;
}
.font-14 {
    font-size: 14px !important;
}
.font-15 {
    font-size: 15px !important;
}
.font-16 {
    font-size: 16px !important;
}
.font-18 {
    font-size: 18px !important;
}
.font-20 {
    font-size: 20px !important;
}
.font-22 {
    font-size: 22px !important;
}
.font-24 {
    font-size: 24px !important;
}
.font-26 {
    font-size: 26px !important;
}
.font-28 {
    font-size: 28px !important;
}
.font-30 {
    font-size: 30px !important;
}
.font-32 {
    font-size: 32px !important;
}
.text-muted {
    color: var(--ct-text-muted) !important;
}
.text-underline {
    text-decoration: underline !important;
}
.custom-must {
    color: var(--ct-danger) !important;
}
.fw-500 {
    font-weight: 500 !important;
}
.fw-600 {
    font-weight: 600 !important;
}

/* validation text */
.invalid-feedback {
    word-break: keep-all;
    font-size: 13px;
}

/* text-overflow */
[class *= "custom-elps-"] {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
    word-break: break-all;
}
.custom-elps-1 {
    -webkit-line-clamp: 1;
}
.custom-elps-2 {
    -webkit-line-clamp: 2;
}

/* --- list-style --- */
.list-type-disc {
    list-style-type: disc;
}
.list-type-decimal {
    list-style-type: decimal;
}
.list-type-circle {
    list-style-type: circle;
}

/* --- cursor --- */
.cursor-pointer {
    cursor: pointer;
}
.cusror-none {
    pointer-events: none;
}

/* --- modal --- */
.modal {
    padding: 14px 0;
}
.modal * {
    scrollbar-width: thin;
}
.modal-dialog.custom-modal-maxheight-scroll {
    height: 100%;
    max-height: 100%;
    margin: auto;
    overflow: hidden;
}
.modal-content {
    height: 100%;
}
.modal-dialog.custom-modal-maxheight-scroll .modal-content {
    height: auto;
    max-height: 100%;
}
.modal-header, .modal-footer {
    padding: 0 0.75rem;
}

/* modal header */
.modal-header {
    height: 60px;
}
.modal-title {
    font-weight: 700;
    font-size: 22px;
}

/* modal body */
.modal-body {
    height: calc(100% - calc(60px + 70px));
}
.modal-dialog.custom-modal-maxheight-scroll .modal-body {
    overflow-y: auto;
}
.custom-modal-body-search {
    height: 60px;
}
.custom-modal-body-list {
    height: calc(100% - 60px);
    overflow-y: auto;
}

/* modal footer */
.modal-footer {
    height: 70px;
}

/* ### Alert - swal ### */
.swal2-container {
    z-index: 10000 !important;
}
.swal2-container.swal2-backdrop-show, .swal2-container.swal2-noanimation {
    background: rgba(var(--ct-secondary-rgb),0.25) !important;
}
.swal2-popup {
    padding: 1.25em !important;
    border-radius: 13px !important;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
}
.swal2-container.swal2-center>.swal2-popup {
    box-shadow: none !important;
}
.swal2-container.swal2-center *:not(i) {
    font-family: 'Pretendard Variable' !important;
}
.swal2-container.swal2-center strong {
    display: block;
    margin: 0 0 10px;
    font-size: 20px;
}

/* --- alert text --- */
div:where(.swal2-container) div:where(.swal2-popup) {
    width: 500px !important;
    max-width: 100% !important;
}
.swal2-html-container {
    margin: 5px 0 8px !important;
}
.swal2-html-container .custom-alert-text {
    line-height: 1.35em;
    word-break: keep-all;
    font-weight: 400;
    font-size: 18px;
    color: var(--ct-secondary);
}
.swal2-html-container .text-muted {
    font-size: 14px;
}

/* alert badge */
.swal2-container.swal2-center .badge {
    height: 20px;
    line-height: 20px;
    vertical-align: middle;
    transform: translateY(-2px);
    font-weight: 600;
    font-size: 14px;
}
.swal2-container.swal2-center .badge.bg-secondary-lighten {
    color: var(--ct-secondary);
}

/* alert icon */
.custom-alert-icon {
    margin: 0 0 34px;
}
.custom-alert-icon-bg {
    width: 70px;
    height: 70px;
    margin: 0 auto;
    border-radius: 100%;
    border: none !important;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 46px;
}
.custom-alert-icon-bg.bg-success-lighten {
    background: rgba(var(--ct-success-rgb), 0.1);
    color: var(--ct-success) !important;
}
.custom-alert-icon-bg.bg-danger-lighten {
    background: rgba(var(--ct-danger-rgb), 0.1);
    color: var(--ct-danger) !important;
}
.custom-alert-icon-bg.bg-point-light {
    background: var(--point-light);
    color: var(--point) !important;
    font-weight: 600 !important;
    font-size: 36px;
}
.custom-alert-icon-bg i {
    font-weight: 400;
}

/* --- alert btn --- */
.swal2-loader {
    display: none !important;
}
.swal2-actions {
    gap: 7px !important;
}
.swal2-popup .swal2-styled {
    width: 150px !important;
    height: 44px !important;
    line-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 100px !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    transition: 0.25s;
}
.swal2-popup .swal2-styled:focus {
    box-shadow: none !important;
}

/* 확인 버튼 */
.swal2-popup .swal2-styled.swal2-confirm {
    background: var(--point) !important;
    color: #fff !important;
    order: 2 !important;
}
.swal2-popup .swal2-styled.swal2-confirm:hover {
    background: var(--point-dark) !important;
}
.swal2-popup .swal2-styled.swal2-confirm.bg-danger {
    background: var(--ct-danger) !important;
}
.swal2-popup .swal2-styled.swal2-confirm.bg-danger:hover {
    background: #df3d5e !important;
}
.swal2-popup .swal2-styled.swal2-confirm.bg-success {
    background: var(--ct-success) !important;
}
.swal2-popup .swal2-styled.swal2-confirm.bg-success:hover {
    background: #0faa7e !important;
}
.swal2-popup .swal2-styled.swal2-deny {
    background: var(--ct-danger) !important;
    color: #fff !important;
    order: 1 !important;
}

/* 취소 버튼 */
.swal2-popup .swal2-styled.swal2-cancel {
    background: var(--ct-light) !important;
    font-weight: 400 !important;
    color: var(--ct-text-muted) !important;
}
.swal2-popup .swal2-styled.swal2-cancel:hover {
    background: var(--ct-border-color) !important;
}