/* =========================================================
   BAMPhil - custom.css (CLEAN / SCOPE-SAFE)
   - member(로그인/가입/회원정보) 스킨 보호
   - 전역 강제 최소화 + 범위 지정으로 충돌 방지
   - Topbar 검색 flex 안정화(두줄/찢어짐 방지)
========================================================= */

@charset "utf-8";

/* =========================
   0) THEME TOKENS
========================= */
:root{
  /* base */
  --bg:#0b0c10;
  --panel:#111318;
  --panel2:#0f1116;
  --line:#1d212a;
  --txt:#e9eef7;
  --muted:#aab3c2;

  /* point */
  --gold:#ffd27d;
  --gold2:rgba(255,210,125,.45);

  /* ui */
  --r-card:16px;
  --r-ui:14px;
  --shadow:0 12px 30px rgba(0,0,0,.40);
}

/* =========================
   1) GLOBAL BASE
   - 전역은 "배경/기본색"만 (과한 덮어쓰기 금지)
   - member 페이지는 스킨이 이기도록 예외
========================= */
html, body{
  background:var(--bg);
  color:var(--txt);
}

/* member 페이지는 스킨 우선 (전역 덮지 않게) */
#mb_login, #fregister, #fregisterform, #register_form,
#member_confirm, #mb_confirm, #pw_confirm{
  background: initial;
  color: inherit;
}

/* 전역 링크: 장식만 제거(색은 섹션에서 지정) */
a{ text-decoration:none; }
a:hover{ text-decoration:none; }

/* 접근성: 포커스 링 (너무 튀지 않게) */
:focus-visible{
  outline:2px solid rgba(255,210,125,.28);
  outline-offset:2px;
}

/* =========================
   2) TOPBAR (로고/검색/회원메뉴)
========================= */
.bp-topbar{
  position:sticky;
  top:0;
  z-index:999;
  background:#0d0f14;
  border-bottom:1px solid var(--line);
}

.bp-topbar__inner{
  width:min(1200px, calc(100% - 28px));
  margin:0 auto;
  height:64px;
  display:flex;
  align-items:center;
  gap:14px;
}

/* brand */
.bp-brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  flex:0 0 auto;
}
.bp-brand img{
  height:60px;           /* ✅ 80px → 실사용 헤더 높이에 맞게 안정화 */
  width:auto;
  display:block;
  max-width:100%;
}

/* =========================
   Topbar Search + Nav (RIGHT AFTER LOGO)
   - 로고는 왼쪽 고정
   - 검색부터(검색+회원메뉴) 오른쪽 정렬
   - 검색은 주력 아님: 컴팩트
========================= */

/* ✅ 핵심: 검색이 오른쪽 정렬의 시작점 */
.bp-topbar__search{
  margin-left:auto;        /* 🔥 로고 다음부터 오른쪽으로 붙이기 */
  flex:0 1 260px;          /* ✅ 컴팩트(원하면 220~320 사이 조절) */
  max-width:260px;
  min-width:200px;

  display:flex;
  align-items:center;
  gap:8px;

  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  padding:6px 8px 6px 12px;
}

/* input */
.bp-topbar__search input{
  flex:1 1 auto;
  min-width:0;
  height:38px;
  background:transparent;
  border:0;
  color:var(--txt);
  outline:none;
}
.bp-topbar__search input::placeholder{
  color:rgba(255,255,255,.45);
}
.bp-topbar__search input:focus{
  box-shadow:none;
}

/* button */
.bp-topbar__search button{
  flex:0 0 auto;
  height:38px;
  padding:0 14px;
  border:1px solid rgba(255,210,125,.35);
  border-radius:999px;
  background:rgba(255,210,125,.14);
  color:#fff;
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
}
.bp-topbar__search button:hover{
  background:rgba(255,210,125,.20);
  border-color:rgba(255,210,125,.55);
}

/* =========================
   Topbar Nav (Right)
   - nav는 검색 오른쪽에 자연스럽게 붙기만 하면 됨
========================= */
.bp-topbar__nav{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}

/* nav icons */
.bp-ic{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 10px;
  border-radius:var(--r-ui);
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.05);
  color:var(--txt);
  text-decoration:none;
  font-weight:900;
}
.bp-ic:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.16);
}
.bp-ic__emoji{font-size:14px;line-height:1;}
.bp-ic__txt{font-size:12px;color:rgba(255,255,255,.80);}
.bp-ic--admin{
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.18);
}

/* =========================
   Mobile
========================= */
@media (max-width: 920px){
  /* 모바일에서는 검색을 아래로 */
  .bp-topbar__search{
    order:3;
    width:100%;
    max-width:none;
    min-width:0;
    margin-left:0;         /* ✅ 모바일에선 오른쪽 정렬 해제 */
  }
}

