/* AIZW博客主题 附加样式（Tailwind 之上） */

/* 隐藏滚动条 */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* 顶部导航：系统 navbar 模块水平化 */
#divTopNav ul { display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; white-space: nowrap; }
#divTopNav li { margin: 0; padding: 0; }
#divTopNav li a {
  display: inline-block;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 15px;
  color: #3d2c33;
  transition: all .2s;
}
#divTopNav li a:hover { color: var(--brand-d); background: var(--brand-s); }
#divTopNav li a.on, #divTopNav li.current a { background: var(--brand); color: #fff; }

/* 侧栏模块内容（系统模块 HTML 归一化） */
.aizw-card dl, .aizw-card ul, .aizw-card ol { margin: 0; padding: 0; }
.aizw-card li { list-style: none; }
.aizw-card dd { margin: 0; }
.aizw-card a { color: #3d2c33; }
.aizw-card a:hover { color: var(--brand-d); }
.aizw-card dt { margin-bottom: 6px; }
.aizw-card ul li { padding: 4px 0; border-bottom: 1px dashed var(--brand-l2); font-size: 14px; }
.aizw-card ul li:last-child { border-bottom: 0; }

/* 正文排版 */
.aizw-content { font-size: 15.5px; line-height: 1.9; color: #3d2c33; word-break: break-word; }
.aizw-content h2, .aizw-content h3, .aizw-content h4 {
  margin: 1.4em 0 .6em;
  font-weight: 700;
  line-height: 1.4;
}
.aizw-content h2 { font-size: 1.25em; }
.aizw-content h3 { font-size: 1.12em; }
.aizw-content p { margin: .8em 0; }
.aizw-content img { border-radius: 12px; margin: .6em 0; }
.aizw-content a { color: var(--brand-d); text-decoration: underline; text-underline-offset: 3px; }
.aizw-content blockquote {
  margin: 1em 0;
  padding: .6em 1em;
  border-left: 4px solid var(--brand);
  background: var(--brand-s);
  border-radius: 8px;
  color: #6b5a62;
}
.aizw-content code {
  background: var(--brand-s);
  color: var(--brand-d);
  padding: 2px 6px;
  border-radius: 6px;
  font-size: .92em;
}
.aizw-content pre {
  background: #3d2c33;
  color: var(--brand-l2);
  padding: 14px 16px;
  border-radius: 12px;
  overflow-x: auto;
  font-size: 13.5px;
  line-height: 1.7;
}
.aizw-content pre code { background: none; color: inherit; padding: 0; }
.aizw-content ul, .aizw-content ol { padding-left: 1.4em; margin: .8em 0; }
.aizw-content ul { list-style: disc; }
.aizw-content ol { list-style: decimal; }
.aizw-content table { width: 100%; border-collapse: collapse; margin: 1em 0; font-size: 14px; }
.aizw-content th, .aizw-content td { border: 1px solid var(--brand-l2); padding: 8px 10px; text-align: left; }
.aizw-content th { background: var(--brand-s); font-weight: 600; }

/* 移动端底部安全区 */
.aizw-bottom-nav { padding-bottom: env(safe-area-inset-bottom); }

/* 移动端页脚隐藏（后台开关 FooterHideMobile） */
@media (max-width: 767px) {
  .aizw-footer-hide-mobile { display: none !important; }
}

/* app 胶囊风移动端导航：底部居中悬浮毛玻璃胶囊，仿 iOS/Android */
.aizw-bottom-nav--capsule {
  position: fixed;
  left: 50%;
  bottom: calc(14px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  width: auto;
  max-width: calc(100vw - 24px);
  z-index: 45;
  padding: 7px 9px;
  background: rgba(255, 255, 255, .72);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  border: 1px solid rgba(0, 0, 0, .06);
  border-radius: 999px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .18);
}
html.dark .aizw-bottom-nav--capsule { background: rgba(34, 34, 42, .72); border-color: rgba(255, 255, 255, .08); box-shadow: 0 10px 30px rgba(0, 0, 0, .45); }
.aizw-bottom-nav--capsule > div { max-width: none; width: auto; height: auto; display: flex; align-items: center; gap: 2px; }
.aizw-bottom-nav--capsule > div > a {
  flex: 0 0 auto; min-width: 56px; padding: 6px 12px; border-radius: 999px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  color: #555; font-size: 11px;
}
html.dark .aizw-bottom-nav--capsule > div > a { color: #c9c9d2; }
.aizw-bottom-nav--capsule > div > a.font-bold { background: var(--brand); color: #fff !important; }
.aizw-bottom-nav--capsule > div > a.font-bold svg { color: #fff !important; fill: #fff !important; }
.aizw-bottom-nav--capsule > div > a svg { width: 22px !important; height: 22px !important; }

/* 数字输入去 spinner 视觉干扰 */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number] { -moz-appearance: textfield; }

/* ===== 增强：NEW 角标 ===== */
.aizw-new-badge {
  display: inline-block;
  padding: 1px 6px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.5;
  color: #fff;
  background: var(--brand-d);
  border-radius: 999px;
  vertical-align: middle;
}

/* ===== 增强：卡片/列表视图切换 ===== */
.aizw-view-btn {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  color: #8a8f98;
  background: #fff;
  border: 1px solid var(--brand-l2);
  border-radius: 999px;
  cursor: pointer;
  transition: all .2s;
}
.aizw-view-btn:hover { color: var(--brand); border-color: var(--brand); }
.aizw-view-btn.aizw-view-on {
  color: #fff;
  background: var(--brand);
  border-color: var(--brand);
}

/* 单行列表视图：切换 #aizwPostList.aizw-view-list */
#aizwPostList.aizw-view-list { grid-template-columns: 1fr !important; }
#aizwPostList.aizw-view-list .aizw-card { flex-direction: row; }
#aizwPostList.aizw-view-list .aizw-card > a {
  width: 170px;
  min-width: 170px;
  aspect-ratio: 4/3;
  align-self: center;
  margin: 0;
  border-radius: 12px 0 0 12px;
}
#aizwPostList.aizw-view-list .aizw-card > a img { border-radius: 12px 0 0 12px; }
#aizwPostList.aizw-view-list .aizw-card > div { flex: 1; min-width: 0; }
@media (max-width: 640px) {
  #aizwPostList.aizw-view-list .aizw-card { flex-direction: column; }
  #aizwPostList.aizw-view-list .aizw-card > a {
    width: 100%;
    min-width: 0;
    aspect-ratio: 16/9;
    border-radius: 12px 12px 0 0;
  }
  #aizwPostList.aizw-view-list .aizw-card > a img { border-radius: 12px 12px 0 0; }
}

/* ===== 增强：美化特效（主题美化包，body class 控制） ===== */

/* 轻量 toast（复制提示） */
.aizw-fx-toast {
  position: fixed;
  left: 50%;
  bottom: 72px;
  transform: translateX(-50%) translateY(12px);
  padding: 9px 18px;
  font-size: 13px;
  color: #fff;
  background: rgba(32, 32, 32, .86);
  border-radius: 999px;
  opacity: 0;
  pointer-events: none;
  z-index: 200;
  transition: opacity .3s, transform .3s;
  max-width: 86vw;
  text-align: center;
}
.aizw-fx-toast-show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* FPS 帧率角标 */
.aizw-fx-fps {
  position: fixed;
  right: 14px;
  bottom: 86px;
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  background: rgba(var(--brand-rgb), .82);
  border-radius: 8px;
  z-index: 180;
  pointer-events: none;
}
.aizw-fx-fps-left { right: auto; left: 14px; }

/* 点击彩色效果 */
.aizw-fx-click {
  position: fixed;
  width: 14px;
  height: 14px;
  font-size: 15px;
  line-height: 1;
  pointer-events: none;
  z-index: 190;
  animation: aizwClickFly .9s ease-out forwards;
}
@keyframes aizwClickFly {
  0% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: 0; transform: translate(-50%, -140%) scale(.4) rotate(40deg); }
}

/* 列表浮出（依次进入） */
.aizw-fx-float { opacity: 0; animation: aizwFloatIn .55s ease forwards; }
@keyframes aizwFloatIn {
  from { opacity: 0; transform: translateY(26px); }
  to { opacity: 1; transform: translateY(0); }
}

/* 卡片悬停上浮 */
body.aizw-fx-cardhover .aizw-card { transition: transform .3s, box-shadow .3s; }
@media (min-width: 980px) {
  body.aizw-fx-cardhover .aizw-card:hover { transform: translateY(-10px); box-shadow: 0 12px 26px rgba(var(--brand-rgb), .26); }
}

/* 头像呼吸光环 + 悬停旋转放大 */
body.aizw-fx-avatar img.avatar { border-radius: 50%; animation: aizwAvatarLight 4s ease-in-out infinite; transition: transform .5s; }
body.aizw-fx-avatar img.avatar:hover { transform: scale(1.12) rotate(360deg); }
@keyframes aizwAvatarLight {
  0%, 100% { box-shadow: 0 0 4px var(--brand); }
  50% { box-shadow: 0 0 16px var(--brand); }
}

/* Logo 扫光 */
body.aizw-fx-logoshine .aizw-logo { position: relative; overflow: hidden; }
body.aizw-fx-logoshine .aizw-logo::after {
  content: "";
  position: absolute;
  top: -40%;
  left: -70%;
  width: 42%;
  height: 180%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent);
  transform: rotate(20deg);
  animation: aizwLogoShine 3.6s ease-in-out infinite;
  pointer-events: none;
}
@keyframes aizwLogoShine {
  0%, 55% { left: -70%; }
  90%, 100% { left: 130%; }
}

/* 彩色滚动条 */
body.aizw-fx-scrollbar ::-webkit-scrollbar { width: 10px; height: 10px; }
body.aizw-fx-scrollbar ::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--brand), var(--brand-l));
  border-radius: 6px;
}
body.aizw-fx-scrollbar ::-webkit-scrollbar-track { background: rgba(247, 201, 216, .28); }

