/*
Theme Name: pxxacg
Theme URI:
Author:
Author URI:
Description: pxxacg主题 - 资源分享社区首页
Version: 1.0
Requires at least: 5.9
Requires PHP: 7.4
Text Domain: pxxacg
*/

/* ==========================================================================
   变量
   ========================================================================== */
:root{
  --pxxacg-pink-1: #ff8fc0;
  --pxxacg-pink-2: #ffd3e6;
  --pxxacg-purple: #7c5cff;
  --pxxacg-purple-2: #9c7bff;
  --pxxacg-teal: #12b981;
  --pxxacg-teal-2: #17d696;
  --pxxacg-blue: #3b82f6;
  --pxxacg-blue-2: #5b9bff;
  --pxxacg-amber: #f5a623;
  --pxxacg-amber-2: #ffc247;
  --pxxacg-red: #e0393e;
  --pxxacg-text: #1f2430;
  --pxxacg-text-light: #6b7280;
  --pxxacg-border: #ececef;
  --pxxacg-bg: #f7f7fb;
  --pxxacg-radius: 14px;
  --pxxacg-header-height: 64px;
}

* { box-sizing: border-box; }

body.pxxacg-theme{
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  color: var(--pxxacg-text);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}

a{ color: inherit; text-decoration: none; }
ul{ margin: 0; padding: 0; list-style: none; }
img{ max-width: 100%; display: block; }
button{ font-family: inherit; cursor: pointer; }

.pxxacg-container{
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
}

.pxxacg-header-container{
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 32px;
}

/* ==========================================================================
   顶部导航
   ========================================================================== */
.pxxacg-header{
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--pxxacg-bg);
  border-bottom: 1px solid var(--pxxacg-border);
}

.pxxacg-header-inner{
  display: flex;
  align-items: center;
  gap: 28px;
  height: var(--pxxacg-header-height);
}

.pxxacg-logo{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 19px;
  font-weight: 700;
  white-space: nowrap;
}
.pxxacg-logo .pxxacg-logo-mark{
  width: 32px;
  height: 32px;
  border-radius: 9px;
  background: linear-gradient(135deg, var(--pxxacg-purple), var(--pxxacg-pink-1));
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 15px;
}
.pxxacg-logo .pxxacg-logo-img{
  height: calc(var(--pxxacg-header-height) * 0.8);
  width: auto;
}

