/* ============================================================
   星伴 by7 · 页面级样式 page.css
   首页全部模块 + 列表/详情/标签/分页/面包屑
   深色星河视觉 · 原创 CSS · 适配 PbootCMS
   引用路径：{pboot:sitedomain}/skin/css/page.css
   依赖：base.css（--xb- 变量与 .xb- 基础组件）
   ============================================================ */

/* ============ 公共声明集中区（减少重复） ============ */
/* 卡片底：surface 底色 + 软边框 + 通用圆角 */
.xb-limited-card,.xb-newcomer-card,.xb-guide-card,.xb-story-mini,
.xb-mlist-card,.xb-tlist-card,.xb-alist-widget,.xb-grank-card,
.xb-alist-item,.xb-mdetail-cover,.xb-adetail-toc,
.xb-tlist-cloud,.xb-tlist-map,.xb-rank-table,.xb-rvsum{
  background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius)
}
/* 卡片悬停：translateY 上浮 + 边框高亮（不用 filter） */
.xb-featured-card,.xb-limited-card,.xb-newcomer-card,.xb-review-card,
.xb-guide-card,.xb-story-mini,.xb-mlist-card,.xb-alist-item,.xb-tlist-card{
  transition:transform var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease)
}
.xb-featured-card:hover,.xb-limited-card:hover,.xb-newcomer-card:hover,
.xb-review-card:hover,.xb-guide-card:hover,.xb-story-mini:hover,
.xb-mlist-card:hover,.xb-alist-item:hover,.xb-tlist-card:hover{
  transform:translateY(-4px);border-color:var(--xb-border)
}
/* 图片缩放公共 */
.xb-limited-img img,.xb-newcomer-img img,.xb-mlist-img img,
.xb-alist-thumb img,.xb-guide-img img{transition:transform .5s var(--xb-ease)}
.xb-limited-card:hover .xb-limited-img img,.xb-newcomer-card:hover .xb-newcomer-img img,
.xb-mlist-card:hover .xb-mlist-img img,.xb-alist-item:hover .xb-alist-thumb img,
.xb-guide-card:hover .xb-guide-img img{transform:scale(1.05)}
/* 显示字体 + 加粗（标题公共） */
.xb-featured-info h3,.xb-featured-card-info h4,.xb-limited-info h4,
.xb-newcomer-info h4,.xb-story-text h3,.xb-service-card h4,
.xb-flow-step h4,.xb-guide-info h4,.xb-tlist-card h4,.xb-tlist-map h3,
.xb-mlist-info h4,.xb-alist-body h3,.xb-adetail-head h1,
.xb-adetail-content h2,.xb-adetail-content h3,.xb-adetail-comments h3,
.xb-mdetail-head h1,.xb-foot-col h5,.xb-grank-card h5,
.xb-alist-widget h5,.xb-mdetail-radar h5,.xb-mdetail-cal-head b,
.xb-adetail-toc h5,.xb-rvsum-score b,.xb-rvsum-cta b,
.xb-rising-info b,.xb-storymap-info b,.xb-rank-name b,
.xb-grank-info h6,.xb-featured-stat b,.xb-stat b,.xb-favg b,
.xb-hotbar-pct,.xb-limited-price b,.xb-rank-score,.xb-newcomer-rating,
.xb-mlist-price,.xb-mdetail-book-price,.xb-review-author b,
.xb-story-author b,.xb-phone-logo,.xb-limited-badge,
.xb-newcomer-tag,.xb-rank-row.xb-head,.xb-rank-num,
.xb-flow-num,.xb-grank-num,.xb-rvsum-bar-fill,
.xb-featured-card-price,.xb-service-price-from b,
.xb-tlist-map-letter,.xb-eyebrow,.xb-theme-label{
  font-family:var(--xb-font-display);font-weight:600
}
/* 金黄星光色（数字/价格/评分公共） */
.xb-featured-card-price,.xb-limited-price b,.xb-rank-score,
.xb-newcomer-rating,.xb-mlist-price,.xb-mdetail-book-price,
.xb-stat b,.xb-featured-stat b,.xb-favg b,.xb-hotbar-pct,
.xb-rvsum-score b,.xb-rvsum-bar-fill,.xb-rising-arrow,
.xb-rising-label,.xb-phone-price,.xb-service-price-from b{
  color:var(--xb-star)
}
/* 次要文字色（公共） */
.xb-featured-meta,.xb-featured-card-loc,.xb-limited-meta,.xb-limited-price span,
.xb-newcomer-desc,.xb-story-author span,.xb-storymap-info span,
.xb-rank-name span,.xb-rank-city,.xb-service-card p,.xb-flow-step p,
.xb-guide-info p,.xb-guide-meta,.xb-tlist-card p,.xb-tlist-card-meta,
.xb-mlist-loc,.xb-alist-body p,.xb-alist-meta,.xb-adetail-info,
.xb-adetail-comment-body span,.xb-mdetail-meta,.xb-foot-col ul li a,
.xb-foot-contact li,.xb-foot-brand p,.xb-review-author span,
.xb-review-text,.xb-featured-desc,.xb-story-text p,
.xb-grank-info span,.xb-rvsum-score span,.xb-rvsum-cta span,
.xb-rvsum-bar-row,.xb-rising-info span,.xb-favg span,
.xb-theme-week,.xb-progress-text,.xb-phone-sub,.xb-phone-meta,
.xb-crumb,.xb-crumb a,.xb-pager a,.xb-pager span,
.xb-tlist-map-tags a,.xb-tlist-cloud a,.xb-mlist-filter-label{
  color:var(--xb-muted)
}
/* 暗淡文字色（公共） */
.xb-alist-meta,.xb-guide-meta,.xb-tlist-card-meta,.xb-grank-info span,
.xb-rvsum-bar-count,.xb-foot-bottom,.xb-foot-contact li,.xb-beian a,
.xb-adetail-comment-body span,.xb-crumb .xb-sep,.xb-fvote-label{
  color:var(--xb-dim)
}
/* 浅亮正文色 #c8c8d8（次要描述/评价正文公共） */
.xb-featured-desc,.xb-story-text p,.xb-review-text,
.xb-mdetail-panel p,.xb-adetail-comment-body p{
  color:#c8c8d8
}

/* ============================================================
   1. 星选臻品 .xb-featured（1 大 3 小）
   ============================================================ */
.xb-featured{padding-top:120px;scroll-margin-top:80px}
.xb-limited,.xb-newcomer,.xb-story,.xb-rank,.xb-service,.xb-flow,.xb-review,.xb-guide,.xb-faq,.xb-app,.xb-seo-text{scroll-margin-top:80px}
.xb-featured-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.xb-limited-img,.xb-newcomer-img,.xb-story-img,.xb-story-mini-img,.xb-guide-img,.xb-alist-img,.xb-mlist-img,.xb-side-member-img,.xb-search-img,.xb-mdetail-mainimg,.xb-mdetail-thumb,.xb-adetail-cover{background-size:cover;background-position:center;background-repeat:no-repeat}
.xb-featured-card{display:flex;flex-direction:column;background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius-lg);overflow:hidden;text-decoration:none;transition:transform var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease),box-shadow var(--xb-dur) var(--xb-ease)}
.xb-featured-card:hover{transform:translateY(-4px);border-color:var(--xb-accent);box-shadow:0 12px 40px rgba(233,69,96,.12)}
.xb-featured-card-img{position:relative;height:300px;background-size:cover;background-position:center;background-repeat:no-repeat;overflow:hidden;transition:transform .4s ease}
.xb-featured-card:hover .xb-featured-card-img::after{opacity:1}
.xb-featured-card-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(10,10,20,.3) 100%);opacity:.6;transition:opacity var(--xb-dur) var(--xb-ease)}
.xb-featured-badge{position:absolute;top:12px;left:12px;padding:4px 12px;background:var(--xb-accent);color:#fff;border-radius:var(--xb-radius-pill);font-size:10px;font-weight:700;letter-spacing:.1em;z-index:2;box-shadow:0 2px 12px rgba(233,69,96,.4)}
.xb-featured-score{position:absolute;top:12px;right:12px;padding:4px 10px;background:rgba(10,10,20,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--xb-star);border-radius:var(--xb-radius-pill);font-size:12px;font-weight:600;z-index:2}
.xb-featured-card-body{padding:18px 20px;display:flex;flex-direction:column;gap:10px;flex:1}
.xb-featured-card-body h4{font-size:20px;font-weight:700;color:var(--xb-text);line-height:1.3}
.xb-featured-card-meta{display:flex;gap:10px;font-size:12px;color:var(--xb-muted);flex-wrap:wrap;align-items:center}
.xb-featured-card-meta a{color:var(--xb-muted);text-decoration:none;transition:color var(--xb-dur) var(--xb-ease)}
.xb-featured-card-meta a:hover{color:var(--xb-accent)}
.xb-featured-card-tags{display:flex;gap:6px;flex-wrap:wrap}
.xb-featured-tag{padding:3px 10px;border-radius:var(--xb-radius-pill);background:var(--xb-surface2);border:1px solid var(--xb-bd-soft);font-size:11px;color:var(--xb-muted)}
.xb-featured-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;border-top:1px solid var(--xb-bd-soft)}
.xb-featured-price{font-size:18px;font-weight:700;color:var(--xb-accent);font-family:var(--xb-font-display)}
.xb-featured-dangqi{font-size:11px;color:var(--xb-mint);padding:2px 8px;background:rgba(127,220,177,.1);border-radius:var(--xb-radius-pill)}
/* 技能徽章 .xb-skills */
.xb-skills{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.xb-skill{width:28px;height:28px;border-radius:8px;background:var(--xb-surface2);border:1px solid var(--xb-bd-soft);display:flex;align-items:center;justify-content:center;font-size:12px}
/* 气质标签 .xb-temper */
.xb-temper{display:inline-block;font-size:10px;padding:2px 10px;background:rgba(177,140,254,.1);border:1px solid rgba(177,140,254,.2);border-radius:var(--xb-radius-pill);color:var(--xb-violet);font-weight:600;margin-bottom:8px}
/* 计数条 .xb-stats-bar */
.xb-stats-bar{margin-top:20px;padding:16px 24px;border-radius:14px;display:flex;justify-content:space-around;align-items:center}
.xb-stat{text-align:center}
.xb-stat b{font-size:22px;font-weight:700;display:block}
.xb-stat span{font-size:11px}
.xb-stat-div{width:1px;height:32px;background:var(--xb-bd-soft)}

/* ============================================================
   2. 限时星约 .xb-limited（横向滚动）
   ============================================================ */
.xb-theme-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding:12px 20px;background:linear-gradient(90deg,rgba(233,69,96,.06),transparent);border:1px solid rgba(233,69,96,.12);border-radius:12px}
.xb-theme-label{font-size:13px}
.xb-theme-week{font-size:11px}
.xb-limited-scroll{display:flex;gap:16px;overflow-x:auto;padding-bottom:16px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.xb-limited-scroll::-webkit-scrollbar{height:6px}
.xb-limited-scroll::-webkit-scrollbar-track{background:var(--xb-surface);border-radius:3px}
.xb-limited-scroll::-webkit-scrollbar-thumb{background:var(--xb-border);border-radius:3px}
.xb-limited-card{flex:0 0 280px;scroll-snap-align:start;overflow:hidden}
.xb-limited-img{position:relative;height:200px;overflow:hidden}
.xb-limited-img img{width:100%;height:100%;object-fit:cover}
.xb-limited-badge{position:absolute;top:12px;left:12px;padding:4px 10px;background:var(--xb-accent);color:#fff;border-radius:var(--xb-radius-pill);font-size:10px;letter-spacing:.1em}
.xb-limited-badge.xb-gold{background:var(--xb-star);color:var(--xb-bg)}
.xb-countdown{position:absolute;bottom:8px;left:12px;font-size:9px;font-family:var(--xb-font-display);background:rgba(10,10,20,.7);backdrop-filter:blur(6px);padding:3px 8px;border-radius:var(--xb-radius-pill);z-index:2}
.xb-limited-info{padding:16px 18px}
.xb-limited-info h4{font-size:17px;margin-bottom:4px}
.xb-limited-meta{display:flex;justify-content:space-between;font-size:11px;margin-bottom:8px}
.xb-limited-price{display:flex;justify-content:space-between;align-items:center;padding-top:10px;border-top:1px solid var(--xb-bd-soft)}
.xb-limited-price b{font-size:16px}
.xb-limited-price span{font-size:11px}
.xb-progress{margin-top:10px}
.xb-progress-track{height:4px;background:var(--xb-surface2);border-radius:2px;overflow:hidden}
.xb-progress-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--xb-accent),var(--xb-star))}
.xb-progress-text{display:flex;justify-content:space-between;font-size:9px;margin-top:4px}

/* ============================================================
   3. 新光乍现 .xb-newcomer（3 列网格）
   ============================================================ */