/* Topbar 링크 색상(범위 지정) */
.bp-topbar a{ color:#dfe7ff; }
.bp-topbar a:hover{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:4px;
}


/* 로그인 안내문 숨김 */
#hd_login_msg{
  position:absolute !important;
  top:0; left:0;
  width:1px; height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}

/* mobile */
@media (max-width: 920px){
  .bp-topbar__inner{
    height:auto;
    padding:12px 0;
    flex-wrap:wrap;
  }
  .bp-topbar__search{
    order:3;
    width:100%;
  }
  .bp-ic__txt{display:none;}
  .bp-brand img{height:36px;}
}

/* =========================
   3) GNB Dropdown
========================= */
.bp-gnb{
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
.bp-gnb__inner{
  width:min(1200px, calc(100% - 28px));
  margin:0 auto;
  height:52px;
  display:flex;
  gap:10px;
  align-items:center;
}

/* 1차 메뉴 */
.bp-gnb__item{ position:relative; }
.bp-gnb__link{
  display:inline-flex;
  align-items:center;
  height:40px;
  padding:0 14px;
  font-weight:900;
  color:rgba(255,255,255,.85);
  text-decoration:none;
  border-radius:999px;
  border:1px solid transparent;
}
.bp-gnb__link:hover{
  color:#fff;
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.10);
}

/* active(bo_table) */
.bp-gnb__item.is-on .bp-gnb__link{
  background:rgba(255,210,125,.12);
  border-color:rgba(255,210,125,.22);
  color:#fff;
}

/* 드롭다운 */
.bp-gnb__drop{
  position:absolute;
  top:44px;
  left:0;
  min-width:200px;
  background:rgba(15,17,22,.96);
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  padding:10px;
  box-shadow:var(--shadow);
  display:none;
  z-index:1000;
}
.bp-gnb__item:hover .bp-gnb__drop{ display:block; }

.bp-gnb__drop a{
  display:flex;
  align-items:center;
  height:40px;
  padding:0 12px;
  font-size:13px;
  font-weight:900;
  color:rgba(255,255,255,.82);
  text-decoration:none;
  white-space:nowrap;
  border-radius:12px;
}
.bp-gnb__drop a:hover{
  background:rgba(255,255,255,.07);
  color:#fff;
}
.bp-gnb__drop a.is-on{
  background:rgba(255,210,125,.14);
  border:1px solid rgba(255,210,125,.22);
  color:#fff;
}

/* divider (span.bp-gnb__divider) */
.bp-gnb__divider{
  display:block;
  height:1px;
  margin:8px 6px;
  background:rgba(255,255,255,.08);
}

/* 업체 강조 */
.bp-gnb__item--biz .bp-gnb__link{ color:var(--gold); }
.bp-gnb__item--biz.is-on .bp-gnb__link{ color:#fff; }

/* GNB 링크 색상(범위 지정) */
.bp-gnb a{ color:#dfe7ff; }
.bp-gnb a:hover{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:4px;
}

/* 모바일 가로스크롤 */
@media (max-width: 900px){
  .bp-gnb__inner{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .bp-gnb__inner::-webkit-scrollbar{ display:none; }
}

/* =========================
   4) Recent Box (bp_box)
========================= */
.bp-boxgrid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:12px;
  margin: 14px 0 18px;
}
@media (max-width: 1100px){
  .bp-boxgrid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px){
  .bp-boxgrid{ grid-template-columns: 1fr; }
}

.bpbox{
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  overflow:hidden;
}
.bpbox__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 12px 14px;
  border-bottom:1px solid var(--line);
}
.bpbox__title{
  color:#fff;
  text-decoration:none;
  font-size:16px;
  font-weight:900;
  letter-spacing:-0.2px;
  position:relative;
  padding-left:12px;
}
.bpbox__title::before{
  content:"";
  position:absolute;
  left:0; top:50%;
  transform:translateY(-50%);
  width:4px; height:16px;
  border-radius:999px;
  background:var(--gold);
}
.bpbox__more{
  color: rgba(255,255,255,.70);
  text-decoration:none;
  font-weight:900;
  font-size:18px;
  line-height:1;
  width:26px; height:26px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
}
.bpbox__more:hover{ color:#fff; border-color: rgba(255,210,125,.30); }

.bpbox__body{ padding: 10px 14px 12px; }
.bpbox__list{ list-style:none; margin:0; padding:0; }
.bpbox__item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding: 7px 0;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.bpbox__item:last-child{ border-bottom:0; }
.bpbox__link{
  color: rgba(255,255,255,.86);
  text-decoration:none;
  font-weight:800;
  font-size:13px;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.bpbox__link:hover{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:4px;
}

.bpbox__meta{ display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.bpbox__new{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px; height:16px;
  border-radius:4px;
  background:#ff3b30;
  color:#fff;
  font-size:11px;
  font-weight:900;
}
.bpbox__date{ color: rgba(255,255,255,.55); font-size:12px; font-weight:900; }
.bpbox__empty{ color: rgba(255,255,255,.55); font-size:13px; padding: 8px 0; }

/* =========================
   5) BOARD (BASIC SKIN → BLACK LUXE)
   - 게시판에서만 강제(회원 스킨 보호)
========================= */
#bo_list, #bo_v, #bo_w,
#bo_list > div, #bo_v > div, #bo_w > div,
.board, .board_view, .board_write{
  background: transparent !important;
}

/* 게시판 내부 래퍼를 패널로 */
#bo_list .tbl_head01,
#bo_v,
#bo_w .tbl_frm01{
  background: var(--panel) !important;
  border:1px solid var(--line) !important;
  border-radius: var(--r-card) !important;
  overflow:hidden;
}

/* 목록 */
#bo_list .tbl_head01 thead th{
  background: transparent !important;
  border-color: var(--line) !important;
  color: rgba(255,255,255,.78);
  font-weight:900;
}
#bo_list .tbl_head01 td{
  background: transparent !important;
  border-color: rgba(255,255,255,.07) !important;
  color: rgba(255,255,255,.84);
}
#bo_list .tbl_head01 tbody tr:hover td{
  background: rgba(255,255,255,.03) !important;
}

