/* ============================================
   FORUM — стили, совместимы с style.css
   ============================================ */

.forum-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:20px; }
.forum-toolbar h2 { margin:0; font-size:22px; font-weight:700; display:flex; align-items:center; gap:8px; }
.forum-toolbar-right { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.forum-sort select { background:var(--bg-card); color:var(--text-primary); border:1px solid var(--border-color); border-radius:var(--radius-sm); padding:8px 12px; font-size:13px; cursor:pointer; }
.forum-sort select:hover { border-color:var(--accent-blue); }

.forum-breadcrumbs { margin-bottom:16px; font-size:13px; color:var(--text-secondary); }
.forum-breadcrumbs a { color:var(--accent-blue); text-decoration:none; }
.forum-breadcrumbs a:hover { text-decoration:underline; }

.forum-categories { display:flex; flex-direction:column; gap:12px; }
.forum-category {
    display:grid; grid-template-columns: 56px 1fr 160px 300px;
    gap:16px; align-items:center;
    padding:16px 20px;
    background:var(--bg-card); border:1px solid var(--border-color);
    border-radius:var(--radius); transition:var(--transition);
}
.forum-category:hover { border-color:rgba(74,158,255,0.35); transform:translateY(-2px); box-shadow:var(--shadow); }
.forum-cat-icon { font-size:32px; text-align:center; }
.forum-cat-name { font-size:16px; font-weight:700; color:var(--text-primary); text-decoration:none; display:inline-block; }
.forum-cat-name:hover { color:var(--accent-blue); }
.forum-cat-desc { font-size:13px; color:var(--text-secondary); margin-top:4px; }
.forum-cat-stats { display:flex; gap:18px; text-align:center; justify-content:center; }
.forum-cat-stats b { display:block; font-size:16px; color:var(--text-primary); font-weight:700; }
.forum-cat-stats span { font-size:11px; color:var(--text-secondary); text-transform:uppercase; letter-spacing:.5px; }
.forum-cat-last { font-size:13px; color:var(--text-secondary); text-align:right; }
.forum-cat-last a { color:var(--accent-blue); text-decoration:none; font-weight:600; display:block; margin-bottom:2px; }
.forum-cat-last a:hover { text-decoration:underline; }

.forum-table-container {
    background:var(--bg-card); border:1px solid var(--border-color);
    border-radius:var(--radius); padding:16px 18px; margin-top:20px;
}
.forum-table-scroll { max-height:600px; overflow:auto; border-radius:var(--radius-sm); }
.forum-table { width:100%; border-collapse:collapse; font-size:14px; }
.forum-table thead th {
    position:sticky; top:0; z-index:2;
    background:var(--bg-card);
    text-align:left; padding:10px 12px;
    font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.8px;
    color:var(--text-secondary);
    border-bottom:2px solid var(--border-color);
    cursor:pointer; user-select:none; white-space:nowrap;
    transition:var(--transition);
}
.forum-table thead th:hover { color:var(--accent-blue); }
.forum-table thead th .sort-arrow { display:inline-block; margin-left:4px; opacity:.4; font-size:10px; }
.forum-table thead th.sort-asc .sort-arrow,
.forum-table thead th.sort-desc .sort-arrow { opacity:1; color:var(--accent-blue); }
.forum-table tbody tr { border-bottom:1px solid var(--border-color); transition:var(--transition); }
.forum-table tbody tr:hover { background:var(--bg-hover); }
.forum-table tbody td { padding:12px 14px; vertical-align:middle; color:var(--text-primary); }
.forum-col-num    { text-align:center; width:70px; color:var(--text-secondary); white-space:nowrap; }
.forum-col-author { width:200px; white-space:nowrap; }
.forum-col-last   { width:200px; white-space:nowrap; }
.forum-row-pinned { background:rgba(88,166,255,0.05); }
.forum-topic-title { color:var(--text-primary); text-decoration:none; font-weight:600; }
.forum-topic-title:hover { color:var(--accent-blue); }
.forum-pin, .forum-lock { margin-right:6px; }
.forum-meta { font-size:11px; color:var(--text-secondary); margin-top:2px; }
.forum-empty { color:var(--text-secondary); font-size:13px; font-style:italic; }

.forum-pagination {
    display:flex; gap:4px; justify-content:center; align-items:center;
    margin-top:16px; flex-wrap:wrap;
}
.forum-pagination button {
    padding:6px 12px; border-radius:6px; cursor:pointer;
    background:var(--bg-input); color:var(--text-secondary);
    border:1px solid var(--border-color); font-size:13px;
    transition:var(--transition);
}
.forum-pagination button:hover:not(:disabled) { border-color:var(--accent-blue); color:var(--accent-blue); }
.forum-pagination button.active { background:var(--accent-blue); color:#fff; border-color:var(--accent-blue); }
.forum-pagination button:disabled { opacity:.3; cursor:not-allowed; }
.forum-pagination .page-info { color:var(--text-secondary); font-size:12px; margin-left:8px; }

.forum-topic-header {
    padding:20px; margin-bottom:20px;
    background:var(--bg-card); border:1px solid var(--border-color);
    border-radius:var(--radius);
}
.forum-topic-header h2 { margin:0 0 8px; font-size:22px; font-weight:700; }
.forum-topic-meta { font-size:13px; color:var(--text-secondary); }
.forum-topic-meta a { color:var(--accent-blue); text-decoration:none; }
.forum-modbar { display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }

.forum-post {
    display:grid; grid-template-columns:200px 1fr; gap:20px;
    padding:20px; margin-bottom:14px;
    background:var(--bg-card); border:1px solid var(--border-color);
    border-radius:var(--radius); transition:var(--transition);
}
.forum-post:target { border-color:var(--accent-blue); box-shadow:0 0 0 2px rgba(88,166,255,.2); }
.forum-post-author { font-size:14px; }
.forum-post-author .bot-badge { display:inline-block; margin-top:6px; padding:2px 10px; font-size:11px; }
.forum-post-date { font-size:12px; color:var(--text-secondary); margin-top:8px; }
.forum-post-body { min-width:0; }
.forum-post-text { font-size:14px; line-height:1.6; word-wrap:break-word; overflow-wrap:anywhere; }
.forum-quote {
    border-left:3px solid var(--accent-blue);
    background:var(--bg-hover);
    padding:10px 14px; margin:0 0 12px;
    font-size:13px; color:var(--text-secondary);
    border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}
.forum-edited { font-size:12px; color:var(--text-secondary); margin-top:8px; font-style:italic; }
.forum-post-actions { display:flex; gap:8px; margin-top:14px; flex-wrap:wrap; align-items:center; }

.forum-react {
    background:var(--bg-hover);
    border:1px solid var(--border-color); color:var(--text-secondary);
    padding:4px 10px; border-radius:20px; cursor:pointer; font-size:13px;
    transition:var(--transition);
}
.forum-react:hover { background:var(--bg-card); color:var(--text-primary); }
.forum-react.active { background:rgba(88,166,255,.15); color:var(--accent-blue); border-color:var(--accent-blue); }
.forum-react:disabled { opacity:.4; cursor:not-allowed; }
.forum-action-link {
    color:var(--text-secondary); font-size:13px; text-decoration:none;
    background:none; border:none; cursor:pointer; padding:4px 8px; border-radius:6px;
    transition:var(--transition);
}
.forum-action-link:hover { color:var(--accent-blue); background:var(--bg-hover); }
.forum-action-link.danger:hover { color:var(--accent-red); }

.forum-attachments { margin-top:12px; display:flex; flex-direction:column; gap:8px; }
.forum-att-img img { max-width:260px; max-height:200px; border-radius:var(--radius-sm); border:1px solid var(--border-color); }
.forum-att-file {
    display:inline-flex; gap:8px; align-items:center;
    padding:6px 12px; font-size:13px;
    background:var(--bg-hover);
    border:1px solid var(--border-color); border-radius:var(--radius-sm);
    color:var(--text-primary); text-decoration:none;
}
.forum-att-file:hover { border-color:var(--accent-blue); color:var(--accent-blue); }
.forum-att-file span { color:var(--text-secondary); font-size:11px; }

.forum-form { display:flex; flex-direction:column; gap:16px; max-width:900px; }
.forum-form label { display:flex; flex-direction:column; gap:6px; font-size:13px; color:var(--text-secondary); }
.forum-form input[type=text], .forum-form select, .forum-form textarea {
    background:var(--bg-input); color:var(--text-primary);
    border:1px solid var(--border-color); border-radius:var(--radius-sm);
    padding:10px 14px; font-size:14px; font-family:inherit; width:100%;
    outline:none; transition:var(--transition);
}
.forum-form textarea { resize:vertical; min-height:140px; }
.forum-form input:focus, .forum-form select:focus, .forum-form textarea:focus {
    border-color:var(--accent-blue);
    box-shadow:0 0 0 3px rgba(88,166,255,.12);
}

.forum-reply {
    margin-top:24px; padding:20px;
    background:var(--bg-card); border:1px solid var(--border-color);
    border-radius:var(--radius);
}
.forum-reply textarea {
    width:100%; background:var(--bg-input); color:var(--text-primary);
    border:1px solid var(--border-color); border-radius:var(--radius-sm);
    padding:12px; font-size:14px; font-family:inherit; resize:vertical;
    outline:none; transition:var(--transition);
}
.forum-reply textarea:focus { border-color:var(--accent-blue); box-shadow:0 0 0 3px rgba(88,166,255,.12); }
.forum-reply-bottom { display:flex; justify-content:space-between; align-items:center; margin-top:12px; gap:12px; flex-wrap:wrap; }
.forum-file-label { font-size:13px; color:var(--text-secondary); cursor:pointer; }
.forum-file-label input[type=file] { display:none; }

.forum-empty-box {
    padding:32px; text-align:center; color:var(--text-secondary);
    background:var(--bg-card); border:1px solid var(--border-color);
    border-radius:var(--radius);
}
.forum-error {
    padding:12px 16px; margin-bottom:12px;
    background:rgba(255,71,87,.1); border:1px solid rgba(255,71,87,.3);
    border-radius:var(--radius-sm); color:var(--accent-red); font-size:13px;
}

.forum-author { color:var(--accent-blue); text-decoration:none; display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap; }
.forum-author:hover { text-decoration:underline; }
.forum-author-none { color:var(--text-secondary); }

.bot-badge { display:inline-block; padding:2px 10px; border-radius:12px; font-size:11px; font-weight:600; white-space:nowrap; }
.bot-badge.admin     { background:rgba(255,68,68,.15);  color:#ff4444; border:1px solid rgba(255,68,68,.3); }
.bot-badge.moderator { background:rgba(88,166,255,.15); color:#58a6ff; border:1px solid rgba(88,166,255,.3); }
.bot-badge.verified  { background:rgba(46,204,113,.15); color:#2ecc71; border:1px solid rgba(46,204,113,.3); }
.bot-badge.pending   { background:rgba(241,196,15,.15); color:#f1c40f; border:1px solid rgba(241,196,15,.3); }
.bot-badge.none      { background:rgba(139,148,158,.1); color:#8b949e; border:1px solid rgba(139,148,158,.2); }

.forum-btn {
    padding:10px 20px; border-radius:var(--radius-sm); border:none;
    font-size:14px; font-weight:600; cursor:pointer; text-decoration:none;
    display:inline-block; transition:var(--transition);
    background:linear-gradient(135deg, var(--accent-blue), #4a8bdb); color:#fff;
}
.forum-btn:hover { transform:translateY(-1px); box-shadow:0 4px 16px rgba(88,166,255,.3); }
.forum-btn.secondary { background:var(--bg-input); color:var(--text-secondary); border:1px solid var(--border-color); }
.forum-btn.danger { background:linear-gradient(135deg, #ff4757, #cc2a3a); }

@media (max-width: 900px) {
    .forum-category { grid-template-columns: 40px 1fr; }
    .forum-cat-stats, .forum-cat-last { grid-column: 1 / -1; text-align:left; }
    .forum-post { grid-template-columns: 1fr; }
    .forum-col-author, .forum-col-last { display:none; }
}
/* === Медиавложения в постах === */
.forum-att-media {
    margin-top: 10px;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.forum-att-media audio {
    width: 100%;
    max-width: 500px;
    height: 40px;
    border-radius: var(--radius-sm);
    background: var(--bg-input);
    outline: none;
}
.forum-att-media video {
    width: 100%;
    max-width: 640px;
    max-height: 400px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-color);
    background: #000;
    outline: none;
}
.forum-att-media .att-caption {
    font-size: 12px;
    color: var(--text-secondary);
    margin-top: 2px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.forum-att-media .att-caption a {
    color: var(--accent-blue);
    text-decoration: none;
}
.forum-att-media .att-caption a:hover { text-decoration: underline; }