@keyframes scaleImage {
    0% {
        transform: scale(0);
    }
    70% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}
@keyframes loader01 {
    0% {
        transform: translateX(0);
        opacity: 1;
    }
    25% {
        transform: translateX(0);
        opacity: 1;
    }
    40% {
        transform: translateX(50%);
        opacity: 0;
    }
    60% {
        transform: translateX(-50%);
        opacity: 0;
    }
    75% {
        transform: translateX(0);
        opacity: 1;
    }
    100% {
        transform: translateX(0);
        opacity: 1;
    }
}
@keyframes slide-up {
    to {
      opacity: 1;
      transform: translateY(0);
    }
}
@keyframes blink {
    0%, 100% {
        color: var(--grayscale--0-white);
        background: var(--secondary--400-default);
    }
    50% {
        color: var(--secondary--400-default);
        background: var(--grayscale--0-white);
    }
}
@keyframes float {
    0% {
      transform: translateX(-50%) translateY(0px);
    }
    50% {
      transform: translateX(-50%) translateY(-10px);
    }
    100% {
      transform: translateX(-50%) translateY(0px);
    }
}
@keyframes scroll-up {
    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(-50%);
    }
}


*{
    letter-spacing: 0em;
    box-sizing:inherit;
}
:root{
    --primary--600: #102A56;
    --primary--500: #1849A9;
    --primary--400-default: #1570EF;
    --primary--300: #2E90FA;
    --primary--200: #84CAFF;
    --primary--100: #D1E9FF;
    --primary--50: #EFF8FF;
    --secondary--700: #7E2410;
    --secondary--600: #C4320A;
    --secondary--500: #F25805;
    --secondary--400-default: #FB6514;
    --secondary--300: #FEB273;
    --secondary--200: #FFD3A7;
    --secondary--100: #FFEAD5;
    --secondary--50: #FFF6ED;
    --grayscale--800-default: #0C111D;
    --grayscale--700: #1D2939;
    --grayscale--600: #475467;
    --grayscale--500: #667085;
    --grayscale--400: #98A2B3;
    --grayscale--300: #D0D5DD;
    --grayscale--200: #E4E7EC;
    --grayscale--100: #F6F7FA;
    --grayscale--50: #F8FAFB;
    --grayscale--0-white: #FFF;
    --alert--500-warning: #F93333;
}



