@charset "UTF-8";

:root {
    --checkbox-active-color: #016cba;
    --checkbox-disabled-color: #c6c6c6;
}

@font-face {
    font-family: "Material Icons";
    font-style: normal;
    font-weight: 200;
    src: url("../font/materialIcons/material-icon-new.woff2") format("woff2");
    font-display: block;
}

/* Pretendard FontSet */
@font-face {
    font-family: "Pretendard";
    font-style: normal;
    font-weight: 100;
    src: url("../font/pretendard/Pretendard-Regular.woff") format("woff"),
    url("../font/pretendard/Pretendard-Regular.woff2") format("woff2");
}

@font-face {
    font-family: "Pretendard";
    font-style: normal;
    font-weight: 300;
    src: url("../font/pretendard/Pretendard-Medium.woff") format("woff"),
    url("../font/pretendard/Pretendard-Medium.woff2") format("woff2");
}

@font-face {
    font-family: "Pretendard";
    font-style: normal;
    font-weight: 500;
    src: url("../font/pretendard/Pretendard-SemiBold.woff") format("woff"),
    url("../font/pretendard/Pretendard-SemiBold.woff2") format("woff2");
}

@font-face {
    font-family: "Pretendard";
    font-style: normal;
    font-weight: 700;
    src: url("../font/pretendard/Pretendard-Bold.woff") format("woff"),
    url("../font/pretendard/Pretendard-Bold.woff2") format("woff2");
}

.material-icons::before,
.material-icons::after {
    font-family: "Material Icons";
    font-weight: normal;
    font-style: normal;
    font-size: 0px;
    width: 24px;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    /* Support for all WebKit browsers. */
    /* -webkit-font-smoothing: antialiased; */
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    /* -moz-osx-font-smoothing: grayscale; */
    /* Support for IE. */
    font-feature-settings: "liga";
    visibility: hidden;
}

.material-icons.font-loaded::before,
.material-icons.font-loaded::after {
    font-size: 24px;
    visibility: visible;
    width: auto;
}

*,
*:before,
*:after {
    box-sizing: border-box;
}

blockquote,
body,
button,
code,
div,
dl,
dt,
dd,
fieldset,
figure,
form,
h1,
h2,
h3,
h4,
h5,
h6,
input,
legend,
li,
ol,
p,
pre,
select,
textarea,
th,
td,
ul {
    margin: 0;
    padding: 0;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block;
}

a {
    color: inherit;
}

a:active,
a:focus,
a:hover,
a:link {
    text-decoration: none;
    cursor: pointer;
}

address,
cite,
code,
em,
i {
    font-weight: normal;
    font-style: normal;
}

body {
    height: 100%;
}

body,
button,
input,
pre,
select,
textarea,
th,
td {
    font-weight: normal;
    font-size: 100%;
    font-family: "Pretendard", sans-serif;
    line-height: 1.5;
}

button,
textarea {
    appearance: none;
}

button,
select {
    cursor: pointer;
}

button {
    border: 0;
    background: none;
    vertical-align: middle;
}

caption,
legend {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

dl,
menu,
ol,
ul,
li {
    list-style: none;
}

input,
select,
textarea {
    vertical-align: middle;
}

/* button:focus {
  outline: none;
} */

/* input::-ms-clear {
  display: none;
} */

input::placeholder {
    color: #888 !important;
    font-weight: 100;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: normal;
    font-size: 100%;
}

hr {
    display: none;
}

html {
    overflow-y: scroll;
    height: 100%;
    /* -webkit-text-size-adjust: none; */
}

fieldset {
    border: 0;
}

img {
    border: 0;
    vertical-align: middle;
}

label {
    cursor: pointer;
}

table {
    table-layout: fixed;
    border-collapse: collapse;
    border-spacing: 0;
    width: 100%;
}

textarea {
    resize: none;
}

strong {
    font-style: normal;
}

/* select::-ms-expand {
  display: none;
} */

::placeholder {
    color: #888;
}

.skip-nav__link {
    display: block;
    overflow: hidden;
    position: absolute;
    top: -10000px;
    left: 0;
    z-index: 10000;
    width: 100%;
    padding: 10px;
    background: #267fca;
    font-weight: 600;
    font-size: 1rem;
    color: #fff;
    text-align: center;
    text-decoration: none;
}

.skip-nav__link:active,
.skip-nav__link:focus {
    top: 0;
}

.hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.clearfix:after {
    content: "";
    display: block;
    clear: both;
}

.text--left {
    text-align: left !important;
}

.text--right {
    text-align: right !important;
}

.text--center {
    text-align: center !important;
}

.color--primary {
    color: #267fca;
}

.width--80px {
    min-width: 80px !important;
    max-width: 80px !important;
}

.flex-full {
    flex: 1 1 auto;
}

.pt0 {
    padding-top: 0 !important;
}

.mgt0 {
    margin-top: 0px !important;
}

.mgt10 {
    margin-top: 10px !important;
}

.mgt20 {
    margin-top: 20px !important;
}

.mgb0 {
    margin-bottom: 0px !important;
}

.mgb16 {
    margin-bottom: 16px !important;
}

html.is-scroll-blocking {
    overflow: hidden;
}

.warning-txt {
    font-size: 14px;
    margin-top: 5px;
    color: #f46565;
    font-weight: 100;
}

/* 스크린리더 전용 텍스트 (시각적으로 숨김) */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* 공통 Select 스타일 */
.select {
    min-width: 120px;
    height: 40px;
    line-height: 40px;
    padding: 0 6px;
    border-radius: 4px;
    border: 1px solid #c6c6c6;
    background-color: #ffffff;
    /* outline: none; */
    color: #000000;
    font-size: 16px;
    font-weight: 100;
}

.select-full {
    width: 100%;
}

.select-group {
    display: flex;
    gap: 10px;
}

.select-group label {
    margin-right: 5px;
    font-weight: 100;
}

/* 공통 Select 스타일 end*/

/* 공통 input 스타일 */
.input {
    min-width: 120px;
    height: 40px;
    line-height: 40px;
    padding: 0 6px;
    border-radius: 4px;
    border: 1px solid #c6c6c6;
    background-color: #ffffff;
    /* outline: none; */
    color: #000000;
    font-size: 16px;
    font-weight: 100;
}

.input-flex {
    flex: 1;
}

.input-full {
    width: 100% !important;
}

.input-group {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}

.input-group input {
    flex: 1;
}

/* 공통 input 스타일 end*/

.category-group {
    display: inline-flex;
    gap: 10px;
    flex-flow: wrap;
}

/* 공통 체크박스 스타일 */
.label__checkbox {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 100;
    margin-left: 10px;
    vertical-align: middle;
}

.label__checkbox input {
    width: 25px;
    height: 25px;
}

.label__checkbox:nth-of-type(1) {
    margin-left: 0;
}

.label__checkbox input {
    appearance: none;
    width: 16px;
    height: 16px;
    border: 1px solid #c6c6c6;
    border-radius: 4px;
    position: relative;
    transition: all 0.3s ease-in-out;
    cursor: pointer;
}

.label__checkbox input:checked {
    background-color: var(--checkbox-active-color);
}

.label__checkbox input:checked::after {
    content: "\2713"; /* 체크 마크 */
    font-size: 14px;
    color: white;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-weight: 100;
}

.label__checkbox input:disabled {
    background-color: #f0f0f0;
}

.label__checkbox:has(input:disabled) {
    color: #c6c6c6; /* 비활성화된 상태의 텍스트 색상 */
}

.label__checkbox input:checked:disabled {
    background-color: var(--checkbox-disabled-color);

}

.checkbox-btn {
    position: relative;
    display: inline-block;
    cursor: pointer;
}

.checkbox-btn input[type="checkbox"] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.checkbox-btn input[type="checkbox"]:focus + span,
.checkbox-btn input[type="checkbox"]:focus-visible + span {
    outline: 2px solid #000;
    outline-offset: 2px;
}

.checkbox-btn span {
    display: inline-block;
    padding: 5px 25px;
    border-radius: 20px;
    background-color: #efefef;
    color: #000;
    font-size: 16px;
    transition: all 0.2s ease-in-out;
    font-weight: 100;
}

.checkbox-btn input[type="checkbox"]:checked + span {
    background-color: var(--checkbox-active-color);
    color: #fff;
}

/* 공통 체크박스 스타일 end*/

/* 공통 라디오 버튼 스타일 */
.label__radio {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 100;
    margin-left: 10px;
    vertical-align: middle;
}

.label__radio:nth-of-type(1) {
    margin-left: 0;
}

.label__radio input {
    appearance: none;
    width: 16px;
    height: 16px;
    border: 1px solid #c6c6c6;
    border-radius: 50%;
    position: relative;
    transition: all 0.3s ease-in-out;
    cursor: pointer;
}

.label__radio input:checked {
    background-color: #ffffff;
    border-color: #016cba;
}

.label__radio input:checked::after {
    content: "";
    width: 9px;
    height: 9px;
    background-color: #016cba;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.label__radio:has(input:disabled) {
    color: #c6c6c6; /* 비활성화된 상태의 텍스트 색상 */
}

.label__radio input:disabled {
    background-color: #f0f0f0;
}

.label__radio input:checked:disabled {
    background-color: #ffffff;
    border-color: #c6c6c6;
}

.label__radio input:checked:disabled::after {
    content: "";
    width: 9px;
    height: 9px;
    background-color: #c6c6c6;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.radio-btn {
    position: relative;
    display: inline-block;
    cursor: pointer;
}

.radio-btn input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    margin: 0;
}


.radio-btn span {
    display: inline-block;
    padding: 5px 25px;
    border-radius: 20px;
    background-color: #efefef;
    color: #000;
    font-size: 16px;
    transition: all 0.2s ease-in-out;
    font-weight: 100;
}

.radio-btn input[type="radio"]:checked + span {
    background-color: var(--checkbox-active-color);
    color: #fff;
}

.radio-btn input[type="radio"]:focus-visible + span {
    outline: 2px solid #000;
    outline-offset: 2px;
}

/* 공통 라디오 버튼 스타일 end*/

/* datepicker style */
.ui-widget button,
.ui-widget input,
.ui-widget select,
.ui-widget textarea {
    font-family: "Pretendard", sans-serif;
}

.ui-widget-header .ui-icon {
    background-image: url(../img/lib/ui-icons_222222_256x240.png);
}

.ui-icon,
.ui-widget-content .ui-icon {
    background-image: url(../img/lib/ui-icons_222222_256x240.png);
}

.ui-datepicker {
    z-index: 10001 !important;
}

.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
    position: absolute;
    top: 4px;
}

.ui-datepicker .ui-datepicker-prev {
    left: 4px;
}

.ui-datepicker .ui-datepicker-prev:hover {
    top: 4px;
    left: 4px;
}

.ui-datepicker .ui-datepicker-next {
    right: 4px;
}

.ui-datepicker .ui-datepicker-nexthover {
    top: 4px;
    right: 4px;
}

.ui-datepicker td span,
.ui-datepicker td a {
    padding: 6px;
}

.ui-datepicker .ui-datepicker-title {
    font-size: 12px;
    color: #555;
}

.ui-datepicker .ui-datepicker-title select {
    width: 40%;
    margin: 0;
    padding: 5px;
    font-size: 14px;
}

.ui-datepicker .ui-datepicker-title .ui-datepicker-year {
    margin-right: 4px;
}

.ui-datepicker .ui-datepicker-title .ui-datepicker-month {
    margin-left: 8px;
}

.ui-datepicker-calendar tr {
    border-bottom-width: 0;
}

.ui-datepicker-calendar th {
    padding: 10px;
    background: none;
}

.label__datepicker {
    display: inline-block;
    position: relative;
    width: calc(50% - 13px);
    height: 40px;
    line-height: 40px;
}

.label__datepicker--full input {
    width: 100% !important;
}

.label__datepicker:after {
    content: "calendar_today";
    position: absolute;
    right: 4px;
    padding: 4px;
    color: #20293b;
    text-align: center;
    font-size: 24px;
    top: 5px;
}

/* datepicker style */

.input[disabled],
.select[disabled],
.textarea[disabled] {
    border: 1px solid #eee;
    background: #f7f7f7;
    color: #999;
}

.input[readonly],
.select[readonly],
.textarea[readonly] {
    border: 1px solid #eee;
    background: #f7f7f7;
    color: #999;
}

.input-text[type="text"]:disabled {
    color: #dddddd;
}

.input-text {
    width: 100%;
    padding: 0 10px;
    height: 40px;
    border-radius: 2px;
    border: 1px solid #eee;
    background: #eee;
    color: #999;
    font-size: 14px;
    text-align: right;
}

.input-address {
    width: 100%;
    padding: 0 10px;
    height: 40px;
    border-radius: 2px;
    border: 1px solid #eee;
    background: #eee;
    color: #999;
    font-size: 14px;
}

.txtarea-container {
    padding: 6px 14px;
    border: 1px solid #ddd;
    border-radius: 3px;
}

.txtarea-container textarea {
    padding: 0;
    padding-bottom: 15px;
    border: 0;
    border-radius: 0;
    width: 100%;
}

.txtarea-container .txt-count {
    text-align: right;
    color: #999;
}

.txtarea-container .txt-count span {
    font-weight: bold;
    color: #666;
}

.textarea {
    width: 100%;
    min-height: 100px;
    padding: 5px 10px;
    height: 35px;
    border-radius: 4px;
    border: solid 1px #c6c6c6;
    background: #fff;
    font-size: 14px;
    color: #666;
}

.period {
    display: inline-block;
    width: auto;
    padding: 0 8px;
    font-size: 14px;
    color: #666;
    text-align: center;
}

/* attach-file */
.attach-file__list {
    width: 100%;
    height: 100%;
}

.attach-file__item {
    display: flex;
    align-items: center;
    position: relative;
    margin-top: 5px;
    font-weight: 100;
    font-size: 16px;
    color: #666;
    line-height: 32px;
}

.attach-file__item:before {
    content: "description";
    margin: 0 6px 0 -4px;
    font-size: 24px;
    vertical-align: middle;
    color: #000;
}

.attach-file__item--size {
    margin-left: 10px;
    text-transform: uppercase;
    font-weight: 100;
    font-size: 14px;
}

.attach-file__item--none {
    font-weight: 100;
}

.attach-file__button--delete {
    width: 16px;
    height: 16px;
    margin-left: auto;
    border-radius: 50%;
    background-color: #45495b;
    line-height: 14px;
    color: #fff;
    vertical-align: middle;
    margin-top: -2px;
    margin-left: 10px;
}

.attach-file__button--delete:before {
    content: "close";
    font-size: 14px !important;
    line-height: 16px;
    color: #fff;
    vertical-align: 0;
    width: 17px;
}

.attach-file__button--add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0px 25px;
    height: 36px;
    line-height: 36px;
    font-size: 16px;
    font-weight: 100;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.3s ease-in-out;
    text-align: center;
    border: none;
    /* background: #e9eaee; */
    border: 1px solid #bbbecb;
}

.attach-file__button--add:hover {
    background-color: #f8f8f8;
}

.attach-file__box {
    padding: 14px 20px;
    border: 1px solid #e6e9ef;
    border-radius: 5px;
    background: #fff;
}

.attach-file__why {
    padding: 14px 20px;
    border: 1px solid #e6e9ef;
    background: #fff;
}

