.pub h2 { margin: 24px 0 12px; font-size: 18px; }
.pub .pub_btns { text-align: right; margin-bottom: 8px; }
.pub .pub_stats { width: 100%; border-collapse: collapse; }
.pub .pub_stats th, .pub .pub_stats td { border: 1px solid #ccc; padding: 4px 6px; text-align: center; }
.pub .pub_stats .pub_num { color: #f00; font-weight: bold; }
.pub .pub_item { margin: 8px 0; line-height: 1.6; }
.pub .pub_if { color: #e74c3c; }
.pub .pub_edit { margin-left: 4px; font-size: 11px; color: #999; }
.pub hr { border: 0; border-top: 1px solid #ddd; }
.pub .pub_search { margin: 0 0 12px; display: flex; align-items: center; gap: 8px; }
.pub .pub_search input { flex: 1 1 auto; min-width: 0; max-width: 480px; padding: 6px 10px; border: 1px solid #ccc; box-sizing: border-box; font-size: 13px; }
.pub .pub_search span { color: #e74c3c; font-weight: bold; white-space: nowrap; }
.pub .pub_search select { margin-left: auto; flex: 0 0 auto; height: auto; padding: 5px 6px; border: 1px solid #ccc; font-size: 13px; background: #fff; }
.pub .pub_tabs { display: flex; flex-wrap: wrap; gap: 4px; margin: 20px 0 4px; padding-bottom: 8px; border-bottom: 2px solid #333; }
.pub .pub_tabs button { padding: 5px 10px; border: 1px solid #ccc; background: #f7f7f7; color: #333; font-size: 12px; cursor: pointer; }
.pub .pub_tabs button span { color: #999; }
.pub .pub_tabs button.on { background: #333; border-color: #333; color: #fff; }
.pub .pub_tabs button.on span { color: #ddd; }
/* 탭 줄: 아래로 스크롤해도 화면 위에 붙어 있음 (긴 목록 중간에서도 바로 다른 탭으로) */
.pub .pub_tabs { position: sticky; top: 0; z-index: 20; background: #fff; padding-top: 8px; }
/* 통계: 제목을 눌러 접고 펴기 */
.pub .pub_stats_box > summary { list-style: none; cursor: pointer; }
.pub .pub_stats_box > summary::-webkit-details-marker { display: none; }
.pub .pub_stats_box > summary h2 { display: inline-block; }
.pub .pub_stats_box > summary h2::after { content: '\25BE'; margin-left: 6px; font-size: 13px; color: #999; }
.pub .pub_stats_box:not([open]) > summary h2::after { content: '\25B8'; }
.pub .pub_stats_total { font-size: 13px; font-weight: bold; color: #999; }
.pub .pub_none { padding: 24px 0; text-align: center; color: #888; }
.pub [hidden] { display: none !important; }

/* 논문 입력 양식 */
.pub_write h2 { margin: 16px 0 12px; font-size: 18px; }
.pub_write .pub_form { width: 100%; border-collapse: collapse; }
.pub_write .pub_form th, .pub_write .pub_form td { border-bottom: 1px solid #eee; padding: 8px 6px; text-align: left; vertical-align: top; }
.pub_write .pub_form th { width: 140px; white-space: nowrap; }
.pub_write .pub_form input[type=text], .pub_write .pub_form input[type=password], .pub_write .pub_form select { width: 100%; max-width: 640px; height: auto; padding: 5px 8px; box-sizing: border-box; }
.pub_write em { color: #e74c3c; font-style: normal; }
.pub_write .pub_desc { margin: 4px 0 0; font-size: 11px; color: #888; }
.pub_write .btnArea { margin-top: 16px; text-align: center; }

/* 모바일 (반응형) */
@media (max-width: 767px) {
.pub { padding: 0 14px 20px; font-family: inherit; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.pub * { max-height: 999999px; }
.pub .pub_item { font-size: 13px; line-height: 1.6; word-break: break-word; }
.pub h2 { font-size: 16px; margin: 18px 0 8px; }
.pub .pub_search { margin-top: 12px; }
.pub .pub_search input, .pub .pub_search select { font-size: 13px; }
.pub .pub_tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 8px; }
/* 오른쪽 끝을 흐리게 해서 옆으로 더 넘길 수 있다는 것을 보여 줌 */
.pub .pub_tabs { -webkit-mask-image: linear-gradient(to right, #000 88%, transparent); mask-image: linear-gradient(to right, #000 88%, transparent); }
.pub .pub_tabs button { flex: 0 0 auto; white-space: nowrap; padding: 6px 9px; font-size: 12px; }
.pub .pub_stats { font-size: 12px; }
.pub .pub_stats th, .pub .pub_stats td { padding: 4px 3px; }
.pub .pub_stats th { white-space: nowrap; }
.pub .pub_stats td { word-break: keep-all; }
}
