/* 전체 레이아웃 */
.js_view_wrap { max-width: 1280px; margin: 60px auto; padding: 0 20px; color: #222; }

/* 헤더 디자인 */
.js_view_hd { border-bottom: 1px solid #eee; padding-bottom: 30px; margin-bottom: 30px; text-align: center; }
.js_v_cate { display: inline-block; font-size: 12px; color: #999; letter-spacing: 2px; margin-bottom: 15px; }
.js_v_tit { font-size: 32px; font-weight: 700; line-height: 1.4; margin-bottom: 25px; word-break: keep-all; }

.js_v_info { display: flex; justify-content: center; align-items: center; gap: 40px; }
.js_v_author { display: flex; align-items: center; gap: 12px; text-align: left; }
.js_v_author .pf_img img { border-radius: 50%; width: 40px; height: 40px; }
.author_meta .name { display: block; font-size: 14px; }
.author_meta .date { font-size: 12px; color: #bbb; }
.js_v_stats { font-size: 13px; color: #999; }
.js_v_stats span { margin-left: 15px; }

/* 버튼 그룹 */
.js_v_top_btn { display: flex; justify-content: flex-end; margin-bottom: 40px; }
.js_btn_group { list-style: none; display: flex; gap: 10px; align-items: center; padding: 0; }
.btn_v_list { background: #000; color: #fff; padding: 10px 25px; border-radius: 4px; font-weight: 600; text-decoration: none; font-size: 13px; }
.btn_v_sub { border: 1px solid #ddd; color: #666; padding: 9px 18px; border-radius: 4px; text-decoration: none; font-size: 13px; }
.btn_v_more { background: none; border: 1px solid #ddd; padding: 9px 12px; border-radius: 4px; cursor: pointer; color: #999; }

/* 본문 영역 */
.js_v_content { line-height: 1.8; font-size: 16px; color: #444; margin-bottom: 80px; }
.js_content_body { min-height: 300px; margin-bottom: 50px; }
#bo_v_img img { max-width: 100%; height: auto; margin-bottom: 20px; border-radius: 8px; }

/* 추천 버튼 */
.js_v_act { text-align: center; margin-top: 60px; }
.act_btn.good { 
    display: inline-flex; align-items: center; gap: 10px; border: 1px solid #eee; padding: 15px 35px; border-radius: 50px;
    text-decoration: none; color: #222; font-weight: 600; transition: 0.3s;
}
.act_btn.good:hover { border-color: #000; background: #fafafa; }
.act_btn.good i { color: #ff4d4d; }

/* 이전글 다음글 */
.js_v_nb { border-top: 1px solid #eee; border-bottom: 1px solid #eee; display: flex; margin-bottom: 50px; }
.nb_item { flex: 1; padding: 25px 20px; text-decoration: none; color: #333; display: flex; flex-direction: column; gap: 8px; }
.nb_item.next { text-align: right; border-left: 1px solid #eee; }
.nb_label { font-size: 11px; color: #bbb; letter-spacing: 1px; }
.nb_txt { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; }
.nb_item:hover .nb_txt { text-decoration: underline; }

/* 관리자 옵션 레이어 커스텀 */
.admin_opt_wrap { position: relative; }
.more_opt.is_view_btn { 
    display: none; position: absolute; top: 45px; right: 0; background: #fff; border: 1px solid #eee; 
    box-shadow: 0 10px 30px rgba(0,0,0,0.1); z-index: 10; list-style: none; padding: 10px 0; min-width: 120px; border-radius: 4px;
}
.more_opt li a { display: block; padding: 8px 20px; font-size: 13px; color: #666; text-decoration: none; }
.more_opt li a:hover { background: #f8f8f8; color: #000; }