.attach-file__download {
    display: block;
    margin-top: 5px;
    font-weight: 700;
    font-size: 14px;
    color: #666;
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.attach-file__download:first-of-type {
    margin-top: 0;
}

.attach-file__download:before {
    content: "description";
    margin-right: 6px;
    font-size: 30px;
    color: #84c0d6;
    vertical-align: middle;
}

.attach-file__download--none {
    font-weight: 400;
    font-size: 14px;
    color: #666;
}

.attach-file__checked {
    display: block;
    margin-top: 5px;
    font-weight: 700;
    font-size: 14px;
    color: #666;
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.attach-file__checked:first-of-type {
    margin-top: 0;
}

.attach-file__checked:before {
    content: "radio_button_checked";
    margin-right: 6px;
    font-size: 20px;
    color: #666;
    vertical-align: middle;
}

.attach-file__checked--none {
    font-weight: 400;
    font-size: 14px;
    color: #666;
}

.attach-file__size {
    margin-left: 4px;
    font-weight: 400;
    font-size: 12px;
    text-transform: uppercase;
}

.attach-file__button--add + .attach-file__list {
    width: calc(100% - 76px);
}

.attach-file__button--add + .attach-file__list .attach-file__item--none {
    line-height: 32px;
}

.input__file {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* attach-file end*/

/* Table style */
.table-wrap .table-header {
    margin-bottom: 20px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

.table-wrap .table-header .total span {
    color: #016cba;
}

.table-wrap .table-header .btn-group {
    margin-top: 0;
}

table {
    position: relative;
    border-top: 1px solid #e6e9ef;
    border-bottom: 1px solid #e6e9ef;
}

thead tr {
    border-bottom: 1px solid #e6e9ef;
}

tbody tr {
    border-bottom: 1px solid #e6e9ef;
}

tr.ta-l th,
tr.ta-l td {
    text-align: left !important;
}

tr.ta-r th,
tr.ta-r td {
    text-align: right !important;
}

th,
td {
    color: #000000;
    background: #fff;
    padding: 15px 20px;
}

th {
    background-color: #fafafb;
    font-size: 16px;
    font-weight: 300;
}

td {
    font-size: 15px;
    font-weight: 100;
}

th:nth-of-type(1) {
    border-left-width: 0;
}

td > a {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.table-row tr:last-child {
    border-bottom-width: 0;
}

.table-row th,
.table-row td {
    text-align: left;
    word-break: keep-all;
    word-wrap: break-word;
}

.table-row th {
    padding: 15px 20px;
}

.table-row td {
    padding: 15px 20px;
}

.table-column tbody tr:nth-last-of-type(1) {
    border-bottom-width: 0;
    border-bottom: none;
}

.table-column td:nth-last-of-type(1) {
    border-right-width: 0;
}

.table-column th {
    font-weight: 300;
    text-align: left;
}

.table-column td {
    padding: 15px 20px;
}

.table-column td.tit {
    font-weight: 300;
    font-size: 16px;
    cursor: pointer;
}

.table-column td .label__checkbox:before {
    margin-right: 0;
}

.table-column .text-align--left {
    padding-right: 10px;
    padding-left: 10px;
}

.table-column a {
    display: block;
}

.table-column a:hover {
    text-decoration: underline;
}

.table-hover tbody tr {
    cursor: pointer;
}

.table-hover tbody tr:hover td {
    background-color: #fafafb;
}

.table-view td {
    padding: 3px 10px;
}

.link a {
    color: #037bff;
    text-decoration: underline;
    cursor: pointer;
}

table .btn-group {
    margin-bottom: 10px;
    margin-top: 0;
}

table.bordered th {
    border-right: 1px solid #e6e9ef !important;
    border-left: 1px solid #e6e9ef !important;
}

table.bordered td {
    border-right: 1px solid #e6e9ef !important;
    border-left: 1px solid #e6e9ef !important;
}

.table-fixed-wrap {
    max-height: 300px;
    overflow-y: auto;
    border-top: 1px solid #e6e9ef;
    border-bottom: 1px solid #e6e9ef;
}

.table-fixed-wrap.example-preview-wrap {
    overflow-x: auto;
}

.table-fixed {
    border-collapse: collapse;
    width: 100%;
    table-layout: fixed;
    border-top: none;
    border-bottom: none;
}

.table-fixed thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    box-sizing: border-box;
}

.table-fixed thead td {
    box-sizing: border-box;
}

/* Table style end*/

/* badge style */
.badge {
    display: inline-block;
    min-width: 40px;
    padding: 3px 12px;
    background: #f1f1f1;
    color: #000000;
    font-size: 12px;
    font-weight: 100;
    text-align: center;
    border-radius: 5px;
}

.badge.complete {
    background: #016cba;
    color: #fff;
}

.badge.danger {
    background: #f46565;
    color: #fff;
}

.badge.green {
    background: #79b811;
    color: #fff;
}

.badge.orange {
    background: #ffca74;
    color: #fff;
}

.badge.large {
    padding: 5px 20px;
    font-size: 14px;
}

/* badge style end*/

/* 버튼 기본 스타일 */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0px 20px;
    height: 40px;
    line-height: 40px;
    font-size: 16px;
    font-weight: 100;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.3s ease-in-out;
    text-align: center;
    border: none;
}

.btn.primary {
    background-color: #016cba;
    color: #ffffff;
}

.btn.primary:hover {
    background-color: #015a9c;
}

.btn.secondary {
    background-color: #ffb951;
    color: #ffffff;
}

.btn.secondary:hover {
    background-color: #e6a542;
}

.btn.gray {
    background-color: #f1f1f1;
    color: #000;
}

.btn.gray:hover {
    background-color: #e0e0e0;
    color: #000000;
}

.btn.red {
    background-color: #f46565;
    color: #ffffff;
}

.btn.red:hover {
    background-color: #dc5b5b;
}

.btn.green {
    background-color: #02723b;
    color: #ffffff;
}

.btn.green:hover {
    background-color: #025c31;
}

.btn.outline-primary {
    background-color: transparent;
    border: 1px solid #016cba;
    color: #016cba;
}

.btn.outline-primary:hover {
    background-color: #f2f5fa;
}

.btn.outline-secondary {
    background-color: transparent;
    border: 1px solid #ffb951;
    color: #ffb951;
}

.btn.outline-secondary:hover {
    background-color: #f3f6fd;
}

.btn.outline-gray {
    background-color: transparent;
    border: 1px solid #bbbecb;
    color: #000;
}

.btn.outline-gray:hover {
    background-color: #f8f8f8;
    color: #000000;
}

.btn.outline-red {
    background-color: transparent;
    border: 1px solid #f46565;
    color: #f46565;
}

.btn.outline-red:hover {
    background-color: #fcf3f3;
}

.btn.outline-green {
    background-color: transparent;
    border: 1px solid #02723b;
    color: #02723b;
}

.btn.outline-green:hover {
    background-color: #e0e9d2;
}

.btn.disabled {
    background: #e4e4e4;
    color: #c6c6c6;
    cursor: auto;
}

.btn.disabled:hover {
    background: #e4e4e4;
}

[class*="outline-"].disabled {
    border: 1px solid #c6c6c6;
    color: #c6c6c6;
    background: none;
}

[class*="outline-"].disabled:hover {
    border: 1px solid #c6c6c6;
    color: #c6c6c6;
    background: none;
}

.btn.small {
    height: 30px;
    line-height: 30px;
    font-size: 14px;
    padding: 0 10px;
}

.btn.small.util:before {
    content: "";
    display: inline-block;
    margin-right: 3px;
    vertical-align: middle;
    font-size: 16px;
}

.btn.large {
    height: 50px;
    line-height: 50px;
    font-size: 16px;
}

.btn.login {
    width: 154px;
    height: 45px;
    border-radius: 5px;
    background-color: #232e58;
    font-weight: 300;
    font-size: 18px;
    line-height: 45px;

    transition: background-color 0.2s ease-in-out;
}

.btn.login:hover,
.btn.login:focus {
    background-color: #232e58;
    outline: 0;
}

.btn.file-delete {
    position: absolute;
    right: 0;
    width: 16px;
    height: 16px;
    margin-top: 6px;
    border-radius: 50%;
    background-color: #232e58;
    font-weight: 300;
    font-size: 12px;
    line-height: 14px;
    text-align: center;
    color: #fff;
}

.btn.file-delete:before {
    content: "close";
    font-size: 10px;
    line-height: 16px;
    vertical-align: 0;
}

.btn.file {
    float: left;
    width: 68px;
    margin-left: 0;
    padding: 0 10px;
    border: 1px solid #ddd;
    background-color: #f6f6f6;
    font-weight: 300;
    line-height: 26px;
    color: #666;

    transition: background-color 0.2s ease-in-out;
}

.btn.file:hover,
.btn.file:focus {
    background-color: #ddd;
    outline: 0;
}

.btn.heart {
    background: url(../img/sub/icon_heart.svg) no-repeat center left 20px;
    padding-left: 45px;
    background-size: 18px 18px;
}

.btn.heart.is-active {
    background: url(../img/sub/icon_heart_active.svg) no-repeat center left 20px;
    padding-left: 45px;
    background-size: 18px 18px;
}

/* .btn.util {
    background-color: transparent;
    border: 1px solid #232E58;
    color: #232E58;
}

.btn.util:hover {
    background-color: #F2F5FA;
} */

.btn.util:before {
    content: "";
    display: inline-block;
    margin-right: 3px;
    vertical-align: middle;
    font-size: 24px;
}

.btn.util-add:before {
    content: "add";
}

.btn.util-remove:before {
    content: "remove";
}

.btn.util-search:before {
    content: "search";
}

.btn.util-link:before {
    content: "open_in_new";
}

.btn.util-up:before {
    content: "keyboard_arrow_up";
}

.btn.util-down:before {
    content: "keyboard_arrow_down";
}

.btn.util-delete:before {
    content: "close";
}

.btn.util-excel:before {
    content: "table";
}

.btn.util-grid:before {
    content: "grid_view";
}

.btn.util-add-column:before {
    content: "add_column_right";
}

.btn.util-add-row:before {
    content: "add_row_below";
}

.txt-btn.more:after {
    content: "keyboard_arrow_right";
    vertical-align: middle;
    margin-top: -3px;
}

.btn.util-camera {
    width: 20px;
    height: 20px;
    background: url("../img/sub/icon_camera.svg") no-repeat center;
}

.btn.more {
    background: url("../img/icon_arrow_right.svg") no-repeat center right;
    padding-right: 25px;
}

.btn.more:hover {
    text-decoration: underline;
}

.btn-group {
    margin-top: 20px;
    display: flex;
    justify-content: right;
    gap: 10px;
}

/* 버튼 기본 스타일  end*/

/* pagination style */
.pagination {
    display: flex;
    justify-content: center;
    margin-top: 30px;
}

.pagination__list {
    display: flex;
    flex-direction: row;
    align-items: center;
}

.pagination__item {
    display: flex;
    gap: 10px;
    align-items: center;
}

.pagination__link {
    display: block;
    font-weight: 100;
    font-size: 16px;
    text-align: center;
    color: #000;
    width: 40px;
    height: 40px;
    border-radius: 100%;
    vertical-align: middle;
    line-height: 40px;
}

.pagination .pagination__link:hover,
.pagination .pagination__link:focus {
    background-color: #f7f7f7;
}

.pagination .pagination__link.is-active {
    background: #016cba;
    color: #fff;
}

.pagination__link--first,
.pagination__link--prev,
.pagination__link--next,
.pagination__link--last {
    border: none;
}

.pagination__link--first:before {
    content: "double_arrow";
    vertical-align: middle;
    transform: rotate(180deg);
}

.pagination__link--prev:before {
    content: "chevron_left";
    vertical-align: middle;
}

.pagination__link--next:before {
    content: "chevron_right";
    vertical-align: middle;
}

.pagination__link--last:before {
    content: "double_arrow";
    vertical-align: middle;
}

.pagination .pagination__link--first:hover,
.pagination .pagination__link--prev:hover,
.pagination .pagination__link--next:hover,
.pagination .pagination__link--last:hover,
.pagination .pagination__link--first:focus,
.pagination .pagination__link--prev:focus,
.pagination .pagination__link--next:focus,
.pagination .pagination__link--last:focus {
    background: inherit;
    color: inherit;
}

.page__num {
    margin: 0 30px;
    gap: 15px;
}

/* Pagination style end */

/* tab style  */
.tab-wrap {
    width: 100%;
    max-width: 800px;
    margin: auto;
}

.tab-wrap .tab-buttons {
    display: flex;
    justify-content: center;
    margin-bottom: 20px;
}

.tab-wrap .tab-btn {
    padding: 10px 20px;
    border: none;
    background: #f0f0f0;
    cursor: pointer;
    border-radius: 25px;
    margin: 0 5px;
    font-weight: bold;
    color: #333;
}

.tab-wrap .tab-btn.active {
    background: #016cba;
    color: #fff;
}

/*todo: 수정필요*/
.tab-wrap .tab-btn .circle {
    display: inline-block;
    margin-left: 5px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid #fff;
    vertical-align: middle;
    font-size: 12px;
    line-height: 26px;
    text-align: center;
}

.tab-content {
    display: none;
}

.tab-content.active {
    display: block;
}

.tab-content .tab-info {
    margin-bottom: 20px;
    font-weight: 100;
    font-size: 16px;
    background: #f7f7f7;
    padding: 20px;
    font-weight: 300;
    border-radius: 10px;
}

.tab-content .tab-content-tit {
    font-size: 28px;
    padding: 30px 0;
    font-weight: 300;
}

.tab-sub-wrap {
    width: 100%;
    max-width: 100%;
    margin-top: 30px;
}

.tab-sub-wrap .tab-buttons {
    display: flex;
    justify-content: start;
    margin-bottom: 16px;
    border-bottom: 1px solid #016cba;
}

.tab-sub-wrap .tab-btn {
    padding: 15px 20px;
    min-width: 180px;
    background: #ffffff;
    cursor: pointer;
    border-radius: 0;
    margin: 0;
    font-weight: bold;
    color: #000;
    border: 1px solid #e6e9ef;
    border-right: none;
    border-bottom: none;
    font-size: 20px;
    font-weight: 300;
}

.tab-sub-wrap .tab-btn:first-child {
    border-radius: 10px 0 0 0;
}

.tab-sub-wrap .tab-btn:last-child {
    border-radius: 0 10px 0 0;
    border-right: 1px solid #e6e9ef;
}

.tab-depth2-wrap {
    width: 100%;
    max-width: 100%;
}

.tab-depth2-wrap .tab-depth2-buttons {
    display: flex;
    justify-content: flex-start;
    margin-bottom: 20px;
    gap: 10px;
}

.tab-depth2-wrap .tab-depth2-btn {
    padding: 10px 20px;
    border: none;
    background: #f0f0f0;
    cursor: pointer;
    font-weight: 300;
    color: #333;
    border-radius: 5px;
}

.tab-depth2-wrap .tab-depth2-btn.active {
    background: #424242;
    color: #fff;
}

.tab-depth2-content {
    display: none;
}

.tab-depth2-content.active {
    display: block;
}

/* tab style end */

/* modal style */
.modal-outer {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.6);
    display: none;
    justify-content: center;
    align-items: center;
    z-index: -1;
}

.js-modal-show .modal-outer {
    display: flex;
    z-index: 10000;
}

.modal-inner {
    background: #fff;
    width: 90%;
    max-width: 800px;
    max-height: 80vh;
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.modal-inner.w-1200 {
    max-width: 1200px;
}

.modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #ffffff;
    padding: 20px;
    border-bottom: 1px solid #edf0f7;
}

.modal-header .modal-title {
    font-weight: 300;
    font-size: 20px;
    color: #000000;
}

.modal-close {
    width: 30px;
    height: 30px;
    background: url("../img/common/icon_close_bk.svg") no-repeat center;
    background-size: 100%;
}

.modal-body {
    padding: 20px;
    overflow-y: auto;
    flex: 1 1 auto;
}

/* .modal-body::-webkit-scrollbar {
  width: 8px;
}
.modal-body::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 4px;
} */

.modal-body .cmm-header {
    margin-bottom: 10px !important;
}

.modal-body .cmm-tit {
    font-size: 18px !important;
}

.modal-body .request-table table {
    border-top: none;
}

.modal-footer {
    border-top: 1px solid #edf0f7;
    padding: 20px;
}

.modal-footer .btn-group {
    margin-top: 0;
}

.modal-step {
    margin-bottom: 20px;
}

.modal-step-list {
    display: flex;
    justify-content: left;
    gap: 20px;
}

.modal-step-list li {
    flex: 1 1 120px;
    max-width: 120px;
}

.modal-step-list li .step {
    width: 100%;
    display: block;
    background: #f7f7f7;
    border-radius: 20px;
    padding: 20px;
    box-sizing: border-box;
    padding-top: 70px;
    font-weight: 100;
    position: relative;
    text-align: center;
}

.modal-step-list li .step.choice {
    color: #fff;
    background: #016cba;
    border-radius: 10px;
    font-weight: 300;
}

.modal-step-list li .step:before {
    position: absolute;
    top: 20px;
    left: 0;
    right: 0;
    text-align: center;
}

.modal-step-list li .step.topic:before {
    font-size: 40px;
    content: "description";
}

.modal-step-list li .step.set:before {
    font-size: 40px;
    content: "developer_board";
}

.modal-step-list li .step.find:before {
    font-size: 40px;
    content: "youtube_searched_for";
}

.modal-step-list li .step.info:before {
    font-size: 40px;
    content: "info";
}

.modal-step-list li .step.checkbox:before {
    font-size: 40px;
    content: "check_box";
}

.modal-step-list li .step.check:before {
    font-size: 40px;
    content: "check_circle";
}

/* modal style end */

.wrap {
    display: table;
    width: 100%;
    height: 100%;
    table-layout: fixed;
}

/* header style */
.header {
    z-index: 9;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    background-color: #ffffff;
}

.header .header-inner {
    width: 100%;
    max-width: 1920px;
    margin-right: auto;
    margin-left: auto;
    padding: 0 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.header .header-inner .header-logo a {
    /* background: url("../img/common/logo_new.svg") no-repeat center; */
    background: url("../img/common/smway4.svg") no-repeat center;
    background-size: contain;
    width: 180px;
    height: 50px;
    display: block;
}

.header-util__list {
    display: flex;
    /* gap: 15px; */
}

.header-util__item {
    margin: 0 15px 0 0;
}

.header-util__item:last-child {
    margin-right: 0;
}

.header-util__link {
    display: flex;
    align-items: center;
    font-size: 12px;
    color: #000;
    font-weight: 100;
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

.header-util__link span {
    position: relative;
}

.header-util__link span:before {
    padding-bottom: 4px;
    font-size: 24px;
    color: #000;
}

.header-util__link .search:before {
    content: "search";
    /* font-family: "Material Icons";
  visibility: visible; */
}

.header-util__link .alarm:before {
    content: "notifications";
    /* font-family: "Material Icons";
  visibility: visible; */
}

.header-util__link .chatbot:before {
    content: "rate_review";
    /* font-family: "Material Icons";
  visibility: visible; */
}

.header-util__link .alarm.new {
    display: none;
}

.web-alarm-none {
    display: none;
}

.header-util__link .alarm.new:after {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 100%;
    background: #fe7d5e;
    position: absolute;
    top: 5px;
    right: 5px;
}

.header-util__link .login:before {
    content: "login";
    /* font-family: "Material Icons";
  visibility: visible; */
}

.header-util__link .mypage:before {
    content: "person";
    /* font-family: "Material Icons";
  visibility: visible; */
}

.header-util__link .signup:before {
    content: "how_to_reg";
    /* font-family: "Material Icons";
  visibility: visible; */
}

.header-util__link .logout:before {
    content: "logout";
    /* font-family: "Material Icons";
  visibility: visible; */
}

/* 검색 레이어 style */
.header-search-btn {
    display: none;
    position: absolute;
    right: 70px;
    width: 50px;
    height: 50px;
    margin-top: 3px;
}

.header-search-btn:before {
    content: "search";
    font-size: 35px;
    font-weight: 500 !important;
    font-family: "Material Icons";
}

.header-search-popup {
    position: absolute;
    top: 100px;
    left: 0;
    width: 100%;
    height: auto;
    background: #ffffff;
    z-index: 1000;
    display: block;
    box-shadow: rgba(0, 0, 0, 0.1) 0 6px 10px;
    border-top: 1px solid #eee;
}

.header-search {
    background: #ffffff;
    padding: 20px;
    display: flex;
    justify-content: center;
}

.header-search__field {
    position: relative;
    width: 800px;
}

.header-search__input {
    width: 100%;
    height: 60px;
    line-height: 60px;
    border-radius: 60px;
    border: 2px solid #016cba;
    padding: 10px 25px;
}

.header-search__input:focus-visible,
.header-search__input:focus {
    /* outline: none; */
}

.header-search__input::placeholder {
    color: #ccc;
    font-size: 18px;
    font-weight: 300;
}

.header-search__submit {
    position: absolute;
    width: 100px;
    height: 60px;
    background: #016cba;
    right: 0;
    border-radius: 60px;
}

.header-search__submit:before {
    content: "search";
    color: #fff;
    line-height: 60px;
    font-size: 32px;
}

.header-search__close {
    margin-left: 10px;
    cursor: pointer;
}

.header-search__close:before {
    content: "close";
    font-size: 36px;
    color: #888;
    line-height: 60px;
}

/* 검색 레이어 style */

/* nav style/ */
.nav {
    display: block;
    margin: 0 auto;
}

.nav .nav-depth1__list {
    display: flex;
}

.nav .nav-depth1__item {
    /* overflow: hidden; */
    position: relative;
}

.nav .nav-depth1__item .nav-depth1__link {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #222;
    transition: color 0.2s;
    font-size: 20px;
    font-weight: 200;
    height: 100px;
    padding: 0 20px;
}

.nav .nav-depth1__item .nav-depth1__link:hover {
    color: #000;
    font-weight: 300;
}

.nav .nav-depth1__item.is-current .nav-depth1__link {
    color: #016cba;
    font-weight: 300;
}

.nav .nav-depth2__list {
    position: absolute;
    left: 50%;
    top: 100px;
    transform: translateX(-50%);
    display: none;
    flex-direction: column;
    align-items: center;
    width: 180px;
    gap: 10px;
    padding: 15px;
    margin-top: 5px;
    border-top-left-radius: 0px;
    border-top-right-radius: 0px;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    font-size: 14px;
    background-color: #333333;
    opacity: 0;
    transition: opacity 0.2s ease-out, margin-top 0.2s ease-out;
}

.nav .nav-depth2__list .nav-depth2__link {
    display: flex;
    color: inherit;
    white-space: nowrap;
    transition: color 0.2s;
    color: #dddddd;
    font-weight: 100;
    padding: 5px;
}

.nav .nav-depth2__list .nav-depth2__link:hover {
    color: #fff;
    font-weight: 500;
}

.nav .nav-depth1__item:focus-within > .nav-depth2__list {
    display: flex;
    opacity: 1;
    margin-top: 0;
}

.nav.is-active .nav-depth1__item.is-active {
    overflow: visible;
}

.nav.is-active .nav-depth1__item.is-active .nav-depth2__list {
    display: flex;
    opacity: 1;
    margin-top: 0;
}

/* nav style end */

.button-menu-right--toggle {
    position: absolute;
    top: 40%;
    left: 300px;
    width: 18px;
    height: 90px;
    margin-top: -45px;
    background: url(../img/sprite/sp_pannel_smart.png) 0 -66px no-repeat;
}

.button-menu-right--toggle .drawer__icon-arrow {
    margin-left: 3px;
}

.all-menu {
    display: none;
    align-self: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    /*margin: 0 -10px 0 8px;*/
    /* outline: none; */
}

.all-menu.is-mobile-show {
    display: flex;
}

.all-menu__icon {
    display: block;
    position: relative;
    top: 50%;
    margin-top: -2px;
}

.all-menu__icon,
.all-menu__icon:before,
.all-menu__icon:after {
    width: 30px;
    height: 2px;
    border-radius: 5px;
    background: #000;
    transition: all 0.2s ease-in-out;
}

.all-menu__icon:before,
.all-menu__icon:after {
    content: "";
    position: absolute;
    left: 0;
}

.all-menu__icon:before {
    top: -9px;
}

.all-menu__icon:after {
    bottom: -9px;
}

.is-mobile-nav-show .all-menu__icon {
    background: transparent;
}

.is-mobile-nav-show .all-menu__icon:before,
.is-mobile-nav-show .all-menu__icon:after {
    width: 38px;
    height: 2px;
    background: #3d506f;
}

.is-mobile-nav-show .all-menu__icon:before {
    top: 0;
    transform: rotate(-45deg);
}

.is-mobile-nav-show .all-menu__icon:after {
    bottom: 0;
    transform: rotate(45deg);
}

/* header style end*/

/* footer style */
.footer {
    width: 100%;
    position: relative;
    background: #000;
}

.footer .footer-inner {
    width: 100%;
    max-width: 1920px;
    padding: 50px 60px;
    box-sizing: border-box;
    display: flex;
    justify-content: space-between;
    margin: 0 auto;
}

.footer-left .footer-address {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.footer-left .footer-address .footer-address__logo {
    display: block;
    width: 180px;
    /* height: 45px; */
    height: 31px;

    /* background-image: url("../img/common/logo_footer.svg"); */
    background-image: url("../img/common/footer_smway4.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% auto;
}

.footer-left .footer-address .footer-address-info {
    font-size: 16px;
    color: #888888;
    font-weight: 100;
}

.footer-right .footer-util {
    display: flex;
    justify-content: flex-end;
    gap: 15px;
}

.footer-right .footer-util .footer-util__list {
    display: flex;
    align-items: center;
    gap: 15px;
}

.footer-right .footer-util .footer-util__list > a {
    font-weight: 100;
    font-size: 16px;
    color: #888888;
}

.footer-right .footer-util .footer-util__list > a::after {
    content: "|";
    color: #888888;
    margin-left: 15px;
}

.footer-right .footer-util .footer-util__list > a:last-child::after {
    content: none;
}

.footer-right .footer-util .footer-dropdown-menu {
    min-width: 180px;
    position: relative;
}

.footer-right .footer-util .footer-dropdown-menu__button {
    width: 100%;
    height: 50px;
    line-height: 50px;
    text-align: left;
    padding: 0 20px;
    font-size: 16px;
    color: #ffffff;
    cursor: pointer;
    background: #333333;
    border-radius: 5px;
    position: relative;
}

.footer-right .footer-util .footer-dropdown-menu__button:after {
    content: "keyboard_arrow_down";
    position: absolute;
    right: 20px;
    line-height: 50px;
    transition: all ease 0.2s;
}

.footer-right .footer-util .footer-dropdown-menu__list {
    opacity: 0;
    position: absolute;
    bottom: 55px;
    z-index: 100;
    width: 100%;
    padding: 10px 20px;
    background: #333333;
    border-radius: 5px;
    transition: all ease 0.2s;
    visibility: hidden;
}

.footer-right .footer-util .footer-dropdown-menu__link {
    padding: 10px 0;
    display: block;
    font-size: 14px;
    color: #888;
}

.footer-right .footer-util .footer-dropdown-menu__link:hover {
    font-weight: 500;
    color: #ffffff;
}

.footer-right
.footer-util
.footer-dropdown-menu.is-active
.footer-dropdown-menu__button:after {
    transform: rotate(180deg);
}

.footer-right
.footer-util
.footer-dropdown-menu.is-active
.footer-dropdown-menu__list {
    opacity: 1;
    visibility: visible;
}

.footer-right .copyright {
    color: #7b7b7b;
    font-size: 14px;
    margin-top: 20px;
    text-align: right;
}

.footer-top-button {
    width: 60px;
    height: 60px;
    border-radius: 100%;
    background: #333;
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 9999;
}

.footer-top-button:before {
    content: "arrow_upward";
    color: #fff;
    font-size: 32px;
    line-height: 50px;
}

/* footer style */

/* breadcrumbs style */
.breadcrumb {
    display: flex;
    gap: 10px;
}

.breadcrumb__list {
    display: flex;
    align-items: center;
    font-weight: 100;
    font-size: 16px;
    color: #000000;
}

.breadcrumb__list:after {
    content: "chevron_right";
    margin-left: 5px;
}

.breadcrumb__list:last-of-type:after {
    display: none;
}

.breadcrumb__list--home:before {
    content: "home";
    margin-top: -2px;
    font-size: 24px;
}

.breadcrumb__list--current {
    font-weight: 700;
    color: #267fca;
}

/* breadcrumbs style end*/

.main {
    width: 100%;
    max-width: 1920px;
    height: 100%;
    padding-top: 120px;
    box-sizing: border-box;
    background: #ffffff;
    margin: 0 auto;
}

/* main page style */

.main-page {
    padding: 0 60px;
    background: #ffffff;
    padding-bottom: 80px;
}

.main-content {
    padding-bottom: 80px;
}

.main-content.community {
    background: #f7f7f7;
    padding: 80px 30px;
    border-radius: 20px;
}

.main-content .tit-wrap {
    margin-bottom: 40px;
    text-align: center;
}

.main-content .tit-wrap .main-tit-top {
    font-size: 20px;
    font-weight: 100;
    margin-bottom: 10px;
    color: #888888;
}

.main-content .tit-wrap .main-tit {
    font-size: 46px;
    font-weight: 300;
    color: #000000;
    line-height: 1.25;
}

.main-content .tit-wrap .main-tit span {
    display: block;
}

.main-slider {
    height: 100%;
}

.main-slider__link {
    display: block;
    width: 100%;
    height: 100%;
}

.main-slider__item {
    height: 428px;
    /*background-color: #f5f5f5;*/
    overflow: hidden;
}

.main-slider__link {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
}

.main-slider__link img {
    width: 100%;
    height: 460px;
    object-fit: contain;
    object-position: center;
}

.main-slider__pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-top: 20px;
}

.main-slider__pagination button:before {
    font-size: 32px;
    vertical-align: middle;
}

.main-slider__pagination button.main-slider__button--prev:before {
    content: "keyboard_arrow_left";
}

.main-slider__pagination button.main-slider__button--next:before {
    content: "keyboard_arrow_right";
}

.main-slider__toggle .icon-pause,
.main-slider__toggle .icon-play {
    display: none;
    margin-left: -7px;
}

.main-slider__toggle.is-pause .icon-pause {
    display: inline;
}

.main-slider__toggle.is-pause .icon-pause:before {
    font-size: 32px;
    vertical-align: middle;
    content: "pause";
}

.main-slider__toggle:not(.is-pause) .icon-play {
    display: inline;
}

.main-slider__toggle:not(.is-pause) .icon-play:before {
    font-size: 32px;
    vertical-align: middle;
    content: "play_arrow";
}

.main-slider__pagination .page-index {
    font-size: 18px;
    font-weight: 300;
}

/* 메인화면 서비스 영역 style */
.service-container {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

.service {
    position: relative;
    height: 100%;
    /* aspect-ratio: 3 / 4.5; */
    /* 0821 */
    aspect-ratio: 3 / 3.5;
    overflow: hidden;
    border-radius: 20px;
    color: #fff;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    justify-content: space-between;
    padding: 40px;
    box-sizing: border-box;
    transition: all ease 0.2s;
}

.service .service-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: url("../img/main/bg_service_01.png") no-repeat;
    background-size: 100% auto;
    transition: all ease 0.4s;
}

.service .service-bg:before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(1, 108, 186, 0.4);
    top: 0;
    left: 0;
    transition: all ease 0.4s;
    opacity: 0;
}

.service.data .service-bg {
    background: url("../img/main/bg_service_01.png") no-repeat;
    background-size: 100% auto;
}

.service.trans .service-bg {
    background: url("../img/main/bg_service_02.png") no-repeat;
    background-size: 100% auto;
}

.service.emergency .service-bg {
    background: url("../img/main/bg_service_03.png") no-repeat;
    background-size: 100% auto;
}

.service.monitor .service-bg {
    background: url("../img/main/bg_service_04.png") no-repeat;
    background-size: 100% auto;
}

.service:hover .service-bg {
    background-size: 120%;
}

.service:hover .service-bg:before {
    opacity: 1;
}

.service .service-content {
    position: relative;
    z-index: 1;
}

.service .service-content h3 {
    font-size: 32px;
    font-weight: 500;
    line-height: 1.4;
    margin-bottom: 45px;
}

.service .service-content h3 > span {
    display: block;
}

.service .service-content p {
    font-size: 18px;
    font-weight: 100;
    opacity: 0.8;
    word-break: keep-all;
}

.service .service-btn {
    background: url("../img/common/icon_more_wh.svg") no-repeat center rgba(0, 0, 0, 0.5);
    border: 1px solid #fff;
    border-radius: 10px;
    cursor: pointer;
    width: 50px;
    height: 50px;
    line-height: 50px;
    text-align: right;
    margin-left: auto;
    transition: all ease 0.2s;
    z-index: 1;
}

.service .service-btn:hover {
    background: url("../img/common/icon_more_bk.svg") no-repeat center #ffffff;
}

.community-container .tab-wrap {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    text-align: center;
}

.community-container .tab-buttons {
    display: inline-flex;
    justify-content: center;
    background: #ffffff;
    padding: 8px 15px;
    border-radius: 35px;
    gap: 20px;
    margin-bottom: 40px;
}

.community-container .tab-btn {
    padding: 12px 40px;
    border: none;
    background: #ffffff;
    cursor: pointer;
    border-radius: 25px;
    font-weight: 300;
    color: #333;
    font-size: 20px;
    transition: all ease 0.2s;
}

.community-container .tab-btn:hover {
    background: #f8f8f8;
}

.community-container .tab-btn.active {
    background: #016cba;
    color: #fff;
}

.community-container .tab-content {
    display: none;
    background: #fff;
    border-radius: 20px;
}

.community-container .tab-content.active {
    display: block;
}

.community-container .list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.community-container .list li a {
    display: flex;
    padding: 30px;
    justify-content: left;
    border-bottom: 1px solid #eee;
    font-size: 18px;
    text-align: left;
    color: #888888;
    align-items: center;
    transition: all ease 0.2s;
}


.community-container .list li a:hover {
    background-color: #fefefe;
}

.community-container .list li .date {
    text-align: center;
    font-weight: 100;
    margin-left: 30px;
}

.community-container .list li .num {
    font-weight: 100;
    margin-right: 10px;
    text-align: center;
    width: 100px;
}

.community-container .list li .tit {
    font-weight: 300;
    color: #000000;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1;
    margin: 0 30px;
}

.community-container .list li .reviewer {
    text-align: center;
    font-weight: 100;
}

.community-container .list li .thumb {
    width: 100px;
    height: 100px;
    background: url('/static/img/common/smway4.svg') center no-repeat;
    background-size: 90% auto;
}

.community-container .list li .thumb img {
    width: 100%;
    height: 100%;
    object-fit: fill;
    border-radius: 10px;
    background: white;
}

.community-container .list li .tit:empty::before,
.community-container .list li .reviewer:empty::before,
.community-container .list li .date:empty::before {
    content: '-';
    color: #000;
    font-size: 18px;
}

/* main page style end*/

/* sub page style */
.sub-cover {
    padding: 0 60px;
}

.sub-cover .sub-cover-inner {
    background: #000;
    border-radius: 20px;
    background: url("../img/sub/bg_cover01.png") no-repeat;
    background-size: cover;
    height: 160px;
    display: flex;
    padding: 0 60px;
    flex-direction: column;
    justify-content: center;
}

.sub-cover.community .sub-cover-inner {
    background: url("../img/sub/sub_cover04.png") no-repeat;
    background-size: cover;
}

.sub-cover.dataset .sub-cover-inner {
    background: url("../img/sub/sub_cover03.png") no-repeat;
    background-size: cover;
}

.sub-cover.autotrans .sub-cover-inner {
    background: url("../img/sub/sub_cover02.png") no-repeat;
    background-size: cover;
}

.sub-cover.statistics .sub-cover-inner {
    background: url("../img/sub/sub_cover05.png") no-repeat;
    background-size: cover;
}

.sub-cover.emergency .sub-cover-inner {
    background: url("../img/sub/sub_cover06.png") no-repeat;
    background-size: cover;
}

.sub-cover .sub-cover-inner .sub-cover-tit {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}

.sub-cover .sub-cover-inner .tit {
    color: #fff;
    font-size: 36px;
    font-weight: 500;
}

.sub-cover .sub-cover-inner .sub-tit {
    color: #fff;
    font-size: 18px;
    font-weight: 100;
}

.sub-page {
    max-width: 1400px;
    margin: 0 auto;
    padding-bottom: 60px;
    background: #fff;
}

.sub-content {
    background: #fff;
    border-radius: 20px;
}

.sub-content .content-area {
    padding-top: 30px;
}

.sub-content .content-area .area-tit {
    font-size: 18px;
    margin-bottom: 20px;
}

.sub-header {
    display: flex;
    background: #ffffff;
    justify-content: space-between;
    align-items: center;
    padding: 60px 0;
    box-sizing: border-box;
}

.sub-header .sub-tit {
    font-size: 42px;
    font-weight: 500;
}

.board-wrap {
    border-bottom: 1px solid #e6e9ef;
}

.board-wrap .board-header {
    border-top: 1px solid #000;
    border-bottom: 1px solid #e6e9ef;
    padding: 20px 0;
}

.board-wrap .board-header .top {
    display: flex;
    gap: 20px;
}

.board-wrap .board-header .tit {
    font-size: 32px;
    font-weight: 100;
    padding: 10px 0;
}

.board-wrap .board-header .etc {
    display: flex;
    gap: 20px;
    align-items: center;
}

.board-wrap .board-header .etc p {
    font-size: 18px;
    color: #888;
    font-weight: 100;
}

.board-wrap .board-header .etc p.view:before {
    font-size: 24px;
    content: "visibility";
    vertical-align: middle;
}

.board-wrap .board-content {
    padding: 30px 0;
}

.board-wrap .board-content * {
    max-width: 100% !important;
}

.board-wrap .board-content.faq-question,
.board-wrap .board-content.faq-answer {
    position: relative;
    padding: 40px 0;
    padding-left: 60px;
}

.board-wrap .board-content.faq-question:before {
    content: "Q.";
    font-size: 42px;
    color: #ccc;
    position: absolute;
    left: 0;
    top: 10px;
}

.board-wrap .board-content.faq-answer:before {
    content: "A.";
    font-size: 42px;
    color: #016cba;
    position: absolute;
    left: 0;
    top: 10px;
}

.board-wrap .board-footer {
    padding: 30px;
    background: #fafafb;
    margin-bottom: 30px;
    box-sizing: border-box;
    border-radius: 10px;
}

.board-wrap .board-footer .tit {
    font-size: 18px;
    font-weight: 300;
    margin-bottom: 10px;
}

.answer-wrap {
    margin-top: 60px;
}

.answer-wrap .tit {
    font-size: 20px;
    margin-bottom: 20px;
    font-weight: 300;
}

/* sub page style end*/

/* search area style */
.search-area {
    display: flex;
    flex-direction: column;
    background: #fafafb;
    border-radius: 8px;
    margin-bottom: 30px;
    border: 1px solid #e6e9ef;
}

.search-row {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    padding: 16px 30px;
    justify-content: flex-start;
    box-sizing: border-box;
}

.search-group {
    display: flex;
    align-items: center;
    gap: 5px;
    position: relative;
    padding-top: 30px;
}

.search-area .tit {
    font-size: 14px;
    font-weight: 100;
    color: #888888;
    margin-right: 5px;
    position: absolute;
    top: 0;
}

.search-area input[type="text"],
.search-area select {
    width: auto;
}

.search-area .btn-group {
    border-top: 1px solid #e6e9ef;
    padding: 16px;
    margin-top: 0;
    display: flex;
    justify-content: center;
    gap: 10px;
}

.search-area .btn-group .btn {
    height: 50px;
    line-height: 50px;
    min-width: 120px;
    font-size: 18px;
    background: #016cba;
}

.search-area .btn-group .btn.util-search:before {
    font-size: 26px !important;
}

.search-area .label__datepicker {
    height: 40px;
    line-height: 40px;
}

.search-area .label__datepicker:after {
    font-size: 24px;
    top: 5px;
}

/* search area style end */
.data-list-wrap ul {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 2개씩 나열 */
    gap: 20px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.data-list-wrap .data-list {
    background: #fff;
    border: 1px solid #e6e9ef;
    border-radius: 20px;
    overflow: hidden;
    transition: all ease 0.2s;
}

.data-list-wrap .data-list a {
    display: flex;
    flex-direction: row;
    gap: 30px;
    text-decoration: none;
    color: inherit;
    height: 100%;
}

.data-list-wrap .list-thumb {
    flex: 0 0 180px;
    min-height: 150px;
    height: 100%;
    border-radius: 20px 0 0 20px;
    overflow: hidden;
    background: url('/static/img/common/smway4.svg') center no-repeat;
    background-size: 90% auto;
}

.data-list-wrap .list-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: white;
}

.data-list-wrap .list-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 0;
    padding: 20px 30px 20px 0;
}

.data-list-wrap .list-right .list-top {
    display: flex;
    justify-content: space-between;
    font-weight: 100;
    margin-bottom: 5px;
}

.data-list-wrap .list-right .list-top .list-top-left {
    min-width: 0;
}

.data-list-wrap .list-right .list-top .list-top-left .category img {
    /* width: 20px;
  height: 20px; */
    object-fit: cover;
    margin-right: 5px;
    margin-top: -3px;
}

.data-list-wrap .list-right .list-top .list-top-left .data {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.data-list-wrap .list-right .list-top .list-top-right {
    color: #888888;
    display: flex;
    gap: 10px;
    align-items: center;
}

.data-list-wrap .list-right .list-top .list-top-right .view:before {
    content: "visibility";
    vertical-align: middle;
    margin-right: 3px;
}

.data-list-wrap .list-right .list-top .list-top-right .use:before {
    content: "description";
    vertical-align: middle;
    margin-right: 3px;
}

.data-list-wrap .list-right .list-top .list-top-right .heart {
    background: url("../img/sub/icon_heart.svg") no-repeat center;
    width: 20px;
    height: 20px;
    vertical-align: middle;
}

.data-list-wrap .list-right .list-top .list-top-right .heart.active {
    background: url("../img/sub/icon_heart_active.svg") no-repeat center;
}

.data-list-wrap .list-right .list-cont {
    overflow: hidden;
}

.data-list-wrap .list-right .list-cont .title {
    font-size: 20px;
    font-weight: 300;
    color: #000;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.data-list-wrap .list-right .list-cont .text {
    margin-top: 5px;
    font-size: 16px;
    font-weight: 100;
    color: #333333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.data-list-wrap .list-right .list-info {
    font-size: 14px;
    color: #888;
    margin-top: 10px;
    display: flex;
    gap: 10px;
    font-weight: 100;
    justify-content: space-between;
    align-items: center;
}

.data-list-wrap .list-right .list-info .list-info-left {
    display: flex;
    gap: 10px;
}

.data-list-wrap .list-right .list-info .method {
    background: #016cba;
    font-size: 14px;
    color: #fff;
    padding: 0 20px;
    height: 30px;
    line-height: 30px;
    border-radius: 20px;
    display: block;
}

.data-list-wrap .list-right .list-info .method.file {
    background: #016cba;
}

.data-list-wrap .list-right .list-info .method.api {
    background: #ffca74;
}

.data-list-wrap .list-right .list-btn {
    margin-top: 15px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.data-list-wrap .list-right .list-btn button {
    border: 1px solid #016cba;
    color: #016cba;
    width: 100%;
    border-radius: 5px;
    height: 35px;
    line-height: 35px;
    font-size: 14px;
    transition: all ease 0.2s;
}

.data-list-wrap .list-right .list-btn button:hover {
    background: #016cba;
    color: #fff;
}

.data-list-wrap .list-right .list-btn button.complete {
    background: #eee;
    border: none;
    color: #000;
}

.data-list-wrap .list-right .list-btn button.complete:hover {
    background-color: #e0e0e0;
    color: #000000;
}

.data-list-wrap .list-right .list-btn .result-state {
    width: 100%;
    display: flex;
    gap: 10px;
}

.data-list-wrap .list-right .list-btn .result-state .badge {
    padding: 0;
    height: 35px;
    line-height: 35px;
    width: 120px;
    font-size: 14px;
}

.data-view-wrap .data-title {
    padding: 30px;
    background: #f7f7f7;
    border-radius: 20px;
}

.data-view-wrap .data-title .title-box {
    display: flex;
    flex-direction: row;
    gap: 30px;
    text-decoration: none;
    color: inherit;
    height: 100%;
}

.data-view-wrap .data-title .list-thumb {
    flex: 0 0 180px;
    height: 180px;
    border-radius: 10px;
    overflow: hidden;
}

.data-view-wrap .data-title .list-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: white;
}

.data-view-wrap .data-title .list-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 0;
    min-width: 0;
}

.data-view-wrap .data-title .list-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 5px;
    font-size: 18px;
    font-weight: 100;
    color: #888888;
}

.data-view-wrap .list-right .list-top .list-top-left .category img {
    width: 18px;
    height: 18px;
    object-fit: cover;
    margin-right: 5px;
    margin-top: -3px;
}

.data-view-wrap .list-right .list-top .list-top-right {
    color: #888888;
    display: flex;
    gap: 10px;
    align-items: center;
}

.data-view-wrap .list-right .list-top .list-top-right .view:before {
    content: "visibility";
    vertical-align: middle;
    margin-right: 3px;
}

.data-view-wrap .list-right .list-top .list-top-right .use:before {
    content: "description";
    vertical-align: middle;
    margin-right: 3px;
}

.data-view-wrap .list-right .list-top .list-top-right .heart {
    background: url("../img/sub/icon_heart.svg") no-repeat left;
    padding-left: 25px;
    height: 20px;
    vertical-align: middle;
    box-sizing: content-box;
    line-height: 1;
}

.data-view-wrap .list-right .list-top .list-top-right .heart.active {
    background-image: url("../img/sub/icon_heart_active.svg");
}

.data-view-wrap .data-title .list-cont {
    /* margin-bottom: 30px; */
    overflow: hidden;
}

.data-view-wrap .data-title .list-cont .title {
    font-size: 32px;
    font-weight: 300;
    color: #111;
    margin-bottom: 10px;
}

.data-view-wrap .data-title .list-cont .text {
    font-size: 20px;
    font-weight: 300;
    color: #333333;
    margin-bottom: 20px;
}

.data-view-wrap .data-title .list-info {
    font-size: 18px;
    color: #888888;
    font-weight: 200;
    display: flex;
    gap: 15px;
}

.data-view-wrap .data-title .list-btn-group {
    display: flex;
    justify-content: flex-start;
    margin-top: 20px;
}

.data-view-wrap .data-title .list-btn-group .btn-group {
    margin-top: 0;
    border-right: 1px solid #e6e9ef;
    padding-right: 20px;
    margin-right: 20px;
}

.data-view-wrap .data-cont {
    padding: 30px 0;
    font-size: 16px;
    font-weight: 100;
    border-bottom: 1px solid #e6e9ef;
}

.data-view-wrap .data-cont .cont-tit {
    font-size: 20px;
    font-weight: 300;
    margin-bottom: 20px;
}

/* 활용사례 슬라이더 */
.usage-slider {
    height: 400px;
    padding: 40px 80px;
    position: relative;
    box-sizing: border-box;
}

.usage-slider__container {
    position: relative;
    overflow: hidden;
}

.usage-slider__container .swiper-slide {
    width: calc((100% - 40px) / 3); /* ★ 3개씩 보여주기 위한 슬라이드 너비 계산 */
    height: 320px;
    flex-shrink: 0;
}

.usage-slider__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.usage-slider__button {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 50%;
    z-index: 8;
    width: 50px;
    height: 50px;
    margin-top: -25px;
}

.usage-slider__button--prev {
    left: 20px;
}

.usage-slider__button--prev:before {
    content: "arrow_back_ios";
    display: block;
    font-size: 46px;
}

.usage-slider__button--next {
    right: 15px;
}

.usage-slider__button--next:before {
    content: "arrow_forward_ios";
    display: block;
    font-size: 46px;
}

/* representative-image */
.repnt-image .btn-group {
    justify-content: flex-start;
    margin-bottom: 0;
}

.repnt-image-area {
    display: flex;
    align-items: flex-start;
    padding: 10px 0 20px;
}

.repnt-image-area .thumb-image {
    width: 150px !important;
    height: 150px !important;
    border: 1px solid #e6e9ef;
    background: #f7f7f7;
    border-radius: 10px;
}

.repnt-image-area .thumb-image-none {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 150px !important;
    height: 150px !important;
    border: 1px solid #e6e9ef;
    background: #f7f7f7;
    border-radius: 10px;
}

.repnt-image-area .thumb-image-none:before {
    content: "crop_original";
    font-size: 112px;
    color: #ddd;
}

.repnt-image .button__group {
    position: static;
    margin-left: 20px;
}

.repnt-image .button:nth-child(n + 2) {
    margin-left: 10px;
}

.cmm-wrap {
    margin-bottom: 40px;
}

.cmm-wrap:last-child {
    margin-bottom: 0;
}

.cmm-wrap .cmm-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
    align-items: flex-end;
}

.cmm-wrap .cmm-header .btn-group {
    margin-top: 0;
}

.cmm-wrap .cmm-tit {
    font-size: 20px;
    font-weight: 300;
}

.cmm-wrap .request-info {
    background: #f7f7f7;
    padding: 20px;
    box-sizing: border-box;
    border-radius: 10px;
    font-weight: 100;
    word-break: keep-all;
}

.cmm-wrap .request-info ul li {
    position: relative;
    padding-left: 15px;
}

.cmm-wrap .request-info ul li:before {
    content: "";
    width: 4px;
    height: 4px;
    position: absolute;
    left: 0;
    top: 9px;
    background: #000;
    border-radius: 100%;
}

/* 데이터조회 검색 영역 style*/
.data-search {
    width: 100%;
}

.data-search .search-bar {
    display: flex;
    border: 2px solid #016cba;
    border-radius: 40px;
    overflow: hidden;
    margin-bottom: 30px;
    position: relative;
    background: #016cba;
}

.data-search .search-bar select {
    border: none;
    width: 200px;
    padding-left: 30px;
    font-size: 18px;
}

.data-search .search-bar input[type="text"] {
    flex: 1;
    padding: 0 40px;
    height: 60px;
    line-height: 60px;
    border: none;
    /* outline: none; */
    font-size: 18px;
}

.popular-list ul {
    display: flex;
    gap: 20px;
    justify-content: center;
}

.popular-list ul li a,
.popular-list ul li span {
    display: inline-block;
    font-size: 16px;
    color: #016cba;
    border: 1px solid #016cba;
    padding: 8px 15px;
    border-radius: 20px;
    font-weight: 100;
}

.data-search .btn-search {
    background: #016cba;
    color: #fff;
    border: none;
    padding: 0 40px;
    cursor: pointer;
    font-size: 18px;
    display: flex;
    align-items: center;
    border-radius: 60px;
}

.data-search .btn-search:before {
    content: "search";
    font-size: 36px;
}

.data-search .search-section {
    background: #fafafb;
    border-radius: 20px;
    padding: 30px 40px;
}

.data-search .search-section h4 {
    font-size: 24px;
    font-weight: 300;
    margin-bottom: 20px;
}

.data-search .search-group {
    border-bottom: 1px solid #eee;
    align-items: center;
    padding: 20px 0;
}

.data-search .search-group:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.data-search .label {
    font-weight: 300;
    font-size: 16px;
    width: 150px;
    flex: 0 0 auto;
}

.data-search .check-group {
    display: flex;
    gap: 15px;
}

.data-search .check-group .btn-checkbox {
    position: relative;
    display: inline-block;
    cursor: pointer;
}

.data-search .check-group .btn-checkbox input[type="checkbox"],
.data-search .check-group .btn-checkbox input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.data-search .check-group .btn-checkbox span {
    display: inline-block;
    padding: 5px 25px;
    border-radius: 20px;
    background-color: #efefef;
    color: #000;
    font-size: 16px;
    transition: all 0.2s ease-in-out;
    font-weight: 100;
}

.data-search .check-group .btn-checkbox input:checked[type="checkbox"] + span,
.data-search .check-group .btn-checkbox input:checked[type="radio"] + span {
    background-color: var(--checkbox-active-color);
    color: #fff;
}

.data-search .check-group .btn-checkbox
input:focus-visible + span {
    outline: 2px solid #000;
    outline-offset: 2px;
}

.data-search .data-search-result {
    text-align: center;
    width: 100%;
    padding: 25px 0;
    margin: 60px 0 30px;
    background: #fafafb;
    border-radius: 60px;
}

.data-search .data-search-result p {
    font-size: 24px;
    font-weight: 300;
}

.data-search .data-search-result p span {
    color: #016cba;
    font-weight: 500;
}

.integrate-more {
    margin-top: 30px;
}

.integrate-more .btn {
    width: 100%;
}

.no-search-data {
    text-align: center;
    font-size: 16px;
    font-weight: 300;
    padding: 40px 0;
    box-sizing: border-box;
    border-radius: 20px;
    padding-top: 120px;
    background: url("../img/common/icon_noData.svg") no-repeat center top 50px #fafafb;
    background-size: 60px auto;
    color: #888;
}

/* 데이터조회 검색 영역 style end*/

.model-select-wrap {
    position: relative;
    padding: 0 40px;
}

.model-select {
    overflow: hidden;
    width: 100%;
}

.model-select-list {
    display: flex;
    align-items: center;
    width: max-content;
}

.model-item {
    width: auto;
    flex-shrink: 0;
    flex: 0 0 auto;
}

.model-item a {
    display: inline-block;
    padding: 8px 16px;
    white-space: nowrap;
    background: #f0f0f0;
    border-radius: 20px;
    text-align: center;
}

.model-select-nav {
    position: absolute;
    top: 0;
}

.model-select-nav.model-select-prev {
    left: 0;
}

.model-select-nav.model-select-next {
    right: 0;
}

.model-select-nav.model-select-prev:before {
    content: "chevron_left";
    font-size: 42px;
    left: 0;
}

.model-select-nav.model-select-next:before {
    content: "chevron_right";
    font-size: 42px;
}

/* 평점 style */
.data-unit__rating {
    display: flex;
    align-items: center;
    gap: 10px;
}

.rating {
    border: none;
}

.rating > .rating__input {
    display: none;
}

.rating__label {
    color: #ddd;
    float: right;
}

.rating > .rating__label:before {
    display: inline-block;
    font-size: 28px;
}

.rating__label--full {
    margin-right: 2px;
}

.rating__label--full:before {
    content: "star";
}

.rating__label--half:before {
    content: "star_half";
    overflow: hidden;
    position: absolute;
    width: 14px;
}

.rating__input:checked ~ .rating__label {
    color: #ffd700;
}

.rating__label:hover,
.rating__label:hover ~ .rating__label {
    color: #ffd700;
}

.rating__input:checked + .rating__label:hover,
.rating__input:checked ~ .rating__label:hover,
.rating__label:hover ~ .rating__input:checked ~ .rating__label,
.rating__input:checked ~ .rating__label:hover ~ .rating__label {
    color: #ffd700;
}

.rating--disabled > .rating__label {
    cursor: default;
}

.rating--disabled .rating__label:hover,
.rating--disabled .rating__label:hover ~ .rating__label {
    color: #ddd;
}

.rating--disabled .rating__input:checked + .rating__label:hover,
.rating--disabled .rating__input:checked ~ .rating__label:hover,
.rating--disabled
.rating__label:hover
~ .rating__input:checked
~ .rating__label,
.rating--disabled
.rating__input:checked
~ .rating__label:hover
~ .rating__label {
    color: #ffd700;
}

.rating__count {
    font-size: 14px;
    color: #999;
    margin-top: -2px;
}

/* 로그인/회원가입 style */
.login-wrap {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 100px 0;
}

.login-wrap .login-inner {
    display: flex;
    width: 100%;
    max-width: 800px;
    height: auto;
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.login-wrap .login-inner .left-panel {
    width: 30%;
    background: linear-gradient(to left, #13649e, #016cba);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #000;
    font-weight: bold;
    font-size: 16px;
}

.login-wrap .login-inner .right-panel {
    flex: 1;
}

.login-wrap .login-inner .login {
    width: 100%;
    padding: 80px;
}

.login-wrap .login-inner .login .login-tit {
    text-align: left;
    font-size: 48px;
    font-weight: 500;
    color: #333;
    margin-bottom: 30px;
}

.login-wrap .login-inner .login .step-tit {
    margin-bottom: 30px;
    font-size: 20px;
    font-weight: 300;
}

.login-wrap .login-inner .login .step-tit span {
    display: block;
    color: #016cba;
    font-size: 18px;
    font-weight: 300;
}

.login-wrap .login-inner .login .login-form .form-group {
    display: block;
    margin-bottom: 20px;
}

.login-wrap .login-inner .login .login-form .form-group .form-bg {
    background: #f7f7f7;
    padding: 20px;
    border-radius: 5px;
}

.login-wrap .login-inner .login .login-form .form-group > span {
    display: block;
    font-size: 16px;
    font-weight: 300;
    margin-bottom: 8px;
    color: #000;
}

.login-wrap .login-inner .login .login-form .form-group .input {
    width: 100%;
    height: 50px;
    line-height: 50px;
}

.login-wrap .login-inner .login .login-form .form-group .multi-form {
    display: flex;
    gap: 10px;
}

.login-wrap .login-inner .login .login-form .form-group .multi-form .input {
    flex: 1;
    width: 100%;
}

.login-wrap .login-inner .login .login-form .form-group .multi-form .btn {
    width: 120px;
    height: 50px;
    line-height: 50px;
    font-weight: 300;
}

.login-wrap .login-inner .login .login-form .btn {
    width: 100%;
    font-weight: 700;
}

.login-wrap .login-inner .login .login-form .btn-group a {
    border-right: 1px solid #ddd;
    font-weight: 100;
    font-size: 14px;
    color: #888;
    padding-right: 10px;
}

.login-wrap .login-inner .login .login-form .btn-group a:last-child {
    border-right: none;
    padding-right: 0;
}

.login-wrap .login-inner .login .login-form .warning-txt {
    font-size: 14px;
    margin-top: 5px;
    color: #f46565;
    font-weight: 100;
}

.login-wrap .login-inner .login .login-form .info-txt {
    font-size: 14px;
    display: flex;
    margin-top: 5px;
    font-weight: 100;
}

.login-wrap .login-inner .login .login-form .info-txt span {
    font-size: 14px;
    display: inline-block;
}

.login-wrap .login-inner .login .login-form .info-txt span.timer {
    color: #f46565;
    margin: 0 10px 0 5px;
}

.sign-wrap .agree-box {
    margin-bottom: 30px;
}

.sign-wrap .agree-box .agree-info {
    background: #f7f7f7;
    border-radius: 10px;
    color: #000;
    font-weight: 100;
    padding: 20px;
    box-sizing: border-box;
    overflow-y: auto;
    max-height: 200px;
}

.sign-wrap .agree-box .agree-chk {
    text-align: right;
    margin-top: 10px;
}

.sign-wrap .agree-box .agree-chk .label__checkbox {
    font-size: 16px;
    font-weight: 300;
}

.sign-wrap .agree-box .agree-chk .label__checkbox input {
    width: 25px;
    height: 25px;
}

.sign-wrap .agree-box .agree-chk .label__checkbox input:checked::after {
    font-size: 20px;
}

.sign-wrap .agree-box .agree-chk .label__checkbox span {
    color: #f46565;
}

.sign-wrap .btn-group {
    margin-top: 60px;
}

.sign-wrap .btn-group .btn {
    font-weight: 300;
    width: 100%;
}

.sign-wrap .complete-box {
    text-align: center;
    font-size: 24px;
    font-weight: 300;
}

.sign-wrap .complete-box span {
    font-size: 18px;
    font-weight: 100;
    display: block;
}

.sign-wrap .complete-icon {
    background: #f2faff;
    width: 80px;
    height: 80px;
    border-radius: 100%;
    margin: 0 auto;
    margin-bottom: 20px;
}

.sign-wrap .complete-icon:before {
    font-size: 80px;
    content: "check";
    color: #016cba;
}

.sign-wrap .find-result {
    background: #f7f7f7;
    border-radius: 5px;
    padding: 20px;
    font-size: 18px;
    text-align: center;
    font-weight: 100;
}

.sign-wrap .find-result span {
    display: block;
    font-size: 24px;
    font-weight: 300;
    margin: 10px 0;
}

.sign-wrap .find-result .sub-info {
    margin-top: 20px;
    font-size: 16px;
    color: #f46565;
}

/* 로그인/회원가입 style end*/

/* 화물차량 모니터링 팝업 style*/
.monitor-wrap {
    display: flex;
    gap: 20px;
}

.monitor-wrap .map {
    width: 65%;
    border: 1px solid #e6e9ef;
    border-radius: 10px;
}

.monitor-wrap .map-info {
    width: 35%;
}

.monitor-wrap .emergency-video {
    display: flex;
    gap: 10px;
}

.monitor-wrap .emergency-video li {
    border: 1px solid #ccc;
    width: 50%;
    height: 150px;
    border-radius: 10px;
}

.monitor-wrap .emergency-video li video {
    width: 100%;
    height: 100%;
    border-radius: 10px;
}

.monitor-wrap .emergency-video li img {
    width: 100%;
    height: 100%;
    border-radius: 10px;
    object-fit: cover;
}

/* 화물차량 모니터링 팝업 style end*/

/* 지도기반 데이터셋 style */
.map-wrap {
    display: flex;
    gap: 20px;
    align-items: stretch;
}

.map-filter {
    border: 1px solid #e6e9ef;
    width: 320px;
    border-radius: 10px;
    align-self: flex-start;
}

.map-filter .btn-group {
    justify-content: center;
    margin-top: 10px;
    margin-bottom: 10px;
}

.map-filter .filter-header {
    display: flex;
    justify-content: space-between;
    padding: 10px;
    font-size: 18px;
    background: #f7f7f7;
    padding: 20px;
    border-radius: 10px 10px 0 0;
}

.map-filter .filter-select {
    display: flex;
    justify-content: center;
    padding: 20px 15px 5px;
    gap: 10px;
}

.map-filter .accordion-section {
    padding: 15px;
    border-bottom: 1px solid #e6e9ef;
}

.map-filter .accordion-section:last-child {
    border-bottom: none;
}

.map-filter .accordion-header {
    cursor: pointer;
    padding: 10px 0;
    font-weight: 500;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.map-filter .accordion-header .accordion-arrow {
    width: 28px;
    height: 28px;
}

.map-filter .accordion-header .accordion-arrow.up:before {
    content: "keyboard_arrow_up";
    font-size: 28px;
}

.map-filter .accordion-header .accordion-arrow.down:before {
    content: "keyboard_arrow_down";
    font-size: 28px;
}

.map-filter .accordion-body li {
    list-style: none;
    padding: 6px 0;
    display: flex;
    align-items: center;
}

.map-filter .filter-table {
    overflow-y: auto;
    max-height: 500px;
    border-top: 1px solid #e6e9ef;
}

.map-filter .filter-table .filter-table-header {
    display: flex;
    padding: 15px;
    justify-content: space-between;
    align-items: center;
}

.map-filter .filter-table .data-list-wrap ul {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.map-filter .filter-table .data-list-wrap ul .no-data {
    padding: 15px;
    text-align: center;
    color: #888;
    font-size: 16px;
    font-weight: 100;
}

.map-filter .filter-table .data-list-wrap .data-list {
    border: none;
    border-bottom: 1px solid #e6e9ef;
    padding: 10px;
    background: none;
    border-radius: 0;
}

.accordion-flex {
    flex-wrap: wrap;
}

/*todo: 수정필요*/
.map-filter .filter-table .data-list-wrap .data-list.active {
    background: rgba(1, 108, 186, 0.3);
}

.map-filter .filter-table .data-list-wrap .data-list:last-child {
    border-bottom: none;
}

.map-filter .filter-table .data-list-wrap .data-list a {
    gap: 15px;
}

.map-filter .filter-table .data-list-wrap .list-thumb {
    height: auto;
    flex: 0 0 80px;
    min-height: 80px;
    border-radius: 10px;
}

.map-filter .filter-table .data-list-wrap .list-right {
    padding: 0;
}

.map-filter .filter-table .data-list-wrap .list-right .list-cont .title {
    font-size: 16px;
}

.map-filter .filter-table .data-list-wrap .list-right .list-top {
    margin-bottom: 0;
}

.map-filter .filter-table .data-list-wrap .list-right .list-top .category {
    font-size: 14px;
}

.map-filter .filter-table .data-list-wrap .list-right .list-top .category img {
    width: 15px;
    /* height: 15px; */
}

.map-filter .filter-table .data-list-wrap .list-right .list-info {
    margin-top: 0;
}

.mapInfo {
    position: relative;
    display: inline-block;
    height: auto;
    width: auto;
    z-index: 1000;
    background-color: #333;
    color: #fff;
    text-align: center;
    border-radius: 4px;
    padding: 5px;
    left: 50%;
    transform: translateX(3%);
    visibility: hidden;
    pointer-events: none;
}

.map-filter .filter-table .data-list-wrap .list-right .list-info .method {
    font-size: 12px;
    height: 20px;
    line-height: 20px;
}

.map-filter .btn {
    width: 100%;
}

/* 지도기반 데이터셋 style */

.map-view {
    flex: 1;
    width: 100%;
}

.map-view .map-area {
    border: 1px solid #e6e9ef;
    width: 100%;
    height: 600px;
    border-radius: 10px;
    padding: 20px;
    box-sizing: border-box;
}

/* loader */
.loader {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100px;
    height: 100px;
    margin: -50px 0 0 -50px;
    border: 5px solid rgba(0, 199, 253, 0.2);
    border-left-color: #016cba;
    border-radius: 50%;
    font-size: 10px;
    text-indent: -9999em;
    transform: translateZ(0);
    animation: load8 1.1s infinite linear;
}

.loader__wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 20000;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.9);
}

.loader__text {
    font-size: 14px;
    text-transform: uppercase;
}

@keyframes load8 {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.select-form {
    width: 100%;
    height: 35px;
    border-radius: 2px;
    font-size: 14px;
    color: #e2dcdc;
    background-image: linear-gradient(45deg, transparent 50%, #e2dcdc 50%),
    linear-gradient(135deg, #e2dcdc 50%, transparent 50%);
    background-position: calc(100% - 12px) 14px, calc(100% - 9px) 14px;
    background-size: 4px 4px, 3px 4px;
    background-repeat: no-repeat;
}

.data-write-map {
    font-family: "Pretendard";
    position: relative;
    width: 100%;
    height: 404px;
    margin-top: 20px;
    padding: 15px;
    background: #eee;
    font-size: 11px;
    overflow-y: scroll;
}

/* address-box */
.address-box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    width: 100%;
    padding: 24px 20px;
    border-radius: 10px;
    border: 1px solid #e6e9ef;
    gap: 20px;
}

.address-box .input {
    flex: 1;
}

/* icon */
.icon__file {
    display: block;
    width: 100%;
    text-align: center;
}

.icon__file:after {
    content: "attach_file";
    color: #84c0d6;
    vertical-align: middle;
}

.icon__require {
    font-weight: 700;
    font-size: 14px;
    color: #e81679;
    vertical-align: middle;
}

.icon__lock {
    position: relative;
    margin-right: 5px;
    vertical-align: middle;
}

.icon__lock:before {
    content: "lock";
    font-size: 20px;
    font-family: "Material Icons";
}

/* tag */
.tag {
    min-width: 80px;
    height: 30px;
    padding: 0 10px;
    border-radius: 20px;
    background: #84c0d6;
}

/* 약관 */
.terms__header {
    margin: 24px 0 36px;
}

.terms__title {
    margin-bottom: 20px;
    font-size: 18px;
    color: #444;
}

.terms__text {
    font-size: 14px;
    color: #666;
    line-height: 24px;
}

.sub__container--terms .sub__heading1 {
    margin-top: 57px;
}

.sub__container--terms .sub__text {
    line-height: 24px;
}

.sub__container--terms .sub__list {
    margin: 6px 0 6px 10px;
}

.sub__container--terms .sub__list:last-child {
    margin-bottom: -8px;
}

/* api결과 */
.pre {
    padding: 0 !important;
}

.pre__box {
    overflow-y: auto;
    max-height: 300px;
    padding: 14px;
    white-space: pre-wrap;
    word-wrap: break-word;
}

/* 에러 */
/* 0924 */
.error__wrap {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 100px 0;
}

.error__wrap .error-inner {
    display: flex;
    width: 100%;
    max-width: 800px;
    height: auto;
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.error__wrap .error-inner .error {
    width: 100%;
    padding: 80px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.error__wrap .error-inner .error img {
    width: 490px;
    height: auto;
    margin-bottom: 25px;
}

.error__wrap .error-inner .error .error-tit {
    text-align: center;
    font-size: 30px;
    font-weight: 500;
    color: #333;
    margin-bottom: 30px;
}

.error__bottom {
    display: flex;
    gap: 20px;
}

.error__bottom a {
    padding: 15px 30px;
    font-size: 16px;
    height: auto;
    width: 200px;
    font-weight: 300;
}

/* 통합검색 */
.integrated-search__form {
    display: flex;
    align-items: center;
    position: relative;
    height: 83px;
    margin-bottom: 30px;
    padding: 0 20px;
    border-radius: 5px;
    background: #eff3f8;
}

.integrated-search__input {
    width: 100%;
    height: 40px;
    padding: 0 10px;
    border: none;
    border-radius: 5px;
    background: #fff;
    font-size: 14px;
    color: #666;
}

.integrated-search__submit {
    position: absolute;
    top: 50%;
    right: 33px;
    width: 36px;
    height: 36px;
    margin-top: -18px;
    padding: 5px;
}

.integrated-search__submit:before {
    content: "";
    display: block;
    height: 100%;
    background: url("../img/sprite/sp_common.png") -73px 0px no-repeat;
}

.integrated-search__list {
    border-top: 1px solid #cfcfcf;
}

.integrated-search__item:hover {
    text-decoration: underline;
    color: #a9aaad;
}

.integrated-search__item:last-of-type,
.integrated-search__item:only-of-type {
    margin-bottom: -15px;
}

.integrated-search__link {
    display: block;
    padding: 14px 0 13px;
}

.integrated-search-result {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
}

.integrated-search-result__title {
    width: calc(100% - 160px);
    font-size: 18px;
    color: #000;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.integrated-search-result__text {
    width: 100%;
    padding-top: 7px;
    font-size: 14px;
    color: #888;
    line-height: 1.3;

    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.integrated-search-result__date {
    margin-top: 3px;
    font-size: 14px;
    color: #666;
}

.link-more {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 9px;
    right: 0;
    min-width: 76px;
    padding: 2px 10px;
    height: 25px;
    border-radius: 2px;
    border: solid 1px #206eb0;
    background-color: #fff;
    font-size: 14px;
    text-align: center;
    color: #206eb0;
}

.link-more:before {
    content: "";
    display: inline-block;
    width: 9px;
    height: 9px;
    margin-right: 3px;
    background: url("../img/sprite/sp_common.png") -19px -46px no-repeat;
}

/* 키워드 */
.keyword .keyword__list {
    display: flex;
    flex-wrap: wrap;
    margin-top: 10px;
    background: #f7f7f7;
    padding: 10px;
    box-sizing: border-box;
    border-radius: 10px;
    gap: 10px;
}

.keyword .keyword__list .keyword__item {
    position: relative;
    width: auto;
    height: 30px;
    padding: 0 30px 0 10px;
    border-radius: 20px;
    background: #016cba;
    color: #fff;
    line-height: 30px;
}

.keyword .keyword__list .keyword__input-wrap {
    display: flex;
    flex: 1 1 auto;
}

.keyword .keyword__list .keyword__button--delete {
    position: absolute;
    top: 50%;
    right: 5px;
    width: 15px;
    height: 15px;
    margin: -7px 0 0 auto;
    border-radius: 50%;
    background: #fff;
    font-weight: 600;
    font-size: 14px;
    line-height: 14px;
    text-align: center;
    color: #000;
}

.keyword .keyword__list .keyword__button--delete:before {
    content: "close";
    font-size: 14px;
    line-height: 14px;
    vertical-align: 0;
    width: 15px;
}

/* 툴팁 */
.tooltip {
    margin: 0 -2px 0 2px;
    cursor: pointer;
}

.tooltip:before {
    content: "help";
    display: inline-block;
    color: #cfcfcf;
    vertical-align: bottom;
}

.full-field__list {
    border-top: 1px solid #161f32;
    border-bottom: 1px solid #161f32;
    padding-bottom: 8px;
}

.full-field__item {
    display: flex;
    align-items: center;
    position: relative;
    margin-top: 8px;
}

.full-field__item > * {
    display: inline-flex;
}

.full-field__item .select {
    min-width: 130px;
    max-width: 130px;
}

.full-field__item .input {
    margin-right: 32px;
}

.full-field__item .button__data-model--remove {
    position: absolute;
    right: 0;
    top: 6px;
}

.box--right {
    display: flex;
    justify-content: flex-end;
}

.box--right .button__data-model--add {
    margin-bottom: 6px;
}

/* pannel */
#marker {
    position: relative;
    top: -50%;
    left: 60%;
}

.pannel {
    display: block;
    position: relative;
    padding: 7px 16px;
    border-radius: 15px;
    color: #fff;
    background: #206eb0;
    box-shadow: 2px 2px 6px 0 rgba(0, 0, 0, 0.4);
}

.pannel:after {
    content: "";
    position: absolute;
    left: calc(50% - 10px);
    bottom: -10px;
    z-index: 0;
    width: 10px;
    height: 10px;
    background: url(../img/sprite/sp_pannel_smart.png) 0 -195px no-repeat;
}

.pannel.not {
    display: block;
    position: relative;
    padding: 7px 16px;
    border: 1px solid #206eb0;
    border-radius: 15px;
    color: #206eb0;
    background: #fff;
    box-shadow: 2px 2px 6px 0 rgba(0, 0, 0, 0.4);
}

.pannel.not:after {
    content: "";
    position: absolute;
    left: calc(50% - 10px);
    bottom: -10px;
    z-index: 0;
    width: 10px;
    height: 10px;
    background: url(../img/sprite/sp_pannel_smart.png) 0 -180px no-repeat !important;
}

.pannel-tap {
    width: 100%;
    position: absolute;
    left: 0;
    padding: 7px 0 0 7px;
    border: 1px solid #206eb0;
    border-radius: 2px;
    color: #206eb0;
    background: #fff;
    box-shadow: 2px 2px 6px 0 rgba(0, 0, 0, 0.4);
    max-height: 180px;
    overflow: auto;
    bottom: 100%;
    margin-bottom: 8px;
}

.pannel-tap .pannel__header dl {
    display: block;
    width: 95%;
    border-bottom: 1px solid #ddd;
}

.pannel-tap .pannel__header dl:hover {
    background-color: #f3fafc;
    cursor: pointer;
}

.current-patient {
    display: inline-block;
}

.pannel .current-patient .current-patient__number {
    background-color: #fff;
    color: #206eb0;
    width: 100%;
    height: 100%;
    text-align: center;
    border-radius: 10px;
    font-weight: 700;
    margin: 5px 0 0 10px;
}

.pannel.not .current-patient .current-patient__number {
    background-color: #206eb0;
    color: #fff;
    width: 100%;
    height: 100%;
    text-align: center;
    border-radius: 10px;
    font-weight: 700;
    margin: 5px 0 0 10px;
}

.current-patient .current-patient__number > p {
    font-size: 16px;
    top: -1px;
    left: 6px;
}

.current-patient .current-patient__number-not > p {
    font-size: 16px;
    top: -1px;
    left: 6px;
}

.current-patient__name {
    font-size: 12px;
    font-weight: 700;
}

.current-patient__info {
    font-size: 10px;
    font-weight: 500;
}

.treemap__container {
    width: 100%;
    display: inline-flex;
    flex-direction: row;
    flex-wrap: nowrap;
}

.treemap__container .menu {
    order: 0;
    flex-grow: 1;
}

.treemap__container .content {
    order: 1;
    flex-grow: 2;
}

ul.fancytree-container {
    font-family: "Pretendard" !important;
    font-size: 14px !important;
    padding: 20px !important;
    background-color: #f7f7f7 !important;
    border-radius: 10px;
    border: none !important;
}

ul.fancytree-container li {
    margin: 5px 0 !important;
}

.key-info {
    display: flex;
    align-items: center;
    gap: 20px;
}

.key-info .key-text {
    white-space: normal;
    overflow-wrap: break-word;
    word-break: break-all;
    flex: 1;
    min-width: 0;
}

.my-data-state {
    background: #f7f7f7;
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 30px;
}

.my-data-state ul {
    display: flex;
    justify-content: center;
    gap: 30px;
}

.my-data-state ul li {
    text-align: center;
    font-size: 24px;
    font-weight: 100;
}

.toast {
    position: fixed;
    top: 20px;
    right: 20px;
    background-color: #f46565; /* 빨간색 */
    color: #fff;
    padding: 16px 24px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: bold;
    z-index: 9999;
    box-shadow: 0 2px 15px rgba(0, 0, 0, 0.2);
    animation: fadein 0.3s ease, fadeout 0.5s ease 3.5s;
    max-width: 350px;
    padding-left: 80px;
}

.toast::before {
    content: "notifications";
    color: #f46565;
    background: #fff;
    position: absolute;
    left: 20px;
    width: 40px;
    height: 40px;
    border-radius: 100%;
    vertical-align: middle;
    top: 50%;
    transform: translateY(-50%);
    text-align: center;
    line-height: 40px;
}

.toast .toast-title {
    color: #fff;
    font-size: 16px;
}

.toast .toast-message {
    color: #fff;
    font-weight: 100;
    font-size: 16px;
    margin: 5px 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

.toast .toast-btn {
    text-align: right;
    display: block;
    font-size: 14px;
    font-weight: 100;
    vertical-align: middle;
}

.toast .toast-btn::after {
    content: "keyboard_arrow_right";
    vertical-align: middle;
    margin-top: -3px;
}

@keyframes fadein {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeout {
    to {
        opacity: 0;
        transform: translateY(-10px);
    }
}

/* 메인화면 팝업 style*/
.main-popup-group .popup-dim {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.6);
    z-index: 999;
}

.main-popup-group .popup-wrapper {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    gap: 1.2rem;
    z-index: 1000;
    width: 100%;
    height: 100%;
    justify-content: center;
    align-items: center;
}

.main-popup-group .notice-slide {
    overflow-y: auto;
}

.main-popup-group .popup-wrapper .popup-card {
    width: 360px;
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 400px;
    max-height: 400px;
}

.main-popup-group .popup-wrapper .popup-card .popup-content {
    width: 100%;
    height: 100%;
    overflow-y: auto;
    padding: 20px;
    box-sizing: border-box;
}

.main-popup-group .popup-wrapper .popup-card .popup-content .notice {
    font-size: 14px;
    font-weight: 100;
}

.main-popup-group
.popup-wrapper
.popup-card
.popup-content
.notice
.notice-tit {
    font-size: 18px;
    margin-bottom: 10px;
    font-weight: 300;
}

.main-popup-group .popup-wrapper .popup-card .popup-content img {
    width: 100%;
    height: auto;
    object-fit: scale-down;
    display: block;
    margin: 10px 0;
}

.main-popup-group
.popup-wrapper
.popup-card.popup-marketing
.popup-content
.notice {
    display: none;
}

.main-popup-group
.popup-wrapper
.popup-card.popup-marketing
.popup-content
img {
    height: 100%;
    object-fit: cover;
    margin: 0;
}

.main-popup-group .popup-wrapper .popup-card .popup-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    background: #f9f9f9;
    font-size: 14px;
    font-weight: 100;
}

.main-popup-group .popup-wrapper .popup-card .popup-footer button {
    background: none;
    border: none;
    font-size: 18px;
    font-weight: 300;
    cursor: pointer;
}

.popup-swiper {
    width: 100%;
    height: 100%;
}

.main-popup-group .swiper-pagination {
    background: rgba(255, 255, 255, 0.7);
    border-radius: 20px;
    max-width: 50%;
    margin: 0 auto;
    position: relative !important;
    padding-bottom: 10px;
    margin-top: -10px;
}

.main-popup-group .swiper-pagination-bullet {
    margin: 0 5px;
}

.main-popup-group .swiper-pagination-bullet-active {
    background: #016cba !important;
}

@media (max-width: 1024px) {
    .main-popup-group .popup-wrapper .popup-card {
        margin: 0 auto;
        position: absolute;
        left: 0;
        right: 0;
    }

    .main-popup-group .popup-wrapper .popup-card:nth-child(1) {
        z-index: 9999;
    }

    .main-popup-group .popup-wrapper .popup-card:nth-child(2) {
        z-index: 9998;
    }

    .main-popup-group .popup-wrapper .popup-card:nth-child(3) {
        z-index: 999;
    }
}

/* 메인화면 팝업 style end*/

/* 추가 */
.model-example-title-section div {
    margin-top: 10px;
}

.model-example-title-section div button.outline-gray {
    font-size: 14px;
    padding: 0 15px;
    height: 32px;
}

.example-x-scroll {
    width: 100%;
    overflow: hidden;
    overflow-x: auto;
    max-height: 600px;
    overflow-y: auto;
}

.example-x-scroll table {
    min-width: 100%;
    width: auto;
}

.example-x-scroll table th,
.example-x-scroll table td {
    min-width: 150px;
}

.example-x-scroll table input {
    padding: 0 14px;
    border: 0;
    /* background: transparent; */
    border: 1px solid #bbbecb;
}

.example-x-scroll table td .delete_btns {
    display: flex;
    gap: 5px;
    margin-top: 5px;
}

.example-x-scroll table td .delete_btns button {
    width: 50%;
    height: 30px;
    padding: 0;
    font-size: 14px;
}

.example-x-scroll thead {
    position: sticky;
    top: 0;
    z-index: 10;
}

/* 0827 */
/* main card */
.main-flex {
    display: flex;
    gap: 35px;
}

.main-left {
    width: 855px;
}

.main-left__title {
    font-size: 46px;
    font-weight: 500;
    margin-bottom: 10px;
    line-height: 1.25;
}

.main-left__desc {
    margin-bottom: 45px;
    color: #888;
}

.main-left__cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.main-left__card {
    border: 1px solid #eee;
    border-radius: 20px;
    aspect-ratio: 4 / 4.5;
}

.main-left__card-inner {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    padding: 40px;
    text-align: center;
    min-height: 100%;
}

.main-left__card-title {
    margin-bottom: 5px;
    font-size: 27px;
}

.main-left__card-desc {
    font-weight: 100;
    color: #888;
}

.main-left__card-icon img {
    max-width: 100%;
    height: auto;
}

/* main slider */
.main-right {
    flex: 1 !important;
}

.main-right__pagination {
    padding-bottom: 0px;
}

/* 사업소개 */
.vision-goal-strategy {
    border: 1px solid #eee;
    margin-bottom: 70px;
}

.list-dot {
    position: relative;
    margin-bottom: 5px;
    font-weight: 100;
    color: #777;
    padding-left: 10px;
}

.list-dot::before {
    content: "";
    background: #444;
    border-radius: 50%;
    display: block;
    position: absolute;
    top: 9px;
    left: 0;
    height: 3px;
    margin: 0 5px 4px 0;
    width: 3px;
}

.sub-content .vision-goal-strategy__item {
    border: 1px solid #eee;
}

.sub-content .vision-goal-strategy__item th,
.sub-content .vision-goal-strategy__item td {
    border: none;
}

.vision-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    padding: 30px;
}

.title-lg {
    font-size: 30px;
    margin-bottom: 30px;
}

.mb-0 {
    margin-bottom: 0px !important;
}

.mb-30 {
    margin-bottom: 30px;
}

.mb-70 {
    margin-bottom: 70px;
}

.governance-cards-grid {
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(4, 1fr);
}

.img-grid-1 {
    grid-template-columns: repeat(1, 1fr);
}

.grid-2 {
    grid-template-columns: repeat(2, 1fr);
}

.grid-3 {
    grid-template-columns: repeat(3, 1fr);
}

.middle-header {
    font-size: 18px;
}

.governance-card-header {
    border: 1px solid #eee;
    text-align: center;
    padding: 16px 5px;
    font-size: 18px;
}

.top-header {
    font-size: 21px;
}

.governance-card-body--center {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 1px solid #eee;
    padding: 20px 15px;
}

.governance-card-body--column {
    display: flex;
    justify-content: center;
    padding: 20px;
    flex-direction: column;
}

.governance-card-body-left {
    flex-shrink: 0;
}

.governance-card-body-right {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.governance-card-body-description {
    font-weight: 100;
}

.tab-menu-lg {
  display: flex;
  gap: 40px;
  border-bottom: 2px solid #eee;
  margin-bottom: 5dvb;
}

.tab-lg-btn {
  font-size: 26px;
  font-weight: 500;   
  border: none;
  padding-bottom: 15px;
  border-bottom: 4px solid transparent;
  color: #666;      
}

.tab-lg-btn.active {
  font-weight: 700;  
  color: #111;          
  border-bottom-color: #016cba;
}

.tab-lg-content {
  display: none;
}

.tab-lg-content.active {
  display: block;
}

.sub-tab-menu {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.sub-tab-btn {
  padding: 8px 16px;
  border: 1px solid #ddd;
  background: #f8f8f8;
  cursor: pointer;
  font-size: 14px;
  border-radius: 6px;
}

.sub-tab-btn.active {
  background: #016cba;
  color: #fff;
  border-color: #016cba;
}

.sub-tab-content {
  display: none;
}

.sub-tab-content.active {
  display: block;
}

.governance-list {
    display: grid;
    gap: 40px;
    grid-template-columns: repeat(1, 1fr);
}

.governance-list-item-title {
    font-size: 20px;
    margin-bottom: 15px;
}

.governance-list-item-section {
    display: grid;
    gap: 25px;
}

.governance-list-item-details li {
    font-weight: 100;
    color: #555555;
}

.governance-list-item-media-title {
    font-size: 30px;
    margin-bottom: 30px;
}

.segment-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 25px;
}

.segment-grid-wrapper {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 25px;
    padding: 30px;
}

.doro-tit {
    margin-bottom: 5px;
}

.title-desc {
    margin-bottom: 30px;
    font-weight: 100;
    font-size: 18px;
    color: #666;
}

.hub-system-grid {
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(4, 1fr);
}

.hub-system-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 1px solid #eee;
    padding: 20px 15px;
}

.hub-system-image {
    flex-shrink: 0;
}

.hub-system-text {
    margin-top: 25px;
}

.governance-support {
    display: grid;
    gap: 40px;
    grid-template-columns: repeat(1, 1fr);
}

.governance-support-item-title {
    font-size: 18px;
    margin-bottom: 7px;
    color: #444;
}

.governance-support-item-list li {
    font-weight: 100;
    color: #777;
}

.img-wrapper {
    width: 100%;
    height: auto;
    display: block;
    padding: 50px;
}

.img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.partner-logos {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
    align-items: center;
    position: relative;
}

.partner-logo .logo-square {
    width: 57px;
    height: auto;
}

.partner-logo {
    height: 74px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #fff;
    border: 1px solid #eee;
}

.partner-logo img {
    width: 200px;
    height: auto;
    display: block;
    object-fit: contain;
}

.logo-caption {
    font-size: 13px;
    color: #666;
    text-align: center;
    margin-top: 6px;
    line-height: 1.2;
}

.beneficiary-logos {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    align-items: center;
}

.beneficiary-logo {
    height: 74px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #fff;
    border: 1px solid #eee;
}

.beneficiary-logo img {
    width: 200px;
    height: auto;
    display: block;
    object-fit: contain;
}

.grid-logos {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    align-items: center;
}

/* 0904 */
.auto-market-grid {
    display: grid;
    gap: 25px;
    padding: 30px;
}

.grid-1 {
    grid-template-columns: repeat(6, 1fr);
}

.grid-2 {
    grid-template-columns: repeat(2, 1fr);
}

.rotate-img-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
}

.rotate-img {
    transform: rotate(90deg);
}

/* 0905 */
.app-intro-banner {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 170px;
    width: 100%;
    height: 762px;
    background-color: rgb(0, 75, 160);
    padding-top: 150px;
    margin-bottom: 35px;
}

.app-intro-title {
    margin-top: 15px;
    color: #fff;
    font-size: 48px;
    font-weight: 500;
    margin-bottom: 20px;
    line-height: 1.25;
}

.google-play-btn {
    margin-right: 20px;
}

.section {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 170px;
    width: 100%;
    height: 649px;
    padding-top: 150px;
}

.section-light {
    background-color: #f3f3f3;
}

.section-dark {
    background-color: #e0e0e0;
}

.section-title {
    font-size: 35px;
    margin-bottom: 15px;
}

.section-description {
    width: 375px;
    font-size: 18px;
    font-weight: 100;
}

.section-image {
    display: inline-block;
}

/* 12.19 */
.app-intro-logo {
    max-width: 275px;
    width: 100%;
    margin-bottom: 40px;
}

/* ── Sitemap ── */

.sub-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 56px 32px 80px;
}

/* sitemap grid */
.sitemap-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 24px;
    align-items: start;
}

/* sitemap card */
.sitemap-item {
    list-style: none;
    background: #fff;
    border: 1px solid #e2e8f2;
    border-radius: 14px;
    box-shadow: 0 2px 16px rgba(30, 60, 120, .07);
    overflow: hidden;
    transition: box-shadow .22s cubic-bezier(.4, 0, .2, 1), transform .22s cubic-bezier(.4, 0, .2, 1);
    animation: sitemapFadeUp .4s both;
}

.sitemap-item:hover {
    box-shadow: 0 8px 32px rgba(46, 107, 230, .13);
    transform: translateY(-3px);
}

/* 1-depth header */
.sitemap-main {
    padding: 18px 22px 16px;
    border-bottom: 1px solid #e2e8f2;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    font-weight: 600;
    color: #1a2e4a;
    white-space: normal;
}

.sitemap-main::before {
    content: '';
    display: block;
    width: 4px;
    height: 20px;
    border-radius: 4px;
    background: #2e6be6;
    flex-shrink: 0;
}

.sitemap-main a,
.sitemap-main span {
    font-size: 15px;
    font-weight: 600;
    color: #1a2e4a;
    text-decoration: none;
    letter-spacing: -.01em;
    transition: color .22s cubic-bezier(.4, 0, .2, 1);
    cursor: default;
}

.sitemap-main a {
    cursor: pointer;
}

.sitemap-main a:hover {
    color: #2e6be6;
}

/* single-menu (no children) */
.sitemap-main.single-menu {
    border-bottom: none;
    padding-bottom: 18px;
}

.sitemap-main.single-menu::before {
    height: 18px;
}

/* sub-items */
.sitemap-sub-list {
    list-style: none;
    margin: 0;
    padding: 10px 0 6px;
}

.sitemap-sub-list li a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    margin: 0 8px;
    font-size: 13.5px;
    font-weight: 400;
    color: #64748b;
    text-decoration: none;
    transition: color .22s cubic-bezier(.4, 0, .2, 1), background .22s cubic-bezier(.4, 0, .2, 1);
    border-radius: 6px;
}

.sitemap-sub-list li a::before {
    content: '';
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #c5d4e8;
    flex-shrink: 0;
    transition: background .22s cubic-bezier(.4, 0, .2, 1);
}

.sitemap-sub-list li a:hover {
    color: #2e6be6;
    background: #e8f0fd;
}

.sitemap-sub-list li a:hover::before {
    background: #2e6be6;
}

/* animation */
@keyframes sitemapFadeUp {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0);    }
}

