@charset "utf-8";

html::-webkit-scrollbar {
	width: 10px;
	height: 10px;
}
html::-webkit-scrollbar-thumb {
	background: #c1c1c1;
}
html::-webkit-scrollbar-track {
	background: #f1f1f1;
}

/* Layout */
body.type1 {
	background-color: var(--body-bg-color);
}

.type1 #wrap {
	min-width: 1580px;
}

.type1 #container {
	padding-top: var(--header-height);
}

.type1 #contents {
	margin: 30px 0 30px var(--snb-width);
	position: relative;
	transition: margin var(--hide-snb-transition);
}
.type1 #snb ~ #contents {
	margin-left: var(--snb-width);
}
.type1.snb-hide #snb ~ #contents {
	margin-left: 0 !important;
}
.type1 .contents-head {
	position: relative;
	margin: 0 40px 26px;
}
.type1 .contents-head .contents-title {
	margin-bottom: 0;
}

.type1.snb-hide #container {
	padding-left: 0;
}

#container:has(#snb.snb-hide) #contents {
	margin-left: 0;
}

.type1 .contents-body {
	padding: 30px 35px;
	background: #fff;
	border-radius: 10px;
	position: relative;
	margin: 0 40px;
	min-height: calc(100vh - 200px);
}

.type1 .btn-menu {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background-color: #f0f4ff;
	position: absolute;
	top: 50%;
	right: -14px;
	z-index: 100;
	transform: translateY(-50%);
	font-size: 14px;
	color: #5d74c5;
	transition: all 0.4s;
	box-shadow: 2px 2px 2px #9baac7b8;
	border: 1px solid #6983b59e;
}

.type1 .btn-menu i {
	transform: rotate(180deg);
	transition: all 0.4s;
}

.type1 .snb-hide .btn-menu {
	right: -30px;
}

.type1 .snb-hide .btn-menu i {
	transform: rotate(0);
}

.type1 .contents-info {
	padding: 30px 35px;
	background: #fff;
	border-radius: 10px;
	position: relative;
	margin: 0 40px 25px;
}
.type1 .contents-info .btn {
	margin-right: 6px;
}

/* header */
.type1 #header {
	width: 100%;
	min-width: 1580px;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	height: var(--header-height);
	padding-right: 35px;
	background-color: #39466d;
	border-bottom: 1px solid #1a1a1a;
}
.type1 #header .container {
	display: flex;
	align-items: center;
	height: 100%;
}
.type1 #header .logo,
.type1 #header .header-right {
	flex: 0 0 auto;
}
.type1 #header .logo {
	min-width: var(--snb-width);
	text-align: center;
	height: 100%;
	padding: 10px 35px;
	transition: margin-left var(--hide-snb-transition);
	color: #fff;
	font-size: 24px;
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 700;
	margin-right: 40px;
	letter-spacing: 0.04em;
}

.type1 #header .logo img,
.type1 #header .logo span {
	vertical-align: middle;
}
.type1 #header .logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}
.type1 #header .text-link {
	color: #fff;
}
.type1 #header nav {
	flex: 1 1 auto;
}

.type1 #header .gnb {
	text-align: center !important;
}
.type1 #header .gnb li {
	display: inline-block;
	padding: 0 25px;
	position: relative;
}
.type1 #header .gnb li + li::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -2px;
	margin-top: -2px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: #6c7fa6;
}
.type1 #header .gnb li a {
	display: inline-block;
	color: #17316c;
	font-size: 18px;
	font-weight: 600;
	position: relative;
}
.type1 #header .gnb li.on a::after {
	content: "";
	position: absolute;
	bottom: -20px;
	left: 0;
	right: 0;
	height: 6px;
	background: currentColor;
}
.type1 #header .header-right {
	margin-left: auto;
}
.type1 #header .header-util,
.type1 #header .header-menu {
	display: inline-block;
	vertical-align: middle;
}
.type1 #header .header-util {
	display: inline-block;
	border-radius: 22px;
	padding: 4px 7px 4px 30px;
	vertical-align: middle;
}
.type1 #header .header-util li {
	display: inline-block;
	color: #6e7273;
	font-size: 13px;
	vertical-align: middle;
	margin-right: 20px;
	padding-right: 20px;
	position: relative;
}

