/* ============ 魔王版本库 全局样式 ============ */
:root {
  --bg: #171208;
  --bg2: #211810;
  --panel: #2a1f12;
  --panel2: #332718;
  --line: #4d3d24;
  --gold: #f0b93c;
  --gold2: #ffd76a;
  --gold3: #c08c28;
  --red: #d43d2a;
  --fire: #ff7a1a;
  --text: #f5ecd8;
  --muted: #bfa87e;
  --green: #5cc58f;
  --blue: #63aeea;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
/* 滚动条轨道始终预留位置：切页时内容未撑开导致滚动条消失/出现，会引起整页横向跳动；不能用 overflow-y:scroll，会让根滚动容器变化导致 sticky 顶栏失效 */
html { scroll-behavior: smooth; scrollbar-gutter: stable; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
  min-height: 100vh;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
input, select, textarea { font-family: inherit; }
/* 全局 .inp 输入框/下拉框深色主题（市场、卖家中心、后台通用） */
.inp {
  background: var(--bg2); border: 1px solid var(--line); border-radius: 6px;
  color: var(--text); padding: 9px 12px; outline: none; font-size: 14px; transition: border-color .2s;
}
.inp:focus { border-color: var(--gold); }
.inp::placeholder { color: #6b5a38; }
select.inp { cursor: pointer; }
select.inp option { background: var(--bg2); color: var(--text); }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg2); }
::-webkit-scrollbar-thumb { background: var(--line); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: var(--gold3); }

.wrap { max-width: 1280px; margin: 0 auto; padding: 0 16px; }

/* ---------- 顶部友链 ---------- */
.topbar {
  position: sticky; top: 0; z-index: 100;
  background: linear-gradient(180deg, #0a0705e8, #120d08e8);
  border-bottom: 1px solid var(--line);
  font-size: 13px;
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.topbar .wrap { display: flex; align-items: center; gap: 6px; height: 56px; overflow: visible; }
.topbar .lbl { color: var(--gold); white-space: nowrap; font-weight: 700; }
.topbar a {
  color: var(--muted); padding: 2px 10px; white-space: nowrap;
  transition: color .2s;
}
.topbar a:hover { color: var(--gold2); }
.topbar .auth { margin-left: auto; display: flex; gap: 10px; align-items: center; white-space: nowrap; }
.topbar .auth a, .topbar .auth span { color: var(--gold); border: none; }
.topbar .auth a:hover { color: var(--gold2); }
/* 用户下拉菜单 */
.u-menu { position: relative; }
.u-menu .u-btn { font-size: 14px; font-weight: 700; padding: 6px 14px; border: 1px solid var(--gold3) !important; border-radius: 6px; }
.u-menu .u-btn { position: relative; }
.u-dot { position: absolute; top: -4px; right: -4px; width: 10px; height: 10px; background: #e74c3c; border-radius: 50%; box-shadow: 0 0 6px rgba(231,76,60,.9); }
.act-btn {
  position: relative; overflow: hidden;
  padding: 6px 18px !important;
  background: linear-gradient(135deg, #8a2b04 0%, #d1540f 48%, #f5a623 100%);
  border: 1px solid #ffd76a !important; border-radius: 20px;
  font-weight: 900; letter-spacing: 1px; color: #fff8e0 !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.55);
  box-shadow: 0 0 14px rgba(255,150,40,.45), inset 0 1px 0 rgba(255,255,255,.3), inset 0 -2px 4px rgba(120,40,0,.45);
  animation: actPulse 2s infinite;
  transition: transform .18s, filter .18s;
}
.act-btn:hover { transform: translateY(-2px) scale(1.06); filter: brightness(1.18); }
.act-btn:active { transform: scale(.97); }
/* 流光扫过 */
.act-btn::after {
  content: ''; position: absolute; top: -20%; left: -80%; width: 45%; height: 140%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent);
  transform: skewX(-22deg); animation: actShine 2.6s ease-in-out infinite; pointer-events: none;
}
@keyframes actPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255,175,60,.55), 0 0 14px rgba(255,150,40,.45), inset 0 1px 0 rgba(255,255,255,.3), inset 0 -2px 4px rgba(120,40,0,.45); }
  50% { box-shadow: 0 0 0 9px rgba(255,175,60,0), 0 0 24px rgba(255,175,60,.7), inset 0 1px 0 rgba(255,255,255,.3), inset 0 -2px 4px rgba(120,40,0,.45); }
}
@keyframes actShine { 0% { left: -80%; } 55%, 100% { left: 140%; } }
.u-menu .u-btn:not(.act-btn):hover { background: rgba(240,185,60,.08); }
.u-drop {
  position: absolute; right: 0; top: calc(100% + 8px); z-index: 1000;
  min-width: 190px; background: #171009; border: 1px solid var(--gold3); border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0,0,0,.6); padding: 6px; display: none;
}
.u-drop.show { display: block; animation: uDropIn .18s ease; }
@keyframes uDropIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.u-drop a { display: block; padding: 10px 12px; border-radius: 6px; color: var(--text) !important; font-size: 14px; border: none !important; }
.u-drop a:hover { background: rgba(240,185,60,.1); color: var(--gold2) !important; }
.u-drop .u-info { display: flex; justify-content: space-between; align-items: center; padding: 9px 12px; font-size: 13px; color: var(--muted); }
.u-drop .u-info b { color: var(--gold2); font-size: 14px; }
.u-drop .u-sep { height: 1px; background: var(--line); margin: 4px 8px; }
/* 顶部导航：固定高度按钮，保证所有按钮（含 emoji）上间距完全一致 */
.topbar .nav { display: flex; flex-wrap: nowrap; align-items: center; gap: 30px; overflow-x: auto; flex: 1 1 auto; min-width: 0; height: 100%; scrollbar-width: none; }
.topbar .nav::-webkit-scrollbar { display: none; }
.topbar .nav a {
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
  box-sizing: border-box; height: 38px; padding: 0 18px; margin: 0;
  font-size: 17px; font-weight: 700; line-height: 1; color: var(--gold2);
  border: 1px solid var(--gold3); border-radius: 6px;
  white-space: nowrap; transition: all .25s;
}
.topbar .nav a:hover { color: #ffe9a8; border-color: var(--gold2); background: rgba(240,185,60,.08); text-shadow: 0 0 12px rgba(255,215,106,.5); }

/* 站点 LOGO（后台站点设置上传，显示在顶栏左上角，点击返回首页） */
.topbar .hd-logo { display: flex; align-items: center; flex-shrink: 0; padding: 0; margin-right: 4px; }
.topbar .hd-logo img { height: 40px; max-width: 200px; object-fit: contain; display: block; border-radius: 6px; }
@media (max-width: 720px) { .topbar .hd-logo img { height: 32px; max-width: 130px; } }

/* 文字广告条 / 友情链接条（同一样式） */
.friendbar { background: #1c1409; border-bottom: 1px solid var(--line); font-size: 12px; }
.friendbar .wrap { display: flex; align-items: center; gap: 6px; min-height: 30px; overflow-x: auto; }
.friendbar .lbl { color: var(--gold); white-space: nowrap; font-weight: 700; }
.friendbar a { color: #8a7648; white-space: nowrap; padding: 2px 10px; border-right: 1px solid #2a1f10; transition: color .2s; }
.friendbar a:last-child { border-right: none; }
.friendbar a:hover { color: var(--gold2); }

/* ---------- 头部横幅 ---------- */
.hero {
  position: relative; height: 300px; overflow: hidden;
  background: radial-gradient(ellipse at 50% 120%, #4a1503 0%, #200b04 45%, #171208 100%);
  border-bottom: 2px solid var(--gold3);
}
#fireCanvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-inner {
  position: relative; z-index: 2; height: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-shadow: 0 2px 12px rgba(0,0,0,.8);
}
.site-title {
  font-size: 64px; font-weight: 900; letter-spacing: 10px;
  background: linear-gradient(180deg, #fff2c8 0%, var(--gold2) 35%, var(--gold) 55%, #8a5c10 80%, #ffd76a 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 0 18px rgba(255, 150, 30, .45));
  animation: titleGlow 3s ease-in-out infinite;
  font-family: "STKaiti", "KaiTi", "Microsoft YaHei", serif;
}
@keyframes titleGlow {
  0%, 100% { filter: drop-shadow(0 0 14px rgba(255,150,30,.35)); }
  50% { filter: drop-shadow(0 0 30px rgba(255,180,60,.7)); }
}
.site-slogan {
  margin-top: 12px; color: var(--gold2); letter-spacing: 8px; font-size: 16px;
  opacity: .9;
}
.hero-swords { font-size: 30px; margin-top: 6px; opacity: .85; animation: float 3s ease-in-out infinite; }
@keyframes float { 0%,100%{ transform: translateY(0);} 50%{ transform: translateY(-8px);} }

/* ---------- 公告跑马灯 ---------- */
.notice-bar {
  background: linear-gradient(90deg, #2a0f06, #4a1503, #2a0f06);
  border: 1px solid var(--line); border-radius: 6px;
  overflow: hidden; height: 40px; display: flex; align-items: center;
  max-width: 1248px; width: calc(100% - 32px); margin: 6px auto 0; padding: 0 12px;
}
.notice-bar .horn { color: var(--fire); margin: 0 12px 0 0; flex-shrink: 0; animation: shake 1s infinite; font-size: 16px; }
@keyframes shake { 0%,100%{transform:rotate(-8deg);} 50%{transform:rotate(8deg);} }
.marquee { flex: 1; overflow: hidden; white-space: nowrap; }
.marquee-inner {
  display: inline-block; padding-left: 100%;
  animation: marquee 22s linear infinite;
  color: #ffb08a; font-size: 14px; font-weight: 700;
}
@keyframes marquee { to { transform: translateX(-100%); } }

/* ---------- 广告轮播 ---------- */
.ad-carousel {
  position: relative; margin: 18px auto; max-width: 1280px; padding: 0 16px;
}
.carousel-box {
  position: relative; height: 160px; border-radius: 10px; overflow: hidden;
  border: 1px solid var(--gold3);
  box-shadow: 0 4px 24px rgba(0,0,0,.6), inset 0 0 0 1px rgba(255,215,106,.15);
}
.slide {
  position: absolute; inset: 0; opacity: 0; transition: opacity .8s ease;
  display: flex; align-items: center; justify-content: center;
}
.slide.active { opacity: 1; }
.slide img, .slide video { width: 100%; height: 100%; object-fit: cover; display: block; }
.slide .ad-ph {
  width: 100%; height: 100%; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 8px;
  background: linear-gradient(120deg, #2a1503, #54300a, #2a1503);
  background-size: 200% 100%; animation: shimmer 4s linear infinite;
  color: var(--gold2); font-size: 22px; letter-spacing: 4px;
}
@keyframes shimmer { to { background-position: -200% 0; } }
.dots { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; z-index: 3; }
.dots i {
  width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.3);
  cursor: pointer; transition: all .3s;
}
.dots i.on { background: var(--gold2); width: 26px; border-radius: 5px; }
.carousel-arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--gold3);
  background: rgba(20,12,5,.7); color: var(--gold2); font-size: 20px;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .3s;
}
.carousel-box:hover .carousel-arrow { opacity: 1; }
.carousel-arrow.prev { left: 12px; } .carousel-arrow.next { right: 12px; }
.carousel-arrow:hover { background: var(--gold3); color: #fff; }

/* ---------- 筛选面板 ---------- */
.filter-panel {
  background: linear-gradient(180deg, var(--panel2), var(--panel));
  border: 1px solid var(--line); border-radius: 10px;
  padding: 14px 18px; margin-bottom: 16px;
  box-shadow: 0 2px 12px rgba(0,0,0,.4);
}
.filter-row { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; border-bottom: 1px dashed #33271299; }
.filter-row:last-child { border-bottom: none; }
.filter-row .fname { color: var(--gold); font-weight: 700; white-space: nowrap; padding-top: 5px; min-width: 76px; }
.tags { display: flex; flex-wrap: wrap; gap: 8px; }
.tags .tag.on::after { content: none; }
.tag {
  padding: 4px 14px; border-radius: 20px; font-size: 13px; cursor: pointer;
  color: var(--muted); border: 1px solid transparent;
  transition: all .25s; user-select: none;
}
.tag:hover { color: var(--gold2); border-color: var(--gold3); transform: translateY(-1px); }
.tag.on {
  color: #2a1503; font-weight: 700;
  background: linear-gradient(180deg, var(--gold2), var(--gold));
  box-shadow: 0 2px 10px rgba(240,185,60,.4);
  position: relative;
}
.tag.on::after {
  content: '×'; position: absolute; top: -6px; right: -6px;
  width: 14px; height: 14px; line-height: 13px; text-align: center;
  background: #d43d2a; color: #fff; border-radius: 50%;
  font-size: 11px; font-weight: 700;
}

/* ---------- 搜索排序条 ---------- */
.search-bar { display: flex; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.search-input {
  flex: 1; min-width: 220px; display: flex; align-items: center;
  background: var(--panel); border: 1px solid var(--line); border-radius: 8px;
  padding: 0 14px; transition: border-color .25s;
}
.search-input:focus-within { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(240,185,60,.12); }
.search-input input {
  flex: 1; background: none; border: none; outline: none; color: var(--text);
  height: 42px; font-size: 14px;
}
/* 搜索建议下拉框 */
.suggest-box {
  position: absolute; top: 46px; left: -1px; right: -1px; z-index: 99;
  background: var(--panel); border: 1px solid var(--line); border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,.45); max-height: 360px; overflow-y: auto;
}
.suggest-item {
  padding: 9px 14px; cursor: pointer; border-bottom: 1px solid var(--line);
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  font-size: 13.5px; transition: background .12s;
}
.suggest-item:last-child { border-bottom: none; }
.suggest-item:hover, .suggest-item.on { background: rgba(240,185,60,.08); }
.suggest-title { color: var(--text); font-weight: 500; flex: 1;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.suggest-title mark { background: rgba(240,185,60,.25); color: var(--gold2);
  border-radius: 2px; padding: 0 1px; }
.suggest-meta { color: var(--muted); font-size: 12px; white-space: nowrap; }
.search-btn {
  background: linear-gradient(180deg, var(--gold2), var(--gold3));
  border: none; color: #2a1503; font-weight: 700; padding: 0 26px;
  border-radius: 8px; font-size: 15px; transition: filter .2s, transform .1s;
}
.search-btn:hover { filter: brightness(1.1); }
.search-btn:active { transform: scale(.97); }
.sort-select {
  background: var(--panel); border: 1px solid var(--line); color: var(--text);
  border-radius: 8px; padding: 0 12px; height: 42px; outline: none;
}

/* ---------- 版本表格 ---------- */
.ver-table-box {
  background: var(--panel); border: 1px solid var(--line); border-radius: 10px;
  overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,.5);
}
table.ver-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.ver-table thead th {
  background: linear-gradient(180deg, #33240f, #241809);
  color: var(--gold2); padding: 13px 10px; font-size: 14px; letter-spacing: 2px;
  border-bottom: 2px solid var(--gold3); white-space: nowrap;
}
.ver-table tbody tr {
  border-bottom: 1px solid #2a2013;
  transition: background .2s;
  animation: rowIn .4s ease both;
}
@keyframes rowIn { from { opacity: 0; transform: translateX(-12px); } to { opacity: 1; transform: none; } }
.ver-table tbody tr:hover { background: rgba(240,185,60,.07); }
.ver-table td { padding: 7px 10px; vertical-align: middle; }
.badge {
  display: inline-block; padding: 3px 10px; border-radius: 4px; font-size: 12px;
  font-weight: 700; white-space: nowrap;
}
.badge.buy-免费版本 { background: rgba(76,175,125,.18); color: var(--green); border: 1px solid #4caf7d55; }
.badge.buy-福利版本 { background: rgba(77,157,224,.15); color: var(--blue); border: 1px solid #4d9de055; }
.badge.buy-付费版本 { background: rgba(240,185,60,.15); color: var(--gold2); border: 1px solid #f0b93c55; }
.badge.buy-独家版本 { background: rgba(212,61,42,.18); color: #ff8a75; border: 1px solid #d43d2a55; }
.ver-title { display: flex; align-items: center; gap: 8px; min-width: 280px; max-width: 520px; }
.ver-title a { color: var(--text); transition: color .2s; line-height: 1.5; font-size: 13.5px; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ver-title a:hover { color: var(--gold2); text-shadow: 0 0 12px rgba(255,215,106,.4); }
.flame { color: var(--fire); animation: flick .8s infinite alternate; font-size: 15px; }
@keyframes flick { from { opacity: .6; transform: scale(.92); } to { opacity: 1; transform: scale(1.12); } }
.mini-tag {
  display: inline-block; font-size: 11px; color: var(--muted);
  border: 1px solid var(--line); border-radius: 3px; padding: 1px 6px; margin: 1px 2px;
  white-space: nowrap;
}
.price { color: #ff5b3a; font-weight: 900; font-size: 17px; white-space: nowrap; text-shadow: 0 0 10px rgba(255,80,40,.3); }
.price.free { color: var(--green); }
.date-cell { color: var(--muted); font-size: 13px; white-space: nowrap; }
.btn {
  display: inline-block; padding: 6px 16px; border-radius: 6px; font-size: 13px;
  border: none; font-weight: 700; transition: all .2s; white-space: nowrap;
}
.btn-qq { background: linear-gradient(180deg, #56b6f7, #2b7fd4); color: #fff; }
.btn-qq:hover { filter: brightness(1.15); box-shadow: 0 0 12px rgba(80,170,255,.5); }
.btn-dl {
  background: linear-gradient(180deg, #ffb03a, #e05a10); color: #fff;
  animation: pulse 2s infinite;
}
@keyframes pulse { 0%,100%{ box-shadow: 0 0 0 0 rgba(255,140,30,.5);} 50%{ box-shadow: 0 0 0 6px rgba(255,140,30,0);} }
.btn-dl:hover { filter: brightness(1.15); }
.engine-cell { color: #c8a86a; white-space: nowrap; font-size: 13px; }

/* ---------- 分页 ---------- */
.pager { display: flex; justify-content: center; gap: 8px; margin: 22px 0; flex-wrap: wrap; }
.pager button {
  min-width: 38px; height: 38px; border-radius: 8px; border: 1px solid var(--line);
  background: var(--panel); color: var(--muted); font-size: 14px; transition: all .2s;
}
.pager button:hover:not(:disabled) { border-color: var(--gold); color: var(--gold2); }
.pager button.on {
  background: linear-gradient(180deg, var(--gold2), var(--gold3));
  color: #2a1503; font-weight: 700; border-color: var(--gold);
}
.pager button:disabled { opacity: .35; cursor: not-allowed; }

/* ---------- 侧边广告 ---------- */
.side-ads { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; margin: 18px 0; }
.side-ad {
  border: 1px solid var(--line); border-radius: 10px; overflow: hidden;
  position: relative; transition: transform .3s, box-shadow .3s; display: block; background: #000;
}
.side-ad:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(240,185,60,.2); border-color: var(--gold3); }
.side-ad img { width: 100%; height: 110px; object-fit: contain; display: block; background: #000; image-rendering: -webkit-optimize-contrast; }
.side-ad video { width: 100%; height: 110px; object-fit: cover; display: block; }
.side-ad .t { padding: 8px 12px; font-size: 13px; color: var(--muted); background: var(--panel); }

/* ---------- 页脚 ---------- */
.footer {
  margin-top: 40px; border-top: 2px solid var(--gold3);
  background: linear-gradient(180deg, var(--bg2), #0a0705);
  padding: 20px 0 14px; text-align: center; color: var(--muted); font-size: 13px;
}
.footer .qq-card {
  display: inline-flex; gap: 30px; margin-bottom: 8px; flex-wrap: wrap; justify-content: center;
}
.footer .fl-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2px; margin-bottom: 8px; font-size: 12px; }
.footer .fl-row .lbl { color: var(--gold); font-weight: 700; margin-right: 6px; }
.footer .fl-row a { color: #c9a868; padding: 2px 10px; border-right: 1px solid #2a1f10; transition: color .2s; }
.footer .fl-row a:last-child { border-right: none; }
.footer .fl-row a:hover { color: #f5d78a; }
.footer .qq-card b { color: var(--gold2); font-size: 16px; }
.footer .qq-card .qq-link { cursor: pointer; transition: color .2s; }
.footer .qq-card .qq-link:hover { color: #f5d78a; }
.footer .qq-card .qq-link:hover b { color: #ffe9a8; text-shadow: 0 0 8px rgba(240,185,60,.5); }
.footer .disclaimer { max-width: 800px; margin: 8px auto 0; line-height: 1.7; color: #7d6c4e; }

/* ---------- 后台站点设置分组折叠 ---------- */
.set-group-head {
  cursor: pointer; user-select: none;
  display: flex; align-items: center; gap: 10px; padding: 13px 18px;
  background: linear-gradient(90deg, rgba(240,185,60,.14), rgba(240,185,60,.02));
  border-left: 3px solid var(--gold2); border-bottom: 1px solid var(--line);
  transition: background .15s;
}
.set-group-head:hover { background: linear-gradient(90deg, rgba(240,185,60,.26), rgba(240,185,60,.06)); }
.set-group-head .garr { transition: transform .15s; }

/* ---------- 回到顶部 ---------- */
.backtop {
  position: fixed; right: 26px; bottom: 80px; z-index: 50;
  width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--gold3);
  background: rgba(30,20,8,.9); color: var(--gold2); font-size: 20px;
  opacity: 0; pointer-events: none; transition: all .3s;
}
.backtop.show { opacity: 1; pointer-events: auto; }
.backtop:hover { background: var(--gold3); color: #fff; }

/* ---------- 详情页 ---------- */
.crumb { margin: 18px 0; font-size: 13px; color: var(--muted); }
.crumb a { color: var(--gold); }
.detail-card {
  background: var(--panel); border: 1px solid var(--line); border-radius: 12px;
  overflow: hidden; box-shadow: 0 6px 30px rgba(0,0,0,.5);
  animation: fadeUp .5s ease both;
}
@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
.detail-head {
  padding: 26px 30px; border-bottom: 1px solid var(--line);
  background: linear-gradient(120deg, #241a0d, #1a1209);
}
.detail-head h1 { font-size: 16px; color: var(--gold2); line-height: 1.6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.detail-head > div:first-child, .detail-head .detail-head-info { min-width: 0; }
.detail-badges { margin-top: 12px; display: flex; gap: 8px; flex-wrap: wrap; }
.meta-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0; border-bottom: 1px solid var(--line);
}
.meta-item {
  padding: 14px 20px; border-right: 1px dashed #33271299; border-bottom: 1px dashed #33271299;
  font-size: 14px; display: flex; gap: 8px;
}
.meta-item .k { color: var(--muted); white-space: nowrap; }
.meta-item .v { color: var(--gold2); }
.buy-band {
  display: flex; align-items: center; gap: 26px; padding: 22px 30px; flex-wrap: wrap;
  background: linear-gradient(90deg, rgba(212,61,42,.12), transparent);
  border-bottom: 1px solid var(--line);
}
.buy-band .price { font-size: 32px; }
.buy-cover { width: 280px; height: 172px; flex-shrink: 0; max-width: 100%; border-radius: 10px; overflow: hidden;
  border: 1px solid var(--line); background: var(--bg2); display: flex; align-items: center; justify-content: center;
  color: var(--muted); font-size: 13px; box-shadow: 0 4px 16px rgba(0,0,0,.35); }
.buy-cover img { width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; display: block; }
.heat-cell { white-space: nowrap; }
.heat-cell span { display: inline-block; margin: 0 5px; font-size: 12px; color: var(--muted); white-space: nowrap; }
.heat-cell span:hover { color: var(--gold2); }
.vt-cell { white-space: nowrap; }
.vt-cell .mini-tag { font-size: 10px; padding: 1px 5px; margin: 1px; }
.btn-lg { padding: 12px 34px; font-size: 16px; border-radius: 8px; }

/* 自定义黑金气泡提示：data-tip 属性承载文案，替代浏览器原生 title 灰块（文案长时自动换行） */
[data-tip] { position: relative; }
[data-tip]::after {
  content: attr(data-tip);
  position: absolute; left: 50%; bottom: calc(100% + 11px);
  transform: translateX(-50%) translateY(5px);
  max-width: 210px; width: max-content;
  background: linear-gradient(180deg, #2e2113, #1a1207);
  color: var(--gold2); border: 1px solid var(--gold3); border-radius: 8px;
  padding: 7px 13px; font-size: 12.5px; font-weight: 600; line-height: 1.55; text-align: center;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .6);
  opacity: 0; pointer-events: none; z-index: 80;
  transition: opacity .18s ease, transform .18s ease;
}
[data-tip]::before {
  content: '';
  position: absolute; left: 50%; bottom: calc(100% + 5px);
  width: 9px; height: 9px;
  transform: translateX(-50%) rotate(45deg);
  background: #1a1207;
  border-right: 1px solid var(--gold3); border-bottom: 1px solid var(--gold3);
  opacity: 0; pointer-events: none; z-index: 79;
  transition: opacity .18s ease;
}
[data-tip]:hover::after { opacity: 1; transform: translateX(-50%) translateY(0); }
[data-tip]:hover::before { opacity: 1; }
.section-title {
  font-size: 18px; color: var(--gold2); padding: 18px 30px 0;
  display: flex; align-items: center; gap: 10px; font-weight: 700;
}
.section-title::before { content: ''; width: 4px; height: 18px; background: linear-gradient(180deg, var(--gold2), var(--fire)); border-radius: 2px; }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; padding: 16px 30px; }
.gallery img {
  width: 100%; height: 160px; object-fit: cover; border-radius: 8px;
  border: 1px solid var(--line); cursor: zoom-in; transition: transform .3s, border-color .3s;
}
.gallery img:hover { transform: scale(1.03); border-color: var(--gold); }
.desc-box { padding: 16px 30px 30px; line-height: 2; color: #d8c9a8; white-space: pre-wrap; font-size: 15px; }
.lightbox {
  position: fixed; inset: 0; z-index: 100; background: rgba(0,0,0,.9);
  display: none; align-items: center; justify-content: center; cursor: zoom-out;
}
.lightbox.show { display: flex; }
.lightbox img { max-width: 92%; max-height: 90%; border-radius: 8px; box-shadow: 0 0 60px rgba(240,185,60,.3); }
.lb-nav {
  position: fixed; top: 50%; transform: translateY(-50%); z-index: 101;
  font-size: 60px; line-height: 1; color: var(--gold2); cursor: pointer;
  padding: 14px 20px; user-select: none; border-radius: 10px; transition: .2s;
}
.lb-nav:hover { background: rgba(240,185,60,.15); text-shadow: 0 0 18px rgba(255,215,106,.7); }
.lb-prev { left: 2%; }
.lb-next { right: 2%; }

/* ---------- 个人中心 ---------- */
.uc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; }
@media (max-width: 900px) { .uc-grid { grid-template-columns: 1fr; } }
.uc-points { text-align: center; padding: 10px 0 6px; }
.uc-points .num { font-size: 42px; font-weight: 700; color: var(--gold2); text-shadow: 0 0 18px rgba(240,185,60,.35); }
.uc-points button:disabled { opacity: .5; cursor: default; }
.uc-logs { margin-top: 14px; border-top: 1px dashed var(--line); padding-top: 10px; max-height: 180px; overflow: auto; }
.uc-logs div { display: flex; gap: 10px; padding: 4px 0; font-size: 13px; color: var(--muted); }
.uc-logs b { margin-left: auto; }
.uc-logs i { font-style: normal; color: #6b5c3d; }
.uc-coupon { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px dashed var(--gold3); border-radius: 10px; margin-bottom: 10px; background: rgba(240,185,60,.06); }
.uc-coupon b { color: #ff8a5c; font-size: 20px; white-space: nowrap; }
.uc-coupon i { margin-left: auto; font-style: normal; font-size: 12px; color: var(--green); white-space: nowrap; }
.uc-coupon.used { opacity: .45; }
.uc-coupon.used i { color: var(--muted); }
.uc-empty { color: var(--muted); text-align: center; padding: 24px 0; }
.uc-fb { padding: 10px 0; border-bottom: 1px dashed var(--line); font-size: 14px; }
.uc-fb:last-child { border-bottom: none; }

/* ---------- 教程页 ---------- */
.tut-item { border: 1px solid var(--line); border-radius: 10px; margin-bottom: 10px; overflow: hidden; }
.tut-head { display: flex; align-items: center; gap: 12px; padding: 12px 16px; cursor: pointer; background: rgba(240,185,60,.05); transition: background .2s; }
.tut-head:hover { background: rgba(240,185,60,.1); }
.tut-title { color: var(--gold2); font-weight: 700; }
.tut-meta { margin-left: auto; color: #8a7648; font-size: 12px; white-space: nowrap; }
.tut-body { padding: 16px 20px; line-height: 2; color: #d8c9a8; white-space: pre-wrap; border-top: 1px dashed var(--line); }

/* ---------- 登录页 ---------- */
.login-hero { position: relative; min-height: 100vh; display: flex; align-items: center; justify-content: center; overflow: hidden;
  background: radial-gradient(ellipse at 50% 120%, #4a1503 0%, #200b04 45%, #171208 100%); }
.login-card {
  position: relative; z-index: 2; width: 400px; max-width: 92vw;
  background: rgba(25,17,9,.92); border: 1px solid var(--gold3); border-radius: 14px;
  padding: 36px; box-shadow: 0 10px 50px rgba(0,0,0,.7), 0 0 40px rgba(240,185,60,.1);
  animation: fadeUp .5s ease both; backdrop-filter: blur(6px);
}
.login-card h2 { text-align: center; color: var(--gold2); letter-spacing: 6px; margin-bottom: 24px; font-size: 24px; }
.login-tabs { display: flex; margin-bottom: 22px; border-bottom: 1px solid var(--line); }
.login-tabs div {
  flex: 1; text-align: center; padding: 10px; cursor: pointer; color: var(--muted);
  border-bottom: 2px solid transparent; transition: all .25s; font-size: 15px;
}
.login-tabs div.on { color: var(--gold2); border-bottom-color: var(--gold); font-weight: 700; }
.form-item { margin-bottom: 16px; }
.form-item label { display: block; font-size: 13px; color: var(--muted); margin-bottom: 6px; }
.form-item input, .form-item select, .form-item textarea {
  width: 100%; background: var(--bg2); border: 1px solid var(--line); border-radius: 8px;
  color: var(--text); padding: 11px 14px; outline: none; font-size: 14px; transition: border-color .25s;
}
.form-item input:focus, .form-item select:focus, .form-item textarea:focus { border-color: var(--gold); }
.form-msg { min-height: 20px; font-size: 13px; color: #ff7a5a; margin: 8px 0; text-align: center; }
.form-msg.ok { color: var(--green); }
.full-btn {
  width: 100%; padding: 12px; border: none; border-radius: 8px; font-size: 16px; font-weight: 700;
  background: linear-gradient(180deg, var(--gold2), var(--gold3)); color: #2a1503;
  transition: filter .2s;
}
.full-btn:hover { filter: brightness(1.12); }
.full-btn:disabled { opacity: .6; cursor: wait; }
.login-links { text-align: center; margin-top: 16px; font-size: 13px; }
.login-links a { color: var(--muted); } .login-links a:hover { color: var(--gold2); }

/* ---------- 管理后台 ---------- */
.admin-body { display: flex; min-height: 100vh; }
.admin-side {
  width: 220px; background: linear-gradient(180deg, #1c130a, #120d07);
  border-right: 1px solid var(--line); padding: 20px 0; flex-shrink: 0;
  position: sticky; top: 0; height: 100vh;
}
.admin-logo { text-align: center; padding: 0 10px 20px; border-bottom: 1px solid var(--line); }
.admin-logo b { color: var(--gold2); font-size: 18px; letter-spacing: 2px; }
.admin-logo small { display: block; color: var(--muted); margin-top: 4px; font-size: 12px; }
.admin-nav { padding: 14px 0; }
.admin-nav div {
  padding: 12px 24px; cursor: pointer; color: var(--muted); font-size: 14px;
  border-left: 3px solid transparent; transition: all .2s; display: flex; gap: 10px; align-items: center;
}
.admin-nav div:hover { color: var(--gold2); background: rgba(240,185,60,.06); }
.admin-nav div { position: relative; }
.nav-dot { position: absolute; top: 7px; right: 8px; min-width: 17px; height: 17px; line-height: 17px; padding: 0 4px;
  border-radius: 9px; background: linear-gradient(135deg,#ff5a3c,#d43d2a); color: #fff; font-size: 11px; font-style: normal;
  text-align: center; font-weight: 700; box-shadow: 0 0 6px rgba(255,80,50,.55); pointer-events: none; }
.admin-nav div.on { color: var(--gold2); border-left-color: var(--gold); background: rgba(240,185,60,.1); font-weight: 700; }
/* 左侧导航分组折叠（纯 CSS 类切换，不改子元素内联样式） */
.admin-nav .nav-group { padding: 0; border-left: none; cursor: default; display: block; }
.admin-nav .nav-group:hover { color: inherit; background: none; }
.admin-nav .nav-head { position: relative; font-weight: 700; color: #c9b380; }
.admin-nav .nav-head .ng-arr { margin-left: auto; font-size: 11px; font-style: normal; color: var(--gold2); transition: transform .15s; }
.admin-nav .nav-group.open > .nav-head .ng-arr { transform: rotate(90deg); }
.admin-nav .nav-sub { display: none; padding: 0; border-left: none; cursor: default; }
.admin-nav .nav-sub:hover { color: inherit; background: none; }
.admin-nav .nav-group.open > .nav-sub { display: block; }
.admin-nav .nav-sub div[data-p] { padding: 10px 24px 10px 42px; font-size: 13px; }
.admin-main { flex: 1; padding: 24px 30px; min-width: 0; }
.admin-topbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.admin-topbar h2 { color: var(--gold2); font-size: 22px; }
.admin-topbar .who { color: var(--muted); font-size: 14px; display: flex; gap: 14px; align-items: center; }
.stat-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin-bottom: 26px; }
.stat-card {
  background: linear-gradient(135deg, var(--panel2), var(--panel));
  border: 1px solid var(--line); border-radius: 12px; padding: 22px;
  transition: transform .25s, border-color .25s; animation: fadeUp .4s ease both;
}
.stat-card:hover { transform: translateY(-3px); border-color: var(--gold3); }
.stat-card .num { font-size: 34px; font-weight: 900; color: var(--gold2); }
.stat-card .lab { color: var(--muted); margin-top: 6px; font-size: 14px; }
.panel {
  background: var(--panel); border: 1px solid var(--line); border-radius: 12px;
  padding: 20px; margin-bottom: 20px; animation: fadeUp .4s ease both;
}
.panel h3 { color: var(--gold2); margin-bottom: 16px; font-size: 16px; display: flex; align-items: center; gap: 8px; }
.panel h3::before { content: ''; width: 4px; height: 16px; background: var(--gold); border-radius: 2px; }
/* 面板折叠：收起时隐藏除标题外的全部内容，不触碰内联样式 */
.panel.panel-collapsed > *:not(h3) { display: none !important; }
.panel.panel-collapsed h3 { margin-bottom: 0; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.admin-table th { text-align: left; padding: 10px; color: var(--muted); border-bottom: 1px solid var(--line); font-weight: 400; white-space: nowrap; }
.admin-table td { padding: 10px; border-bottom: 1px solid #241b10; vertical-align: middle; }
.admin-table tr:hover td { background: rgba(240,185,60,.04); }
.btn-sm { padding: 4px 12px; font-size: 12px; border-radius: 5px; border: 1px solid var(--line); background: var(--panel2); color: var(--text); transition: all .2s; margin-right: 6px; }
.btn-sm:hover { border-color: var(--gold); color: var(--gold2); }
.btn-sm.on { border-color: var(--gold); color: var(--gold2); background: linear-gradient(180deg, rgba(240,185,60,.2), rgba(240,185,60,.06)); box-shadow: 0 0 0 1px var(--gold3) inset; }
.btn-sm.danger:hover { border-color: var(--red); color: #ff8a75; }
.btn-sm.primary { background: linear-gradient(180deg, var(--gold2), var(--gold3)); color: #2a1503; border: none; font-weight: 700; }
/* 全局按钮：金色主按钮 + 描边次按钮（市场/卖家中心通用） */
.btn-gold {
  background: linear-gradient(180deg, var(--gold2), var(--gold3)); color: #2a1503; border: none;
  border-radius: 6px; padding: 9px 18px; font-size: 14px; font-weight: 700; transition: filter .2s;
}
.btn-gold:hover { filter: brightness(1.12); }
.btn-gold:disabled { opacity: .6; cursor: not-allowed; }
.btn-line {
  background: var(--bg2); border: 1px solid var(--line); color: var(--text);
  border-radius: 6px; padding: 6px 12px; font-size: 13px; transition: all .2s;
}
.btn-line:hover { border-color: var(--gold); color: var(--gold2); }
.img-thumb { width: 72px; height: 48px; object-fit: cover; border-radius: 4px; border: 1px solid var(--line); background: #000; }
.switch { position: relative; width: 40px; height: 22px; display: inline-block; }
.switch input { opacity: 0; width: 0; height: 0; }
.switch .sl { position: absolute; inset: 0; background: #3a2d18; border-radius: 22px; transition: .3s; cursor: pointer; }
.switch .sl::before { content: ''; position: absolute; width: 16px; height: 16px; border-radius: 50%; background: #888; top: 3px; left: 3px; transition: .3s; }
.switch input:checked + .sl { background: var(--gold3); }
.switch input:checked + .sl::before { transform: translateX(18px); background: #fff; }

/* 弹窗 */
.modal-mask {
  position: fixed; inset: 0; z-index: 200; background: rgba(0,0,0,.72);
  display: none; align-items: flex-start; justify-content: center; padding: 40px 16px; overflow-y: auto;
}
.modal-mask.show { display: flex; }
.modal {
  width: 860px; max-width: 96vw; background: var(--panel2); border: 1px solid var(--gold3);
  border-radius: 14px; padding: 26px 30px; animation: fadeUp .3s ease both;
  box-shadow: 0 20px 80px rgba(0,0,0,.8);
}
.modal h3 { color: var(--gold2); margin-bottom: 18px; font-size: 18px; }
.modal .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.modal .form-grid .span2 { grid-column: span 2; }
.modal-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 20px; }

/* ---------- 每日签到提醒卡片（暗金风） ---------- */
.ck-card { position: relative; padding: 0 !important; overflow: hidden; }
.ck-close {
  position: absolute; top: 8px; right: 10px; z-index: 3; width: 28px; height: 28px;
  border: none; background: rgba(255,255,255,.08); color: #fff; border-radius: 50%;
  font-size: 18px; line-height: 1; transition: all .2s;
}
.ck-close:hover { background: rgba(255,255,255,.22); transform: rotate(90deg); }
.ck-banner {
  position: relative; height: 120px; overflow: hidden;
  background: linear-gradient(135deg, #1b2a4a 0%, #16223d 55%, #101a30 100%);
  border-bottom: 1px solid var(--gold3);
}
.ck-banner-in { display: flex; align-items: center; gap: 14px; height: 100%; padding: 0 26px; }
.ck-ico { font-size: 44px; filter: drop-shadow(0 3px 8px rgba(0,0,0,.5)); }
.ck-code { font-family: Consolas, monospace; font-size: 14px; line-height: 1.8; color: #8fd3a8; text-shadow: 0 1px 2px rgba(0,0,0,.6); }
.ck-px { position: absolute; bottom: 0; width: 8px; image-rendering: pixelated; }
.ck-px.p1 { left: 20px; height: 26px; background: #e74c3c; opacity: .85; }
.ck-px.p2 { left: 32px; height: 40px; background: #f0b93c; opacity: .75; }
.ck-px.p3 { left: 44px; height: 18px; background: #63aeea; opacity: .8; }
.ck-body { padding: 20px 26px 24px; }
.ck-title { font-size: 18px; font-weight: 700; color: var(--text); }
.ck-title b { color: var(--gold2); font-size: 22px; }
.ck-vip { font-size: 12px; font-weight: 700; color: #ffd76a; background: linear-gradient(135deg, #8a5c10, #d19a2a); border-radius: 10px; padding: 2px 9px; margin-left: 6px; vertical-align: 2px; }
/* VIP 档位色（全局统一）：月卡白银 / 季卡黄金 / 年卡至尊金——徽章变体与纯文字工具类 */
.ck-vip.vip-m { color: #f2f5fc; background: linear-gradient(135deg, #5a6478, #98a4bd); }
.ck-vip.vip-q { color: #ffe9a8; background: linear-gradient(135deg, #8a5c10, #d19a2a); }
.ck-vip.vip-y { color: #fff3c4; background: linear-gradient(135deg, #a8720a, #f0b93c); }
.vip-m { color: #dfe6f2; } .vip-q { color: #f0c14b; } .vip-y { color: #ffd76a; }
.ck-desc { font-size: 13px; color: var(--muted); margin-top: 8px; line-height: 1.7; }
.ck-btns { display: flex; gap: 12px; margin-top: 18px; }
.ck-btns .btn-sm { padding: 9px 22px; font-size: 14px; border-radius: 8px; margin: 0; text-align: center; }
.ck-btns .ck-up { border: 1px solid var(--gold); color: var(--gold2); background: rgba(240,185,60,.08); }
.ck-btns .ck-up:hover { background: rgba(240,185,60,.18); color: #ffe9a8; }

/* ---------- 转盘抽奖页 ---------- */
.lt-head { text-align: center; padding: 18px 0 6px; }
.lt-title { font-size: 32px; font-weight: 900; color: var(--gold2); letter-spacing: 4px; text-shadow: 0 0 18px rgba(255,180,60,.4); }
.lt-sub { color: var(--muted); margin-top: 8px; font-size: 14px; }
.lt-layout { display: flex; gap: 26px; margin-top: 22px; align-items: flex-start; flex-wrap: wrap; }
.lt-left { flex: 1 1 420px; display: flex; flex-direction: column; align-items: center; }
.lt-wheel-box { position: relative; width: 380px; height: 380px; max-width: 90vw; border-radius: 50%;
  padding: 12px; background: linear-gradient(160deg, #3a270e, #191106 60%, #3a270e);
  border: 3px solid var(--gold3); box-shadow: 0 0 40px rgba(240,160,40,.25), inset 0 0 24px rgba(0,0,0,.7); }
.lt-wheel { position: relative; width: 100%; height: 100%; border-radius: 50%; border: 2px solid rgba(255,215,106,.35); overflow: hidden; }
.lt-label { position: absolute; left: 50%; top: 50%; transform-origin: center; text-align: center;
  color: var(--gold2); font-size: 13px; font-weight: 700; line-height: 1.3; width: 76px; text-shadow: 0 1px 3px rgba(0,0,0,.8); }
.lt-label b { display: block; font-size: 16px; color: #ffe9a8; }
.lt-label span { font-size: 11px; color: var(--muted); }
.lt-pointer {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); z-index: 6; pointer-events: none;
  width: 40px; height: 40px; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #ffe9a8, #f0b93c 45%, #8a5c10);
  border: 3px solid #fff3cf;
  box-shadow: 0 4px 14px rgba(0,0,0,.6), 0 0 18px rgba(255,200,80,.55);
}
.lt-pointer::after {
  content: ''; position: absolute; left: 50%; bottom: 100%; transform: translateX(-50%);
  border-left: 8px solid transparent; border-right: 8px solid transparent;
  border-bottom: 74px solid #f0b93c; filter: drop-shadow(0 -2px 4px rgba(0,0,0,.45));
}
/* 中心内阴影罩层（扇区分割线由 JS 生成 .lt-line DOM，避免 repeating-conic-gradient 小数角度断线） */
.lt-wheel::after {
  content: ''; position: absolute; inset: 0; border-radius: 50%; pointer-events: none;
  box-shadow: inset 0 0 34px rgba(0,0,0,.45);
}
/* 扇区分割线：从圆心到边缘的渐变金线，绕圆心旋转到每个扇区边界，像素级稳定不断线 */
.lt-line { position: absolute; left: 50%; top: 0; width: 2px; height: 50%; transform-origin: 50% 100%;
  background: linear-gradient(180deg, rgba(255,215,106,.8), rgba(255,215,106,.3)); pointer-events: none; }
.lt-close {
  position: fixed; top: 14px; right: 18px; z-index: 60;
  width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: rgba(29,21,12,.85); border: 1px solid var(--gold3); color: var(--gold2);
  font-size: 22px; line-height: 1; transition: all .2s; box-shadow: 0 4px 14px rgba(0,0,0,.5);
}
.lt-close:hover { background: rgba(240,185,60,.18); border-color: var(--gold); transform: rotate(90deg); color: #ffe9a8; }
.lt-actions { display: flex; gap: 14px; margin-top: 24px; flex-wrap: wrap; justify-content: center; }
.lt-btn { padding: 12px 24px; border-radius: 10px; font-size: 15px; font-weight: 700; border: none; transition: all .2s; }
.lt-btn.free { background: linear-gradient(180deg, var(--gold2), var(--gold3)); color: #2a1503; }
.lt-btn.pay { background: linear-gradient(180deg, #35507a, #24344e); color: #cfe4ff; border: 1px solid #63aeea; }
.lt-btn:hover { transform: translateY(-2px); filter: brightness(1.12); }
.lt-tips { margin-top: 16px; color: var(--muted); font-size: 14px; display: flex; align-items: center; gap: 8px; position: relative; }
.lt-tips b { color: var(--gold2); font-size: 16px; }
/* 积分增减飘字（抽奖即时反馈） */
@keyframes ltFloatUp { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(-28px); } }
.lt-float { position: absolute; font-weight: 700; font-size: 15px; pointer-events: none; animation: ltFloatUp 1.2s ease-out forwards; z-index: 5; text-shadow: 0 1px 4px rgba(0,0,0,.6); }
.lt-right { flex: 0 1 380px; min-width: 300px; display: flex; flex-direction: column; gap: 16px; }
.lt-panel { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; }
.lt-panel h3 { color: var(--gold2); font-size: 15px; margin-bottom: 12px; }
/* 首页幸运大转盘入口横幅：滚动公告下方第一屏位置，暗金底+金边框+流光+hover上浮 */
.lt-banner { display: flex; align-items: center; gap: 14px; margin: 16px 0 0; padding: 14px 22px; border-radius: 12px; text-decoration: none; position: relative; overflow: hidden;
  background: linear-gradient(135deg, rgba(58,32,8,.92), rgba(28,17,4,.94)); border: 1px solid var(--gold3);
  box-shadow: 0 4px 18px rgba(0,0,0,.35), inset 0 0 24px rgba(240,185,60,.06); transition: all .25s; }
.lt-banner::after { content: ''; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255,223,128,.14), transparent); animation: ltbShine 3.2s linear infinite; }
@keyframes ltbShine { to { left: 130%; } }
.lt-banner:hover { border-color: var(--gold2); box-shadow: 0 8px 28px rgba(240,185,60,.28); transform: translateY(-2px); }
.ltb-icon { font-size: 38px; line-height: 1; filter: drop-shadow(0 0 10px rgba(240,185,60,.55)); animation: ltbWobble 2.6s ease-in-out infinite; }
@keyframes ltbWobble { 0%, 100% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } }
.ltb-text { flex: 1; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ltb-text b { font-size: 17px; color: var(--gold2); letter-spacing: 1px; }
.ltb-text i { font-style: normal; font-size: 12.5px; color: #c9b385; }
.ltb-go { flex-shrink: 0; background: linear-gradient(135deg, #f0531f, #c22b12); color: #fff; font-weight: 700; padding: 10px 22px; border-radius: 24px; font-size: 14px;
  box-shadow: 0 4px 14px rgba(240,83,31,.4); transition: all .2s; }
.lt-banner:hover .ltb-go { transform: scale(1.06); box-shadow: 0 6px 20px rgba(240,83,31,.55); }
@media (max-width: 640px) { .ltb-text i { display: none; } .ltb-icon { font-size: 30px; } .ltb-go { padding: 8px 14px; font-size: 13px; } }
.lt-prizes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.lt-prize { padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; font-size: 13px; color: var(--text); background: var(--bg2); }
.lt-prize.pts { color: var(--gold2); font-weight: 700; }
.lt-prize.coupon { color: #ff7a66; font-weight: 700; border-color: rgba(255,106,90,.35); }
.lt-prize.dim { color: var(--muted); }
.lt-rule { font-size: 13px; color: var(--muted); line-height: 2; }
/* 活动规则关键字着色：数字绿 / 积分金 / 优惠券红 / 三档色（月卡绿·季卡紫·年卡粉）/ 链接高亮可点 */
.lt-rule .lr-num { color: #6fdc8c; font-weight: 700; }
.lt-rule .lr-pt { color: var(--gold2); font-weight: 700; }
.lt-rule .lr-cp { color: #ff7a66; font-weight: 700; }
.lt-rule .lr-m { color: #6fdc8c; font-weight: 700; }
.lt-rule .lr-q { color: #c39bff; font-weight: 700; }
.lt-rule .lr-y { color: #ff9ec4; font-weight: 700; }
.lt-rule .lr-link { color: var(--gold2); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; transition: all .2s; }
.lt-rule .lr-link:hover { color: #ffe39a; text-shadow: 0 0 10px rgba(255,215,106,.5); }
/* 个人中心锚点定位高亮：/user#vip /user#ref /user#coupon 跳转后面板金色呼吸提示 */
.panel.panel-flash { animation: panelFlash 1.1s ease-in-out 2; }
@keyframes panelFlash {
  0%, 100% { box-shadow: 0 0 0 rgba(240,185,60,0); border-color: var(--line); }
  50% { box-shadow: 0 0 24px rgba(240,185,60,.45); border-color: var(--gold2); }
}
.lt-logs { display: flex; flex-direction: column; gap: 6px; max-height: 240px; overflow-y: auto; }
.lt-log { display: flex; justify-content: space-between; gap: 10px; font-size: 12.5px; color: var(--text);
  padding: 6px 10px; background: var(--bg2); border-radius: 6px; }
.lt-log .t { color: var(--muted); white-space: nowrap; }
.lt-log .n { color: var(--gold2); font-weight: 700; white-space: nowrap; }
.lt-log .pz { flex: 1; text-align: right; }
.lt-log .pz-pt { color: var(--gold2); font-weight: 700; }
.lt-log .pz-cp { color: #ff7a66; font-weight: 700; }
.lt-tabs { display: flex; gap: 8px; margin-bottom: 12px; }
.lt-tab {
  flex: 1; padding: 8px 10px; border-radius: 8px; font-size: 13.5px; font-weight: 700;
  background: var(--bg2); border: 1px solid var(--line); color: var(--muted); transition: all .2s;
}
.lt-tab:hover { color: var(--gold2); border-color: var(--gold3); }
.lt-tab.on { background: linear-gradient(180deg, rgba(240,185,60,.2), rgba(240,185,60,.06)); border-color: var(--gold); color: var(--gold2); }
.lt-empty { color: var(--muted); font-size: 13px; text-align: center; padding: 14px 0; }

/* ---------- 个人中心 VIP 面板 ---------- */
.vip-panel { border-color: var(--gold3); background: linear-gradient(160deg, rgba(240,185,60,.05), var(--panel) 40%); }
.vip-perks { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; margin: 6px 0 16px; }
.vip-perk { padding: 10px 14px; background: var(--bg2); border: 1px solid var(--line); border-radius: 8px; font-size: 13.5px; color: var(--text); }
.vip-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; }
.vip-plan { text-align: center; padding: 18px 14px; background: var(--bg2); border: 1px solid var(--gold3); border-radius: 12px; transition: all .2s; }
.vip-plan:hover { transform: translateY(-3px); border-color: var(--gold); box-shadow: 0 6px 22px rgba(240,160,40,.18); }
.vip-plan .vp-name { font-size: 15px; font-weight: 700; color: var(--gold2); }
.vip-plan .vp-price { font-size: 30px; font-weight: 900; color: var(--gold2); margin: 8px 0 2px; }
.vip-plan .vp-price span { font-size: 13px; color: var(--muted); font-weight: 400; margin-left: 4px; }
.vip-plan .vp-days { font-size: 12px; color: var(--muted); margin-bottom: 8px; }
.vip-plan .vp-perklist { font-size: 12.5px; color: var(--gold2); line-height: 1.9; margin-bottom: 12px; }
.vip-plan .vp-perkrow { display: flex; align-items: center; gap: 6px; padding: 3px 4px; font-size: 12.5px; color: var(--gold2); text-align: left; border-bottom: 1px dashed rgba(212,175,55,.12); }
.vip-plan .vp-perkrow:last-child { border-bottom: none; }
.vip-plan .vp-perkrow b { color: #ffe9a8; }
/* 年卡·至尊金 */
.vip-plan.year { border-color: #d4af37; background: linear-gradient(160deg, rgba(58,40,8,.5), rgba(30,20,4,.6)); box-shadow: 0 0 18px rgba(240,185,60,.25), inset 0 0 24px rgba(240,185,60,.06); position: relative; overflow: hidden; }
.vip-plan.year::before { content: ''; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,233,168,.12), transparent); animation: tsNameShine 3.6s linear infinite; }
.vip-plan.year:hover { border-color: #ffe9a8; box-shadow: 0 8px 28px rgba(240,185,60,.4), inset 0 0 24px rgba(240,185,60,.1); }
.vip-plan.year .vp-name { background: linear-gradient(90deg, #ffe9a8, #f0b93c, #fff6d8, #f0b93c, #ffe9a8); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: tsNameShine 3s linear infinite; }
.vip-plan.year .vp-price { color: #ffd76a; text-shadow: 0 0 16px rgba(240,185,60,.45); }
.vip-plan.year .vp-days { color: #c9a44a; }
.vip-plan.cur { border-color: var(--green); box-shadow: 0 0 14px rgba(76,175,125,.25); }
.tag-pick { display: flex; flex-wrap: wrap; gap: 8px; }
.tag-pick .tag { border: 1px solid var(--line); }
.tag-pick .tag.on { border-color: var(--gold); }
.imgs-edit { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.imgs-edit .it { position: relative; width: 110px; height: 74px; border-radius: 6px; overflow: hidden; border: 1px solid var(--line); }
.imgs-edit .it img { width: 100%; height: 100%; object-fit: cover; }
.imgs-edit .it b {
  position: absolute; top: 2px; right: 2px; width: 20px; height: 20px; border-radius: 50%;
  background: rgba(0,0,0,.7); color: #ff8a75; display: flex; align-items: center; justify-content: center;
  cursor: pointer; font-size: 12px;
}
.upload-zone {
  border: 2px dashed var(--line); border-radius: 8px; padding: 18px; text-align: center;
  color: var(--muted); cursor: pointer; transition: all .25s; font-size: 13px;
}
.upload-zone:hover, .upload-zone.drag { border-color: var(--gold); color: var(--gold2); background: rgba(240,185,60,.05); }
.toast {
  position: fixed; top: 26px; left: 50%; transform: translateX(-50%); z-index: 300;
  background: rgba(30,20,8,.95); border: 1px solid var(--gold3); color: var(--gold2);
  padding: 12px 26px; border-radius: 8px; font-size: 14px;
  box-shadow: 0 6px 30px rgba(0,0,0,.6); animation: toastIn .3s ease both;
}
@keyframes toastIn { from { opacity: 0; transform: translate(-50%,-16px); } to { opacity: 1; transform: translate(-50%,0); } }

@media (max-width: 900px) {
  .site-title { font-size: 40px; letter-spacing: 5px; }
  .ver-table .hide-m { display: none; }
  .admin-side { width: 64px; }
  .admin-side .admin-logo b, .admin-side .admin-logo small, .admin-nav span { display: none; }
  .modal .form-grid { grid-template-columns: 1fr; }
  .modal .form-grid .span2 { grid-column: span 1; }
}

/* ---------- 首页新广告排版 ---------- */
/* 顶部幻灯片广告：固定位置淡入淡出轮播（高低改 --topslide-h） */
.top-slides { position: relative; height: var(--topslide-h, 220px); background: #000; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; max-width: 1248px; width: calc(100% - 32px); margin: 4px auto 0; }
.ts-box { position: absolute; inset: 0; }
.ts-slide { position: absolute; inset: 0; display: block; opacity: 0; pointer-events: none; transition: opacity .8s ease; }
.ts-slide.on { opacity: 1; pointer-events: auto; }
.ts-slide img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; image-rendering: -webkit-optimize-contrast; image-rendering: crisp-edges; }
.ts-slide video { width: 100%; height: 100%; object-fit: cover; display: block; }
.ts-dots { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; z-index: 3; }
.ts-dots i { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.3); cursor: pointer; transition: all .3s; }
.ts-dots i.on { background: var(--gold2); width: 26px; border-radius: 5px; }

/* 条幅广告（列表下方广告位）：页头下面两列排列 */
.side-ads-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-top: 6px; }
.side-ads-grid .side-ad { position: relative; display: block; height: 78px; overflow: hidden; border-radius: 4px; margin: 0; background: #000; }
.side-ads-grid .side-ad img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; image-rendering: -webkit-optimize-contrast; image-rendering: crisp-edges; }
.side-ads-grid .side-ad video { width: 100%; height: 100%; object-fit: cover; display: block; }
.side-ads-grid .side-ad .t { position: absolute; left: 0; right: 0; bottom: 0; padding: 5px 10px; font-size: 12px; color: #ffe9a8; background: linear-gradient(transparent, rgba(0,0,0,.78)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* 视频广告：静音预览 + 右下角"点击观看"按钮（高度改 --vab-h） */
.video-ad-bar { position: relative; max-width: 1248px; width: calc(100% - 32px); margin: 6px auto 0; height: var(--vab-h, 240px); overflow: hidden; border-radius: 6px; }
.video-ad-bar video { width: 100%; height: 100%; object-fit: cover; display: block; }
.video-ad-bar .vab-btn {
  position: absolute; right: 16px; bottom: 14px; padding: 8px 24px; border-radius: 6px;
  border: 1px solid var(--gold3); background: rgba(20,12,5,.85); cursor: pointer;
  color: var(--gold2); font-size: 15px; font-weight: 700; letter-spacing: 2px; transition: all .25s;
}
.video-ad-bar .vab-btn:hover { box-shadow: 0 0 18px rgba(240,185,60,.4); color: #ffe9a8; }

/* 文字广告：加大字号 + 边框卡片，hover 交互效果 */
#textadbar {
  font-size: 16px;
  background: #1c1409; border: 1px solid var(--line); border-radius: 6px;
  max-width: 1248px; width: calc(100% - 32px); margin: 6px auto 0;
}
#textadbar .wrap { min-height: 46px; gap: 8px; max-width: none; width: 100%; margin: 0; flex-wrap: wrap; overflow-x: visible; padding: 6px 12px; box-sizing: border-box; }
#textadbar a {
  padding: 5px 16px; border: 1px solid #3a2c16; border-radius: 5px;
  background: rgba(240,185,60,.05); transition: all .25s;
}
#textadbar a:hover {
  color: #ffe9a8; border-color: var(--gold); background: rgba(240,185,60,.14);
  box-shadow: 0 0 14px rgba(240,185,60,.3); transform: translateY(-1px);
}

@media (max-width: 768px) {
  .top-slides { height: 140px; }
  .video-ad-bar { height: 160px; }
  .side-ads-grid { grid-template-columns: 1fr; }
  .side-ads-grid .side-ad { height: 64px; }
}

/* ============ 工具页：左侧分类导航 + 卡片网格 ============ */
.tool-layout { display: flex; gap: 18px; align-items: flex-start; }
.tool-nav { width: 210px; flex-shrink: 0; padding: 10px; position: sticky; top: 14px; }
.tn-item { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 8px; cursor: pointer; color: var(--text); transition: all .2s; border: 1px solid transparent; }
.tn-item:hover { background: rgba(240,185,60,.07); color: var(--gold2); }
.tn-item.on { background: rgba(240,185,60,.12); border-color: var(--gold3); color: var(--gold2); font-weight: 700; }
.tn-icon { font-size: 16px; width: 22px; text-align: center; }
.tn-name { flex: 1; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tn-count { font-size: 12px; color: var(--muted); }
.tn-item.on .tn-count { color: var(--gold2); }
.tool-body { flex: 1; min-width: 0; }
.tool-sec-title { font-size: 18px; font-weight: 700; color: var(--gold2); letter-spacing: 2px; margin: 4px 0 14px; }
.tool-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.tool-card { display: flex; align-items: center; gap: 12px; padding: 14px; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; transition: all .2s; min-width: 0; }
.tool-card.has-link { cursor: pointer; }
.tool-card.has-link:hover { border-color: var(--gold3); transform: translateY(-2px); box-shadow: 0 6px 18px rgba(240,185,60,.12); }
.tc-icon { width: 42px; height: 42px; flex-shrink: 0; border-radius: 9px; display: flex; align-items: center; justify-content: center; font-size: 19px; font-weight: 700; color: #2a1c07; background: linear-gradient(180deg, var(--gold2), var(--gold)); }
.tc-info { flex: 1; min-width: 0; }
.tc-title { font-size: 14px; font-weight: 700; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tool-card.has-link:hover .tc-title { color: var(--gold2); }
.tc-desc { font-size: 12px; color: var(--muted); margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 900px) {
  .tool-layout { flex-direction: column; }
  .tool-nav { width: 100%; position: static; }
}

/* 二期：玩家交易市场 */
.mk-filter{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.mk-filter .inp{flex:1;min-width:140px}
.mk-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.mk-card{background:linear-gradient(180deg,#1c1409,#151009);border:1px solid #3d2c12;border-radius:9px;overflow:hidden;cursor:pointer;transition:.2s}
.mk-cover{height:96px;background:#0d0a06;display:flex;align-items:center;justify-content:center;color:#5a4a2a;overflow:hidden}
.mk-cover img{width:100%;height:100%;object-fit:cover}
.mk-info{padding:7px 9px}
.mk-title{color:#e8d9b0;font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mk-tags{display:flex;gap:4px;margin:5px 0;flex-wrap:wrap}
.mk-tags i,.mk-eng{font-style:normal;font-size:10px;padding:1px 5px;border-radius:4px;background:#2a1e0d;color:#c9a860;border:1px solid #3d2c12}
.mk-eng{color:#f0b93c;border-color:#5a4415}
.mk-meta{display:flex;gap:7px;color:#8a7648;font-size:11px;flex-wrap:wrap;align-items:center}
.mk-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:6px}
.mk-price{color:#f0b93c;font-size:15px;font-weight:800}
.mk-buy{font-size:11px;color:#8a7648}
@media (max-width:1600px){.mk-grid{grid-template-columns:repeat(5,1fr)}}
@media (max-width:1320px){.mk-grid{grid-template-columns:repeat(4,1fr)}}
@media (max-width:1024px){.mk-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:720px){.mk-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:440px){.mk-grid{grid-template-columns:1fr}}
.mk-card:hover .mk-buy{color:#f0b93c}
.mk-empty{grid-column:1/-1;text-align:center;color:#8a7648;padding:60px 0;font-size:14px}
.mk-modal{position:fixed;inset:0;background:rgba(0,0,0,.75);display:flex;align-items:center;justify-content:center;z-index:999;padding:20px}
.mk-box{position:relative;background:#1a1208;border:1px solid #5a4415;border-radius:12px;max-width:760px;width:100%;max-height:88vh;overflow-y:auto;padding:22px}

/* ===== A期：预设头像选择 + 昵称颜色徽章 ===== */
.avatar-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}
.avatar-grid .av-pick{width:100%;aspect-ratio:1;border-radius:50%;border:2px solid #3d2c12;cursor:pointer;transition:.15s;background:#0d0a06}
.avatar-grid .av-pick:hover{border-color:#c9a860;transform:scale(1.06)}
.avatar-grid .av-pick.on{border-color:#f0b93c;box-shadow:0 0 8px rgba(240,185,60,.55)}
@media (max-width:560px){.avatar-grid{grid-template-columns:repeat(4,1fr)}}
.av-round{width:28px;height:28px;border-radius:50%;border:1px solid #5a4415;vertical-align:middle;object-fit:cover;background:#0d0a06}
/* 昵称颜色徽章 .ns-<key>（与 server/api.js NAME_STYLES 对应） */
.ns-gold{background:linear-gradient(90deg,#ffe259,#ffa751);-webkit-background-clip:text;background-clip:text;color:transparent!important;font-weight:800;text-shadow:0 0 12px rgba(255,193,7,.35)}
.ns-red{color:#ff5a5a!important;font-weight:800;text-shadow:0 0 10px rgba(255,60,60,.45)}
.ns-blue{color:#58b7ff!important;font-weight:800;text-shadow:0 0 10px rgba(56,152,255,.45)}
.ns-purple{color:#c58bff!important;font-weight:800;text-shadow:0 0 10px rgba(168,85,247,.45)}
.ns-green{color:#5be49b!important;font-weight:800;text-shadow:0 0 10px rgba(46,204,113,.45)}
.ns-pink{color:#ff8ad8!important;font-weight:800;text-shadow:0 0 10px rgba(255,105,180,.45)}
.mk-x{position:absolute;top:10px;right:10px;background:#2a1e0d;border:1px solid #3d2c12;color:#c9a860;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:18px;z-index:2}
.mk-x:hover{border-color:#f0b93c;color:#f0b93c}
.mk-detail h2{color:#f0b93c;font-size:18px;margin:0 40px 0 0}
.mk-imgs{display:flex;gap:8px;overflow-x:auto;padding:8px 0;margin-bottom:10px}
.mk-imgs img{height:110px;border-radius:6px;border:1px solid #3d2c12;cursor:zoom-in;flex-shrink:0}
.mk-desc{color:#c9b58a;font-size:13px;line-height:1.9;background:#120d06;border:1px solid #2a1e0d;border-radius:8px;padding:12px;margin-bottom:12px}
.mk-price-row{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}
.mk-dl{display:block;text-align:center;padding:12px;font-size:15px;text-decoration:none;cursor:pointer;border:0;width:100%}
/* 商品详情：购买/下载按钮与收藏按钮并排（购买占主宽，收藏次宽，不再满宽横条） */
.mk-buyrow{display:flex;gap:10px;align-items:stretch;margin-bottom:12px}
.mk-buyrow .mk-dl{flex:1;width:auto;margin-bottom:0}
.mk-favbtn{flex-shrink:0;padding:0 18px;font-size:14px;white-space:nowrap;cursor:pointer;border-radius:8px}
.mk-favbtn.on{color:var(--gold2);border-color:var(--gold);background:rgba(240,185,60,.1)}
/* 已下架标识（个人中心收藏/浏览记录） */
.off-tag{display:inline-block;font-size:11px;font-weight:700;color:#ffb3a7;background:rgba(160,58,42,.25);border:1px solid rgba(224,112,96,.55);border-radius:8px;padding:1px 7px;margin-left:6px;vertical-align:1px}
.mk-owned{color:#7fc97f;font-size:14px;font-weight:700;text-align:center;margin-bottom:10px}
.mk-note{color:#8a7648;font-size:12px;line-height:1.7;margin-top:8px}
.mk-warn{color:#c98a5a;font-size:12px;line-height:1.8;background:#1c1208;border:1px solid #4a3015;border-radius:8px;padding:10px 12px;margin-top:14px}
.mk-order{display:flex;gap:14px;background:linear-gradient(180deg,#1c1409,#151009);border:1px solid #3d2c12;border-radius:10px;padding:12px 14px;margin-bottom:10px;align-items:center}
.mk-ocover{width:100px;height:64px;object-fit:cover;border-radius:6px;border:1px solid #3d2c12;flex-shrink:0}
.mk-oinfo{flex:1;min-width:0}
.mk-oops{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}

/* 卖家中心 */
.sl-card{background:linear-gradient(180deg,#1c1409,#151009);border:1px solid #3d2c12;border-radius:10px;padding:18px 20px}
.sl-step{padding:6px 0;font-size:13px}
.sl-step.ok{color:#7fc97f}.sl-step.no{color:#e07060}
.sl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.sl-stat{background:linear-gradient(180deg,#1c1409,#151009);border:1px solid #3d2c12;border-radius:10px;padding:14px;text-align:center;color:#8a7648;font-size:12px}
.sl-num{font-size:24px;font-weight:800;color:#e8d9b0;margin-bottom:4px}
.sl-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}
.sl-row label{color:#c9a860;font-size:13px;width:88px;flex-shrink:0;padding-top:8px;text-align:right}
.sl-row .inp{flex:1}
.sl-types{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.sl-type{font-size:12px;padding:4px 10px;border-radius:5px;background:#120d06;border:1px solid #3d2c12;color:#8a7648;cursor:pointer;user-select:none}
.sl-type.on{background:#2a1e0d;border-color:#f0b93c;color:#f0b93c;position:relative}
.sl-type.on::after{content:'×';position:absolute;top:-6px;right:-6px;width:14px;height:14px;line-height:13px;text-align:center;background:#d43d2a;color:#fff;border-radius:50%;font-size:11px;font-weight:700}
.sl-qr-row{display:flex;gap:24px;flex-wrap:wrap}
.sl-qr{display:flex;flex-direction:column;gap:8px;align-items:flex-start}

/* ================= B期·商业核心特效样式 ================= */
/* 交易市场顶部置顶专区：渐变金底 + 流光 + 横向无缝循环滚动（hover 暂停） */
.ts-head{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:10px 10px 0 0;
  background:linear-gradient(135deg,rgba(68,38,8,.95),rgba(32,18,4,.97));border:1px solid var(--gold3);border-bottom:none}
.ts-crown{font-size:20px;filter:drop-shadow(0 0 8px rgba(240,185,60,.7));animation:ltbWobble 2.8s ease-in-out infinite}
.ts-title{font-size:16px;letter-spacing:2px;background:linear-gradient(90deg,#ffe9a8,#f0b93c,#ffdf80,#f0b93c,#ffe9a8);
  background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:tsGoldFlow 3s linear infinite}
@keyframes tsGoldFlow{to{background-position:-200% 0}}
.ts-sub{font-size:12px;color:#c9b385}
.ts-live{margin-left:auto;font-size:11px;color:#ff8a75;animation:tsBlink 1.4s ease-in-out infinite}
@keyframes tsBlink{0%,100%{opacity:1}50%{opacity:.35}}
.ts-track-box{overflow:hidden;border:1px solid var(--gold3);border-top:1px dashed rgba(240,185,60,.3);border-radius:0 0 10px 10px;
  background:linear-gradient(180deg,rgba(28,17,4,.96),rgba(20,12,3,.98));position:relative}
.ts-track{display:flex;flex-direction:column;padding:4px 0}
.ts-item{display:flex;align-items:center;gap:10px;padding:10px 18px;text-decoration:none;position:relative;transition:background .2s}
.ts-item + .ts-item{border-top:1px dashed rgba(240,185,60,.15)}
.ts-item:hover{background:rgba(240,185,60,.07)}
.ts-name{font-size:17px;font-weight:800;letter-spacing:.5px;color:#ffe9a8;text-shadow:0 0 12px rgba(240,185,60,.35);
  background:linear-gradient(90deg,currentColor 40%,#fff6d8 50%,currentColor 60%);background-size:220% 100%;
  -webkit-background-clip:text;background-clip:text;animation:tsNameShine 2.8s linear infinite}
@keyframes tsNameShine{to{background-position:-220% 0}}
.ts-item:hover .ts-name{filter:brightness(1.25)}
.ts-price{font-size:13px;color:#ff9d5c;font-weight:700;margin-left:auto;white-space:nowrap}
.ts-flag{font-style:normal;font-size:11px;font-weight:700;padding:1px 7px;border-radius:9px;line-height:1.6}
.ts-flag.hot{color:#ffb3a3;background:rgba(200,50,30,.28);border:1px solid rgba(255,110,80,.45)}
.ts-flag.rec{color:#a8d8ff;background:rgba(40,90,180,.28);border:1px solid rgba(100,160,255,.45)}
/* 商品卡/详情 标记徽章 */
.mk-flag{font-style:normal;position:absolute;top:8px;left:8px;font-size:11px;font-weight:800;padding:2px 8px;border-radius:9px;z-index:2;
  box-shadow:0 2px 8px rgba(0,0,0,.4)}
.mk-detail .mk-flag,.mk-modal .mk-flag,h2 .mk-flag,.mk-meta .mk-flag{position:static;display:inline-block;font-size:12px;vertical-align:middle;margin-left:6px}
.mk-flag.hot{color:#ffd0c4;background:linear-gradient(135deg,#a82e18,#d0502e);border:1px solid rgba(255,130,100,.5)}
.mk-flag.rec{color:#cfe6ff;background:linear-gradient(135deg,#1e4e9e,#3a76d6);border:1px solid rgba(120,170,255,.5)}

/* ================= C期·签到图鉴月历 / 加倍卡 ================= */
.ck-dbl{display:flex;align-items:center;gap:6px;font-size:12px;color:#e8c98a;cursor:pointer;user-select:none;padding:8px 12px;border:1px dashed var(--gold3);border-radius:8px;background:rgba(240,185,60,.05)}
.ck-dbl input{accent-color:#f0b93c;cursor:pointer}
.ck-dbl:hover{background:rgba(240,185,60,.12);color:#ffe9a8}
.ck-cal{margin-top:16px;border-top:1px dashed var(--line);padding-top:14px}
.ck-cal-head{font-size:13px;color:#c9b385;margin-bottom:10px;letter-spacing:.5px}
.ck-cal-head b{color:var(--gold2)}
.ck-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.ck-d{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:12px;color:#5a4a2a;background:#120d06;border:1px solid #2a1e0d;border-radius:6px;user-select:none}
.ck-d i{position:absolute;top:1px;right:3px;font-style:normal;font-size:9px;line-height:1}
.ck-d.on{color:#ffe9a8;background:linear-gradient(135deg,#3d2c12,#5a4415);border-color:var(--gold3);font-weight:700}
.ck-d.on i{color:#7ee787;text-shadow:0 0 4px rgba(126,231,135,.6)}
.ck-d.on.rs{border-style:dashed}
.ck-d.on.rs i{color:#8fd3a8}
.ck-d.today{color:#2a1c07;background:linear-gradient(180deg,var(--gold2),var(--gold));font-weight:800;box-shadow:0 0 10px rgba(240,185,60,.4);animation:tsBlink 1.6s ease-in-out infinite}
.ck-d.today i{color:#5a3a08}
.ck-d.miss{color:#a88a58;cursor:pointer;transition:.15s}
.ck-d.miss i{color:#c9a860}
.ck-d.miss:hover{border-color:var(--gold3);background:#2a1e0d;transform:scale(1.06)}
.ck-cal-foot{margin-top:10px;font-size:11px;color:#8a7648;line-height:1.7}

/* ================= C期·积分排行榜 ================= */
.rank-top3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:760px;margin:0 auto 22px}
.rank-card{background:linear-gradient(180deg,#1c1409,#151009);border:1px solid #3d2c12;border-radius:12px;padding:22px 14px 18px;text-align:center;transition:.2s}
.rank-card:hover{transform:translateY(-3px)}
.rk-1{border-color:#f0b93c;box-shadow:0 0 24px rgba(240,185,60,.22);background:linear-gradient(180deg,#2a1e0d,#1c1409)}
.rk-2{border-color:#9aa7b8;box-shadow:0 0 18px rgba(180,200,220,.14)}
.rk-3{border-color:#b5764a;box-shadow:0 0 18px rgba(200,130,80,.14)}
.rk-medal{font-size:34px;line-height:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}
.rk-1 .rk-medal{animation:ltbWobble 2.6s ease-in-out infinite}
.rk-av{width:64px;height:64px;border-radius:50%;border:2px solid #5a4415;margin:12px 0 10px;background:#0d0a06;object-fit:cover}
.rk-1 .rk-av{border-color:#f0b93c;box-shadow:0 0 14px rgba(240,185,60,.45)}
.rk-nick{font-size:15px;font-weight:700;color:#e8d9b0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rk-pts{margin-top:8px;font-size:14px;font-weight:800;color:var(--gold2)}
.rank-rows{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:8px}
.rank-row{display:flex;align-items:center;gap:12px;background:linear-gradient(180deg,#1c1409,#151009);border:1px solid #3d2c12;border-radius:10px;padding:10px 16px;transition:.15s}
.rank-row:hover{border-color:#5a4415;transform:translateX(3px)}
.rk-no{width:34px;text-align:center;font-size:14px;font-weight:800;color:#8a7648;flex-shrink:0}
.rk-av-sm{width:34px;height:34px;border-radius:50%;border:1px solid #5a4415;background:#0d0a06;object-fit:cover;flex-shrink:0}
.rk-nick-sm{flex:1;min-width:0;font-size:14px;color:#e8d9b0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rk-pts-sm{font-size:13px;font-weight:800;color:var(--gold2);flex-shrink:0}
@media (max-width:640px){.rank-top3{grid-template-columns:1fr;gap:10px}}
/* ===== VIP 专属图标徽标（全局统一，放在名字前面，含GM后台） ===== */
/* 三档统一皇冠图标（SVG currentColor 可着色）：月卡银白色 / 季卡黄金色 / 年卡至尊金发光 */
.mk-seller{display:inline-flex;align-items:center;gap:5px;min-width:0}
.mk-seller-nick{font-size:12.5px;color:#e8d9b0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px}
.vbp{display:inline-flex;align-items:center;gap:2px;font-style:normal;font-weight:700;font-size:.95em;line-height:1;white-space:nowrap;flex-shrink:0;vertical-align:middle;margin-right:4px;padding:0;border:none;background:none}
.vbp .crn{display:inline-flex;font-style:normal}
.vbp .crn svg{width:1.25em;height:1.25em;display:block}
/* 月卡：白银色皇冠 + 白色微光 */
.vbp.vm{color:#e8edf7;filter:drop-shadow(0 0 2px rgba(240,245,255,.8)) drop-shadow(0 0 5px rgba(190,205,230,.55))}
/* 季卡：黄金色皇冠 + 金色微光 */
.vbp.vq{color:#f5c542;filter:drop-shadow(0 0 2px rgba(255,230,150,.8)) drop-shadow(0 0 5px rgba(210,150,30,.6))}
/* 年卡：至尊金皇冠 + 发光呼吸 */
.vbp.vy{color:#ffd76a;animation:vyPulse 2.6s ease-in-out infinite}
@keyframes vyPulse{
  0%,100%{filter:drop-shadow(0 0 2px rgba(255,245,215,.7)) drop-shadow(0 0 6px rgba(240,185,60,.85))}
  50%{filter:drop-shadow(0 0 3px rgba(255,250,230,.95)) drop-shadow(0 0 12px rgba(240,185,60,1))}
}

/* ================= C期·求购大厅横向滚动栏 ================= */
.wt-head{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:10px 10px 0 0;margin-top:14px;
  background:linear-gradient(135deg,rgba(14,36,54,.95),rgba(6,20,32,.97));border:1px solid #2e5a7a;border-bottom:none}
.wt-icon{font-size:20px;filter:drop-shadow(0 0 8px rgba(90,168,224,.6));animation:ltbWobble 3s ease-in-out infinite}
.wt-title{font-size:15px;letter-spacing:2px;background:linear-gradient(90deg,#cfeaff,#5aa8e0,#a8d8ff,#5aa8e0,#cfeaff);
  background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:tsGoldFlow 3s linear infinite}
.wt-sub{font-size:12px;color:#9ab8cc}
.wt-post{margin-left:auto;white-space:nowrap}
.wt-track-box{overflow:hidden;border:1px solid #2e5a7a;border-top:1px dashed rgba(90,168,224,.3);border-radius:0 0 10px 10px;
  background:linear-gradient(180deg,rgba(8,18,28,.96),rgba(5,12,20,.98))}
.wt-track{display:flex;gap:10px;padding:12px;overflow-x:auto;scrollbar-width:thin}
.wt-track::-webkit-scrollbar{height:6px}
.wt-track::-webkit-scrollbar-thumb{background:#2e5a7a;border-radius:3px}
.wt-empty{color:#6a8aa0;font-size:13px;padding:8px 4px}
.wt-item{flex-shrink:0;width:260px;background:linear-gradient(180deg,#12202e,#0c1824);border:1px solid #24465e;border-radius:10px;padding:10px 12px;transition:.2s}
.wt-item:hover{border-color:#5aa8e0;transform:translateY(-2px);box-shadow:0 6px 16px rgba(90,168,224,.14)}
.wt-top{display:flex;align-items:center;gap:7px;min-width:0}
.wt-av{width:22px;height:22px;border-radius:50%;border:1px solid #3a5a72;background:#081420;flex-shrink:0}
.wt-nick{font-size:12px;font-weight:700;color:#cfeaff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wt-time{margin-left:auto;font-size:10px;color:#5a7a92;flex-shrink:0}
.wt-del{flex-shrink:0;width:18px;height:18px;border-radius:50%;border:1px solid #5a3a32;background:#2a1a16;color:#e09080;font-size:12px;line-height:1;cursor:pointer;padding:0}
.wt-del:hover{border-color:#e07060;color:#ffb3a3}
.wt-body{margin-top:8px;font-size:12px;color:#a8c4d8;line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:50px}
.wt-qq{margin-top:6px;font-size:11px;color:#7ab8e8}

/* ================= C期·店铺皮肤：商品卡特效边框 ================= */
.mk-card.mk-skin-gold{border-color:#f0b93c;box-shadow:0 0 16px rgba(240,185,60,.35),inset 0 0 12px rgba(240,185,60,.08);
  background:linear-gradient(180deg,#241a08,#1c1409)}
.mk-card.mk-skin-gold:hover{box-shadow:0 0 26px rgba(240,185,60,.55),inset 0 0 16px rgba(240,185,60,.12)}
.mk-card.mk-skin-fire{border-color:#e05030;box-shadow:0 0 16px rgba(230,80,40,.4),inset 0 0 12px rgba(230,80,40,.08);
  background:linear-gradient(180deg,#241008,#1c0f09);animation:skFire 1.8s ease-in-out infinite}
@keyframes skFire{0%,100%{box-shadow:0 0 14px rgba(230,80,40,.35)}50%{box-shadow:0 0 26px rgba(255,110,50,.6)}}
.mk-card.mk-skin-ice{border-color:#58b7ff;box-shadow:0 0 16px rgba(88,183,255,.35),inset 0 0 12px rgba(88,183,255,.08);
  background:linear-gradient(180deg,#0c1a26,#0a141d)}
.mk-card.mk-skin-ice:hover{box-shadow:0 0 26px rgba(88,183,255,.55),inset 0 0 16px rgba(88,183,255,.12)}
.mk-card.mk-skin-purple{border-color:#b06ae8;box-shadow:0 0 16px rgba(176,106,232,.38),inset 0 0 12px rgba(176,106,232,.08);
  background:linear-gradient(180deg,#1c1024,#150d1c)}
.mk-card.mk-skin-purple:hover{box-shadow:0 0 26px rgba(176,106,232,.58),inset 0 0 16px rgba(176,106,232,.12)}

/* C期·卖家中心皮肤购买区 */
.sk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.sk-item{background:#120d06;border:1px solid #3d2c12;border-radius:10px;padding:12px;text-align:center;transition:.15s}
.sk-item:hover{border-color:#5a4415}
.sk-item.on{border-color:#f0b93c;box-shadow:0 0 12px rgba(240,185,60,.2)}
.sk-preview{height:64px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#1c1409,#151009)}
.sk-preview span{font-size:28px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}
.sk-preview.mk-skin-gold{border:2px solid #f0b93c;box-shadow:0 0 12px rgba(240,185,60,.4)}
.sk-preview.mk-skin-fire{border:2px solid #e05030;box-shadow:0 0 12px rgba(230,80,40,.45);animation:skFire 1.8s ease-in-out infinite}
.sk-preview.mk-skin-ice{border:2px solid #58b7ff;box-shadow:0 0 12px rgba(88,183,255,.4)}
.sk-preview.mk-skin-purple{border:2px solid #b06ae8;box-shadow:0 0 12px rgba(176,106,232,.42)}
.sk-name{margin-top:8px;font-size:13px;font-weight:700;color:#e8d9b0}
.sk-desc{margin-top:3px;font-size:11px;color:#8a7648}
.sk-cur{padding:1px 8px;border-radius:8px;font-size:12px}
.sk-cur.sk-gold{color:#ffe9a8;background:rgba(240,185,60,.14)}
.sk-cur.sk-fire{color:#ffb3a3;background:rgba(230,80,40,.14)}
.sk-cur.sk-ice{color:#a8d8ff;background:rgba(88,183,255,.14)}
.sk-cur.sk-purple{color:#d8b3ff;background:rgba(176,106,232,.14)}
/* 首页热度位：火焰流光特效大字 */
#heatSlotBar{margin:14px 0 0;border-radius:12px;overflow:hidden;border:1px solid rgba(240,120,40,.5);
  background:linear-gradient(135deg,rgba(70,22,4,.94),rgba(30,10,2,.97));box-shadow:0 4px 20px rgba(240,90,20,.12),inset 0 0 30px rgba(255,120,30,.06)}
.hs-head{display:flex;align-items:center;gap:8px;padding:9px 16px;border-bottom:1px dashed rgba(255,130,60,.28)}
.hs-fire{font-size:18px;animation:flick 1.1s ease-in-out infinite alternate;filter:drop-shadow(0 0 8px rgba(255,120,30,.8))}
.hs-head b{font-size:14.5px;letter-spacing:2px;background:linear-gradient(90deg,#ffb37e,#ff7a3c,#ffd0a0,#ff7a3c,#ffb37e);
  background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:tsGoldFlow 2.6s linear infinite}
.hs-sub{font-size:11.5px;color:#c98a5e}
.hs-list{display:flex;gap:10px;padding:12px 16px;flex-wrap:wrap}
.hs-item{flex:1;min-width:220px;display:flex;align-items:center;gap:9px;padding:10px 14px;border-radius:10px;text-decoration:none;
  background:linear-gradient(135deg,rgba(255,110,40,.10),rgba(255,80,20,.04));border:1px solid rgba(255,120,50,.28);
  transition:all .22s;position:relative;overflow:hidden}
.hs-item::after{content:'';position:absolute;top:0;left:-70%;width:45%;height:100%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,190,120,.16),transparent);animation:ltbShine 2.8s linear infinite}
.hs-item:hover{border-color:#ff8a4e;transform:translateY(-2px);box-shadow:0 6px 20px rgba(255,110,40,.3)}
.hs-rank{font-size:20px;flex-shrink:0;filter:drop-shadow(0 0 6px rgba(255,150,60,.6))}
.hs-name{font-size:15.5px;font-weight:800;color:#ffc9a0;letter-spacing:.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  text-shadow:0 0 14px rgba(255,120,40,.45);animation:hsNamePulse 2.2s ease-in-out infinite}
@keyframes hsNamePulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.35)}}
@media (max-width:640px){.hs-list{flex-direction:column}.hs-item{min-width:0}}
/* 卖家中心推广：状态徽章 + 弹窗行 */
.pm-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:9px}
.pm-badge.top{color:#ffe9a8;background:rgba(150,110,20,.25);border:1px solid rgba(240,185,60,.4)}
.pm-badge.hot{color:#ffb3a3;background:rgba(200,50,30,.22);border:1px solid rgba(255,110,80,.4)}
.pm-badge.rec{color:#a8d8ff;background:rgba(40,90,180,.22);border:1px solid rgba(100,160,255,.4)}
.pm-badge.heat{color:#ffc9a0;background:rgba(220,90,20,.22);border:1px solid rgba(255,140,60,.4)}
.pm-row{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px dashed rgba(240,185,60,.18)}
.pm-row:last-of-type{border-bottom:none}
/* ===== 二期·教程打赏 ===== */
.tp-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding-top:10px;border-top:1px dashed rgba(240,185,60,.18)}
.tp-stat{font-size:12px;color:#8a7648}
.tp-btn{padding:6px 16px;border:1px solid rgba(255,140,160,.5);border-radius:16px;background:linear-gradient(135deg,#3a1f28,#2a1520);color:#ff9eb0;font-size:13px;font-weight:700;cursor:pointer;transition:.2s}
.tp-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(255,120,150,.3);border-color:#ff9eb0}
.tp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.tp-opt{padding:12px 8px;border:1px solid rgba(255,140,160,.4);border-radius:10px;background:linear-gradient(135deg,#3a1f28,#241118);color:#ff9eb0;font-size:15px;font-weight:700;cursor:pointer;transition:.2s;display:flex;flex-direction:column;gap:3px;align-items:center}
.tp-opt span{font-size:11px;font-weight:400;color:#c9909a}
.tp-opt:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(255,120,150,.28);border-color:#ff9eb0;color:#ffc2cd}
.tp-opt:disabled{cursor:not-allowed;transform:none;box-shadow:none}

/* 页面间平滑过渡：Chrome/Edge 126+ 整页切换淡入淡出，其他浏览器自动忽略无副作用 */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vtOut .16s ease both}
::view-transition-new(root){animation:vtIn .22s ease both}
@keyframes vtOut{to{opacity:0}}
@keyframes vtIn{from{opacity:0}}