.sitemap-item:nth-child(1)   { animation-delay: .04s; }
.sitemap-item:nth-child(2)   { animation-delay: .08s; }
.sitemap-item:nth-child(3)   { animation-delay: .12s; }
.sitemap-item:nth-child(4)   { animation-delay: .16s; }
.sitemap-item:nth-child(5)   { animation-delay: .20s; }
.sitemap-item:nth-child(6)   { animation-delay: .24s; }
.sitemap-item:nth-child(7)   { animation-delay: .28s; }
.sitemap-item:nth-child(8)   { animation-delay: .32s; }
.sitemap-item:nth-child(n+9) { animation-delay: .36s; }

@media (max-width: 600px) {
    .sub-content { padding: 36px 16px 60px; }
    .sitemap-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
}

@media (max-width: 400px) {
    .sitemap-grid { grid-template-columns: 1fr; }
}
/* ── Sitemap End ── */

.login-contents-subtitle {
    font-size: 16px;
    color: #039;
    margin-bottom: 16px;
}

.login-contents-highlight {
    font-size: 14px;
    color: #747474;
    margin-bottom: 16px;
}

.login-contents-text {
    font-size: 14px;
    color: #8c8c8c;
    margin-bottom: 16px;
    line-height: 1.9;
}

.login-contents-spacer {
    padding-bottom: 20px;
}

