/* News skin. Shared spacing, titles, editor and attachments use board/common. */
.board-news {
    --news-ink: #20201d;
    --news-muted: #777;
    --news-border: #d8d5cc;
    --news-accent: #8b3029;
    --news-surface: #f8f7f2;
    --news-field-border: #ccc8bc;
    --news-soft: #eeece4;
    --news-gap: 20px;
    --editor-surface: var(--news-surface);
    --editor-toolbar: #efeee6;
    --editor-toolbar-extended: #e8e7dd;
    --editor-border: var(--news-field-border);
    --editor-hover: #e3e2d7;
    --editor-active-color: #34342e;
    --editor-active-bg: #e5e4d9;
    --editor-active-border: #aaa99b;
    --editor-muted: #949487;
    width: 100%; max-width: 1440px; margin-inline: auto; padding-inline: 20px;
    color: var(--news-ink);
}
.board-news .list-header { align-items: flex-end; justify-content: space-between; border-bottom: 3px solid var(--news-ink); padding-bottom: 24px; }
.board-news .section-eyebrow { font-family: 'Playfair Display', serif; font-size: 13px; letter-spacing: .14em; color: var(--news-muted); }
.board-news .list-title, .board-news .post-title { font-family: 'Noto Serif KR', serif; letter-spacing: -.045em; }
.board-news .list-edition { display: flex; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--news-border); color: var(--news-muted); font-size: 13px; }
.board-news .empty-message { padding: 60px 0; text-align: center; color: var(--news-muted); }
.board-news .list-item { border-bottom: 1px solid #eee; transition: background-color .2s; }
.board-news .list-item:last-child { border-bottom: 0; }
.board-news .list-item:hover { background: #fafafa; }
.board-news .article-link { display: flex; align-items: center; padding: 26px 0; }
.board-news .list-thumb { width: 210px; height: 140px; margin-right: 28px; flex-shrink: 0; overflow: hidden; background: #f4f5f7; }
.board-news .thumbnail { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.board-news .article-link:hover .thumbnail { transform: scale(1.05); }
.board-news .thumbnail-empty { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #ccc; font-size: 30px; }
.board-news .list-copy { display: flex; flex: 1; min-width: 0; min-height: 140px; flex-direction: column; justify-content: center; }
.board-news .article-title { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 10px; font-family: 'Noto Serif KR', serif; font-size: 21px; font-weight: 700; line-height: 1.6; letter-spacing: -.035em; }
.board-news .category { margin-right: 5px; font-weight: 400; color: var(--news-accent); }
.board-news .secret-icon { font-size: 14px; color: var(--news-muted); }
.board-news .new-badge { font-size: 13px; color: var(--news-accent); }
.board-news .comment-badge, .board-news .required-mark { color: var(--news-accent); }
.board-news .list-summary { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 15px; max-height: 3.6em; font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; color: var(--news-muted); }
.board-news .article-meta { font-size: 13px; color: #999; }
.board-news .meta-divider { margin-inline: 8px; color: var(--news-border); vertical-align: middle; }
.board-news .list-actions { display: flex; justify-content: flex-end; margin-top: 30px; }
.board-news .write-link { display: inline-flex; align-items: center; justify-content: center; padding-inline: 24px; min-height: 46px; background: var(--news-ink); color: #fff; font-size: 15px; }
.board-news .write-link:hover { background: #45453b; color: #fff; }
.board-news.view-page { max-width: 1200px; }
.board-news .article-header { margin-bottom: 32px; }
.board-news .article-category { display: flex; gap: 15px; color: var(--news-accent); font-size: 13px; font-weight: 700; margin-bottom: 15px; }
.board-news .post-title { overflow-wrap: anywhere; }
.board-news .byline { display: flex; justify-content: space-between; align-items: center; gap: var(--news-gap); padding: 15px 0; border-block: 1px solid var(--news-border); }
.board-news .byline-details { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; font-size: 13px; color: #888; }
.board-news .byline-details strong { color: var(--news-ink); font-weight: 600; }
.board-news .share-button { display: inline-flex; width: 40px; height: 40px; flex-shrink: 0; align-items: center; justify-content: center; border: 1px solid var(--news-border); background: var(--news-surface); }
.board-news .share-button:hover { background: var(--news-soft); }
.board-news .story-body { width: 100%; margin: 0 auto 40px; }
.board-news .article-images { margin-bottom: 30px; }
.board-news .article-images img { width: 100%; height: auto; object-fit: contain; margin-bottom: 20px; }
.board-news .post-content { font-size: 18px; line-height: 1.95; color: #333; overflow-wrap: anywhere; }
.board-news .view-actions { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: 14px; border-top: 1px solid var(--news-border); padding: 24px 0; }
.board-news .round-action { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 40px; min-height: 40px; padding: 8px 12px; border: 1px solid var(--news-border); font-size: 13px; }
.board-news .round-action:hover { background: #efeee6; color: var(--news-ink); }
.board-news .action-group { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.board-news .delete-form { margin: 0; }
.board-news .list-action { background: var(--news-ink); color: #fff; }
.board-news .list-action:hover, .board-news .list-action:focus-visible { background: #45453b; border-color: #45453b; color: #fff; }
.board-news .adjacent { margin-top: 30px; border-top: 3px double var(--news-ink); }
.board-news .adjacent-heading { font-family: 'Noto Serif KR', serif; font-size: 19px; font-weight: 700; padding-top: 20px; }
.board-news .adjacent > a { display: flex; align-items: center; gap: 16px; padding: 20px 0; border-bottom: 1px solid #eee; font-size: 14px; }
.board-news .adjacent-label { font-weight: 700; }
.board-news .adjacent-title { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.board-news .adjacent-date { font-size: 14px; color: #999; }
.board-news .write-inner { width: 100%; margin-inline: auto; }
.board-news .form-field { margin-bottom: 30px; }
.board-news .field-label, .board-news .input-field > label { display: block; margin-bottom: 10px; font-size: 16px; font-weight: 600; }
.board-news .select-field { position: relative; }
.board-news .text-input, .board-news .category-select { width: 100%; border: 1px solid var(--news-field-border); padding: 14px 15px; font-size: 19px; color: var(--news-ink); background: var(--news-surface); transition: border-color .2s, box-shadow .2s; }
.board-news .category-select { appearance: none; cursor: pointer; padding-right: 44px; }
.board-news .select-icon { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.board-news .text-input::placeholder { color: #949487; }
.board-news .text-input:focus, .board-news .category-select:focus { border-color: #44443a; box-shadow: 0 0 0 2px #44443a20; }
.board-news .text-input[aria-invalid="true"], .board-news .category-select[aria-invalid="true"] { border-color: var(--news-accent); }
.board-news .guest-fields { display: grid; grid-template-columns: 1fr; gap: var(--news-gap); margin-bottom: 32px; }
.board-news .editor-frame { overflow: hidden; }

/* 공통 에디터의 UI 색상만 뉴스 스킨의 종이색·먹색으로 연결한다. */
.board-news .naknes-editor {
    --ui-white: var(--editor-surface);
    --ui-gray-light: var(--editor-toolbar);
    --ui-gray-medium: var(--editor-border);
    --ui-gray: var(--editor-muted);
    --ui-gray-dark: var(--news-ink);
    --ui-blue: var(--editor-active-color);
    --ui-blue-light: var(--editor-active-border);
    --ui-primary: var(--news-ink);
    --ui-color-primary: var(--news-ink);
    --ui-border-primary: var(--news-ink);
    --ui-color-base: var(--news-ink);
    --ui-bg-base: var(--editor-surface);
    --ui-bg-soft: var(--editor-toolbar);
    --ui-border-base: var(--editor-border);
    border: 1px solid var(--editor-border);
    border-radius: 2px;
    background: var(--editor-surface);
    color: var(--news-ink);
}
.board-news .naknes-editor .toolbar-extended { background: var(--editor-toolbar-extended); }
.board-news .naknes-editor :is(.toolbar, .toolbar-extended) button.active { color: var(--editor-active-color); background: var(--editor-active-bg); border-color: var(--editor-active-border); }
.board-news .naknes-editor .size-control .font-size { border-radius: 2px; }
.board-news .naknes-editor #sourceEditor { background: var(--news-soft); color: var(--news-ink); }
@media (hover: hover) {
    .board-news .naknes-editor :is(.toolbar, .toolbar-extended) button:hover:not(:disabled) { background: var(--editor-hover); color: var(--news-ink); }
}

.board-news .secret-label { display: inline-flex; align-items: center; cursor: pointer; user-select: none; }
.board-news .secret-checkbox { width: 20px; height: 20px; accent-color: #34342e; cursor: pointer; }
.board-news .secret-text { margin-left: 10px; font-size: 16px; }
.board-news .form-actions { display: flex; justify-content: center; gap: 10px; margin-top: 60px; padding-top: 40px; border-top: 1px solid #eee; }
.board-news .write-button { display: inline-flex; align-items: center; justify-content: center; padding: 0 24px; min-height: 50px; border: 1px solid var(--news-field-border); font-size: 15px; background: #efeee6; color: #34342e; }
.board-news .write-button:hover { background: #e3e2d7; }
.board-news .submit-button { min-width: 140px; background: var(--news-ink); color: #fff; }
.board-news .submit-button:hover { background: #45453b; }

/* 공통 업로더의 실제 클래스와 색상 변수를 신문형 스킨에 맞춘다. */
.board.board-news .attachments {
    border-color: var(--news-field-border); border-radius: 0; color: var(--news-ink); box-shadow: none;
    --attachment-line: var(--news-border);
    --attachment-emphasis: var(--news-field-border);
    --attachment-soft: var(--news-soft);
    --attachment-muted: #706d63;
    --ui-color-primary: var(--news-ink);
    background: transparent;
}
/* 다운로드 목록도 업로더와 같은 종이색·먹색을 사용한다. */
.board.board-news .downloads .download-item { border: 1px solid var(--news-border); border-radius: 2px; background: var(--news-soft); color: var(--news-ink); }
.board.board-news .downloads .file-icon { border-radius: 2px; background: var(--news-surface); }
.board.board-news .downloads .badge { background: var(--news-soft); color: var(--attachment-muted); }
@media (hover: hover) {
    .board.board-news .downloads .download-item:hover { border-color: #8b877a; background: #e5e2d8; color: var(--news-ink); }
}
.board.board-news .uploader :is(.add-button, .preview, .retry-button) { border-radius: 2px; background: var(--news-soft); }
.board.board-news .uploader .add-button { color: var(--news-ink); }
.board.board-news .uploader .remove-button { border-color: var(--news-field-border); background: var(--news-surface); color: var(--news-ink); }
.board.board-news .uploader .retry-button { color: var(--news-ink); }
.board.board-news .uploader [data-file-progress] { accent-color: var(--news-ink); }
.board.board-news .uploader .attachment-strip { scrollbar-color: #b6b1a3 transparent; }
@media (hover: hover) {
    .board.board-news .uploader :is(.add-button, .retry-button):hover:not(:disabled) { border-color: #8b877a; background: #e5e2d8; color: var(--news-ink); }
    .board.board-news .uploader .remove-button:hover { border-color: var(--news-accent); background: var(--news-accent); color: #fff; }
}
.board-news :is(.text-input, .category-select, .write-button, .round-action) { border-radius: 2px; }
.board-news .form-actions { border-color: var(--news-border); }
.board-news .round-action { background: var(--news-surface); }
.board-news .round-action.list-action { background: var(--news-ink); }
.board-news .round-action.list-action:hover { background: #45453b; }
.board-news .pagination :is(a, span) { border-radius: 2px; background: transparent; }
.board-news .pagination a:hover { border-color: var(--news-border); background: var(--news-soft); }
.board-news .pagination .active { background: var(--news-ink); border-color: var(--news-ink); }
/* 뉴스 전용 댓글 부분 뷰: AJAX 갱신 후에도 같은 스타일을 유지한다. */
.board-news .news-comments { padding-block: 32px; }
.board-news .news-comments .comment-header { border-bottom: 2px solid var(--news-ink); margin-bottom: 0; }
.board-news .news-comments .comment-title { font-family: 'Noto Serif KR', serif; color: var(--news-ink); font-size: 22px; }
.board-news .news-comments :is(.comment-count, .comment-hint, .comment-date, .comment-reply-date, .comment-form-hint, .comment-empty-message) { color: #706d63; }
.board-news .news-comments .comment-list { border-top: 0; border-color: var(--news-border); margin-bottom: 28px; }
.board-news .news-comments .comment-item { border-color: var(--news-border); }
.board-news .news-comments :is(.comment-avatar, .comment-reply-avatar) { background: var(--news-soft); color: #59564d; border: 1px solid var(--news-field-border); border-radius: 2px; }
.board-news .news-comments :is(.comment-writer, .comment-reply-writer, .comment-content, .comment-reply-content) { color: var(--news-ink); }
.board-news .news-comments :is(.comment-author-meta, .comment-reply-author-meta) { flex-wrap: wrap; gap: 4px 10px; }
.board-news .news-comments .comment-replies { border-color: var(--news-border); }
.board-news .news-comments :is(.comment-reply, .comment-delete, .comment-reply-delete, .comment-reply-cancel) { color: #706d63; }
.board-news .news-comments :is(.comment-reply, .comment-delete, .comment-reply-delete, .comment-reply-cancel):hover { color: var(--news-accent); }
.board-news .news-comments :is(.comment-empty-dot, .comment-reply-status-dot) { background: #8b877a; animation: none; }
.board-news .news-comments :is(.comment-guest-input, .comment-input-wrap, .comment-login-message) { border-color: var(--news-field-border); border-radius: 2px; background: var(--news-surface); color: var(--news-ink); }
.board-news .news-comments .comment-guest-input { min-width: 0; min-height: 44px; }
.board-news .news-comments .comment-input { background: transparent; min-height: 120px; resize: vertical; }
.board-news .news-comments :is(.comment-input, .comment-guest-input)::placeholder { color: #777368; }
.board-news .news-comments .comment-input-wrap:focus-within { border-color: #59564d; }
.board-news .news-comments .comment-guest-input:focus-visible { outline: 2px solid var(--news-ink); outline-offset: 2px; }
.board-news .news-comments .comment-form-footer { flex-wrap: wrap; gap: 12px; border-color: var(--news-border); background: var(--news-soft); }
.board-news .news-comments .comment-submit { min-height: 44px; margin-left: auto; border-radius: 2px; background: var(--news-ink); color: #fff; }
.board-news .news-comments .comment-submit:hover { background: #45453b; }
.board-news .news-comments .comment-submit:disabled { opacity: .5; cursor: wait; }
.board-news .news-comments .comment-reply-status { flex-wrap: wrap; gap: 12px; border: 1px solid var(--news-field-border); border-radius: 2px; background: var(--news-soft); color: var(--news-ink); }
.board-news .news-comments .comment-footer { border-color: var(--news-border); }
.board-news .news-comments :is(.comment-top, .comment-list-link) { border: 1px solid var(--news-field-border); border-radius: 2px; background: var(--news-surface); color: var(--news-ink); box-shadow: none; }
.board-news .news-comments :is(.comment-top, .comment-list-link):hover { background: var(--news-soft); transform: none; }
@media (min-width: 768px) {
    .board-news .list-header { flex-direction: row; }
    .board-news .guest-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1200px) { .board-news { padding-inline: 40px; } }
@media (max-width: 767px) {
    .board-news { padding-inline: 18px; }
    .board-news .list-header { align-items: stretch; }
    .board-news .section-eyebrow { display: none; }
    .board-news .list-edition { padding: 11px 0; }
    .board-news .article-link { padding: 20px 0; align-items: flex-start; }
    .board-news .list-thumb { width: 110px; height: 82px; margin-right: 15px; }
    .board-news .list-copy { min-height: 82px; }
    .board-news .article-title { font-size: 16px; -webkit-line-clamp: 2; margin-bottom: 7px; }
    .board-news .list-summary { font-size: 15px; -webkit-line-clamp: 1; max-height: 1.8em; margin-bottom: 8px; }
    .board-news .article-header { margin-bottom: 24px; }
    .board-news .byline-details { gap: 5px 12px; }
    .board-news .post-content { font-size: 16px; line-height: 1.9; }
    .board-news .adjacent > a { flex-wrap: wrap; gap: 8px; font-size: 13px; }
}

.board-news .news-search-form { --ui-border-base: var(--news-field-border); --ui-color-base: var(--news-ink); }
.board-news .news-search-form input::placeholder { color: var(--news-muted); opacity: 1; }
.board-news .news-search-form:focus-within { border-color: var(--news-ink); outline: 2px solid var(--news-ink); outline-offset: 2px; }
