/**
 * 포털 전용 — Bootstrap 5로 불가한 것만.
 * 레이아웃·간격·타이포·그리드는 마크업의 Bootstrap 유틸리티 사용.
 */

@font-face {
  font-family: "ChosunGu";
  src: url("https://fastly.jsdelivr.net/gh/projectnoonnu/noonfonts_20-04@1.0/ChosunGu.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

.portal-body {
  font-family: "ChosunGu", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  font-size: 1em;
  /* Bootstrap 불가 — PC 포털 1600 미만에서 가로 스크롤 유도 (제품 정책) */
  min-width: 1600px;
  /* background: url("/images/body_bg.gif") center top repeat; */
}

/***** 테이블 *****/

.table {
  table-layout:fixed;
  background-color:#fff;
  text-align:center;
  border-collapse: collapse;
}
caption {
  color:#000;
  border-top:2px solid #4d4d4d;
  border-left:1px solid #d4d4d4;
  border-right:1px solid #d4d4d4;
  border-bottom:0;
  text-align:left;
  background: linear-gradient( to bottom, #fff, #ebebeb );
  font-size:1.1em;
  padding:0;
}
table thead th {
  font-weight: normal !important;
  background-color: #e9e9e9 !important;
}
table tfoot td {
  background-color: #fff8d2 !important;
}
th,td {
  border: 1px solid #d6d6d6;
  vertical-align: middle !important;
}
/***** 리스트 *****/
ul, ol, li, dl, dt, dd {
  list-style:none;
  margin:0;
  padding:0;
}
.ul50 li.ul50_left {
  float:left;
  width:49%;
}
.ul50 li.ul50_right {
  float:right;
  width:49%;
}
.ul33 li {
  float:left;
  width:33.3333%;
}
.ul25 li {
  float:left;
  width:25%;
}
.ul20 li {
  float:left;
  width:20%;
}
.ul10 li {
  float:left;
  width:10%;
}
.ul5 li {
  float:left;
  width:5%;
}
/***** 백그라운드 *****/
.bg-gradient-header {
  background: linear-gradient( to bottom, #3abcb6, #26a09d );
  border-bottom: 1px solid #037370;
}
.bg-noise {
  background: url("/images/bg_noise.gif");
}
.bg-body {
  background: url("/images/bg_body.gif");
}
.bg-caption {
  background: linear-gradient(to bottom, #fff, #ebebeb);
}
/***** 폰트 *****/
.gulim {
  font-family: "gulim";
  font-size: 12px !important;
}
/***** 그림자 *****/
.shadow-black {
  text-shadow: 0px 0px 2px #000;
}
.shadow-white {
  text-shadow: 0px 0px 2px #fff;
}
/***** 투명도 *****/
.active-alpha80 {
  background-color: rgba(0, 0, 0, 0.8) !important;
}
.active-alpha60 {
  background-color: rgba(0, 0, 0, 0.6) !important;
}
.active-alpha40 {
  background-color: rgba(0, 0, 0, 0.4) !important;
}
.active-alpha20 {
  background-color: rgba(0, 0, 0, 0.2) !important;
}
.hover-alpha80:hover {
  background-color: rgba(0, 0, 0, 0.8) !important;
}
.hover-alpha60:hover {
  background-color: rgba(0, 0, 0, 0.6) !important;
}
.hover-alpha40:hover {
  background-color: rgba(0, 0, 0, 0.4) !important;
}
.hover-alpha20:hover {
  background-color: rgba(0, 0, 0, 0.2) !important;
}
.hover-alpha10:hover {
  background-color: rgba(0, 0, 0, 0.1) !important;
}
.hover-danger:hover {
  background-color: #ffbbbb !important;
}
.hover-brown:hover {
  background-color: #fff8d2 !important;
}
.hover-dark:hover {
  background-color: #000 !important;
  color: #fff !important;
}
/***** 배경색상 *****/
.bg-brown {
  background-color:#fff8d2 !important;
}
.bg-gray {
  background-color:#e9e9e9 !important;
  text-align: center !important;
}

/* 3열 가운데 고정 — Bootstrap flex는 좌우 콘텐츠 너비가 다르면 가운데가 밀림. minmax(0,1fr)로 좌·우 칸을 항상 같게 함 */
.split-center {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
}

/* rowspan 테이블: 현재 행 호버 + rowspan 그룹 셀만 함께 강조 (Bootstrap table-hover는 rowspan에서 불완전) */
.table-rowspan-hover tbody tr.row-hover > td,
.table-rowspan-hover tbody td.group-hover {
  background-color: #e9e9e9 !important;
}

/* 피드백 셀 truncate — max-width 없으면 긴 텍스트가 다음 행 호버를 가로챔 */
.table-fixed {
  table-layout: fixed;
  width: 100%;
}
#appraisalBoard td.appraisal-feedback {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
}

/* table-hover 제외 행 (입력란·고정 라벨 등) */
.table-hover > tbody > tr.no-hover:hover > * {
	--bs-table-color-state: unset;
	--bs-table-bg-state: unset;
}

/* table rowspan 셀 — 버튼을 td 전체에 채움 (Bootstrap h-100은 td에서 높이 계산 안 됨) */
.td-fill {
  height: 1px;
  padding: 0 !important;
}
.td-fill > .btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 100%;
}

/***** 포인터 *****/
.pointer {
  cursor: pointer;
}

/***** 버튼 *****/
.btn {
  font-size: 12px !important;
  font-family: "gulim" !important;
  --bs-btn-border-radius: var(--bs-border-radius-sm); /* 0.25rem */
}

.btn-pt {
  padding-top:9px;
}


a:link,a:visited,a:active,a:hover {
  text-decoration:none;
}
img {
  max-width: 100%;
  vertical-align:middle !important;
}
p {
  margin:0;
  padding:0;
}

/* Toast 열람(.content-view) — portal 전역 p{margin:0} 때문에 문단 줄이 붙어 보임 */
.content-view p {
  margin: 10px 0;
  padding: 0;
}
.content-view p:first-child {
  margin-top: 0;
}
.content-view p:last-child {
  margin-bottom: 0;
}


/* Toast 에디터 본문(기존 thead/th 포함) — 첫 행도 일반 셀과 동일 표시 */
.content-view table th,
.content-view table.lms-plain-table th {
  background-color: #fff !important;
  color: #212529 !important;
  font-weight: normal !important;
}

.content-view img {
  max-width: 100%;
  height: auto;
}

/* Toast 에디터 저장 본문 — 코드 블록 (lms-toast-editor.css와 동일 톤) */
.content-view .toastui-editor-ww-code-block,
.content-view pre:has(> code) {
  margin: 0.75em 0;
  border-radius: 0.375rem;
  border: 1px solid #c5c5c5;
  background: #f6f8fa;
  overflow: auto;
  max-width: 100%;
}

.content-view .toastui-editor-ww-code-block pre,
.content-view pre:has(> code) {
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  white-space: pre-wrap;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.content-view .toastui-editor-ww-code-block pre code,
.content-view pre code {
  display: block;
  font-family: Consolas, 'Courier New', ui-monospace, monospace;
  font-size: 0.875em;
  line-height: 1.5;
  padding: 0.75em 1em;
  color: #24292f;
  white-space: pre-wrap;
  word-break: break-word;
  overflow-wrap: anywhere;
  tab-size: 4;
}

/***** ToolTip *****/
.tooltip-inner {
	max-width: min(520px, 90vw);
	padding: 10px 12px;
	font-size: 1rem;
	font-family: 'ChosunGu';
	text-align: left;
	line-height: 1.55;
	white-space: normal;
}
.tooltip.appraisal-feedback-tooltip .tooltip-inner {
	max-width: min(1000px, 92vw);
}

/***** 내부리스트 *****/
.innerList {
  position:relative;
  width:100%;
  height:710px;
  overflow:auto;
}
.innerList li {
  float:left;
  width:100%;
  padding:10px 5px;
  border-bottom:1px solid #d6d6d6;
  cursor:pointer;
}
.innerList li:hover {
  background-color:#000;
  color:#fff;
}
.innerList li:last-child {
  border:0;
}
/***** 내부리스트 *****/
.innerSearch {
  position:relative;
  width:100%;
  height:310px;
  overflow:auto;
}
.innerSearch li {
  float:left;
  width:100%;
  padding:10px 5px;
  border-bottom:1px solid #d6d6d6;
  cursor:pointer;
}
.innerSearch li:last-child {
  border:0;
}
