@charset "UTF-8";
/*
	뉴스 큐레이션(아웃링크 피드) 전용 스타일.

	주의
	· adminlte 와 섞이지 않게 모든 클래스에 .news- 프리픽스를 붙인다.
	  (card / badge / btn 같은 부트스트랩 클래스명을 재정의하지 않는다)
	· 기준 폭은 360px 이다. 가로 스크롤이 생기지 않도록 세로 스택이 기본이고,
	  넓은 화면에서만 한 줄 배치로 바뀐다.
	· 뉴스 화면에는 광고를 넣지 않는다. 광고 관련 규칙은 여기에 두지 않는다.
*/

/* ===== 목록 ===== */
.news-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.news-item {
	padding: 14px 16px;
	border-bottom: 1px solid #e9ecef;
}

.news-item:last-child {
	border-bottom: 0;
}

/* 제목: 원문으로 나가는 유일한 링크다. 충분히 크게 둔다. */
.news-title {
	margin: 0 0 6px;
	font-size: 15px;
	line-height: 1.45;
	font-weight: 600;
	word-break: break-word;
}

.news-title a {
	color: #212529;
	text-decoration: none;
}

.news-title a:hover,
.news-title a:focus {
	color: #007bff;
	text-decoration: underline;
}

/* 외부로 나간다는 표시. 아이콘 폰트에 의존하지 않게 문자로 그린다. */
.news-title a::after {
	content: "\2197";
	margin-left: 4px;
	font-size: 11px;
	color: #adb5bd;
	vertical-align: super;
}

/* 요약: 원문 일부만 인용한다. 3줄에서 자른다. */
.news-summary {
	margin: 0 0 8px;
	font-size: 13px;
	line-height: 1.6;
	color: #6c757d;
	word-break: break-word;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* ===== 메타(출처 · 시간 · 분류) ===== */
.news-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	color: #868e96;
}

/* 출처 배지는 저작권 표시의 일부다. 눈에 띄되 제목을 이기지 않게 한다. */
.news-source {
	display: inline-block;
	max-width: 60vw;
	padding: 2px 7px;
	border: 1px solid #ced4da;
	border-radius: 10px;
	background: #f8f9fa;
	color: #495057;
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	vertical-align: middle;
}

.news-cate {
	display: inline-block;
	padding: 2px 7px;
	border-radius: 10px;
	background: #e7f1ff;
	color: #1c64c4;
	white-space: nowrap;
}

.news-time {
	white-space: nowrap;
}

.news-dot {
	color: #ced4da;
}

/* ===== 분류 필터 ===== */
.news-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 12px 16px;
	border-bottom: 1px solid #e9ecef;
}

.news-filter-btn {
	display: inline-block;
	padding: 4px 12px;
	border: 1px solid #ced4da;
	border-radius: 14px;
	background: #fff;
	color: #495057;
	font-size: 12px;
	line-height: 1.5;
	text-decoration: none;
}

.news-filter-btn:hover,
.news-filter-btn:focus {
	border-color: #007bff;
	color: #007bff;
	text-decoration: none;
}

.news-filter-btn.is-on {
	border-color: #007bff;
	background: #007bff;
	color: #fff;
}

/* ===== 빈 상태 ===== */
.news-empty {
	padding: 44px 16px;
	text-align: center;
	color: #868e96;
}

.news-empty-title {
	margin: 0 0 6px;
	font-size: 14px;
	font-weight: 600;
	color: #6c757d;
}

.news-empty-desc {
	margin: 0;
	font-size: 12px;
	line-height: 1.7;
}

/* ===== 저작권 안내 ===== */
.news-notice {
	padding: 12px 16px;
	border-top: 1px solid #e9ecef;
	background: #f8f9fa;
	color: #868e96;
	font-size: 11px;
	line-height: 1.7;
}

.news-notice a {
	color: #6c757d;
	text-decoration: underline;
}

/* ===== 홈 위젯 ===== */
.news-widget-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 4px;
	margin-bottom: 4px;
}

.news-widget-more {
	font-size: 12px;
	white-space: nowrap;
}

/* 홈 위젯은 목록보다 촘촘하게. 요약은 2줄까지만 보여준다. */
.news-widget .news-item {
	padding: 11px 16px;
}

.news-widget .news-title {
	font-size: 14px;
	margin-bottom: 4px;
}

.news-widget .news-summary {
	margin-bottom: 6px;
	-webkit-line-clamp: 2;
}

/* ===== 넓은 화면 ===== */
@media (min-width: 768px) {
	.news-item {
		padding: 16px 20px;
	}

	.news-title {
		font-size: 16px;
	}

	.news-summary {
		font-size: 13.5px;
	}

	.news-source {
		max-width: 240px;
	}
}
