/* ================================================
   FORUM (커뮤니티 포럼)
   ================================================ */

.forum-wrap {
    max-width: 860px;
    margin: 0 auto;
    padding: 1rem 1rem 3rem;
}

/* 헤더 */
.forum-header { margin-bottom: 1.25rem; }
.forum-header-title { font-size: 1.4rem; font-weight: 800; margin: 0 0 .3rem; color: var(--color-text, #111827); }
.forum-header-desc  { font-size: .9rem; color: var(--color-muted, #6b7280); margin: 0; }

/* 브레드크럼 */
.forum-breadcrumb {
    display: flex; align-items: center; gap: .4rem;
    font-size: .85rem; color: var(--color-muted, #6b7280); margin-bottom: 1.25rem;
}
.forum-breadcrumb a { color: var(--color-primary, #f97316); text-decoration: none; }
.forum-breadcrumb a:hover { text-decoration: underline; }

/* 카테고리 탭 */
.forum-tabs { display: flex; gap: .4rem; flex-wrap: wrap; margin-bottom: 1rem; }
.forum-tab {
    padding: .35rem .85rem; border-radius: 999px; font-size: .82rem; font-weight: 600;
    text-decoration: none; color: var(--color-text-muted, #374151);
    background: var(--color-card-bg-alt, #f3f4f6);
    border: 1px solid transparent; transition: all .15s;
}
.forum-tab:hover  { background: #e5e7eb; }
.forum-tab.active { background: var(--color-primary, #f97316); color: #fff; border-color: transparent; }

/* 툴바 */
.forum-toolbar { display: flex; gap: .75rem; align-items: center; margin-bottom: 1rem; flex-wrap: wrap; }
/* flex 자식이 내용 최소 너비보다 줄어들 수 있게 (모바일에서 검색행 넘침 방지) */
.forum-search-form {
    display: flex; gap: .4rem; flex: 1; min-width: 0;
    max-width: 100%;
}
.forum-search-input {
    flex: 1; min-width: 0; height: 2.3rem; padding: 0 .75rem; box-sizing: border-box;
    border: 1px solid var(--color-border, #e5e7eb); border-radius: .5rem;
    font-size: .875rem; background: var(--color-input-bg, #fff); color: var(--color-text, #111827);
    outline: none;
}
.forum-search-input:focus { border-color: var(--color-primary, #f97316); }
.forum-search-btn {
    flex-shrink: 0; height: 2.3rem; padding: 0 .9rem;
    background: var(--color-card-bg-alt, #f3f4f6); border: 1px solid var(--color-border, #e5e7eb);
    border-radius: .5rem; font-size: .82rem; cursor: pointer; color: var(--color-text, #374151);
}
.forum-search-btn:hover { background: #e5e7eb; }
.forum-write-btn {
    flex-shrink: 0; height: 2.3rem; padding: 0 1.1rem; white-space: nowrap;
    background: var(--color-primary, #f97316); color: #fff;
    border-radius: .5rem; font-size: .875rem; font-weight: 700; text-decoration: none;
    display: inline-flex; align-items: center;
}
@media (max-width: 520px) {
    .forum-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .forum-search-form { flex: none; width: 100%; }
    .forum-write-btn { justify-content: center; }
}
.forum-write-btn:hover { background: #ea6c0a; }

/* 목록 */
.forum-list { background: var(--color-card-bg, #fff); border: 1px solid var(--color-border, #e5e7eb); border-radius: .75rem; overflow: hidden; margin-bottom: 1rem; }
.forum-empty { text-align: center; padding: 2.5rem 1rem; color: var(--color-muted, #9ca3af); font-size: .9rem; }
.forum-row {
    display: flex; align-items: center; gap: .75rem; flex-wrap: wrap;
    padding: .85rem 1.1rem;
    border-bottom: 1px solid var(--color-border, #f3f4f6);
    transition: background .1s;
}
.forum-row:last-child { border-bottom: none; }
.forum-row:hover { background: var(--color-card-bg-alt, #f9fafb); }
.forum-row.is-secret { opacity: .75; }
.forum-row-cat {
    flex-shrink: 0; font-size: .72rem; font-weight: 600;
    padding: .15rem .55rem; border-radius: 999px;
    background: #dbeafe; color: #1d4ed8;
    white-space: nowrap;
}
.forum-row-title {
    flex: 1; font-size: .9rem; font-weight: 600; color: var(--color-text, #111827);
    text-decoration: none; word-break: break-all;
    display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden;
}
.forum-row-title:hover { color: var(--color-primary, #f97316); }
.forum-row-cnt { font-size: .8rem; color: var(--color-primary, #f97316); font-weight: 700; }
.forum-row-meta {
    display: flex; gap: .65rem; flex-shrink: 0;
    font-size: .75rem; color: var(--color-muted, #9ca3af);
}

/* 페이징 */
.forum-paging { display: flex; justify-content: center; margin-top: 1rem; }

/* 글보기 카드 */
.forum-view-card {
    background: var(--color-card-bg, #fff); border: 1px solid var(--color-border, #e5e7eb);
    border-radius: .75rem; margin-bottom: 1.25rem; overflow: hidden;
}
.forum-view-header { padding: 1.25rem 1.5rem; border-bottom: 1px solid var(--color-border, #e5e7eb); }
.forum-view-cat {
    display: inline-block; font-size: .75rem; font-weight: 600;
    padding: .15rem .55rem; border-radius: 999px; background: #dbeafe; color: #1d4ed8; margin-bottom: .6rem;
}
.forum-view-secret {
    display: inline-block; font-size: .75rem; color: #6b7280; margin-left: .4rem;
}
.forum-view-title { font-size: 1.2rem; font-weight: 800; margin: .4rem 0 .85rem; color: var(--color-text, #111827); word-break: break-all; }
.forum-view-meta { display: flex; gap: .75rem; flex-wrap: wrap; font-size: .8rem; color: var(--color-muted, #6b7280); }
.forum-view-body {
    padding: 1.5rem; font-size: .93rem; line-height: 1.9; color: var(--color-text, #374151);
    word-break: break-all; min-height: 100px;
}
.forum-view-actions {
    padding: .75rem 1.5rem; border-top: 1px solid var(--color-border, #e5e7eb);
    display: flex; gap: .5rem; justify-content: flex-end;
}
.forum-action-btn {
    padding: .35rem .85rem; font-size: .82rem; font-weight: 600; border-radius: .45rem;
    background: var(--color-card-bg-alt, #f3f4f6); color: var(--color-text, #374151);
    border: 1px solid var(--color-border, #e5e7eb); cursor: pointer; text-decoration: none;
}
.forum-action-btn:hover { background: #e5e7eb; }
.forum-action-btn--del { color: #ef4444; }
.forum-action-btn--del:hover { background: #fee2e2; border-color: #fca5a5; }

/* 댓글 섹션 */
.forum-comments { background: var(--color-card-bg, #fff); border: 1px solid var(--color-border, #e5e7eb); border-radius: .75rem; padding: 1.25rem 1.5rem; }
.forum-comments-title { font-size: 1rem; font-weight: 700; color: var(--color-text, #111827); margin: 0 0 1rem; }

/* 댓글 폼 */
.forum-comment-form-wrap { margin-bottom: 1.25rem; }
.forum-comment-textarea {
    width: 100%; padding: .6rem .75rem; border: 1px solid var(--color-border, #e5e7eb);
    border-radius: .5rem; font-size: .875rem; resize: vertical;
    background: var(--color-input-bg, #fff); color: var(--color-text, #111827);
    outline: none; transition: border-color .15s; box-sizing: border-box;
}
.forum-comment-textarea:focus { border-color: var(--color-primary, #f97316); }
.forum-comment-form-footer {
    display: flex; align-items: center; justify-content: space-between;
    margin-top: .45rem; flex-wrap: wrap; gap: .5rem;
}
.forum-comment-submit {
    height: 2.3rem; padding: 0 1.1rem;
    background: var(--color-primary, #f97316); color: #fff;
    border: none; border-radius: .5rem; font-size: .875rem; font-weight: 700; cursor: pointer;
}
.forum-comment-submit:hover { background: #ea6c0a; }

/* 댓글 항목 */
.forum-comment-list { display: flex; flex-direction: column; gap: .75rem; }
.forum-comment-item {
    padding: .85rem 1rem; background: var(--color-card-bg-alt, #f9fafb);
    border-radius: .6rem; border: 1px solid var(--color-border, #f3f4f6);
}
.forum-comment-item.is-admin { border-left: 3px solid #6366f1; background: #f5f3ff; }
.forum-comment-item.is-reply {
    margin-left: 1.25rem; border-left: 3px solid var(--color-primary, #f97316);
    background: var(--color-card-bg, #fff);
}
.forum-comment-item.comment-item--new { border-color: var(--color-primary, #f97316); }
.forum-comment-header { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: .45rem; }
.forum-comment-body { font-size: .875rem; line-height: 1.65; color: var(--color-text, #374151); word-break: break-all; }
.forum-admin-badge { font-size: .72rem; font-weight: 700; background: #6366f1; color: #fff; padding: .1rem .45rem; border-radius: 999px; }
.forum-secret-badge { font-size: .75rem; color: #6b7280; }

/* 글쓰기 폼 */
.forum-write-form-wrap {
    background: var(--color-card-bg, #fff); border: 1px solid var(--color-border, #e5e7eb);
    border-radius: .75rem; padding: 1.5rem; margin-bottom: 1.5rem;
}
.forum-form-row { margin-bottom: 1rem; }
.forum-form-label { display: block; font-size: .82rem; font-weight: 600; color: var(--color-text, #374151); margin-bottom: .35rem; }
.forum-form-label .req { color: #ef4444; }
.forum-form-input, .forum-form-select {
    width: 100%; height: 2.5rem; padding: 0 .75rem; box-sizing: border-box;
    border: 1px solid var(--color-border, #e5e7eb); border-radius: .5rem;
    font-size: .9rem; background: var(--color-input-bg, #fff); color: var(--color-text, #111827);
    outline: none; transition: border-color .15s;
}
.forum-form-input:focus, .forum-form-select:focus { border-color: var(--color-primary, #f97316); }
.forum-form-textarea {
    width: 100%; padding: .7rem .75rem; box-sizing: border-box;
    border: 1px solid var(--color-border, #e5e7eb); border-radius: .5rem;
    font-size: .9rem; resize: vertical; background: var(--color-input-bg, #fff);
    color: var(--color-text, #111827); outline: none; transition: border-color .15s;
}
.forum-form-textarea:focus { border-color: var(--color-primary, #f97316); }
.forum-form-row--check { display: flex; align-items: center; }
.forum-check-label { display: flex; align-items: center; gap: .4rem; font-size: .85rem; color: var(--color-text, #374151); cursor: pointer; }
.forum-write-actions { display: flex; gap: .75rem; justify-content: flex-end; margin-top: 1.5rem; }
.forum-cancel-btn {
    padding: .6rem 1.25rem; background: var(--color-card-bg-alt, #f3f4f6);
    border: 1px solid var(--color-border, #e5e7eb); border-radius: .6rem;
    font-size: .9rem; color: var(--color-text, #374151); text-decoration: none; font-weight: 600;
}
.forum-submit-btn {
    padding: .6rem 1.5rem; background: var(--color-primary, #f97316); color: #fff;
    border: none; border-radius: .6rem; font-size: .9rem; font-weight: 700; cursor: pointer;
}
.forum-submit-btn:hover { background: #ea6c0a; }

/* ─── 댓글 유틸리티 (deal.css와 공유하는 클래스 — forum/view.php에서 사용) ─── */
.comment-nick  { font-size: .82rem; font-weight: 700; color: var(--color-text, #374151); }
.comment-time  { font-size: .78rem; color: var(--color-muted, #9ca3af); }
.comment-reply-icon { font-size: .8rem; color: var(--color-primary, #f97316); margin-right: .2rem; }
.comment-del-btn {
    margin-left: auto; font-size: .75rem; color: #ef4444;
    background: none; border: none; cursor: pointer; padding: 0;
}
.comment-del-btn:hover { text-decoration: underline; }
.comment-empty { font-size: .875rem; color: var(--color-muted, #9ca3af); text-align: center; padding: 1rem 0; }
.comment-login-prompt {
    display: flex; align-items: center; justify-content: space-between; gap: .75rem;
    padding: .85rem 1rem; background: var(--color-card-bg-alt, #f9fafb);
    border: 1px solid var(--color-border, #e5e7eb); border-radius: .6rem;
    margin-bottom: 1.25rem; font-size: .875rem; color: var(--color-muted, #6b7280);
}
.comment-login-btn {
    padding: .35rem .9rem; background: var(--color-primary, #f97316); color: #fff;
    border-radius: .5rem; font-size: .82rem; font-weight: 700;
    text-decoration: none; white-space: nowrap;
}
.comment-form-footer {
    display: flex; align-items: center; justify-content: space-between; margin-top: .45rem;
}
.comment-form-user { font-size: .78rem; color: var(--color-muted, #9ca3af); }
.reply-list { margin-top: .6rem; display: flex; flex-direction: column; gap: .5rem; }
.reply-actions { margin-top: .5rem; }
.reply-toggle-btn {
    font-size: .78rem; color: var(--color-muted, #6b7280);
    background: none; border: none; cursor: pointer; padding: 0;
}
.reply-toggle-btn:hover { color: var(--color-primary, #f97316); }
.reply-form-wrap { margin-top: .5rem; }

/* 다크모드 */
.dark-mode .forum-list,
.dark-mode .forum-view-card,
.dark-mode .forum-comments,
.dark-mode .forum-write-form-wrap { background: #1f2937; border-color: #374151; }
.dark-mode .forum-header-title { color: #f9fafb; }
.dark-mode .forum-header-desc  { color: #9ca3af; }
.dark-mode .forum-tab { background: #374151; color: #d1d5db; }
.dark-mode .forum-tab:hover { background: #4b5563; }
.dark-mode .forum-tab.active { background: var(--color-primary, #f97316); color: #fff; }
.dark-mode .forum-row:hover { background: #111827; }
.dark-mode .forum-row-title { color: #f3f4f6; }
.dark-mode .forum-row-cat { background: #1e3a5f; color: #60a5fa; }
.dark-mode .forum-view-title { color: #f9fafb; }
.dark-mode .forum-view-meta  { color: #9ca3af; }
.dark-mode .forum-view-cat   { background: #1e3a5f; color: #60a5fa; }
.dark-mode .forum-view-body  { color: #d1d5db; }
.dark-mode .forum-comments-title { color: #f9fafb; }
.dark-mode .forum-comment-item { background: #111827; border-color: #374151; }
.dark-mode .forum-comment-item.is-reply { background: #1f2937; }
.dark-mode .forum-comment-item.is-admin { background: #1e1b4b; }
.dark-mode .forum-comment-body { color: #d1d5db; }
.dark-mode .forum-action-btn { background: #374151; color: #d1d5db; border-color: #4b5563; }
.dark-mode .forum-action-btn:hover { background: #4b5563; }
.dark-mode .forum-action-btn--del { color: #f87171; }
.dark-mode .forum-cancel-btn { background: #374151; color: #d1d5db; border-color: #4b5563; }
.dark-mode .forum-form-label  { color: #d1d5db; }
.dark-mode .forum-check-label { color: #d1d5db; }
.dark-mode .forum-search-input,
.dark-mode .forum-form-input,
.dark-mode .forum-form-select,
.dark-mode .forum-form-textarea,
.dark-mode .forum-comment-textarea { background: #1f2937; border-color: #4b5563; color: #f9fafb; }
.dark-mode .comment-nick { color: #e5e7eb; }
.dark-mode .comment-login-prompt { background: #111827; border-color: #374151; }
.dark-mode .forum-empty { color: #6b7280; }
