/* ============================================================
   KPPDC Frontend Suite - Main Stylesheet
   ============================================================ */

/* ── 디자인 토큰 ──────────────────────────────────────────── */
:root {
	--kppdc-primary:        #0F2C59;
	--kppdc-primary-hover:  #14386f;
	--kppdc-secondary-text: #4A5568;
	--kppdc-border:         #E2E8F0;
	--kppdc-surface:        #F8FAFC;
	--kppdc-danger:         #B42318;
	--kppdc-danger-bg:      #FDECEC;
	--kppdc-danger-border:  #F4B4B4;
	--kppdc-success:        #1F6B3A;
	--kppdc-success-bg:     #E8F5EC;
	--kppdc-success-border: #B7E3C4;
	--kppdc-radius:         8px;
	--kppdc-radius-sm:      6px;
	--kppdc-shadow-card:    0 4px 20px rgba(15,44,89,.06);
	--kppdc-shadow-modal:   0 24px 70px rgba(15,44,89,.28);
}

/* ── 볼륨 표지 ────────────────────────────────────────────── */
.kppdc-volume-cover-field { display: grid; gap: 10px; }
.kppdc-volume-cover-preview { display: flex; align-items: center; justify-content: center; height: 260px; border: 1px solid var(--kppdc-border); background: var(--kppdc-surface); color: var(--kppdc-secondary-text); border-radius: var(--kppdc-radius-sm); }
.kppdc-volume-cover-preview img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; }

/* ── 모달 ─────────────────────────────────────────────────── */
.kppdc-reviewer-modal { width: min(560px, calc(100vw - 32px)); border: 0; border-radius: var(--kppdc-radius); padding: 0; box-shadow: var(--kppdc-shadow-modal); color: var(--kppdc-primary); text-align: left; box-sizing: border-box; overflow-x: hidden; }
.kppdc-reviewer-modal::backdrop { background: rgba(15,44,89,.42); }
.kppdc-reviewer-modal .kppdc-editor-panel { padding: 24px; min-width: 0; width: 100%; box-sizing: border-box; }
.kppdc-reviewer-modal h2 { margin: 0; color: var(--kppdc-primary); font-size: 20px; font-weight: 700; word-break: break-word; }
.kppdc-review-modal { width: min(1024px, calc(100vw - 32px)); max-height: min(92vh, 900px); overflow-y: auto; overflow-x: hidden; box-sizing: border-box; }
.kppdc-review-modal .kppdc-editor-panel { overflow-x: hidden; padding: 24px 28px; min-width: 0; width: 100%; box-sizing: border-box; }
.kppdc-review-modal .kppdc-review-card { max-height: 22vh; overflow-y: auto; }
.kppdc-review-modal .kppdc-full textarea { max-height: 16vh; resize: vertical; }
.kppdc-issue-assignment-modal { width: min(720px, calc(100vw - 32px)); max-height: calc(100vh - 48px); overflow: auto; }
.kppdc-assignment-split { height: 1px; background: var(--kppdc-border); margin: 16px 0; }
.kppdc-editor-assignment-form { display: grid; gap: 14px; }
.kppdc-modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--kppdc-border); }
.kppdc-modal-description { margin: 14px 0 4px; color: var(--kppdc-secondary-text); font-size: 14px; line-height: 1.6; }
.kppdc-empty-note { margin: 0; padding: 12px; color: var(--kppdc-secondary-text); }