.type1 #header .header-util li::after {
	content: "";
	width: 1px;
	height: 16px;
	background-color: rgba(255, 255, 255, 0.6);
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
}
.type1 #header .header-util li:last-child {
	margin-right: 0;
	padding-right: 0;
}
.type1 #header .header-util li:last-child::after {
	display: none;
}
.type1 #header .header-util .logout a {
	display: block;
	width: 46px;
	height: 46px;
	line-height: 46px;
	border-radius: 50%;
	font-size: 20px;
	color: #fff;
	text-align: center;
}
.type1 #header .header-util .logout a:hover {
	color: var(--primary-color);
	background-color: #f9f9f9;
}

.type1 #header .header-util .greeting {
	margin-right: 10px;
	color: #fff;
	font-size: 16px;
}
.type1 #header .header-util .greeting strong {
	font-weight: 600;
}

/* 글자크기 */
.type1 #header .zoom-wrap .text {
	font-size: 16px;
	color: #fff;
	margin-right: 10px;
}
.type1 #header .zoom-wrap .btn-zoom {
	width: 29.19px;
	height: 29.19px;
	line-height: 27.19px;
	text-align: center;
	color: #fff;
	font-size: 13px;
	border: 1px solid #fff9;
	border-radius: 50%;
}

.type1 #header .zoom-wrap .btn-zoom:hover {
	color: var(--primary-color);
	background-color: #f9f9f9;
}

.type1 #header .header-button {
	display: inline-block;
	vertical-align: middle;
}
.type1 #header .header-button .modify {
	margin-right: 5px;
}
.type1 #header .header-button .modify:hover {
	/* color: #fff;
	background: rgb(86, 202, 0); */
	color: var(--primary-color);
	background-color: #f9f9f9;
}
.type1 #header .header-button a,
.type1 #header .header-button button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	color: #fff;
	font-size: 20px;
	vertical-align: middle;
}
.type1 #header .header-button a:hover {
	/* color: #fff;
	background: #9692ff; */
	color: var(--primary-color);
	background-color: #f9f9f9;
}
.type1 #header .header-menu {
	margin-left: 10px;
}
.type1 #header .header-menu li {
	display: inline-block;
	vertical-align: middle;
}
.type1 #header .header-menu li + li {
	margin-left: 7px;
}
.type1 #header .header-menu li a {
	display: inline-block;
	height: 47px;
	border: 2px solid #4a9cf0;
	border-radius: 23px;
	padding: 0 30px;
	color: #1982ee;
	font-size: 16px;
	font-weight: 600;
	line-height: 43px;
}
.type1 #header .header-menu li i {
	font-size: 110%;
	margin-right: 7px;
}
.type1 #header .header-menu li.on a {
	background: #4a9cf0;
	color: #fff;
}

/* snb */
.type1 #snb {
	position: fixed;
	top: var(--header-height);
	left: 0;
	bottom: 0;
	z-index: 10;
	width: var(--snb-width);
	background: #373b50;
	transition: transform var(--hide-snb-transition);
	display: flex;
	flex-direction: column;
}
.type1 #snb .container {
	height: 100%;
}

.type1 #snb.snb-hide {
	transform: translateX(calc(var(--snb-width) * -1));
}
.type1 #snb.snb-hover-hide {
	transform: none;
}

.type1 #snb .snb-menu {
	max-height: 100%;
	overflow-y: auto;
	overscroll-behavior-y: contain;
	border-bottom: 1px solid #1e2941;
}
.type1 #snb .snb-menu::-webkit-scrollbar {
	width: 7px;
	height: 7px;
}
.type1 #snb .snb-menu::-webkit-scrollbar-thumb {
	background: #c1c1c1;
}
.type1 #snb .snb-menu::-webkit-scrollbar-track {
	background: #101018;
}

.type1 #snb .link-depth-1:hover {
	background-color: #40518d;
}
.type1 #snb a {
	display: block;
}
.type1 #snb .link-depth-1 {
	position: relative;
	display: block;
	height: 52px;
	padding-left: 35px;
	color: #fff;
	font-size: 16px;
	outline: none;
	line-height: 52px;
	font-weight: 500;
}
.type1 #snb .snb-menu > li.on .link-depth-1 {
	color: #fff;
	background-color: #40518d;
	font-weight: bold;
}

