/* ============================================================
   Reddit 스타일 커뮤니티 CSS — dashboard & admin 공용
   v20250616
============================================================ */

.reddit-wrap {
    display: block;
    width: 100%;
    max-width: 1100px;
}
.reddit-main { display: block; width: 100%; }

/* ── 어드민 모드: 사이드바 숨김 ── */
.reddit-wrap.admin-mode { max-width: 100%; }
.reddit-wrap.admin-mode .reddit-sidebar { display: none !important; }
.reddit-wrap.admin-mode .reddit-main { max-width: 100%; width: 100%; }

/* ── 글 작성 바 ── */
.reddit-create-bar {
    display: flex; align-items: center; gap: .75rem;
    background: var(--dark-card); border: 1px solid var(--dark-border);
    border-radius: 12px; padding: .65rem 1rem; margin-bottom: .85rem;
}
.reddit-avatar-placeholder {
    width: 38px; height: 38px; background: var(--dark-border);
    border-radius: 50%; display: flex; align-items: center; justify-content: center;
    color: var(--text-muted); font-size: 1rem; flex-shrink: 0;
}
.reddit-create-btn {
    flex: 1; background: var(--dark-bg); border: 1px solid var(--dark-border);
    border-radius: 8px; color: var(--text-muted); padding: .55rem 1rem;
    text-align: left; cursor: pointer; font-size: .95rem; transition: border-color .2s;
}
.reddit-create-btn:hover { border-color: var(--primary-color); color: var(--text-primary); }

/* ── 글 작성 폼 ── */
.reddit-write-form {
    background: var(--dark-card); border: 1px solid var(--primary-color);
    border-radius: 12px; margin-bottom: .85rem; overflow: hidden;
}
.reddit-write-form-inner { padding: 1rem; }
.reddit-title-input {
    width: 100%; background: var(--dark-bg); border: 1px solid var(--dark-border);
    border-radius: 8px; color: var(--text-primary); padding: .65rem .85rem;
    font-size: 1rem; font-weight: 600; margin-bottom: .6rem; box-sizing: border-box;
}
.reddit-title-input:focus { outline: none; border-color: var(--primary-color); }
.reddit-content-input {
    width: 100%; background: var(--dark-bg); border: 1px solid var(--dark-border);
    border-radius: 8px; color: var(--text-primary); padding: .65rem .85rem;
    font-size: .95rem; resize: vertical; min-height: 100px;
    box-sizing: border-box; font-family: inherit;
}
.reddit-content-input:focus { outline: none; border-color: var(--primary-color); }
.reddit-write-actions { display: flex; justify-content: space-between; align-items: center; margin-top: .65rem; }
.reddit-char-count { font-size: .78rem; color: var(--text-muted); }