/* 게시판 내부 링크 */
#bo_list a, #bo_v a, #bo_w a{
  color: rgba(255,255,255,.88) !important;
  text-decoration:none !important;
}
#bo_list a:hover, #bo_v a:hover, #bo_w a:hover{
  color:#fff !important;
  text-decoration:underline !important;
  text-underline-offset:4px;
}

/* 보기 */
#bo_v_title{
  padding:16px 16px 10px;
  border-bottom:1px solid rgba(255,255,255,.08);
  font-weight:900;
  letter-spacing:-0.2px;
}
#bo_v_info{
  padding:0 16px 14px;
  border-bottom:1px solid rgba(255,255,255,.08);
  color:rgba(255,255,255,.60);
}
#bo_v_con{
  padding:16px;
  line-height:1.8;
  font-size:15px;
}
#bo_v_con img{ max-width:100%; height:auto; border-radius:14px; }

/* 쓰기 */
#bo_w .tbl_frm01 th, #bo_w .tbl_frm01 td{
  background: transparent !important;
  border-color: rgba(255,255,255,.08) !important;
  color: var(--txt) !important;
}
#bo_w input[type="text"],
#bo_w input[type="password"],
#bo_w input[type="email"],
#bo_w input[type="url"],
#bo_w input[type="number"],
#bo_w select,
#bo_w textarea{
  background: var(--panel2) !important;
  border:1px solid var(--line) !important;
  color: var(--txt) !important;
  border-radius:12px !important;
  padding:10px 12px !important;
  box-shadow:none !important;
  outline:none !important;
}
#bo_w textarea{ min-height:220px; }
#bo_w input:focus, #bo_w select:focus, #bo_w textarea:focus{
  border-color: var(--gold2) !important;
}

/* 목록 테이블/셀 흰 배경 제거 */
#bo_list table, #bo_list thead, #bo_list tbody, #bo_list tr, #bo_list td, #bo_list th{
  background: transparent !important;
}

/* 게시판 폭 */
#bo_list, #bo_v, #bo_w{
  max-width:1200px;
  margin: 0 auto 30px;
  padding: 0 14px;
}
#bo_list > *, #bo_v > *, #bo_w > *{ max-width:100%; }

/* =========================
   6) BUTTONS (BOARD ONLY)
========================= */
#bo_list a.btn, #bo_v a.btn, #bo_w a.btn,
#bo_list .btn,  #bo_v .btn,  #bo_w .btn,
#bo_list .btn_b01, #bo_v .btn_b01, #bo_w .btn_b01,
#bo_list .btn_b02, #bo_v .btn_b02, #bo_w .btn_b02,
#bo_list .btn_admin, #bo_v .btn_admin, #bo_w .btn_admin,
#bo_list .btn_submit, #bo_v .btn_submit, #bo_w .btn_submit,
#bo_list .btn_cancel, #bo_v .btn_cancel, #bo_w .btn_cancel,
#bo_list button, #bo_v button, #bo_w button,
#bo_list input[type="submit"], #bo_v input[type="submit"], #bo_w input[type="submit"],
#bo_list input[type="button"], #bo_v input[type="button"], #bo_w input[type="button"],
#bo_btn_top a, #bo_btn_top button, #bo_btn_top input,
#bo_btn_bot a, #bo_btn_bot button, #bo_btn_bot input{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  height:40px !important;
  padding:0 14px !important;
  border-radius:14px !important;
  font-weight:900 !important;
  letter-spacing:-0.2px !important;
  text-decoration:none !important;
  box-shadow:none !important;
  cursor:pointer !important;

  border:1px solid rgba(255,255,255,.18) !important;
  background: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.88) !important;

  transition:.15s ease !important;
}
#bo_btn_top a:hover, #bo_btn_bot a:hover,
#bo_list .btn:hover, #bo_v .btn:hover, #bo_w .btn:hover{
  background: rgba(255,255,255,.10) !important;
  border-color: rgba(255,255,255,.30) !important;
  transform: translateY(-1px);
}