.type1 #snb .snb-menu > li {
	position: relative;
	display: flex;
	flex-direction: column;
	border-top: 1px solid #1e2941;
	border-bottom: 1px solid #40485d;
}
.type1 #snb .snb-menu > li:first-child {
	border-top: none;
}

.type1 #snb .snb-menu > li .link-depth-1::before {
	content: "";
	width: 5px;
	height: 0;
	position: absolute;
	top: 0;
	left: 0;
	background-color: #4d80e3;
	transition: all 0.2s ease-in-out;
	transition-duration: 0.3s;
}
.type1 #snb .snb-menu > li.on .link-depth-1::before {
	height: 100%;
}
.type1 #snb .has-sub .link-depth-1::after {
	content: "\f054";
	position: absolute;
	top: 50%;
	right: 30px;
	font-size: 12px;
	font-family: "Font Awesome 6 Pro";
	font-weight: 300;
	transform: translateY(-50%);
	transition: transform 0.4s;
}
.type1 #snb .has-sub.on .link-depth-1::after {
	transform: translateY(-50%) rotate(90deg);
	transition: transform 0.4s;
}

.type1 #snb .depth-2 {
	background-color: #292d45;
	max-height: 0;
	overflow: hidden;
	padding: 0 10px 0 35px;
	flex: 1 1 auto;
	min-width: 0;
	opacity: 0;
}
.type1 #snb .has-sub.on > .depth-2 {
	max-height: 1000px;
	opacity: 1;
	transition: all 0.4s ease-in-out;
}

.type1 #snb .depth-2 li {
	margin: 20px 0;
}

/* .type1 #snb .depth-2 li {
	padding-top: 16px;
}
.type1 #snb .depth-2 li:first-child {
	padding-top: 20px;
}
.type1 #snb .depth-2 li:last-child {
	padding-bottom: 20px;
} */

.type1 #snb .link-depth-2 {
	position: relative;
	color: rgb(166 182 212 / 90%);
	font-size: 15px;
}

.type1 #snb .depth-2 > li.on .link-depth-2,
.type1 #snb .link-depth-2:hover {
	color: #bfd9ff;
	font-weight: bold;
}

.type1 #snb .link-depth-2:hover::before {
	background: #9692ff;
}

.type1 #snb .hover-area {
	position: absolute;
	right: -10px;
	top: 0;
	bottom: 0;
	width: 10px;
}

/* Location */
.type1 #location {
	position: absolute;
	top: 10px;
	right: 0;
}
.type1 #location ul:after {
	content: "";
	display: block;
	clear: both;
}
.type1 #location ul li {
	float: left;
	color: #666;
	font-size: 13px;
}
.type1 #location ul li:last-child {
	color: #444;
	font-weight: 600;
}
.type1 #location ul li.home {
	color: #526698;
}
.type1 #location ul li:after {
	content: ">";
	color: #bcbcbc;
	margin: 0 6px;
	font-family: serif;
}
.type1 #location ul li:last-child:after {
	display: none;
}
.type1 #location ul li a {
	color: inherit;
}

/* Layout */
body.type2 {
	background-color: var(--body-bg-color);
	overflow-x: hidden;
}
@media screen and (max-width: 1420px) {
	body.type2 {
		overflow-x: auto;
	}
}

.type2 #contents {
	width: var(--container-width);
	margin: 30px auto;
}
.type2 .contents-head {
	position: relative;
	margin-bottom: 26px;
}
.type2 .contents-head .contents-title {
	margin-bottom: 0;
}
.type2 .contents-body {
	padding: 30px 35px;
	background: #fff;
	border-radius: 10px;
	position: relative;
	/* min-height: calc(100vh - 250px); */
}

.type2 .contents-info {
	padding: 30px 35px;
	background: #fff;
	border-radius: 10px;
	position: relative;
	margin-bottom: 25px;
}
.type2 .contents-info .btn {
	margin-right: 6px;
}

