@charset "utf-8";

/* 게시판 목록 */
#bo_list {
  position: relative;
  margin-bottom: 20px;
}

#bo_list:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

#bo_list .td_board {
  width: 120px;
  text-align: center;
}

#bo_list .td_chk {
  width: 30px;
  text-align: center;
  border-top: 1px solid #ecf0f1;
  border-bottom: 1px solid #ecf0f1;
}

#bo_list .td_date {
  width: 60px;
  text-align: center;
}

#bo_list .td_datetime {
  width: 60px;
  text-align: center;
}

#bo_list .td_group {
  width: 100px;
  text-align: center;
}

#bo_list .td_mb_id {
  width: 100px;
  text-align: center;
}

#bo_list .td_mng {
  width: 80px;
  text-align: center;
}

#bo_list .td_name {
  width: 90px;
  text-align: left;
  padding: 10px 0;
}

#bo_list .td_nick {
  width: 100px;
  text-align: center;
}

#bo_list .td_num {
  width: 50px;
  text-align: center;
}

#bo_list .td_num2 {
  width: 50px;
  text-align: center;
}

#bo_list .td_numbig {
  width: 80px;
  text-align: center;
}

#bo_list .txt_active {
  color: #5d910b;
}

#bo_list .txt_expired {
  color: #ccc;
}

#bo_list tbody tr {
  border-left: 2px solid transparent;
}

#bo_list tbody tr:hover {
  border-left: 2px solid #253dbe;
}

#bo_list tbody .even td {
  background: #fbfbfb;
}

#bo_cate {
  margin: 25px 0;
}

#bo_cate h2 {
  position: absolute;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

#bo_cate ul {
  zoom: 1;
}

#bo_cate ul:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

#bo_cate li {
  display: inline-block;
  padding: 2px;
}

#bo_cate a {
  display: block;
  line-height: 28px;
  padding: 5px 15px;
  border-radius: 30px;
  border: 1px solid #d6e9ff;
  color: #6794d3;
}

#bo_cate a:focus,
#bo_cate a:hover,
#bo_cate a:active {
  text-decoration: none;
  background: #3a8afd;
  color: #fff;
}

#bo_cate #bo_cate_on {
  z-index: 2;
  background: #3a8afd;
  color: #fff;
  font-weight: bold;
  border: 1px solid #3a8afd;
  -webkit-box-shadow: inset 0 2px 5px rgb(33, 135, 202);
  -moz-box-shadow: inset 0 2px 5px rgb(33, 135, 202);
  box-shadow: inset 0 2px 5px rgb(33, 135, 202);
}

.td_subject img {
  margin-left: 5px;
}

/* 게시판 목록 공통 */
.selec_chk {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  opacity: 0;
  outline: 0;
  z-index: -1;
  overflow: hidden;
}

.chk_box {
  position: relative;
}

.chk_box input[type="checkbox"]+label {
  position: relative;
  color: #676e70;
}

.chk_box input[type="checkbox"]+label:hover {
  color: #2172f8;
}

.chk_box input[type="checkbox"]+label span {
  float: left;
  width: 15px;
  height: 15px;
  display: block;
  background: #fff;
  border: 1px solid #d0d4df;
  border-radius: 3px;
}

.write_div .chk_box input[type="checkbox"]+label,
.bo_vc_w .chk_box input[type="checkbox"]+label {
  padding-left: 20px;
}

.write_div .chk_box input[type="checkbox"]+label span,
.bo_vc_w .chk_box input[type="checkbox"]+label span {
  position: absolute;
  top: 2px;
  left: 0;
  width: 15px;
  height: 15px;
  display: block;
  margin: 0;
  background: #fff;
  border: 1px solid #d0d4df;
  border-radius: 3px;
}

.chk_box input[type="checkbox"]:checked+label {
  color: #000;
}

.chk_box input[type="checkbox"]:checked+label span {
  background: url(./img/chk.png) no-repeat 50% 50% #3a8afd;
  border-color: #1471f6;
  border-radius: 3px;
}

#bo_btn_top {
  margin: 10px 0;
}

#bo_btn_top:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

.bo_fx {
  margin-bottom: 5px;
  float: right;
  zoom: 1;
}

.bo_fx:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

.bo_fx ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

#bo_list_total {
  float: left;
  line-height: 34px;
  font-size: 0.92em;
  color: #4e546f;
}

.btn_bo_user {
  float: right;
  margin: 0;
  padding: 0;
  list-style: none;
}

.btn_bo_user li {
  float: left;
  width: 40px;
  text-align: center;
  margin-left: 5px;
  background: #fff;
}

.btn_bo_user>li {
  position: relative;
}

.btn_bo_adm {
  float: left;
}

.btn_bo_adm li {
  float: left;
  margin-right: 5px;
}

.btn_bo_adm input {
  padding: 0 8px;
  border: 0;
  background: #d4d4d4;
  color: #666;
  text-decoration: none;
  vertical-align: middle;
}

.bo_notice td {
  background: #fff6fa !important;
  border-bottom: 1px solid #f8e6ee;
}

.bo_notice td a {
  font-weight: bold;
}

.bo_notice .notice_icon {
  display: inline-block;
  line-height: 25px;
  border-radius: 5px;
  font-weight: bold;
  color: #f9267f;
}

.more_opt {
  display: none;
  position: absolute;
  top: 45px;
  right: 0;
  background: #fff;
  border: 1px solid #b8bfc4;
  z-index: 999;
}

.more_opt:before {
  content: "";
  position: absolute;
  top: -8px;
  right: 13px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 6px 8px 6px;
  border-color: transparent transparent #b8bfc4 transparent;
}

.more_opt:after {
  content: "";
  position: absolute;
  top: -6px;
  right: 13px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 6px 8px 6px;
  border-color: transparent transparent #fff transparent;
}

.more_opt li {
  border-bottom: 1px solid #f1f1f1;
  padding: 10px;
  float: inherit;
  width: 90px;
  margin: 0;
  color: #6b757c;
  text-align: left;
}

.more_opt li:last-child {
  border-bottom: 0;
}

.more_opt li button,
.more_opt li a {
  width: 100%;
  border: 0;
  background: #fff;
  color: #6b757c;
}

.more_opt li:hover a,
.more_opt li:hover button {
  color: #000;
}

.more_opt li i {
  float: right;
  line-height: 20px;
}

.td_num strong {
  color: #000;
}

.bo_cate_link {
  float: left;
  display: inline-block;
  margin-right: 10px;
  background: #e2eaf6;
  color: #3a8afd;
  font-weight: normal !important;
  height: 20px;
  line-height: 10px;
  padding: 5px 8px;
  border-radius: 5px;
  font-size: 0.95em;
}

/* 글제목줄 분류스타일 */
.bo_cate_link:hover {
  text-decoration: none;
}

.bo_tit {
  display: block;
  color: #000;
  font-weight: bold;
}

.bo_current {
  color: #e8180c;
}

#bo_list .profile_img img {
  border-radius: 50%;
}

#bo_list .cnt_cmt {
  background: #e9eff5;
  color: #3a8afd;
  font-size: 11px;
  height: 16px;
  line-height: 16px;
  padding: 0 5px;
  border-radius: 3px;
  vertical-align: middle;
}

#bo_list .bo_tit .title_icon {
  margin-right: 2px;
}

#bo_list .bo_tit .fa-heart {
  color: #ff0000;
}

#bo_list .bo_tit .fa-lock {
  display: inline-block;
  line-height: 14px;
  width: 16px;
  font-size: 0.833em;
  color: #4f818c;
  background: #cbe3e8;
  text-align: center;
  border-radius: 2px;
  font-size: 12px;
  border: 1px solid #cbe3e8;
  vertical-align: middle;
}

#bo_list .bo_tit .new_icon {
  display: inline-block;
  width: 16px;
  line-height: 16px;
  font-size: 0.833em;
  color: #23db79;
  background: #b9ffda;
  text-align: center;
  border-radius: 2px;
  margin-left: 2px;
  font-weight: bold;
  vertical-align: middle;
}

#bo_list .bo_tit .hot_icon {
  display: inline-block;
  width: 16px;
  line-height: 16px;
  font-size: 0.833em;
  color: #ff0000;
  background: #ffb9b9;
  text-align: center;
  border-radius: 2px;
  vertical-align: middle;
}

#bo_list .bo_tit .fa-caret-right {
  color: #bbb;
}

#bo_list .bo_tit .fa-download {
  display: inline-block;
  width: 16px;
  line-height: 16px;
  font-size: 0.833em;
  color: #daae37;
  background: #ffefb9;
  text-align: center;
  border-radius: 2px;
  margin-left: 5px;
  vertical-align: middle;
}

#bo_list .bo_tit .fa-link {
  display: inline-block;
  width: 16px;
  line-height: 16px;
  font-size: 0.833em;
  color: #b451fd;
  background: #edd3fd;
  text-align: center;
  border-radius: 2px;
  margin-left: 5px;
  vertical-align: middle;
}

.bo_sch_wrap {
  display: none;
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
}

.bo_sch {
  position: absolute;
  top: 50%;
  left: 50%;
  background: #fff;
  text-align: left;
  width: 330px;
  max-height: 300px;
  margin-left: -125px;
  margin-top: -180px;
  overflow-y: auto;
  border-radius: 5px;
  -webkit-box-shadow: 1px 1px 18px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 1px 1px 18px rgba(0, 0, 0, 0.2);
  box-shadow: 1px 1px 18px rgba(0, 0, 0, 0.2);
  border: 1px solid #dde7e9;
  background: #fff;
  border-radius: 3px;
}

.bo_sch:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

.bo_sch h3 {
  padding: 15px;
  border-bottom: 1px solid #e8e8e8;
}

.bo_sch legend {
  background: red;
}

.bo_sch form {
  padding: 15px;
  display: block;
}

.bo_sch select {
  border: 0;
  width: 100%;
  height: 40px;
  border: 1px solid #d0d3db;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

.bo_sch .sch_bar {
  display: inline-block;
  width: 100%;
  clear: both;
  margin-top: 15px;
  border: 1px solid #d0d3db;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

.bo_sch .sch_input {
  width: 250px;
  height: 38px;
  border: 0;
  padding: 0;
  background-color: transparent;
  float: left;
}

.bo_sch .sch_btn {
  height: 38px;
  float: right;
  color: #656565;
  background: none;
  border: 0;
  width: 40px;
  font-size: 15px;
}

.bo_sch .bo_sch_cls {
  position: absolute;
  right: 0;
  top: 0;
  color: #b5b8bb;
  border: 0;
  padding: 12px 15px;
  font-size: 16px;
  background: #fff;
}

.bo_sch_bg {
  background: #000;
  background: rgba(0, 0, 0, 0.1);
  width: 100%;
  height: 100%;
}

/* 게시판 쓰기 */
#char_count_desc {
  display: block;
  margin: 0 0 5px;
  padding: 0;
}

#char_count_wrap {
  margin: 5px 0 0;
  text-align: right;
}

#char_count {
  font-weight: bold;
}

#autosave_wrapper {
  position: relative;
}

#autosave_pop {
  display: none;
  z-index: 10;
  position: absolute !important;
  top: 34px;
  right: 0;
  width: 350px;
  height: auto !important;
  height: 180px;
  max-height: 180px;
  border: 1px solid #565656;
  background: #fff;
  -webkit-box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.2);
  box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.2);
}

#autosave_pop:before {
  content: "";
  position: absolute;
  top: -8px;
  right: 45px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 6px 8px 6px;
  border-color: transparent transparent #000 transparent;
}

#autosave_pop:after {
  content: "";
  position: absolute;
  top: -7px;
  right: 45px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 6px 8px 6px;
  border-color: transparent transparent #fff transparent;
}

html.no-overflowscrolling #autosave_pop {
  height: auto;
  max-height: 10000px !important;
}

/* overflow 미지원 기기 대응 */
#autosave_pop strong {
  position: absolute;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

#autosave_pop div {
  text-align: center;
  margin: 0 !important;
}

#autosave_pop button {
  margin: 0;
  padding: 0;
  border: 0;
}

#autosave_pop ul {
  padding: 15px;
  border-top: 1px solid #e9e9e9;
  list-style: none;
  overflow-y: scroll;
  height: 130px;
  border-bottom: 1px solid #e8e8e8;
}

#autosave_pop li {
  padding: 8px 5px;
  border-bottom: 1px solid #fff;
  background: #eee;
  zoom: 1;
}

#autosave_pop li:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

#autosave_pop a {
  display: block;
  float: left;
}

#autosave_pop span {
  display: block;
  float: right;
  font-size: 0.92em;
  font-style: italic;
  color: #999;
}

.autosave_close {
  cursor: pointer;
  width: 100%;
  height: 30px;
  background: none;
  color: #888;
  font-weight: bold;
  font-size: 0.92em;
}

.autosave_close:hover {
  background: #f3f3f3;
  color: #3597d9;
}

.autosave_content {
  display: none;
}

.autosave_del {
  background: url(./img/close_btn.png) no-repeat 50% 50%;
  text-indent: -999px;
  overflow: hidden;
  height: 20px;
  width: 20px;
}

/* 게시판 읽기 */
#bo_v {
  margin-bottom: 20px;
  background: #fff;
  box-sizing: border-box;
}

#bo_v_table {
  position: absolute;
  top: 0;
  right: 16px;
  margin: 0;
  padding: 0 5px;
  height: 25px;
  background: #ff3061;
  color: #fff;
  font-weight: bold;
  line-height: 2.2em;
}

#bo_v_title {}

#bo_v_title .bo_v_cate {
  display: inline-block;
  line-height: 20px;
  background: #e2eaf6;
  color: #3a8afd;
  padding: 0 10px;
  border-radius: 3px;
}

#bo_v_title .bo_v_tit {
  display: block;
  font-size: 2em;
  margin: 5px 0 0;
  word-break: break-all;
}

#bo_v_info {
  margin: 0;
  border-bottom: 1px solid #f1f1f1;
  color: #666;
}

#bo_v_info:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

#bo_v_info h2 {
  position: absolute;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

#bo_v_info .profile_info {
  margin: 20px 0 10px;
  display: inline-block;
  float: left;
}

#bo_v_info .profile_info .pf_img {
  float: left;
  margin-right: 10px;
}

#bo_v_info .profile_info .pf_img img {
  border-radius: 50%;
  width: 50px;
  height: 50px;
}

#bo_v_info .profile_info .profile_info_ct {
  float: left;
  padding: 5px 0;
  line-height: 18px;
}

#bo_v_info strong {
  display: inline-block;
  margin: 0 10px 0 0;
  font-weight: normal;
}

#bo_v_info .sv_member,
#bo_v_info .sv_guest,
#bo_v_info .member,
#bo_v_info .guest {
  font-weight: bold;
}

#bo_v_info .profile_img {
  display: none;
}

#bo_v_info .sv_member {
  color: #000;
}

#bo_v_info .if_date {
  margin: 0;
  color: #888;
}

#bo_v_file h2 {
  position: absolute;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

#bo_v_file ul {
  margin: 0;
  list-style: none;
}

#bo_v_file li {
  padding: 15px;
  position: relative;
  margin: 10px 0;
  border: 1px solid #dfdfdf;
  border-radius: 5px;
  -webkit-box-shadow: 1px 1px 5px 0px hsl(232, 36%, 96%);
  -moz-box-shadow: 1px 1px 5px 0px hsl(232, 36%, 96%);
  box-shadow: 1px 1px 5px 0px hsl(232, 36%, 96%);
}

#bo_v_file li i {
  float: left;
  color: #b2b2b2;
  font-size: 2.35em;
  margin-right: 20px;
}

#bo_v_file a {
  float: left;
  display: block;
  text-decoration: none;
  word-wrap: break-word;
  color: #000;
}

#bo_v_file a:focus,
#bo_v_file li:hover a,
#bo_v_file a:active {
  text-decoration: underline;
  color: #3a8afd;
}

#bo_v_file img {
  float: left;
  margin: 0 10px 0 0;
}

#bo_v_file .bo_v_file_cnt {
  color: #b2b2b2;
  font-size: 0.92em;
}

#bo_v_file li:hover {
  border-color: #bed4f4;
  color: #bed4f4;
}

#bo_v_file li:hover i {
  color: #3a8afd;
}

#bo_v_file li:hover .bo_v_file_cnt {
  color: #99c2fc;
}

#bo_v_link h2 {
  position: absolute;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

#bo_v_file ul {
  margin: 0;
  list-style: none;
}

#bo_v_link li {
  padding: 15px;
  position: relative;
  margin: 10px 0;
  border: 1px solid #dfdfdf;
  border-radius: 5px;
  -webkit-box-shadow: 1px 1px 5px 0px hsl(232, 36%, 96%);
  -moz-box-shadow: 1px 1px 5px 0px hsl(232, 36%, 96%);
  box-shadow: 1px 1px 5px 0px hsl(232, 36%, 96%);
}

#bo_v_link li i {
  float: left;
  color: #b2b2b2;
  font-size: 2.35em;
  margin-right: 20px;
}

#bo_v_link a {
  float: left;
  display: block;
  text-decoration: none;
  word-wrap: break-word;
  color: #000;
}

#bo_v_link a:focus,
#bo_v_link li:hover a,
#bo_v_link a:active {
  text-decoration: underline;
  color: #3a8afd;
}

#bo_v_link .bo_v_link_cnt {
  color: #b2b2b2;
  font-size: 0.92em;
}

#bo_v_link li:hover {
  border-color: #bed4f4;
  color: #bed4f4;
}

#bo_v_link li:hover i {
  color: #3a8afd;
}

#bo_v_link li:hover .bo_v_link_cnt {
  color: #99c2fc;
}

#bo_v_top {
  zoom: 1;
}

#bo_v_top:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

#bo_v_top h2 {
  position: absolute;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

#bo_v_top ul {
  padding: 0;
  list-style: none;
  word-break: break-all;
  background: #fff;
}

#bo_v_bot {
  zoom: 1;
}

#bo_v_bot:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

#bo_v_bot h2 {
  position: absolute;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

#bo_v_bot ul {
  padding: 0;
  list-style: none;
}

.bo_v_com {
  margin: 20px 0;
  float: right;
}

.bo_v_com>li {
  position: relative;
  float: left;
  margin-left: 5px;
}

.bo_v_nb {
  position: relative;
  margin: 20px 0;
  clear: both;
  text-align: left;
}

.bo_v_nb:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

.bo_v_nb li {
  border-top: 1px solid #f1f1f1;
  padding: 13px;
}

.bo_v_nb li:last-child {
  border-bottom: 1px solid #f1f1f1;
}

.bo_v_nb li:hover {
  background: #f6f6f6;
}

.bo_v_nb li i {
  font-size: 13px;
  color: #b3b3b3;
}

.bo_v_nb li .nb_tit {
  display: inline-block;
  padding-right: 20px;
  color: #b3b3b3;
}

.bo_v_nb li .nb_date {
  float: right;
  color: #b3b3b3;
}

/* 본문이 짧은 글에서는 불필요한 빈 공간을 만들지 않고, 내용 높이만큼만 표시. */
#bo_v_atc {
  min-height: 0;
  height: auto !important;
}

#bo_v_atc_title {
  position: absolute;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

#bo_v_img {
  width: 100%;
  overflow: hidden;
  zoom: 1;
}

#bo_v_img:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

#bo_v_img a.view_image {
  display: block;
}

#bo_v_img img {
  margin-bottom: 20px;
  max-width: 100%;
  height: auto;
}

/* 본문 내용이 짧아도 200px로 강제 확장하지 않고, 관련 영상과 자연스럽게 이어지게 . */
#bo_v_con {
  width: 100%;
  min-height: 0;
  margin: 10px 0 20px;
  overflow: hidden;
  line-height: 1.7em;
  word-break: break-all;
}

#bo_v_con a {
  color: #000;
  text-decoration: underline;
}

#bo_v_con img {
  max-width: 100%;
  height: auto;
}

#bo_v_act {
  margin-bottom: 30px;
  text-align: center;
}

#bo_v_act .bo_v_act_gng {
  position: relative;
}

#bo_v_act a {
  margin-right: 5px;
  vertical-align: middle;
  color: #4a5158;
}

#bo_v_act a:hover {
  background-color: #fff;
  color: #ff484f;
  border-color: #ff484f;
}

#bo_v_act i {
  font-size: 1.4em;
  margin-right: 5px;
}

#bo_v_act_good,
#bo_v_act_nogood {
  display: none;
  position: absolute;
  top: 30px;
  left: 0;
  z-index: 9999;
  padding: 10px 0;
  width: 165px;
  background: #ff3061;
  color: #fff;
  text-align: center;
}

#bo_v_act .bo_v_good {
  display: inline-block;
  border: 1px solid #dedede;
  width: 70px;
  line-height: 46px;
  border-radius: 30px;
}

#bo_v_act .bo_v_nogood {
  display: inline-block;
  border: 1px solid #dedede;
  width: 70px;
  line-height: 46px;
  border-radius: 30px;
}

#bo_v_sns {
  padding: 0;
  list-style: none;
  zoom: 1;
  float: left;
  display: inline-block;
}

#bo_v_sns:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

#bo_v_sns li {
  float: left;
  width: 135px;
  margin-right: 5px;
  text-align: left;
}

#bo_v_sns li a {
  height: 35px;
  line-height: 35px;
  text-align: center;
  border-radius: 5px;
  color: #fff;
  font-size: 0.95em;
}

#bo_v_sns li img {
  vertical-align: middle;
  margin-right: 5px;
}

#bo_v_sns li .sns_f {
  display: block;
  background: #3b5997;
}

#bo_v_sns li .sns_t {
  display: block;
  background: #09aeee;
}

#bo_v_sns li .sns_g {
  display: block;
  background: #ea4026;
}

#bo_v_sns li .sns_k {
  display: block;
  background: #fbe300;
}

#bo_v_share {
  position: relative;
  padding: 20px 0;
}

#bo_v_share:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

#bo_v_share .btn {
  padding: 0 10px;
  color: #555;
  font-weight: normal;
  font-size: 1em;
  width: 80px;
  line-height: 35px;
  height: 35px;
  border-color: #d5d5d5;
  border-radius: 5px;
}

#bo_v_share .btn:hover {
  background: #fff;
}

#bo_v_share .btn i {
  margin-right: 5px;
  color: #4b5259;
  vertical-align: middle;
}

/* 게시판 댓글 */
.cmt_btn {
  width: 100%;
  text-align: left;
  border: 0;
  border-bottom: 1px solid #f0f0f0;
  background: #fff;
  font-weight: bold;
  margin: 30px 0 0px;
  padding: 0 0 15px;
}

.cmt_btn span.total {
  position: relative;
  display: inline-block;
  margin-right: 5px;
  font-size: 1em;
  color: #3a8afd;
}

.cmt_btn span.cmt_more {
  float: right;
  display: inline-block;
  width: 15px;
  height: 10px;
  background: url(./img/btn_cmt.png) no-repeat right 2px;
  margin-top: 5px;
}

.cmt_btn_op span.cmt_more {
  background-position: right -8px;
}

.cmt_btn b {
  font-size: 1.2em;
  color: #000;
}

.cmt_btn span.total:after {
  position: absolute;
  bottom: -17px;
  left: 0;
  display: inline-block;
  background: #3a8afd;
  content: "";
  width: 100%;
  height: 2px;
}

#bo_vc {}

#bo_vc h2 {
  position: absolute;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

#bo_vc article {
  margin: 20px 0;
  position: relative;
  border-bottom: 1px solid #f0f0f0;
}

#bo_vc article:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

#bo_vc article .profile_img img {
  border-radius: 50%;
}

#bo_vc article .pf_img {
  float: left;
  margin-right: 10px;
}

#bo_vc article .pf_img img {
  border-radius: 50%;
  width: 50px;
  height: 50px;
}

#bo_vc article .cm_wrap {
  float: left;
  max-width: 870px;
  width: 90%;
}

#bo_vc header {
  position: relative;
  width: 100%;
}

#bo_vc header:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

#bo_vc header .profile_img {
  display: none;
}

#bo_vc header .icon_reply {
  position: absolute;
  top: 15px;
  left: -20px;
}

#bo_vc .member,
#bo_vc .guest,
#bo_vc .sv_member,
#bo_vc .sv_guest {
  font-weight: bold;
}

.bo_vc_hdinfo {
  color: #777;
}

#bo_vc h1 {
  position: absolute;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

#bo_vc .cmt_contents {
  line-height: 1.8em;
  padding: 0 0 20px;
}

#bo_vc p a {
  text-decoration: underline;
}

#bo_vc p a.s_cmt {
  text-decoration: underline;
  color: #ed6479;
}

#bo_vc_empty {
  margin: 0;
  padding: 80px 0 !important;
  color: #777;
  text-align: center;
}

#bo_vc #bo_vc_winfo {
  float: left;
}

#bo_vc .bo_vl_opt {
  position: absolute;
  top: 0;
  right: 0;
}

.bo_vc_act {
  display: none;
  position: absolute;
  right: 0;
  top: 40px;
  width: 58px;
  text-align: right;
  border: 1px solid #b8bfc4;
  margin: 0;
  list-style: none;
  background: #fff;
  zoom: 1;
  z-index: 9999;
}

.bo_vc_act:before {
  content: "";
  position: absolute;
  top: -8px;
  right: 5px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 6px 8px 6px;
  border-color: transparent transparent #b8bfc4 transparent;
}

.bo_vc_act:after {
  content: "";
  position: absolute;
  top: -6px;
  right: 5px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 6px 8px 6px;
  border-color: transparent transparent #fff transparent;
}

.bo_vc_act li {
  border-bottom: 1px solid #f0f0f0;
}

.bo_vc_act li:last-child {
  border-bottom: 0;
}

.bo_vc_act li a {
  display: inline-block;
  padding: 10px 15px;
}

.bo_vc_act li a:hover {
  color: #3a8afd;
}

.bo_vc_w {
  position: relative;
  margin: 10px 0;
  display: block;
}

.bo_vc_w:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

.bo_vc_w h2 {
  position: absolute;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

.bo_vc_w #char_cnt {
  display: block;
  margin: 0 0 5px;
}

.bo_vc_w textarea {
  border: 1px solid #ccc;
  background: #fff;
  color: #000;
  vertical-align: middle;
  border-radius: 3px;
  padding: 5px;
  width: 100%;
  height: 120px;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}

#wr_secret {}

.bo_vc_w_info {
  margin: 10px 0;
  float: left;
}

.bo_vc_w_info:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

.bo_vc_w_info .frm_input {
  float: left;
  margin-right: 5px;
}

.bo_vc_w_info #captcha {
  padding-top: 10px;
  display: block;
  clear: both;
}

.bo_vc_w .btn_confirm {
  clear: both;
  margin-top: 10px;
}

.bo_vc_w .btn_confirm label {
  display: inline-block;
  margin-right: 10px;
  border-radius: 3px;
  font-size: 1.5em;
  text-align: center;
}

.bo_vc_w .btn_submit {
  height: 45px;
  padding: 0 20px;
  border-radius: 3px;
  font-weight: bold;
  font-size: 1.083em;
}

.bo_vc_w .btn_confirm .secret_cm label {
  font-size: 1em !important;
}

.bo_vc_w_wr:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

.secret_cm {
  display: inline-block;
  float: left;
}

#bo_vc_send_sns {
  display: inline-block;
  float: left;
}

#bo_vc_sns {
  display: inline-block;
  margin: 0;
  padding: 0;
  list-style: none;
  zoom: 1;
}

#bo_vc_sns:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

#bo_vc_sns li {
  float: left;
  margin: 0 5px 0 0;
}

#bo_vc_sns .sns_li_f {
  border-radius: 3px;
  background: #3a589b;
  height: 40px;
  line-height: 40px;
  padding: 0 0 0 10px;
}

#bo_vc_sns .sns_li_t {
  border-radius: 3px;
  background: #00aced;
  height: 40px;
  line-height: 40px;
  padding: 0 0 0 10px;
}

#bo_vc_sns .sns_li_off {
  background: #bbb;
}

#bo_vc_sns a {
  display: inline-block;
  padding: 0 15px 0 5px;
}

#bo_vc_sns input {
  margin: 0 5px 0 0;
}

/*글쓰기*/
#bo_w .bo_v_option li {
  display: inline-block;
  float: left;
  text-align: left;
  margin: 0 5px 0 0;
}

#bo_w .bo_v_option li label {
  vertical-align: baseline;
}

#bo_w .bo_v_option .chk_box input[type="checkbox"]+label span {
  margin-left: 0;
  margin-right: 5px;
}

#bo_w .write_div {
  margin: 10px 0;
  position: relative;
}

#bo_w .write_div:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

#bo_w .bo_w_info:after {
  display: block;
  visibility: hidden;
  clear: both;
  content: "";
}

