.board-page { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
.board-main { --board-line: rgba(73,54,34,.2); --board-muted: #716e63; flex: 1 0 auto; width: 100%; max-width: 1240px; margin: 0 auto; padding: calc(var(--site-header-height) + 12px) 24px 36px; font-family: "Noto Sans KR", sans-serif; color: var(--ink, #181812); }
.board-page .notice-footer { display: flex; flex-shrink: 0; justify-content: space-between; padding: 16px max(5vw, calc((100vw - var(--content)) / 2)); padding-right: max(80px, 5vw, calc((100vw - var(--content)) / 2)); color: var(--paper-light); background: #171813; }
.board-page > .site-version { flex-shrink: 0; padding-right: max(80px, 5vw, calc((100vw - var(--content)) / 2)); }
.board-page .notice-footer span { color: #c55e51; }
.board-main [hidden], .board-prompt [hidden], .board-page .party-dialog [hidden] { display: none !important; }
.board-main button, .board-prompt button { font: inherit; cursor: pointer; border: 1px solid var(--board-line, #ccc3b3); border-radius: 3px; color: inherit; background: #faf7ee; padding: 9px 15px; transition: background .15s; }
.board-main button:hover, .board-prompt button:hover { background: #eae3d4; }
.board-main button:disabled { cursor: default; opacity: .45; }
.board-main button:focus-visible, .board-main a:focus-visible, .board-prompt button:focus-visible { outline: 2px solid #a5281c; outline-offset: 3px; }
.board-main .board-primary, .board-prompt .board-primary { background: #812519; border-color: #812519; color: #fff9ed; font-weight: 700; }
.board-main .board-primary:hover, .board-prompt .board-primary:hover { background: #66190f; }
.board-main input, .board-main textarea, .board-main select, .board-prompt input, .board-prompt textarea { box-sizing: border-box; min-width: 0; max-width: 100%; font: inherit; padding: 8px 10px; border: 1px solid var(--board-line, #ccc3b3); border-radius: 3px; background: #fcfaf5; color: #27271f; }
.board-main textarea, .board-prompt textarea { resize: vertical; }
.board-main input:focus, .board-main textarea:focus, .board-main select:focus, .board-editor:focus, .board-prompt input:focus, .board-prompt textarea:focus { outline: 2px solid #a5281c; outline-offset: -1px; }
.board-heading { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 0 0 4px; min-height: 34px; }
.board-heading h1 { margin: 0; font: 700 18px/1.3 "Noto Serif KR", serif; letter-spacing: -.03em; flex-shrink: 0; }
.board-heading-actions { display: flex; align-items: center; gap: 10px; min-width: 0; }
.board-heading-actions button { flex-shrink: 0; min-height: 30px; padding: 3px 10px; font-size: 12px; }
.board-section-filter { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 8px 0; font-size: 12px; }
.board-section-filter > label { color: var(--muted); }
.board-section-filter > select { min-width: 130px; padding: 6px 10px; font-size: 12px; }
.board-relationship-filter { display: flex; flex-wrap: wrap; gap: 4px; padding-top: 8px; }
.board-main .board-relationship-filter button { min-height: 32px; padding: 5px 14px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; font-size: 12px; }
.board-main .board-relationship-filter button:not([aria-pressed="true"]) { color: var(--muted); background: transparent; }
.board-main .board-relationship-filter button[aria-pressed="true"] { color: var(--red-dark); background: transparent; border-bottom-color: var(--red); font-weight: 700; }
.board-message { font-size: 13px; line-height: 1.65; color: #a5281c; overflow-wrap: anywhere; }
.board-message:empty { display: none; }
.board-list-tools { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; }
.board-list-tools strong { font-size: 14px; }
.board-muted { color: var(--board-muted); font-size: 12px; }
.board-list-tools form { display: flex; gap: 5px; align-items: center; }
.board-list-tools input { width: 175px; font-size: 12px; }
.board-list-tools button { font-size: 12px; padding: 8px 10px; white-space: nowrap; }
.board-moderation { display: flex; gap: 8px; align-items: center; font-size: 12px; margin-bottom: 12px; }
.board-moderation select { padding: 5px 8px; }
.board-list-tools-compact { gap: 8px 16px; padding: 6px 0 10px; }
.board-list-filters { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; }
.board-list-tools-compact .board-section-filter { padding: 0; }
.board-list-tools-compact .board-moderation { margin: 0; }
.board-list-tools-compact :is(select, input, button) { height: 30px; min-height: 30px; padding: 4px 8px; font-size: 11px; }
.board-list-tools-compact .board-section-filter > select { min-width: 98px; }
.board-list-tools-compact #board-total { color: var(--muted); font-size: 11px; font-weight: 400; white-space: nowrap; }
.board-list-tools-compact form { gap: 4px; }
.board-list-tools-compact input { width: 170px; }
.board-list-tools-compact #board-refresh { display: grid; place-items: center; width: 30px; padding: 6px; background: transparent; }
#board-refresh svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.board-list { border-top: 1px solid var(--board-line); }
.board-row { display: grid; grid-template-columns: minmax(0,1fr) 155px; gap: 14px; align-items: center; padding: 10px 12px; border-bottom: 1px solid var(--board-line); background: rgba(255,253,247,.42); }
.board-row:hover { background: rgba(255,253,247,.8); }
.board-row.has-media { grid-template-columns: minmax(0,1fr) 86px 155px; }
.board-row-content { min-width: 0; }
.board-row-attachments { display: inline-block; margin-left: 7px; font-size: 10px; color: #76634e; white-space: nowrap; }
.board-row-thumbnail { display: block; width: 86px; height: 48px; border: 1px solid var(--board-line); border-radius: 2px; overflow: hidden; }
.board-thumbnail { display: block; position: relative; width: 100%; height: 100%; background: #e6e0d4; overflow: hidden; }
.board-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; margin: 0; }
.board-thumbnail-fallback { display: grid; place-items: center; width: 100%; height: 100%; font-size: 11px; color: #6c6254; }
.board-thumbnail-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); display: grid; place-items: center; width: 26px; height: 20px; padding-left: 2px; border-radius: 4px; background: rgba(146,33,22,.94); color: white; font: 11px/1 sans-serif; }
.board-thumbnail.is-unavailable .board-thumbnail-play { display: none; }
.board-category-label { display: inline-block; color: #76634e; background: #ece5d5; text-align: center; padding: 3px 8px; border-radius: 3px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.board-category-label.is-staff { color: #8a291d; background: #f1e0d5; }
.board-row .board-category-label { padding: 0; margin-right: 8px; background: none; border-radius: 0; font-size: 11px; font-weight: 500; vertical-align: 1px; }
.board-row-title { font-size: 16px; font-weight: 700; text-decoration: none; color: #26251e; line-height: 1.55; overflow-wrap: anywhere; }
.board-row-title:hover { color: #a5281c; }
.board-row-excerpt { margin: 3px 0 0; font-size: 12px; line-height: 1.6; color: var(--board-muted); display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.board-row-meta { text-align: right; display: grid; gap: 3px; font-size: 11px; color: var(--board-muted); overflow-wrap: anywhere; }
.board-staff-badge { display: inline-block; padding: 1px 5px; font-size: 10px; background: #eae0cf; color: #8b2b1d; margin-left: 5px; border-radius: 2px; }
.board-comment-number { color: #a5281c; font-size: 12px; font-weight: 700; margin-left: 8px; }
/* Text-led previews keep the title, excerpt and metadata together. */
.board-discussion-row { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) 16px; gap: 4px 10px; height: 84px; padding: 8px 10px; }
.board-discussion-row.has-media { grid-template-columns: minmax(0, 1fr) 64px; }
.board-discussion-row .board-row-content { grid-column: 1; grid-row: 1; }
.board-discussion-row .board-row-heading { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.board-discussion-row .board-row-heading .board-category-label { flex-shrink: 0; margin: 0; }
.board-discussion-row .board-row-title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; overflow: hidden; min-width: 0; font-size: 14px; line-height: 21px; }
.board-discussion-row .board-row-excerpt { margin: 2px 0 0; display: -webkit-box; -webkit-line-clamp: 1; font-size: 12px; line-height: 18px; color: #625d52; }
.board-discussion-row .board-row-meta { grid-column: 1 / -1; grid-row: 2; display: flex; align-items: center; flex-wrap: nowrap; gap: 8px; min-width: 0; margin: 0; text-align: left; font-size: 10px; line-height: 16px; white-space: nowrap; }
.board-discussion-row .board-row-meta > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.board-discussion-row .board-row-meta > span:first-child:not(.board-row-attachments):not(.board-poll-list-tag) { max-width: 100px; }
.board-discussion-row .board-row-meta > time, .board-discussion-row .board-row-comments, .board-discussion-row .board-poll-list-tag { flex-shrink: 0; }
.board-discussion-row .board-poll-list-tag { padding: 0 4px; line-height: 14px; }
.board-discussion-row .board-row-attachments, .board-discussion-row .board-poll-list-tag { margin: 0; }
.board-row-comments { color: #8a3020; font-weight: 700; text-decoration: none; }
.board-row-comments:hover { text-decoration: underline; text-underline-offset: 3px; }
.board-discussion-row .board-row-thumbnail { grid-column: 2; grid-row: 1; width: 64px; height: 44px; align-self: center; }
.board-empty { padding: 40px 15px; margin: 0; border-bottom: 1px solid var(--board-line); text-align: center; font-family: "Noto Serif KR", serif; font-size: 18px; }
.board-pagination { display: flex; justify-content: center; align-items: center; gap: 12px; margin: 16px 0 0; font-size: 13px; }
.board-pagination:empty { display: none; }
.board-gallery { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; border-top: 0; }
.board-gallery .board-photo-card { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 0; min-width: 0; border: 1px solid var(--board-line); border-radius: 3px; overflow: hidden; }
.board-gallery .board-row-thumbnail { width: 100%; height: auto; aspect-ratio: 4 / 3; border: 0; border-radius: 0; align-self: stretch; }
.board-gallery .board-row-content { padding: 10px 12px 6px; }
.board-gallery .board-row-title { font-size: 15px; }
.board-gallery .board-row-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; margin-top: auto; padding: 0 12px 12px; text-align: left; }
.board-gallery .board-row-attachments { font-size: 10px; }
.board-detail-actions, .board-compose-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; }
#board-post-actions { display: flex; gap: 5px; flex-wrap: wrap; justify-content: flex-end; }
.board-detail-actions button { padding: 7px 10px; font-size: 12px; }
.board-article { background: rgba(255,253,247,.82); border: 1px solid var(--board-line); padding: 24px 28px 28px; }
#board-article-header { padding-bottom: 16px; margin-bottom: 18px; border-bottom: 1px solid var(--board-line); }
#board-article-header h2 { font: 700 26px/1.45 "Noto Serif KR", serif; letter-spacing: -.025em; margin: 8px 0 10px; overflow-wrap: anywhere; }
.board-article-meta { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; color: var(--board-muted); font-size: 12px; }
.board-prose { font: 400 16px/1.8 "Noto Sans KR", sans-serif; color: #282820; overflow-wrap: anywhere; white-space: pre-wrap; }
.board-prose > :first-child { margin-top: 0; }
.board-prose > :last-child { margin-bottom: 0; }
.board-prose p, .board-prose div { margin: 0 0 .75em; }
.board-prose h2 { margin: 1.2em 0 .45em; font: 700 26px/1.5 "Noto Sans KR", sans-serif; }
.board-prose h3 { margin: 1.1em 0 .4em; font: 700 21px/1.5 "Noto Sans KR", sans-serif; }
.board-prose ul, .board-prose ol { padding-left: 1.7em; margin: .7em 0; white-space: normal; }
.board-prose li { padding-left: .2em; margin: .15em 0; white-space: pre-wrap; }
.board-prose blockquote { border-left: 3px solid #a59479; margin: .85em 0; padding: 10px 16px; color: #625b4c; background: #f1ece1; }
.board-prose hr { border: 0; border-top: 1px solid #cbbfaa; margin: 1.25em 0; }
.board-prose a { color: #35607b; text-decoration: underline; text-underline-offset: 3px; }
.board-media { position: relative; margin: 16px 0; white-space: normal; }
.board-media img { display: block; max-width: 100%; height: auto; max-height: 1000px; object-fit: contain; margin: 0 auto; }
.board-media iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; background: #171815; }
.board-media figcaption { text-align: center; font-size: 12px; line-height: 1.6; color: var(--board-muted); padding-top: 6px; }
.board-video-source { font-size: 11px; }
.board-comments { margin-top: 20px; }
.board-comment-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--board-line); padding-bottom: 10px; }
.board-comment-heading h2 { font-size: 17px; margin: 0; }
.board-comment-heading h2 span { color: #a5281c; margin-left: 5px; }
.board-comment-heading label { font-size: 11px; }
.board-comment { display: grid; grid-template-columns: minmax(0,1fr) auto; column-gap: 10px; padding: 11px 3px; border-bottom: 1px solid var(--board-line); }
.board-comment header { grid-column: 1; grid-row: 1; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12px; }
.board-comment time { font-size: 11px; color: var(--board-muted); }
.board-comment p { grid-column: 1 / -1; font-size: 14px; line-height: 1.75; margin: 5px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.board-comment footer { grid-column: 2; grid-row: 1; display: flex; align-items: flex-start; gap: 5px; justify-content: flex-end; }
.board-comment button { font-size: 11px; padding: 4px 8px; }
.board-comment-form { padding: 16px; margin-top: 14px; background: #ece6d9; border: 1px solid var(--board-line); }
.board-guest-fields { display: flex; gap: 10px; margin-bottom: 12px; }
.board-guest-fields label, .board-form-heading label { display: grid; gap: 5px; font-size: 12px; flex: 1; min-width: 0; }
.board-guest-fields input { width: 100%; }
.board-comment-form .board-guest-fields { max-width: 260px; }
.board-comment-form textarea { width: 100%; font-size: 14px; line-height: 1.8; }
.board-comment-submit { display: flex; justify-content: flex-end; align-items: center; margin-top: 10px; }
.board-compose-heading h2 { font: 700 22px "Noto Serif KR", serif; margin: 0; }
.board-form-heading { display: flex; gap: 12px; margin-bottom: 12px; }
.board-form-heading > label:first-child { flex: 0 0 140px; }
.board-title-field input { width: 100%; }
#board-post-identity { max-width: 620px; }
.board-editor-heading { margin: 14px 0 8px; font-size: 13px; }
.board-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; padding: 8px; background: #e9e3d7; border: 1px solid var(--board-line); border-bottom: none; position: sticky; top: 64px; z-index: 5; }
.board-toolbar button, .board-toolbar select { height: 32px; padding: 4px 9px; font-size: 12px; }
.board-editor { min-height: 260px; padding: 20px; background: #fffdf7; border: 1px solid var(--board-line); }
.board-editor-hints { display: flex; justify-content: flex-end; font-size: 11px; color: var(--board-muted); padding: 10px 0; }
.board-compose-footer { display: flex; justify-content: flex-end; align-items: center; gap: 12px; border-top: 1px solid var(--board-line); margin-top: 8px; padding-top: 12px; }
.board-caption-input { display: block; width: 100%; margin: 8px 0; font-size: 12px !important; }
.board-main .board-media-remove { display: block; margin: 8px auto; font-size: 11px; padding: 4px 10px; }
.board-editor .board-media[data-type=video] { max-width: 560px; margin-right: auto; margin-left: auto; }
.board-main .board-video-preview { display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; border-radius: 3px; overflow: hidden; }
.board-video-preview .board-thumbnail-play { width: 56px; height: 38px; font-size: 20px; }
.board-prompt { width: min(480px, calc(100% - 32px)); max-height: calc(100dvh - 40px); box-sizing: border-box; padding: 28px; border: 1px solid #baac91; border-radius: 4px; background: #f7f2e7; color: #26251e; font: 14px "Noto Sans KR", sans-serif; }
.board-prompt::backdrop { background: rgba(24,24,18,.56); }
.board-prompt h2 { font-size: 20px; margin: 0 0 22px; }
.board-prompt label { display: block; font-size: 12px; margin-bottom: 8px; }
.board-prompt input, .board-prompt textarea { width: 100%; }
.board-prompt form > div { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }
.board-prompt p { color: #a5281c; font-size: 12px; }
.board-sr { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.board-poll-list-tag { display: inline-block; margin-left: 7px; padding: 1px 5px; border: 1px solid #baa786; border-radius: 3px; color: #705324; font-size: 10px; vertical-align: middle; white-space: nowrap; }
.board-poll-compose { margin: 6px 0 14px; padding: 12px 14px; border: 1px solid var(--board-line); background: rgba(255,253,247,.65); }
.board-poll-toggle { display: flex; align-items: center; gap: 7px; font-size: 13px; cursor: pointer; }
.board-main .board-poll-toggle input, .board-main .board-poll-choice input { width: 16px; height: 16px; margin: 0; padding: 0; accent-color: #812519; flex-shrink: 0; }
.board-poll-fields { max-width: 760px; margin-top: 12px; }
.board-poll-field { display: grid; gap: 5px; font-size: 12px; min-width: 0; }
.board-poll-field input { width: 100%; }
.board-poll-options-editor { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 10px; }
.board-poll-option-editor { display: flex; gap: 5px; }
.board-poll-option-editor input { width: 100%; font-size: 13px; }
.board-poll-option-editor button, .board-main .board-poll-add { flex-shrink: 0; padding: 5px 9px; font-size: 11px; }
.board-main .board-poll-add { margin: 8px 0 12px; }
.board-poll-settings { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.board-poll-card { max-width: 760px; margin: 18px 0 0; padding: 18px 20px; border: 1px solid #c9b897; border-top: 2px solid #956841; background: #f7f2e7; }
.board-poll-compose .board-poll-card { margin-top: 0; }
#board-article-body:empty + #board-poll-region .board-poll-card { margin-top: 0; }
.board-poll-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.board-poll-tag { color: #8c4029; font-size: 11px; }
.board-poll-choices { min-width: 0; padding: 0; margin: 0; border: 0; }
.board-poll-choices legend { width: 100%; padding: 0 0 10px; font-size: 17px; line-height: 1.6; font-weight: 700; overflow-wrap: anywhere; }
.board-poll-choice { display: flex; gap: 9px; align-items: center; padding: 9px 11px; margin: 6px 0; border: 1px solid var(--board-line); border-radius: 3px; background: #fffcf6; font-size: 14px; line-height: 1.6; cursor: pointer; overflow-wrap: anywhere; }
.board-poll-choice:has(input:checked) { border-color: #a26848; background: #efe1ce; }
.board-poll-choice span { min-width: 0; }
.board-poll-results { margin-top: 16px; }
.board-poll-result { margin-bottom: 12px; }
.board-poll-result-label { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.board-poll-result-label span { min-width: 0; }
.board-poll-result-label strong { flex-shrink: 0; font-size: 11px; }
.board-poll-track { height: 6px; margin-top: 5px; border-radius: 3px; background: #e4dbc9; overflow: hidden; }
.board-poll-track span { display: block; height: 100%; background: #b19a78; }
.board-poll-result.is-mine .board-poll-track span { background: #9b422b; }
.board-poll-result.is-mine .board-poll-result-label { color: #8a3020; }
.board-poll-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.board-poll-controls:empty { display: none; }
.board-poll-controls button { padding: 7px 12px; font-size: 12px; }
.board-poll-controls .board-poll-close { margin-left: auto; }
.board-poll-card > .board-muted { margin: 10px 0 0; font-size: 11px; line-height: 1.65; }
.board-poll-card .board-message { margin-bottom: 0; }
@media (max-width: 1000px) {
  .board-gallery { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 560px) {
  .board-gallery { grid-template-columns: minmax(0,1fr); gap: 14px; }
}
@media (max-width: 760px) {
  .board-main { padding: calc(var(--site-header-height) + 10px) 14px 28px; }
  .board-list-tools { flex-direction: column; align-items: stretch; gap: 8px; padding: 10px 0; }
  .board-list-tools-compact { gap: 6px; padding: 4px 0 8px; }
  .board-list-tools strong { font-size: 13px; }
  .board-list-tools form input { flex: 1; width: 0; }
  .board-row { grid-template-columns: minmax(0,1fr); gap: 4px 10px; align-items: start; padding: 11px 2px; }
  .board-row.has-media { grid-template-columns: minmax(0,1fr) 64px; gap: 4px 8px; }
  .board-row-content { grid-column: 1; }
  .board-row-thumbnail { grid-column: 2; grid-row: 1 / span 2; align-self: center; width: 64px; height: 42px; }
  .board-row-attachments { margin-left: 4px; font-size: 9px; }
  .board-row .board-category-label { font-size: 10px; margin-right: 6px; }
  .board-row-meta { grid-column: 1; display: flex; gap: 3px 10px; text-align: left; flex-wrap: wrap; font-size: 10px; }
  .board-row-title { font-size: 15px; }
  .board-discussion-row { gap: 4px 8px; padding: 8px 4px; }
  .board-discussion-row.has-media { grid-template-columns: minmax(0, 1fr) 64px; }
  .board-discussion-row .board-row-excerpt { display: -webkit-box; }
  .board-discussion-row .board-row-meta { gap: 6px; }
  .board-discussion-row .board-row-thumbnail { grid-row: 1; width: 64px; height: 44px; }
  .board-row-excerpt { display: none; }
  .board-article { padding: 18px 16px 20px; }
  #board-article-header h2 { font-size: 22px; }
  .board-prose { font-size: 15px; line-height: 1.8; }
  .board-prose h2 { font-size: 23px; }.board-prose h3 { font-size: 19px; }
  .board-form-heading { gap: 8px; }.board-form-heading > label:first-child { flex: 0 0 95px; }
  .board-toolbar { position: static; padding: 7px; gap: 3px; }
  .board-toolbar button, .board-toolbar select { font-size: 11px; padding: 4px 7px; }
  .board-editor { padding: 16px 14px; min-height: 220px; }
  .board-guest-fields { gap: 8px; }
  .board-comment { column-gap: 6px; }
  .board-comment button { min-height: 30px; }
  .board-comment-form { padding: 12px; }
  .board-compose-footer { align-items: flex-start; }.board-compose-footer button { white-space: nowrap; }
  .board-poll-options-editor { grid-template-columns: minmax(0,1fr); }
  .board-poll-settings { align-items: stretch; flex-direction: column; gap: 10px; }
  .board-poll-card { padding: 14px 12px; }
  .board-poll-choices legend { font-size: 16px; }
  .board-poll-choice { font-size: 13px; }
  .board-poll-top { flex-wrap: wrap; gap: 4px 10px; }
  .board-poll-controls button { padding: 7px 9px; font-size: 11px; }
}

/* Existing recruitment cards and dialogs share the board navigation. */
.board-party-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 12px 0; border-bottom: 1px solid var(--board-line); }
.board-party-tools > strong { font-size: 14px; }
#board-party-view .party-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 0; border: 0; }
#board-party-view .party-toolbar label { display: flex; align-items: center; gap: 6px; font-size: 12px; }
#board-party-view .party-toolbar select { min-height: 34px; padding: 6px 8px; font-size: 12px; }
#board-party-view #party-refresh { min-height: 34px; padding: 6px 10px; font-size: 12px; }
#board-party-view #party-refreshed-at { font-size: 11px; }
#board-party-view .party-list { grid-template-columns: repeat(3, minmax(0, 1fr)); padding-top: 12px; }
#board-party-view .party-card-open { min-height: 200px; padding: 14px; gap: 10px; border: 0; border-radius: 0; background: transparent; font-weight: 400; }
#board-party-view .party-card-open:hover { background: rgba(255,255,255,.36); }
#board-party-view .party-card h3 { font-size: 20px; }
#board-party-view .party-card-apply { padding: 0 11px; border-color: var(--red); color: var(--red-dark); background: var(--paper-light); font-size: 12px; font-weight: 700; }
#board-party-view .party-card-apply:hover { color: var(--paper-light); background: var(--red); }
#board-party-view .party-message { width: 100%; min-height: 0; margin: 12px 0 0; padding: 0; font-size: 13px; }
#board-party-view .party-message:empty { display: none; }
#board-party-view .party-empty { padding: 40px 0; }
.board-heading #party-compose-open { min-height: 34px; padding: 4px 12px; font-size: 13px; }
@media (max-width: 900px) {
  #board-party-view .party-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .board-party-tools { align-items: flex-start; gap: 8px; }
  #board-party-view .party-toolbar { width: 100%; }
  #board-party-view .party-toolbar label { flex: 1 1 40%; }
  #board-party-view .party-toolbar select { flex: 1; width: 0; }
  #board-party-view .party-list { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  #board-party-view .party-card-open { min-height: 0; }
}

/* Shared card frame; notices show their complete document in the list. */
.board-news-feed { border-top: 0; }
.board-news-card { display: grid; gap: 16px; min-width: 0; margin: 14px 0; padding: 22px 24px 16px; border: 1px solid var(--board-line); border-top: 2px solid #8a3020; border-radius: 3px; background: rgba(255,253,247,.82); }
.board-news-feed > .board-news-card:first-child { margin-top: 0; }
.board-news-heading h2 { margin: 0 0 9px; font: 700 24px/1.5 "Noto Serif KR", serif; overflow-wrap: anywhere; }
.board-news-heading > .board-category-label { margin-bottom: 5px; }
.board-news-title { color: #26251e; text-decoration: none; }
.board-news-title:hover { color: #a5281c; }
.board-news-body { min-width: 0; }
.board-news-body:empty { display: none; }
.board-news-body .board-media img { max-height: none; }
.board-news-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 20px; padding-top: 12px; border-top: 1px solid var(--board-line); }
.board-news-actions a { display: inline-flex; align-items: center; min-height: 28px; color: #8a3020; font-size: 13px; font-weight: 700; text-decoration: none; }
.board-news-actions a:hover { text-decoration: underline; text-underline-offset: 3px; }
.board-news-poll { display: flex; align-items: baseline; gap: 8px; padding: 12px 14px; background: #f1ece1; font-size: 14px; overflow-wrap: anywhere; }
.board-news-poll .board-poll-list-tag { flex-shrink: 0; margin: 0; }
.board-comments, #board-poll-region { scroll-margin-top: calc(var(--site-header-height) + 16px); }
@media (max-width: 760px) {
  .board-news-card { gap: 14px; padding: 16px 14px 12px; }
  .board-news-heading h2 { font-size: 21px; }
  .board-news-heading .board-article-meta { font-size: 11px; }
}

/* Short alliance-news cards; notices retain their complete document. */
.board-news-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 14px 0; }
.board-news-feed > .board-news-grid:first-child { margin-top: 0; }
.board-news-grid > .board-news-compact { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 15px 16px 10px; }
.board-news-compact .board-news-heading h2 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin-bottom: 6px; font-size: 19px; line-height: 1.4; }
.board-news-compact .board-article-meta { font-size: 11px; gap: 6px 10px; }
.board-news-media { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; height: 260px; overflow: hidden; border-radius: 2px; }
.board-news-media.is-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.board-news-media > a { display: block; min-width: 0; height: 100%; }
.board-news-media .board-media { min-width: 0; height: 100%; margin: 0; }
.board-news-media .board-video-preview { height: 100%; aspect-ratio: auto; }
.board-news-media .board-video-source { display: none; }
.board-news-media iframe { height: 100%; aspect-ratio: auto; }
.board-news-summary { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; margin: 0; font-size: 14px; line-height: 1.65; color: #484337; overflow-wrap: anywhere; }
.board-news-compact .board-news-actions { margin-top: auto; padding-top: 8px; gap: 6px 14px; }
.board-news-compact .board-news-actions a { font-size: 12px; }
.board-news-more { margin-left: auto; }
.board-news-compact .board-news-poll { padding: 7px 10px; font-size: 12px; }
.board-news-compact .board-news-poll strong { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
@media (max-width: 700px) {
  .board-news-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .board-news-grid > .board-news-compact { padding: 13px 14px 9px; }
  .board-news-media { height: 220px; }
  .board-news-compact .board-news-heading h2 { font-size: 18px; }
}

/* Official news keeps its source cards inside the compact board shell. */
#board-official-view { scroll-margin-top: calc(var(--site-header-height) + 12px); }
.board-main:has(#board-official-view:not([hidden])) { display: flex; flex-direction: column; padding-bottom: 20px; }
#board-official-view:not([hidden]) { display: flex; flex-direction: column; flex: 1 0 auto; }
#board-official-view .info-source-note { margin-top: auto; padding-top: 17px; }

/* The entire post preview opens its detail; inner controls remain independent. */
.board-clickable-card { cursor: pointer; }
.board-clickable-card:hover :is(.board-row-title, .board-news-title) { color: var(--red-dark); }
.board-clickable-card:focus-within { outline: 1px solid var(--red); outline-offset: -2px; }

@media (max-width: 600px) {
  .board-heading { flex-wrap: wrap; }
  .board-heading-actions { flex-wrap: wrap; gap: 6px; }
}

.board-recruit-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; border: 0; }
.board-recruit-content { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 16px; }
.board-recruit-content h3 { margin: 0; font: 700 20px/1.45 "Gowun Batang", serif; overflow-wrap: anywhere; }
.board-recruit-content .board-row-title { white-space: normal; }
.board-recruit-card .party-category { font-size: 12px; }
.board-recruit-card .party-card-description { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.board-main .board-recruit-card .party-card-apply { position: static; align-self: flex-end; margin: auto 16px 14px; padding: 5px 12px; }
@media (max-width: 900px) { .board-recruit-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .board-recruit-list { grid-template-columns: minmax(0, 1fr); } }

.board-recruit-compose-kind { display: flex; align-items: center; gap: 12px; margin: 0 0 18px; font-size: 13px; font-weight: 700; }
.board-recruit-compose-kind select { min-height: 36px; min-width: 150px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 2px; color: var(--ink); background: var(--paper-light); font: inherit; }
.board-recruit-compose-kind select:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.party-dialog .board-recruit-compose-kind[hidden] { display: none; }