.pxxacg-nav{
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1;
}
.pxxacg-nav-item{
  position: relative;
}
.pxxacg-nav-link{
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 14.5px;
  color: var(--pxxacg-text);
}
.pxxacg-nav-link:hover,
.pxxacg-nav-item.pxxacg-active .pxxacg-nav-link{
  background: var(--pxxacg-bg);
  color: var(--pxxacg-purple);
}
.pxxacg-nav-link svg{ width: 16px; height: 16px; flex-shrink: 0; }
.pxxacg-nav-link .pxxacg-caret{
  width: 12px; height: 12px;
  opacity: .9;
  transition: transform .15s ease;
}
.pxxacg-nav-link .pxxacg-caret path{
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pxxacg-nav-item:hover .pxxacg-caret{ transform: rotate(180deg); opacity: 1; }

.pxxacg-submenu{
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 160px;
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: 10px;
  box-shadow: 0 12px 30px rgba(20,20,40,.09);
  padding: 6px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
  transition: all .15s ease;
}
.pxxacg-nav-item:hover .pxxacg-submenu,
.pxxacg-nav-item.pxxacg-open .pxxacg-submenu{
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.pxxacg-submenu a{
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 7px;
  font-size: 14px;
  color: var(--pxxacg-text);
}
.pxxacg-submenu a svg{
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: var(--pxxacg-text-light);
  transition: color .15s ease;
}
.pxxacg-submenu a:hover{ background: var(--pxxacg-bg); color: var(--pxxacg-purple); }
.pxxacg-submenu a:hover svg{ color: var(--pxxacg-purple); }

.pxxacg-header-actions{
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}

.pxxacg-btn{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 999px;
  font-size: 13.5px;
  font-weight: 600;
  border: 1px solid transparent;
}
.pxxacg-btn svg{ width: 14px; height: 14px; flex-shrink: 0; }
.pxxacg-btn-solid{
  background: var(--pxxacg-red);
  color: #fff;
}
.pxxacg-btn-outline-blue{
  border-color: var(--pxxacg-blue);
  color: var(--pxxacg-blue);
  background: #fff;
}
.pxxacg-btn-outline-green{
  border-color: var(--pxxacg-teal);
  color: var(--pxxacg-teal);
  background: #fff;
}
/* 推广赚钱：金色渐变实心，比旁边的描边按钮抢眼。
   文字用深棕而不是白色 —— 亮金底上白字对比度太低（约 2:1），深棕约 7:1 */
.pxxacg-btn-gold{
  background: linear-gradient(135deg, #ffd54a, #ffab1f);
  color: #5a3600;
  border-color: transparent;
  box-shadow: 0 4px 12px rgba(245, 166, 35, .38);
}
.pxxacg-btn-gold:hover{
  background: linear-gradient(135deg, #ffdf6d, #ffb534);
  box-shadow: 0 6px 16px rgba(245, 166, 35, .5);
}

.pxxacg-icon-btn{
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  color: var(--pxxacg-text-light);
}
.pxxacg-icon-btn:hover{ background: var(--pxxacg-bg); color: var(--pxxacg-text); }
.pxxacg-icon-btn svg{ width: 18px; height: 18px; }

.pxxacg-user{ position: relative; }
.pxxacg-user-avatar{
  width: 34px; height: 34px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.pxxacg-user-avatar img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 5px;
}
.pxxacg-user-menu{
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  width: 340px;
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: 14px;
  box-shadow: 0 14px 34px rgba(20,20,40,.1);
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
  transition: all .15s ease;
}
.pxxacg-user:hover .pxxacg-user-menu{
  opacity: 1; visibility: visible; transform: translateY(0);
}
.pxxacg-user-menu a{
  display: flex; align-items: center; gap: 10px;
  padding: 11px 12px;
  border-radius: 9px;
  font-size: 14.5px;
}
.pxxacg-user-menu a svg{ width: 18px; height: 18px; color: var(--pxxacg-text-light); flex-shrink: 0; }
.pxxacg-user-menu a:hover{ background: var(--pxxacg-bg); }
.pxxacg-user-menu .pxxacg-logout{ color: var(--pxxacg-red); }
.pxxacg-user-menu .pxxacg-logout svg{ color: var(--pxxacg-red); }

.pxxacg-user-menu-head{
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px 12px 14px;
  border-bottom: 1px solid var(--pxxacg-border);
  margin-bottom: 6px;
}
/* 头像 + 昵称/徽章/邮箱/ID 那一行；下面的一排三列是它的兄弟节点，
   所以三列的左边缘天然跟头像左边缘对齐（head 的 padding 就是头像的左内边距） */
.pxxacg-user-menu-head-top{
  display: flex;
  gap: 14px;
}
.pxxacg-user-menu-avatar{
  width: 56px; height: 56px; flex-shrink: 0;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid var(--pxxacg-border);
  display: flex; align-items: center; justify-content: center;
  background: #fff;
}
.pxxacg-user-menu-avatar img{ width: 100%; height: 100%; object-fit: contain; padding: 6px; }

.pxxacg-user-menu-info{ min-width: 0; flex: 1; }
.pxxacg-user-menu-name{
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 700;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pxxacg-user-menu-badges{ display: flex; align-items: center; gap: 6px; margin-bottom: 6px; flex-wrap: wrap; }
.pxxacg-badge-member,
.pxxacg-badge-balance{
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11.5px; font-weight: 700;
  padding: 3px 9px;
  border-radius: 999px;
}
.pxxacg-badge-member svg{ width: 12px; height: 12px; }
.pxxacg-badge-member{ background: var(--pxxacg-bg); color: var(--pxxacg-text-light); }
.pxxacg-badge-member-active{ background: #fff6dc; color: #b8860b; }
.pxxacg-badge-balance{ background: #e4f9ef; color: #0f9d63; }
.pxxacg-badge-balance svg{ width: 12px; height: 12px; }

.pxxacg-user-menu-email{
  margin: 0;
  font-size: 12.5px;
  color: var(--pxxacg-text-light);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pxxacg-user-menu-uid{
  margin: 2px 0 0;
  font-size: 12.5px;
  color: var(--pxxacg-text-light);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* 用户类型/到期/下载次数：左标签 + 右值的两列块。
   用底色块跟上面的邮箱、ID 拉开层次；标签长（今日剩余下载次数）也不换行，
   所以不并排三格，避免 300px 宽的悬浮菜单被挤爆 */
/* 三项状态：一排三列，整块占满菜单内容宽度 */
.pxxacg-user-menu-vip{
  display: flex;
  align-items: stretch;
  padding: 9px 4px;
  border-radius: 10px;
  background: var(--pxxacg-bg);
}
.pxxacg-user-menu-vip-cell{
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  text-align: center;
}
/* 列之间的竖分隔线（第一列左侧不加） */
.pxxacg-user-menu-vip-cell + .pxxacg-user-menu-vip-cell{
  border-left: 1px solid var(--pxxacg-border);
}
/* 值在上、标签在下，跟手机端「我的」页面那块统计格是同一套读法 */
.pxxacg-user-menu-vip-value{
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--pxxacg-text);
  white-space: nowrap;
}
.pxxacg-user-menu-vip-label{
  font-size: 11px;
  line-height: 1.2;
  color: var(--pxxacg-text-light);
  white-space: nowrap;
}
/* 会员类型用金色，跟菜单里的 .pxxacg-badge-member-active 同一支色，非会员保持中性色 */
.pxxacg-user-menu-vip-value-member{ color: #b8860b; }

.pxxacg-user-menu-divider{
  height: 1px;
  background: var(--pxxacg-border);
  margin: 6px 4px;
}

.pxxacg-guest-actions{ display: flex; gap: 8px; }
.pxxacg-guest-actions a{
  padding: 8px 16px;
  border-radius: 999px;
  font-size: 13.5px;
  font-weight: 600;
}
.pxxacg-guest-actions .pxxacg-login{ background: var(--pxxacg-blue); color: #fff; }
.pxxacg-guest-actions .pxxacg-register{ border: 1px solid var(--pxxacg-border); }

.pxxacg-menu-toggle{ display: none; }

/* ==========================================================================
   Hero
   ========================================================================== */
.pxxacg-hero{
  margin: 24px auto 0;
  border-radius: 20px;
  overflow: hidden;
  position: relative;
  background: var(--pxxacg-pink-1);
  line-height: 0;
}
.pxxacg-hero-img{
  display: block;
  width: 100%;
  height: auto;
}

.pxxacg-search{
  max-width: 720px;
  margin: 18px auto 0;
  position: relative;
  z-index: 2;
  padding: 0 20px;
}
.pxxacg-search-form{
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border-radius: 999px;
  box-shadow: 0 14px 34px rgba(20,20,40,.12);
  padding: 8px 8px 8px 20px;
}
.pxxacg-search-form svg{ width: 18px; height: 18px; color: var(--pxxacg-text-light); flex-shrink: 0; }
.pxxacg-search-form input{
  flex: 1;
  border: 0;
  outline: 0;
  font-size: 14.5px;
  background: transparent;
  padding: 10px 0;
}
.pxxacg-search-toggle{
  display: flex; align-items: center; gap: 4px;
  font-size: 13px;
  color: var(--pxxacg-text-light);
  background: var(--pxxacg-bg);
  border-radius: 999px;
  padding: 7px 12px;
  white-space: nowrap;
}
.pxxacg-search-submit{
  background: var(--pxxacg-blue);
  color: #fff;
  border: 0;
  border-radius: 999px;
  padding: 10px 22px;
  font-size: 14px;
  font-weight: 700;
  display: flex; align-items: center; gap: 6px;
  white-space: nowrap;
}
.pxxacg-search-submit svg{ color: #fff; }

/* ==========================================================================
   分类卡片
   ========================================================================== */
.pxxacg-categories{
  margin-top: 34px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.pxxacg-cat-card{
  border-radius: var(--pxxacg-radius);
  padding: 22px 22px 24px;
  color: #fff;
  min-height: 110px;
  position: relative;
  overflow: hidden;
  font-family: "MiSans", "HarmonyOS Sans SC", "Alibaba PuHuiTi 3.0", "Alibaba PuHuiTi", "Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}
.pxxacg-cat-card::after{
  content: "";
  position: absolute;
  right: -20px; top: -20px;
  width: 90px; height: 90px;
  border-radius: 50%;
  background: rgba(255,255,255,.14);
}
.pxxacg-cat-icon{
  position: absolute;
  right: 12px;
  bottom: 12px;
  width: 84px;
  height: 84px;
  object-fit: cover;
  object-position: top center;
  border-radius: 16px;
  box-shadow: 0 6px 16px rgba(0,0,0,.18);
  pointer-events: none;
}
.pxxacg-cat-card h3{
  position: relative;
  z-index: 1;
  margin: 0 0 8px;
  font-size: 25px;
  font-weight: 800;
  letter-spacing: .5px;
  line-height: 1.25;
  display: flex;
  align-items: center;
  gap: 6px;
}
.pxxacg-cat-card p{
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  opacity: .92;
  max-width: 72%;
}
.pxxacg-cat-1{ background: linear-gradient(135deg, var(--pxxacg-purple), var(--pxxacg-purple-2)); }
.pxxacg-cat-2{ background: linear-gradient(135deg, var(--pxxacg-teal), var(--pxxacg-teal-2)); }
.pxxacg-cat-3{ background: linear-gradient(135deg, var(--pxxacg-blue), var(--pxxacg-blue-2)); }
.pxxacg-cat-4{ background: linear-gradient(135deg, var(--pxxacg-amber), var(--pxxacg-amber-2)); }

/* 整张图的那种分类卡（首页用的就是这个）：图里已经带标题和文案，这里什么文字都不叠 */
.pxxacg-cat-banner-card{
  padding: 0;
  background: none;
  min-height: 0;
  line-height: 0;
}
/* 上面那个白色半圆装饰是给纯色卡片用的，图片卡不需要 */
.pxxacg-cat-banner-card::after{ display: none; }
.pxxacg-cat-banner{
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--pxxacg-radius);
  transition: transform .18s ease, box-shadow .18s ease;
}
.pxxacg-cat-banner-card:hover .pxxacg-cat-banner{
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(20,20,40,.16);
}

/* 首页长条推广图（点击进"我的推广"） */
.pxxacg-promo-banner{
  display: block;
  margin-top: 18px;
  line-height: 0;
  border-radius: var(--pxxacg-radius);
  overflow: hidden;
}
.pxxacg-promo-banner img{
  display: block;
  width: 100%;
  height: auto;
  transition: transform .18s ease;
}
.pxxacg-promo-banner:hover img{ transform: scale(1.008); }

/* ==========================================================================
   内容区块
   ========================================================================== */
.pxxacg-section{ margin-top: 40px; }
.pxxacg-section-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
}
.pxxacg-section-title{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 19px;
  font-weight: 700;
  margin: 0;
}
.pxxacg-section-title svg{ width: 20px; height: 20px; color: var(--pxxacg-purple); }
.pxxacg-section-more{
  display: flex; align-items: center; gap: 4px;
  font-size: 13.5px;
  color: var(--pxxacg-purple);
  font-weight: 600;
}

.pxxacg-grid{
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
}

.pxxacg-card{
  background: #f7f7fb;
  border-radius: var(--pxxacg-radius);
  overflow: hidden;
  border: 1px solid var(--pxxacg-border);
  transition: transform .15s ease, box-shadow .15s ease;
}
.pxxacg-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(20,20,40,.09);
}
.pxxacg-card-thumb{
  position: relative;
  aspect-ratio: 16/9;
  background: var(--pxxacg-bg);
  overflow: hidden;
}
.pxxacg-card-thumb img{
  width: 100%; height: 100%; object-fit: cover;
}
.pxxacg-card-badge{
  position: absolute;
  top: 8px; left: 8px;
  background: var(--pxxacg-red);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 5px;
}
.pxxacg-card-body{ padding: 12px 13px 14px; }
.pxxacg-card-title{
  margin: 0 0 8px;
  font-size: 13.5px;
  line-height: 1.5;
  font-weight: 600;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.9em;
}
.pxxacg-card-meta{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  color: var(--pxxacg-text-light);
}
/* 首页卡片的标签比列表页小一号，只在首页这套 .pxxacg-card 卡片里覆盖，不影响列表页 */
.pxxacg-card .pxxacg-list-card-tags{ gap: 5px; margin-bottom: 8px; }
.pxxacg-card .pxxacg-tag{ font-size: 10px; padding: 2px 8px; }
.pxxacg-card-meta span{ display: flex; align-items: center; gap: 3px; }
.pxxacg-card-meta svg{ width: 12px; height: 12px; }

.pxxacg-empty{
  grid-column: 1 / -1;
  text-align: center;
  padding: 60px 20px;
  color: var(--pxxacg-text-light);
  background: #fff;
  border: 1px dashed var(--pxxacg-border);
  border-radius: var(--pxxacg-radius);
}

/* ==========================================================================
   写真列表 - 竖版网格卡片
   ========================================================================== */
.pxxacg-image-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.pxxacg-image-card{
  display: block;
  background: #fff;
  border-radius: var(--pxxacg-radius);
  overflow: hidden;
  border: 1px solid var(--pxxacg-border);
  transition: transform .15s ease, box-shadow .15s ease;
}
.pxxacg-image-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(20,20,40,.09);
}
.pxxacg-image-card-thumb{
  position: relative;
  aspect-ratio: 3/4;
  background: var(--pxxacg-bg);
  overflow: hidden;
}
.pxxacg-image-card-thumb img{
  width: 100%; height: 100%; object-fit: cover;
}
.pxxacg-image-card-body{ padding: 12px 13px 14px; }
.pxxacg-image-card-title{
  margin: 0 0 8px;
  font-size: 13.5px;
  line-height: 1.5;
  font-weight: 600;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.9em;
}
.pxxacg-image-card-tag{
  display: inline-block;
  font-size: 10.5px;
  color: var(--pxxacg-purple);
  background: #f1edff;
  padding: 2px 7px;
  border-radius: 5px;
  margin-bottom: 9px;
}
.pxxacg-image-card-meta{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  color: var(--pxxacg-text-light);
}
.pxxacg-image-card-meta span{ display: flex; align-items: center; gap: 3px; }
.pxxacg-image-card-meta svg{ width: 12px; height: 12px; }

/* ==========================================================================
   分页
   ========================================================================== */
.pxxacg-pagination{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  margin: 34px 0 10px;
}
.pxxacg-pagination a,
.pxxacg-pagination span{
  min-width: 34px;
  height: 34px;
  padding: 0 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-size: 13.5px;
  color: var(--pxxacg-text);
  background: #fff;
  border: 1px solid var(--pxxacg-border);
}
.pxxacg-pagination a:hover{ border-color: var(--pxxacg-blue); color: var(--pxxacg-blue); }
.pxxacg-pagination .current{
  background: var(--pxxacg-blue);
  border-color: var(--pxxacg-blue);
  color: #fff;
}

/* ==========================================================================
   页脚
   ========================================================================== */
.pxxacg-footer{
  margin-top: 60px;
  background: var(--pxxacg-bg);
  border-top: 1px solid var(--pxxacg-border);
  padding-top: 44px;
}
.pxxacg-footer-grid{
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: 30px;
  padding-bottom: 34px;
}
.pxxacg-footer-brand .pxxacg-logo{ margin-bottom: 12px; }
.pxxacg-footer-brand .pxxacg-logo-img{ height: 32px; }
.pxxacg-footer-brand p{
  font-size: 13.5px;
  color: var(--pxxacg-text-light);
  line-height: 1.7;
  margin: 0;
}
.pxxacg-footer h4{
  font-size: 14.5px;
  margin: 0 0 14px;
}
.pxxacg-footer ul li{ margin-bottom: 10px; }
.pxxacg-footer ul li a{
  font-size: 13.5px;
  color: var(--pxxacg-text-light);
  display: flex; align-items: center; gap: 6px;
}
.pxxacg-footer ul li a:hover{ color: var(--pxxacg-purple); }
.pxxacg-footer-field{
  display: flex; align-items: center; gap: 8px;
  border: 1px solid var(--pxxacg-border);
  border-radius: 8px;
  padding: 9px 12px;
  margin-bottom: 10px;
  font-size: 13px;
  color: var(--pxxacg-text-light);
}
.pxxacg-footer-field svg{ width: 14px; height: 14px; }
.pxxacg-footer-bottom{
  border-top: 1px solid var(--pxxacg-border);
  padding: 16px 0;
  display: flex;
  justify-content: space-between;
  font-size: 12.5px;
  color: var(--pxxacg-text-light);
}
.pxxacg-footer-bottom a{ margin-left: 16px; }

/* ==========================================================================
   响应式
   ========================================================================== */
@media (max-width: 1080px){
  .pxxacg-grid{ grid-template-columns: repeat(3, 1fr); }
  .pxxacg-image-grid{ grid-template-columns: repeat(3, 1fr); }
  .pxxacg-categories{ grid-template-columns: repeat(2, 1fr); }
  .pxxacg-footer-grid{ grid-template-columns: 1fr 1fr; }
}

@media (max-width: 780px){
  .pxxacg-header-container{ padding: 0 16px; }
  .pxxacg-nav, .pxxacg-header-actions .pxxacg-btn, .pxxacg-header-actions .pxxacg-icon-btn{ display: none; }
  .pxxacg-menu-toggle{ display: flex; }
  .pxxacg-grid{ grid-template-columns: repeat(2, 1fr); }
  .pxxacg-image-grid{ grid-template-columns: repeat(2, 1fr); }
  .pxxacg-categories{ grid-template-columns: 1fr 1fr; }
  .pxxacg-cat-card h3{ font-size: 22px; }
  .pxxacg-cat-card p{ font-size: 14px; }
}

@media (max-width: 480px){
  .pxxacg-grid{ grid-template-columns: 1fr 1fr; }
  .pxxacg-image-grid{ grid-template-columns: 1fr 1fr; }
  .pxxacg-cat-card{ padding: 18px 18px 20px; }
  .pxxacg-cat-card h3{ font-size: 20px; margin-bottom: 6px; }
  .pxxacg-cat-card p{ font-size: 13.5px; max-width: 100%; }
  .pxxacg-cat-icon{ width: 62px; height: 62px; border-radius: 12px; }
}

/* ==========================================================================
   登录 / 注册
   ========================================================================== */
.pxxacg-auth-wrap{
  max-width: 520px;
  margin: 60px auto 90px;
  padding: 0 20px;
}
.pxxacg-auth-card{
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: 18px;
  padding: 40px 36px;
}
.pxxacg-auth-card h1{
  text-align: center;
  font-size: 21px;
  margin: 0 0 8px;
}
.pxxacg-auth-sub{
  text-align: center;
  font-size: 13.5px;
  color: var(--pxxacg-text-light);
  margin: 0 0 26px;
}
.pxxacg-auth-sub a{ color: var(--pxxacg-blue); font-weight: 600; }

.pxxacg-auth-alert{
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #b91c1c;
  font-size: 13px;
  padding: 12px 16px;
  border-radius: 10px;
  margin-bottom: 20px;
}
.pxxacg-auth-alert ul{ margin: 0; padding-left: 18px; list-style: disc; }
.pxxacg-auth-alert ul li + li{ margin-top: 4px; }

.pxxacg-auth-tabs{
  display: flex;
  gap: 4px;
  background: var(--pxxacg-bg);
  border-radius: 10px;
  padding: 4px;
  margin-bottom: 22px;
}
.pxxacg-auth-tabs button{
  flex: 1;
  border: 0;
  background: transparent;
  padding: 9px 0;
  border-radius: 8px;
  font-size: 13.5px;
  color: var(--pxxacg-text-light);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}
.pxxacg-auth-tabs button svg{ width: 14px; height: 14px; }
.pxxacg-auth-tabs button.pxxacg-active{
  background: #fff;
  color: var(--pxxacg-blue);
  box-shadow: 0 1px 3px rgba(20,20,40,.1);
  font-weight: 600;
}

.pxxacg-field{ margin-bottom: 18px; }
.pxxacg-field label{
  display: block;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 6px;
}
.pxxacg-field input{
  width: 100%;
  padding: 11px 14px;
  border: 1px solid var(--pxxacg-border);
  border-radius: 9px;
  font-size: 14px;
  outline: 0;
  background: #fff;
}
.pxxacg-field input:focus{ border-color: var(--pxxacg-blue); }
.pxxacg-field-hint{
  font-size: 12px;
  color: var(--pxxacg-text-light);
  margin-top: 6px;
}

.pxxacg-pass-wrap{ position: relative; }
.pxxacg-pass-wrap input{ padding-right: 44px; }
.pxxacg-pass-toggle{
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  border: 0;
  background: transparent;
  color: var(--pxxacg-text-light);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
}
.pxxacg-pass-toggle:hover{ background: var(--pxxacg-bg); }
.pxxacg-pass-toggle svg{ width: 17px; height: 17px; }

.pxxacg-captcha-row{ display: flex; gap: 10px; }
.pxxacg-captcha-row input{ flex: 1; min-width: 0; }
.pxxacg-captcha-img{
  width: 110px;
  height: 44px;
  flex-shrink: 0;
  border-radius: 9px;
  cursor: pointer;
  border: 1px solid var(--pxxacg-border);
}

.pxxacg-auth-row{ text-align: right; margin: -8px 0 18px; }
.pxxacg-auth-row a{ font-size: 12.5px; color: var(--pxxacg-blue); }

.pxxacg-auth-submit{
  width: 100%;
  padding: 13px 0;
  background: var(--pxxacg-blue);
  color: #fff;
  border: 0;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 700;
}
.pxxacg-auth-submit:hover{ opacity: .92; }

.pxxacg-auth-back{ text-align: center; margin-top: 22px; }
.pxxacg-auth-back a{ font-size: 13px; color: var(--pxxacg-text-light); }

.pxxacg-auth-resend{ text-align: center; margin-top: 16px; }
.pxxacg-auth-link-btn{
  border: 0;
  background: transparent;
  color: var(--pxxacg-blue);
  font-size: 13px;
  font-weight: 600;
}
.pxxacg-auth-link-btn:hover{ text-decoration: underline; }

@media (max-width: 480px){
  .pxxacg-auth-card{ padding: 30px 22px; }
}

/* ==========================================================================
   游戏列表 / 分类归档
   ========================================================================== */
.pxxacg-list-page{ padding-bottom: 20px; }

.pxxacg-list-header{ padding: 32px 0 20px; }
.pxxacg-list-header h1{ margin: 0 0 8px; font-size: 24px; }
.pxxacg-list-header p{ margin: 0; font-size: 13.5px; color: var(--pxxacg-text-light); }

.pxxacg-list-search-row{
  display: flex;
  gap: 12px;
  margin-bottom: 20px;
}
.pxxacg-list-search{
  flex: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: 12px;
  padding: 4px 4px 4px 16px;
}
.pxxacg-list-search svg{ width: 18px; height: 18px; color: var(--pxxacg-text-light); flex-shrink: 0; }
.pxxacg-list-search input{
  flex: 1;
  border: 0;
  outline: 0;
  font-size: 14px;
  padding: 11px 0;
  background: transparent;
}
.pxxacg-list-search button{
  background: var(--pxxacg-blue);
  color: #fff;
  border: 0;
  border-radius: 9px;
  padding: 10px 22px;
  font-size: 14px;
  font-weight: 700;
}
.pxxacg-filter-toggle{
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 20px;
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: 12px;
  font-size: 14px;
  font-weight: 600;
  color: var(--pxxacg-text);
  white-space: nowrap;
}
.pxxacg-filter-toggle svg{ width: 16px; height: 16px; }
.pxxacg-filter-toggle.pxxacg-active{ border-color: var(--pxxacg-blue); color: var(--pxxacg-blue); }

.pxxacg-filter-panel{
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: 14px;
  padding: 24px 26px 6px;
  margin-bottom: 24px;
}
.pxxacg-filter-panel.pxxacg-collapsed{ display: none; }

.pxxacg-filter-group{ margin-bottom: 20px; }
.pxxacg-filter-group h4{
  margin: 0 0 12px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--pxxacg-text-light);
}
.pxxacg-pills{ display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pxxacg-pill{
  padding: 7px 16px;
  border-radius: 999px;
  border: 1px solid var(--pxxacg-border);
  font-size: 13px;
  color: var(--pxxacg-text);
  background: #fff;
}
.pxxacg-pill:hover{ border-color: var(--pxxacg-blue); color: var(--pxxacg-blue); }
.pxxacg-pill.pxxacg-active{
  background: var(--pxxacg-blue);
  border-color: var(--pxxacg-blue);
  color: #fff;
}
.pxxacg-pills-sep{ font-size: 13px; color: var(--pxxacg-text-light); margin-left: 4px; }

.pxxacg-list{ display: flex; flex-direction: column; gap: 18px; }

.pxxacg-list-card{
  display: flex;
  align-items: flex-start;
  gap: 24px;
  background: #f7f7fb;
  border: 1px solid var(--pxxacg-border);
  border-radius: 16px;
  padding: 22px 24px;
}
.pxxacg-list-card-body{ flex: 1; min-width: 0; }
.pxxacg-list-card-title{ margin: 0 0 10px; font-size: 17px; }
.pxxacg-list-card-title a:hover{ color: var(--pxxacg-blue); }
.pxxacg-list-card-desc{
  margin: 0 0 14px;
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--pxxacg-text-light);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.pxxacg-list-card-tags{ display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.pxxacg-tag{
  font-size: 12px;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 999px;
}
.pxxacg-tag-region{ background: #f1edff; color: var(--pxxacg-purple); }
.pxxacg-tag-genre{ background: #fff4e0; color: #b96a06; }
.pxxacg-tag-lang{ background: #e4f9ef; color: #0f9d63; }
.pxxacg-tag-platform{ background: var(--pxxacg-bg); color: var(--pxxacg-text-light); border: 1px solid var(--pxxacg-border); }

.pxxacg-list-card-meta{
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 12px;
  color: var(--pxxacg-text-light);
}
.pxxacg-list-card-meta span{ display: flex; align-items: center; gap: 4px; }
.pxxacg-list-card-meta svg{ width: 13px; height: 13px; }

.pxxacg-list-card-thumbs{
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  align-self: center;
}
.pxxacg-thumb{
  width: 190px;
  flex-shrink: 0;
  aspect-ratio: 16/9;
  border-radius: 10px;
  background: var(--pxxacg-bg);
  overflow: hidden;
}
.pxxacg-thumb img{ width: 100%; height: 100%; object-fit: cover; }

.pxxacg-pagination-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin: 34px 0 10px;
}
.pxxacg-pagination-row .pxxacg-pagination{ margin: 0; }
.pxxacg-pagination-jump{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--pxxacg-text-light);
}
.pxxacg-pagination-jump input{
  width: 56px;
  padding: 6px 8px;
  border: 1px solid var(--pxxacg-border);
  border-radius: 7px;
  font-size: 13px;
  text-align: center;
}
.pxxacg-pagination-jump button{
  padding: 7px 14px;
  border-radius: 7px;
  border: 1px solid var(--pxxacg-blue);
  color: var(--pxxacg-blue);
  background: #fff;
  font-size: 13px;
  font-weight: 600;
}
.pxxacg-pagination-jump button:hover{ background: var(--pxxacg-blue); color: #fff; }

@media (max-width: 780px){
  .pxxacg-list-card{ flex-direction: column; }
  .pxxacg-list-card-thumbs{ width: 100%; }
  .pxxacg-thumb{ flex: 1; width: auto; }
  .pxxacg-list-search-row{ flex-wrap: wrap; }
}

@media (max-width: 480px){
  .pxxacg-list-card-thumbs{ display: grid; grid-template-columns: repeat(3, 1fr); }
  .pxxacg-thumb{ width: auto; }
}

/* ==========================================================================
   小说列表页
   ========================================================================== */
.pxxacg-toggle-row{ display: flex; align-items: center; gap: 12px; font-size: 13.5px; color: var(--pxxacg-text); cursor: pointer; }
.pxxacg-toggle-group{ display: flex; flex-wrap: wrap; gap: 14px 32px; }

.pxxacg-novel-list{ display: flex; flex-direction: column; gap: 18px; }

.pxxacg-novel-thumb{ width: 110px; aspect-ratio: 3/4; }
.pxxacg-novel-thumb img{ width: 100%; height: 100%; object-fit: cover; }
.pxxacg-novel-author{ margin: 0 0 10px; font-size: 13px; color: var(--pxxacg-text-light); }

.pxxacg-tag-novel-genre{ background: #f1edff; color: var(--pxxacg-purple); }
.pxxacg-tag-novel-going{ background: #e8f2ff; color: var(--pxxacg-blue); }
.pxxacg-tag-novel-done{ background: #e4f9ef; color: #0f9d63; }
.pxxacg-tag-novel-words{ background: var(--pxxacg-bg); color: var(--pxxacg-text-light); display: inline-flex; align-items: center; gap: 4px; }
.pxxacg-tag-novel-words svg{ width: 12px; height: 12px; }

@media (max-width: 780px){
  .pxxacg-novel-card{ flex-direction: row; }
  .pxxacg-novel-thumb{ width: 90px; }
}

/* ==========================================================================
   游戏详情页
   ========================================================================== */
.pxxacg-detail-page{ padding: 32px 0 60px; }

.pxxacg-detail-title{ margin: 0 0 14px; font-size: 24px; line-height: 1.4; }

.pxxacg-detail-meta{
  display: flex; flex-wrap: wrap; gap: 18px;
  font-size: 13px; color: var(--pxxacg-text-light);
  margin-bottom: 16px;
}

.pxxacg-detail-tags-head{ font-size: 13px; color: var(--pxxacg-text-light); margin-bottom: 8px; }
.pxxacg-detail-tags{ display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }
.pxxacg-detail-tags span{
  font-size: 12px; color: var(--pxxacg-text-light);
  background: var(--pxxacg-bg); border: 1px solid var(--pxxacg-border);
  padding: 4px 12px; border-radius: 999px;
}

.pxxacg-detail-layout{ display: flex; align-items: flex-start; gap: 24px; }
.pxxacg-detail-main{ flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.pxxacg-detail-side{ width: 320px; flex-shrink: 0; position: sticky; top: 84px; display: flex; flex-direction: column; gap: 18px; }

.pxxacg-detail-block{
  background: var(--pxxacg-bg);
  border: 1px solid var(--pxxacg-border);
  border-radius: 16px;
  padding: 14px;
  box-shadow: 0 4px 18px rgba(20, 20, 40, .05);
}
.pxxacg-detail-block > *:last-child{ margin-bottom: 0; }

.pxxacg-panel-title{
  display: flex; align-items: center; gap: 8px;
  font-size: 17px; font-weight: 700; margin: 0 0 16px;
}
.pxxacg-panel-title svg{ width: 19px; height: 19px; color: var(--pxxacg-purple); }

.pxxacg-info-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px 20px;
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: 14px;
  padding: 22px 24px;
  margin-bottom: 24px;
}
.pxxacg-info-item{ display: flex; align-items: center; gap: 10px; }
.pxxacg-info-text{ display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pxxacg-info-label{ font-size: 12px; color: var(--pxxacg-text-light); }
.pxxacg-info-value{ font-size: 14px; font-weight: 600; }

.pxxacg-info-icon{
  width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.pxxacg-info-icon svg{ width: 18px; height: 18px; }
.pxxacg-info-icon-category{ background: #e8f2ff; color: var(--pxxacg-blue); }
.pxxacg-info-icon-developer{ background: #e5f8f1; color: var(--pxxacg-teal); }
.pxxacg-info-icon-region{ background: #e8f9ee; color: #22c55e; }
.pxxacg-info-icon-quality{ background: #fff4e0; color: var(--pxxacg-amber); }
.pxxacg-info-icon-lang{ background: #f1edff; color: var(--pxxacg-purple); }
.pxxacg-info-icon-size{ background: var(--pxxacg-pink-2); color: var(--pxxacg-pink-1); }
.pxxacg-info-icon-platform{ background: #e8f2ff; color: var(--pxxacg-blue); }
.pxxacg-info-icon-hanhua{ background: #eeeafd; color: var(--pxxacg-purple-2); }

.pxxacg-post-content{ margin-bottom: 28px; line-height: 1.85; font-size: 14.5px; color: var(--pxxacg-text); }
.pxxacg-post-content h5,
.pxxacg-post-content h6{ font-size: 16px; font-weight: 700; margin: 26px 0 12px; }
.pxxacg-post-content h5:first-child,
.pxxacg-post-content h6:first-child{ margin-top: 0; }
.pxxacg-post-content p{ margin: 0 0 14px; color: var(--pxxacg-text); }
.pxxacg-post-content img{ border-radius: 12px; margin: 10px 0; width: 100%; height: auto; }

.pxxacg-fixed-block{ margin-bottom: 28px; }
.pxxacg-fixed-block-title{ font-size: 17px; font-weight: 700; margin: 0 0 14px; }
.pxxacg-fixed-block-inline-title{ display: inline; font-size: 14.5px; font-weight: 700; margin: 0; }
.pxxacg-fixed-block-value{ font-size: 14.5px; color: var(--pxxacg-text); }
.pxxacg-fixed-block-text{ font-size: 14.5px; line-height: 1.85; color: var(--pxxacg-text); }
.pxxacg-fixed-block-text p{ margin: 0 0 14px; }
.pxxacg-fixed-block-images{ display: flex; flex-direction: column; gap: 14px; }
.pxxacg-fixed-block-images img{ width: 100%; height: auto; border-radius: 12px; background: var(--pxxacg-bg); display: block; }

.pxxacg-version-panel{ margin-bottom: 28px; }
.pxxacg-version-box{
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: 14px;
  padding: 24px 26px;
}
.pxxacg-version-head{ display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid var(--pxxacg-border); }
.pxxacg-version-num{ font-size: 16px; font-weight: 700; margin-right: 8px; }
.pxxacg-version-badge{ font-size: 11px; font-weight: 700; color: var(--pxxacg-blue); background: #eaf2ff; padding: 3px 10px; border-radius: 999px; }
.pxxacg-version-line{ margin: 6px 0 0; font-size: 13px; color: var(--pxxacg-text-light); }

.pxxacg-btn-buy{
  display: flex; align-items: center; gap: 6px; white-space: nowrap;
  background: var(--pxxacg-blue); color: #fff;
  border: 0; outline: 0;
  padding: 10px 20px; border-radius: 9px; font-size: 14px; font-weight: 700;
  cursor: pointer;
  transition: background-color .15s ease, transform .15s ease;
}
.pxxacg-btn-buy svg{ width: 15px; height: 15px; }
.pxxacg-btn-buy:hover{ background: var(--pxxacg-blue-2); transform: translateY(-1px); }
.pxxacg-btn-buy:active{ transform: translateY(0); }

.pxxacg-price-info{ padding: 18px 0; border-bottom: 1px solid var(--pxxacg-border); }
.pxxacg-price-info h4{ margin: 0 0 10px; font-size: 13.5px; color: var(--pxxacg-text-light); font-weight: 600; }
.pxxacg-price-original{ margin: 0 0 14px; font-size: 13.5px; }
.pxxacg-price-original span{ font-weight: 700; margin-left: 4px; }
.pxxacg-price-info-head{ display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.pxxacg-price-info-head h4{ margin-bottom: 4px; }
.pxxacg-price-info-head .pxxacg-price-original{ margin-bottom: 0; }
.pxxacg-price-info-head .pxxacg-btn-buy{ flex-shrink: 0; }

.pxxacg-price-tiers{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.pxxacg-price-tiers-2{ grid-template-columns: repeat(2, 1fr); }
.pxxacg-price-tier{
  text-align: center;
  border: 1px solid var(--pxxacg-border);
  border-radius: 12px;
  padding: 14px 10px;
}
.pxxacg-price-tier .pxxacg-tier-label{ display: block; font-size: 12.5px; color: var(--pxxacg-text-light); margin-bottom: 6px; }
.pxxacg-price-tier .pxxacg-tier-value{ display: block; font-size: 16px; font-weight: 700; }
.pxxacg-price-tier .pxxacg-tier-hint{ display: block; font-size: 10.5px; color: var(--pxxacg-text-light); margin-top: 4px; }
.pxxacg-tier-vip{ border-color: var(--pxxacg-amber); background: #fffaf0; }
.pxxacg-tier-vip .pxxacg-tier-value{ color: #b96a06; }
.pxxacg-price-tier.pxxacg-tier-active{ box-shadow: 0 0 0 1px var(--pxxacg-blue-2) inset; }
.pxxacg-price-tier.pxxacg-tier-vip.pxxacg-tier-active{ box-shadow: 0 0 0 1px var(--pxxacg-amber-2) inset; }
.pxxacg-price-vip-link{ text-align: right; margin: 10px 0 0; }
.pxxacg-price-vip-link a{ font-size: 12.5px; color: var(--pxxacg-blue); font-weight: 600; }

.pxxacg-access-banner{
  margin-top: 18px;
  background: #e4f9ef;
  color: #0f9d63;
  font-size: 13.5px;
  font-weight: 600;
  text-align: center;
  padding: 12px;
  border-radius: 10px;
}

.pxxacg-download-section,
.pxxacg-extract-section{ margin-top: 20px; }
.pxxacg-download-section h4,
.pxxacg-extract-section h4{
  display: flex; align-items: center; gap: 7px;
  font-size: 13.5px; font-weight: 700; margin: 0 0 12px;
}
.pxxacg-download-section h4 svg,
.pxxacg-extract-section h4 svg{ width: 15px; height: 15px; color: var(--pxxacg-text-light); }

.pxxacg-file-row{
  background: var(--pxxacg-bg);
  border-radius: 10px;
  padding: 12px 16px;
  margin-bottom: 10px;
}
.pxxacg-file-row-top{ display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pxxacg-file-name{ display: flex; align-items: center; gap: 8px; font-size: 13.5px; min-width: 0; flex: 1; }
.pxxacg-file-name svg{ width: 15px; height: 15px; color: var(--pxxacg-text-light); flex-shrink: 0; }
.pxxacg-file-name-text{ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pxxacg-file-download{
  display: flex; align-items: center; gap: 5px; flex-shrink: 0; white-space: nowrap;
  font-size: 12.5px; font-weight: 700; color: #fff;
  background: var(--pxxacg-blue);
  padding: 7px 14px; border-radius: 8px;
}
.pxxacg-file-download svg{ flex-shrink: 0; width: 14px; height: 14px; }
.pxxacg-file-note{ font-size: 12px; color: var(--pxxacg-text-light); margin: 8px 0 0; }
/* 下载区提示：解压码跟在下载链接后面，用红字提醒一下，避免用户找不到 */
.pxxacg-download-hint{
  font-size: 12.5px; font-weight: 700; color: var(--pxxacg-red);
  margin: -4px 0 12px;
}

.pxxacg-file-row-codes{
  display: flex; flex-wrap: wrap; gap: 6px 18px;
  margin-top: 10px; padding-top: 10px;
  border-top: 1px dashed var(--pxxacg-border);
  font-size: 12.5px; color: var(--pxxacg-text-light);
}
.pxxacg-file-code strong{ color: var(--pxxacg-text); font-weight: 700; margin-right: 5px; }

@media (max-width: 480px){
  .pxxacg-file-row-top{ flex-wrap: wrap; }
  .pxxacg-file-name{ flex-basis: 100%; }
  .pxxacg-file-download{ margin-left: auto; }
}

.pxxacg-extract-code{
  background: var(--pxxacg-bg);
  border-radius: 10px;
  padding: 14px 16px;
  font-size: 14px;
  font-weight: 600;
  margin: 0;
}

.pxxacg-locked-banner{
  margin-top: 18px;
  display: flex; align-items: center; justify-content: center; gap: 10px;
  border: 1px solid #fecaca;
  background: #fff8f8;
  color: var(--pxxacg-text);
  font-size: 13.5px;
  padding: 16px;
  border-radius: 10px;
  text-align: center;
}
.pxxacg-locked-banner svg{ width: 18px; height: 18px; color: var(--pxxacg-red); flex-shrink: 0; }
.pxxacg-locked-banner a{ color: var(--pxxacg-red); font-weight: 700; }
.pxxacg-locked-banner a:first-of-type{ color: var(--pxxacg-text); text-decoration: underline; }

.pxxacg-comments-section{
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: 14px;
  padding: 24px 26px;
}
.pxxacg-comment-textarea{
  width: 100%;
  min-height: 90px;
  border: 1px solid var(--pxxacg-border);
  border-radius: 10px;
  padding: 14px;
  font-size: 13.5px;
  font-family: inherit;
  resize: vertical;
  margin-bottom: 12px;
}
#pxxacg-comment-submit,
.pxxacg-comment-submit{
  background: var(--pxxacg-blue);
  color: #fff;
  border: 0;
  border-radius: 9px;
  padding: 9px 22px;
  font-size: 13.5px;
  font-weight: 700;
}
.pxxacg-comment-locked{ margin-bottom: 10px; }
.pxxacg-comment-locked textarea{ background: var(--pxxacg-bg); }
.pxxacg-comment-login-btn{
  display: inline-block;
  background: var(--pxxacg-blue);
  color: #fff;
  padding: 9px 20px;
  border-radius: 9px;
  font-size: 13.5px;
  font-weight: 700;
}

.pxxacg-comments-list{ list-style: none; margin: 24px 0 0; padding: 0; }
.pxxacg-comments-list .comment,
.pxxacg-comments-list .comment-body{ list-style: none; }
.pxxacg-comments-list li{ border-top: 1px solid var(--pxxacg-border); padding: 16px 0; }
.pxxacg-comments-list .comment-author img{ border-radius: 50%; float: left; margin-right: 12px; }
.pxxacg-comments-list .comment-author .fn{ font-weight: 700; font-size: 13.5px; font-style: normal; }
.pxxacg-comments-list .comment-metadata{ font-size: 11.5px; color: var(--pxxacg-text-light); margin-bottom: 6px; }
.pxxacg-comments-list .comment-metadata a{ color: inherit; }
.pxxacg-comments-list p{ font-size: 13.5px; margin: 4px 0 0; }
.pxxacg-comments-list ul.children{ list-style: none; margin: 0 0 0 52px; padding: 0; }

.pxxacg-comments-empty{
  text-align: center;
  color: var(--pxxacg-text-light);
  padding: 50px 20px;
  margin-top: 20px;
  background: var(--pxxacg-bg);
  border-radius: 12px;
}
.pxxacg-comments-empty svg{ width: 30px; height: 30px; margin-bottom: 8px; opacity: .5; }
.pxxacg-comments-empty p{ margin: 0; font-size: 13.5px; }

.pxxacg-anime-stats{
  background: #fff; border: 1px solid var(--pxxacg-border); border-radius: 14px; padding: 18px 20px;
}
.pxxacg-anime-stats .pxxacg-panel-title{ margin-bottom: 14px; font-size: 15px; }
.pxxacg-anime-stats-grid{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; text-align: center; }
.pxxacg-anime-stats-grid > div{ display: flex; flex-direction: column; gap: 2px; }
.pxxacg-anime-stats-num{ font-size: 15px; font-weight: 700; }
.pxxacg-anime-stats-label{ font-size: 11px; color: var(--pxxacg-text-light); }

.pxxacg-detail-actions{
  display: flex; gap: 10px;
  padding: 0;
}
.pxxacg-action-btn{
  flex: 1;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: 9px;
  padding: 10px 8px;
  font-size: 11px;
  color: var(--pxxacg-text);
}
.pxxacg-action-btn svg{ width: 15px; height: 15px; }
.pxxacg-action-btn.pxxacg-action-active{ background: #f1edff; color: var(--pxxacg-purple); border-color: var(--pxxacg-purple); }

.pxxacg-related-games{
  padding: 0;
}
.pxxacg-related-list{ display: flex; flex-direction: column; gap: 14px; }
.pxxacg-related-card{ display: flex; gap: 10px; }
.pxxacg-related-thumb{ width: 84px; height: 64px; flex-shrink: 0; border-radius: 8px; overflow: hidden; background: var(--pxxacg-bg); }
.pxxacg-related-thumb img{ width: 100%; height: 100%; object-fit: cover; }
.pxxacg-related-body h4{
  margin: 0 0 6px; font-size: 12.5px; font-weight: 600; line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.pxxacg-related-card:hover h4{ color: var(--pxxacg-purple); }
.pxxacg-related-tags{ display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 5px; }
.pxxacg-related-tags .pxxacg-tag{ font-size: 9.5px; padding: 1px 6px; }
.pxxacg-related-meta{ display: flex; gap: 8px; font-size: 10.5px; color: var(--pxxacg-text-light); }
.pxxacg-related-empty{ font-size: 13px; color: var(--pxxacg-text-light); }

@media (max-width: 960px){
  .pxxacg-detail-layout{ flex-direction: column; }
  .pxxacg-detail-side{ width: 100%; position: static; }
  .pxxacg-info-grid{ grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px){
  .pxxacg-price-tiers{ grid-template-columns: 1fr; }
  .pxxacg-version-head,
  .pxxacg-price-info-head{ flex-direction: column; }
  .pxxacg-info-grid{ grid-template-columns: 1fr; }
}

/* ==========================================================================
   小说详情页
   ========================================================================== */
.pxxacg-novel-hero{
  display: flex;
  gap: 26px;
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 24px;
}
.pxxacg-novel-hero-cover{
  width: 180px;
  aspect-ratio: 3/4;
  flex-shrink: 0;
  border-radius: 12px;
  overflow: hidden;
  background: var(--pxxacg-bg);
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
}
.pxxacg-novel-hero-cover img{ width: 100%; height: 100%; object-fit: cover; }
.pxxacg-novel-hero-info{ flex: 1; min-width: 0; }
.pxxacg-novel-hero-info .pxxacg-detail-title{ margin-bottom: 10px; }
.pxxacg-novel-hero-info .pxxacg-detail-meta{ margin-bottom: 18px; }
.pxxacg-novel-hero-info .pxxacg-detail-meta svg{ width: 13px; height: 13px; vertical-align: -2px; margin-right: 2px; }
.pxxacg-novel-info-grid{ grid-template-columns: repeat(4, 1fr); padding: 16px 20px; margin-bottom: 18px; }

.pxxacg-novel-synopsis h4{ margin: 0 0 8px; font-size: 13.5px; color: var(--pxxacg-text-light); font-weight: 600; }
.pxxacg-novel-synopsis-text{
  font-size: 13.5px; line-height: 1.8; color: var(--pxxacg-text);
  max-height: 4.8em; overflow: hidden; position: relative;
}
.pxxacg-novel-synopsis-text p{ margin: 0 0 8px; }
.pxxacg-novel-synopsis-open .pxxacg-novel-synopsis-text{ max-height: none; }
.pxxacg-novel-synopsis-toggle{
  margin-top: 8px; background: none; border: 0; padding: 0;
  font-size: 12.5px; color: var(--pxxacg-blue); font-weight: 600; cursor: pointer;
}

.pxxacg-novel-price-grid{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  background: var(--pxxacg-bg); border-radius: 12px; padding: 16px;
  margin-bottom: 18px; text-align: center;
}
.pxxacg-novel-price-stat{ display: flex; flex-direction: column; gap: 4px; }
.pxxacg-novel-price-num{ font-size: 16px; font-weight: 700; }
.pxxacg-novel-price-label{ font-size: 12px; color: var(--pxxacg-text-light); }
.pxxacg-novel-price-head{ border-bottom: 0; padding-bottom: 0; }
.pxxacg-novel-price-amount{ display: block; font-size: 22px; font-weight: 800; color: var(--pxxacg-blue); margin-top: 4px; }

.pxxacg-novel-tabs{
  display: flex; gap: 28px;
  border-bottom: 1px solid var(--pxxacg-border);
  margin-bottom: 20px;
}
.pxxacg-novel-tab{
  display: flex; align-items: center; gap: 6px;
  background: none; border: 0; border-bottom: 2px solid transparent;
  padding: 0 2px 12px; font-size: 14.5px; font-weight: 600; color: var(--pxxacg-text-light);
  cursor: pointer;
}
.pxxacg-novel-tab svg{ width: 16px; height: 16px; }
.pxxacg-novel-tab-active{ color: var(--pxxacg-blue); border-bottom-color: var(--pxxacg-blue); }

.pxxacg-novel-chapters-head{ display: flex; align-items: center; }
.pxxacg-novel-chapters-count{
  margin-left: 10px; font-size: 11.5px; font-weight: 700; color: #fff;
  background: var(--pxxacg-blue); padding: 3px 10px; border-radius: 999px;
}
.pxxacg-novel-chapter-rows{
  background: #fff; border: 1px solid var(--pxxacg-border); border-radius: 14px; overflow: hidden;
}
.pxxacg-novel-chapter-row{
  display: block; padding: 16px 22px; border-bottom: 1px solid var(--pxxacg-border);
}
.pxxacg-novel-chapter-row:last-child{ border-bottom: 0; }
.pxxacg-novel-chapter-row:hover{ background: var(--pxxacg-bg); }
.pxxacg-novel-chapter-title{ display: flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 600; margin-bottom: 6px; }
.pxxacg-novel-chapter-meta{ margin: 0; font-size: 12px; color: var(--pxxacg-text-light); }
.pxxacg-novel-chapter-locked .pxxacg-novel-chapter-title,
.pxxacg-novel-chapter-locked .pxxacg-novel-chapter-meta{ color: var(--pxxacg-text-light); }

.pxxacg-novel-chapter-row-with-thumb{ display: flex; align-items: center; gap: 14px; }
.pxxacg-novel-chapter-row-with-thumb .pxxacg-novel-chapter-title{ margin-bottom: 4px; }
.pxxacg-novel-chapter-thumb{
  width: 96px; aspect-ratio: 4/3; flex-shrink: 0; border-radius: 8px; overflow: hidden;
  background: var(--pxxacg-bg); display: flex; align-items: center; justify-content: center;
}
.pxxacg-novel-chapter-thumb img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.pxxacg-novel-chapter-thumb svg{ width: 22px; height: 22px; color: var(--pxxacg-text-light); opacity: .5; }
.pxxacg-novel-chapter-body{ flex: 1; min-width: 0; }
.pxxacg-tag-novel-locked{ background: #fff0f0; color: var(--pxxacg-red); display: inline-flex; align-items: center; gap: 3px; }
.pxxacg-tag-novel-locked svg{ width: 11px; height: 11px; }

@media (max-width: 640px){
  .pxxacg-novel-hero{ flex-direction: column; }
  .pxxacg-novel-hero-cover{ width: 130px; margin: 0 auto; }
  .pxxacg-novel-info-grid{ grid-template-columns: repeat(2, 1fr); }
}

/* ==========================================================================
   小说阅读页
   ========================================================================== */
.pxxacg-reader-page{ max-width: 860px; padding: 28px 0 60px; }

.pxxacg-reader-head{
  display: flex; align-items: center; gap: 16px;
  background: #fff; border: 1px solid var(--pxxacg-border); border-radius: 14px;
  padding: 18px 22px; margin-bottom: 16px;
}
.pxxacg-reader-icon-btn{
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 10px;
  background: var(--pxxacg-bg); border: 0; color: var(--pxxacg-text);
  cursor: pointer;
}
.pxxacg-reader-icon-btn svg{ width: 17px; height: 17px; }
.pxxacg-reader-icon-btn:hover{ color: var(--pxxacg-blue); }
.pxxacg-reader-head-titles{ flex: 1; min-width: 0; text-align: center; }
.pxxacg-reader-novel-title{ display: block; font-size: 13px; color: var(--pxxacg-text-light); margin-bottom: 4px; }
.pxxacg-reader-novel-title:hover{ color: var(--pxxacg-blue); }
.pxxacg-reader-chapter-title{ margin: 0 0 4px; font-size: 17px; }
.pxxacg-reader-word-count{ font-size: 12px; color: var(--pxxacg-text-light); }

.pxxacg-reader-settings-panel{
  display: none; align-items: center; gap: 12px; justify-content: flex-end;
  background: #fff; border: 1px solid var(--pxxacg-border); border-radius: 12px;
  padding: 12px 18px; margin-bottom: 16px; font-size: 13px; color: var(--pxxacg-text-light);
}
.pxxacg-reader-settings-panel.pxxacg-reader-settings-open{ display: flex; }
.pxxacg-reader-font-btn{
  width: 34px; height: 30px; border-radius: 8px;
  border: 1px solid var(--pxxacg-border); background: var(--pxxacg-bg);
  font-size: 12.5px; font-weight: 700; color: var(--pxxacg-text); cursor: pointer;
}
.pxxacg-reader-font-btn:hover{ border-color: var(--pxxacg-blue); color: var(--pxxacg-blue); }

.pxxacg-reader-body{
  background: #fff; border: 1px solid var(--pxxacg-border); border-radius: 14px;
  padding: 34px 40px; margin-bottom: 16px; min-height: 200px;
}
.pxxacg-reader-content{ font-size: 16px; line-height: 2; color: var(--pxxacg-text); }
.pxxacg-reader-content p{ margin: 0 0 20px; text-indent: 2em; }

.pxxacg-reader-locked{ text-align: center; padding: 40px 20px; color: var(--pxxacg-text-light); }
.pxxacg-reader-locked svg{ width: 34px; height: 34px; color: var(--pxxacg-red); margin-bottom: 12px; }
.pxxacg-reader-locked h3{ margin: 0 0 8px; font-size: 16px; color: var(--pxxacg-text); }
.pxxacg-reader-locked p{ margin: 0 0 20px; font-size: 13.5px; }
.pxxacg-reader-locked-actions{ display: flex; align-items: center; justify-content: center; gap: 14px; }
.pxxacg-reader-locked-actions .pxxacg-btn-buy{ text-decoration: none; }
.pxxacg-reader-locked-vip{ font-size: 13.5px; font-weight: 700; color: var(--pxxacg-blue); }

/* ==========================================================================
   写真详情页 - 大图顺序展示
   ========================================================================== */
.pxxacg-image-gallery{ display: flex; flex-direction: column; gap: 12px; }
.pxxacg-image-gallery-item{
  border-radius: 10px; overflow: hidden; background: var(--pxxacg-bg);
}
.pxxacg-image-gallery-item img{ display: block; width: 100%; height: auto; }
.pxxacg-image-gallery-locked{ margin-top: 12px; }

.pxxacg-reader-nav{ display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pxxacg-reader-nav-btn{
  display: flex; align-items: center; gap: 6px;
  background: #fff; border: 1px solid var(--pxxacg-border); border-radius: 10px;
  padding: 11px 20px; font-size: 13.5px; font-weight: 600; color: var(--pxxacg-text);
}
.pxxacg-reader-nav-btn svg{ width: 14px; height: 14px; }
.pxxacg-reader-nav-btn:hover{ border-color: var(--pxxacg-blue); color: var(--pxxacg-blue); }
.pxxacg-reader-nav-disabled{ color: var(--pxxacg-text-light); opacity: .5; cursor: default; }
.pxxacg-reader-nav-primary{ background: var(--pxxacg-blue); border-color: var(--pxxacg-blue); color: #fff; }
.pxxacg-reader-nav-primary:hover{ background: var(--pxxacg-blue-2); color: #fff; }

@media (max-width: 560px){
  .pxxacg-reader-body{ padding: 24px 20px; }
  .pxxacg-reader-content{ font-size: 15px; }
}

/* ==========================================================================
   漫画阅读页
   ========================================================================== */
.pxxacg-comic-reader{ max-width: 900px; }
.pxxacg-comic-reader-head{ gap: 10px; position: relative; }
.pxxacg-comic-reader-head .pxxacg-reader-head-titles{ min-width: 0; }

.pxxacg-comic-mode-toggle{ display: flex; gap: 6px; flex-shrink: 0; }
.pxxacg-comic-mode-btn{
  display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 10px;
  background: var(--pxxacg-bg); border: 0; color: var(--pxxacg-text-light); cursor: pointer;
}
.pxxacg-comic-mode-btn svg{ width: 17px; height: 17px; }
.pxxacg-comic-mode-btn.pxxacg-comic-mode-active{ background: var(--pxxacg-blue); color: #fff; }

.pxxacg-comic-zoom-toggle{ display: flex; align-items: center; gap: 4px; flex-shrink: 0; margin-left: 8px; }
.pxxacg-comic-zoom-pct{ font-size: 12.5px; color: var(--pxxacg-text-light); width: 40px; text-align: center; }

.pxxacg-comic-body{ position: relative; }

.pxxacg-comic-scroll{ display: flex; flex-direction: column; background: #000; border-radius: 14px; overflow: hidden; }
.pxxacg-comic-page{ line-height: 0; background: #000; min-height: 200px; }
.pxxacg-comic-page img{ width: 100%; height: auto; display: block; }

.pxxacg-comic-progress{
  position: fixed; top: 50%; right: 24px; transform: translateY(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  z-index: 40;
}
.pxxacg-comic-progress-num{ font-size: 12px; color: var(--pxxacg-text-light); font-weight: 600; }
.pxxacg-comic-progress-track{
  position: relative; width: 4px; height: 220px; border-radius: 999px;
  background: var(--pxxacg-border); cursor: pointer; touch-action: none;
}
.pxxacg-comic-progress-thumb{
  position: absolute; left: 50%; top: 0; width: 14px; height: 14px; border-radius: 50%;
  background: var(--pxxacg-blue); transform: translateX(-50%);
  box-shadow: 0 0 0 3px #fff, 0 1px 4px rgba(0,0,0,.25); cursor: grab; touch-action: none;
}

.pxxacg-comic-page-mode{
  display: flex; align-items: center; justify-content: center;
  background: #000; border-radius: 14px; min-height: 420px; overflow: auto; padding: 20px;
}
.pxxacg-comic-page-viewport{ max-width: 100%; }
#pxxacg-comic-page-img{ max-width: 100%; height: auto; display: block; transition: transform .15s ease; }

.pxxacg-comic-footer-nav{ margin-top: 16px; display: flex; flex-direction: column; gap: 12px; }
.pxxacg-comic-page-nav{
  display: flex; align-items: center; justify-content: center; gap: 20px;
  background: #fff; border: 1px solid var(--pxxacg-border); border-radius: 12px; padding: 12px;
}
.pxxacg-comic-page-counter{ font-size: 13.5px; font-weight: 600; color: var(--pxxacg-text); min-width: 64px; text-align: center; }

@media (max-width: 780px){
  .pxxacg-comic-progress{ right: 8px; }
  .pxxacg-comic-progress-track{ height: 160px; }
}

@media (max-width: 560px){
  .pxxacg-comic-reader-head{ flex-wrap: wrap; }
  .pxxacg-comic-zoom-toggle{ margin-left: 0; }
}

/* ==========================================================================
   动漫播放页
   ========================================================================== */
.pxxacg-anime-reader{ max-width: 960px; }

.pxxacg-anime-player{ background: #000; border-radius: 14px; overflow: hidden; margin-bottom: 16px; }
.pxxacg-anime-video{ display: block; width: 100%; max-height: 70vh; background: #000; }

.pxxacg-anime-episode-nav{ display: flex; gap: 14px; margin-bottom: 16px; }
.pxxacg-anime-episode-nav-btn{
  flex: 1;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  background: #fff; border: 1px solid var(--pxxacg-border); border-radius: 10px;
  padding: 13px 20px; font-size: 14px; font-weight: 600; color: var(--pxxacg-text);
}
.pxxacg-anime-episode-nav-btn svg{ width: 15px; height: 15px; }
.pxxacg-anime-episode-nav-btn:hover{ border-color: var(--pxxacg-blue); color: var(--pxxacg-blue); }
.pxxacg-anime-episode-nav-primary{ background: var(--pxxacg-blue); border-color: var(--pxxacg-blue); color: #fff; }
.pxxacg-anime-episode-nav-primary:hover{ background: var(--pxxacg-blue-2); color: #fff; }

.pxxacg-anime-episode-info{
  background: #fff; border: 1px solid var(--pxxacg-border); border-radius: 14px;
  padding: 20px 24px; margin-bottom: 16px;
}
.pxxacg-anime-episode-info h3{ margin: 0 0 10px; font-size: 16px; }
.pxxacg-anime-episode-info-meta{ display: flex; align-items: center; gap: 16px; font-size: 13px; color: var(--pxxacg-text-light); }
.pxxacg-anime-episode-info-meta span{ display: flex; align-items: center; gap: 5px; }
.pxxacg-anime-episode-info-meta svg{ width: 14px; height: 14px; }

/* ==========================================================================
   会员页
   ========================================================================== */
.pxxacg-vip-page{ padding: 40px 0 60px; }

.pxxacg-vip-head{ text-align: center; margin-bottom: 26px; }
.pxxacg-vip-head h1{ margin: 0 0 8px; font-size: 26px; }
.pxxacg-vip-head p{ margin: 0; font-size: 14px; color: var(--pxxacg-text-light); }

.pxxacg-vip-status{
  max-width: 640px;
  margin: 0 auto 26px;
  text-align: center;
  background: #f1edff;
  color: var(--pxxacg-purple);
  font-size: 13.5px;
  padding: 12px 20px;
  border-radius: 10px;
}

/* 左右两张卡：VIP 走蓝、SVIP 走紫。每张卡自己提供三个变量
   （--pxxacg-vip-accent / -tint / -edge），卡内所有部件只认这三个变量，
   所以两张卡共用一套规则，只有配色不同。整体是"极浅色底 + 半透明描边"，
   不做整块铺色，避免太刺眼 */
.pxxacg-vip-plans{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
  max-width: 1080px;
  margin: 0 auto 50px;
}

.pxxacg-vip-plan{
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 18px;
  border: 1px solid transparent;
  padding: 26px 26px 28px;
}
.pxxacg-vip-plan-vip{
  --pxxacg-vip-accent: var(--pxxacg-blue);
  --pxxacg-vip-accent-2: var(--pxxacg-blue-2);
  --pxxacg-vip-tint: #eaf2ff;
  --pxxacg-vip-edge: rgba(59, 130, 246, .35);
  background: linear-gradient(180deg, #f5f9ff, #fff 62%);
  border-color: var(--pxxacg-vip-edge);
}
/* SVIP = 金色。用的是"深金"而不是高饱和的亮黄 —— 亮黄（#ffd400 那一类）在整块卡片上很刺眼，
   这里它只出现在描边、按钮、图标和 ✓ 上，底色是极浅的金，所以看着是"高级金"而不是荧光黄。
   想再淡/再深只改这 4 个变量即可。 */
.pxxacg-vip-plan-svip{
  --pxxacg-vip-accent: #d99a1e;
  --pxxacg-vip-accent-2: #f2be3d;
  --pxxacg-vip-tint: #fdf3e2;
  --pxxacg-vip-edge: rgba(217, 154, 30, .38);
  background: linear-gradient(180deg, #fffbf2, #fff 62%);
  border-color: var(--pxxacg-vip-edge);
}
/* 用户当前所在的组，描边加粗一圈 */
.pxxacg-vip-card-active{ box-shadow: 0 0 0 2px var(--pxxacg-vip-edge); }
/* 充值页的档位/金额卡片也复用这个 class 表示"已选中"，那边没有 --pxxacg-vip-* 变量 */
.pxxacg-vip-card-selected{ border-color: var(--pxxacg-blue); box-shadow: 0 0 0 2px var(--pxxacg-blue); }

.pxxacg-vip-plan-badge{
  position: absolute; top: 14px; right: 14px;
  background: var(--pxxacg-vip-accent); color: #fff;
  font-size: 11px; font-weight: 700;
  padding: 3px 10px; border-radius: 6px;
}
/* 只有 SVIP 卡有角标，金底上白字发虚，换深棕字更清楚 */
.pxxacg-vip-plan-svip .pxxacg-vip-plan-badge{ color: #4a3200; }

.pxxacg-vip-plan-head{ display: flex; align-items: center; gap: 10px; }
.pxxacg-vip-plan-icon{ display: inline-flex; color: var(--pxxacg-vip-accent); }
.pxxacg-vip-plan-icon svg{ width: 22px; height: 22px; }
.pxxacg-vip-plan-head h2{ margin: 0; font-size: 19px; }

.pxxacg-vip-current-badge{
  display: inline-flex; align-items: center;
  background: var(--pxxacg-vip-tint);
  color: var(--pxxacg-vip-accent);
  border: 1px solid var(--pxxacg-vip-edge);
  font-size: 11px; font-weight: 700;
  padding: 2px 10px; border-radius: 999px;
}
.pxxacg-vip-current-badge[hidden]{ display: none; }

/* 分段选择器：一个月/季/年(终身) tab 一行，选中的那个用卡片主色高亮 */
.pxxacg-vip-tabs{
  display: flex; gap: 4px;
  background: #fbfbfd;
  border: 1px solid var(--pxxacg-border);
  border-radius: 10px;
  padding: 4px;
  margin: 18px 0 20px;
}
.pxxacg-vip-tab{
  flex: 1 1 0; min-width: 0;
  border: 0; background: transparent;
  border-radius: 7px;
  padding: 8px 4px;
  font-size: 13px; font-weight: 600;
  color: var(--pxxacg-text-light);
  white-space: nowrap;
}
.pxxacg-vip-tab:hover{ color: var(--pxxacg-vip-accent); }
.pxxacg-vip-tab-active{
  background: var(--pxxacg-vip-tint);
  color: var(--pxxacg-vip-accent);
  box-shadow: inset 0 0 0 1px var(--pxxacg-vip-edge);
}

.pxxacg-vip-price{ display: flex; align-items: baseline; gap: 3px; margin: 0 0 18px; }
.pxxacg-vip-price-cur{ font-size: 17px; font-weight: 800; color: var(--pxxacg-vip-accent); }
.pxxacg-vip-price-num{ font-size: 30px; font-weight: 800; line-height: 1; color: var(--pxxacg-vip-accent); }
.pxxacg-vip-price-unit{ font-size: 13px; color: var(--pxxacg-text-light); }
.pxxacg-vip-price-tbd{ font-size: 15px; font-weight: 600; color: var(--pxxacg-text-light); }

.pxxacg-vip-plan-divider{ height: 1px; background: var(--pxxacg-border); margin: 0 0 20px; }
.pxxacg-vip-plan-subtitle{ margin: 0 0 14px; font-size: 14px; font-weight: 700; }

.pxxacg-vip-card-benefits{
  list-style: none;
  margin: 0 0 22px;
  padding: 0;
  text-align: left;
}
.pxxacg-vip-card-benefits li{
  display: flex; align-items: flex-start; gap: 9px;
  font-size: 13px; line-height: 1.5; color: var(--pxxacg-text);
  margin-bottom: 11px;
}
.pxxacg-vip-card-benefits svg{
  width: 15px; height: 15px; flex-shrink: 0; margin-top: 2px;
  color: var(--pxxacg-vip-accent, #0f9d63);
}

/* 卡内操作区：支付方式切换 + 通栏按钮，靠 mt:auto 顶到卡片底部，两卡等高时按钮齐平 */
.pxxacg-vip-plan-actions{ margin-top: auto; }
.pxxacg-vip-pay-choice{ display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.pxxacg-vip-pay-chip{
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  border: 1px solid var(--pxxacg-border);
  background: #fff;
  border-radius: 9px;
  padding: 8px 6px;
  font-size: 12.5px; font-weight: 600;
  color: var(--pxxacg-text-light);
}
.pxxacg-vip-pay-chip .pxxacg-vip-pay-icon{ width: 18px; height: 18px; border-radius: 5px; font-size: 10px; }
.pxxacg-vip-pay-chip:hover{ border-color: var(--pxxacg-vip-accent); color: var(--pxxacg-vip-accent); }
.pxxacg-vip-pay-chip-active{
  border-color: var(--pxxacg-vip-accent);
  background: var(--pxxacg-vip-tint);
  color: var(--pxxacg-vip-accent);
}

.pxxacg-vip-buy-btn{
  display: block;
  width: 100%;
  background: var(--pxxacg-vip-accent, var(--pxxacg-blue));
  color: #fff;
  border: 0; cursor: pointer;
  border-radius: 10px;
  padding: 13px 0;
  font-size: 15px;
  font-weight: 700;
}
.pxxacg-vip-buy-btn:hover:not(:disabled){ background: var(--pxxacg-vip-accent-2, var(--pxxacg-blue-2)); }
.pxxacg-vip-buy-disabled{ background: var(--pxxacg-bg); color: var(--pxxacg-text-light); cursor: not-allowed; }

.pxxacg-vip-checkout{
  max-width: 640px;
  margin: 0 auto 40px;
  display: none;
}
.pxxacg-vip-checkout-open{ display: block; }
.pxxacg-vip-checkout-banner{
  display: flex; align-items: center; gap: 8px; justify-content: center;
  background: #f0faf6; color: #0f9d63;
  font-size: 13.5px; font-weight: 600;
  padding: 12px; border-radius: 10px 10px 0 0;
}
.pxxacg-vip-checkout-banner svg{ width: 16px; height: 16px; }
.pxxacg-vip-checkout .pxxacg-uc-panel{ border-radius: 0 0 14px 14px; border-top: 0; margin-bottom: 0; }

.pxxacg-vip-pay-methods{ display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pxxacg-vip-pay-method{
  display: flex; align-items: center; justify-content: center; gap: 10px;
  border: 1px solid var(--pxxacg-border);
  border-radius: 12px;
  padding: 16px;
  background: #fff;
  font-size: 14px; font-weight: 600;
  cursor: pointer;
}
.pxxacg-vip-pay-method:hover{ border-color: var(--pxxacg-blue); }
.pxxacg-vip-pay-active{ border-color: var(--pxxacg-blue); background: #f5f9ff; }
.pxxacg-vip-pay-icon{
  width: 26px; height: 26px; border-radius: 7px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 13px; font-weight: 700; flex-shrink: 0;
}
.pxxacg-vip-pay-alipay{ background: #1677ff; }
.pxxacg-vip-pay-wechat{ background: #07c160; }

/* display:grid + minmax(0,1fr) 是为了让这张表不会把外层撑宽：
   个人中心的主栏是 align-items:flex-start 的纵向 flex，普通块级子元素会按
   内容的 min-content 撑开，表格 min-width:560px 就会让整页横向溢出。
   min 为 0 的轨道能让这个容器在最窄处塌到父级给多少就是多少，
   表格的横向滚动交回给 .pxxacg-vip-compare-table-wrap 的 overflow-x:auto */
.pxxacg-vip-compare{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  max-width: 1080px;
  margin: 0 auto 50px;
}
.pxxacg-vip-compare-head{ text-align: center; margin-bottom: 22px; }
.pxxacg-vip-compare-head h2{ margin: 0 0 6px; font-size: 20px; }
.pxxacg-vip-compare-head p{ margin: 0; font-size: 13.5px; color: var(--pxxacg-text-light); }

.pxxacg-vip-compare-table-wrap{
  overflow-x: auto;
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: 14px;
}
.pxxacg-vip-compare-table{ width: 100%; border-collapse: collapse; min-width: 560px; }
.pxxacg-vip-compare-table th,
.pxxacg-vip-compare-table td{
  padding: 15px 20px;
  text-align: center;
  border-bottom: 1px solid var(--pxxacg-border);
  font-size: 13px;
}
.pxxacg-vip-compare-table th:first-child,
.pxxacg-vip-compare-table td:first-child{ text-align: left; }
.pxxacg-vip-compare-table thead th{ font-weight: 700; background: var(--pxxacg-bg); }
.pxxacg-vip-compare-table tbody tr:last-child td{ border-bottom: 0; }
.pxxacg-vip-compare-table tbody tr:nth-child(even){ background: #fafafd; }
.pxxacg-vip-compare-table svg{ width: 16px; height: 16px; }
/* 表头文字与单元格里的勾，颜色各自跟卡片主色走 */
.pxxacg-vip-compare-vip{ color: var(--pxxacg-blue); }
.pxxacg-vip-compare-svip{ color: #b8811a; }   /* 跟 SVIP 卡的金色一套；比描边色深一点，白底上看得清 */
.pxxacg-vip-compare-dash{ color: var(--pxxacg-text-light); }

.pxxacg-vip-faq{ max-width: 760px; margin: 0 auto 30px; }
.pxxacg-vip-faq-title{
  display: flex; align-items: center; justify-content: center; gap: 8px;
  font-size: 20px; margin: 0 0 20px; text-align: center;
}
.pxxacg-vip-faq-title svg{ width: 22px; height: 22px; color: var(--pxxacg-text); }

.pxxacg-vip-faq-list{ display: flex; flex-direction: column; gap: 12px; }
.pxxacg-faq-item{
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: 12px;
  padding: 16px 20px;
}
.pxxacg-faq-item summary{
  display: flex; align-items: center; justify-content: space-between;
  cursor: pointer;
  font-size: 14px; font-weight: 600;
  list-style: none;
}
.pxxacg-faq-item summary::-webkit-details-marker{ display: none; }
.pxxacg-faq-item summary svg{ width: 16px; height: 16px; color: var(--pxxacg-text-light); flex-shrink: 0; transition: transform .15s ease; }
.pxxacg-faq-item[open] summary svg{ transform: rotate(180deg); }
.pxxacg-faq-answer{ margin-top: 12px; font-size: 13.5px; color: var(--pxxacg-text-light); line-height: 1.8; }
.pxxacg-faq-answer p{ margin: 0; }

.pxxacg-vip-fineprint{
  text-align: center;
  font-size: 12px;
  color: var(--pxxacg-text-light);
  line-height: 1.9;
}

/* 窄屏：两张卡竖排，别挤在一起。轨道 min 写 0，理由同上面的对比表：
   内嵌在个人中心时，卡片内容不能把主栏撑宽 */
@media (max-width: 780px){
  .pxxacg-vip-plans{ grid-template-columns: minmax(0, 1fr); gap: 20px; max-width: 520px; }
  /* 主题的页面外壳都把左右内边距设成了 0，窄屏上卡片会顶到屏幕边，补一点留白 */
  .pxxacg-vip-page,
  .pxxacg-uc-vip-embed{ padding-left: 16px; padding-right: 16px; }
  .pxxacg-vip-plan{ padding: 22px 20px 24px; }
  .pxxacg-vip-price-num{ font-size: 27px; }
  .pxxacg-vip-tab{ font-size: 12.5px; padding: 8px 2px; }
}
@media (max-width: 480px){
  .pxxacg-vip-plan{ padding: 20px 16px 22px; border-radius: 16px; }
  .pxxacg-vip-tabs{ margin: 14px 0 16px; }
  .pxxacg-vip-compare-table th,
  .pxxacg-vip-compare-table td{ padding: 13px 14px; }
}

/* ==========================================================================
   购买确认弹窗
   ========================================================================== */
.pxxacg-modal-overlay{
  position: fixed; inset: 0;
  background: rgba(20,20,30,.5);
  display: flex; align-items: center; justify-content: center;
  z-index: 1000;
  opacity: 0; visibility: hidden;
  transition: opacity .15s ease;
  padding: 20px;
}
.pxxacg-modal-overlay.pxxacg-modal-open{ opacity: 1; visibility: visible; }

.pxxacg-modal{
  background: #fff;
  border-radius: 16px;
  padding: 28px 26px;
  max-width: 420px;
  width: 100%;
}
.pxxacg-modal h3{ margin: 0 0 8px; font-size: 18px; }
.pxxacg-modal-sub{ margin: 0 0 20px; font-size: 13px; color: var(--pxxacg-text-light); }
.pxxacg-modal-sub span{ color: var(--pxxacg-text); font-weight: 600; }

.pxxacg-modal-rows{ background: var(--pxxacg-bg); border-radius: 10px; padding: 4px 16px; margin-bottom: 16px; }
.pxxacg-modal-row{
  display: flex; justify-content: space-between; align-items: center;
  padding: 11px 0;
  border-bottom: 1px solid var(--pxxacg-border);
  font-size: 13.5px;
}
.pxxacg-modal-row:last-child{ border-bottom: 0; }
.pxxacg-modal-row span{ color: var(--pxxacg-text-light); }
.pxxacg-modal-price{ color: var(--pxxacg-blue); font-size: 15px; }

.pxxacg-modal-note{ font-size: 12px; color: var(--pxxacg-text-light); margin: 0 0 22px; }

.pxxacg-modal-actions{ display: flex; gap: 12px; }
.pxxacg-modal-cancel,
.pxxacg-modal-confirm{
  flex: 1;
  padding: 11px 0;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 700;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  text-decoration: none;
  cursor: pointer;
}
.pxxacg-modal-cancel{ background: var(--pxxacg-bg); border: 1px solid var(--pxxacg-border); color: var(--pxxacg-text); }
.pxxacg-modal-confirm{ background: var(--pxxacg-blue); border: 0; color: #fff; }
.pxxacg-modal-confirm svg{ width: 15px; height: 15px; }
.pxxacg-modal-confirm:disabled{ opacity: .7; }

.pxxacg-buy-link{
  background: transparent; border: 0; padding: 0;
  color: var(--pxxacg-text); text-decoration: underline;
  font-size: inherit; font-family: inherit;
}

/* ==========================================================================
   Toast 提示
   ========================================================================== */
.pxxacg-toast{
  position: fixed;
  top: 20px; right: 20px;
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-left: 4px solid var(--pxxacg-blue);
  border-radius: 10px;
  padding: 14px 20px;
  font-size: 13.5px;
  box-shadow: 0 12px 30px rgba(20,20,40,.14);
  z-index: 1100;
  opacity: 0;
  transform: translateY(-10px);
  transition: all .2s ease;
}
.pxxacg-toast-show{ opacity: 1; transform: translateY(0); }
.pxxacg-toast-error{ border-left-color: var(--pxxacg-red); color: var(--pxxacg-red); }

/* ==========================================================================
   支付等待遮罩（main.js 里的 PxxacgPayWait）
   ========================================================================== */
.pxxacg-paywait{
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(18, 20, 32, .55);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s ease, visibility .18s ease;
}
.pxxacg-paywait-open{ opacity: 1; visibility: visible; }
/* 等待期间锁掉页面滚动，遮罩也顺手把重复点击吃掉 */
html.pxxacg-paywait-locked{ overflow: hidden; }
.pxxacg-paywait-box{
  width: 100%;
  max-width: 320px;
  background: #fff;
  border-radius: 16px;
  padding: 30px 26px 22px;
  text-align: center;
  box-shadow: 0 20px 55px rgba(18, 20, 40, .3);
}
.pxxacg-paywait-spinner{
  width: 44px; height: 44px;
  margin: 0 auto 16px;
  border-radius: 50%;
  border: 3px solid #e8ebf4;
  border-top-color: var(--pxxacg-blue);
  animation: pxxacg-paywait-spin .8s linear infinite;
}
@keyframes pxxacg-paywait-spin{ to{ transform: rotate(360deg); } }
.pxxacg-paywait-title{ margin: 0 0 8px; font-size: 15px; font-weight: 700; color: var(--pxxacg-text); }
.pxxacg-paywait-desc{ margin: 0; font-size: 12.5px; line-height: 1.7; color: var(--pxxacg-text-light); }
.pxxacg-paywait-cancel{
  margin-top: 18px;
  padding: 0;
  border: 0;
  background: none;
  font-family: inherit;
  font-size: 12.5px;
  color: var(--pxxacg-text-light);
  text-decoration: underline;
  cursor: pointer;
}
.pxxacg-paywait-cancel:hover{ color: var(--pxxacg-blue); }

/* ==========================================================================
   用户中心
   ========================================================================== */
.pxxacg-uc-page{ padding: 28px 0 60px; }
.pxxacg-uc-layout{ display: flex; align-items: flex-start; gap: 24px; }

.pxxacg-uc-sidebar{
  width: 300px;
  flex-shrink: 0;
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: 14px;
  padding: 22px 18px;
  position: sticky;
  top: 84px;
}
.pxxacg-uc-sidebar-title{ margin: 0 0 18px; padding: 0 8px; font-size: 18px; }
.pxxacg-uc-nav-group{ margin-bottom: 18px; }
.pxxacg-uc-nav-group h4{ margin: 0 0 6px; padding: 0 8px; font-size: 12px; color: var(--pxxacg-text-light); font-weight: 600; }
.pxxacg-uc-nav-link{
  display: flex; align-items: center; gap: 10px;
  padding: 10px 8px;
  border-radius: 9px;
  font-size: 14px;
  color: var(--pxxacg-text);
}
.pxxacg-uc-nav-link svg{ width: 17px; height: 17px; color: var(--pxxacg-text-light); flex-shrink: 0; }
.pxxacg-uc-nav-link span{ flex: 1; }
.pxxacg-uc-nav-chevron{ width: 14px !important; height: 14px !important; }
/* 左侧导航「通知中心」上的未读角标：视觉跟页头铃铛那个 .pxxacg-notify-badge 一致，
   但那个是绝对定位贴在图标上的，这个是跟着标题排在行尾，所以要单独一个 class。
   选择器要压过上面的 `.pxxacg-uc-nav-link span{ flex: 1 }`，否则它会被撑满整行 */
.pxxacg-uc-nav-link .pxxacg-uc-nav-badge{
  flex: 0 0 auto;
  min-width: 18px; height: 18px; padding: 0 5px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--pxxacg-red); color: #fff;
  font-size: 10.5px; line-height: 1; font-weight: 700;
  border-radius: 9px;
}
.pxxacg-uc-nav-link:hover{ background: var(--pxxacg-bg); }
.pxxacg-uc-nav-active{ background: #eaf2ff; color: var(--pxxacg-blue); font-weight: 600; }
.pxxacg-uc-nav-active svg{ color: var(--pxxacg-blue); }
.pxxacg-uc-nav-active .pxxacg-uc-nav-chevron{ transform: rotate(90deg); }

.pxxacg-uc-nav-children{ margin: 2px 0 4px 14px; border-left: 1px solid var(--pxxacg-border); padding-left: 10px; }
.pxxacg-uc-nav-child{
  display: flex; align-items: center; gap: 8px;
  padding: 8px;
  border-radius: 8px;
  font-size: 13px;
  color: var(--pxxacg-text-light);
}
.pxxacg-uc-nav-child svg{ width: 15px; height: 15px; }
.pxxacg-uc-nav-child:hover{ background: var(--pxxacg-bg); }
.pxxacg-uc-nav-child-active{ color: var(--pxxacg-blue); font-weight: 600; }

.pxxacg-uc-main{ flex: 1; min-width: 0; }

.pxxacg-uc-title{ display: flex; align-items: center; gap: 8px; font-size: 22px; margin: 0 0 18px; }
.pxxacg-uc-title svg{ width: 20px; height: 20px; }
.pxxacg-uc-title-row{ display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.pxxacg-uc-title-row .pxxacg-uc-title{ margin-bottom: 0; }
.pxxacg-uc-back-link{
  width: 34px; height: 34px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--pxxacg-border);
  border-radius: 9px;
  color: var(--pxxacg-text);
}
.pxxacg-uc-back-link svg{ width: 16px; height: 16px; }

/* -------- dashboard -------- */
.pxxacg-uc-profile-card{
  display: flex; align-items: center; gap: 16px;
  background: #fff; border: 1px solid var(--pxxacg-border); border-radius: 14px;
  padding: 20px 24px; margin-bottom: 20px;
}
.pxxacg-uc-profile-avatar{ width: 56px; height: 56px; border-radius: 50%; overflow: hidden; border: 1px solid var(--pxxacg-border); flex-shrink: 0; }
.pxxacg-uc-profile-avatar img{ width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.pxxacg-uc-profile-name{ display: flex; align-items: center; gap: 10px; margin: 0 0 4px; font-size: 17px; font-weight: 700; }
.pxxacg-uc-profile-email{ margin: 0; font-size: 13px; color: var(--pxxacg-text-light); }

.pxxacg-uc-stat-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 26px; }
.pxxacg-uc-stat-card{ border-radius: 16px; padding: 24px 26px; color: #fff; }
.pxxacg-uc-stat-card h4{ display: flex; align-items: center; gap: 7px; margin: 0 0 14px; font-size: 13.5px; font-weight: 600; opacity: .9; }
.pxxacg-uc-stat-card h4 svg{ width: 16px; height: 16px; }
.pxxacg-uc-stat-value{ margin: 0 0 6px; font-size: 22px; font-weight: 800; }
.pxxacg-uc-stat-sub{ margin: 0 0 18px; font-size: 12.5px; opacity: .85; }
.pxxacg-uc-stat-dark{ background: linear-gradient(135deg, #3b4254, #262c3a); }
.pxxacg-uc-stat-green{ background: linear-gradient(135deg, #17b978, #0f9d63); }
.pxxacg-uc-stat-btn{ display: inline-flex; background: rgba(255,255,255,.14); color: #fff; padding: 9px 18px; border-radius: 9px; font-size: 13px; font-weight: 700; border: 0; cursor: pointer; transition: background .15s, transform .1s, box-shadow .15s; }
.pxxacg-uc-stat-btn:hover{ background: rgba(255,255,255,.22); }
.pxxacg-uc-stat-btn:active{ transform: scale(.97); }
/* 用在深色/彩色渐变卡片上的"亮色"按钮变体（比如"申请提现"）：跟卡片背景色拉开对比度，
   不能用前面那个半透明白色（在绿色/深色卡片上几乎跟背景融在一起，看不清），
   这里直接用实色白底 + 卡片主题色文字，hover 时轻微下沉一点提示可点击 */
.pxxacg-uc-stat-btn-light{ background: #fff; color: var(--pxxacg-green, #17b978); box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.pxxacg-uc-stat-btn-light:hover{ background: #f0fdf6; box-shadow: 0 4px 12px rgba(0,0,0,.18); }

.pxxacg-uc-quicklinks{ background: #fff; border: 1px solid var(--pxxacg-border); border-radius: 14px; padding: 24px 26px; margin-bottom: 20px; }
.pxxacg-uc-quicklinks > h3{ margin: 0 0 20px; font-size: 18px; }
.pxxacg-uc-quick-group{ margin-bottom: 22px; }
.pxxacg-uc-quick-group:last-child{ margin-bottom: 0; }
.pxxacg-uc-quick-group h5{ margin: 0 0 12px; font-size: 13px; color: var(--pxxacg-text-light); font-weight: 600; }
.pxxacg-uc-quick-grid{ display: grid; gap: 12px; }
.pxxacg-uc-quick-grid-1{ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); max-width: 220px; }
.pxxacg-uc-quick-grid-2{ grid-template-columns: repeat(2, 1fr); }
.pxxacg-uc-quick-grid-3{ grid-template-columns: repeat(3, 1fr); }
.pxxacg-uc-quick-grid-4{ grid-template-columns: repeat(4, 1fr); }
.pxxacg-uc-quick-card{
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  border: 1px solid var(--pxxacg-border); border-radius: 12px;
  padding: 18px 10px;
  font-size: 13px; color: var(--pxxacg-text); text-align: center;
}
.pxxacg-uc-quick-card svg{ width: 20px; height: 20px; color: var(--pxxacg-purple); }
.pxxacg-uc-quick-card:hover{ border-color: var(--pxxacg-purple); background: #f8f6ff; }

.pxxacg-uc-preview-row{ display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 20px; }
.pxxacg-uc-preview-card{ background: #fff; border: 1px solid var(--pxxacg-border); border-radius: 14px; padding: 22px 24px; }
.pxxacg-uc-preview-head{ display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.pxxacg-uc-preview-head h4{ display: flex; align-items: center; gap: 7px; margin: 0; font-size: 15px; }
.pxxacg-uc-preview-head h4 svg{ width: 16px; height: 16px; color: var(--pxxacg-text-light); }
.pxxacg-uc-preview-head a{ font-size: 12.5px; color: var(--pxxacg-blue); }
.pxxacg-uc-preview-list{ display: flex; flex-direction: column; gap: 8px; }
.pxxacg-uc-preview-row-item{ display: flex; justify-content: space-between; gap: 10px; font-size: 13px; padding: 8px 0; border-bottom: 1px solid var(--pxxacg-border); }
.pxxacg-uc-preview-row-item:last-child{ border-bottom: 0; }

.pxxacg-uc-empty{ text-align: center; padding: 60px 20px; color: var(--pxxacg-text-light); }
.pxxacg-uc-empty svg{ width: 40px; height: 40px; opacity: .4; margin-bottom: 12px; }
.pxxacg-uc-empty p{ margin: 4px 0 0; font-size: 13.5px; }
.pxxacg-uc-empty-sub{ font-size: 12.5px !important; color: var(--pxxacg-text-light); }
.pxxacg-uc-empty-inline{ padding: 30px 10px; }

.pxxacg-uc-benefits-block{ background: #fff; border: 1px solid var(--pxxacg-border); border-radius: 14px; padding: 24px 26px; }
.pxxacg-uc-benefits-block h4{ margin: 0 0 16px; font-size: 16px; }
.pxxacg-uc-benefits-grid{ display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.pxxacg-uc-benefit-item p{ margin: 6px 0 0; font-size: 12.5px; color: var(--pxxacg-text-light); }
.pxxacg-uc-benefit-tag{ display: inline-block; font-size: 11px; font-weight: 700; color: #fff; padding: 3px 10px; border-radius: 999px; }
.pxxacg-uc-benefit-item:nth-child(1) .pxxacg-uc-benefit-tag{ background: var(--pxxacg-blue); }
.pxxacg-uc-benefit-item:nth-child(2) .pxxacg-uc-benefit-tag{ background: #0f9d63; }
.pxxacg-uc-benefit-item:nth-child(3) .pxxacg-uc-benefit-tag{ background: #b8860b; }
.pxxacg-uc-benefit-item:nth-child(4) .pxxacg-uc-benefit-tag{ background: var(--pxxacg-red); }

/* -------- 通用面板 -------- */
.pxxacg-uc-panel{ background: #fff; border: 1px solid var(--pxxacg-border); border-radius: 14px; padding: 24px 26px; margin-bottom: 20px; }
.pxxacg-uc-panel-flush{ padding: 0; overflow: hidden; }
.pxxacg-uc-panel-title{ display: flex; align-items: center; gap: 8px; margin: 0 0 16px; font-size: 15px; font-weight: 700; padding-bottom: 14px; border-bottom: 1px solid var(--pxxacg-border); }
.pxxacg-uc-panel-title svg{ width: 16px; height: 16px; color: var(--pxxacg-text-light); }
.pxxacg-uc-panel-sub{ margin: -8px 0 16px; font-size: 12.5px; color: var(--pxxacg-text-light); }

/* -------- 账号设置 -------- */
.pxxacg-uc-avatar-row{ display: flex; align-items: center; gap: 18px; }
.pxxacg-uc-avatar-wrap{ position: relative; width: 80px; height: 80px; flex-shrink: 0; }
.pxxacg-uc-avatar-preview{ width: 80px; height: 80px; border-radius: 50%; overflow: hidden; border: 1px solid var(--pxxacg-border); background: var(--pxxacg-bg); }
.pxxacg-uc-avatar-preview img{ width: 100%; height: 100%; object-fit: contain; padding: 8px; }
.pxxacg-uc-avatar-btn{
  position: absolute; right: -2px; bottom: -2px;
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--pxxacg-blue); color: #fff; border: 2px solid #fff;
  display: flex; align-items: center; justify-content: center;
}
.pxxacg-uc-avatar-btn svg{ width: 14px; height: 14px; }
.pxxacg-uc-avatar-click{ cursor: pointer; }
.pxxacg-uc-avatar-label{ margin: 0 0 4px; font-size: 14px; font-weight: 600; }
.pxxacg-uc-avatar-hint{ margin: 0; font-size: 12px; color: var(--pxxacg-text-light); }

.pxxacg-uc-info-row{ display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; background: var(--pxxacg-bg); border-radius: 10px; margin-bottom: 12px; }
.pxxacg-uc-info-left{ display: flex; align-items: center; gap: 12px; }
.pxxacg-uc-info-left svg{ width: 18px; height: 18px; color: var(--pxxacg-text-light); }
.pxxacg-uc-info-label{ display: block; font-size: 11.5px; color: var(--pxxacg-text-light); }
.pxxacg-uc-info-value{ margin: 2px 0 0; font-size: 14px; font-weight: 600; }
.pxxacg-uc-edit-btn, .pxxacg-uc-bind-btn{
  width: 32px; height: 32px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  background: #fff; border: 1px solid var(--pxxacg-border); color: var(--pxxacg-text-light);
}
.pxxacg-uc-edit-btn svg{ width: 15px; height: 15px; }
.pxxacg-uc-bind-btn{ width: auto; padding: 0 16px; font-size: 12.5px; color: var(--pxxacg-blue); border-color: var(--pxxacg-blue); }
.pxxacg-uc-bind-btn:disabled{ opacity: .5; cursor: not-allowed; color: var(--pxxacg-text-light); border-color: var(--pxxacg-border); }

.pxxacg-uc-notify-row{ display: flex; align-items: center; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--pxxacg-border); }
.pxxacg-uc-notify-left{ display: flex; align-items: center; gap: 12px; }
.pxxacg-uc-notify-left svg{ width: 18px; height: 18px; color: var(--pxxacg-text-light); }
.pxxacg-uc-notify-subtitle{ margin: 20px 0 2px; font-size: 14px; }
.pxxacg-uc-notify-toggle{
  width: 42px; height: 24px; border-radius: 999px;
  background: var(--pxxacg-border); border: 0; position: relative; flex-shrink: 0;
  transition: background-color .15s ease;
}
.pxxacg-uc-notify-toggle::after{
  content: ""; position: absolute; top: 2px; left: 2px;
  width: 20px; height: 20px; border-radius: 50%; background: #fff;
  transition: transform .15s ease;
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.pxxacg-uc-toggle-on{ background: var(--pxxacg-blue); }
.pxxacg-uc-toggle-on::after{ transform: translateX(18px); }
.pxxacg-uc-notify-note{ margin-top: 18px; background: #f0faf6; border-radius: 10px; padding: 14px 18px; font-size: 12.5px; color: #0f9d63; }
.pxxacg-uc-notify-note p{ margin: 4px 0 0; }

/* -------- tabs / pills -------- */
.pxxacg-uc-tabs{ display: flex; gap: 4px; margin-bottom: 18px; border-bottom: 1px solid var(--pxxacg-border); }
.pxxacg-uc-tabs-padded{ margin: 0; padding: 0 20px; }
.pxxacg-uc-tab{ display: flex; align-items: center; gap: 6px; padding: 14px 18px; font-size: 13.5px; color: var(--pxxacg-text-light); border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.pxxacg-uc-tab svg{ width: 15px; height: 15px; }
.pxxacg-uc-tab:hover{ color: var(--pxxacg-text); }
.pxxacg-uc-tab-active{ color: var(--pxxacg-blue); border-bottom-color: var(--pxxacg-blue); font-weight: 600; }

.pxxacg-uc-pill-row{ display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.pxxacg-uc-pill-row-padded{ padding: 18px 20px 0; margin-bottom: 4px; }

.pxxacg-uc-grid{ padding: 20px; }

/* -------- 浏览历史 -------- */
.pxxacg-uc-clear-btn{ display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--pxxacg-red); border: 1px solid #fecaca; background: #fff8f8; padding: 8px 14px; border-radius: 8px; }
.pxxacg-uc-clear-btn svg{ width: 14px; height: 14px; }
.pxxacg-uc-history-list{ padding: 10px 20px; }
.pxxacg-uc-history-item{ display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--pxxacg-border); }
.pxxacg-uc-history-item:last-child{ border-bottom: 0; }
.pxxacg-uc-history-thumb{ width: 88px; height: 62px; flex-shrink: 0; border-radius: 8px; overflow: hidden; background: var(--pxxacg-bg); }
.pxxacg-uc-history-thumb img{ width: 100%; height: 100%; object-fit: cover; }
.pxxacg-uc-history-body h4{ margin: 0 0 6px; font-size: 13.5px; font-weight: 600; }
.pxxacg-uc-history-body p{ display: flex; align-items: center; gap: 5px; margin: 0; font-size: 12px; color: var(--pxxacg-text-light); }
.pxxacg-uc-history-body p svg{ width: 12px; height: 12px; }

/* -------- 订单 -------- */
.pxxacg-uc-order-list{ padding: 6px 0; }
.pxxacg-uc-order-list-padded{ padding: 6px 20px 20px; }
.pxxacg-uc-order-row{ display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-bottom: 1px solid var(--pxxacg-border); }
.pxxacg-uc-order-row-simple{ padding: 14px 0; }
.pxxacg-uc-order-row:last-child{ border-bottom: 0; }
.pxxacg-uc-order-thumb{ width: 72px; height: 54px; flex-shrink: 0; border-radius: 8px; overflow: hidden; background: var(--pxxacg-bg); }
.pxxacg-uc-order-thumb img{ width: 100%; height: 100%; object-fit: cover; }
.pxxacg-uc-order-body{ flex: 1; min-width: 0; }
.pxxacg-uc-order-body a, .pxxacg-uc-order-body span{ font-size: 13.5px; font-weight: 600; }
.pxxacg-uc-order-body p{ margin: 4px 0 0; font-size: 12px; color: var(--pxxacg-text-light); }
.pxxacg-uc-order-price{ text-align: right; font-size: 14px; font-weight: 700; white-space: nowrap; }
.pxxacg-uc-order-status{ display: block; margin-top: 4px; font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 999px; }
.pxxacg-uc-status-done, .pxxacg-uc-status-completed{ background: #e4f9ef; color: #0f9d63; }
.pxxacg-uc-status-pending{ background: #fff6dc; color: #b8860b; }
.pxxacg-uc-status-expired, .pxxacg-uc-status-failed{ background: #fef2f2; color: var(--pxxacg-red); }

/* -------- 充值 -------- */
.pxxacg-uc-page-head{ display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.pxxacg-uc-page-head-icon{ width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #fff; }
.pxxacg-uc-page-head-icon svg{ width: 20px; height: 20px; }
.pxxacg-uc-head-blue{ background: var(--pxxacg-blue); }
.pxxacg-uc-page-head h1{ margin: 0 0 2px; font-size: 19px; }
.pxxacg-uc-page-head p{ margin: 0; font-size: 12.5px; color: var(--pxxacg-text-light); }

.pxxacg-uc-recharge-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.pxxacg-uc-recharge-card{
  position: relative;
  text-align: center;
  border: 1px solid var(--pxxacg-border);
  border-radius: 12px;
  padding: 26px 10px;
  background: #fff;
  width: 100%;
  font-family: inherit;
  cursor: pointer;
}
.pxxacg-uc-recharge-card:hover{ border-color: var(--pxxacg-blue); background: #eaf2ff; }
.pxxacg-uc-recharge-tag{ position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: var(--pxxacg-red); color: #fff; font-size: 10.5px; font-weight: 700; padding: 2px 10px; border-radius: 999px; }
.pxxacg-uc-recharge-num{ display: block; font-size: 28px; font-weight: 800; color: var(--pxxacg-blue); }
.pxxacg-uc-recharge-unit{ font-size: 12.5px; color: var(--pxxacg-text-light); }
/* 「自定义」那张卡片：字号收一点、行高压到跟数字款一样高，六张卡片视觉上还是齐的 */
.pxxacg-uc-recharge-num-text{ font-size: 20px; line-height: 34px; }

.pxxacg-uc-info-box{ background: #eaf2ff; border-radius: 14px; padding: 22px 26px; }
.pxxacg-uc-info-box h4{ margin: 0 0 10px; font-size: 14px; }
.pxxacg-uc-info-box ul{ margin: 0; padding-left: 18px; }
.pxxacg-uc-info-box li{ font-size: 12.5px; line-height: 2; color: var(--pxxacg-text); }

/* -------- 工单 / 申诉 -------- */
.pxxacg-uc-primary-btn{ display: flex; align-items: center; gap: 6px; background: var(--pxxacg-blue); color: #fff; padding: 9px 18px; border-radius: 9px; font-size: 13.5px; font-weight: 700; white-space: nowrap; }
.pxxacg-uc-primary-btn svg{ width: 15px; height: 15px; }
.pxxacg-uc-ticket-list{ padding: 6px 20px 20px; }
.pxxacg-uc-ticket-row{ display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--pxxacg-border); }
.pxxacg-uc-ticket-row:last-child{ border-bottom: 0; }
.pxxacg-uc-ticket-row h4{ margin: 0 0 5px; font-size: 14px; }
.pxxacg-uc-ticket-row p{ margin: 0; font-size: 12px; color: var(--pxxacg-text-light); }
.pxxacg-uc-ticket-status{ font-size: 11.5px; font-weight: 600; padding: 3px 12px; border-radius: 999px; background: var(--pxxacg-bg); color: var(--pxxacg-text-light); white-space: nowrap; }
/* 整行现在是链接，去掉链接默认样式，同时给个 hover 反馈 */
a.pxxacg-uc-ticket-row{ text-decoration: none; color: inherit; }
a.pxxacg-uc-ticket-row:hover{ background: var(--pxxacg-bg); }
a.pxxacg-uc-ticket-row:hover h4{ color: var(--pxxacg-blue); }

/* 工单详情：对话气泡 */
.pxxacg-uc-ticket-meta{ display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font-size: 12px; color: var(--pxxacg-text-light); margin-bottom: 20px; }
.pxxacg-uc-chat{ display: flex; flex-direction: column; gap: 16px; }
.pxxacg-uc-chat-item{ display: flex; flex-direction: column; align-items: flex-start; }
.pxxacg-uc-chat-meta{ font-size: 11.5px; color: var(--pxxacg-text-light); margin-bottom: 5px; }
.pxxacg-uc-chat-bubble{ max-width: 78%; padding: 11px 15px; border-radius: 12px; background: var(--pxxacg-bg); font-size: 13.5px; line-height: 1.7; word-break: break-word; white-space: normal; }
.pxxacg-uc-chat-admin{ align-items: flex-end; }
.pxxacg-uc-chat-admin .pxxacg-uc-chat-bubble{ background: #eaf2ff; text-align: left; }
.pxxacg-uc-chat-images{ display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.pxxacg-uc-chat-images img{ width: 84px; height: 84px; object-fit: cover; border-radius: 10px; border: 1px solid var(--pxxacg-border); display: block; }
.pxxacg-uc-chat-hint{ margin: 0; font-size: 12.5px; color: var(--pxxacg-text-light); text-align: center; padding: 12px 0; }

#pxxacg-ticket-reply-form textarea{
  width: 100%;
  border: 1px solid var(--pxxacg-border);
  border-radius: 9px;
  padding: 12px 14px;
  font-size: 13.5px;
  font-family: inherit;
  resize: vertical;
}

.pxxacg-uc-notice{
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
  background: #fff8e6; border: 1px solid #ffe4a3; color: #92660a;
  border-radius: 10px; padding: 14px 18px; margin-bottom: 20px; font-size: 12.5px;
}
.pxxacg-uc-notice svg{ width: 16px; height: 16px; flex-shrink: 0; }
.pxxacg-uc-notice a{ margin-left: auto; font-weight: 700; color: #92660a; text-decoration: underline; white-space: nowrap; }

.pxxacg-uc-tip-box{ background: #f0faf6; border-radius: 10px; padding: 16px 20px; margin-bottom: 20px; }
.pxxacg-uc-tip-box p{ margin: 4px 0; font-size: 12.5px; color: #0f9d63; }

.pxxacg-uc-upload-row{ display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; }
/* 选择器比 .pxxacg-field label 更高优先级（那条规则会把这个 label 的 display 强制改成 block，
   导致里面的图标和文字跑到左上角），所以这里必须用 .pxxacg-uc-upload-row 打底再定义一次 */
.pxxacg-uc-upload-row .pxxacg-uc-upload-box{
  width: 84px; height: 84px; border: 1px dashed var(--pxxacg-border); border-radius: 10px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  color: var(--pxxacg-text-light); font-size: 11.5px; cursor: pointer; flex-shrink: 0;
  margin: 0;
}
.pxxacg-uc-upload-box svg{ width: 18px; height: 18px; }
.pxxacg-uc-upload-preview{ display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; }
.pxxacg-uc-upload-preview img{ display: block; flex-shrink: 0; }
.pxxacg-uc-upload-preview img{ width: 84px; height: 84px; object-fit: cover; border-radius: 10px; border: 1px solid var(--pxxacg-border); }

.pxxacg-uc-form-actions{ display: flex; justify-content: flex-end; gap: 12px; margin-top: 10px; }
.pxxacg-uc-form-actions .pxxacg-modal-cancel,
.pxxacg-uc-form-actions .pxxacg-modal-confirm{ flex: none; padding: 10px 24px; }

#pxxacg-ticket-form select,
#pxxacg-ticket-form input[type="text"],
#pxxacg-ticket-form textarea{
  width: 100%;
  border: 1px solid var(--pxxacg-border);
  border-radius: 9px;
  padding: 12px 14px;
  font-size: 13.5px;
  font-family: inherit;
}
#pxxacg-ticket-form textarea{ resize: vertical; }

@media (max-width: 960px){
  .pxxacg-uc-layout{ flex-direction: column; }
  .pxxacg-uc-sidebar{ width: 100%; position: static; }
  .pxxacg-uc-stat-grid, .pxxacg-uc-preview-row{ grid-template-columns: 1fr; }
  .pxxacg-uc-quick-grid-3, .pxxacg-uc-quick-grid-4{ grid-template-columns: repeat(2, 1fr); }
  .pxxacg-uc-benefits-grid{ grid-template-columns: 1fr; }
  .pxxacg-uc-recharge-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px){
  .pxxacg-uc-quick-grid-2, .pxxacg-uc-quick-grid-3, .pxxacg-uc-quick-grid-4{ grid-template-columns: repeat(2, 1fr); }
}

/* ==========================================================================
   通知中心
   ========================================================================== */
.pxxacg-notify-bell{ position: relative; }
.pxxacg-notify-badge{
  position: absolute; top: -2px; right: -2px;
  min-width: 16px; height: 16px; padding: 0 4px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--pxxacg-red); color: #fff;
  font-size: 10px; line-height: 1; font-weight: 700;
  border-radius: 9px; border: 2px solid #fff;
  box-sizing: content-box;
}

.pxxacg-notify-list{ display: flex; flex-direction: column; }
.pxxacg-notify-item{
  padding: 16px 18px;
  border-bottom: 1px solid var(--pxxacg-border);
}
.pxxacg-notify-item:last-child{ border-bottom: none; }
.pxxacg-notify-unread{ background: #f7f7fb; }
.pxxacg-notify-item-head{
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 8px;
}
.pxxacg-notify-item-title{
  font-size: 14.5px; font-weight: 700; color: var(--pxxacg-text);
}
.pxxacg-notify-dot{
  display: inline-flex; align-items: center;
  padding: 1px 7px; border-radius: 8px;
  background: var(--pxxacg-red); color: #fff;
  font-size: 11px; line-height: 1.6;
}
.pxxacg-notify-time{
  margin-left: auto; font-size: 12px; color: var(--pxxacg-text-light);
  white-space: nowrap;
}
.pxxacg-notify-item-body{
  font-size: 13.5px; line-height: 1.8; color: var(--pxxacg-text-light);
  word-break: break-word;
}
.pxxacg-notify-item-body a{ color: var(--pxxacg-blue); }

.pxxacg-notify-toolbar{
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px 18px;
  background: #f7f7fb;
  border-bottom: 1px solid var(--pxxacg-border);
  font-size: 13px; color: var(--pxxacg-text-light);
}
.pxxacg-notify-toolbar strong{ color: var(--pxxacg-red); }
.pxxacg-notify-readall{
  padding: 5px 14px; border-radius: 8px;
  border: 1px solid var(--pxxacg-blue); color: var(--pxxacg-blue);
  background: #fff; font-size: 12.5px; cursor: pointer;
}
.pxxacg-notify-readall:hover{ background: var(--pxxacg-blue); color: #fff; }
.pxxacg-notify-readall:disabled{ opacity: .6; cursor: not-allowed; }
.pxxacg-notify-item-actions{ margin-top: 10px; }
.pxxacg-notify-mark{
  padding: 4px 12px; border-radius: 8px;
  border: 1px solid var(--pxxacg-border); color: var(--pxxacg-text-light);
  background: #fff; font-size: 12px; cursor: pointer;
}
.pxxacg-notify-mark:hover{ border-color: var(--pxxacg-blue); color: var(--pxxacg-blue); }
.pxxacg-notify-mark:disabled{ opacity: .6; cursor: not-allowed; }


/* ==========================================================================
   后台工单「对话与回复」——聊天气泡
   只在工单编辑页（post_type=pxxacg_ticket）随 style.css 一起加载，
   配色沿用上面的 --pxxacg-* 变量，不引入新颜色。
   ========================================================================== */
.pxxacg-tkchat{ margin: 4px 0 6px; }
.pxxacg-tkchat-log{
  max-height: 460px;
  overflow-y: auto;
  padding: 14px 16px;
  background: var(--pxxacg-bg);
  border: 1px solid var(--pxxacg-border);
  border-radius: var(--pxxacg-radius);
}
.pxxacg-tkchat-msg{ display: flex; flex-direction: column; align-items: flex-start; margin-bottom: 14px; }
.pxxacg-tkchat-msg:last-child{ margin-bottom: 0; }
.pxxacg-tkchat-admin{ align-items: flex-end; }
.pxxacg-tkchat-meta{ font-size: 12px; color: var(--pxxacg-text-light); margin-bottom: 4px; padding: 0 4px; }
.pxxacg-tkchat-bubble{
  max-width: 76%;
  padding: 10px 14px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  color: var(--pxxacg-text);
  font-size: 13.5px;
  line-height: 1.7;
  word-break: break-word;
}
.pxxacg-tkchat-admin .pxxacg-tkchat-bubble{
  background: var(--pxxacg-purple);
  border-color: var(--pxxacg-purple);
  color: #fff;
}
.pxxacg-tkchat-images{ display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; max-width: 76%; }
.pxxacg-tkchat-admin .pxxacg-tkchat-images{ justify-content: flex-end; }
.pxxacg-tkchat-images img{
  width: 88px; height: 88px; object-fit: cover;
  border-radius: 8px; border: 1px solid var(--pxxacg-border);
}
.pxxacg-tkchat-compose{
  margin-top: 12px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: var(--pxxacg-radius);
}
.pxxacg-tkchat-compose textarea{ width: 100%; resize: vertical; min-height: 68px; border-radius: 10px; }
.pxxacg-tkchat-compose-bar{ display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; }
.pxxacg-tkchat-status{ font-size: 12.5px; color: var(--pxxacg-text-light); }
.pxxacg-tkchat-status-error{ color: var(--pxxacg-red); }
.pxxacg-tkchat-compose .description{ margin: 8px 0 0; }

/* ==========================================================================
   支付成功落地页（template-recharge-success.php）
   ========================================================================== */
.pxxacg-paydone-wrap{
  display: flex; align-items: center; justify-content: center;
  min-height: 62vh; padding: 48px 20px;
  background: var(--pxxacg-bg);
}
.pxxacg-paydone-card{
  width: 100%; max-width: 420px;
  background: #fff;
  border: 1px solid var(--pxxacg-border);
  border-radius: var(--pxxacg-radius);
  box-shadow: 0 10px 40px rgba(31, 36, 48, .06);
  padding: 36px 28px 30px;
  text-align: center;
}
.pxxacg-paydone-icon{
  width: 68px; height: 68px; margin: 0 auto 18px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: var(--pxxacg-teal);
  color: #fff;
}
.pxxacg-paydone-icon svg{ width: 34px; height: 34px; }
.pxxacg-paydone-title{ font-size: 22px; font-weight: 700; margin: 0 0 10px; color: var(--pxxacg-text); }
.pxxacg-paydone-amount{ font-size: 30px; font-weight: 800; color: var(--pxxacg-red); margin: 0 0 14px; }
.pxxacg-paydone-tip{ font-size: 14px; color: var(--pxxacg-text-light); margin: 0 0 22px; }
.pxxacg-paydone-tip strong{ color: var(--pxxacg-purple); font-size: 16px; }
.pxxacg-paydone-btn{
  display: inline-block;
  padding: 12px 32px;
  border-radius: 10px;
  background: var(--pxxacg-purple);
  color: #fff; font-size: 15px; font-weight: 700;
}
.pxxacg-paydone-btn:hover{ background: var(--pxxacg-purple-2); }
.pxxacg-paydone-note{
  margin: 22px 0 0; font-size: 12.5px; line-height: 1.7;
  color: var(--pxxacg-text-light);
}
@media (max-width: 480px){
  .pxxacg-paydone-wrap{ padding: 28px 14px; }
  .pxxacg-paydone-card{ padding: 28px 20px 24px; }
  .pxxacg-paydone-amount{ font-size: 26px; }
}

/* ==========================================================================
   推广页（那张大图，点了进我的推广）
   ========================================================================== */
.pxxacg-promo-page{ padding-top: 24px; padding-bottom: 40px; }
.pxxacg-promo-hero{
  display: block;
  line-height: 0;
  border-radius: var(--pxxacg-radius);
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(20,20,40,.10);
}
.pxxacg-promo-hero img{
  display: block;
  width: 100%;
  height: auto;
  transition: transform .2s ease;
}
.pxxacg-promo-hero:hover img{ transform: scale(1.006); }

/* ==========================================================================
   移动端适配（<=780px）

   这一节统一放在文件末尾，靠**源码顺序**压掉前面那些零散的窄屏规则
   （之前的碎片规则散在 780/560/480 各处，互相打架，比如 480 那条
   `.pxxacg-cat-card{padding:18px...}` 会把首页图片卡的 padding:0 顶掉）。

   页头的做法：窄屏下把「操作区」和「用户区」设成 display:contents，
   它们不再生成自己的盒子，里面的元素直接变成页头的 flex 子项，
   于是只用 order 就能做到「头像留在顶栏、菜单收进抽屉」，不用复制一份模板。
   ========================================================================== */
@media (max-width: 780px){

  /* ---------- 页面容器：窄屏两边少留一点 ---------- */
  .pxxacg-container{ padding: 0 16px; }

  /* ---------- 页头骨架 ---------- */
  .pxxacg-header-inner{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 6px;
    row-gap: 8px;
    height: auto;
    min-height: var(--pxxacg-header-height);
    padding: 6px 16px;
  }
  .pxxacg-header-actions{ display: contents; }
  .pxxacg-user{ display: contents; }

  .pxxacg-logo{ order: 1; }
  .pxxacg-logo .pxxacg-logo-img{ height: 38px; }

  /* 顶栏这一行只留：logo / 通知铃铛 / 头像（没登录则是登录·注册）/ 汉堡 */
  .pxxacg-header-actions .pxxacg-icon-btn.pxxacg-notify-bell{
    display: flex;
    order: 2;
    margin-left: auto;
  }
  .pxxacg-user-avatar{ order: 3; width: 32px; height: 32px; }
  .pxxacg-guest-actions{ order: 3; margin-left: auto; }
  /* 隐藏那条是 `.pxxacg-header-actions .pxxacg-icon-btn`（0,2,0），
     只写 .pxxacg-menu-toggle（0,1,0）压不住，必须把前缀补上 */
  .pxxacg-header-actions .pxxacg-icon-btn.pxxacg-menu-toggle{ display: flex; order: 4; margin-left: 2px; }
  .pxxacg-menu-toggle svg{ transition: transform .18s ease; }
  body.pxxacg-nav-open .pxxacg-menu-toggle svg{ transform: rotate(90deg); }

  /* 抽屉展开时，页头自己变成可滚动面板 */
  body.pxxacg-nav-open .pxxacg-header{
    max-height: 100vh;
    max-height: 100dvh;
    overflow-y: auto;
    box-shadow: 0 18px 34px rgba(20,20,40,.12);
  }

  /* ---------- 抽屉 1/3：主导航竖排 ---------- */
  body.pxxacg-nav-open .pxxacg-nav{
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    order: 5;
    flex-basis: 100%;
    width: 100%;
    margin-top: 2px;
    padding-top: 8px;
    border-top: 1px solid var(--pxxacg-border);
  }
  body.pxxacg-nav-open .pxxacg-nav-item{ width: 100%; }
  body.pxxacg-nav-open .pxxacg-nav-link{
    justify-content: flex-start;
    padding: 12px;
    font-size: 15.5px;
    border-radius: 10px;
  }
  body.pxxacg-nav-open .pxxacg-nav-link svg{ width: 18px; height: 18px; }
  body.pxxacg-nav-open .pxxacg-nav-link .pxxacg-caret{
    width: 16px; height: 16px;
    margin-left: auto;
  }
  /* 触屏没有 hover，二级菜单改成点开就摊在下面 */
  body.pxxacg-nav-open .pxxacg-submenu{
    position: static;
    display: none;
    min-width: 0;
    opacity: 1;
    visibility: visible;
    transform: none;
    background: var(--pxxacg-bg);
    border: 0;
    box-shadow: none;
    margin: 2px 0 6px;
    padding: 6px;
  }
  body.pxxacg-nav-open .pxxacg-nav-item.pxxacg-open .pxxacg-submenu{ display: block; }
  body.pxxacg-nav-open .pxxacg-submenu a{ padding: 10px 12px; font-size: 14.5px; }

  /* ---------- 抽屉 2/3：那四个快捷按钮 ---------- */
  /* 前面 814 行那条 `.pxxacg-header-actions .pxxacg-btn{display:none}` 优先级是 0,2,0，
     这里靠 body.pxxacg-nav-open 前缀加到 0,3,1 才盖得住 */
  body.pxxacg-nav-open .pxxacg-header-actions .pxxacg-btn{
    display: inline-flex;
    order: 6;
    flex: 1 1 calc(50% - 3px);
    justify-content: center;
    padding: 10px 12px;
    font-size: 13px;
  }

  /* ---------- 抽屉 3/3：账户区（原来的悬浮菜单改成静态块） ---------- */
  /* 收起时彻底不占位；:hover 那条只改 opacity/visibility，动不了 display */
  .pxxacg-user-menu{ display: none; }
  body.pxxacg-nav-open .pxxacg-user-menu{
    display: block;
    position: static;
    order: 7;
    flex-basis: 100%;
    width: 100%;
    opacity: 1;
    visibility: visible;
    transform: none;
    background: transparent;
    border: 0;
    border-top: 1px solid var(--pxxacg-border);
    border-radius: 0;
    box-shadow: none;
    margin: 4px 0 0;
    padding: 12px 0 4px;
  }
  body.pxxacg-nav-open .pxxacg-user-menu-head{ padding: 0 0 12px; gap: 12px; }
  body.pxxacg-nav-open .pxxacg-user-menu a{ padding: 12px; font-size: 15px; }

  /* ---------- 首页：搜索条 ---------- */
  /* 之前这行的 flex 子项都不会收缩（input 的 min-width 是 auto），
     整条比容器宽出 90 多像素，把页面撑到 441px，右边就多出一条空白。 */
  .pxxacg-search{ padding: 0; margin-top: 14px; }
  .pxxacg-search-form{ padding: 6px 6px 6px 14px; gap: 6px; }
  .pxxacg-search-form input{ min-width: 0; font-size: 14px; padding: 9px 0; }
  .pxxacg-search-toggle{ display: none; }
  .pxxacg-search-submit{ padding: 9px 14px; font-size: 13.5px; }

  .pxxacg-hero{ margin-top: 14px; border-radius: 14px; }

  /* ---------- 首页：四个板块 ---------- */
  /* 卡片本身 166 宽，图却只有 130 —— 480 那条 `.pxxacg-cat-card{padding:18px 18px 20px}`
     把图片卡的 padding:0 顶掉了，上下白多 38px，行距看着就"太远"。 */
  .pxxacg-categories{ margin-top: 18px; gap: 10px; }
  .pxxacg-categories .pxxacg-cat-banner-card{ padding: 0; }
  .pxxacg-cat-banner{ border-radius: 12px; }

  /* 首页长条推广图 */
  .pxxacg-promo-banner{ margin-top: 12px; }

  /* ---------- 分页：窄屏换行，别顶出屏幕 ---------- */
  .pxxacg-pagination{ flex-wrap: wrap; margin: 24px 0 8px; }
  .pxxacg-pagination a,
  .pxxacg-pagination span{ min-width: 32px; height: 32px; padding: 0 8px; font-size: 13px; }
  .pxxacg-pagination-row{ gap: 12px; margin: 24px 0 8px; }
}

@media (max-width: 480px){
  /* 两列改一列太夸张，仍然两列，只是再收紧一点 */
  .pxxacg-categories{ gap: 8px; }
  .pxxacg-search-submit{ padding: 9px 12px; }
}

/* ==========================================================================
   手机端返回键

   二级/三级页面（分类列表、详情、阅读器、个人中心……也就是首页之外的所有页面）
   在页头左上角给一个返回键。桌面端不显示 —— 系统/浏览器自己有返回。
   按钮由 header.php 输出，首页（is_front_page / is_home）时不输出。
   ========================================================================== */
.pxxacg-back{ display: none; }

@media (max-width: 780px){
  .pxxacg-back{
    display: flex;
    order: 0;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    margin-right: 2px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--pxxacg-text);
    -webkit-tap-highlight-color: transparent;
  }
  .pxxacg-back svg{ width: 21px; height: 21px; }
  .pxxacg-back:active{ background: rgba(20,20,40,.07); }
}

/* ==========================================================================
   手机网页版「请下载 APP」提醒弹窗

   由 functions.php 的 pxxacg_mobile_app_notice() 输出（挂在 wp_footer）。
   只在窄屏弹；每次进入弹一次，关掉之后每 10 分钟再提醒一次 —— 节奏在
   那段内联 JS 顶部的两个常量里，改那里就行。
   ========================================================================== */
.pxxacg-appnotice-mask{
  position: fixed;
  inset: 0;
  z-index: 99998;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15,23,42,.5);
}
.pxxacg-appnotice-mask.pxxacg-appnotice-open{ display: flex; }

.pxxacg-appnotice-box{
  position: relative;
  width: 100%;
  max-width: 340px;
  padding: 26px 22px 20px;
  background: #fff;
  border-radius: 18px;
  text-align: center;
  box-shadow: 0 20px 60px rgba(15,23,42,.3);
  animation: pxxacgAppNoticeIn .22s ease;
}
@keyframes pxxacgAppNoticeIn{
  from{ opacity: 0; transform: translateY(10px) scale(.98); }
  to{ opacity: 1; transform: none; }
}

.pxxacg-appnotice-icon{
  width: 54px;
  height: 54px;
  margin: 0 auto 14px;
  border-radius: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--pxxacg-blue), var(--pxxacg-blue-2));
  color: #fff;
}
.pxxacg-appnotice-icon svg{ width: 28px; height: 28px; }

.pxxacg-appnotice-title{
  margin: 0 0 10px;
  font-size: 17px;
  font-weight: 800;
  color: var(--pxxacg-text);
}
.pxxacg-appnotice-text{
  margin: 0 0 20px;
  font-size: 14px;
  line-height: 1.75;
  color: #4b5563;
  text-align: left;
  word-break: break-word;
}

.pxxacg-appnotice-go{
  display: block;
  width: 100%;
  padding: 13px;
  border-radius: 12px;
  background: var(--pxxacg-blue);
  color: #fff;
  font-size: 15.5px;
  font-weight: 700;
  text-align: center;
}
.pxxacg-appnotice-go:active{ background: #2f6fd8; }

.pxxacg-appnotice-later{
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 10px;
  border: 0;
  background: none;
  color: var(--pxxacg-text-light);
  font-size: 13.5px;
}