/* 文章标签彩色（5 色轮转） */
body.aizw-fx-tagcolor .aizw-tags a {
  display: inline-block;
  margin: 0 5px 5px 0;
  padding: 4px 12px;
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
  color: #fff;
  background: #19b5fe;
  border-radius: 999px;
}
body.aizw-fx-tagcolor .aizw-tags a:nth-child(5n) { background: #4a4a4a; }
body.aizw-fx-tagcolor .aizw-tags a:nth-child(5n+1) { background: #ff5e5c; }
body.aizw-fx-tagcolor .aizw-tags a:nth-child(5n+2) { background: #ffbb50; }
body.aizw-fx-tagcolor .aizw-tags a:nth-child(5n+3) { background: #1ac756; }
body.aizw-fx-tagcolor .aizw-tags a:nth-child(5n+4) { background: #19b5fe; }
body.aizw-fx-tagcolor .aizw-tags a:hover { background: #1b1b1b; color: #fff; }

/* 文章图片外发光 */
body.aizw-fx-imgglow .aizw-content img:hover { box-shadow: 0 0 8px #63b8ff; }

/* 首页公告条（跑马灯） */
.aizw-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  overflow: hidden;
  padding: 9px 16px;
  font-size: 14px;
  border-radius: 12px;
}
.aizw-notice-track { flex: 1; min-width: 0; overflow: hidden; }
.aizw-notice-marquee {
  display: inline-block;
  white-space: nowrap;
  padding-left: 100%;
  animation: aizwNoticeMove 18s linear infinite;
}
.aizw-notice:hover .aizw-notice-marquee { animation-play-state: paused; }
@keyframes aizwNoticeMove {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100%); }
}

/* 文章版权声明框 */
.aizw-copyright {
  margin-top: 24px;
  padding: 14px 18px;
  border: 1px dashed #63b8ff;
  border-radius: 10px;
  color: #6d6d6d;
  font-size: 13px;
  line-height: 2;
  word-break: break-all;
}
.aizw-copyright b { color: var(--brand); }

/* 文章字数/阅读时间 */
.aizw-readtime {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: #9aa0a6;
}

/* 底部炫酷卡片 */
.aizw-footer-card {
  margin: 0 auto 10px;
  padding: 40px 24px 26px;
  border-radius: 16px;
  background: linear-gradient(120deg, rgb(160, 32, 240), rgb(0, 191, 255));
  color: #fff;
  text-align: center;
}
.aizw-footer-card h3 { font-size: 24px; margin: 0 0 6px; }
.aizw-footer-card p { font-size: 14px; margin: 0 0 18px; opacity: .95; }
.aizw-footer-card .aizw-footer-card-actions { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }
.aizw-footer-card .aizw-footer-card-actions a {
  padding: 10px 22px;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  background: rgba(255, 255, 255, .16);
  border-radius: 8px;
  transition: transform .2s, box-shadow .2s;
}
.aizw-footer-card .aizw-footer-card-actions a:hover { transform: translateY(-2px); box-shadow: 0 5px 12px rgba(0, 0, 0, .2); }
.aizw-footer-card .aizw-footer-card-actions a.aizw-fc-primary { color: #ff3b30; background: #fff; }
.aizw-footer-card .aizw-footer-card-tip {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, .2);
  font-size: 12px;
  opacity: .9;
}
@media (max-width: 700px) { .aizw-footer-card { padding: 30px 18px 22px; } .aizw-footer-card h3 { font-size: 20px; } }

/* 外链中转页 */
.aizw-ext-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--brand-s), #fff);
}
.aizw-ext-card {
  max-width: 420px;
  width: calc(100% - 32px);
  padding: 40px 28px 26px;
  text-align: center;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 16px 40px rgba(var(--brand-rgb), .18);
}
.aizw-ext-heart {
  width: 64px;
  height: 64px;
  margin: 0 auto 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  color: #fff;
  background: var(--brand);
  border-radius: 50%;
  animation: aizwExtBeat 1.1s ease-in-out infinite;
}
.aizw-ext-heart span { animation: aizwExtPulse 1.1s ease-in-out infinite; }
@keyframes aizwExtBeat {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.12); }
}
@keyframes aizwExtPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .55; }
}
.aizw-ext-text { font-size: 15px; font-weight: 700; color: #333; }
.aizw-ext-go {
  display: inline-block;
  margin-top: 18px;
  padding: 10px 28px;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  background: var(--brand);
  border-radius: 999px;
  transition: opacity .2s;
}
.aizw-ext-go:hover { opacity: .85; }
.aizw-ext-tip { margin-top: 14px; font-size: 12px; color: #9aa0a6; }

/* ===== 昼夜模式（html.dark 由 header 头部脚本 + 顶栏按钮控制） ===== */
html.dark body { background: #17171c; }
html.dark body, html.dark .aizw-content, html.dark .aizw-card, html.dark .aizw-card a,
html.dark p, html.dark h1, html.dark h2, html.dark h3, html.dark h4, html.dark h5 { color: #d6d6dd; }
html.dark .bg-white { background-color: #212127 !important; }
html.dark .bg-white\/90 { background-color: rgba(30, 30, 37, .92) !important; }
html.dark .bg-white\/95 { background-color: rgba(26, 26, 33, .97) !important; }
html.dark .bg-brand-soft { background-color: #232329 !important; }
html.dark .bg-gray-100 { background-color: #2b2b34 !important; }
html.dark .aizw-card { background-color: #1e1e24 !important; box-shadow: 0 2px 10px rgba(0, 0, 0, .35) !important; }
html.dark .aizw-chip { background: #26262f !important; color: var(--brand-l2) !important; }
html.dark .aizw-bottom-nav { background-color: rgba(28, 28, 35, .96) !important; border-color: #3a3a44 !important; }
html.dark .aizw-view-btn { background: #26262e !important; border-color: #3c3c46 !important; color: #a3a3ad !important; }
html.dark .aizw-view-btn.aizw-view-on { color: #fff; background: var(--brand) !important; border-color: var(--brand) !important; }
html.dark .aizw-view-btn:hover { color: var(--brand); border-color: var(--brand); }

/* 顶栏 */
html.dark #divTopNav li a { color: #cfcfd8; }
html.dark #divTopNav li a:hover { color: var(--brand-l2); background: #33333c; }
html.dark #divTopNav li a.on, html.dark #divTopNav li.current a { background: var(--brand); color: #fff; }
html.dark #aizwSearchBox { background-color: rgba(26, 26, 33, .97) !important; }
html.dark #aizwLangMenu { background: #212127 !important; border-color: #3a3a44 !important; box-shadow: 0 10px 20px rgba(0,0,0,.45); }
html.dark #aizwLangMenu a:hover { background: #2c2c35 !important; }
html.dark #aizwDrawer { background: #1d1d23 !important; box-shadow: 0 0 40px rgba(0,0,0,.5); }

/* 行内浅色样式（后台配置的浅粉边框/浅粉底/白底）在暗色下归一 */
html.dark [style*="border-color:var(--brand-l2)"] { border-color: #4a4a55 !important; }
html.dark [style*="border-color:var(--brand-s)"] { border-color: #33333c !important; }
html.dark [style*="background:var(--brand-s)"] { background: #26262f !important; }
html.dark [style*="background:var(--brand-s)"] { background: #2b2b34 !important; }
html.dark [style*="background:#fdeaea"] { background: #3a2430 !important; }
html.dark [style*="background:#fff"] { background: #232329 !important; }
html.dark .aizw-card ul li { border-bottom-color: #34343e; }
html.dark .aizw-card dd a { color: #c8c8d2; }
html.dark .aizw-card dt a { color: #e8e8ee; }

/* 正文 */
html.dark .aizw-content { color: #d3d3db; }
html.dark .aizw-content a { color: var(--brand-l); }
html.dark .aizw-content blockquote { background: #24242d; color: #b9b9c3; border-left-color: var(--brand); }
html.dark .aizw-content code { background: #30303a; color: var(--brand-l); }
html.dark .aizw-content th { background: #26262f; }
html.dark .aizw-content th, html.dark .aizw-content td { border-color: #3a3a44; }
html.dark .aizw-content pre { background: #101014; }
html.dark .aizw-content img { opacity: .92; }

/* 通用文字工具类 */
html.dark .text-gray-400, html.dark .text-gray-500 { color: #9a9aa5 !important; }
html.dark .text-gray-600, html.dark .text-gray-700, html.dark .text-gray-800 { color: #c4c4ce !important; }
html.dark .hover\:text-gray-700:hover { color: #e0e0e8 !important; }

/* 表单控件 */
html.dark input, html.dark textarea, html.dark select { background: #26262e; color: #ddd; border-color: #44444f !important; }
html.dark input::placeholder, html.dark textarea::placeholder { color: #7c7c88; }

/* 弹窗 */
html.dark #aizwCartModal .bg-white, html.dark #aizwClearModal .bg-white { background: #1e1e24 !important; }
html.dark #aizwCartModal .rounded-xl { background: #26262f !important; }
html.dark #aizwCartModal .rounded-xl input { background: #26262e !important; }

/* 侧栏模块 */
html.dark .aizw-card dt, html.dark .aizw-card dl { color: #d6d6dd; }

/* 外链中转页 */
html.dark .aizw-ext-page { background: linear-gradient(135deg, #1e1e26, #26262f); }
html.dark .aizw-ext-card { background: #1e1e24 !important; box-shadow: 0 16px 40px rgba(0, 0, 0, .5); }
html.dark .aizw-ext-text { color: #e0e0e8; }

/* 页脚/其他 */
html.dark .aizw-footer-card-tip { border-top-color: rgba(255,255,255,.18); }
html.dark .aizw-copyright { color: #a8a8b2; border-color: #4a5f7d; }

/* 昼夜切换按钮图标显隐由 JS 切换 hidden，这里兜底 */
html.dark .aizw-icon-sun { display: none; }
html.dark .aizw-icon-moon { display: block; }
html:not(.dark) .aizw-icon-moon { display: none; }

/* ===== 通知弹窗（总裁主题样式：白圆角卡片 + 主/次按钮） ===== */
.aizw-notify-mask { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; background: rgba(20, 16, 40, .45); backdrop-filter: blur(3px); }
.aizw-notify-mask.hidden { display: none !important; }
.aizw-notify-card { width: 380px; max-width: 92vw; background: #fff; border-radius: 18px; box-shadow: 0 18px 50px rgba(30, 10, 40, .28); overflow: hidden; animation: aizwNotifyIn .28s ease-out; text-align: center; padding: 28px 26px 24px; border: 1px solid var(--brand-l2); }
@keyframes aizwNotifyIn { from { opacity: 0; transform: translateY(14px) scale(.97); } to { opacity: 1; transform: none; } }
.aizw-notify-imgwrap { margin: -28px -26px 16px; }
.aizw-notify-img { width: 100%; max-height: 150px; object-fit: cover; }
.aizw-notify-title { margin: 0 0 10px; font-size: 19px; font-weight: 800; color: #3d2c33; }
.aizw-notify-content { margin: 0 0 20px; font-size: 13.5px; line-height: 1.8; color: #6b646e; }
.aizw-notify-btns { display: flex; gap: 10px; justify-content: center; }
.aizw-notify-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 120px; padding: 10px 22px; border-radius: 999px; font-size: 14px; font-weight: 600; text-decoration: none; cursor: pointer; border: 0; transition: all .15s; }
.aizw-notify-primary { background: linear-gradient(135deg, var(--brand, var(--brand)), var(--brand)); color: #fff; box-shadow: 0 4px 14px rgba(var(--brand-rgb), .35); }
.aizw-notify-primary:hover { opacity: .92; }
.aizw-notify-ghost { background: #f3f1f5; color: #7d7782; }
.aizw-notify-ghost:hover { background: #eae7ee; }
html.dark .aizw-notify-card { background: #23212e; border-color: #36333f; }
html.dark .aizw-notify-title { color: #f0edf5; }
html.dark .aizw-notify-content { color: #a8a3b3; }
html.dark .aizw-notify-ghost { background: #36333f; color: #b8b3c2; }

/* ===== 侧栏：作者卡片 ===== */
.aizw-author-card { background: linear-gradient(180deg, #fff 0%, var(--brand-s) 100%); padding:18px 16px; }
/* 作者卡片 v2.7：统计横排 + 联系方式一排（专属类，不依赖 tailwind 按需编译——
   旧版 grid-cols-4/w-14 不在编译产物里导致统计竖排变形，教训见交接文档） */
.aizw-ac-head { display:flex; align-items:center; gap:12px; }
.aizw-ac-avatar { width:56px; height:56px; flex:0 0 auto; border-radius:50%; object-fit:cover; border:2px solid var(--brand,var(--brand)); box-shadow:0 0 0 4px rgba(var(--brand-rgb),.15); }
.aizw-ac-info { min-width:0; }
.aizw-ac-name { margin:0; font-weight:700; font-size:15px; color:var(--brand,var(--brand)); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.aizw-ac-bio { margin:3px 0 0; font-size:12px; color:#a89ea9; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.aizw-ac-stats { display:grid; grid-template-columns:repeat(3,1fr); margin-top:14px; padding-top:12px; border-top:1px dashed var(--brand-l2); }
.aizw-ac-stat { text-align:center; }
.aizw-ac-stat b { display:block; font-size:17px; line-height:1.2; color:var(--brand,var(--brand)); }
.aizw-ac-stat span { display:block; margin-top:2px; font-size:11px; color:#a89ea9; }
.aizw-ac-contact { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:12px; padding-top:12px; border-top:1px dashed var(--brand-l2); }
.aizw-ac-cbtn { width:36px; height:36px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:14px; font-weight:700; text-decoration:none; border:0; cursor:pointer; transition:transform .15s, box-shadow .15s; }
.aizw-ac-cbtn:hover { transform:translateY(-2px); box-shadow:0 4px 12px rgba(var(--brand-rgb),.28); }
.aizw-ac-wechat { background:#eaf8e4; color:#3f9d37; }
.aizw-ac-qq { background:#e8f2ff; color:#2b7de9; }
.aizw-ac-mail { background:#fff3e6; color:#e8721a; }
.aizw-ac-github { background:#f0eff2; color:#4a4550; }
.aizw-ac-weibo { background:var(--brand-s2); color:#e04a4a; }
.aizw-ac-toast { position:fixed; left:50%; bottom:40px; transform:translate(-50%,16px); background:rgba(40,30,50,.88); color:#fff; font-size:13px; padding:8px 18px; border-radius:999px; opacity:0; pointer-events:none; transition:opacity .25s, transform .25s; z-index:9999; }
.aizw-ac-toast.show { opacity:1; transform:translate(-50%,0); }
html.dark .aizw-author-card { background: linear-gradient(180deg, #23212e 0%, #2a2230 100%); }
html.dark .aizw-ac-stats, html.dark .aizw-ac-contact { border-top-color:#3a3644; }
html.dark .aizw-ac-bio, html.dark .aizw-ac-stat span { color:#8a8496; }
html.dark .aizw-ac-wechat { background:#263226; color:#7ec46f; }
html.dark .aizw-ac-qq { background:#222c3e; color:#6ba3ec; }
html.dark .aizw-ac-mail { background:#372c22; color:#f09a52; }
html.dark .aizw-ac-github { background:#2e2c38; color:#b8b3c2; }
html.dark .aizw-ac-weibo { background:#3a2426; color:#ec7a7a; }

/* ===== 侧栏：广告位 ===== */
.aizw-side-ad .block:hover { box-shadow: 0 6px 16px rgba(var(--brand-rgb), .12); }

/* ===== 侧栏：最新/热门二合一 ===== */
.aizw-hot-tab { flex: 1; padding: 10px 0; text-align: center; font-weight: 600; font-size: 13px; color: #9a949e; cursor: pointer; border: 0; background: none; transition: all .15s; }
.aizw-hot-tab.on { color: var(--brand, var(--brand)); box-shadow: inset 0 -2px 0 var(--brand, var(--brand)); }
.aizw-hot-item { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 10px; text-decoration: none; transition: background .12s; }
.aizw-hot-item:hover { background: var(--brand-s); }
.aizw-hot-num { flex-shrink: 0; width: 22px; height: 22px; border-radius: 7px; font-size: 11.5px; font-weight: 700; color: #fff; display: inline-flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--brand-l), var(--brand)); }
.aizw-hot-item:nth-child(1) .aizw-hot-num { background: linear-gradient(135deg, var(--brand-l), var(--brand-d)); }
.aizw-hot-item:nth-child(2) .aizw-hot-num { background: linear-gradient(135deg, #ffb38a, #f08a5c); }
.aizw-hot-item:nth-child(3) .aizw-hot-num { background: linear-gradient(135deg, #ffd08a, #f0b95c); }
.aizw-hot-txt { flex: 1; min-width: 0; font-size: 13px; color: #55505a; }
.aizw-hot-meta { flex-shrink: 0; font-size: 11.5px; color: #b9b3ba; }
html.dark .aizw-hot-item:hover { background: #2f2b3a; }
html.dark .aizw-hot-txt { color: #cfc9d6; }

/* ===== 侧栏：标签墙 ===== */
.aizw-tag-chip { display: inline-flex; align-items: center; padding: 4px 12px; border-radius: 999px; font-size: 12px; color: #8b63a0; background: #f7f1fb; text-decoration: none; transition: all .15s; }
.aizw-tag-chip:hover { color: #fff; background: var(--brand, var(--brand)); }
html.dark .aizw-tag-chip { background: #332c40; color: #b9a6d6; }

/* ===== 侧栏：系统模块通用美化 ===== */
.aizw-mod ul { list-style: none; margin: 0; padding: 0; }
.aizw-mod ul li { padding: 5px 0; font-size: 13px; }
.aizw-mod ul li a { color: #55505a; text-decoration: none; }
.aizw-mod ul li a:hover { color: var(--brand, var(--brand)); }
.aizw-mod ul li::before { content: "·"; color: var(--brand, var(--brand)); font-weight: 700; margin-right: 7px; }
.aizw-mod-calendar table { width: 100%; }
.aizw-mod-calendar th, .aizw-mod-calendar td { text-align: center; padding: 2px 0; font-size: 12px; }
.aizw-mod-calendar a { color: var(--brand, var(--brand)); text-decoration: none; }
.aizw-mod-search input { width: 100%; box-sizing: border-box; border: 1px solid #eee4ec; border-radius: 999px; padding: 7px 14px; font-size: 12.5px; outline: none; }
.aizw-mod-search input:focus { border-color: var(--brand, var(--brand)); }
.aizw-mod-search input[type="submit"] { margin-top: 6px; width: auto; background: var(--brand, var(--brand)); color: #fff; border: 0; cursor: pointer; }
html.dark .aizw-mod ul li a { color: #cfc9d6; }
html.dark .aizw-mod-search input { background: #2f2b3a; border-color: #45414f; color: #e5e0ea; }

/* ===== 侧栏：友链模块 ===== */
.aizw-mod-link ul { display: flex; flex-wrap: wrap; gap: 8px; }
.aizw-mod-link ul li { padding: 0; margin: 0; }
.aizw-mod-link ul li::before { content: none; }
.aizw-mod-link ul li a { display: inline-block; padding: 4px 12px; border: 1px solid #f0e2ec; border-radius: 999px; font-size: 12px; color: #7d7782; background: #fff; transition: all .15s; }
.aizw-mod-link ul li a:hover { border-color: var(--brand, var(--brand)); color: var(--brand, var(--brand)); background: var(--brand-s); }
html.dark .aizw-mod-link ul li a { background: #2f2b3a; border-color: #45414f; color: #cfc9d6; }

/* ===== 首页轮播 ===== */
.aizw-carousel-wrap { border-radius:18px; padding:12px; }
.aizw-carousel { position:relative; border-radius:18px; overflow:hidden; box-shadow:0 8px 24px rgba(var(--brand-rgb),.12); }
.aizw-carousel-viewport { position:relative; width:100%; overflow:hidden; background:var(--brand-s); }
.aizw-carousel-single .aizw-carousel-viewport { height:auto; }
.aizw-carousel-track { position:relative; width:100%; }
.aizw-carousel-slide { position:absolute; inset:0; opacity:0; transition:opacity .6s ease; pointer-events:none; }
.aizw-carousel-slide.on { opacity:1; pointer-events:auto; }
.aizw-carousel-slide img { width:100%; height:100%; object-fit:cover; display:block; }
.aizw-carousel-single .aizw-carousel-slide, .aizw-carousel-single .aizw-carousel-track { aspect-ratio:16/6; min-height:200px; }
/* 注意：big4/single 是与 .aizw-carousel 同元素的修饰类，必须用并列选择器 .aizw-carousel.aizw-carousel-big4；
   写成后代选择器 ".aizw-carousel-big4 .aizw-carousel" 永远匹配不到，grid 布局从未生效（历史 bug）。 */
/* big4 等高布局（v2.8 修复「左侧大图与右侧 2×2 高度不一致」）：
   把高度锚定在容器上——容器给固定纵横比（16/6），左右两列各 stretch 到 100%；
   右侧缩略图行用 1fr 1fr 平分容器高，img 以绝对定位铺满单元格。
   旧实现右侧 img 高度由自身内容撑开（height:100% 对 auto 行不生效），与左侧 16/6 各算各的，必然不等高。 */
.aizw-carousel.aizw-carousel-big4 { display:grid; grid-template-columns:1.5fr 1fr; gap:10px; aspect-ratio:16/6; min-height:200px; }
.aizw-carousel-big4 .aizw-carousel-viewport { border-radius:16px; aspect-ratio:auto; height:100%; }
.aizw-carousel-big4 .aizw-carousel-track { height:100%; }
.aizw-carousel-caption { position:absolute; left:16px; bottom:14px; max-width:70%; padding:6px 14px; border-radius:999px; background:rgba(20,14,26,.45); color:#fff; font-size:13px; backdrop-filter:blur(4px); }
.aizw-carousel-nav { position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.8); color:#444; box-shadow:0 2px 8px rgba(0,0,0,.12); transition:all .2s; }
.aizw-carousel-nav:hover { background:#fff; color:var(--brand); }
.aizw-carousel-prev { left:12px; }
.aizw-carousel-next { right:12px; }
.aizw-carousel-dots { position:absolute; left:0; right:0; bottom:10px; display:flex; justify-content:center; gap:6px; z-index:5; }
.aizw-carousel-dot { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.7); transition:all .25s; }
.aizw-carousel-dot.on { width:20px; border-radius:999px; background:var(--brand); }
.aizw-carousel-thumbs { display:grid; grid-template-columns:1fr 1fr; gap:10px; align-self:stretch; }
.aizw-carousel-big4 .aizw-carousel-thumbs { grid-template-rows:1fr 1fr; min-height:0; }
.aizw-carousel-thumb { position:relative; overflow:hidden; border-radius:12px; border:2px solid transparent; padding:0; background:transparent; cursor:pointer; opacity:.65; transition:all .2s; min-height:0; }
.aizw-carousel-thumb img { width:100%; height:100%; object-fit:cover; display:block; aspect-ratio:1/1; }
.aizw-carousel-big4 .aizw-carousel-thumb img { position:absolute; inset:0; aspect-ratio:auto; }
.aizw-carousel-thumb.on { border-color:var(--brand); opacity:1; }
@media (max-width:767px) {
  .aizw-carousel.aizw-carousel-big4 { grid-template-columns:1fr; aspect-ratio:auto; }
  .aizw-carousel-big4 .aizw-carousel-viewport { height:auto; aspect-ratio:16/9; }
  .aizw-carousel-big4 .aizw-carousel-track { height:auto; aspect-ratio:16/9; }
  .aizw-carousel-big4 .aizw-carousel-thumbs { grid-template-columns:repeat(4,1fr); grid-template-rows:auto; }
  .aizw-carousel-big4 .aizw-carousel-thumb { aspect-ratio:16/9; }
  .aizw-carousel-big4 .aizw-carousel-thumb img { position:absolute; inset:0; aspect-ratio:auto; }
}
html.dark .aizw-carousel-viewport { background:#2b2736; }
html.dark .aizw-carousel-nav { background:rgba(47,43,58,.85); color:#e8e2ee; }

/* ===== 资源下载卡 / 积分商城（v2.8，数据来自 aizw_commerce） ===== */
.aizw-rescard { margin-top:20px; border:1px solid var(--brand-l2); border-radius:16px; background:linear-gradient(180deg,var(--brand-s) 0%,var(--brand-s) 100%); padding:18px 20px; box-shadow:0 6px 18px rgba(var(--brand-rgb),.10); }
.aizw-res-head { display:flex; align-items:center; gap:12px; }
.aizw-res-icon { font-size:28px; line-height:1; }
.aizw-res-tt { flex:1; min-width:0; }
.aizw-res-tt b { display:block; font-size:16px; color:#3d2c33; }
.aizw-res-sub { display:block; margin-top:2px; font-size:12px; color:#a89ea9; }
.aizw-res-chip { flex-shrink:0; padding:4px 12px; border-radius:999px; font-size:12px; font-weight:700; background:var(--brand-s2); color:var(--brand-d); }
.aizw-res-chip.free { background:#e8f8e8; color:#3f9d37; }
.aizw-res-chip.ok { background:#e8f2ff; color:#2b7de9; }
.aizw-res-wx { display:flex; align-items:center; gap:14px; margin-top:14px; padding:12px 14px; border-radius:12px; background:#fff; border:1px dashed var(--brand-l2); }
.aizw-res-wx.hidden, .aizw-res-link.hidden { display:none; }
.aizw-res-wx-txt { flex:1; min-width:0; }
.aizw-res-wx-txt b { display:block; font-size:13px; color:var(--brand-d); }
.aizw-res-wx-txt span { display:block; margin-top:3px; font-size:12px; color:#a89ea9; line-height:1.6; }
.aizw-res-wx img { width:96px; height:96px; object-fit:cover; border-radius:10px; flex-shrink:0; }
.aizw-res-acts { margin-top:14px; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.aizw-res-btn { display:inline-flex; align-items:center; justify-content:center; padding:10px 24px; border-radius:999px; font-size:14px; font-weight:700; cursor:pointer; text-decoration:none; border:0; transition:transform .15s, box-shadow .15s; }
.aizw-res-btn:hover { transform:translateY(-1px); }
.aizw-res-btn.primary { background:linear-gradient(135deg, var(--brand,var(--brand)), var(--brand)); color:#fff; box-shadow:0 4px 14px rgba(var(--brand-rgb),.35); }
.aizw-res-btn.ghost { background:#fff; color:var(--brand-d); border:1px solid var(--brand-l2); }
.aizw-res-btn:disabled { opacity:.6; cursor:not-allowed; transform:none; }
.aizw-res-pwdrow { display:flex; gap:10px; align-items:center; margin-top:12px; flex-wrap:wrap; }
.aizw-res-input { flex:1; min-width:160px; max-width:280px; padding:10px 16px; border-radius:999px; border:1px solid var(--brand-l2); background:#fff; font-size:14px; outline:none; }
.aizw-res-input:focus { border-color:var(--brand,var(--brand)); }
.aizw-res-msg { margin:10px 0 0; font-size:13px; color:var(--brand-d); min-height:18px; }
.aizw-res-link { display:none; margin-top:12px; padding:12px 18px; border-radius:12px; background:linear-gradient(135deg,#7ec46f,#5cb85c); color:#fff; font-weight:700; text-decoration:none; }
.aizw-mall-head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:18px; }
.aizw-mall-title { margin:0; font-size:22px; font-weight:800; color:#3d2c33; }
.aizw-mall-sub { margin:4px 0 0; font-size:13px; color:#a89ea9; }
.aizw-mall-points { font-size:13px; color:#a89ea9; }
.aizw-mall-points b { color:var(--brand-d); font-size:18px; }
.aizw-mall-uc { margin-left:12px; font-size:13px; color:var(--brand,var(--brand)); text-decoration:none; }
.aizw-mall-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
@media (max-width:900px) { .aizw-mall-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .aizw-mall-grid { grid-template-columns:1fr; } }
.aizw-mall-card { border:1px solid var(--brand-l2); border-radius:16px; overflow:hidden; background:#fff; transition:transform .2s, box-shadow .2s; display:flex; flex-direction:column; }
.aizw-mall-card:hover { transform:translateY(-3px); box-shadow:0 10px 26px rgba(var(--brand-rgb),.18); }
.aizw-mall-cover { display:block; aspect-ratio:16/10; overflow:hidden; background:var(--brand-s); }
.aizw-mall-cover img { width:100%; height:100%; object-fit:cover; display:block; }
.aizw-mall-nopic { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:40px; }
.aizw-mall-info { padding:12px 14px 14px; flex:1; display:flex; flex-direction:column; }
.aizw-mall-name { font-size:15px; font-weight:700; color:#3d2c33; text-decoration:none; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.aizw-mall-intro { margin:6px 0 0; font-size:12px; color:#a89ea9; line-height:1.6; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.aizw-mall-foot { margin-top:auto; padding-top:10px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.aizw-mall-pts { font-size:12px; color:#a89ea9; }
.aizw-mall-pts b { font-size:16px; color:var(--brand-d); }
.aizw-mall-done { font-size:12px; color:#3f9d37; font-weight:700; }
.aizw-mall-buy { padding:7px 16px; font-size:12px; }
html.dark .aizw-rescard { background:linear-gradient(180deg,#262330 0%,#2b2230 100%); border-color:#3a3644; }
html.dark .aizw-res-tt b { color:#f0edf5; }
html.dark .aizw-res-sub, html.dark .aizw-res-wx-txt span, html.dark .aizw-mall-sub, html.dark .aizw-mall-intro, html.dark .aizw-mall-points, html.dark .aizw-mall-pts { color:#8a8496; }
html.dark .aizw-res-wx { background:#23212e; border-color:#4a3644; }
html.dark .aizw-res-btn.ghost { background:#2b2833; border-color:#4a3644; color:var(--brand-l2); }
html.dark .aizw-res-input { background:#23212e; border-color:#4a3644; color:#f0edf5; }
html.dark .aizw-mall-title, html.dark .aizw-mall-name { color:#f0edf5; }
html.dark .aizw-mall-card { background:#262330; border-color:#3a3644; }
html.dark .aizw-mall-cover, html.dark .aizw-mall-nopic { background:#2f2b3a; }

/* =============================================================
 * v3 积分商城 UI 改版：积分价签上浮 / 积分胶囊 / 紧凑空态
 * ============================================================= */
.aizw-mall-points { display:inline-flex; align-items:center; gap:8px; background:linear-gradient(135deg,var(--brand-s),#fde3ed); border:1px solid var(--brand-l2); border-radius:999px; padding:7px 16px; font-size:13px; color:#a89ea9; }
.aizw-mall-cover { position:relative; }
.aizw-mall-tag { position:absolute; right:10px; top:10px; background:rgba(255,255,255,.92); border-radius:999px; padding:3px 10px; font-size:12px; color:#a89ea9; box-shadow:0 2px 8px rgba(224,80,138,.15); }
.aizw-mall-tag b { color:var(--brand-d); font-size:14px; }
.aizw-mall-foot { justify-content:flex-end; }
.aizw-mall-empty { text-align:center; padding:56px 24px 48px; }
.aizw-mall-empty-ico { width:72px; height:72px; margin:0 auto 16px; border-radius:24px; background:linear-gradient(135deg,var(--brand-s),var(--brand-l2)); display:flex; align-items:center; justify-content:center; font-size:34px; box-shadow:inset 0 0 0 1px var(--brand-l2); }
.aizw-mall-empty-t { margin:0; font-size:16px; font-weight:700; color:#3d2c33; }
.aizw-mall-empty-d { margin:6px 0 0; font-size:13px; color:#a89ea9; }
.aizw-mall-empty-btn { display:inline-block; margin-top:18px; background:linear-gradient(135deg,var(--brand),var(--brand-d)); color:#fff; text-decoration:none; font-size:13px; font-weight:700; border-radius:999px; padding:9px 26px; box-shadow:0 6px 16px rgba(224,80,138,.28); transition:transform .15s; }
.aizw-mall-empty-btn:hover { transform:translateY(-1px); }
html.dark .aizw-mall-points { background:#2f2b3a; border-color:#3a3644; color:#8a8496; }
html.dark .aizw-mall-points b { color:var(--brand); }
html.dark .aizw-mall-tag { background:rgba(38,35,48,.92); color:#8a8496; }
html.dark .aizw-mall-empty-ico { background:#2f2b3a; box-shadow:inset 0 0 0 1px #3a3644; }
html.dark .aizw-mall-empty-t { color:#f0edf5; }
html.dark .aizw-mall-empty-d { color:#8a8496; }

/* ===== 面包屑 / 相关文章（v2.6） ===== */
.aizw-crumb { display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:13px; color:#9a8f96; }
.aizw-crumb a { color:#7d7380; text-decoration:none; transition:color .15s; }
.aizw-crumb a:hover { color:var(--brand); }
.aizw-crumb-sep { color:#d5cdd4; }
.aizw-crumb-cur { color:#4d4550; font-weight:600; }
html.dark .aizw-crumb { color:#a8a3b3; }
html.dark .aizw-crumb a { color:#b8b3c2; }
html.dark .aizw-crumb-sep { color:#565160; }
html.dark .aizw-crumb-cur { color:#f0edf5; }
.aizw-related-title { font-size:17px; font-weight:700; margin-bottom:12px; color:#3d3540; }
.aizw-related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
@media (max-width:767px) { .aizw-related-grid { grid-template-columns:repeat(2,1fr); } }
.aizw-related-card { display:flex; flex-direction:column; background:var(--brand-s); border:1px solid #f7e3ec; border-radius:12px; overflow:hidden; text-decoration:none; transition:transform .2s, box-shadow .2s; }
.aizw-related-card:hover { transform:translateY(-2px); box-shadow:0 6px 18px rgba(var(--brand-rgb),.18); }
.aizw-related-card img, .aizw-related-nopic { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; background:var(--brand-l2); }
.aizw-related-name { padding:8px 10px 2px; font-size:13px; font-weight:600; color:#4d4550; line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.aizw-related-time { padding:0 10px 8px; font-size:11px; color:#a89ea9; }
html.dark .aizw-related-title { color:#f0edf5; }
html.dark .aizw-related-card { background:#2b2833; border-color:#3a3644; }
html.dark .aizw-related-card img, html.dark .aizw-related-nopic { background:#3a3644; }
html.dark .aizw-related-name { color:#e8e2ee; }
html.dark .aizw-related-time { color:#8a8496; }

/* ===== T4 文章互动模块 ===== */
.aizw-interact { margin-top:8px; }
.aizw-act-btn {
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 14px; border-radius:999px; font-size:13px; font-weight:600;
  color:var(--brand-d); background:#fff; border:1px solid var(--brand-l2); cursor:pointer;
  transition:all .18s;
}
.aizw-act-btn:hover { background:var(--brand-s); }
.aizw-act-btn svg { width:16px; height:16px; }
.aizw-act-btn.aizw-liked { color:#fff; background:var(--brand); border-color:var(--brand); }
.aizw-act-btn.aizw-act-tip { color:#c98a00; border-color:#f3d9a0; }
.aizw-act-btn.aizw-act-tip:hover { background:#fff7e6; }
html.dark .aizw-act-btn { background:#26262e; color:var(--brand-l2); border-color:#3c3c46; }
html.dark .aizw-act-btn:hover { background:#2f2b3a; }
html.dark .aizw-act-btn.aizw-liked { color:#fff; background:var(--brand); border-color:var(--brand); }
html.dark .aizw-act-btn.aizw-act-tip { color:#f0c060; border-color:#4a4128; }
html.dark .aizw-act-btn.aizw-act-tip:hover { background:#2f2b3a; }

/* ===== 首页服务模块 ===== */
.aizw-services-title { text-align:center; font-size:20px; font-weight:700; margin-bottom:16px; color:#333; }
.aizw-services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
@media (max-width:767px) { .aizw-services-grid { grid-template-columns:1fr; } }
.aizw-service-card { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:150px; padding:16px; background-color:var(--brand-s); background-size:cover; background-position:center; color:#fff; text-decoration:none; overflow:hidden; box-shadow:0 4px 14px rgba(0,0,0,.06); transition:transform .2s, box-shadow .2s; }
.aizw-service-card:hover { transform:translateY(-3px); box-shadow:0 10px 24px rgba(0,0,0,.14); }
.aizw-service-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(30,20,40,.05) 40%, rgba(30,20,40,.55)); pointer-events:none; }
.aizw-service-icon { position:absolute; top:14px; left:14px; width:46px; height:46px; object-fit:contain; background:rgba(255,255,255,.92); border-radius:12px; padding:8px; box-shadow:0 2px 8px rgba(0,0,0,.14); z-index:1; }
.aizw-service-name { position:relative; z-index:1; font-size:16px; font-weight:700; text-shadow:0 1px 4px rgba(0,0,0,.3); }
.aizw-service-sub { position:relative; z-index:1; margin-top:3px; font-size:12px; opacity:.9; text-shadow:0 1px 3px rgba(0,0,0,.3); }
html.dark .aizw-services-title { color:#e8e2ee; }
html.dark .aizw-service-card { background-color:#2f2b3a; }

/* ===== 用户中心 ===== */
.aizw-uc-tabs { display:flex; flex-wrap:wrap; gap:8px; }
.aizw-uc-tab { padding:7px 14px; border-radius:999px; font-size:13px; color:#6b5560; background:#fff; border:1px solid var(--brand-l2); cursor:pointer; transition:all .18s; }
.aizw-uc-tab:hover { color:var(--brand); border-color:var(--brand); }
.aizw-uc-tab.on { background:var(--brand); border-color:var(--brand); color:#fff; font-weight:600; }
.aizw-uc-panel { display:none; }
.aizw-uc-panel.on { display:block; animation:aizwFadeIn .25s ease; }
.aizw-uc-empty { display:block; }
@keyframes aizwFadeIn { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
html.dark .aizw-uc-tab { background:#221c2e; border-color:#453c4e; color:#cbb7c9; }
html.dark .aizw-uc-tab.on { background:var(--brand); border-color:var(--brand); color:#fff; }

/* ===== v2.8 会员开通弹窗（三通道） ===== */
.aizw-vip-overlay { background:rgba(30,10,22,.5); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.aizw-vip-backdrop { position:absolute; inset:0; }
.aizw-vip-modal { position:relative; width:100%; max-width:440px; max-height:88vh; overflow-y:auto; background:#fff; border-radius:22px; box-shadow:0 24px 64px rgba(150,40,90,.28); animation:aizwVipPop .28s cubic-bezier(.34,1.4,.64,1); }
@keyframes aizwVipPop { from { opacity:0; transform:translateY(18px) scale(.96); } to { opacity:1; transform:none; } }
.aizw-vip-head { position:sticky; top:0; z-index:2; display:flex; align-items:center; gap:10px; padding:15px 18px; background:linear-gradient(135deg,var(--brand) 0%,var(--brand-d) 55%,var(--brand-d) 100%); color:#fff; border-radius:22px 22px 0 0; }
.aizw-vip-crown { font-size:26px; filter:drop-shadow(0 2px 4px rgba(0,0,0,.18)); }
.aizw-vip-head h3 { margin:0; font-size:17px; font-weight:800; letter-spacing:.5px; }
.aizw-vip-head p { margin:2px 0 0; font-size:11px; opacity:.88; }
.aizw-vip-points { margin-left:auto; flex-shrink:0; padding:5px 12px; border-radius:999px; background:rgba(255,255,255,.2); font-size:11px; white-space:nowrap; }
.aizw-vip-points b { font-size:14px; font-weight:800; margin-left:4px; }
.aizw-vip-x { flex-shrink:0; width:30px; height:30px; border-radius:50%; border:0; background:rgba(255,255,255,.2); color:#fff; font-size:17px; line-height:1; cursor:pointer; transition:background .18s; }
.aizw-vip-x:hover { background:rgba(255,255,255,.34); }
.aizw-vip-body { padding:16px 18px 18px; }
.aizw-vip-plan-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.aizw-vip-plan { position:relative; display:flex; flex-direction:column; gap:2px; padding:13px 12px 11px; border-radius:16px; border:2px solid var(--brand-l2); background:var(--brand-s); cursor:pointer; transition:all .18s; overflow:hidden; }
.aizw-vip-plan:hover { border-color:var(--brand-l2); transform:translateY(-1px); }
.aizw-vip-plan.on { border-color:var(--brand); background:linear-gradient(160deg,var(--brand-s),var(--brand-s2)); box-shadow:0 6px 18px rgba(232,93,138,.2); }
.aizw-vip-plan-badge { position:absolute; top:0; right:0; padding:2px 10px; border-radius:0 13px 0 12px; background:linear-gradient(120deg,var(--brand),var(--brand-d)); color:#fff; font-size:10px; font-weight:700; letter-spacing:1px; }
.aizw-vip-plan-name { font-size:14px; font-weight:700; color:#4a3b46; }
.aizw-vip-plan-price { font-size:22px; font-weight:800; color:var(--brand); line-height:1.2; }
.aizw-vip-plan-price i { font-style:normal; font-size:13px; font-weight:700; margin-right:1px; }
.aizw-vip-plan-pts { font-size:11px; color:#b0889c; }
.aizw-vip-plan-perks { margin-top:6px; padding-top:6px; border-top:1px dashed #eddfe8; font-size:10.5px; color:#a58a98; line-height:1.7; }
.aizw-vip-plan-check { position:absolute; top:-1px; left:-1px; width:22px; height:22px; border-radius:15px 0 14px 0; background:var(--brand); color:#fff; font-size:12px; line-height:22px; text-align:center; opacity:0; transform:scale(.4); transition:all .18s; }
.aizw-vip-plan.on .aizw-vip-plan-check { opacity:1; transform:scale(1); }
.aizw-vip-seg { display:flex; gap:6px; margin-top:14px; padding:4px; border-radius:12px; background:#f7edf3; }
.aizw-vip-seg button { flex:1; padding:8px 0; border:0; border-radius:9px; background:transparent; color:#8a6b7d; font-size:13px; cursor:pointer; transition:all .18s; }
.aizw-vip-seg button.on { background:#fff; color:var(--brand); font-weight:700; box-shadow:0 2px 8px rgba(180,60,110,.14); }
.aizw-vip-formbox { margin-top:12px; }
.aizw-vip-cta { display:block; width:100%; padding:13px 0; border:0; border-radius:14px; background:linear-gradient(135deg,var(--brand),var(--brand-d)); color:#fff; font-size:15px; font-weight:800; letter-spacing:1px; cursor:pointer; box-shadow:0 8px 20px rgba(232,93,138,.35); transition:all .18s; }
.aizw-vip-cta:hover { transform:translateY(-1px); box-shadow:0 10px 24px rgba(232,93,138,.45); }
.aizw-vip-cta:disabled { opacity:.5; cursor:not-allowed; transform:none; box-shadow:none; }
.aizw-vip-note { margin-top:8px; font-size:11px; color:#b08a9c; text-align:center; line-height:1.7; }
.aizw-vip-input { display:block; width:100%; padding:11px 14px; border:2px solid var(--brand-l2); border-radius:12px; font-size:14px; outline:none; box-sizing:border-box; transition:border-color .18s; }
.aizw-vip-input:focus { border-color:var(--brand); }
.aizw-vip-payseg { display:flex; gap:8px; margin-bottom:10px; }
.aizw-vip-payseg label { flex:1; display:flex; align-items:center; justify-content:center; gap:6px; padding:9px 0; border:2px solid var(--brand-l2); border-radius:12px; font-size:13px; color:#6b5560; cursor:pointer; transition:all .18s; }
.aizw-vip-payseg label.on { border-color:var(--brand); background:var(--brand-s); color:var(--brand); font-weight:600; }
.aizw-vip-msg { margin:10px 0 0; min-height:18px; font-size:13px; color:#d84b5f; text-align:center; }
.aizw-vip-qr { margin-top:12px; text-align:center; }
.aizw-vip-qr img { width:160px; height:160px; object-fit:contain; border:1px solid var(--brand-l2); border-radius:12px; background:#fff; padding:6px; }
.aizw-vip-empty { font-size:13px; color:#b08a9c; text-align:center; padding:16px 0; }
html.dark .aizw-vip-overlay { background:rgba(0,0,0,.62); }
html.dark .aizw-vip-modal { background:#2a2130; box-shadow:0 24px 64px rgba(0,0,0,.55); }
html.dark .aizw-vip-plan { border-color:#453c4e; background:#332a3d; }
html.dark .aizw-vip-plan:hover { border-color:#6d5a70; }
html.dark .aizw-vip-plan.on { border-color:var(--brand); background:linear-gradient(160deg,#3a2b3c,#46304a); box-shadow:0 6px 18px rgba(0,0,0,.4); }
html.dark .aizw-vip-plan-name { color:#f0e3ef; }
html.dark .aizw-vip-plan-pts { color:#b9a3bb; }
html.dark .aizw-vip-plan-perks { border-color:#4a3f55; color:#b9a3bb; }
html.dark .aizw-vip-seg { background:#332a3d; }
html.dark .aizw-vip-seg button { color:#b9a3bb; }
html.dark .aizw-vip-seg button.on { background:#453c4e; color:var(--brand-l); box-shadow:0 2px 8px rgba(0,0,0,.3); }
html.dark .aizw-vip-note { color:#b9a3bb; }
html.dark .aizw-vip-input { border-color:#453c4e; background:#221c2e; color:#f0e3ef; }
html.dark .aizw-vip-payseg label { border-color:#453c4e; color:#cbb7c9; }
html.dark .aizw-vip-payseg label.on { border-color:var(--brand); background:#3a2b3c; color:var(--brand-l); }
html.dark .aizw-vip-msg { color:var(--brand-l); }
html.dark .aizw-vip-empty { color:#b9a3bb; }
html.dark .aizw-vip-qr img { border-color:#453c4e; }

/* ===== v2.9 自定义模块：链接列表（此前无样式，渲染成浏览器默认圆点列表） ===== */
.aizw-mod-link-list { list-style:none; margin:0; padding:0; }
.aizw-mod-link-list li { margin:0; padding:0; }
.aizw-mod-link-list li + li { border-top:1px solid #f4e9f0; }
.aizw-mod-link-list a { display:flex; align-items:center; gap:8px; padding:9px 2px; font-size:13px; color:#5f4f5c; text-decoration:none; transition:all .18s; }
.aizw-mod-link-list a::before { content:"\203A"; color:var(--brand); font-size:16px; line-height:1; }
.aizw-mod-link-list a:hover { color:var(--brand); padding-left:6px; }
html.dark .aizw-mod-link-list li + li { border-color:#453c4e; }
html.dark .aizw-mod-link-list a { color:#cbb7c9; }
html.dark .aizw-mod-link-list a:hover { color:var(--brand-l); }

/* 底部导航 emoji 图标与预置 SVG 尺寸对齐 */
.aizw-bn-emoji { display:inline-flex; align-items:center; justify-content:center; font-size:19px; line-height:1; }

/* ===== 列表页模板：服务网格 / 单图瀑布流 / 相册网格 / 下载行 / 瞬间时间轴 ===== */
.aizw-waterfall .aizw-card { margin-bottom:14px; }
.aizw-timeline { position:relative; padding-left:24px; }
.aizw-timeline::before { content:""; position:absolute; left:8px; top:4px; bottom:4px; width:2px; border-radius:2px; background:linear-gradient(180deg, var(--brand), var(--brand-l2)); }
.aizw-timeline .aizw-card { position:relative; margin-bottom:16px; }
.aizw-timeline .aizw-card::before { content:""; position:absolute; left:-21px; top:18px; width:12px; height:12px; border-radius:50%; background:var(--brand); box-shadow:0 0 0 4px var(--brand-s2); }
html.dark .aizw-timeline .aizw-card::before { box-shadow:0 0 0 4px #3a3348; }
html.dark .aizw-timeline::before { background:linear-gradient(180deg, var(--brand), #453c4e); }

/* ===== 单图内页：居中大图 ===== */
.aizw-single-imgbox { display:flex; justify-content:center; background:#faf5f7; border-radius:14px; padding:14px; }
.aizw-single-img { max-width:100%; max-height:640px; object-fit:contain; border-radius:10px; box-shadow:0 6px 20px rgba(0,0,0,.08); }
html.dark .aizw-single-imgbox { background:#23232b; }

/* ===== 多图内页：灯箱 ===== */
.aizw-gallery-content img { border-radius:12px; margin:10px 0; box-shadow:0 4px 14px rgba(0,0,0,.10); }
.aizw-lightbox { position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center; background:rgba(12,10,20,.82); backdrop-filter:blur(6px); }
.aizw-lightbox.hidden { display:none !important; }
.aizw-lightbox img { max-width:92vw; max-height:88vh; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.aizw-lightbox-close { position:absolute; top:16px; right:16px; width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.14); color:#fff; cursor:pointer; transition:background .2s; }
.aizw-lightbox-close:hover { background:rgba(255,255,255,.3); }

/* ===== 瞬间内页：时间轴 ===== */
.aizw-moment-single { position:relative; padding-left:26px; }
.aizw-moment-single::before { content:""; position:absolute; left:7px; top:6px; bottom:6px; width:2px; border-radius:2px; background:linear-gradient(180deg, var(--brand), var(--brand-l2)); }
.aizw-moment-head { display:flex; align-items:center; gap:10px; padding-bottom:10px; }
.aizw-moment-dot { width:16px; height:16px; border-radius:50%; background:var(--brand); box-shadow:0 0 0 4px var(--brand-s2); position:absolute; left:0; top:2px; }
.aizw-moment-time { font-size:12px; font-weight:700; color:var(--brand); letter-spacing:.5px; }
html.dark .aizw-moment-dot { box-shadow:0 0 0 4px #3a3348; }

/* T4 弹窗防抖：海报/打赏弹窗或分享菜单打开时禁用文章卡片 hover 上浮，
   避免 position:fixed 弹窗被祖先 .aizw-card 的 transform 影响而变宽/位移 */
body.aizw-modal-open .aizw-card:hover,
body.aizw-modal-open.aizw-fx-cardhover .aizw-card:hover { transform: none !important; box-shadow: none !important; }

/* =============================================================
 * v2.11 页脚模板系统（T14）
 * ============================================================= */
/* v2.25 页脚通栏：.aizw-footer 占满屏幕宽，.aizw-ft-inner 负责 1152 限宽居中 */
.aizw-footer { width: 100%; padding: 34px 0 26px; overflow-x: hidden; }
.aizw-ft-inner { max-width: 1152px; margin: 0 auto; padding: 0 16px; }
.aizw-ft-logo { font-weight: 800; font-size: 18px; color: var(--brand); }
.aizw-ft-logo-big { font-size: 30px; letter-spacing: .5px; }
.aizw-ft-about { margin-top: 6px; font-size: 13px; color: #9a93a0; line-height: 1.8; max-width: 460px; }
.aizw-ft-slogan { font-size: 13px; color: #9a93a0; }
.aizw-ft-legal-line { font-size: 12px; color: #b3acb8; margin-top: 4px; }
.aizw-ft-legal-line a { color: inherit; text-decoration: none; }
.aizw-ft-stats { display: flex; flex-wrap: wrap; gap: 8px 26px; margin: 18px 0; font-size: 13px; color: #9a93a0; }
.aizw-ft-stats b { color: var(--brand); font-weight: 700; }
.aizw-ft-bottomline { font-size: 14px; font-weight: 700; color: var(--brand); margin-bottom: 10px; }
/* 多栏 */
.aizw-ft-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 22px; }
/* v2.26 后台指定列数：3 / 4 / 5 列固定等分（移动端逐级降列） */
.aizw-ft-cols[data-cols="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.aizw-ft-cols[data-cols="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.aizw-ft-cols[data-cols="5"] { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 900px) {
  .aizw-ft-cols[data-cols="4"], .aizw-ft-cols[data-cols="5"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .aizw-ft-cols[data-cols="3"], .aizw-ft-cols[data-cols="4"], .aizw-ft-cols[data-cols="5"] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}
/* v2.26 页脚与浏览器底部不留空白：桌面 0，移动端给底部导航留安全距离 */
.aizw-footer-zone { padding-bottom: 0; }
@media (max-width: 860px) {
  .aizw-footer-zone { padding-bottom: calc(74px + env(safe-area-inset-bottom)); }
}
.aizw-ft-col h4 { font-size: 14px; font-weight: 700; color: #3d2c33; margin: 0 0 10px; }
.aizw-ft-col ul { list-style: none; margin: 0; padding: 0; }
.aizw-ft-col li a { display: inline-block; padding: 3px 0; font-size: 13px; color: #9a93a0; text-decoration: none; transition: color .15s; }
.aizw-ft-col li a:hover { color: var(--brand); }
.aizw-ft-col-qr img { width: 96px; height: 96px; border-radius: 12px; border: 1px solid var(--brand-l2); background: #fff; object-fit: cover; }
.aizw-ft-top { display: flex; flex-wrap: wrap; gap: 30px; justify-content: space-between; margin-bottom: 22px; }
.aizw-ft-social { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0; }
.aizw-ft-social a { font-size: 12px; padding: 5px 14px; border-radius: 999px; border: 1px solid var(--brand-l2); color: var(--brand-d); text-decoration: none; transition: all .15s; }
.aizw-ft-social a:hover { background: var(--brand); border-color: var(--brand); color: #fff; }
/* classic（经典居中） */
.aizw-footer-classic { text-align: center; }
.aizw-footer-classic .aizw-ft-stats { justify-content: center; }
/* columns（多栏杂志） */
.aizw-footer-columns .aizw-ft-top .aizw-ft-brand { flex: 0 1 300px; }
.aizw-footer-columns .aizw-ft-cols { flex: 1 1 520px; }
.aizw-footer-columns .aizw-ft-top { display: flex; }
/* magazine（品牌大刊） */
.aizw-footer-magazine .aizw-ft-hero { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 22px; margin-bottom: 26px; }
.aizw-footer-magazine .aizw-ft-hero .aizw-ft-about { margin-top: 0; flex: 1 1 300px; }
.aizw-footer-magazine .aizw-ft-cols { border-top: 1px solid var(--brand-l2); padding-top: 22px; }
.aizw-footer-magazine .aizw-ft-legal-line { margin-top: 10px; }
/* minimal（极简） */
.aizw-footer-minimal { text-align: center; padding: 22px 0; }
.aizw-footer-minimal .aizw-ft-inner { padding: 0 16px; }
/* dark（暗色多栏） */
.aizw-footer-dark { background: #241f2b; margin-top: 26px; padding: 38px 0 24px; }
.aizw-footer-dark .aizw-ft-col h4 { color: var(--brand-l2); }
.aizw-footer-dark .aizw-ft-col li a { color: #a99fb2; }
.aizw-footer-dark .aizw-ft-col li a:hover { color: var(--brand-l); }
.aizw-footer-dark .aizw-ft-about { color: #a99fb2; }
.aizw-footer-dark .aizw-ft-slogan { color: #a99fb2; }
.aizw-footer-dark .aizw-ft-legal-line { color: #7c7386; }
.aizw-footer-dark .aizw-ft-social a { border-color: #453e52; color: var(--brand-l); }
.aizw-footer-dark .aizw-ft-col-qr img { border-color: #453e52; }
.aizw-footer-dark .aizw-ft-stats { color: #a99fb2; }
/* gradient（渐变行动卡） */
.aizw-footer-gradient .aizw-footer-card { max-width: 1152px; margin: 0 auto 26px; }
.aizw-footer-gradient .aizw-ft-bar { border-top: 1px solid var(--brand-l2); margin-top: 22px; padding-top: 14px; text-align: center; }
.aizw-footer-gradient .aizw-ft-inner { text-align: center; }
.aizw-footer-gradient .aizw-ft-about { margin-left: auto; margin-right: auto; }
.aizw-footer-gradient .aizw-ft-social { justify-content: center; }
.aizw-footer-gradient .aizw-ft-stats { justify-content: center; }

/* =============================================================
 * v2.11 首页底部 AD 广告位（T2）与 CMS 分类区（T3）
 * ============================================================= */
/* AD 广告位：flex 等分，无论几张始终同一行（1 张满宽 / 2 张对半 / 3 张三等分） */
/* v2.20 首页图片广告位：独立通栏，与主内容同宽，不再被左右侧栏挤压 */
.aizw-home-ad { margin: 22px auto 0; }
.aizw-home-ad-inner { max-width: 1152px; margin: 0 auto; padding: 0 16px; }
.aizw-home-ad-grid { display: flex; gap: 12px; align-items: stretch; }
.aizw-home-ad-item { display: block; flex: 1 1 0; min-width: 0; border-radius: 16px; overflow: hidden; border: 1px solid var(--brand-l2); background: #fff; }
.aizw-home-ad-item img { width: 100%; object-fit: cover; display: block; transition: transform .25s; }
.aizw-home-ad-item:hover img { transform: scale(1.03); }
@media (max-width: 640px) {
  .aizw-home-ad-grid { flex-wrap: wrap; }
  .aizw-home-ad .aizw-home-ad-item { flex: 1 1 100%; }
}
.aizw-cms-zone { display: grid; gap: 16px; }
.aizw-cms-zone[data-cols="1"] { grid-template-columns: 1fr; }
.aizw-cms-zone[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
.aizw-cms-zone[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
.aizw-cms-col { background: #fff; border: 1px solid var(--brand-l2); border-radius: 16px; padding: 16px 18px; }
.aizw-cms-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; }
.aizw-cms-head h3 { margin: 0; font-size: 16px; font-weight: 700; color: var(--brand); }
.aizw-cms-more { font-size: 12px; color: #b08ba0; text-decoration: none; }
.aizw-cms-more:hover { color: var(--brand); }
.aizw-cms-list { list-style: none; margin: 0; padding: 0; }
.aizw-cms-list li { display: flex; align-items: baseline; gap: 10px; padding: 7px 0; border-bottom: 1px dashed #f7ecf2; }
.aizw-cms-list li:last-child { border-bottom: none; }
.aizw-cms-list li a { flex: 1; min-width: 0; font-size: 14px; color: #55444d; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aizw-cms-list li a:hover { color: var(--brand); }
.aizw-cms-list li time { flex-shrink: 0; font-size: 12px; color: #b3acb8; }

/* =============================================================
 * v2.11 用户卡片重排（T6）/ v3 排版修复：徽章禁换行防竖排挤压
 * ============================================================= */
.aizw-uc-badge { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; padding: 2px 8px; border-radius: 999px; background: var(--brand-s); color: #b08ba0; font-weight: 600; white-space: nowrap; flex-shrink: 0; min-width: 0; }
.aizw-uc-badge-vip { background: linear-gradient(135deg, var(--brand), var(--brand-l)); color: #fff; text-decoration: none; margin-left: 5px; overflow: hidden; }
.aizw-uc-badge-vip:hover { filter: brightness(1.05); }
.aizw-uc-stat { display: flex; align-items: center; gap: 8px; background: var(--brand-s); border: 1px solid var(--brand-l2); border-radius: 12px; padding: 10px 12px; min-width: 0; }
.aizw-uc-stat-v { margin: 0; font-size: 16px; font-weight: 800; line-height: 1.1; color: var(--brand-d); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aizw-uc-stat-v.aizw-uc-member { color: #b3acb8; }
.aizw-uc-stat-k { margin: 0; font-size: 11px; color: #b08ba0; }
.aizw-uc-btn { display: flex; align-items: center; gap: 8px; border-radius: 12px; padding: 10px 12px; font-size: 13px; text-decoration: none; transition: transform .15s, box-shadow .15s; }
.aizw-uc-btn:hover { transform: translateY(-1px); }
.aizw-uc-btn b { font-size: 13px; }
.aizw-uc-btn i { font-size: 11px; font-style: normal; }
.aizw-uc-btn-shop { background: linear-gradient(135deg, var(--brand), var(--brand-d)); color: #fff; }
.aizw-uc-btn-uc { background: linear-gradient(135deg, #6f9df8, #4f74e3); color: #fff; }
html.dark .aizw-uc-stat { background: #2f2b3a; border-color: #3a3644; }
html.dark .aizw-uc-badge { background: #2f2b3a; color: #c9b8c4; }
html.dark .aizw-cms-col { background: #262330; border-color: #3a3644; }
html.dark .aizw-cms-list li { border-color: #3a3644; }
html.dark .aizw-cms-list li a { color: #cfc6d6; }
html.dark .aizw-home-ad-item { background: #262330; border-color: #3a3644; }
html.dark .aizw-ft-col h4 { color: #e8dfe6; }
html.dark .aizw-footer-gradient .aizw-ft-bar { border-color: #3a3644; }
html.dark .aizw-footer-magazine .aizw-ft-cols { border-color: #3a3644; }
html.dark .aizw-ft-social a { border-color: #3a3644; }

/* =============================================================
 * v3.1 用户卡 Tailwind 兼容补丁
 * 静态 tailwind.css（2.9 编译产物）缺少以下工具类，缺失会导致
 * 用户卡 w-80 失效→宽度塌缩→内部文字全部竖排。此处手工补齐，
 * 发布主题时随 style.css 一并带走，不依赖宿主站点构建链。
 * ============================================================= */
.w-80 { width: 20rem; }
.w-14 { width: 3.5rem; }
.h-14 { height: 3.5rem; }
.w-3 { width: 0.75rem; }
.h-3 { height: 0.75rem; }
.pr-6 { padding-right: 1.5rem; }
.pt-4 { padding-top: 1rem; }
.pb-4 { padding-bottom: 1rem; }
.mt-1\.5 { margin-top: 0.375rem; }
.flex-nowrap { flex-wrap: nowrap; }
.right-2\.5 { right: 0.625rem; }
.top-2\.5 { top: 0.625rem; }
.col-span-2 { grid-column: span 2 / span 2; }
.ring-2 { --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentColor); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-duration: 150ms; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
.not-italic { font-style: normal; }
.hover\:text-red-500:hover { color: #ef4444; }
.hover\:bg-red-50:hover { background-color: #fef2f2; }
.max-w-\[calc\(100vw-2rem\)\] { max-width: calc(100vw - 2rem); }

/* =============================================================
 * v3.3 页脚模板扩展（六款参考设计：biz/wave/cta/cute/product/resource）
 * ============================================================= */
/* biz（企业官网）：链接栏 + 右侧联系卡 */
.aizw-footer-biz .aizw-ft-top { align-items: flex-start; }
.aizw-footer-biz .aizw-ft-biz-cols { flex: 1 1 560px; }
.aizw-ft-biz-contact { flex: 0 1 230px; background: #fff; border: 1px solid var(--brand-l2); border-radius: 14px; padding: 14px 16px; }
.aizw-ft-biz-contact h4 { font-size: 14px; font-weight: 700; color: #3d2c33; margin: 0 0 8px; }
.aizw-ft-contact-list { list-style: none; margin: 0; padding: 0; }
.aizw-ft-contact-list li a { display: inline-block; padding: 3px 0; font-size: 13px; color: #9a93a0; text-decoration: none; transition: color .15s; }
.aizw-ft-contact-list li a:hover { color: var(--brand); }
.aizw-ft-contact-qr { margin-top: 10px; width: 96px; height: 96px; border-radius: 10px; border: 1px solid var(--brand-l2); background: #fff; object-fit: cover; }
.aizw-footer-biz .aizw-ft-biz-legal { text-align: center; border-top: 1px solid var(--brand-l2); margin-top: 20px; padding-top: 14px; }

/* wave（博客波纹）：品牌栏 + 搜索框 + 彩色波浪 */
.aizw-footer-wave { padding-bottom: 0; overflow: hidden; }
.aizw-footer-wave .aizw-ft-wave-main { flex: 1 1 520px; }
.aizw-ft-search { display: flex; align-items: stretch; margin-top: 14px; max-width: 320px; border: 1px solid var(--brand-l2); border-radius: 999px; overflow: hidden; background: #fff; }
.aizw-ft-search input { flex: 1; min-width: 0; border: none; outline: none; padding: 8px 16px; font-size: 13px; background: transparent; color: #55444d; }
.aizw-ft-search button { border: none; background: var(--brand); color: #fff; width: 42px; cursor: pointer; font-size: 15px; transition: opacity .15s; }
.aizw-ft-search button:hover { opacity: .85; }
.aizw-ft-wave-mid { text-align: center; margin-top: 4px; }
.aizw-ft-wave-mid .aizw-ft-social { justify-content: center; }
.aizw-ft-wave { margin: 16px 0 0; line-height: 0; overflow: hidden; }
.aizw-ft-wave svg { width: 100%; height: 62px; display: block; overflow: hidden; }
/* 三层彩色波浪：SMIL translate 横向流动，速度 7s/11s/16s 形成视差；路径宽 2880（两个周期），平移 1440 实现无缝循环 */

/* cta（行动横幅）：品牌渐变 CTA 带 + 深色底条 */
.aizw-ft-cta-band { text-align: center; background: linear-gradient(135deg, var(--brand), #7b5be0); padding: 40px 20px 34px; margin-bottom: 26px; box-shadow: 0 10px 30px rgba(0,0,0,.08); }
.aizw-ft-cta-band h2 { color: #fff; font-size: 24px; font-weight: 800; margin: 0 0 8px; }
.aizw-ft-cta-band p { color: rgba(255,255,255,.85); font-size: 14px; margin: 0 0 18px; }
.aizw-ft-cta-btns { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }
.aizw-ft-cta-btn { display: inline-block; padding: 10px 30px; border-radius: 10px; background: #fff; color: var(--brand); font-weight: 700; font-size: 14px; text-decoration: none; transition: transform .15s, box-shadow .15s; }
.aizw-ft-cta-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0,0,0,.15); }
.aizw-ft-cta-ghost { background: transparent; border: 1px solid rgba(255,255,255,.75); color: #fff; }
.aizw-ft-cta-bar { background: #241f2b; padding: 14px 0; margin-top: 6px; }
.aizw-ft-cta-bar-in { display: flex; flex-wrap: wrap; gap: 10px 24px; align-items: center; justify-content: space-between; }
.aizw-ft-cta-bar .aizw-ft-legal-line { margin: 2px 0; }
.aizw-ft-cta-bar .aizw-ft-legal-line, .aizw-ft-cta-bar .aizw-ft-bottomline { color: #7c7386; }
.aizw-ft-cta-bar .aizw-ft-legal-line a { color: #a99fb2; }
.aizw-ft-cta-bar .aizw-ft-social { margin: 0; }
.aizw-ft-cta-bar .aizw-ft-social a { border-color: #453e52; color: var(--brand-l); }

/* cute（粉色萌系）：粉底 + 彩色社交胶囊 */
.aizw-footer-cute { background: linear-gradient(180deg, var(--brand-s), var(--brand-l2)); padding: 34px 0 24px; }
.aizw-footer-cute .aizw-ft-cute-mid { flex: 1 1 320px; text-align: center; }
.aizw-footer-cute .aizw-ft-social { justify-content: center; gap: 8px; }
.aizw-footer-cute .aizw-ft-social a { border: none; color: #fff; font-weight: 600; }
.aizw-footer-cute .aizw-ft-social a:nth-child(5n+1) { background: var(--brand-l); }
.aizw-footer-cute .aizw-ft-social a:nth-child(5n+2) { background: #7fc8f8; }
.aizw-footer-cute .aizw-ft-social a:nth-child(5n+3) { background: #ffd166; }
.aizw-footer-cute .aizw-ft-social a:nth-child(5n+4) { background: #95d6a4; }
.aizw-footer-cute .aizw-ft-social a:nth-child(5n) { background: #c9a7f5; }
.aizw-footer-cute .aizw-ft-social a:hover { opacity: .82; }
.aizw-footer-cute .aizw-ft-legal-line, .aizw-footer-cute .aizw-ft-bottomline { color: var(--brand-l2); }
.aizw-footer-cute .aizw-ft-legal-line a { color: var(--brand-l2); }
.aizw-footer-cute .aizw-ft-slogan { text-align: center; margin-top: 10px; color: var(--brand-l2); }
.aizw-footer-cute .aizw-ft-stats { justify-content: center; }
.aizw-footer-cute .aizw-ft-stats b { color: var(--brand-d); }
.aizw-footer-cute .aizw-ft-col-qr img { background: #fff; }

/* product（极简产品）：品牌 + 两列 + 联系 + 独立底条 */
.aizw-footer-product .aizw-ft-top { align-items: flex-start; }
.aizw-footer-product .aizw-ft-brand { flex: 0 1 300px; }
.aizw-ft-prod-cols { flex: 1 1 320px; max-width: 420px; }
.aizw-ft-prod-bar { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; border-top: 1px solid var(--brand-l2); margin-top: 22px; padding-top: 14px; font-size: 12px; color: #b3acb8; }

/* resource（深色资源站）：图标标题多栏 + 独立版权条 */
.aizw-footer-resource { background: #241f2b; padding: 38px 0 0; margin-top: 26px; overflow: hidden; }
.aizw-footer-resource .aizw-ft-brand { flex: 0 1 320px; }
.aizw-footer-resource .aizw-ft-cols { flex: 1 1 560px; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }
.aizw-footer-resource .aizw-ft-col h4 { color: var(--brand-l2); display: flex; align-items: center; gap: 6px; }
.aizw-footer-resource .aizw-ft-cols > .aizw-ft-col:nth-child(1) h4::before { content: "\1F9ED"; font-size: 13px; }
.aizw-footer-resource .aizw-ft-cols > .aizw-ft-col:nth-child(2) h4::before { content: "\1F4A1"; font-size: 13px; }
.aizw-footer-resource .aizw-ft-cols > .aizw-ft-col:nth-child(3) h4::before { content: "\1F91D"; font-size: 13px; }
.aizw-footer-resource .aizw-ft-cols > .aizw-ft-col:nth-child(4) h4::before { content: "\1F4E6"; font-size: 13px; }
.aizw-footer-resource .aizw-ft-cols > .aizw-ft-col:nth-child(5) h4::before { content: "\1F4DE"; font-size: 13px; }
.aizw-footer-resource .aizw-ft-col li a { color: #a99fb2; }
.aizw-footer-resource .aizw-ft-col li a:hover { color: var(--brand-l); }
.aizw-footer-resource .aizw-ft-about { color: #a99fb2; }
.aizw-footer-resource .aizw-ft-col-qr img { border-color: #453e52; }
.aizw-ft-res-bar { background: #1c1823; margin: 24px calc(50% - 50vw) 0; padding: 12px 16px; text-align: center; }
.aizw-ft-res-bar .aizw-ft-legal-line { margin: 2px 0; color: #7c7386; }

/* 深色模式适配（新六款） */
html.dark .aizw-ft-biz-contact { background: #2c2635; border-color: #453e52; }
html.dark .aizw-ft-biz-contact h4 { color: var(--brand-l2); }
html.dark .aizw-footer-biz .aizw-ft-biz-legal { border-top-color: #453e52; }
html.dark .aizw-ft-search { background: #2c2635; border-color: #453e52; }
html.dark .aizw-ft-search input { color: var(--brand-l2); }
html.dark .aizw-ft-prod-bar { border-top-color: #453e52; }
html.dark .aizw-footer-cute { background: linear-gradient(180deg, #332a3d, #3d2c40); }
html.dark .aizw-footer-cute .aizw-ft-legal-line, html.dark .aizw-footer-cute .aizw-ft-bottomline,
html.dark .aizw-footer-cute .aizw-ft-slogan { color: #a99fb2; }
html.dark .aizw-footer-cute .aizw-ft-stats { color: #a99fb2; }
html.dark .aizw-footer-cute .aizw-ft-stats b { color: var(--brand-l); }

/* ===== 语言切换（v2.17）：顶部导航接管，Jz52_translate 提供语言与国旗 ===== */
.aizw-lang-btn { border: 1px solid transparent; }
.aizw-lang-btn:hover { border-color: var(--brand-l2); }
.aizw-lang-flag { width: 18px; height: 18px; border-radius: 50%; object-fit: cover; display: inline-block; flex: 0 0 auto; }
.aizw-lang-txt { font-size: 12px; line-height: 1; color: #6b7280; }
.aizw-lang-menu { padding: 4px; max-height: 60vh; overflow-y: auto; }
.aizw-lang-item { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 9px; font-size: 13px; color: #4b5563; text-decoration: none; white-space: nowrap; transition: background-color .15s, color .15s; }
.aizw-lang-item:hover { background: var(--brand-s); color: var(--brand-d); }
.aizw-lang-item.is-active { background: var(--brand-s2); color: var(--brand-d2); font-weight: 700; }
.aizw-lang-item .aizw-lang-name { overflow: hidden; text-overflow: ellipsis; }
html.dark .aizw-lang-btn:hover { border-color: #453e52; }
html.dark .aizw-lang-txt { color: #b9b9c2; }
html.dark .aizw-lang-menu { background: #212127 !important; border-color: #453e52 !important; }
html.dark .aizw-lang-item { color: #d6d6dd; }
html.dark .aizw-lang-item:hover { background: #2c2635; color: var(--brand-l); }
html.dark .aizw-lang-item.is-active { background: #33242f; color: var(--brand-l); }

/* v2.48 语言切换改为「按需安装、默认关闭」：
   插件自带悬浮按钮 / 内置语言下拉不再无条件隐藏。只有管理员在后台开启主题语言菜单时，
   才由 header.php 条件输出隐藏规则，避免两套语言控件并存；
   未开启时用户自行安装的第三方翻译插件保持原生可用。 */

/* =============================================================
 * v2.21 首页 CMS 模块区（文章列表 / 图文 / 下载 / 大图卡片）
 * 12 栅格：list 按列数并排，其余整行；通栏，不受侧栏影响
 * ============================================================= */
.aizw-cms-mods { max-width: 1152px; margin: 26px auto 0; padding: 0 16px; display: grid; grid-template-columns: repeat(12, 1fr); gap: 16px; }
.aizw-cms-mod { min-width: 0; }

/* ---- 编号文章列表 ---- */
.aizw-cmsmod-list { background: #fff; border: 1px solid var(--brand-l2); border-radius: 14px; overflow: hidden; }
.aizw-cms-hd { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 15px; color: #fff; overflow: hidden; background: linear-gradient(135deg, var(--brand), var(--brand-l)); }
.aizw-cms-hd::before, .aizw-cms-hd::after { content: ""; position: absolute; border-radius: 50%; background: rgba(255, 255, 255, .13); }
.aizw-cms-hd::before { width: 92px; height: 92px; right: -26px; top: -38px; }
.aizw-cms-hd::after { width: 62px; height: 62px; right: 44px; bottom: -34px; background: rgba(255, 255, 255, .1); }
.aizw-cms-hd h3 { position: relative; margin: 0; font-size: 15px; font-weight: 700; color: #fff; letter-spacing: .5px; }
.aizw-cms-hd-more { position: relative; color: #fff; opacity: .9; text-decoration: none; font-size: 16px; line-height: 1; }
.aizw-cms-c1 { background: linear-gradient(135deg, #3b82f6, #5cc8f2); }
.aizw-cms-c2 { background: linear-gradient(135deg, #6366f1, #8b8ff5); }
.aizw-cms-c3 { background: linear-gradient(135deg, #10b981, #5ed6a8); }
.aizw-cms-c4 { background: linear-gradient(135deg, #f97316, #fbbf5c); }
.aizw-cms-c5 { background: linear-gradient(135deg, var(--brand), var(--brand-l)); }
.aizw-cms-c6 { background: linear-gradient(135deg, #64748b, #94a3b8); }
.aizw-cms-no { list-style: none; margin: 0; padding: 8px 12px 12px; }
.aizw-cms-no li { display: flex; align-items: center; gap: 9px; padding: 7px 2px; border-bottom: 1px dashed #f2eef1; }
.aizw-cms-no li:last-child { border-bottom: 0; }
.aizw-cms-no-i { flex: 0 0 auto; width: 18px; height: 18px; border-radius: 50%; background: var(--brand-s2); color: var(--brand-d); font-size: 11px; font-style: normal; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.aizw-cms-no li:nth-child(-n+3) .aizw-cms-no-i { background: var(--brand); color: #fff; }
.aizw-cms-no a { flex: 1; min-width: 0; font-size: 13px; color: #4c4550; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aizw-cms-no a:hover { color: var(--brand); }

/* ---- 区块通用标题（图文/下载/大图） ---- */
.aizw-cms-sec-hd { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 12px; }
.aizw-cms-sec-hd h2 { margin: 0; font-size: 19px; font-weight: 800; color: #2f2a33; display: flex; align-items: center; gap: 8px; }
.aizw-cms-sec-ico { width: 22px; height: 22px; color: var(--brand); flex: 0 0 auto; }
.aizw-cms-more { flex: 0 0 auto; font-size: 12.5px; color: #8b8590; text-decoration: none; border: 1px solid var(--brand-l2); background: #fff; padding: 5px 12px; border-radius: 999px; transition: all .15s; }
.aizw-cms-more:hover { color: var(--brand); border-color: var(--brand-l); }

/* ---- 图文模块 ---- */
.aizw-cms-cards { display: grid; gap: 16px; grid-template-columns: repeat(2, 1fr); }
.aizw-cms-cards[data-cols="1"] { grid-template-columns: 1fr; }
.aizw-cms-cards[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
.aizw-cms-cards[data-cols="4"] { grid-template-columns: repeat(4, 1fr); }
.aizw-cms-card { display: flex; gap: 14px; background: #fff; border: 1px solid var(--brand-l2); border-radius: 14px; padding: 12px; text-decoration: none; transition: box-shadow .2s, transform .2s; }
.aizw-cms-card:hover { box-shadow: 0 10px 24px rgba(var(--brand-rgb), .1); transform: translateY(-2px); }
.aizw-cms-card-thumbs { flex: 0 0 128px; display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.aizw-cms-card-thumbs img { width: 100%; height: 100px; object-fit: cover; border-radius: 8px; background: #f4f1f5; }
.aizw-cms-card-body { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.aizw-cms-card-body h4 { margin: 2px 0 6px; font-size: 14px; font-weight: 700; color: #3a343d; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.aizw-cms-card-body p { margin: 0 0 8px; font-size: 12px; color: #9a949e; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.aizw-cms-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.aizw-cms-tag { font-size: 11px; color: var(--brand-d); background: var(--brand-s); border-radius: 4px; padding: 2px 6px; }
.aizw-cms-tag.is-cat { color: #2f6fd0; background: #eef4ff; }
.aizw-cms-meta { margin-top: auto; display: flex; align-items: center; justify-content: space-between; font-size: 11.5px; color: #b3acb8; }

/* ---- 下载模块 ---- */
.aizw-dl-grid { display: grid; gap: 12px; grid-template-columns: repeat(4, 1fr); }
.aizw-dl-grid[data-cols="1"] { grid-template-columns: 1fr; }
.aizw-dl-grid[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
.aizw-dl-grid[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
.aizw-dl-card { display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--brand-l2); border-radius: 12px; padding: 10px; text-decoration: none; transition: box-shadow .2s; }
.aizw-dl-card:hover { box-shadow: 0 8px 20px rgba(var(--brand-rgb), .1); }
.aizw-dl-cover { flex: 0 0 auto; width: 64px; height: 64px; border-radius: 8px; object-fit: cover; background: #f4f1f5; }
.aizw-dl-main { min-width: 0; flex: 1; }
.aizw-dl-main h4 { margin: 0 0 4px; font-size: 13px; font-weight: 700; color: #3a343d; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.aizw-dl-stars { color: #f5b400; font-size: 11px; letter-spacing: 1.5px; line-height: 1; }
.aizw-dl-meta { margin-top: 5px; display: flex; align-items: center; gap: 6px; font-size: 11px; color: #a49da8; }
.aizw-dl-meta i { width: 1px; height: 10px; background: #e6e2e8; display: inline-block; }
.aizw-dl-btn { flex: 0 0 auto; font-size: 12px; color: var(--brand-d); border: 1px solid var(--brand-l); border-radius: 6px; padding: 4px 10px; transition: all .15s; }
.aizw-dl-card:hover .aizw-dl-btn { background: var(--brand); border-color: var(--brand); color: #fff; }

/* ---- 大图卡片（视频/教程） ---- */
.aizw-grid-cards { display: grid; gap: 16px; grid-template-columns: repeat(4, 1fr); }
.aizw-grid-cards[data-cols="1"] { grid-template-columns: 1fr; }
.aizw-grid-cards[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
.aizw-grid-cards[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
.aizw-grid-card { display: block; text-decoration: none; min-width: 0; }
.aizw-grid-cover { position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: #f4f1f5; }
.aizw-grid-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.aizw-grid-card:hover .aizw-grid-cover img { transform: scale(1.04); }
.aizw-grid-dur { position: absolute; right: 8px; bottom: 8px; padding: 1px 6px; border-radius: 4px; background: rgba(0, 0, 0, .66); color: #fff; font-size: 11px; }
.aizw-grid-card h4 { margin: 9px 0 7px; font-size: 13.5px; font-weight: 600; color: #3a343d; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.aizw-grid-meta { display: flex; align-items: center; justify-content: space-between; font-size: 11.5px; color: #b3acb8; }

/* ---- 响应式 ---- */
@media (max-width: 1024px) {
  .aizw-cms-cards { grid-template-columns: repeat(2, 1fr); }
  .aizw-dl-grid, .aizw-grid-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
  .aizw-cms-mod { grid-column: span 12 !important; }
  .aizw-cms-cards, .aizw-grid-cards { grid-template-columns: 1fr; }
  .aizw-dl-grid { grid-template-columns: 1fr; }
  .aizw-cms-card-thumbs { flex-basis: 104px; }
  .aizw-cms-card-thumbs img { height: 84px; }
}

/* ---- 深色模式 ---- */
html.dark .aizw-cmsmod-list,
html.dark .aizw-cms-card,
html.dark .aizw-dl-card,
html.dark .aizw-cms-more { background: #262330; border-color: #3a3644; }
html.dark .aizw-cms-no li { border-bottom-color: #332f3d; }
html.dark .aizw-cms-no a, html.dark .aizw-cms-card-body h4, html.dark .aizw-dl-main h4, html.dark .aizw-grid-card h4 { color: #ddd6e2; }
html.dark .aizw-cms-card-body p { color: #a99fb2; }
html.dark .aizw-cms-sec-hd h2 { color: #ece6f1; }
html.dark .aizw-cms-tag { background: #33242f; color: var(--brand-l); }
html.dark .aizw-cms-tag.is-cat { background: #22304a; color: #8fbcff; }

/* 无封面时的首字占位（CMS 模块） */
.aizw-cms-ph { display: flex; align-items: center; justify-content: center; height: 100px; border-radius: 8px; background: linear-gradient(135deg, var(--brand-s2), var(--brand-s)); color: var(--brand-d); font-weight: 700; font-size: 18px; }
.aizw-dl-ph { flex: 0 0 auto; width: 64px; height: 64px; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--brand-s2), var(--brand-s)); color: var(--brand-d); font-weight: 700; font-size: 20px; }
.aizw-grid-ph { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--brand-s2), var(--brand-s)); color: var(--brand-d); font-weight: 700; font-size: 26px; }
html.dark .aizw-cms-ph, html.dark .aizw-dl-ph, html.dark .aizw-grid-ph { background: linear-gradient(135deg, #332a3d, #3a3040); color: var(--brand-l); }
.aizw-cms-card-thumbs.is-single { grid-template-columns: 1fr; }
.aizw-cms-card-thumbs.is-single .aizw-cms-ph { height: 100px; font-size: 26px; }

/* ===== v2.22 广告位（CMS 模块 type=ad）：1~6 张同一行等分，高度可设 ===== */
.aizw-ad-row { display: flex; gap: 12px; align-items: stretch; }
.aizw-ad-item { display: block; flex: 1 1 0; min-width: 0; height: var(--ad-h, 140px); border-radius: 14px; overflow: hidden; border: 1px solid var(--brand-l2); background: #fff; transition: box-shadow .2s, transform .2s; }
.aizw-ad-item:hover { box-shadow: 0 10px 24px rgba(var(--brand-rgb), .12); transform: translateY(-2px); }
.aizw-ad-item img, .aizw-ad-video { width: 100%; height: 100%; object-fit: cover; display: block; background: #f4f1f5; }
html.dark .aizw-ad-item { background: #262330; border-color: #3a3644; }
@media (max-width: 720px) {
  .aizw-ad-row { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .aizw-ad-row::-webkit-scrollbar { display: none; }
  .aizw-ad-item { flex: 0 0 78%; height: var(--ad-h, 120px); }
}
/* v2.23 视频广告：容器保持等分，跳转链接铺满覆盖 */
.aizw-ad-item { position: relative; }
.aizw-ad-video { object-fit: cover; }

/* v2.24 广告文字叠加：主文字 / 副文字 / 左中右对齐 / 自定义颜色 / 暗色遮罩 */
.aizw-ad-link { position: absolute; inset: 0; z-index: 2; }
.aizw-ad-mask { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.aizw-ad-mask.is-left { background: linear-gradient(90deg, rgba(0,0,0,calc(var(--ad-mask, 40) / 100)) 0%, rgba(0,0,0,calc(var(--ad-mask, 40) / 260)) 62%, rgba(0,0,0,0) 100%); }
.aizw-ad-mask.is-center { background: radial-gradient(120% 150% at 50% 50%, rgba(0,0,0,calc(var(--ad-mask, 40) / 100)) 0%, rgba(0,0,0,calc(var(--ad-mask, 40) / 300)) 78%, rgba(0,0,0,0) 100%); }
.aizw-ad-mask.is-right { background: linear-gradient(270deg, rgba(0,0,0,calc(var(--ad-mask, 40) / 100)) 0%, rgba(0,0,0,calc(var(--ad-mask, 40) / 260)) 62%, rgba(0,0,0,0) 100%); }
.aizw-ad-txt { position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 0 28px; pointer-events: none; text-shadow: 0 2px 12px rgba(0, 0, 0, .28); }
.aizw-ad-txt.is-left { align-items: flex-start; text-align: left; }
.aizw-ad-txt.is-center { align-items: center; text-align: center; }
.aizw-ad-txt.is-right { align-items: flex-end; text-align: right; }
.aizw-ad-txt strong { font-size: clamp(15px, 1.9vw, 24px); font-weight: 800; line-height: 1.28; letter-spacing: .5px; color: var(--ad-tc, #fff); }
.aizw-ad-txt em { font-style: normal; font-size: clamp(11px, 1vw, 13.5px); line-height: 1.45; color: var(--ad-sc, rgba(255, 255, 255, .9)); opacity: .92; }
.aizw-ad-row[data-n="5"] .aizw-ad-txt strong, .aizw-ad-row[data-n="6"] .aizw-ad-txt strong { font-size: clamp(12px, 1.15vw, 15px); }
.aizw-ad-row[data-n="5"] .aizw-ad-txt em, .aizw-ad-row[data-n="6"] .aizw-ad-txt em { font-size: clamp(10px, .82vw, 11.5px); }
.aizw-ad-row[data-n="5"] .aizw-ad-txt, .aizw-ad-row[data-n="6"] .aizw-ad-txt { padding: 0 14px; }
html.dark .aizw-ad-txt strong { color: var(--ad-tc, #fff); }

/* v2.26 页脚列数（提高特异性，压过 resource 等模板里的 auto-fit 规则） */
.aizw-footer .aizw-ft-cols[data-cols="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.aizw-footer .aizw-ft-cols[data-cols="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.aizw-footer .aizw-ft-cols[data-cols="5"] { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 900px) {
  .aizw-footer .aizw-ft-cols[data-cols="4"], .aizw-footer .aizw-ft-cols[data-cols="5"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .aizw-footer .aizw-ft-cols[data-cols="3"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* =============================================================
 * v2.26 登录 / 注册弹窗（替代跳转 login.php 单独页面）
 * ============================================================= */
.aizw-auth-mask { position: fixed; inset: 0; z-index: 90; display: flex; align-items: center; justify-content: center; padding: 16px; }
.aizw-auth-mask.hidden { display: none; }
.aizw-auth-backdrop { position: absolute; inset: 0; background: rgba(18, 16, 24, .5); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.aizw-auth-card { position: relative; width: 100%; max-width: 400px; max-height: calc(100vh - 32px); overflow-y: auto; background: #fff; border-radius: 18px; border: 1px solid var(--brand-l2); box-shadow: 0 24px 60px rgba(20, 18, 40, .26); padding: 22px 22px 16px; animation: aizwAuthIn .22s ease; }
@keyframes aizwAuthIn { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
.aizw-auth-x { position: absolute; right: 12px; top: 10px; width: 30px; height: 30px; border: 0; background: transparent; color: #a9a1ab; font-size: 22px; line-height: 1; cursor: pointer; border-radius: 50%; }
.aizw-auth-x:hover { background: var(--brand-s); color: var(--brand); }
.aizw-auth-title { margin: 0; font-size: 18px; font-weight: 800; color: var(--brand); letter-spacing: .3px; }
.aizw-auth-sub { margin: 4px 0 0; font-size: 12px; color: #9a949e; }
.aizw-auth-tabs { display: flex; gap: 4px; background: var(--brand-s); border-radius: 999px; padding: 4px; margin: 16px 0 14px; }
.aizw-auth-tabs button { flex: 1; border: 0; background: transparent; padding: 8px 6px; border-radius: 999px; font-size: 13px; color: #6b5560; cursor: pointer; transition: all .15s; }
.aizw-auth-tabs button:hover { color: var(--brand); }
.aizw-auth-tabs button.on { background: #fff; color: var(--brand); font-weight: 700; box-shadow: 0 2px 8px rgba(20, 18, 40, .08); }
.aizw-auth-panel.hidden { display: none; }
.aizw-auth-field { margin-bottom: 12px; }
.aizw-auth-field > label { display: block; font-size: 12px; color: #8d8590; margin-bottom: 5px; }
.aizw-auth-field input[type="text"], .aizw-auth-field input[type="password"], .aizw-auth-field input[type="email"] { width: 100%; border: 1px solid var(--brand-l2); border-radius: 10px; padding: 9px 12px; font-size: 14px; color: #3a343d; background: #fff; outline: none; transition: border-color .15s, box-shadow .15s; }
.aizw-auth-field input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(var(--brand-rgb), .12); }
.aizw-auth-captcha { display: flex; gap: 8px; align-items: center; }
.aizw-auth-captcha input { flex: 1; min-width: 0; }
.aizw-auth-captcha img { width: 96px; height: 40px; border-radius: 8px; border: 1px solid var(--brand-l2); cursor: pointer; object-fit: cover; background: #fff; }
.aizw-auth-send { flex: 0 0 auto; border: 1px solid var(--brand); background: #fff; color: var(--brand); border-radius: 8px; padding: 9px 10px; font-size: 12px; cursor: pointer; }
.aizw-auth-send:disabled { opacity: .6; cursor: default; }
.aizw-auth-submit { width: 100%; border: 0; border-radius: 999px; padding: 11px; background: var(--brand); color: #fff; font-size: 14px; font-weight: 700; cursor: pointer; transition: opacity .15s; }
.aizw-auth-submit:hover { opacity: .9; }
.aizw-auth-submit:disabled { opacity: .6; cursor: default; }
.aizw-auth-agree { display: flex; align-items: flex-start; gap: 7px; font-size: 12px; color: #8d8590; line-height: 1.6; margin: 2px 0 12px; cursor: pointer; }
.aizw-auth-agree input { margin-top: 2px; flex: 0 0 auto; accent-color: var(--brand); }
.aizw-auth-agree a { color: var(--brand); text-decoration: none; }
.aizw-auth-agree a:hover { text-decoration: underline; }
.aizw-auth-msg { display: none; margin: 0 0 12px; padding: 9px 12px; border-radius: 9px; font-size: 12.5px; line-height: 1.6; }
.aizw-auth-msg.on { display: block; }
.aizw-auth-msg.err { background: #fef2f2; color: #dc2626; border: 1px solid #fee2e2; }
.aizw-auth-msg.ok { background: #f0fdf4; color: #16a34a; border: 1px solid #dcfce7; }
.aizw-auth-foot { margin: 12px 0 0; text-align: center; font-size: 11.5px; color: #b3acb8; }
html.dark .aizw-auth-card { background: #24212c; border-color: #3a3644; }
html.dark .aizw-auth-title { color: var(--brand-l); }
html.dark .aizw-auth-sub, html.dark .aizw-auth-field > label, html.dark .aizw-auth-agree { color: #a99fb2; }
html.dark .aizw-auth-field input[type="text"], html.dark .aizw-auth-field input[type="password"], html.dark .aizw-auth-field input[type="email"] { background: #2c2836; border-color: #3a3644; color: #e7e2ee; }
html.dark .aizw-auth-tabs { background: #2c2836; }
html.dark .aizw-auth-tabs button { color: #b3a9bd; }
html.dark .aizw-auth-tabs button.on { background: #3a3040; color: #fff; }

/* 用户中心菜单：左侧竖栏模式（后台 用户中心设置 → 菜单布局） */
.aizw-uc-nav-side { display: grid; grid-template-columns: 196px minmax(0, 1fr); gap: 20px; align-items: start; }
.aizw-uc-nav-side .aizw-uc-head { grid-column: 1 / -1; }
.aizw-uc-nav-side .aizw-uc-tabs { grid-column: 1; flex-direction: column; flex-wrap: nowrap; gap: 6px; position: sticky; top: 78px; background: #fff; border: 1px solid var(--brand-l2); border-radius: 14px; padding: 8px; }
.aizw-uc-nav-side .aizw-uc-tab { width: 100%; text-align: left; border: 0; background: transparent; border-radius: 9px; padding: 9px 12px; font-size: 13px; }
.aizw-uc-nav-side .aizw-uc-tab:hover { background: var(--brand-s); color: var(--brand); border-color: transparent; }
.aizw-uc-nav-side .aizw-uc-tab.on { background: var(--brand); color: #fff; font-weight: 600; }
.aizw-uc-nav-side .aizw-uc-body { grid-column: 2; margin-top: 0; }
html.dark .aizw-uc-nav-side .aizw-uc-tabs { background: #262330; border-color: #3a3644; }
html.dark .aizw-uc-nav-side .aizw-uc-tab { color: #b3a9bd; }
@media (max-width: 860px) {
  .aizw-uc-nav-side { display: block; }
  .aizw-uc-nav-side .aizw-uc-tabs { position: static; flex-direction: row; flex-wrap: wrap; gap: 8px; background: transparent; border: 0; padding: 0; }
  .aizw-uc-nav-side .aizw-uc-tab { width: auto; border: 1px solid var(--brand-l2); }
  .aizw-uc-nav-side .aizw-uc-body { margin-top: 16px; }
}

/* v2.26 海报生成：封面加载骨架（避免先看到一块灰底） */
.aizw-poster-wrap { position: relative; line-height: 0; }
.aizw-poster-loading { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; border-radius: 10px; background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(248,246,252,.94)); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); color: #8d8590; font-size: 12px; line-height: 1.4; }
.aizw-poster-loading.hidden { display: none; }
.aizw-poster-spin { width: 26px; height: 26px; border-radius: 50%; border: 3px solid var(--brand-l2); border-top-color: var(--brand); animation: aizwPosterSpin .8s linear infinite; }
@keyframes aizwPosterSpin { to { transform: rotate(360deg); } }

/* =============================================================
 * v2.27 积分商品内页（图册 + 积分兑换面板 + 详情选项卡）
 * ============================================================= */
.aizw-pd { display: flex; flex-direction: column; gap: 18px; }
.aizw-pd-top { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr); gap: 18px; align-items: start; }

/* 图册 */
.aizw-pd-gal { background: #fff; border: 1px solid var(--brand-l2); border-radius: 18px; padding: 12px; }
.aizw-pd-main { position: relative; aspect-ratio: 1 / 1; border-radius: 14px; overflow: hidden; background: linear-gradient(135deg, var(--brand-s2), var(--brand-s)); display: flex; align-items: center; justify-content: center; }
.aizw-pd-main > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.aizw-pd-nopic { color: var(--brand-d); font-size: 13px; opacity: .75; }
.aizw-pd-flag { position: absolute; left: 12px; top: 12px; display: flex; gap: 6px; }
.aizw-pd-flag span { font-size: 11px; font-weight: 700; color: #fff; background: rgba(0, 0, 0, .45); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); padding: 3px 9px; border-radius: 999px; letter-spacing: .5px; }
.aizw-pd-flag .free { background: #16a34a; }
.aizw-pd-flag .done { background: #0f766e; }
.aizw-pd-thumbs { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
.aizw-pd-thumbs::-webkit-scrollbar { display: none; }
.aizw-pd-thumb { flex: 0 0 auto; width: 62px; height: 62px; padding: 0; border: 2px solid transparent; border-radius: 10px; overflow: hidden; background: var(--brand-s); cursor: pointer; transition: border-color .15s; }
.aizw-pd-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.aizw-pd-thumb.on, .aizw-pd-thumb:hover { border-color: var(--brand); }

/* 信息面板 */
.aizw-pd-info { background: #fff; border: 1px solid var(--brand-l2); border-radius: 18px; padding: 18px 20px 20px; min-width: 0; }
.aizw-pd-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.aizw-pd-badges span { font-size: 11px; color: var(--brand-d); background: var(--brand-s); border-radius: 6px; padding: 3px 8px; }
.aizw-pd-badges .is-pick { background: linear-gradient(135deg, var(--brand), var(--brand-l)); color: #fff; font-weight: 700; }
.aizw-pd-title { margin: 10px 0 6px; font-size: 21px; font-weight: 800; line-height: 1.4; color: #2f2a33; }
.aizw-pd-sub { margin: 0 0 14px; font-size: 13px; line-height: 1.65; color: #9a949e; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.aizw-pd-pricebox { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 14px 16px; border-radius: 14px; border: 1px solid var(--brand-l2); background: linear-gradient(120deg, var(--brand-s) 0%, #fff 72%); }
.aizw-pd-pl { display: flex; align-items: baseline; gap: 4px; flex-wrap: wrap; }
.aizw-pd-cur { font-size: 32px; font-weight: 900; line-height: 1; color: var(--brand); letter-spacing: -.5px; }
.aizw-pd-cur.is-free { font-size: 24px; }
.aizw-pd-unit { font-size: 12px; color: #8d8590; }
.aizw-pd-orig { margin-left: 8px; font-size: 12px; color: #b3acb8; }
.aizw-pd-metas { display: flex; align-items: center; gap: 8px; font-size: 11.5px; color: #a49da8; }
.aizw-pd-metas b { color: #5b535f; font-weight: 600; }
.aizw-pd-metas i { width: 1px; height: 10px; background: #eae3ee; display: inline-block; }
.aizw-pd-bal { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 10px; font-size: 12.5px; color: #8d8590; }
.aizw-pd-bal b { color: var(--brand); font-size: 14px; }
.aizw-pd-short { font-size: 11.5px; color: #e11d48; background: #fef2f2; padding: 2px 8px; border-radius: 999px; }
.aizw-pd-earn { margin-left: auto; font-size: 12px; color: var(--brand); text-decoration: none; }
.aizw-pd-earn:hover { text-decoration: underline; }
.aizw-pd-attrs { list-style: none; margin: 14px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 2px 18px; }
.aizw-pd-attrs li { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px dashed var(--brand-s2); font-size: 12.5px; color: #5b535f; min-width: 0; }
.aizw-pd-attrs span { flex: 0 0 auto; min-width: 58px; color: #a49da8; }
.aizw-pd-attrs em { font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aizw-pd-attrs a { color: var(--brand); text-decoration: none; }
.aizw-pd-stars { color: #f5b400; letter-spacing: 1px; }
.aizw-pd-serv { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 14px; }
.aizw-pd-serv > div { background: var(--brand-s); border-radius: 10px; padding: 8px 10px; text-align: center; }
.aizw-pd-serv b { display: block; font-size: 12px; color: var(--brand-d); font-weight: 700; }
.aizw-pd-serv span { font-size: 11px; color: #9a949e; }
.aizw-pd-buyrow { display: flex; gap: 10px; margin-top: 16px; }
.aizw-pd-btn { flex: 1; border: 0; border-radius: 999px; padding: 13px 18px; font-size: 15px; font-weight: 700; color: #fff; background: linear-gradient(135deg, var(--brand), var(--brand-l)); cursor: pointer; transition: opacity .18s, transform .18s; }
.aizw-pd-btn:hover { opacity: .92; }
.aizw-pd-btn:disabled { opacity: .7; cursor: default; }
.aizw-pd-btn.is-done { background: #eef7f1; color: #16a34a; }
.aizw-pd-btn.ghost { flex: 0 0 auto; font-size: 13px; font-weight: 600; background: #fff; color: var(--brand); border: 1px solid var(--brand-l2); display: inline-flex; align-items: center; text-decoration: none; }
.aizw-pd-msg { margin: 10px 0 0; font-size: 12px; color: #a49da8; line-height: 1.6; }
.aizw-pd-msg.ok { color: #16a34a; }
.aizw-pd-msg.err { color: #dc2626; }
.aizw-pd-link { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 700; color: var(--brand); text-decoration: none; }
.aizw-pd-link:hover { text-decoration: underline; }

/* 详情选项卡 */
.aizw-pd-panel { background: #fff; border: 1px solid var(--brand-l2); border-radius: 18px; overflow: hidden; }
.aizw-pd-tabs { display: flex; gap: 2px; padding: 0 14px; border-bottom: 1px solid var(--brand-s2); overflow-x: auto; scrollbar-width: none; }
.aizw-pd-tabs::-webkit-scrollbar { display: none; }
.aizw-pd-tabs button { border: 0; background: transparent; padding: 14px 14px 12px; font-size: 13.5px; color: #8d8590; cursor: pointer; border-bottom: 2px solid transparent; white-space: nowrap; transition: color .15s, border-color .15s; }
.aizw-pd-tabs button:hover { color: var(--brand); }
.aizw-pd-tabs button.on { color: var(--brand); font-weight: 700; border-bottom-color: var(--brand); }
.aizw-pd-pane { display: none; padding: 18px 20px; }
.aizw-pd-pane.on { display: block; }
.aizw-pd-notice { margin: 0; padding-left: 20px; font-size: 13px; line-height: 2; color: #5b535f; }
.aizw-pd-empty { margin: 0; font-size: 13px; color: #a49da8; }

/* 同类推荐 */
.aizw-pd-rel { background: #fff; border: 1px solid var(--brand-l2); border-radius: 18px; padding: 16px 18px 18px; }
.aizw-pd-rel-hd { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.aizw-pd-rel-hd h2 { margin: 0; font-size: 16px; font-weight: 800; color: #2f2a33; }
.aizw-pd-rel-hd a { font-size: 12px; color: #a49da8; text-decoration: none; }
.aizw-pd-rel-hd a:hover { color: var(--brand); }
.aizw-pd-relgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.aizw-pd-relcard { display: block; text-decoration: none; min-width: 0; }
.aizw-pd-relcov { position: relative; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; background: linear-gradient(135deg, var(--brand-s2), var(--brand-s)); }
.aizw-pd-relcov img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.aizw-pd-relcard:hover .aizw-pd-relcov img { transform: scale(1.04); }
.aizw-pd-relph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 10px; font-size: 12px; font-weight: 700; color: var(--brand-d); text-align: center; line-height: 1.4; overflow: hidden; }
.aizw-pd-relcard h3 { margin: 9px 0 6px; font-size: 13px; font-weight: 600; color: #3a343d; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.aizw-pd-relfoot { font-size: 12px; color: #a49da8; }
.aizw-pd-relfoot b { color: var(--brand); font-size: 14px; }
.aizw-pd-relfoot .is-free { color: #16a34a; font-weight: 700; }

/* 缩略图壁纸兜底（v2.27） */
.aizw-wall-thumb { display: block; overflow: hidden; background: linear-gradient(135deg, var(--brand-s2), var(--brand-l2)); }
.aizw-wall-thumb img { transition: transform .35s; }
.aizw-wall-thumb:hover img { transform: scale(1.03); }

@media (max-width: 860px) {
  .aizw-pd-top { grid-template-columns: 1fr; }
  .aizw-pd-main { aspect-ratio: 4 / 3; }
  .aizw-pd-attrs { grid-template-columns: 1fr; }
  .aizw-pd-relgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  /* 手机上「还差 x 分 / 登录后兑换」不再右对齐，避免被悬浮按钮压住 */
  .aizw-pd-earn { margin-left: 0; }
}
@media (max-width: 520px) {
  .aizw-pd-info { padding: 14px 14px 16px; }
  .aizw-pd-title { font-size: 18px; }
  .aizw-pd-cur { font-size: 27px; }
  .aizw-pd-serv { grid-template-columns: 1fr; }
  .aizw-pd-buyrow { flex-wrap: wrap; }
  .aizw-pd-btn.ghost { width: 100%; justify-content: center; }
}

/* 深色模式 */
html.dark .aizw-pd-gal, html.dark .aizw-pd-info, html.dark .aizw-pd-panel, html.dark .aizw-pd-rel { background: #262330; border-color: #3a3644; }
html.dark .aizw-pd-title, html.dark .aizw-pd-rel-hd h2, html.dark .aizw-pd-relcard h3 { color: #ece6f1; }
html.dark .aizw-pd-sub, html.dark .aizw-pd-metas, html.dark .aizw-pd-bal, html.dark .aizw-pd-attrs span, html.dark .aizw-pd-msg { color: #a99fb2; }
html.dark .aizw-pd-attrs li { color: #d6cfdd; border-bottom-color: #332f3d; }
html.dark .aizw-pd-pricebox { background: linear-gradient(120deg, #2c2836 0%, #262330 72%); border-color: #3a3644; }
html.dark .aizw-pd-serv > div { background: #2c2836; }
html.dark .aizw-pd-serv b { color: var(--brand-l); }
html.dark .aizw-pd-tabs { border-bottom-color: #332f3d; }
html.dark .aizw-pd-tabs button { color: #b3a9bd; }
html.dark .aizw-pd-btn.ghost { background: #2c2836; border-color: #3a3644; color: var(--brand-l); }
html.dark .aizw-pd-notice, html.dark .aizw-pd-content { color: #d6cfdd; }
html.dark .aizw-pd-short { background: #3a2430; color: #fda4af; }

/* =============================================================
 * v2.28 登录弹窗加固（防误触）· 密码小眼睛 · 协议弹层 · 人机验证
 * ============================================================= */
.aizw-auth-mask { padding: 20px 26px; }
.aizw-auth-card { max-width: 392px; }

.aizw-auth-pw { position: relative; }
.aizw-auth-pw input { padding-right: 46px; }
.aizw-auth-eye { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border: 0; background: transparent; color: #b3acb8; cursor: pointer; border-radius: 8px; display: flex; align-items: center; justify-content: center; }
.aizw-auth-eye svg { width: 18px; height: 18px; display: block; }
.aizw-auth-eye:hover { background: var(--brand-s); color: var(--brand); }
.aizw-auth-eye.on { color: var(--brand); }

.aizw-auth-capbox .aizw-cap { min-height: 44px; display: flex; align-items: center; justify-content: center; background: var(--brand-s); border-radius: 10px; padding: 4px; }
.aizw-cap-hint { margin: 6px 0 0; font-size: 11px; line-height: 1.5; color: #a49da8; }

/* 协议弹层 */
.aizw-legal { position: fixed; inset: 0; z-index: 95; display: flex; align-items: center; justify-content: center; padding: 24px 22px; }
.aizw-legal.hidden { display: none; }
.aizw-legal-backdrop { position: absolute; inset: 0; background: rgba(18, 16, 24, .55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.aizw-legal-card { position: relative; width: 100%; max-width: 580px; max-height: calc(100vh - 80px); background: #fff; border-radius: 18px; box-shadow: 0 24px 60px rgba(20, 18, 40, .3); display: flex; flex-direction: column; overflow: hidden; animation: aizwAuthIn .2s ease; }
.aizw-legal-t { margin: 0; padding: 18px 52px 12px 22px; font-size: 17px; font-weight: 800; color: var(--brand); border-bottom: 1px solid var(--brand-s2); }
.aizw-legal-body { padding: 16px 22px 22px; overflow-y: auto; font-size: 13.5px; line-height: 1.9; color: #4b4550; }
.aizw-legal-body h1, .aizw-legal-body h2, .aizw-legal-body h3, .aizw-legal-body h4 { font-size: 15px; font-weight: 700; margin: 16px 0 8px; color: #2f2a33; }
.aizw-legal-body h1:first-child, .aizw-legal-body h2:first-child, .aizw-legal-body h3:first-child { margin-top: 0; }
.aizw-legal-body p { margin: 0 0 10px; }
.aizw-legal-body ul, .aizw-legal-body ol { margin: 0 0 10px; padding-left: 20px; }
.aizw-legal-body li { margin: 3px 0; }
.aizw-legal-body a { color: var(--brand); }
.aizw-legal-x { position: absolute; right: 12px; top: 12px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: transparent; color: #a9a1ab; font-size: 22px; line-height: 1; cursor: pointer; }
.aizw-legal-x:hover { background: var(--brand-s); color: var(--brand); }

html.dark .aizw-legal-card { background: #24212c; }
html.dark .aizw-legal-t { color: var(--brand-l); border-bottom-color: #3a3644; }
html.dark .aizw-legal-body { color: #d6cfdd; }
html.dark .aizw-legal-body h1, html.dark .aizw-legal-body h2, html.dark .aizw-legal-body h3, html.dark .aizw-legal-body h4 { color: #ece6f1; }
html.dark .aizw-auth-eye { color: #8d8496; }
html.dark .aizw-auth-capbox .aizw-cap { background: #2c2836; }

@media (max-width: 480px) {
  .aizw-auth-mask { padding: 12px 14px; }
  .aizw-legal { padding: 12px; }
}

/* =============================================================
 * v2.28 用户中心 · 资料设置面板
 * ============================================================= */
.aizw-uc-h { margin: 0 0 14px; font-size: 15px; font-weight: 800; color: #2f2a33; }
.aizw-uc-tip { margin: 0 0 10px; font-size: 13px; color: #8d8590; }
.aizw-uc-tip b { color: var(--brand); }
.aizw-uc-hint { font-size: 11.5px; color: #a49da8; }
.aizw-uc-ava { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 16px; }
.aizw-uc-ava > img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 2px solid var(--brand-l2); background: #f4f1f5; flex: 0 0 auto; }
.aizw-uc-ava-act { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.aizw-uc-field { margin-bottom: 12px; }
.aizw-uc-field > label { display: block; font-size: 12px; color: #8d8590; margin-bottom: 5px; }
.aizw-uc-input { width: 100%; max-width: 420px; border: 1px solid var(--brand-l2); border-radius: 10px; padding: 9px 12px; font-size: 13.5px; color: #3a343d; background: #fff; outline: none; transition: border-color .15s, box-shadow .15s; }
.aizw-uc-input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(var(--brand-rgb), .12); }
textarea.aizw-uc-input { resize: vertical; line-height: 1.7; }
.aizw-uc-inline { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 12px; }
.aizw-uc-inline .aizw-uc-input { max-width: 260px; }
.aizw-uc-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.aizw-uc-btn { border: 1px solid var(--brand-l2); background: #fff; color: var(--brand); border-radius: 999px; padding: 8px 16px; font-size: 12.5px; cursor: pointer; transition: all .15s; }
.aizw-uc-btn:hover { border-color: var(--brand); }
.aizw-uc-btn.ghost { color: #8d8590; }
.aizw-uc-msg { font-size: 12.5px; color: #8d8590; }
.aizw-uc-msg.on.ok { color: #16a34a; }
.aizw-uc-msg.on.err { color: #dc2626; }
.aizw-uc-binds { display: flex; flex-direction: column; gap: 10px; }
.aizw-uc-bind { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--brand-s2); border-radius: 12px; background: var(--brand-s); }
.aizw-uc-bind-n { font-size: 13px; font-weight: 700; color: #3a343d; min-width: 64px; }
.aizw-uc-bind em { font-style: normal; font-size: 12px; color: #9a949e; }
.aizw-uc-bind em.is-on { color: #16a34a; font-weight: 600; }
.aizw-uc-bind .aizw-uc-btn { margin-left: auto; }

html.dark .aizw-uc-h { color: #ece6f1; }
html.dark .aizw-uc-input { background: #2c2836; border-color: #3a3644; color: #e7e2ee; }
html.dark .aizw-uc-btn { background: #2c2836; border-color: #3a3644; color: var(--brand-l); }
html.dark .aizw-uc-bind { background: #2a2632; border-color: #3a3644; }
html.dark .aizw-uc-bind-n { color: #ddd6e2; }

@media (max-width: 560px) {
  .aizw-uc-ava { flex-direction: column; }
  .aizw-uc-inline .aizw-uc-input, .aizw-uc-input { max-width: 100%; }
  .aizw-uc-bind { flex-wrap: wrap; }
}

/* =============================================================
 * v2.28 正文增强：相册 / 视频 / 隐藏内容 / 目录 / 灯箱
 * ============================================================= */
.aizw-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 18px 0; }
.aizw-gallery[data-count="1"] { grid-template-columns: 1fr; }
.aizw-gallery[data-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.aizw-gal-item { position: relative; margin: 0; border-radius: 12px; overflow: hidden; background: var(--brand-s); cursor: zoom-in; }
.aizw-gal-item img { width: 100%; height: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; transition: transform .3s; }
.aizw-gal-item:hover img { transform: scale(1.04); }
.aizw-gal-item figcaption { position: absolute; left: 6px; top: 6px; background: rgba(0, 0, 0, .45); color: #fff; font-size: 11px; border-radius: 999px; padding: 1px 7px; }

.aizw-video { margin: 18px 0; border-radius: 14px; overflow: hidden; background: #000; }
.aizw-video video, .aizw-video iframe { width: 100%; aspect-ratio: 16 / 9; display: block; border: 0; }

.aizw-hide { margin: 18px 0; }
.aizw-hide.is-open { margin: 14px 0; }
.aizw-hide-lock { position: relative; border: 1px dashed var(--brand-l2); border-radius: 14px; background: linear-gradient(135deg, var(--brand-s2), var(--brand-s)); padding: 26px 20px; text-align: center; }
.aizw-hide-ico { font-size: 26px; display: block; margin-bottom: 6px; }
.aizw-hide-t { display: block; font-size: 15px; font-weight: 800; color: #3a343d; margin-bottom: 6px; }
.aizw-hide-d { margin: 0 0 14px; font-size: 12.5px; color: #8d8590; line-height: 1.7; }
.aizw-hide-d b { color: var(--brand); }
.aizw-hide-d.is-err { color: #dc2626; }
.aizw-hide-row { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.aizw-hide-input { width: 190px; border: 1px solid var(--brand-l2); border-radius: 10px; padding: 9px 12px; font-size: 13px; outline: none; }
.aizw-hide-input:focus { border-color: var(--brand); }
.aizw-hide-btn { display: inline-block; border: 0; border-radius: 999px; padding: 9px 22px; font-size: 13px; font-weight: 700; color: #fff; background: linear-gradient(135deg, var(--brand), var(--brand-l)); cursor: pointer; text-decoration: none; transition: opacity .15s; }
.aizw-hide-btn:hover { opacity: .9; }
.aizw-hide-btn:disabled { opacity: .65; cursor: default; }

.aizw-toc { border: 1px solid var(--brand-l2); background: var(--brand-s); border-radius: 14px; padding: 12px 16px; margin: 0 0 18px; }
.aizw-toc-hd { display: flex; align-items: center; justify-content: space-between; }
.aizw-toc-hd b { font-size: 13px; color: #3a343d; }
.aizw-toc-tg { border: 0; background: transparent; color: var(--brand); font-size: 15px; cursor: pointer; line-height: 1; }
.aizw-toc ul { list-style: none; margin: 8px 0 0; padding: 0; }
.aizw-toc.is-fold ul { display: none; }
.aizw-toc li { margin: 3px 0; font-size: 12.5px; line-height: 1.9; }
.aizw-toc li.lv3 { padding-left: 14px; }
.aizw-toc a { color: #5b535f; text-decoration: none; }
.aizw-toc a:hover { color: var(--brand); }

/* 灯箱 */
.aizw-lb { position: fixed; inset: 0; z-index: 96; display: none; align-items: center; justify-content: center; background: rgba(12, 10, 16, .92); }
.aizw-lb.on { display: flex; }
.aizw-lb img { max-width: 88vw; max-height: 84vh; border-radius: 10px; box-shadow: 0 20px 60px rgba(0, 0, 0, .5); }
.aizw-lb-x, .aizw-lb-prev, .aizw-lb-next { position: absolute; border: 0; background: rgba(255, 255, 255, .14); color: #fff; cursor: pointer; border-radius: 50%; }
.aizw-lb-x { right: 20px; top: 18px; width: 38px; height: 38px; font-size: 22px; line-height: 1; }
.aizw-lb-prev, .aizw-lb-next { top: 50%; transform: translateY(-50%); width: 44px; height: 44px; font-size: 26px; line-height: 1; }
.aizw-lb-prev { left: 18px; }
.aizw-lb-next { right: 18px; }
.aizw-lb-n { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); color: rgba(255, 255, 255, .8); font-size: 12px; }

html.dark .aizw-hide-lock { background: linear-gradient(135deg, #2c2836, #262330); border-color: #3a3644; }
html.dark .aizw-hide-t { color: #ece6f1; }
html.dark .aizw-hide-input { background: #2c2836; border-color: #3a3644; color: #e7e2ee; }
html.dark .aizw-toc { background: #2a2632; border-color: #3a3644; }
html.dark .aizw-toc-hd b { color: #ece6f1; }
html.dark .aizw-toc a { color: #cbbfc9; }

@media (max-width: 560px) {
  .aizw-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aizw-lb-prev, .aizw-lb-next { display: none; }
  .aizw-lb img { max-width: 94vw; }
}

/* =============================================================
 * v2.29 统一头像组件：底色 + 首字占位，图片加载成功后覆盖上层
 * 解决「换了头像各处不更新」「头像为空时破图」两个问题
 * ============================================================= */
.aizw-ava { position: relative; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 50%; overflow: hidden; background: var(--brand); color: #fff; font-weight: 700; line-height: 1; letter-spacing: 0; user-select: none; vertical-align: middle; }
.aizw-ava > i { font-style: normal; }
.aizw-ava > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.aizw-ava.aizw-ac-avatar { width: 56px; height: 56px; border: 2px solid var(--brand); box-shadow: 0 0 0 4px rgba(var(--brand-rgb), .15); }
.aizw-author-head .aizw-author-ava { box-shadow: 0 0 0 4px rgba(var(--brand-rgb), .14); }

/* =============================================================
 * v2.30 相关推荐占位 / 侧栏作者卡 / 后台保存浮窗配套
 * ============================================================= */
.aizw-related-nopic { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--brand-l2), var(--brand-l)); color: var(--brand-d); font-size: 30px; font-weight: 800; letter-spacing: 0; }
.aizw-related-nopic i { font-style: normal; }
.aizw-pd-relph { font-size: 24px; font-weight: 800; padding: 0; }
.aizw-ac-name-link { color: inherit; text-decoration: none; }
.aizw-ac-name-link:hover { color: var(--brand-d); text-decoration: underline; }

/* =============================================================
 * v2.30 鼠标点击 / 光标特效（配合 script/fx-mouse.js）
 * ============================================================= */
.aizw-fx { position: fixed; pointer-events: none; z-index: 9998; will-change: transform, opacity; }

/* 点击：水面涟漪（多层异速圆环 + 高光圈，尽量还原水面被点破的扩散） */
.aizw-fx-ripple {
  width: 16px; height: 16px; margin: 0; border-radius: 50%;
  border: 1.5px solid rgba(var(--brand-rgb), .8);
  box-shadow: 0 0 6px rgba(var(--brand-rgb), .35), inset 0 0 6px rgba(var(--brand-rgb), .25);
  transform: translate(-50%, -50%) scale(.18);
  opacity: var(--a0, .7);
  animation-name: aizw-fx-ripple;
  animation-timing-function: cubic-bezier(.13, .62, .25, 1);
  animation-fill-mode: forwards;
  will-change: transform, opacity;
}
.aizw-fx-ripple.aizw-fx-hi {
  border-color: rgba(255, 255, 255, .95);
  box-shadow: 0 0 10px rgba(255, 255, 255, .75);
}
@keyframes aizw-fx-ripple {
  0%   { transform: translate(-50%, -50%) scale(.18); opacity: var(--a0, .8); filter: blur(0); }
  18%  { opacity: calc(var(--a0, .8) * 1); filter: blur(.2px); }
  55%  { opacity: calc(var(--a0, .8) * .55); filter: blur(.5px); }
  100% { transform: translate(-50%, -50%) scale(var(--sc, 8)); opacity: 0; filter: blur(1.4px); border-width: .5px; }
}

/* 涟漪中心高光（点破水面的那一下） */
.aizw-fx-core {
  width: 16px; height: 16px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, .95) 0%, rgba(var(--brand-rgb), .75) 42%, rgba(var(--brand-rgb), 0) 72%);
  transform: translate(-50%, -50%) scale(.4);
  animation: aizw-fx-core .62s ease-out forwards;
}
@keyframes aizw-fx-core {
  0% { opacity: 1; transform: translate(-50%, -50%) scale(.35); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(2.6); }
}

/* 水花：向上外溅的小水滴 */
.aizw-fx-drop {
  width: 5px; height: 5px; border-radius: 50%;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 0 8px rgba(var(--brand-rgb), .8);
  transform: translate(-50%, -50%);
  animation: aizw-fx-drop .86s cubic-bezier(.2, .7, .3, 1) forwards;
  animation-delay: var(--dl, 0ms);
}
@keyframes aizw-fx-drop {
  0% { opacity: 1; transform: translate(-50%, -50%) scale(.9); }
  70% { opacity: .8; }
  100% { opacity: 0; transform: translate(calc(-50% + var(--dx, 0px)), calc(-50% + var(--dy, 0px))) scale(.25); }
}

/* 点击：光环脉冲 */
.aizw-fx-ring { width: 28px; height: 28px; border-radius: 50%; border: 3px solid var(--brand); box-shadow: inset 0 0 12px rgba(var(--brand-rgb), .45); transform: translate(-50%, -50%) scale(.2); animation: aizw-fx-ring .7s ease-out forwards; }
.aizw-fx-ring.aizw-fx-d2 { border-color: var(--brand-l); animation-duration: .95s; animation-delay: .12s; }
.aizw-fx-ring { box-shadow: 0 0 14px rgba(var(--brand-rgb), .35), inset 0 0 12px rgba(var(--brand-rgb), .45); }
@keyframes aizw-fx-ring { 0% { opacity: 1; transform: translate(-50%, -50%) scale(.2); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(3.2); } }

/* 点击：星尘爆裂 */
.aizw-fx-spark { width: 6px; height: 6px; border-radius: 50%; background: var(--brand); box-shadow: 0 0 10px rgba(var(--brand-rgb), .75); transform: translate(-50%, -50%); animation: aizw-fx-spark .7s cubic-bezier(.15, .7, .3, 1) forwards; animation-delay: var(--dl, 0ms); }
.aizw-fx-spark.aizw-fx-thin { width: 4px; height: 4px; background: var(--brand-l); }
@keyframes aizw-fx-spark { 0% { opacity: 1; transform: translate(-50%, -50%) scale(1); } 100% { opacity: 0; transform: translate(calc(-50% + var(--dx, 0px)), calc(-50% + var(--dy, 0px))) scale(.2); } }

/* 光标：通用容器 */
.aizw-fx-cursor { position: fixed; left: 0; top: 0; width: 260px; height: 260px; pointer-events: none; z-index: 9997; opacity: 0; transition: opacity .35s ease; will-change: transform; }
.aizw-fx-cursor.on { opacity: 1; }

/* 柔光跟随 */
.aizw-fx-cur-glow { border-radius: 50%; background: radial-gradient(circle, rgba(var(--brand-rgb), .42) 0%, rgba(var(--brand-rgb), .16) 34%, rgba(var(--brand-rgb), 0) 64%); filter: blur(3px); }
.aizw-fx-cur-glow::after { content: ""; position: absolute; left: 50%; top: 50%; width: 54px; height: 54px; margin: -27px 0 0 -27px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, .85), rgba(var(--brand-rgb), .5) 55%, rgba(var(--brand-rgb), 0) 100%); filter: blur(2px); animation: aizw-fx-breathe 2.6s ease-in-out infinite; }
@keyframes aizw-fx-breathe { 0%, 100% { transform: scale(.9); opacity: .8; } 50% { transform: scale(1.12); opacity: 1; } }

/* 光点拖尾（拖尾点由 JS 生成） */
.aizw-fx-cur-trail { width: 0; height: 0; background: none; }
.aizw-fx-trail { width: 8px; height: 8px; border-radius: 50%; background: var(--brand); box-shadow: 0 0 12px rgba(var(--brand-rgb), .6); transform: translate(-50%, -50%); animation: aizw-fx-trail .68s ease-out forwards; }
@keyframes aizw-fx-trail { 0% { opacity: .85; transform: translate(-50%, -50%) scale(1); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(.15); } }

/* 光线追踪：随速度拉伸的光束 */
.aizw-fx-cur-beam { width: 22px; height: 22px; border-radius: 50%; background: radial-gradient(circle, #fff 0%, rgba(var(--brand-rgb), .95) 40%, rgba(var(--brand-rgb), 0) 72%); box-shadow: 0 0 22px rgba(var(--brand-rgb), .6); }
.aizw-fx-cur-beam::after { content: ""; position: absolute; left: 50%; top: 50%; width: var(--len, 90px); height: 3px; border-radius: 3px; background: linear-gradient(90deg, rgba(255, 255, 255, .95), rgba(var(--brand-rgb), .55), rgba(var(--brand-rgb), 0)); transform-origin: 0 50%; transform: translate(-6px, -50%) rotate(var(--ang, 0deg)); filter: blur(.4px); }

/* 聚光暗场 */
#aizwFxSpot { position: fixed; inset: 0; pointer-events: none; z-index: 9990; opacity: 0; transition: opacity .4s ease; background: radial-gradient(circle 240px at var(--x, 50%) var(--y, 50%), rgba(0, 0, 0, 0) 0%, rgba(24, 12, 28, .38) 62%, rgba(20, 10, 24, .62) 100%); }
#aizwFxSpot.on { opacity: 1; }

/* 轨道光点 */
.aizw-fx-cur-orbit { width: 120px; height: 120px; border-radius: 50%; border: 1px solid rgba(var(--brand-rgb), .18); }
.aizw-fx-cur-orbit::before, .aizw-fx-cur-orbit::after { content: ""; position: absolute; width: 8px; height: 8px; border-radius: 50%; background: var(--brand); box-shadow: 0 0 12px rgba(var(--brand-rgb), .7); }
.aizw-fx-cur-orbit::before { left: 50%; top: -4px; margin-left: -4px; animation: aizw-fx-orbit 2.4s linear infinite; transform-origin: 4px 64px; }
.aizw-fx-cur-orbit::after { left: 50%; bottom: -4px; margin-left: -4px; animation: aizw-fx-orbit 3.6s linear infinite reverse; transform-origin: 4px -56px; }
@keyframes aizw-fx-orbit { to { transform: rotate(360deg); } }

html.dark .aizw-fx-cur-glow { background: radial-gradient(circle, rgba(var(--brand-rgb), .45) 0%, rgba(var(--brand-rgb), .16) 40%, rgba(var(--brand-rgb), 0) 68%); }
html.dark #aizwFxSpot { background: radial-gradient(circle 260px at var(--x, 50%) var(--y, 50%), rgba(255, 255, 255, .05) 0%, rgba(0, 0, 0, .5) 60%, rgba(0, 0, 0, .78) 100%); }

/* v2.35：触屏只隐藏「光标跟随」类（没有鼠标）；点击涟漪在手机上照常显示 */
@media (hover: none) {
  #aizwFxSpot, .aizw-fx-cursor { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  .aizw-fx-ripple, .aizw-fx-ring, .aizw-fx-spark, .aizw-fx-trail { animation-duration: .55s !important; }
  .aizw-fx-cur-orbit::before, .aizw-fx-cur-orbit::after, .aizw-fx-cur-glow { animation: none !important; }
}

/* =============================================================
 * v2.30 列表视图：双列(每列3~5) + 下方单列(5)
 * ============================================================= */
#aizwPostList.aizw-view-list { display: block !important; }
.aizw-lvwrap { display: block; }
.aizw-lvcols { display: grid; grid-template-columns: 1fr; gap: 14px; align-items: start; }
@media (min-width: 900px) { .aizw-lvcols { grid-template-columns: 1fr 1fr; } }
.aizw-lvcol { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.aizw-lvone { display: flex; flex-direction: column; gap: 14px; margin-top: 14px; }
.aizw-lvcol .aizw-card { gap: 0; }
@media (min-width: 900px) {
  #aizwPostList.aizw-view-list .aizw-lvcol .aizw-card > a { width: 132px; min-width: 132px; }
  #aizwPostList.aizw-view-list .aizw-lvcol .aizw-card h2 { font-size: 14px; }
  #aizwPostList.aizw-view-list .aizw-lvone .aizw-card > a { width: 196px; min-width: 196px; }
}

/* =============================================================
 * v2.31 瞬间 / 说说：左右交替时间轴（参考气泡时间轴）
 * ============================================================= */
.aizw-momfeed { position: relative; display: flex; flex-direction: column; gap: 20px; padding: 6px 0 10px; }
.aizw-momfeed::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; margin-left: -1px; border-radius: 2px; background: linear-gradient(180deg, rgba(var(--brand-rgb), 0), rgba(var(--brand-rgb), .35) 8%, rgba(var(--brand-rgb), .35) 92%, rgba(var(--brand-rgb), 0)); }
.aizw-mom { display: grid; grid-template-columns: 1fr 108px 1fr; align-items: start; }

.aizw-mom-side { grid-column: 1; min-width: 0; }
.aizw-mom:nth-child(even) .aizw-mom-side { grid-column: 3; }

.aizw-mom-bubble { position: relative; background: #fff; border: 1px solid var(--brand-s2); border-radius: 16px; padding: 16px 18px; box-shadow: 0 6px 20px rgba(30, 20, 45, .05); transition: transform .2s ease, box-shadow .2s ease; }
.aizw-mom-bubble:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(30, 20, 45, .1); }
.aizw-mom-bubble::after { content: ""; position: absolute; top: 22px; right: -7px; width: 12px; height: 12px; background: #fff; border-right: 1px solid var(--brand-s2); border-top: 1px solid var(--brand-s2); transform: rotate(45deg); }
.aizw-mom:nth-child(even) .aizw-mom-bubble::after { right: auto; left: -7px; transform: rotate(-135deg); }

.aizw-mom-text { font-size: 14.5px; line-height: 1.8; color: #3a343d; word-break: break-word; }
.aizw-mom-text a { color: inherit; text-decoration: none; }
.aizw-mom-text a:hover { color: var(--brand-d); }

.aizw-mom-media { display: grid; gap: 6px; margin-top: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.aizw-mom-media[data-n="1"] { grid-template-columns: minmax(0, 240px); }
.aizw-mom-media[data-n="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 300px; }
.aizw-mom-media[data-n="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 300px; }
.aizw-mom-ph { display: block; overflow: hidden; border-radius: 9px; background: var(--brand-s); aspect-ratio: 1 / 1; }
.aizw-mom-media[data-n="1"] .aizw-mom-ph { aspect-ratio: 4 / 3; }
.aizw-mom-ph img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.aizw-mom-ph:hover img { transform: scale(1.05); }

.aizw-mom-meta { display: flex; align-items: center; gap: 14px; margin-top: 12px; font-size: 12px; color: #a9a1ab; }
.aizw-mom-meta span { display: inline-flex; align-items: center; gap: 4px; }
.aizw-mom-meta svg { width: 14px; height: 14px; }

/* 中轴：日期胶囊 + 节点 + 点赞按钮 */
.aizw-mom-axis { grid-column: 2; display: flex; flex-direction: column; align-items: center; gap: 8px; padding-top: 12px; }
.aizw-mom-date { background: #fff; border: 1px solid var(--brand-s2); border-radius: 999px; padding: 4px 10px; font-size: 11px; color: #8a8496; white-space: nowrap; box-shadow: 0 2px 8px rgba(30, 20, 45, .05); }
.aizw-mom-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--brand); box-shadow: 0 0 0 4px rgba(var(--brand-rgb), .16); }
.aizw-mom-like { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--brand-s2); background: #fff; color: #b3a7b1; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: all .18s ease; }
.aizw-mom-like svg { width: 15px; height: 15px; }
.aizw-mom-like:hover { border-color: var(--brand); color: var(--brand); transform: scale(1.08); }
.aizw-mom-like.is-on { background: var(--brand); border-color: var(--brand); color: #fff; }
.aizw-mom-like.is-on svg { animation: aizwMomLike .5s ease; }
@keyframes aizwMomLike { 0% { transform: scale(.6); } 60% { transform: scale(1.28); } 100% { transform: scale(1); } }

html.dark .aizw-mom-bubble { background: #262431; border-color: #3a3644; }
html.dark .aizw-mom-bubble::after { background: #262431; border-color: #3a3644; }
html.dark .aizw-mom-text { color: #ded8e6; }
html.dark .aizw-mom-date { background: #262431; border-color: #3a3644; color: #a49cae; }
html.dark .aizw-mom-like { background: #262431; border-color: #3a3644; }

@media (max-width: 760px) {
  .aizw-momfeed::before { left: 14px; margin-left: 0; }
  .aizw-mom { grid-template-columns: 1fr; gap: 8px; padding-left: 34px; }
  .aizw-mom-side, .aizw-mom:nth-child(even) .aizw-mom-side { grid-column: 1; }
  .aizw-mom-axis { grid-column: 1; flex-direction: row; justify-content: flex-start; padding: 0; gap: 10px; margin-top: -2px; }
  .aizw-mom-dot { position: absolute; left: 8px; margin-top: 34px; }
  .aizw-mom-bubble::after, .aizw-mom:nth-child(even) .aizw-mom-bubble::after { left: -7px; right: auto; transform: rotate(-135deg); }
  .aizw-mom-media { max-width: 100%; }
}

/* =============================================================
 * v2.30 列表视图：双列(每列3~5) + 下方单列(5)
 * ============================================================= */
#aizwPostList.aizw-view-list { display: block !important; }
.aizw-lvwrap { display: block; }
.aizw-lvcols { display: grid; grid-template-columns: 1fr; gap: 14px; align-items: start; }
@media (min-width: 900px) { .aizw-lvcols { grid-template-columns: 1fr 1fr; } }
.aizw-lvcol { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.aizw-lvone { display: flex; flex-direction: column; gap: 14px; margin-top: 14px; }
.aizw-lvcol .aizw-card { gap: 0; }
@media (min-width: 900px) {
  #aizwPostList.aizw-view-list .aizw-lvcol .aizw-card > a { width: 132px; min-width: 132px; }
  #aizwPostList.aizw-view-list .aizw-lvcol .aizw-card h2 { font-size: 14px; }
  #aizwPostList.aizw-view-list .aizw-lvone .aizw-card > a { width: 196px; min-width: 196px; }
}

/* =============================================================
 * v2.30 作者主页（template/author.php）
 * ============================================================= */
.aizw-au-hero { position: relative; border-radius: 18px; overflow: hidden; background: #fff; border: 1px solid var(--brand-s2); margin-bottom: 16px; box-shadow: 0 4px 18px rgba(var(--brand-rgb), .06); }
.aizw-au-cover { height: 118px; background: linear-gradient(120deg, var(--brand) 0%, var(--brand-l) 48%, var(--brand-s) 100%); position: relative; }
.aizw-au-cover::after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .5) 1px, transparent 1px); background-size: 14px 14px; opacity: .5; }
.aizw-au-body { display: flex; gap: 16px; padding: 0 22px 20px; margin-top: -40px; position: relative; }
.aizw-au-ava { flex: 0 0 auto; }
.aizw-au-ava .aizw-ava { border: 4px solid #fff; box-shadow: 0 8px 22px rgba(var(--brand-rgb), .26); }
.aizw-au-main { flex: 1; min-width: 0; padding-top: 46px; }
.aizw-au-hd { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.aizw-au-name { margin: 0; font-size: 20px; font-weight: 800; color: #3a2a33; letter-spacing: .2px; }
.aizw-au-link { font-size: 12px; color: #bcabb6; text-decoration: none; }
.aizw-au-bio { margin: 7px 0 0; font-size: 13px; color: #7d7480; line-height: 1.75; }
.aizw-au-stats { display: flex; gap: 28px; margin-top: 14px; }
.aizw-au-stat b { display: block; font-size: 19px; font-weight: 800; color: var(--brand); line-height: 1.15; }
.aizw-au-stat span { font-size: 11px; color: #a9a1ab; }
.aizw-au-sec-hd { display: flex; align-items: baseline; justify-content: space-between; margin: 4px 2px 10px; }
.aizw-au-sec-hd h2 { margin: 0; font-size: 16px; font-weight: 800; color: #3a2a33; }
.aizw-au-count { font-size: 12px; color: #a9a1ab; }
html.dark .aizw-au-hero { background: #2a2735; border-color: #3a3644; }
html.dark .aizw-au-name, html.dark .aizw-au-sec-hd h2 { color: #f0edf5; }
html.dark .aizw-au-bio { color: #b8b0c2; }
@media (max-width: 560px) {
  .aizw-au-body { flex-direction: column; align-items: flex-start; gap: 10px; padding: 0 14px 16px; }
  .aizw-au-main { padding-top: 0; }
  .aizw-au-stats { gap: 20px; }
  .aizw-au-ava .aizw-ava { width: 72px !important; height: 72px !important; font-size: 26px !important; }
}

/* =============================================================
 * v2.30 相册页：手风琴抽屉 / 翻页相册
 * ============================================================= */
.aizw-gal-hd { padding: 20px 22px 12px; }
.aizw-gal-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 12px; color: #a9a1ab; }
.aizw-gal-hd h1 { margin: 9px 0 0; font-size: 20px; line-height: 1.35; font-weight: 800; color: #3a2a33; }
.aizw-gal-body { padding: 16px 22px 24px; }

/* 手风琴抽屉 */
.aizw-drawer { display: flex; gap: 8px; height: 460px; padding: 0 16px; }
.aizw-drawer-panel { position: relative; flex: 1 1 0; min-width: 54px; border-radius: 14px; overflow: hidden; cursor: pointer; background: #f4eef3; outline: none; transition: flex-grow .5s cubic-bezier(.2, .7, .2, 1), box-shadow .3s; }
.aizw-drawer-panel.is-on { flex-grow: 6; box-shadow: 0 12px 28px rgba(var(--brand-rgb), .24); }
.aizw-drawer-panel img { width: 100%; height: 100%; object-fit: cover; display: block; transform: scale(1.04); transition: transform .7s ease; }
.aizw-drawer-panel.is-on img { transform: scale(1); }
.aizw-drawer-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 35%, rgba(0, 0, 0, .62)); opacity: .8; transition: opacity .3s; }
.aizw-drawer-panel.is-on .aizw-drawer-shade { opacity: .35; }
.aizw-drawer-cap { position: absolute; left: 12px; right: 12px; bottom: 12px; display: flex; flex-direction: column; gap: 4px; color: #fff; }
.aizw-drawer-cap b { font-size: 12px; letter-spacing: .08em; opacity: .85; font-weight: 700; }
.aizw-drawer-cap i { font-style: normal; font-size: 14px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0; transform: translateY(8px); transition: opacity .3s .05s, transform .3s .05s; }
.aizw-drawer-panel.is-on .aizw-drawer-cap i { opacity: 1; transform: none; }
.aizw-drawer-hint { padding: 10px 22px 18px; font-size: 12px; color: #b3a7b1; }

/* 翻页相册 */
.aizw-flip { padding: 0 16px; }
.aizw-flip-stage { position: relative; perspective: 1500px; background: #171320; border-radius: 16px; overflow: hidden; }
.aizw-flip-card { position: relative; transition: transform .23s ease, opacity .23s ease; transform-style: preserve-3d; will-change: transform; }
.aizw-flip-card img { display: block; width: 100%; max-height: 560px; object-fit: contain; background: #171320; }
.aizw-flip-card.is-out-next { transform: rotateY(-72deg) scale(.92); opacity: .12; transform-origin: left center; }
.aizw-flip-card.is-in-next { transform: rotateY(72deg) scale(.92); opacity: .12; transform-origin: right center; transition: none; }
.aizw-flip-card.is-out-prev { transform: rotateY(72deg) scale(.92); opacity: .12; transform-origin: right center; }
.aizw-flip-card.is-in-prev { transform: rotateY(-72deg) scale(.92); opacity: .12; transform-origin: left center; transition: none; }
.aizw-flip-num { position: absolute; right: 12px; bottom: 12px; padding: 3px 10px; border-radius: 999px; background: rgba(0, 0, 0, .5); color: #fff; font-size: 12px; letter-spacing: .04em; }
.aizw-flip-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .88); color: #5a4a55; font-size: 24px; line-height: 1; cursor: pointer; box-shadow: 0 6px 18px rgba(0, 0, 0, .18); transition: background .2s, color .2s, transform .2s; }
.aizw-flip-btn:hover { background: var(--brand); color: #fff; transform: translateY(-50%) scale(1.06); }
.aizw-flip-btn.is-prev { left: 14px; }
.aizw-flip-btn.is-next { right: 14px; }
.aizw-flip-bar { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.aizw-flip-thumbs { display: flex; gap: 8px; overflow-x: auto; flex: 1; padding: 2px; scrollbar-width: thin; }
.aizw-flip-th { flex: 0 0 auto; width: 66px; height: 50px; padding: 0; border-radius: 8px; overflow: hidden; border: 2px solid transparent; background: none; cursor: pointer; opacity: .66; transition: opacity .2s, border-color .2s, transform .2s; }
.aizw-flip-th:hover { opacity: 1; transform: translateY(-2px); }
.aizw-flip-th.is-on { border-color: var(--brand); opacity: 1; }
.aizw-flip-th img { width: 100%; height: 100%; object-fit: cover; display: block; }
.aizw-flip-play { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--brand-l2); background: #fff; color: var(--brand); cursor: pointer; transition: .2s; }
.aizw-flip-play.is-on { background: var(--brand); color: #fff; border-color: var(--brand); }
html.dark .aizw-gal-hd h1 { color: #f0edf5; }
html.dark .aizw-drawer-panel { background: #2c2838; }
html.dark .aizw-flip-play { background: #2c2838; border-color: #3a3644; }
@media (max-width: 700px) {
  .aizw-drawer { height: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aizw-drawer-panel { height: 150px; flex: none; }
  .aizw-drawer-panel.is-on { box-shadow: 0 6px 16px rgba(var(--brand-rgb), .2); }
  .aizw-drawer-cap i { opacity: 1; transform: none; font-size: 12px; }
  .aizw-flip-card img { max-height: 360px; }
  .aizw-flip-btn { width: 36px; height: 36px; font-size: 20px; }
}

/* =============================================================
 * v2.31 联系方式组件（作者卡底部）
 * ============================================================= */
.aizw-ctc { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--brand-l2); }
.aizw-ctc-hd { font-size: 11px; letter-spacing: .08em; color: #b3a7b1; text-align: center; margin-bottom: 9px; }
.aizw-ctc-row { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.aizw-ctc-item { position: relative; }
.aizw-ctc-btn { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; border: 0; padding: 0; cursor: pointer; box-shadow: 0 4px 12px rgba(30, 20, 40, .16); transition: transform .18s ease, box-shadow .18s ease; overflow: hidden; }
.aizw-ctc-btn:hover { transform: translateY(-3px) scale(1.06); box-shadow: 0 10px 20px rgba(30, 20, 40, .24); }
.aizw-ctc-btn svg { width: 19px; height: 19px; }
.aizw-ctc-btn img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.aizw-ctc-qr { position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translateX(-50%) scale(.92); transform-origin: bottom center; opacity: 0; visibility: hidden; pointer-events: none; transition: .18s ease; background: #fff; padding: 8px 8px 6px; border-radius: 12px; box-shadow: 0 12px 30px rgba(20, 10, 30, .22); z-index: 30; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.aizw-ctc-item:hover .aizw-ctc-qr { opacity: 1; visibility: visible; transform: translateX(-50%) scale(1); }
.aizw-ctc-qr img { width: 112px; height: 112px; object-fit: contain; display: block; }
.aizw-ctc-qr i { font-style: normal; font-size: 11px; color: #8a8496; }
.aizw-ctc-qr::after { content: ""; position: absolute; left: 50%; bottom: -6px; margin-left: -6px; border: 6px solid transparent; border-top-color: #fff; }
html.dark .aizw-ctc { border-top-color: #3a3644; }
html.dark .aizw-ctc-qr { background: #2b2833; }
html.dark .aizw-ctc-qr::after { border-top-color: #2b2833; }

/* =============================================================
 * v2.31 顶部导航样式（后台可选，classic 为默认）
 * ============================================================= */
/* 3. 居中 Logo：菜单在左、Logo 居中、工具在右 */
.aizw-nav-center > div { grid-template-columns: 1fr auto 1fr !important; }
.aizw-nav-center > div > div:nth-child(1) { order: 2; justify-content: center; }
.aizw-nav-center > div > div:nth-child(2) { order: 1; min-width: 0; }
.aizw-nav-center > div > div:nth-child(3) { order: 3; justify-content: flex-end; }
.aizw-nav-center > div > div:nth-child(1) .aizw-logo span { font-size: 20px; letter-spacing: .04em; }

/* 2. 毛玻璃 */
.aizw-nav-glass { background: rgba(255, 255, 255, .55) !important; -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4); border-bottom-color: rgba(var(--brand-rgb), .14) !important; box-shadow: 0 10px 30px rgba(var(--brand-rgb), .1); }

/* 4. 胶囊（v2.33 重做：整条导航悬浮成胶囊，Logo / 菜单 / 工具组全部收进去）
   参考图特征：页面底色上浮起一条白色大圆角胶囊，内部菜单项也是胶囊；
   选中 = 品牌色实心胶囊，悬停 = 白底 + 品牌细描边 + 轻微上浮。 */
.aizw-nav-pill {
  background: transparent !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  padding: 12px 20px;
}
.aizw-nav-pill > div {
  max-width: 1180px;
  height: 62px !important;
  padding: 0 10px 0 20px;
  background: #fff;
  border: 1px solid rgba(31, 22, 38, .05);
  border-radius: 999px;
  box-shadow: 0 10px 30px rgba(31, 22, 38, .1), 0 2px 8px rgba(31, 22, 38, .05);
  transition: box-shadow .28s ease, transform .28s ease;
}
/* 滚动后胶囊轻微上浮 + 阴影加深，强化「浮在页面上」的层次 */
.aizw-nav-pill.is-scrolled > div { box-shadow: 0 16px 42px rgba(31, 22, 38, .16), 0 3px 10px rgba(31, 22, 38, .08); transform: translateY(-2px); }
.aizw-nav-pill #divTopNav ul { gap: 4px; }
.aizw-nav-pill #divTopNav li a {
  padding: 9px 20px;
  border-radius: 999px;
  font-size: 14.5px;
  font-weight: 600;
  color: #4c3d46;
  background: transparent;
  transition: background .22s ease, color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.aizw-nav-pill #divTopNav li a:hover {
  background: #fff;
  color: var(--brand-d);
  transform: translateY(-1px);
  box-shadow: inset 0 0 0 1.5px var(--brand-l2), 0 6px 16px rgba(var(--brand-rgb), .12);
}
.aizw-nav-pill #divTopNav li a.on,
.aizw-nav-pill #divTopNav li.current a {
  color: #fff;
  background: linear-gradient(135deg, var(--brand) 0%, var(--brand-l) 100%);
  box-shadow: 0 8px 18px rgba(var(--brand-rgb), .32);
}
.aizw-nav-pill #divTopNav li a.on:hover,
.aizw-nav-pill #divTopNav li.current a:hover {
  color: #fff;
  background: linear-gradient(135deg, var(--brand) 0%, var(--brand-l) 100%);
  box-shadow: 0 10px 22px rgba(var(--brand-rgb), .4);
}
/* 右侧工具组（搜索 / 语言 / 昼夜 / 用户）：同样是圆形胶囊 */
.aizw-nav-pill > div > div:last-child > button,
.aizw-nav-pill .aizw-lang-btn { border-radius: 999px; transition: background .2s ease, color .2s ease, transform .2s ease; }
.aizw-nav-pill > div > div:last-child > button:hover,
.aizw-nav-pill .aizw-lang-btn:hover { background: var(--brand-s); color: var(--brand-d); transform: translateY(-1px); }
html.dark .aizw-nav-pill > div { background: #232130; border-color: rgba(255, 255, 255, .07); box-shadow: 0 14px 36px rgba(0, 0, 0, .45); }
html.dark .aizw-nav-pill #divTopNav li a { color: #ded8e6; }
html.dark .aizw-nav-pill #divTopNav li a:hover { background: #2f2c3c; color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .1); }
html.dark .aizw-nav-pill > div > div:last-child > button:hover,
html.dark .aizw-nav-pill .aizw-lang-btn:hover { background: rgba(255, 255, 255, .1); color: #fff; }
/* 移动端不悬浮（空间不够），回退成通栏 */
@media (max-width: 1023px) {
  .aizw-nav-pill { padding: 0; background: #fff !important; border-bottom: 1px solid var(--brand-l2) !important; }
  .aizw-nav-pill > div { max-width: none; height: 56px !important; padding: 0 16px; background: transparent; border: 0; border-radius: 0; box-shadow: none; transform: none; }
  html.dark .aizw-nav-pill { background: #201e2b !important; }
}

/* 5. 下划线动效 */
.aizw-nav-underline #divTopNav li a { border-radius: 0; padding: 10px 12px; position: relative; background: none; }
.aizw-nav-underline #divTopNav li a::after { content: ""; position: absolute; left: 50%; bottom: 3px; width: 0; height: 2px; border-radius: 2px; background: var(--brand); transform: translateX(-50%); transition: width .22s ease; }
.aizw-nav-underline #divTopNav li a:hover { background: none; color: var(--brand); }
.aizw-nav-underline #divTopNav li a:hover::after { width: 62%; }
.aizw-nav-underline #divTopNav li a.on, .aizw-nav-underline #divTopNav li.current a { background: none; color: var(--brand); font-weight: 700; }
.aizw-nav-underline #divTopNav li a.on::after, .aizw-nav-underline #divTopNav li.current a::after { width: 62%; }

/* 6. 品牌渐变 */
.aizw-nav-gradient { background: linear-gradient(100deg, var(--brand) 0%, var(--brand-l) 52%, var(--brand) 100%) !important; border-bottom: 0 !important; box-shadow: 0 8px 26px rgba(var(--brand-rgb), .3); }
.aizw-nav-gradient .aizw-logo span { color: #fff !important; }
.aizw-nav-gradient #divTopNav li a { color: rgba(255, 255, 255, .92); }
.aizw-nav-gradient #divTopNav li a:hover { background: rgba(255, 255, 255, .2); color: #fff; }
.aizw-nav-gradient #divTopNav li a.on, .aizw-nav-gradient #divTopNav li.current a { background: rgba(255, 255, 255, .26); color: #fff; }
.aizw-nav-gradient button, .aizw-nav-gradient .aizw-user-box button { color: #fff !important; }
.aizw-nav-gradient button:hover { background: rgba(255, 255, 255, .16) !important; }

/* 7. 暗黑 */
.aizw-nav-dark { background: #16141c !important; border-bottom-color: rgba(255, 255, 255, .08) !important; }
.aizw-nav-dark .aizw-logo span { color: #fff !important; }
.aizw-nav-dark #divTopNav li a { color: #d9d3e2; }
.aizw-nav-dark #divTopNav li a:hover { background: rgba(255, 255, 255, .09); color: #fff; }
.aizw-nav-dark #divTopNav li a.on, .aizw-nav-dark #divTopNav li.current a { background: var(--brand); color: #fff; }
.aizw-nav-dark button { color: #efeaf5 !important; }
.aizw-nav-dark button:hover { background: rgba(255, 255, 255, .1) !important; }

/* 8. 大面板下拉（Mega Menu）：菜单里带二级 UL 时自动变成宽面板 */
.aizw-nav-mega #divTopNav ul { gap: 10px; }
.aizw-nav-mega #divTopNav li { position: relative; }
.aizw-nav-mega #divTopNav li a { padding: 8px 14px; border-radius: 8px; }
.aizw-nav-mega #divTopNav li > ul { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)); gap: 4px; position: absolute; top: calc(100% + 6px); left: 50%; width: 540px; padding: 14px; margin: 0; background: #fff; border-radius: 14px; box-shadow: 0 20px 48px rgba(20, 10, 30, .16); opacity: 0; visibility: hidden; transform: translateX(-50%) translateY(8px); transition: .2s ease; z-index: 40; }
.aizw-nav-mega #divTopNav li:hover > ul { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.aizw-nav-mega #divTopNav li > ul li a { border-radius: 8px; padding: 8px 12px; }
.aizw-nav-mega #divTopNav li > ul li a:hover { background: var(--brand-s); }
html.dark .aizw-nav-mega #divTopNav li > ul { background: #262431; }
html.dark .aizw-nav-glass { background: rgba(24, 22, 30, .62) !important; }

@media (max-width: 1023px) {
  .aizw-nav-center > div { grid-template-columns: auto 1fr auto !important; }
  .aizw-nav-center > div > div { order: initial !important; }
}

/* v2.31 说说 meta 行修正（#aizwPostList a 的 block 规则会影响到评论数字） */
.aizw-mom-meta a { display: inline-flex; align-items: center; gap: 4px; color: inherit; text-decoration: none; width: auto; }
.aizw-mom-meta a:hover { color: var(--brand); }
.aizw-mom-meta b { font-weight: 600; }
.aizw-mom-meta { flex-wrap: wrap; row-gap: 6px; }

/* v2.33 胶囊深色模式：品牌色 logo 在深底上过暗，提亮成白色 */
html.dark .aizw-nav-pill .aizw-logo span { color: #fff !important; }

/* =============================================================
 * v2.34 公告条气泡化：浅色模式下也要有可辨识的卡片底
 * （原来背景取 var(--brand-s)，浅色下几乎与页面同色，看着像没有背景）
 * ============================================================= */
.aizw-notice {
  border: 1px solid var(--brand-l2);
  border-radius: 14px;
  box-shadow: 0 6px 20px rgba(var(--brand-rgb), .1), inset 0 1px 0 rgba(255, 255, 255, .7);
}
/* 浅色：在配置底色上叠一层白色高光，形成气泡质感（背景色仍透出来） */
html:not(.dark) .aizw-notice {
  background-image: linear-gradient(118deg, rgba(255, 255, 255, .88) 0%, rgba(255, 255, 255, .34) 54%, rgba(var(--brand-rgb), .1) 100%) !important;
}
/* 「公告」小标签做成实心胶囊 */
.aizw-notice > span:first-child {
  padding: 3px 11px;
  border-radius: 999px;
  background: rgba(var(--brand-rgb), .13);
  font-size: 12.5px;
  line-height: 1.5;
  font-weight: 700;
}
html.dark .aizw-notice {
  border-color: rgba(255, 255, 255, .09);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .38), inset 0 1px 0 rgba(255, 255, 255, .05);
}
html.dark .aizw-notice > span:first-child { background: rgba(255, 255, 255, .1); }

/* =============================================================
 * v2.36 导航 hover 胶囊完整性 + Canvas 涟漪画布
 * ============================================================= */
/* 菜单项不被 flex 压缩：窗口偏窄时 hover 胶囊会保持完整宽度，不会被文字顶破 */
#divTopNav li { flex: 0 0 auto; }
#divTopNav li a { flex: 0 0 auto; box-sizing: border-box; white-space: nowrap; }
/* 给容器留出内边距，hover 描边/投影不会在滚动容器边缘被裁掉 */
.aizw-nav-pill > div > div:nth-child(2) { min-width: 0; }
.aizw-nav-pill #divTopNav { padding: 4px 6px; margin: -4px -6px; }

/* Canvas 水面涟漪层 */
.aizw-fx-canvas { position: fixed; left: 0; top: 0; pointer-events: none; z-index: 9998; }

/* v2.37 胶囊导航 hover 胶囊"显示不全"根治：
   原来用 inset box-shadow 画描边，在滚动容器/缩放/亚像素下容易出现边缘缺失；
   改成「默认透明边框 + hover 实色边框」，边框就是元素盒子本身，尺寸恒定且必然包住整段文字。 */
.aizw-nav-pill #divTopNav li a { border: 1.5px solid transparent; }
.aizw-nav-pill #divTopNav li a:hover {
  border-color: var(--brand-l2);
  box-shadow: 0 6px 16px rgba(var(--brand-rgb), .12);
}
.aizw-nav-pill #divTopNav li a.on,
.aizw-nav-pill #divTopNav li.current a { border-color: transparent; }
/* 桌面端菜单不裁切 hover 阴影；窄屏仍保留横向滚动 */
@media (min-width: 1024px) {
  .aizw-nav-pill #divTopNav { overflow: visible; }
}

/* =============================================================
 * v2.39 多图画廊（左右切换）/ 上下篇 / 单图卡 / 下载卡 / 列表 / 导航流光 / 透明水波
 * ============================================================= */

/* ---- 多图：左右切换大图 + 缩略图条 ---- */
.aizw-gal-card { position: relative; }
.aizw-gal-title { margin: 6px 0 0; font-size: 19px; line-height: 1.4; font-weight: 700; color: #3a2a33; }
.aizw-gal-body { padding: 14px 22px 22px; }
.aizw-gal-intro { padding: 0 22px 22px; font-size: 14px; line-height: 1.8; color: #6d6271; }
.aizw-gslider { position: relative; padding: 14px 14px 12px; border-radius: 20px; background: linear-gradient(158deg, #fff 0%, #fdf8fc 100%); box-shadow: inset 0 0 0 1px var(--brand-l2); }
/* 参考图的斜贴纸装饰（纯 CSS，不依赖素材） */
.aizw-gslider::before { content: ""; position: absolute; right: -10px; top: -9px; width: 66px; height: 19px; transform: rotate(38deg); border-radius: 3px; background: repeating-linear-gradient(45deg, rgba(178, 128, 240, .85) 0 5px, rgba(206, 166, 250, .85) 5px 10px); box-shadow: 0 3px 8px rgba(60, 30, 80, .16); }
.aizw-gslider::after { content: ""; position: absolute; left: -12px; bottom: -8px; width: 58px; height: 18px; transform: rotate(38deg); border-radius: 3px; background: repeating-linear-gradient(45deg, rgba(126, 200, 160, .85) 0 5px, rgba(168, 224, 188, .85) 5px 10px); box-shadow: 0 3px 8px rgba(30, 70, 50, .14); }
.aizw-gslider-stage { position: relative; aspect-ratio: 16 / 10; border-radius: 13px; overflow: hidden; background: #f1ecf3; }
.aizw-gslider-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; opacity: 0; transform: scale(1.025); transition: opacity .38s ease, transform .55s ease; }
.aizw-gslider-img.is-on { opacity: 1; transform: scale(1); }
.aizw-gslider-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .86); color: #5f5263; box-shadow: 0 4px 14px rgba(30, 20, 40, .18); cursor: pointer; transition: background .2s, transform .2s, color .2s; z-index: 2; }
.aizw-gslider-btn:hover { background: var(--brand); color: #fff; transform: translateY(-50%) scale(1.08); }
.aizw-gslider-btn svg { width: 20px; height: 20px; }
.aizw-gslider-btn.is-prev { left: 12px; }
.aizw-gslider-btn.is-next { right: 12px; }
.aizw-gslider-num { position: absolute; right: 12px; top: 10px; padding: 3px 10px; border-radius: 999px; background: rgba(255, 255, 255, .88); color: #574b5b; font-size: 12px; letter-spacing: .04em; z-index: 2; }
.aizw-gslider-num b { font-weight: 800; color: var(--brand-d); }
.aizw-gslider-thumbs { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; padding: 3px 2px 5px; scrollbar-width: thin; }
.aizw-gslider-th { flex: 0 0 auto; width: 76px; height: 56px; padding: 0; border: 2px solid transparent; border-radius: 9px; overflow: hidden; background: #f7f0f6; opacity: .62; cursor: pointer; transition: opacity .2s, border-color .2s, transform .2s; }
.aizw-gslider-th:hover { opacity: 1; transform: translateY(-2px); }
.aizw-gslider-th.is-on { opacity: 1; border-color: var(--brand); box-shadow: 0 4px 12px rgba(var(--brand-rgb), .2); }
.aizw-gslider-th img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---- 上一篇 / 下一篇（带箭头图标） ---- */
.aizw-prevnext { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 20px; padding: 14px 20px; border-radius: 18px; background: #fff; border: 1px solid var(--brand-s2); box-shadow: 0 6px 20px rgba(var(--brand-rgb), .05); }
.aizw-pn { display: inline-flex; align-items: center; gap: 9px; min-width: 0; color: #5f5263; text-decoration: none; transition: color .2s, transform .2s; }
a.aizw-pn:hover { color: var(--brand-d); transform: translateX(-2px); }
a.aizw-pn.is-next:hover { transform: translateX(2px); }
.aizw-pn svg { flex: 0 0 auto; width: 18px; height: 18px; color: var(--brand); }
.aizw-pn-txt { min-width: 0; }
.aizw-pn-txt i { display: block; font-style: normal; font-size: 11px; color: #a9a1ab; }
.aizw-pn-txt b { display: block; margin-top: 2px; max-width: 230px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; }
.aizw-pn.is-next { text-align: right; }
.aizw-pn.is-disabled { opacity: .42; }
html.dark .aizw-prevnext { background: #262431; border-color: #3a3644; }
html.dark .aizw-gal-title, html.dark .aizw-imgcard-title { color: #f0edf5; }
html.dark .aizw-gslider { background: #2a2735; }
html.dark .aizw-gslider-stage { background: #1d1b26; }

/* ---- 单图卡：统一比例，避免竖图把整列撑爆 ---- */
.aizw-imgcard { border-radius: 15px; }
.aizw-imgcard-cover { display: block; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; background: var(--brand-s); }
.aizw-imgcard-cover img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; max-height: 250px; }
.aizw-imgcard-body { padding: 12px 14px 14px; }
.aizw-imgcard-meta { display: flex; align-items: center; gap: 8px; font-size: 11px; color: #a9a1ab; }
.aizw-imgcard-title { margin: 8px 0 0; font-size: 15px; font-weight: 700; line-height: 1.45; color: #3a2a33; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.aizw-imgcard-intro { margin: 6px 0 0; font-size: 12.5px; line-height: 1.65; color: #857a89; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ---- 下载卡：任何视图下都保持单列横向卡 ---- */
.aizw-dllist > .aizw-card { width: 100%; }
.aizw-dllist .aizw-card { min-height: 112px; }

/* ---- 列表视图：卡片等高（有封面 / 无封面一致） ---- */
#aizwPostList.aizw-view-list .aizw-lvwrap .aizw-card { min-height: 134px; }
#aizwPostList.aizw-view-list .aizw-lvwrap .aizw-card > a:first-child { width: 128px; min-width: 128px; align-self: stretch; }
#aizwPostList.aizw-view-list .aizw-lvone .aizw-card { min-height: 134px; }
@media (max-width: 899px) { #aizwPostList.aizw-view-list .aizw-lvwrap .aizw-card { min-height: 112px; } }

/* ---- 导航 hover：3px 边框 + 流光追逐 ---- */
.aizw-nav-pill #divTopNav li a { border: 3px solid transparent; }
.aizw-nav-pill #divTopNav li a:hover { border-color: var(--brand-l2); }
.aizw-nav-pill #divTopNav li a.on,
.aizw-nav-pill #divTopNav li.current a { border-color: transparent; }
.aizw-nav-pill #divTopNav li a { position: relative; isolation: isolate; }
.aizw-nav-pill #divTopNav li a:hover::after {
  content: ""; position: absolute; inset: -60%; z-index: -1; border-radius: 999px; pointer-events: none;
  background: conic-gradient(from 0deg, transparent 0 62%, rgba(255, 255, 255, .05) 68%, rgba(255, 255, 255, .95) 78%, rgba(150, 205, 255, .95) 83%, transparent 90%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor; mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask-composite: exclude;
  padding: 3px; animation: aizwNavChase 1.25s linear infinite;
}
@keyframes aizwNavChase { to { transform: rotate(360deg); } }

/* ---- 透明水波：SVG 折射透镜层（颜色完全中性，不取主题主色） ---- */
.aizw-water-lens { position: fixed; left: 0; top: 0; border-radius: 50%; pointer-events: none; z-index: 9997; transform: translate(-50%, -50%) scale(.05); opacity: 0; -webkit-backdrop-filter: url('#aizwWaterRefract'); backdrop-filter: url('#aizwWaterRefract'); -webkit-mask-image: radial-gradient(circle, #000 0 56%, rgba(0, 0, 0, .55) 74%, transparent 100%); mask-image: radial-gradient(circle, #000 0 56%, rgba(0, 0, 0, .55) 74%, transparent 100%); animation: aizwLens 1.05s cubic-bezier(.16, .62, .28, 1) forwards; }
@keyframes aizwLens { 0% { transform: translate(-50%, -50%) scale(.05); opacity: .95; } 70% { opacity: .55; } 100% { transform: translate(-50%, -50%) scale(1); opacity: 0; } }
/* 只有浏览器真的支持 SVG 引用的 backdrop-filter 时才启用折射层 */
@supports not (backdrop-filter: url('#aizwWaterRefract')) { .aizw-water-lens { display: none; } }
@media (hover: none) { .aizw-water-lens { display: none; } }

/* 列表视图：无封面卡片补等宽渐变占位，保证双列背景一致 */
#aizwPostList.aizw-view-list .aizw-lvwrap .aizw-lv-ph { width: 128px; min-width: 128px; align-self: stretch; border-radius: 12px; background: linear-gradient(135deg, var(--brand-s), var(--brand-l2)); }

/* v2.39 列表视图统一为「左封面 + 右文字」的等高横向卡（修美文两列背景高低不一） */
#aizwPostList.aizw-view-list .aizw-lvwrap .aizw-card,
#aizwPostList.aizw-view-list .aizw-lvone .aizw-card {
  flex-direction: row;
  align-items: stretch;
  height: 136px;
  min-height: 136px;
  max-height: 136px;
  overflow: hidden;
}
#aizwPostList.aizw-view-list .aizw-lvwrap .aizw-card > a:first-child,
#aizwPostList.aizw-view-list .aizw-lvone .aizw-card > a:first-child {
  flex: 0 0 156px;
  width: 156px;
  min-width: 156px;
  height: 100%;
  aspect-ratio: auto;
  align-self: stretch;
  overflow: hidden;
}
#aizwPostList.aizw-view-list .aizw-lvwrap .aizw-card > a:first-child img,
#aizwPostList.aizw-view-list .aizw-lvone .aizw-card > a:first-child img { width: 100%; height: 100%; object-fit: cover; }
#aizwPostList.aizw-view-list .aizw-lvwrap .aizw-lv-ph { flex: 0 0 156px; width: 156px; min-width: 156px; height: 100%; border-radius: 0; }
#aizwPostList.aizw-view-list .aizw-lvwrap .aizw-card > div,
#aizwPostList.aizw-view-list .aizw-lvone .aizw-card > div { flex: 1; min-width: 0; overflow: hidden; }
#aizwPostList.aizw-view-list .aizw-lvwrap .aizw-card h2,
#aizwPostList.aizw-view-list .aizw-lvone .aizw-card h2 { margin-top: 6px; font-size: 14px; }
#aizwPostList.aizw-view-list .aizw-lvwrap .aizw-card p,
#aizwPostList.aizw-view-list .aizw-lvone .aizw-card p { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; margin-top: 4px; }
@media (max-width: 899px) {
  #aizwPostList.aizw-view-list .aizw-lvwrap .aizw-card,
  #aizwPostList.aizw-view-list .aizw-lvone .aizw-card { height: 118px; min-height: 118px; max-height: 118px; }
  #aizwPostList.aizw-view-list .aizw-lvwrap .aizw-card > a:first-child,
  #aizwPostList.aizw-view-list .aizw-lvone .aizw-card > a:first-child { flex-basis: 118px; width: 118px; min-width: 118px; }
}

/* 单图卡封面：无图 / 破图时露出品牌渐变 + 标题首字，卡片高度仍统一 */
.aizw-imgcard-cover { position: relative; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--brand-l2), var(--brand-s)); }
.aizw-imgcard-cover img { position: relative; z-index: 1; }
.aizw-imgcard-ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 38px; font-weight: 800; color: var(--brand-d); opacity: .55; }

/* =============================================================
 * v2.43  缩略图滚动条 / 全站上下篇 / 多图瀑布流 / 列表光效 / 导航流光
 * ============================================================= */

/* ---- 1. 多图画廊缩略图条：隐藏系统滚动条，换极细自定义指示条 ---- */
.aizw-gslider-thumbs { scrollbar-width: none; -ms-overflow-style: none; }
.aizw-gslider-thumbs::-webkit-scrollbar { display: none; width: 0; height: 0; }
.aizw-gslider-bar {
  position: relative; height: 4px; margin: 8px 16px 2px; border-radius: 999px;
  background: rgba(90, 70, 110, .07); overflow: hidden; opacity: 0;
  transition: opacity .3s ease;
}
.aizw-gslider-bar.is-on { opacity: 1; }
.aizw-gslider-bar i {
  display: block; position: absolute; left: 0; top: 0; height: 100%; width: 28px;
  border-radius: 999px; background: linear-gradient(90deg, var(--brand-l), var(--brand));
  transition: transform .12s linear, width .2s ease;
}
html.dark .aizw-gslider-bar { background: rgba(255, 255, 255, .08); }

/* ---- 2. 全站内页统一上下篇：左右独立圆角卡 + 图标 ---- */
.aizw-prevnext.aizw-pn-split {
  background: transparent; border: 0; box-shadow: none; padding: 0;
  gap: 12px; align-items: stretch;
}
.aizw-prevnext.aizw-pn-split .aizw-pn {
  flex: 1 1 0; min-width: 0; padding: 12px 16px; border-radius: 16px;
  background: #fff; border: 1px solid var(--brand-s2);
  box-shadow: 0 4px 14px rgba(var(--brand-rgb), .05);
  transition: transform .22s ease, box-shadow .22s ease, color .22s ease;
}
.aizw-prevnext.aizw-pn-split a.aizw-pn:hover {
  box-shadow: 0 10px 24px rgba(var(--brand-rgb), .13);
}
.aizw-prevnext.aizw-pn-split .aizw-pn svg {
  flex: 0 0 auto; width: 20px; height: 20px; padding: 3px; border-radius: 50%;
  background: rgba(var(--brand-rgb), .10);
}
.aizw-prevnext.aizw-pn-split .aizw-pn-txt b { max-width: 100%; }
html.dark .aizw-prevnext.aizw-pn-split { background: transparent; border: 0; box-shadow: none; }
html.dark .aizw-prevnext.aizw-pn-split .aizw-pn {
  background: #262431; border-color: #3a3644; box-shadow: none; color: #ded8e6;
}
html.dark .aizw-prevnext.aizw-pn-split .aizw-pn svg { background: rgba(255, 255, 255, .1); }
@media (max-width: 599px) {
  .aizw-prevnext.aizw-pn-split { flex-direction: column; }
  .aizw-prevnext.aizw-pn-split .aizw-pn.is-next { text-align: left; }
}

/* ---- 3. 首页多图固定卡片瀑布流（不参与列表模式） ---- */
.aizw-multilist { column-count: 2; column-gap: 14px; }
.aizw-multilist > .aizw-card {
  break-inside: avoid; -webkit-column-break-inside: avoid; page-break-inside: avoid;
  display: inline-block; width: 100%; margin: 0 0 14px;
}
@media (min-width: 1024px) { .aizw-multilist { column-count: 3; } }

/* ---- 4. 美文列表：单列条目右侧留白填入动态光效与装饰元素 ---- */
#aizwPostList.aizw-view-list .aizw-lvone .aizw-card { position: relative; isolation: isolate; }
#aizwPostList.aizw-view-list .aizw-lvone .aizw-card > * { position: relative; z-index: 1; }
#aizwPostList.aizw-view-list .aizw-lvone .aizw-card::before {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  right: -6%; top: -170%; width: 46%; height: 440%;
  background: radial-gradient(ellipse at center,
    rgba(255, 255, 255, .95) 0%,
    rgba(var(--brand-rgb), .11) 36%,
    rgba(150, 195, 255, .07) 58%,
    transparent 76%);
  transform: rotate(16deg);
  animation: aizwLvAura 8s ease-in-out infinite alternate;
}
#aizwPostList.aizw-view-list .aizw-lvone .aizw-card::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(105deg,
    transparent 30%, rgba(255, 255, 255, .55) 44%,
    rgba(190, 215, 255, .28) 50%, transparent 64%);
  background-size: 260% 100%; background-repeat: no-repeat;
  animation: aizwLvSweep 6.5s ease-in-out infinite;
}
@keyframes aizwLvAura {
  from { transform: rotate(16deg) translateY(-9%); opacity: .6; }
  to   { transform: rotate(16deg) translateY(9%);  opacity: 1; }
}
@keyframes aizwLvSweep {
  0%, 16%   { background-position: 180% 0; }
  64%, 100% { background-position: -80% 0; }
}
/* 右侧装饰：大号序号 + 呼吸光环 + 浮动光点 */
.aizw-lv-deco {
  position: absolute !important; z-index: 0; right: 30px; top: 50%;
  width: 170px; height: 100px; transform: translateY(-50%);
  display: flex; align-items: center; justify-content: flex-end; gap: 9px;
  pointer-events: none;
}
.aizw-lv-deco b {
  font-size: 44px; font-weight: 800; letter-spacing: -.05em; line-height: 1;
  color: rgba(var(--brand-rgb), .10); font-variant-numeric: tabular-nums;
}
.aizw-lv-deco::before {
  content: ""; position: absolute; right: -6px; top: 50%; width: 82px; height: 82px;
  margin-top: -41px; border-radius: 50%;
  border: 1px solid rgba(var(--brand-rgb), .13);
  box-shadow: 0 0 0 13px rgba(var(--brand-rgb), .04), 0 0 0 27px rgba(var(--brand-rgb), .02);
  animation: aizwLvRing 10s linear infinite;
}
.aizw-lv-deco i {
  display: block; position: relative; width: 7px; height: 7px; border-radius: 50%;
  background: rgba(var(--brand-rgb), .22); animation: aizwLvDot 3.4s ease-in-out infinite;
}
.aizw-lv-deco i:nth-of-type(1) { width: 13px; height: 13px; animation-delay: 0s; }
.aizw-lv-deco i:nth-of-type(2) { animation-delay: .5s; }
.aizw-lv-deco i:nth-of-type(3) { width: 5px; height: 5px; animation-delay: 1s; }
@keyframes aizwLvDot { 0%, 100% { transform: translateY(5px); opacity: .45; } 50% { transform: translateY(-6px); opacity: 1; } }
@keyframes aizwLvRing { to { transform: rotate(360deg); } }
html.dark #aizwPostList.aizw-view-list .aizw-lvone .aizw-card::before {
  background: radial-gradient(ellipse at center,
    rgba(255, 255, 255, .10) 0%, rgba(var(--brand-rgb), .14) 38%, transparent 76%);
}
html.dark #aizwPostList.aizw-view-list .aizw-lvone .aizw-card::after {
  background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, .07) 46%, transparent 64%);
  background-size: 260% 100%; background-repeat: no-repeat;
}
@media (prefers-reduced-motion: reduce) {
  #aizwPostList.aizw-view-list .aizw-lvone .aizw-card::before,
  #aizwPostList.aizw-view-list .aizw-lvone .aizw-card::after,
  .aizw-lv-deco::before, .aizw-lv-deco i { animation-duration: 18s; }
}

/* ---- 5. 导航 hover 流光：严格锁在 3px 胶囊边框线上 ---- */
@property --aizwChase { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
.aizw-nav-pill #divTopNav li a:hover::after {
  inset: -3px;              /* 只外扩一个边框宽，流光正好压在 3px 边框线上 */
  z-index: 1;               /* 旧版 -1 会被 a 的白底盖住，只剩外圈弧线 */
  transform: none;
  border-radius: 999px;
  background: conic-gradient(from 0deg,
    transparent 0 60%, rgba(255, 255, 255, .06) 68%,
    rgba(255, 255, 255, .98) 77%, rgba(150, 205, 255, .98) 82%,
    rgba(255, 255, 255, .35) 86%, transparent 92%);
  background: conic-gradient(from var(--aizwChase),
    transparent 0 60%, rgba(255, 255, 255, .06) 68%,
    rgba(255, 255, 255, .98) 77%, rgba(150, 205, 255, .98) 82%,
    rgba(255, 255, 255, .35) 86%, transparent 92%);
  animation: aizwNavChaseLine 1.25s linear infinite;
}
@keyframes aizwNavChaseLine { to { --aizwChase: 360deg; } }
/* 激活态：实心胶囊保持纯净，不跑流光、不出现透明边框直边 */
.aizw-nav-pill #divTopNav li a.on,
.aizw-nav-pill #divTopNav li.current a {
  box-sizing: border-box;
  border: 3px solid transparent !important;
  border-radius: 999px !important;
  background-clip: padding-box;
  outline: none;
  overflow: hidden;
}
.aizw-nav-pill #divTopNav li a.on:hover::after,
.aizw-nav-pill #divTopNav li.current a:hover::after { display: none; }

/* ---- 6. 点击水波透镜与动画时长同步放大 ---- */
.aizw-water-lens { animation-duration: 1.35s !important; }


/* ---- v2.45-1 多图瀑布流（JS 分列，少量卡片也稳定 3 列） ---- */
.aizw-multilist.aizw-wf-js { column-count: initial; column-gap: 0; display: block; }
.aizw-multilist-cols { display: flex; align-items: flex-start; gap: 14px; }
.aizw-multilist-col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.aizw-multilist.aizw-wf-js .aizw-card,
.aizw-multilist-col > .aizw-card {
  display: block; width: 100%; margin: 0; break-inside: auto; -webkit-column-break-inside: auto;
}

/* ---- v2.45-2 联系我们图标：超过 4 个按组左右切换 ---- */
.aizw-ctc-hd.aizw-ctc-hd-nav { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 9px; }
.aizw-ctc-nav {
  width: 22px; height: 22px; flex: 0 0 auto; padding: 0; border-radius: 50%;
  border: 1px solid var(--brand-l2); background: transparent; color: var(--brand);
  font-size: 15px; line-height: 1; cursor: pointer; display: inline-flex;
  align-items: center; justify-content: center; transition: background .18s, color .18s, transform .18s;
}
.aizw-ctc-nav:hover { background: var(--brand); border-color: var(--brand); color: #fff; transform: scale(1.08); }
.aizw-ctc-nav:active { transform: scale(.94); }
.aizw-ctc-dots { display: flex; justify-content: center; gap: 5px; margin-top: 9px; }
.aizw-ctc-dots i { width: 5px; height: 5px; border-radius: 999px; background: var(--brand-l2); transition: width .25s ease, background .25s ease; }
.aizw-ctc-dots i.on { width: 14px; background: var(--brand); }
.aizw-ctc-item.aizw-ctc-in { animation: aizwCtcIn .34s cubic-bezier(.22,.61,.36,1) both; }
@keyframes aizwCtcIn { from { opacity: 0; transform: translateY(7px) scale(.9); } to { opacity: 1; transform: none; } }
html.dark .aizw-ctc-nav { border-color: #3a3644; color: #c9b8e8; }
html.dark .aizw-ctc-nav:hover { background: var(--brand); color: #fff; }

/* ---- v2.45-3 全站内页上下篇统一宽度（不同父容器下也对齐） ---- */
.aizw-prevnext.aizw-pn-split { width: 100%; max-width: 732px; margin-left: auto; margin-right: auto; }


/* ---- v2.46 联系我们卡片：深色标题条 + 青绿内容区 + 贴边半圆切换按钮 ---- */
.aizw-ctc {
  margin-top: 14px; padding: 0; border: 0; border-radius: 16px;
  background: #fff; box-shadow: 0 6px 20px rgba(30, 20, 40, .08); position: relative;
}
.aizw-ctc-hd {
  margin: 0; padding: 11px 10px 12px; border-radius: 16px 16px 0 0;
  background: #3b3b3d; color: #fff; text-align: center;
  font-size: 15px; font-weight: 700; letter-spacing: .08em;
}
.aizw-ctc-body {
  position: relative; padding: 16px 24px 12px; border-radius: 0 0 16px 16px;
  background: #63cdbf;
}
.aizw-ctc-body .aizw-ctc-row {
  display: flex; flex-wrap: nowrap; justify-content: center; align-items: center; gap: 8px;
}
.aizw-ctc-btn { width: 46px; height: 46px; box-shadow: 0 3px 10px rgba(20, 60, 60, .18); }
.aizw-ctc-btn svg { width: 24px; height: 24px; }
.aizw-ctc-nav {
  /* v2.50：垂直居中改用负 margin（height 44px 的一半），不再依赖 transform。
     旧写法 translateY(-50%) 会被 v2.45 段 :hover/:active 的 scale() 覆盖，
     导致 hover 时按钮丢失居中偏移、向下位移半个高度。 */
  position: absolute; top: 44%; margin-top: -22px;
  width: 24px; height: 44px; padding: 0; border: 0; background: #fff;
  color: #57c3b6; font-size: 19px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center; z-index: 2;
  transition: background .18s, color .18s, transform .18s;
}
.aizw-ctc-nav.is-prev { left: 0; border-radius: 0 999px 999px 0; }
.aizw-ctc-nav.is-next { right: 0; border-radius: 999px 0 0 999px; }
.aizw-ctc-nav:hover { background: #f0fffc; color: #2b9c8d; transform: scale(1.06); }
.aizw-ctc-nav:active { transform: scale(.96); }
.aizw-ctc-dots { display: flex; justify-content: center; gap: 5px; margin-top: 8px; }
.aizw-ctc-dots i {
  width: 5px; height: 5px; border-radius: 999px; background: rgba(255, 255, 255, .55);
  transition: width .25s ease, background .25s ease;
}
.aizw-ctc-dots i.on { width: 14px; background: #fff; }
html.dark .aizw-ctc { background: #262431; box-shadow: none; }
html.dark .aizw-ctc-hd { background: #2c2a33; color: #ece7f5; }
html.dark .aizw-ctc-body { background: #3a8f88; }