.xb-newcomer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.xb-newcomer-card{overflow:hidden}
.xb-newcomer-img{position:relative;height:280px;overflow:hidden}
.xb-newcomer-img img{width:100%;height:100%;object-fit:cover}
.xb-newcomer-tag{position:absolute;top:12px;right:12px;padding:4px 10px;background:rgba(10,10,20,.7);backdrop-filter:blur(10px);color:var(--xb-star);border:1px solid var(--xb-star-glow);border-radius:var(--xb-radius-pill);font-size:10px}
.xb-newcomer-info{padding:18px 20px}
.xb-newcomer-info h4{font-size:19px;margin-bottom:6px;display:flex;align-items:center;gap:8px}
.xb-newcomer-desc{font-size:12px;line-height:1.7;margin-bottom:12px}
.xb-newcomer-foot{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid var(--xb-bd-soft)}
.xb-newcomer-rating{display:flex;align-items:center;gap:4px;font-size:12px}
.xb-newcd{font-size:10px;font-family:var(--xb-font-display);margin-top:6px;display:flex;align-items:center;gap:4px}
.xb-mentor{font-size:10px;color:var(--xb-mint);display:flex;align-items:center;gap:4px;margin-top:4px}

/* ============================================================
   4. 遇见故事 .xb-story（左图右文）
   ============================================================ */
.xb-story-block{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;border-radius:var(--xb-radius-lg);overflow:hidden;position:relative}
.xb-story-block::before{content:"";position:absolute;top:-100px;right:-100px;width:300px;height:300px;background:radial-gradient(circle,var(--xb-glow-soft) 0%,transparent 70%);pointer-events:none}
.xb-story-img{height:420px;overflow:hidden;position:relative;min-width:0}
.xb-story-text{padding:48px 48px 48px 0;position:relative;z-index:2;min-width:0}
.xb-story-img img{width:100%;height:100%;object-fit:cover}
.xb-story-img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 70%,var(--xb-surface) 100%)}
.xb-story-text h3{font-size:30px;font-weight:700;line-height:1.25;margin-bottom:18px;letter-spacing:-.02em}
.xb-story-text h3 em{font-style:normal;color:var(--xb-accent)}
.xb-story-author{display:flex;align-items:center;gap:10px;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--xb-bd-soft)}
.xb-story-author img{width:36px;height:36px;border-radius:50%;object-fit:cover}
.xb-story-author b{display:block;font-size:13px;color:var(--xb-text)}
.xb-story-text p{font-size:14px;line-height:2;margin-bottom:14px;text-indent:2em}
.xb-story-more{display:inline-flex;align-items:center;gap:6px;color:var(--xb-accent);font-size:13px;font-family:var(--xb-font-display);margin-top:8px;transition:gap var(--xb-dur) var(--xb-ease)}
.xb-story-more:hover{gap:10px}
.xb-story-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
.xb-story-mini{overflow:hidden;cursor:pointer}
.xb-story-mini-img{height:120px;background:var(--xb-surface2)}
.xb-story-mini-info{padding:14px}
.xb-story-mini-city{font-size:10px;color:var(--xb-accent);font-family:var(--xb-font-display);letter-spacing:.1em;margin-bottom:4px}
.xb-story-mini-info h5{font-size:13px;font-weight:600;color:var(--xb-text);line-height:1.4}
.xb-story-mini-info span{font-size:10px;margin-top:4px;display:block}
.xb-storymap{margin-top:20px;padding:16px 24px;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.xb-storymap-info{display:flex;align-items:center;gap:10px}
.xb-storymap-info b{font-size:15px}

/* ============================================================
   5. 星光榜 .xb-rank（表格布局）
   ============================================================ */
.xb-rank-row{display:grid;grid-template-columns:60px 60px 1fr 100px 100px 120px;gap:16px;padding:18px 24px;align-items:center;border-bottom:1px solid var(--xb-bd-soft);transition:background var(--xb-dur) var(--xb-ease)}
.xb-rank-row:last-child{border-bottom:none}
.xb-rank-row:hover{background:var(--xb-surface2)}
.xb-rank-row.xb-head{background:var(--xb-surface2);font-size:11px;letter-spacing:.15em;text-transform:uppercase}
.xb-rank-num{font-size:22px;font-weight:700;color:var(--xb-dim)}
.xb-rank-num.xb-top1{color:var(--xb-accent)}
.xb-rank-num.xb-top2{color:var(--xb-star)}
.xb-rank-num.xb-top3{color:var(--xb-violet)}
.xb-rank-avatar{width:48px;height:48px;border-radius:50%;overflow:hidden;border:2px solid var(--xb-bd-soft)}
.xb-rank-avatar img{width:100%;height:100%;object-fit:cover}
.xb-rank-name b{font-size:15px;display:block}
.xb-rank-name span{font-size:11px}
.xb-rank-city{font-size:12px}
.xb-rank-score{font-size:14px}
.xb-medal{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}
.xb-medal.xb-gold{background:linear-gradient(135deg,#f4d35e,#daa520);color:#000;box-shadow:0 2px 8px rgba(244,211,94,.3)}
.xb-medal.xb-silver{background:linear-gradient(135deg,#c0c0c0,#a0a0a0);color:#000}
.xb-medal.xb-bronze{background:linear-gradient(135deg,#cd7f32,#a0522d);color:#fff}
.xb-trend{font-size:11px;font-family:var(--xb-font-display);display:flex;align-items:center;gap:2px}
.xb-trend.xb-up{color:var(--xb-mint)}
.xb-trend.xb-down{color:var(--xb-accent)}
.xb-trend.xb-new{color:var(--xb-star)}
.xb-trend.xb-same{color:var(--xb-dim)}
.xb-rising{margin-top:16px;padding:16px 20px;background:linear-gradient(135deg,rgba(244,211,94,.08),transparent);border:1px solid rgba(244,211,94,.2);border-radius:14px;display:flex;align-items:center;gap:14px}
.xb-rising-label{font-size:11px;font-weight:700;letter-spacing:.1em}
.xb-rising-info{flex:1}
.xb-rising-info b{font-size:15px;display:block}
.xb-rising-arrow{font-size:20px}

/* ============================================================
   6. 服务类型 .xb-service（3 列网格）
   ============================================================ */
.xb-service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.xb-service-card{padding:32px 28px;position:relative;overflow:hidden;transition:transform var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease),background var(--xb-dur) var(--xb-ease)}
.xb-service-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--xb-accent);transform:scaleX(0);transform-origin:left;transition:transform var(--xb-dur) var(--xb-ease)}
.xb-service-card:hover{border-color:var(--xb-border);transform:translateY(-4px);background:var(--xb-surface2)}
.xb-service-card:hover::before{transform:scaleX(1)}
.xb-service-ico{width:48px;height:48px;border-radius:12px;background:var(--xb-glow-soft);border:1px solid var(--xb-border);display:flex;align-items:center;justify-content:center;color:var(--xb-accent);margin-bottom:18px}
.xb-service-card h4{font-size:19px;margin-bottom:8px}
.xb-service-card p{font-size:13px;line-height:1.7;margin-bottom:14px}
.xb-service-price-from{font-size:12px}
.xb-service-price-from b{font-size:16px}
.xb-scenes{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px;margin-bottom:10px}
.xb-scene{font-size:10px;padding:2px 8px;background:var(--xb-surface2);border-radius:4px}
.xb-count{font-size:11px;color:var(--xb-mint);font-weight:600;display:flex;align-items:center;gap:4px;margin-bottom:8px}
.xb-count::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--xb-mint);box-shadow:0 0 6px rgba(127,220,177,.5)}
.xb-hotbar{grid-column:1/-1;margin-top:8px;padding:16px 24px;background:linear-gradient(90deg,rgba(233,69,96,.06),transparent);border:1px solid rgba(233,69,96,.12);border-radius:12px;display:flex;align-items:center;gap:14px}
.xb-hotbar-label{font-size:12px;color:var(--xb-accent);white-space:nowrap}
.xb-hotbar-desc{font-size:12px}
.xb-hotbar-pct{font-size:18px;font-weight:700}

/* ============================================================
   7. 预约流程 .xb-flow（5 步时间线 · CSS Grid）
   ============================================================ */
.xb-flow-timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;position:relative;padding:40px 0 20px}
.xb-flow-timeline::before{content:"";position:absolute;top:80px;left:10%;right:10%;height:2px;background:linear-gradient(90deg,transparent,var(--xb-border),var(--xb-accent),var(--xb-border),transparent);z-index:0}
.xb-flow-step{text-align:center;position:relative;z-index:2}
.xb-flow-num{width:60px;height:60px;border-radius:50%;background:var(--xb-surface);border:2px solid var(--xb-border);margin:0 auto 18px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;color:var(--xb-accent);transition:border-color var(--xb-dur) var(--xb-ease),box-shadow var(--xb-dur) var(--xb-ease),transform var(--xb-dur) var(--xb-ease)}
.xb-flow-step:hover .xb-flow-num{border-color:var(--xb-accent);box-shadow:0 0 20px var(--xb-glow);transform:scale(1.08)}
.xb-flow-step h4{font-size:15px;margin-bottom:6px}
.xb-flow-step p{font-size:12px;line-height:1.6;padding:0 8px}
.xb-ftime{display:inline-block;font-size:10px;padding:2px 8px;background:var(--xb-surface2);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius-pill);color:var(--xb-mint);font-family:var(--xb-font-display);margin-top:6px}
.xb-favg{text-align:center;margin-top:24px;padding:16px 28px;border-radius:14px;display:inline-block}
.xb-favg b{font-size:24px}
.xb-favg span{font-size:12px;margin-left:6px}

/* ============================================================
   8. 客户评价 .xb-review（3 列卡片）
   ============================================================ */
.xb-rvsum{padding:28px 32px;margin-bottom:32px;display:grid;grid-template-columns:auto 1fr auto;gap:32px;align-items:center}
.xb-rvsum-score{text-align:center}
.xb-rvsum-score b{font-size:48px;font-weight:700;line-height:1}
.xb-rvsum-score span{font-size:12px;display:block;margin-top:4px}
.xb-rvsum-bars{display:flex;flex-direction:column;gap:6px}
.xb-rvsum-bar-row{display:flex;align-items:center;gap:10px;font-size:11px}
.xb-rvsum-bar-label{width:24px}
.xb-rvsum-bar-track{flex:1;height:6px;background:var(--xb-surface2);border-radius:3px;overflow:hidden}
.xb-rvsum-bar-fill{height:100%;border-radius:3px}
.xb-rvsum-bar-count{width:28px;text-align:right}
.xb-rvsum-cta{text-align:center}
.xb-rvsum-cta b{font-size:20px;display:block}
.xb-rvsum-cta span{font-size:11px}
.xb-rvsum-cta-tag{display:inline-block;font-size:10px;padding:2px 10px;background:rgba(127,220,177,.12);color:var(--xb-mint);border-radius:var(--xb-radius-pill);margin-top:6px;font-weight:600}
.xb-review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.xb-review-card{padding:28px 26px;border-radius:18px;position:relative}
.xb-review-quote{position:absolute;top:18px;right:22px;font-family:var(--xb-font-display);font-size:60px;color:var(--xb-glow-soft);line-height:1;pointer-events:none}
.xb-review-stars{display:flex;gap:3px;margin-bottom:14px;color:var(--xb-star)}
.xb-review-text{font-size:13px;line-height:1.9;margin-bottom:20px;position:relative;z-index:2}
.xb-review-author{display:flex;align-items:center;gap:12px;padding-top:18px;border-top:1px solid var(--xb-bd-soft)}
.xb-review-author img{width:40px;height:40px;border-radius:50%;object-fit:cover}
.xb-review-author b{display:block;font-size:14px;color:var(--xb-text)}
.xb-review-author span{font-size:11px}

/* ============================================================
   9. 伴游指南 .xb-guide（双栏布局）
   ============================================================ */
.xb-guide-layout{display:grid;grid-template-columns:1fr 280px;gap:24px}
.xb-guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.xb-guide-card{overflow:hidden;display:flex;flex-direction:column}
.xb-guide-img{height:180px;overflow:hidden}
.xb-guide-img img{width:100%;height:100%;object-fit:cover}
.xb-guide-info{padding:20px 22px;flex:1;display:flex;flex-direction:column}
.xb-guide-cat{font-family:var(--xb-font-display);font-size:10px;color:var(--xb-accent);letter-spacing:.2em;margin-bottom:8px}
.xb-guide-info h4{font-size:17px;line-height:1.4;margin-bottom:10px;flex:1}
.xb-guide-info p{font-size:12px;line-height:1.7;margin-bottom:14px}
.xb-guide-meta{display:flex;justify-content:space-between;align-items:center;font-size:11px;padding-top:12px;border-top:1px solid var(--xb-bd-soft)}
.xb-guide-card.xb-featured{border-color:var(--xb-border);position:relative}
.xb-must{position:absolute;top:12px;left:12px;padding:4px 12px;background:var(--xb-accent);color:#fff;border-radius:var(--xb-radius-pill);font-size:10px;letter-spacing:.1em;font-weight:700;z-index:3;box-shadow:0 2px 12px var(--xb-glow)}
.xb-guide-side{display:flex;flex-direction:column;gap:20px}
.xb-grank-card{padding:20px}
.xb-grank-card h5{font-size:14px;margin-bottom:16px;display:flex;align-items:center;gap:6px}
.xb-grank-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--xb-bd-soft);transition:color var(--xb-dur) var(--xb-ease);cursor:pointer}
.xb-grank-item:last-child{border-bottom:none}
.xb-grank-item:hover h6{color:var(--xb-accent)}
.xb-grank-num{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}
.xb-grank-num.xb-t1{background:rgba(233,69,96,.15);color:var(--xb-accent)}
.xb-grank-num.xb-t2{background:rgba(244,211,94,.15);color:var(--xb-star)}
.xb-grank-num.xb-t3{background:rgba(177,140,254,.15);color:var(--xb-violet)}
.xb-grank-num.xb-t4,.xb-grank-num.xb-t5{background:var(--xb-surface2);color:var(--xb-dim)}
.xb-grank-info{flex:1;min-width:0}
.xb-grank-info h6{font-size:12px;color:var(--xb-text);line-height:1.4;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--xb-dur) var(--xb-ease)}
.xb-grank-info span{font-size:10px}