/* PRIMARY: 글쓰기/작성완료 */
#bo_btn_top a[href*="write.php"],
#bo_btn_bot a[href*="write.php"],
#bo_w input[type="submit"],
#bo_w button[type="submit"],
#bo_w .btn_submit{
  border-color: var(--gold2) !important;
  background: rgba(255,210,125,.14) !important;
  color: var(--gold) !important;
}
#bo_w input[type="submit"]:hover,
#bo_w button[type="submit"]:hover,
#bo_w .btn_submit:hover{
  background: rgba(255,210,125,.20) !important;
  border-color: rgba(255,210,125,.80) !important;
}

/* CANCEL/LIST */
#bo_w .btn_cancel, #bo_v .btn_cancel, #bo_list .btn_cancel{
  background: rgba(255,255,255,.05) !important;
  border-color: rgba(255,255,255,.18) !important;
  color: rgba(255,255,255,.88) !important;
}

/* 버튼류(게시판 내부만) */
#bo_list .btn-light, #bo_v .btn-light, #bo_w .btn-light,
#bo_list .btn-outline-secondary, #bo_v .btn-outline-secondary, #bo_w .btn-outline-secondary,
#bo_list .btn-secondary, #bo_v .btn-secondary, #bo_w .btn-secondary{
  background: rgba(255,255,255,.06) !important;
  border-color: rgba(255,255,255,.18) !important;
  color: rgba(255,255,255,.88) !important;
}

/* 상단 아이콘 버튼(li background) */
.bo_fx .btn_bo_user li,
#bo_btn_top .btn_bo_user li{
  float:left;
  width:40px;
  height:40px;
  text-align:center;
  margin-left:6px;

  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: 14px !important;
  overflow:hidden;
}
.bo_fx .btn_bo_user li > a,
.bo_fx .btn_bo_user li > button,
#bo_btn_top .btn_bo_user li > a,
#bo_btn_top .btn_bo_user li > button{
  width:100%;
  height:100%;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background: transparent !important;
  border: 0 !important;
  color: rgba(255,255,255,.88) !important;
  text-decoration:none !important;
  box-shadow:none !important;
  padding:0 !important;
}
.bo_fx .btn_bo_user li:hover,
#bo_btn_top .btn_bo_user li:hover{
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.30) !important;
  transform: translateY(-1px);
}

/* 페이징 */
.pg_wrap .pg a, .pg_wrap .pg strong{
  border-radius:10px;
  border-color: var(--line) !important;
  background: transparent !important;
  color: rgba(255,255,255,.75) !important;
  font-weight:900;
}
.pg_wrap .pg strong{
  border-color: var(--gold2) !important;
  color: var(--gold) !important;
}

/* 게시판 상단 버튼 정렬 */
#bo_btn_top{
  max-width:1200px;
  margin: 0 auto 12px;
  padding: 0 14px;
  display:flex;
  justify-content:flex-end;
}
#bo_btn_top a[href*="write.php"]{
  background: rgba(255,210,125,.16) !important;
  border-color: rgba(255,210,125,.55) !important;
  color: var(--gold) !important;
}
#bo_btn_top a[href*="write.php"]:hover{
  background: rgba(255,210,125,.24) !important;
}

/* =========================
   7) FOOTER (BAMPHIL)
========================= */
.bp-footer{
  margin-top:60px;
  background:#05060a;
  border-top:1px solid #1d212a;
  color:rgba(255,255,255,.65);
}
.bp-footer__inner{
  max-width:1200px;
  margin:0 auto;
  padding:40px 14px;
  display:grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap:40px;
}
.bp-footer__brand{
  font-size:18px;
  font-weight:900;
  color:#fff;
  margin-bottom:10px;
}
.bp-footer__desc{
  font-size:13px;
  line-height:1.6;
  color:rgba(255,255,255,.55);
}
.bp-footer__title{
  font-size:13px;
  font-weight:900;
  color:var(--gold);
  margin-bottom:10px;
}
.bp-footer__col a{
  display:block;
  font-size:13px;
  color:rgba(255,255,255,.65);
  margin-bottom:8px;
  text-decoration:none;
}
.bp-footer__col a:hover{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:4px;
}
.bp-footer__copy{
  border-top:1px solid #1d212a;
  text-align:center;
  padding:14px;
  font-size:12px;
  color:rgba(255,255,255,.45);
}
@media (max-width: 900px){
  .bp-footer__inner{
    grid-template-columns:1fr;
    gap:24px;
  }
}

/* =========================
   8) MEMO (쪽지) - BAMPhil
   - 너무 강한 "#memo *" 제거(폼/버튼까지 망가질 수 있음)
========================= */
#memo, .memo, #memo_list, #memo_write, #memo_view{
  max-width:1200px;
  margin: 0 auto 30px;
  padding: 0 14px;
  color: var(--txt);
}

