
.forum-toolbar{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin-bottom:24px;
}
.forum-search{
  flex:1;min-width:200px;position:relative;
}
.forum-search input{
  width:100%;padding:11px 16px 11px 38px;
  background:rgba(255,255,255,0.06);
  border:1px solid var(--border);border-radius:30px;
  color:var(--text);font-size:0.92rem;outline:none;
  transition:border 0.2s;
}
[data-theme="day"] .forum-search input{background:rgba(0,0,0,0.04);}
.forum-search input:focus{border-color:var(--accent);}
.forum-search i{
  position:absolute;left:15px;top:50%;transform:translateY(-50%);
  color:var(--text2);font-size:0.85rem;
}

.forum-sort{border-radius:30px;}
.btn-new-topic{
  display:flex;align-items:center;gap:8px;white-space:nowrap;
  padding:10px 22px;border-radius:30px;
  background:var(--accent);color:#fff;border:none;
  font-size:0.9rem;font-weight:600;transition:filter 0.2s;
}
.btn-new-topic:hover{filter:brightness(1.1);}

.category-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px;}
.category-chip{
  padding:8px 16px;border-radius:20px;
  border:1px solid var(--border);background:none;
  color:var(--text2);font-size:0.85rem;font-weight:500;
  transition:border 0.2s,color 0.2s,background 0.2s;
}
.category-chip:hover{border-color:var(--accent);color:var(--text);}
.category-chip.active{background:var(--accent);color:#fff;border-color:var(--accent);}
.category-chip .count{opacity:0.7;font-size:0.78rem;margin-left:4px;}

.topic-card{
  padding:18px 22px;margin-bottom:12px;
  display:flex;align-items:center;gap:16px;
  transition:transform 0.25s,box-shadow 0.25s;
  position:relative;
}
.topic-card:hover{transform:translateY(-3px);}
.topic-card.pinned{border-color:rgba(212,172,64,0.4);}
.topic-card.closed{}

.topic-pin-badge{
  position:absolute;top:-8px;left:18px;
  background:var(--accent2);color:#1a1a1a;
  font-size:0.72rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;
  padding:2px 10px;border-radius:10px;
}

.avatar{
  width:44px;height:44px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:1rem;font-weight:700;color:#fff;
  background-size:cover;background-position:center;
  position:relative;
}
.avatar-status{
  position:absolute;bottom:-2px;right:-2px;
  width:11px;height:11px;border-radius:50%;
  border:2px solid var(--bg);
}
.avatar-status.online{background:#3ecf6c;}
.avatar-status.away{background:#e6b84f;}
.avatar-status.offline{background:#888;}

.topic-body{flex:1;min-width:0;}
.topic-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.topic-title{
  font-family:var(--font-display);font-size:1.05rem;font-weight:700;
  color:var(--text);
}
.topic-title a{transition:color 0.2s;}
.topic-title a:hover{color:var(--accent);}
.icon-closed{color:var(--text2);font-size:0.8rem;}
.new-dot{
  width:7px;height:7px;border-radius:50%;background:var(--accent);
  display:inline-block;box-shadow:0 0 6px var(--accent);
}

.topic-preview{
  font-size:0.85rem;color:var(--text2);line-height:1.5;margin-top:3px;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.topic-meta{
  display:flex;align-items:center;gap:10px;
  font-size:0.75rem;color:var(--text2);margin-top:8px;flex-wrap:wrap;
  position:relative;z-index:1;
}
.topic-meta a{color:var(--text2);font-weight:500;transition:color 0.2s;}
.topic-meta a:hover{color:var(--accent);}
.topic-meta i{font-size:0.7rem;}
.topic-tag{
  padding:2px 9px;border-radius:20px;
  background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);
  font-size:0.7rem;letter-spacing:0.5px;
}

.topic-stats{
  display:flex;gap:8px;flex-shrink:0;text-align:center;
  margin-right:20px;align-items:center;
}
.topic-stats > div{
  min-width:74px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
}
.topic-stat-num{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:var(--text);display:block;line-height:1.1;}
.topic-stat-label{font-size:0.68rem;color:var(--text2);text-transform:uppercase;letter-spacing:0.5px;line-height:1.1;}

.topic-last-post{
  flex-shrink:0;width:170px;text-align:right;
  font-size:0.78rem;color:var(--text2);
}
.topic-last-post .lp-nick{color:var(--text);font-weight:500;}
.topic-last-post .lp-time{display:block;margin-top:2px;}
.topic-last-post .lp-none{color:var(--text2);opacity:0.7;}

@media(min-width:1024px){
  .topic-last-post{display:block;}
}

.pagination{
  display:flex;align-items:center;justify-content:center;gap:6px;
  margin-top:32px;flex-wrap:wrap;
}
.page-btn{
  min-width:38px;height:38px;padding:0 10px;border-radius:10px;
  border:1px solid var(--border);background:none;color:var(--text2);
  font-size:0.88rem;transition:border 0.2s,color 0.2s,background 0.2s;
}
.page-btn:hover{border-color:var(--accent);color:var(--text);}
.page-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);}
.page-btn:disabled{opacity:0.4;cursor:not-allowed;}

.topic-header{margin-bottom:24px;}
.topic-breadcrumb{
  font-size:0.82rem;color:var(--text2);margin-bottom:14px;
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
}
.topic-breadcrumb a{color:var(--accent);}
.topic-header h1{
  font-family:var(--font-display);font-size:clamp(1.5rem,3.5vw,2.2rem);
  color:var(--text);line-height:1.2;margin-bottom:10px;
}
.topic-header-meta{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  font-size:0.83rem;color:var(--text2);
}
.topic-controls{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap;}
.icon-btn{
  width:34px;height:34px;border-radius:8px;
  border:1px solid var(--border);background:none;color:var(--text2);
  display:flex;align-items:center;justify-content:center;font-size:0.85rem;
  transition:border 0.2s,color 0.2s;
}
.icon-btn:hover{border-color:var(--accent);color:var(--accent);}
.icon-btn.danger:hover{border-color:#e25555;color:#e25555;}
.icon-btn.is-active{background:var(--accent);color:#fff;border-color:var(--accent);}

.topic-original-post{padding:26px 28px;margin-bottom:28px;}

.posts-tree{display:flex;flex-direction:column;gap:16px;position:relative;}
.post-item{padding:20px 22px;position:relative;min-width:0;z-index:1;}
.post-item.is-deleted{opacity:0.55;}

.post-item.post-nested{
  border:1px solid var(--border);
  border-radius:16px;
  background:rgba(255,255,255,0.02);
}
[data-theme="day"] .post-item.post-nested{background:rgba(0,0,0,0.015);}

.thread-lines-svg path{stroke:var(--thread-line);}
.thread-lines-svg{animation:threadFadeIn 0.35s ease;}
@keyframes threadFadeIn{from{opacity:0;}to{opacity:1;}}

@media(max-width:600px){
  .post-item{padding:16px 16px;}
}

.post-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.post-author-name{font-weight:600;color:var(--text);font-size:0.92rem;}
.post-time{font-size:0.75rem;color:var(--text2);}
.post-edited{font-size:0.7rem;color:var(--text2);opacity:0.7;font-style:italic;}
.post-level-badge{
  font-size:0.72rem;color:var(--accent2);background:rgba(212,172,64,0.12);
  padding:1px 7px;border-radius:8px;font-weight:600;
}

.post-quote{
  border-left:3px solid var(--accent);
  padding:8px 14px;margin-bottom:10px;border-radius:0 8px 8px 0;
  background:rgba(255,255,255,0.04);
  font-size:0.85rem;color:var(--text2);
}
[data-theme="day"] .post-quote{background:rgba(0,0,0,0.03);}
.post-quote-author{color:var(--accent);font-weight:600;font-size:0.78rem;display:block;margin-bottom:3px;}

.post-body{font-size:0.93rem;line-height:1.7;color:var(--text);word-break:break-word;}
.post-body p{margin-bottom:8px;}
.post-body blockquote{
  border-left:3px solid var(--border);padding-left:12px;color:var(--text2);margin:8px 0;
}
.post-body a{color:var(--accent);text-decoration:underline;}
.post-body .untrusted-link-removed{color:var(--text2);text-decoration:line-through;cursor:default;}
.post-body code{
  background:rgba(255,255,255,0.08);padding:2px 6px;border-radius:5px;font-size:0.85em;
}
.post-body pre{
  background:rgba(0,0,0,0.25);padding:12px 14px;border-radius:8px;overflow-x:auto;margin:8px 0;
}
.post-body ul,.post-body ol{margin-left:20px;margin-bottom:8px;}

.post-actions{display:flex;gap:14px;margin-top:12px;flex-wrap:wrap;row-gap:8px;}
.post-action-btn{
  display:flex;align-items:center;gap:5px;flex-shrink:0;white-space:nowrap;
  background:none;border:none;color:var(--text2);
  font-size:0.78rem;font-weight:500;transition:color 0.2s;
}
.post-action-btn:hover{color:var(--accent);}
.post-action-btn.danger:hover{color:#e25555;}

.inline-reply-form{margin-top:12px;display:none;}
.inline-reply-form.open{display:block;}

.editor-wrapper{
  border:1px solid var(--border);border-radius:var(--radius-sm);
  overflow:hidden;background:rgba(255,255,255,0.04);
}
[data-theme="day"] .editor-wrapper{background:rgba(0,0,0,0.03);}
.editor-toolbar{
  display:flex;gap:2px;padding:8px;border-bottom:1px solid var(--border);flex-wrap:wrap;
}
.editor-btn{
  width:32px;height:32px;border-radius:7px;border:none;background:none;
  color:var(--text2);font-size:0.85rem;transition:background 0.15s,color 0.15s;
}
.editor-btn:hover{background:rgba(255,255,255,0.08);color:var(--text);}
[data-theme="day"] .editor-btn:hover{background:rgba(0,0,0,0.06);}
.editor-divider{width:1px;background:var(--border);margin:4px 4px;}
.editor-content{
  min-height:120px;max-height:340px;overflow-y:auto;
  padding:14px 16px;font-size:0.93rem;line-height:1.6;color:var(--text);outline:none;
}
.editor-content:empty::before{content:attr(data-placeholder);color:var(--text2);opacity:0.6;}
.editor-footer{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 14px;border-top:1px solid var(--border);
}
.editor-char-count{font-size:0.72rem;color:var(--text2);}
.editor-submit-group{display:flex;gap:8px;}
.btn-preview-toggle{
  padding:7px 14px;border-radius:7px;border:1px solid var(--border);
  background:none;color:var(--text2);font-size:0.82rem;transition:border 0.2s;
}
.btn-preview-toggle:hover{border-color:var(--accent);}
.btn-submit-post{
  padding:7px 18px;border-radius:7px;border:none;
  background:var(--accent);color:#fff;font-size:0.85rem;font-weight:600;
  transition:filter 0.2s;
}
.btn-submit-post:hover{filter:brightness(1.1);}
.btn-submit-post:disabled{opacity:0.5;cursor:not-allowed;}

.preview-box{
  padding:14px 16px;border-top:1px solid var(--border);
  background:rgba(255,255,255,0.03);display:none;
}
.preview-box.open{display:block;}
.preview-box-label{font-size:0.7rem;text-transform:uppercase;color:var(--text2);letter-spacing:1px;margin-bottom:8px;}

.reply-context{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:8px 14px;background:color-mix(in srgb, var(--accent) 8%, transparent);
  border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);border-radius:8px;margin-bottom:10px;
  font-size:0.82rem;color:var(--text2);
}
.reply-context-cancel{background:none;border:none;color:var(--text2);font-size:0.9rem;}
.reply-context-cancel:hover{color:#e25555;}

.new-topic-form{padding:28px;margin-bottom:28px;display:none;}
.new-topic-form.open{display:block;}
.new-topic-form h3{font-family:var(--font-display);font-size:1.2rem;margin-bottom:20px;color:var(--text);}
.form-actions{display:flex;gap:10px;margin-top:16px;}

.forum-guest-note{
  padding:16px 20px;border-radius:10px;
  background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);
  font-size:0.87rem;color:var(--text2);margin-bottom:24px;
}
.forum-guest-note a{color:var(--accent);font-weight:500;}

@media(max-width:768px){
  .topic-card{flex-wrap:nowrap;align-items:flex-start;gap:12px;padding:14px 16px;}
  .topic-card > .avatar{flex-shrink:0;}
  .topic-stats{display:none;}

  .topic-last-post{display:none;}
  .forum-toolbar{flex-direction:column;align-items:stretch;}
}

.post-body .post-image, .post-image{
  max-width:100%;max-height:520px;border-radius:12px;margin:10px 0;
  display:block;border:1px solid var(--border);object-fit:contain;
}
.editor-content .post-image{max-height:280px;width:auto;}

.reports-tabs{display:flex;gap:8px;margin:16px 0 20px;flex-wrap:wrap;}
.reports-tab{padding:8px 16px;border-radius:10px;border:1px solid var(--border);background:none;color:var(--text2);font-weight:600;font-size:0.85rem;transition:all 0.15s;}
.reports-tab.active{background:var(--accent);color:#0d1228;border-color:var(--accent);}
.reports-list{display:flex;flex-direction:column;gap:12px;}
.report-card{padding:18px;border-radius:14px;}
.report-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.report-type{font-weight:700;color:var(--accent);font-size:0.9rem;}
.report-date{font-size:0.78rem;color:var(--text2);}
.report-label{display:block;font-size:0.72rem;letter-spacing:0.02em;color:var(--text2);font-weight:600;margin-bottom:3px;}
.report-field{color:var(--text);line-height:1.5;margin-bottom:10px;white-space:pre-wrap;word-break:break-word;}
.report-snapshot{background:rgba(255,255,255,0.04);border-left:3px solid var(--accent);border-radius:8px;padding:10px 12px;margin-bottom:10px;color:var(--text);font-size:0.92rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;}
.report-meta{display:flex;align-items:center;gap:16px;font-size:0.84rem;color:var(--text2);flex-wrap:wrap;margin-bottom:8px;}
.report-from b{color:var(--text);}
.report-link{color:var(--accent);text-decoration:none;display:inline-flex;align-items:center;gap:5px;}
.report-handled{display:block;font-size:0.8rem;color:var(--text2);margin-bottom:4px;}
.report-handled b{color:var(--text);}
.report-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
.report-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 15px;font-size:0.85rem;font-weight:600;border-radius:10px;border:1px solid var(--border);background:rgba(255,255,255,0.03);color:var(--text);transition:all 0.15s;}
.report-btn:hover{background:rgba(255,255,255,0.08);}
.report-btn.primary{background:var(--accent);border-color:var(--accent);color:#0d1228;}
.report-btn.primary:hover{filter:brightness(1.08);}
.report-btn.danger{color:#ff8a8a;border-color:rgba(226,85,85,0.35);}
.report-btn.danger:hover{background:rgba(226,85,85,0.14);}
.report-btn.warn{color:#e8b34a;border-color:rgba(232,179,74,0.35);}
.report-btn.warn:hover{background:rgba(232,179,74,0.14);}
.report-ban-panel{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px;padding:12px;background:rgba(226,85,85,0.07);border:1px solid rgba(226,85,85,0.25);border-radius:10px;}
.report-ban-dur{flex-shrink:0;}
.report-ban-reason{flex:1;min-width:160px;padding:9px 12px;border-radius:9px;border:1px solid var(--border);background:rgba(255,255,255,0.04);color:var(--text);font-size:0.85rem;}
.editor-content .post-image, .post-body .post-image, .news-body .post-image{border-radius:8px;transition:opacity 0.15s;}
.editor-content .post-image:hover, .post-body .post-image:hover, .news-body .post-image:hover{opacity:0.9;}

.editor-img-del{
  position:absolute;z-index:5;display:none;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:8px;border:none;
  background:rgba(226,85,85,0.92);color:#fff;font-size:0.8rem;cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,0.35);transition:background 0.15s;
}
.editor-img-del:hover{background:#e25555;}

.topic-has-photo{
  display:inline-flex;align-items:center;gap:4px;margin-left:8px;
  padding:1px 8px;border-radius:20px;vertical-align:middle;
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  color:var(--accent);font-size:0.7rem;font-weight:600;white-space:nowrap;
}