/* 심사위원 체크리스트 */
.kppdc-reviewer-checklist { display: grid; gap: 6px; max-height: 280px; overflow-y: auto; border: 1px solid var(--kppdc-border); background: var(--kppdc-surface); padding: 8px; border-radius: var(--kppdc-radius-sm); }
.kppdc-reviewer-check { display: grid !important; grid-template-columns: 20px minmax(0,1fr) !important; align-items: center; gap: 10px; padding: 9px 10px; border: 1px solid transparent; background: #fff; font-weight: 700; border-radius: var(--kppdc-radius-sm); cursor: pointer; transition: border-color .15s, background .15s; }
.kppdc-reviewer-check:has(input:checked) { border-color: var(--kppdc-primary); background: #EAF1FB; }
.kppdc-reviewer-check input,
.kppdc-dashboard-suite .kppdc-reviewer-check input { display: block !important; width: 20px !important; min-width: 20px !important; max-width: 20px !important; height: 20px !important; min-height: 20px !important; max-height: 20px !important; margin: 0 !important; padding: 0 !important; flex: 0 0 20px !important; }
.kppdc-reviewer-check span { display: block; min-width: 0; overflow-wrap: anywhere; font-size: 14px; }

@media (max-width: 760px) {
	.kppdc-reviewer-modal .kppdc-actions,
	.kppdc-modal-head { display: grid; gap: 10px; }
	.kppdc-reviewer-modal .kppdc-actions > * { width: 100%; justify-content: center; }
}

/* ── Breadcrumb ───────────────────────────────────────────── */
.kppdc-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; margin-bottom: 12px; font-size: 13px; color: var(--kppdc-secondary-text); }
.kppdc-breadcrumb a { color: var(--kppdc-secondary-text); text-decoration: none; }
.kppdc-breadcrumb a:hover { color: var(--kppdc-primary); text-decoration: underline; }
.kppdc-breadcrumb__sep { color: #CBD5E1; font-size: 11px; }
.kppdc-breadcrumb__current { color: var(--kppdc-primary); font-weight: 600; }

/* ── 카드 ─────────────────────────────────────────────────── */
.kppdc-flat-card { background: #fff; border: 1px solid var(--kppdc-border); border-radius: var(--kppdc-radius); box-shadow: var(--kppdc-shadow-card); padding: 24px 28px; }
.kppdc-auth-shell.kppdc-flat-card { max-width: 480px; margin: 60px auto; padding: 40px; }

/* ── 인증 셸 ──────────────────────────────────────────────── */
.kppdc-auth-shell { max-width: 480px; margin: 60px auto; text-align: center; color: var(--kppdc-primary); }
.kppdc-auth-shell h1,
.kppdc-dashboard-suite h1 { margin: 0 0 4px; color: var(--kppdc-primary); font-size: 28px; line-height: 1.25; font-weight: 600; }
.kppdc-auth-shell p { margin: 0 0 28px; color: var(--kppdc-secondary-text); }
.kppdc-auth-form { display: grid; gap: 16px; text-align: left; }
.kppdc-auth-form label,
.kppdc-dashboard-suite label { display: grid; gap: 6px; color: var(--kppdc-primary); font-weight: 700; font-size: 14px; }
.kppdc-auth-form input,
.kppdc-auth-form select,
.kppdc-auth-form textarea,
.kppdc-dashboard-suite input,
.kppdc-dashboard-suite select,
.kppdc-dashboard-suite textarea { width: 100%; background: var(--kppdc-surface); border: 1px solid var(--kppdc-border); border-radius: var(--kppdc-radius-sm); padding: 10px 12px; color: #1f2937; font-size: 14px; transition: border-color .18s ease, box-shadow .18s ease; }
.kppdc-auth-form input:focus,
.kppdc-auth-form select:focus,
.kppdc-auth-form textarea:focus,
.kppdc-dashboard-suite input:focus,
.kppdc-dashboard-suite select:focus,
.kppdc-dashboard-suite textarea:focus { outline: 0; border-color: var(--kppdc-primary); box-shadow: 0 0 0 3px rgba(15,44,89,.12); }

/* ── 역할 탭 ──────────────────────────────────────────────── */
.kppdc-role-tabs { position: relative; display: grid; grid-template-columns: repeat(3,1fr); border-bottom: 1px solid var(--kppdc-border); margin: 4px 0 8px; }
.kppdc-role-tabs label { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 8px; cursor: pointer; color: var(--kppdc-secondary-text); border-bottom: 3px solid transparent; transition: color .2s ease, border-color .2s ease; font-weight: 700; text-align: center; }
.kppdc-role-tabs label.is-active { color: var(--kppdc-primary); border-color: var(--kppdc-primary); }
.kppdc-role-tabs input { position: absolute; opacity: 0; pointer-events: none; }

/* ── Auth Row / Inline ────────────────────────────────────── */
.kppdc-auth-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.kppdc-inline { display: flex !important; grid-template-columns: none !important; align-items: center; gap: 8px; }
.kppdc-inline input { width: auto; }
.kppdc-auth-row .kppdc-inline input { width: 28px; height: 28px; border-radius: 8px; background: #fff; }

/* ── 버튼 ─────────────────────────────────────────────────── */
.kppdc-primary-button,
.kppdc-secondary-button {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 36px; height: 36px;
	border: 0; border-radius: var(--kppdc-radius-sm);
	padding: 0 14px;
	font-size: 13px; font-weight: 700;
	text-decoration: none; cursor: pointer;
	white-space: nowrap;
	transition: background .15s, color .15s, border-color .15s;
}
.kppdc-primary-button { background: var(--kppdc-primary); color: #fff; }
.kppdc-primary-button:hover { color: #fff; background: var(--kppdc-primary-hover); }
.kppdc-primary-button:disabled,
.kppdc-primary-button[disabled] { opacity: .45; cursor: not-allowed; }
.kppdc-secondary-button { background: #fff; color: var(--kppdc-primary); border: 1px solid var(--kppdc-border); }
.kppdc-secondary-button:hover { border-color: var(--kppdc-primary); }
.kppdc-danger-button { color: var(--kppdc-danger) !important; border-color: var(--kppdc-danger-border) !important; background: #fff !important; }
.kppdc-danger-button:hover { background: var(--kppdc-danger-bg) !important; }
.kppdc-auth-foot { font-size: 14px; margin-top: -8px; }

/* ── 알림 ─────────────────────────────────────────────────── */
.kppdc-notice { max-width: var(--kppdc-container-width, 1200px); margin: 14px auto; padding: 11px 16px; border-radius: var(--kppdc-radius-sm); font-size: 14px; font-weight: 700; }
.kppdc-notice.success { background: var(--kppdc-success-bg); color: var(--kppdc-success); border: 1px solid var(--kppdc-success-border); }
.kppdc-notice.danger  { background: var(--kppdc-danger-bg);  color: var(--kppdc-danger);  border: 1px solid var(--kppdc-danger-border); }

/* ── 대시보드 셸 ──────────────────────────────────────────── */
.kppdc-dashboard-suite { max-width: var(--kppdc-container-width, 1200px); margin: 36px auto; padding: 0 20px; color: var(--kppdc-primary); }
.kppdc-dashboard-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 28px; padding-bottom: 20px; border-bottom: 1px solid var(--kppdc-border); }
.kppdc-dashboard-head > div { flex: 1; min-width: 0; }
.kppdc-dashboard-head h1 { margin: 0 0 6px; color: var(--kppdc-primary); font-size: 28px; font-weight: 700; line-height: 1.2; }
.kppdc-section-eyebrow { margin: 0 0 3px; color: var(--kppdc-secondary-text); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.kppdc-reviewer-applicant-manager { margin-bottom: 20px; }
.kppdc-reviewer-applicant-manager h2 { margin: 0; color: var(--kppdc-primary); font-size: 20px; font-weight: 600; }
.kppdc-manuscript-review-manager,
.kppdc-content-review-manager { margin-bottom: 20px; }
.kppdc-manuscript-review-manager h2,
.kppdc-content-review-manager h2 { margin: 0; color: var(--kppdc-primary); font-size: 20px; font-weight: 600; }

/* ── 필터 탭 (밑줄 스타일, 카드 안에 배치) ───────────────── */
.kppdc-filter-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	border-bottom: 2px solid #E2E8F0;
	margin: 16px 0 0;
}
.kppdc-filter-tabs button {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	min-height: 42px;
	border: none;
	border-bottom: 2px solid transparent;
	border-radius: 0;
	background: transparent;
	color: var(--kppdc-secondary-text);
	padding: 0 16px;
	margin-bottom: -2px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: color .15s, border-color .15s;
}
body .kppdc-filter-tabs button:hover,
body .kppdc-filter-tabs button:focus {
	color: var(--kppdc-primary) !important;
	background-color: #EFF6FF !important;
	border-bottom-color: #C7D9F5 !important;
}
.kppdc-filter-tabs button.is-active {
	border-bottom-color: var(--kppdc-primary);
	color: var(--kppdc-primary);
	font-weight: 700;
}
.kppdc-filter-tabs button span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	border-radius: 999px;
	background: #E2E8F0;
	color: #4A5568;
	font-size: 11px;
	font-weight: 700;
}
.kppdc-filter-tabs button.is-active span {
	background: #C7D9F5;
	color: var(--kppdc-primary);
}
/* 탭 아래 테이블 상단 간격 */
.kppdc-filter-tabs + table.kppdc-dashboard-table,
.kppdc-filter-tabs + .kppdc-dashboard-table,
.kppdc-modal-description + table.kppdc-dashboard-table {
	margin-top: 16px;
}

/* ── 대시보드 테이블 ──────────────────────────────────────── */
.kppdc-dashboard-table {
	width: 100%;
	border-collapse: collapse;
	text-align: left;
	font-size: 14px;
}
.kppdc-dashboard-table th,
.kppdc-dashboard-table td {
	border-bottom: 1px solid #E2E8F0;
	padding: 12px 16px;
	vertical-align: middle;
}
.kppdc-dashboard-table th {
	background: #F8FAFC;
	color: #0F2C59;
	font-size: 13px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	white-space: nowrap;
	border-bottom: 1px solid #E2E8F0;
}
.kppdc-dashboard-table tbody tr:hover td { background: #EFF6FF; }
.kppdc-empty-cell { text-align: center !important; color: #4A5568; padding: 28px 16px; font-size: 14px; }
/* 처리 열: 고정 너비 */
.kppdc-dashboard-table td:last-child { width: 140px; text-align: left; white-space: nowrap; }
.kppdc-dashboard-table td { color: #1f2937; }
.kppdc-dashboard-table td a { color: #2563EB; font-weight: 600; text-decoration: none; }
.kppdc-dashboard-table td a:hover { text-decoration: underline; }

/* ── 액션 / 폼 ────────────────────────────────────────────── */
.kppdc-full { grid-column: 1 / -1; }
.kppdc-actions,
.kppdc-inline-form { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
/* 테이블 처리 열 내부 액션 버튼 래퍼 */
.kppdc-editor-panel { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; justify-content: flex-end; }
.kppdc-screening-launcher,
.kppdc-assignment-launcher,
.kppdc-publication-assigned-panel { flex-direction: column; align-items: flex-end; gap: 4px; }
.kppdc-assignment-summary { margin: 0; color: var(--kppdc-secondary-text); font-size: 12px; font-weight: 600; }

/* 최종 판정 라디오 폼 */
.kppdc-final-decision-form { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.kppdc-final-decision-form label { display: flex !important; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 6px 8px; border: 1px solid var(--kppdc-border); border-radius: var(--kppdc-radius-sm); background: var(--kppdc-surface); text-align: center; font-size: 13px; cursor: pointer; transition: border-color .15s, background .15s; }
.kppdc-final-decision-form label:has(input:checked) { border-color: var(--kppdc-primary); background: #EAF1FB; }
.kppdc-final-decision-form input[type=radio] { width: 16px !important; min-width: 16px !important; max-width: 16px !important; height: 16px !important; min-height: 16px !important; max-height: 16px !important; margin: 0 !important; padding: 0 !important; flex: 0 0 16px !important; }
.kppdc-final-decision-form textarea { grid-column: 1/-1; }
.kppdc-final-decision-form .kppdc-primary-button { justify-self: start; }
.kppdc-decision-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 8px; }
.kppdc-decision-row label { display: flex !important; align-items: center; gap: 8px; min-height: 40px; padding: 8px 12px; border: 1px solid var(--kppdc-border); border-radius: var(--kppdc-radius-sm); background: var(--kppdc-surface); font-size: 13px; cursor: pointer; transition: border-color .15s, background .15s; }
.kppdc-decision-row label:has(input:checked) { border-color: var(--kppdc-primary); background: #EAF1FB; }
.kppdc-decision-row input[type=radio] { width: 16px !important; min-width: 16px !important; max-width: 16px !important; height: 16px !important; min-height: 16px !important; max-height: 16px !important; margin: 0 !important; padding: 0 !important; flex: 0 0 16px !important; }

/* ── 심사위원/편집위원 패널 (모달 내부) ─────────────────────── */
.kppdc-reviewer-inline-assessment { display: grid; gap: 10px; min-width: 0; max-width: 100%; box-sizing: border-box; }
.kppdc-reviewer-materials { display: grid; gap: 10px; min-width: 0; max-width: 100%; }
.kppdc-abstract-card__body { font-size: 14px; line-height: 1.7; color: #1f2937; overflow-wrap: anywhere; word-break: break-word; white-space: pre-line; }
/* 모달 내부 kppdc-editor-panel은 grid 유지 */
.kppdc-reviewer-modal .kppdc-editor-panel,
.kppdc-review-modal .kppdc-editor-panel { display: grid; gap: 14px; justify-content: initial; flex-direction: initial; align-items: initial; }

/* ── 리뷰 카드 & 상태 배지 ────────────────────────────────── */
.kppdc-review-compare { display: grid; gap: 8px; }
.kppdc-review-card { border: 1px solid var(--kppdc-border); border-radius: var(--kppdc-radius-sm); background: var(--kppdc-surface); padding: 12px; display: grid; gap: 6px; min-width: 0; max-width: 100%; box-sizing: border-box; }
.kppdc-review-card p { margin: 0; color: var(--kppdc-secondary-text); font-size: 14px; line-height: 1.65; white-space: normal; word-break: break-word; overflow-wrap: anywhere; }

/* 상태 배지 색상 체계 */
.kppdc-status-pill { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; border-radius: 999px; background: #EAF1FB; color: var(--kppdc-primary); font-size: 11px; font-weight: 700; white-space: nowrap; }

/* 상태별 배지 색상 오버라이드 */
.kppdc-status-pill[data-status="submitted"],
.kppdc-status-pill[data-status="reviewer_selection"] { background: #FFF8E1; color: #7A4A00; }
.kppdc-status-pill[data-status="under_review_1st"],
.kppdc-status-pill[data-status="under_review_2nd"],
.kppdc-status-pill[data-status="under_review_3rd"] { background: #EAF1FB; color: #0F2C59; }
.kppdc-status-pill[data-status="final_pending"] { background: #F3E8FF; color: #6B21A8; }
.kppdc-status-pill[data-status="accepted"],
.kppdc-status-pill[data-status="publish"] { background: var(--kppdc-success-bg); color: var(--kppdc-success); }
.kppdc-status-pill[data-status="rejected"],
.kppdc-status-pill[data-status="ineligible"],
.kppdc-status-pill[data-status="반려"] { background: var(--kppdc-danger-bg); color: var(--kppdc-danger); }
.kppdc-status-pill[data-status="minor_revision"],
.kppdc-status-pill[data-status="major_revision"],
.kppdc-status-pill[data-status="revision_requested"],
.kppdc-status-pill[data-status="screening_revision_requested"] { background: #FFF0E5; color: #9A3412; }
.kppdc-status-pill[data-status="pending_review"] { background: #FEF9C3; color: #713F12; }

/* 잠금 노트 */
.kppdc-lock-note { display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 999px; background: var(--kppdc-danger-bg); color: var(--kppdc-danger); font-size: 11px; font-weight: 700; white-space: nowrap; }

/* ── 볼륨 매니저 ──────────────────────────────────────────── */
.kppdc-volume-manager .kppdc-dashboard-table td:last-child { width: 180px; }

/* ── 에디터 필터 ──────────────────────────────────────────── */
.kppdc-editor-filters { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }
.kppdc-editor-filters fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.kppdc-editor-filters legend { width: 100%; font-weight: 700; margin-bottom: 8px; font-size: 13px; }
.kppdc-editor-filters label { display: flex; align-items: center; gap: 6px; border: 1px solid var(--kppdc-border); border-radius: 999px; padding: 6px 12px; background: #fff; font-size: 13px; }
.kppdc-editor-filters input { width: auto; }

/* ── 심사 스텝 폼 ─────────────────────────────────────────── */
.kppdc-review-step-form { gap: 18px; min-width: 0; }
.kppdc-review-stepper { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; min-width: 0; }
.kppdc-review-stepper span { display: flex; align-items: center; justify-content: center; min-height: 36px; border: 1px solid var(--kppdc-border); border-radius: var(--kppdc-radius-sm); background: var(--kppdc-surface); color: var(--kppdc-secondary-text); font-size: 13px; font-weight: 700; }
.kppdc-review-stepper span.is-active { border-color: var(--kppdc-primary); color: var(--kppdc-primary); background: #EAF1FB; }
.kppdc-review-step { min-width: 0; max-width: 100%; }
.kppdc-review-stage-card { display: grid; gap: 18px; border: 1px solid var(--kppdc-border); border-radius: var(--kppdc-radius); background: #fff; padding: 18px; min-width: 0; max-width: 100%; box-sizing: border-box; }
.kppdc-review-stage-card h3 { margin: 0; color: var(--kppdc-primary); font-size: 18px; font-weight: 600; }

/* ── 심사 정보 목록 ───────────────────────────────────────── */
.kppdc-review-info-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin: 0; }
/* 논문 제목 1행 전체 폭, 제출일:심사차수 = 7:3 */
.kppdc-review-info-list--title-row { grid-template-columns: 7fr 3fr; }
.kppdc-review-info-list--title-row div:first-child { grid-column: 1 / -1; }
.kppdc-review-info-list div { padding: 10px 12px; border: 1px solid var(--kppdc-border); border-radius: var(--kppdc-radius-sm); background: var(--kppdc-surface); }
.kppdc-review-info-list dt { font-size: 11px; font-weight: 700; color: var(--kppdc-secondary-text); text-transform: uppercase; letter-spacing: .06em; }
.kppdc-review-info-list dd { margin: 4px 0 0; color: var(--kppdc-primary); font-weight: 700; font-size: 14px; }

/* ── 심사 매트릭스 ────────────────────────────────────────── */
.kppdc-review-matrix-wrap { display: grid; gap: 8px; max-width: 100%; }
.kppdc-review-matrix-wrap h4 { margin: 0; color: var(--kppdc-primary); font-size: 14px; font-weight: 700; }
.kppdc-review-matrix { width: 100%; border-collapse: collapse; background: #fff; table-layout: fixed; }
.kppdc-review-matrix th,
.kppdc-review-matrix td { border: 1px solid #CBD5E1; padding: 6px 4px; text-align: center; box-sizing: border-box; word-break: keep-all; overflow-wrap: anywhere; }
.kppdc-review-matrix thead th { background: #f8f8f8; color: var(--kppdc-primary); font-size: 11px; font-weight: 700; }
.kppdc-review-matrix tbody th { text-align: left; font-weight: 600; color: #1f2937; font-size: 12px; }
.kppdc-review-matrix tbody th span { display: inline-flex; min-width: 24px; color: var(--kppdc-secondary-text); }
.kppdc-review-matrix td label { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 28px; }
.kppdc-review-matrix input[type=radio],
.kppdc-review-decision-group input[type=radio] { width: auto; min-width: 16px; height: 16px; margin: 0; }
.kppdc-review-decision-group { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); align-items: stretch; border: 1px solid var(--kppdc-border); border-radius: var(--kppdc-radius-sm); margin: 0; padding: 12px; background: var(--kppdc-surface); gap: 0; }
.kppdc-review-decision-group legend { grid-column: 1/-1; padding: 0 0 8px; font-weight: 700; color: var(--kppdc-primary); font-size: 14px; }
.kppdc-review-decision-group label { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 7px 8px; border: 1px solid var(--kppdc-border); background: #fff; min-width: 0; text-align: center; font-size: 13px; cursor: pointer; transition: background .15s, border-color .15s; }
.kppdc-review-decision-group label:has(input:checked) { border-color: var(--kppdc-primary); background: #EAF1FB; }
.kppdc-review-warning { margin: 0; color: #E53E3E; font-weight: 700; font-size: 13px; }

/* ── Reviewer Detail Table Filter ────────────────────────── */
[data-active-filter="all"] .kppdc-reviewer-detail-table { display: none !important; }

/* ── PDF 요약 카드 ────────────────────────────────────────── */
.kppdc-pdf-summary-card__body { display: grid; gap: 10px; color: #1f2937; line-height: 1.7; font-size: 14px; min-width: 0; max-width: 100%; overflow-wrap: anywhere; word-break: break-word; }
.kppdc-pdf-summary-card__body h4 { margin: 0; color: var(--kppdc-primary); font-size: 15px; font-weight: 700; }
.kppdc-pdf-summary-card__body p { margin: 0; overflow-wrap: anywhere; word-break: break-word; }
.kppdc-pdf-summary-card__body ul { margin: 0; padding-left: 18px; }
.kppdc-pdf-summary-card__body li { margin: 4px 0; overflow-wrap: anywhere; word-break: break-word; }
.kppdc-pdf-summary-card__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.kppdc-pdf-summary-card__head h4 { margin: 0; }
.kppdc-pdf-summary-generate-form { margin: 0; }
.kppdc-pdf-summary-card__meta { font-size: 11px; font-weight: 700; color: var(--kppdc-secondary-text); }

/* ── 심사위원 액션 버튼 ────────────────────────────────────── */
.kppdc-review-action-button { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 0 12px; border-radius: var(--kppdc-radius-sm); font-size: 13px; font-weight: 700; border: 1px solid transparent; cursor: pointer; transition: background .15s, border-color .15s; }
.kppdc-review-action-button.is-pending { background: var(--kppdc-primary); color: #fff; border-color: var(--kppdc-primary); }
.kppdc-review-action-button.is-pending:hover { background: var(--kppdc-primary-hover); border-color: var(--kppdc-primary-hover); }
.kppdc-review-action-button.is-complete { background: var(--kppdc-success); color: #fff; border-color: var(--kppdc-success); }
.kppdc-review-action-button.is-complete:hover { background: #18552E; border-color: #18552E; }

/* ── Volume Editorial ─────────────────────────────────────── */
.kppdc-issue-editorial__intro { grid-template-columns: minmax(0,8fr) minmax(280px,2fr); align-items: flex-start; }
.kppdc-issue-editorial__copy { text-align: left; align-items: flex-start; }
.kppdc-issue-editorial__image { justify-self: end; min-width: 280px; width: min(460px,100%); height: auto; display: flex; justify-content: flex-end; align-items: center; }
.kppdc-issue-editorial__image img { width: min(460px,100%); height: auto; object-fit: contain; margin-left: auto; filter: none; }
.kppdc-issue-editorial__fallback-art { min-height: 320px; }

/* ── 대시보드 서브타이틀 ──────────────────────────────────── */
.kppdc-dashboard-subtitle {
	margin: 4px 0 0;
	color: var(--kppdc-secondary-text);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.6;
}

/* ── 통계 요약 카드 ───────────────────────────────────────── */
.kppdc-stat-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin-bottom: 20px;
}
.kppdc-stat-card {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	background: #fff;
	border: 1px solid var(--kppdc-border);
	border-radius: var(--kppdc-radius);
	box-shadow: var(--kppdc-shadow-card);
	padding: 20px 22px;
}
.kppdc-stat-card__icon {
	font-size: 22px;
	line-height: 1;
	flex-shrink: 0;
	margin-top: 2px;
	opacity: .7;
}
.kppdc-stat-card__eyebrow {
	margin: 0 0 4px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--kppdc-secondary-text);
}
.kppdc-stat-card__value {
	margin: 0 0 4px;
	font-size: 30px;
	font-weight: 700;
	color: var(--kppdc-primary);
	line-height: 1.1;
}
.kppdc-stat-card__unit {
	font-size: 15px;
	font-weight: 600;
	margin-left: 2px;
}
.kppdc-stat-card__note {
	margin: 0;
	font-size: 13px;
	color: var(--kppdc-secondary-text);
}
.kppdc-stat-card__meta {
	margin: 0;
	font-size: 12px;
	color: var(--kppdc-secondary-text);
}
.kppdc-stat-card__sep {
	margin: 0 4px;
	opacity: .5;
}

/* ── 차트 + 요약표 행 ─────────────────────────────────────── */
.kppdc-analytics-row {
	display: grid;
	grid-template-columns: 1fr 280px;
	gap: 16px;
	margin-bottom: 20px;
	align-items: stretch;
}
.kppdc-chart-card { display: flex; flex-direction: column; gap: 14px; }
.kppdc-chart-head { display: flex; align-items: center; gap: 16px; }
.kppdc-chart-title {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--kppdc-primary);
}

/* 차트 헤더 + 탭 */
.kppdc-chart-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
}
.kppdc-chart-tabs {
	display: flex;
	gap: 4px;
}
.kppdc-chart-tab {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 28px;
	padding: 0 12px;
	border: 1px solid var(--kppdc-border);
	border-radius: 999px;
	background: #fff;
	color: var(--kppdc-secondary-text);
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
	transition: background .15s, border-color .15s, color .15s;
}
.kppdc-chart-tab.is-active {
	background: var(--kppdc-primary);
	border-color: var(--kppdc-primary);
	color: #fff;
}

/* 막대 차트 */
.kppdc-bar-chart {
	display: flex;
	align-items: flex-end;
	gap: 4px;
	height: 140px;
}
.kppdc-bar-chart__col {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1 1 0;
	gap: 4px;
	height: 100%;
	justify-content: flex-end;
}
.kppdc-bar-chart__bar {
	width: 100%;
	min-height: 4px;
	background: var(--kppdc-primary);
	border-radius: 3px 3px 0 0;
	will-change: height;
	cursor: pointer;
}
.kppdc-bar-chart__col:hover .kppdc-bar-chart__bar { opacity: .75; }
/* 세그먼트 fill hover */
.kppdc-seg-bar__fill { cursor: pointer; }
.kppdc-seg-bar__fill:hover { filter: brightness(1.15); }
/* 공용 tooltip */
.kppdc-chart-tooltip {
	background: #1a2744;
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	padding: 5px 10px;
	border-radius: 6px;
	white-space: nowrap;
	box-shadow: 0 4px 12px rgba(0,0,0,.18);
	line-height: 1.4;
}
.kppdc-bar-chart__label {
	font-size: 10px;
	color: var(--kppdc-secondary-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 100%;
	text-align: center;
}

/* 요약 통계 리스트 */
.kppdc-summary-list {
	display: grid;
	gap: 0;
}
.kppdc-summary-list__row {
	padding: 14px 0;
	border-bottom: 1px solid var(--kppdc-border);
	display: grid;
	gap: 8px;
}
.kppdc-summary-list__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px;
}
.kppdc-summary-list__label {
	font-size: 14px;
	font-weight: 600;
	color: var(--kppdc-primary);
}
.kppdc-summary-list__count {
	font-size: 16px;
	font-weight: 700;
	color: var(--kppdc-primary);
	white-space: nowrap;
}
/* 세그먼트 바 */
.kppdc-summary-list__bar-wrap {
	width: 100%;
	height: 8px;
	background: #E2E8F0;
	border-radius: 999px;
	overflow: hidden;
	display: flex;
}
.kppdc-seg-bar {
	display: flex;
	width: 100%;
	height: 100%;
}
.kppdc-seg-bar__fill {
	height: 100%;
	width: 0%;
	will-change: width;
	transition: none;
}
.kppdc-seg-bar__fill--done      { background: #0F2C59; }
.kppdc-seg-bar__fill--rejected  { background: #E53E3E; }
.kppdc-seg-bar__fill--published { background: #1F6B3A; }
/* 범례 */
.kppdc-summary-list__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	font-size: 12px;
	color: var(--kppdc-secondary-text);
	align-items: center;
}
.kppdc-seg-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
}
.kppdc-seg-dot--done      { background: #0F2C59; }
.kppdc-seg-dot--rejected  { background: #E53E3E; }
.kppdc-seg-dot--published { background: #1F6B3A; }
/* 요약 헤더 (타이틀 + 총 00건 배지) */
.kppdc-summary-list__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 12px;
}
.kppdc-summary-list__header .kppdc-chart-title {
	margin: 0;
}
.kppdc-summary-list__total-badge {
	flex-shrink: 0;
	font-size: 13px;
	font-weight: 700;
	color: var(--kppdc-primary);
	background: #EEF2FF;
	border-radius: 20px;
	padding: 2px 10px;
	white-space: nowrap;
}

/* ── 반응형 ───────────────────────────────────────────────── */
@media (max-width: 960px) {
	.kppdc-issue-editorial__intro { grid-template-columns: 1fr; }
	.kppdc-issue-editorial__image { justify-self: start; width: 100%; justify-content: flex-start; }
	.kppdc-issue-editorial__image img { margin-left: 0; }
}

@media (max-width: 760px) {
	.kppdc-dashboard-head,
	.kppdc-auth-row { display: grid; gap: 10px; }
	.kppdc-dashboard-table { display: block; overflow-x: auto; }
	.kppdc-dashboard-table td:last-child { width: auto; }
	.kppdc-editor-filters { grid-template-columns: 1fr; }
	.kppdc-role-tabs { grid-template-columns: 1fr; }
	.kppdc-review-info-list,
	.kppdc-review-stepper { grid-template-columns: 1fr; }
	.kppdc-final-decision-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.kppdc-review-decision-group { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.kppdc-stat-cards { grid-template-columns: 1fr; }
	.kppdc-analytics-row { grid-template-columns: 1fr; }
}

/* ── 편집위원 글 내용 수정 모달 ─────────────────────────────── */
.kppdc-edit-post-modal { width: min(900px, calc(100vw - 32px)); max-width: 100%; max-height: min(92vh, 960px); overflow-y: auto; overflow-x: hidden; box-sizing: border-box; }
.kppdc-edit-post-modal .kppdc-editor-panel { padding: 24px; display: grid; gap: 16px; max-width: 100%; box-sizing: border-box; }
/* wp-editor 영역이 모달 안에서 width 100% 를 차지하도록 */
.kppdc-edit-post-modal .wp-editor-wrap,
.kppdc-edit-post-modal .wp-editor-container { width: 100%; }
.kppdc-edit-post-modal .kppdc-editor-field { display: grid; gap: 6px; }
.kppdc-edit-post-modal .kppdc-editor-field__label { font-size: 14px; font-weight: 600; color: var(--kppdc-primary); }

/* 대표이미지 선택기 */
.kppdc-thumbnail-picker { border: 1px solid var(--kppdc-border); border-radius: var(--kppdc-radius-sm); padding: 14px; display: grid; gap: 10px; }
.kppdc-thumbnail-picker legend { font-weight: 600; font-size: 13px; color: var(--kppdc-primary); padding: 0 4px; }
.kppdc-thumbnail-picker__grid { display: flex; flex-wrap: wrap; gap: 10px; }
.kppdc-thumbnail-picker__item { position: relative; cursor: pointer; border: 2px solid var(--kppdc-border); border-radius: var(--kppdc-radius-sm); overflow: hidden; transition: border-color .15s; }
.kppdc-thumbnail-picker__item input[type=radio] { position: absolute; opacity: 0; width: 0; height: 0; }
.kppdc-thumbnail-picker__item.is-selected,
.kppdc-thumbnail-picker__item:has(input:checked) { border-color: var(--kppdc-accent, #2563EB); box-shadow: 0 0 0 2px rgba(37,99,235,.25); }
.kppdc-thumbnail-picker__img { display: block; width: 80px; height: 80px; object-fit: cover; }
.kppdc-thumbnail-picker__none { display: flex; align-items: center; justify-content: center; width: 80px; height: 80px; font-size: 12px; color: var(--kppdc-secondary-text); background: var(--kppdc-surface); }