/* 래퍼 */
.bp-memo{
  max-width:1200px;
  margin:0 auto 30px;
  padding:0 14px;
}
.bp-memo__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin:14px 0 12px;
}
.bp-memo__title{
  margin:0;
  font-size:18px;
  font-weight:900;
  letter-spacing:-0.2px;
  color:#fff;
}
.bp-memo__panel{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--r-card);
  overflow:hidden;
  padding:14px;
}
.bp-memo__list{list-style:none;margin:0;padding:0;}
.bp-memo__item{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:12px 6px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.bp-memo__item:last-child{border-bottom:0;}
.bp-memo__subject a{
  color:rgba(255,255,255,.92) !important;
  font-weight:900;
  text-decoration:none !important;
}
.bp-memo__subject a:hover{
  color:#fff !important;
  text-decoration:underline !important;
  text-underline-offset:4px;
}
.bp-memo__meta{
  margin-top:6px;
  color:rgba(255,255,255,.60);
  font-size:12px;
  font-weight:900;
}
.bp-badge{
  margin-left:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:18px;
  padding:0 6px;
  border-radius:6px;
  font-size:11px;
  font-weight:900;
  background:#ff3b30;
  color:#fff;
}
.bp-empty{
  color:rgba(255,255,255,.55);
  font-size:13px;
  padding:18px 6px;
}
@media (max-width:700px){
  .bp-memo__item{flex-direction:column; align-items:flex-start;}
  .bp-memo__right{width:100%; display:flex; gap:8px; justify-content:flex-end;}
}

/* =========================
   9) ADS
========================= */
.bp-ad{margin:14px 0;}
.bp-ad__link{
  display:block;
  border:1px solid #1d212a;
  border-radius:var(--r-card);
  overflow:hidden;
  background:#111318
}
.bp-ad__img{display:block;width:100%;height:auto}
.bp-adpromo__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:12px
}
@media (max-width:900px){
  .bp-adpromo__grid{grid-template-columns:1fr}
}

/* =========================
   10) LEVEL ICON / NAME
========================= */
.bp-lv-icon{
  width:16px;
  height:16px;
  vertical-align:-3px;
  margin-right:6px;
}
.bp-name{ vertical-align:middle; }

/* 작성자(닉네임) 색상 */
td.td_name,
td.td_name a,
td.td_name a:visited,
.sv_member, .sv_member a,
.sv_guest, .sv_guest a{
  color:#eaeaea !important;
}
td.td_name a:hover,
.sv_member a:hover,
.sv_guest a:hover{
  color:#ffffff !important;
}
.td_name, .td_name a{ white-space: nowrap; }
td.td_name{ width:150px; }

/* 게시물 보기 상단 버튼 흰 배경 제거(뷰 상단만) */
#bo_v_top ul,
#bo_v_top .btn_bo_user li,
#bo_v_top .btn_bo_user li a,
#bo_v_top .more_opt.is_view_btn{
  background: transparent !important;
}
#bo_v_top .btn_bo_user > li > a,
#bo_v_top .btn_bo_user > li > button{
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  color: var(--txt) !important;
  border-radius: 10px;
}
#bo_v_top .btn_bo_user > li > a:hover,
#bo_v_top .btn_bo_user > li > button:hover{
  background: rgba(255,255,255,0.10) !important;
  border-color: rgba(255,255,255,0.20) !important;
  color:#fff !important;
}
#bo_v_top .more_opt.is_view_btn{
  background: var(--panel) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
}
#bo_v_top .more_opt.is_view_btn a{
  background: transparent !important;
  color: var(--txt) !important;
}
#bo_v_top .more_opt.is_view_btn a:hover{
  background: rgba(255,255,255,0.06) !important;
}

/* ===== GNB hover gap fix (드롭다운 사라짐 방지) ===== */

/* 1) 드롭다운을 살짝 위로 붙여서 빈틈 제거 */
.bp-gnb__drop{
  top:38px;                 /* 기존 44px → 링크(40px)보다 살짝 겹치게 */
}

/* 2) 링크-드롭다운 사이에 투명 브릿지 생성(마우스 이동 안전구간) */
.bp-gnb__item::after{
  content:"";
  position:absolute;
  left:0;
  top:40px;                 /* 링크 아래쪽부터 */
  width:100%;
  height:12px;              /* 빈틈을 덮는 안전구간 */
  background:transparent;
  display:none;
}
.bp-gnb__item:hover::after{
  display:block;
}