/* header */
.type2 #header {
	background: #fff;
	border-bottom: 1px solid rgb(229, 234, 239);
	min-width: var(--container-width);
}
.type2 #header .container {
	width: var(--container-width);
	margin: 0 auto;
	display: flex;
	align-items: center;
	padding: 14px 0;
}
.type2 #header .logo {
	text-align: center;
	background: #fff; /* border-right:1px solid #cacfd8; */
}
.type2 #header .logo img {
	display: inline !important;
	vertical-align: middle;
	height: 32px;
}
.type2 #header .logo span {
	display: none;
}

.type2 #header .header-right {
	margin-left: auto;
}
.type2 #header .header-util,
.type2 #header .header-menu {
	display: inline-block;
	vertical-align: middle;
}
.type2 #header .header-util {
	margin-left: auto;
	display: inline-block;
	vertical-align: middle;
}
.type2 #header .header-util li {
	display: inline-block;
	font-size: 15px;
	vertical-align: middle;
	margin-right: 20px;
	padding-right: 20px;
	position: relative;
}
.type2 #header .header-util li::after {
	content: "";
	width: 1px;
	height: 16px;
	background-color: var(--primary-color);
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
}
.type2 #header .header-util li:last-child {
	margin-right: 0;
	padding-right: 0;
}
.type2 #header .header-util li:last-child::after {
	display: none;
}
.type2 #header .header-util .logout a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--body-bg-color);
}
.type2 #header .header-util .logout i {
	color: var(--primary-color);
}
.type2 #header .header-util .greeting {
	color: #555;
}
.type2 #header .header-util .greeting strong {
	font-weight: 600;
}

/* 글자크기 */
.type2 #header .zoom-wrap .text {
	font-size: 16px;
	color: #555;
	margin-right: 10px;
}
.type2 #header .zoom-wrap .btn-zoom {
	width: 29.19px;
	height: 29.19px;
	line-height: 29.19px;
	text-align: center;
	color: var(--primary-color);
	font-size: 13px;
	border: 1px solid #dfdfdf;
	border-radius: 50%;
}

.type2 #header .header-button {
	display: inline-block;
	margin-left: 10px;
	vertical-align: middle;
}
.type2 #header .header-button .modify {
	margin-right: 5px;
}
.type2 #header .header-button a,
.type2 #header .header-button button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	font-size: 14px;
	color: var(--primary-color);
	border: 1px solid #dfdfdf;
	vertical-align: middle;
}

/* snb */
.type2 #snb_wrap {
	position: sticky;
	top: 0;
	z-index: 30;
}
.type2 #snb {
	background: #fff;
	border-bottom: 1px solid rgba(28, 39, 60, 0.12);
	min-width: var(--container-width);
}
.type2 #snb .container {
	margin: 0 auto;
	width: var(--container-width);
}
.type2 #snb .snb-menu {
	display: flex;
	align-items: center;
	padding: 10px 0;
}
.type2 #snb .snb-menu.menu-full {
	justify-content: space-between;
}
.type2 #snb .snb-menu > li {
	position: relative;
	margin-right: 10px;
}
.type2 #snb a {
	display: block;
}
.type2 #snb .link-depth-1 {
	position: relative;
	display: block;
	height: 40px;
	font-size: 15px;
	outline: none;
	line-height: 40px;
	font-weight: 600;
	padding: 0 15px;
	border-radius: 8px;
	color: #555;
}
.type2 #snb .snb-menu .link-depth-1:hover,
.type2 #snb .snb-menu > li.on .link-depth-1,
.type2 #snb .snb-menu > li.open .link-depth-1 {
	color: #fff;
	background-color: var(--primary-color);
}
.type2 #snb .has-sub .link-depth-1::after {
	content: "\f078";
	margin-left: 10px;
	font-family: "Font Awesome 6 Pro";
	font-weight: bold;
	font-size: 12px;
	color: #999;
}
.type2 #snb .snb-menu > li.on .link-depth-1::after,
.type2 #snb .snb-menu > li.open .link-depth-1::after {
	color: #fff;
}
.type2 #snb .depth-2 {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 180px;
	background: #fff;
	padding: 20px 25px;
	border-radius: 10px;
	box-shadow: 0 2px 6px #2553b91a;
	white-space: nowrap;
}
.type2 #snb .has-sub.open > .depth-2 {
	display: block;
}
.type2 #snb .depth-2 > li + li {
	margin-top: 10px;
}
.type2 #snb .link-depth-2 {
	position: relative;
	font-size: 14px;
	padding-left: 12px;
}
.type2 #snb .link-depth-2::before {
	content: "";
	position: absolute;
	top: 8px;
	left: 0;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: currentColor;
}
.type2 #snb .depth-2 > li.on .link-depth-2,
.type2 #snb .link-depth-2:hover {
	font-weight: bold;
}
.type2 .btn-menu,
.type2 #snb .hover-area {
	display: none;
}