/* ============================================================
   10. 常见问题 .xb-faq（折叠列表 · details/summary 原生）
   ============================================================ */
.xb-faq-wrap{max-width:840px;margin:0 auto}
.xb-faq-item{background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:14px;margin-bottom:12px;overflow:hidden;transition:border-color var(--xb-dur) var(--xb-ease)}
.xb-faq-item:hover,.xb-faq-item[open]{border-color:var(--xb-border)}
.xb-faq-item>summary{padding:20px 24px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-family:var(--xb-font-display);font-size:15px;font-weight:600;color:var(--xb-text);gap:16px;list-style:none}
.xb-faq-item>summary::-webkit-details-marker{display:none}
.xb-faq-item>summary::after{content:"+";font-size:22px;color:var(--xb-accent);transition:transform var(--xb-dur) var(--xb-ease);flex-shrink:0;font-weight:400}
.xb-faq-item[open]>summary::after{transform:rotate(45deg)}
.xb-faq-body{padding:0 24px 22px;animation:xb-faq-open var(--xb-dur) var(--xb-ease)}
@keyframes xb-faq-open{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.xb-faq-body p{font-size:13px;line-height:1.9}
.xb-fvote{display:flex;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--xb-bd-soft);align-items:center}
.xb-fvote-label{font-size:11px}
.xb-fvote button{padding:4px 12px;border-radius:var(--xb-radius-pill);font-size:11px;font-family:var(--xb-font-display);cursor:pointer;transition:background var(--xb-dur) var(--xb-ease);display:flex;align-items:center;gap:4px}
.xb-fvote-yes{background:rgba(127,220,177,.1);border:1px solid rgba(127,220,177,.2);color:var(--xb-mint)}
.xb-fvote-yes:hover{background:rgba(127,220,177,.2)}
.xb-fvote-no{background:var(--xb-surface2);border:1px solid var(--xb-bd-soft)}
.xb-frel{margin-top:14px;padding:12px;background:var(--xb-surface2);border-radius:8px;border-left:3px solid var(--xb-accent)}
.xb-frel-title{font-size:11px;color:var(--xb-accent);font-weight:600;margin-bottom:8px;font-family:var(--xb-font-display)}
.xb-frel a{display:block;font-size:12px;padding:4px 0;transition:color var(--xb-dur) var(--xb-ease)}
.xb-frel a:hover{color:var(--xb-accent)}

/* ============================================================
   11. APP 下载 .xb-app（左右布局）
   ============================================================ */
.xb-app-section{background:linear-gradient(135deg,var(--xb-surface),var(--xb-surface2));border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius-lg);padding:56px 48px;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;position:relative;overflow:hidden}
.xb-app-section::before{content:"";position:absolute;top:-100px;right:-100px;width:400px;height:400px;background:radial-gradient(circle,var(--xb-glow-soft) 0%,transparent 70%);pointer-events:none}
.xb-app-info{position:relative;z-index:2;min-width:0}
.xb-app-showcase{min-width:0}
.xb-app-info h2{font-family:var(--xb-font-display);font-size:34px;font-weight:700;line-height:1.2;margin-bottom:16px;letter-spacing:-.02em}
.xb-app-info h2 em{font-style:normal;color:var(--xb-accent)}
.xb-app-info p{font-size:14px;line-height:1.9;margin-bottom:20px}
.xb-app-features{display:flex;flex-direction:column;gap:10px;margin-bottom:28px}
.xb-app-feature{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--xb-text)}
.xb-app-feature::before{content:"✓";color:var(--xb-mint);font-weight:700}
.xb-dl-row{display:flex;gap:14px;flex-wrap:wrap}
.xb-dl{display:flex;align-items:center;gap:10px;padding:12px 24px;border-radius:14px;font-family:var(--xb-font-display);font-weight:600;font-size:14px;transition:transform var(--xb-dur) var(--xb-ease)}
.xb-dl:hover{transform:translateY(-2px)}
.xb-dl.xb-ios{background:#fff;color:#000}
.xb-dl.xb-android{background:var(--xb-surface3);color:var(--xb-text);border:1px solid var(--xb-border)}
.xb-dl small{display:block;font-size:10px;font-weight:400;opacity:.7}
.xb-app-phone-wrap{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;padding:20px 0}
.xb-app-phone-glow{position:absolute;width:300px;height:600px;background:radial-gradient(ellipse at center,var(--xb-glow-soft) 0%,transparent 65%);filter:blur(40px);pointer-events:none;animation:xb-pulse 4s ease-in-out infinite}
@keyframes xb-pulse{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}
.xb-app-phone-img{position:relative;z-index:1;width:280px;max-width:100%;height:auto;border-radius:36px;box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 0 3px rgba(255,255,255,.08);transition:transform var(--xb-dur) var(--xb-ease)}
.xb-app-phone-img:hover{transform:translateY(-6px) scale(1.02)}

/* ============================================================
   12. Footer .xb-foot
   ============================================================ */
.xb-foot{background:var(--xb-surface);border-top:1px solid var(--xb-bd-soft);padding:64px 0 32px;margin-top:48px;position:relative}
.xb-foot::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--xb-accent),transparent)}
.xb-foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1.2fr;gap:40px;margin-bottom:40px}
.xb-foot-brand p{font-size:13px;line-height:1.8;margin-bottom:20px;max-width:320px}
.xb-foot-social{display:flex;gap:10px}
.xb-foot-social a{width:38px;height:38px;border-radius:10px;background:var(--xb-surface2);border:1px solid var(--xb-bd-soft);display:flex;align-items:center;justify-content:center;transition:color var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease)}
.xb-foot-social a:hover{color:var(--xb-accent);border-color:var(--xb-border)}
.xb-foot-col h5{font-size:13px;color:var(--xb-text);margin-bottom:16px;letter-spacing:.05em}
.xb-foot-col ul li{margin-bottom:10px}
.xb-foot-col ul li a{font-size:13px;transition:color var(--xb-dur) var(--xb-ease)}
.xb-foot-col ul li a:hover{color:var(--xb-accent)}
.xb-foot-contact li{font-size:13px;margin-bottom:10px;line-height:1.7}
.xb-foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:1px solid var(--xb-bd-soft);font-size:12px;flex-wrap:wrap;gap:12px}
.xb-badges{display:flex;gap:16px;margin-top:20px;padding-top:20px;border-top:1px solid var(--xb-bd-soft)}
.xb-badge{display:flex;align-items:center;gap:8px;font-size:11px}
.xb-badge::before{content:"✓";color:var(--xb-mint);font-weight:700}
.xb-badge b{color:var(--xb-text);font-size:12px}
.xb-beian{max-width:var(--xb-wrap-w);margin:0 auto;padding:0 24px}
.xb-beian a{transition:color var(--xb-dur) var(--xb-ease)}
.xb-beian a:hover{color:var(--xb-muted)}
.xb-beian-sep{margin:0 2px}

/* ============================================================
   13. 会员列表页 .xb-mlist（4 列网格 + 筛选栏）
   ============================================================ */
