.prs .prs_btns { text-align: right; margin-bottom: 8px; }
.prs .prs_btns .btn { margin-left: 4px; }
.prs .prs_help { margin: 0 0 12px; padding: 8px 12px; background: #fff8e1; border: 1px solid #f0d58a; color: #6b5300; font-size: 13px; }
.prs .prs_empty { padding: 24px 0; text-align: center; color: #888; }
.prs .prs_title { margin: 0 0 8px; font-size: 18px; }
.prs .prs_subtitle { margin: 12px 0 8px; font-size: 15px; color: #333; }
/* #full_phd 같은 주소로 들어왔을 때 제목이 상단 고정 메뉴에 가려지지 않게 */
.prs .prs_title[id], .prs .prs_subtitle[id] { scroll-margin-top: 130px; }
.prs [hidden] { display: none !important; }

/* 카드: PC 한 줄에 세 명 (사진 위, 정보 아래) */
/* 구역: 제목 / 위 선 / 사람들 / 아래 선 / 빈 줄 */
.prs .prs_grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 24px; margin: 0 0 40px; padding: 20px 0; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; }
.prs .prs_card { min-width: 0; }
.prs .prs_photo { width: 150px; height: 200px; margin: 0 auto; background: #f2f2f2; }
.prs .prs_photo img { width: 150px; height: 200px; object-fit: cover; display: block; }
.prs .prs_info { width: 100%; margin-top: 10px; border-collapse: collapse; font-size: 13px; line-height: 1.5; }
.prs .prs_info th { width: 70px; padding: 2px 6px 2px 0; text-align: left; vertical-align: top; white-space: nowrap; font-weight: bold; }
.prs .prs_info td { padding: 3px 0; vertical-align: top; word-break: break-word; }
.prs .prs_info td.prs_name { font-weight: bold; }
.prs .prs_edit { margin-left: 4px; font-size: 11px; font-weight: normal; color: #999; }
.prs .prs_move { margin-top: 6px; max-width: 100%; padding: 2px 4px; border: 1px solid #ddd; font-size: 11px; color: #777; background: #fff; }
.prs.prs_sorting .prs_move { display: none; }

/* 순서 편집 중 */
.prs.prs_sorting .prs_card { cursor: move; outline: 1px dashed #bbb; outline-offset: 4px; background: #fff; }
.prs.prs_sorting .prs_card.prs_dragging { opacity: .4; }
.prs.prs_sorting .prs_card a { pointer-events: none; }

/* 입력 양식 */
.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, .pub_write .pub_form textarea { width: 100%; max-width: 640px; height: auto; padding: 5px 8px; box-sizing: border-box; }
.pub_write .pub_form textarea { min-height: 70px; }
.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) {
.prs { padding: 0 14px 20px; font-family: inherit; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.prs * { max-height: 999999px; }
.prs .prs_title { font-size: 16px; margin: 12px 0 6px; }
.prs .prs_title[id], .prs .prs_subtitle[id] { scroll-margin-top: 60px; }
.prs .prs_grid { grid-template-columns: 1fr 1fr; gap: 18px 12px; padding: 14px 0; margin-bottom: 28px; }
.prs .prs_card { display: block; }
.prs .prs_photo { width: 100%; height: auto; aspect-ratio: 3 / 4; }
.prs .prs_photo img { width: 100%; height: 100%; }
.prs .prs_info { display: block; margin-top: 8px; font-size: 12px; }
.prs .prs_info tbody, .prs .prs_info tr { display: block; }
.prs .prs_info th, .prs .prs_info td { display: block; width: auto; padding: 0; white-space: normal; }
.prs .prs_info th { margin-top: 6px; font-size: 11px; color: #888; }
.prs .prs_info td { color: #222; }
}
