/**
 * NRS Workflow — Editor UI CSS
 *
 * 편집 모드의 제목 위 메타 영역 + 본문 아래 저장 바.
 * 색상은 nrs-shared의 CSS 변수 활용 (다크 모드 자동 적용).
 */

/* ─── 고정 너비 (NRS 테마 본문 영역과 일치) ─────────────────────────────
 * --nrs-max-width: 1200px (전체 컨테이너)
 * --nrs-content-width: 780px (본문 텍스트)
 * 글작성·글보기 화면은 브라우저 너비에 반응하지 않고 1200px 고정.
 */
body.post-new-php #nrsbody-content,
body.post-php #nrsbody-content,
body.toplevel_page_nrs-article-view #nrsbody-content,
body[class*="page_nrs-article-view"] #nrsbody-content {
    max-width: 1200px;
}
body.post-new-php #post-body,
body.post-php #post-body,
body.post-new-php #postbox-container-2,
body.post-php #postbox-container-2 {
    max-width: 1200px;
}
/* 사이드바 메타박스 컬럼 + 본문 컬럼 너비 안정화 */
body.post-new-php #post-body.columns-2 #postbox-container-1,
body.post-php   #post-body.columns-2 #postbox-container-1 {
    width: 280px;
}
/* Round 19 (2026-05-24): `.nrs-wf-article-view*` 의 단일 출처는 article-view.css.
 * 이 파일은 글 쓰기/편집(post-new/post-edit) 전용 — 글 보기 페이지 layout 정의 제거. */

/* 글보기 페이지 — ND소프트 사양 */
/* v2.2.0-4 (요구4): 브레드크럼 행 + 글자크기 컨트롤 한 줄 배치 (좌/우). */
.nrs-wf-article-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    /* v2.2.0-4 (2026-05-31): 780px 중앙 정렬 (좌우 auto). */
    max-width: 680px; /* v2.2.0-63: 880 메인 내 모든 요소를 본문과 동일한 680px 폭으로 통일 */
    margin: 12px auto 9px; /* v2.2.0-69: 상하 여백 25% 축소(16/12 → 12/9) */
    flex-wrap: wrap;
}
.nrs-wf-article-topbar .nrs-wf-breadcrumb { margin: 0; }
.nrs-wf-article-topbar .nrs-article-scale-tools { margin: 0; flex: 0 0 auto; }