html, body{
    font-family: 'Pretendard', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;
    color: var(--grayscale--800-default);
    -webkit-text-size-adjust : none;  /* 크롬, 사파리, 오페라 신버전 */
    -ms-text-size-adjust : none;  /* IE */
    -moz-text-size-adjust : none;  /* 파이어폭스 */
    -o-text-size-adjust : none;  /* 오페라 구버전 */
    min-width: 1495px;
    min-height: 100vh;
    width: 100%;
    background: var(--grayscale--100);
    display: flex;
    margin: 0 auto;
    box-sizing: border-box;
    scroll-behavior: smooth;
    scrollbar-gutter: stable;
}
a:link,
a:visited,
a:active,
a:hover{
    text-decoration: none;
    color: var(--grayscale--800-default);
    box-sizing: border-box;
}
hr{
    height: 1px;
    background: var(--grayscale--200);
    border: none;
    margin: 0;
}
b{
    font-weight: 700;
}
main{
    flex: 1;
    height: 100%;
    margin-left: 270px;
}
header{
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 88px;
    padding: 0 24px;
    box-sizing: border-box;
}
header > div{
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
}
header h1{
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
header h1 span{
    font-size: 18px;
    font-weight: 500;
}
header h1 b{
    color: var(--primary--400-default);
}
section{
    padding: 0 24px 24px 24px;
    margin: 0 auto;
}
h1{
    font-size: 28px;
    font-weight: 700;
}
h2{
    font-size: 20px;
    font-weight: 700; 
}
.inner{
    width: calc(100% - 32px);
    margin: 0 auto;
}
.custom-scroll{
    overflow-y: auto;
}
.custom-scroll::-webkit-scrollbar{
    width: 6px;
}
.custom-scroll::-webkit-scrollbar-track{
    background: transparent;
}
.custom-scroll::-webkit-scrollbar-thumb{
    background: var(--grayscale--800-default);
}
.timer-box{
    font-size: 14px;
    font-weight: 700;
    line-height: normal;
    color: var(--primary--400-default);
    background: var(--primary--50);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    border-radius: 8px;
    padding: 8px;
}
.timer-box img{
    width: 18px;
    height: auto;
}
.wrap{
    flex-wrap:wrap;
}
.red{
    color: var(--alert--500-warning);
}





/* #sidebar */
#sidebar{
    background: var(--grayscale--0-white);
    font-weight: 500;
    line-height: normal;
    width: 270px;
    height: 100vh;
    position: fixed;
    left: 0;
    top: 0;
    border-right: 1px solid var(--grayscale--200);
    overflow-x: hidden;
    overflow-y: auto;
    box-sizing: border-box;
    z-index: 100;
}
#sidebar::-webkit-scrollbar,
#sidebar::-webkit-scrollbar-track,
#sidebar::-webkit-scrollbar-thumb{
    width: 0;
    background: none;
}
.guest #sidebar .user-wrap,
.guest #sidebar .bookmark-wrap,
.guest #sidebar hr{
    display: none;
}
#sidebar.noscroll{
    overflow: unset;
    scrollbar-gutter: stable;
}
#sidebar.fix.fold .submenu{
    display: none;
}
#sidebar.fix .logo-wrap .sidebar-btn img{
    transform: rotate(180deg);
}
#sidebar .logo-wrap{
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 60px;
    padding: 16px;
    box-sizing: border-box;
}
#sidebar .logo-wrap a{
    flex: 1;
    height: 20px;
    background: url(/assets/Web/images/logo-color.svg) no-repeat left center/auto 20px;
}
#sidebar .logo-wrap .sidebar-btn{
    font-size: 12px;
    font-weight: 500;
    color: var(--grayscale--400);
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 3px;
    width: 80px;
    height: 30px;
}
#sidebar .user-wrap{
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px;
    overflow: hidden;
}
#sidebar .user-wrap .user-group{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 16px;
}
#sidebar .user-wrap .user-group .profile{
    width: 52px;
    height: 52px;
    border-radius: 999px;
    background: url(/assets/Web/images/profile-default.svg) no-repeat center/24px auto var(--grayscale--100);
    overflow: hidden;
}
#sidebar .user-wrap .user-group .profile img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
#sidebar .user-wrap .user-group .info{
    display: flex;
    flex-direction: column;
    gap: 6px;
}
#sidebar .user-wrap .user-group .info b{
    color: var(--primary--500);
    padding-right: 6px;
}
#sidebar .user-wrap .user-group .info span{
    font-size: 12px;
    color: var(--grayscale--500);
}
#sidebar .user-wrap .btn-group{
    display: flex;
    gap: 8px;
}
#sidebar .user-wrap .btn-group a{
    font-size: 14px;
    font-weight: 500;
    width: 100%;
    height: 36px;
    border-radius: 8px;
}
#sidebar .bookmark-wrap{
    font-size: 14px;
    padding: 4px;
    overflow: hidden;
}
#sidebar .bookmark-wrap .bookmark-group{
    padding: 12px;
}
#sidebar .bookmark-wrap .bookmark-head{
    color: var(--grayscale--500);
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    max-width: 238px;
    margin-bottom: 12px;
}
#sidebar .bookmark-wrap .bookmark-head .tit{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 4px;
}
#sidebar .bookmark-wrap .bookmark-head .tit span{
    background: url(/assets/Web/images/icon-bookmark-default.svg) no-repeat center/16px auto;
    display: block;
    width: 16px;
    height: 16px;
}
#sidebar .bookmark-wrap .bookmark-head .btn-container{
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
}
#sidebar .bookmark-wrap .bookmark-head .btn-container span{
    display: none;
}
#sidebar .bookmark-wrap .bookmark-head .btn-container button{
    width: 30px;
    height: 30px;
    border: 1px solid var(--grayscale--200);
    border-radius: 999px;
}
#sidebar .bookmark-wrap .bookmark-head .btn-container .open-btn{
    background: url(/assets/Web/images/arrow-right-01.svg) no-repeat center/auto;
}
#sidebar .bookmark-wrap .bookmark-head .btn-container .close-btn{
    background: url(/assets/Web/images/icon-close-01.svg) no-repeat center/auto;
    display: none;
}
#sidebar .bookmark-wrap .bookmark-head .btn-container .setting-btn{
    background: url(/assets/Web/images/icon-setting.svg) no-repeat center/auto;
}
#sidebar .bookmark-wrap .bookmark-head .btn-container .save-btn{
    background: url(/assets/Web/images/icon-save.svg) no-repeat center/auto;
    display: none;
}
#sidebar .bookmark-wrap .bookmark-body{
    display: flex;
    justify-content: flex-start;
    gap: 10px;
}
#sidebar .bookmark-wrap .bookmark-body li{
    cursor: move;
}
#sidebar .bookmark-wrap .bookmark-body li.dragging{
    opacity: 0.5;
} 
#sidebar .bookmark-wrap .bookmark-body li a{
    text-align: center;
    color: var(--grayscale--600);
    width: 65px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap: 8px;
}
#sidebar .bookmark-wrap .bookmark-body li a span{
    position: relative;
    background: var(--grayscale--100);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50px;
    height: 50px;
    border-radius: 20px;
}
#sidebar .bookmark-wrap.open{
    overflow: visible;
}
#sidebar .bookmark-wrap.open .bookmark-group{
    background: var(--grayscale--0-white); 
    width: max-content;
    border-radius: 12px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05),
    inset 0 0 0 1px var(--grayscale--200);
}
#sidebar .bookmark-wrap.open .bookmark-head .tit{
    color: var(--grayscale--800-default)
}
#sidebar .bookmark-wrap.open .bookmark-head .tit span{
    background-image: url(/assets/Web/images/icon-bookmark-on.svg);
}
#sidebar .bookmark-wrap.edit .bookmark-head .btn-container span{
    font-size: 12px;
    color: var(--grayscale--400);
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 4px;
}
#sidebar .bookmark-wrap.open .bookmark-head .btn-container .close-btn,
#sidebar .bookmark-wrap.edit .bookmark-head .btn-container .save-btn{
    display: block;
}
#sidebar .bookmark-wrap.open .bookmark-head .btn-container .open-btn,
#sidebar .bookmark-wrap.edit .bookmark-head .btn-container .close-btn,
#sidebar .bookmark-wrap.edit .bookmark-head .btn-container .setting-btn{
    display: none;
}
#sidebar .bookmark-wrap.edit .bookmark-body li{
    cursor: move;
}
#sidebar .bookmark-wrap.edit .bookmark-body li.dragging{
    background: var(--primary--50);
    border: 1px dashed var(--primary--200);
    border-radius: 8px;
}
#sidebar .bookmark-wrap.edit .bookmark-body li a{
    pointer-events: none;
}
#sidebar .bookmark-wrap.edit .bookmark-body li a span::after{
    content: "";
    position: absolute;
    top: -2px;
    right: -2px;
    background: url(/assets/Web/images/icon-close-03.svg) no-repeat center/auto var(--grayscale--800-default);
    width: 16px;
    height: 16px;
    border-radius: 999px;
    cursor: pointer;
    pointer-events: all;
}
#sidebar nav{
    font-size: 16px;
    flex: 1;
    padding: 16px;
}
#sidebar nav ul li .menu-head{
    background: url(/assets/Web/images/icon-more.svg) no-repeat calc(100% - 16px) center/16px auto;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
    height: 50px;
    border-radius: 8px;
    padding: 0 32px 0 16px;
    cursor: pointer;
}
#sidebar nav ul li a.menu-head{
    background-image: none;
}
#sidebar nav ul li.open .menu-head{
    background-image: url(/assets/Web/images/icon-fold.svg);
    background-color: var(--primary--50);
}
#sidebar nav ul li .menu-head:hover,
#sidebar nav ul li .submenu a:hover{
    background-color: var(--grayscale--100);
}
#sidebar nav ul li a.active,
#sidebar nav ul li a.active:hover,
#sidebar nav ul li.open .menu-head:hover{
    background-color: var(--primary--50);
}
#sidebar nav ul li .submenu{
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.2s ease;
    padding: 0;
}
#sidebar nav ul li .submenu a{
    color: var(--grayscale--600);
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 44px;
    border-radius: 8px;
    padding: 0 20px 0 50px;
}
#sidebar nav ul li .submenu a button{
    display:none;
    width: 16px;
    height: 16px;
    background: url(/assets/Web/images/icon-bookmark-off.svg) no-repeat center/16px auto;
}
#sidebar nav ul li .submenu a button.on{
    background-image: url(/assets/Web/images/icon-bookmark-on.svg);
}
#sidebar nav ul li.open .submenu{
    padding: 10px 0;
}
#sidebar.fold{
    width: 82px;
}
#sidebar.fold .user-wrap,
#sidebar.fold .bookmark-wrap,
#sidebar.fold nav{
    padding: 0 16px;
}
#sidebar.fold hr,
#sidebar.fold .logo-wrap button,
#sidebar.fold .logo-wrap .sidebar-btn span,
#sidebar.fold .user-wrap .user-group .info,
#sidebar.fold .user-wrap .btn-group,
#sidebar.fold .bookmark-wrap .bookmark-head .tit b,
#sidebar.fold .bookmark-wrap .bookmark-head .btn-container,
#sidebar.fold .bookmark-wrap .bookmark-body,
#sidebar.fold nav ul li .menu-head span{
    display: none;
}
#sidebar.fold .logo-wrap{
    border-bottom: 1px solid var(--grayscale--200);
    margin-bottom: 16px;
}
#sidebar.fold .logo-wrap a{
    background-image: url(/assets/Web/images/logo-fold.svg);
    background-position: center;
}
#sidebar.fold .user-wrap .user-group .profile{
    width: 50px;
    height: 50px;
    background-image: url(/assets/Web/images/profile-black.svg);
    background-color: transparent;
}
#sidebar.fold .bookmark-wrap .bookmark-group{
    padding: 0;
}
#sidebar.fold .bookmark-wrap .bookmark-head{
    margin: 0;
}
#sidebar.fold .logo-wrap .sidebar-btn,
#sidebar.fold .bookmark-wrap .bookmark-head .tit{
    width: 50px;
    height: 50px;
    justify-content: center;
}
#sidebar.fold .bookmark-wrap .bookmark-head .tit span{
    width: 20px;
    height: 20px;
    background: url(/assets/Web/images/icon-bookmark.svg) no-repeat center/20px auto;
}
#sidebar.fold nav ul li .menu-head{
    background-image: none;
    justify-content: center;
    width: 50px;
    padding: 0;
}