#bo_w .bo_w_info .frm_input {
  float: left;
  margin-bottom: 1%;
}

#bo_w #wr_password,
#bo_w #wr_homepage {
  margin-left: 1%;
}

#bo_w .wr_content.smarteditor2 iframe {
  background: #fff;
}

#bo_w .bo_w_tit {
  position: relative;
}

#bo_w .bo_w_tit .frm_input {
  padding-right: 120px;
}

#bo_w .bo_w_tit #btn_autosave {
  position: absolute;
  top: 5px;
  right: 5px;
  line-height: 30px;
  height: 30px;
}

#bo_w .bo_w_link label {
  position: absolute;
  top: 1px;
  left: 1px;
  border-radius: 3px 0 0 3px;
  height: 38px;
  line-height: 38px;
  width: 40px;
  font-size: 1.2em;
  text-align: center;
  color: #b2b2b2;
}

#bo_w .bo_w_link .frm_input {
  padding-left: 50px;
}

#bo_w .bo_w_flie .lb_icon {
  position: absolute;
  top: 0px;
  left: 0px;
  border-radius: 3px 0 0 3px;
  height: 38px;
  line-height: 38px;
  width: 40px;
  font-size: 1.2em;
  text-align: center;
  color: #b2b2b2;
}

#bo_w .bo_w_flie .frm_file {
  padding-left: 50px;
  margin-top: 3px;
}

#bo_w .bo_w_flie .file_wr {
  position: relative;
  border: 1px solid #ccc;
  background: #fff;
  color: #000;
  vertical-align: middle;
  border-radius: 3px;
  padding: 5px;
  height: 40px;
  margin: 0;
}

#bo_w .bo_w_flie .frm_input {
  margin: 10px 0 0;
}

#bo_w .bo_w_flie .file_del {
  position: absolute;
  top: 10px;
  right: 10px;
  font-size: 0.92em;
  color: #7d7d7d;
}

#bo_w .bo_w_select select {
  border: 1px solid #d0d3db;
  width: 100%;
  height: 40px;
  border-radius: 3px;
}

#bo_w .btn_submit {
  padding: 0 20px;
  font-size: 1.167em;
}

#bo_w .btn_cancel {
  border-radius: 3px;
  font-size: 1.167em;
}

/* 게시판 목록 실제 표시 폭. */
#bo_list.pb-board-list {
  max-width: 1020px;
  margin-right: auto;
  margin-left: auto;
  padding: 0;
  color: #08122b;
  font-family: Pretendard, "Malgun Gothic", Arial, sans-serif;
}

#bo_list.pb-board-list a {
  text-decoration: none;
}

#bo_list .pb-board-head {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 18px;
  margin: 0 0 6px;
  padding: 0 0 26px;
  border-bottom: 1px solid #e8ebf2;
}

#bo_list .pb-board-title-wrap {
  min-width: 0;
}

#bo_list .pb-board-title {
  margin: 0;
  color: #56595f;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
}

#bo_list .pb-board-total {
  float: none;
  color: #9aa3b2;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}

#bo_list .pb-board-tools {
  float: none;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#bo_list .pb-board-tools li {
  float: none;
  width: auto;
  margin: 0;
  background: transparent;
}

#bo_list .pb-board-tools .btn,
#bo_list .pb-board-tools button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid #dde3ee;
  border-radius: 8px;
  background: #fff;
  color: #08122b;
  font-size: 18px;
  line-height: 1;
  box-shadow: none;
}

#bo_list .pb-board-tools .pb-board-write-icon {
  border-color: #9b24f2;
  background: #9b24f2;
  color: #fff;
}

#bo_list .pb-board-check-all {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 14px 0 0;
  color: #8d95a3;
  font-size: 13px;
}

#bo_list .pb-board-list-wrap {
  border-bottom: 1px solid #e8ebf2;
}

#bo_list .pb-board-row {
  display: grid;
  grid-template-columns: 115px minmax(0, 1fr) 160px 96px 70px;
  align-items: center;
  min-height: 58px;
  border-bottom: 1px solid #edf0f5;
  background: transparent;
  transition: background-color 0.16s ease;
}

#bo_list .pb-board-row:hover {
  background: #fbfcff;
}

#bo_list .pb-board-row:last-child {
  border-bottom: 0;
}

#bo_list .pb-board-row.is-notice .pb-board-subject-link {
  font-weight: 900;
}

#bo_list .pb-board-cell {
  min-width: 0;
}

/* 목록 체크박스만 왼쪽으로 당기고 글번호,제목 위치는 유지 */
#bo_list .pb-board-check {
  width: 34px;
  padding-left: 0;
  box-sizing: border-box;
  transform: translateX(-21px);
}

/* 목록 체크박스는 왼쪽으로 당기고 글번호 칸은 115px로 확장 */
#bo_list .pb-board-row:has(.pb-board-check) {
  grid-template-columns: 34px 120px minmax(0, 1fr) 160px 96px 70px;
}

/* 글번호,공지,고정,점프,New만 120px 영역 중앙에 맞추고 제목 위치는 유지 */
#bo_list .pb-board-num {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  justify-self: end !important;
  width: 120px !important;
  min-width: 120px !important;
  max-width: 120px !important;
  padding: 0 !important;
  color: #9aa3b2;
  font-size: 13px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  text-align: center !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  transform: translateX(10px);
}

#bo_list .pb-board-num .fa-lock {
  color: #c6cbd3;
  font-size: 16px;
}

/* 공지,열람중 배지 공통 크기 */
#bo_list .pb-board-notice,
#bo_list .pb-board-current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  line-height: 22px;
  box-sizing: border-box;
}

/* 공지 배지는 공지 목록 배경 설정과 분리해 고정 색상 유지 */
#bo_list .pb-board-notice {
  background: #f30000 !important;
}

/* 열람중 배지는 기존 색상 유지 */
#bo_list .pb-board-current {
  background: #eef2ff;
  color: #5b6ee1;
}

#bo_list .pb-board-subject {
  display: flex;
  align-items: center;
  gap: 7px;
  padding-left: calc(var(--reply-depth, 0) * 14px);
  overflow: hidden;
}

#bo_list .pb-board-subject-link {
  display: block;
  overflow: hidden;
  color: #050814;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#bo_list .pb-board-subject-link:hover {
  color: #7c1ff2;
}

#bo_list .bo_cate_link {
  float: none;
  flex: 0 0 auto;
  height: 24px;
  margin: 0 4px 0 0;
  padding: 0 9px;
  border-radius: 999px;
  background: #eef2ff;
  color: #5b6ee1;
  font-size: 12px;
  font-weight: 900 !important;
  line-height: 24px;
}

#bo_list .new_icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 36px;
  height: 20px;
  padding: 0 8px;
  border-radius: 999px;
  background: #8ad11d;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  line-height: 20px;
}

#bo_list .cnt_cmt {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  height: auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: #8a22ff;
  font-size: 14px;
  font-weight: 900;
  line-height: 1;
}

#bo_list .pb-board-author {
  overflow: hidden;
  color: #818b9b;
  font-size: 13px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#bo_list .pb-board-author .sv_member,
#bo_list .pb-board-author .sv_guest,
#bo_list .pb-board-author .member,
#bo_list .pb-board-author .guest {
  color: #737d8f;
  font-weight: 800;
}

#bo_list .pb-board-date,
#bo_list .pb-board-hit {
  color: #9aa3b2;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

#bo_list .pb-board-empty {
  padding: 84px 20px;
  border-bottom: 1px solid #e8ebf2;
  color: #8d95a3;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
}

#bo_list .pb-board-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 28px 0 34px;
}

#bo_list .pb-board-search-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  padding: 0 17px;
  border: 1px solid #dfe4ee;
  border-radius: 7px;
  background: #fff;
  color: #8d95a3;
  font-size: 14px;
  font-weight: 800;
}

#bo_list .pb-board-write-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  height: 38px;
  padding: 0 18px;
  border-radius: 8px;
  background: #9b24f2;
  color: #fff;
  font-size: 14px;
  font-weight: 400;
}

#bo_list .pg_wrap,
#bo_list .pg {
  display: flex;
  justify-content: center;
  margin: 0;
  padding: 0;
  text-align: center;
}

/* 게시글 보기 처음 맨끝 */
#bo_list .pg_page,
#bo_list .pg_current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  margin: 0 4px;
  padding: 0 12px;
  border: 1px solid #e1e6ef;
  border-radius: 999px;
  background: #fff;
  color: #111827;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
}

#bo_list .pg_current {
  border-color: #9b24f2;
  background: #9b24f2;
  color: #fff;
}

#bo_list .more_opt {
  top: 52px;
  right: 0;
  min-width: 126px;
  border: 1px solid #dfe4ee;
  border-radius: 8px;
  box-shadow: 0 16px 35px rgba(15, 23, 42, 0.12);
}

#bo_list .more_opt li {
  width: auto;
  padding: 9px 12px;
  background: #fff;
}

#bo_list .bo_sch_wrap {
  z-index: 10000;
}

#bo_list .bo_sch {
  width: 360px;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 1px solid #e1e6ef;
  border-radius: 12px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.18);
  transform: translate(-50%, -50%);
}

#bo_list .bo_sch h3 {
  margin: 0;
  padding: 18px 20px;
  border-bottom: 1px solid #edf0f5;
  color: #111827;
  font-size: 18px;
}

#bo_list .bo_sch form {
  padding: 20px;
}

#bo_list .bo_sch select,
#bo_list .bo_sch .sch_bar {
  border: 1px solid #dfe4ee;
  border-radius: 8px;
  box-shadow: none;
}

#bo_list .bo_sch .sch_input {
  width: calc(100% - 44px);
  padding: 0 12px;
  box-sizing: border-box;
}

#bo_list .bo_sch .sch_btn {
  width: 44px;
}

#bo_list .bo_sch .bo_sch_cls {
  top: 10px;
  right: 8px;
  padding: 8px 10px;
  background: transparent;
}

@media (max-width: 900px) {

  /* 모바일 게시판 좌우 여백. */
  #bo_list.pb-board-list {
    padding: 0 16px;
  }

  #bo_list .pb-board-head {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  #bo_list .pb-board-total,
  #bo_list .pb-board-tools {
    justify-self: start;
  }

  #bo_list .pb-board-row,
  #bo_list .pb-board-row:has(.pb-board-check) {
    grid-template-columns: 52px minmax(0, 1fr) 62px;
    grid-template-areas:
      "num subject hit"
      "num author date";
    row-gap: 5px;
    min-height: 72px;
    padding: 10px 0;
  }

  #bo_list .pb-board-check {
    display: none;
  }

  #bo_list .pb-board-num {
    grid-area: num;
  }

  #bo_list .pb-board-subject {
    grid-area: subject;
  }

  #bo_list .pb-board-author {
    grid-area: author;
    padding-left: calc(var(--reply-depth, 0) * 14px);
  }

  #bo_list .pb-board-date {
    grid-area: date;
    text-align: right;
  }

  #bo_list .pb-board-hit {
    grid-area: hit;
    text-align: right;
  }

  #bo_list .pb-board-subject-link {
    font-size: 15px;
  }
}

/* P Builder 게시판 목록 커스텀 끝 */

/* 게시판 목록 전체선택 체크박스 정렬 보정 */
#bo_list .pb-board-check-all {
  display: flex !important;
  align-items: center !important;
  margin: 14px 0 10px !important;
}

#bo_list .pb-board-check-all label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: #8d95a3 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  cursor: pointer !important;
}

#bo_list .pb-board-check-all label:hover {
  color: #6b7280 !important;
}

#bo_list .pb-board-check-all label span {
  float: none !important;
  flex: 0 0 16px !important;
  width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
  border: 1px solid #d0d6e2 !important;
  border-radius: 4px !important;
  background-color: #fff !important;
  box-sizing: border-box !important;
}

#bo_list .pb-board-check-all input[type="checkbox"]:checked+label span {
  border-color: #7c1ff2 !important;
  background-color: #7c1ff2 !important;
}

/* 게시판 목록 관리자 옵션 드롭다운 정렬 보정 */
#bo_list .pb-board-tools .more_opt {
  top: 52px !important;
  right: 0 !important;
  min-width: 148px !important;
  padding: 6px !important;
  border: 1px solid #dfe4ee !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: 0 18px 38px rgba(15, 23, 42, 0.14) !important;
}

#bo_list .pb-board-tools .more_opt li {
  float: none !important;
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid #edf0f5 !important;
  background: #fff !important;
  text-align: left !important;
}

#bo_list .pb-board-tools .more_opt li:last-child {
  border-bottom: 0 !important;
}

#bo_list .pb-board-tools .more_opt li button,
#bo_list .pb-board-tools .more_opt li a {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  width: 100% !important;
  height: 38px !important;
  padding: 0 10px !important;
  border: 0 !important;
  border-radius: 7px !important;
  background: #fff !important;
  color: #4b5563 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

#bo_list .pb-board-tools .more_opt li button:hover,
#bo_list .pb-board-tools .more_opt li a:hover {
  background: #f7f8fb !important;
  color: #111827 !important;
}

#bo_list .pb-board-tools .more_opt li i {
  float: none !important;
  width: 16px !important;
  line-height: 1 !important;
  text-align: center !important;
}

/* 게시판 목록 폭. */
#bo_list.pb-board-list {
  max-width: 1020px;
  font-size: 12px;
}

#bo_list .pb-board-head {
  padding-bottom: 22px !important;
}

#bo_list .pb-board-title {
  font-size: 14px !important;
  font-weight: 800 !important;
}

#bo_list .pb-board-total {
  font-size: 12px !important;
  font-weight: 700 !important;
}

#bo_list .pb-board-row {
  min-height: 52px !important;
  grid-template-columns: 70px minmax(0, 1fr) 156px 90px 64px !important;
}

#bo_list .pb-board-row:has(.pb-board-check) {
  grid-template-columns: 34px 66px minmax(0, 1fr) 150px 88px 60px !important;
}

#bo_list .pb-board-subject-link {
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
}

#bo_list .pb-board-author,
#bo_list .pb-board-date,
#bo_list .pb-board-hit,
#bo_list .pb-board-num {
  font-size: 12px !important;
}

#bo_list .new_icon {
  min-width: 34px !important;
  height: 18px !important;
  padding: 0 7px !important;
  font-size: 10px !important;
  line-height: 18px !important;
}

#bo_list .cnt_cmt {
  font-size: 13px !important;
}

#bo_list .pb-board-tools .btn,
#bo_list .pb-board-tools button {
  width: 40px !important;
  height: 40px !important;
  font-size: 16px !important;
}

#bo_list .pb-board-bottom {
  margin-top: 24px !important;
}

#bo_list .pb-board-write-btn {
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 13px !important;
}

#bo_list .pb-board-search-text {
  height: 34px !important;
  padding: 0 15px !important;
  font-size: 13px !important;
}

/* 게시판 목록 제목 서체와 공지글 굵기를 샘플 기준으로 맞춤. */
#bo_list.pb-board-list,
#bo_list .pb-board-subject-link,
#bo_list .pb-board-title,
#bo_list .pb-board-author,
#bo_list .pb-board-date,
#bo_list .pb-board-hit {
  font-family:
    Pretendard, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", Arial,
    sans-serif !important;
}

#bo_list .pb-board-subject-link {
  color: #050505 !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

#bo_list .pb-board-row.is-notice .pb-board-subject-link,
#bo_list .pb-board-row.is-notice .pb-board-subject-link strong,
#bo_list .pb-board-row.is-notice .pb-board-author {
  font-weight: 900 !important;
}

#bo_list .pb-board-row.is-notice .pb-board-subject-link {
  color: #000 !important;
}

#bo_list .cnt_cmt {
  color: #8a22ff !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
}

/* 게시판 목록 폰트 볼드를 font-B로 고정 */
#bo_list.pb-board-list,
#bo_list .pb-board-subject-link,
#bo_list .pb-board-title,
#bo_list .pb-board-author,
#bo_list .pb-board-date,
#bo_list .pb-board-hit,
#bo_list .pb-board-total,
#bo_list .pb-board-search-text,
#bo_list .pb-board-write-btn {
  font-family: "font-B", sans-serif !important;
}

/* 게시판 목록 작성자 아이콘을 닉네임 왼쪽에 표시. */
#bo_list .pb-board-author {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}

#bo_list .pb-board-author-img,
#bo_list .pb-board-author-img .profile_img {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  height: 22px !important;
  overflow: hidden !important;
  border-radius: 7px !important;
}

#bo_list .pb-board-author-img img {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  border-radius: 7px !important;
  object-fit: cover !important;
}

#bo_list .pb-board-author-name {
  display: inline-block !important;
  min-width: 0 !important;
  overflow: visible !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* 닉네임 클릭 시 표시되는 회원 메뉴를 샘플 형태로 정리. */
#bo_list .pb-board-author .sv_wrap {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  min-width: 0 !important;
  font-weight: inherit !important;
  overflow: visible !important;
}

#bo_list .pb-board-author {
  overflow: visible !important;
}

#bo_list .pb-board-author .sv_member,
#bo_list .pb-board-author .sv_guest {
  display: inline-block !important;
  max-width: 88px !important;
  overflow: hidden !important;
  color: #737d8f !important;
  font-family: "font-B", sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  cursor: pointer !important;
}

#bo_list .pb-board-author .sv_member:hover,
#bo_list .pb-board-author .sv_guest:hover {
  color: #111827 !important;
}

#bo_list .pb-board-author .sv_wrap .sv {
  position: absolute !important;
  top: calc(100% + 8px) !important;
  left: 0 !important;
  z-index: 10050 !important;
  display: none;
  width: 100px !important;
  margin: 0 !important;
  padding: 4px 0 !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: #2f3338 !important;
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.22) !important;
  overflow: hidden !important;
}

#bo_list .pb-board-author .sv_wrap .sv.sv_on,
#bo_list .pb-board-author .sv_wrap .sv.pb-list-sv-open {
  display: block !important;
}

#bo_list .pb-board-author .sv_wrap .sv::before {
  content: "" !important;
  position: absolute !important;
  top: -6px !important;
  left: 16px !important;
  width: 0 !important;
  height: 0 !important;
  border-right: 6px solid transparent !important;
  border-bottom: 6px solid #2f3338 !important;
  border-left: 6px solid transparent !important;
}

#bo_list .pb-board-author .sv_wrap .sv a {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 8px 10px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  background: transparent !important;
  color: #fff !important;
  font-family: "font-B", sans-serif !important;
  font-size: 12px !important;
  font-weight: 300 !important;
  line-height: 1.2 !important;
  text-align: left !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

#bo_list .pb-board-author .sv_wrap .sv a:last-child {
  border-bottom: 0 !important;
}

#bo_list .pb-board-author .sv_wrap .sv a:hover,
#bo_list .pb-board-author .sv_wrap .sv a:focus {
  background: #24272b !important;
  color: #fff !important;
  text-decoration: none !important;
}

/* 작성자 아이콘과 닉네임 직접 링크를 기존 목록 디자인과 맞춤. */
#bo_list .pb-board-author .pb-board-author-img {
  cursor: pointer !important;
  text-decoration: none !important;
}

#bo_list .pb-board-author-direct {
  overflow: hidden !important;
  display: inline-block !important;
  max-width: 88px !important;
  color: #737d8f !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}

#bo_list .pb-board-author-direct:hover,
#bo_list .pb-board-author-direct:focus {
  color: #111827 !important;
}

/* 일반 게시글 제목은 가볍게 표시하고, 공지글 굵기는 기존 설정을 유지. */
#bo_list .pb-board-row:not(.is-notice) .pb-board-subject-link,
#bo_list .pb-board-row:not(.is-notice) .pb-board-subject-link strong {
  font-weight: 400 !important;
}

/* 작성자 프로필 아이콘 버튼을 이미지처럼 보이게 정리. */
#bo_list button.pb-board-author-img {
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  appearance: none !important;
}

/* 작성자 아바타와 닉네임을 하나의 사이드뷰 클릭 영역으로 정렬. */
#bo_list .pb-board-author .sv_member,
#bo_list .pb-board-author .sv_guest {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  max-width: 118px !important;
  vertical-align: middle !important;
}

#bo_list .pb-board-author .pb-board-author-img,
#bo_list .pb-board-author .pb-board-author-img .profile_img,
#bo_list .pb-board-author .pb-board-author-img img {
  flex: 0 0 22px !important;
  width: 22px !important;
  height: 22px !important;
}

/* 닉네임 사이드뷰의 기본 회원 아이콘을 22x22 둥근네모로 표시. */
#bo_list .pb-board-author .sv_member .profile_img,
#bo_list .pb-board-author .sv_guest .profile_img {
  overflow: hidden !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  height: 22px !important;
  margin: 0 5px 0 0 !important;
  border: 1px solid #111827 !important;
  border-radius: 4px !important;
  background: #f3f4f6 !important;
  vertical-align: middle !important;
}

#bo_list .pb-board-author .sv_member .profile_img img,
#bo_list .pb-board-author .sv_guest .profile_img img {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  border-radius: 3px !important;
  object-fit: cover !important;
}

/* 회원 아이콘을 둥근 네모 박스 안에 중앙 배치. */
#bo_list .pb-board-author .sv_wrap .sv_member .profile_img,
#bo_list .pb-board-author .sv_wrap .sv_guest .profile_img {
  overflow: hidden !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  height: 22px !important;
  margin: 0 5px 0 0 !important;
  border: 0 !important;
  border-radius: 5px !important;
  background: #e5e7eb !important;
  box-sizing: border-box !important;
}

#bo_list .pb-board-author .sv_wrap .sv_member .profile_img img,
#bo_list .pb-board-author .sv_wrap .sv_guest .profile_img img {
  display: block !important;
  width: 16px !important;
  height: 16px !important;
  border-radius: 3px !important;
  object-fit: contain !important;
}

/* 게시판 목록 회원 아이콘은 배경 없이 실제 이미지만 20px로 표시. */
#bo_list .pb-board-author .sv_wrap .sv_member .profile_img,
#bo_list .pb-board-author .sv_wrap .sv_guest .profile_img {
  overflow: visible !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 20px !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 5px 0 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#bo_list .pb-board-author .sv_wrap .sv_member .profile_img img,
#bo_list .pb-board-author .sv_wrap .sv_guest .profile_img img {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 4px !important;
  object-fit: cover !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* 게시판 작성자 아이콘 크기와 닉네임 간격을 샘플 기준으로 맞춤. */
#bo_list .pb-board-author .sv_wrap .sv_member,
#bo_list .pb-board-author .sv_wrap .sv_guest {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  max-width: 130px !important;
  line-height: 24px !important;
}

#bo_list .pb-board-author .sv_wrap .sv_member .profile_img,
#bo_list .pb-board-author .sv_wrap .sv_guest .profile_img {
  overflow: visible !important;
  flex: 0 0 24px !important;
  width: 24px !important;
  height: 24px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#bo_list .pb-board-author .sv_wrap .sv_member .profile_img img,
#bo_list .pb-board-author .sv_wrap .sv_guest .profile_img img {
  width: 24px !important;
  height: 24px !important;
  border-radius: 5px !important;
  object-fit: cover !important;
}

/* 게시판 작성자 회원 아이콘 최종 표시 크기를 20x20px로 맞춤. */
#bo_list .pb-board-author .sv_wrap .sv_member .profile_img,
#bo_list .pb-board-author .sv_wrap .sv_guest .profile_img,
#bo_list .pb-board-author .sv_wrap .sv_member .profile_img img,
#bo_list .pb-board-author .sv_wrap .sv_guest .profile_img img {
  width: 20px !important;
  height: 20px !important;
  flex-basis: 20px !important;
}

/* 게시판 목록 날짜와 조회수를 샘플처럼 연하게 정렬. */
#bo_list .pb-board-row {
  background: #fff !important;
}

#bo_list .pb-board-date,
#bo_list .pb-board-hit {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #8d96a3 !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

#bo_list .pb-board-hit {
  justify-content: flex-end !important;
  padding-right: 8px !important;
}

/* 게시판 목록 각 칸의 가로 공간을 샘플 화면 기준으로 맞춤. */
#bo_list .pb-board-row {
  grid-template-columns: 72px minmax(0, 1fr) 170px 105px 70px !important;
  min-height: 52px !important;
  padding: 0 22px !important;
  column-gap: 0 !important;
}

#bo_list .pb-board-num {
  justify-content: center !important;
}

#bo_list .pb-board-subject {
  min-width: 0 !important;
  padding-right: 18px !important;
}

#bo_list .pb-board-author {
  justify-content: flex-start !important;
  padding-left: 0 !important;
}

#bo_list .pb-board-date {
  justify-content: center !important;
  padding: 0 !important;
}

#bo_list .pb-board-hit {
  justify-content: flex-end !important;
  padding-right: 0 !important;
}

#bo_list .pb-board-author .sv_wrap .sv_member,
#bo_list .pb-board-author .sv_wrap .sv_guest {
  gap: 4px !important;
  max-width: 132px !important;
}

/* PC 게시판 우측 너비 조정 */
#bo_list.pb-board-list {
  position: relative !important;
}

@media (min-width: 769px) {

  #bo_list .pb-board-head {
    grid-template-columns: 1fr auto !important;
  }

  #bo_list .pb-board-tools {
    position: absolute !important;
    top: 70px !important;
    right: 0 !important;
    z-index: 20 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #bo_list .pb-board-tools>li {
    position: relative !important;
    display: block !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    background: transparent !important;
  }

  #bo_list .pb-board-tools .btn,
  #bo_list .pb-board-tools button {
    width: 44px !important;
    height: 44px !important;
    border-radius: 6px !important;
    font-size: 18px !important;
  }

  #bo_list .pb-board-tools .pb-board-write-icon {
    border-color: #9b24f2 !important;
    background: #9b24f2 !important;
    color: #fff !important;
  }

  /* 목록 우측 아이콘 툴팁은 브라우저 기본 title 없이 CSS 전용 속성으로만 표시. */
  #bo_list .pb-board-tools>li>a[data-tooltip]::after,
  #bo_list .pb-board-tools>li>button[data-tooltip]::after {
    position: absolute !important;
    top: 50% !important;
    left: calc(100% + 10px) !important;
    z-index: 10070 !important;
    display: block !important;
    padding: 7px 10px !important;
    border: 1px solid rgba(15, 23, 42, 0.08) !important;
    border-radius: 7px !important;
    background: rgba(25, 32, 46, 0.96) !important;
    color: #ffffff !important;
    content: attr(data-tooltip) !important;
    font-family: "font-B", sans-serif !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    pointer-events: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.2) !important;
    transform: translate(-6px, -50%) !important;
    transition:
      opacity 0.16s ease,
      transform 0.16s ease !important;
  }

  /* 툴팁 왼쪽의 작은 말풍선 꼬리. */
  #bo_list .pb-board-tools>li>a[data-tooltip]::before,
  #bo_list .pb-board-tools>li>button[data-tooltip]::before {
    position: absolute !important;
    top: 50% !important;
    left: calc(100% + 5px) !important;
    z-index: 10071 !important;
    width: 9px !important;
    height: 9px !important;
    background: rgba(25, 32, 46, 0.96) !important;
    content: "" !important;
    pointer-events: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translate(-6px, -50%) rotate(45deg) !important;
    transition:
      opacity 0.16s ease,
      transform 0.16s ease !important;
  }

  /* 마우스를 올리거나 키보드 포커스가 들어온 경우에만 툴팁을 표시. */
  #bo_list .pb-board-tools>li>a[data-tooltip]:hover::after,
  #bo_list .pb-board-tools>li>a[data-tooltip]:focus-visible::after,
  #bo_list .pb-board-tools>li>button[data-tooltip]:hover::after,
  #bo_list .pb-board-tools>li>button[data-tooltip]:focus-visible::after {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translate(0, -50%) !important;
  }

  #bo_list .pb-board-tools>li>a[data-tooltip]:hover::before,
  #bo_list .pb-board-tools>li>a[data-tooltip]:focus-visible::before,
  #bo_list .pb-board-tools>li>button[data-tooltip]:hover::before,
  #bo_list .pb-board-tools>li>button[data-tooltip]:focus-visible::before {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translate(0, -50%) rotate(45deg) !important;
  }

  #bo_list .pb-board-tools .more_opt {
    top: 0 !important;
    right: 54px !important;
  }
}

/* PC 게시판 목록 우측 도구 메뉴를 상단 메뉴 아래에 고정. */
@media (min-width: 769px) {

  #bo_list .pb-board-tools {
    position: fixed !important;
    top: 180px !important;
    right: max(80px, calc(50% - (1020px / 2) - 80px)) !important;
    z-index: 900 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 10px !important;
    width: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  #bo_list .pb-board-tools>li {
    position: relative !important;
    display: block !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    list-style: none !important;
  }

  #bo_list .pb-board-tools .btn,
  #bo_list .pb-board-tools button {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    border-radius: 6px !important;
  }

  #bo_list .pb-board-tools .more_opt {
    top: 0 !important;
    right: 54px !important;
    left: auto !important;
  }
}