.xb-mlist-filter{background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius);padding:20px 24px;margin-bottom:28px;display:flex;flex-wrap:wrap;gap:20px;align-items:center}
.xb-mlist-filter-group{display:flex;align-items:center;gap:10px}
.xb-mlist-filter-label{font-size:12px;white-space:nowrap}
.xb-mlist-filter-tags{display:flex;gap:6px;flex-wrap:wrap}
.xb-mlist-filter-tags a{font-size:12px;padding:4px 12px;border-radius:var(--xb-radius-pill);border:1px solid var(--xb-bd-soft);transition:color var(--xb-dur) var(--xb-ease),background var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease)}
.xb-mlist-filter-tags a:hover{color:var(--xb-text);border-color:var(--xb-border)}
.xb-mlist-filter-tags a.xb-on{background:var(--xb-accent);border-color:var(--xb-accent);color:#fff}
.xb-mlist-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.xb-mlist-card{overflow:hidden}
.xb-mlist-img{position:relative;height:260px;overflow:hidden}
.xb-mlist-img img{width:100%;height:100%;object-fit:cover}
.xb-mlist-info{padding:16px 18px}
.xb-mlist-info h4{font-size:17px;margin-bottom:6px}
.xb-mlist-loc{font-size:11px;margin-bottom:8px}
.xb-mlist-price{font-size:14px}

/* ============================================================
   14. 会员详情页 .xb-mdetail（顶部左右 + 雷达图 + 日历 + Tab + 服务说明）
   ============================================================ */
.xb-mdetail{padding-top:20px}
.xb-mdetail-top{display:grid;grid-template-columns:480px 1fr;gap:36px;margin-bottom:40px}
.xb-mdetail-left{display:flex;flex-direction:column;gap:12px;position:sticky;top:80px}
.xb-mdetail-mainimg{width:100%;height:560px;border-radius:var(--xb-radius-lg);border:1px solid var(--xb-bd-soft);background-color:var(--xb-surface2)}
.xb-mdetail-thumbs{display:grid;gap:8px}
.xb-mdetail-thumbs.cols-1{grid-template-columns:1fr;max-width:120px}
.xb-mdetail-thumbs.cols-2{grid-template-columns:repeat(2,1fr);max-width:240px}
.xb-mdetail-thumbs.cols-3{grid-template-columns:repeat(3,1fr);max-width:360px}
.xb-mdetail-thumbs.cols-4{grid-template-columns:repeat(4,1fr)}
.xb-mdetail-thumb{height:88px;border-radius:10px;border:2px solid transparent;cursor:pointer;transition:border-color var(--xb-dur) var(--xb-ease);background-color:var(--xb-surface2)}
.xb-mdetail-thumb:hover{border-color:var(--xb-accent)}
.xb-mdetail-thumb.active{border-color:var(--xb-accent)}
.xb-mdetail-right{display:flex;flex-direction:column;gap:18px}
.xb-mdetail-name{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.xb-mdetail-name h1{font-family:var(--xb-font-display);font-size:32px;font-weight:700;color:var(--xb-text);margin:0}
.xb-mdetail-badges{display:flex;gap:8px;flex-wrap:wrap}
.xb-badge{padding:4px 12px;border-radius:var(--xb-radius-pill);font-size:11px;font-weight:600;font-family:var(--xb-font-display)}
.xb-badge.verify{background:rgba(127,220,177,.12);color:var(--xb-mint);border:1px solid rgba(127,220,177,.25)}
.xb-badge.star{background:rgba(244,211,94,.12);color:var(--xb-star);border:1px solid var(--xb-star-glow)}
.xb-mdetail-basic{display:flex;gap:10px;flex-wrap:wrap;font-size:14px;color:var(--xb-muted);align-items:center}
.xb-mdetail-basic a{color:var(--xb-muted);text-decoration:none;transition:color var(--xb-dur) var(--xb-ease)}
.xb-mdetail-basic a:hover{color:var(--xb-accent)}
.xb-mdetail-basic .sep{color:var(--xb-dim)}
.xb-mdetail-price{display:flex;align-items:baseline;gap:6px;padding:16px 20px;background:var(--xb-surface2);border-radius:14px;border:1px solid var(--xb-bd-soft)}
.xb-mdetail-price b{font-size:32px;color:var(--xb-star);font-family:var(--xb-font-display);font-weight:700}
.xb-mdetail-price span{font-size:14px;color:var(--xb-muted)}
.xb-mdetail-skills{display:flex;gap:8px;flex-wrap:wrap}
.xb-skill-tag{padding:5px 14px;border-radius:var(--xb-radius-pill);background:var(--xb-surface2);border:1px solid var(--xb-bd-soft);font-size:12px;color:var(--xb-muted);transition:all var(--xb-dur) var(--xb-ease)}
.xb-skill-tag:hover{border-color:var(--xb-border);color:var(--xb-text)}
.xb-mdetail-desc{font-size:14px;line-height:2;color:#c8c8d8;padding:18px;background:var(--xb-surface2);border-radius:14px;border:1px solid var(--xb-bd-soft);overflow:hidden;max-height:280px;position:relative;transition:max-height .3s ease}
.xb-mdetail-desc.expanded{max-height:none}
.xb-mdetail-desc::after{content:'';position:absolute;bottom:0;left:0;right:0;height:80px;background:linear-gradient(transparent,var(--xb-surface2));pointer-events:none}
.xb-mdetail-desc.expanded::after{display:none}
.xb-mdetail-desc img{display:none!important}
.xb-mdetail-desc p{margin:0}
.xb-desc-toggle{display:block;text-align:center;padding:8px;margin-top:8px;background:rgba(233,69,96,.08);border:1px solid rgba(233,69,96,.2);border-radius:8px;color:var(--xb-accent);font-size:13px;cursor:pointer;font-weight:600;transition:background var(--xb-dur) var(--xb-ease)}
.xb-desc-toggle:hover{background:rgba(233,69,96,.15)}
.xb-mdetail-creds{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px;background:rgba(255,255,255,.03);border-radius:14px;border:1px solid var(--xb-bd-soft)}
.xb-cred-item{display:flex;align-items:center;gap:8px}
.xb-cred-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;font-weight:700}
.xb-cred-item>div:last-child{display:flex;flex-direction:column}
.xb-cred-item b{font-size:13px;color:var(--xb-text);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xb-cred-item span{font-size:10px;color:var(--xb-muted)}
.xb-mdetail-radar{padding:20px;background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius)}
.xb-mdetail-radar h5{font-size:14px;margin-bottom:16px;color:var(--xb-text);font-family:var(--xb-font-display)}
.xb-radar-wrap{display:flex;gap:20px;align-items:center}
.xb-radar-chart{width:180px;height:180px;flex-shrink:0}
.xb-radar-labels{flex:1;display:flex;flex-direction:column;gap:8px}
.xb-radar-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--xb-muted)}
.xb-radar-label span{width:50px;text-align:right}
.xb-radar-bar{flex:1;height:6px;background:var(--xb-surface2);border-radius:3px;overflow:hidden}
.xb-radar-bar-fill{height:100%;background:linear-gradient(90deg,var(--xb-accent),var(--xb-violet));border-radius:3px}
.xb-radar-val{width:32px;font-family:var(--xb-font-display);color:var(--xb-accent);font-weight:600}
.xb-mdetail-actions{display:flex;gap:10px;flex-wrap:wrap}
.xb-btn{padding:12px 28px;border-radius:var(--xb-radius-pill);font-size:14px;font-weight:600;font-family:var(--xb-font-display);cursor:pointer;transition:all var(--xb-dur) var(--xb-ease);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.xb-btn.primary{background:var(--xb-accent);color:#fff;border:none}
.xb-btn.primary:hover{background:var(--xb-accent2);transform:translateY(-2px);box-shadow:0 8px 24px var(--xb-glow)}
.xb-btn.ghost{background:transparent;color:var(--xb-text);border:1px solid var(--xb-bd-soft)}
.xb-btn.ghost:hover{border-color:var(--xb-border);color:var(--xb-accent)}
.xb-mdetail-tabs{margin-top:8px;border-top:1px solid var(--xb-bd-soft);padding-top:32px}
.xb-tab-head{display:flex;gap:0;border-bottom:1px solid var(--xb-bd-soft);margin-bottom:28px}
.xb-tab-btn{padding:14px 28px;font-family:var(--xb-font-display);font-size:15px;color:var(--xb-muted);border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;transition:all var(--xb-dur) var(--xb-ease)}
.xb-tab-btn:hover{color:var(--xb-text)}
.xb-tab-btn.on{color:var(--xb-accent);border-bottom-color:var(--xb-accent)}
.xb-tab-pane{display:none}
.xb-tab-pane.on{display:block}
.xb-mdetail-cal{background:var(--xb-surface2);border-radius:var(--xb-radius);padding:24px}
.xb-mdetail-cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.xb-mdetail-cal-head b{font-family:var(--xb-font-display);font-size:16px;color:var(--xb-text)}
.xb-cal-btn{background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:8px;padding:6px 12px;color:var(--xb-muted);cursor:pointer;font-size:14px}
.xb-cal-btn:hover{color:var(--xb-text);border-color:var(--xb-border)}
.xb-mdetail-cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
.xb-mdetail-cal-week span{text-align:center;font-size:11px;color:var(--xb-dim);padding:6px 0}
.xb-mdetail-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.xb-mdetail-cal-grid span{text-align:center;font-size:12px;padding:8px 0;border-radius:6px;cursor:default}
.xb-mdetail-cal-grid span.xb-dim{opacity:.4;background:var(--xb-surface2);color:var(--xb-muted)}
.xb-mdetail-cal-grid span.xb-busy{background:rgba(233,69,96,.12);color:var(--xb-accent);border:1px solid rgba(233,69,96,.2)}
.xb-mdetail-cal-grid span.xb-free{background:rgba(127,220,177,.08);color:var(--xb-mint);border:1px solid rgba(127,220,177,.2);cursor:pointer}
.xb-mdetail-cal-grid span.xb-free:hover{background:rgba(127,220,177,.15)}
.xb-mdetail-cal-legend{display:flex;gap:16px;margin-top:16px;font-size:11px;color:var(--xb-muted)}
.xb-mdetail-cal-legend span{display:flex;align-items:center;gap:4px}
.xb-dot{width:10px;height:10px;border-radius:3px;display:inline-block}
.xb-dot.free{background:rgba(127,220,177,.15);border:1px solid rgba(127,220,177,.3)}
.xb-dot.busy{background:rgba(233,69,96,.15);border:1px solid rgba(233,69,96,.3)}
.xb-dot.dim{background:var(--xb-surface2);border:1px solid var(--xb-bd-soft);opacity:.4}
.xb-rvsum{display:flex;gap:32px;padding:24px;background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius);margin-bottom:24px}
.xb-rvsum-score{text-align:center}
.xb-rvsum-score b{font-size:42px;color:var(--xb-star);font-family:var(--xb-font-display);display:block}
.xb-rvsum-score span{font-size:12px;color:var(--xb-muted)}
.xb-rvsum-cta{text-align:center;border-left:1px solid var(--xb-bd-soft);padding-left:32px}
.xb-rvsum-cta b{font-size:28px;color:var(--xb-text);font-family:var(--xb-font-display);display:block}
.xb-rvsum-cta span{font-size:12px;color:var(--xb-muted)}
.xb-review-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.xb-review-card{padding:20px;background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius);transition:transform var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease)}
.xb-review-card:hover{transform:translateY(-2px);border-color:var(--xb-border)}
.xb-review-stars{color:var(--xb-star);font-size:14px;margin-bottom:10px}
.xb-review-text{font-size:13px;line-height:1.8;color:#c8c8d8;margin-bottom:14px}
.xb-review-user{display:flex;align-items:center;gap:10px}
.xb-review-avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0}
.xb-review-user b{font-size:13px;color:var(--xb-text);display:block}
.xb-review-user span{font-size:11px;color:var(--xb-dim)}
.xb-mdetail-service{margin-top:36px;padding:28px;border-radius:var(--xb-radius-lg);background:var(--xb-surface);border:1px solid var(--xb-bd-soft)}
.xb-mdetail-service h3{font-family:var(--xb-font-display);font-size:20px;margin-bottom:20px;color:var(--xb-text)}
.xb-service-info{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.xb-service-include h4,.xb-service-exclude h4{font-size:14px;margin-bottom:12px;font-family:var(--xb-font-display)}
.xb-service-include h4{color:var(--xb-mint)}
.xb-service-exclude h4{color:var(--xb-accent)}
.xb-service-include ul,.xb-service-exclude ul{padding:0;list-style:none}
.xb-service-include li,.xb-service-exclude li{font-size:13px;margin-bottom:8px;color:var(--xb-muted);display:flex;align-items:flex-start;gap:6px}

/* ============================================================
   15. 文章列表页 .xb-alist（左右布局 + 边栏）
   ============================================================ */
.xb-alist-layout{display:grid;grid-template-columns:1fr 300px;gap:32px}
.xb-alist-main{min-width:0}
.xb-alist-item{display:flex;gap:20px;margin-bottom:20px}
.xb-alist-thumb{width:220px;flex-shrink:0;overflow:hidden}
.xb-alist-thumb img{width:100%;height:100%;object-fit:cover}
.xb-alist-body{padding:20px 22px;flex:1;min-width:0}
.xb-alist-body h3{font-size:18px;line-height:1.4;margin-bottom:8px;transition:color var(--xb-dur) var(--xb-ease)}
.xb-alist-item:hover .xb-alist-body h3{color:var(--xb-accent)}
.xb-alist-body p{font-size:13px;line-height:1.7;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.xb-alist-meta{display:flex;gap:14px;font-size:11px}
.xb-alist-side{display:flex;flex-direction:column;gap:20px}
.xb-alist-widget{padding:20px}
.xb-alist-widget h5{font-size:14px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--xb-bd-soft)}

/* ============================================================
   16. 文章详情页 .xb-adetail（正文排版 + 目录 + 评论）
   ============================================================ */
.xb-adetail-layout{display:grid;grid-template-columns:1fr 260px;gap:32px}
.xb-adetail-main{min-width:0}
.xb-adetail-head h1{font-size:32px;line-height:1.3;margin-bottom:14px}
.xb-adetail-info{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;padding-bottom:20px;border-bottom:1px solid var(--xb-bd-soft);margin-bottom:28px}
.xb-adetail-content{font-size:15px;color:#d8d8e8;line-height:2;overflow:hidden;word-wrap:break-word;word-break:break-word}
.xb-adetail-content h2{font-size:22px;margin:28px 0 16px;color:var(--xb-text)}
.xb-adetail-content h3{font-size:18px;margin:24px 0 12px;color:var(--xb-text)}
.xb-adetail-content p{margin-bottom:16px;text-indent:2em}
.xb-adetail-content img{max-width:380px!important;width:380px!important;height:auto!important;max-height:280px!important;object-fit:cover!important;border-radius:var(--xb-radius);margin:20px auto!important;display:block!important}
.xb-adetail-content iframe{max-width:100%;border-radius:var(--xb-radius);margin:20px 0}
.xb-adetail-content table{max-width:100%;border-collapse:collapse;margin:20px 0}
.xb-adetail-content blockquote{border-left:3px solid var(--xb-accent);padding:12px 20px;margin:20px 0;background:var(--xb-glow-soft);border-radius:0 8px 8px 0;font-style:italic}
.xb-adetail-content ul{padding-left:20px;margin-bottom:16px}
.xb-adetail-content ul li{margin-bottom:8px;list-style:disc}
.xb-adetail-toc{position:sticky;top:80px;padding:20px}
.xb-adetail-toc h5{font-size:13px;margin-bottom:14px;color:var(--xb-accent)}
.xb-adetail-toc ul li{margin-bottom:8px}
.xb-adetail-toc ul li a{font-size:12px;display:block;padding:4px 0 4px 10px;border-left:2px solid transparent;transition:color var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease)}
.xb-adetail-toc ul li a:hover,.xb-adetail-toc ul li a.xb-on{color:var(--xb-accent);border-left-color:var(--xb-accent)}
.xb-adetail-toc ul li ul{padding-left:12px;margin-top:6px}
.xb-adetail-comments{margin-top:40px}
.xb-adetail-comments h3{font-size:20px;margin-bottom:20px}
.xb-adetail-comment{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--xb-bd-soft)}
.xb-adetail-comment img{width:42px;height:42px;border-radius:50%;flex-shrink:0}
.xb-adetail-comment-body{flex:1;min-width:0}
.xb-adetail-comment-body b{font-size:14px;color:var(--xb-text);display:block;margin-bottom:4px}
.xb-adetail-comment-body p{font-size:13px;line-height:1.8;margin-top:6px}
.xb-adetail-form{margin-top:24px}
.xb-adetail-form textarea{width:100%;min-height:100px;padding:14px 16px;border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius);font-size:14px;resize:vertical;transition:border-color var(--xb-dur) var(--xb-ease)}
.xb-adetail-form textarea:focus{border-color:var(--xb-accent)}

/* ============================================================
   17. 标签页 .xb-tlist（卡片网格 + 标签云 + 标签地图）
   ============================================================ */
.xb-tlist-cloud{padding:24px;margin-bottom:28px;display:flex;flex-wrap:wrap;gap:10px}
.xb-tlist-cloud a{padding:6px 16px;border-radius:var(--xb-radius-pill);background:var(--xb-surface2);border:1px solid var(--xb-bd-soft);font-size:13px;transition:color var(--xb-dur) var(--xb-ease),background var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease)}
.xb-tlist-cloud a:hover{color:var(--xb-accent);border-color:var(--xb-border)}
.xb-tlist-cloud a.xb-hot{color:var(--xb-accent);font-weight:600}
.xb-tlist-cloud a.xb-big{font-size:16px}
.xb-tlist-cloud a.xb-huge{font-size:19px;color:var(--xb-star)}
.xb-tlist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:28px}
.xb-tlist-card{padding:20px 22px}
.xb-tlist-card h4{font-size:16px;margin-bottom:8px}
.xb-tlist-card p{font-size:12px;line-height:1.7;margin-bottom:10px}
.xb-tlist-card-meta{font-size:11px}
.xb-tlist-map{padding:28px}
.xb-tlist-map h3{font-size:18px;margin-bottom:20px}
.xb-tlist-map-group{margin-bottom:20px}
.xb-tlist-map-letter{font-size:14px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--xb-bd-soft)}
.xb-tlist-map-tags{display:flex;flex-wrap:wrap;gap:8px}
.xb-tlist-map-tags a{font-size:12px;padding:3px 10px;border-radius:6px;background:var(--xb-surface2);transition:color var(--xb-dur) var(--xb-ease),background var(--xb-dur) var(--xb-ease)}
.xb-tlist-map-tags a:hover{color:var(--xb-accent);background:var(--xb-glow-soft)}