/* input */
input[type="text"],
input[type="search"],
input[type="number"],
textarea{
    font-size: 14px;
    position: relative;
    padding: 0 32px 0 12px;
    width: 100%;
    height: 38px;
    background: var(--grayscale--0-white);
    border: 1px solid var(--grayscale--200);
    outline: none;
    flex: 1;
    border-radius: 8px;
    box-sizing: border-box;
}
input[type="text"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
textarea:focus{
    border: 1px solid var(--primary--400-default) !important;
    box-shadow: 0 0 0 1px var(--primary--400-default) !important;
}
input[type="text"]::placeholder,
input[type="search"]::placeholder,
input[type="number"]::placeholder,
textarea::placeholder{
    color: var(--grayscale--400);
}
input[type="text"]:read-only,
input[type="search"]:read-only,
input[type="number"]:read-only,
textarea:read-only{
    color: var(--grayscale--400);
    background: var(--grayscale--100);
    border: 1px solid var(--grayscale--200);
    pointer-events: none;
}
input[type="text"]:disabled,
input[type="search"]:disabled,
input[type="number"]:disabled,
textarea:disabled{
    color: var(--grayscale--600);
    background: var(--grayscale--200);
    border: 1px solid var(--grayscale--300);
}
input[type="search"]::-webkit-search-cancel-button{
    display: none;
}
textarea{
    padding: 16px 12px;
    min-height: 82px;
    overflow-y: auto;
    resize: none;
}






/* checkbox */
input[type="checkbox"]{
    background: url(/assets/Web/images/icon-input-check.svg) no-repeat center/auto var(--grayscale--0-white);
    appearance: none;
    min-width: 20px;
    min-height: 20px;
    border: 1px solid var(--grayscale--300);
    border-radius: 7px;
    outline: none;
    cursor: pointer;
    box-sizing: border-box;
}
input[type="checkbox"]:checked{
    background-color: var(--grayscale--800-default);
    border-color: var(--grayscale--800-default);
}
input[type="checkbox"]:disabled{
    background: var(--grayscale--200);
}
.check-list label{
    font-weight: 500;
    line-height: normal;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    flex: 1;
    width: 100%;
    box-sizing: border-box;
}
.check-list label span{
    color: var(--primary--400-default);
    margin-right: -10px;
}
.check-list a{
    color: var(--grayscale--400);
    text-decoration: underline;
}




/* radio */
input[type="radio"]{
    display: none;
}
.radio-list{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}
.custom-radio{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    box-sizing: border-box;
}
.custom-radio .radio-mark{
    position: relative;
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 999px;
    box-shadow: inset 0 0 0 4px var(--grayscale--300);
    transition: all 0.2s ease;
}
input[type="radio"]:checked + .radio-mark{
    box-shadow: inset 0 0 0 4px var(--grayscale--800-default);
}





/* toggle */
.toggle-list{
    display: flex;
    gap: 8px;
}
.toggle-list .toggle-item{
    flex: 1;
    line-height: normal;
    color: var(--grayscale--400);
    background: var(--grayscale--0-white);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    width: 100%;
    height: 38px;
    border: 1px solid var(--grayscale--200);
    border-radius: 8px;
    padding: 0 8px;
    margin: 0;
    box-sizing: border-box;
    cursor: pointer;
}
.toggle-list.connect{
    gap: 0;
}
.toggle-list.connect .toggle-item{
    border-radius: 0;
    margin-right: -1px;
}
.toggle-list.connect .toggle-item:first-child{
    border-radius: 8px 0 0 8px;
}
.toggle-list.connect .toggle-item:last-child{
    border-radius: 0 8px 8px 0;
    margin-right: 0;
}
.toggle-list .toggle-item.active{
    color: var(--grayscale--800-default);
    border: 1px solid var(--grayscale--800-default);
    z-index: 1;
}
.toggle-list .toggle-item img{
    display: none;
}
.toggle-list .toggle-item.active img{
    display: block;
}
.toggle-list.connect{
    gap: 0;
}





/* input-box */
.input-box{
    font-size: 14px;
    display: flex;
    flex-wrap: wrap;
}
.input-box .label{
    font-weight: 700;
    width: fit-content;
    color: var(--grayscale--500);
    display: inline-block;
    position: relative;
}
.input-box .label.mark::after{
    content: "*";
    font-weight: 500;
    color: var(--primary--400-default);
    position: absolute;
    top: 0;
    left: auto;
    padding-left: 2px;
}
.input-box .label span{
    font-size: 12px;
    font-weight: 500;
    color: var(--grayscale--400);
    padding-left: 6px;
}
.input-box .etc-field{
    display: none;
}
.input-box .disabled{
    background: var(--grayscale--200) !important;
    border: 1px solid var(--grayscale--300) !important;
    pointer-events: none !important;
    color: var(--grayscale--400) !important;
}
.input-box .unit{
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
}
.input-box input:disabled + .unit{
    color: var(--grayscale--600);
}
.input-box > p{
    font-size: 12px;
    color: var(--grayscale--500);
    width: 100%;
    text-align: right;
    padding-top: 8px;
}
.input-box > p > span{
    color: var(--primary--400-default);
}




/* input layout */
.input-type-01{
    display: flex;
    flex-direction: column;
    gap: 8px;
    position: relative;
    width: 100%;
    flex: 1;
}
.input-type-02{
    display: flex;
    gap: 8px;
    position: relative;
    width: 100%;
    flex: 1;
}
.input-type-03{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    position: relative;
    width: 100%;
    flex: 1;
}
.input-type-04{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    position: relative;
    width: 100%;
    flex: 1;
}
.input-type-05{
    display: grid;
    grid-template-rows: repeat(2, 1fr);
    grid-template-columns: repeat(3, 1fr);
    position: relative;
    width: 100%;
    flex: 1;
}
.input-type-05 > div:nth-child(1){
    grid-row: 1;
    grid-column: 2;
}
.input-type-05 > div:nth-child(2){
    grid-row: 2;
    grid-column: 3;
}
.input-type-06{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    position: relative;
    width: 100%;
    flex: 1;
}
.input-type-08{
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 8px;
    position: relative;
    width: 100%;
    flex: 1;
}






/* btn-type */
.btn-type-01,
a.btn-type-01{
    font-size: inherit;
    font-weight: 500;
    line-height: normal;
    color: var(--grayscale--700);
    background: var(--grayscale--0-white);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 80px;
    height: 38px;
    border: 1px solid var(--grayscale--200);
    border-radius: 8px;
    padding: 0 12px;
    cursor: pointer;
}
.btn-type-02,
a.btn-type-02{
    font-size: inherit;
    font-weight: 500;
    line-height: normal;
    color: var(--grayscale--0-white);
    background: var(--primary--400-default);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 80px;
    height: 38px;
    border: 0;
    border-radius: 8px;
    padding: 0 12px;
    cursor: pointer;
}
.btn-type-03,
a.btn-type-03{
    font-size: inherit;
    font-weight: 500;
    line-height: normal;
    color: var(--grayscale--0-white);
    background: var(--grayscale--300);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 80px;
    height: 38px;
    border: 0;
    border-radius: 8px;
    padding: 0 12px;
    cursor: pointer;
    pointer-events: none !important;
}
.btn-type-04,
a.btn-type-04{
    font-size: inherit;
    font-weight: 500;
    line-height: normal;
    color: var(--primary--400-default);
    background: var(--grayscale--0-white);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 80px;
    height: 38px;
    border: 1px solid var(--primary--400-default);
    border-radius: 8px;
    padding: 0 12px;
    cursor: pointer;
}
.btn-type-05,
a.btn-type-05{
    font-size: inherit;
    font-weight: 500;
    line-height: normal;
    color: var(--grayscale--500);
    background: var(--grayscale--0-white);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 80px;
    height: 38px;
    border: 1px solid var(--grayscale--200);
    border-radius: 8px;
    padding: 0 12px;
    cursor: pointer;
}
.btn-type-06,
a.btn-type-06{
    font-size: inherit;
    font-weight: 500;
    line-height: normal;
    color: var(--grayscale--800-default);
    background: var(--grayscale--0-white);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 80px;
    height: 38px;
    border: 1px solid var(--grayscale--200);
    border-radius: 8px;
    padding: 0 12px;
    cursor: pointer;
}
.btn-type-07,
a.btn-type-07{
    font-size: inherit;
    font-weight: 500;
    line-height: normal;
    color: var(--grayscale--0-white);
    background: var(--grayscale--400);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 80px;
    height: 38px;
    border: 0;
    border-radius: 8px;
    padding: 0 12px;
    cursor: pointer;
}
.btn-type-08,
a.btn-type-08{
    font-size: inherit;
    font-weight: 500;
    line-height: normal;
    color: var(--alert--500-warning);
    background: var(--grayscale--0-white);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 80px;
    height: 38px;
    border: 1px solid var(--grayscale--200);
    border-radius: 8px;
    padding: 0 12px;
    cursor: pointer;
}
.btn-type-09,
a.btn-type-09{
    font-size: inherit;
    font-weight: 500;
    line-height: normal;
    color: var(--grayscale--0-white);
    background: var(--grayscale--800-default);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 80px;
    height: 38px;
    border: 0;
    border-radius: 8px;
    padding: 0 12px;
    cursor: pointer;
}
.btn-type-10,
a.btn-type-10{
    font-size: inherit;
    font-weight: 500;
    line-height: normal;
    color: var(--primary--400-default);
    background: var(--grayscale--0-white);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 80px;
    height: 38px;
    border: 1px solid var(--grayscale--200);
    border-radius: 8px;
    padding: 0 12px;
    cursor: pointer;
}
.btn-type-11,
a.btn-type-11{
    font-size: inherit;
    font-weight: 500;
    line-height: normal;
    color: var(--grayscale--800-default);
    background: var(--grayscale--0-white);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 80px;
    height: 38px;
    border: 1px solid var(--grayscale--800-default);
    border-radius: 8px;
    padding: 0 12px;
    cursor: pointer;
}
.btn-type-12,
a.btn-type-12{
    font-size: inherit;
    font-weight: 500;
    line-height: normal;
    color: var(--primary--400-default);
    background: var(--grayscale--0-white);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 80px;
    height: 38px;
    border: 1px solid var(--grayscale--200);
    border-radius: 8px;
    padding: 0 12px;
    cursor: pointer;
}
.btn-type-13,
a.btn-type-13{
    font-size: inherit;
    font-weight: 500;
    line-height: normal;
    color: var(--grayscale--500);
    background: var(--grayscale--0-white);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 80px;
    height: 38px;
    border: 1px solid var(--grayscale--200);
    border-radius: 8px;
    padding: 0 12px;
    cursor: pointer;
}
.reset-btn{
    font-size: inherit;
    font-weight: 500;
    line-height: normal;
    color: var(--grayscale--800-default);
    background: var(--grayscale--0-white);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 80px;
    height: 38px;
    border: 0;
    border-radius: 8px;
    padding: 0 12px;
    cursor: pointer;
}
.clear-btn{
    display: none;
    cursor: pointer;
}









/* tabel */
table{
    width: 100%;
}
table tr{
    border-top: 1px solid var(--grayscale--200);
}
table thead{
    position: sticky;
    top: 0;
    z-index: 3;
}
table thead tr{
    background: var(--grayscale--50);
} 
table thead tr th{
    font-weight: 700;
    text-align: left;
    color: var(--grayscale--500);
    padding: 15px 8px 15px 0;
}
table thead tr th:first-child,
table tbody tr td:first-child{
    padding-left: 24px;
}
table thead tr th:last-child,
table tbody tr td:last-child{
    padding-right: 24px;
}
table tbody{
    background: var(--grayscale--0-white);
}
table tbody tr th,
table tbody tr td{
    text-align: left;
    vertical-align: middle;
    padding: 20px 8px 20px 0;
}
.table-box-01{
    background: var(--grayscale--0-white);
    border-radius: 20px;
    border: 1px solid var(--grayscale--200);
    overflow-y: auto;
}
.table-box-01 table thead tr{
    border-top: 0;
}
.table-box-01 > .paging-wrap{
    align-items: center;
    width: 100%;
    height: 68px;
    border-top: 1px solid var(--grayscale--200);
    padding: 20px;
    box-sizing: border-box;
}
.table-box-01::-webkit-scrollbar{
    width: 16px;
    height: 16px;
}
.table-box-01::-webkit-scrollbar-track{
    background: var(--grayscale--100);
    box-shadow: 0 0 0 1px var(--grayscale--200);
    border-radius: 20px;
}
.table-box-01::-webkit-scrollbar-track:vertical{
    border-radius: 0 20px 20px 0;
}
.table-box-01::-webkit-scrollbar-thumb{
    background: var(--grayscale--400);
    background-clip: padding-box;
    border-radius: 999px;
    border: 4px solid transparent;
}
.table-box-02 table{
    border-bottom: 1px solid var(--grayscale--200);
}
.table-box-02 table tr th{
    text-align: center;
    background: var(--grayscale--100);
    padding: 12px 16px;
}
.table-box-02 table tr.final{
    font-weight: 700;
}
.table-box-02 table tr.final th{
    color: var(--grayscale--0-white);
    background: var(--grayscale--800-default)
}
.table-box-02 table tr.final span{
    color: var(--primary--400-default);
}
.table-box-02 table tr td{
    text-align: center;
    padding: 12px 16px;
}
.table-box-03 table{
    height: fit-content;
    border-top: 1px solid var(--grayscale--800-default);
    border-bottom: 1px solid var(--grayscale--800-default);
    overflow: hidden;
}
.table-box-03 table thead tr th{
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    color: var(--grayscale--800-default);
    background: var(--primary--100);
    border-bottom: 1px solid var(--grayscale--800-default);
    padding: 6px;
}
.table-box-03 table thead tr th.dull{
    color: var(--grayscale--600);
    background: #E7EBF1;
    border-color: var(--grayscale--300);
}
.table-box-03 table tbody tr th{
    text-align: center;
    background: #E7EBF1;
    padding: 6px 2px;
}
.table-box-03 table tbody tr.bright th{
    background: var(--primary--100)
}
.table-box-03 table tbody tr.bright td{
    background: var(--primary--50)
}
.table-box-03 table tbody tr.sum th{
    color: var(--grayscale--0-white);
    background: var(--primary--600)
}
.table-box-03 table tbody tr.sum td{
    font-weight: 700;
    color: var(--primary--400-default);
    background: var(--primary--50)
}
.table-box-03 table tbody tr th,
.table-box-03 table tbody tr td{
    border-bottom: 1px solid var(--grayscale--300);
}
.table-box-03 table tbody tr:last-child th,
.table-box-03 table tbody tr:last-child td{
    border: 0;
}
.popup table{
    font-size: 14px;
}





/* popup */
.popup-wrap{
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0 auto;
    z-index: 999;
}
.popup-wrap.dark{
    background: rgba(0,0,0,0.4);
}
.popup-wrap .popup{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 20px;
    background: var(--grayscale--0-white);
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 8px 30px rgba(26,51,84,0.2);
    min-width: 350px;
    min-height: 200px;
    color: var(--grayscale--800-default);
    box-sizing: border-box;
}
.popup-wrap .popup .content-group{
    flex: 1;
}
.popup-wrap .popup .content-group::-webkit-scrollbar{
    width: 16px;
    height: 16px;
}
.popup-wrap .popup .content-group::-webkit-scrollbar-track{
    background: transparent;
}
.popup-wrap .popup .content-group::-webkit-scrollbar-thumb{
    background: var(--grayscale--400);
    border: 4px solid var(--grayscale--0-white);
    border-radius: 999px;
}
.popup-wrap .popup .btn-group{
    display: inline-flex;
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
}
.popup-wrap .popup .btn-group .popup-btn{
    font-size: 16px;
    height: 48px;
    flex: 1;
    border-radius: 12px;
    padding: 0 20px;
    cursor: pointer;
}
.popup-wrap .popup .btn-group .popup-btn-x{
    position: absolute;
    right: 40px;
    top: 24px;
    width: 32px !important;
    height: 32px !important;
    object-fit: contain;
}
.popup-wrap .popup-layout-01 .content-group{
    width: 100%;
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
    margin-bottom: 20px;
}
.popup-wrap .popup-layout-01 .content-group p{
    font-size: 16px;
    font-weight: 500;
    color: var(--grayscale--700);
}
.popup-wrap .popup-layout-01 .content-group .tit{
    font-size: 20px;
    font-weight: 700;
    color: var(--grayscale--800-default);
    margin-bottom: 8px;
}
.popup-wrap .popup-layout-01 .btn-group .popup-btn{
    padding: 0;
}
.popup-wrap .popup-layout-02{
    width: 700px;
    height: 800px;
    padding: 20px 6px;
}
.popup-wrap .popup-layout-02 .content-group{
    font-size: 14px;
    line-height: 1.5;
    overflow-y: auto;
    padding: 30px 44px; 
}
.popup-wrap .popup-layout-02 .content-group .tit{
    font-size: 20px;
    font-weight: 700;
    color: var(--grayscale--800-default);
    margin-bottom: 30px;
}
.popup-wrap .popup-layout-03{
    padding: 6px;
    min-width: 560px;
}
.popup-wrap .popup-layout-03 .content-group{
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 30px;
    overflow: auto;
}
.popup-wrap .popup-layout-03 .content-group .tit{
    font-size: 20px;
    font-weight: 700;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-bottom: 24px;
    gap: 8px;
}
.popup-wrap .popup-layout-03 .content-group .tit img{
    margin-right: 12px;
}
.popup-wrap .popup-layout-03 .content-group .tit span{
    color: var(--primary--400-default);
}
.popup-wrap .popup-layout-04{
    font-size: 14px;
    max-width: 1200px;
    max-height: 800px;
    padding: 0;
    /*overflow: hidden; 팝업 짤리는거 수정*/
}
.popup-wrap .popup-layout-04 .head-group{
    font-size: 20px;
    font-weight: 700;
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 70px;
    padding: 0 40px;
    border-bottom: 1px solid var(--grayscale--200);
}
.popup-wrap .popup-layout-04 .head-group .popup-btn-x img{
    width: 28px;
    height: auto;
}
.popup-wrap .popup-layout-04 .content-group{
    padding: 24px 40px 40px;
    overflow-y: auto;
}
.popup-wrap .popup-layout-04 .btn-group{
    align-items: flex-start;
    justify-content: flex-end;
    height: 82px;
    padding: 10px 40px;
}
.popup-wrap .popup-layout-04 .btn-group .popup-btn{
    flex: none;
    width: 150px;
}
.popup-wrap .popup-layout-05{
    font-size: 13px;
    min-height: auto;
    min-width: auto;
    width: 500px;
    border-radius: 0;
    padding: 0;
}
.popup-wrap .popup-layout-05 .head-group{
    font-weight: 700;
    line-height: normal;
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 36px;
    padding: 0 16px;
    border-bottom: 1px solid var(--grayscale--200);
}
.popup-wrap .popup-layout-05 .head-group .popup-btn-x img{
    width: 16px;
    height: auto;
}
.popup-wrap .popup-layout-05 .content-group{
    padding: 12px 16px
}
.popup-wrap .toggle-list .toggle-item{
    background: var(--grayscale--100);
    border: none;
}
.popup-wrap .toggle-list .toggle-item.active{
    background: var(--grayscale--0-white);
    border: 1px solid var(--grayscale--800-default);
}
.popup-wrap .input-box .label{
    line-height: 38px;
    color: var(--grayscale--800-default);
    width: 140px;
}
.sheet-wrap{
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 40%);
    opacity: 0;
    transition: .6s;
    z-index: 1000;
    pointer-events: none;
}
.sheet-wrap.open{
    opacity: 1;
    pointer-events: all;
}
.sheet-wrap .sheet{
    position: absolute;
    width: 540px;
    right: -100%; /* 초기 위치 (오른쪽에서 숨겨짐) */
    background: #fff;
    border-left: 1px solid var(--grayscale--200);
    height: 100%;
    padding: 40px;
    box-sizing: border-box;
    transition: .6s;
    box-shadow: 0 0 20px rgba(0,0,0,0.3);
    overflow-y: auto;
}
.sheet-wrap .sheet .sheet-tit{
    font-size: 24px;
    font-weight: 700;
}
.sheet-wrap .close-btn{
    position: absolute;
    top: 40px;
    right: 40px;
    cursor: pointer;
}
.sheet-wrap.open .sheet{
    right: 0;
}
.sheet-wrap .sheet::-webkit-scrollbar{
    width: 8px;
    height: 8px;
}
.sheet-wrap .sheet::-webkit-scrollbar-track{
    background: var(--grayscale--200);
    border-radius: 999px;
    margin: 8px 0;
}
.sheet-wrap .sheet::-webkit-scrollbar-thumb{
    background: var(--grayscale--400);
    border-radius: 999px;
}





