/* utility-board.css — 그누보드 게시판 CRUD(글쓰기·댓글·검색·회원) 화면을 생활계산소 디자인에 맞춤.
   기존 스킨 style.css 위에 덧씌워 색/폰트/간격을 디자인 토큰으로 통일한다. */

/* 공통 컨테이너 */
#bo_w, #bo_v, #bo_vc, #bo_list, #mb_confirm, #pwd_confirm, .new_win, #sch_result {
  max-width: var(--container); margin: 0 auto; font-family: var(--font-sans); color: var(--color-text);
}
#bo_w form, #fwrite { width: 100% !important; }

/* 입력/선택/텍스트영역/파일 */
#bo_w .frm_input, #bo_w select, #bo_w textarea, #bo_w input[type="text"], #bo_w input[type="password"], #bo_w input[type="file"],
#bo_vc .frm_input, #bo_vc textarea, #sch_result .frm_input,
.frm_input, form select {
  font-family: var(--font-sans); font-size: 16px; color: var(--color-text);
  border: 1px solid var(--color-control-border) !important; border-radius: var(--radius-input) !important;
  background: var(--color-surface); box-shadow: none !important;
}
#bo_w .frm_input, #bo_w select, #bo_w input[type="text"], #bo_w input[type="password"] { min-height: 48px; padding: 0 14px; }
#bo_w textarea, #bo_vc textarea { min-height: 220px; padding: 12px 14px; line-height: 1.6; }
#bo_w .frm_input:focus, #bo_w select:focus, #bo_w textarea:focus, #bo_vc textarea:focus,
.frm_input:focus, form select:focus {
  border-color: var(--color-primary) !important; outline: none; box-shadow: var(--shadow-focus) !important;
}
#bo_w .full_input { width: 100%; }
#bo_w .half_input { width: 48%; max-width: 280px; margin-right: 1%; }

/* 글쓰기 행 간격 */
#bo_w .write_div { margin-bottom: var(--sp-4); }
#bo_w label { font-weight: 600; }

/* 옵션(공지/html/비밀글) 체크 */
#bo_w .bo_v_option { list-style: none; margin: 0 0 var(--sp-3); padding: 0; display: flex; flex-wrap: wrap; gap: var(--sp-4); }
#bo_w .chk_box, #bo_vc .chk_box { display: inline-flex; align-items: center; gap: 6px; }

/* 버튼 */
.btn_submit, #bo_w .btn_submit, #bo_vc .btn_submit, input.btn_submit, button.btn_submit {
  background: var(--color-primary) !important; color: #fff !important; border: 0 !important;
  min-height: 48px; padding: 0 24px; border-radius: var(--radius-input) !important; font-weight: 600; font-size: 16px; cursor: pointer;
}
.btn_submit:hover { background: var(--color-primary-hover) !important; }
.btn_submit:focus-visible, .btn_cancel:focus-visible, .btn:focus-visible, .btn_frmline:focus-visible {
  outline: 3px solid var(--color-primary) !important; outline-offset: 2px;
}
.btn_cancel, a.btn_cancel, .btn, #bo_w .btn, .btn02, button.btn_frmline, .btn_frmline {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--color-surface) !important; color: var(--color-text) !important; border: 1px solid var(--color-border) !important;
  min-height: 44px; padding: 0 18px; border-radius: var(--radius-input) !important; font-weight: 600; text-decoration: none; cursor: pointer;
}
.btn_cancel:hover, .btn:hover, .btn_frmline:hover { background: var(--color-surface-soft) !important; }
#bo_w .btn_confirm { display: flex; gap: var(--sp-3); justify-content: flex-end; margin-top: var(--sp-6); }

/* 임시저장 팝업 */
#btn_autosave { margin-top: var(--sp-2); }
#autosave_pop { border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-surface); padding: var(--sp-4); box-shadow: var(--shadow-card); }

/* 파일 첨부 */
#bo_w .bo_w_flie, #bo_w .file_wr { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
#bo_w input[type="file"] { padding: 10px; background: var(--color-surface-soft); }

/* 댓글 */
#bo_vc { margin-top: var(--sp-8); }
#bo_vc h2, #bo_v h2 { font-family: var(--font-sans); }

/* 검색 결과/페이지 공통 링크 */
#sch_result a, #bo_v a { color: var(--color-primary); }

/* 비밀번호 확인 등 간단 폼 */
#mb_confirm, #pwd_confirm { max-width: 460px; }

/* 제출 버튼은 #bo_w .btn(특이도 110)보다 높게 지정해 파란색 유지 */
#bo_w #btn_submit, #bo_vc #btn_submit, body #btn_submit, #bo_w .btn_submit.btn {
  background: var(--color-primary) !important; color: #fff !important; border: 0 !important;
}
#bo_w #btn_submit:hover, #bo_vc #btn_submit:hover { background: var(--color-primary-hover) !important; }