/* 좁은 화면에서는 PC 고정 툴바가 본문을 가리지 않도록 기본 흐름으로 돌립니다. */
@media (max-width: 768px) {
  #bo_list .pb-board-tools {
    position: static !important;
    width: auto !important;
  }
}

/* PC 게시판 상단 제목과 전체 건수를 구분선 바로 위에 정렬. */
@media (min-width: 769px) {
  #bo_list .pb-board-head {
    align-items: end !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 0 8px !important;
    border-bottom: 1px solid #e5e8ef !important;
  }

  #bo_list .pb-board-title,
  #bo_list .pb-board-total {
    display: flex !important;
    align-items: center !important;
    min-height: 24px !important;
    margin: 0 !important;
    line-height: 1.2 !important;
  }

  #bo_list .pb-board-total {
    justify-self: end !important;
    align-self: end !important;
  }
}

/* 게시판 포인트 정책 버튼과 안내창을 샘플 형태로 표시. */
#bo_list .pb-board-summary {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  justify-self: end !important;
}

#bo_list .pb-board-point {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
}

#bo_list .pb-board-point-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  height: 24px !important;
  padding: 0 8px !important;
  border: 1px solid #d8dde8 !important;
  border-radius: 6px !important;
  background: #fff !important;
  color: #172033 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  cursor: pointer !important;
}

#bo_list .pb-board-point-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 14px !important;
  height: 14px !important;
  border-radius: 50% !important;
  background: #1f2d4f !important;
  color: #fff !important;
  font-size: 9px !important;
  font-weight: 900 !important;
}

#bo_list .pb-board-point-panel {
  position: absolute !important;
  top: calc(100% + 10px) !important;
  right: 0 !important;
  z-index: 850 !important;
  width: 278px !important;
  padding: 20px !important;
  border: 1px solid #e5e8ef !important;
  border-radius: 6px !important;
  background: #fff !important;
  box-shadow: 0 14px 36px rgba(15, 23, 42, 0.08) !important;
}

#bo_list .pb-board-point-panel strong {
  display: block !important;
  margin: 0 0 12px !important;
  color: #111827 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1.3 !important;
}

#bo_list .pb-board-point-box {
  display: flex !important;
  justify-content: center !important;
  gap: 22px !important;
  padding: 14px 18px !important;
  border-radius: 4px !important;
  background: #fafafa !important;
}

#bo_list .pb-board-point-box dl {
  margin: 0 !important;
  text-align: center !important;
}

#bo_list .pb-board-point-box dt {
  margin: 0 0 4px !important;
  color: #111827 !important;
  font-family: "font-R", sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
}

#bo_list .pb-board-point-box dd {
  margin: 0 !important;
  color: #000 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
}

/* 포인트정책 버튼 글자 굵기를 일반 굵기로 맞춤. */
#bo_list .pb-board-point-btn {
  font-weight: 400 !important;
}

/* 포인트 정책 안내 박스 배경색을 지정. */
#bo_list .pb-board-point-box {
  background: #f3f5f7 !important;
}

/* 공지 게시글 행 배경색은 관리자 공지 목록 배경 설정값을 적용함 */
#bo_list .pb-board-row.is-notice {
  background: var(--pb-notice-row-bg, #fff6fa) !important;
}

/* 공지 게시글 행 hover 상태에서도 관리자 설정 배경을 유지함 */
#bo_list .pb-board-row.is-notice:hover {
  background: var(--pb-notice-row-bg, #fff6fa) !important;
}

/* 공지 배지는 공지 목록 배경 설정과 분리해 고정 색상 유지 */
#bo_list .pb-board-notice {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  background: #f30000 !important;
  color: #fff !important;
  font-weight: 500 !important;
}

/* 새글 아이콘을 게시글 번호 칸에 초록색 둥근 New 배지로 표시.
 * 그누보드 관리자 새글 아이콘 설정 시간이 지나면 PHP에서 이 배지를 출력하지 않고
 * 기존 게시글 번호가 다시 표시됩니다.
 */
#bo_list .pb-board-new-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 22px;
  padding: 0 7px;
  border: 0;
  border-radius: 999px;
  background: #92d72b;
  color: #ffffff !important;
  font-size: 12px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  white-space: nowrap;
}

/* 게시글 보기·댓글 영역은 기존 font-B 기준을 유지.
   글쓰기 화면은 Summernote가 span, b, strong에 넣는 개별 글꼴을 덮어쓰지 않도록
   모든 하위 요소에 font-family를 직접 적용하지 않음. */
#bo_v.pb-view-skin,
#bo_v.pb-view-skin *,
.pb-comment-section,
.pb-comment-section * {
  font-family: "font-B", sans-serif;
  box-sizing: border-box;
}

/* 글쓰기 화면은 기본 서체만 font-B로 두고,
   Summernote 본문 하위 태그에는 box-sizing만 적용. */
#bo_w {
  font-family: "font-B", sans-serif;
  box-sizing: border-box;
}

#bo_w * {
  box-sizing: border-box;
}

#bo_v.pb-view-skin {
  position: relative;
  background: #fff !important;
  color: #17191f !important;
}

/* 보기 제목 내부 여백. */
#bo_v.pb-view-skin .pb-view-head {
  position: relative;
  padding: 0 0 26px !important;
  border-bottom: 1px solid #e6e8ed;
}

/* 게시판 보기 */
#bo_v.pb-view-skin .pb-view-board-label {
  margin: 38px 0 28px;
  color: #494c52;
  font-size: 14px;
  font-weight: 600;
}

#bo_v.pb-view-skin #bo_v_title {
  margin: 0 !important;
  padding: 0 !important;
  color: #111318;
}

#bo_v.pb-view-skin #bo_v_title .bo_v_tit {
  display: block;
  font-size: clamp(28px, 3.1vw, 38px) !important;
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: -1.6px;
  word-break: keep-all;
}

#bo_v.pb-view-skin .bo_v_cate {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  margin: 0 0 12px !important;
  padding: 0 10px;
  border: 0 !important;
  border-radius: 999px;
  background: #f1ecff;
  color: #8b2cf6;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
}

#bo_v.pb-view-skin #bo_v_info.pb-view-meta {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 22px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  color: #9097a4;
}

#bo_v.pb-view-skin .profile_info {
  display: flex !important;
  align-items: center;
  float: none !important;
  margin: 0 !important;
}

#bo_v.pb-view-skin .profile_info .pf_img {
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  float: none !important;
  width: 26px;
  height: 26px;
  margin: 0 9px 0 0 !important;
  border-radius: 8px;
  background: #25272c;
}

#bo_v.pb-view-skin .profile_info .pf_img img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  border-radius: 8px;
  object-fit: cover;
}

#bo_v.pb-view-skin .profile_info_ct {
  display: inline-flex !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  float: none !important;
  padding: 0 !important;
  color: #9da4af;
  font-size: 13px;
  line-height: 1.2;
}

#bo_v.pb-view-skin .profile_info_ct>* {
  margin: 0 !important;
}

/* 닉네임 컬러, 볼드 */
#bo_v.pb-view-skin .pb-view-author,
#bo_v.pb-view-skin .profile_info_ct .sv_member,
#bo_v.pb-view-skin .profile_info_ct .sv_guest {
  color: #4d5563;
  font-weight: 300;
}

#bo_v.pb-view-skin .pb-view-date,
#bo_v.pb-view-skin .pb-view-ip {
  color: #a6adb8;
  font-size: 12px;
  font-weight: 500;
}

#bo_v.pb-view-skin .pb-view-stat {
  display: inline-flex;
  align-items: center;
  gap: 13px;
  color: #27314c;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

#bo_v.pb-view-skin .pb-view-stat a,
#bo_v.pb-view-skin .pb-view-stat span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: inherit;
  text-decoration: none;
}

#bo_v.pb-view-skin .pb-view-stat i {
  color: #27314c;
  font-size: 13px;
}

/* 첨부 이미지·본문·링크를 샘플처럼 넉넉한 읽기 여백으로 배치. */
#bo_v.pb-view-skin #bo_v_atc.pb-view-content {
  min-height: 0 !important;
  margin: 0 !important;
  padding: 36px 0 0 !important;
}

#bo_v.pb-view-skin #bo_v_img {
  margin: 0 0 28px;
}

#bo_v.pb-view-skin #bo_v_img img {
  margin: 0 0 18px !important;
  border-radius: 12px;
}

#bo_v.pb-view-skin #bo_v_con {
  min-height: 0 !important;
  margin: 0 !important;
  color: #111827;
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: -0.35px;
  word-break: break-word;
}

#bo_v.pb-view-skin #bo_v_con>*:first-child {
  margin-top: 0 !important;
}

#bo_v.pb-view-skin #bo_v_con p {
  margin: 0 0 1.5em;
}

#bo_v.pb-view-skin #bo_v_con a {
  color: #1a4da8;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 게시판 스크롤 */
#bo_v.pb-view-skin #bo_v_con pre,
#bo_v_con pre {
  max-height: 500px !important;
  /*overflow-x: auto !important;*/
  overflow-y: auto !important;
  /*white-space: pre !important;*/
  box-sizing: border-box !important;
}

#bo_v.pb-view-skin .pb-view-signature {
  margin: 26px 0 0;
  color: #8e96a4;
  font-size: 13px;
}

/* SNS 기본 스킨을 중앙 아이콘 버튼 형태로 정리. */
#bo_v.pb-view-skin #bo_v_share.pb-view-share {
  display: flex;
  justify-content: center;
  margin: 38px 0 0;
  padding: 0 !important;
}

#bo_v.pb-view-skin #bo_v_sns {
  display: inline-flex !important;
  float: none !important;
  gap: 6px;
  margin: 0 !important;
  padding: 0 !important;
}

#bo_v.pb-view-skin #bo_v_sns li {
  float: none !important;
  width: 36px !important;
  margin: 0 !important;
}

#bo_v.pb-view-skin #bo_v_sns li a {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px !important;
  padding: 0 !important;
  border-radius: 5px;
  font-size: 0 !important;
  line-height: 1 !important;
}

#bo_v.pb-view-skin #bo_v_sns li a img {
  margin: 0 !important;
}

#bo_v.pb-view-skin #bo_v_sns li a::before {
  font-family: FontAwesome;
  font-size: 16px;
}

#bo_v.pb-view-skin #bo_v_sns .sns_f::before {
  content: "\f09a";
}

#bo_v.pb-view-skin #bo_v_sns .sns_t::before {
  content: "\f099";
}

#bo_v.pb-view-skin #bo_v_sns .sns_k::before {
  content: "\f0c1";
  color: #111;
}

#bo_v.pb-view-skin #bo_v_sns .sns_g::before {
  content: "\f0c1";
}

/* 추천·비추천 배경 영역의 전체 높이와 내부 상하 여백을 조절. */
#bo_v.pb-view-skin .pb-view-recommend,
#bo_v.pb-view-skin #bo_v_act {
  display: flex;
  width: calc(100% + 0px) !important;
  max-width: calc(100% + 0px) !important;
  justify-content: center;
  align-items: center;
  min-height: 88px;
  margin: 60px 0 0 !important;
  padding: 12px 18px !important;
  border-radius: 12px;
  background: #fafafa;
  text-align: center;
}

#bo_v.pb-view-skin .bo_v_act_gng {
  position: relative;
}

#bo_v.pb-view-skin .bo_v_good,
#bo_v.pb-view-skin .bo_v_nogood {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 104px;
  height: 44px;
  margin: 0 4px !important;
  padding: 0 17px !important;
  border: 1px solid #dfe3ea !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #4f5967 !important;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}

#bo_v.pb-view-skin .bo_v_good:hover,
#bo_v.pb-view-skin .bo_v_nogood:hover {
  border-color: #9f37f4 !important;
  color: #8e22ec !important;
}

#bo_v.pb-view-skin .bo_v_good i,
#bo_v.pb-view-skin .bo_v_nogood i {
  margin: 0 !important;
  font-size: 15px !important;
}

#bo_v.pb-view-skin #bo_v_act_good,
#bo_v.pb-view-skin #bo_v_act_nogood {
  top: 52px !important;
  left: 50% !important;
  width: max-content !important;
  min-width: 150px;
  padding: 9px 12px !important;
  border-radius: 8px;
  background: #262a31 !important;
  color: #fff;
  transform: translateX(-50%);
}

/* 첨부파일과 관련링크는 본문 아래의 단정한 정보 카드로 표시. */
#bo_v.pb-view-skin .pb-view-resource {
  margin: 30px 0 0;
  padding: 0;
}

#bo_v.pb-view-skin .pb-view-resource h2 {
  margin: 0 0 10px;
  color: #313946;
  font-size: 14px;
  font-weight: 800;
}

#bo_v.pb-view-skin #bo_v_file ul,
#bo_v.pb-view-skin #bo_v_link ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}

#bo_v.pb-view-skin #bo_v_file li,
#bo_v.pb-view-skin #bo_v_link li {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 4px 10px;
  margin: 0 0 8px !important;
  padding: 14px 16px !important;
  border: 1px solid #e8eaf0 !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}

#bo_v.pb-view-skin #bo_v_file li>i,
#bo_v.pb-view-skin #bo_v_link li>i {
  grid-row: span 2;
  float: none !important;
  margin: 2px 0 0 !important;
  color: #9a3af5 !important;
  font-size: 17px !important;
}

#bo_v.pb-view-skin #bo_v_file li a,
#bo_v.pb-view-skin #bo_v_link li a {
  float: none !important;
  color: #25314a !important;
  font-size: 13px;
  text-decoration: none;
}

#bo_v.pb-view-skin .bo_v_file_cnt,
#bo_v.pb-view-skin .bo_v_link_cnt {
  grid-column: 2;
  color: #a2a9b5 !important;
  font-size: 11px;
}

/* 작성자 카드를 게시글 보기 폭 기준에 맞춤 */
#bo_v.pb-view-skin .pb-view-author-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  max-width: 1020px;
  margin: 10px auto 20px;
  padding: 28px 30px;
  border-radius: 12px;
  background: #f8f8f9;
  box-sizing: border-box;
}

#bo_v.pb-view-skin .pb-view-author-card-profile {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 14px;
}

#bo_v.pb-view-skin .pb-view-author-card-img {
  overflow: hidden;
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: #25272c;
}

#bo_v.pb-view-skin .pb-view-author-card-img img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  border-radius: 12px;
  object-fit: cover;
}

#bo_v.pb-view-skin .pb-view-author-card strong {
  display: block;
  color: #222832;
  font-size: 16px;
  font-weight: 900;
  line-height: 1.2;
}

#bo_v.pb-view-skin .pb-view-author-card p {
  margin: 7px 0 0;
  color: #667085;
  font-size: 13px;
  line-height: 1.55;
}

#bo_v.pb-view-skin .pb-view-author-posts {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid #dfe3ea;
  border-radius: 8px;
  color: #354052;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

#bo_v.pb-view-skin .pb-view-author-posts:hover {
  border-color: #a33cf3;
  color: #9423ed;
}

/* 이전글·다음글 블록도 추천 영역과 같은 984px 기준으로 가운데 정렬. */
#bo_v.pb-view-skin .bo_v_nb.pb-view-neighbor {
  margin: 0 auto !important;
  padding: 0 !important;
  border-top: 1px solid #e7e9ee;
  border-bottom: 1px solid #e7e9ee;
}

#bo_v.pb-view-skin .pb-view-neighbor li {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) 92px;
  align-items: center;
  min-height: 50px;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

#bo_v.pb-view-skin .pb-view-neighbor li+li {
  border-top: 1px solid #e7e9ee !important;
}

#bo_v.pb-view-skin .pb-view-neighbor .nb_tit {
  padding: 0 !important;
  color: #a1a8b3;
  font-size: 12px;
}

#bo_v.pb-view-skin .pb-view-neighbor a {
  overflow: hidden;
  color: #303947;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#bo_v.pb-view-skin .pb-view-neighbor .nb_date {
  color: #a8afb9;
  font-size: 12px;
  text-align: right;
}

/* 보기 하단 버튼 영역을 게시글 보기 1020px 폭 기준에 맞춤 */
#bo_v.pb-view-skin #bo_v_bot.pb-view-bottom-actions {
  display: block;
  clear: both;
  width: 100%;
  max-width: 1020px;
  margin: 28px auto 12px;
  padding: 0;
  box-sizing: border-box;
}

/* 보기 하단 버튼은 점프이 없어도 우측 정렬 유지 */
#bo_v.pb-view-skin .pb-view-bottom-actions ul {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  width: 100% !important;
  gap: 6px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  box-sizing: border-box !important;
}

#bo_v.pb-view-skin .pb-view-bottom-actions li {
  margin: 0 !important;
}

#bo_v.pb-view-skin .pb-view-bottom-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid #dfe3ea;
  border-radius: 7px;
  background: #fff;
  color: #697386;
  font-size: 13px;
  font-weight: 400;
  text-decoration: none;
}

#bo_v.pb-view-skin .pb-view-bottom-write {
  gap: 6px;
  border-color: #9d25f1;
  background: #9d25f1;
  color: #fff;
}

#bo_v.pb-view-skin .pb-view-tool {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid #dfe3ea;
  border-radius: 7px;
  background: #fff;
  color: #27314c;
  font-size: 19px;
  text-decoration: none;
  cursor: pointer;
}

#bo_v.pb-view-skin .pb-view-tool:hover {
  border-color: #a333f4;
  color: #921fec;
}

#bo_v.pb-view-skin .pb-view-tool-write {
  border-color: #9d25f1;
  background: #9d25f1;
  color: #fff;
  box-shadow: 0 12px 26px rgba(157, 37, 241, 0.22);
}

/* 댓글 목록과 등록 폼을 샘플의 분리된 영역으로 구성. */
.pb-comment-section {
  margin: 50px 0 0;
  color: #253040;
}

.pb-comment-section .cmt_btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 50px;
  margin: 0 !important;
  padding: 0 !important;
  border: 0;
  border-bottom: 1px solid #e3e6eb;
  background: transparent;
  color: #273040;
  text-align: left;
  cursor: pointer;
}

.pb-comment-section .cmt_btn .total {
  color: #2c3441;
  font-size: 15px;
  font-weight: 700;
}

.pb-comment-section .cmt_btn .total b {
  color: #2c3441;
  font-size: 15px;
  font-weight: 900;
}

.pb-comment-section .cmt_btn .total::after {
  display: none !important;
}

.pb-comment-section .cmt_btn .cmt_more {
  width: 9px;
  height: 9px;
  margin: 0 7px 0 0;
  border-right: 2px solid #adb4be;
  border-bottom: 2px solid #adb4be;
  background: none !important;
  transform: rotate(45deg) translateY(-3px);
  transition: transform 0.18s ease;
}

.pb-comment-section .cmt_btn[aria-expanded="false"] .cmt_more {
  transform: rotate(225deg) translateY(-2px);
}

.pb-comment-section #bo_vc {
  display: block;
  margin: 0;
}

.pb-comment-section #bo_vc>h2,
.pb-comment-section .bo_vc_w>h2 {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  clip: rect(0, 0, 0, 0);
}

.pb-comment-section #bo_vc_empty {
  margin: 0 !important;
  padding: 72px 0 76px !important;
  color: #a0a7b2;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
}

/* 댓글 위아래 조정. */
.pb-comment-section #bo_vc article.pb-comment-item {
  position: relative;
  display: flex;
  gap: 12px;
  margin: 0 !important;
  padding: 22px 54px 2px 0;
  border-bottom: 1px solid #edf0f3;
}

/* 대댓글 단계별 들여쓰기. */
.pb-comment-section #bo_vc article.pb-comment-item.is-reply {
  margin-left: var(--pb-comment-depth, 34px) !important;
  padding-left: 0;
  border-left: 0;
}

/* 대댓글 곡선 아이콘 위치. */
.pb-comment-section #bo_vc .pb-comment-reply-icon {
  position: absolute;
  top: 22px;
  left: -34px;
  display: block;
  width: 20px;
  height: 20px;
  color: #9aa3af;
  line-height: 0;
  pointer-events: none;
}

/* 대댓글 SVG 표시. */
.pb-comment-section #bo_vc .pb-comment-reply-icon svg {
  display: block;
  width: 20px;
  height: 20px;
  overflow: visible;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pb-comment-section #bo_vc article .pf_img {
  display: none !important;
}

.pb-comment-section #bo_vc article .pf_img img {
  display: none !important;
}

.pb-comment-section #bo_vc article .cm_wrap {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0;
  flex: 1;
}

.pb-comment-section #bo_vc article header {
  display: flex;
  align-items: center;
  gap: 8px;
  width: auto !important;
  margin: 0 0 8px;
}

/* 댓글 작성자 스타일 설정 */
.pb-comment-section .pb-comment-author,
.pb-comment-section #bo_vc .sv_member,
.pb-comment-section #bo_vc .sv_guest,
.pb-comment-section #bo_vc .member,
.pb-comment-section #bo_vc .guest {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  color: #3d3d3d;
  font-family: 'font-B', sans-serif;
  font-size: 12px;
  font-weight: 600;
}

.pb-comment-section .pb-comment-author .profile_img,
.pb-comment-section #bo_vc .sv_member .profile_img,
.pb-comment-section #bo_vc .sv_guest .profile_img,
.pb-comment-section #bo_vc .member .profile_img,
.pb-comment-section #bo_vc .guest .profile_img {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  height: 22px !important;
  margin: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  border-radius: 0 !important;
}

.pb-comment-section .pb-comment-author .profile_img img,
.pb-comment-section #bo_vc .sv_member .profile_img img,
.pb-comment-section #bo_vc .sv_guest .profile_img img,
.pb-comment-section #bo_vc .member .profile_img img,
.pb-comment-section #bo_vc .guest .profile_img img {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  max-width: 20px !important;
  max-height: 20px !important;
  border-radius: 4px !important;
  object-fit: cover !important;
}

.pb-comment-section .pb-comment-meta {
  display: inline-flex;
  gap: 7px;
  color: #a2a9b5;
  font-size: 11px;
  font-weight: 500;
}

.pb-comment-section #bo_vc .cmt_contents {
  padding: 0 !important;
  color: #566171;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.8;
}

.pb-comment-section #bo_vc .cmt_contents p {
  margin: 0 !important;
}

.pb-comment-section #bo_vc .bo_vl_opt {
  top: 20px !important;
  right: 0 !important;
}

.pb-comment-section .btn_cm_opt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #9098a5;
  cursor: pointer;
}

.pb-comment-section .btn_cm_opt:hover {
  background: #f3f4f7;
  color: #3b4350;
}

.pb-comment-section .bo_vc_act {
  top: 34px !important;
  right: 0 !important;
  width: 66px !important;
  margin: 0 !important;
  padding: 5px 0 !important;
  border: 1px solid #e1e5eb !important;
  border-radius: 8px;
  background: #fff !important;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.12);
}

.pb-comment-section .bo_vc_act::before,
.pb-comment-section .bo_vc_act::after {
  display: none !important;
}

.pb-comment-section .bo_vc_act li {
  border: 0 !important;
}

.pb-comment-section .bo_vc_act li a {
  display: block !important;
  padding: 7px 10px !important;
  color: #596273;
  font-size: 12px;
  text-align: center;
}

.pb-comment-section .bo_vc_act li a:hover {
  background: #f5f2ff;
  color: #9227ea;
}

/* 기본 댓글 입력창 여백. */
.pb-comment-section .pb-comment-body>#bo_vc_w {
  position: relative;
  display: block;
  width: 1020px !important;
  max-width: 100% !important;
  margin: 34px auto 30px !important;
  padding: 0 !important;
}

/* 댓글 폼은 외곽선만 담당하고 실제 배경색 전환은 compose 영역에서만 처리. */
.pb-comment-section #fviewcomment {
  overflow: hidden;
  border: 1px solid #d9dee6;
  border-radius: 8px;
  background: #ffffff;
}

/* 한 줄 답변 안내. */
.pb-comment-section #bo_vc .pb-comment-quick-reply {
  height: 32px;
  margin: 2px 0 4px;
}

/* 한 줄 답변 배경 */
.pb-comment-section #bo_vc .pb-comment-quick-reply-button {
  display: flex;
  align-items: center;
  width: 100%;
  height: 32px;
  padding: 0 2px;
  border: 0;
  background: transparent;
  color: #9aa4b5;
  font-family: inherit;
  font-size: 12px;
  line-height: 22px;
  text-align: left;
  cursor: text;
  box-sizing: border-box;
}

.pb-comment-section #bo_vc .pb-comment-quick-reply-button:hover,
.pb-comment-section #bo_vc .pb-comment-quick-reply-button:focus {
  color: #697386;
  outline: 0;
}

/* 열린 답변 안내 숨김. */
.pb-comment-section #bo_vc article.pb-comment-item.is-quick-reply-open .pb-comment-quick-reply {
  display: none;
}

/* 한 줄 답변 폼 위치. */
.pb-comment-section #bo_vc .pb-comment-reply-form-slot {
  display: block;
  width: 100% !important;
  max-width: none !important;
  min-height: 32px;
  margin: 2px 0 4px !important;
  padding: 0 !important;
}

/* 댓글 수정 폼 위치. */
.pb-comment-section #bo_vc .pb-comment-edit-form-slot {
  display: block;
  width: 100% !important;
  max-width: none !important;
  margin: 6px 0 14px !important;
  padding: 0 !important;
}

.pb-comment-section #bo_vc .pb-comment-reply-form-slot:empty,
.pb-comment-section #bo_vc .pb-comment-edit-form-slot:empty {
  display: none;
  min-height: 0;
  margin: 0 !important;
}

/* 한 줄 답변 폼. */
.pb-comment-section #fviewcomment.pb-comment-quick-form {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

/* 한 줄 답변 입력 배치. */
.pb-comment-section #fviewcomment.pb-comment-quick-form .pb-comment-compose {
  display: block;
  background: transparent;
}

.pb-comment-section #fviewcomment.pb-comment-quick-form .pb-comment-emoji-toolbar,
.pb-comment-section #fviewcomment.pb-comment-quick-form .pb-comment-dropzone,
.pb-comment-section #fviewcomment.pb-comment-quick-form .pb-comment-point-guide,
.pb-comment-section #fviewcomment.pb-comment-quick-form .secret_cm,
.pb-comment-section #fviewcomment.pb-comment-quick-form .bo_vc_w_info {
  display: none !important;
}

/* 한 줄 답변 입력 크기. */
.pb-comment-section #fviewcomment.pb-comment-quick-form .pb-comment-editor {
  min-width: 0;
  height: 32px;
  border: 0;
}

.pb-comment-section #fviewcomment.pb-comment-quick-form .pb-comment-content {
  min-height: 32px;
  max-height: 32px;
  padding: 5px 2px;
  overflow-x: auto;
  overflow-y: hidden;
  font-family: inherit;
  font-size: 12px;
  line-height: 22px;
  white-space: nowrap;
}

.pb-comment-section #fviewcomment.pb-comment-quick-form .pb-comment-upload-list:empty {
  display: none;
}

.pb-comment-section #fviewcomment.pb-comment-quick-form .pb-comment-upload-list:not(:empty) {
  grid-column: 1 / -1;
}

/* 한 줄 답변 하단 메뉴 숨김. */
.pb-comment-section #fviewcomment.pb-comment-quick-form .bo_vc_w_wr {
  display: none;
}

/* 실제 입력영역은 compose 배경을 그대로 사용하고 자체 배경색은 지정하지 않음. */
.pb-comment-section .pb-comment-editor {
  position: relative;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.pb-comment-section .pb-comment-editor #char_cnt {
  position: absolute;
  top: 17px;
  right: 18px;
  z-index: 1;
  margin: 0 !important;
  color: #9da5b0;
  font-size: 11px;
  font-weight: 700;
}

.pb-comment-section .pb-comment-editor textarea {
  display: block;
  width: 100% !important;
  height: 145px !important;
  margin: 0 !important;
  padding: 18px 18px 38px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #2c3441;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.7;
  resize: vertical;
}

.pb-comment-section .pb-comment-editor textarea:focus {
  outline: 0;
}

.pb-comment-section .pb-comment-content:empty::before {
  color: #9aa4b5;
  content: attr(data-placeholder);
  pointer-events: none;
}

.pb-comment-section .pb-comment-inline-emoji {
  display: inline-block;
  width: auto;
  max-width: 72px;
  height: auto;
  max-height: 72px;
  margin: 0 2px;
  vertical-align: middle;
  user-select: none;
}

