/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {margin:0;padding:0;border:0;line-height:150%;letter-spacing:400; font-family: 'Malgun Gothic' sans-serif; } /* delete vertical-align,font:inherit; */
body {transition: .3s;}
body,html {width:100%; height:100%; font-size:15px; color:#fff; line-height:150%; word-break:break-all; -webkit-text-size-adjust: 100%; -moz-text-size-adjust: 100%; -ms-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;}
* {font-family: 'Malgun Gothic' sans-serif; font-weight:400; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; letter-spacing: -.7pt;}
ol,ul,li {list-style:none;}
blockquote, q {quotes:none;}
blockquote:before,blockquote:after,q:before,q:after {content:'';content:none;}
table caption {overflow:hidden; font-size:0; line-height:0; font-size:15px;}
dt{display:block;}
hr{display:none;}
a{cursor:pointer;text-decoration:none;color:#222;}
a:hover, a:active, a:visited, a:link{text-decoration:none;}
address{font-style:normal;}
input,select,img{vertical-align:middle;}
.hide {display:none;}
h1, h2, h3, h4, h5 {font-weight: 400; font-family: 'S-Core';}

/*--------------------------------------------------------------
# Sidebar
--------------------------------------------------------------*/
.sidebar {height: 100vh; overflow-y: auto; transition: left 0.5s ease, opacity 0.5s ease; background-color: var(--bs-primary);}

.dim-overlay {display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 900;}

#firstSidebar {width:60px; padding:0;}
#firstSidebar .menu-toggle {background: none; border:0; height: 60px; opacity: .5;}
#firstSidebar .menu-toggle.active {position: relative; background-color: #6475E2; color: #fff; opacity: 1; border-left: 5px solid #D3D9FF;}

#secondSidebar{display: block; position: relative; padding:0; left: 0; transition: max-width 0.5s ease, opacity 0.5s ease;  max-width: 240px; opacity: 1; background-color: #242448; border-right: 1px solid #383C66; padding-bottom: 180px;}
#secondSidebar.hide {max-width: 0; opacity: 0; overflow: hidden; }
#hamburgerMenu {position: static; margin-bottom: 15px; display: block;}

.depth-menu {display: none; min-width: 200px; z-index:8; height: var(100vh - 100px);}
.menu-item.active + .depth-menu {display: block;}
.depth-menu h2 {background: #2A2B52; font-size: 18px;}
.depth-menu button, .depth-menu > .btn {margin:10px 30px; width:calc(100% - 60px); text-align: left;  font-family: 'S-Core'; font-size:16px; font-weight:500; position: relative;}

.depth-menu .more-depth::after {content: '';  background: url(../../images/portal/ico-depthmenu.png) center center no-repeat; width:15px; height:8px; position: absolute; right: 0; top:10px; z-index: 999; transition: transform 0.3s;}
/* Collapse가 열릴 때 화살표를 회전시킴 */
.depth-menu .more-depth[aria-expanded="true"]::after {transform: rotate(180deg);}

.menu-2depth {background-color: #383C66; border-radius: 10px;  width:calc(100% - 60px); margin:0 auto; padding:20px;}
.menu-2depth a {color:#A3A3D2; display: block;}
.menu-2depth a:hover, .menu-2depth a.active {color:#fff;}

.callCenter {position: fixed; bottom:0; text-align: center; font-family: 'S-Core';  font-size: 14px; border-top:1px dashed #444A81; max-width: 233px; padding:20px; z-index: 99; background-color: #242448;}
.callCenter > span { min-width: 200px; display: block; background: var(--bs-purple); padding:10px 5px; margin:0 0 10px 0;}
.callCenter > p strong {font-size:22px; display: block; margin-top:10px; background: #242448; z-index:99;}

@media (max-width: 991px) {
    .sidebar {display: none;}
    .sidebar.show {display: block; position: fixed; top: 0; left: 0; width: 240px; z-index: 1000; background-color: #343a40;}
    #hamburgerMenu {position: fixed; top: -20px; right: 10px; z-index: 10; display: block; height:84px;}
    #firstSidebar {display: block; position: fixed; top: 0; left: -60px; width: 60px; z-index: 1000; background-color: var(--bs-primary); transition: left 0.5s ease;}
    #secondSidebar {display: block; position: fixed; top: 0; left: -240px; width: 240px; z-index: 1000; background-color: #242448; transition: left 0.5s ease; }
    #firstSidebar.show{left:0;}
    #secondSidebar.show {left:60px;}
    .dim-overlay.show {display: block;}

    .callCenter {display: relative;}

}



/*--------------------------------------------------------------
# 최상단 타이틀 영역
--------------------------------------------------------------*/
.header-title {font-family: 'S-Core';}
.header-title .page-title {color:var(--bs-emphasis-color); font-family: 'S-Core'; font-size: 24px;}
.header-profile .avatar {background-color: #D6DBEA; width:40px; height:40px; border-radius: 8px; overflow: hidden;}
.header-title span {color:var(--bs-emphasis-color); font-weight: 500; padding-left:10px;}
.header-title .btn-toolbar .fa-clock {color:#3F3F71;}
.header-title .btn-toolbar .btn {margin:0 10px; color: #fff; border:2px solid #3F3F71; background-color: #212144; border-radius:10px !important; font-family: 'S-Core'; height:44px}
.header-title .btn-toolbar .btn.btn-time {margin:0 35px 0 10px}

.header-subTitle h2 {font-weight: bold; font-size: 24px; color:#2d2d2d; font-family: 'S-Core';}
.header-subTitle ul li {display: inline-block; color:#636782; padding:0 10px;}
.header-subTitle ul li::after {content: ''; width:5px; height: 10px; background: url('../../images/portal/breadcrumb_arrow.png') center center; position: absolute; margin-top: 7px; margin-left: 10px;}
.header-subTitle ul li:last-child:after {display: none;}

.num-tit {font-size:18px; font-weight: bold; line-height: 40px;}
.num-tit .num {width:40px; height:40px; background: #303D91; color:var(--bs-emphasis-color); margin:0 15px; display: inline-block; text-align: center; line-height: 34px; border-radius: 50%;}

@media (max-width: 991px) {
    .btn-toolbar {margin-right: 5px; position: absolute; right: 0px;}
    .header-profile {display: none;}
    .header-title {position: fixed; width:calc(100% - 50px); z-index:99; }
    .header-title::before {height:84px; width:100%; content: ''; position: fixed; background: var(--bs-body-bg);}
    .page-title {z-index:100;}
    .header-title .btn-toolbar .btn {font-size:12px; padding:8px; height: auto;}
    .header-title .btn-toolbar .btn.btn-time {margin:0 10px 0 10px}
}

/*--------------------------------------------------------------
# 공통
--------------------------------------------------------------*/
.scrollBar::-webkit-scrollbar {width: 6px;}
.scrollBar::-webkit-scrollbar-thumb {height: 30%; background: #3F3F71; border-radius: 10px;}
.scrollBar::-webkit-scrollbar-track {background:none;}

.width-scrollBar::-webkit-scrollbar {height: 6px;}
.width-scrollBar::-webkit-scrollbar-thumb {background: #3F3F71; border-radius: 10px;}
.width-scrollBar::-webkit-scrollbar-track {background:none;}



.checkbox input[type="checkbox"]{display: none;}
.checkbox input[type="checkbox"]:checked + label::after{display: block;}
.checkbox input[type="checkbox"]:checked + label::before{background:  var(--bs-purple); animation: tick 150ms ease-in;}
.checkbox label{cursor: pointer; display: inline-block; position: relative; padding-left: 30px; line-height: 24px; }
.checkbox label::before, label::after{content: ''; display: inline-block;  position: absolute; }
.checkbox label::before{width: 24px;  height: 24px; background: #fff; border:1px solid #E2E8F0; left: 0px; top: 3px; z-index: 2; border-radius: 5px; }
.checkbox label::after{width: 10px; height: 12px;  border-right: 2px solid #fff; border-bottom: 2px solid #fff; left: 7px; top: 6px; z-index: 3; transform: rotate(45deg); display: none; }


.radio input[type="radio"]{display: none;}
.radio input[type="radio"]:checked + label::after{display: block;}
.radio input[type="radio"]:checked + label::before{background: var(--bs-purple); animation: tick 150ms ease-in;}
.radio label{cursor: pointer; display: inline-block; position: relative; padding-left: 30px; line-height: 30px; color:var(--bs-secondary-color);}
.radio label::before, label::after{content: ''; display: inline-block;  position: absolute; }
.radio label::before{width: 24px;  height: 24px; background: #fff; border:1px solid #E2E8F0; left: 0px; top: 3px; z-index: 2; border-radius: 24px; }
.radio label::after{width: 10px; height: 10px; border-radius: 12px;  background:#fff; left: 7px; top: 10px; z-index: 3; display: none; }

@keyframes tick {
    0% {
        transform: scale(0);
    }
    90% {
        transform: scale(1.3);
    }
    100% {
        transform: scale(1);
    }
}




/*--------------------------------------------------------------
# 로그인
--------------------------------------------------------------*/
/* 로그인 */
.wrapper-login {width:100%; min-width:1400px; background: url('../../images/portal/login_bg.jpg') center top no-repeat; background-size: cover; height: 100vh;}

.login-form {margin:0 auto; width:600px; padding:60px 45px; background:#fff; border:1px solid #E0E6F1; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);}
.login-form h3 {padding-bottom:30px; text-align: center; font-size:40px; font-weight: 600; color: #000000}
.login-form label {color:#2d2d2d; font-weight: bold;}
.login-form .forgot {text-align: center; padding:20px 0 40px 0}
.login-form .forgot a {padding:0 20px;}
.login-form .forgot a:first-child::after {content: ''; position: absolute; background: #ccc; width:1px; height:13px; margin-left:20px; margin-top:5px;}

.sns-login {border-top:1px solid #E0E6F1; padding-top:40px;}
.sns-login a {background:#F5F7FB;}
.sns-login a:hover {border:1px solid #e0e6f1}
.sns-login a span { padding:5px; line-height: 24px; padding-left:35px;  display: inline-block}
.sns-login a span.login-google {background: url('../../images/portal/icon_google.png') left 5px no-repeat; background-size:initial;}
.sns-login a span.login-kakao {background: url('../../images/portal/icon_kakao.png') left 5px no-repeat; background-size:initial;}
.sns-login a span.login-naver {background: url('../../images/portal/icon_naver.png') left 7px no-repeat; background-size:initial;}



/*--------------------------------------------------------------
# 대시보드
--------------------------------------------------------------*/
.contents {width:calc(100% - 300px); height: 100vh; overflow-y: auto; margin: 0 auto; padding:0 20px 40px 20px;}
.contents h3 {font-weight: 600; font-size:20px; color:var(--bs-emphasis-color);}
.card-header {border-bottom:1px solid rgba(218, 218, 240, 0.3); }
.card-header .card-tit h4 {font-weight: 700; font-size: 18px; color:var(--bs-emphasis-color);}

.card-body {padding:16px 0;}

.btn-w100 {width:100px;}
.btn-w140 {width:140px;}
.btn-w150 {width:150px; height:50px; font-weight: 500;}
.h-120 {height: 120px;}
.w-30 {width:30px;}


.wide-search { position: relative; display: flex; flex-wrap: wrap; align-items: stretch; width: 100%;}
.wide-search > select {width:300px; border-radius:0.5em 0 0 0.5em ;}
.wide-search > input {width:calc(100% - 300px); border-radius:0 0.5em 0.5em 0;}
.wide-search > button {width:110px; background-color: #424660; color:#fff; border:0;}
.wide-search > select, .wide-search > input, .wide-search > button {  padding:10px 15px; }


@media (max-width: 991px) {
    .contents {width:calc(100% - 5px); padding:0 10px 30px 10px; overflow-x: hidden;}
    .contents > .row { margin-top:100px;}

    .wide-search {display: block;}
    .wide-search > select, .wide-search > input {width:100%; border-radius: .5em; margin-bottom:3px;}
}

/*--------------------------------------------------------------
# Form 수정
--------------------------------------------------------------*/
.form-group label {padding-bottom:5px;}
.btn-purple {background: var(--bs-purple); color:#fff;}
.btn-outline-purple {border:1px solid var(--bs-purple); color:var(--bs-purple)}
.btn-outline-purple:hover  {background-color: #7A0061; color:#fff;}
.btn-purple:hover {background-color: #7A0061; color:#fff;}
.btn-submit { box-shadow: 0 5px 10px rgba(164,1,130,.5);}
.btn-excel {background-color: #168060; color:#fff; }
.btn-excel:hover {background-color: rgb(10, 102, 75); color:#fff; box-shadow:0 5px 10px rgba(10, 102, 75, .5);}

.sapceSwiper .accordion-button {padding:10px 10px;}
.sapceSwiper img {width: 100%; height: auto; border-radius: 10px;}
.sapceSwiper .swiper-button-next, .sapceSwiper .swiper-button-prev {color:#222 !important; font-size:16px;}

.scrollable-list {display: flex; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; /* 모바일에서 부드러운 스크롤 */}
.scrollable-list li {flex: 0 0 auto; /* 요소가 줄바꿈되지 않고 가로로 정렬되도록 */ list-style: none; margin-right: 20px; border-radius: 5px; text-align: center; font-size: 16px;}
.scrollable-list li a {color:var(--bs-emphasis-color); font-family: 'S-Core'; font-size: 20px; padding:10px 0; display: inline-block;}
.scrollable-list li a.on {color: var(--bs-purple); font-weight: 600; border-bottom:2px solid var(--bs-purple);}

.device-setting h6 {font-size: 18px; margin-bottom:10px}
.dragDiv {border:1px solid #e5e5e5; border-radius: 4px; box-shadow: 0 3px 0 rgba(0,0,0,0.05); padding:15px; cursor: pointer; margin-bottom:10px;}
.dragDiv i {margin-right:10px;}
.dragDiv:hover {border-color: #303D91;}

.serviceView-top {border-bottom:1px solid #ddd; margin-bottom:20px;}
.btn-edit {position: absolute; z-index:999; right:50px;}

.accordion-item:first-of-type > .accordion-header .accordion-button {border-radius: 0;}
.edit-accordion .accordion-button {background: #F5F7FB; color:#2D2D2D; padding:20px 15px;}
.edit-accordion .accordion-button:not(.collapsed) {background: #424660; color:#fff;}
.edit-accordion .accordion-button:not(.collapsed) a {color:#fff;}
.edit-accordion .accordion-button:not(.collapsed)::after {background: url('../../images/portal/acc_arrow_w.png') 5px 5px no-repeat;}
.edit-accordion .accordion-item {margin-bottom:10px; border:0;}
.edit-accordion .accordion-body {border-left:1px solid #e5e5e5; border-right:1px solid #e5e5e5; box-shadow: 0 3px 0 rgba(0,0,0,0.05);}

/* Modal */
.modal-header {border-bottom:0;}
.modal-footer {border-top:0;}
.modal-tit { width:100%; display: flex; align-items: center;}
.modal-tit h4 {float:left; width:100%; font-weight: bold;}
.modal-tit .input-group {float:right; right:0;}

/* 날씨 */
.weather-info .weather-img {text-align: center;}
.weather-info .weather-img img { max-width: 135px; margin-bottom:10px;}
.weather-info .temperature {font-size: 60px; font-weight: bold;}
.weather-info .region {text-align: right;}
.weather-info .region h6 {font-size: 18px; font-weight: bold;}
.weather-info .card {width: 270px;}
.weather-info .card li {border-bottom:1px solid #E0E6F1;  padding:15px; display: flex; justify-content: space-around;}
.weather-info .card li:last-child {border:0;}
.weather-info .card li img {width:42px;}


.result-indicators {width:100%; display: flex; position: relative; justify-content: space-between; overflow-x: auto;}
.result-indicators ul {overflow-x: scroll; display: flex; justify-content: space-between; align-items: stretch;}

.result-indicators li {padding:30px 50px 30px 25px; border-right:1px solid #e5e5e5; flex-shrink: 0; margin: 0; width: 400px;}
.result-indicators li h6 {font-size:18px; font-weight: bold; margin-bottom:20px;}
.result-indicators li p {font-size:18px; margin-bottom:5px;}
.result-indicators li p span {font-size:16px; padding:10px; border-radius: 30px; background: #EBF0F9; color:#4F5664; margin-right:10px;}
.result-indicators li:first-child p {color:#A40182;}
.result-indicators li:first-child p span {background: rgba(164,1,130,0.2); color:#A40182;}

.setting-check {max-height:530px; overflow-y: scroll;}
.setting-check h5 {padding:15px; font-size:18px; font-weight: bold; border-bottom: 1px solid #E0E6F1;}

.check-component-blue {display: block; border-bottom: 1px solid #E0E6F1;font-size:14px;}
.check-component-blue .check-input {display: none;}
.check-component-blue .check-label {display: block; padding: 15px 0 15px 60px; position: relative; color: #1d1d1d; cursor: pointer; user-select: none;}
.check-component-blue .check-label:before {content: ""; position: absolute; left: 20px; width: 24px; height: 24px; border-radius: 50%; background: #E9EDF3; }
.check-component-blue .check-label:after {content: ""; position: absolute; top: 15px; left: 20px; width: 24px; height: 24px; }
.check-component-blue .check-label {background: #F5F7FB;}
.check-component-blue .check-input:not(:checked) + .check-label {background: #fff;}
.check-component-blue .check-input:not(:checked) + .check-label:hover {background: #F5F7FB;}
.check-component-blue .check-input:checked + .check-label {background: #F5F7FB;}
.check-component-blue .check-input:checked + .check-label:after {width:24px; height:24px;  left: 20px; background: url('../../images/portal/icon-check.png'); z-index: 3;}

.graph-box {max-height:530px; overflow: hidden; display: flex;}
.graph-box > div {width:50%; border-right:1px solid #e5e5e5;}
.graph-box > div .graph {height:260px; background: #f9f9f9;}
.graph-box h5 {padding:15px; font-size:18px; font-weight: bold;}
.graph-box .graph-table {height: calc(100% - 260px); ; overflow-y:scroll;}

.stat_graph h5 {padding:15px 0; font-size:18px; font-weight: bold;}
.stat_graph > div {border-bottom:1px solid #e5e5e5;}



/*--------------------------------------------------------------
# 게시판
--------------------------------------------------------------*/
.total {color:var(--bs-emphasis-color); border:var(--bs-border-width) solid var(--bs-border-color); padding:0 10px; line-height: 2rem;}
.total b {color:#A40182}

.table {margin-bottom:0;}
.table thead tr th, .table tbody tr td {word-break: keep-all; padding: 15px;}
.table-basic thead tr th {color:var(--bs-emphasis-color); border-bottom:0; font-weight: 700; font-family: 'S-Core'; border-bottom:var(--bs-border-width) solid var(--bs-border-color); white-space: nowrap;}
.table-basic tbody tr td {border-bottom:var(--bs-border-width) solid var(--bs-border-color); padding:10px 0; vertical-align: middle; table-layout: auto; color:var(--bs-secondary-color)}
.table-basic tbody tr td a {display: block;}
.table-basic tbody tr td a:hover {font-weight: bold;}
.table-basic tbody tr td span.notice {color:#FF6B6B; border:1px solid #FF4857; padding:2px 10px; border-radius: 30px; background: #fff;}

.table-accordion th, .table-accordion td {text-align: center;}
.table-accordion .radio {margin-top:-30px}
.table-accordion .btn {width:30px; height:30px; display: inline-block; text-align: center;  padding:0; border:1px solid #ddd; line-height: 30px; }
.table-accordion .btn i {transform: rotate(180deg);}
.table-accordion .btn.collapsed i  {transform: rotate(0deg);}

.eduCon {text-align: left;}

/*페이지*/
.pagination .page-link {border:0; background: none; color: var(--bs-emphasis-color);}
.pagination .page-link.active {background: var(--bs-primary); border-radius: 8px; text-align: center; color:#fff;}


@media screen and (max-width:991px) {
    .pagination .page-link {font-size:12px; padding:6px;}

}





/*--------------------------------------------------------------
# 지도 페이지
--------------------------------------------------------------*/

.mapIn {position: relative; background: #ddd; height: calc(100vh - 240px);}

.map-cate {background-color: #fff;}
.map-cate .category {width:80px; background-color: #fff;}

.checkbox-button {display: flex; flex-direction: column; align-items: center; background-color: #fff; cursor: pointer; transition: background-color 0.3s;}
.checkbox-button:hover {cursor: pointer;}
.checkbox-button input[type="checkbox"] { display: none; }
.checkbox-button label { display: flex; flex-direction: column; align-items: center; width: 100%; height: 100%;}
.checkbox-button .icon {width: 40px; height: 40px; background-size: contain; transition: background 0.3s; margin-top:5px}
.checkbox-button span {color: #999; margin-top: 5px; font-size:11px; letter-spacing: -1pt; margin-bottom:10px; transition: color 0.3s;}
.checkbox-button input[type="checkbox"]#checkbox-all + label .icon {background: url('../../images/portal/icon-facility01.png')no-repeat center;}
.checkbox-button input[type="checkbox"]#checkbox0 + label .icon {background: url('../../images/portal/icon-facility02.png') no-repeat center;}
.checkbox-button input[type="checkbox"]#checkbox1 + label .icon {background: url('../../images/portal/icon-facility03.png') no-repeat center;}
.checkbox-button input[type="checkbox"]#checkbox2 + label .icon {background: url('../../images/portal/icon-facility04.png') no-repeat center;}
.checkbox-button input[type="checkbox"]#checkbox3 + label .icon {background: url('../../images/portal/icon-facility05.png') no-repeat center;}
.checkbox-button input[type="checkbox"]#checkbox4 + label .icon {background: url('../../images/portal/icon-facility06.png') no-repeat center;}
.checkbox-button input[type="checkbox"]:checked + label {background-color: #6475E2;}
.checkbox-button input[type="checkbox"]:checked#checkbox-all + label .icon {background: url('../../images/portal/icon-facility01-on.png') no-repeat center;}
.checkbox-button input[type="checkbox"]:checked#checkbox0 + label .icon {background: url('../../images/portal/icon-facility02-on.png') no-repeat center;}
.checkbox-button input[type="checkbox"]:checked#checkbox1 + label .icon {background: url('../../images/portal/icon-facility03-on.png') no-repeat center;}
.checkbox-button input[type="checkbox"]:checked#checkbox2 + label .icon {background: url('../../images/portal/icon-facility04-on.png') no-repeat center;}
.checkbox-button input[type="checkbox"]:checked#checkbox3 + label .icon {background: url('../../images/portal/icon-facility05-on.png') no-repeat center;}
.checkbox-button input[type="checkbox"]:checked#checkbox4 + label .icon {background: url('../../images/portal/icon-facility06-on.png') no-repeat center;}
.checkbox-button input[type="checkbox"]:checked + label span {color: #fff;}
.checkbox-button input[type="checkbox"]:checked + label {background-color: #6475E2;}
.checkbox-button input[type="checkbox"]:checked + label {background-color: #6475E2;}
.checkbox-button input[type="checkbox"]:checked + label {background-color: #6475E2;}

.map-list {background: #F8F8F8; border-left:1px solid #ddd; border-right: 1px solid #ddd; width:290px;}
.map-list .list {overflow-y: scroll; height: calc(100vh - 370px);}
.map-list .list li {position: relative; margin:5px;}
.map-list .list li a {display: flex; align-items: center; padding:20px; background: #fff; border-radius: 10px; border:2px solid transparent;}
.map-list .list li a:hover {border:2px solid var(--bs-purple); box-shadow: rgba(164,1,130,0.1);}
.map-list .list li a img {margin-right:10px;}
.map-list .list li a h6 {font-size:16px; font-weight: bold; letter-spacing: -1pt;}
.map-list .list li a span {color:#666; font-size:14px;}
.map-list .list li a .pin {position:absolute; right:20px; top:15px;  width:30px; height:30px; background: rgba(68, 91, 242, 0.1); border:1px solid #c7cdfa; border-radius: 50px; text-align: center; padding-top:3px}

.map-list .search {padding:15px; border-bottom:1px solid #ddd; background: #fff;;}
.map-list .search .search-form {background-color: #E8ECF4; border:0; align-items: center; padding:10px; border-radius: 5px;}
.map-list .search .search-form input {background: none; border:0; width: 100%; color: black}
.map-list .search .search-form input:focus {color:#444;}
.map-list .search .search-form i {color: var(--bs-secondary-color);}

.robot-info {background-color: #fff; border-bottom:1px solid #ddd;}
.robot-info h6 {color: var(--bs-black); font-weight: bold; letter-spacing: -1pt; padding:10px 0 0 10px}

.robot-checkbox-list {display: flex; overflow-x: auto; padding:10px; }
.robot-checkbox-button { display: flex; align-items: center; margin-right: 3px; color: #303D91; background: #fff; cursor: pointer; transition: background-color 0.3s, color 0.3s; white-space: nowrap; }
.robot-checkbox-butto:hover {cursor: pointer;}
.robot-checkbox-button input[type="checkbox"] { display: none; }
.robot-checkbox-button input[type="checkbox"]:checked + label { background-color: #303D91; color: #fff;}
.robot-checkbox-button label { display: flex; align-items: center; width: 100%; height: 100%; transition: background-color 0.3s, color 0.3s; background-color: inherit; border-radius: inherit; padding:5px; border: 1px solid #303D91; border-radius: 30px;
}
.robot-checkbox-button .robot-icon { width: 13px; height: 13px; margin-right: 5px; background: url('../../images/portal/heart-outline.png') no-repeat center; background-size: contain; transition: background 0.3s; }
.robot-checkbox-button span {transition: color 0.3s; font-size:13px; }
.robot-checkbox-button input[type="checkbox"]:checked + label .robot-icon {background: url('../../images/portal/heart-filled.png') no-repeat center; }
.robot-checkbox-button input[type="checkbox"]:checked + label span { color: #fff;}

.map-box {padding: 20px;}
.pull {position:absolute; padding: 20px; width:350px; height:185px; border-radius: 8px;}
.pull.wh {background-color: #fff;}
.pull.wh:after {content:""; position: absolute; right: 165px; top: 185px; border-left: 10px solid transparent; border-right: 10px solid transparent; border-top: 15px solid #fff;}
.pull.wh h6 {font-weight: bold; font-size:18px; padding-bottom:5px; color: var(--bs-black);}
.pull.wh dl {color:#666; font-size:14px; width: 100%; clear: both;}
.pull.wh dl dt {font-weight: 600; width:90px; color:#222; float: left; padding-left:9px;}
.pull.wh dl dt::before {position: absolute; content: ''; width: 3px; height: 3px; background: #222; margin-left:-8px; margin-top:10px;}
.pull.wh dl dd {width: calc(100% - 90px); margin-left:90px;}
.pull.wh .close {position: absolute; right:20px;}
.pull.wh .btn-purple {background-color: var(--bs-purple); color:#Fff;}

.map {display: flex; width: 100%; position: relative; overflow: hidden;}
.map-in { flex-grow: 1; background-color: #e0e0e0; height: calc(100vh - 152px); transition: margin-left 0.3s ease;}
.map-cate { width: 370px; transition: transform 0.3s ease; background-color: #f9f9f9; position: absolute; left: 0; top: 0;
    bottom: 0; z-index: 10; }
.map-cate.open { transform: translateX(0); }
.map-cate.closed { transform: translateX(-100%); }
.toggle-arrow { position: absolute; top: 50%; right: -15px; width: 30px; height: 30px; background-color: #303D91; color: #fff;
    border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transform: translateY(-50%); z-index: 20; }

@media screen and (max-width:768px) {
    .map-cate {width:310px;}
    .map-list {width:240px}
}



/*--------------------------------------------------------------
# 서비스 > 영상교육 > 일정
--------------------------------------------------------------*/
.calendar { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; background-color: var(--bs-body-bg); }
.day-cell { background-color: var(--bs-body-bg); padding: 10px; border: 1px solid rgba(218, 218, 240, 0.1); cursor: pointer;
    position: relative; color:var(--bs-emphasis-color); }
.day-cell:hover { background-color: rgba(164, 1, 130, 0.3); color:var(--bs-emphasis-color); }
.day-number { font-weight: bold; }
.event-label { display: block; font-size:14px; border-radius: 5px;padding:3px; font-weight: bold; }
.event-label.live {background: #FFD2D2; color:#E34444}
.event-label.recorded {background: #D3EEB2; color:#1E9400;}
.selected-day { background-color: var(--bs-purple) !important; }

.table-img {  width: 100px; height: auto;}
/*--------------------------------------------------------------
# 통계
--------------------------------------------------------------*/
.list-container {height: calc(100vh - 550px); overflow-y: scroll; padding:5px;}
.list-box { border: 1px solid var(--bs-border-color); padding: 15px; border-radius: 5px; margin-bottom: 10px; position: relative; background-color: var(--bs-primary-bg-subtle); }
.list-box p {color: var(--bs-secondary-color);}
.list-box p b {color: var(--bs-red);}
.delete-btn { position: absolute; top: 10px; right: 20px; cursor: pointer;}

/*--------------------------------------------------------------
# 마이페이지
--------------------------------------------------------------*/
.mypage-tab .nav-tabs {border:0; padding:10px 0;}
.mypage-tab .nav-tabs .nav-link {width:180px; height:140px; background: #fff; border:1px solid #eee; box-shadow: 0 0 10px rgba(0,0,0,0.05); border-radius: 10px; margin: 10px; color:#64748B; font-size:16px;}
.mypage-tab .nav-tabs .nav-link.active {background: #2F69CE; color:#fff;}
.mypage-tab .nav-tabs .nav-link svg {fill:#64748b; display: block; margin:0 auto; margin-bottom:15px;}
.mypage-tab .nav-tabs .nav-link.active svg {fill:#fff}

.pw-form {width:600px; margin:100px auto;}
.pw-form h4 {font-size:24px; font-weight: bold;}
.pw-form p {font-size:16px; color:#64748B}
.pw-form .btn {height:50px;}

form b {color:#FF6B6B;}
.font-gray {color:#999}

form .row .col-9 {line-height: 34px;}


.modal-header .btn-search {background-color: #424660; color:#fff; border:0;}
.modal-header .btn-search:hover {background-color: #303552;}


