@charset "utf-8";
/* =============================================================================
   ADPLAN 일반 게시판 스킨 (adplan_official)

   관공서 · 기관 · 금융사 공지에서 오래 쓰여 온 배치를 따른다.
   테두리를 두르지 않고 가로줄로만 행을 나눈다. 장식이 적을수록 글이 많아져도
   읽는 순서가 흐트러지지 않는다.

   테마에 기대지 않는다 — 색과 여백을 여기서 전부 정한다.
   어떤 테마에 얹어도 같은 모양이 나와야 하기 때문이다.
   변수는 .adpg 안에서만 쓰므로 다른 스킨과 섞이지 않는다.
   ========================================================================== */

.adpg{
  --adpg-ink:#1A1A1A;        /* 제목 · 본문 */
  --adpg-body:#555;          /* 설명 */
  --adpg-mute:#888;          /* 날짜 · 조회수 */
  --adpg-line:#E5E5E5;       /* 행 구분선 */
  --adpg-line-d:#333;        /* 표 위아래 굵은 선 */
  --adpg-bg-soft:#FAFAFA;    /* 공지 행 바탕 */
  --adpg-accent:#2058D8;     /* 링크 · 강조 */
  --adpg-radius:3px;
  --adpg-gut:0px;

  color:var(--adpg-body);
  font-size:14px;
  line-height:1.7;
  letter-spacing:-.02em;
}
.adpg *{ box-sizing:border-box; }
.adpg a{ color:inherit; text-decoration:none; }
.adpg a:hover{ text-decoration:underline; }

.adpg-wrap{ padding:0 var(--adpg-gut); }

/* ---------------------------------------------------------------- 머리말 */
.adpg-head{ margin:0 0 26px; }
.adpg-head__t{
  margin:0; padding:0 0 18px;
  font-size:26px; font-weight:700; letter-spacing:-.04em; color:var(--adpg-ink);
  border-bottom:1px solid var(--adpg-line);
}