/* ============================================================
   18. 分页 .xb-pager
   ============================================================ */
.xb-pager{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:40px}
.xb-pager a,.xb-pager span{min-width:40px;height:40px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;font-size:14px;background:var(--xb-surface);border:1px solid var(--xb-bd-soft);transition:color var(--xb-dur) var(--xb-ease),background var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease)}
.xb-pager a:hover{color:var(--xb-text);border-color:var(--xb-border)}
.xb-pager .xb-on{background:var(--xb-accent);border-color:var(--xb-accent);color:#fff}
.xb-pager .xb-disabled{opacity:.4;cursor:not-allowed}
.xb-pager .xb-ellipsis{border:none;background:none;min-width:auto}

/* ============================================================
   19. 面包屑 .xb-crumb
   ============================================================ */
.xb-crumb{padding:18px 0;font-size:13px}
.xb-crumb a{transition:color var(--xb-dur) var(--xb-ease)}
.xb-crumb a:hover{color:var(--xb-accent)}
.xb-crumb .xb-sep{margin:0 8px}
.xb-crumb .xb-current{color:var(--xb-text)}

/* ============================================================
   20. 响应式适配
   ============================================================ */
@media(max-width:980px){
  .xb-featured-grid{grid-template-columns:repeat(2,1fr)}
  .xb-newcomer-grid,.xb-service-grid,.xb-review-grid,.xb-guide-grid,.xb-tlist-grid{grid-template-columns:repeat(2,1fr)}
  .xb-story-block{grid-template-columns:1fr}
  .xb-story-img{height:260px}
  .xb-story-text{padding:32px}
  .xb-story-img::after{background:linear-gradient(180deg,transparent 60%,var(--xb-surface) 100%)}
  .xb-flow-timeline{grid-template-columns:repeat(2,1fr);gap:24px}
  .xb-flow-timeline::before{display:none}
  .xb-rank-row{grid-template-columns:50px 50px 1fr 80px;gap:10px;padding:14px 16px}
  .xb-rank-row .xb-rank-city,.xb-rank-row .xb-rank-book{display:none}
  .xb-foot-grid{grid-template-columns:1fr 1fr;gap:28px}
  .xb-foot-brand{grid-column:1/3}
  .xb-app-section{grid-template-columns:1fr;padding:40px 28px;gap:32px}
  .xb-guide-layout{grid-template-columns:1fr}
  .xb-rvsum{grid-template-columns:1fr;gap:20px;text-align:center}
  .xb-rvsum-bars{max-width:320px;margin:0 auto;width:100%}
  .xb-story-mini-grid{grid-template-columns:repeat(2,1fr)}
  .xb-stats-bar,.xb-hotbar,.xb-rising{flex-wrap:wrap}
  .xb-mlist-grid{grid-template-columns:repeat(3,1fr)}
  .xb-mdetail-top,.xb-alist-layout,.xb-adetail-layout{grid-template-columns:1fr}
  .xb-adetail-toc{display:none}
  .xb-alist-side{order:-1}
}
@media(max-width:560px){
  .xb-featured-card-img{height:220px}
  .xb-featured-card-body{padding:14px}
  .xb-featured-card-body h4{font-size:16px}
  .xb-featured-price{font-size:15px}
  .xb-newcomer-grid,.xb-service-grid,.xb-review-grid,.xb-guide-grid,.xb-tlist-grid{grid-template-columns:1fr}
  .xb-flow-timeline{grid-template-columns:1fr;gap:20px}
  .xb-foot-grid{grid-template-columns:1fr}
  .xb-foot-brand{grid-column:1}
  .xb-story-mini-grid{grid-template-columns:1fr}
  .xb-app-section{padding:28px 16px}
  .xb-app-info h2{font-size:24px}
  .xb-app-phone-img{width:220px}
  .xb-limited-card{flex:0 0 240px}
  .xb-mlist-grid{grid-template-columns:1fr}
  .xb-alist-thumb{display:none}
  .xb-alist-item{flex-direction:column}
  .xb-rank-row{grid-template-columns:40px 1fr 70px;gap:8px;padding:12px 8px}
  .xb-rank-row .xb-rank-avatar,.xb-rank-row .xb-rank-book,.xb-rank-row .xb-rank-city{display:none}
  .xb-review-quote{font-size:40px}
  .xb-featured-info{padding:20px}
  .xb-featured-info h3{font-size:22px}
  .xb-story-text h3{font-size:22px}
  .xb-pager a,.xb-pager span{min-width:36px;height:36px;font-size:13px}
  .xb-featured-card-info h4{font-size:14px}
  .xb-mdetail-tabs .xb-tab-head{flex-wrap:wrap}
  .xb-pager{flex-wrap:wrap;gap:4px}
  .xb-pager a{padding:6px 10px;font-size:13px}
  .xb-rank-name{min-width:0;overflow:hidden}
  .xb-rank-name a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
  .xb-newcomer-info h4{font-size:16px}
  .xb-mdetail-name h1{font-size:22px}
  .xb-adetail-head h1{font-size:22px}
  .xb-adetail-content{font-size:14px}
  .xb-adetail-content h2{font-size:18px}
  .xb-adetail-content h3{font-size:16px}
  .xb-rvsum-score b{font-size:36px}
  .xb-mlist-info h4{font-size:16px}
  .xb-mdetail-price b{font-size:24px}
  .xb-service-card{padding:24px 20px}
  .xb-review-card{padding:20px 18px}
  .xb-rvsum{padding:20px 16px;flex-direction:column;gap:16px}
  .xb-rvsum-cta{border-left:none;border-top:1px solid var(--xb-bd-soft);padding-left:0;padding-top:16px}
  .xb-guide-info{padding:16px}
  .xb-faq-item>summary{padding:16px;font-size:14px}
  .xb-faq-body{padding:0 16px 18px}
  .xb-mdetail-radar,.xb-mdetail-cal{padding:20px 16px}
  .xb-mdetail-mainimg{height:300px}
  .xb-mdetail-thumbs.cols-2{max-width:160px}
  .xb-mdetail-thumb{height:60px}
  .xb-radar-wrap{flex-direction:column}
  .xb-radar-chart{width:140px;height:140px}
  .xb-service-info{grid-template-columns:1fr}
  .xb-tab-btn{padding:10px 16px;font-size:13px}
  .xb-alist-body{padding:16px}
  .xb-story-text{padding:24px 16px}
  .xb-story-img{height:200px}
  .xb-newcomer-img{height:200px}
  .xb-rank-name b{font-size:13px}
  .xb-rank-name span{font-size:10px}
  .xb-crumb{padding:12px 0;font-size:12px}
}

/* ============================================================
   CSS PATCH: Bridge HTML template class names to existing styles
   Added to fix class name mismatches between templates and CSS
   ============================================================ */

/* ---- FOOTER LAYOUT (v2) ---- */
.xb-foot-inner{max-width:var(--xb-wrap-w);margin:0 auto;padding:0 24px}
.xb-foot-main{display:grid;grid-template-columns:1.4fr 3fr;gap:40px;margin-bottom:36px}
.xb-foot-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.xb-foot-logo{font-family:var(--xb-font-display);font-weight:700;font-size:22px;color:var(--xb-text);display:inline-block;margin-bottom:14px}
.xb-foot-desc{font-size:13px;line-height:1.8;margin-bottom:20px;max-width:320px;color:var(--xb-muted)}
.xb-foot-app{display:flex;gap:10px;margin-top:16px}
.xb-foot-apple,.xb-foot-android{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:10px;background:var(--xb-surface2);border:1px solid var(--xb-bd-soft);transition:all var(--xb-dur) var(--xb-ease)}
.xb-foot-apple:hover,.xb-foot-android:hover{border-color:var(--xb-border);background:var(--xb-surface3)}
.xb-foot-apple svg,.xb-foot-android svg{width:20px;height:20px;color:var(--xb-text);flex-shrink:0}
.xb-foot-apple span,.xb-foot-android span{display:flex;flex-direction:column;line-height:1.2}
.xb-foot-apple small,.xb-foot-android small{font-size:9px;color:var(--xb-dim)}
.xb-foot-apple b,.xb-foot-android b{font-size:12px;color:var(--xb-text);font-weight:600}
.xb-foot-title{font-family:var(--xb-font-display);font-size:13px;color:var(--xb-text);margin-bottom:16px;letter-spacing:.05em;font-weight:600}
.xb-foot-title a{color:inherit;text-decoration:none;transition:color var(--xb-dur) var(--xb-ease)}
.xb-foot-title a:hover{color:var(--xb-accent)}
.xb-foot-list li{margin-bottom:10px}
.xb-foot-list li a{font-size:13px;color:var(--xb-muted);transition:color var(--xb-dur) var(--xb-ease)}
.xb-foot-list li a:hover{color:var(--xb-accent)}
.xb-foot-license{border-top:1px solid var(--xb-bd-soft);padding-top:28px;margin-bottom:24px}
.xb-foot-license-row{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:16px}
.xb-foot-license-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--xb-dim);transition:color var(--xb-dur) var(--xb-ease)}
.xb-foot-license-item:hover{color:var(--xb-muted)}
.xb-foot-license-item svg{width:14px;height:14px;flex-shrink:0}
.xb-foot-trust{display:flex;gap:10px;flex-wrap:wrap}
.xb-foot-trust-badge{font-size:11px;color:var(--xb-muted);padding:4px 12px;border-radius:4px;background:var(--xb-surface2);border:1px solid var(--xb-bd-soft)}
.xb-foot-social-row{display:flex;gap:16px}
.xb-foot-trust-social{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:20px}
.xb-foot-social-link{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--xb-dim);transition:color var(--xb-dur) var(--xb-ease)}
.xb-foot-social-link:hover{color:var(--xb-accent)}
.xb-foot-social-link svg{width:16px;height:16px}
.xb-beian-copy{font-size:12px;color:var(--xb-dim);text-align:center}
.xb-beian-links{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center}
.xb-beian-links a{font-size:12px;color:var(--xb-dim);transition:color var(--xb-dur) var(--xb-ease)}
.xb-beian-links a:hover{color:var(--xb-muted)}
.xb-mcta-book{display:block;text-align:center;padding:14px;background:var(--xb-accent);color:#fff;font-family:var(--xb-font-display);font-weight:600;font-size:15px;border-radius:var(--xb-radius-pill) 0 0 var(--xb-radius-pill)}
.xb-mcta-service{display:block;text-align:center;padding:14px;background:var(--xb-surface2);color:var(--xb-text);font-family:var(--xb-font-display);font-weight:600;font-size:14px;border:1px solid var(--xb-bd-soft);border-left:none}

/* ---- COMMON: PAGE HEAD, CRUMB, EMPTY, PAGER ---- */
.xb-page-head{text-align:center!important;margin-bottom:36px!important;padding-top:20px!important}
.xb-page-head h1{font-family:var(--xb-font-display);font-size:30px;font-weight:700;margin-bottom:8px;color:var(--xb-text)}
.xb-page-head p{font-size:14px;color:var(--xb-muted)}
.xb-empty{text-align:center;padding:60px 20px;color:var(--xb-dim);font-size:14px}
.xb-crumb{padding:18px 0;font-size:13px;color:var(--xb-muted)}
.xb-crumb a{color:var(--xb-muted);transition:color var(--xb-dur) var(--xb-ease)}
.xb-crumb a:hover{color:var(--xb-accent)}

/* ---- COMMON: TAG, BTN ---- */
.xb-tag{display:inline-block;font-size:10px;padding:2px 10px;border-radius:var(--xb-radius-pill);background:rgba(233,69,96,.1);border:1px solid rgba(233,69,96,.2);color:var(--xb-accent);font-weight:600;letter-spacing:.05em}
.xb-tag.new{background:var(--xb-star);color:var(--xb-bg);border-color:var(--xb-star)}
.xb-tag.mint{background:rgba(127,220,177,.12);color:var(--xb-mint);border-color:rgba(127,220,177,.2)}
.xb-tag.verify{background:rgba(127,220,177,.12);color:var(--xb-mint);border-color:rgba(127,220,177,.2)}
.xb-tag.star{background:rgba(244,211,94,.12);color:var(--xb-star);border-color:rgba(244,211,94,.2)}
.xb-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 24px;border-radius:var(--xb-radius-pill);font-family:var(--xb-font-display);font-weight:600;font-size:14px;transition:transform var(--xb-dur) var(--xb-ease),box-shadow var(--xb-dur) var(--xb-ease)}
.xb-btn.primary{background:var(--xb-accent);color:#fff;box-shadow:0 4px 16px var(--xb-glow-soft)}
.xb-btn.primary:hover{transform:translateY(-2px);box-shadow:0 6px 22px var(--xb-glow)}
.xb-btn.ghost{background:transparent;color:var(--xb-text);border:1px solid var(--xb-border)}
.xb-btn.ghost:hover{background:var(--xb-glow-soft);border-color:var(--xb-accent)}
.xb-more{font-size:13px;color:var(--xb-muted);font-family:var(--xb-font-display);transition:color var(--xb-dur) var(--xb-ease)}
.xb-more:hover{color:var(--xb-accent)}
.xb-sec-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px}
.xb-sec-title h2{font-family:var(--xb-font-display);font-size:28px;font-weight:700;color:var(--xb-text)}
.xb-loc{font-size:11px;color:var(--xb-muted);margin-bottom:6px}