/* ── 공통 버튼 ── */
.reddit-btn {
    border: none; cursor: pointer; border-radius: 999px;
    font-size: .85rem; font-weight: 700; padding: .45rem 1.1rem;
    transition: opacity .2s, background .2s;
}
.reddit-btn:hover { opacity: .85; }
.reddit-btn-primary { background: var(--primary-color); color: #fff; }
.reddit-btn-ghost { background: transparent; border: 1px solid var(--dark-border); color: var(--text-secondary); }
.reddit-btn-full { width: 100%; }

/* ── 상태 메시지 ── */
.reddit-loading, .reddit-empty {
    text-align: center; padding: 3rem 1rem;
    color: var(--text-muted); font-size: .95rem; line-height: 1.8;
}
.reddit-loading i { font-size: 1.5rem; margin-bottom: .5rem; display: block; }

/* ── 포스트 카드 ── */
.reddit-post-card {
    display: flex; background: var(--dark-card); border: 1px solid var(--dark-border);
    border-radius: 12px; margin-bottom: .6rem;
    transition: border-color .15s, box-shadow .15s; overflow: hidden;
}
.reddit-post-card:hover { border-color: #6d6d6d; box-shadow: 0 2px 12px rgba(0,0,0,.25); }
.reddit-post-card.pinned { border-color: var(--primary-color); }

/* 투표 컬럼 */
.reddit-vote-col {
    display: flex; flex-direction: column; align-items: center; gap: .2rem;
    padding: .85rem .6rem; background: rgba(0,0,0,.15); min-width: 52px; flex-shrink: 0;
}
.reddit-upvote-btn, .reddit-downvote-btn {
    background: none; border: none; cursor: pointer; color: var(--text-muted);
    font-size: 1rem; padding: .25rem; border-radius: 4px;
    transition: color .15s, background .15s;
    display: flex; align-items: center; justify-content: center;
}
.reddit-upvote-btn:hover { color: #ff4500; background: rgba(255,69,0,.1); }
.reddit-upvote-btn.voted { color: #ff4500; }
.reddit-downvote-btn:hover { color: #7193ff; background: rgba(113,147,255,.1); }
.reddit-downvote-btn.downvoted { color: #7193ff; }
.reddit-vote-count {
    font-size: .78rem; font-weight: 700; color: var(--text-secondary);
    min-width: 24px; text-align: center;
}
.reddit-downvote-count {
    font-size: .78rem; font-weight: 700; color: #7193ff;
    min-width: 24px; text-align: center; min-height: 1em;
}

/* 포스트 본문 */
.reddit-post-content { flex: 1; min-width: 0; padding: .85rem 1rem; }
.reddit-post-meta {
    display: flex; align-items: center; flex-wrap: wrap;
    gap: .3rem; margin-bottom: .4rem; font-size: .8rem;
}
.reddit-meta-nick { font-weight: 600; color: var(--text-primary); }
.reddit-meta-sep { color: var(--text-muted); }
.reddit-meta-time { color: var(--text-muted); }
.reddit-post-title {
    font-size: 1.05rem; font-weight: 700; color: var(--text-primary);
    margin: 0 0 .35rem; cursor: pointer; line-height: 1.4;
}
.reddit-post-title:hover { color: var(--primary-color); }
.reddit-post-body-preview {
    font-size: .95rem; color: var(--text-secondary);
    margin: 0 0 .5rem; line-height: 1.65;
    overflow: hidden; display: -webkit-box;
    -webkit-line-clamp: 3; -webkit-box-orient: vertical;
}
.reddit-post-actions { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }

/* 액션 버튼 */
.reddit-action-btn {
    background: none; border: none; cursor: pointer; color: var(--text-muted);
    font-size: .8rem; font-weight: 600; padding: .3rem .6rem; border-radius: 4px;
    display: flex; align-items: center; gap: .3rem; transition: background .15s, color .15s;
}
.reddit-action-btn:hover { background: rgba(255,255,255,.07); color: var(--text-primary); }
.reddit-action-btn.voted-text { color: #ff4500; }
.reddit-action-btn.downvoted-text { color: #7193ff; }

/* 어드민 전용 버튼 */
.reddit-action-pin { color: #fbbf24 !important; }
.reddit-action-pin:hover { background: rgba(251,191,36,.12) !important; color: #fcd34d !important; }
.reddit-action-del { color: #f87171 !important; }
.reddit-action-del:hover { background: rgba(248,113,113,.12) !important; color: #ef4444 !important; }
.reddit-action-divider { color: var(--dark-border); padding: 0 .1rem; font-size: .75rem; user-select: none; }
.fa-thumbtack.pinned-icon { color: #f59e0b; }

/* ── 배지 ── */
.reddit-badge {
    display: inline-flex; align-items: center; gap: .2rem;
    font-size: .7rem; font-weight: 700; border-radius: 999px; padding: .15rem .55rem;
}
.reddit-badge-admin { background: rgba(99,102,241,.2); color: #818cf8; }
.reddit-badge-cohort { background: rgba(16,185,129,.15); color: #10b981; }
.reddit-badge-pin { background: rgba(255,165,0,.15); color: #fbbf24; }

/* ── 상세 뷰 ── */
.reddit-back-btn {
    background: none; border: none; cursor: pointer; color: var(--text-muted);
    font-size: .875rem; font-weight: 600; padding: .4rem .75rem .4rem 0;
    display: inline-flex; align-items: center; gap: .4rem;
    margin-bottom: .75rem; transition: color .15s;
}
.reddit-back-btn:hover { color: var(--text-primary); }
.reddit-detail-post {
    display: flex; background: var(--dark-card); border: 1px solid var(--dark-border);
    border-radius: 12px; overflow: hidden; margin-bottom: 1rem;
}
.reddit-vote-col-detail { padding: 1rem .6rem; min-width: 52px; background: rgba(0,0,0,.15); }
.reddit-detail-content { flex: 1; min-width: 0; padding: 1rem 1.25rem; }
.reddit-detail-title {
    font-size: 1.1rem; font-weight: 700; color: var(--text-primary);
    margin: .4rem 0 .6rem; line-height: 1.4;
}
.reddit-detail-body {
    font-size: .95rem; color: var(--text-secondary); line-height: 1.75; word-break: break-word;
}

/* ── 댓글 작성 ── */
.reddit-comment-write {
    background: var(--dark-card); border: 1px solid var(--dark-border);
    border-radius: 12px; padding: 1rem; margin-bottom: 1rem;
}
.reddit-comment-textarea {
    width: 100%; background: var(--dark-bg); border: 1px solid var(--dark-border);
    border-radius: 8px; color: var(--text-primary); padding: .65rem .85rem;
    font-size: .9rem; resize: vertical; font-family: inherit; box-sizing: border-box;
}
.reddit-comment-textarea:focus { outline: none; border-color: var(--primary-color); }
.reddit-comment-write-actions { display: flex; justify-content: flex-end; margin-top: .6rem; }

/* 댓글 정렬 */
.reddit-comment-sort { display: flex; align-items: center; gap: .6rem; margin-bottom: .75rem; }
.reddit-sort-btn {
    background: none; border: 1px solid var(--dark-border); border-radius: 999px;
    color: var(--text-muted); font-size: .8rem; font-weight: 600;
    padding: .3rem .8rem; cursor: pointer; transition: background .15s, color .15s;
}
.reddit-sort-btn.active { background: var(--primary-color); color: #fff; border-color: var(--primary-color); }

/* ── 댓글 ── */
.reddit-comments-list {
    display: block;
}
.reddit-comment {
    display: block;
    padding: .75rem 0;
    border-bottom: 1px solid rgba(255,255,255,.04);
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
}
.reddit-comment-thread-line {
    display: none; /* 세로선은 children border-left로 대체 */
}
.reddit-comment-body {
    display: block;
    width: 100%;
}
.reddit-comment-meta {
    display: flex; align-items: center; flex-wrap: wrap; gap: .3rem; margin-bottom: .35rem;
}
.reddit-comment-avatar { color: var(--text-muted); font-size: 1.1rem; }
.reddit-comment-text {
    font-size: .95rem; color: var(--text-secondary); line-height: 1.75;
    word-break: break-word; margin-bottom: .4rem;
}
.reddit-comment-actions { display: flex; align-items: center; gap: .3rem; flex-wrap: wrap; }
.reddit-comment-children {
    display: block;
    margin-top: .25rem;
    padding-left: 1rem;
    border-left: 2px solid var(--dark-border);
}
.reddit-reply-form {
    margin-top: .6rem; background: var(--dark-bg);
    border: 1px solid var(--dark-border); border-radius: 8px; padding: .6rem;
}

/* ── 사이드바 ── */
.reddit-sidebar { width: 300px; flex-shrink: 0; position: sticky; top: 1rem; }
.reddit-sidebar-card {
    background: var(--dark-card); border: 1px solid var(--dark-border);
    border-radius: 12px; overflow: hidden; margin-bottom: 1rem;
}
.reddit-sidebar-banner { height: 70px; background: linear-gradient(135deg, var(--primary-color), #7c3aed); }
.reddit-sidebar-body { padding: 1rem; }
.reddit-sidebar-title {
    font-size: 1rem; font-weight: 800; color: var(--text-primary);
    margin: 0 0 .5rem; display: flex; align-items: center; gap: .4rem;
}
.reddit-sidebar-desc {
    font-size: .85rem; color: var(--text-secondary); line-height: 1.55; margin-bottom: .85rem;
}
.reddit-sidebar-stats {
    display: flex; gap: 1.5rem; margin-bottom: .85rem;
    padding-bottom: .85rem; border-bottom: 1px solid var(--dark-border);
}
.reddit-stat { display: flex; flex-direction: column; gap: .15rem; }
.reddit-stat strong { font-size: 1.05rem; font-weight: 800; color: var(--text-primary); }
.reddit-stat span { font-size: .75rem; color: var(--text-muted); }
.reddit-sidebar-rules-title {
    font-size: .95rem; font-weight: 700; color: var(--text-primary);
    padding: .85rem 1rem .5rem; border-bottom: 1px solid var(--dark-border);
}
.reddit-rules-list {
    list-style: decimal; margin: 0; padding: .75rem 1rem .75rem 1.75rem;
    color: var(--text-secondary); font-size: .85rem; line-height: 1.8;
}

/* ── 반응형 ── */
@media (max-width: 800px) {
    .reddit-wrap { flex-direction: column; }
    .reddit-sidebar { width: 100%; position: static; }
}