/* 실제 저장용 textarea는 화면에 표시하지 않음. */
.pb-comment-section #wr_content[hidden] {
  display: none !important;
}

/* 이모티콘 줄과 댓글 입력창의 배경색을 한 곳에서 즉시 함께 전환. */
.pb-comment-section .pb-comment-compose {
  background: #fafaf5;
}

/* 댓글 입력영역에 포커스가 생기면 전체 영역을 즉시 흰색으로 변경. */
.pb-comment-section .pb-comment-compose:focus-within {
  background: #ffffff;
}

/* 이모티콘 줄은 상위 묶음의 배경색을 그대로 사용. */
.pb-comment-section .pb-comment-emoji-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 42px;
  padding: 6px 14px 2px;
  border: 0;
  background: transparent;
}

/* 실제 댓글 입력영역도 상위 묶음의 배경색을 그대로 사용. */
.pb-comment-section .pb-comment-content {
  min-height: 130px;
  padding: 18px 20px;
  border: 0;
  background: transparent;
  color: #122348;
  font-family: font-B, Pretendard, "Noto Sans KR", sans-serif;
  font-size: 14px;
  line-height: 1.75;
  outline: 0;
  white-space: pre-wrap;
  word-break: break-word;
  box-sizing: border-box;
}

/* 비어 있을 때만 안내문구를 표시. */
.pb-comment-section .pb-comment-content:empty::before {
  color: #9aa4b5;
  content: attr(data-placeholder);
  pointer-events: none;
}

/* 포커스 시 배경색은 상위 묶음이 담당하므로 outline만 제거. */
.pb-comment-section .pb-comment-content:focus {
  outline: 0;
}

/* 댓글 글자수는 이모티콘 줄 오른쪽 끝에 작고 깔끔하게 표시. */
.pb-comment-char-count {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  margin-left: auto;
  color: #8c86a5;
  font-family: "font-B", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
}

/* 댓글 이모티콘 버튼은 테두리 없이 하단 포인트만 표시. */
.pb-comment-section .pb-comment-emoji-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
  padding: 0 8px;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: #7d21dc;
  font-family: "font-B", sans-serif;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

/* 활성 또는 마우스오버 때만 아래 보라색 선을 표시. */
.pb-comment-section .pb-comment-emoji-button:hover,
.pb-comment-section .pb-comment-emoji-button.is-active {
  border-bottom-color: #9825ef;
  background: transparent;
  color: #9825ef;
}

.pb-comment-section .pb-comment-emoji-button i {
  font-size: 15px;
}

.pb-comment-emoji-picker {
  position: absolute;
  z-index: 10050;
  width: min(440px, calc(100vw - 20px));
  overflow: hidden;
  border: 1px solid #dfe4ee;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 16px 38px rgba(21, 37, 70, 0.18);
  font-family: "font-B", sans-serif;
}

.pb-comment-emoji-tabs {
  display: flex;
  overflow-x: auto;
  border-bottom: 1px solid #edf0f5;
  background: #f8f9fc;
}

.pb-comment-emoji-tab {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 0 13px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #697386;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.pb-comment-emoji-tab:hover,
.pb-comment-emoji-tab:focus {
  color: #7e1dd9;
  outline: 0;
}

.pb-comment-emoji-tab.is-active {
  border-bottom-color: #9825ef;
  background: #ffffff;
  color: #9825ef;
}

.pb-comment-emoji-grid {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 6px;
  min-height: 112px;
  max-height: 300px;
  padding: 11px;
  overflow-y: auto;
  background: #ffffff;
}

.pb-comment-emoji-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 1 / 1;
  min-width: 0;
  padding: 3px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  cursor: pointer;
}

.pb-comment-emoji-text-item {
  font-size: 22px;
  line-height: 1;
}

/* 댓글 이모티콘 메뉴에서 기본 스티커와 콤콤은 원본 20x20px 크기로 표시. */
.pb-comment-emoji-image-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.pb-comment-emoji-image-item img[src*="/emoji/default/"],
.pb-comment-emoji-image-item img[src*="/emoji/comcom/"] {
  width: 20px;
  max-width: 20px;
  height: 20px;
  max-height: 20px;
  object-fit: initial;
}

.pb-comment-emoji-item:hover,
.pb-comment-emoji-item:focus {
  background: #f4edff;
  outline: 0;
}

.pb-comment-emoji-loading,
.pb-comment-emoji-empty {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 86px;
  color: #8b94a3;
  font-size: 12px;
  text-align: center;
}

#bo_v.pb-view-skin .pb-comment-emoji-image {
  display: inline-block;
  width: auto;
  max-width: 110px;
  height: auto;
  max-height: 110px;
  margin: 0 2px;
  vertical-align: middle;
}

@media (max-width: 520px) {
  .pb-comment-emoji-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}

.pb-comment-section .pb-comment-dropzone {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 98px;
  border-top: 1px dashed #e5e7eb;
  border-bottom: 1px dashed #e5e7eb;
  background: #fff;
  color: #8b94a3;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
}

.pb-comment-section .bo_vc_w_wr {
  border: 0;
  border-radius: 0;
  background: #fff;
}

.pb-comment-section .bo_vc_w_info {
  float: none !important;
  margin: 0 !important;
  padding: 12px 18px;
  border-bottom: 1px dashed #e6e8ed;
}

.pb-comment-section .bo_vc_w_info::after,
.pb-comment-section .pb-comment-submit-row::after {
  display: block;
  clear: both;
  content: "";
}

.pb-comment-section .bo_vc_w_info .frm_input {
  float: none !important;
  width: 140px;
  height: 34px;
  margin: 0 6px 0 0 !important;
  padding: 0 10px;
  border: 1px solid #dfe3ea;
  border-radius: 6px;
  font-size: 12px;
}

.pb-comment-section .pb-comment-submit-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 70px;
  padding: 0 14px 0 20px;
}

/* 댓글을 작성하시면 oo를 드려요! */
.pb-comment-section .pb-comment-point-guide {
  color: #838b98;
  font-size: 13px;
  font-weight: 500;
}

/* 댓글 작성 OP만 */
.pb-comment-section .pb-comment-point-guide b {
  color: #9825ef;
  font-weight: 900;
}

.pb-comment-section .btn_confirm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 40px;
  clear: none !important;
  margin: 0 !important;
  margin-left: auto !important;
  line-height: 1;
}

.pb-comment-section .secret_cm {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  height: 40px;
  float: none !important;
  line-height: 1;
}

.pb-comment-section .secret_cm::before {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 8px;
  color: #c2c6ce;
  font-family: FontAwesome;
  font-size: 12px;
  line-height: 1;
  content: "\f023";
}

.pb-comment-section .bo_vc_w .btn_confirm .secret_cm .pb-comment-secret-label {
  margin: 10 !important;
  padding: 4px 0 4px 30px !important;
  position: relative;
  display: inherit !important;
  color: #000;
  border-radius: 3px;
  font-family: "font-R", sans-serif;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 30px !important;
  text-align: center;
  vertical-align: middle;
  word-break: keep-all !important;
  cursor: pointer;
}

.pb-comment-section .bo_vc_w .btn_confirm .secret_cm .pb-comment-secret-label span {
  top: 50% !important;
  left: 0 !important;
  width: 20px !important;
  height: 20px !important;
  margin-top: -10px;
  border-radius: 5px !important;
}

/* 게시판 보기 댓글 */
.pb-comment-section .btn_submit {
  min-width: 102px;
  height: 40px !important;
  padding: 0 16px !important;
  border: 0 !important;
  border-radius: 7px !important;
  background: #9825ef !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 500;
  line-height: 1;
}

.pb-comment-section .btn_submit:hover {
  background: #7f16dd !important;
}

/* 글쓰기 화면에도 font-B와 동일한 버튼·입력 톤을 적용. */
#bo_w {
  color: #253040;
}

#bo_w .write_div,
#bo_w .bo_w_info,
#bo_w .bo_w_select {
  font-family: "font-B", sans-serif;
}

#bo_w .frm_input,
#bo_w select,
#bo_w textarea {
  border-color: #d9dee6;
  border-radius: 8px;
  font-family: "font-B", sans-serif;
}

#bo_w .btn_submit,
#bo_w #btn_submit {
  border-radius: 7px;
  background: #9825ef;
  font-family: "font-B", sans-serif;
}

/* 모바일에서는 우측 도구를 헤더 아래 가로 버튼으로 바꾸고, 본문 여백을 줄. */
@media (max-width: 768px) {

  #bo_v.pb-view-skin .pb-view-head {
    padding: 0 0 20px !important;
  }

  #bo_v.pb-view-skin .pb-view-board-label {
    margin-bottom: 18px;
    font-size: 12px;
  }

  #bo_v.pb-view-skin #bo_v_title .bo_v_tit {
    font-size: 25px !important;
    line-height: 1.38;
    letter-spacing: -1.2px;
  }

  #bo_v.pb-view-skin #bo_v_info.pb-view-meta {
    align-items: flex-start;
    gap: 12px;
  }

  #bo_v.pb-view-skin .pb-view-stat {
    gap: 8px;
    font-size: 11px;
  }

  #bo_v.pb-view-skin .pb-view-side-tools {
    position: static;
    flex-direction: row;
    justify-content: flex-end;
    margin: 16px 0 0;
  }

  #bo_v.pb-view-skin .pb-view-tool {
    width: 40px;
    height: 40px;
    font-size: 16px;
  }

  #bo_v.pb-view-skin #bo_v_con {
    font-size: 15px;
    line-height: 1.9;
  }

  #bo_v.pb-view-skin .pb-view-author-card {
    align-items: flex-start;
    flex-direction: column;
    padding: 22px;
  }

  #bo_v.pb-view-skin .pb-view-author-posts {
    width: 100%;
  }

  #bo_v.pb-view-skin .pb-view-neighbor li {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 0 8px;
    padding: 10px 0 !important;
  }

  #bo_v.pb-view-skin .pb-view-neighbor .nb_date {
    grid-column: 2;
    margin-top: 4px;
    text-align: left;
  }

  #bo_v.pb-view-skin .pb-view-bottom-actions ul {
    justify-content: stretch;
  }

  #bo_v.pb-view-skin .pb-view-bottom-actions li {
    flex: 1;
  }

  #bo_v.pb-view-skin .pb-view-bottom-btn {
    width: 100%;
    padding: 0 8px;
  }

  .pb-comment-section #bo_vc article.pb-comment-item {
    padding-right: 38px;
  }

  /* 모바일 대댓글 단계별 들여쓰기. */
  .pb-comment-section #bo_vc article.pb-comment-item.is-reply {
    margin-left: var(--pb-comment-depth, 34px) !important;
  }

  .pb-comment-section .pb-comment-submit-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
    padding: 14px;
  }

  .pb-comment-section .btn_confirm {
    width: 100%;
    justify-content: space-between;
  }

  .pb-comment-section .btn_submit {
    flex: 1;
  }
}

/* 게시글 보기 화면 폭. */
#bo_v.pb-view-skin {
  display: block;
  width: 100%;
  max-width: 1020px;
  min-width: 0;
  margin-right: auto;
  margin-left: auto;
  padding: 0;
  box-sizing: border-box;
}

/* 보기 내부 주요 영역을 부모 1020px 폭 안에서 꽉 차게 맞춤 */
#bo_v.pb-view-skin .pb-view-head,
#bo_v.pb-view-skin .pb-view-content,
#bo_v.pb-view-skin #bo_v_atc.pb-view-content,
#bo_v.pb-view-skin .pb-view-resource,
#bo_v.pb-view-skin .pb-view-author-card,
#bo_v.pb-view-skin .pb-view-neighbor,
#bo_v.pb-view-skin .pb-view-bottom-actions,
#bo_v.pb-view-skin .pb-view-recommend,
#bo_v.pb-view-skin .pb-comment-section,
#bo_v.pb-view-skin #bo_vc,
#bo_v.pb-view-skin #bo_vc_w {
  width: 100%;
  max-width: 1020px;
  margin-right: auto;
  margin-left: auto;
  box-sizing: border-box;
}

/* 댓글 섹션 안쪽 본문·댓글목록·댓글작성폼은 부모 폭을 그대로 사용. */
#bo_v.pb-view-skin .pb-comment-section .pb-comment-body,
#bo_v.pb-view-skin .pb-comment-section #bo_vc,
#bo_v.pb-view-skin .pb-comment-section #bo_vc_w {
  width: 100% !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
  box-sizing: border-box !important;
}

@media (max-width: 768px) {

  /* 모바일 보기 화면을 목록과 같은 폭으로 표시. */
  #bo_v.pb-view-skin {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  /* 모바일에서는 모든 보기 영역이 부모 폭을 넘지 않게 100% 폭으로 정리. */
  #bo_v.pb-view-skin .pb-view-head,
  #bo_v.pb-view-skin .pb-view-content,
  #bo_v.pb-view-skin #bo_v_atc.pb-view-content,
  #bo_v.pb-view-skin .pb-view-resource,
  #bo_v.pb-view-skin .pb-view-author-card,
  #bo_v.pb-view-skin .pb-view-neighbor,
  #bo_v.pb-view-skin .pb-view-bottom-actions,
  #bo_v.pb-view-skin .pb-view-recommend,
  #bo_v.pb-view-skin .pb-comment-section,
  #bo_v.pb-view-skin #bo_vc,
  #bo_v.pb-view-skin #bo_vc_w {
    width: 100% !important;
    max-width: none !important;
  }

  /* 모바일 댓글 내부도 추가 좌우 여백 없이 부모 폭을 그대로 사용. */
  #bo_v.pb-view-skin .pb-comment-section .pb-comment-body,
  #bo_v.pb-view-skin .pb-comment-section #bo_vc,
  #bo_v.pb-view-skin .pb-comment-section #bo_vc_w {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
}

/* 게시글 보기 제목과 작성자 정보는 PBuilder 전용 font-B 서체로 통일. */
#bo_v.pb-view-skin .pb-view-head,
#bo_v.pb-view-skin .pb-view-head *:not(.fa) {
  font-family: "font-B", sans-serif !important;
}

/* 게시글 제목을 30px로 고정하고, 긴 제목도 자연스럽게 줄바꿈. */
#bo_v.pb-view-skin .pb-view-head #bo_v_title,
#bo_v.pb-view-skin .pb-view-head #bo_v_title .bo_v_tit {
  margin: 0 !important;
  color: #101828 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 30px !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
  letter-spacing: -1.4px !important;
  word-break: keep-all !important;
}

/* 상단 작성자 줄은 12px로 통일하고, 아이콘과 텍스트를 세로 중앙에 맞춤. */
#bo_v.pb-view-skin .pb-view-meta .profile_info {
  display: inline-flex !important;
  align-items: center !important;
  float: none !important;
  margin: 0 !important;
}

#bo_v.pb-view-skin .pb-view-meta .profile_info_ct {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  float: none !important;
  padding: 0 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 12px !important;
  line-height: 22px !important;
}

/* 게시글 보기 닉네임 */
#bo_v.pb-view-skin .pb-view-author {
  color: #344054 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 12px !important;
  font-weight: 300 !important;
}

#bo_v.pb-view-skin .pb-view-ip,
#bo_v.pb-view-skin .pb-view-date {
  color: #98a2b3 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
}

/* Font Awesome 아이콘에 font-B가 적용되어 깨지는 문제를 막습니다. */
#bo_v.pb-view-skin i.fa,
#bo_v.pb-view-skin .fa {
  font-family: FontAwesome !important;
  font-style: normal !important;
}

/* 게시판 보기 스킨 우측 도구 버튼 */
#bo_v.pb-view-skin .pb-view-side-tools {
  position: fixed !important;
  z-index: 100 !important;
  top: 180px !important;
  right: max(80px, calc(50% - (1020px / 2) - 80px)) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
}

#bo_v.pb-view-skin .pb-view-tool {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  height: 44px !important;
  padding: 0 !important;
  border: 1px solid #dbe2ee !important;
  border-radius: 8px !important;
  background: #ffffff !important;
  color: #172033 !important;
  font-family: "font-B", sans-serif !important;
  text-decoration: none !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

#bo_v.pb-view-skin .pb-view-tool>.fa {
  color: #172033 !important;
  font-family: FontAwesome !important;
  font-size: 18px !important;
  line-height: 1 !important;
}

/* 글등록 버튼만 보라색 배경으로 강조. */
#bo_v.pb-view-skin .pb-view-tool.pb-view-tool-write {
  border-color: #9823f5 !important;
  background: #9823f5 !important;
  color: #ffffff !important;
}

#bo_v.pb-view-skin .pb-view-tool.pb-view-tool-write>.fa {
  color: #ffffff !important;
}

/* 게시글 보기 우측 아이콘에 마우스를 올리면 오른쪽에서 부드럽게 나타나는 툴팁. */
/* 게시글 보기 우측 고정 아이콘 툴팁 */
#bo_v.pb-view-skin .pb-view-tool[title]::after {
  position: absolute !important;
  top: 50% !important;
  left: calc(100% + 10px) !important;
  z-index: 1000 !important;
  padding: 7px 10px !important;
  border: 1px solid rgba(15, 23, 42, 0.08) !important;
  border-radius: 7px !important;
  background: rgba(25, 32, 46, 0.96) !important;
  color: #ffffff !important;
  content: attr(title) !important;
  font-family: "font-B", sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  pointer-events: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.2) !important;
  transform: translate(-6px, -50%) !important;
  transition:
    opacity 0.16s ease,
    transform 0.16s ease,
    visibility 0.16s ease !important;
}

/* 툴팁 왼쪽의 작은 말풍선 꼬리. */
#bo_v.pb-view-skin .pb-view-tool[title]::before {
  position: absolute !important;
  top: 50% !important;
  left: calc(100% + 5px) !important;
  z-index: 1001 !important;
  width: 9px !important;
  height: 9px !important;
  background: rgba(25, 32, 46, 0.96) !important;
  content: "" !important;
  pointer-events: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translate(-6px, -50%) rotate(45deg) !important;
  transition:
    opacity 0.16s ease,
    transform 0.16s ease,
    visibility 0.16s ease !important;
}

/* 마우스 또는 키보드 포커스가 올라오면 툴팁을 표시. */
#bo_v.pb-view-skin .pb-view-tool[title]:hover::after,
#bo_v.pb-view-skin .pb-view-tool[title]:focus-visible::after {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translate(0, -50%) !important;
}

#bo_v.pb-view-skin .pb-view-tool[title]:hover::before,
#bo_v.pb-view-skin .pb-view-tool[title]:focus-visible::before {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translate(0, -50%) rotate(45deg) !important;
}

/* 모바일에서는 본문을 가리지 않도록 우측 고정 도구를 일반 흐름 버튼으로 바꿉니다. */
@media (max-width: 768px) {
  #bo_v.pb-view-skin .pb-view-side-tools {
    position: static !important;
    flex-direction: row !important;
    justify-content: flex-end !important;
    margin: 0 0 18px !important;
  }

  #bo_v.pb-view-skin .pb-view-tool {
    width: 42px !important;
    height: 42px !important;
  }

  #bo_v.pb-view-skin .pb-view-head #bo_v_title,
  #bo_v.pb-view-skin .pb-view-head #bo_v_title .bo_v_tit {
    font-size: 25px !important;
  }
}

/* 목록 스킨과 동일한 기본 회원 프로필 아이콘을 게시글 보기에도 표시. */
#bo_v.pb-view-skin .pb-view-profile-info .pb-view-author .profile_img {
  display: inline-flex !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 7px 0 0 !important;
  vertical-align: middle !important;
}

#bo_v.pb-view-skin .pb-view-profile-info .pb-view-author .profile_img img {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 6px !important;
  object-fit: cover !important;
}

/* 기본 보기 스킨의 profile_img 숨김 규칙보다 우선하여 회원 아이콘을 보이게 . */
#bo_v.pb-view-skin #bo_v_info .profile_img {
  display: inline-flex !important;
}

/* 게시글 보기 화면의 회원 메뉴는 닉네임 클릭 전까지 숨김.
 * 목록 스킨과 같은 회원 아이콘·닉네임 구조를 유지하고,
 * 메뉴 열림 상태는 view.skin.php의 pb-view-sv-open 클래스로만 제어.
 */
#bo_v.pb-view-skin .pb-view-profile-info .sv_wrap {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
}

/* 목록과 동일한 사이트 회원 아이콘을 22x22px로 표시. */
#bo_v.pb-view-skin .pb-view-profile-info .sv_wrap .profile_img {
  display: inline-flex !important;
  width: 22px !important;
  height: 22px !important;
  margin: 0 7px 0 0 !important;
  vertical-align: middle !important;
}

#bo_v.pb-view-skin .pb-view-profile-info .sv_wrap .profile_img img {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  border-radius: 6px !important;
  object-fit: cover !important;
}

/* 닉네임과 회원 아이콘을 하나의 클릭 영역으로 정렬. */
#bo_v.pb-view-skin .pb-view-profile-info .sv_wrap .sv_member,
#bo_v.pb-view-skin .pb-view-profile-info .sv_wrap .sv_guest {
  display: inline-flex !important;
  align-items: center !important;
  color: #344054 !important;
  font-family: "font-R", sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 22px !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

/* 회원 메뉴는 기본적으로 절대 노출되지 않음. */
#bo_v.pb-view-skin .pb-view-profile-info .sv_wrap .sv {
  position: absolute !important;
  z-index: 10000 !important;
  top: calc(100% + 8px) !important;
  left: 0 !important;
  display: none !important;
  min-width: 128px !important;
  margin: 0 !important;
  padding: 5px 0 !important;
  border: 0 !important;
  border-radius: 6px !important;
  background: #2d2d2d !important;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.22) !important;
  white-space: nowrap !important;
}

/* 닉네임을 클릭한 경우에만 JavaScript가 이 클래스를 붙여 메뉴를 표시. */
#bo_v.pb-view-skin .pb-view-profile-info .sv_wrap .sv.pb-view-sv-open {
  display: block !important;
}

/* 회원 메뉴 위쪽 화살표. */
#bo_v.pb-view-skin .pb-view-profile-info .sv_wrap .sv::before {
  position: absolute !important;
  top: -6px !important;
  left: 18px !important;
  width: 12px !important;
  height: 12px !important;
  background: #2d2d2d !important;
  content: "" !important;
  transform: rotate(45deg) !important;
}

/* 메뉴 안의 미니홈, 쪽지, 자기소개 등의 항목 스타일. */
#bo_v.pb-view-skin .pb-view-profile-info .sv_wrap .sv a {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  padding: 8px 12px !important;
  border: 0 !important;
  background: transparent !important;
  color: #ffffff !important;
  font-family: "font-B", sans-serif !important;
  font-size: 12px !important;
  font-weight: 100 !important;
  line-height: 1.2 !important;
  text-align: left !important;
  text-decoration: none !important;
}

#bo_v.pb-view-skin .pb-view-profile-info .sv_wrap .sv a:hover,
#bo_v.pb-view-skin .pb-view-profile-info .sv_wrap .sv a:focus {
  background: #424242 !important;
  color: #ffffff !important;
}

/* 작성자·조회·댓글은 왼쪽에 배치하고, 수정 메뉴만 오른쪽 끝에 둡니다. */
#bo_v.pb-view-skin .pb-view-meta {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100% !important;
  gap: 14px !important;
}

/* 조회·댓글은 수정 메뉴가 있으면 그 바로 왼쪽에, 메뉴가 없으면 화면 우측에 붙습니다. */
#bo_v.pb-view-skin .pb-view-stat {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 14px !important;
  margin-left: auto !important;
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  text-align: right !important;
}

/* 왼쪽 작성자 영역 */
#bo_v.pb-view-skin .pb-view-meta .profile_info,
#bo_v.pb-view-skin .pb-view-meta .pb-view-profile-info {
  display: inline-flex !important;
  align-items: center !important;
  flex: 0 1 auto !important;
  min-width: 0 !important;
}

/* 닉네임, IP, 날짜를 한 줄로 정렬 */
#bo_v.pb-view-skin .pb-view-meta .profile_info_ct {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-width: 0 !important;
}

/* 조회수/댓글 링크와 글자를 한 줄로 정리 */
#bo_v.pb-view-skin .pb-view-stat span,
#bo_v.pb-view-skin .pb-view-stat a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  color: #172b5b !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

/* 작성자 아이콘·닉네임·IP·날짜의 세로 위치를 22px 기준으로 맞춤. */
#bo_v.pb-view-skin .pb-view-profile-info .profile_info_ct {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 22px !important;
  line-height: 22px !important;
}

#bo_v.pb-view-skin .pb-view-profile-info .pb-view-author,
#bo_v.pb-view-skin .pb-view-profile-info .pb-view-author .sv_wrap,
#bo_v.pb-view-skin .pb-view-profile-info .pb-view-author .sv_member,
#bo_v.pb-view-skin .pb-view-profile-info .pb-view-author .sv_guest {
  display: inline-flex !important;
  align-items: center !important;
  height: 22px !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle !important;
  font-family: 'font-B', sans-serif;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 22px !important;
}

/* font-R의 기준선 차이로 닉네임만 아래로 밀리는 현상을 1px 보정. */
#bo_v.pb-view-skin .pb-view-profile-info .pb-view-author .sv_member,
#bo_v.pb-view-skin .pb-view-profile-info .pb-view-author .sv_guest {
  transform: translateY(-1px) !important;
}

/* 게시글 보기 화면에서 새글 유지시간 안의 글만 표시하는 초록색 배지. */
#bo_v.pb-view-skin .pb-view-new-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 18px;
  padding: 0 8px;
  border-radius: 999px;
  background: #8ad11d;
  color: #ffffff;
  font-family: "font-B", sans-serif;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  vertical-align: middle;
  white-space: nowrap;
}

/* 작성시간 상대 표시는 날짜와 같은 연한 색상으로 유지. */
#bo_v.pb-view-skin .pb-view-relative-time {
  display: inline-flex !important;
  align-items: center !important;
  color: #98a2b3 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 12px !important;
  font-weight: 300 !important;
  line-height: 22px !important;
  white-space: nowrap !important;
}

/* 댓글 닉네임 왼쪽에 목록과 동일한 기본 회원아이콘을 표시. */
#bo_v.pb-view-skin .pb-comment-section #bo_vc article .pb-comment-author {
  display: inline-flex !important;
  align-items: center !important;
  min-width: 0 !important;
}

#bo_v.pb-view-skin .pb-comment-section #bo_vc article .pb-comment-author .sv_wrap {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  min-width: 0 !important;
}

#bo_v.pb-view-skin .pb-comment-section #bo_vc article .pb-comment-author .profile_img {
  display: inline-flex !important;
  flex: 0 0 20px !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 1px 0 0 !important;
  overflow: hidden !important;
  border-radius: 6px !important;
  vertical-align: middle !important;
}

#bo_v.pb-view-skin .pb-comment-section #bo_vc article .pb-comment-author .profile_img img {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 6px !important;
  object-fit: cover !important;
}

#bo_v.pb-view-skin .pb-comment-section #bo_vc article .pb-comment-author .sv_member,
#bo_v.pb-view-skin .pb-comment-section #bo_vc article .pb-comment-author .sv_guest {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 20px !important;
  color: #28313f !important;
  font-family: "font-R", sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 10px !important;
  text-decoration: none !important;
}

/* 댓글 닉네임 안의 기본 회원아이콘을 20px 크기로 표시. */
#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author {
  display: inline-flex !important;
  align-items: center !important;
  min-width: 0 !important;
}

#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .sv_wrap {
  display: inline-flex !important;
  align-items: center !important;
  min-width: 0 !important;
}

#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .profile_img {
  display: inline-flex !important;
  flex: 0 0 20px !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 6px 0 0 !important;
  overflow: hidden !important;
  border-radius: 6px !important;
}

#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .profile_img img {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 6px !important;
  object-fit: cover !important;
}

#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .sv_member,
#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .sv_guest {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 20px !important;
  line-height: 20px !important;
}

/* 댓글 작성자의 회원 메뉴도 기본적으로 숨기고, 닉네임 클릭 시에만 펼칩니다. */
#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .sv_wrap {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
}

#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .profile_img {
  display: inline-flex !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  height: 22px !important;
  margin: 0 7px 0 0 !important;
  overflow: hidden !important;
  border-radius: 6px !important;
}

#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .profile_img img {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  border-radius: 6px !important;
  object-fit: cover !important;
}

#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .sv_member,
#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .sv_guest {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 22px !important;
  color: #344054 !important;
  font-family: "font-R", sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 22px !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

/* 댓글 회원 메뉴는 처음에는 절대 표시하지 않음. */
#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .sv_wrap .sv {
  position: absolute !important;
  z-index: 10000 !important;
  top: calc(100% + 8px) !important;
  left: 0 !important;
  display: none !important;
  min-width: 140px !important;
  margin: 0 !important;
  padding: 5px 0 !important;
  border: 0 !important;
  border-radius: 6px !important;
  background: #2d2d2d !important;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.22) !important;
  white-space: nowrap !important;
}