/* ---- ARTICLE LIST PAGE FIX ---- */
.xb-alist-card,.xb-alist-item{display:flex;gap:20px;margin-bottom:20px;background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius);overflow:hidden;transition:transform var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease)}
.xb-alist-card:hover,.xb-alist-item:hover{transform:translateY(-3px);border-color:var(--xb-border)}
.xb-alist-img,.xb-alist-thumb{width:220px;flex-shrink:0;overflow:hidden;min-height:160px}
.xb-alist-info,.xb-alist-body{padding:20px 22px;flex:1;min-width:0}
.xb-alist-info h3,.xb-alist-body h3{font-size:18px;line-height:1.4;margin-bottom:8px;transition:color var(--xb-dur) var(--xb-ease);font-family:var(--xb-font-display);font-weight:600;color:var(--xb-text)}
.xb-alist-card:hover .xb-alist-info h3,.xb-alist-item:hover .xb-alist-body h3{color:var(--xb-accent)}
.xb-alist-info p,.xb-alist-body p{font-size:13px;line-height:1.7;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--xb-muted)}
.xb-alist-date{font-size:11px;color:var(--xb-accent);font-family:var(--xb-font-display);letter-spacing:.1em;margin-bottom:6px;display:block}

/* ---- MEMBER LIST PAGE FIX ---- */
.xb-filter-bar,.xb-mlist-filter{background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius);padding:20px 24px;margin-bottom:28px;display:flex;flex-wrap:wrap;gap:20px;align-items:center}
.xb-filter-group,.xb-mlist-filter-group{display:flex;align-items:center;gap:10px}
.xb-filter-label,.xb-mlist-filter-label{font-size:12px;white-space:nowrap;color:var(--xb-muted)}
.xb-filter-tag,.xb-mlist-filter-tags a{font-size:12px;padding:4px 12px;border-radius:var(--xb-radius-pill);border:1px solid var(--xb-bd-soft);background:transparent;color:var(--xb-muted);cursor:pointer;transition:color var(--xb-dur) var(--xb-ease),background var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease)}
.xb-filter-tag:hover,.xb-mlist-filter-tags a:hover{color:var(--xb-text);border-color:var(--xb-border)}
.xb-filter-tag.on,.xb-mlist-filter-tags a.xb-on{background:var(--xb-accent);border-color:var(--xb-accent);color:#fff}
.xb-mlist-badge{position:absolute;top:12px;left:12px;padding:3px 10px;background:rgba(127,220,177,.15);color:var(--xb-mint);border:1px solid rgba(127,220,177,.3);border-radius:var(--xb-radius-pill);font-size:10px;font-weight:600;backdrop-filter:blur(6px)}
.xb-mlist-tag{position:absolute;top:12px;right:12px;padding:3px 10px;background:rgba(10,10,20,.7);color:var(--xb-star);border:1px solid var(--xb-star-glow);border-radius:var(--xb-radius-pill);font-size:10px;backdrop-filter:blur(6px)}
.xb-mlist-meta,.xb-mlist-loc{font-size:11px;color:var(--xb-muted);margin-bottom:8px}
.xb-mlist-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.xb-mlist-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:10px;border-top:1px solid var(--xb-bd-soft)}
.xb-mlist-score{font-size:12px;color:var(--xb-star);font-family:var(--xb-font-display);font-weight:600}

/* ---- ARTICLE DETAIL PAGE FIX ---- */
.xb-adetail{padding-top:20px}
.xb-adetail-meta,.xb-adetail-info{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--xb-muted);padding-bottom:20px;border-bottom:1px solid var(--xb-bd-soft);margin-bottom:28px}
.xb-adetail-cover{width:100%;height:400px;border-radius:var(--xb-radius-lg);margin-bottom:28px;border:1px solid var(--xb-bd-soft)}
.xb-adetail-tags{display:flex;gap:8px;flex-wrap:wrap;padding:20px 0;border-top:1px solid var(--xb-bd-soft);border-bottom:1px solid var(--xb-bd-soft);margin:28px 0}
.xb-adetail-nav{display:flex;justify-content:space-between;gap:16px;margin:28px 0}
.xb-adetail-prev,.xb-adetail-next{flex:1;padding:20px;border-radius:var(--xb-radius);background:var(--xb-surface);border:1px solid var(--xb-bd-soft);transition:border-color var(--xb-dur) var(--xb-ease)}
.xb-adetail-prev:hover,.xb-adetail-next:hover{border-color:var(--xb-border)}
.xb-adetail-prev span,.xb-adetail-next span{font-size:11px;color:var(--xb-dim);display:block;margin-bottom:4px}
.xb-adetail-prev b,.xb-adetail-next b{font-size:14px;color:var(--xb-text);font-weight:600}
.xb-adetail-side{display:flex;flex-direction:column;gap:20px}
.xb-side-card{padding:20px;background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius)}
.xb-side-card h5{font-size:14px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--xb-bd-soft);font-family:var(--xb-font-display);color:var(--xb-text)}
.xb-side-rank{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--xb-bd-soft);transition:color var(--xb-dur) var(--xb-ease)}
.xb-side-rank:last-child{border-bottom:none}
.xb-side-rank:hover h6{color:var(--xb-accent)}
.xb-side-num{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;font-family:var(--xb-font-display);font-weight:600}
.xb-side-num.t1{background:rgba(233,69,96,.15);color:var(--xb-accent)}
.xb-side-num.t2{background:rgba(244,211,94,.15);color:var(--xb-star)}
.xb-side-num.t3{background:rgba(177,140,254,.15);color:var(--xb-violet)}
.xb-side-info{flex:1;min-width:0}
.xb-side-info h6{font-size:12px;color:var(--xb-text);line-height:1.4;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--xb-dur) var(--xb-ease)}
.xb-side-info span{font-size:10px;color:var(--xb-dim)}
.xb-side-member{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--xb-bd-soft)}
.xb-side-member:last-child{border-bottom:none}
.xb-side-member-img{width:50px;height:50px;border-radius:10px;flex-shrink:0}
.xb-side-member-info h6{font-size:13px;color:var(--xb-text);margin-bottom:2px}
.xb-side-member-info span{font-size:11px;color:var(--xb-muted)}
.xb-toc,.xb-adetail-toc{position:sticky;top:80px;padding:20px;background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius)}
.xb-toc h5{font-size:13px;margin-bottom:14px;color:var(--xb-accent);font-family:var(--xb-font-display)}
.xb-toc-item{display:block;font-size:12px;padding:6px 0 6px 10px;border-left:2px solid transparent;color:var(--xb-muted);transition:color var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease)}
.xb-toc-item:hover,.xb-toc-item.on{color:var(--xb-accent);border-left-color:var(--xb-accent)}
.xb-comment-form{margin-top:24px}
.xb-comment-form textarea{width:100%;min-height:100px;padding:14px 16px;border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius);font-size:14px;resize:vertical;background:var(--xb-surface);color:var(--xb-text);transition:border-color var(--xb-dur) var(--xb-ease)}
.xb-comment-form textarea:focus{border-color:var(--xb-accent)}
.xb-comment-form button{margin-top:12px}
.xb-comment-list{margin-top:24px}
.xb-comment{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--xb-bd-soft)}
.xb-comment:last-child{border-bottom:none}
.xb-comment-avatar{width:42px;height:42px;border-radius:50%;flex-shrink:0}
.xb-comment-body{flex:1;min-width:0}
.xb-comment-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.xb-comment-head b{font-size:14px;color:var(--xb-text)}
.xb-comment-head span{font-size:11px;color:var(--xb-dim)}
.xb-comment-body p{font-size:13px;line-height:1.8;margin-top:6px;color:#c8c8d8}
.xb-comment-actions{display:flex;gap:14px;margin-top:8px;font-size:11px;color:var(--xb-dim)}
.xb-subscribe{padding:20px;background:linear-gradient(135deg,var(--xb-glow-soft),transparent);border:1px solid var(--xb-border);border-radius:var(--xb-radius)}
.xb-subscribe h5{font-size:14px;margin-bottom:8px;font-family:var(--xb-font-display);color:var(--xb-text)}
.xb-subscribe p{font-size:12px;color:var(--xb-muted);margin-bottom:12px}
.xb-subscribe input{width:100%;padding:10px 14px;border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius-pill);font-size:13px;background:var(--xb-surface);color:var(--xb-text);margin-bottom:10px}
.xb-subscribe button{width:100%}

/* ---- TAGS PAGE FIX ---- */
.xb-tlist{padding-top:20px}
.xb-tlist-head{text-align:center;margin-bottom:32px}
.xb-tlist-head h1{font-family:var(--xb-font-display);font-size:28px;font-weight:700;color:var(--xb-text);margin-bottom:6px}
.xb-tlist-head p{font-size:13px;color:var(--xb-muted)}
.xb-tlist-layout{display:grid;grid-template-columns:1fr 280px;gap:32px}
.xb-tlist-main{min-width:0}
.xb-tlist-side{display:flex;flex-direction:column;gap:20px}
.xb-tag-cloud,.xb-tlist-cloud{padding:20px;background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius);display:flex;flex-wrap:wrap;gap:8px}
.xb-tag-cloud h5,.xb-tlist-cloud h5{width:100%;font-size:14px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--xb-bd-soft);font-family:var(--xb-font-display);color:var(--xb-text)}
.xb-cloud-tag,.xb-tlist-cloud a{padding:6px 14px;border-radius:var(--xb-radius-pill);background:var(--xb-surface2);border:1px solid var(--xb-bd-soft);font-size:13px;color:var(--xb-muted);transition:color var(--xb-dur) var(--xb-ease),background var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease)}
.xb-cloud-tag:hover,.xb-tlist-cloud a:hover{color:var(--xb-accent);border-color:var(--xb-border)}
.xb-cloud-tag.large,.xb-tlist-cloud a.xb-big{font-size:16px}
.xb-tag-name{color:var(--xb-accent);font-weight:600}

