/* ==========================================================================
   민원타운 — 그누보드 기본 마크업(게시판·회원·FAQ·검색·콘텐츠) 다크 테마 호환 스타일
   default.css 의 변수(--bg, --panel, --gold …)를 사용한다.
   ========================================================================== */

/* ---------- 공통 유틸 (그누보드 클래스) ---------- */
.sound_only, .msg_sound_only, .cke_sc_def caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; margin: -1px; }
#hd_login_msg { display: none; }
.mw-content { padding-top: 28px; padding-bottom: 12px; }
.mw-content a { color: inherit; }
.mw-content p a, .mw-content li a, .mw-content td a { text-decoration: none; }
.mw-content a:hover { color: var(--gold); }
.mw-content hr { border: 0; border-top: 1px solid var(--line-soft); margin: 24px 0; }
.mw-content table { border-collapse: collapse; }
.mw-content img { max-width: 100%; height: auto; }

/* ---------- 폼 요소 ---------- */
.frm_input, .full_input, .mw-content input[type="text"], .mw-content input[type="password"], .mw-content input[type="email"], .mw-content input[type="tel"],
.mw-content input[type="number"], .mw-content input[type="date"], .mw-content input[type="url"], .mw-content select, .mw-content textarea, #fboardlist select, .sch_input {
  background: rgba(5, 11, 26, .6); color: var(--text); border: 1px solid var(--line); border-radius: 12px; padding: 11px 14px; font-size: 15px; font-family: inherit; max-width: 100%;
}
.full_input, .mw-content textarea { width: 100%; }
.mw-content textarea { min-height: 150px; line-height: 1.6; }
.frm_input:focus, .full_input:focus, .mw-content input:focus, .mw-content select:focus, .mw-content textarea:focus { outline: 0; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(232, 195, 106, .22); }
.mw-content select option { background: #0c1730; color: var(--text); }
.frm_info, .frm_info a, .mw-content .help { color: var(--muted); font-size: 13px; }
.required, .mw-content input[required] { border-color: var(--line); }
.mw-content label { color: #dfe5f1; }
.chk_box input[type="checkbox"], .mw-content input[type="checkbox"], .mw-content input[type="radio"] { accent-color: #e2b955; width: 18px; height: 18px; vertical-align: middle; }
.mw-content ::placeholder { color: #5d6b88; }

/* ---------- 버튼 ---------- */
.btn_b01, .btn_b02, .btn_b03, .btn_submit, .btn_cancel, .btn_confirm, .btn_close, .btn_admin, .btn_bo_user a, .btn_bo_adm a, a.btn_01, a.btn_02, button.btn_01 {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 40px; padding: 0 18px; border-radius: 999px; font-size: 14.5px; font-weight: 700;
  border: 1px solid var(--line); color: var(--text); background: rgba(5, 11, 26, .55); cursor: pointer; text-decoration: none; font-family: inherit; line-height: 1.2; transition: .15s;
}
.btn_b01:hover, .btn_b02:hover, .btn_b03:hover, .btn_cancel:hover, .btn_close:hover, .btn_bo_user a:hover { border-color: var(--gold); color: var(--gold); background: rgba(232, 195, 106, .1); }
.btn_submit, .btn_confirm, .btn_b02, input.btn_submit, button.btn_submit { background: var(--gold-grad); color: #1b1405; border-color: transparent; box-shadow: 0 6px 22px rgba(226, 185, 85, .25); }
.btn_submit:hover, .btn_confirm:hover, .btn_b02:hover { filter: brightness(1.07); color: #1b1405; background: var(--gold-grad); }
.btn_admin { border-color: rgba(255, 90, 100, .6); color: #ffb3b8; }
.btn_bo_user, .btn_bo_adm { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.btn_bo_user li, .btn_bo_adm li { list-style: none; position: relative; }
.btn_bo_user .btn_b01 .fa, .btn_bo_user a .fa, .btn_b01 .fa { font-size: 14px; }
.btn_confirm { display: flex; justify-content: center; gap: 10px; margin: 22px 0; padding: 0; background: none; border: 0; box-shadow: none; min-height: 0; }
.btn_confirm .btn_submit, .btn_confirm .btn_cancel { min-width: 120px; min-height: 46px; }
.more_opt, .bo_v_nb ul { list-style: none; margin: 0; padding: 0; }

/* ---------- 표 ---------- */
.tbl_wrap { overflow-x: auto; border: 1px solid var(--line-soft); border-radius: 14px; background: rgba(12, 23, 48, .6); }
.tbl_head01 table, .tbl_frm01 table, .tbl_head02 table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.tbl_head01 th, .tbl_head01 td, .tbl_head02 th, .tbl_head02 td { padding: 13px 10px; border-bottom: 1px solid var(--line-soft); text-align: center; vertical-align: middle; }
.tbl_head01 thead th, .tbl_head02 thead th { color: var(--gold); font-size: 13px; font-weight: 700; background: rgba(232, 195, 106, .06); }
.tbl_head01 tbody tr:hover { background: rgba(232, 195, 106, .05); }
.tbl_head01 tr:last-child td { border-bottom: 0; }
.td_subject, .td_subject a { text-align: left; }
.td_subject a { color: #f1f4fb; }
.td_num, .td_num2, .td_datetime, .td_name, .td_chk { color: var(--muted); white-space: nowrap; }
.bo_notice td { background: rgba(232, 195, 106, .06); }
.bo_notice .td_num2 strong, .bo_cate_link { color: var(--gold); }
.bo_tit a:hover { color: var(--gold); }
.new_icon, .hot_icon, .fa-lock, .fa-heart { color: var(--gold); }
.new_icon { display: inline-block; font-size: 10px; padding: 1px 5px; border-radius: 6px; background: var(--gold-grad); color: #1b1405; margin-left: 4px; font-weight: 700; }

/* ---------- 페이지네이션 ---------- */
.pg_wrap { display: flex; justify-content: center; margin: 22px 0 8px; }
.pg { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; justify-content: center; }
.pg_page, .pg_current, .pg_start, .pg_prev, .pg_next, .pg_end { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 10px; border-radius: 10px; border: 1px solid var(--line-soft); color: #cfd7ea; background: rgba(12, 23, 48, .6); font-size: 14px; text-decoration: none; }
.pg_page:hover, .pg_prev:hover, .pg_next:hover, .pg_start:hover, .pg_end:hover { border-color: var(--gold); color: var(--gold); }
.pg_current { background: var(--gold-grad); color: #1b1405; border-color: transparent; font-weight: 800; }

/* ---------- 게시판 목록 / 보기 / 쓰기 ---------- */
#bo_list, #bo_v, #bo_w, #bo_vc { color: var(--text); }
#bo_list .bo_fx, #bo_v_top, #bo_v_bot { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; margin: 14px 0; }
#bo_list_total { color: var(--muted); font-size: 14px; }
#bo_cate { margin: 0 0 18px; }
#bo_cate ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
#bo_cate a { display: inline-block; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--line-soft); color: #cfd7ea; font-size: 14px; background: rgba(12, 23, 48, .6); }
#bo_cate a:hover, #bo_cate #bo_cate_on { border-color: transparent; background: var(--gold-grad); color: #1b1405; font-weight: 700; }
.bo_sch_wrap, .bo_sch { color: var(--text); }
.bo_sch { background: var(--panel-2); border: 1px solid var(--line); border-radius: 16px; padding: 18px; }
.bo_sch .sch_bar { display: flex; gap: 8px; }
.bo_sch select, .bo_sch input { background: rgba(5, 11, 26, .6); }
.bo_sch_cls { background: none; border: 0; color: var(--muted); }
#bo_v_title, #bo_v header h2 { font-size: clamp(20px, 3vw, 26px); font-weight: 800; letter-spacing: -.02em; }
#bo_v_title .bo_v_cate { color: var(--gold); margin-right: 8px; font-size: .75em; }
#bo_v_info { display: flex; flex-wrap: wrap; gap: 6px 18px; padding: 12px 0; border-bottom: 1px solid var(--line-soft); color: var(--muted); font-size: 14px; }
#bo_v_info h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
#bo_v_info strong, #bo_v_info .sv_member { color: #dfe5f1; font-weight: 600; }
#bo_v_con { min-height: 120px; padding: 24px 4px; line-height: 1.85; font-size: 16px; color: #e8edf7; word-break: break-word; }
#bo_v_con img { max-width: 100%; height: auto; }
#bo_v_atc_title { position: absolute; left: -9999px; }
#bo_v_file, #bo_v_link, #bo_v_img { margin: 14px 0; }
#bo_v_file ul, #bo_v_link ul { list-style: none; margin: 0; padding: 0; }
#bo_v_file li, #bo_v_link li { padding: 10px 14px; border: 1px solid var(--line-soft); border-radius: 10px; margin-bottom: 6px; background: rgba(12, 23, 48, .6); }
.bo_v_nb { margin-top: 18px; border-top: 1px solid var(--line-soft); }
.bo_v_nb li { display: flex; gap: 14px; padding: 12px 6px; border-bottom: 1px solid var(--line-soft); font-size: 14.5px; }
.bo_v_nb .nb_tit { color: var(--muted); min-width: 64px; }
.bo_v_nb a { color: #dfe5f1; }
#bo_vc article, .bo_vc_w { border: 1px solid var(--line-soft); border-radius: 12px; padding: 14px 16px; margin-bottom: 10px; background: rgba(12, 23, 48, .6); }
#bo_w .write_div { margin: 14px 0; }
#bo_w .bo_w_info { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
#bo_w .bo_w_tit, #bo_w .bo_w_select { margin: 10px 0; }
#bo_w .bo_w_flie, #bo_w .bo_w_link { margin: 8px 0; }
#bo_w .wr_content { margin: 10px 0; }
#bo_w .btn_confirm { margin-top: 26px; }
#bo_w .chk_box { margin: 8px 0; }
.cke_chrome { border-radius: 12px !important; border-color: var(--line) !important; }

/* ---------- 갤러리 ---------- */
#gall_ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; list-style: none; margin: 0; padding: 0; }
.gall_li .gall_box { border: 1px solid var(--line-soft); border-radius: 14px; overflow: hidden; background: var(--panel); }
.gall_text_href a { color: #f1f4fb; }

/* ---------- 회원 (로그인 / 가입 / 정보수정) ---------- */
.mbskin { max-width: 560px; margin: 8px auto 40px; padding: 30px 26px; border-radius: 24px; border: 1px solid var(--line); background: linear-gradient(180deg, rgba(14, 28, 62, .92), rgba(8, 17, 40, .94)); box-shadow: var(--shadow); color: var(--text); }
.mbskin h1, .mbskin h2 { font-size: 22px; font-weight: 800; text-align: center; margin-bottom: 18px; }
#mb_login #login_fs, #mb_login fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: 12px; }
#mb_login .frm_input, #mb_login input[type="text"], #mb_login input[type="password"] { width: 100%; height: 52px; }
#mb_login .btn_submit { width: 100%; min-height: 52px; font-size: 17px; }
#mb_login #login_info, #mb_login .mb_login_join { text-align: center; color: var(--muted); font-size: 14px; margin-top: 14px; }
#mb_login a, .mbskin a { color: var(--gold); }
#mb_login_notmb, #mb_login_od_wr { margin-top: 16px; }
.register { max-width: 760px; margin: 0 auto; }
.fregister_agree, .fregister_terms { margin: 14px 0; padding: 14px 16px; border: 1px solid var(--line-soft); border-radius: 14px; background: rgba(12, 23, 48, .6); }
.fregister_agree label { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.fregister_terms textarea { min-height: 140px; width: 100%; font-size: 13.5px; }
#fregisterform .register_form_inner { border: 1px solid var(--line-soft); border-radius: 18px; padding: 22px; margin-bottom: 18px; background: rgba(12, 23, 48, .6); }
#fregisterform ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
#fregisterform .reg_mb_img_file img { max-width: 80px; border-radius: 50%; }
.reg_cert_info, .frm_info { color: var(--muted); }
#reg_result { max-width: 560px; margin: 0 auto; text-align: center; }

/* ---------- FAQ / 검색 / 기타 ---------- */
#faq_wrap, #faq_sch { color: var(--text); }
#faq_wrap .faq_con, #faq_con .faq_con { border: 1px solid var(--line-soft); border-radius: 14px; margin-bottom: 10px; background: var(--panel); overflow: hidden; }
#faq_wrap h3 a, .faq_con h3 a { color: #f1f4fb; display: block; padding: 16px 20px; font-size: 16px; font-weight: 700; }
#faq_wrap .con_inner, .faq_con .con_inner { padding: 0 20px 18px; color: #c4cde1; line-height: 1.8; }
#faq_sch { margin: 16px 0; }
#faq_sch .frm_input { width: 100%; max-width: 420px; }
#sch_res_detail, #sch_res_ov { color: var(--muted); margin: 10px 0; }
.sch_res_list { list-style: none; margin: 0 0 24px; padding: 0; }
.sch_res_list li { padding: 12px 0; border-bottom: 1px solid var(--line-soft); }
.sch_word { color: var(--gold); font-weight: 700; }
#bo_cate_on { color: #1b1405; }

/* ---------- 콘텐츠(co_content) 기본 서식 ---------- */
.mw-doc { color: #dfe5f1; line-height: 1.85; }
.mw-doc h2 { font-size: 22px; margin: 28px 0 12px; color: #fff; }
.mw-doc h3 { font-size: 17px; margin: 22px 0 8px; color: var(--gold); }
.mw-doc ul { list-style: disc; padding-left: 22px; }
.mw-doc ol { list-style: decimal; padding-left: 22px; }
.mw-doc li { margin: 4px 0; }
.mw-doc table { width: 100%; }
.mw-doc th, .mw-doc td { border: 1px solid var(--line-soft); padding: 10px 12px; text-align: left; }
.mw-doc th { background: rgba(232, 195, 106, .08); color: var(--gold); }
.mw-doc a { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.mw-doc .notice-box { padding: 14px 16px; border-radius: 12px; border: 1px solid var(--line); background: rgba(232, 195, 106, .07); font-size: 14px; color: #e4e9f4; }
.mw-doc .soon-box { padding: 18px; border-radius: 14px; border: 1px dashed var(--line); background: rgba(255, 255, 255, .03); color: var(--muted); }
.mw-doc dl.meta { display: flex; flex-wrap: wrap; gap: 6px 22px; font-size: 13.5px; color: var(--muted); margin: 0 0 18px; }
.mw-doc dl.meta dt { color: var(--faint); display: inline; }
.mw-doc dl.meta dd { display: inline; margin: 0 0 0 6px; }

@media (max-width: 639px) {
  .mbskin { padding: 22px 16px; border-radius: 18px; }
  .tbl_head01 th, .tbl_head01 td { padding: 10px 6px; font-size: 13.5px; }
  .td_num, .td_datetime, .td_name { display: none; }
  .btn_confirm { flex-direction: column; }
}

/* ---------- 카탈로그 카드(링크) ---------- */
.mw-doc a.svc, .mw-doc a.svc:hover { color: var(--text); text-decoration: none; }
.svc-link { cursor: pointer; transition: border-color .15s, transform .15s, box-shadow .15s; }
.svc-link:hover { border-color: var(--gold-2); transform: translateY(-3px); box-shadow: 0 14px 34px rgba(0, 0, 0, .35); }
.mw-doc .svc h3 { color: #fff; margin: 4px 0 0; font-size: 18px; }
.svc-link .acts { display: block; margin-top: 8px; color: var(--gold); font-weight: 700; font-size: 14px; }
.svc-link .acts .ico { width: 14px; height: 14px; vertical-align: -2px; }
.mw-doc .subnav a { color: #cfd7ea; text-decoration: none; }
.mw-doc .subnav a:hover { color: var(--gold); }
.mw-doc .btn { text-decoration: none; }
.mw-doc .btn-gold { color: #1b1405; }
.mw-doc .btn-outline { color: var(--text); }
.mw-doc a.status-link, .mw-doc a.more-link { text-decoration: none; }
.mw-doc .free-line b { color: #fff; }
.mw-doc .table th { color: var(--gold); }

/* 전체검색: 상세 검색 필드셋이 좁은 화면에서 넘치지 않도록 */
#sch_res_detail{min-width:0;max-width:100%;box-sizing:border-box}