/* 계산기 */
.popup-calculator .popup{
    font-size: 16px;
    width: 1200px;
    height: 840px;
    max-height: none;
}
.popup-calculator .popup .content-group{
    position: relative;
}
.popup-calculator .content-group .tab-container{
    position: absolute;
    top: 24px;
    left: 40px;
    width: 542px;
    border-bottom: 1px solid var(--grayscale--200);
}
.popup-calculator .content-group .tab-container .tab-group{
    display: flex;
    align-items: center;
    gap: 24px;
    height: 68px;
    padding: 0 30px;
}
.popup-calculator .content-group .tab-container .tab-group li{
    line-height: 68px;
    height: 100%;
    color: var(--grayscale--500);
    cursor: pointer;
}
.popup-calculator .content-group .tab-container .tab-group li.active{
    font-weight: 700;
    color: var(--grayscale--800-default);
    box-shadow: inset 0 -2px 0 0 var(--grayscale--800-default);
}
.popup-calculator .content-group .panel{
    display: none;
}
.popup-calculator .content-group .panel.active{
    display: flex;
    align-items: flex-start;
    gap: 20px;
}
.popup-calculator .content-group .panel .input-wrap{
    flex: 1;
    background: var(--grayscale--100);
    border-radius: 20px;
    padding: 32px;
    padding-top: 100px;
}
.popup-calculator .content-group .panel .input-group{
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 400px;
    margin: 0 auto 30px;
}
.popup-calculator .content-group .panel .input-box .label{
    line-height: 38px;
    color: var(--grayscale--500);
    width: 80px;
}
.popup-calculator .content-group .panel .toggle-list .toggle-item{
    background: var(--grayscale--0-white);
    border: 1px solid var(--grayscale--200);
}
.popup-calculator .content-group .panel .toggle-list .toggle-item.active{
    border: 1px solid var(--grayscale--800-default);
} 
.popup-calculator .content-group .panel .select-single .option-wrap{
    max-height: 180px;
    overflow-y:scroll;
}
.popup-calculator .content-group .panel .select-detail-model .option-wrap{
    max-height: 426px;
}
.popup-calculator .content-group .panel .input-wrap .btn-group{
    font-size: 14px;
    display: flex;
    height: auto;
    max-width: 400px;
    margin: 0 auto;
    padding: 0;
}
.popup-calculator .content-group .panel .input-wrap .btn-group .reset-btn{
    background: none;
}
.popup-calculator .content-group .panel .output-wrap{
    flex: 1;
    position: sticky;
    top: 1px;
    background: var(--primary--50);
    display: flex;
    flex-direction: column;
    gap: 32px;
    box-shadow: inset 0 0 0 1px var(--primary--400-default);
    border-radius: 20px;
    padding: 32px;
}
.popup-calculator .content-group .panel .output-wrap li{
    line-height: normal;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.popup-calculator .content-group .panel .output-wrap li .tit{
    font-weight: 700;
}
.popup-calculator .content-group .panel .output-wrap li .txt{
    display: flex;
    align-items: center;
    gap: 8px;
}
.popup-calculator .content-group .panel .output-wrap li .txt b{
    font-size: 18px;
    color: var(--primary--400-default);
}
.popup-calculator .content-group .panel .output-wrap li p{
    font-size: 12px;
    width: 100%;
    color: var(--grayscale--400);
    padding-top: 4px;
}
.popup-calculator .content-group .panel-calculator-03 .output-wrap li{
    justify-content: center;
}





/* toast */
.toast{
    position: fixed;
    top: 100px;
    left: 50%;
    transform: translate(-50%, 0);
    width: 400px;
    height: 72px;
    background: rgba(12,17,29,80%);
    color: var(--grayscale--100);
    border-radius: 16px;
    display: none;
    z-index: 9999;
    padding: 0 30px;
    box-sizing: border-box;
}
.toast .inner{
    font-size: 15px;
    font-weight: 500;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 16px;
}




/* pagination */
.paging-wrap{
    display: flex;
    justify-content: center;
    margin: 0 auto;
}
.paging-wrap > div{
    font-weight: 500;
    color: var(--grayscale--400);
    line-height: normal;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    cursor: pointer;
}
.paging-wrap .paging-btn.active{
    color: var(--grayscale--0-white);
    background: var(--grayscale--800-default);
}
.paging-wrap .first-btn,
.paging-wrap .last-btn{
    margin: 0 12px;
}
.paging-wrap .first-btn{
    order: -1;
}
.paging-wrap .paging-btn{
    order: 1;
}
.paging-wrap .last-btn{
    order: 2;
}
.paging-btn.hidden{
    display: none;
}
.paging-btn.dots{
    cursor: default;
    user-select: none;
}






/* loader */
.loader01{
    width: 22px;
    height: 22px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 2px;
    overflow: hidden;
}
.loader01 img{
    width: 100%;
    display: block;
    transform: translateX(0);
    animation: loader01 2s infinite;
    opacity: 1;
}
.loader01 img:nth-child(1){
    animation-delay: 0s;
}
.loader01 img:nth-child(2){
    animation-delay: 0.1s;
}
.loader01 img:nth-child(3){
    animation-delay: 0.2s;
}
#loading {
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    position: fixed;
    display: block;
    background: #ededed;
    opacity: 0.7;
    z-index: 9999;
    text-align: center;
}
#loading > #loading_bar {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 100;
    transform : translate(-50%, -50%);
}