/* 3) 드롭다운 위쪽에도 약간의 패딩을 줘서 진입이 편하게 */
.bp-gnb__drop{
  padding-top:12px;
}
.bp-gnb__drop a{
  margin-top:-2px;          /* 패딩으로 내려간 느낌만 살짝 보정 */
}
/* =========================================================
   11) MOBILE NAV (FINAL / NO DUPLICATE)
   - 모바일에서만 햄버거 노출
   - 모바일에서는 PC GNB 숨김
   - Topbar 정렬: [햄버거+로고] 1줄, [검색] 2줄, [회원메뉴] 우측
========================================================= */

/* 기본: PC에서는 모바일 메뉴 숨김 */
.bp-mnav-btn{ display:none; }
.bp-mnav{ display:none; }

/* ===== Mobile Nav Panel ===== */
.bp-mnav{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.55);
  z-index:2000;
}
.bp-mnav.is-open{ display:block; }

.bp-mnav__panel{
  position:absolute;
  right:0; top:0;
  width:min(88vw, 360px);
  height:100%;
  background:var(--panel);
  border-left:1px solid rgba(255,255,255,.10);
  box-shadow:0 20px 60px rgba(0,0,0,.55);
  padding:14px 14px 18px;
  overflow:auto;
}

.bp-mnav__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:8px 6px 14px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.bp-mnav__close{
  height:36px;
  padding:0 10px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
  color:#fff;
  font-weight:900;
  cursor:pointer;
}
.bp-mnav__sec{ padding:14px 6px; }
.bp-mnav__title{
  font-size:13px;
  font-weight:900;
  color:var(--gold);
  margin-bottom:10px;
}
.bp-mnav__sec a{
  display:block;
  padding:10px 10px;
  border-radius:12px;
  color:rgba(255,255,255,.86);
  border:1px solid transparent;
}
.bp-mnav__sec a:hover{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.10);
}

@media (max-width: 900px){
  .bp-gnb{ display:none !important; } /* 모바일에서 PC 메뉴 숨김 */

  /* ✅ 모바일에서 회원메뉴(nav) 숨김 -> 햄버거가 진짜 오른쪽 끝 */
  .bp-topbar__nav{ display:none !important; }

  /* ✅ 햄버거 버튼 노출 */
  .bp-mnav-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:12px;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.06);
    color:rgba(255,255,255,.92);
    font-weight:900;
    cursor:pointer;
  }

  /* ✅ Topbar: 로고(좌) + 햄버거(우) 한줄 / 검색은 아래 */
  .bp-topbar__inner{
    height:auto;
    padding:12px 0;
    flex-wrap:wrap;
    gap:10px;
  }

  .bp-brand{ order:1; }
  .bp-mnav-btn{ order:2; margin-left:auto; }  /* 🔥 오른쪽 끝 */
  .bp-topbar__search{
    order:3;
    width:100%;
    max-width:none;
    min-width:0;
    margin-left:0;
  }
}

/* =========================================================
   99) FINAL OVERRIDES (MOBILE TOPBAR + ICONS + MEMBER DARK)
   - 모바일 깨짐(검색폼 노출/햄버거 줄바꿈/로그인 메뉴 누락) 최종 고정
========================================================= */

/* ---------- Board Icons (NEW/HOT/VIP) ---------- */
#bo_list .bo_tit .new_icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:16px !important;
  height:16px !important;
  line-height:16px !important;
  margin-left:6px !important;
  border-radius:4px !important;
  background:#ffd34d !important;      /* 노란 배경 */
  color:#ff2d2d !important;           /* 빨간 N */
  border:1px solid rgba(0,0,0,.28) !important;
  font-size:11px !important;
  font-weight:900 !important;
  vertical-align:middle !important;
  box-shadow:0 2px 8px rgba(0,0,0,.30) !important;
}
/* HOT: 같은 톤(노랑 계열) + 빨강 글자(H) */
#bo_list .bo_tit .hot_icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:16px !important;
  height:16px !important;
  line-height:16px !important;
  margin-left:6px !important;
  border-radius:4px !important;
  background:rgba(255,210,125,.95) !important; /* 골드 */
  color:#ff2d2d !important;
  border:1px solid rgba(0,0,0,.28) !important;
  font-size:11px !important;
  font-weight:900 !important;
  vertical-align:middle !important;
  box-shadow:0 2px 8px rgba(0,0,0,.28) !important;
}
/* VIP 전용 아이콘(스킨에서 <span class="vip_icon">V</span> 같은 형태로 출력하면 적용) */
#bo_list .bo_tit .vip_icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:16px !important;
  height:16px !important;
  line-height:16px !important;
  margin-left:6px !important;
  border-radius:4px !important;
  background:rgba(255,210,125,.18) !important;
  color:var(--gold) !important;
  border:1px solid rgba(255,210,125,.45) !important;
  font-size:11px !important;
  font-weight:900 !important;
  vertical-align:middle !important;
  box-shadow:0 2px 10px rgba(0,0,0,.30) !important;
}

/* ---------- Topbar Tools (Search + Hamburger) ---------- */
.bp-topbar__tools{ display:none; }

