/*! 青竹未来感皮肤 · 1.0.6
 * 「青竹」仅为作者署名，不代表配色。
 * 只使用 var(--theme-color) / 官方变量，禁止写死青绿。
 * 默认开启（primary.php filter）；气质：玻璃 / 微光 / 网格 / 动效。
 */
:root {
  --qz-glow: 0 0 0 1px color-mix(in srgb, var(--theme-color) 28%, transparent),
    0 10px 36px -10px color-mix(in srgb, var(--theme-color) 45%, transparent),
    0 0 48px -16px color-mix(in srgb, var(--theme-color) 30%, transparent);
  --qz-glow-soft: 0 6px 24px -10px rgba(15, 23, 42, 0.28),
    0 0 0 1px color-mix(in srgb, var(--theme-color) 12%, transparent);
  --qz-glass: color-mix(in srgb, var(--main-bg-color, #fff) 68%, transparent);
  --qz-glass-border: color-mix(in srgb, var(--theme-color) 28%, transparent);
  --qz-ease: cubic-bezier(.22, .8, .28, 1);
  --qz-grid: color-mix(in srgb, var(--theme-color) 10%, transparent);
}

.io-black-mode {
  --qz-glass: color-mix(in srgb, var(--main-bg-color, #2D2E2F) 62%, transparent);
  --qz-glow-soft: 0 10px 32px -10px rgba(0, 0, 0, 0.55),
    0 0 0 1px color-mix(in srgb, var(--theme-color) 22%, transparent);
  --qz-grid: color-mix(in srgb, var(--theme-color) 14%, transparent);
}

/* 全局氛围：主题色光晕 + 科技网格 */
body.container-body:not(.qingzhu-future-off) {
  background-image:
    radial-gradient(920px 380px at 12% -6%, color-mix(in srgb, var(--theme-color) 18%, transparent), transparent 62%),
    radial-gradient(720px 320px at 92% 8%, color-mix(in srgb, var(--theme-color) 12%, transparent), transparent 58%),
    linear-gradient(var(--qz-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--qz-grid) 1px, transparent 1px);
  background-size: auto, auto, 48px 48px, 48px 48px;
  background-attachment: fixed, fixed, fixed, fixed;
}

html[data-qz-skin="future"] body.container-body:not(.qingzhu-future-off)::before {
  content: "";
  pointer-events: none;
  position: fixed;
  inset: 0;
  z-index: 0;
  background: radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--theme-color) 8%, transparent), transparent 45%);
  opacity: .85;
}

.header-nav.blur-bg {
  backdrop-filter: saturate(1.35) blur(14px);
  -webkit-backdrop-filter: saturate(1.35) blur(14px);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--theme-color) 18%, transparent);
}

.ioui-aside .aside-card {
  background: var(--qz-glass);
  border: 1px solid var(--qz-glass-border);
  box-shadow: var(--qz-glow-soft);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.ioui-aside .aside-btn:hover,
.ioui-aside .aside-btn.active {
  background: color-mix(in srgb, var(--theme-color) 16%, transparent) !important;
  color: var(--theme-color) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--theme-color) 35%, transparent);
}

/* 搜索区：玻璃 + 主题色外晕（canvas 背景下仍可读） */
.header-banner.header-big {
  position: relative;
}
.header-banner.header-big::after {
  content: "";
  pointer-events: none;
  position: absolute;
  inset: auto 8% -18px;
  height: 40px;
  background: radial-gradient(ellipse at center, color-mix(in srgb, var(--theme-color) 35%, transparent), transparent 70%);
  filter: blur(8px);
  z-index: 0;
}
.big-search .search-box-big {
  box-shadow: var(--qz-glow);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid color-mix(in srgb, var(--theme-color) 25%, transparent);
  position: relative;
  z-index: 1;
}
.btn.vc-theme,
.big-search .search-submit-btn,
a.vc-theme {
  background: var(--theme-color) !important;
  border-color: var(--theme-color) !important;
  color: #fff !important; /* 1.0.17/1.0.18: solid theme btns always white text */
  box-shadow: 0 8px 22px -8px color-mix(in srgb, var(--theme-color) 55%, transparent);
}
.btn.vc-theme .iconfont,
a.vc-theme .iconfont {
  color: #fff !important;
}
.btn.vc-theme:hover,
.big-search .search-submit-btn:hover,
a.vc-theme:hover {
  filter: brightness(1.08);
  box-shadow: 0 10px 28px -8px color-mix(in srgb, var(--theme-color) 70%, transparent);
}