/* 닉네임을 클릭했을 때만 기존 스크립트가 붙이는 클래스로 메뉴를 표시. */
#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .sv_wrap .sv.pb-view-sv-open {
  display: block !important;
}

/* 댓글 회원 메뉴의 위쪽 화살표. */
#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .sv_wrap .sv::before {
  position: absolute !important;
  top: -6px !important;
  left: 18px !important;
  width: 12px !important;
  height: 12px !important;
  background: #2d2d2d !important;
  content: "" !important;
  transform: rotate(45deg) !important;
}

/* 댓글 회원 메뉴 안의 항목 디자인. */
#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .sv_wrap .sv a {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  padding: 8px 12px !important;
  background: transparent !important;
  color: #ffffff !important;
  font-family: "font-R", sans-serif !important;
  font-size: 12px !important;
  font-weight: 200 !important;
  line-height: 1.2 !important;
  text-align: left !important;
  text-decoration: none !important;
}

#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .sv_wrap .sv a:hover,
#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .sv_wrap .sv a:focus {
  background: #424242 !important;
  color: #ffffff !important;
}

/* 댓글 입력창 우측 하단의 크기 조절 핸들을 숨기고 높이를 고정. */
#bo_v.pb-view-skin .pb-comment-editor textarea {
  resize: none !important;
}

/* 댓글 드롭존은 클릭·드래그 업로드가 가능한 영역임을 보여줍니다. */
#bo_v.pb-view-skin .pb-comment-dropzone {
  position: relative;
  cursor: pointer;
  transition:
    border-color 0.18s ease,
    background-color 0.18s ease;
}

/* 실제 파일 입력창은 숨기고 드롭존 클릭으로만 열리게 . */
#bo_v.pb-view-skin .pb-comment-file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

/* 파일 선택 영역은 마우스오버와 드래그 상태에서 보라색 계열로 강조. */
#bo_v.pb-view-skin .pb-comment-dropzone:hover {
  border-color: #c991f7 !important;
  background: #fdfaff !important;
  color: #8a22df !important;
}

/* 실제 파일을 끌어오는 동안에는 호버보다 조금 더 진하게 표시. */
#bo_v.pb-view-skin .pb-comment-dropzone.is-dragover {
  border-color: #9825ef !important;
  background: #fbf6ff !important;
  color: #7f16dd !important;
}

/* 업로드가 끝난 파일 링크를 드롭존 아래에 목록으로 표시. */
#bo_v.pb-view-skin .pb-comment-upload-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

#bo_v.pb-view-skin .pb-comment-upload-item a {
  display: inline-flex;
  align-items: center;
  max-width: 280px;
  min-height: 28px;
  padding: 0 10px;
  overflow: hidden;
  border: 1px solid #e2d1fb;
  border-radius: 6px;
  background: #faf7ff;
  color: #7f16dd;
  font-family: "font-R", sans-serif;
  font-size: 12px;
  line-height: 1;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#bo_v.pb-view-skin .pb-comment-upload-item a:hover {
  border-color: #9825ef;
  background: #f3e9ff;
}

/* 댓글 작성 중 업로드한 파일은 입력창과 드롭존 사이에 카드로 표시. */
#bo_v.pb-view-skin .pb-comment-upload-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  min-height: 0;
  margin: 0;
  padding: 14px 18px;
  border-top: 1px solid #edf0f5;
  border-bottom: 1px solid #edf0f5;
  list-style: none;
  background: #ffffff;
}

#bo_v.pb-view-skin .pb-comment-upload-list:empty {
  display: none;
}

#bo_v.pb-view-skin .pb-comment-upload-item {
  display: flex;
  flex-direction: column;
  width: 94px;
  min-width: 0;
  margin: 0;
}

#bo_v.pb-view-skin .pb-comment-upload-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 94px;
  height: 62px;
  overflow: hidden;
  border: 1px solid #edf0f5;
  border-radius: 7px;
  background: #f8fafc;
  color: #98a2b3;
}

#bo_v.pb-view-skin .pb-comment-upload-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#bo_v.pb-view-skin .pb-comment-upload-preview .fa {
  font-size: 26px;
}

#bo_v.pb-view-skin .pb-comment-upload-name {
  display: block;
  margin-top: 6px;
  overflow: hidden;
  color: #475467;
  font-family: "font-R", sans-serif;
  font-size: 11px;
  line-height: 1.35;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 댓글 첨부 이미지 목록. */
#bo_v.pb-view-skin .pb-comment-attached-images {
  display: flex;
  align-items: flex-start;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 0;
}

/* 댓글 첨부 이미지. */
#bo_v.pb-view-skin .pb-comment-attached-image {
  display: block;
  width: 94px;
  height: 62px;
  overflow: hidden;
  border-radius: 7px;
  background: #f3f5f8;
  line-height: 0;
}

/* 댓글 첨부 이미지 미리보기. */
#bo_v.pb-view-skin .pb-comment-attached-image img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
}

/* 이미지 레이어 스크롤 잠금. */
body.pb-comment-image-layer-open {
  overflow: hidden;
}

/* 댓글 이미지 확대 레이어. */
.pb-comment-image-layer {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 68px 24px 24px;
  visibility: hidden;
  background: rgba(9, 15, 27, 0.88);
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 0.16s ease,
    visibility 0.16s ease;
  box-sizing: border-box;
}

/* 댓글 이미지 레이어 열림. */
.pb-comment-image-layer.is-active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

/* 댓글 확대 이미지. */
.pb-comment-image-layer-image {
  display: block;
  max-width: min(1400px, 94vw);
  max-height: calc(100vh - 96px);
  width: auto;
  height: auto;
  margin: 0;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.38);
}

/* 이미지 레이어 도구 영역. */
.pb-comment-image-layer-tools {
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 2;
  display: flex;
  align-items: center;
  background: #2b2b2b;
}

/* 이미지 레이어 도구 버튼. */
.pb-comment-image-layer-tool,
.pb-comment-image-layer-tool.pb-comment-image-layer-download:link,
.pb-comment-image-layer-tool.pb-comment-image-layer-download:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #a7aaae;
  line-height: 0;
  text-decoration: none;
  cursor: pointer;
  box-shadow: none;
  appearance: none;
}

/* 이미지 레이어 도구 SVG. */
.pb-comment-image-layer-tool svg {
  display: block;
  width: 20px;
  height: 20px;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* 이미지 레이어 도구 호버. */
.pb-comment-image-layer-tool:hover,
.pb-comment-image-layer-tool:focus,
.pb-comment-image-layer-tool.pb-comment-image-layer-download:hover,
.pb-comment-image-layer-tool.pb-comment-image-layer-download:focus,
.pb-comment-image-layer-tool.pb-comment-image-layer-download:active {
  border: 0;
  background: transparent;
  color: #e7e9ec;
  text-decoration: none;
  outline: 0;
  box-shadow: none;
}

@media (max-width: 600px) {

  /* 모바일 이미지 레이어. */
  .pb-comment-image-layer {
    padding: 58px 12px 12px;
  }

  /* 모바일 이미지 도구 영역. */
  .pb-comment-image-layer-tools {
    top: 10px;
    right: 10px;
  }

  /* 모바일 이미지 도구 버튼. */
  .pb-comment-image-layer-tool {
    width: 40px;
    height: 40px;
  }

  /* 모바일 확대 이미지. */
  .pb-comment-image-layer-image {
    max-width: 100%;
    max-height: calc(100vh - 74px);
  }
}

/* 댓글 일반 파일 목록. */
#bo_v.pb-view-skin .pb-comment-attached-files {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 5px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

/* 댓글 일반 파일 항목. */
#bo_v.pb-view-skin .pb-comment-attached-files li {
  max-width: 100%;
  margin: 0;
  padding: 0;
}

/* 댓글 첨부파일 블록. */
#bo_v.pb-view-skin .pb-comment-attached-file {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  min-height: 32px;
  gap: 5px;
  padding: 5px 10px;
  border: 0;
  border-radius: 10px;
  background: #f4f6fa;
  color: #475467;
  font-family: "font-R", sans-serif;
  font-size: 12px;
  line-height: 20px;
  text-decoration: none;
  box-sizing: border-box;
}

/* 댓글 첨부 다운로드 아이콘. */
#bo_v.pb-view-skin .pb-comment-attached-file .fa {
  flex: 0 0 auto;
  margin-right: 2px;
  margin-top: 3px;
  color: #98a2b3;
  font-size: 12px;
}

/* 댓글 첨부파일 호버. */
#bo_v.pb-view-skin .pb-comment-attached-file:hover {
  background: #eef1f6;
}

/* 댓글 일반 파일명. */
#bo_v.pb-view-skin .pb-comment-file-name {
  min-width: 0;
  overflow: hidden;
  color: #344054;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 댓글 파일 크기와 횟수. */
#bo_v.pb-view-skin .pb-comment-file-size,
#bo_v.pb-view-skin .pb-comment-file-download {
  flex: 0 0 auto;
  color: #98a2b3;
  white-space: nowrap;
}

/* 댓글 다운로드 횟수. */
#bo_v.pb-view-skin .pb-comment-file-download b {
  color: inherit;
  font-family: inherit;
}

/* 댓글 일반 파일 호버. */
#bo_v.pb-view-skin .pb-comment-attached-file:hover .pb-comment-file-name {
  color: #7d21dc;
}

/* 업로드 카드 안에서 삭제 버튼 위치를 잡기 위해 미리보기 영역을 기준점으로 사용. */
#bo_v.pb-view-skin .pb-comment-upload-preview {
  position: relative;
}

/* 업로드된 파일 우측 하단에 삭제 버튼을 표시. */
#bo_v.pb-view-skin .pb-comment-upload-delete {
  position: absolute;
  right: 4px;
  bottom: 4px;
  z-index: 2;
  min-width: 34px;
  height: 20px;
  padding: 0 8px;
  border: 0;
  border-radius: 5px;
  background: #f04438;
  color: #ffffff;
  font-family: "font-B", sans-serif;
  font-size: 11px;
  line-height: 20px;
  cursor: pointer;
}

#bo_v.pb-view-skin .pb-comment-upload-delete:hover {
  background: #d92d20;
}

/* 직접 넣는 일반 광고 배너를 게시글 보기 1020px 폭 기준에 맞춤 */
#bo_v.pb-view-skin .pb-view-inline-banner:not(.pb-banner-slot) {
  width: 100%;
  max-width: 1020px;
  height: 100px;
  margin: 30px auto 20px;
  overflow: hidden;
  border-radius: 0;
  background: #f7f8fb;
  box-sizing: border-box;
}

/* 직접 등록한 일반 광고 배너 링크만 고정 높이를 사용. */
#bo_v.pb-view-skin .pb-view-inline-banner:not(.pb-banner-slot)>a {
  display: block !important;
  width: 100% !important;
  height: 100px !important;
}

/* 직접 등록한 일반 광고 배너 이미지만 100px 높이를 적용.
   관리형 배너의 실제 크기·맞춤 방식은 관리자 설정값을 그대로 사용. */
#bo_v.pb-view-skin .pb-view-inline-banner:not(.pb-banner-slot) img {
  display: block !important;
  width: 100% !important;
  height: 100px !important;
  object-fit: cover !important;
  object-position: center !important;
}

/* 작성자 카드를 아바타 80px·회원정보·우측 기능 버튼 구조로 표시. */
#bo_v.pb-view-skin .pb-view-author-card {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  min-height: 0 !important;
  padding: 20px 30px !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: #f8f9fb !important;
  box-sizing: border-box !important;
}

/* 아바타와 회원 텍스트를 왼쪽 한 묶음으로 정렬. */
#bo_v.pb-view-skin .pb-view-author-main {
  display: flex !important;
  align-items: center !important;
  min-width: 0 !important;
  gap: 18px !important;
}

/* 회원 아바타는 80px 정사각형으로 표시. */
#bo_v.pb-view-skin .pb-view-author-card-img {
  flex: 0 0 80px !important;
  width: 80px !important;
  height: 80px !important;
  overflow: hidden !important;
  border-radius: 12px !important;
  background: #eef1f5 !important;
}

#bo_v.pb-view-skin .pb-view-author-card-img img {
  display: block !important;
  width: 80px !important;
  height: 80px !important;
  border-radius: 12px !important;
  object-fit: cover !important;
}

/* 닉네임·아이디·서명을 세로로 줄바꿈해 표시. */
#bo_v.pb-view-skin .pb-view-author-info {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  min-width: 0 !important;
}

/* 작성자 카드 닉네임 앞에는 목록과 같은 기본 회원아이콘을 22x22px로 표시. */
#bo_v.pb-view-skin .pb-view-author-name-row {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 0 !important;
}

#bo_v.pb-view-skin .pb-view-author-name-row .sv_wrap {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  min-width: 0 !important;
}

#bo_v.pb-view-skin .pb-view-author-name-row .sv_member,
#bo_v.pb-view-skin .pb-view-author-name-row .sv_guest {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  color: #273246 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  cursor: pointer !important;
}

/* get_sideview()가 출력하는 기본 회원아이콘만 22x22px로 표시. */
#bo_v.pb-view-skin .pb-view-author-name-row .profile_img {
  display: inline-flex !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  height: 22px !important;
  margin: 0 !important;
  overflow: hidden !important;
  border-radius: 5px !important;
  vertical-align: middle !important;
}

#bo_v.pb-view-skin .pb-view-author-name-row .profile_img img {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  border-radius: 5px !important;
  object-fit: cover !important;
}

/* 작성자 카드 닉네임 앞의 회원아이콘과 닉네임을 한 줄로 정렬. */
#bo_v.pb-view-skin .pb-view-author-name-row {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  min-width: 0 !important;
}

/* 닉네임 앞 회원아이콘은 20x20px 둥근 사각형으로 표시. */
#bo_v.pb-view-skin .pb-view-author-name-icon {
  display: inline-flex !important;
  flex: 0 0 20px !important;
  width: 20px !important;
  height: 20px !important;
  overflow: hidden !important;
  border-radius: 5px !important;
}

#bo_v.pb-view-skin .pb-view-author-name-icon img {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 5px !important;
  object-fit: cover !important;
}

#bo_v.pb-view-skin .pb-view-author-name {
  display: block !important;
  color: #273246 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
}

#bo_v.pb-view-skin .pb-view-author-id {
  display: block !important;
  margin-top: 3px !important;
  color: #98a2b3 !important;
  font-family: "font-R", sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
}

#bo_v.pb-view-skin .pb-view-author-signature {
  display: block !important;
  margin-top: 10px !important;
  color: #667085 !important;
  font-family: "font-R", sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}

/* 우측 미니홈·쪽지·구독 버튼을 가로로 표시. */
#bo_v.pb-view-skin .pb-view-author-actions {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex: 0 0 auto !important;
  gap: 6px !important;
}

/* 미니홈과 쪽지 아이콘 버튼. */
#bo_v.pb-view-skin .pb-view-author-action {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 50px !important;
  height: 50px !important;
  border: 1px solid #dfe3ea !important;
  border-radius: 8px !important;
  background: #ffffff !important;
  color: #151d2c !important;
  font-size: 20px !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
}

#bo_v.pb-view-skin .pb-view-author-action:hover {
  border-color: #b986f5 !important;
  color: #8f22e6 !important;
}

/* 작성자 구독 버튼 */
#bo_v.pb-view-skin .pb-view-author-subscribe {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  flex: 0 0 120px !important;
  width: 120px !important;
  min-width: 120px !important;
  max-width: 120px !important;
  height: 50px !important;
  padding: 0 10px !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  background: #9825ef !important;
  color: #ffffff !important;
  font-family: "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", Arial, sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}

/* 작성자 구독중 폰트 */
#bo_v.pb-view-skin .pb-view-author-subscribe i {
  font-size: 15px !important;
}

/* 작성자 구독중 버튼 */
#bo_v.pb-view-skin .pb-view-author-subscribe.is-active {
  border-color: transparent !important;
  background: #264461 !important;
  color: #ffffff !important;
}

/* 작성자 구독 처리중 */
#bo_v.pb-view-skin .pb-view-author-subscribe.is-loading {
  opacity: .65 !important;
  pointer-events: none !important;
}

/* 작성자 카드의 기본 영역은 50px 아바타와 닉네임·아이디 한 묶음으로 유지. */
#bo_v.pb-view-skin .pb-view-author-card {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
}

/* 인사말이 있는 카드만 하단 영역까지 자연스럽게 확장. */
#bo_v.pb-view-skin .pb-view-author-card.has-greeting {
  align-items: flex-start !important;
}

/* 왼쪽에는 아바타·회원정보와 인사말을 세로 구조로 출력. */
#bo_v.pb-view-skin .pb-view-author-left {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

/* 아바타와 닉네임·아이디를 가로로 배치. */
#bo_v.pb-view-skin .pb-view-author-main {
  display: flex !important;
  align-items: center !important;
  min-height: 50px !important;
  gap: 22px !important;
}

/* 작성자 아바타는 50x50px 둥근 사각형으로 표시. */
#bo_v.pb-view-skin .pb-view-author-card-img {
  flex: 0 0 50px !important;
  width: 50px !important;
  height: 50px !important;
  overflow: hidden !important;
  border-radius: 10px !important;
  background: #eef1f5 !important;
}

#bo_v.pb-view-skin .pb-view-author-card-img img {
  display: block !important;
  width: 50px !important;
  height: 50px !important;
  border-radius: 10px !important;
  object-fit: cover !important;
}

/* 닉네임과 아이디는 아바타 오른쪽 영역에서 세로·가로 중앙 정렬. */
#bo_v.pb-view-skin .pb-view-author-info {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 50px !important;
  min-width: 0 !important;
  text-align: center !important;
}

#bo_v.pb-view-skin .pb-view-author-name {
  display: block !important;
  color: #273246 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  white-space: nowrap !important;
}

#bo_v.pb-view-skin .pb-view-author-id {
  display: block !important;
  margin-top: 3px !important;
  color: #98a2b3 !important;
  font-family: "font-R", sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  white-space: nowrap !important;
}

/* mb_profile 인사말이 있는 회원만 카드 하단에 표시. */
#bo_v.pb-view-skin .pb-view-author-greeting {
  margin-top: 15px !important;
  color: #3ea0f0 !important;
  font-family: "font-R", sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.65 !important;
  word-break: break-word !important;
}

/* conv_content()가 문단 태그를 만들어도 불필요한 여백이 생기지 않게 . */
#bo_v.pb-view-skin .pb-view-author-greeting p {
  margin: 0 !important;
}

/* 인사말이 있는 경우 우측 버튼은 카드 상단 작성자 정보와 맞춤. */
#bo_v.pb-view-skin .pb-view-author-card.has-greeting .pb-view-author-actions {
  align-self: flex-start !important;
}

/* 작성자 카드 닉네임의 회원 메뉴는 클릭 전까지 숨김. */
#bo_v.pb-view-skin .pb-view-author-name-row .sv_wrap {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  min-width: 0 !important;
}

/* 닉네임 앞의 22x22 기본 회원아이콘은 유지. */
#bo_v.pb-view-skin .pb-view-author-name-row .profile_img {
  display: inline-flex !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  height: 22px !important;
  margin: 0 5px 0 0 !important;
  overflow: hidden !important;
  border-radius: 5px !important;
}

#bo_v.pb-view-skin .pb-view-author-name-row .profile_img img {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  border-radius: 5px !important;
  object-fit: cover !important;
}

/* 닉네임 클릭 전에는 쪽지·메일·자기소개 등의 회원 메뉴를 표시하지 않음. */
#bo_v.pb-view-skin .pb-view-author-name-row .sv_wrap .sv,
#bo_v.pb-view-skin .pb-view-author-name-row .sv_wrap:hover .sv {
  position: absolute !important;
  z-index: 10000 !important;
  top: calc(100% + 8px) !important;
  left: 0 !important;
  display: none !important;
  min-width: 140px !important;
  margin: 0 !important;
  padding: 6px 0 !important;
  border: 0 !important;
  border-radius: 7px !important;
  background: #2d2d2d !important;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.24) !important;
  white-space: nowrap !important;
}

/* 닉네임 또는 회원아이콘 클릭 시 JavaScript가 붙이는 클래스에서만 메뉴를 표시. */
#bo_v.pb-view-skin .pb-view-author-name-row .sv_wrap .sv.pb-view-sv-open {
  display: block !important;
}

/* 회원정보 툴팁 상단 화살표. */
#bo_v.pb-view-skin .pb-view-author-name-row .sv_wrap .sv::before {
  position: absolute !important;
  top: -6px !important;
  left: 16px !important;
  width: 12px !important;
  height: 12px !important;
  background: #2d2d2d !important;
  content: "" !important;
  transform: rotate(45deg) !important;
}

/* 회원 메뉴 항목을 검은색 툴팁 안에 세로로 표시. */
#bo_v.pb-view-skin .pb-view-author-name-row .sv_wrap .sv a {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  padding: 8px 13px !important;
  background: transparent !important;
  color: #ffffff !important;
  font-family: "font-R", sans-serif !important;
  font-size: 12px !important;
  font-weight: 200 !important;
  line-height: 1.35 !important;
  text-align: left !important;
  text-decoration: none !important;
}

#bo_v.pb-view-skin .pb-view-author-name-row .sv_wrap .sv a:hover {
  background: #434343 !important;
  color: #ffffff !important;
}

/* 글쓰기 화면 폭. */
#bo_w {
  width: 100%;
  max-width: 1020px;
  margin-right: auto;
  margin-left: auto;
  color: #1f2a44;
  font-family: "font-B", sans-serif;
}

/* write.skin.php에서 추가한 상단 안내영역. */
#bo_w .pb-write-head {
  margin: 0 0 28px;
}

#bo_w .pb-write-board {
  margin: 0 0 10px;
  color: #9aa3b2;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
}

#bo_w .pb-write-title {
  margin: 0;
  color: #1f2a44;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.8px;
}

/* inline width 제거 후 실제 폼 폭을 1020px에 맞춤. */
#bo_w .pb-write-form,
#bo_w #fwrite {
  width: 100% !important;
  max-width: 1020px;
  margin: 0 auto;
}

/* 전체 입력 블록 간격 */
#bo_w .write_div,
#bo_w .bo_w_info,
#bo_w .bo_w_select {
  margin: 0 0 18px;
  font-family: "font-B", sans-serif;
}

/* 공지/비밀글 옵션행 */
#bo_w .pb-write-option-row {
  margin-bottom: 14px;
}

#bo_w .bo_v_option {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#bo_w .bo_v_option li {
  float: none;
  margin: 0;
}

#bo_w .bo_v_option li label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #2a334d;
  font-size: 14px;
  font-weight: 500;
}

/* 공통 입력 디자인 */
#bo_w .frm_input,
#bo_w select,
#bo_w textarea {
  width: 100%;
  border: 1px solid #d9dee6;
  border-radius: 12px;
  background: #fff;
  color: #1f2a44;
  font-family: "font-B", sans-serif;
  font-size: 15px;
  font-weight: 400;
  box-sizing: border-box;
}

#bo_w .frm_input,
#bo_w select {
  height: 48px;
  padding: 0 18px;
}

#bo_w .frm_input::placeholder,
#bo_w textarea::placeholder {
  color: #a3adbd;
}

/* 제목 입력창과 임시저장 버튼 */
#bo_w .pb-write-subject-wrap {
  margin-bottom: 14px;
}

#bo_w .bo_w_tit #autosave_wrapper {
  position: relative;
}

#bo_w .bo_w_tit .frm_input {
  height: 48px;
  padding-right: 165px;
  border-radius: 12px;
}

#bo_w .bo_w_tit #btn_autosave {
  position: absolute;
  top: 0;
  right: 0;
  min-width: 108px;
  height: 48px;
  padding: 0 18px;
  border: 0;
  border-radius: 12px;
  background: #f2f4f8;
  color: #23304f;
  font-size: 14px;
  font-weight: 600;
  line-height: 48px;
}

/* 에디터 외곽 */
#bo_w .wr_content {
  overflow: hidden;
  border: 1px solid #d9dee6;
  border-radius: 14px;
  background: #fff;
}

/* 최소/최대 글자 안내 */
#bo_w #char_count_desc {
  margin: 0;
  padding: 14px 18px 0;
  color: #8d97a8;
  font-size: 13px;
  line-height: 1.5;
}

#bo_w #char_count_wrap {
  padding: 10px 18px 16px;
  color: #8d97a8;
  font-size: 13px;
  text-align: right;
}

/* 링크 입력칸 */
#bo_w .bo_w_link {
  margin-bottom: 12px;
}

#bo_w .bo_w_link label {
  top: 50%;
  left: 16px;
  width: 20px;
  height: 20px;
  margin-top: -10px;
  border-radius: 0;
  line-height: 20px;
  color: #98a3b7;
  font-size: 15px;
}

#bo_w .bo_w_link .frm_input {
  height: 46px;
  padding-left: 46px;
  border-radius: 12px;
}

/* 파일 업로드 영역 */
#bo_w .bo_w_flie {
  margin-bottom: 12px;
}

#bo_w .bo_w_flie .file_wr {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 46px;
  padding: 0 16px 0 46px;
  border: 1px solid #d9dee6;
  border-radius: 12px;
  background: #fff;
  box-sizing: border-box;
}

#bo_w .bo_w_flie .lb_icon {
  top: 50%;
  left: 16px;
  width: 20px;
  height: 20px;
  margin-top: -10px;
  border-radius: 0;
  line-height: 20px;
  color: #98a3b7;
  font-size: 15px;
}

#bo_w .bo_w_flie .frm_file {
  width: 100%;
  margin-top: 0;
  padding-left: 0;
  border: 0;
  background: transparent;
  font-family: "font-B", sans-serif;
  font-size: 14px;
  color: #6e7890;
}

#bo_w .bo_w_flie .frm_input {
  margin-top: 10px;
  height: 46px;
  border-radius: 12px;
}

#bo_w .bo_w_flie .file_del {
  position: static;
  display: block;
  margin-top: 8px;
  color: #8d97a8;
  font-size: 13px;
}

/* 캡차 영역 */
#bo_w #captcha {
  margin-top: 8px;
}

/* 하단 버튼 */
#bo_w .btn_confirm {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  margin-top: 28px;
}

#bo_w .btn {
  min-width: 96px;
  height: 44px;
  padding: 0 20px;
  border-radius: 10px;
  font-family: "font-B", sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 44px;
  text-align: center;
  box-sizing: border-box;
}

#bo_w .btn_cancel {
  border: 1px solid #d8deea;
  background: #fff;
  color: #5d6781;
}

#bo_w .btn_submit,
#bo_w #btn_submit {
  border: 0;
  background: #9825ef;
  color: #fff;
}

#bo_w .btn_submit:hover,
#bo_w #btn_submit:hover {
  background: #7f16dd;
}

/* 반응형 */
@media (max-width: 1100px) {
  #bo_w {
    max-width: calc(100% - 32px);
    margin-right: auto;
    margin-left: auto;
  }
}

@media (max-width: 768px) {
  #bo_w .pb-write-title {
    font-size: 26px;
  }

  #bo_w .bo_w_tit .frm_input {
    padding-right: 18px;
  }

  #bo_w .bo_w_tit #btn_autosave {
    position: static;
    width: 100%;
    margin-top: 10px;
  }

  #bo_w .btn_confirm {
    flex-wrap: wrap;
  }
}

/* 글쓰기 화면 정렬. */
#bo_w.pb-write-skin {
  width: 1020px !important;
  max-width: calc(100% - 32px) !important;
  margin-right: auto !important;
  margin-left: auto !important;
  padding: 0 !important;
  color: #1b2a4d !important;
  background: transparent !important;
}

/* 글쓰기 화면의 박스 크기 계산은 모든 요소에 유지하지만,
   Summernote 본문에서 선택한 글꼴은 덮어쓰지 않도록 font-family 강제 적용을 제거. */
#bo_w.pb-write-skin,
#bo_w.pb-write-skin * {
  box-sizing: border-box !important;
}

/* 글쓰기 화면의 기본 서체는 font-B로 유지하고,
   Summernote가 본문 선택 영역에 넣는 개별 font-family 스타일은 정상 적용되게 둡니다. */
#bo_w.pb-write-skin {
  font-family: "font-B", sans-serif;
}

/* 글쓰기 제목 영역. */
#bo_w.pb-write-skin .pb-write-heading {
  margin: 0 0 27px !important;
}

/* 글쓰기 제목. */
#bo_w.pb-write-skin .pb-write-heading h3 {
  margin: 0;
  color: #111827;
  font-family: "font-B", sans-serif;
  font-size: 15px;
  line-height: 1.3;
  letter-spacing: -1px;
}

