/* 숨터 — 주제 게시판(목록/상세) 스타일 · tb-* 네임스페이스
 * 기존 board 자산(wrap/crumb/bd-alert/bd-empty)과 함께 사용. 신규 파일이라 캐시 버전 영향 없음. */

.tb-page { --tb-gold:#B8893A; --tb-ink:#1A1714; --tb-sub:#6B7280; --tb-line:#E7E2DA; --tb-bg:#FBF9F5; }

/* 헤더 */
.tb-head { margin: 8px 0 22px; }
.tb-head .tb-kicker { font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--tb-gold); font-weight:800; margin:0 0 6px; }
.tb-head h1 { font-size:30px; line-height:1.2; letter-spacing:-.03em; font-weight:900; color:var(--tb-ink); margin:0; }
.tb-head .tb-lead { margin:10px 0 0; color:var(--tb-sub); font-size:14.5px; line-height:1.75; max-width:60ch; }

/* 게시판 카드 그리드 */
.tb-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:14px; }
.tb-card {
  position:relative; display:flex; flex-direction:column; gap:8px;
  border:1px solid var(--tb-line); border-radius:16px; background:#fff;
  padding:18px 18px 16px; transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.tb-card:hover { transform:translateY(-2px); box-shadow:0 10px 28px rgba(26,23,20,.08); border-color:#DCD3C6; }
.tb-card-link { position:absolute; inset:0; border-radius:16px; z-index:1; }
.tb-card-top { display:flex; align-items:center; gap:8px; }
.tb-card-badge {
  display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:34px; padding:0 9px;
  border-radius:10px; background:var(--tb-bg); color:var(--tb-gold); font-weight:800; font-size:15px;
}
.tb-card-name { font-size:17px; font-weight:800; letter-spacing:-.02em; color:var(--tb-ink); margin:0; }
.tb-joined-tag { font-size:11.5px; font-weight:800; color:#047857; background:#ECFDF5; border-radius:999px; padding:3px 9px; }
.tb-card-desc { margin:2px 0 0; color:var(--tb-sub); font-size:13.5px; line-height:1.6; min-height:2.6em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tb-card-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:6px; }
.tb-card-stats { color:var(--tb-sub); font-size:12.5px; }
.tb-card-stats b { color:var(--tb-ink); font-weight:700; }

/* 단골가입 버튼 */
.tb-follow-btn {
  position:relative; z-index:2; cursor:pointer; border:1px solid var(--tb-gold);
  background:var(--tb-gold); color:#fff; font-weight:800; font-size:13px;
  border-radius:999px; padding:7px 15px; line-height:1; transition:background .15s ease, color .15s ease, border-color .15s ease;
  white-space:nowrap;
}
.tb-follow-btn:hover { background:#A2782F; border-color:#A2782F; }
.tb-follow-btn.is-joined { background:#fff; color:var(--tb-gold); }
.tb-follow-btn.is-joined::after { content:" ✓"; }
.tb-follow-btn.is-joined:hover { background:#FEF2F2; color:#B91C1C; border-color:#F3C8C8; }
.tb-follow-btn.is-joined:hover [data-role="follow-label"]::after { content:" 해제"; }
.tb-follow-btn:disabled { opacity:.6; cursor:default; }

/* 상세 헤더 */
.tb-board-head { border:1px solid var(--tb-line); border-radius:18px; background:#fff; padding:22px 22px 20px; margin:8px 0 18px; }
.tb-board-head h1 { font-size:26px; font-weight:900; letter-spacing:-.03em; color:var(--tb-ink); margin:0; }
.tb-board-head .tb-board-desc { margin:10px 0 0; color:var(--tb-sub); font-size:14px; line-height:1.7; }
.tb-board-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin-top:14px; color:var(--tb-sub); font-size:13px; }
.tb-board-meta b { color:var(--tb-ink); }
.tb-board-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.tb-board-actions .tb-follow-btn { font-size:14px; padding:10px 20px; }
.tb-write-btn {
  display:inline-flex; align-items:center; gap:6px; cursor:pointer; text-decoration:none;
  border:1px solid var(--tb-ink); background:var(--tb-ink); color:#fff; font-weight:800; font-size:14px;
  border-radius:999px; padding:10px 20px; line-height:1; transition:opacity .15s ease;
}
.tb-write-btn:hover { opacity:.88; }
.tb-write-hint { color:var(--tb-sub); font-size:13px; align-self:center; }
.tb-mgr-tag { font-size:11.5px; font-weight:800; color:#7C3AED; background:#F5F3FF; border-radius:999px; padding:3px 9px; }

/* 글 말머리 배지 (목록 재사용) */
.tb-tag { display:inline-block; font-size:11.5px; font-weight:800; color:var(--tb-gold); background:var(--tb-bg);
  border:1px solid var(--tb-line); border-radius:999px; padding:2px 9px; margin-right:6px; }

@media (max-width:520px) {
  .tb-head h1 { font-size:25px; }
  .tb-grid { grid-template-columns:1fr; }
}

/* 글쓰기 폼 */
.tb-write-head { margin: 8px 0 18px; }
.tb-write-title { font-size:26px; font-weight:900; letter-spacing:-.03em; color:var(--tb-ink); margin:0; }
.tb-write-sub { margin:8px 0 0; color:var(--tb-sub); font-size:13.5px; }
.tb-form { display:flex; flex-direction:column; gap:16px; }
.tb-field { display:flex; flex-direction:column; gap:7px; }
.tb-label { font-size:13px; font-weight:800; color:var(--tb-ink); }
.tb-input, .tb-select, .tb-textarea {
  width:100%; box-sizing:border-box; border:1px solid var(--tb-line); border-radius:12px;
  background:#fff; color:var(--tb-ink); font:inherit; font-size:15px; padding:12px 14px;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.tb-input:focus, .tb-select:focus, .tb-textarea:focus {
  outline:none; border-color:var(--tb-gold); box-shadow:0 0 0 3px rgba(184,137,58,.14);
}
.tb-select { max-width:220px; }
.tb-textarea { resize:vertical; min-height:280px; line-height:1.75; }
.tb-form-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-top:4px; }
.tb-cancel { text-decoration:none; color:var(--tb-sub); font-weight:700; font-size:14px; padding:11px 18px; border-radius:999px; }
.tb-cancel:hover { color:var(--tb-ink); background:var(--tb-bg); }
.tb-submit {
  cursor:pointer; border:1px solid var(--tb-gold); background:var(--tb-gold); color:#fff;
  font-weight:800; font-size:15px; border-radius:999px; padding:11px 26px; transition:background .15s ease, border-color .15s ease;
}
.tb-submit:hover { background:#A2782F; border-color:#A2782F; }
@media (max-width:520px) { .tb-select { max-width:none; } }

/* 섹션 제목 (내 단골 게시판 / 다른 게시판) */
.tb-section-title { font-size: 18px; font-weight: 800; color: var(--tb-ink); margin: 22px 0 12px; letter-spacing: -.02em; }
.tb-section-title:first-of-type { margin-top: 6px; }

/* 홈 카드 바로가기 표시 (팔로우 버튼 대신) */
.tb-card-go { font-size: 13px; font-weight: 800; color: var(--tb-gold); white-space: nowrap; }
