/* 게시판 전용 레이아웃: DESIGN.md의 Bulletin board 및 공통 토큰만 사용합니다. */
.boardPage { padding-top: var(--space-section); padding-bottom: var(--space-section); }
.boardHeading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-sm); margin-bottom: var(--space-xl); }
.boardHeading h1 { color: var(--ink); font: 600 15px/1.15 var(--font-display); letter-spacing: 0; margin: var(--space-md) 0; }
.boardHeading p { margin: 0; }
.boardCard { padding: var(--space-lg); background: var(--canvas); border: 1px solid var(--hairline); border-radius: var(--radius-lg); overflow-wrap: anywhere; }
.boardCard h2 { margin: 0 0 var(--space-md); color: var(--ink); font: 600 15px/1.3 var(--font-body); letter-spacing: 0; }
.boardMeta { color: var(--muted); font: 400 14px/1.5 var(--font-body); margin: var(--space-xs) 0; }
.boardListRow { padding: var(--space-md) 0; border-bottom: 1px solid var(--hairline); }
.boardListRow:last-child { border-bottom: 0; }
.boardListRow h2 { font: 600 15px/1.4 var(--font-body); letter-spacing: 0; margin: 0; }
.boardListRow a:hover, .boardListRow a:focus-visible { text-decoration: underline; }
.boardSearch, .boardPagination { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-sm); margin: var(--space-lg) 0; }
.boardPagination { justify-content: center; }
.boardSearch input { flex: 1; min-width: 0; }
.boardForm { display: grid; gap: var(--space-md); }
.boardForm label { color: var(--ink); font-weight: 600; }
.boardForm input:not([type=checkbox]), .boardSearch input, .boardForm textarea { min-height: 40px; min-width: 0; max-width: 100%; border: 1px solid var(--hairline); border-radius: var(--radius-md); background: var(--canvas); color: var(--ink); padding: var(--space-sm); font: 400 15px/1.5 var(--font-body); }
.boardForm textarea { width: 100%; min-height: 192px; resize: vertical; }
.boardForm input:not([type=checkbox]), .boardSearch input { height: 40px; padding: 10px 14px; }
.boardForm input:focus-visible, .boardForm textarea:focus-visible, .boardSearch input:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.boardCheckbox { display: flex; align-items: center; gap: var(--space-xs); min-height: 40px; overflow-wrap: anywhere; }
.boardCheckbox input { accent-color: var(--primary); flex-shrink: 0; }
.boardNotice { padding: var(--space-md); background: var(--surface-soft); color: var(--ink); border-radius: var(--radius-md); }
.boardAttachments, .boardContent { margin-top: var(--space-lg); }
.boardContent { overflow-wrap: anywhere; overflow-x: auto; }
.boardContent p, .boardContent div, .boardContent ul, .boardContent ol { margin: var(--space-md) 0; }
.boardContent h2 { font: 600 15px/1.3 var(--font-body); letter-spacing: 0; }
.boardContent h3, .boardContent h4, .boardAttachments h3 { color: var(--ink); font: 600 15px/1.4 var(--font-body); }
.boardContent blockquote { border-left: 1px solid var(--hairline); margin: var(--space-md) 0; padding-left: var(--space-md); }
.boardContent table { border-collapse: collapse; max-width: 100%; }
.boardContent th, .boardContent td { border: 1px solid var(--hairline); padding: var(--space-xs); }
.boardContent pre { white-space: pre-wrap; }
.boardContent a, .boardFileLink { color: var(--ink); text-decoration: underline; }
.boardImage, .boardContent img { display: block; max-width: 100%; height: auto; }
.boardDelete { margin-top: var(--space-lg); }
.boardDelete summary { cursor: pointer; color: var(--ink); min-height: 40px; }
.boardForm button:disabled { background: var(--primary-disabled); color: var(--muted); cursor: wait; }
.boardHeading button:disabled { background: var(--primary-disabled); color: var(--muted); cursor: not-allowed; }
[hidden] { display: none !important; }
@media (max-width: 767px) {
  .boardPage { padding-top: var(--space-xxl); padding-bottom: var(--space-xxl); }
  .boardHeading h1 { font-size: 15px; line-height: 1.2; letter-spacing: 0; }
  .boardCard { padding: var(--space-md); }
  .boardSearch { align-items: stretch; flex-direction: column; }
}