@media (max-width: 768px) {

  /* 모바일 글쓰기 제목. */
  #bo_w.pb-write-skin .pb-write-heading h3 {
    font-size: 15px;
    letter-spacing: -.6px;
  }
}

/* 제목 입력행은 에디터 위에는 표시하되,
   스크롤 중 sticky 상단 메뉴보다 위로 올라가지 않게 유지. */
#bo_w.pb-write-skin .pb-write-subject-row {
  position: relative !important;
  z-index: 1 !important;
  margin-bottom: 12px !important;
  overflow: visible !important;
}

#bo_w.pb-write-skin .pb-write-autosave-wrap {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  min-height: 48px !important;
  margin: 0 !important;
}

#bo_w.pb-write-skin .pb-write-subject-input-wrap {
  position: relative !important;
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

#bo_w.pb-write-skin .pb-write-subject-input-wrap .frm_input {
  width: 100% !important;
  height: 48px !important;
  margin: 0 !important;
  padding: 0 34px 0 18px !important;
  border: 1px solid #d9dee8 !important;
  border-radius: 12px !important;
  line-height: 48px !important;
}

#bo_w.pb-write-skin .pb-write-required-mark {
  position: absolute !important;
  top: 50% !important;
  right: 14px !important;
  color: #ee3d4f !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  transform: translateY(-50%) !important;
}

/* 임시저장 버튼을 제목 입력칸과 같은 높이로 맞추고, 버튼 폭과 여백을 고정. */
#bo_w.pb-write-skin #btn_autosave {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 108px !important;
  width: 108px !important;
  min-width: 108px !important;
  height: 48px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: #f0f3f9 !important;
  color: #243452 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;
}

#bo_w.pb-write-skin #btn_autosave:hover {
  background: #e8edf6 !important;
}

#bo_w.pb-write-skin .pb-write-form {
  width: 100% !important;
  margin: 0 !important;
}

/* 비회원 입력칸과 분류 선택칸도 같은 둥근 입력 디자인을 사용. */
#bo_w.pb-write-skin .bo_w_info {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

#bo_w.pb-write-skin .bo_w_info .frm_input {
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
}

#bo_w.pb-write-skin .write_div,
#bo_w.pb-write-skin .bo_w_select {
  margin: 0 0 14px !important;
}

#bo_w.pb-write-skin .frm_input,
#bo_w.pb-write-skin select,
#bo_w.pb-write-skin textarea {
  width: 100% !important;
  border: 1px solid #d9dee8 !important;
  border-radius: 12px !important;
  background: #ffffff !important;
  color: #223152 !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

#bo_w.pb-write-skin .frm_input,
#bo_w.pb-write-skin select {
  height: 48px !important;
  padding: 0 18px !important;
}

#bo_w.pb-write-skin .frm_input::placeholder,
#bo_w.pb-write-skin textarea::placeholder {
  color: #9ca7ba !important;
}

/* 제목 입력과 임시저장 버튼은 한 줄에 표시. */
#bo_w.pb-write-skin .pb-write-subject-row {
  margin-bottom: 12px !important;
}

#bo_w.pb-write-skin .pb-write-autosave-wrap {
  position: relative !important;
  display: flex !important;
  align-items: stretch !important;
  gap: 10px !important;
  margin: 0 !important;
}

#bo_w.pb-write-skin .pb-write-subject-input-wrap {
  position: relative !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

#bo_w.pb-write-skin .pb-write-subject-input-wrap .frm_input {
  height: 48px !important;
  padding-right: 32px !important;
}

#bo_w.pb-write-skin .pb-write-required-mark {
  position: absolute !important;
  top: 50% !important;
  right: 14px !important;
  color: #ee3d4f !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  transform: translateY(-50%) !important;
}

#bo_w.pb-write-skin #btn_autosave {
  flex: 0 0 auto !important;
  min-width: 106px !important;
  height: 48px !important;
  margin: 0 !important;
  padding: 0 16px !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: #f0f3f9 !important;
  color: #243452 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 48px !important;
}

#bo_w.pb-write-skin #btn_autosave:hover {
  background: #e8edf6 !important;
}

/* 임시저장 목록은 버튼 바로 아래의 카드형 팝업으로 표시. */
#bo_w.pb-write-skin #autosave_pop {
  top: 58px !important;
  right: 0 !important;
  width: 300px !important;
  max-height: 260px !important;
  overflow: hidden !important;
  border: 1px solid #e3e8f0 !important;
  border-radius: 12px !important;
  background: #ffffff !important;
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.16) !important;
}

#bo_w.pb-write-skin #autosave_pop::before,
#bo_w.pb-write-skin #autosave_pop::after {
  display: none !important;
}

#bo_w.pb-write-skin #autosave_pop ul {
  max-height: 188px !important;
  margin: 0 !important;
  padding: 10px !important;
  border: 0 !important;
  background: #ffffff !important;
}

#bo_w.pb-write-skin #autosave_pop li {
  padding: 10px !important;
  border-bottom: 1px solid #edf0f5 !important;
  background: #ffffff !important;
}

#bo_w.pb-write-skin #autosave_pop div {
  display: flex !important;
  justify-content: flex-end !important;
  padding: 10px !important;
  border-top: 1px solid #edf0f5 !important;
}

#bo_w.pb-write-skin .autosave_close {
  width: 88px !important;
  height: 34px !important;
  border-radius: 8px !important;
  background: #f2f4f8 !important;
  color: #33415d !important;
  font-size: 13px !important;
}

/* 비밀글·공지 체크박스를 샘플 화면처럼 크게 정리. */
#bo_w.pb-write-skin .pb-write-option-row {
  margin-bottom: 14px !important;
}

#bo_w.pb-write-skin .bo_v_option {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 14px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

#bo_w.pb-write-skin .bo_v_option li {
  float: none !important;
  margin: 0 !important;
}

#bo_w.pb-write-skin .bo_v_option .chk_box label {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 26px !important;
  padding-left: 32px !important;
  color: #243452 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 26px !important;
}

#bo_w.pb-write-skin .bo_v_option .chk_box label span {
  top: 50% !important;
  left: 0 !important;
  float: none !important;
  width: 22px !important;
  height: 22px !important;
  margin-top: -12px !important;
  border: 1px solid #d7deea !important;
  border-radius: 7px !important;
  background-color: #ffffff !important;
}

#bo_w.pb-write-skin .bo_v_option .chk_box input[type="checkbox"]:checked+label span {
  border-color: #9825ef !important;
  background-color: #9825ef !important;
}

/* 임시저장 팝업이 에디터 툴바보다 위에 표시되도록
   에디터 행은 제목 입력행보다 한 단계 낮은 레이어로 고정. */
#bo_w.pb-write-skin .pb-write-editor-row {
  position: relative !important;
  z-index: 0 !important;
  margin-bottom: 26px !important;
}

/* 글쓰기 에디터 외곽선이 흐릿하게 보이지 않도록 모서리 둥글기를 작게 줄.
   Summernote 내부 기능과 툴바에는 영향 없이 게시판 글쓰기 카드 테두리만 선명하게 표시. */
#bo_w.pb-write-skin .pb-write-editor {
  overflow: hidden !important;
  border: 1px solid #d9dee8 !important;
  border-radius: 4px !important;
  background: #ffffff !important;
}

/* 에디터가 설정한 기본 높이를 유지하고, 500px 강제 높이는 적용하지 않음. */
#bo_w.pb-write-skin .pb-write-editor iframe {
  display: block !important;
  width: 100% !important;
  border: 0 !important;
}

/* 일반 textarea 사용 시에도 기본 높이와 사용자의 크기조절을 유지. */
#bo_w.pb-write-skin .pb-write-editor textarea {
  border: 0 !important;
  border-radius: 0 !important;
}

/* 에디터 상단의 단축키 알림 버튼과 단축키 안내 영역을 표시하지 않음. */
#bo_w.pb-write-skin .cke_sc,
#bo_w.pb-write-skin .btn_cke_sc,
#bo_w.pb-write-skin .cke_sc_def {
  display: none !important;
}

#bo_w.pb-write-skin #char_count_desc {
  margin: 0 !important;
  padding: 14px 18px 0 !important;
  color: #8f9aae !important;
  font-size: 12px !important;
}

#bo_w.pb-write-skin #char_count_wrap {
  margin: 0 !important;
  padding: 10px 18px 14px !important;
  color: #8f9aae !important;
  font-size: 12px !important;
  text-align: right !important;
}

/* 링크 입력영역과 안내문구를 정리. */
#bo_w.pb-write-skin .pb-write-field-guide {
  margin: 0 0 9px !important;
  color: #8e99ac !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
}

#bo_w.pb-write-skin .pb-write-link-row {
  position: relative !important;
  margin-bottom: 10px !important;
}

#bo_w.pb-write-skin .pb-write-link-row label {
  top: 50% !important;
  left: 16px !important;
  width: 18px !important;
  height: 18px !important;
  margin-top: -9px !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #9aa5b8 !important;
  font-size: 15px !important;
  line-height: 18px !important;
}

#bo_w.pb-write-skin .pb-write-link-row .frm_input {
  height: 46px !important;
  padding-left: 46px !important;
}

/* 파일 드래그 업로드 영역과 선택된 파일 목록. */
#bo_w.pb-write-skin .pb-write-file-area {
  margin-top: 24px !important;
}

#bo_w.pb-write-skin .pb-write-file-drop {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-direction: column !important;
  gap: 9px !important;
  min-height: 128px !important;
  border: 1px dashed #dbe2eb !important;
  border-radius: 10px !important;
  background: #ffffff !important;
  color: #8f9aad !important;
  font-size: 14px !important;
  cursor: pointer !important;
  transition:
    border-color 0.16s ease,
    background-color 0.16s ease !important;
}

#bo_w.pb-write-skin .pb-write-file-drop i {
  color: #a8b2c2 !important;
  font-size: 19px !important;
}

#bo_w.pb-write-skin .pb-write-file-drop:hover,
#bo_w.pb-write-skin .pb-write-file-drop.is-dragover {
  border-color: #a13af4 !important;
  background: #fcfaff !important;
  color: #8b22e5 !important;
}

#bo_w.pb-write-skin .pb-write-file-list {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-top: 10px !important;
}

#bo_w.pb-write-skin .pb-write-file-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  max-width: 100% !important;
  min-height: 34px !important;
  padding: 0 9px 0 11px !important;
  border: 1px solid #e2d3f7 !important;
  border-radius: 8px !important;
  background: #fbf8ff !important;
  color: #7532bd !important;
  font-size: 12px !important;
}

#bo_w.pb-write-skin .pb-write-file-chip strong {
  overflow: hidden !important;
  max-width: 230px !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

#bo_w.pb-write-skin .pb-write-file-remove {
  width: 20px !important;
  height: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: #9a5ad3 !important;
  line-height: 20px !important;
  cursor: pointer !important;
}

#bo_w.pb-write-skin .pb-write-file-remove:hover {
  background: #eadcff !important;
  color: #7223b6 !important;
}

/* 실제 파일 input은 숨기되 JavaScript 클릭·드래그 업로드와 수정화면 파일삭제 기능은 유지. */
#bo_w.pb-write-skin .pb-write-file-source .file_wr {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
}

#bo_w.pb-write-skin .pb-write-file-source>.bo_w_flie>.frm_input {
  display: none !important;
}

#bo_w.pb-write-skin .pb-write-file-source .file_del {
  display: inline-flex !important;
  align-items: center !important;
  margin: 8px 8px 0 0 !important;
  color: #8f9aad !important;
  font-size: 12px !important;
}

/* 작성 버튼 위 여백 */
#bo_w.pb-write-skin .pb-write-submit-row {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  margin: 18px 0 50px !important;
}

#bo_w.pb-write-skin .pb-write-submit-row .btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 110px !important;
  height: 46px !important;
  margin: 0 !important;
  padding: 0 22px !important;
  border-radius: 11px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}

#bo_w.pb-write-skin .pb-write-submit-row .btn_cancel {
  border: 1px solid #d9dee8 !important;
  background: #ffffff !important;
  color: #35425c !important;
}

#bo_w.pb-write-skin .pb-write-submit-row .btn_submit {
  border: 0 !important;
  background: #9825ef !important;
  color: #ffffff !important;
}

#bo_w.pb-write-skin .pb-write-submit-row .btn_submit:hover {
  background: #7e14d7 !important;
}

@media (max-width: 768px) {
  body.pb-theme .pb-content-wrap:has(#bo_w.pb-write-skin) {
    padding-top: 26px !important;
  }

  #bo_w.pb-write-skin .bo_w_info {
    grid-template-columns: 1fr !important;
  }

  #bo_w.pb-write-skin .pb-write-autosave-wrap {
    flex-direction: column !important;
  }

  #bo_w.pb-write-skin #btn_autosave {
    width: 100% !important;
  }

  #bo_w.pb-write-skin #autosave_pop {
    top: 106px !important;
    width: 100% !important;
  }

  #bo_w.pb-write-skin .pb-write-editor iframe,
  #bo_w.pb-write-skin .pb-write-editor textarea {
    min-height: 380px !important;
  }

  #bo_w.pb-write-skin .pb-write-submit-row .btn {
    flex: 1 1 0 !important;
  }
}

/* 글쓰기 화면에서 Font Awesome 아이콘이 font-B로 덮이지 않도록 원래 아이콘 글꼴을 복구. */
#bo_w.pb-write-skin .fa,
#bo_w.pb-write-skin i.fa {
  font-family: FontAwesome !important;
  font-style: normal !important;
}

/* 임시저장 버튼과 팝업을 제목 행 안의 최상위 레이어로 유지. */
#bo_w.pb-write-skin #autosave_wrapper.pb-write-autosave-wrap {
  position: relative !important;
  z-index: 1 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 108px !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  min-height: 48px !important;
  margin: 0 !important;
  overflow: visible !important;
}

#bo_w.pb-write-skin #autosave_wrapper.pb-write-autosave-wrap .pb-write-subject-input-wrap {
  display: block !important;
  min-width: 0 !important;
  width: 100% !important;
}

#bo_w.pb-write-skin #autosave_wrapper.pb-write-autosave-wrap .pb-write-subject-input-wrap #wr_subject {
  display: block !important;
  width: 100% !important;
  height: 48px !important;
  margin: 0 !important;
  padding: 0 34px 0 18px !important;
  border: 1px solid #d9dee8 !important;
  border-radius: 12px !important;
  line-height: 48px !important;
  box-sizing: border-box !important;
}

/* 그누보드 기본 absolute 규칙을 해제해 임시저장 버튼이 제목 입력창과 같은 Grid 흐름으로 정렬되게 . */
#bo_w.pb-write-skin #autosave_wrapper.pb-write-autosave-wrap #btn_autosave {
  position: static !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 108px !important;
  min-width: 108px !important;
  height: 48px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: #f0f3f9 !important;
  color: #243452 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

#bo_w.pb-write-skin #autosave_wrapper.pb-write-autosave-wrap #btn_autosave:hover {
  background: #e8edf6 !important;
}

/* 임시저장 팝업은 저장된 글이 없을 때도 안내문과 저장·닫기 버튼만 compact하게 표시. */
#bo_w.pb-write-skin #btn_autosave:focus,
#bo_w.pb-write-skin #btn_autosave:active {
  outline: 0 !important;
  box-shadow: none !important;
}

/* 임시저장 팝업을 제목 행 안에서 가장 위 레이어로 표시. */
#bo_w.pb-write-skin #autosave_pop {
  position: absolute !important;
  z-index: 2 !important;
  top: 55px !important;
  right: 0 !important;
  width: 300px !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  border: 1px solid #e5eaf2 !important;
  border-radius: 12px !important;
  background: #ffffff !important;
  box-shadow: 0 18px 38px rgba(15, 23, 42, 0.15) !important;
}

/* 임시저장 버튼 아래를 가리키는 흰색 말풍선 화살표. */
#bo_w.pb-write-skin #autosave_pop::before {
  position: absolute !important;
  top: -7px !important;
  right: 45px !important;
  display: block !important;
  width: 14px !important;
  height: 14px !important;
  border-top: 1px solid #e5eaf2 !important;
  border-left: 1px solid #e5eaf2 !important;
  background: #ffffff !important;
  content: "" !important;
  transform: rotate(45deg) !important;
}

#bo_w.pb-write-skin #autosave_pop::after {
  display: none !important;
}

/* 기존 기본 CSS의 고정 130px 높이와 강제 스크롤을 제거. */
#bo_w.pb-write-skin #autosave_pop ul {
  position: relative !important;
  z-index: 1 !important;
  min-height: 48px !important;
  max-height: 180px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  border: 0 !important;
  border-bottom: 1px solid #edf0f5 !important;
  background: #ffffff !important;
  list-style: none !important;
}

/* 저장된 임시글이 없으면 빈 영역 대신 안내 문구를 표시. */
#bo_w.pb-write-skin #autosave_pop ul:empty::before {
  display: flex !important;
  align-items: center !important;
  min-height: 48px !important;
  padding: 0 16px !important;
  color: #7e8aa0 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  content: "저장된 데이터가 없습니다." !important;
}

/* 저장된 임시글이 있는 경우 기본 목록도 같은 높이와 여백으로 표시. */
#bo_w.pb-write-skin #autosave_pop ul li {
  min-height: 48px !important;
  margin: 0 !important;
  padding: 10px 14px !important;
  border-bottom: 1px solid #edf0f5 !important;
  background: #ffffff !important;
  box-sizing: border-box !important;
}

#bo_w.pb-write-skin #autosave_pop ul li:last-child {
  border-bottom: 0 !important;
}

/* 저장·닫기 버튼은 팝업 하단을 동일한 폭의 2칸으로 나눕니다. */
#bo_w.pb-write-skin #autosave_pop .pb-write-autosave-actions {
  position: relative !important;
  z-index: 1 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  width: 100% !important;
  height: 34px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: #ffffff !important;
}

#bo_w.pb-write-skin #autosave_pop .pb-write-autosave-actions button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 34px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #ffffff !important;
  color: #233452 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  cursor: pointer !important;
}

#bo_w.pb-write-skin #autosave_pop .pb-write-autosave-save {
  border-right: 1px solid #edf0f5 !important;
  border-bottom-left-radius: 11px !important;
  background: #f3f5fa !important;
}

#bo_w.pb-write-skin #autosave_pop .autosave_close {
  border-bottom-right-radius: 11px !important;
}

#bo_w.pb-write-skin #autosave_pop .pb-write-autosave-save:hover,
#bo_w.pb-write-skin #autosave_pop .autosave_close:hover {
  background: #eceff5 !important;
  color: #7e18dc !important;
}

/* 선택·기존 첨부파일을 업로드 영역 아래 왼쪽부터 카드로 표시. */
#bo_w.pb-write-skin .pb-write-file-list {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 10px 0 0 !important;
  padding: 0 !important;
}

/* 첨부파일 카드 크기. */
#bo_w.pb-write-skin .pb-write-file-card {
  display: block !important;
  flex: 0 0 96px !important;
  width: 96px !important;
  min-width: 0 !important;
}

/* 이미지·일반파일 미리보기 영역. */
#bo_w.pb-write-skin .pb-write-file-preview {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 96px !important;
  height: 60px !important;
  overflow: hidden !important;
  border: 1px solid #e4e8ef !important;
  border-radius: 7px !important;
  background: #f7f8fa !important;
}

/* 이미지 전체 표시. */
#bo_w.pb-write-skin .pb-write-file-preview img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
}

/* 일반파일 아이콘. */
#bo_w.pb-write-skin .pb-write-file-preview>.fa-file-o {
  color: #9aa5b8 !important;
  font-family: FontAwesome !important;
  font-size: 34px !important;
}

/* 카드 삭제·복구 버튼. */
#bo_w.pb-write-skin .pb-write-file-remove {
  position: absolute !important;
  right: 4px !important;
  bottom: 4px !important;
  z-index: 2 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 29px !important;
  height: 20px !important;
  margin: 0 !important;
  padding: 0 5px !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: #f04438 !important;
  color: #ffffff !important;
  font-family: "font-B", sans-serif !important;
  font-size: 10px !important;
  line-height: 1 !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

#bo_w.pb-write-skin .pb-write-file-remove:hover {
  background: #d92d20 !important;
  color: #ffffff !important;
}

/* 긴 파일명 한 줄 말줄임. */
#bo_w.pb-write-skin .pb-write-file-name {
  display: block !important;
  width: 100% !important;
  margin-top: 6px !important;
  overflow: hidden !important;
  color: #475467 !important;
  font-family: "font-R", sans-serif !important;
  font-size: 11px !important;
  line-height: 1.35 !important;
  text-align: center !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* 기존 파일 삭제 상태. */
#bo_w.pb-write-skin .pb-write-file-card.is-existing.is-removed {
  opacity: 0.5 !important;
}

#bo_w.pb-write-skin .pb-write-file-card.is-existing.is-removed .pb-write-file-remove {
  background: #667085 !important;
}

/* 교체 파일 선택 시 기존 카드 숨김. */
#bo_w.pb-write-skin .pb-write-file-card.is-existing.is-replaced {
  display: none !important;
}

/* 첨부파일 원본 input만 숨기고 다운로드 설정은 표시. */
#bo_w.pb-write-skin .pb-write-file-source {
  position: relative !important;
  display: grid !important;
  width: 100% !important;
  height: auto !important;
  margin: 10px 0 14px !important;
  padding: 14px !important;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  white-space: normal !important;
  gap: 10px;
  border: 1px solid #e2e7f0;
  border-radius: 10px;
  background: #f8faff;
  counter-reset: pb-download-file;
}

/* 이전 텍스트 칩 숨김. */
#bo_w.pb-write-skin .pb-write-file-chip {
  display: none !important;
}

/* TOAST UI Editor를 PBuilder 글쓰기 카드 안에서 한 겹 테두리로 표시. */
#bo_w.pb-write-skin .pb-write-editor:has(.pb-toastui-host) {
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

/* TOAST UI 기본 외곽선을 글쓰기 화면의 둥근 카드 스타일로 맞춤. */
#bo_w.pb-write-skin .pb-toastui-host .toastui-editor-defaultUI {
  overflow: hidden !important;
  border: 1px solid #d9dee8 !important;
  border-radius: 13px !important;
  background: #ffffff !important;
}

/* 툴바 하단 선과 배경을 단순하게 정리. */
#bo_w.pb-write-skin .pb-toastui-host .toastui-editor-toolbar {
  padding: 8px 10px !important;
  border-bottom: 1px solid #edf0f5 !important;
  background: #ffffff !important;
}

/* 본문 입력영역의 기본 글꼴과 여백을 PBuilder 스타일에 맞춤. */
#bo_w.pb-write-skin .pb-toastui-host .toastui-editor-contents,
#bo_w.pb-write-skin .pb-toastui-host .ProseMirror {
  font-family: "font-R", "Pretendard", "Malgun Gothic", sans-serif !important;
  font-size: 14px !important;
  line-height: 1.8 !important;
}

/* 숨겨진 그누보드 저장용 textarea가 화면 여백을 만들지 않도록 유지. */
#bo_w.pb-write-skin textarea.pb-toastui-source {
  display: none !important;
}

/* 에디터 아래 중앙 손잡이를 드래그해 본문 입력영역 높이를 조절. */
#bo_w.pb-write-skin .pb-toastui-resizer {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 24px !important;
  margin: 0 !important;
  cursor: ns-resize !important;
  touch-action: none !important;
  user-select: none !important;
}

/* 손잡이는 첨부 화면처럼 짧고 둥근 회색 막대로 표시. */
#bo_w.pb-write-skin .pb-toastui-resizer::before {
  display: block !important;
  width: 54px !important;
  height: 4px !important;
  border-radius: 999px !important;
  background: #dce1e9 !important;
  content: "" !important;
  transition:
    background-color 0.15s ease,
    transform 0.15s ease !important;
}

/* 마우스를 올리면 손잡이를 조금 더 진하게 표시해 조절 가능 영역임을 알려줍니다. */
#bo_w.pb-write-skin .pb-toastui-resizer:hover::before {
  background: #aeb7c5 !important;
  transform: scaleX(1.08) !important;
}

/* 드래그 중에는 페이지 텍스트가 선택되지 않도록 처리. */
body.pb-toastui-resizing,
body.pb-toastui-resizing * {
  cursor: ns-resize !important;
  user-select: none !important;
}

/* TOAST UI 에디터의 제목 1·제목 2 아래에 자동으로 표시되는 밑줄을 제거. */
#bo_w.pb-write-skin .pb-toastui-host .toastui-editor-contents h1,
#bo_w.pb-write-skin .pb-toastui-host .ProseMirror h1,
#bo_w.pb-write-skin .pb-toastui-host .toastui-editor-contents h2,
#bo_w.pb-write-skin .pb-toastui-host .ProseMirror h2 {
  padding-bottom: 0 !important;
  border-bottom: 0 !important;
}

/* 관련 영상과 바로 아래 추천·비추천 영역이 붙지 않도록 아래 여백을 확보. */
#bo_v.pb-view-skin .pb-view-video-resource {
  margin-top: 30px !important;
  margin-bottom: 30px !important;
}

#bo_v.pb-view-skin .pb-view-video-list {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
}

#bo_v.pb-view-skin .pb-view-video-card {
  overflow: hidden !important;
  border: 1px solid #dfe5ee !important;
  border-radius: 12px !important;
  background: #ffffff !important;
}

#bo_v.pb-view-skin .pb-view-video-frame {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  background: #111827 !important;
}

#bo_v.pb-view-skin .pb-view-video-frame iframe {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
}

#bo_v.pb-view-skin .pb-view-video-open {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 3px 14px !important;
  align-items: center !important;
  padding: 13px 16px !important;
  background: #ffffff !important;
  color: #25314a !important;
  text-decoration: none !important;
}

#bo_v.pb-view-skin .pb-view-video-open>span {
  color: #8b24e8 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
}

#bo_v.pb-view-skin .pb-view-video-open>span i {
  margin-right: 4px !important;
}

#bo_v.pb-view-skin .pb-view-video-open>strong {
  overflow: hidden !important;
  color: #344054 !important;
  font-family: "font-R", sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

#bo_v.pb-view-skin .pb-view-video-open>em {
  grid-row: span 2 !important;
  grid-column: 2 !important;
  color: #7b8798 !important;
  font-family: "font-R", sans-serif !important;
  font-size: 12px !important;
  font-style: normal !important;
  white-space: nowrap !important;
}

/* 일반 링크는 첨부 화면과 같은 파란색 사이트 미리보기 카드로 표시. */
#bo_v.pb-view-skin #bo_v_link .pb-view-link-cards {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

#bo_v.pb-view-skin #bo_v_link .pb-view-link-card-item {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

#bo_v.pb-view-skin #bo_v_link .pb-view-link-card {
  position: relative !important;
  display: block !important;
  min-height: 106px !important;
  padding: 14px 48px 16px 16px !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: #2e5e8d !important;
  color: #ffffff !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
}

#bo_v.pb-view-skin #bo_v_link .pb-view-link-url {
  display: block !important;
  margin-bottom: 7px !important;
  overflow: hidden !important;
  color: #d9eafd !important;
  font-family: "font-R", sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
  text-decoration: underline !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

#bo_v.pb-view-skin #bo_v_link .pb-view-link-domain {
  display: block !important;
  margin-bottom: 3px !important;
  color: #ffffff !important;
  font-family: "font-B", sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
}

#bo_v.pb-view-skin #bo_v_link .pb-view-link-description {
  display: block !important;
  overflow: hidden !important;
  color: #d7e5f5 !important;
  font-family: "font-R", sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

#bo_v.pb-view-skin #bo_v_link .pb-view-link-hit {
  display: block !important;
  margin-top: 9px !important;
  color: #bdd4ed !important;
  font-family: "font-R", sans-serif !important;
  font-size: 11px !important;
  font-weight: 400 !important;
}

#bo_v.pb-view-skin #bo_v_link .pb-view-link-card>.fa {
  position: absolute !important;
  top: 50% !important;
  right: 17px !important;
  color: #dcecff !important;
  font-size: 17px !important;
  transform: translateY(-50%) !important;
}

#bo_v.pb-view-skin #bo_v_link .pb-view-link-card:hover {
  background: #264f77 !important;
}

@media (max-width: 640px) {
  #bo_v.pb-view-skin .pb-view-video-open {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #bo_v.pb-view-skin .pb-view-video-open>em {
    grid-row: auto !important;
    grid-column: auto !important;
  }

  #bo_v.pb-view-skin #bo_v_link .pb-view-link-card {
    min-height: 112px !important;
  }
}

/* 점 메뉴는 조회·댓글 바로 오른쪽에 두고, 수정·삭제가 가능한 글에서만 표시. */
#bo_v.pb-view-skin .pb-view-post-actions {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  margin-left: 2px !important;
  flex: 0 0 auto !important;
}