/* ---- SEARCH PAGE FIX ---- */
.xb-search{padding-top:20px}
.xb-search-box{margin-bottom:32px}
.xb-search-box form{display:flex;gap:12px;max-width:600px;margin:0 auto}
.xb-search-box input{flex:1;padding:14px 20px;border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius-pill);font-size:14px;background:var(--xb-surface);color:var(--xb-text);transition:border-color var(--xb-dur) var(--xb-ease)}
.xb-search-box input:focus{border-color:var(--xb-accent)}
.xb-search-results{display:flex;flex-direction:column;gap:20px}
.xb-search-item{display:flex;gap:20px;padding:20px;background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius);transition:transform var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease)}
.xb-search-item:hover{transform:translateY(-3px);border-color:var(--xb-border)}
.xb-search-img{width:180px;height:130px;flex-shrink:0;border-radius:12px;border:1px solid var(--xb-bd-soft)}
.xb-search-info{flex:1;min-width:0}
.xb-search-info h3{font-size:18px;font-family:var(--xb-font-display);font-weight:600;color:var(--xb-text);margin-bottom:8px;transition:color var(--xb-dur) var(--xb-ease)}
.xb-search-item:hover .xb-search-info h3{color:var(--xb-accent)}
.xb-search-info p{font-size:13px;line-height:1.7;color:var(--xb-muted);margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.xb-search-meta{display:flex;gap:12px;font-size:11px;color:var(--xb-dim)}

/* ---- 404 PAGE FIX ---- */
.xb-404{padding:80px 0;text-align:center;min-height:60vh;display:flex;align-items:center;justify-content:center}
.xb-404-code{font-family:var(--xb-font-display);font-size:120px;font-weight:800;color:var(--xb-accent);line-height:1;margin-bottom:20px;text-shadow:0 0 40px var(--xb-glow)}
.xb-404-content h1{font-family:var(--xb-font-display);font-size:28px;font-weight:700;color:var(--xb-text);margin-bottom:8px}
.xb-404-content p{font-size:14px;color:var(--xb-muted);margin-bottom:28px}
.xb-404-actions{display:flex;gap:12px;justify-content:center;margin-bottom:40px;flex-wrap:wrap}
.xb-404-suggest h3{font-size:14px;color:var(--xb-dim);margin-bottom:14px;font-family:var(--xb-font-display)}
.xb-404-links{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.xb-404-links a{padding:8px 20px;border-radius:var(--xb-radius-pill);background:var(--xb-surface);border:1px solid var(--xb-bd-soft);font-size:13px;color:var(--xb-muted);transition:color var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease)}
.xb-404-links a:hover{color:var(--xb-accent);border-color:var(--xb-border)}

/* ---- STARS DISPLAY ---- */
.xb-stars{color:var(--xb-star);letter-spacing:2px}

/* ---- APP DOWNLOAD FIX ---- */
.xb-dl{display:flex;align-items:center;gap:10px;padding:12px 24px;border-radius:14px;font-family:var(--xb-font-display);font-weight:600;font-size:14px;transition:transform var(--xb-dur) var(--xb-ease);text-decoration:none}
.xb-dl:hover{transform:translateY(-2px)}
.xb-dl.ios{background:#fff;color:#000}
.xb-dl.android{background:var(--xb-surface3);color:var(--xb-text);border:1px solid var(--xb-border)}
.xb-app-features{display:flex;flex-direction:column;gap:10px;margin-bottom:28px}
.xb-app-feature{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--xb-text)}
.xb-phone-card{background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:10px;padding:10px;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.xb-phone-avatar{width:36px;height:36px;border-radius:8px;flex-shrink:0}
.xb-phone-name{font-size:10px;font-weight:600;color:var(--xb-text)}
.xb-phone-meta{font-size:8px;color:var(--xb-muted)}

/* ---- STATS BAR ---- */
.xb-stats-bar{margin-top:20px;padding:16px 24px;border-radius:14px;display:flex;justify-content:space-around;align-items:center;background:var(--xb-surface);border:1px solid var(--xb-bd-soft)}
.xb-stat{text-align:center}
.xb-stat b{font-size:22px;font-weight:700;display:block;color:var(--xb-star);font-family:var(--xb-font-display)}
.xb-stat span{font-size:11px;color:var(--xb-muted)}
.xb-stat-div{width:1px;height:32px;background:var(--xb-bd-soft)}

/* ---- FAQ VOTE ---- */
.xb-fvote{display:flex;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--xb-bd-soft);align-items:center;font-size:11px;color:var(--xb-dim)}
.xb-fvote button{padding:4px 12px;border-radius:var(--xb-radius-pill);font-size:11px;cursor:pointer;transition:background var(--xb-dur) var(--xb-ease)}
.xb-vote-yes{background:rgba(127,220,177,.1);border:1px solid rgba(127,220,177,.2);color:var(--xb-mint)}
.xb-vote-no{background:var(--xb-surface2);border:1px solid var(--xb-bd-soft);color:var(--xb-muted)}
.xb-frel{margin-top:14px;padding:12px;background:var(--xb-surface2);border-radius:8px;border-left:3px solid var(--xb-accent)}
.xb-frel-title{font-size:11px;color:var(--xb-accent);font-weight:600;margin-bottom:8px;font-family:var(--xb-font-display)}

/* ---- RESPONSIVE: ADD HTML CLASS NAMES TO MEDIA QUERIES ---- */
@media(max-width:980px){
  .xb-foot-main,.xb-foot-grid{grid-template-columns:1fr 1fr;gap:28px}
  .xb-foot-brand{grid-column:1/3}
  .xb-foot-cols{grid-template-columns:repeat(2,1fr);gap:20px}
  .xb-tlist-layout{grid-template-columns:1fr}
  .xb-adetail-layout{grid-template-columns:1fr}
  .xb-alist-layout{grid-template-columns:1fr}
  .xb-adetail-side,.xb-alist-side,.xb-tlist-side{order:1}
  .xb-adetail-toc,.xb-toc{display:none}
  .xb-service-info{grid-template-columns:1fr}
  .xb-mlist-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:560px){
  .xb-foot-main,.xb-foot-grid{grid-template-columns:1fr}
  .xb-foot-brand{grid-column:1}
  .xb-foot-cols{grid-template-columns:repeat(2,1fr);gap:12px}
  .xb-mlist-grid{grid-template-columns:1fr}
  .xb-alist-img,.xb-alist-thumb{display:none}
  .xb-alist-card,.xb-alist-item{flex-direction:column}
  .xb-search-img{width:100%;height:160px}
  .xb-search-item{flex-direction:column}
  .xb-adetail-cover{height:220px}
  .xb-page-head h1{font-size:22px}
  .xb-sec-head{justify-content:center;text-align:center}
  .xb-sec-title h2{font-size:22px}
  .xb-beian-inner{flex-direction:column;align-items:flex-start;gap:8px}
  .xb-404-code{font-size:80px}
  .xb-comment{flex-direction:column;gap:8px}
  .xb-side-member-img{width:40px;height:40px}
  .xb-search-box form{flex-direction:column}
  .xb-filter-bar,.xb-mlist-filter{flex-direction:column;align-items:flex-start;gap:12px}
  .xb-dl{width:100%;justify-content:center}
}

/* ============================================================
   CSS FIX v2: foot错位修复 + 评价评分 + 星光榜缩略图 + 标题链接 + tag链接
   ============================================================ */

/* ---- FOOT 错位修复 ---- */
.xb-badge::before{content:none}
.xb-beian{padding:0 24px 32px;max-width:var(--xb-wrap-w);margin:0 auto}
.xb-beian-inner{display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:24px;border-top:1px solid var(--xb-bd-soft);font-size:12px}
.xb-foot-badges .xb-badge{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--xb-muted)}
.xb-foot-badges .xb-badge svg{width:16px;height:16px;flex-shrink:0}
.xb-foot-contact li{font-size:13px;margin-bottom:10px;line-height:1.7;color:var(--xb-muted)}
.xb-foot-contact li .xb-foot-label{color:var(--xb-dim);margin-right:4px}
.xb-foot-social{margin-top:16px}
.xb-mdetail-basic a{color:var(--xb-muted);text-decoration:none;transition:color var(--xb-dur) var(--xb-ease)}
.xb-mdetail-basic a:hover{color:var(--xb-accent)}
.xb-mdetail-meta a{color:var(--xb-muted);text-decoration:none;transition:color var(--xb-dur) var(--xb-ease)}
.xb-mdetail-meta a:hover{color:var(--xb-accent)}
.xb-side-member-info span a{color:var(--xb-muted);text-decoration:none}
.xb-side-member-info span a:hover{color:var(--xb-accent)}

/* ---- 评价评分修复 ---- */
.xb-stars{color:var(--xb-star);font-size:16px;letter-spacing:2px;margin-top:6px}
.xb-rvsum-bar-fill{height:100%;border-radius:3px;background:var(--xb-star)}
.xb-review-card{display:block;color:inherit;text-decoration:none;cursor:pointer}
.xb-review-card:hover{border-color:var(--xb-border)}
.xb-review-avatar{width:40px;height:40px;border-radius:50%;background-size:cover;background-position:center;flex-shrink:0}

/* ---- 星光榜缩略图 ---- */
.xb-rank-row{display:grid;grid-template-columns:50px 48px 1fr 80px 70px 80px;gap:14px;padding:16px 20px;align-items:center;border-bottom:1px solid var(--xb-bd-soft);transition:background var(--xb-dur) var(--xb-ease)}
.xb-rank-head{display:grid;grid-template-columns:50px 48px 1fr 80px 70px 80px;gap:14px;padding:14px 20px;align-items:center;background:var(--xb-surface2);font-size:11px;letter-spacing:.1em;color:var(--xb-dim)}
.xb-rank-thumb{width:40px;height:40px;border-radius:50%;background-size:cover;background-position:center;background-repeat:no-repeat;border:2px solid var(--xb-bd-soft);flex-shrink:0}
.xb-rank-h-thumb{font-size:11px}

/* ---- 标题链接样式（仅标题可点击） ---- */
.xb-featured-info h3 a,.xb-featured-card-info h4 a,.xb-limited-info h4 a,
.xb-newcomer-info h4 a,.xb-story-text h3 a,.xb-story-mini-info h5 a,
.xb-guide-info h4 a,.xb-faq-q a,.xb-alist-info h3 a,.xb-mlist-info h4 a,
.xb-mdetail-name h1 a,.xb-grank-info h6 a,.xb-side-info h6 a,
.xb-side-member-info h6 a,.xb-search-info h3 a,.xb-tlist-card h4 a,
.xb-rank-name a{color:var(--xb-text);text-decoration:none;transition:color var(--xb-dur) var(--xb-ease)}
.xb-featured-info h3 a:hover,.xb-featured-card-info h4 a:hover,.xb-limited-info h4 a:hover,
.xb-newcomer-info h4 a:hover,.xb-story-text h3 a:hover,.xb-story-mini-info h5 a:hover,
.xb-guide-info h4 a:hover,.xb-faq-q a:hover,.xb-alist-info h3 a:hover,.xb-mlist-info h4 a:hover,
.xb-grank-info h6 a:hover,.xb-side-info h6 a:hover,.xb-side-member-info h6 a:hover,
.xb-search-info h3 a:hover,.xb-tlist-card h4 a:hover,.xb-rank-name a:hover{color:var(--xb-accent)}

/* ---- tag链接样式（城市/身高/年龄等字段） ---- */
.xb-loc a,.xb-featured-meta a,.xb-rank-city a,.xb-mlist-meta a{color:var(--xb-muted);text-decoration:none;transition:color var(--xb-dur) var(--xb-ease)}
.xb-loc a:hover,.xb-featured-meta a:hover,.xb-rank-city a:hover,.xb-mlist-meta a:hover{color:var(--xb-accent)}

/* ---- 故事图片尺寸调整 ---- */
.xb-story-img{height:380px}
.xb-story-mini-img{height:160px;background:var(--xb-surface2);background-size:contain;background-position:center;background-repeat:no-repeat}

/* ---- 下载按钮样式 ---- */
.xb-dl-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:var(--xb-radius-pill);font-family:var(--xb-font-display);font-weight:600;font-size:15px;text-decoration:none;transition:transform var(--xb-dur) var(--xb-ease),box-shadow var(--xb-dur) var(--xb-ease)}
.xb-dl-btn.ios{background:var(--xb-surface2);color:var(--xb-text);border:1px solid var(--xb-bd-soft)}
.xb-dl-btn.ios:hover{transform:translateY(-2px);border-color:var(--xb-accent);box-shadow:0 4px 16px var(--xb-glow-soft)}
.xb-dl-btn.android{background:var(--xb-accent);color:#fff}
.xb-dl-btn.android:hover{transform:translateY(-2px);box-shadow:0 4px 16px var(--xb-glow)}

/* ---- FAQ标题链接 ---- */
.xb-faq-q{display:flex;align-items:center;cursor:pointer;list-style:none}
.xb-faq-q::-webkit-details-marker{display:none}
.xb-faq-q a{flex:1;font-size:15px;font-weight:600;color:var(--xb-text);text-decoration:none;transition:color var(--xb-dur) var(--xb-ease)}
.xb-faq-q a:hover{color:var(--xb-accent)}

/* ---- 响应式补充 ---- */
@media(max-width:980px){
  .xb-rank-row,.xb-rank-head{grid-template-columns:40px 40px 1fr 60px 60px 70px;gap:10px}
  .xb-rank-thumb{width:32px;height:32px}
}
@media(max-width:560px){
  .xb-rank-row,.xb-rank-head{grid-template-columns:36px 36px 1fr 60px}
  .xb-rank-h-score,.xb-rank-h-book,.xb-rank-score,.xb-rank-book{display:none}
  .xb-rank-thumb{width:28px;height:28px}
  .xb-story-img{height:240px}
  .xb-story-block{grid-template-columns:1fr}
  .xb-story-text{padding:24px 0}
}

/* ============================================================
   补全缺失CSS类 · 确保模板与样式表完全匹配
   ============================================================ */

/* ---- 移动端菜单按钮 ---- */
.xb-nav-toggle{display:none;width:32px;height:32px;flex-direction:column;justify-content:center;gap:5px;cursor:pointer;background:none;border:none}
.xb-nav-toggle span{display:block;width:22px;height:2px;background:var(--xb-text);border-radius:1px;transition:transform var(--xb-dur) var(--xb-ease),opacity var(--xb-dur) var(--xb-ease)}
@media(max-width:980px){
  .xb-nav-toggle{display:flex}
  .xb-nav-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .xb-nav-toggle.active span:nth-child(2){opacity:0}
  .xb-nav-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}

/* ---- 社交链接图标 ---- */
.xb-social{width:38px;height:38px;border-radius:10px;background:var(--xb-surface2);border:1px solid var(--xb-bd-soft);display:flex;align-items:center;justify-content:center;transition:color var(--xb-dur) var(--xb-ease),border-color var(--xb-dur) var(--xb-ease)}
.xb-social svg{width:20px;height:20px}
.xb-social:hover{color:var(--xb-accent);border-color:var(--xb-border)}

/* ---- FAQ 列表与回答 ---- */
.xb-faq-list{display:flex;flex-direction:column;gap:12px}
.xb-faq-item{background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius);overflow:hidden;transition:border-color var(--xb-dur) var(--xb-ease)}
.xb-faq-item:hover{border-color:var(--xb-border)}
.xb-faq-item[open]{border-color:var(--xb-border)}
.xb-faq-q{padding:18px 24px;cursor:pointer;font-size:15px;font-weight:600;color:var(--xb-text);list-style:none;display:flex;align-items:center;justify-content:space-between}
.xb-faq-q::-webkit-details-marker{display:none}
.xb-faq-q::after{content:'+';font-size:20px;color:var(--xb-accent);transition:transform var(--xb-dur) var(--xb-ease)}
.xb-faq-item[open] .xb-faq-q::after{transform:rotate(45deg)}
.xb-faq-q a{color:var(--xb-text);flex:1}
.xb-faq-q a:hover{color:var(--xb-accent)}
.xb-faq-a{padding:0 24px 18px}
.xb-faq-a p{font-size:14px;line-height:1.8;color:var(--xb-muted);margin-bottom:14px}