.slider-tab .anchor {
  background: var(--theme-color) !important;
  box-shadow: 0 0 12px color-mix(in srgb, var(--theme-color) 55%, transparent);
}
.slider-tab .slider-li.tab-item.active {
  color: var(--theme-color) !important;
}

.content-layout.show-card .posts-item,
.posts-item.sites-item {
  background: var(--qz-glass);
  border: 1px solid color-mix(in srgb, var(--theme-color) 10%, transparent);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transition: transform .2s var(--qz-ease), box-shadow .2s var(--qz-ease), border-color .2s var(--qz-ease);
}
.content-layout.show-card .posts-item:hover,
.posts-item.sites-item:hover {
  transform: translateY(-3px);
  box-shadow: var(--qz-glow);
  border-color: color-mix(in srgb, var(--theme-color) 40%, transparent);
}

.hot-search-panel .hot-card,
.hot-search-panel .card {
  background: var(--qz-glass);
  border: 1px solid var(--qz-glass-border);
  box-shadow: var(--qz-glow-soft);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.hot-search-panel .hot-rank-1,
.hot-search-panel .hot-rank-2,
.hot-search-panel .hot-rank-3 {
  background: var(--theme-color) !important;
  color: #fff !important;
  box-shadow: 0 0 10px color-mix(in srgb, var(--theme-color) 45%, transparent);
}

.sidebar-tools .card,
.sidebar-tools .io-sidebar-widget {
  background: var(--qz-glass);
  border: 1px solid var(--qz-glass-border);
  box-shadow: var(--qz-glow-soft);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

#friendlink .friend-link a:hover {
  color: var(--theme-color);
}

/* 1.0.18: 全局按钮对比度 — 勿再把 .site-go 下全部 .btn 刷成紫底
 * （此前会把「手机查看」描边、「反馈」等盖成紫底+紫字，看起来像空按钮）
 */
.btn.vc-theme,
a.btn.vc-theme,
.btn.vc-theme span,
.single .btn.vc-theme,
.single .site-go .btn.vc-theme,
.preview-btn.vc-theme {
  background: var(--theme-color) !important;
  border-color: var(--theme-color) !important;
  color: #fff !important;
}
.btn.vc-theme .iconfont,
a.btn.vc-theme .iconfont,
.btn.vc-theme i,
.preview-btn.vc-theme .iconfont {
  color: #fff !important;
}

/* 描边 / 浅色主题按钮：保持透明底 + 主题色字，禁止被紫底盖掉 */
.btn.btn-outline[class*="vc-l-"],
.btn.btn-outline.vc-l-theme,
.site-go .btn.btn-outline,
.single .site-go .btn.btn-outline {
  background: color-mix(in srgb, var(--theme-color, #7C3AED) 12%, transparent) !important;
  color: var(--theme-color, #7C3AED) !important;
  border-color: color-mix(in srgb, var(--theme-color, #7C3AED) 55%, transparent) !important;
}
.btn.btn-outline[class*="vc-l-"] .iconfont,
.site-go .btn.btn-outline .iconfont,
.site-go .btn.btn-outline span {
  color: inherit !important;
}
.btn.btn-outline[class*="vc-l-"]:hover,
.site-go .btn.btn-outline:hover {
  background: var(--theme-color, #7C3AED) !important;
  color: #fff !important;
  border-color: var(--theme-color, #7C3AED) !important;
}
.btn.btn-outline[class*="vc-l-"]:hover .iconfont,
.site-go .btn.btn-outline:hover .iconfont,
.site-go .btn.btn-outline:hover span {
  color: #fff !important;
}

/* 实心色系按钮（反馈红等）：保留自身色，不被 site-go 紫底覆盖 */
.site-go .btn.vc-red,
.single .site-go .btn.vc-red,
.btn.vc-red:not(.btn-outline) {
  background: #f1404b !important;
  border-color: #f1404b !important;
  color: #fff !important;
}
.site-go .btn.vc-red .iconfont,
.btn.vc-red:not(.btn-outline) .iconfont,
.btn.vc-red:not(.btn-outline) span {
  color: #fff !important;
}
.site-go .btn[class*="vc-"]:not(.vc-theme):not([class*="vc-l-"]):not(.btn-outline) {
  color: #fff !important;
}
.site-go .btn[class*="vc-"]:not(.vc-theme):not([class*="vc-l-"]):not(.btn-outline) .iconfont {
  color: #fff !important;
}

/* 预览卡：远程截图失败时优雅占位，避免整块空黑+破图 */
.sites-preview .preview-body {
  background: linear-gradient(
    145deg,
    color-mix(in srgb, var(--theme-color, #7C3AED) 18%, #1a1a22) 0%,
    #121218 55%,
    #0a0a0e 100%
  );
  border: 1px solid color-mix(in srgb, var(--theme-color, #7C3AED) 28%, transparent);
  border-radius: 12px;
  overflow: hidden;
  min-height: 200px;
}
.sites-preview .site-img {
  position: relative;
  min-height: 180px;
  background:
    radial-gradient(ellipse at 30% 20%, color-mix(in srgb, var(--theme-color, #7C3AED) 22%, transparent), transparent 55%),
    linear-gradient(160deg, #1a1a24, #0e0e14);
}
.sites-preview .site-img img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 300px;
  object-fit: cover;
  background: transparent;
}
.sites-preview .site-img img[src*="sites_null"],
.sites-preview .site-img img.is-preview-fallback {
  object-fit: cover;
  opacity: 1;
}
.sites-preview .site-favicon {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  background: color-mix(in srgb, #0a0a0e 70%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--theme-color, #7C3AED) 18%, transparent);
}

/* go 中间页 */
body.go-to {
  background: linear-gradient(
    160deg,
    #121218 0%,
    color-mix(in srgb, var(--theme-color, #7d00a0) 22%, #121218) 48%,
    #0a0a0e 100%
  ) !important;
}
body.go-to .loading-info {
  background: rgba(22, 22, 28, 0.9) !important;
  border: 1px solid color-mix(in srgb, var(--theme-color, #7d00a0) 40%, transparent) !important;
  color: #eee;
  box-shadow: var(--qz-glow);
}
body.go-to .loading-text,
body.go-to .loading-url,
body.go-to .auto-second {
  color: var(--theme-color, #7d00a0) !important;
}
body.go-to .loading-btn {
  color: var(--theme-color, #7d00a0) !important;
  border-color: var(--theme-color, #7d00a0) !important;
}
body.go-to .loading-btn:hover {
  background: var(--theme-color, #7d00a0) !important;
  color: #fff !important;
}

/* 扩展页 */
.qz-ext-hero {
  border: 1px solid var(--qz-glass-border);
  background: color-mix(in srgb, var(--theme-color) 10%, var(--main-bg-color, #fff));
  border-radius: var(--main-radius, 12px);
  padding: 1.1rem 1.25rem;
  margin-bottom: 1rem;
  box-shadow: var(--qz-glow-soft);
}
.qz-ext-chip {
  display: inline-block;
  padding: .15rem .65rem;
  border-radius: 999px;
  border: 1px solid var(--qz-glass-border);
  color: var(--theme-color);
  font-size: .75rem;
  background: color-mix(in srgb, var(--theme-color) 8%, transparent);
}
.qz-meta-box {
  border: 1px dashed var(--qz-glass-border);
  background: color-mix(in srgb, var(--theme-color) 7%, transparent);
  padding: .85rem 1rem;
  margin: 1rem 0;
  border-radius: var(--main-radius, 12px);
}
.qz-meta-box .label {
  display: block;
  font-size: .72rem;
  color: var(--theme-color);
  margin-bottom: .35rem;
}

.forum-item {
  border: 1px solid var(--qz-glass-border);
  border-radius: var(--main-radius, 12px);
  padding: .85rem 1rem;
  margin-bottom: .65rem;
  background: var(--qz-glass);
}
.forum-board-pill {
  display: inline-block;
  padding: .12rem .55rem;
  border-radius: 999px;
  border: 1px solid var(--qz-glass-border);
  color: var(--theme-color);
  font-size: .75rem;
  margin: 0 .3rem .3rem 0;
}

.qz-reveal { opacity: 0; transform: translateY(8px); transition: opacity .45s var(--qz-ease), transform .45s var(--qz-ease); }
.qz-reveal.qz-in { opacity: 1; transform: none; }

/* 微光扫过（弱） */
@keyframes qz-shimmer {
  0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}
.header-banner.canvas-fx .big-title,
.header-banner .search-big-title {
  text-shadow: 0 0 24px color-mix(in srgb, var(--theme-color) 45%, transparent);
}

@media (prefers-reduced-motion: reduce) {
  .qz-reveal, .posts-item { transition: none !important; }
  body.container-body:not(.qingzhu-future-off) { background-attachment: scroll; }
}

/* —— lbp10 细节：间距 / 搜索 / 侧栏 / 卡片 —— */
.header-banner.header-big {
  margin-bottom: 1.25rem !important;
}
.header-banner.post-top:not(.css-banner):not(.fd-banner-only) + .container.home-content,
.header-banner.post-top:not(.css-banner):not(.fd-banner-only) ~ .container.home-content {
  margin-top: -1.5rem;
  position: relative;
  z-index: 2;
}
/* 1.0.22：Banner 图模式禁止负边距压住 Skills Tab */
.header-banner.css-banner + .container.home-content,
.header-banner.css-banner ~ .container.home-content,
.header-banner.fd-banner-only + .container.home-content,
.header-banner.fd-banner-only ~ .container.home-content {
  margin-top: 1.1rem !important;
  position: relative;
  z-index: 3;
}
.hot-search-panel {
  margin-bottom: 1rem !important;
}
.ioui-aside .aside-ul {
  padding: .35rem .25rem .5rem;
}
.ioui-aside .aside-btn {
  border-radius: 10px;
  margin: 1px 0;
}
.content-layout.show-card .posts-item {
  border-radius: var(--main-radius, 12px);
  overflow: hidden;
}
.big-search .search-query {
  backdrop-filter: blur(6px);
}
.qz-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .55rem;
  margin: 0 0 1rem;
}
.qz-filter-bar a {
  display: inline-block;
  padding: .22rem .7rem;
  border-radius: 999px;
  border: 1px solid var(--qz-glass-border);
  color: inherit;
  font-size: .8rem;
  background: var(--qz-glass);
  transition: .18s var(--qz-ease);
}
.qz-filter-bar a:hover,
.qz-filter-bar a.is-active {
  color: #fff !important;
  background: var(--theme-color) !important;
  border-color: var(--theme-color) !important;
}
.qz-ai-tile {
  position: relative;
  border-radius: var(--main-radius, 12px);
  overflow: hidden;
  border: 1px solid var(--qz-glass-border);
  background: var(--qz-glass);
  box-shadow: var(--qz-glow-soft);
}
.qz-ai-tile .media-content {
  display: block;
  padding-top: 66%;
  background-size: cover;
  background-position: center;
}
.qz-ai-tile .qz-ai-body {
  padding: .75rem .9rem 1rem;
}
.qz-ai-tile .qz-ai-body h2 {
  font-size: .95rem;
  margin: 0 0 .35rem;
}
.navbar-logo .logo-expanded img {
  max-height: 36px;
  width: auto;
}

/* —— lbp11 产品亮点条 + 对照站舒适度 —— */
.qz-spotlight { margin-top: .25rem; }
.qz-spot-card {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .75rem .9rem;
  border-radius: var(--main-radius, 12px);
  border: 1px solid var(--qz-glass-border);
  background: var(--qz-glass);
  box-shadow: var(--qz-glow-soft);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: inherit !important;
  transition: transform .18s var(--qz-ease), box-shadow .18s var(--qz-ease), border-color .18s var(--qz-ease);
  min-height: 64px;
}
.qz-spot-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--qz-glow);
  border-color: color-mix(in srgb, var(--theme-color) 45%, transparent);
}
.qz-spot-card i {
  font-size: 1.35rem;
  color: var(--theme-color);
  text-shadow: 0 0 18px color-mix(in srgb, var(--theme-color) 45%, transparent);
}
.qz-spot-card strong { display: block; font-size: .92rem; line-height: 1.2; }
.qz-spot-card span { display: block; font-size: .72rem; opacity: .7; margin-top: .15rem; }

.customize-menu {
  border: 1px solid var(--qz-glass-border);
  border-radius: var(--main-radius, 12px);
  padding: .45rem .65rem;
  background: var(--qz-glass);
  backdrop-filter: blur(8px);
}
.bulletin-big {
  border: 1px solid var(--qz-glass-border) !important;
  background: var(--qz-glass) !important;
  box-shadow: var(--qz-glow-soft);
}
.header-weather .io-weather-widget {
  min-width: 88px;
}
/* 卡片密度：略收紧标题区 */
.content-layout .home-list .overflow-hidden { letter-spacing: .01em; }

/* —— lbp12：贴近 techfd 搜索尺度 + 暗色科技层次 + 隐藏空分类 —— */
.big-search {
  max-width: 800px !important;
  margin-left: auto;
  margin-right: auto;
}
.header-banner.header-big {
  /* 暗色站：hero 仍要有层次，不抄亮色灰底 */
  isolation: isolate;
}
.header-banner.header-big .big-search .search-list-menu,
.header-banner.header-big .search-menu {
  font-size: .92rem;
  letter-spacing: .02em;
}
.header-banner.header-big .big-title,
.header-banner.header-big .search-big-title,
#search .text-xl,
#search h1,
#search .big-title {
  text-shadow: 0 2px 24px color-mix(in srgb, var(--theme-color) 35%, transparent), 0 1px 2px rgba(0,0,0,.45);
}
/* 空分类「没有内容」整块隐藏 */
.content-card:has(.tips-box) {
  display: none !important;
}
.content-layout .tips-box.btn-block {
  display: none !important;
}
/* Logo 裁切控制 */
.navbar-logo .logo-expanded img {
  max-height: 36px !important;
  width: auto !important;
  object-fit: contain;
}
/* 亮点条略收敛，少抢搜索 */
.qz-spotlight { margin-top: .15rem; margin-bottom: .15rem; }
.qz-spot-card {
  min-height: 56px;
  padding: .55rem .75rem;
  opacity: .96;
}
.qz-spot-card strong { font-size: .86rem; }
.qz-spot-card span { font-size: .68rem; }
/* 公告条空时更紧凑 */
#bulletin_box.bulletin-big .carousel-inner:empty,
#bulletin_box .bulletin-swiper:empty {
  min-height: 0;
}
#bulletin_box {
  backdrop-filter: blur(8px);
}
/* 热榜卡片在暗色下更可读 */
.hot-search-panel .hot-card,
.hot-search-panel .card {
  min-height: 220px;
}
/* 分类标题密度 */
.content-card {
  margin-bottom: 1.1rem;
}
.content-card .tab-title {
  font-weight: 600;
}

/* lbp12：公告条在暗色下可读 */
.io-black-mode #bulletin_box.bulletin-big,
.io-black-mode #bulletin_box {
  color: color-mix(in srgb, #fff 82%, var(--theme-color)) !important;
}
.io-black-mode #bulletin_box a.line1,
.io-black-mode #bulletin_box .text-muted {
  color: color-mix(in srgb, #e8e8ec 88%, var(--theme-color)) !important;
}
#bulletin_box .carousel-vertical,
#bulletin_box .carousel-inner,
#bulletin_box .carousel-item {
  min-height: 1.5rem;
  line-height: 1.5rem;
}
#bulletin_box .carousel-item a {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.customize-menu .nav-link.active {
  color: var(--theme-color) !important;
  background: color-mix(in srgb, var(--theme-color) 14%, transparent) !important;
}


/* —— lbp13：亮点芯片条 + 热门区克制 —— */
.qz-spotlight.qz-spotlight--chips {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .5rem;
  margin: .1rem 0 .35rem;
  padding: 0;
}
.qz-spotlight.qz-spotlight--chips .qz-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .28rem .7rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--theme-color) 22%, transparent);
  background: color-mix(in srgb, var(--theme-color) 8%, transparent);
  color: inherit !important;
  font-size: .78rem;
  line-height: 1.2;
  opacity: .88;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transition: opacity .15s ease, border-color .15s ease, background .15s ease;
  text-decoration: none !important;
}
.qz-spotlight.qz-spotlight--chips .qz-chip:hover {
  opacity: 1;
  border-color: color-mix(in srgb, var(--theme-color) 48%, transparent);
  background: color-mix(in srgb, var(--theme-color) 16%, transparent);
}
.qz-spotlight.qz-spotlight--chips .qz-chip i {
  font-size: .9rem;
  color: var(--theme-color);
  opacity: .9;
}
.qz-spotlight.qz-spotlight--chips .qz-chip strong {
  font-weight: 560;
  font-size: .78rem;
}
.qz-spotlight.qz-spotlight--chips .qz-chip span { display: none; }
/* 热门大列表区：少抢分类主内容 */
.home-content .io-widget-big-posts-list {
  margin-bottom: 1rem;
  padding: .65rem .75rem .85rem;
  border-radius: var(--main-radius, 12px);
  border: 1px solid var(--qz-glass-border);
  background: color-mix(in srgb, var(--qz-glass) 70%, transparent);
}
.home-content .io-widget-big-posts-list .list-select {
  font-size: .8rem;
  opacity: .9;
}
.home-content .io-widget-big-posts-list .ajax-more a {
  font-size: .85rem;
  opacity: .9;
}
/* 天气壳彻底不占位（即使旧缓存） */
.header-weather { display: none !important; }

/* —— lbp14：上 / 中 / 下结构强化 + 透明 Logo + 减卡顿 —— */
.navbar-logo img,
.logo-expanded img,
.aside-logo img,
.ioui-aside .logo img {
  background: transparent !important;
  mix-blend-mode: normal;
}
.header-banner.header-big {
  /* 无 canvas iframe 时的紫渐变氛围 */
  isolation: isolate;
}
.header-banner.header-big.css-color,
.header-banner.header-big.bg-gradual {
  box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--theme-color) 25%, transparent);
}
/* canvas 仅在非 canvas-fx 时隐藏，避免误伤；css-banner 用 swiper */
.header-banner:not(.canvas-fx) .canvas-bg { display: none !important; }
.big-search .big-title .h1,
.big-search .big-title h2 {
  text-shadow: 0 2px 24px color-mix(in srgb, var(--theme-color) 45%, transparent);
  font-weight: 700;
  letter-spacing: .12em !important;
}
.home-content,
.ioui-content.home-container {
  position: relative;
  z-index: 1;
}
/* 分类块卡片更清晰 */
.content-layout.show-card .content-card,
.ioui-main .content-card {
  border: 1px solid var(--qz-glass-border);
  background: color-mix(in srgb, var(--qz-glass) 78%, transparent);
  box-shadow: var(--qz-glow-soft);
  border-radius: var(--main-radius, 14px);
  padding: .85rem 1rem 1rem;
  margin-bottom: 1rem;
}
.url-card .sites-icon,
.url-body .sites-icon,
.posts-item .sites-icon {
  background: color-mix(in srgb, #fff 6%, transparent);
  border-radius: 10px;
  object-fit: contain;
}
/* 图标未加载时的占位弱化 */
img.sites-icon[src*="favicon.png"] {
  opacity: .55;
  filter: grayscale(.2);
}
img.sites-icon:not([src*="favicon.png"]) {
  opacity: 1;
  filter: none;
}
/* 页脚分区 */
.main-footer,
footer.main-footer,
.footer {
  margin-top: 1.5rem;
  border-top: 1px solid color-mix(in srgb, var(--theme-color) 18%, transparent);
  background: color-mix(in srgb, var(--main-bg-color, #1e1f20) 88%, transparent);
  backdrop-filter: blur(10px);
}
/* 侧栏只强调有内容的项（空 count 由 PHP 控制，这里做视觉层次） */
.ioui-aside .aside-item .aside-btn {
  border-radius: 10px;
}
/* 减少 revel 动画造成的卡顿感 */
.qz-reveal { transition: opacity .22s var(--qz-ease), transform .22s var(--qz-ease) !important; }
@media (prefers-reduced-motion: reduce) {
  .qz-reveal { transition: none !important; transform: none !important; }
  body.container-body { background-attachment: scroll !important; }
}


/* ===== 1.0.17 用户中心 · 安全信息 ===== */
body.user-center .card.load-ajax-card {
  border: 1px solid color-mix(in srgb, var(--theme-color, #7C3AED) 22%, transparent);
  box-shadow: 0 12px 32px -16px color-mix(in srgb, var(--theme-color, #7C3AED) 35%, transparent);
  border-radius: 14px;
  overflow: hidden;
}
body.user-center .card.load-ajax-card .card-body {
  padding: 1.25rem 1.35rem 1.5rem;
}
body.user-center .card.load-ajax-card .d-flex.my-4 {
  margin-top: 0.85rem !important;
  margin-bottom: 0.85rem !important;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: color-mix(in srgb, var(--theme-color, #7C3AED) 6%, transparent);
  border: 1px solid color-mix(in srgb, var(--theme-color, #7C3AED) 12%, transparent);
  gap: 12px;
}
body.user-center .card.load-ajax-card .d-flex .text-sm.text-muted {
  color: var(--muted-color2, #a6a8ab) !important;
  font-weight: 600;
  min-width: 5.5em;
}
body.user-center .btn.user-bind-modal.vc-theme {
  color: #fff !important;
  background: var(--theme-color, #7C3AED) !important;
  border-color: var(--theme-color, #7C3AED) !important;
  min-width: 7.5em;
  justify-content: center;
  font-weight: 600;
}
body.user-center .btn.user-bind-modal.vc-l-gray {
  color: #E5E7EB !important;
  background: color-mix(in srgb, var(--theme-color, #7C3AED) 16%, #2D2E2F) !important;
  border-color: color-mix(in srgb, var(--theme-color, #7C3AED) 28%, transparent) !important;
}


/* ===== 首页 Banner 图切换 ===== */
.header-banner.header-big.css-banner {
  position: relative;
  overflow: hidden;
  background: #1e1b4b;
  min-height: var(--big-search-height, 360px);
}
.header-banner.css-banner .fd-banner-swiper {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
}
.header-banner.css-banner .fd-banner-slide {
  width: 100%;
  height: 100%;
  min-height: var(--big-search-height, 360px);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  transform: scale(1.02);
}
.header-banner.css-banner .fd-banner-swiper::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(15,10,40,.35) 0%, rgba(15,10,40,.15) 40%, rgba(15,10,40,.45) 100%);
}
.header-banner.css-banner .search-container,
.header-banner.css-banner .switch-container {
  position: relative;
  z-index: 2;
}
.header-banner.css-banner .fd-banner-pagination {
  bottom: 14px !important;
  z-index: 3;
}
.header-banner.css-banner .fd-banner-pagination .swiper-pagination-bullet {
  background: #fff;
  opacity: .45;
}
.header-banner.css-banner .fd-banner-pagination .swiper-pagination-bullet-active {
  opacity: 1;
  background: #a78bfa;
}
.header-banner.css-banner .fd-banner-prev,
.header-banner.css-banner .fd-banner-next {
  color: #fff !important;
  z-index: 3;
  --swiper-navigation-size: 22px;
  width: 36px;
  height: 36px;
  margin-top: 0;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(15,10,40,.35);
  border-radius: 999px;
  backdrop-filter: blur(6px);
}
.header-banner.css-banner .fd-banner-prev { left: 12px; }
.header-banner.css-banner .fd-banner-next { right: 12px; }
@media (max-width: 767.98px) {
  .header-banner.css-banner .fd-banner-slide {
    min-height: var(--big-mobile-height, 260px);
  }
  .header-banner.css-banner .fd-banner-prev,
  .header-banner.css-banner .fd-banner-next { display: none; }
}


/* ===== 1.0.22：Banner 无内嵌搜索 + 与 Tab 分离 ===== */
.header-banner.header-big.css-banner.fd-banner-only,
.header-banner.header-big.fd-banner-only {
  margin-bottom: 0.6rem !important;
  border-radius: 0 0 18px 18px;
  overflow: hidden;
  min-height: var(--big-search-height, 320px);
  box-shadow: 0 12px 36px -18px color-mix(in srgb, var(--theme-color) 55%, transparent);
}
.header-banner.css-banner.fd-banner-only .search-container,
.header-banner.fd-banner-only .search-container {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: var(--big-search-height, 320px);
  padding: 1.25rem 1rem 1.1rem;
  pointer-events: none; /* 品牌层不挡 swiper 点击；子项可点 */
}
.header-banner.fd-banner-only .search-container > * {
  pointer-events: auto;
}
.header-banner.fd-banner-only .big-search,
.header-banner.css-banner.fd-banner-only #search.big-search {
  display: none !important;
}
.header-banner.fd-banner-only .fd-banner-brand {
  margin: auto 0 0.35rem;
  color: #fff;
  text-shadow: 0 2px 28px rgba(15, 10, 40, .55), 0 0 24px color-mix(in srgb, var(--theme-color) 45%, transparent);
  pointer-events: none;
}
.header-banner.fd-banner-only .fd-banner-brand .h1,
.header-banner.fd-banner-only .fd-banner-brand h2 {
  font-size: clamp(1.35rem, 2.6vw, 2rem);
  font-weight: 700;
  letter-spacing: .18em;
  margin: 0;
  color: #fff;
}
.header-banner.fd-banner-only #bulletin_box.bulletin-big {
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  background: color-mix(in srgb, #0f0a28 42%, transparent);
  border: 1px solid color-mix(in srgb, #fff 18%, transparent);
  border-radius: 999px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: .35rem .9rem;
}
/* 亮点 Tab：完整露出，不被 Banner 盖住 */
.qz-spotlight.qz-spotlight--chips {
  position: relative;
  z-index: 4;
  margin-top: .35rem !important;
  margin-bottom: .55rem !important;
  padding-top: .15rem;
}
.qz-spotlight.qz-spotlight--chips .qz-chip {
  overflow: visible;
  line-height: 1.35;
  padding: .38rem .78rem;
}
/* 顶栏搜索图标：略强调，方便发现 */
.header-tools .nav-search .nav-search-icon {
  border-radius: 999px;
  transition: background .15s ease, box-shadow .15s ease;
}
.header-tools .nav-search .nav-search-icon:hover,
.header-tools .nav-search .nav-search-icon[aria-expanded="true"] {
  background: color-mix(in srgb, var(--theme-color) 16%, transparent);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--theme-color) 35%, transparent);
}
.ioui-aside .aside-search-btn {
  cursor: pointer;
}
@media (max-width: 767.98px) {
  .header-banner.header-big.css-banner.fd-banner-only,
  .header-banner.header-big.fd-banner-only,
  .header-banner.fd-banner-only .search-container {
    min-height: var(--big-mobile-height, 220px);
  }
  .header-banner.fd-banner-only .fd-banner-brand .h1,
  .header-banner.fd-banner-only .fd-banner-brand h2 {
    letter-spacing: .1em;
  }
}

/* 1.0.23 spacing rhythm */
.sites-list .row,
.ajax-list-body .row,
.posts-row {
  --bs-gutter-x: 1rem;
  --bs-gutter-y: 1rem;
}
.page-container,
.main-content {
  scroll-behavior: smooth;
}


/* fd-124-ui-align · 与 fengdong-theme 1.0.24 对齐的克制微调 */
.header-nav.blur-bg { backdrop-filter: saturate(1.4) blur(18px); -webkit-backdrop-filter: saturate(1.4) blur(18px); }
.hitokoto-text, #hitokoto { display: none !important; }
.big-search .search-box-big { border-radius: 20px; }
.url-card:hover, .sites-card:hover { transform: translateY(-3px); }