/* Location */
.type2 #location {
	position: absolute;
	top: 13px;
	right: 0;
}
.type2 #location ul:after {
	content: "";
	display: block;
	clear: both;
}
.type2 #location ul li {
	float: left;
	position: relative;
	color: #666;
	font-size: 13px;
	padding-right: 12px;
	margin-right: 8px;
}
.type2 #location ul li:last-child {
	color: #444;
	font-weight: 600;
	padding-right: 0;
	margin-right: 0;
}
.type2 #location ul li.home {
	color: var(--primary-color);
}
.type2 #location ul li:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	background: #bcbcbc;
	width: 4px;
	height: 4px;
	margin-top: -2px;
	border-radius: 50%;
	vertical-align: middle;
}
.type2 #location ul li:last-child:after {
	display: none;
}
.type2 #location ul li a {
	color: inherit;
}

/* 긴급 공지 알림 */
.top-notice {
	height: var(--top-notice-height);
}
.type1 .top-notice {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	min-width: 1580px;
	z-index: 100;
	background-color: #292d45;
}
.type2 .top-notice {
	background-color: #455c94;
}

.top-notice a {
	display: block;
	height: 100%;
}

.top-notice .text {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	padding: 0 35px;
	color: #fff;
	font-size: 14px;
	font-weight: 500;
	text-align: center;
	line-height: 1.2;
}
.top-notice .text:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

body:has(.top-notice) #header {
	top: var(--top-notice-height);
}
body:has(.top-notice).type1 #header {
	border-top: 1px solid #1a1a1a;
}
body:has(.top-notice) #snb {
	top: calc(var(--header-height) + var(--top-notice-height));
}
body:has(.top-notice).type1 #container {
	padding-top: calc(var(--header-height) + var(--top-notice-height));
}

/* 코드 */
code:not(.hljs) {
	padding: 2px 4px;
	font-size: 85%;
	color: #c7254e;
	font-family: Consolas, "Courier New", monospace;
	background-color: #f9f2f4;
	border-radius: 4px;
}
code.hljs {
	/* margin-bottom: 30px; */
	overflow-y: auto;
	max-height: 420px;
	border: 1px solid #ccc;
	font-family: Consolas;
	font-size: 12px;
	padding: 16px;
	tab-size: 4;
}
.highlight {
	position: relative;
	margin-top: 15px;
}
.example-box ~ .highlight {
	margin-top: -1px;
}
.highlight pre {
	white-space: pre-wrap;
	margin-top: 0;
	margin-bottom: 0;
}
.hljs-copy {
	position: absolute;
	top: 0;
	right: 0;
	background: #fff;
	padding: 5px 10px;
	outline: 0;
	border: 1px solid #ccc;
	border-bottom-left-radius: 3px;
	color: #666;
	font-weight: 600;
}
.hljs-copy:hover {
	background: var(--primary-color);
	color: #fff;
	border-color: var(--primary-color);
}
.hljs-comment {
	color: #9298a8 !important;
}

/* 예시 */
.example-box {
	border: 1px solid #ccc;
	padding: 55px 25px 20px;
	position: relative;
}
.example-box::before {
	content: "EXAMPLE";
	position: absolute;
	top: 18px;
	left: 25px;
	color: #959595;
	font-weight: bold;
	font-size: 12px;
}

/* print */
@media print {
	body {
		background: transparent;
	}
	#wrap {
		min-width: initial;
	}
	#header,
	#footer,
	#snb,
	h2.contents-title,
	.search-box,
	.data-box,
	.table-container ~ .table-container,
	.table-header {
		display: none;
	}
	#container {
		padding-top: 0;
		padding-left: 0;
	}
	#contents {
		padding: 0;
	}
	#contents .contents-wrap {
		border-radius: 0;
		padding: 0;
	}
}