/* ---- FAQ 投票 ---- */
.xb-fvote{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--xb-bd-soft);margin-top:10px}
.xb-fvote span{font-size:12px;color:var(--xb-dim)}
.xb-vote-yes,.xb-vote-no{font-size:12px;padding:4px 12px;border-radius:var(--xb-radius-pill);border:1px solid var(--xb-bd-soft);background:var(--xb-surface2);cursor:pointer;transition:all var(--xb-dur) var(--xb-ease)}
.xb-vote-yes:hover{border-color:var(--xb-mint);color:var(--xb-mint)}
.xb-vote-no:hover{border-color:var(--xb-accent);color:var(--xb-accent)}

/* ---- FAQ 相关阅读 ---- */
.xb-frel{margin-top:12px;padding:12px;background:var(--xb-surface2);border-radius:8px;border-left:3px solid var(--xb-accent)}
.xb-frel-title{font-size:11px;color:var(--xb-accent);font-weight:600;margin-bottom:8px;font-family:var(--xb-font-display)}
.xb-frel a{font-size:13px;color:var(--xb-text)}
.xb-frel a:hover{color:var(--xb-accent)}

/* ---- 排行榜表头 ---- */
.xb-rank-head{display:grid;grid-template-columns:60px 60px 1fr 100px 100px 120px;gap:16px;padding:14px 24px;background:var(--xb-surface2);border-radius:var(--xb-radius) var(--xb-radius) 0 0;font-size:11px;letter-spacing:.1em;color:var(--xb-dim);font-family:var(--xb-font-display)}
.xb-rank-h-num,.xb-rank-h-thumb,.xb-rank-h-name,.xb-rank-h-city,.xb-rank-h-score,.xb-rank-h-book{text-transform:uppercase}
.xb-rank-h-thumb{font-size:11px}

/* ---- 排行榜趋势指示器 ---- */
.xb-trend.up,.trend-up{color:var(--xb-mint);font-size:11px;font-family:var(--xb-font-display)}
.xb-trend.down,.trend-down{color:var(--xb-accent);font-size:11px;font-family:var(--xb-font-display)}
.xb-trend.same,.trend-same{color:var(--xb-dim);font-size:11px;font-family:var(--xb-font-display)}
.up{color:var(--xb-mint);font-size:11px;font-family:var(--xb-font-display)}
.down{color:var(--xb-accent);font-size:11px;font-family:var(--xb-font-display)}
.same{color:var(--xb-dim);font-size:11px;font-family:var(--xb-font-display)}

/* ---- 动态序号类(t1-t5) ---- */
.t1{background:rgba(233,69,96,.15);color:var(--xb-accent)}
.t2{background:rgba(244,211,94,.15);color:var(--xb-star)}
.t3{background:rgba(177,140,254,.15);color:var(--xb-violet)}
.t4,.t5{background:var(--xb-surface2);color:var(--xb-dim)}

/* ---- 评分星星 ---- */
.xb-stars{color:var(--xb-star);font-size:16px;letter-spacing:2px;margin-top:6px}
.xb-rvsum-bar-track{height:6px;background:var(--xb-surface2);border-radius:3px;overflow:hidden;flex:1}
.xb-rvsum-bar-fill{height:100%;border-radius:3px;background:var(--xb-star)}

/* ---- 评价用户 ---- */
.xb-review-user{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--xb-bd-soft)}
.xb-review-avatar{width:36px;height:36px;border-radius:50%;background-size:cover;background-position:center;flex-shrink:0}
.xb-review-user b{display:block;font-size:13px;color:var(--xb-text)}
.xb-review-user span{font-size:11px;color:var(--xb-dim)}

/* ---- 服务图标(模板用-icon, CSS原有-ico, 添加别名) ---- */
.xb-service-icon{width:48px;height:48px;border-radius:12px;background:var(--xb-glow-soft);border:1px solid var(--xb-border);display:flex;align-items:center;justify-content:center;color:var(--xb-accent);margin-bottom:18px;font-size:24px}

/* ---- 价格显示 ---- */
.xb-price{font-size:18px;font-weight:700;color:var(--xb-accent);font-family:var(--xb-font-display)}
.xb-price-from{font-size:12px;color:var(--xb-dim)}

/* ---- 故事模块补充 ---- */
.xb-story-meta{display:flex;gap:16px;font-size:12px;color:var(--xb-dim);margin-top:14px}
.xb-city{font-size:10px;color:var(--xb-accent);font-family:var(--xb-font-display);letter-spacing:.1em;margin-bottom:4px}
.xb-storymap-btn{padding:8px 20px;border-radius:var(--xb-radius-pill);background:var(--xb-accent);color:#fff;font-size:13px;font-family:var(--xb-font-display);border:none;cursor:pointer;transition:background var(--xb-dur) var(--xb-ease)}
.xb-storymap-btn:hover{background:var(--xb-accent2)}

/* ---- 指南模块补充 ---- */
.xb-grank{background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius);padding:20px}
.xb-guide-views{font-size:11px;color:var(--xb-dim);display:block;margin-top:8px}
.xb-must{position:absolute;top:12px;left:12px;padding:3px 10px;border-radius:var(--xb-radius-pill);background:var(--xb-accent);color:#fff;font-size:10px;font-family:var(--xb-font-display);z-index:2}

/* ---- 手机展示区 ---- */
.xb-phone-info{flex:1;min-width:0}
.xb-phone-name{font-size:14px;font-weight:600;color:var(--xb-text)}
.xb-phone-meta{font-size:11px;color:var(--xb-dim);margin-top:2px}

/* ---- 下载区域 ---- */
.xb-dl{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}
.xb-dl-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border-radius:var(--xb-radius-pill);font-size:14px;font-weight:600;font-family:var(--xb-font-display);transition:transform var(--xb-dur) var(--xb-ease),box-shadow var(--xb-dur) var(--xb-ease)}
.xb-dl-btn.ios{background:var(--xb-surface2);border:1px solid var(--xb-bd-soft);color:var(--xb-text)}
.xb-dl-btn.android{background:var(--xb-accent);color:#fff}
.xb-dl-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--xb-glow)}

/* ---- Tab 面板容器 ---- */
.xb-tab-body{position:relative}
.xb-tab-pane{display:none}
.xb-tab-pane.on{display:block}

/* ---- 日历组件 ---- */
.xb-calendar{min-height:280px;background:var(--xb-surface2);border-radius:var(--xb-radius);padding:20px}

/* ---- 单页模板 ---- */
.xb-page{padding:40px 0!important}
.xb-page-content{font-size:15px;line-height:2;color:var(--xb-text)}
.xb-page-content h2{font-size:22px;font-weight:700;margin:32px 0 16px;color:var(--xb-text);padding-left:14px;border-left:4px solid var(--xb-accent)}
.xb-page-content h3{font-size:18px;font-weight:600;margin:24px 0 12px;color:var(--xb-text)}
.xb-page-content p{margin-bottom:14px;color:var(--xb-muted)}
.xb-page-content ul{margin-bottom:16px;padding-left:20px}
.xb-page-content li{margin-bottom:8px;color:var(--xb-muted);line-height:1.8}
.xb-page-content ul li{list-style:disc}

/* ---- 三列网格 ---- */
.cols-3{grid-template-columns:repeat(3,1fr)!important}

/* ---- 移动端CTA按钮 ---- */
.xb-mcta-book{flex:1;background:var(--xb-accent);color:#fff;text-align:center;padding:14px;border-radius:var(--xb-radius);font-size:15px;font-weight:600;font-family:var(--xb-font-display)}
.xb-mcta-service{display:none}

/* ---- QQ弹窗 ---- */
.xb-qq-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.7)}
.xb-qq-modal-box{background:var(--xb-surface);border:1px solid var(--xb-border);border-radius:20px;padding:32px 28px;width:300px;max-width:90vw;text-align:center}
.xb-qq-modal-box h4{font-size:18px;font-family:var(--xb-font-display);color:var(--xb-text);margin-bottom:8px}
.xb-qq-modal-box p{font-size:13px;color:var(--xb-muted);margin-bottom:16px}
.xb-qq-number{font-size:28px;font-weight:700;color:var(--xb-accent);font-family:var(--xb-font-display);padding:16px;background:var(--xb-bg);border-radius:12px;margin-bottom:16px;letter-spacing:2px}
.xb-qq-copy{width:100%;padding:12px;border:none;border-radius:var(--xb-radius-pill);background:var(--xb-accent);color:#fff;font-size:14px;font-weight:600;font-family:var(--xb-font-display);cursor:pointer;transition:transform var(--xb-dur) var(--xb-ease)}
.xb-qq-copy:hover{transform:translateY(-2px)}
.xb-qq-close{display:block;margin-top:14px;font-size:13px;color:var(--xb-dim);cursor:pointer}

/* ---- 进度条补充 ---- */
.xb-progress{margin-top:10px}
.xb-progress[data-progress]{margin-top:10px}

/* ---- 空状态 ---- */
.xb-empty{text-align:center;padding:60px 20px;color:var(--xb-dim);font-size:14px}

/* ---- 分页 ---- */
.xb-pager{display:flex;justify-content:center;gap:6px;margin-top:32px;flex-wrap:wrap}
.xb-pager a,.xb-pager span{padding:8px 14px;border-radius:8px;font-size:13px;border:1px solid var(--xb-bd-soft);background:var(--xb-surface);color:var(--xb-muted);transition:all var(--xb-dur) var(--xb-ease)}
.xb-pager a:hover{border-color:var(--xb-border);color:var(--xb-accent)}

/* ---- 面包屑 ---- */
.xb-crumb{padding:18px 0;font-size:13px;color:var(--xb-dim);margin-top:64px}
.xb-crumb a{color:var(--xb-muted);transition:color var(--xb-dur) var(--xb-ease)}
.xb-crumb a:hover{color:var(--xb-accent)}

/* ---- 筛选条 ---- */
.xb-filter-bar{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:28px;padding:20px;background:var(--xb-surface);border:1px solid var(--xb-bd-soft);border-radius:var(--xb-radius)}
.xb-filter-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.xb-filter-label{font-size:12px;color:var(--xb-dim);font-family:var(--xb-font-display);white-space:nowrap}
.xb-filter-tag{padding:5px 14px;border-radius:var(--xb-radius-pill);font-size:12px;background:var(--xb-surface2);border:1px solid var(--xb-bd-soft);color:var(--xb-muted);cursor:pointer;transition:all var(--xb-dur) var(--xb-ease)}
.xb-filter-tag.on{background:var(--xb-accent);color:#fff;border-color:var(--xb-accent)}
.xb-filter-tag:hover{border-color:var(--xb-border)}

/* ---- 首页Hero区域 ---- */
.xb-hero{padding:80px 0 60px;text-align:center;background:linear-gradient(180deg,rgba(233,69,96,.06) 0%,transparent 100%)}
.xb-hero-inner{max-width:720px;margin:0 auto}
.xb-hero h1{font-size:36px;font-weight:700;font-family:var(--xb-font-display);color:var(--xb-text);margin-bottom:16px;line-height:1.3;letter-spacing:-.5px}
.xb-hero-sub{font-size:16px;color:var(--xb-accent);font-weight:600;margin-bottom:12px;letter-spacing:1px}
.xb-hero-desc{font-size:14px;color:var(--xb-muted);line-height:1.8;margin-bottom:28px}
.xb-hero-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.xb-hero-cta .xb-btn{padding:14px 32px;border-radius:var(--xb-radius-pill);font-size:15px;font-weight:600;font-family:var(--xb-font-display);transition:all var(--xb-dur) var(--xb-ease)}
.xb-hero-cta .xb-btn.primary{background:var(--xb-accent);color:#fff;border:none}
.xb-hero-cta .xb-btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(233,69,96,.3)}
.xb-hero-cta .xb-btn.ghost{background:transparent;color:var(--xb-text);border:1px solid var(--xb-border)}
.xb-hero-cta .xb-btn.ghost:hover{border-color:var(--xb-accent);color:var(--xb-accent)}

/* ---- 首页SEO文案 ---- */
.xb-seo-text{padding:48px 0;background:var(--xb-bg)}
.xb-seo-inner{max-width:800px;margin:0 auto}
.xb-seo-text h2{font-size:20px;font-family:var(--xb-font-display);color:var(--xb-text);margin-bottom:16px;text-align:center}
.xb-seo-text p{font-size:13px;color:var(--xb-dim);line-height:2;margin-bottom:8px;text-align:justify}

@media(max-width:768px){
  .xb-hero{padding:60px 0 40px}
  .xb-hero h1{font-size:26px}
  .xb-hero-sub{font-size:14px}
  .xb-hero-desc{font-size:13px}
  .xb-hero-cta .xb-btn{padding:12px 24px;font-size:14px}
}
