.news-body {
	background: var(--bg, #f3f7f4);
}

.news-main {
	padding: 1.5rem 0 3rem;
}

.news-main--wide {
	max-width: 72rem;
	margin: 0 auto;
}

.card {
	background: var(--bg-card, #fff);
	border: 1px solid var(--line, #d8e4dc);
	border-radius: 14px;
	padding: 1.25rem 1.35rem;
}

.news-card {
	max-width: 36rem;
	margin: 0 auto;
}

.news-card--wide {
	max-width: none;
}

.news-card--login h1 {
	margin-bottom: 0.5rem;
}

.news-lead {
	color: var(--muted, #5a6f64);
	margin-bottom: 1.25rem;
}

.news-form label {
	display: block;
	margin-bottom: 1rem;
}

.news-form label span {
	display: block;
	font-weight: 600;
	margin-bottom: 0.35rem;
}

.news-form input[type="text"],
.news-form input[type="password"],
.news-search input[type="search"] {
	width: 100%;
	max-width: 100%;
	padding: 0.65rem 0.75rem;
	border: 1px solid var(--line, #d8e4dc);
	border-radius: 0.35rem;
	font: inherit;
	box-sizing: border-box;
	background: var(--bg-card, #fff);
	color: var(--ink, #1a2e24);
}

.news-form .btn,
.news-toolbar .btn,
.news-actions .btn,
.news-modal-actions .btn {
	margin-top: 0;
}

.btn {
	display: inline-block;
	padding: 0.55rem 0.9rem;
	border: 0;
	border-radius: 0.35rem;
	background: var(--btn-bg, #1b5e46);
	color: var(--btn-fg, #fff);
	font: inherit;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}

.btn:hover { filter: brightness(1.05); text-decoration: none; }

.btn--ghost,
a.btn--ghost {
	background: var(--soft, #e9f3ee);
	color: var(--ink, #1a2e24);
	border: 1px solid var(--line, #d8e4dc);
}

.news-body .site-footer {
	margin-top: 0;
	padding: 1rem 0 1.5rem;
	background: transparent;
	border-top: 1px solid var(--line, #d8e4dc);
}

.news-body .site-footer p {
	margin: 0;
	color: var(--muted, #5a6f64);
	font-size: 0.9rem;
}

.news-info {
	display: grid;
	grid-template-columns: 10rem 1fr;
	gap: 0.35rem 1rem;
	margin: 1.25rem 0;
}

.news-info--detail {
	margin-top: 0;
}

.news-info dt {
	font-weight: 600;
	color: #5c5348;
}

.news-info dd {
	margin: 0;
}

.news-keywords {
	word-break: break-word;
}

.news-url-code {
	display: inline-block;
	padding: 0.15rem 0.45rem;
	background: #f5f0e8;
	border-radius: 4px;
	font-size: 0.92rem;
}

.news-note {
	font-size: 0.95rem;
	color: #5c5348;
}

.news-admin-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1rem;
	margin-bottom: 1rem;
}

.news-admin-head h1 {
	margin: 0 0 0.35rem;
}

.news-admin-user {
	margin: 0;
	color: #5c5348;
	font-size: 0.95rem;
	white-space: nowrap;
}

.news-admin-head-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.5rem;
}

.news-hint {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.85rem;
	font-weight: 400;
	color: #7a7064;
}

.news-clip-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
}

.news-clip-row input[type="url"] {
	flex: 1 1 14rem;
	min-width: 0;
}

.news-img-preview {
	display: block;
	max-width: 100%;
	max-height: 12rem;
	margin-top: 0.5rem;
	border-radius: 6px;
	border: 1px solid #ddd5c8;
	background: #fff;
}

.news-clipart-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
	gap: 0.6rem;
	margin-top: 0.5rem;
}

.news-clipart-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
	padding: 0.35rem;
	border: 2px solid #ddd5c8;
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
}

.news-clipart-item:hover {
	border-color: #c9bfb0;
}

.news-clipart-item.is-selected {
	border-color: #5e35b1;
	box-shadow: 0 0 0 1px #5e35b1;
}

.news-clipart-item img {
	display: block;
	width: 72px;
	height: 72px;
	object-fit: contain;
	background: #faf8f5;
	border-radius: 4px;
}

.news-clipart-item-id {
	font-size: 0.75rem;
	color: #7a7064;
}

.news-toolbar {
	margin: 1rem 0;
}

.news-toolbar-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: flex-end;
}

.news-search {
	flex: 1 1 16rem;
	margin: 0;
}

.news-search span {
	display: block;
	font-weight: 600;
	margin-bottom: 0.35rem;
}

.btn--ghost {
	background: transparent;
	border: 1px solid #c9bfb0;
	color: #3d3428;
	text-decoration: none;
	display: inline-block;
	padding: 0.55rem 0.9rem;
	border-radius: 0.35rem;
}

.news-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.news-filter {
	display: inline-block;
	padding: 0.45rem 0.85rem;
	border-radius: 999px;
	border: 1px solid #c9bfb0;
	background: #fff;
	color: #3d3428;
	text-decoration: none;
	font-size: 0.95rem;
}

.news-filter.is-active {
	background: #3d3428;
	border-color: #3d3428;
	color: #fff;
}

.news-filter--legacy.is-active {
	background: #5e35b1;
	border-color: #5e35b1;
	color: #fff;
}

.news-summary,
.news-empty,
.news-alert {
	margin: 0 0 1rem;
}

.news-alert {
	padding: 0.75rem 1rem;
	border-radius: 0.35rem;
	background: #fff5f2;
	border: 1px solid #ffb4a2;
}

.news-table-wrap {
	overflow-x: auto;
	margin-bottom: 1rem;
}

.news-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}

.news-table th,
.news-table td {
	padding: 0.65rem 0.75rem;
	border-bottom: 1px solid #e6ddd1;
	text-align: left;
	vertical-align: top;
}

.news-table th {
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #5c5348;
	background: #faf7f2;
}

.news-link {
	font-weight: 600;
	color: #8b3a2a;
	text-decoration: none;
}

.news-link:hover {
	text-decoration: underline;
}

.news-excerpt {
	display: block;
	margin-top: 0.25rem;
	color: #5c5348;
	font-size: 0.88rem;
	line-height: 1.4;
}

.news-meta {
	display: block;
	font-size: 0.82rem;
	color: #7a7064;
}

.news-badge {
	display: inline-block;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	font-size: 0.82rem;
	font-weight: 600;
	white-space: nowrap;
}

.news-badge--ok {
	background: #e8f5e9;
	color: #2e7d32;
}

.news-badge--wait {
	background: #fff3e0;
	color: #e65100;
}

.news-badge--unk {
	background: #eceff1;
	color: #546e7a;
}

.news-badge--legacy {
	background: #ede7f6;
	color: #5e35b1;
	margin-top: 0.25rem;
}

.news-pager {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.news-pager-link {
	display: inline-block;
	min-width: 2.2rem;
	text-align: center;
	padding: 0.45rem 0.65rem;
	border: 1px solid #c9bfb0;
	border-radius: 0.35rem;
	text-decoration: none;
	color: #3d3428;
	background: #fff;
}

.news-pager-link.is-active {
	background: #3d3428;
	color: #fff;
	border-color: #3d3428;
}

.news-back {
	margin: 0 0 1rem;
}

.news-preview h2 {
	margin: 1.5rem 0 0.75rem;
	font-size: 1.1rem;
}

.news-preview-body {
	padding: 1rem;
	background: #faf7f2;
	border: 1px solid #e6ddd1;
	border-radius: 0.35rem;
	line-height: 1.55;
	white-space: normal;
	word-break: break-word;
}

.news-preview-body--html {
	white-space: normal;
}

.news-preview-body--html p {
	margin: 0 0 0.75rem;
}

.news-edit-form {
	margin-top: 1rem;
}

.news-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.news-form-grid--compact {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.news-form-subhead {
	margin: 1.25rem 0 0.75rem;
	font-size: 1rem;
	font-weight: 700;
	color: #4a4036;
}

.news-form-grid label {
	display: block;
	margin: 0;
}

.news-form-grid label span {
	display: block;
	font-weight: 600;
	margin-bottom: 0.35rem;
}

.news-form-check {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
}

.news-form-check input {
	width: auto;
}

.news-form-check span {
	font-weight: 600;
}

.news-crumb {
	margin: 0 0 1rem;
	font-size: 0.95rem;
	color: #5a5046;
}

.news-crumb a {
	color: #8b4513;
	text-decoration: none;
}

.news-crumb a:hover {
	text-decoration: underline;
}

.news-row-muted td {
	opacity: 0.65;
}

.news-gen-log {
	margin-top: 1rem;
	max-height: 420px;
	overflow: auto;
	border: 1px solid #e6ddd1;
	border-radius: 0.5rem;
	padding: 0.75rem 1rem;
	background: #faf8f5;
}

.news-gen-list {
	margin: 0;
	padding-left: 1.2rem;
	font-size: 0.88rem;
}

.news-gen-list li {
	margin: 0.2rem 0;
}

.news-guide {
	margin: 0 0 1.25rem;
	padding: 1rem 1.15rem;
	border: 1px solid #e6ddd1;
	border-radius: 0.5rem;
	background: #faf8f5;
}

.news-guide p {
	margin: 0 0 0.75rem;
	line-height: 1.55;
	color: #4a4036;
}

.news-guide ul {
	margin: 0;
	padding-left: 1.2rem;
	line-height: 1.55;
	color: #4a4036;
}

.news-guide li {
	margin: 0.45rem 0;
}

.news-guide code {
	font-size: 0.9em;
}

.news-gen-progress {
	margin-top: 1.25rem;
}

.news-gen-status {
	margin: 0 0 0.65rem;
	font-weight: 600;
	color: #4a4036;
}

.news-gen-bar {
	height: 0.65rem;
	border-radius: 999px;
	background: #e6ddd1;
	overflow: hidden;
	margin-bottom: 0.65rem;
}

.news-gen-bar-fill {
	height: 100%;
	background: linear-gradient(90deg, #8b4513, #c67b3c);
	transition: width 0.25s ease;
}

.news-gen-stats {
	margin: 0 0 0.75rem;
	font-size: 0.92rem;
	color: #5a5046;
}

.news-gen-log-line {
	font-size: 0.86rem;
	font-family: Consolas, "Courier New", monospace;
	padding: 0.2rem 0;
	border-bottom: 1px solid #efe9e1;
}

.news-gen-log-line.is-ok {
	color: #2e7d32;
}

.news-gen-log-line.is-error {
	color: #c62828;
}

.news-gen-log-line.is-warn {
	color: #8a6d3b;
}

.news-gen-log-link {
	margin-left: 0.35rem;
	font-size: 0.82rem;
	font-family: inherit;
	white-space: nowrap;
}

.news-modal-check {
	margin: 0 0 1rem;
}

.news-gen-done {
	margin-top: 1rem;
}

.news-field-editor {
	margin: 0;
}

.news-field-label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.35rem;
}

.news-form-grid input[type="text"],
.news-form-grid input[type="email"],
.news-form-grid input[type="url"],
.news-form-grid input[type="date"],
.news-form-grid select,
.news-form-grid textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.65rem 0.75rem;
	border: 1px solid #c9bfb0;
	border-radius: 0.35rem;
	font: inherit;
}

.news-form-full {
	grid-column: 1 / -1;
}

.news-form-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.25rem;
}

.btn--small {
	padding: 0.35rem 0.65rem;
	font-size: 0.88rem;
}

.btn--danger {
	background: #c62828;
	color: #fff;
	border: 0;
}

.btn--danger:hover {
	background: #b71c1c;
}

.news-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.news-modal[hidden] {
	display: none !important;
}

.news-modal {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}

.news-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}

.news-modal-dialog {
	position: relative;
	width: min(100%, 28rem);
	background: #fff;
	border-radius: 0.5rem;
	padding: 1.25rem;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
}

.news-modal-dialog h2 {
	margin: 0 0 0.75rem;
	font-size: 1.15rem;
}

.news-modal-text {
	margin: 0 0 1rem;
	color: #5c5348;
	line-height: 1.5;
}

.news-modal-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

body.news-modal-open {
	overflow: hidden;
}

.news-ok {
	padding: 0.75rem 1rem;
	border-radius: 0.35rem;
	background: #e8f5e9;
	border: 1px solid #a5d6a7;
	margin: 0 0 1rem;
}

.cke_chrome {
	border-color: #c9bfb0 !important;
	border-radius: 0.35rem !important;
}

.news-field-editor .cke_chrome {
	width: 100% !important;
}

.news-field-editor .cke_button_label {
	display: none !important;
}

.news-field-editor .cke_combo_text {
	width: auto !important;
}

@media (max-width: 720px) {
	.news-form-grid,
	.news-form-grid--compact {
		grid-template-columns: 1fr;
	}

	.news-admin-head {
		flex-direction: column;
	}

	.news-table thead {
		display: none;
	}

	.news-table tr {
		display: block;
		margin-bottom: 1rem;
		border: 1px solid #e6ddd1;
		border-radius: 0.5rem;
		background: #fff;
	}

	.news-table td {
		display: block;
		border-bottom: none;
		padding: 0.5rem 0.75rem;
	}

	.news-table td::before {
		content: attr(data-label);
		display: block;
		font-size: 0.78rem;
		font-weight: 700;
		text-transform: uppercase;
		color: #7a7064;
		margin-bottom: 0.15rem;
	}

	.news-info {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {
	.news-info {
		grid-template-columns: 1fr;
	}
}
