/* ============================================================
   共用区块样式：公告 / 赞赏目标 / 排行榜 / 留言墙
   12 套模板 + 深浅两版共用。
   只用半透明灰与 currentColor，不与各模板的配色变量冲突。
   ============================================================ */

.share { margin-bottom: 14px; }
.share:last-child { margin-bottom: 0; }

/* 公告 */
.notice {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(127, 127, 127, .10);
  border: 1px solid rgba(127, 127, 127, .22);
  font-size: 12.5px;
  line-height: 1.65;
  word-break: break-word;
}
.notice i { margin-top: 2px; font-size: 12px; opacity: .55; flex: 0 0 auto; }
.notice span { min-width: 0; }

/* 赞赏目标 */
.goal {
  padding: 14px 16px;
  border-radius: 14px;
  background: rgba(127, 127, 127, .08);
  border: 1px solid rgba(127, 127, 127, .20);
}
.goal-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-size: 12.5px;
  font-weight: 600;
}
.goal-head em { font-style: normal; font-size: 12px; font-weight: 400; opacity: .6; font-variant-numeric: tabular-nums; }
.goal-bar {
  height: 8px;
  margin-top: 10px;
  border-radius: 99px;
  background: rgba(127, 127, 127, .22);
  overflow: hidden;
}
.goal-bar i {
  display: block;
  height: 100%;
  border-radius: 99px;
  background: currentColor;
  opacity: .5;
  transition: width .8s cubic-bezier(.22, .61, .36, 1);
}
.goal-foot {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
  font-size: 11.5px;
  opacity: .62;
  font-variant-numeric: tabular-nums;
}

/* 卡片外壳 */
.blk {
  padding: 16px;
  border-radius: 14px;
  background: rgba(127, 127, 127, .07);
  border: 1px solid rgba(127, 127, 127, .18);
}
.blk-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  font-weight: 600;
  margin-bottom: 10px;
}
.blk-title i { font-size: 12px; opacity: .55; }
.blk-title em { font-style: normal; margin-left: auto; font-size: 11px; font-weight: 400; opacity: .5; }

/* 排行榜 */
.rank-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 0;
  font-size: 13px;
  border-bottom: 1px solid rgba(127, 127, 127, .12);
}
.rank-row:last-child { border-bottom: 0; padding-bottom: 0; }
.rank-no {
  flex: 0 0 18px;
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  opacity: .4;
  font-variant-numeric: tabular-nums;
}
.rank-row.top .rank-no { opacity: 1; }
.rank-row.top .rank-name { font-weight: 600; }
.rank-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rank-amt { flex: 0 0 auto; font-size: 12.5px; font-weight: 700; font-variant-numeric: tabular-nums; }

/* 留言墙 */
/* 用 auto-fill + minmax(min(340px,100%),1fr) 让列数随容器自适应：窄栏（320~480）自动 1 列，
   宽栏（900+）自动 2 列，不必为 12 套模板写各自的断点。
   内层 min() 是必要的：容器比 340 还窄时，轨道最小宽度退回 100%，否则会撑出横向滚动 */
.wall-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr)); gap: 8px; }
.wall-list > * { min-width: 0; }
.wall-item {
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(127, 127, 127, .10);
}
.wall-text { font-size: 12.5px; line-height: 1.65; word-break: break-word; }
.wall-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 7px;
  font-size: 11px;
  opacity: .62;
}
.wall-meta b { font-weight: 600; }

/* ===== 页脚扩展：友情链接 + 开发方 ===== */
.sxy-foot-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 3px 7px;
  margin: 6px auto 0;
  max-width: 100%;
  font-size: 11px;
  line-height: 1.7;
  text-align: center;
  opacity: .7;
  word-break: break-word;
}
.sxy-foot-meta a {
  color: inherit;
  text-decoration: underline;
  text-decoration-style: dashed;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: opacity .2s;
}
.sxy-foot-meta a:hover { opacity: 1; text-decoration-style: solid; }
.sxy-foot-meta .sxy-foot-dot { opacity: .5; }
/* 小屏：内容已精简，允许整体换行即可 */
@media (max-width: 480px) {
  .sxy-foot-meta { font-size: 11px; gap: 2px 6px; line-height: 1.6; padding: 0 8px; }
}

/* ===== 内置官方 Logo 统一衬底 =====
   各模板 Logo 容器底色差异很大（绿渐变 / 深色 / 彩色），
   而官方 Logo 是蓝橙配色，直接压在彩色渐变上会发闷、显脏。
   这里只针对「内置默认 Logo」垫白底并做等比内缩：既保证任何底色下都清晰，
   圆形容器裁切时也不会切掉云朵两端。
   注意：用属性选择器而非容器类名，是为了不影响用户后台上传的自定义 Logo ——
   自定义图长什么样由用户自己决定，不该被强制套白底。 */
img[src*="_shared/logo-default.png"] {
  background: #fff;
  /* 用百分比内缩：各模板 Logo 容器从 40px 到 96px 不等，
     固定 px 会让小容器（如 minimal 的 40px 圆）被吃得只剩一圈 */
  padding: 5%;
  box-sizing: border-box;
  border-radius: inherit;
}