/* 점 3개 버튼은 제목·작성자 영역을 방해하지 않도록 아이콘만 표시. */
#bo_v.pb-view-skin .pb-view-post-more-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  height: 30px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 7px !important;
  background: transparent !important;
  color: #68748a !important;
  cursor: pointer !important;
}

#bo_v.pb-view-skin .pb-view-post-more-button:hover,
#bo_v.pb-view-skin .pb-view-post-more-button:focus {
  background: #f1f4f8 !important;
  color: #172033 !important;
  outline: 0 !important;
}

#bo_v.pb-view-skin .pb-view-post-more-button .fa {
  font-size: 18px !important;
  line-height: 1 !important;
}

/* 수정·삭제 메뉴는 점 버튼 아래 오른쪽에 작은 팝업으로 표시. */
#bo_v.pb-view-skin .pb-view-post-menu {
  position: absolute !important;
  top: calc(100% + 7px) !important;
  right: 0 !important;
  z-index: 10001 !important;
  display: none !important;
  min-width: 102px !important;
  margin: 0 !important;
  padding: 5px !important;
  border: 1px solid #e0e5ed !important;
  border-radius: 9px !important;
  background: #ffffff !important;
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.14) !important;
  list-style: none !important;
}

#bo_v.pb-view-skin .pb-view-post-menu.is-open {
  display: block !important;
}

#bo_v.pb-view-skin .pb-view-post-menu li {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

#bo_v.pb-view-skin .pb-view-post-menu a {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  width: 100% !important;
  height: 34px !important;
  padding: 0 10px !important;
  border-radius: 6px !important;
  color: #3a465a !important;
  font-family: "font-R", sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  text-align: left !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
}

#bo_v.pb-view-skin .pb-view-post-menu a:hover,
#bo_v.pb-view-skin .pb-view-post-menu a:focus {
  background: #f4f6fa !important;
  color: #7f20e9 !important;
}

#bo_v.pb-view-skin .pb-view-post-menu a .fa {
  width: 14px !important;
  color: inherit !important;
  text-align: center !important;
}

@media (max-width: 640px) {

  /* 모바일에서는 작성자 정보가 길어져도 조회·댓글·점 메뉴가 자연스럽게 줄바꿈됩니다. */
  #bo_v.pb-view-skin .pb-view-meta {
    flex-wrap: wrap !important;
    gap: 8px 11px !important;
  }

  #bo_v.pb-view-skin .pb-view-post-actions {
    margin-left: auto !important;
  }

  /* 모바일에서도 조회·댓글은 점 메뉴 바로 왼쪽 또는 화면 우측에 유지. */
  #bo_v.pb-view-skin .pb-view-stat {
    gap: 10px !important;
    margin-left: auto !important;
  }
}

/* 본문이 짧은 게시글은 200px 최소 높이를 사용하지 않고 관련 영상과 자연스럽게 이어집니다. */
#bo_v.pb-view-skin #bo_v_atc {
  min-height: 0 !important;
  height: auto !important;
}

/* 본문 영역의 강제 높이와 큰 아래 여백을 제거해 영상 위 불필요한 빈 공간을 없앱니다. */
#bo_v.pb-view-skin #bo_v_con {
  min-height: 0 !important;
  margin: 10px 0 18px !important;
  overflow: hidden !important;
}

/* 본문 첫 요소와 마지막 요소의 기본 여백도 정리해 제목·텍스트와 영상 사이 간격을 일정하게 맞춤. */
#bo_v.pb-view-skin #bo_v_con> :first-child {
  margin-top: 0 !important;
}

#bo_v.pb-view-skin #bo_v_con> :last-child {
  margin-bottom: 0 !important;
}

/* 조회수가 높아질수록 배지 폭이 길어지고, 왼쪽 진한 주황에서 오른쪽 연한 노랑으로 자연스럽게 흐릅니다. */
/* 인기글 배지 길이 설정 */
#bo_list.pb-board-list .pb-board-hot-level {
  display: inline-flex !important;
  position: relative !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  width: var(--pb-hot-width, 46px) !important;
  min-width: 5px !important;
  height: 17px !important;
  margin: 0 18px 0 0 !important;
  padding: 0 6px !important;
  overflow: visible !important;
  border-radius: 4px 0 0 4px !important;
  background: linear-gradient(90deg,
      #fa5600 0%,
      #fb7100 22%,
      #fc9800 50%,
      #ffbd18 76%,
      #ffe06a 100%) !important;
  color: #ffffff !important;
  font: 700 13px/17px Tahoma, Helvetica, "Microsoft Yahei", sans-serif !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  text-shadow: 1px 1px 1px #e40 !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

/* 오른쪽 끝을 번개처럼 찢긴 모양으로 만들어 인기글 배지의 꼬리를 표현. */
#bo_list.pb-board-list .pb-board-hot-level::after {
  position: absolute !important;
  top: 0 !important;
  right: -10px !important;
  width: 11px !important;
  height: 17px !important;
  background: linear-gradient(90deg, #ffd347 0%, #ffe87b 100%) !important;
  content: "" !important;
  clip-path: polygon(0 0,
      100% 0,
      67% 24%,
      100% 49%,
      66% 74%,
      100% 100%,
      0 100%,
      22% 50%) !important;
}

/* 제목이 길어도 인기글 배지가 제목 영역 밖으로 밀리지 않게 유지. */
#bo_list.pb-board-list .pb-board-subject-link {
  flex: 0 1 auto !important;
  min-width: 0 !important;
}

/* 제목이 길어도 인기글 배지가 잘리지 않도록 제목 링크가 남은 폭 안에서만 줄어들게 . */
#bo_list.pb-board-list .pb-board-subject-link {
  flex: 0 1 auto !important;
  min-width: 0 !important;
}

/* 모바일 목록에서도 hot 배지가 제목 오른쪽에 유지되도록 . */
@media (max-width: 900px) {
  #bo_list.pb-board-list .pb-board-hot-level {
    margin-right: 3px !important;
    font-size: 12px !important;
  }
}

/* 일반 링크와 바로 아래 추천·비추천 영역이 붙지 않도록 아래 여백을 확보. */
#bo_v.pb-view-skin #bo_v_link.pb-view-simple-link-resource {
  margin-top: 24px !important;
  margin-bottom: 40px !important;
}

/* 기존 관련링크의 카드형 여백·테두리·배경을 제거. */
#bo_v.pb-view-skin #bo_v_link.pb-view-simple-link-resource .pb-view-simple-links {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

#bo_v.pb-view-skin #bo_v_link.pb-view-simple-link-resource .pb-view-simple-links li {
  display: block !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* 링크 아이콘과 주소만 한 줄로 출력. */
#bo_v.pb-view-skin #bo_v_link.pb-view-simple-link-resource .pb-view-simple-links a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  max-width: 100% !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #4169b1 !important;
  font-family: "font-R", sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  text-decoration: underline !important;
}

#bo_v.pb-view-skin #bo_v_link.pb-view-simple-link-resource .pb-view-simple-links a:hover {
  color: #8b24e8 !important;
}

#bo_v.pb-view-skin #bo_v_link.pb-view-simple-link-resource .pb-view-simple-links a .fa {
  flex: 0 0 auto !important;
  color: inherit !important;
  font-size: 13px !important;
}

#bo_v.pb-view-skin #bo_v_link.pb-view-simple-link-resource .pb-view-simple-links a span {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* 임시저장 목록 항목을 제목·저장시간·삭제 아이콘 구조로 분리해
   기존 기본 CSS의 float, 별표, 텍스트 삭제 버튼이 섞이지 않게 정리. */
#bo_w.pb-write-skin #autosave_pop ul li.pb-write-autosave-item {
  position: relative !important;
  display: block !important;
  min-height: 66px !important;
  margin: 0 !important;
  padding: 11px 46px 10px 18px !important;
  border-bottom: 1px solid #edf0f5 !important;
  background: #ffffff !important;
  box-sizing: border-box !important;
}

#bo_w.pb-write-skin #autosave_pop ul li.pb-write-autosave-item:last-child {
  border-bottom: 0 !important;
}

/* 저장 글 제목은 한 줄 유지, 길면 말줄임표로 표시. */
#bo_w.pb-write-skin #autosave_pop .pb-write-autosave-load {
  display: block !important;
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  background: transparent !important;
  color: #1d2a44 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 20px !important;
  text-align: left !important;
  text-decoration: none !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  cursor: pointer !important;
}

/* 저장 시간은 제목 아래 보조 정보로 표시. */
#bo_w.pb-write-skin #autosave_pop .pb-write-autosave-date {
  display: block !important;
  float: none !important;
  margin: 4px 0 0 !important;
  padding: 0 !important;
  color: #9aa5b8 !important;
  font-family: "font-B", sans-serif !important;
  font-size: 12px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 16px !important;
}

/* 삭제 버튼은 텍스트 대신 오른쪽 휴지통 아이콘으로 표시. */
#bo_w.pb-write-skin #autosave_pop .pb-write-autosave-delete {
  position: absolute !important;
  top: 50% !important;
  right: 13px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 26px !important;
  height: 26px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #b4bdcc !important;
  font-size: 0 !important;
  line-height: 1 !important;
  text-indent: 0 !important;
  transform: translateY(-50%) !important;
  cursor: pointer !important;
}

#bo_w.pb-write-skin #autosave_pop .pb-write-autosave-delete::before {
  content: "\f1f8" !important;
  font-family: FontAwesome !important;
  font-size: 14px !important;
  line-height: 1 !important;
}

#bo_w.pb-write-skin #autosave_pop .pb-write-autosave-delete:hover {
  color: #e14a51 !important;
}

/* Final PBediiTor write-frame polish */
#bo_w.pb-write-skin .pb-write-editor:has(.note-editor) {
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

#bo_w.pb-write-skin .pb-write-editor>.note-editor.note-frame {
  overflow: visible !important;
  border-radius: 10px !important;
}

#bo_w.pb-write-skin .pb-write-editor>.note-editor.note-frame .note-toolbar {
  border-radius: 10px 10px 0 0 !important;
}

#bo_w.pb-write-skin .pb-write-editor>.note-editor.note-frame .note-statusbar {
  border-bottom: 0 !important;
  border-radius: 0 0 10px 10px !important;
}

/* 게시판 코드블록 스크롤 설정 */
#bo_v.pb-view-skin #bo_v_con pre,
#bo_v.pb-view-skin #bo_v_con .hljs,
#bo_v.pb-view-skin #bo_v_con code[class*="language-"],
#bo_v_con pre,
#bo_v_con .hljs,
#bo_v_con code[class*="language-"],
.bo_v_con pre,
.bo_v_con .hljs,
.bo_v_con code[class*="language-"] {
  display: block !important;
  max-height: 500px !important;
  /* 코드 박스 높이 제한 */
  /*overflow-x: auto !important;*/
  /* 가로 스크롤 */
  overflow-y: auto !important;
  /* 우측 세로 스크롤 */
  /*white-space: pre !important;*/
  /* 자동 줄바꿈 금지 */
  word-break: normal !important;
  overflow-wrap: normal !important;
  box-sizing: border-box !important;
}

/* 게시글 보기 화면의 PBediiTor 코드 블록.
   에디터 전용 줄번호·안내문은 저장하지 않고, 보기 화면에서는 코드만 깔끔하게 출력. */
#bo_v.pb-view-skin #bo_v_con pre.pb-pbediitor-post-code,
#bo_v.pb-view-skin #bo_v_con pre {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 20px 0;
  padding: 18px 64px 18px 20px;
  border: 1px solid #30343b;
  border-radius: 4px;
  background: #5D5D5D;
  color: #d4d4d4;
  font-family: Consolas, Monaco, "Courier New", monospace;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.8;
  white-space: pre-wrap;
  overflow: visible;
  overflow-wrap: anywhere;
  word-break: break-word;
  tab-size: 4;
  box-sizing: border-box;
}

/* 외부 코드 하이라이트나 예전 글의 pre > code 구조도 동일한 코드 블록 스타일을 사용. */
#bo_v.pb-view-skin #bo_v_con pre.pb-pbediitor-post-code>code,
#bo_v.pb-view-skin #bo_v_con pre>code,
#bo_v.pb-view-skin #bo_v_con pre .hljs {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: inherit;
  white-space: inherit;
  overflow-wrap: inherit;
  word-break: inherit;
}

/* 모바일에서도 코드 블록이 페이지 폭을 넘지 않고 긴 줄은 자동 줄바꿈됩니다. */
@media (max-width: 768px) {

  #bo_v.pb-view-skin #bo_v_con pre.pb-pbediitor-post-code,
  #bo_v.pb-view-skin #bo_v_con pre {
    margin: 16px 0;
    padding: 14px 52px 14px 14px;
    font-size: 12px;
    line-height: 1.75;
  }
}

/* Final responsive board hardening */
#bo_list.pb-board-list,
#bo_list.pb-board-list *,
#bo_v.pb-view-skin,
#bo_v.pb-view-skin *,
#bo_w.pb-write-skin,
#bo_w.pb-write-skin * {
  box-sizing: border-box;
}

/* 스킨 공통 최소 폭만 정리하고 PC 폭은 하단 기준값을 따름 */
#bo_list.pb-board-list,
#bo_v.pb-view-skin,
#bo_w.pb-write-skin {
  min-width: 0;
}

#bo_list.pb-board-list {
  overflow-x: clip;
}

/* 일반 게시글 이미지와 작성 화면 이미지만 반응형 높이로 처리.
   관리형 배너 이미지는 관리자에서 저장한 표시 높이와 맞춤 방식을 유지. */
#bo_list.pb-board-list img,
#bo_v.pb-view-skin #bo_v_con img,
#bo_v.pb-view-skin #bo_v_img img,
#bo_w.pb-write-skin img {
  max-width: 100% !important;
  height: auto !important;
}

#bo_v.pb-view-skin iframe,
#bo_v.pb-view-skin video,
#bo_v.pb-view-skin embed,
#bo_v.pb-view-skin object {
  max-width: 100% !important;
}

#bo_v.pb-view-skin #bo_v_con,
#bo_v.pb-view-skin #bo_v_atc,
#bo_v.pb-view-skin .pb-view-content,
#bo_w.pb-write-skin .write_div,
#bo_w.pb-write-skin .frm_input,
#bo_w.pb-write-skin textarea,
#bo_w.pb-write-skin select {
  max-width: 100% !important;
  min-width: 0 !important;
}

#bo_v.pb-view-skin #bo_v_con,
#bo_v.pb-view-skin #bo_v_con * {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* 직접 삽입한 일반 광고 배너에만 공통 100% 규칙을 적용.
   P Builder 관리형 배너는 관리자에서 저장한 개별 너비·높이값을 유지. */
.pb-view-inline-banner:not(.pb-banner-slot) {
  width: 100% !important;
  max-width: 100% !important;
  overflow: hidden !important;
}

.pb-view-inline-banner:not(.pb-banner-slot)>a,
.pb-view-inline-banner:not(.pb-banner-slot) img {
  display: block !important;
  width: 100% !important;
}

@media (max-width: 900px) {
  #bo_list.pb-board-list {
    padding-right: 0 !important;
    padding-left: 0 !important;
    overflow-x: hidden;
  }

  /* 모바일 글쓰기 */
  #bo_list.pb-board-list .pb-board-head,
  #bo_list.pb-board-list .pb-board-summary,
  #bo_list.pb-board-list .pb-board-bottom {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  #bo_list.pb-board-list .pb-board-tools {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
    gap: 6px !important;
    min-width: 0 !important;
  }

  #bo_list.pb-board-list .pb-board-list-wrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }

  #bo_list.pb-board-list .pb-board-row,
  #bo_list.pb-board-list .pb-board-row:has(.pb-board-check) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    grid-template-areas:
      "subject subject subject"
      "author date hit" !important;
    align-items: start !important;
    gap: 7px 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    padding: 14px 2px !important;
    overflow: visible !important;
  }

  #bo_list.pb-board-list .pb-board-check,
  #bo_list.pb-board-list .pb-board-num {
    display: none !important;
  }

  #bo_list.pb-board-list .pb-board-subject {
    grid-area: subject !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 5px 7px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding-left: calc(var(--reply-depth, 0) * 12px) !important;
  }

  #bo_list.pb-board-list .pb-board-subject-link {
    flex: 1 1 auto !important;
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    color: #101828 !important;
    font-size: 15px !important;
    line-height: 1.45 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  #bo_list.pb-board-list .bo_cate_link,
  #bo_list.pb-board-list .cnt_cmt,
  #bo_list.pb-board-list .pb-board-hot-level {
    flex: 0 0 auto !important;
  }

  #bo_list.pb-board-list .pb-board-author {
    grid-area: author !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    padding-left: calc(var(--reply-depth, 0) * 12px) !important;
    overflow: hidden !important;
    color: #667085 !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
    text-align: left !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  #bo_list.pb-board-list .pb-board-date,
  #bo_list.pb-board-list .pb-board-hit {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    min-width: 0 !important;
    color: #98a2b3 !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
    white-space: nowrap !important;
  }

  #bo_list.pb-board-list .pb-board-date {
    grid-area: date !important;
  }

  #bo_list.pb-board-list .pb-board-hit {
    grid-area: hit !important;
    margin-top: 0 !important;
  }

  #bo_list.pb-board-list .pb-board-hit::before {
    content: "조회 ";
    margin-right: 2px;
    color: #98a2b3;
  }

  #bo_v.pb-view-skin {
    padding-right: 0 !important;
    padding-left: 0 !important;
    overflow-x: hidden !important;
  }

  #bo_v.pb-view-skin .pb-view-head,
  #bo_v.pb-view-skin .pb-view-content,
  #bo_v.pb-view-skin .pb-view-author-card,
  #bo_v.pb-view-skin .pb-view-neighbor,
  #bo_v.pb-view-skin .pb-view-bottom-actions,
  #bo_v.pb-view-skin .pb-comment-section,
  #bo_w.pb-write-skin {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  #bo_v.pb-view-skin #bo_v_title,
  #bo_v.pb-view-skin .bo_v_tit {
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }

  #bo_v.pb-view-skin .pb-view-side-tools {
    position: static !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
    width: 100% !important;
    margin: 12px 0 0 !important;
    transform: none !important;
  }

  #bo_w.pb-write-skin .bo_w_info,
  #bo_w.pb-write-skin .pb-write-subject-row,
  #bo_w.pb-write-skin .pb-write-link-row,
  #bo_w.pb-write-skin .bo_w_flie,
  #bo_w.pb-write-skin .file_wr {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 480px) {

  #bo_list.pb-board-list .pb-board-row,
  #bo_list.pb-board-list .pb-board-row:has(.pb-board-check) {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas:
      "subject"
      "author"
      "date"
      "hit" !important;
    gap: 6px !important;
    padding: 13px 0 !important;
  }

  #bo_list.pb-board-list .pb-board-date,
  #bo_list.pb-board-list .pb-board-hit {
    justify-content: flex-start !important;
    margin: 0 !important;
  }

  #bo_list.pb-board-list .pb-board-hit {
    margin-left: 72px !important;
  }

  #bo_list.pb-board-list .pb-board-subject-link {
    font-size: 14px !important;
  }

  /* 배너 비율과 맞춤 방식은 관리자 설정을 사용.
     특정 984×80 비율을 강제하지 않음. */
}

/* 모바일에서는 게시글 보기 관리형 배너만 화면 폭 안에 맞춤.
   표시 높이·위아래 여백·contain·cover 값은 관리자 설정 인라인 스타일을 그대로 사용. */
@media (max-width: 900px) {
  #bo_v.pb-view-skin .pb-banner-slot-board-view-bottom {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-right: auto !important;
    margin-left: auto !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }

  #bo_v.pb-view-skin .pb-banner-slot-board-view-bottom .pb-banner-item {
    display: block !important;
    min-width: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  #bo_v.pb-view-skin .pb-banner-slot-board-view-bottom .pb-banner-item picture {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  #bo_v.pb-view-skin .pb-banner-slot-board-view-bottom .pb-banner-item img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
}

/* Mobile list visual match */
@media (max-width: 900px) {
  #bo_list.pb-board-list .pb-board-list-wrap:empty {
    display: none !important;
  }

  #bo_list.pb-board-list .pb-board-list-wrap {
    border-top: 1px solid #edf0f3 !important;
    border-bottom: 0 !important;
  }

  #bo_list.pb-board-list .pb-board-row,
  #bo_list.pb-board-list .pb-board-row:has(.pb-board-check) {
    display: grid !important;
    grid-template-columns: 86px auto minmax(0, 1fr) !important;
    grid-template-areas:
      "num subject subject"
      "num author date" !important;
    align-items: center !important;
    column-gap: 8px !important;
    row-gap: 5px !important;
    min-height: 80px !important;
    padding: 13px 0 !important;
    border-bottom: 1px solid #edf0f3 !important;
    background: #fff !important;
  }

  #bo_list.pb-board-list .pb-board-check {
    display: none !important;
  }

  #bo_list.pb-board-list .pb-board-num {
    grid-area: num !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    color: #9aa0a8 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    text-align: center !important;
  }

  #bo_list.pb-board-list .pb-board-new-num {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 35px !important;
    height: 19px !important;
    padding: 0 8px !important;
    border-radius: 999px !important;
    background: #8bd221 !important;
    color: #fff !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    letter-spacing: 0 !important;
    line-height: 19px !important;
  }

  #bo_list.pb-board-list .pb-board-notice,
  #bo_list.pb-board-list .pb-board-current {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 35px !important;
    height: 19px !important;
    padding: 0 8px !important;
    border-radius: 999px !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    line-height: 19px !important;
  }

  #bo_list.pb-board-list .pb-board-subject {
    grid-area: subject !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 7px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
  }

  #bo_list.pb-board-list .pb-board-subject-link {
    flex: 0 1 auto !important;
    display: block !important;
    min-width: 0 !important;
    overflow: hidden !important;
    color: #050505 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  #bo_list.pb-board-list .cnt_cmt {
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #8a2cff !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1.35 !important;
  }

  #bo_list.pb-board-list .bo_cate_link,
  #bo_list.pb-board-list .pb-board-hot-level,
  #bo_list.pb-board-list .td_subject img,
  #bo_list.pb-board-list .pb-board-subject>img {
    flex: 0 0 auto !important;
  }

  #bo_list.pb-board-list .pb-board-author {
    grid-area: author !important;
    display: flex !important;
    align-items: center !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 150px !important;
    padding: 0 !important;
    overflow: hidden !important;
    color: #8a929e !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    text-align: left !important;
    white-space: nowrap !important;
  }

  #bo_list.pb-board-list .pb-board-author-name,
  #bo_list.pb-board-list .pb-board-author .sv_wrap {
    display: inline-flex !important;
    align-items: center !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  #bo_list.pb-board-list .pb-board-author .sv_member,
  #bo_list.pb-board-list .pb-board-author .sv_guest,
  #bo_list.pb-board-list .pb-board-author .member,
  #bo_list.pb-board-list .pb-board-author .guest {
    display: inline-flex !important;
    align-items: center !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    color: #8a929e !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  #bo_list.pb-board-list .pb-board-author .profile_img,
  #bo_list.pb-board-list .pb-board-author .profile_img img,
  #bo_list.pb-board-list .pb-board-author img {
    flex: 0 0 auto !important;
    width: 22px !important;
    height: 22px !important;
    margin: 0 5px 0 0 !important;
    border-radius: 6px !important;
    object-fit: cover !important;
  }

  #bo_list.pb-board-list .pb-board-author .sv {
    display: none;
  }

  #bo_list.pb-board-list .pb-board-date {
    grid-area: date !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-width: 0 !important;
    margin: 0 !important;
    color: #9aa0a8 !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    text-align: left !important;
    white-space: nowrap !important;
  }

  #bo_list.pb-board-list .pb-board-hit {
    display: none !important;
  }

  #bo_list.pb-board-list .pb-board-hit::before {
    content: none !important;
  }
}

@media (max-width: 480px) {

  #bo_list.pb-board-list .pb-board-row,
  #bo_list.pb-board-list .pb-board-row:has(.pb-board-check) {
    grid-template-columns: 82px auto minmax(0, 1fr) !important;
    grid-template-areas:
      "num subject subject"
      "num author date" !important;
    min-height: 80px !important;
    padding: 13px 0 !important;
  }

  #bo_list.pb-board-list .pb-board-subject-link {
    font-size: 15px !important;
  }

  #bo_list.pb-board-list .pb-board-author {
    max-width: 130px !important;
  }
}

/* PC에서 목록,쓰기,보기 폭을 1020px 기준으로 통일 */
@media (min-width: 901px) {

  #bo_list.pb-board-list,
  #bo_w.pb-write-skin,
  #bo_v.pb-view-skin {
    width: min(1020px, calc(100% - 40px));
    max-width: 1020px;
    min-width: 0;
    margin-right: auto;
    margin-left: auto;
  }

  #bo_list.pb-board-list form,
  #bo_w.pb-write-skin .pb-write-heading,
  #bo_w.pb-write-skin .pb-write-form,
  #bo_v.pb-view-skin .pb-view-head,
  #bo_v.pb-view-skin .pb-view-content,
  #bo_v.pb-view-skin #bo_v_atc.pb-view-content,
  #bo_v.pb-view-skin .pb-view-resource,
  #bo_v.pb-view-skin .pb-view-author-card,
  #bo_v.pb-view-skin .pb-view-neighbor,
  #bo_v.pb-view-skin .pb-view-bottom-actions,
  #bo_v.pb-view-skin .pb-view-recommend,
  #bo_v.pb-view-skin .pb-comment-section,
  #bo_v.pb-view-skin #bo_vc,
  #bo_v.pb-view-skin #bo_vc_w {
    width: 100%;
    max-width: 100%;
    margin-right: auto;
    margin-left: auto;
  }
}

/* 관리형 배너 영역을 게시글 보기 1020px 폭 기준에 맞춤 */
#bo_v.pb-view-skin .pb-banner-slot-board-view-bottom {
  display: grid;
  justify-items: center;
  gap: 5px;
  width: 100%;
  max-width: 1020px;
  min-height: 0;
  height: auto;
  margin: 0 auto;
  padding: 0;
  overflow: visible;
  border-radius: 0;
  background: transparent;
  box-sizing: border-box;
}

/* 관리형 배너 이미지 모서리를 배너 영역 안에서만 둥글게 처리 */
#bo_v.pb-view-skin .pb-banner-slot-board-view-bottom .pb-banner-item {
  display: block;
  min-width: 0;
  max-width: 100%;
  border: 0;
  border-radius: 8px;
  background: transparent;
  box-shadow: none;
  overflow: hidden;
  box-sizing: border-box;
}

/* 관리형 배너 이미지가 부모 배너 크기를 넘지 않게 맞춤 */
#bo_v.pb-view-skin .pb-banner-slot-board-view-bottom .pb-banner-item picture {
  display: block;
  max-width: 100%;
  border-radius: inherit;
  overflow: hidden;
}

#bo_v.pb-view-skin .pb-banner-slot-board-view-bottom .pb-banner-item img {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 0;
  border-radius: inherit;
  box-sizing: border-box;
}

/* 모바일에서는 관리형 배너가 화면 폭을 넘지 않게 제한 */
@media (max-width: 900px) {
  #bo_v.pb-view-skin .pb-banner-slot-board-view-bottom {
    width: 100%;
    max-width: 100%;
  }

  #bo_v.pb-view-skin .pb-banner-slot-board-view-bottom .pb-banner-item {
    max-width: 100%;
  }
}

