/* ===== 技术交流论坛 · 扩展样式 ===== */
.post-title{
  display:block;width:100%;border:0;background:none;padding:2px 0 8px;
  font-size:17px;font-weight:600;letter-spacing:-.2px;color:var(--txt);outline:none;
}
.post-title::placeholder{color:var(--sub);font-weight:500}
.search{
  flex:1;min-width:120px;border:.5px solid var(--sep);background:var(--card);
  border-radius:10px;padding:8px 12px;font-size:14px;color:var(--txt);outline:none;
}
.search::placeholder{color:var(--sub)}
.search:focus{border-color:var(--blue)}
.filters{margin:0 0 12px}

/* 主题卡片 */
.thread{
  background:var(--card);border-radius:14px;padding:13px 14px 11px;
  box-shadow:var(--shadow);border:.5px solid var(--sep);
  transition:transform .12s;
}
.thread:active{transform:scale(.995)}
.thread-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.badge{
  font-size:11.5px;font-weight:600;letter-spacing:-.1px;
  color:var(--blue);background:rgba(0,122,255,.11);
  padding:2px 8px;border-radius:7px;
}
@media (prefers-color-scheme:dark){
  .badge{background:rgba(10,132,255,.22)}
}
.thread-time,.post-time{font-size:12px;color:var(--sub);margin-left:auto;font-variant-numeric:tabular-nums}
.thread-link{display:block;color:inherit;text-decoration:none}
.thread-title{
  margin:0 0 5px;font-size:16.5px;line-height:1.38;font-weight:600;letter-spacing:-.2px;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.thread-snippet{
  margin:0;font-size:13.5px;line-height:1.5;color:var(--sub);
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.thread-foot{display:flex;align-items:center;gap:7px;margin-top:11px}
.avatar{
  width:22px;height:22px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:linear-gradient(180deg,#33adff,#0a7dff);color:#fff;
  font-size:11px;font-weight:600;
}
.avatar.sm{width:20px;height:20px;font-size:10.5px}
.thread-name{font-size:12.5px;color:var(--sub);letter-spacing:-.1px}
.spacer{flex:1}
.mini{
  border:0;background:none;color:var(--sub);font-size:12.5px;
  padding:4px 7px;border-radius:8px;text-decoration:none;display:inline-flex;align-items:center;gap:3px;
  font-variant-numeric:tabular-nums;
}
.mini i{font-style:normal;font-size:13px;line-height:1}
.mini b{font-weight:500}
.mini:active{background:var(--fill)}
.mini.like.on{color:#e0344a}
.mini.like.on i{transform:scale(1.06)}

/* 空态 / 骨架 */
.empty{
  background:var(--card);border-radius:14px;padding:28px 16px;text-align:center;
  color:var(--sub);font-size:14px;border:.5px solid var(--sep);
}
.empty.small{padding:16px;font-size:13px}
.skeleton{
  height:92px;border-radius:14px;background:var(--card);border:.5px solid var(--sep);
  position:relative;overflow:hidden;
}
.skeleton.tall{height:180px}
.skeleton:after{
  content:'';position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(120,120,128,.10),transparent);
  animation:sk 1.15s infinite;
}
@keyframes sk{to{transform:translateX(100%)}}

/* 详情页 */
.post{
  background:var(--card);border-radius:16px;padding:16px 16px 18px;
  box-shadow:var(--shadow);border:.5px solid var(--sep);
}
.post-top{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.post-title{
  margin:0 0 10px;font-size:21px;line-height:1.32;font-weight:700;letter-spacing:-.4px;
  padding:0;border:0;background:none;
}
.post-by{display:flex;align-items:center;gap:8px;padding-bottom:12px;border-bottom:.5px solid var(--sep)}
.post-name{font-size:13px;color:var(--sub)}
.post-body{
  white-space:pre-wrap;word-break:break-word;
  font-size:15.5px;line-height:1.62;letter-spacing:-.1px;padding-top:12px;
}

.reply-head{margin:20px 2px 10px}
.reply-head h2{margin:0;font-size:15px;font-weight:600;letter-spacing:-.2px}
.reply-head h2 span{color:var(--sub);font-weight:500}
.replies{display:flex;flex-direction:column;gap:8px}
.reply{
  background:var(--card);border-radius:13px;padding:11px 13px;
  border:.5px solid var(--sep);box-shadow:var(--shadow);
}
.reply-top{display:flex;align-items:center;gap:7px;margin-bottom:6px}
.reply-name{font-size:12.5px;color:var(--txt);font-weight:500}
.reply-time{font-size:11.5px;color:var(--sub);margin-left:auto}
.reply-body{font-size:14.5px;line-height:1.55;white-space:pre-wrap;word-break:break-word}

.reply-box{
  background:var(--card);border-radius:14px;padding:12px;margin:14px 0 0;
  border:.5px solid var(--sep);box-shadow:var(--shadow);
}
.reply-box textarea{
  width:100%;border:0;background:none;resize:vertical;min-height:64px;
  font-size:15px;line-height:1.55;color:var(--txt);outline:none;
}
.reply-box textarea::placeholder{color:var(--sub)}
.reply-row{display:flex;gap:8px;align-items:center;margin-top:8px}
.reply-row input{
  flex:1;min-width:0;border:.5px solid var(--sep);background:var(--bg);
  border-radius:10px;padding:8px 11px;font-size:14px;color:var(--txt);outline:none;
}
.reply-row input::placeholder{color:var(--sub)}
.reply-row input:focus{border-color:var(--blue)}