/* 모바일: 로고(좌) + [검색버튼,햄버거](우) 1줄 / 검색폼은 버튼 클릭 시만 */
@media (max-width:900px){
  /* topbar 기본 정렬 */
  .bp-topbar__inner{
    height:auto;
    padding:12px 0;
    flex-wrap:wrap;
    gap:10px;
  }

  /* 1줄: 로고 좌 */
  .bp-brand{ order:1; }

  /* 1줄: 우측 툴 */
  .bp-topbar__tools{
    order:2;
    margin-left:auto;
    display:flex !important;
    align-items:center;
    gap:8px;
    flex:0 0 auto;
  }

  /* 모바일은 회원메뉴를 햄버거로 이동 (상단에서 숨김) */
  .bp-topbar__nav{ display:none !important; }

  /* 검색/햄버거 버튼 */
  .bp-sbtn, .bp-mnav-btn{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:12px;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.06);
    color:rgba(255,255,255,.92);
    font-weight:900;
    cursor:pointer;
  }
  .bp-sbtn:hover, .bp-mnav-btn:hover{
    background:rgba(255,255,255,.10);
    border-color:rgba(255,255,255,.18);
  }

  /* 검색폼: 기본 숨김 (문제1 해결) */
  .bp-topbar__search{
    display:none !important;
    order:3;
    width:100%;
    max-width:none;
    min-width:0;
    margin-left:0;
  }
  .bp-topbar__search.is-open{
    display:flex !important;
  }
}

/* ---------- Member/Login Dark Fix (문제3 해결) ---------- */
#mb_login, #fregister, #fregisterform, #register_form,
#member_confirm, #mb_confirm, #pw_confirm{
  background:var(--bg) !important;
  color:var(--txt) !important;
}
#mb_login .mbskin,
#fregister .mbskin,
#fregisterform .mbskin,
#register_form .register_form,
#member_confirm .mbskin,
#mb_confirm .mbskin,
#pw_confirm .mbskin{
  background:var(--panel) !important;
  border:1px solid var(--line) !important;
  border-radius:16px !important;
  box-shadow:var(--shadow) !important;
  color:var(--txt) !important;
}
#mb_login input, #mb_login select, #mb_login textarea,
#fregister input, #fregister select, #fregister textarea,
#fregisterform input, #fregisterform select, #fregisterform textarea,
#register_form input, #register_form select, #register_form textarea{
  background:var(--panel2) !important;
  border:1px solid var(--line) !important;
  color:var(--txt) !important;
}
#mb_login a, #fregister a, #fregisterform a, #register_form a{
  color:rgba(255,255,255,.88) !important;
}


/* =========================================================
   12) MOBILE FIX (<=920px)
   - 검색폼: 기본 숨김, 🔍 버튼으로 토글
   - 우측 도구: [검색] [햄버거] 순서 고정
   - 회원/로그인 메뉴는 "전체메뉴(슬라이드)"에서 제공 (헤더 아이콘은 숨김)
========================================================= */

.bp-topbar__tools{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}

/* PC에서는 도구 버튼 숨김 (폼 검색 유지) */
.bp-sbtn{ display:none; }
.bp-mnav-btn{ display:none; }

@media (max-width:920px){

  /* 모바일에서 PC GNB 숨김 */
  .bp-gnb{ display:none !important; }

  /* 헤더: 로고 왼쪽 / 도구(검색+햄버거) 오른쪽 / 검색은 2줄 */
  .bp-topbar__inner{
    height:auto;
    padding:12px 0;
    flex-wrap:wrap;
    gap:10px;
  }

  .bp-brand{ order:1; flex:0 0 auto; }
  .bp-topbar__tools{
    order:2;
    margin-left:auto;  /* 🔥 도구를 맨 오른쪽 */
  }

  /* 헤더 상단 아이콘 메뉴는 모바일에서 숨김(슬라이드 메뉴에 노출) */
  .bp-topbar__nav{ display:none !important; }

  /* 도구 버튼 노출 */
  .bp-sbtn,
  .bp-mnav-btn{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:12px;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.06);
    color:rgba(255,255,255,.92);
    font-weight:900;
    cursor:pointer;
    margin:0 !important;
  }
  .bp-sbtn:hover,
  .bp-mnav-btn:hover{
    background:rgba(255,255,255,.10);
    border-color:rgba(255,255,255,.18);
  }

  /* ✅ 중요: 모바일에서는 검색폼 기본 숨김 → 토글 시만 표시 */
  .bp-topbar__search{
    display:none !important;
    order:3;
    width:100%;
    max-width:none;
    min-width:0;
    margin-left:0;
  }
  .bp-topbar__search.is-open{
    display:flex !important;
  }
}

/* =========================================================
   13) BOARD TITLE ICONS (NEW/HOT/VIP)
   - NEW: 노랑 배경 + 빨강 N
   - HOT: 노랑 배경 + 빨강 H
   - VIP: 골드 라인 + "VIP"
========================================================= */