/* 분류 */
.adpg-cate-nav{ margin:0 0 20px; }
.adpg-cate-nav ul{ display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; list-style:none; }
.adpg-cate-nav li a{
  display:inline-block; padding:7px 15px; border:1px solid var(--adpg-line);
  border-radius:99px; font-size:13px; color:var(--adpg-body); background:#fff;
}
.adpg-cate-nav li a:hover{ border-color:var(--adpg-ink); color:var(--adpg-ink); text-decoration:none; }
.adpg-cate-nav li a.bo_cate_on,
.adpg-cate-nav li.on a{ background:var(--adpg-ink); border-color:var(--adpg-ink); color:#fff; }

/* ---------------------------------------------------------------- 건수 · 검색 */
.adpg-bar{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px 18px; flex-wrap:wrap; margin:0 0 14px;
}
.adpg-bar__info{ margin:0; font-size:13.5px; color:var(--adpg-body); }
.adpg-bar__info b{ color:var(--adpg-accent); font-weight:700; }
.adpg-bar__page{ color:var(--adpg-mute); }
.adpg-bar__page b{ color:var(--adpg-body); }
.adpg-bar__reset{
  display:inline-block; margin-left:8px; padding:2px 9px;
  border:1px solid var(--adpg-line); border-radius:99px; font-size:12px; color:var(--adpg-body);
}

.adpg-search{ display:flex; gap:0; align-items:stretch; }
.adpg-search__sel{
  height:34px; padding:0 8px; border:1px solid var(--adpg-line); border-right:0;
  border-radius:var(--adpg-radius) 0 0 var(--adpg-radius);
  background:#fff; font-size:13px; color:var(--adpg-body); font-family:inherit; max-width:110px;
}
.adpg-search__inp{
  height:34px; width:190px; max-width:44vw; padding:0 10px;
  border:1px solid var(--adpg-line); border-right:0; border-radius:0;
  background:#fff; font-size:13px; color:var(--adpg-ink); font-family:inherit;
}
.adpg-search__inp:focus,
.adpg-search__sel:focus{ outline:2px solid var(--adpg-accent); outline-offset:-2px; }
.adpg-search__btn{
  width:38px; height:34px; flex:none; cursor:pointer;
  border:1px solid var(--adpg-line); border-radius:0 var(--adpg-radius) var(--adpg-radius) 0;
  background:#fff; color:var(--adpg-ink); font-size:13px;
}
.adpg-search__btn:hover{ background:var(--adpg-ink); border-color:var(--adpg-ink); color:#fff; }

/* ---------------------------------------------------------------- 목록 표 */
.adpg-tblwrap{ overflow-x:auto; }
.adpg-tbl{
  width:100%; min-width:680px; border-collapse:collapse;
  border-top:2px solid var(--adpg-line-d);
}
.adpg-tbl caption{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.adpg-tbl th{
  padding:13px 8px; font-size:13.5px; font-weight:600; color:var(--adpg-ink);
  border-bottom:1px solid var(--adpg-line); text-align:center; white-space:nowrap;
}
.adpg-tbl td{
  padding:14px 8px; font-size:13.5px; color:var(--adpg-body);
  border-bottom:1px solid var(--adpg-line); text-align:center;
}
.adpg-tbl th a{ color:inherit; }

.adpg-c-chk{ width:42px; }
.adpg-c-no{ width:74px; }
.adpg-c-num{ width:70px; }
.adpg-c-name{ width:110px; }
.adpg-c-date{ width:104px; }
.adpg-c-hit{ width:74px; }
.adpg-c-file{ width:56px; }

.adpg-th-subject{ text-align:center; }
/* .adpg-tbl td 가 가운데 정렬을 걸어 두었으므로 같은 깊이로 눌러 준다 */
.adpg-tbl td.adpg-td-subject{ text-align:left; padding-left:14px; padding-right:14px; }
.adpg-td-subject .bo_tit{ display:inline; }
.adpg-td-subject .bo_tit > a{ color:var(--adpg-ink); font-size:14.5px; }
.adpg-td-subject .bo_tit > a:hover{ color:var(--adpg-accent); text-decoration:underline; }
.adpg-td-no{ color:var(--adpg-mute); font-size:13px; }
.adpg-td-name{ color:var(--adpg-body); }
.adpg-td-date,
.adpg-td-hit{ color:var(--adpg-mute); font-size:13px; font-variant-numeric:tabular-nums; }
.adpg-td-file img{ vertical-align:middle; }

/* 제목 아래 요약 — 좁은 화면에서만 */
.adpg-td-subject__m{ display:none; margin-top:4px; font-size:12px; color:var(--adpg-mute); }

/* 공지 행 */
.adpg-tbl tr.is-notice{ background:var(--adpg-bg-soft); }
.adpg-tbl tr.is-notice .bo_tit > a{ font-weight:700; }
.adpg-notice-tag{
  display:inline-block; padding:2px 9px; border-radius:var(--adpg-radius);
  background:var(--adpg-ink); color:#fff; font-size:11.5px; font-weight:600; letter-spacing:-.01em;
}
/* 열람 중인 글 */
.adpg-tbl tr.is-current .bo_tit > a{ color:var(--adpg-accent); font-weight:700; }
.bo_current{ font-size:12px; color:var(--adpg-accent); }

/* 새 글 · 분류 · 댓글 수 */
.adpg-new{
  display:inline-block; margin-left:6px; padding:1px 6px; border-radius:2px;
  background:var(--adpg-accent); color:#fff; font-size:10.5px; font-weight:700;
  letter-spacing:.02em; vertical-align:1px;
}
.adpg-cate{
  display:inline-block; margin-right:7px; padding:1px 8px;
  border:1px solid var(--adpg-line); border-radius:99px;
  font-size:11.5px; color:var(--adpg-mute);
}
.adpg-cmt{
  display:inline-block; margin-left:5px; font-size:12px; font-weight:700; color:var(--adpg-accent);
}
.adpg-cmt::before{ content:'['; }
.adpg-cmt::after{ content:']'; }

.adpg-empty{
  padding:70px 10px !important; text-align:center; color:var(--adpg-mute);
}
.adpg-empty b{ display:block; font-size:15px; font-weight:600; color:var(--adpg-body); }
.adpg-empty span{ display:block; margin-top:6px; font-size:13px; }

/* ---------------------------------------------------------------- 페이지 번호 */
.adpg-paging{ margin:34px 0 0; text-align:center; }
.adpg-paging .pg_wrap{ display:inline-block; }
.adpg-paging .pg{ display:inline-flex; gap:4px; align-items:center; }
.adpg-paging .pg_page,
.adpg-paging .pg_current{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:30px; height:30px; padding:0 8px; border-radius:var(--adpg-radius);
  font-size:13px; text-decoration:none;
}
.adpg-paging .pg_page{ color:var(--adpg-body); background:none; border:0; }
.adpg-paging .pg_page:hover{ color:var(--adpg-accent); text-decoration:underline; }
.adpg-paging .pg_current{
  background:none; border:0; color:var(--adpg-accent); font-weight:700; text-decoration:underline;
}

/* ---------------------------------------------------------------- 버튼 */
.adpg-foot{ margin:26px 0 0; }
.adpg-foot__act{
  display:flex; gap:7px; justify-content:flex-end; align-items:center;
  margin:0; padding:0; list-style:none; flex-wrap:wrap;
}
.adpg-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  height:38px; padding:0 20px; border-radius:var(--adpg-radius);
  font-size:13.5px; font-weight:600; cursor:pointer; font-family:inherit;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.adpg-btn:hover{ text-decoration:none; }
.adpg-btn--line{ border:1px solid var(--adpg-line); background:#fff; color:var(--adpg-body); }
.adpg-btn--line:hover{ border-color:var(--adpg-ink); color:var(--adpg-ink); }
.adpg-btn--fill{ border:1px solid var(--adpg-ink); background:var(--adpg-ink); color:#fff; }
.adpg-btn--fill:hover{ background:#000; }

/* =============================================================================
   본문
   ========================================================================== */
.adpg-view{ width:100% !important; }
.adpg-view__board{
  margin:0 0 14px; padding:0 0 16px;
  font-size:17px; font-weight:700; color:var(--adpg-ink); letter-spacing:-.03em;
  border-bottom:2px solid var(--adpg-line-d);
}

.adpg-view__head{
  display:flex; align-items:baseline; justify-content:space-between; gap:10px 24px;
  flex-wrap:wrap; padding:16px 0 18px;
  border-top:2px solid var(--adpg-line-d); border-bottom:1px solid var(--adpg-line);
}
.adpg-view__t{
  flex:1 1 320px; min-width:0; margin:0;
  font-size:19px; font-weight:700; line-height:1.5; letter-spacing:-.035em; color:var(--adpg-ink);
}
.adpg-view__cate{
  display:inline-block; margin-right:8px; padding:2px 9px;
  border:1px solid var(--adpg-line); border-radius:99px;
  font-size:12px; font-weight:500; color:var(--adpg-mute); vertical-align:2px;
}
.adpg-view__meta{
  margin:0; font-size:12.5px; color:var(--adpg-mute); white-space:nowrap;
}
.adpg-view__meta b{ font-weight:500; color:var(--adpg-body); }
.adpg-view__meta i{ margin:0 7px; font-style:normal; color:var(--adpg-line); }

/* 본문 영역 */
.adpg-view #bo_v_info{ border:0; padding:0; margin:0; }
.adpg-view #bo_v_info > h2{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.adpg-view #bo_v_atc{ padding:34px 2px 40px; min-height:200px; }
.adpg-view #bo_v_atc_title{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.adpg-view #bo_v_con{
  font-size:15px; line-height:1.85; color:var(--adpg-body); word-break:break-word;
}
.adpg-view #bo_v_con img{ max-width:100%; height:auto; }
.adpg-view #bo_v_con a{ color:var(--adpg-accent); text-decoration:underline; }

/* 첨부 · 링크 */
.adpg-view #bo_v_file,
.adpg-view #bo_v_link{ margin:0 0 4px; padding:0; }
.adpg-view #bo_v_file h2,
.adpg-view #bo_v_link h2{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.adpg-view #bo_v_file ul,
.adpg-view #bo_v_link ul{ margin:0; padding:0; list-style:none; }
.adpg-view #bo_v_file li,
.adpg-view #bo_v_link li{
  padding:11px 14px; border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  margin-bottom:6px; background:var(--adpg-bg-soft); font-size:13.5px;
}
.adpg-view #bo_v_file li a,
.adpg-view #bo_v_link li a{ color:var(--adpg-ink); }
.adpg-view .bo_v_file_cnt{ display:block; margin-top:3px; font-size:12px; color:var(--adpg-mute); }

/* 이전 · 다음글 */
.adpg-nb{
  margin:0; padding:0; list-style:none;
  border-top:1px solid var(--adpg-line);
}
.adpg-nb__i{
  display:grid; grid-template-columns:96px 1fr auto; gap:14px; align-items:center;
  padding:14px 6px; border-bottom:1px solid var(--adpg-line);
}
.adpg-nb__k{ font-size:13px; color:var(--adpg-mute); white-space:nowrap; }
.adpg-nb__k i{ margin-right:5px; }
.adpg-nb__a{
  min-width:0; font-size:14px; color:var(--adpg-ink);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.adpg-nb__a:hover{ color:var(--adpg-accent); }
.adpg-nb__d{ font-size:12.5px; color:var(--adpg-mute); font-variant-numeric:tabular-nums; }

/* 목록 버튼 */
.adpg-view__foot{ margin:36px 0 0; text-align:center; }
.adpg-btn--list{
  min-width:118px; height:44px; padding:0 30px;
  border:1px solid var(--adpg-accent); border-radius:99px;
  background:#fff; color:var(--adpg-accent); font-size:14.5px; font-weight:600;
}
.adpg-btn--list:hover{ background:var(--adpg-accent); color:#fff; }

/* 상단 버튼 묶음 — 관리자에게만 보이는 것들이라 조용히 둔다 */
.adpg-view #bo_v_top{ margin:18px 0 0; }
.adpg-view #bo_v_top .btn_bo_user{
  display:flex; gap:6px; justify-content:flex-end; margin:0; padding:0; list-style:none; flex-wrap:wrap;
}
.adpg-view #bo_v_top .btn_bo_user .btn{
  display:inline-flex; align-items:center; justify-content:center; gap:5px;
  min-width:36px; height:32px; padding:0 11px;
  border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  background:#fff; color:var(--adpg-body); font-size:12.5px; cursor:pointer;
}
.adpg-view #bo_v_top .btn_bo_user .btn:hover{ border-color:var(--adpg-ink); color:var(--adpg-ink); text-decoration:none; }
.adpg-view #bo_v_share{ margin:14px 0 0; }

/* 추천 · 비추천 */
.adpg-view #bo_v_act{ margin:6px 0 0; text-align:center; }
.adpg-view #bo_v_act a{
  display:inline-flex; align-items:center; gap:7px; margin:0 4px;
  padding:9px 18px; border:1px solid var(--adpg-line); border-radius:99px;
  font-size:13.5px; color:var(--adpg-body); background:#fff;
}
.adpg-view #bo_v_act a:hover{ border-color:var(--adpg-ink); color:var(--adpg-ink); text-decoration:none; }

/* =============================================================================
   좁은 화면 — 표를 카드처럼 접는다
   ========================================================================== */
@media (max-width:760px){
  .adpg{ font-size:13.5px; }
  .adpg-head__t{ font-size:21px; padding-bottom:14px; }

  .adpg-bar{ gap:10px; }
  .adpg-search{ width:100%; }
  .adpg-search__inp{ flex:1 1 auto; width:auto; max-width:none; }

  .adpg-tblwrap{ overflow-x:visible; }
  .adpg-tbl{ min-width:0; }
  .adpg-tbl thead{ display:none; }
  .adpg-tbl,
  .adpg-tbl tbody,
  .adpg-tbl tr{ display:block; width:100%; }
  .adpg-tbl tr{ padding:14px 2px; border-bottom:1px solid var(--adpg-line); }
  .adpg-tbl td{ display:none; border:0; padding:0; text-align:left; }
  .adpg-tbl td.adpg-td-subject{ display:block; padding:0; }
  .adpg-tbl td.adpg-td-no{ display:block; margin-bottom:5px; }
  .adpg-tbl td.chk_box{ display:inline-block; margin-right:8px; vertical-align:top; }
  .adpg-td-subject__m{ display:block; }
  .adpg-tbl tr.is-notice{ padding-left:10px; padding-right:10px; }
  .adpg-empty{ display:block !important; padding:56px 10px !important; }

  .adpg-foot__act{ justify-content:center; }

  .adpg-view__head{ gap:8px; }
  .adpg-view__t{ flex:1 1 100%; font-size:17px; }
  .adpg-view__meta{ white-space:normal; }
  .adpg-nb__i{ grid-template-columns:76px 1fr; gap:8px 12px; }
  .adpg-nb__d{ grid-column:2; font-size:12px; }
  .adpg-view #bo_v_atc{ padding:26px 0 32px; }
}

/* =============================================================================
   댓글 — 그누보드 기본 마크업(bo_vc_*)에 옷만 입힌다
   ========================================================================== */
.adpg #bo_vc{ margin:44px 0 0; padding:26px 0 0; border-top:1px solid var(--adpg-line); }
.adpg #bo_vc h2{
  margin:0 0 16px; font-size:15px; font-weight:700; color:var(--adpg-ink); letter-spacing:-.03em;
}
.adpg #bo_vc h2 .total{ margin-left:5px; color:var(--adpg-accent); }
.adpg #bo_vc article{ padding:16px 2px; border-bottom:1px solid var(--adpg-line); }
.adpg #bo_vc header{ display:flex; align-items:center; gap:9px; margin:0 0 7px; }
.adpg #bo_vc .pf_img img{ width:28px; height:28px; border-radius:50%; }
.adpg .bo_vc_hdinfo{ font-size:13px; color:var(--adpg-mute); }
.adpg .bo_vc_hdinfo strong{ color:var(--adpg-ink); font-weight:600; margin-right:7px; }
.adpg .cmt_contents{ font-size:14px; line-height:1.75; color:var(--adpg-body); word-break:break-word; }
.adpg .cmt_contents a{ color:var(--adpg-accent); }
.adpg #bo_vc_empty{ padding:40px 0; text-align:center; color:var(--adpg-mute); font-size:13.5px; }

.adpg .bo_vc_act,
.adpg .bo_vc_act ul{ margin:0; padding:0; list-style:none; }
.adpg .bo_vc_act{ display:flex; justify-content:flex-end; gap:5px; margin-top:8px; }
.adpg .bo_vc_act .btn,
.adpg .btn_cm_opt{
  display:inline-flex; align-items:center; gap:4px; height:27px; padding:0 10px;
  border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  background:#fff; color:var(--adpg-mute); font-size:12px; cursor:pointer;
}
.adpg .bo_vc_act .btn:hover,
.adpg .btn_cm_opt:hover{ border-color:var(--adpg-ink); color:var(--adpg-ink); text-decoration:none; }

/* 댓글 쓰기 */
.adpg #bo_vc_w{ margin:22px 0 0; }
.adpg #bo_vc_w h2{ margin:0 0 10px; font-size:14px; }
.adpg .bo_vc_w_wr textarea,
.adpg textarea.frm_input{
  width:100%; min-height:96px; padding:12px 14px; resize:vertical;
  border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  background:#fff; font-size:14px; line-height:1.7; font-family:inherit; color:var(--adpg-ink);
}
.adpg .bo_vc_w_info{
  display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:9px;
}
.adpg .bo_vc_w_info .frm_input{
  height:38px; padding:0 12px; border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  background:#fff; font-size:13.5px; font-family:inherit; color:var(--adpg-ink); max-width:170px;
}
.adpg .frm_input:focus,
.adpg textarea:focus{ outline:2px solid var(--adpg-accent); outline-offset:-2px; }
.adpg .bo_vc_w_info .btn_confirm{ margin-left:auto; }
.adpg #bo_vc_w .btn_submit{
  height:38px; padding:0 22px; border:1px solid var(--adpg-ink); border-radius:var(--adpg-radius);
  background:var(--adpg-ink); color:#fff; font-size:13.5px; font-weight:600; cursor:pointer;
  font-family:inherit;
}
.adpg #bo_vc_w .btn_submit:hover{ background:#000; }
.adpg #char_cnt{ font-size:12px; color:var(--adpg-mute); }
.adpg .secret_cm{ font-size:13px; color:var(--adpg-mute); }
.adpg .cmt_more{ margin-top:16px; text-align:center; }

@media (max-width:760px){
  .adpg .bo_vc_w_info .frm_input{ max-width:none; flex:1 1 130px; }
  .adpg .bo_vc_w_info .btn_confirm{ margin-left:0; width:100%; }
  .adpg #bo_vc_w .btn_submit{ width:100%; }
}

/* =============================================================================
   제작 진행상황 — 진행률 막대
   숫자만 적으면 "얼마나 남았는지" 가 안 읽힌다. 막대와 숫자를 같이 둔다.
   ========================================================================== */
.adpg-c-cate{ width:104px; }
.adpg-c-bar{ width:146px; }
.adpg-c-step{ width:132px; }

.adpg-bar{ display:flex; align-items:center; gap:9px; }
.adpg-bar__track{
  flex:1 1 auto; min-width:52px; height:6px; border-radius:99px;
  background:#EDEDED; overflow:hidden;
}
.adpg-bar__fill{
  display:block; height:100%; border-radius:99px;
  background:var(--adpg-accent); transition:width .4s ease;
}
.adpg-bar__n{
  flex:none; min-width:38px; text-align:right;
  font-size:12.5px; font-weight:700; color:var(--adpg-accent);
  font-variant-numeric:tabular-nums;
}
.adpg-bar.is-done .adpg-bar__fill{ background:#12805C; }
.adpg-bar.is-done .adpg-bar__n{ color:#12805C; }

.adpg-bar--lg .adpg-bar__track{ height:10px; }
.adpg-bar--lg .adpg-bar__n{ min-width:52px; font-size:17px; }

/* 현재 단계 표 */
.adpg-step{
  display:inline-block; padding:3px 10px; border-radius:99px;
  border:1px solid var(--adpg-line); background:#fff;
  font-size:12px; color:var(--adpg-body); white-space:nowrap;
}
.adpg-step.is-done{ border-color:#BFE3D6; background:#E8F6F1; color:#0C6B51; font-weight:600; }
.adpg-td-biz{ color:var(--adpg-body); font-size:13px; }

/* 본문 진행 요약 */
.adpg-sum{
  margin:26px 0 0; padding:22px 24px;
  border:1px solid var(--adpg-line); border-radius:8px; background:var(--adpg-bg-soft);
}
.adpg-sum__bar{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.adpg-sum__k{
  margin:0; flex:none; font-size:13px; font-weight:700; color:var(--adpg-ink);
}
.adpg-sum__bar .adpg-bar{ flex:1 1 240px; }
.adpg-sum__dl{
  display:grid; grid-template-columns:auto 1fr; gap:9px 18px;
  margin:18px 0 0; padding:16px 0 0; border-top:1px solid var(--adpg-line);
}
.adpg-sum__dl dt{ font-size:13px; font-weight:600; color:var(--adpg-ink); white-space:nowrap; }
.adpg-sum__dl dd{ margin:0; font-size:13.5px; color:var(--adpg-body); }

/* 글쓰기 — 진행 정보 칸 */
.adpg-wfields{
  margin:0 0 16px; padding:18px 20px;
  border:1px solid var(--adpg-line); border-radius:8px; background:var(--adpg-bg-soft);
}
.adpg-wfields__h{ margin:0 0 12px; font-size:13.5px; font-weight:700; color:var(--adpg-ink); }
.adpg-wfields__grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:10px 14px;
}
.adpg-wfield{ display:flex; flex-direction:column; gap:5px; }
.adpg-wfield > span{ font-size:12.5px; font-weight:600; color:var(--adpg-body); }
.adpg-wfield input{
  height:38px; padding:0 12px; border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  background:#fff; font-size:13.5px; font-family:inherit; color:var(--adpg-ink); width:100%;
}
.adpg-wfield input:focus{ outline:2px solid var(--adpg-accent); outline-offset:-2px; }
.adpg-wfields__n{ margin:12px 0 0; font-size:12.5px; color:var(--adpg-mute); }

@media (max-width:760px){
  .adpg-tbl td.adpg-td-bar{ display:block; margin-top:9px; }
  .adpg-sum{ padding:18px 16px; }
  .adpg-sum__dl{ grid-template-columns:1fr; gap:3px; }
  .adpg-sum__dl dt{ margin-top:8px; }
}

/* =============================================================================
   글쓰기 · 수정 폼
   그누보드 기본 마크업(frm_input · btn_submit · frm_file …)에 옷만 입힌다.
   파일 선택과 캡차 버튼은 브라우저 기본 모양이 그대로 나오던 자리라
   ::file-selector-button 까지 잡아 준다.
   ========================================================================== */
.adpg-write{ margin:0; }
.adpg-write fieldset{ margin:0; padding:0; border:0; }

/* 한 줄짜리 입력칸 */
.adpg .frm_input,
.adpg input[type=text],
.adpg input[type=password],
.adpg input[type=email],
.adpg input[type=url],
.adpg input[type=number],
.adpg select{
  height:44px; padding:0 14px;
  border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  background:#fff; color:var(--adpg-ink);
  font-size:14.5px; font-family:inherit; line-height:normal;
  transition:border-color .15s ease;
}
.adpg select{ padding-right:30px; }
.adpg .frm_input:hover,
.adpg textarea:hover{ border-color:#C9C9C9; }
.adpg .frm_input:focus,
.adpg textarea:focus,
.adpg select:focus{ outline:2px solid var(--adpg-accent); outline-offset:-2px; border-color:transparent; }
.adpg .full_input{ width:100%; }
.adpg .half_input{ width:calc(50% - 5px); }

/* 필수 표시 — 별표만 있으면 무엇이 필수인지 안 읽힌다 */
.adpg .frm_input.required,
.adpg textarea.required{ background:#FFFDF7; }
.adpg .frm_input.required:focus,
.adpg textarea.required:focus{ background:#fff; }

/* 줄 배치 */
.adpg .bo_w_info,
.adpg .bo_w_tit,
.adpg .bo_w_link,
.adpg .bo_w_flie,
.adpg .bo_v_option,
.adpg .write_div{ margin:0 0 10px; }
.adpg .bo_w_info{ display:flex; flex-wrap:wrap; gap:10px; }
.adpg .bo_w_info > *{ flex:1 1 220px; min-width:0; }
.adpg .bo_w_info .half_input{ width:100%; }

/* 본문 */
.adpg textarea,
.adpg .wr_content textarea{
  width:100%; min-height:260px; padding:14px;
  border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  background:#fff; color:var(--adpg-ink);
  font-size:15px; line-height:1.8; font-family:inherit; resize:vertical;
}

/* 체크박스 줄 (html · 비밀글 · 공지) */
.adpg .bo_v_option{
  display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center;
  padding:12px 14px; border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  background:var(--adpg-bg-soft); font-size:13.5px; color:var(--adpg-body);
}
.adpg .bo_v_option label{ display:inline-flex; align-items:center; gap:6px; cursor:pointer; }
.adpg input[type=checkbox],
.adpg input[type=radio]{ width:16px; height:16px; accent-color:var(--adpg-accent); margin:0; }

/* 링크 · 파일 줄 — 아이콘과 입력칸을 한 줄로 */
.adpg .bo_w_link,
.adpg .bo_w_flie{ display:flex; align-items:center; gap:10px; }
.adpg .bo_w_link .frm_input,
.adpg .bo_w_flie .frm_input{ flex:1 1 auto; min-width:0; }
.adpg .lb_icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:44px; flex:none;
  color:var(--adpg-mute); font-size:15px;
}

/* 파일 선택 — 브라우저 기본 단추가 그대로 보이던 자리 */
.adpg .frm_file,
.adpg input[type=file]{
  flex:1 1 auto; min-width:0; height:44px; padding:0; cursor:pointer;
  border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  background:#fff; font-size:13.5px; font-family:inherit; color:var(--adpg-body);
}
.adpg input[type=file]::file-selector-button{
  height:42px; margin:0 12px 0 0; padding:0 18px; cursor:pointer;
  border:0; border-right:1px solid var(--adpg-line); border-radius:var(--adpg-radius) 0 0 var(--adpg-radius);
  background:var(--adpg-bg-soft); color:var(--adpg-ink);
  font-size:13.5px; font-weight:600; font-family:inherit;
  transition:background-color .15s ease;
}
.adpg input[type=file]::file-selector-button:hover{ background:#EFEFEF; }

/* 붙여넣기 안내 */
.adpg .bf_paste_help{
  margin:0 0 10px; padding:12px 14px; border-radius:var(--adpg-radius);
  background:var(--adpg-bg-soft); border:1px dashed var(--adpg-line);
  font-size:13px; line-height:1.7; color:var(--adpg-mute);
}
.adpg .bf_paste_help b{ color:var(--adpg-ink); }
.adpg .bf_preview{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 10px; }
.adpg .bf_preview_thumb{ border:1px solid var(--adpg-line); border-radius:var(--adpg-radius); }
.adpg .bf_preview_info{ font-size:12.5px; color:var(--adpg-mute); }
.adpg .bf_preview .bf_preview_del,
.adpg .bf_preview_del{
  height:26px; padding:0 9px; cursor:pointer;
  border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  background:#fff; color:var(--adpg-mute); font-size:12px; font-family:inherit;
}
.adpg .bf_preview .bf_preview_del:hover,
.adpg .bf_preview_del:hover{ border-color:#C53030; color:#C53030; }

/* 자동등록방지 */
.adpg .captcha,
.adpg #captcha{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  margin:14px 0 0;
}
.adpg #captcha_key{
  height:44px; width:120px; padding:0 14px;
  border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  font-size:14.5px; font-family:inherit; color:var(--adpg-ink);
}
.adpg #captcha img,
.adpg .captcha_box img{
  height:44px; border:1px solid var(--adpg-line); border-radius:var(--adpg-radius); vertical-align:middle;
}
/* 코어가 이 단추의 아이콘을 background-image(captcha2.png)로 넣는다.
   background 단축 속성으로 덮으면 아이콘이 사라지므로 색만 건드린다. */
.adpg #captcha #captcha_mp3,
.adpg #captcha #captcha_reload,
.adpg #captcha_mp3,
.adpg #captcha_reload,
.adpg .captcha button{
  width:44px; height:44px; flex:none; cursor:pointer;
  border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  background-color:#fff; color:var(--adpg-body); font-size:14px; font-family:inherit;
}
.adpg #captcha #captcha_mp3:hover,
.adpg #captcha #captcha_reload:hover,
.adpg #captcha_mp3:hover,
.adpg #captcha_reload:hover,
.adpg .captcha button:hover{ border-color:var(--adpg-ink); background-color:var(--adpg-bg-soft); }
.adpg #captcha_info,
.adpg .captcha_info{ display:block; margin-top:7px; font-size:12.5px; color:var(--adpg-mute); }

/* 보내기 · 취소 */
.adpg .btn_confirm{
  display:flex; justify-content:flex-end; align-items:center; gap:8px;
  margin:26px 0 0; padding:20px 0 0; border-top:1px solid var(--adpg-line);
}
.adpg .btn_confirm .btn_submit,
.adpg .btn_submit{
  display:inline-flex; align-items:center; justify-content:center;
  height:46px; padding:0 34px; cursor:pointer;
  border:1px solid var(--adpg-ink); border-radius:var(--adpg-radius);
  background:var(--adpg-ink); color:#fff;
  font-size:15px; font-weight:700; font-family:inherit; letter-spacing:-.02em;
  transition:background-color .15s ease;
}
.adpg .btn_confirm .btn_submit:hover,
.adpg .btn_submit:hover{ background:#000; text-decoration:none; }
.adpg .btn_cancel,
.adpg .btn_confirm .btn_cancel{
  display:inline-flex; align-items:center; justify-content:center;
  height:46px; padding:0 26px; cursor:pointer;
  border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  background:#fff; color:var(--adpg-body);
  font-size:15px; font-weight:600; font-family:inherit;
}
.adpg .btn_cancel:hover{ border-color:var(--adpg-ink); color:var(--adpg-ink); text-decoration:none; }

@media (max-width:760px){
  .adpg .bo_w_info{ gap:8px; }
  .adpg .bo_w_info > *{ flex:1 1 100%; }
  .adpg .btn_confirm{ flex-direction:column-reverse; gap:8px; }
  .adpg .btn_confirm .btn_submit,
  .adpg .btn_confirm .btn_cancel{ width:100%; }
  .adpg .lb_icon{ display:none; }
}

/* 첨부 이미지 자동 축소 안내 — 파일 입력칸 옆에 결과를 알려 준다 */
.adpg .wa-shrink-note{
  display:block; margin-top:5px; font-size:12.5px; line-height:1.55;
}
.adpg .wa-shrink-note:empty{ display:none; }
.adpg .wa-shrink-note[data-tone="ok"]{ color:#0C6B51; }
.adpg .wa-shrink-note[data-tone="wait"]{ color:var(--adpg-mute); }
.adpg .wa-shrink-note[data-tone="bad"]{ color:#B32B2B; }

/* ---------------------------------------------------------------- 첨부 이미지 · 답변 차수 */
/* 폰으로 찍은 사진을 원본 그대로 두면 화면을 가득 채워 글을 읽을 수 없다.
   줄여서 늘어놓고 누르면 원본을 새 창에서 본다. */
#bo_v_img{ display:flex; flex-wrap:wrap; gap:12px; margin:0 0 22px; }
.adpg-shot{
  display:block; width:210px; max-width:100%; text-decoration:none;
  border:1px solid var(--adpg-line); border-radius:var(--adpg-radius);
  overflow:hidden; background:#fff;
  transition:border-color .15s ease, transform .15s ease;
}
.adpg-shot:hover{ border-color:var(--adpg-accent); transform:translateY(-2px); text-decoration:none; }
.adpg-shot img{
  display:block; width:100%; height:150px; object-fit:cover; object-position:top center;
  background:var(--adpg-bg-soft);
}
.adpg-shot > span{
  display:block; padding:7px 10px; font-size:12px; color:var(--adpg-mute);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* 답변 차수 — 여러 차례 오가는 요청에서 몇 번째 답인지 바로 보이게 */
.adpg-round{
  display:inline-block; margin-left:7px; padding:2px 9px; border-radius:99px;
  background:var(--adpg-accent); color:#fff;
  font-size:11.5px; font-weight:700; letter-spacing:-.01em; vertical-align:1px;
}

@media (max-width:560px){
  .adpg-shot{ width:calc(50% - 6px); }
  .adpg-shot img{ height:110px; }
}

/* 처리 상태 — 분류를 색으로 구분해 목록에서 한눈에 보이게 한다.
   색만으로 구분하지 않도록 글자(진행중 · 보류중 …)는 그대로 둔다. */
.adpg-cate.is-go{   background:#EAF2FF; border-color:#BBD3FF; color:#1A63E0; font-weight:600; }
.adpg-cate.is-hold{ background:#F3F4F6; border-color:#DDE1E6; color:#6B7280; font-weight:600; }
.adpg-cate.is-done{ background:#E8F6F1; border-color:#BFE3D6; color:#0C6B51; font-weight:600; }
.adpg-cate.is-redo{ background:#FDF0E3; border-color:#F4D6B0; color:#A15C07; font-weight:600; }