.nrs-wf-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--nrs-text-primary, #111827);   /* 2026-09-27 안 A(옛 #6b7280) */
    margin: 16px 0 12px;
}
.nrs-wf-breadcrumb a {
    color: var(--nrs-text-primary, #111827);
    text-decoration: none;
}
.nrs-wf-breadcrumb a:hover { color: #1d4ed8; }
.nrs-wf-breadcrumb__sep { color: #9ca3af; }

/* Round 20 (2026-05-24): `.nrs-wf-article-title` 의 폰트/사이즈 정의 삭제.
   동일 element 가 `.nrs-article-title` 클래스도 가지므로 nrs-article.css 의 30px / 1.55 가 적용됨.
   여기서는 margin 만 유지 (다른 cascade 와 충돌 없음). */
.nrs-wf-article-title { margin: 6px 0 20px; }

/* Round 19 (2026-05-24): .nrs-wf-content-body 의 폰트/크기/너비는 nrs-article.css 가 책임. */

/* v2.2.0-4 (요구6): 프로필 사진·폰트 +25% (48→60px, 13→16px). 요구6-1: 신상정보 + 최근글. */
/* v2.2.0-4 (2026-05-31): 날짜 1행 (승인요청/발행/최근수정) — 780px 중앙 정렬. */
.nrs-wf-article-dates {
    max-width: 680px; /* v2.2.0-63: 880 메인 내 모든 요소를 본문과 동일한 680px 폭으로 통일 */
    margin: 8px auto 14px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--nrs-text-primary, #111827);   /* 2026-09-27 안 A(옛 #6b7280) */
}
.nrs-wf-article-dates__label { font-weight: 600; color: #50575e; margin-right: 3px; }
.nrs-wf-article-dates__sep   { color: #cbd5e0; }

/* v2.2.0-4 (2026-05-31, 요구5): 프로필 아래 관련기사 블록 + '다른기사 보기'. */
.nrs-wf-article-related {
    max-width: 680px; /* v2.2.0-63: 880 메인 내 모든 요소를 본문과 동일한 680px 폭으로 통일 */
    margin: 16px auto;
}
.nrs-wf-article-related__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 2px solid #111827;
    padding-bottom: 6px;
    margin-bottom: 8px;
}
.nrs-wf-article-related__title { font-size: 16px; font-weight: 700; margin: 0; }
.nrs-wf-article-related__more  { font-size: 13px; color: #1d4ed8; text-decoration: none; }
.nrs-wf-article-related__more:hover { text-decoration: underline; }
.nrs-wf-article-related__list { list-style: none; margin: 0; padding: 0; }
.nrs-wf-article-related__list li { padding: 5px 0; border-bottom: 1px solid #f0f0f1; }
.nrs-wf-article-related__list a { color: #374151; text-decoration: none; font-size: 14px; }
.nrs-wf-article-related__list a:hover { color: #1d4ed8; text-decoration: underline; }

/* 2026-09-28(운영자 "제안 순서대로 바꿔라" — 본문 뒤 순서): 감정 표현 막대가 본문 틀(.nrs-article-root) 밖(저작권 뒤)에 올 때도
   다른 구획처럼 680px 가운데(v2.2.0-63 통일). 틀 안에 있을 때는 틀이 이미 680 이라 차이 없음. 위아래 여백은 reactions.css 그대로. */
.nrs-wf-article-view .nrs-rx {
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
}

/* 작성자 프로필 박스 (2026-06-01 개편): 등록자 N명 → 박스 N개 수직 배열.
   아바타 | 이름·직책·이메일·기자페이지 | 우측 최근기사 3개 */
.nrs-wf-article-authors {
    max-width: 680px; /* v2.2.0-63: 880 메인 내 모든 요소를 본문과 동일한 680px 폭으로 통일 */
    margin: 24px auto 0;
    border-top: 1px solid #e5e7eb;
}
.nrs-wf-article-author {
    display: flex;
    align-items: center;    /* v2.2.0-59: 프로필(이미지·텍스트)과 최근글 영역을 수직 중앙 정렬 */
    flex-wrap: wrap;
    gap: 16px;
    padding: 20px 0;
    border-bottom: 1px solid #e5e7eb;
}
/* v2.2.0-24: 프로필 영역(아바타+정보) — 아바타·텍스트 둘 다 수직 가운데 정렬.
   경계 최대 50%(긴 이름/이메일 시 그 안에서 줄바꿈). */
.nrs-wf-article-author__main {
    display: flex;
    align-items: center;    /* v2.2.0-24: 아바타·텍스트 둘 다 수직 가운데. */
    gap: 16px;
    flex: 0 1 auto;
    max-width: 50%;
    min-width: 0;
}
.nrs-wf-article-author__avatar {
    flex: 0 0 auto;
    display: flex;
    align-items: center;    /* 세로 중앙. */
}
.nrs-wf-article-author__avatar img {
    border-radius: 50%;
    height: 72px;           /* v2.2.0-24: 고정 크기(stretch 의존 제거 — __main 가운데 정렬). */
    width: 72px;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}
.nrs-wf-article-author__info {
    flex: 0 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;  /* v2.2.0-24: 텍스트 블록 수직 가운데. */
    line-height: 1.5;
    font-size: 14px;          /* v2.2.0-59: 최근글(14px)과 동일 */
    gap: 3px;                 /* 최근글 리스트 gap(3px)과 동일 */
    overflow-wrap: anywhere;  /* 긴 이름/이메일은 50% 안에서 줄바꿈(경계 안 뚫음). */
}
/* v2.2.0-59: 성명·소속·직책·이메일·기자페이지 폰트를 오른쪽 최근글(14px)과 동일하게, 행간도 통일(margin 제거). */
.nrs-wf-article-author__info strong { font-size: 14px; }
.nrs-wf-article-author__role { color: #6b7280; font-weight: 400; margin-left: 4px; font-size: 14px; }
.nrs-wf-article-author__email { font-size: 14px; color: var(--nrs-text-primary, #111827); }   /* 2026-09-27 안 A(옛 #6b7280) */
.nrs-wf-article-author__page { font-size: 14px; color: #1d4ed8; text-decoration: none; margin-top: 0; }
.nrs-wf-article-author__page:hover { text-decoration: underline; }

/* 요구3 (2026-06-01): 프로필 박스 우측 — 이 기자의 최근 기사 3개 */
.nrs-wf-article-author__recent {
    flex: 1 1 auto;   /* 프로필(__main, 최대 50%) 이외 나머지 차지. */
    min-width: 0;
    border-left: 1px solid #e5e7eb;
    padding-left: 16px;
}
/* v2.2.0-24: 행 사이 실선 제거 + 행간을 좌측 __info 텍스트와 동일(line-height 1.5, gap 3px). */
.nrs-wf-article-author__recent-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.nrs-wf-article-author__recent-list li {
    position: relative;
    padding: 0 0 0 12px;
    font-size: 14px;
    line-height: 1.5;
}
.nrs-wf-article-author__recent-list li::before {
    content: "·";
    position: absolute;
    left: 2px;
    color: #9ca3af;
}
.nrs-wf-article-author__recent-list a {
    display: block;
    color: #374151;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.nrs-wf-article-author__recent-list a:hover { color: #1d4ed8; text-decoration: underline; }

/* 요구2 (2026-06-01): 저작권 문구 — 프로필 박스 아래·우측 정렬 */
.nrs-wf-article-copyright {
    text-align: right;
    color: var(--nrs-text-primary, #111827);   /* 2026-09-27 안 A(옛 #6b7280) */
    font-size: 12px;
    max-width: 680px; /* v2.2.0-63: 880 메인 내 모든 요소를 본문과 동일한 680px 폭으로 통일 */
    margin: 10px auto 24px;
}

/* 모바일: 프로필 박스 세로 적층 — 최근기사는 아래로, 좌측 보더 제거 */
@media (max-width: 600px) {
    .nrs-wf-article-author__main {
        max-width: 100%;
        flex-basis: 100%;
    }
    .nrs-wf-article-author__recent {
        flex-basis: 100%;
        border-left: 0;
        padding-left: 0;
        border-top: 1px solid #e5e7eb;
        padding-top: 8px;
    }
}

/* ─── 엠바고 위젯 — 입력란 + 마스크 오버레이 + 달력 버튼 + X 버튼 ─ */
.nrs-em {
    display: inline-flex;
    align-items: center;        /* 세 요소(입력란·달력·X)를 세로 중앙 정렬 */
    gap: 6px;
}
/* 명시적 크기를 가진 field — 입력과 마스크가 모두 그 안에 정확히 겹쳐짐 */
.nrs-em__field {
    position: relative;
    display: inline-block;
    width: 180px;
    height: 36px;
    box-sizing: border-box;
    isolation: isolate;
}

/* 마스크 + 실제 입력 — 둘 다 <input>으로 렌더해 텍스트 위치를 픽셀 단위로 일치시킴 */
.nrs-em__mask,
.nrs-em__input {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    padding: 0 8px;
    margin: 0;
    font: 14px/normal ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
    letter-spacing: 0;
    border-radius: 4px;
    -webkit-appearance: none;
    appearance: none;
    vertical-align: top;
    outline: none;
}
.nrs-em__mask {
    border: 1px solid transparent;
    background: transparent !important;
    color: #b0b5bb !important;
    z-index: 1 !important;
    pointer-events: none;
    -webkit-text-fill-color: #b0b5bb;
}
.nrs-em__input {
    border: 1px solid #c3c4c7;
    background: transparent !important;
    color: #1d2327;
    z-index: 10 !important;
}
.nrs-em__input:focus {
    border-color: #2271b1;
    box-shadow: 0 0 0 1px #2271b1;
}
/* ID 선택자로 절대 우선순위 확보 — NRS .button의 모든 dimension 속성 무력화
   ★2026-09-30 디자인 통일 2단계: 36px → 조작 요소 높이 토큰 31px(09-20 운영자 결정 "단추·입력칸·선택칸은 31px 한 가지" —
     바로 옆 엠바고 입력칸이 31px 라 5px 어긋나 있었다 · 실측) · 모서리 ARTRANS --r-sm. 정사각형은 그대로. */
button#nrs-em-open.nrs-em__btn,
button#nrs-em-clear.nrs-em__btn,
.nrs-em__btn {
    padding: 0 !important;
    margin: 0 !important;
    width: var(--nrs-control-h, 31px) !important;
    height: var(--nrs-control-h, 31px) !important;
    min-width: var(--nrs-control-h, 31px) !important;
    max-width: var(--nrs-control-h, 31px) !important;
    min-height: var(--nrs-control-h, 31px) !important;
    max-height: var(--nrs-control-h, 31px) !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
    vertical-align: top !important;
    font-size: 14px !important;
    border-width: 1px !important;
    border-style: solid !important;
    border-radius: var(--r-sm, 6px) !important;
}
.nrs-em__btn .dashicons {
    font-size: 16px;
    width: 16px;
    height: 16px;
    line-height: 1 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
}
#nrs-em-clear { font-size: 16px; color: #6b7280; }
#nrs-em-clear:hover { color: #b91c1c; }

/* ─── 모달 ───────────────────────────────────────────────────── */
.nrs-em-modal[hidden] { display: none !important; }
.nrs-em-modal {
    position: fixed;
    inset: 0;
    z-index: 100050;
}
.nrs-em-modal__bd {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
}
.nrs-em-modal__dlg {
    position: relative;
    margin: 6vh auto 0;
    width: min(480px, 95vw);
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 24px 48px rgba(0,0,0,0.25);
    overflow: hidden;
}
.nrs-em-modal__hd {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    background: #1f2937;
    color: #fff;
}
.nrs-em-modal__hd h3 { margin: 0; font-size: 15px; color: #fff; }
.nrs-em-modal__close {
    background: transparent;
    border: 0;
    color: #fff;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}
.nrs-em-modal__body {
    padding: 16px;
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

/* 캘린더 — NRS Shared Calendar 원본 스타일 참고 */
.nrs-em-cal { flex: 1; min-width: 0; }
.nrs-em-cal__nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.nrs-em-cal__nav-group {
    display: flex;
    gap: 2px;
}
.nrs-em-cal__title {
    font-weight: 600;
    font-size: 14px;
    color: #1f2937;
}
.nrs-em-cal__navbtn {
    background: #f3f4f6;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    width: 28px;
    height: 28px;
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    color: #4b5563;
}
.nrs-em-cal__navbtn:hover { background: #e5e7eb; }
.nrs-em-cal__weekdays,
.nrs-em-cal__grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
}
.nrs-em-cal__weekdays {
    font-size: 11px;
    color: #6b7280;
    margin-bottom: 4px;
    font-weight: 500;
}
.nrs-em-cal__weekdays > span {
    text-align: center;
    padding: 4px 0;
}
.nrs-em-cal__dow--sun { color: #dc2626; }
.nrs-em-cal__dow--sat { color: #2563eb; }

.nrs-em-cal__cell {
    background: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
    padding: 6px 0;
    cursor: pointer;
    font-size: 13px;
    color: #1f2937;
    text-align: center;
}
.nrs-em-cal__cell:hover {
    background: #f3f4f6;
    border-color: #d1d5db;
}
.nrs-em-cal__cell--blank { visibility: hidden; cursor: default; }
.nrs-em-cal__cell--sun { color: #dc2626; }
.nrs-em-cal__cell--sat { color: #2563eb; }
.nrs-em-cal__cell.is-today {
    border-color: #3b82f6;
    color: #1d4ed8;
    font-weight: 600;
}
.nrs-em-cal__cell.is-selected {
    background: #2563eb;
    color: #fff;
    border-color: #2563eb;
}
.nrs-em-cal__cell.is-selected.nrs-em-cal__cell--sun,
.nrs-em-cal__cell.is-selected.nrs-em-cal__cell--sat { color: #fff; }
.nrs-em-cal__cell.is-selected:hover { background: #1d4ed8; }

/* 시·분 — 스크롤 리스트 + 직접 입력 (NRS Shared Calendar 원본 구조) */
.nrs-em-time {
    display: flex;
    align-items: flex-start;
    gap: 4px;
    padding-top: 26px; /* 캘린더 타이틀 라인 높이만큼 내림 */
}
.nrs-em-time__col {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 48px;
}
.nrs-em-time__label {
    text-align: center;
    font-size: 11px;
    color: #6b7280;
    margin-bottom: 4px;
    font-weight: 500;
}
.nrs-em-time__list {
    height: 180px;
    overflow-y: auto;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background: #fff;
    scrollbar-width: thin;
}
.nrs-em-time__list::-webkit-scrollbar { width: 6px; }
.nrs-em-time__list::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
.nrs-em-time__item {
    display: block;
    width: 100%;
    padding: 5px 0;
    background: transparent;
    border: 0;
    cursor: pointer;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 13px;
    color: #1f2937;
    text-align: center;
}
.nrs-em-time__item:hover { background: #f3f4f6; }
.nrs-em-time__item.is-selected {
    background: #2563eb;
    color: #fff;
    font-weight: 600;
}
.nrs-em-time__input {
    margin-top: 4px;
    width: 100%;
    padding: 4px 6px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 13px;
    text-align: center;
}
.nrs-em-time__colon {
    font-size: 22px;
    font-weight: 600;
    color: #6b7280;
    padding: 28px 4px 0;
    user-select: none;
}

/* 푸터 */
.nrs-em-modal__ft {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 10px 16px 14px;
    border-top: 1px solid #e5e7eb;
}

/* ─── 수정 요청 모달 ─────────────────────────────────────────────── */
.nrs-wf-rr-modal[hidden] { display: none !important; }
.nrs-wf-rr-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
}
.nrs-wf-rr-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
}
.nrs-wf-rr-modal__dialog {
    position: relative;
    margin: 8vh auto;
    width: min(560px, 95vw);
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 24px 48px rgba(0,0,0,0.25);
    overflow: hidden;
}
.nrs-wf-rr-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    background: #1f2937;
    color: #fff;
}
.nrs-wf-rr-modal__header h2 { margin: 0; font-size: 16px; color: #fff; }
.nrs-wf-rr-modal__close {
    background: transparent;
    border: 0;
    color: #fff;
    font-size: 22px;
    cursor: pointer;
}
.nrs-wf-rr-modal__form { padding: 20px; }
.nrs-wf-rr-modal__form .description { margin: 0 0 14px; color: #4b5563; }
.nrs-wf-rr-modal__label { display: block; margin-bottom: 12px; }
.nrs-wf-rr-modal__label span { display: block; font-weight: 600; margin-bottom: 4px; }
.nrs-wf-rr-modal__label textarea {
    width: 100%;
    padding: 8px;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
    font-family: inherit;
    line-height: 1.5;
}
.nrs-wf-rr-modal__msg {
    min-height: 18px;
    margin: 6px 0 0;
    font-size: 13px;
}
.nrs-wf-rr-modal__msg.is-error   { color: #b91c1c; }
.nrs-wf-rr-modal__msg.is-success { color: #047857; }
.nrs-wf-rr-modal__actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
}
.nrs-wf-meta-hint {
    display: block;
    margin-top: 4px;
    color: #6b7280;
    font-size: 12px;
}

/* ─── 기사 최근로그 (사이드바 박스) — ND소프트 사양 ───────────────── */
.nrs-wf-recentlog {
    list-style: none;
    margin: 0;
    padding: 0;
}
.nrs-wf-recentlog__empty {
    color: #6b7280;
    padding: 16px 0;
    text-align: center;
    font-size: 12px;
}
.nrs-wf-recentlog__item {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 10px;
    padding: 12px 0;
    border-bottom: 1px solid #f0f0f1;
}
.nrs-wf-recentlog__item:last-child { border-bottom: 0; }

.nrs-wf-recentlog__num {
    width: 24px;
    height: 24px;
    background: #14b8a6;
    color: #fff;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 600;
    flex-shrink: 0;
}

.nrs-wf-recentlog__body { min-width: 0; }

.nrs-wf-recentlog__head {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
}
.nrs-wf-recentlog__type {
    color: #1f2937;
    font-size: 13px;
    font-weight: 600;
}
.nrs-wf-recentlog__diff-btn {
    background: #e0f2fe;
    color: #075985;
    border: 1px solid #bae6fd;
    border-radius: 12px;
    padding: 1px 8px;
    font-size: 11px;
    line-height: 1.4;
    cursor: pointer;
}
.nrs-wf-recentlog__diff-btn:hover { background: #bae6fd; }

.nrs-wf-recentlog__actor {
    font-size: 12px;
    color: #374151;
    margin-bottom: 2px;
}
.nrs-wf-recentlog__role {
    color: #6b7280;
    font-weight: 400;
    margin-left: 2px;
}
.nrs-wf-recentlog__time,
.nrs-wf-recentlog__ip {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: #6b7280;
    line-height: 1.6;
}
.nrs-wf-recentlog__time .dashicons,
.nrs-wf-recentlog__ip .dashicons {
    font-size: 13px;
    width: 13px;
    height: 13px;
    color: #9ca3af;
}

/* ─── 제목 위 메타 영역 — NRS 메타박스 스타일 통일 (헤더 제거) ───── */
/* Round 9 (2026-05-23): 부제목 아래 ~ 본문 비주얼/코드 탭 사이 여백을 30px → 약 15px로 축소.
   메타 영역의 padding-bottom·margin-bottom만 조정. 본문 wrapper(클래식 에디터 TinyMCE 툴바·아이콘)에는 손대지 않음. */
.nrs-wf-meta-area {
    background: #fff;
    border: 1px solid #c3c4c7;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
    border-radius: var(--nrs-box-radius, 3px); /* 박스 라운드 표준 3px(2026-07-20) */
    margin: 0 0 4px;             /* 16 → 4 (본문 wrapper의 자연 margin-top과 합쳐 약 15px) */
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 14px 16px;
    align-items: center;
    padding: 16px 18px 6px;       /* 16 18 12 → 16 18 6 (부제목 행 아래 빈 공간 압축) */
    position: relative;
}
.nrs-wf-meta-row--subtitle { margin-bottom: 0; }

/* Round 9 (2026-05-23, Round 8 작업 2 롤백): wrapper의 padding/margin 강제 0이
   TinyMCE 툴바 아이콘을 가리는 부작용 발생 → 모두 제거.
   사용자 요구는 "부제목 아래 ~ 본문 입력 영역의 비주얼/코드 탭 사이 여백 30px → 15px" 뿐.
   이는 메타 영역의 margin-bottom으로만 조절한다(아래 .nrs-wf-meta-area 정의에서 처리). */

/* Round 7 (2026-05-23): 영상/음성 추가 통합 모달 — URL 입력 + 파일 업로드 */
.nrs-wf-add-video-modal {
    position: fixed; inset: 0; z-index: 100000;
    display: flex; align-items: center; justify-content: center;
}
.nrs-wf-add-video-modal__backdrop {
    position: absolute; inset: 0; background: rgba(0,0,0,0.5);
}
.nrs-wf-add-video-modal__panel {
    position: relative; z-index: 1;
    width: 480px; max-width: 90vw;
    background: #fff; border-radius: 8px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.2);
    display: flex; flex-direction: column;
}
.nrs-wf-add-video-modal__header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 20px; border-bottom: 1px solid #e5e7eb;
}
.nrs-wf-add-video-modal__close {
    background: none; border: none; font-size: 22px; cursor: pointer; line-height: 1; padding: 0 4px;
}
.nrs-wf-add-video-modal__body {
    padding: 20px 24px; display: flex; flex-direction: column; gap: 10px;
}
.nrs-wf-add-video-modal__body h3 {
    margin: 0; font-size: 14px; color: #374151;
}
.nrs-wf-add-video-modal__url,
.nrs-wf-add-video-modal__title,
.nrs-wf-add-video-modal__caption {
    width: 100%; padding: 8px 10px; border: 1px solid #d1d5db; border-radius: 4px; box-sizing: border-box;
}
.nrs-wf-add-video-modal__divider {
    text-align: center; color: #9ca3af; font-size: 12px; margin: 12px 0; position: relative;
}
.nrs-wf-add-video-modal__divider::before,
.nrs-wf-add-video-modal__divider::after {
    content: ''; position: absolute; top: 50%; width: 40%; height: 1px; background: #e5e7eb;
}
.nrs-wf-add-video-modal__divider::before { left: 0; }
.nrs-wf-add-video-modal__divider::after { right: 0; }
.nrs-wf-add-video-modal__footer {
    padding: 12px 20px; border-top: 1px solid #e5e7eb; display: flex; justify-content: flex-end;
}

/* Round 8 (2026-05-23): postbox 깜빡임 — 토글 transition 폐기 + header border-bottom을 항상 같은 색으로 고정.
   .closed 토글에 의한 display 전환 시 border가 깜빡이지 않도록 transition 자체를 제거하고 색을 영구 고정. */
.postbox > .postbox-header {
    border-bottom: 1px solid #c3c4c7 !important;
    transition: none !important;
}
.postbox.closed > .postbox-header {
    border-bottom-color: #c3c4c7 !important;
}
.postbox .inside {
    border-top: 0 !important;
    margin-top: 0 !important;
}
.postbox.closed .inside {
    display: none;
}

/* Round 7: 글로벌 — 모든 NRS 메타박스 안 아이콘+텍스트 버튼 정렬 표준 */
.nrs-wf-related .button,
.nrs-wf-rmodal .button,
.nrs-wf-meta-area .button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center;
    line-height: 1;
}
.nrs-wf-related .button .dashicons,
.nrs-wf-rmodal .button .dashicons,
.nrs-wf-meta-area .button .dashicons,
.nrs-wf-registered-images .button .dashicons,
.nrs-wf-registered-videos .button .dashicons,
.nrs-wf-registered-files .button .dashicons {
    line-height: 1 !important;
    vertical-align: middle;
    margin: 0 4px 0 0 !important;
    font-size: 16px;
    width: 16px;
    height: 16px;
}

/* Round 6 (2026-05-23): 등록 이미지/영상음성/파일 박스 최하단 [+ 추가] 버튼 영역 */
.nrs-wf-rm-footer {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--nrs-border-secondary, #e5e7eb);
    display: flex;
    justify-content: flex-end;
}

/* Round 7: 라벨 텍스트 옆에 [+ 추가] 버튼 인라인 배치 (가로 정렬) */
.nrs-wf-meta-label--with-action {
    display: flex !important;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.nrs-wf-meta-label--with-action .nrs-wf-meta-label__text {
    flex: 1;
}
.nrs-wf-meta-label--with-action .nrs-wf-category-add,
.nrs-wf-meta-label--with-action .nrs-wf-writer-add-btn {
    margin: 0 !important;
    flex: 0 0 auto;
}

/* Round 8 (2026-05-23): select와 input의 시각 높이 픽셀 단위 정확 일치 (height 명시 + line-height 통일) */
.nrs-wf-meta-area input[type="text"],
.nrs-wf-meta-area input[type="email"],
.nrs-wf-meta-area input[type="url"],
.nrs-wf-meta-area select,
.nrs-wf-meta-area .nrs-wf-readonly {
    height: 32px;
    min-height: 32px;
    line-height: 22px;
    padding: 3px 10px;
    box-sizing: border-box;
}

/* 카테고리 select의 우측 화살표 공간(28px) 유지 */
.nrs-wf-meta-area .nrs-wf-category-l1,
.nrs-wf-meta-area .nrs-wf-category-l2 {
    padding-right: 28px;
}

/* Round 8: 카테고리·등록자 row padding 통일 */
.nrs-wf-category-row,
.nrs-wf-writer-row {
    padding: 2px 6px;
}

/* 라디오·체크박스 그룹은 컨테이너에 최소 높이만 적용 */
.nrs-wf-meta-area .nrs-wf-radio-group,
.nrs-wf-meta-area .nrs-wf-checkbox-group {
    min-height: 32px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

/* 메타 영역 안의 제목·부제목 슬롯 — 다른 입력들과 통일 */
.nrs-wf-meta-row--title #title {
    width: 100%;
    padding: 6px 10px;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
    font-size: 14px;
    line-height: 1.4;
    background: #fff;
    color: #1d2327;
}
.nrs-wf-meta-row--subtitle #nrs-wf-subtitle-field {
    width: 100%;
    padding: 6px 10px;
    border: 1px solid #c3c4c7;
    border-radius: 4px;
    font-size: 14px;
    line-height: 1.5;
    background: #fff;
    color: #1d2327;
    font-family: inherit;
    resize: vertical;
}

.nrs-wf-meta-row {
    display: contents;
}

.nrs-wf-meta-label {
    font-weight: 600;
    font-size: 13px;
    color: var(--nrs-text-secondary, #50575e);
}

.nrs-wf-meta-value {
    min-width: 0;
}

.nrs-wf-meta-hint {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    color: var(--nrs-text-tertiary, #6b7280);
}

/* 검토 상태 라디오 */
.nrs-wf-radio {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-right: 16px;
    cursor: pointer;
    font-size: 13px;
    color: var(--nrs-text-primary, #1e1e1e);
}

.nrs-wf-radio input[type="radio"] {
    margin: 0;
}

/* 등록자 일람 */
.nrs-wf-writers-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.nrs-wf-writer-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--nrs-bg-primary, #fff);
    border: 1px solid var(--nrs-border-secondary, #e5e7eb);
    border-radius: 16px;
    padding: 4px 10px;
    font-size: 12px;
}

.nrs-wf-writer-item--primary {
    background: var(--nrs-accent-bg, #dbeafe);
    border-color: var(--nrs-accent-primary, #2563eb);
}

.nrs-wf-writer-badge {
    background: var(--nrs-accent-primary, #2563eb);
    color: #fff;
    padding: 2px 6px;
    border-radius: 8px;
    font-size: 10px;
    font-weight: 700;
}

.nrs-wf-writer-name {
    color: var(--nrs-text-primary, #1e1e1e);
}

.nrs-wf-writer-remove {
    background: none;
    border: none;
    color: var(--nrs-text-tertiary, #6b7280);
    cursor: pointer;
    padding: 0;
    font-size: 14px;
    line-height: 1;
}

.nrs-wf-writer-remove:hover {
    color: var(--nrs-danger-primary, #dc2626);
}

.nrs-wf-writer-add-btn {
    font-size: 12px !important;
    color: var(--nrs-accent-primary, #2563eb) !important;
}

/* ─── 본문 아래 저장 바 (결정 19.2.1) ──────────────────────────────── */
.nrs-wf-save-bar {
    display: flex;
    align-items: stretch;
    margin: 16px 0 24px;
    height: 48px;
}

.nrs-wf-save-bar__gap {
    width: 5%;
    flex-shrink: 0;
}

.nrs-wf-save-bar__btn {
    height: 100%;
    border: none;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.nrs-wf-save-bar__btn:disabled,
.nrs-wf-save-bar__btn.nrs-wf-btn--disabled {
    cursor: not-allowed;
}

/* [임시 저장] 25% (활성: 주황. 비활성: 회색)
   Round 6 (2026-05-23): 배경색보다 약간 진한 회색 1px 외곽선 추가 */
.nrs-wf-save-bar .nrs-wf-btn--temp-save {
    width: 25%;
    flex-shrink: 0;
    background: var(--nrs-warning-primary, #d97706);
    color: #fff;
    border: 1px solid #9a9a9a;
}

.nrs-wf-save-bar .nrs-wf-btn--temp-save.nrs-wf-btn--disabled,
.nrs-wf-save-bar .nrs-wf-btn--temp-save:disabled {
    background: var(--nrs-bg-tertiary, #d1d5db);
    color: var(--nrs-text-tertiary, #6b7280);
}

.nrs-wf-save-bar .nrs-wf-btn--temp-save:not(:disabled):hover {
    background: var(--nrs-warning-hover, #b45309);
}

/* [임시 저장] 저장 완료 시 잠시 노출되는 초록 */
.nrs-wf-save-bar .nrs-wf-btn--temp-save.nrs-wf-btn--saved {
    background: var(--nrs-success-primary, #16a34a);
    color: #fff;
}

/* [저장] 70% (보통) 또는 100% (임시 저장 숨김 시) */
.nrs-wf-save-bar .nrs-wf-btn--save {
    width: 70%;
    flex-grow: 1;
    background: var(--nrs-accent-primary, #2563eb);
    color: #fff;
}

.nrs-wf-save-bar .nrs-wf-btn--save--wide {
    width: 100%;
}

.nrs-wf-save-bar .nrs-wf-btn--save--70 {
    width: 70%;
    flex-grow: 0;
}

.nrs-wf-save-bar .nrs-wf-btn--save:hover {
    background: var(--nrs-accent-hover, #1d4ed8);
}

/* ─── [취소] 버튼 ────────────────────────────────────────────────── */
.nrs-wf-save-bar .nrs-wf-btn--cancel {
    background: var(--nrs-bg-tertiary, #e5e7eb);
    color: var(--nrs-text-secondary, #50575e);
}

.nrs-wf-save-bar .nrs-wf-btn--cancel:hover {
    background: var(--nrs-bg-quaternary, #d1d5db);
}

.nrs-wf-save-bar .nrs-wf-btn--cancel--15 {
    width: 15%;
    flex-shrink: 0;
}

.nrs-wf-save-bar .nrs-wf-btn--cancel--25 {
    width: 25%;
    flex-shrink: 0;
}

/* ─── [임시 저장] 20% (수정 요청 모드) ───────────────────────────── */
.nrs-wf-save-bar .nrs-wf-btn--temp-save--20 {
    width: 20%;
    flex-shrink: 0;
}

/* ─── [수정 요청 보내기] 55% ─────────────────────────────────────── */
.nrs-wf-save-bar .nrs-wf-btn--revision-send {
    width: 55%;
    flex-grow: 1;
    background: var(--nrs-accent-primary, #2563eb);
    color: #fff;
}

.nrs-wf-save-bar .nrs-wf-btn--revision-send:hover {
    background: var(--nrs-accent-hover, #1d4ed8);
}

/* ─── 수정 요청 모드 안내 메시지 ─────────────────────────────────── */
.nrs-wf-meta-area--revision-request {
    background: var(--nrs-accent-bg, #dbeafe);
    border-color: var(--nrs-accent-primary, #2563eb);
    grid-template-columns: 1fr;
}

.nrs-wf-revision-request-notice {
    margin-bottom: 12px;
}

.nrs-wf-revision-request-notice strong {
    display: block;
    margin-bottom: 4px;
    color: var(--nrs-accent-primary, #2563eb);
    font-size: 14px;
}

.nrs-wf-revision-request-notice p {
    margin: 0;
    color: var(--nrs-text-primary, #1e1e1e);
    font-size: 13px;
    line-height: 1.5;
}

.nrs-wf-meta-area--revision-request .nrs-wf-meta-row {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 12px 16px;
}

/* ─── 확인 다이얼로그 (결정 19.2.3) ────────────────────────────────── */
.nrs-wf-confirm-dialog {
    /* 모달 스타일은 article-view.css와 일관. 추가 정정 없음. */
}

/* ─── 모바일 반응형 ────────────────────────────────────────────────── */
@media (max-width: 640px) {
    .nrs-wf-meta-area {
        grid-template-columns: 1fr;
        gap: 4px 0;
    }

    .nrs-wf-meta-row {
        display: block;
        margin-bottom: 12px;
    }

    .nrs-wf-meta-label {
        display: block;
        margin-bottom: 4px;
    }

    .nrs-wf-save-bar {
        height: 44px;
    }

    .nrs-wf-save-bar__btn {
        font-size: 14px;
    }
}

/* ─── 제목 입력란 placeholder 색상 ──────────────────────────────────── */
/* 단계 A (2026-05-16 결정 §1): 워드프레스 표준 #title-prompt-text 색상을 */
/* nrs-shared의 --nrs-text-placeholder 토큰으로 통일. */
#title-prompt-text {
    color: var(--nrs-text-placeholder, #b8b8b8) !important;
}

/* ─── 부제목 textarea ─────────────────────────────────────────────── */
/* 단계 B (2026-05-16 결정 §2): 제목 입력란 바로 아래에 부제목 textarea 배치.
   Round 6 (2026-05-23): 본문과의 간격 축소(margin-bottom 12→8), auto-resize 처리. */
.nrs-wf-subtitle-area {
    margin: 4px 0 4px;
}

/* Round 9 (2026-05-23): Round 6의 강제 margin-top:0·padding-top:8px 규칙 폐기.
   TinyMCE 툴바 아이콘이 가려지는 부작용 발생 → wrapper에는 손대지 않음.
   부제목↔본문 사이 여백은 부제목 area의 margin-bottom + 메타 영역의 margin-bottom으로만 조절. */

.nrs-wf-subtitle-textarea {
    width: 100%;
    min-height: 44px;
    padding: 8px 10px;
    border: 1px solid var(--nrs-border-secondary, #e5e7eb);
    border-radius: 4px;
    font-family: inherit;
    font-size: 16px;
    line-height: 1.5;
    color: var(--nrs-text-primary, #1e1e1e);
    background: var(--nrs-bg-primary, #fff);
    /* Round 6: JS가 scrollHeight 기반으로 자동 조정하므로 수동 resize 비활성 */
    resize: none;
    overflow: hidden;
    box-sizing: border-box;
}

.nrs-wf-subtitle-textarea:focus {
    border-color: var(--nrs-border-focus, #2563eb);
    outline: none;
    box-shadow: 0 0 0 1px var(--nrs-border-focus, #2563eb);
}

.nrs-wf-subtitle-textarea::placeholder {
    color: var(--nrs-text-placeholder, #b8b8b8);
}

/* ─── 메타 영역 단계 B 추가 행 ────────────────────────────────────── */
/* 단계 B (2026-05-16 결정 §9.2): 기사 등급·기사 성격 라디오 그룹. */
/* .nrs-wf-radio가 이미 정의돼 있으므로 추가 스타일은 행 단위 정렬만 보강. */
.nrs-wf-meta-row--grade .nrs-wf-meta-value,
.nrs-wf-meta-row--type  .nrs-wf-meta-value {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    align-items: center;
}

/* ═══════════════════════════════════════════════════════════════════════
 * 단계 C (2026-05-16 결정 §4) — 카테고리 선택 UI
 * ═══════════════════════════════════════════════════════════════════════ */

.nrs-wf-category-chooser {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.nrs-wf-category-rows {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.nrs-wf-category-row {
    display: flex;
    align-items: center;
    gap: 6px;
    /* 모바일·태블릿 오버플로 수정(2026-07-20): nowrap 이면 select min-width 합(≈370px)이
       값 영역보다 클 때 행이 패널 밖으로 밀림 — 좁을 때만 줄바꿈(넓은 화면은 종전 한 줄). */
    flex-wrap: wrap;
    padding: 4px 6px;
    background: var(--nrs-bg-primary, #fff);
    border: 1px solid var(--nrs-border-secondary, #e5e7eb);
    border-radius: 4px;
}

.nrs-wf-category-row--primary {
    /* 본 카테고리 행 강조 — 등록자 row와 동일 */
    background: var(--nrs-accent-bg, #dbeafe);
    border-color: var(--nrs-accent-primary, #2563eb);
}

.nrs-wf-category-badge {
    background: var(--nrs-accent-primary, #2563eb);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 8px;
    flex-shrink: 0;
}

/* 드래그 핸들 (카테고리·등록자 공통) */
.nrs-wf-category-handle,
.nrs-wf-writer-handle {
    cursor: grab;
    color: var(--nrs-text-tertiary, #6b7280);
    font-size: 14px;
    user-select: none;
    flex: 0 0 auto;
    padding: 0 4px;
    line-height: 1;
}
.nrs-wf-category-handle:active,
.nrs-wf-writer-handle:active {
    cursor: grabbing;
}

/* sortable 드래그 중 플레이스홀더 */
.nrs-wf-category-row-placeholder,
.nrs-wf-writer-row-placeholder {
    height: 36px;
    background: var(--nrs-bg-tertiary, #f3f4f6);
    border: 1px dashed var(--nrs-border-primary, #d1d5db);
    border-radius: 4px;
    margin: 0;
    list-style: none;
}

.nrs-wf-category-l1,
.nrs-wf-category-l2 {
    flex: 1;
    min-width: 140px;
    max-width: 100%; /* 오버플로 가드: min-width 가 컨테이너보다 커도 밖으로 안 나감(2026-07-20) */
    padding: 4px 28px 4px 8px;
    border: 1px solid var(--nrs-border-secondary, #e5e7eb);
    border-radius: 4px;
    background-color: var(--nrs-bg-primary, #fff);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 8px center;
    background-size: 12px 12px;
    color: var(--nrs-text-primary, #1e1e1e);
    font-size: 13px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.nrs-wf-category-l2:disabled {
    background-color: var(--nrs-bg-tertiary, #f3f4f6);
    background-image: none;
    color: var(--nrs-text-disabled, #9ca3af);
    cursor: not-allowed;
}

.nrs-wf-category-remove {
    background: none;
    border: none;
    color: var(--nrs-text-tertiary, #6b7280);
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    padding: 4px 8px;
    border-radius: 4px;
    flex-shrink: 0;
}

.nrs-wf-category-remove:hover {
    color: var(--nrs-danger-primary, #dc2626);
    background: var(--nrs-bg-hover, #f3f4f6);
}

.nrs-wf-category-add {
    align-self: flex-start;
    /* 등록자 [+추가] 버튼과 크기·컬러 통일 (Round 14, 2026-05-23) */
    font-size: 12px !important;
    color: var(--nrs-accent-primary, #2563eb) !important;
}

/* ═══════════════════════════════════════════════════════════════════════
 * 단계 C (2026-05-16 결정 §5) — 등록자 영역
 * ═══════════════════════════════════════════════════════════════════════ */

.nrs-wf-writers-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.nrs-wf-writer-row {
    display: flex;
    align-items: center;
    gap: 6px;
    /* 모바일·태블릿 오버플로 수정(2026-07-20): flex-wrap 미선언(기본 nowrap)이라 이름·이메일
       min-width 합(≈440px)이 값 영역보다 클 때 행이 패널 밖으로 밀림 — 좁을 때만 줄바꿈. */
    flex-wrap: wrap;
    padding: 4px 6px;
    background: var(--nrs-bg-primary, #fff);
    border: 1px solid var(--nrs-border-secondary, #e5e7eb);
    border-radius: 4px;
}

.nrs-wf-writer-row--primary {
    background: var(--nrs-accent-bg, #dbeafe);
    border-color: var(--nrs-accent-primary, #2563eb);
}


.nrs-wf-writer-lock {
    color: var(--nrs-text-disabled, #9ca3af);
    font-size: 12px;
    flex-shrink: 0;
    padding: 0 4px;
}

.nrs-wf-writer-badge {
    background: var(--nrs-accent-primary, #2563eb);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 8px;
    flex-shrink: 0;
}

.nrs-wf-writer-name-field {
    flex: 2;
    min-width: 200px;
    max-width: 100%; /* 오버플로 가드(2026-07-20) */
    padding: 4px 8px;
    border: 1px solid var(--nrs-border-secondary, #e5e7eb);
    border-radius: 4px;
    background: var(--nrs-bg-primary, #fff);
    color: var(--nrs-text-primary, #1e1e1e);
    font-size: 13px;
    cursor: pointer;
}

.nrs-wf-writer-email-field {
    flex: 1;
    min-width: 160px;
    max-width: 100%; /* 오버플로 가드(2026-07-20) */
    padding: 4px 8px;
    border: 1px solid var(--nrs-border-secondary, #e5e7eb);
    border-radius: 4px;
    background: var(--nrs-bg-primary, #fff);
    color: var(--nrs-text-primary, #1e1e1e);
    font-size: 13px;
}

.nrs-wf-writer-name-field[readonly],
.nrs-wf-writer-email-field[readonly] {
    background: var(--nrs-bg-tertiary, #f3f4f6);
    cursor: default;
}

.nrs-wf-writer-remove {
    background: none;
    border: none;
    color: var(--nrs-text-tertiary, #6b7280);
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    padding: 4px 8px;
    border-radius: 4px;
    flex-shrink: 0;
}

.nrs-wf-writer-remove:hover {
    color: var(--nrs-danger-primary, #dc2626);
    background: var(--nrs-bg-hover, #f3f4f6);
}


.nrs-wf-writer-add-btn {
    align-self: flex-start;
}

/* 등록자 검색 팝업 */
.nrs-wf-writer-search-popup {
    background: var(--nrs-bg-primary, #fff);
    border: 1px solid var(--nrs-border-primary, #d1d5db);
    border-radius: 8px;
    box-shadow: var(--nrs-shadow-lg, 0 10px 15px rgba(0,0,0,0.1));
    padding: 12px;
    min-width: 360px;
    max-width: 520px;
    max-height: 460px;
    overflow-y: auto;
}

.nrs-wf-writer-search-title {
    font-weight: 700;
    font-size: 14px;
    margin-bottom: 8px;
    color: var(--nrs-text-primary, #1e1e1e);
}

.nrs-wf-writer-search-group {
    margin-bottom: 12px;
}

.nrs-wf-writer-search-group h4 {
    font-size: 12px;
    color: var(--nrs-text-tertiary, #6b7280);
    margin: 0 0 6px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.nrs-wf-writer-search-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.nrs-wf-writer-pick {
    padding: 4px 10px;
    border: 1px solid var(--nrs-border-secondary, #e5e7eb);
    border-radius: 4px;
    background: var(--nrs-bg-primary, #fff);
    color: var(--nrs-text-primary, #1e1e1e);
    font-size: 12px;
    cursor: pointer;
}

.nrs-wf-writer-pick:hover {
    background: var(--nrs-accent-bg, #dbeafe);
    border-color: var(--nrs-accent-primary, #2563eb);
}

.nrs-wf-writer-search-loading,
.nrs-wf-writer-search-error {
    padding: 12px;
    text-align: center;
    color: var(--nrs-text-tertiary, #6b7280);
    font-size: 12px;
}

/* ─── 디바이스 미리보기 토글 (PC·태블릿·모바일) ──────────────────── */
.nrs-wf-device-toggle {
    display: inline-flex;
    gap: 4px;
    margin: 0 0 12px;
    background: #f3f4f6;
    border-radius: 6px;
    padding: 4px;
}
.nrs-wf-device-toggle__btn {
    background: transparent;
    border: 0;
    padding: 6px 14px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: 4px;
    color: #4b5563;
    font-size: 13px;
}
.nrs-wf-device-toggle__btn:hover { background: #e5e7eb; }
.nrs-wf-device-toggle__btn.is-active {
    background: #fff;
    color: #1d4ed8;
    box-shadow: 0 1px 2px rgba(0,0,0,0.08);
    font-weight: 500;
}
.nrs-wf-device-toggle__btn .dashicons {
    font-size: 16px;
    width: 16px;
    height: 16px;
}

/* device-frame: 미리보기 폭/컨테이너 규칙은 v2.2.0-217 부터 article-preview.css 로 이관
   (PC/태블릿/모바일 + container-type + @container 반응형). 여기서는 정의하지 않는다. */

/* ─── 태그 칩 (#태그) ───────────────────────────────────────────── */
.nrs-wf-article-tags {
    list-style: none;
    /* v2.2.0-4 (2026-05-31): 780px 중앙 정렬. */
    max-width: 680px; /* v2.2.0-63: 880 메인 내 모든 요소를 본문과 동일한 680px 폭으로 통일 */
    margin: 16px auto 12px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.nrs-wf-article-tags__item a {
    display: inline-block;
    padding: 3px 10px;
    background: #f0f6fc;
    border: 1px solid #c6def5;
    border-radius: 14px;
    color: #2271b1;
    font-size: 12px;
    text-decoration: none;
}
.nrs-wf-article-tags__item a:hover { background: #dbe6f2; }

/* ─── 댓글 영역 ─────────────────────────────────────────────────── */
.nrs-wf-comments {
    /* v2.2.0-4 (2026-05-31): 780px 중앙 정렬. */
    max-width: 680px; /* v2.2.0-63: 880 메인 내 모든 요소를 본문과 동일한 680px 폭으로 통일 */
    margin: 28px auto 16px;
    padding: 18px 0 0;
    border-top: 1px solid #e5e7eb;
}
.nrs-wf-comments__title {
    font-size: 16px;
    margin: 0 0 12px;
    color: #1f2937;
}
.nrs-wf-comments__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.nrs-wf-comments__item {
    padding: 12px 0;
    border-bottom: 1px solid #f0f0f1;
}
.nrs-wf-comments__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
}
.nrs-wf-comments__time { font-size: 12px; color: var(--nrs-text-primary, #111827); }   /* 2026-09-27 안 A(옛 #6b7280) */
.nrs-wf-comments__body { font-size: 14px; line-height: 1.6; color: #1f2937; }
.nrs-wf-comments__empty,
.nrs-wf-comments__closed {
    color: var(--nrs-text-primary, #111827);   /* 2026-09-27 안 A(옛 #6b7280) */
    font-size: 13px;
    padding: 12px 0;
}

/* 카테고리 [기본] / 등록자 [대표] 라벨 — 오른쪽 끝에 배치, 컬러·너비 통일 */
.nrs-wf-category-badge--right,
.nrs-wf-writer-badge--right {
    background: #e0f2fe;
    color: #075985;
    border: 1px solid #bae6fd;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 700;
    margin-left: auto;
    /* 동일 슬롯 너비 (다음 행 [×] 삭제 버튼과 동일) */
    flex: 0 0 40px;
    width: 40px;
    height: 26px;
    box-sizing: border-box;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* 카테고리·등록자 [×] 삭제 버튼 — 배지와 동일 슬롯 너비 */
.nrs-wf-category-remove,
.nrs-wf-writer-remove {
    flex: 0 0 40px;
    width: 40px;
    height: 26px;
    box-sizing: border-box;
    padding: 0;
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 1px solid transparent;
    border-radius: 12px;
    color: var(--nrs-text-tertiary, #6b7280);
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
}

.nrs-wf-category-remove:hover,
.nrs-wf-writer-remove:hover {
    color: var(--nrs-danger-primary, #dc2626);
    background: var(--nrs-bg-hover, #f3f4f6);
}

/* 사이드바 [+ 추가] 버튼 툴바 */
.nrs-wf-rm-toolbar {
    margin: 0 0 8px;
    text-align: right;
}
.nrs-wf-rm-add {
    cursor: pointer;
}

/* v2.2.0-368 모바일 버그픽스: 글 작성/수정 화면 NRS 바이라인 메타 영역이 데스크탑 폭(≈472px) 그대로라
 *   좁은 화면(메타영역 ≈388px)에서 행·필드 우측(2차 카테고리·기자 이메일·긴 제목)이 #post-body(overflow:hidden)에
 *   잘려 안 보였다. ≤782px(NRS 관리자 모바일)에서 행·필드를 100% 폭으로 맞추고 2단 필드(이름/이메일·1차/2차)를 세로로 쌓는다. */
@media (max-width: 782px) {
    #post .nrs-wf-meta-area,
    #post .nrs-wf-meta-area * { max-width: 100% !important; box-sizing: border-box; }
    #post .nrs-wf-meta-row,
    #post .nrs-wf-meta-label,
    #post .nrs-wf-meta-value,
    #post #nrs-wf-title-slot,
    #post #title,
    #post .nrs-wf-writers-list { width: 100% !important; min-width: 0 !important; }
    /* 2단 필드(기자 이름/이메일) 세로 쌓기 */
    #post .nrs-wf-writer-row { display: flex; flex-wrap: wrap; gap: 6px; }
    #post .nrs-wf-writer-row > * { flex: 1 1 100% !important; width: 100% !important; min-width: 0 !important; }
    /* 카테고리 행도 등록자와 동일하게 세로 쌓기 — 드래그 핸들이 행 위 자기 줄(운영자 지시 2026-07-20).
       (종전엔 셀렉트만 100% 라 핸들이 첫 셀렉트 옆에 붙어 등록자와 비대칭이었음.) */
    #post .nrs-wf-category-row { display: flex; flex-wrap: wrap; gap: 6px; }
    #post .nrs-wf-category-row > * { flex: 1 1 100% !important; width: 100% !important; min-width: 0 !important; }
    /* 셀렉트·입력은 영역 폭에 맞춤(1차/2차 카테고리 등 세로 배치) */
    #post .nrs-wf-meta-area select,
    #post .nrs-wf-meta-area input[type="text"],
    #post .nrs-wf-meta-area input[type="email"],
    #post .nrs-wf-meta-area input[type="search"] { width: 100% !important; max-width: 100% !important; }
}

/* 다크 모드 — 기사 보기 글자색(2026-09-12). 배경을 바꾸는 01-shared 스위치와 같은 스위치, 인쇄 제외.
   .nrs-wf-article-view__main 으로 좁힘(이 파일은 관리자 글 편집기에도 실린다). 상세: knowledge/nrs_dark_mode_two_switches.md */
@media screen {
    body.nrs-scheme-dark .nrs-wf-article-view__main .nrs-wf-article-dates__label,
    body.nrs-scheme-dark .nrs-wf-article-view__main .nrs-wf-article-author__recent-list a { color: var(--nrs-text-secondary); }
    body.nrs-scheme-dark .nrs-wf-article-view__main .nrs-wf-article-author__page,
    body.nrs-scheme-dark .nrs-wf-article-view__main .nrs-wf-article-author__recent-list a:hover { color: var(--nrs-accent-hover); }
    body.nrs-scheme-dark .nrs-wf-article-view__main .nrs-wf-comments__title { color: var(--nrs-text-primary); }
}
@media screen and (prefers-color-scheme: dark) {
    body.nrs-scheme-auto .nrs-wf-article-view__main .nrs-wf-article-dates__label,
    body.nrs-scheme-auto .nrs-wf-article-view__main .nrs-wf-article-author__recent-list a { color: var(--nrs-text-secondary); }
    body.nrs-scheme-auto .nrs-wf-article-view__main .nrs-wf-article-author__page,
    body.nrs-scheme-auto .nrs-wf-article-view__main .nrs-wf-article-author__recent-list a:hover { color: var(--nrs-accent-hover); }
    body.nrs-scheme-auto .nrs-wf-article-view__main .nrs-wf-comments__title { color: var(--nrs-text-primary); }
}

/* 다크 모드 — 기사 화면 부품(2026-09-27 ⑥ — 공통 팔레트 · autonews 세션). 위 9/12 블록과 같은 스위치 · 범위(.nrs-wf-article-view__main), 인쇄 제외.
   경로 링크 올림 · 기사 태그(다크에서 흰 알약이던 것) · 댓글 선 · 댓글 본문(#1f2937 이 어두운 바탕에 묻힘 — 댓글이 생기면 보인다). */
@media screen {
    body.nrs-scheme-dark .nrs-wf-article-view__main .nrs-wf-breadcrumb a:hover { color: var(--nrs-accent-hover); }
    body.nrs-scheme-dark .nrs-wf-article-view__main .nrs-wf-article-tags__item a { background: var(--nrs-accent-bg); border-color: var(--nrs-accent-bg-hover); color: var(--nrs-accent-text); }
    body.nrs-scheme-dark .nrs-wf-article-view__main .nrs-wf-article-tags__item a:hover { background: var(--nrs-accent-bg-hover); }
    body.nrs-scheme-dark .nrs-wf-article-view__main .nrs-wf-comments { border-top-color: var(--nrs-border-secondary); }
    body.nrs-scheme-dark .nrs-wf-article-view__main .nrs-wf-comments__item { border-bottom-color: var(--nrs-border-secondary); }
    body.nrs-scheme-dark .nrs-wf-article-view__main .nrs-wf-comments__body { color: var(--nrs-text-primary); }
}
@media screen and (prefers-color-scheme: dark) {
    body.nrs-scheme-auto .nrs-wf-article-view__main .nrs-wf-breadcrumb a:hover { color: var(--nrs-accent-hover); }
    body.nrs-scheme-auto .nrs-wf-article-view__main .nrs-wf-article-tags__item a { background: var(--nrs-accent-bg); border-color: var(--nrs-accent-bg-hover); color: var(--nrs-accent-text); }
    body.nrs-scheme-auto .nrs-wf-article-view__main .nrs-wf-article-tags__item a:hover { background: var(--nrs-accent-bg-hover); }
    body.nrs-scheme-auto .nrs-wf-article-view__main .nrs-wf-comments { border-top-color: var(--nrs-border-secondary); }
    body.nrs-scheme-auto .nrs-wf-article-view__main .nrs-wf-comments__item { border-bottom-color: var(--nrs-border-secondary); }
    body.nrs-scheme-auto .nrs-wf-article-view__main .nrs-wf-comments__body { color: var(--nrs-text-primary); }
}