/* NEW */
#bo_list .bo_tit .new_icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:16px !important;
  height:16px !important;
  line-height:16px !important;
  margin-left:6px !important;
  border-radius:4px !important;
  background:#ffd34d !important;
  color:#ff2d2d !important;
  border:1px solid rgba(0,0,0,.28) !important;
  font-size:11px !important;
  font-weight:900 !important;
  vertical-align:middle !important;
  box-shadow:0 2px 8px rgba(0,0,0,.30) !important;
}

/* HOT */
#bo_list .bo_tit .hot_icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:16px !important;
  height:16px !important;
  line-height:16px !important;
  margin-left:6px !important;
  border-radius:4px !important;
  background:#ffd34d !important;
  color:#ff2d2d !important;
  border:1px solid rgba(0,0,0,.28) !important;
  font-size:11px !important;
  font-weight:900 !important;
  vertical-align:middle !important;
  box-shadow:0 2px 8px rgba(0,0,0,.30) !important;
}

/* VIP (스킨에서 <span class="vip_icon">VIP</span> 같이 넣어주면 적용됨) */
#bo_list .bo_tit .vip_icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:16px;
  padding:0 6px;
  margin-left:6px;
  border-radius:999px;
  font-size:11px;
  font-weight:900;
  color:var(--gold);
  border:1px solid rgba(255,210,125,.35);
  background:rgba(255,210,125,.10);
  vertical-align:middle;
}


/* =========================
   상단 Topbar + GNB 고정
========================= */

/* 레이어 우선순위 */
.bp-topbar{ z-index: 2000; }
.bp-gnb{ z-index: 1900; }

/* 고정 */
.bp-topbar{
  position: fixed;
  top: 0; left: 0; right: 0;
  width: 100%;
}

.bp-gnb{
  position: fixed;
  left: 0; right: 0;
  top: var(--bp-topbar-h, 64px); /* JS가 실제 높이로 넣어줌 */
  width: 100%;
}

/* 고정된 상단 높이만큼 콘텐츠를 아래로 밀기 */
body{
  padding-top: calc(var(--bp-topbar-h, 64px) + var(--bp-gnb-h, 52px));
}

/* 모바일에서 bp-gnb를 숨기는 너의 기존 CSS가 있다면,
   bp-gnb 높이는 0으로 계산되어 padding도 자동으로 줄어듦 */


/* =========================================================
   ✅ 2025-12-20 FINAL FIX
   - 전체 폭을 "조금 더 좁게" (PC)
   - 회원 닉네임 글자 크기 ↓ (다른 글자와 동일)
   - GNB(메뉴) 글자 크기 원래 톤으로 복구
   - 드롭다운이 안 뜨는 케이스 강제 보정
========================================================= */

/* 컨테이너 폭(PC) 살짝 줄이기 */
.bp-topbar__inner,
.bp-gnb__inner,
#bo_list, #bo_v, #bo_w,
#memo, .memo, #memo_list, #memo_write, #memo_view{
  width: min(1080px, calc(100% - 24px)) !important;
}

/* TOPBAR: 버튼/문구가 커져서 답답해지는 것 방지 */
.bp-topbar__inner{ gap:12px !important; }

/* ✅ 회원 한줄(앱 느낌) - 크기 정리 */
.bp-userpill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:40px;
  padding:0 10px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.90);
  text-decoration:none;
  white-space:nowrap;
}
.bp-userpill:hover{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.16); }
.bp-userpill__icon{ display:inline-flex; align-items:center; }
.bp-userpill__fallback{ line-height:1; }

/* 아이콘이 커도 레이아웃 안 흔들리게(이미지 강제 고정) */
.bp-userpill img.level-icon{
  width:16px !important;
  height:16px !important;
  margin:0 2px 0 0 !important;
  vertical-align:-2px !important;
}

/* ✅ 닉네임 글자: 다른 글자와 같은 크기로 */
.bp-userpill__name,
.bp-userpill__point,
.bp-userpill__welcome{
  font-size:12px !important;
  line-height:1 !important;
  font-weight:900;
}
.bp-userpill__name{ color:rgba(255,255,255,.92); }
.bp-userpill__point{ color:rgba(255,255,255,.70); }
.bp-userpill__welcome{ color:rgba(255,255,255,.55); }
.bp-userpill__sep{ font-size:12px; color:rgba(255,255,255,.35); }

/* ✅ GNB 글자 크기 원상복구(커져 보이는 문제 해결) */
.bp-gnb__link{
  font-size:14px !important;
  font-weight:900 !important;
}
.bp-gnb__drop a{ font-size:13px !important; }

/* 드롭다운이 안 뜨는 케이스 강제 보정 */
.bp-gnb,
.bp-gnb__inner{ overflow:visible !important; }
.bp-gnb__drop{ z-index:2600 !important; }
.bp-gnb__item:hover > .bp-gnb__drop{ display:block !important; }