/* 모바일 하단 버튼 영역은 부모 폭 100% 사용 */
@media (max-width: 768px) {

  /* 모바일 하단 버튼 영역 100% 리사이징 */
  #bo_v.pb-view-skin #bo_v_bot.pb-view-bottom-actions {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 28px 0 12px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  /* 모바일 비회원 하단 버튼 숨김 */
  #bo_v.pb-view-skin #bo_v_bot.pb-view-bottom-actions.is-guest {
    display: none !important;
  }

  /* 모바일 비회원 배너 여백 유지 */
  #bo_v.pb-view-skin #bo_v_bot.pb-view-bottom-actions.is-guest+.pb-banner-slot-board-view-bottom {
    margin-top: 20px !important;
  }

  /* 모바일 하단 버튼은 개수 기준 균등 분할 */
  #bo_v.pb-view-skin .pb-view-bottom-actions ul {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    width: 100% !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    box-sizing: border-box !important;
  }

  /* 모바일 하단 버튼 칸 100% 사용 */
  #bo_v.pb-view-skin .pb-view-bottom-actions li {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  /* 모바일 점프 폼 100% 사용 */
  #bo_v.pb-view-skin .pb-view-bump-form {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  /* 모바일 하단 버튼 100% 리사이징 */
  #bo_v.pb-view-skin .pb-view-bottom-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 5px !important;
    border-radius: 8px !important;
    font-size: clamp(11px, 3vw, 12px) !important;
    line-height: 40px !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
  }

  /* 모바일 점프 버튼 크기 통일 */
  #bo_v.pb-view-skin .pb-view-bottom-bump {
    width: 100% !important;
    min-width: 0 !important;
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 5px !important;
    border-color: #6794d3 !important;
    background: #6794d3 !important;
    color: #ffffff !important;
    box-sizing: border-box !important;
  }

  /* 모바일 글등록 아이콘 간격 축소 */
  #bo_v.pb-view-skin .pb-view-bottom-write {
    gap: 4px !important;
  }

  /* 관리형 배너는 모바일 화면 폭 안에서만 표시 */
  #bo_v.pb-view-skin .pb-banner-slot-board-view-bottom {
    width: 100% !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  #bo_v.pb-view-skin .pb-banner-slot-board-view-bottom .pb-banner-item,
  #bo_v.pb-view-skin .pb-banner-slot-board-view-bottom .pb-banner-item picture,
  #bo_v.pb-view-skin .pb-banner-slot-board-view-bottom .pb-banner-item img {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* 작성자 카드는 배너 아래에서 세로 구조로 전환 */
  #bo_v.pb-view-skin .pb-view-author-card {
    width: 100% !important;
    max-width: none !important;
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 18px !important;
    margin: 24px auto 18px !important;
    padding: 20px 18px !important;
  }

  #bo_v.pb-view-skin .pb-view-author-main {
    gap: 14px !important;
  }

  #bo_v.pb-view-skin .pb-view-author-card-img,
  #bo_v.pb-view-skin .pb-view-author-card-img img {
    width: 54px !important;
    height: 54px !important;
    flex-basis: 54px !important;
  }

  /* 모바일 작성자 카드 버튼은 좌우 영역 분리 */
  #bo_v.pb-view-skin .pb-view-author-actions {
    display: flex !important;
    align-self: stretch !important;
    width: 100% !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
  }

  /* 글 작성자 버튼은 오른쪽 끝에 배치 */
  #bo_v.pb-view-skin .pb-view-author-actions .pb-view-author-subscribe {
    margin-left: auto !important;
  }
}

/* 모바일 목록 상단은 제목만 왼쪽에 두고,
   전체 건수·페이지·포인트정책은 같은 줄의 오른쪽에 유지. */
@media (max-width: 768px) {

  /* 첫 줄: 제목은 왼쪽, 전체 건수·포인트정책은 오른쪽
     둘째 줄: RSS·검색·글쓰기 버튼 */
  #bo_list.pb-board-list .pb-board-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas:
      "title summary"
      "tools tools" !important;
    align-items: center !important;
    column-gap: 18px !important;
    row-gap: 20px !important;
    margin: 0 !important;
    padding: 0 0 6px !important;
  }

  /* 게시판 제목은 모바일에서도 항상 왼쪽 끝에 붙. */
  #bo_list.pb-board-list .pb-board-title-wrap {
    grid-area: title !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-self: start !important;
  }

  #bo_list.pb-board-list .pb-board-title {
    margin: 0 !important;
    white-space: nowrap !important;
    text-align: left !important;
  }

  /* 전체 건수·페이지·포인트정책은 제목과 같은 줄의 오른쪽 끝에 고정. */
  #bo_list.pb-board-list .pb-board-summary {
    grid-area: summary !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    min-width: 0 !important;
    width: auto !important;
    gap: 7px !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-self: end !important;
  }

  #bo_list.pb-board-list .pb-board-total {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 11px !important;
    text-align: right !important;
    white-space: nowrap !important;
  }

  #bo_list.pb-board-list .pb-board-point {
    flex: 0 0 auto !important;
  }

  /* 모바일에서는 RSS 버튼만 숨기고, 검색·글쓰기 버튼은 오른쪽 끝에 정렬. */
  #bo_list.pb-board-list .pb-board-tools {
    grid-area: tools !important;
    display: flex !important;
    justify-content: flex-end !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* RSS 링크는 두 번째 li이므로 모바일에서만 숨김.
   관리자 버튼이 있는 경우에도 RSS 링크 클래스 기준으로 정확히 숨김. */
  #bo_list.pb-board-list .pb-board-tools a[data-tooltip="RSS"] {
    display: none !important;
  }
}

/* 댓글 회원아이콘과 작성자 사이 여백을 줄임 */
.pb-comment-section .pb-comment-author .pb-comment-member-icon,
#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .pb-comment-member-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 22px !important;
  width: 22px !important;
  height: 22px !important;
  margin: 0 0 0 0 !important;
  overflow: hidden !important;
  border-radius: 5px !important;
  background: transparent !important;
  vertical-align: middle !important;
}

/* 댓글 작성자 앞 회원아이콘 이미지는 강제로 22x22만 보이게 */
.pb-comment-section .pb-comment-author .pb-comment-member-icon img,
#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .pb-comment-member-icon img {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  max-width: 22px !important;
  max-height: 22px !important;
  border-radius: 5px !important;
  object-fit: cover !important;
}

/* 사이드뷰 기본 프로필 이미지는 댓글 작성자 앞에서 숨김 */
.pb-comment-section .pb-comment-author .profile_img,
#bo_v.pb-view-skin .pb-comment-section #bo_vc .pb-comment-author .profile_img {
  display: none !important;
}

/* 댓글 파일 업로드 경고 레이어 배경 */
#bo_v.pb-view-skin~.pb-comment-upload-warning-layer,
.pb-comment-upload-warning-layer {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 99999;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15, 23, 42, 0.42);
  box-sizing: border-box;
}

/* 댓글 파일 업로드 경고 레이어 표시 */
#bo_v.pb-view-skin~.pb-comment-upload-warning-layer.is-active,
.pb-comment-upload-warning-layer.is-active {
  display: flex;
}

/* 댓글 파일 업로드 경고 박스 */
.pb-comment-upload-warning-box {
  width: 100%;
  max-width: 340px;
  padding: 26px 22px 20px;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.22);
  text-align: center;
  box-sizing: border-box;
}

/* 댓글 파일 업로드 경고 제목 */
.pb-comment-upload-warning-title {
  display: block;
  margin: 0 0 8px;
  color: #111827;
  font-family: "font-B", sans-serif;
  font-size: 16px;
  font-weight: 900;
  line-height: 1.35;
}

/* 댓글 파일 업로드 경고 안내문 */
.pb-comment-upload-warning-text {
  margin: 0;
  color: #6b7280;
  font-family: "font-R", sans-serif;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
}

/* 댓글 파일 업로드 경고 확인 버튼 */
.pb-comment-upload-warning-close {
  min-width: 78px;
  height: 36px;
  margin: 18px 0 0;
  padding: 0 18px;
  border: 0;
  border-radius: 8px;
  background: #9825ef;
  color: #ffffff;
  font-family: "font-B", sans-serif;
  font-size: 13px;
  font-weight: 900;
  line-height: 36px;
  cursor: pointer;
}

/* 회원 전용 첨부파일 안내문 공통 스타일 */
#bo_v.pb-view-skin .pb-member-file-notice {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  margin: 12px 0 0;
  padding: 15px 18px;
  border: 1px solid #eadcff;
  border-radius: 10px;
  background: #fbf7ff;
  color: #7d21dc;
  box-sizing: border-box;
  text-align: center;
}

/* 회원 전용 첨부파일 안내문 강조 문구 */
#bo_v.pb-view-skin .pb-member-file-notice strong {
  display: block;
  color: #7d21dc;
  font-family: "font-B", sans-serif;
  font-size: 15px;
  font-weight: 900;
  line-height: 1.45;
}

/* 댓글 첨부파일 안내문 여백 */
#bo_v.pb-view-skin .pb-comment-member-file-notice {
  margin-top: 10px;
}

/* 게시글 첨부파일 안내문 여백 */
#bo_v.pb-view-skin .pb-view-member-file-notice {
  margin-top: 12px;
}

/* 비회원 파일 클릭 경고 레이어 배경 */
.pb-member-file-alert-layer {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 100000;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15, 23, 42, 0.42);
  box-sizing: border-box;
}

/* 비회원 파일 클릭 경고 레이어 표시 */
.pb-member-file-alert-layer.is-active {
  display: flex;
}

/* 비회원 파일 클릭 경고 박스 */
.pb-member-file-alert-box {
  width: 100%;
  max-width: 340px;
  padding: 26px 22px 20px;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.22);
  text-align: center;
  box-sizing: border-box;
}

/* 비회원 파일 클릭 경고 제목 */
.pb-member-file-alert-title {
  display: block;
  margin: 0 0 8px;
  color: #111827;
  font-family: "font-B", sans-serif;
  font-size: 16px;
  font-weight: 900;
  line-height: 1.35;
}

/* 비회원 파일 클릭 경고 안내문 */
.pb-member-file-alert-text {
  margin: 0;
  color: #6b7280;
  font-family: "font-R", sans-serif;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
}

/* 비회원 파일 클릭 경고 확인 버튼 */
.pb-member-file-alert-close {
  min-width: 78px;
  height: 36px;
  margin: 18px 0 0;
  padding: 0 18px;
  border: 0;
  border-radius: 8px;
  background: #9825ef;
  color: #ffffff;
  font-family: "font-B", sans-serif;
  font-size: 13px;
  font-weight: 800;
  line-height: 36px;
  cursor: pointer;
}

/* 보기 화면 인기글 배지 */
#bo_v.pb-view-skin .pb-view-hot-level {
  display: inline-flex !important;
  position: relative !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  width: var(--pb-hot-width, 46px) !important;
  min-width: 5px !important;
  height: 17px !important;
  margin: 0 12px 0 0 !important;
  padding: 0 6px !important;
  overflow: visible !important;
  border-radius: 4px 0 0 4px !important;
  background: linear-gradient(90deg,
      #fa5600 0%,
      #fb7100 22%,
      #fc9800 50%,
      #ffbd18 76%,
      #ffe06a 100%) !important;
  color: #ffffff !important;
  font: 700 13px/17px Tahoma, Helvetica, "Microsoft Yahei", sans-serif !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  text-shadow: 1px 1px 1px #e40 !important;
  vertical-align: middle !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

/* 보기 화면 인기글 배지 오른쪽 꼬리 */
#bo_v.pb-view-skin .pb-view-hot-level::after {
  position: absolute !important;
  top: 0 !important;
  right: -10px !important;
  width: 11px !important;
  height: 17px !important;
  background: linear-gradient(90deg, #ffd347 0%, #ffe87b 100%) !important;
  content: "" !important;
  clip-path: polygon(0 0,
      100% 0,
      67% 24%,
      100% 49%,
      66% 74%,
      100% 100%,
      0 100%,
      22% 50%) !important;
}

/* 모바일 보기 화면 인기글 배지 */
@media (max-width: 900px) {
  #bo_v.pb-view-skin .pb-view-hot-level {
    margin-right: 4px !important;
    font-size: 12px !important;
  }
}

/* 목록 화면 고정·점프 행 배경색을 관리자 설정값으로 적용 */
#bo_list.pb-board-list .pb-board-row.is-pinned,
#bo_list.pb-board-list .pb-board-row.is-bumped {
  border-color: #eadcff !important;
  background: var(--pb-feature-row-bg, #fcfaff) !important;
}

/* 목록 화면 고정, 점프 배지를 공지 배지 크기와 동일하게 맞춤 */
#bo_list.pb-board-list .pb-board-pin-badge,
#bo_list.pb-board-list .pb-board-bump-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 22px;
  margin: 0;
  padding: 0 8px;
  border-radius: 999px;
  font-family: "font-B", sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 22px;
  vertical-align: middle;
  white-space: nowrap;
}

/* 목록 화면 고정 배지 */
#bo_list.pb-board-list .pb-board-pin-badge {
  background: #9825ef;
  color: #ffffff;
}

/* 목록 화면 점프 배지 강조 */
#bo_list.pb-board-list .pb-board-bump-badge {
  background: #f97316 !important;
  color: #ffffff !important;
}

/* 글쓰기 고정 옵션 정렬 */
#bo_w.pb-write-skin .pb-write-pin-option {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}

/* 글쓰기 고정 종료일 입력칸 */
#bo_w.pb-write-skin .pb-write-pin-date {
  width: 145px;
  height: 34px;
  padding: 0 10px;
  border: 1px solid #d7dce8;
  border-radius: 8px;
  background: #f8fafc;
  color: #98a2b3;
  font-family: "font-R", sans-serif;
  font-size: 13px;
}

/* 글쓰기 고정 체크 시 종료일 입력칸 활성화 */
#bo_w.pb-write-skin .pb-write-pin-date.is-active {
  background: #ffffff;
  color: #1f2937;
}

/* 글쓰기 고정 포인트 안내문 */
#bo_w.pb-write-skin .pb-write-pin-guide {
  display: none;
  color: #7d21dc;
  font-family: "font-R", sans-serif;
  font-size: 12px;
  font-weight: 600;
}

/* 글쓰기 고정 체크 시 포인트 안내문 표시 */
#bo_w.pb-write-skin .pb-write-pin-guide.is-active {
  display: inline-flex;
}

/* 보기 화면 고정 배지를 인기 배지와 떨어지게 조정 */
#bo_v.pb-view-skin .pb-view-pin-badge {
  display: inline-flex;
  align-items: center;
  height: 18px;
  margin: 0 8px 0 14px;
  padding: 0 8px;
  border-radius: 999px;
  background: #9825ef;
  color: #ffffff;
  font-family: "font-B", sans-serif;
  font-size: 10px;
  font-weight: 600;
  line-height: 18px;
  vertical-align: middle;
}

/* 보기 화면 점프 폼 정렬 */
#bo_v.pb-view-skin .pb-view-bump-form {
  display: inline-flex;
  margin: 0;
}

/* 보기 화면 점프 버튼 색상 */
#bo_v.pb-view-skin .pb-view-bottom-bump {
  border-color: #6794d3 !important;
  background: #6794d3 !important;
  color: #ffffff !important;
}

/* 보기 화면 점프 버튼 hover 색상 */
#bo_v.pb-view-skin .pb-view-bottom-bump:hover,
#bo_v.pb-view-skin .pb-view-bottom-bump:focus {
  border-color: #577fba !important;
  background: #577fba !important;
  color: #ffffff !important;
}

/* 모바일 공지 목록 배경은 터치 여부와 관계없이 항상 표시 */
#bo_list.pb-board-list .pb-board-row.is-notice,
#bo_list.pb-board-list .pb-board-row.is-notice:hover,
#bo_list.pb-board-list .pb-board-row.is-notice:active,
#bo_list.pb-board-list .pb-board-row.is-notice:focus,
#bo_list.pb-board-list .pb-board-row.is-notice:focus-within {
  background-color: var(--pb-notice-row-bg, #fff6fa) !important;
  background-image: none !important;
}

/* 공지 행 안쪽 셀은 행 배경을 가리지 않게 투명 처리 */
#bo_list.pb-board-list .pb-board-row.is-notice>.pb-board-cell {
  background: transparent !important;
}

@media (max-width: 900px) {

  /* 모바일 공지 행 배경을 기본 상태에서도 강제로 유지 */
  #bo_list.pb-board-list .pb-board-row.is-notice,
  #bo_list.pb-board-list .pb-board-row.is-notice:hover,
  #bo_list.pb-board-list .pb-board-row.is-notice:active,
  #bo_list.pb-board-list .pb-board-row.is-notice:focus,
  #bo_list.pb-board-list .pb-board-row.is-notice:focus-within {
    background-color: var(--pb-notice-row-bg, #fff6fa) !important;
    background-image: none !important;
  }
}

/* 게시판 화면 하단 여백 통일. */
body.pb-theme .pb-content-wrap:has(#bo_list.pb-board-list),
body.pb-theme .pb-content-wrap:has(#bo_v.pb-view-skin),
body.pb-theme .pb-content-wrap:has(#bo_w.pb-write-skin) {
  padding-bottom: 20px !important;
}

#bo_list.pb-board-list,
#bo_v.pb-view-skin,
#bo_w.pb-write-skin {
  margin-bottom: 0 !important;
}

@media (max-width: 768px) {

  body.pb-theme .pb-content-wrap:has(#bo_list.pb-board-list),
  body.pb-theme .pb-content-wrap:has(#bo_v.pb-view-skin),
  body.pb-theme .pb-content-wrap:has(#bo_w.pb-write-skin) {
    padding-bottom: 20px !important;
  }

  #bo_list.pb-board-list,
  #bo_v.pb-view-skin,
  #bo_w.pb-write-skin {
    margin-bottom: 0 !important;
  }
}

/* 게시판 상단·하단 여백 통합. */
body.pb-theme .pb-content-wrap:has(#bo_list.pb-board-list),
body.pb-theme .pb-content-wrap:has(#bo_v.pb-view-skin),
body.pb-theme .pb-content-wrap:has(#bo_w.pb-write-skin) {
  padding-top: 0 !important;
  padding-bottom: 20px !important;
}

/* 게시판 화면 상단 위치 통합. */
#bo_list.pb-board-list,
#bo_v.pb-view-skin,
#bo_w.pb-write-skin {
  margin-top: -18px !important;
  margin-bottom: 0 !important;
}

/* 제목 영역의 중복 상단 여백 제거. */
#bo_list.pb-board-list .pb-board-head,
#bo_v.pb-view-skin .pb-view-head,
#bo_w.pb-write-skin .pb-write-heading {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

@media (max-width: 768px) {

  /* 모바일 게시판 상단 위치. */
  #bo_list.pb-board-list,
  #bo_v.pb-view-skin,
  #bo_w.pb-write-skin {
    margin-top: -30px !important;
  }
}

/* 고정글 번호 아이콘 */
#bo_list.pb-board-list .pb-board-pin-icon {
  display: block;
  width: auto;
  height: auto;
  max-width: 32px;
  max-height: 32px;
  margin: 0 auto;
  object-fit: contain;
}


/* 댓글별 답변 입력창. */
.pb-comment-section .pb-comment-inline-reply {
  display: block;
  width: 100%;
  margin: 10px 0 14px;
}

.pb-comment-section .pb-comment-inline-reply[hidden] {
  display: none;
}

.pb-comment-section .pb-comment-inline-reply-form {
  width: 100%;
  padding: 14px;
  border: 1px solid #d9dee6;
  border-radius: 8px;
  background: #fff;
  box-sizing: border-box;
}

.pb-comment-section .pb-comment-inline-reply-content {
  display: block;
  width: 100%;
  min-height: 100px;
  padding: 12px;
  resize: vertical;
  border: 1px solid #e3e7ee;
  border-radius: 6px;
  background: #fff;
  color: #202632;
  line-height: 1.6;
  box-sizing: border-box;
  outline: 0;
}

.pb-comment-section .pb-comment-inline-reply-content:focus {
  border-color: #9227ea;
}

.pb-comment-section .pb-comment-inline-reply-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 10px;
}

.pb-comment-section .pb-comment-inline-reply-cancel,
.pb-comment-section .pb-comment-inline-reply-submit {
  min-width: 74px;
  height: 38px;
  padding: 0 14px;
  border-radius: 6px;
  cursor: pointer;
}

.pb-comment-section .pb-comment-inline-reply-cancel {
  border: 1px solid #d9dee6;
  background: #fff;
  color: #697386;
}

.pb-comment-section .pb-comment-inline-reply-submit {
  border: 0;
  background: #9227ea;
  color: #fff;
}

/* 우측 메뉴 답변용 전체 댓글창 자리. */
.pb-comment-section .pb-comment-full-reply-slot {
  width: 100%;
}

.pb-comment-section .pb-comment-full-reply-slot:empty {
  display: none;
}

.pb-comment-section .pb-comment-full-reply-slot #bo_vc_w {
  display: block;
  width: 100%;
  margin: 14px 0 18px;
}

.pb-comment-section #bo_vc_w.is-full-reply-mode {
  display: block;
}

/* 한 줄 댓글 직접 입력. */
.pb-comment-section .pb-comment-quick-inline-form {
  width: 100%;
  margin: 0;
}

.pb-comment-section .pb-comment-quick-inline-input {
  display: block;
  width: 100%;
  height: 34px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #202632;
  font: inherit;
  font-size: 12px;
  line-height: 34px;
  box-sizing: border-box;
  outline: 0;
}

.pb-comment-section .pb-comment-quick-inline-input::placeholder {
  color: #98a2b3;
}

.pb-comment-section .pb-comment-quick-inline-input:focus::placeholder {
  color: #b5bdc9;
}

/* 조건부 다운로드 설정. */
.pb-download-setting {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  padding: 12px;
  border: 1px solid #e3e6eb;
  border-radius: 8px;
  background: #f8f9fb;
}

.pb-download-setting>label {
  flex: 0 0 auto;
  font-family: 'font-B', sans-serif;
  font-size: 13px;
  color: #333;
}

.pb-download-condition {
  min-width: 220px;
  height: 38px;
}

.pb-download-point-wrap {
  display: none;
  align-items: center;
  gap: 6px;
}

.pb-download-point-wrap.is-visible {
  display: inline-flex;
}

.pb-download-point {
  width: 100px;
  height: 38px;
  text-align: right;
}

/* 조건부 첨부파일 카드. */
#bo_v_file.pb-view-resource ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.pb-download-file-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid #edf0f3;
}

.pb-download-file-card:last-child {
  border-bottom: 0;
}

.pb-download-file-icon {
  flex: 0 0 auto;
  margin-top: 2px;
  font-size: 28px;
  color: #7a62b8;
}

.pb-download-file-info {
  min-width: 0;
}

.pb-download-file-name {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  color: #35598e;
  font-family: 'font-B', sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pb-download-file-meta,
.pb-download-file-condition {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
  font-size: 12px;
  color: #777;
}

.pb-download-file-meta span+span::before {
  margin-right: 6px;
  content: '·';
}

.pb-download-file-condition {
  color: #d65a48;
}

.pb-download-history-btn {
  padding: 0;
  border: 0;
  background: transparent;
  color: #35598e;
  cursor: pointer;
}

/* 다운로드 기록 모달. */
.pb-download-history-modal[hidden] {
  display: none;
}

.pb-download-history-modal {
  position: fixed;
  z-index: 10050;
  inset: 0;
  background: rgba(0, 0, 0, 0.18);
}

.pb-download-history-dialog {
  position: fixed;
  top: 50%;
  left: 50%;
  width: min(600px, calc(100vw - 32px));
  min-height: 350px;
  overflow: hidden;
  border: 7px solid #c9c9c9;
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.18);
  transform: translate(-50%, -50%);
}

.pb-download-history-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 42px;
  padding: 0 10px 0 12px;
  border-bottom: 3px solid #d8d8d8;
  color: #35598e;
  cursor: move;
  user-select: none;
}

.pb-download-history-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  padding: 0;
  border: 1px solid #3c79cc;
  border-radius: 3px;
  background: #888;
  color: #fff;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.pb-download-history-file {
  padding: 10px 14px;
  border-bottom: 1px solid #e7e7e7;
  color: #555;
  font-size: 12px;
}

.pb-download-history-body {
  max-height: 430px;
  padding: 0 12px 18px;
  overflow: auto;
}

.pb-download-history-body table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.pb-download-history-body th,
.pb-download-history-body td {
  padding: 11px 8px;
  border-bottom: 1px dashed #d5d5d5;
  color: #555;
  font-size: 12px;
  text-align: center;
}

.pb-download-history-body th:first-child,
.pb-download-history-body td:first-child {
  text-align: left;
}

@media (max-width: 768px) {
  .pb-download-setting {
    align-items: stretch;
    flex-direction: column;
  }

  .pb-download-condition,
  .pb-download-point-wrap,
  .pb-download-point {
    width: 100%;
  }

  .pb-download-history-dialog {
    top: 50%;
    left: 50%;
    width: calc(100vw - 20px);
    min-height: 320px;
    transform: translate(-50%, -50%) !important;
  }

  .pb-download-history-head {
    cursor: default;
  }

  .pb-download-history-body th:nth-child(3),
  .pb-download-history-body td:nth-child(3) {
    display: none;
  }
}


/* 게시판 제목과 상단 메뉴 사이 여백 30px 추가. */
#bo_list.pb-board-list,
#bo_v,
#bo_w.pb-write-skin {
  margin-top: 20px !important;
}

/* 첨부파일 다운로드 설정을 업로드 영역 위에 표시. */
#bo_w.pb-write-skin .pb-write-file-area {
  display: flex;
  flex-direction: column;
}

#bo_w.pb-write-skin .pb-write-file-area>.pb-write-field-guide {
  order: 1;
}

#bo_w.pb-write-skin .pb-write-file-source {
  order: 2;
  display: grid !important;
  gap: 10px;
  margin: 10px 0 14px;
  padding: 14px;
  border: 1px solid #e2e7f0;
  border-radius: 10px;
  background: #f8faff;
  counter-reset: pb-download-file;
}

#bo_w.pb-write-skin .pb-write-file-source::before {
  content: "첨부파일 다운로드 설정";
  display: block;
  margin-bottom: 2px;
  color: #17213d;
  font-family: "font-B", sans-serif;
  font-size: 13px;
  line-height: 1.4;
}

#bo_w.pb-write-skin .pb-write-file-source>.bo_w_flie {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  counter-increment: pb-download-file;
}

#bo_w.pb-write-skin .pb-write-file-source .pb-download-setting {
  display: grid !important;
  grid-template-columns: 84px minmax(210px, 1fr) auto;
  align-items: center;
  gap: 10px;
  margin: 0 !important;
  padding: 10px 12px !important;
  border: 1px solid #e4e9f2 !important;
  border-radius: 8px !important;
  background: #fff !important;
}

#bo_w.pb-write-skin .pb-write-file-source .pb-download-setting::before {
  content: "첨부파일 " counter(pb-download-file);
  color: #69758d;
  font-family: "font-B", sans-serif;
  font-size: 12px;
}

#bo_w.pb-write-skin .pb-write-file-source .pb-download-setting>label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

#bo_w.pb-write-skin .pb-write-file-source .pb-download-condition {
  width: 100% !important;
  min-width: 0 !important;
  height: 38px !important;
}

#bo_w.pb-write-skin .pb-write-file-source .pb-download-point-wrap {
  white-space: nowrap;
}

#bo_w.pb-write-skin .pb-write-file-source .pb-download-point {
  width: 90px !important;
  height: 38px !important;
}

#bo_w.pb-write-skin #pb-write-file-drop {
  order: 3;
}

#bo_w.pb-write-skin #pb-write-file-list {
  order: 4;
}

@media (max-width: 768px) {

  #bo_list.pb-board-list,
  #bo_v,
  #bo_w.pb-write-skin {
    margin-top: 30px !important;
  }

  #bo_w.pb-write-skin .pb-write-file-source .pb-download-setting {
    grid-template-columns: 1fr;
  }

  #bo_w.pb-write-skin .pb-write-file-source .pb-download-setting::before {
    margin-bottom: -2px;
  }

  #bo_w.pb-write-skin .pb-write-file-source .pb-download-point-wrap {
    justify-content: flex-start;
  }
}



/* 게시글 보기 첨부파일 5열 배치. */
#bo_v.pb-view-skin #bo_v_file.pb-view-resource>ul {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 10px !important;
  width: 100% !important;
}

/* 게시글 보기 첨부파일 카드. */
#bo_v.pb-view-skin #bo_v_file.pb-view-resource .pb-download-file-card {
  display: flex !important;
  align-items: flex-start !important;
  min-width: 0 !important;
  padding: 14px !important;
  border: 1px solid #e3e8f1 !important;
  border-radius: 10px !important;
  background: #fff !important;
}

/* 마지막 카드도 동일한 테두리 유지. */
#bo_v.pb-view-skin #bo_v_file.pb-view-resource .pb-download-file-card:last-child {
  border: 1px solid #e3e8f1 !important;
}

/* 긴 파일명 줄바꿈. */
#bo_v.pb-view-skin #bo_v_file.pb-view-resource .pb-download-file-info {
  min-width: 0 !important;
}

#bo_v.pb-view-skin #bo_v_file.pb-view-resource .pb-download-file-name {
  display: block !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

@media (max-width: 900px) {

  /* 태블릿 게시글 보기 첨부파일 3열 배치. */
  #bo_v.pb-view-skin #bo_v_file.pb-view-resource>ul {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 600px) {

  /* 모바일 게시글 보기 첨부파일 2열 배치. */
  #bo_v.pb-view-skin #bo_v_file.pb-view-resource>ul {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}


/* 기존 첨부파일 삭제 체크박스 숨김. */
#bo_w.pb-write-skin .pb-write-existing-delete {
  display: none !important;
}