/* 0916 */
/* 챗봇 */
.chat-sub-content {
    display: flex;
    height: 80vh;
    overflow: hidden;
}

body:has(.chat-sub-content) {
    overflow: hidden;
}

.new-chat-btn {
    border-bottom: 1px solid #e5e5e5;
    align-items: center;
    padding: 0 0 20px;
}

.btn.new-chat:before {
    content: "add_comment";
    margin-right: 8px;
    font-family: "Material Icons";
    visibility: visible;
}

.chat-list-element {
    background-color: #fafafa;
    width: 250px;
    padding: 18px 16px;
    height: 87vh;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.chats-list {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 25px;
    flex: 1;
    justify-content: center;
    font-weight: 100;
    color: #374151;
    line-height: 1.3;
}

.chats-list:has(.chat-list) {
    justify-content: flex-start;
}

.chat-list {
    width: 100%;
}

.chat-btn {
    width: 100%;
    border-radius: 20px;
    padding: 15px;
    text-align: left;
    font-weight: 200;
    color: #4b4b4b;
}

.chat-btn:hover {
    background-color: #efefef;
}

.login-box {
    width: 30%;
    background-color: #fff;
    color: #000;
    border: 1px solid #c5c5c5;
}

.chat-body {
    flex: 1;
    display: flex;
    align-items: center;
    flex-direction: column;
    font-size: 24px;
    padding: 0 24px;
    justify-content: center;
    position: relative;
}

.chat-body:has(.chating-box) {
    justify-content: flex-start;
}

.chat-info {
    text-align: center;
    font-size: 30px;
    line-height: 1.2;
    padding-bottom: 210px;
}

.chat-info-span {
    color: #016cba;
    font-weight: 900;
}

.chat-input-box {
    border: 1px solid #d9d9d9;
    border-radius: 15px;
    /*max-width: 1608px;*/
    min-height: 120px;
    bottom: 50px;
    position: absolute;
    padding: 0px 16px 12px;
    left: 24px;
    right: 24px;
    box-sizing: border-box;
}

.chat-input-box .file-attach-list {
    display: flex;
    gap: 20px;
    margin-top: 16px;
}

.chat-input-box .file-attach-list li {
    position: relative;
    border-radius: 5px;
    border: 1px solid #eee;
}

.chat-input-box .file-attach-list dl {
    display: flex;
    padding: 5px 16px 5px 10px;
}

.chat-input-box .file-attach-list dl dt {
    width: 40px;
    height: 40px;
    border-radius: 5px;
    background-repeat: no-repeat;
    background-color: white;
    background-position: center;
}

.chat-input-box .file-attach-list dl dd {
    margin-left: 10px;
}

.chat-input-box .file-attach-list dl dd p {
    font-size: 12px;
    font-weight: 400;

}

.chat-input-box .file-attach-list .attach-file__button--delete {
    position: absolute;
    top: -6px;
    right: -6px;
}

.chat-input-box .file-attach-list .btn-close:before {
    content: "close";
    line-height: 16px;
    color: rgb(255, 255, 255);
    vertical-align: 0px;
    width: 17px;
    font-size: 14px !important;
}

.chat-search__input {
    width: 100%;
    height: 44px;
    line-height: 60px;
    border: none;
    font-size: 14px;
}

.chat-search__input:focus-visible {
    /* outline: none; */
}

.btns-group {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.left-btn-group {
    display: flex;
    align-items: center;
    gap: 10px;
}

.icon-clip {
    padding: 12px;
    border: 1px solid #d9d9d9;
    border-radius: 100%;
    background: white;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 45px;
}

.icon-clip:before {
    content: "attach_file";
    vertical-align: middle;
    font-family: "Material Icons";
    visibility: visible;
}

.dropdown-container {
    position: relative;
    display: inline-block;
}

.gpt-button {
    padding: 12px;
    border: 1px solid #d9d9d9;
    border-radius: 60px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 200;
    font-size: 14px;
    cursor: pointer;
}

.gpt-button:hover,
.dropdown-container:focus-within .gpt-button {
    background-color: #f3f3f3;
}

.icon-clip:hover {
    background-color: #f3f3f3;
}

.gpt-icon {
    width: 19px;
    height: 19px;
    background-image: url(https://cdnjs.cloudflare.com/ajax/libs/simple-icons/9.0.0/openai.svg);
    background-repeat: no-repeat;
    background-size: contain;
}

.dropdown-icon {
    width: 20px;
    height: 20px;
    transition: transform 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dropdown-icon::before {
    content: "keyboard_arrow_down";
    font-size: 20px;
    font-family: "Material Icons";
    visibility: visible;
}

.dropdown-container:hover .dropdown-icon,
.dropdown-container:focus-within .dropdown-icon {
    transform: rotate(180deg);
}

.dropdown-menu {
    position: absolute;
    bottom: 100%;
    left: 0;
    right: 0;
    background: white;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    margin-bottom: 4px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.2s ease;
    z-index: 1000;
    overflow: hidden;
}

.dropdown-container:hover .dropdown-menu,
.dropdown-container:focus-within .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.dropdown-item {
    display: block;
    padding: 12px 16px;
    cursor: pointer;
    transition: background-color 0.15s ease;
    border: none;
    background: none;
    width: 100%;
    text-align: left;
    font-size: 14px;
    color: #333;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: #f8f9ff;
}

.dropdown-item:active {
    background-color: #e8ebff;
}

.model-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.model-name {
    font-weight: 500;
    color: #333;
}

.dropdown-item.current-selection {
    color: #667eea;
    background-color: #f0f2ff;
}

.dropdown-item + .dropdown-item {
    border-top: 1px solid #f0f0f0;
}

.chat-search__submit {
    width: 45px;
    height: 45px;
    border: 1px solid #d9d9d9;
    border-radius: 100%;
    background-color: #171717;
}

.chat-search__submit:before {
    content: "arrow_upward";
    vertical-align: middle;
    color: #fff;
    font-family: "Material Icons";
    visibility: visible;
}

.chating-box {
    width: 100%;
    height: calc(83vh - 245px);
    overflow-y: auto;
    padding-bottom: 20px;
    box-sizing: border-box;
}

.chating {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 15px;
    margin-bottom: 30px;
}

.question-box,
.answer-box {
    width: 100%;
    display: flex;
    flex-direction: column;
}

.question-box {
    align-items: flex-end;
}

.question,
.answer {
    padding: 15px 20px;
    border-radius: 20px;
    margin-bottom: 10px;
    overflow-wrap: break-word;
    word-break: normal;
    margin-top: 0;
}

.question {
    background-color: #f8f9fa;
    color: #495057;
    margin-left: auto;
    max-width: 70%;
    font-weight: 200;
    font-size: 16px;
}

.answer {
    /* background-color: #f8f9fa;
  border: 1px solid #e9ecef; */
    color: #000;
    max-width: 70%;
    margin-right: auto;
    font-weight: 200;
    font-size: 16px;
}

.spinner {
    width: 16px;
    height: 16px;
    border: 2px solid #e9ecef;
    border-top-color: #007bff;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    vertical-align: middle;
    display: inline-block;
    margin-left: 10px;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.web-search-icon::before {
    content: "travel_explore";
    vertical-align: middle;
    font-size: 24px;
    font-weight: bold;
    font-family: "Material Icons";
    visibility: visible;
    margin-right: 10px;
}

.web-search {
    color: #000;
    margin-right: auto;
    font-weight: 200;
    font-size: 16px;
}

.web-search__badge {
    background-color: #f7f7f7;
    color: #8e8e8e;
    border-radius: 10px;
    padding: 4px 8px;
    font-size: 14px;
    text-align: center;
}

.web-search__check::before {
    content: "check";
    vertical-align: middle;
    color: green;
    font-size: 24px;
    font-family: "Material Icons";
    visibility: visible;
}

.arrow-open::before {
    content: "expand_more";
    font-weight: bold;
    vertical-align: middle;
    font-size: 24px;
    font-family: "Material Icons";
    visibility: visible;
    transition: transform 0.3s;
}

.arrow-close::before {
    content: "expand_less";
    font-weight: bold;
    vertical-align: middle;
    font-size: 24px;
    font-family: "Material Icons";
    visibility: visible;
    transition: transform 0.3s;
}

.web-search-content {
    width: 100%;
    background-color: #f7f7f7;
    color: #8e8e8e;
    border-radius: 10px;
    padding: 12px 16px;
    font-size: 14px;
    box-sizing: border-box;
    margin-top: 8px;
}

.web-load-icon::before {
    content: "cached";
    vertical-align: middle;
    font-size: 24px;
    font-weight: bold;
    font-family: "Material Icons";
    visibility: visible;
    margin-right: 10px;
}

/* 1017 */
.loading-box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
    width: 100%;
    transition: all 0.2s ease;
    position: fixed;
    top: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.8);
    z-index: 10000;
}

.loading-box p {
    margin: 0 0 50px 0;
    text-align: center;
    font-size: 47px;
    color: #fff;
    font-weight: 600;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

.loading-dot {
    position: relative;
    width: 30px;
    height: 30px;
    border-radius: 15px;
    animation: loader10m 3s ease-in-out infinite;
}

.loading-dot:before {
    content: "";
    position: absolute;
    top: 0px;
    left: -55px;
    height: 30px;
    width: 30px;
    border-radius: 15px;
    animation: loader10g 3s ease-in-out infinite;
}

.loading-dot:after {
    content: "";
    position: absolute;
    top: 0px;
    left: 55px;
    height: 30px;
    width: 30px;
    border-radius: 15px;
    animation: loader10d 3s ease-in-out infinite;
}

.endpoint_info {
    display: flex;
    flex-direction: column;
    border-bottom: 1px solid #e6e9ef;
}

.endpoint_info dl {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    width: 100%;
    border-top: 1px solid #e6e9ef;
}

.endpoint_info dl dt {
    width: 30%;
    min-width: 120px;
    padding: 8px 12px;
    background: #fafafb;
}

.endpoint_info dl dd {
    padding: 8px 12px;
    word-break: break-all;
}

/* 12.12 */
.py12 {
    padding: 12px 0;
}

.text-center-py12 {
    padding: 12px 0;
    text-align: center !important;
}

@keyframes loader10g {
    0% {
        background-color: rgba(100, 180, 255, 0.4);
    }
    25% {
        background-color: rgba(100, 180, 255, 1);
    }
    50% {
        background-color: rgba(100, 180, 255, 0.4);
    }
    75% {
        background-color: rgba(100, 180, 255, 0.4);
    }
    100% {
        background-color: rgba(100, 180, 255, 0.4);
    }
}

@keyframes loader10m {
    0% {
        background-color: rgba(100, 180, 255, 0.4);
    }
    25% {
        background-color: rgba(100, 180, 255, 0.4);
    }
    50% {
        background-color: rgba(100, 180, 255, 1);
    }
    75% {
        background-color: rgba(100, 180, 255, 0.4);
    }
    100% {
        background-color: rgba(100, 180, 255, 0.4);
    }
}

@keyframes loader10d {
    0% {
        background-color: rgba(100, 180, 255, 0.4);
    }
    25% {
        background-color: rgba(100, 180, 255, 0.4);
    }
    50% {
        background-color: rgba(100, 180, 255, 0.4);
    }
    75% {
        background-color: rgba(100, 180, 255, 1);
    }
    100% {
        background-color: rgba(100, 180, 255, 0.4);
    }
}

/* 12.16 */
.filter-toggle-btn {
    width: 24px;
    height: 24px;
    padding: 0;
    border: 0;
    background: none;

    display: flex;
    align-items: center;
    justify-content: center;
}

.filter-toggle-btn::before {
    font-family: 'Material Icons';
    content: "arrow_drop_down";
    font-size: 50px;
    line-height: 0;
}

.filter-toggle-btn.open::before {
    content: "arrow_drop_up";
}

/* 12.17 */
.td-datetime {
    text-align: center;
}

/* 12.19 */
.sign-type-group .label__checkbox {
    margin-left: 0;
}

/* 12.30 */
.tit_download_list {
    margin-top: 15px;
    margin-bottom: 5px;
    font-size: 14px;
    font-weight: bold;
}

.download_list li {
    position: relative;
    display: block;
    margin-bottom: 5px;
    padding-left: 15px
}

.download_list li:before {
    content: '';
    position: absolute;
    left: 2px;
    top: 14px;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #aaa;
}

.download_list li button {
    display: block;
    padding: 4px 0 3px;
    font-size: 14px;
    color: #424242;
}

.file__list {
    width: 100%;
    height: 100%;
}

.file__item,
.file__item--none {
    position: relative;
    border-bottom: 1px solid #eee;
    padding: 5px 0;
    display: flex;
    justify-content: space-between;
}

.file__saved {
    margin: 10px 0;
    background: #fafafb;
    padding: 10px;
    border: 1px solid #eee;
}

.tooltip-wrapper {
    position: relative;
    display: inline-block;
    border-radius: 4px;
}

/* 툴팁 박스 설정 (위치 및 투명도 변경) */
.custom-tooltip {
    position: absolute;
    top: 120%; /* [변경] bottom 대신 top을 사용하여 부모 요소의 아래쪽에 배치 */
    left: 50%;
    transform: translateX(-50%);

    /* [변경] #333 대신 rgba를 사용하여 검은색 배경에 80%의 투명도(0.8) 적용 */
    background-color: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 8px 12px;
    border-radius: 4px;
    font-size: 12px;
    white-space: nowrap;
    z-index: 1000;

    transition: opacity 0.3s;
}

/* 툴팁 꼬리(화살표) 설정 (방향 및 색상 변경) */
.custom-tooltip::after {
    content: "";
    position: absolute;
    bottom: 100%; /* [변경] top 대신 bottom을 써서 툴팁 박스의 위쪽으로 꼬리 이동 */
    left: 50%;
    transform: translateX(-50%);
    border-width: 5px;
    border-style: solid;
    /* [변경] 화살표 방향을 위로 향하게 하고, 배경색과 동일한 투명도 적용 */
    border-color: transparent transparent rgba(0, 0, 0, 0.8) transparent;
}
