/* ============================================================
   기본 스킨 — 사이드바 + 상단바 레이아웃
   리스트 / 뷰 / 글작성 기본 GNUBoard div 스타일
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root {
  --cl-bg:       #f5f4ef;
  --cl-surface:  #ffffff;
  --cl-surface-2:#f9f8f5;
  --cl-border:   #e8e6df;
  --cl-border-2: #d4d0c8;
  --cl-text:     #1a1a18;
  --cl-text-2:   #4a4a46;
  --cl-text-3:   #7a7a74;
  --cl-accent:   #da7756;
  --cl-accent-2: #c4613d;
  --cl-accent-bg:#fdf0ec;
  --r-sm: 8px; --r: 12px; --r-lg: 16px;
  --sh-sm: 0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);
  --sh:    0 4px 12px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.04);
  --font: 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

body { margin: 0; background: var(--cl-bg); font-family: var(--font); color: var(--cl-text); }

/* ══════════════════════════════════════
   공통 버튼
══════════════════════════════════════ */
.sj_btn { display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--r-sm);font-size:13.5px;font-weight:500;cursor:pointer;text-decoration:none;border:1px solid transparent;transition:all .15s;white-space:nowrap; }
.sj_btn_primary   { background:var(--cl-accent);color:#fff;border-color:var(--cl-accent); }
.sj_btn_primary:hover { background:var(--cl-accent-2);border-color:var(--cl-accent-2);color:#fff; }
.sj_btn_secondary { background:var(--cl-surface);color:var(--cl-text-2);border-color:var(--cl-border-2); }
.sj_btn_secondary:hover { background:var(--cl-surface-2);color:var(--cl-text); }
.sj_btn_danger    { background:#fff;color:#a83020;border-color:#e8a898; }
.sj_btn_danger:hover { background:#faedeb; }
.sj_btn_sm        { padding:5px 11px;font-size:12.5px; }

/* ══════════════════════════════════════
   앱 레이아웃 (사이드바 + 메인)
══════════════════════════════════════ */
.sj_app_wrap {
  display: flex; min-height: 100vh;
  background: var(--cl-bg); font-family: var(--font);
}

/* ── 사이드바: 기본 220px, 접힘 52px ── */
.sj_sidebar {
  width: 220px; min-height: 100vh; flex-shrink: 0;
  background: var(--cl-surface-2); border-right: 1px solid var(--cl-border);
  display: flex; flex-direction: column;
  position: sticky; top: 0; height: 100vh;
  transition: width .22s cubic-bezier(.4,0,.2,1);
  z-index: 100; overflow-y: auto; overflow-x: hidden;
}
.sj_app_wrap.sj_sidebar_collapsed .sj_sidebar { width: 52px; }

.sj_sidebar_name,
.sj_sidebar_section_label,
.sj_nav_label { opacity:1;width:auto;overflow:hidden;white-space:nowrap;pointer-events:auto;transition:opacity .15s .05s, width .15s; }
.sj_app_wrap.sj_sidebar_collapsed .sj_sidebar_name,
.sj_app_wrap.sj_sidebar_collapsed .sj_sidebar_section_label,
.sj_app_wrap.sj_sidebar_collapsed .sj_nav_label { opacity:0;width:0;pointer-events:none; }

/* 로고 */
.sj_sidebar_logo { display:flex;align-items:center;gap:10px;padding:14px 13px;border-bottom:1px solid var(--cl-border);min-height:52px;flex-shrink:0; }
.sj_sidebar_icon { font-size:24px;line-height:1;flex-shrink:0; }
.sj_sidebar_name { font-size:13.5px;font-weight:700;color:var(--cl-text); }
.sj_logo_link { display:flex;align-items:center;gap:10px;text-decoration:none;flex:1;min-width:0; }
.sj_logo_link:hover .sj_sidebar_name { color:var(--cl-accent); }

/* 섹션 레이블 */
.sj_sidebar_section_label { font-size:10px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;color:var(--cl-text-3);padding:14px 14px 4px;height:36px;display:flex;align-items:flex-end; }

/* 네비 */
.sj_sidebar_nav { display:flex;flex-direction:column;padding:4px 6px;gap:1px; }
.sj_nav_item { display:flex;align-items:center;gap:0;padding:9px 0;border-radius:var(--r-sm);font-size:13.5px;color:var(--cl-text-2);text-decoration:none;transition:background .13s, color .13s;font-weight:500;cursor:pointer;border:none;background:none;min-height:38px;justify-content:flex-start;overflow:hidden; }
.sj_nav_item i { width:40px;text-align:center;font-size:15px;flex-shrink:0; }
.sj_nav_label { font-size:13.5px;font-weight:500; }
.sj_nav_item:hover { background:var(--cl-border);color:var(--cl-text); }
.sj_nav_item.active { background:var(--cl-accent-bg);color:var(--cl-accent);font-weight:600; }
.sj_app_wrap.sj_sidebar_collapsed .sj_nav_item { justify-content:center; }
.sj_nav_write { background:var(--cl-accent) !important;color:#fff !important;margin:6px 0 2px; }
.sj_nav_write:hover { background:var(--cl-accent-2) !important; }
.sj_nav_pnumall { background:#1a4fa0 !important;color:#fff !important;margin:2px 0; }
.sj_nav_pnumall:hover { background:#153d80 !important; }
.sj_app_wrap.sj_sidebar_collapsed .sj_nav_pnumall { justify-content:center; }
.sj_nav_setup:hover { background:var(--cl-accent-bg);color:var(--cl-accent); }

/* 사이드바 하단 */
.sj_sidebar_footer { margin-top:auto;padding:14px 14px 10px;border-top:1px solid var(--cl-border);display:flex;flex-direction:column;gap:5px; }
.sj_sidebar_footer_url { font-size:11.5px;font-weight:600;color:var(--cl-accent);text-decoration:none;letter-spacing:.02em; }
.sj_sidebar_footer_url:hover { text-decoration:underline; }
.sj_sidebar_copyright { font-size:10.5px;color:var(--cl-text-3);line-height:1.6;margin:0; }
.sj_app_wrap.sj_sidebar_collapsed .sj_sidebar_footer { display:none; }

/* 상태 도트 */
.sj_status_dot_wait    { color: #7a5010 !important; }
.sj_status_dot_ok      { color: #1f6b42 !important; }
.sj_status_dot_reject  { color: #a83020 !important; }
.sj_status_dot_pnumall { color: #2a3ea0 !important; }

/* 모바일 닫기 버튼: 데스크탑 숨김 */
.sj_sidebar_close_btn { display:none; }

/* 사이드바 접기/펼치기 버튼 */
.sj_sidebar_pin_btn { margin:auto 6px 12px;background:none;border:1px solid var(--cl-border);border-radius:var(--r-sm);width:36px;height:30px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;color:var(--cl-text-3);transition:all .15s;flex-shrink:0; }
.sj_app_wrap.sj_sidebar_collapsed .sj_sidebar_pin_btn { color:var(--cl-accent);border-color:var(--cl-accent); }
.sj_sidebar_pin_btn:hover { background:var(--cl-bg); }

/* ── 메인 영역 ── */
.sj_main_area { flex:1;min-width:0;display:flex;flex-direction:column; }

/* ── 상단바 ── */
.sj_topbar { height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--cl-surface);border-bottom:1px solid var(--cl-border);position:sticky;top:0;z-index:50;gap:12px; }
.sj_topbar_left  { display:flex;align-items:center;gap:10px;min-width:0;flex:1; }
.sj_topbar_right { display:flex;align-items:center;gap:8px;flex-shrink:0; }
.sj_topbar_title { font-size:14px;font-weight:600;color:var(--cl-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.sj_topbar_count { font-size:12px;color:var(--cl-text-3);background:var(--cl-bg);border:1px solid var(--cl-border);padding:2px 8px;border-radius:99px;white-space:nowrap; }
.sj_topbar_login { display:flex;align-items:center;gap:8px;padding-left:12px;border-left:1px solid var(--cl-border);flex-shrink:0; }
.sj_login_name   { font-size:13px;font-weight:500;color:var(--cl-text-2); }
.sj_sidebar_toggle { background:none;border:none;cursor:pointer;width:32px;height:32px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;color:var(--cl-text-3);font-size:15px;transition:all .15s; }
.sj_sidebar_toggle:hover { background:var(--cl-bg);color:var(--cl-text); }
.sj_icon_btn { background:none;border:1px solid var(--cl-border);border-radius:var(--r-sm);width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--cl-text-3);font-size:13px;transition:all .15s; }
.sj_icon_btn:hover { background:var(--cl-bg);color:var(--cl-text);border-color:var(--cl-border-2); }

/* ── 컨텐츠 영역 ── */
.sj_content      { flex:1;padding:24px 24px 40px; }
.sj_content_view { flex:1;padding:20px 24px 40px; }

/* 모바일 딤 */
.sj_sidebar_dim { display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:99; }

/* ══════════════════════════════════════
   모바일 (≤768px)
══════════════════════════════════════ */
@media (max-width: 768px) {
  .sj_sidebar { position:fixed;left:-240px;width:220px !important;transition:left .25s cubic-bezier(.4,0,.2,1);top:0;box-shadow:none; }
  .sj_sidebar .sj_sidebar_name,
  .sj_sidebar .sj_sidebar_section_label,
  .sj_sidebar .sj_nav_label { opacity:1;width:auto;pointer-events:auto; }
  .sj_sidebar .sj_nav_item { justify-content:flex-start; }
  .sj_app_wrap.sj_sidebar_open .sj_sidebar { left:0;box-shadow:4px 0 24px rgba(0,0,0,.18); }
  .sj_sidebar_dim { display:none; }
  .sj_app_wrap.sj_sidebar_open .sj_sidebar_dim { display:block; }
  .sj_sidebar_close_btn { display:flex;position:absolute;top:10px;right:10px;background:none;border:1px solid var(--cl-border);border-radius:var(--r-sm);width:30px;height:30px;align-items:center;justify-content:center;cursor:pointer;font-size:14px;color:var(--cl-text-3);z-index:10; }
  .sj_sidebar_close_btn:hover { background:var(--cl-border);color:var(--cl-text); }
  .sj_sidebar_pin_btn { display:none; }
  .sj_content, .sj_content_view { padding:14px; }
  .sj_topbar { padding:0 12px; }
  .sj_topbar_title { font-size:13px;max-width:160px; }
  .m_none { display:none !important; }
}

/* ══════════════════════════════════════
   기본 GNUBoard 리스트 (list.skin.php)
══════════════════════════════════════ */

/* 검색 영역 */
.bo_sch_wrap { margin-bottom: 16px; }
.bo_sch_form { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; background: var(--cl-surface); border: 1px solid var(--cl-border); border-radius: var(--r); padding: 12px 16px; }
.bo_sch_form select { padding: 7px 12px; border: 1px solid var(--cl-border-2); border-radius: var(--r-sm); font-size: 13px; color: var(--cl-text-2); background: var(--cl-surface); cursor: pointer; }
.bo_sch_form input[type="search"],
.bo_sch_form input[type="text"] { flex: 1; min-width: 160px; padding: 7px 12px; border: 1px solid var(--cl-border-2); border-radius: var(--r-sm); font-size: 13px; color: var(--cl-text); background: var(--cl-surface); outline: none; transition: border-color .15s; }
.bo_sch_form input:focus { border-color: var(--cl-accent); box-shadow: 0 0 0 3px rgba(218,119,86,.1); }
.bo_sch_form button { padding: 7px 16px; background: var(--cl-accent); color: #fff; border: none; border-radius: var(--r-sm); font-size: 13px; font-weight: 500; cursor: pointer; transition: background .15s; white-space: nowrap; }
.bo_sch_form button:hover { background: var(--cl-accent-2); }

/* 카테고리 필터 */
.bo_cate_wrap { margin-bottom: 14px; border-bottom: 1px solid var(--cl-border); }
.bo_cate_list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0; }
.bo_cate_list a { display: block; padding: 8px 16px; font-size: 13.5px; font-weight: 500; color: var(--cl-text-3); text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: all .15s; }
.bo_cate_list a:hover { color: var(--cl-text); border-color: var(--cl-border-2); }
.bo_cate_list a.on { color: var(--cl-accent); border-color: var(--cl-accent); font-weight: 600; }

/* 리스트 상단 바 */
.bo_list_head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; gap: 8px; flex-wrap: wrap; }
.bo_list_total { font-size: 13px; color: var(--cl-text-3); }
.bo_list_total strong { color: var(--cl-text); font-weight: 600; }

/* 게시글 목록 */
.bo_list_table { width: 100%; border-collapse: collapse; background: var(--cl-surface); border: 1px solid var(--cl-border); border-radius: var(--r); overflow: hidden; }
.bo_list_table thead th { padding: 11px 14px; font-size: 12.5px; font-weight: 600; color: var(--cl-text-3); text-align: left; background: var(--cl-surface-2); border-bottom: 1px solid var(--cl-border); white-space: nowrap; }
.bo_list_table thead th.td_num    { width: 60px; text-align: center; }
.bo_list_table thead th.td_name   { width: 100px; }
.bo_list_table thead th.td_date   { width: 90px; }
.bo_list_table thead th.td_hit    { width: 60px; text-align: center; }
.bo_list_table thead th.td_opinion{ width: 50px; text-align: center; }
.bo_list_table tbody tr { border-bottom: 1px solid var(--cl-border); transition: background .12s; }
.bo_list_table tbody tr:last-child { border-bottom: none; }
.bo_list_table tbody tr:hover { background: var(--cl-surface-2); }
.bo_list_table tbody tr.bo_notice { background: #fffdf8; }
.bo_list_table tbody td { padding: 11px 14px; font-size: 13.5px; color: var(--cl-text-2); vertical-align: middle; }
.bo_list_table tbody td.td_num { text-align: center; color: var(--cl-text-3); font-size: 12px; }
.bo_list_table tbody td.td_hit, 
.bo_list_table tbody td.td_opinion { text-align: center; font-size: 12px; color: var(--cl-text-3); }
.bo_list_table tbody td.td_date { font-size: 12px; color: var(--cl-text-3); white-space: nowrap; }

.bo_tit_wrap { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.bo_tit_wrap a { color: var(--cl-text); text-decoration: none; font-weight: 500; font-size: 13.5px; }
.bo_tit_wrap a:hover { color: var(--cl-accent); }
.bo_notice_icon { font-size: 10px; font-weight: 700; color: var(--cl-accent); background: var(--cl-accent-bg); border: 1px solid var(--cl-accent); padding: 1px 6px; border-radius: 4px; white-space: nowrap; }
.bo_icon_file { color: var(--cl-text-3); font-size: 12px; }
.bo_cmt_count { color: var(--cl-accent); font-size: 12px; font-weight: 700; }
.bo_new_icon { font-size: 10px; font-weight: 700; color: #fff; background: var(--cl-accent); padding: 1px 5px; border-radius: 4px; }
.bo_hot_icon { font-size: 10px; font-weight: 700; color: #fff; background: #e05050; padding: 1px 5px; border-radius: 4px; }

/* 리스트 하단 (페이징 + 버튼) */
.bo_list_foot { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; flex-wrap: wrap; gap: 12px; }
.bo_page_wrap { display: flex; align-items: center; justify-content: center; gap: 4px; flex: 1; }
.pg_page, .pg_current, .pg_prev, .pg_next, .pg_end, .pg_start { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 32px; padding: 0 6px; border-radius: var(--r-sm); font-size: 13px; text-decoration: none; color: var(--cl-text-2); border: 1px solid var(--cl-border); transition: all .15s; }
.pg_page:hover, .pg_prev:hover, .pg_next:hover, .pg_end:hover, .pg_start:hover { background: var(--cl-surface-2); color: var(--cl-text); }
.pg_current { background: var(--cl-accent); color: #fff; border-color: var(--cl-accent); font-weight: 600; }
.bo_list_btn_wrap { display: flex; gap: 8px; }

/* 빈 목록 */
.bo_list_empty { text-align: center; padding: 48px 24px; color: var(--cl-text-3); font-size: 14px; background: var(--cl-surface); border: 1px solid var(--cl-border); border-radius: var(--r); }
.bo_list_empty i { font-size: 32px; margin-bottom: 12px; display: block; opacity: .4; }

/* ══════════════════════════════════════
   기본 GNUBoard 뷰 (view.skin.php)
══════════════════════════════════════ */
.bo_view_wrap { max-width: 860px; }

/* 게시글 헤더 */
.bo_view_head { background: var(--cl-surface); border: 1px solid var(--cl-border); border-radius: var(--r-lg); padding: 20px 24px 16px; margin-bottom: 16px; }
.bo_v_subject { font-size: 18px; font-weight: 700; color: var(--cl-text); margin: 0 0 14px; line-height: 1.5; }
.bo_v_info { display: flex; gap: 16px; flex-wrap: wrap; font-size: 12.5px; color: var(--cl-text-3); border-top: 1px solid var(--cl-border); padding-top: 12px; }
.bo_v_info span { display: flex; align-items: center; gap: 5px; }
.bo_v_info strong { color: var(--cl-text-2); font-weight: 500; }

/* 게시글 본문 */
.bo_view_body { background: var(--cl-surface); border: 1px solid var(--cl-border); border-radius: var(--r-lg); padding: 24px 28px; margin-bottom: 16px; min-height: 120px; line-height: 1.8; font-size: 14.5px; color: var(--cl-text); word-break: break-word; }
.bo_view_body img { max-width: 100%; height: auto; border-radius: var(--r-sm); }

/* 첨부파일 */
.bo_v_file_wrap { background: var(--cl-surface); border: 1px solid var(--cl-border); border-radius: var(--r-lg); padding: 16px 20px; margin-bottom: 16px; }
.bo_v_file_title { font-size: 13px; font-weight: 600; color: var(--cl-text-2); margin-bottom: 10px; }
.bo_v_file_list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.bo_v_file_list li { display: flex; align-items: center; gap: 8px; padding: 7px 10px; background: var(--cl-surface-2); border: 1px solid var(--cl-border); border-radius: var(--r-sm); font-size: 13px; }
.bo_v_file_list a { color: var(--cl-accent); text-decoration: none; flex: 1; }
.bo_v_file_list a:hover { text-decoration: underline; }
.bo_v_file_list .file_size { color: var(--cl-text-3); font-size: 12px; white-space: nowrap; }

/* 뷰 하단 버튼 */
.bo_view_foot { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; flex-wrap: wrap; gap: 10px; }
.bo_view_nav  { display: flex; gap: 8px; }

/* 이전/다음 글 */
.bo_v_prev_next { background: var(--cl-surface); border: 1px solid var(--cl-border); border-radius: var(--r-lg); overflow: hidden; margin-bottom: 16px; }
.bo_v_pn_row { display: flex; align-items: center; gap: 12px; padding: 12px 20px; border-bottom: 1px solid var(--cl-border); font-size: 13px; }
.bo_v_pn_row:last-child { border-bottom: none; }
.bo_v_pn_label { color: var(--cl-text-3); font-size: 12px; white-space: nowrap; min-width: 40px; }
.bo_v_pn_row a { color: var(--cl-text-2); text-decoration: none; flex: 1; font-weight: 500; }
.bo_v_pn_row a:hover { color: var(--cl-accent); }
.bo_v_pn_none { color: var(--cl-text-3); flex: 1; font-size: 13px; }

/* ══════════════════════════════════════
   기본 GNUBoard 댓글 (view_comment.skin.php)
══════════════════════════════════════ */
.bo_cmt_wrap { margin-top: 16px; }
.bo_cmt_head { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; font-size: 14px; font-weight: 600; color: var(--cl-text); }
.bo_cmt_count_badge { background: var(--cl-accent); color: #fff; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 99px; }

.bo_cmt_list { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 1px; }
.bo_cmt_item { background: var(--cl-surface); border: 1px solid var(--cl-border); border-radius: var(--r); padding: 14px 18px; }
.bo_cmt_item.bo_cmt_reply { margin-left: 28px; background: var(--cl-surface-2); }
.bo_cmt_info { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; font-size: 12.5px; color: var(--cl-text-3); flex-wrap: wrap; }
.bo_cmt_writer { font-weight: 600; color: var(--cl-text-2); }
.bo_cmt_date   { font-size: 12px; }
.bo_cmt_body   { font-size: 14px; line-height: 1.7; color: var(--cl-text); word-break: break-word; }
.bo_cmt_actions { display: flex; gap: 8px; margin-top: 8px; }
.bo_cmt_btn { font-size: 12px; color: var(--cl-text-3); text-decoration: none; cursor: pointer; background: none; border: none; padding: 0; transition: color .13s; }
.bo_cmt_btn:hover { color: var(--cl-accent); }

/* 댓글 작성 폼 */
.bo_cmt_form_wrap { background: var(--cl-surface); border: 1px solid var(--cl-border); border-radius: var(--r-lg); padding: 18px 20px; }
.bo_cmt_form_title { font-size: 13.5px; font-weight: 600; color: var(--cl-text-2); margin-bottom: 12px; }
.bo_cmt_form_row { display: flex; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.bo_cmt_form_row input[type="text"],
.bo_cmt_form_row input[type="password"] { padding: 8px 12px; border: 1px solid var(--cl-border-2); border-radius: var(--r-sm); font-size: 13px; color: var(--cl-text); background: var(--cl-surface); outline: none; transition: border-color .15s; min-width: 0; }
.bo_cmt_form_row input:focus { border-color: var(--cl-accent); box-shadow: 0 0 0 3px rgba(218,119,86,.1); }
.bo_cmt_form_textarea { width: 100%; padding: 10px 14px; border: 1px solid var(--cl-border-2); border-radius: var(--r-sm); font-size: 13.5px; color: var(--cl-text); background: var(--cl-surface); outline: none; resize: vertical; min-height: 80px; font-family: var(--font); transition: border-color .15s; }
.bo_cmt_form_textarea:focus { border-color: var(--cl-accent); box-shadow: 0 0 0 3px rgba(218,119,86,.1); }
.bo_cmt_form_foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 10px; }

/* ══════════════════════════════════════
   기본 GNUBoard 글쓰기 (write.skin.php)
══════════════════════════════════════ */
.bo_write_wrap { max-width: 800px; }

/* 글쓰기 상단 */
.bo_write_head { margin-bottom: 18px; }
.bo_write_title { font-size: 18px; font-weight: 700; color: var(--cl-text); margin: 0; }

/* 폼 */
.bo_write_form { background: var(--cl-surface); border: 1px solid var(--cl-border); border-radius: var(--r-lg); padding: 24px; margin-bottom: 14px; }
.bo_write_section { margin-bottom: 18px; }
.bo_write_section:last-child { margin-bottom: 0; }
.bo_write_section_title { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .7px; color: var(--cl-text-3); margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid var(--cl-border); }

.bo_write_field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px; }
.bo_write_field:last-child { margin-bottom: 0; }
.bo_write_field label { font-size: 13px; font-weight: 500; color: var(--cl-text-2); }
.bo_write_field label .req { color: var(--cl-accent); margin-left: 2px; }

.bo_write_input,
.frm_input { width: 100%; padding: 9px 13px; border: 1px solid var(--cl-border-2); border-radius: var(--r-sm); font-size: 14px; color: var(--cl-text); background: var(--cl-surface); transition: border-color .15s, box-shadow .15s; outline: none; font-family: var(--font); }
.bo_write_input:focus,
.frm_input:focus { border-color: var(--cl-accent); box-shadow: 0 0 0 3px rgba(218,119,86,.15); }

.bo_write_select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%237a7a74' d='M6 8L1 3h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px; cursor: pointer; }

.bo_write_editor_wrap { border: 1px solid var(--cl-border-2); border-radius: var(--r-sm); overflow: hidden; }
.bo_write_editor_wrap textarea { width: 100%; min-height: 240px; padding: 14px; border: none; font-size: 14px; color: var(--cl-text); background: var(--cl-surface); resize: vertical; font-family: var(--font); line-height: 1.7; outline: none; }

/* 옵션 행 (비밀글, 공지 등) */
.bo_write_options { display: flex; gap: 16px; flex-wrap: wrap; padding: 10px 0 2px; }
.bo_write_option  { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--cl-text-2); cursor: pointer; }
.bo_write_option input { accent-color: var(--cl-accent); width: 14px; height: 14px; }

/* 비밀번호 필드 쌍 */
.bo_write_pw_row { display: flex; gap: 10px; flex-wrap: wrap; }
.bo_write_pw_row .bo_write_input { max-width: 200px; }

/* 파일 업로드 */
.bo_write_file_item { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: var(--cl-surface-2); border: 1px solid var(--cl-border); border-radius: var(--r-sm); margin-bottom: 8px; }
.bo_write_file_item input[type="file"] { flex: 1; font-size: 13px; }
.bo_write_file_item .file_size_info { font-size: 12px; color: var(--cl-text-3); white-space: nowrap; }
.bo_write_file_del { display: flex; align-items: center; gap: 5px; font-size: 12px; color: var(--cl-text-3); }

/* 하단 버튼 */
.bo_write_foot { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }
.bo_write_foot_left  { display: flex; gap: 8px; }
.bo_write_foot_right { display: flex; gap: 8px; }
.bo_write_submit { background: var(--cl-accent); color: #fff; border: none; border-radius: var(--r-sm); padding: 10px 28px; font-size: 14px; font-weight: 600; cursor: pointer; transition: background .15s; }
.bo_write_submit:hover { background: var(--cl-accent-2); }
.bo_write_cancel { background: var(--cl-surface); color: var(--cl-text-2); border: 1px solid var(--cl-border-2); border-radius: var(--r-sm); padding: 10px 20px; font-size: 14px; font-weight: 500; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; transition: background .15s; }
.bo_write_cancel:hover { background: var(--cl-surface-2); }

/* ══════════════════════════════════════
   유틸
══════════════════════════════════════ */
.hidden { display: none !important; }
