.toc-card{padding:18px}
.toc-container{display:grid;gap:6px}
.toc-item{
  --toc-depth:1;
  display:block;padding:8px 12px;
  padding-left:calc(12px + (var(--toc-depth) - 1) * 14px);
  border-radius:12px;border-left:2px solid transparent;color:var(--text-2);
  font-size:.94rem;line-height:1.5;overflow-wrap:anywhere;
  transition:background .2s ease,color .2s ease,border-color .2s ease
}
.toc-item:hover,.toc-item.is-active{background:var(--bg-soft);border-left-color:var(--brand);color:var(--text)}

.comments-section{display:grid;gap:18px}
.comment-list{display:grid;gap:14px}
.comment-item{display:flex;gap:14px;padding:14px;border-radius:18px;background:var(--bg-soft);border:1px solid var(--line)}
.comment-avatar img{width:48px;height:48px;border-radius:50%;flex-shrink:0}
.comment-body{flex:1;min-width:0}
.comment-header{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.comment-author{font-weight:600;color:var(--text);font-size:.95rem}
.comment-date{color:var(--text-3);font-size:.85rem}
.comment-content{margin-top:8px;color:var(--text-2);line-height:1.7;word-break:break-word}
.comment-content img{max-width:100%;border-radius:8px}
.comment-reply-btn{display:inline-block;margin-top:8px;color:var(--brand);font-size:.85rem;cursor:pointer;text-decoration:none}
.comment-reply-btn:hover{text-decoration:underline}
.comment-children{margin-left:24px;margin-top:12px}
.comment-closed,.comment-empty{color:var(--text-3);text-align:center;padding:24px;font-size:.9rem}
.comment-form{display:grid;gap:14px}
.form-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.form-input{width:100%;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:var(--bg-soft);outline:none;font-size:.9rem}
.form-input:focus,.form-textarea:focus{border-color:var(--brand)}
.form-textarea{width:100%;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:var(--bg-soft);outline:none;font-size:.9rem;min-height:100px;resize:vertical;font-family:inherit}
.form-actions{display:flex;align-items:center;gap:12px;justify-content:flex-end}
.btn-submit{padding:10px 24px;border-radius:16px;background:var(--brand);color:#fff;border:none;cursor:pointer;font-size:.9rem;font-weight:500;transition:opacity .2s}
.btn-submit:hover{opacity:.85}

.links-plugin-wrap .LinksPlus-list,
.links-plugin-wrap .links-plus-list,
.links-plugin-wrap .links-plus-wrapper{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

@media (max-width: 760px){
  .form-grid,.links-plugin-wrap .LinksPlus-list,.links-plugin-wrap .links-plus-list,.links-plugin-wrap .links-plus-wrapper{grid-template-columns:1fr}
  .comment-children{margin-left:12px}
}

.post-card-body h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.topflg{
  display:inline-block;padding:2px 10px;border-radius:999px;
  background:var(--brand);color:#fff;font-size:.78rem;font-weight:600;
  letter-spacing:.02em;line-height:1.6;flex-shrink:0
}
.post-card-body .edit{
  display:inline-block;padding:2px 10px;border-radius:999px;
  background:var(--bg-soft);border:1px solid var(--line);
  color:var(--text-2);font-size:.78rem;text-decoration:none;flex-shrink:0
}
.post-card-body .edit:hover{color:var(--brand);border-color:var(--brand)}
.post-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.6;color:var(--text-2)}

/* ===== 侧边栏组件 ===== */
.widget{padding:18px;display:grid;gap:14px;min-width:0;overflow:hidden}
.widget .section-head.compact{margin-bottom:0}

/* 个人资料 */
.blogger-info{display:grid;gap:14px;justify-items:center;text-align:center}
.author-container{width:80px;height:80px}
.author-avatar-frame{width:100%;height:100%;border-radius:50%;overflow:hidden;border:3px solid var(--line)}
.author-avatar-frame img{width:100%;height:100%;object-fit:cover}
.motto{color:var(--text-2);font-size:.88rem;line-height:1.6;margin:0}
.blogger-info .count{display:flex;justify-content:center;gap:24px}
.blogger-info .count .item{display:flex;flex-direction:column;align-items:center;gap:2px}
.blogger-info .count .num{font-size:1.2rem;font-weight:700;color:var(--brand)}
.blogger-info .count .item span:last-child{font-size:.78rem;color:var(--text-3)}

/* 最新文章 */

/* 分类/链接 */
#blogsort{list-style:none;margin:0;padding:0;display:grid;gap:4px}
#blogsort .list-li{padding:7px 0;border-bottom:1px dashed var(--line);font-size:.9rem}
#blogsort .list-li:last-child{border-bottom:none}
#blogsort .list-li a{color:var(--text-2);text-decoration:none}
#blogsort .list-li a:hover{color:var(--brand)}

/* 标签云 */
.tag-cloud{display:flex;flex-wrap:wrap;gap:8px}
.tag-cloud .tag{display:inline-block;padding:4px 12px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--line);color:var(--text-2);font-size:.82rem;text-decoration:none;transition:all .2s}
.tag-cloud .tag:hover{background:var(--brand);color:#fff;border-color:var(--brand)}

@media (max-width:760px){
  .blogger-info .count{gap:16px}
}

/* ===== 最新评论 ===== */
.widget-comments{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.widget-comments li{margin:0;padding:0}
.widget-comments a{text-decoration:none;display:flex;gap:10px;align-items:flex-start;padding:10px;border-radius:14px;border:1px solid var(--line);background:var(--bg-soft);transition:background .2s,border-color .2s}
.widget-comments a:hover{border-color:var(--brand);background:var(--brand-soft)}
.widget-comments .avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0;object-fit:cover}
.widget-comments .inner{flex:1;min-width:0;display:grid;gap:4px}
.widget-comments .other{display:flex;align-items:center;gap:8px;font-size:.85rem}
.widget-comments .other span{font-weight:600;color:var(--text)}
.widget-comments .other time{color:var(--text-3);font-size:.78rem}
.widget-comments small{display:block;color:var(--text-2);font-size:.82rem;line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

/* ===== 热门文章 ===== */
.hot-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.hot-item{display:flex;align-items:center;gap:10px}
.hot-rank{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:.78rem;font-weight:700;color:var(--text-3);background:var(--bg-soft);flex-shrink:0;border:1px solid var(--line)}
.hot-rank-top{background:var(--brand);color:#fff;border-color:var(--brand)}
.hot-thumb{width:52px;height:52px;border-radius:10px;overflow:hidden;flex-shrink:0;background:var(--bg-soft)}
.hot-thumb img{width:100%;height:100%;object-fit:cover}
.hot-info{flex:1;min-width:0;display:grid;gap:2px}
.hot-title{color:var(--text);text-decoration:none;font-size:.88rem;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .2s}
.hot-title:hover{color:var(--brand)}
.hot-meta{font-size:.75rem;color:var(--text-3)}

/* ===== 搜索 ===== */
.widget .unstyle-li{list-style:none;margin:0;padding:0}
.widget .unstyle-li.w-100{width:100%}
.widget .p-1{padding:4px}
.widget .center{text-align:center}
.widget form.w-100{display:flex;gap:8px}
.widget .search{flex:1;padding:10px 14px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--bg-soft);outline:none;font-size:.88rem;color:var(--text);transition:border-color .2s}
.widget .search:focus{border-color:var(--brand)}
.widget .search::placeholder{color:var(--text-3)}
.widget .search-submit{padding:10px 18px;border-radius:var(--radius-pill);background:var(--brand);color:#fff;border:none;cursor:pointer;font-size:.88rem;font-weight:600;flex-shrink:0;transition:opacity .2s}
.widget .search-submit:hover{opacity:.85}

/* ===== 存档/归档 ===== */
.widget .archive{width:100%;padding:10px 14px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--bg-soft);color:var(--text);font-size:.88rem;outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;transition:border-color .2s}
.widget .archive:focus{border-color:var(--brand)}

/* ===== 日历 ===== */
.calendar-widget{display:grid;gap:12px;justify-items:center}
.cal-header{font-size:1rem;font-weight:600;color:var(--text)}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;width:100%;text-align:center}
.cal-wk{font-size:.78rem;font-weight:600;color:var(--text-3);padding:4px 0}
.cal-wk-sun{color:var(--brand)}
.cal-dates{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;width:100%}
.cal-day{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:10px;font-size:.82rem;color:var(--text-2);transition:background .2s,color .2s;cursor:default}
.cal-day.empty{background:transparent}
.cal-day.has-post{color:var(--brand);font-weight:600;cursor:pointer}
.cal-day.has-post:hover{background:var(--brand-soft)}
.cal-day.today{background:var(--brand);color:#fff;font-weight:700;border-radius:50%}
