/* =========================================================================
 * 운영 페이지 「욕설 필터」 탭 — 2026-10-07. /ops/badwords/ 에서만 싣는다(functions.php).
 * 공통 모양(.ops-field·.ops-meta·.ops-badge·.ops-toolbar·.btn)은 ops.css 것을 그대로 쓰고,
 * 여기에는 이 탭에만 있는 덩어리만 둔다:
 *   .bw-section   한 덩어리(시험해 보기 / 지금 적용 중 / 목록 하나 / 전체 목록 확인)
 *   .bw-result    시험 결과(.bw-msg.is-pass / .is-block)와 바로 풀기 줄(.bw-quick)
 *   .bw-counts    개수 표 — 표 대신 줄 묶음(좁은 화면에서 표는 가로로 넘친다, ops.css 와 같은 판단)
 *   .bw-words-out 단어 나열(전체 보기·검색 결과)
 * 390px 폭에서 가로로 넘치지 않게 — 입력칸은 전부 줄 폭을 채우고, 버튼 줄은 접힌다.
 * ========================================================================= */

.bw{display:flex; flex-direction:column; gap:22px; min-width:0}
.bw-intro{margin:0; font-size:13.5px; line-height:1.6; color:var(--ink)}

.bw-section{min-width:0; padding:16px; border:2px solid var(--ink); border-radius:4px; background:var(--card, #fff)}
.bw-tester{border-color:var(--action)}
.bw-h{margin:0 0 6px; font-size:16px; font-weight:800; color:var(--ink)}
.bw-help{margin:0 0 10px; font-size:13px; line-height:1.6; color:var(--ink); overflow-wrap:anywhere}
.bw-help strong{font-weight:800}

.bw-form{display:flex; flex-direction:column; gap:8px; margin:0}
.bw-form textarea.ops-field{min-height:84px}
.bw-words{font-family:var(--mono); min-height:140px}
.bw-row{display:flex; justify-content:flex-end; gap:6px}

/* 시험 결과 */
.bw-result:empty{display:none}
.bw-result{margin-top:12px}
.bw-msg{margin:0; padding:12px; border:2px solid var(--card-line); border-radius:4px; background:var(--surface);
  font-size:13.5px; line-height:1.6; color:var(--ink); overflow-wrap:anywhere}
.bw-msg.is-pass{font-weight:700}
.bw-msg.is-block{border-color:var(--action)}
.bw-msg.is-error{border-color:var(--action); color:var(--action); font-weight:700}
.bw-hit{margin:0 0 4px; font-size:14.5px}
.bw-hit strong{color:var(--action); font-weight:800}
.bw-hit .ops-badge{margin-left:4px}
.bw-sub{margin:0 0 6px}
.bw-quick{display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:8px}
.bw-quick .ops-field{flex:1 1 160px}

/* 지금 적용 중인 목록 */
.bw-counts{margin:0 0 10px; display:flex; flex-direction:column}
.bw-count{display:grid; grid-template-columns:minmax(0,11em) 5.5em minmax(0,1fr); gap:4px 10px; align-items:baseline;
  padding:7px 0; border-bottom:1px solid var(--card-line)}
.bw-count:last-child{border-bottom:0}
.bw-count dt{font-size:13.5px; color:var(--ink)}
.bw-count dd{margin:0}
.bw-count.is-strong dt{font-weight:800}
.bw-count-n{font-family:var(--mono); font-size:13px; font-weight:800; color:var(--ink); text-align:right}

/* 전체 목록 확인 */
.bw-all{margin:0 0 12px}
.bw-all summary{cursor:pointer; padding:6px 0; font-size:13.5px; font-weight:700; color:var(--ink)}
.bw-words-out{margin:6px 0 0; max-height:320px; overflow:auto; padding:8px 10px; border:2px solid var(--card-line); border-radius:3px;
  background:var(--surface); font-family:var(--mono); font-size:12.5px; line-height:2; color:var(--ink); overflow-wrap:anywhere}
.bw-search .ops-field{flex:1 1 180px}
.bw-found .bw-help{margin:8px 0 0}

@media (max-width:600px){
  .bw-section{padding:12px}
  .bw-count{grid-template-columns:minmax(0,1fr) auto}
  .bw-count .ops-meta{grid-column:1 / -1}
  .bw-row .btn{flex:1 1 auto}
}
