/* ============================================
   mb2 应用商店风主题 · 原创设计系统
   主色 绿 #28a745 / 强调 橙 #ff7900
   深绿顶栏 + 横滑图标流 + 悬浮卡片 + 吸底下载条
   ============================================ */
:root{
  --g:#28a745;--g-dk:#1e7e34;--g-deep:#0f3d2e;
  --or:#ff7900;--or-dk:#e56c00;
  --ink:#1c2b23;--mut:#6c7f74;--faint:#93a69b;
  --bg:#eef3f0;--card:#ffffff;--line:#e2eae5;
  --blue:#2f86f6;--purple:#8f5df1;
  --r-s:10px;--r-m:16px;--r-l:24px;
  --sh-1:0 1px 3px rgba(15,61,46,.08);
  --sh-2:0 8px 24px rgba(15,61,46,.12);
  --sh-3:0 16px 40px rgba(15,61,46,.18);
  --ease:cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Microsoft YaHei",-apple-system,"PingFang SC",sans-serif;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;border:0}
a{color:inherit;text-decoration:none;transition:color .2s var(--ease)}
a:hover{color:var(--g);text-decoration:none}
h1,h2,h3,h4{margin:0}
ul{margin:0;padding:0;list-style:none}
main.container{padding-top:16px;padding-bottom:32px}
::selection{background:rgba(40,167,69,.2)}

/* ---------- 顶部深绿栏 ---------- */
.m2-top{position:sticky;top:0;z-index:900;background:linear-gradient(120deg,var(--g-deep) 0%,#14532f 55%,var(--g-dk) 100%);box-shadow:0 2px 12px rgba(15,61,46,.35)}
.m2-top-in{display:flex;align-items:center;gap:24px;height:64px}
.m2-brand{display:flex;align-items:center;gap:10px;flex-shrink:0}
.m2-brand img{width:38px;height:38px;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.m2-brand-txt{display:flex;flex-direction:column;line-height:1.25}
.m2-brand-txt b{font-size:17px;color:#fff;letter-spacing:.5px}
.m2-brand-txt i{font-style:normal;font-size:11px;color:rgba(255,255,255,.6)}
.m2-nav{display:flex;gap:4px;flex:1;overflow-x:auto;scrollbar-width:none}
.m2-nav::-webkit-scrollbar{display:none}
.m2-nav a{flex-shrink:0;padding:6px 16px;border-radius:99px;color:rgba(255,255,255,.82);font-size:14px;transition:all .2s var(--ease)}
.m2-nav a:hover{background:rgba(255,255,255,.12);color:#fff}
.m2-nav a.on{background:var(--or);color:#fff;font-weight:600;box-shadow:0 3px 10px rgba(255,121,0,.4)}
.m2-search{display:flex;flex-shrink:0;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);border-radius:99px;overflow:hidden;transition:all .25s var(--ease)}
.m2-search:focus-within{background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.25)}
.m2-search input{border:0;background:transparent;padding:8px 16px;width:190px;font-size:13px;color:#fff;outline:none}
.m2-search input::placeholder{color:rgba(255,255,255,.55)}
.m2-search:focus-within input{color:var(--ink)}
.m2-search:focus-within input::placeholder{color:var(--faint)}
.m2-search button{border:0;background:transparent;width:40px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.m2-search button svg{width:17px;height:17px;fill:rgba(255,255,255,.8)}
.m2-search:focus-within button svg{fill:var(--g)}

/* ---------- 面包屑 ---------- */
.m2-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:var(--mut);margin-bottom:14px}
.m2-crumbs a{color:var(--mut)}
.m2-crumbs a:hover{color:var(--g)}
.m2-crumbs .sep{color:var(--faint)}
.m2-crumbs>span:last-child{color:var(--ink)}

/* ---------- 通用卡片区块 ---------- */
.m2-card{background:var(--card);border-radius:var(--r-l);box-shadow:var(--sh-1);padding:24px;margin-bottom:20px;transition:box-shadow .25s var(--ease)}
.m2-sec-hd{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.m2-sec-ico{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.m2-sec-ico svg{width:20px;height:20px;fill:#fff}
.m2-sec-ico.g{background:linear-gradient(135deg,#34ce57,var(--g-dk))}
.m2-sec-ico.o{background:linear-gradient(135deg,#ffa54d,var(--or-dk))}
.m2-sec-ico.b{background:linear-gradient(135deg,#5ea5ff,#1c6fe0)}
.m2-sec-ico.p{background:linear-gradient(135deg,#b48bff,#7440e0)}
.m2-sec-ico.r{background:linear-gradient(135deg,#ff7b9c,#e83e6e)}
.m2-sec-tit{flex:1;min-width:0}
.m2-sec-tit h2{font-size:18px;font-weight:800;line-height:1.3}
.m2-sec-tit small{display:block;font-size:12px;color:var(--faint);margin-top:1px}
.m2-more{flex-shrink:0;font-size:12px;color:var(--mut);padding:5px 14px;border:1px solid var(--line);border-radius:99px;transition:all .2s var(--ease)}
.m2-more:hover{background:var(--g);border-color:var(--g);color:#fff;transform:translateX(2px)}

/* ---------- 首页：今日主打 ---------- */
.heroapp{position:relative;overflow:hidden;border-radius:var(--r-l);background:linear-gradient(115deg,#0f3d2e 0%,#17603f 45%,#239152 100%);color:#fff;padding:32px;margin-bottom:20px;box-shadow:var(--sh-3)}
.heroapp::before{content:"";position:absolute;right:-80px;top:-80px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.14),transparent 70%)}
.heroapp::after{content:"";position:absolute;left:-60px;bottom:-100px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(255,121,0,.25),transparent 70%)}
.heroapp-in{position:relative;z-index:1;display:flex;align-items:center;gap:24px}
.heroapp-ic{width:110px;height:110px;border-radius:28px;overflow:hidden;flex-shrink:0;border:3px solid rgba(255,255,255,.35);box-shadow:0 12px 32px rgba(0,0,0,.35)}
.heroapp-ic img{width:100%;height:100%;object-fit:cover}
.heroapp-info{flex:1;min-width:0}
.heroapp-tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:2px;background:var(--or);padding:3px 12px;border-radius:99px;margin-bottom:8px}
.heroapp-info h2{font-size:24px;font-weight:800;text-shadow:0 2px 8px rgba(0,0,0,.3)}
.heroapp-desc{margin-top:6px;font-size:13px;color:rgba(255,255,255,.78);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.heroapp-dl{flex-shrink:0;display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--or),#ffa54d);color:#fff;font-weight:700;font-size:15px;padding:13px 34px;border-radius:99px;box-shadow:0 8px 24px rgba(255,121,0,.45);transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.heroapp-dl svg{width:18px;height:18px;fill:#fff}
.heroapp-dl:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 14px 32px rgba(255,121,0,.6);color:#fff}

/* ---------- 横滑图标流 ---------- */
.rail{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.rail::-webkit-scrollbar{height:5px}
.rail::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.rail::-webkit-scrollbar-thumb:hover{background:var(--faint)}
.appcard{scroll-snap-align:start;flex:0 0 96px;text-align:center}
.appcard-ic{display:block;width:76px;height:76px;margin:0 auto;border-radius:20px;overflow:hidden;box-shadow:var(--sh-1);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.appcard-ic img{width:100%;height:100%;object-fit:cover}
.appcard:hover .appcard-ic{transform:translateY(-4px) scale(1.05);box-shadow:var(--sh-2)}
.appcard-nm{display:block;margin-top:8px;font-size:13px;font-weight:600;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.appcard-meta{display:block;font-size:11px;color:var(--faint);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 桌面端：图标流变网格 */
@media (min-width:768px){
  .rail{display:grid;grid-template-columns:repeat(6,1fr);gap:18px 10px;overflow:visible;padding-bottom:4px}
  .appcard{flex:none;width:auto}
  .appcard-ic{width:84px;height:84px;border-radius:22px}
}
@media (min-width:1200px){.rail{grid-template-columns:repeat(8,1fr)}}

/* ---------- 列表行（更新/排行/最新） ---------- */
.lirow{display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:var(--r-m);transition:background .2s var(--ease)}
.lirow:hover{background:#f4f9f5}
.lirow-ic{width:52px;height:52px;border-radius:14px;overflow:hidden;flex-shrink:0;box-shadow:var(--sh-1)}
.lirow-ic img{width:100%;height:100%;object-fit:cover}
.lirow-bd{flex:1;min-width:0}
.lirow-nm{display:block;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lirow-mt{display:block;font-size:12px;color:var(--faint);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lirow-btn{flex-shrink:0;font-size:12px;font-weight:600;color:var(--g);border:1px solid var(--g);padding:4px 16px;border-radius:99px;transition:all .2s var(--ease)}
.lirow:hover .lirow-btn,.lirow-btn:hover{background:var(--g);color:#fff}
.uplist{display:grid;gap:2px}
@media (min-width:768px){.uplist{grid-template-columns:1fr 1fr;gap:2px 24px}}

/* ---------- 选项卡 ---------- */
.m2-tabs{display:flex;gap:6px;background:#eef4f0;padding:4px;border-radius:99px}
.m2-tabs a{padding:5px 18px;border-radius:99px;font-size:13px;color:var(--mut);cursor:pointer;transition:all .2s var(--ease)}
.m2-tabs a.on{background:var(--g);color:#fff;font-weight:600;box-shadow:0 3px 10px rgba(40,167,69,.35)}
.m2-panel{display:none}
.m2-panel.show{display:block}

/* ---------- 排行领奖台 ---------- */
.pod{display:flex;flex-direction:column;gap:4px}
.pod-row{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:var(--r-m);transition:background .2s var(--ease)}
.pod-row:hover{background:#f4f9f5}
.pod-no{width:26px;height:26px;border-radius:9px;background:#e6ede9;color:var(--mut);font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pod-row:nth-child(1) .pod-no{background:linear-gradient(135deg,#ffd76e,#f0a500);color:#7a4d00}
.pod-row:nth-child(2) .pod-no{background:linear-gradient(135deg,#e8eef2,#b9c6cf);color:#4d5b66}
.pod-row:nth-child(3) .pod-no{background:linear-gradient(135deg,#f5c19b,#d98a4f);color:#6b3a15}
.pod-ic{width:44px;height:44px;border-radius:12px;overflow:hidden;flex-shrink:0;box-shadow:var(--sh-1)}
.pod-ic img{width:100%;height:100%;object-fit:cover}
.pod-bd{flex:1;min-width:0}
.pod-nm{display:block;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pod-mt{display:block;font-size:11px;color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- 专题大卡 ---------- */
.tpgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media (min-width:768px){.tpgrid{grid-template-columns:repeat(4,1fr)}}
.tpcard{position:relative;display:block;border-radius:var(--r-m);overflow:hidden;aspect-ratio:16/9;box-shadow:var(--sh-1)}
.tpcard img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.tpcard:hover img{transform:scale(1.08)}
.tpcard-nm{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 10px;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.72));text-shadow:0 1px 4px rgba(0,0,0,.5)}

/* ---------- 对比卡 ---------- */
.vsgrid{display:grid;grid-template-columns:repeat(1,1fr);gap:12px}
@media (min-width:768px){.vsgrid{grid-template-columns:repeat(3,1fr)}}
.vscard{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-m);font-size:13px;font-weight:600;transition:all .2s var(--ease);overflow:hidden}
.vscard:hover{border-color:var(--or);box-shadow:0 6px 18px rgba(255,121,0,.15);transform:translateY(-2px)}
.vscard .vsb,.vscard .vsicon_l,.vscard .vsicon_r{flex-shrink:0;width:32px;height:32px;border-radius:50%;color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;letter-spacing:.5px;overflow:hidden}
.vscard .vsb{background:linear-gradient(135deg,var(--or),#ffb066)}
.vscard .vsicon_l,.vscard .vsicon_r{background:#f4f4f4;border:1px solid var(--line)}
.vscard .vsicon_l img,.vscard .vsicon_r img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.vscard .vstxt{flex:1;min-width:0;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- 友情链接 ---------- */
.flink{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:12px;color:var(--mut)}
.flink .lb{font-weight:700;color:var(--ink)}
.flink a:hover{color:var(--g)}

/* ---------- 列表页：筛选胶囊 ---------- */
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.chip{padding:6px 18px;border:1px solid var(--line);border-radius:99px;font-size:13px;color:var(--mut);background:#fff;transition:all .2s var(--ease)}
.chip:hover{border-color:var(--g);color:var(--g);transform:translateY(-1px)}
.chip.on{background:var(--g);border-color:var(--g);color:#fff;font-weight:600;box-shadow:0 4px 12px rgba(40,167,69,.3)}

/* ---------- 列表页：应用行 ---------- */
.alist{display:grid;gap:4px}
.arow{display:flex;align-items:center;gap:14px;padding:12px 10px;border-radius:var(--r-m);transition:background .2s var(--ease)}
.arow:hover{background:#f4f9f5}
.arow-ic{width:60px;height:60px;border-radius:16px;overflow:hidden;flex-shrink:0;box-shadow:var(--sh-1)}
.arow-ic img{width:100%;height:100%;object-fit:cover}
.arow-bd{flex:1;min-width:0}
.arow-nm{display:block;font-size:15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arow-mt{display:block;font-size:12px;color:var(--faint);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arow-dl{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--g),#34ce57);padding:7px 20px;border-radius:99px;box-shadow:0 4px 12px rgba(40,167,69,.28);transition:all .2s var(--ease)}
.arow-dl svg{width:13px;height:13px;fill:#fff}
.arow-dl:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(40,167,69,.4);color:#fff}
.arow-dl.b{background:linear-gradient(135deg,var(--blue),#5ea5ff);box-shadow:0 4px 12px rgba(47,134,246,.28)}
.arow-dl.b:hover{box-shadow:0 8px 18px rgba(47,134,246,.4)}

/* ---------- 分页 ---------- */
.pgbar{margin-top:22px}
.pgbar .pagination{gap:6px}
.pgbar .page-link{border:1px solid var(--line);border-radius:10px !important;color:var(--mut);font-size:13px;padding:7px 14px;background:#fff;transition:all .2s var(--ease)}
.pgbar .page-link:hover{border-color:var(--g);color:var(--g);background:#f4f9f5}
.pgbar .page-item.active .page-link{background:var(--g);border-color:var(--g);color:#fff;box-shadow:0 4px 12px rgba(40,167,69,.3)}

/* ---------- 空状态 ---------- */
.m2-empty{text-align:center;padding:48px 0;color:var(--faint);font-size:13px}
.m2-empty svg{width:44px;height:44px;fill:var(--line);display:block;margin:0 auto 12px}

/* ---------- 详情页：悬浮主卡 ---------- */
.dhero{position:relative;background:var(--card);border-radius:var(--r-l);box-shadow:var(--sh-2);padding:28px;margin-bottom:20px;overflow:hidden}
.dhero::before{content:"";position:absolute;left:0;top:0;right:0;height:5px;background:linear-gradient(90deg,var(--g),#7ed492,var(--or))}
.dhero-in{position:relative;display:flex;gap:24px;align-items:flex-start}
.dhero-ic{width:108px;height:108px;border-radius:26px;overflow:hidden;flex-shrink:0;box-shadow:var(--sh-2);border:3px solid #fff}
.dhero-ic img{width:100%;height:100%;object-fit:cover}
.dhero-bd{flex:1;min-width:0}
.dhero-bd h1{font-size:24px;font-weight:800;line-height:1.35}
.dhero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.dhero-tags a{font-size:12px;padding:3px 12px;border-radius:99px;background:#eef4f0;color:var(--g-dk);transition:all .2s var(--ease)}
.dhero-tags a:hover{background:var(--g);color:#fff}
.dhero-facts{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:12px;font-size:13px;color:var(--mut)}
.dhero-facts em{font-style:normal;color:var(--faint);margin-right:3px}
.dhero-side{flex-shrink:0;text-align:center}
.dlbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--or),#ffa54d);color:#fff;font-size:16px;font-weight:800;padding:14px 40px;border-radius:99px;box-shadow:0 8px 24px rgba(255,121,0,.4);transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.dlbtn svg{width:19px;height:19px;fill:#fff}
.dlbtn:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(255,121,0,.55);color:#fff}
.dlbtn:active{transform:scale(.96)}
.qrbox{display:none;margin-top:12px;font-size:12px;color:var(--faint)}
.qrbox.show{display:block;animation:m2QrIn .25s var(--ease)}
@keyframes m2QrIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.qrbox img{width:86px;height:86px;padding:5px;background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:4px}
.dhero-note{margin-top:10px;font-size:12px;color:var(--faint);letter-spacing:1px}

/* 详情双栏 */
.dcols{display:grid;gap:20px}
@media (min-width:992px){.dcols{grid-template-columns:minmax(0,1fr) 320px}}
.dcols>*{min-width:0}

/* 截图横滑 */
.shotrail{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.shotrail::-webkit-scrollbar{height:5px}
.shotrail::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.shot{scroll-snap-align:start;flex-shrink:0;height:300px;border-radius:var(--r-m);overflow:hidden;box-shadow:var(--sh-1);background:#0e1620}
.shot img{height:100%;width:auto;max-width:none;display:block}
.shotnav{display:flex;gap:8px}
.shotnav button{width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:50%;color:var(--mut);font-size:17px;line-height:1;cursor:pointer;transition:all .2s var(--ease)}
.shotnav button:hover:not(:disabled){background:var(--g);border-color:var(--g);color:#fff}
.shotnav button:disabled{opacity:.35;cursor:not-allowed}

/* 详细信息网格 */
.specgrid{display:grid;gap:10px;grid-template-columns:1fr}
@media (min-width:576px){.specgrid{grid-template-columns:1fr 1fr}}
@media (min-width:992px){.specgrid{grid-template-columns:repeat(3,1fr)}}
.specgrid li{background:#f6faf7;border:1px solid var(--line);border-radius:var(--r-s);padding:10px 14px;font-size:13px;color:var(--mut)}
.specgrid li em{font-style:normal;color:var(--g);font-weight:600;cursor:pointer}
.spec-tit{font-size:15px;font-weight:800;margin:22px 0 12px;padding-left:12px;border-left:4px solid var(--g);border-radius:2px}

/* 正文排版 */
.prose{font-size:14px;line-height:1.85;color:var(--ink)}
.prose img{border-radius:var(--r-s);margin:8px auto;display:block}
.prose p{margin:0 0 12px}
.prose h2,.prose h3{font-weight:800; font-size:18px;margin:18px 0 10px}
.prose table{width:100%;border-collapse:collapse;margin:12px 0;font-size:13px}
.prose th,.prose td{border:1px solid var(--line);padding:8px 12px}
.prose th{background:#f4f9f5}

/* 评论 */
.cmt2{display:flex;gap:12px;padding:14px 0;border-bottom:1px dashed var(--line)}
.cmt2:last-of-type{border-bottom:0}
.cmt2-ava{width:42px;height:42px;border-radius:50%;overflow:hidden;flex-shrink:0}
.cmt2-ava img{width:100%;height:100%;object-fit:cover}
.cmt2-bd{flex:1;min-width:0}
.cmt2-hd{font-size:13px;font-weight:700;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cmt2-hd small{font-weight:400;color:var(--faint)}
.cmt2-like{margin-left:auto;font-size:12px;color:var(--faint)}
.cmt2-tx{margin-top:6px;font-size:13px;color:var(--ink)}
.cmt2-form{margin-top:16px;background:#f6faf7;border:1px solid var(--line);border-radius:var(--r-m);padding:16px}
.cmt2-form h4{font-size:14px;font-weight:800;margin-bottom:10px}
.cmt2-form textarea{width:100%;min-height:80px;border:1px solid var(--line);border-radius:var(--r-s);padding:10px 12px;font-size:13px;font-family:inherit;resize:vertical;outline:none;transition:border .2s}
.cmt2-form textarea:focus{border-color:var(--g)}
.cmt2-form button{margin-top:10px;border:0;background:linear-gradient(135deg,var(--g),#34ce57);color:#fff;font-size:13px;font-weight:700;padding:8px 28px;border-radius:99px;cursor:pointer;box-shadow:0 4px 12px rgba(40,167,69,.3)}

/* 相关推荐行 */
.relrow{display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:var(--r-m);transition:background .2s var(--ease)}
.relrow:hover{background:#f4f9f5}
.relrow-ic{width:52px;height:52px;border-radius:14px;overflow:hidden;flex-shrink:0;box-shadow:var(--sh-1)}
.relrow-ic img{width:100%;height:100%;object-fit:cover}
.relrow-bd{flex:1;min-width:0}
.relrow-nm{display:block;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.relrow-mt{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--faint);margin-top:2px}
.relrow-mt .stars{color:#f5a623;letter-spacing:1px}
.relrow-dl{flex-shrink:0;font-size:12px;font-weight:700;color:var(--or);border:1px solid var(--or);padding:4px 16px;border-radius:99px;transition:all .2s var(--ease)}
.relrow:hover .relrow-dl,.relrow-dl:hover{background:var(--or);color:#fff}

/* 猜你喜欢网格 */
.ggrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px 10px}
@media (min-width:576px){.ggrid{grid-template-columns:repeat(4,1fr)}}
@media (min-width:768px){.ggrid{grid-template-columns:repeat(5,1fr)}}
.gcell{text-align:center}
.gcell-ic{display:block;width:64px;height:64px;margin:0 auto;border-radius:16px;overflow:hidden;box-shadow:var(--sh-1);transition:transform .25s var(--ease)}
.gcell-ic img{width:100%;height:100%;object-fit:cover}
.gcell:hover .gcell-ic{transform:translateY(-3px) scale(1.05)}
.gcell-nm{display:block;margin-top:7px;font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gcell-mt{display:block;font-size:11px;color:var(--faint);margin-top:1px}

/* 举报按钮 */
.m2-report{font-size:12px;color:var(--faint);border:1px solid var(--line);background:#fff;border-radius:99px;padding:4px 14px;cursor:pointer;transition:all .2s var(--ease)}
.m2-report:hover{color:var(--or);border-color:var(--or)}

/* 移动端吸底下载条 */
.stk-dl{position:fixed;left:0;right:0;bottom:0;z-index:850;display:none;align-items:center;gap:10px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);padding:10px 14px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -4px 20px rgba(15,61,46,.15);transform:translateY(110%);transition:transform .3s var(--ease)}
.stk-dl.show{transform:translateY(0)}
.stk-dl-ic{width:40px;height:40px;border-radius:11px;overflow:hidden;flex-shrink:0}
.stk-dl-ic img{width:100%;height:100%;object-fit:cover}
.stk-dl-nm{flex:1;min-width:0;font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stk-dl .dlbtn{padding:9px 26px;font-size:13px}
@media (max-width:767px){.stk-dl{display:flex}}

/* ---------- 专辑简介头 ---------- */
.tphero{display:flex;align-items:center;gap:20px;background:linear-gradient(115deg,#2b1a4e,#5b3aa8 60%,#8f5df1);border-radius:var(--r-l);padding:26px;color:#fff;margin-bottom:20px;box-shadow:var(--sh-2)}
.tphero-pic{width:88px;height:88px;border-radius:22px;overflow:hidden;flex-shrink:0;border:3px solid rgba(255,255,255,.3);box-shadow:0 8px 24px rgba(0,0,0,.3)}
.tphero-pic img{width:100%;height:100%;object-fit:cover}
.tphero h1{font-size:21px;font-weight:800}
.tphero-desc{margin-top:6px;font-size:13px;color:rgba(255,255,255,.8);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tphero-cnt{margin-top:8px;font-size:13px}
.tphero-cnt b{color:#ffd76e;font-size:18px;font-weight:800;margin:0 2px}

/* 专辑墙 */
.tpwall{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media (min-width:576px){.tpwall{grid-template-columns:repeat(3,1fr)}}
@media (min-width:768px){.tpwall{grid-template-columns:repeat(4,1fr)}}
.tpwall-item{position:relative;display:block;border-radius:var(--r-m);overflow:hidden;aspect-ratio:16/10;box-shadow:var(--sh-1)}
.tpwall-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.tpwall-item:hover img{transform:scale(1.07)}
.tpwall-info{position:absolute;left:0;right:0;bottom:0;padding:24px 12px 9px;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff}
.tpwall-nm{display:block;font-size:13px;font-weight:700}
.tpwall-ct{display:block;font-size:11px;color:rgba(255,255,255,.75)}

/* ---------- 文章 ---------- */
.apost{background:var(--card);border-radius:var(--r-l);box-shadow:var(--sh-1);padding:32px;margin-bottom:20px}
.apost h1{font-size:22px;font-weight:800;line-height:1.45}
.apost-meta{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;font-size:12px;color:var(--faint);padding-bottom:14px;border-bottom:1px solid var(--line)}
.apost-intro{margin:16px 0;background:#f6faf7;border-left:4px solid var(--g);border-radius:0 var(--r-s) var(--r-s) 0;padding:12px 16px;font-size:13px;color:var(--mut)}
.apost-tags{margin-top:18px;padding-top:14px;border-top:1px dashed var(--line);font-size:13px;color:var(--mut);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.apost-tags a{padding:3px 12px;background:#eef4f0;border-radius:99px;font-size:12px;color:var(--g-dk)}
.apost-tags a:hover{background:var(--g);color:#fff}
.apost-pn{display:grid;gap:8px;margin-top:20px;font-size:13px}
.apost-pn>div{background:#f6faf7;border-radius:var(--r-s);padding:10px 16px;color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apost-pn a{color:var(--ink);font-weight:600}
.apost-pn a:hover{color:var(--g)}
/* 文章列表项 */
.apitem{display:flex;gap:16px;padding:16px 8px;border-bottom:1px dashed var(--line);transition:background .2s}
.apitem:hover{background:#f9fcfa}
.apitem:last-child{border-bottom:0}
.apitem-thumb{width:150px;aspect-ratio:16/10;border-radius:var(--r-s);overflow:hidden;flex-shrink:0}
.apitem-thumb img{width:100%;height:100%;object-fit:cover}
.apitem-bd{flex:1;min-width:0;display:flex;flex-direction:column}
.apitem-tit{font-size:16px;font-weight:700;line-height:1.4}
.apitem-tit a{color:var(--ink)}
.apitem-tit a:hover{color:var(--g)}
.apitem-desc{margin-top:6px;font-size:13px;color:var(--mut);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.apitem-meta{margin-top:auto;padding-top:8px;font-size:12px;color:var(--faint);display:flex;gap:14px;flex-wrap:wrap}
.apitem-meta a{color:var(--faint)}
.apitem-meta a:hover{color:var(--g)}
@media (max-width:575px){.apitem-thumb{width:110px}}
/* 相关文章 */
.arelink{display:flex;justify-content:space-between;gap:14px;padding:9px 4px;font-size:13px;border-bottom:1px dashed var(--line)}
.arelink:last-child{border-bottom:0}
.arelink span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arelink .d{color:var(--faint);flex-shrink:0}

/* 侧栏 */
.widget{background:var(--card);border-radius:var(--r-l);box-shadow:var(--sh-1);padding:20px;margin-bottom:20px}
.wrow{display:flex;align-items:center;gap:10px;padding:8px 4px;border-radius:10px;transition:background .2s}
.wrow:hover{background:#f4f9f5}
.wrow .no{width:22px;height:22px;border-radius:8px;background:#e6ede9;color:var(--mut);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.wrow .no.on{background:linear-gradient(135deg,var(--or),#ffa54d);color:#fff}
.wrow .tt{flex:1;min-width:0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wrow .d{font-size:11px;color:var(--faint);flex-shrink:0}
.tagcloud{display:flex;flex-wrap:wrap;gap:8px}
.tagcloud a{font-size:12px;padding:4px 12px;background:#eef4f0;border-radius:99px;color:var(--mut);transition:all .2s}
.tagcloud a:hover{background:var(--g);color:#fff;transform:translateY(-1px)}

/* 双栏布局（文章/单页） */
.m2-cols{display:grid;gap:20px}
@media (min-width:992px){.m2-cols{grid-template-columns:minmax(0,1fr) 320px}}
.m2-cols>*{min-width:0}

/* 单页导航 */
.pnav{display:flex;flex-direction:column;gap:4px}
.pnav a{padding:10px 16px;border-radius:var(--r-s);font-size:13px;color:var(--mut);transition:all .2s var(--ease)}
.pnav a:hover{background:#f4f9f5;color:var(--g)}
.pnav a.on{background:linear-gradient(135deg,var(--g),#34ce57);color:#fff;font-weight:700;box-shadow:0 4px 12px rgba(40,167,69,.3)}

/* ---------- 对比页 ---------- */
.versus{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:stretch}
.vpanel{border-radius:var(--r-m);padding:24px 18px;text-align:center;color:#fff;position:relative;overflow:hidden}
.vpanel.g1{background:linear-gradient(160deg,#0f3d2e,#1e7e34)}
.vpanel.g2{background:linear-gradient(160deg,#4e2c0a,#e56c00)}
.vpanel-ic{display:block;width:112px;height:112px;border-radius:16px;overflow:hidden;margin:0 auto;border:2px solid rgba(255,255,255,.4);box-shadow:0 6px 16px rgba(0,0,0,.25)}
.vpanel-ic img{width:100%;height:100%;object-fit:cover}
.vpanel-nm{margin-top:12px;font-size:16px;font-weight:800}
.vpanel-stars{margin-top:6px;color:#ffd76e;letter-spacing:2px;font-size:14px}
.vpanel-score{margin-top:4px;font-size:26px;font-weight:800}
.vpanel-ins{margin-top:4px;font-size:12px;color:rgba(255,255,255,.75)}
.vpanel .dlbtn{margin-top:14px;padding:10px 28px;font-size:13px;background:#fff;color:var(--g-dk);box-shadow:0 6px 16px rgba(0,0,0,.25)}
.vpanel.g2 .dlbtn{color:var(--or-dk)}
.vpanel .dlbtn svg{fill:currentColor}
.vsmid{align-self:center;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--or),#ffb066);color:#fff;font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(255,121,0,.45);letter-spacing:1px}
@media (max-width:575px){.versus{grid-template-columns:1fr}.vsmid{margin:0 auto}}
.vtable{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border-radius:var(--r-m);overflow:hidden}
.vtable th,.vtable td{padding:11px 14px;border:1px solid var(--line);text-align:center}
.vtable thead th{background:linear-gradient(135deg,#0f3d2e,#1e7e34);color:#fff;font-weight:700;border-color:rgba(255,255,255,.12)}
.vtable td:first-child{background:#f6faf7;font-weight:700;color:var(--mut);width:120px}
.vbadge{display:inline-block;min-width:44px;padding:2px 10px;border-radius:99px;color:#fff;font-weight:800;font-size:13px}
.vbadge.g1{background:var(--g)}
.vbadge.g2{background:var(--or)}
.vdetail-grid{display:grid;gap:20px}
@media (min-width:992px){.vdetail-grid{grid-template-columns:1fr 1fr}}

/* ---------- 404 ---------- */
.p404{text-align:center;padding:70px 0 60px}
.p404-code{font-size:110px;font-weight:800;line-height:1;background:linear-gradient(135deg,var(--g),#7ed492);-webkit-background-clip:text;background-clip:text;color:transparent}
.p404-title{margin-top:8px;font-size:22px;font-weight:800}
.p404-desc{margin-top:8px;color:var(--mut);font-size:13px}
.p404-actions{margin-top:26px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.p404-btn{padding:10px 30px;border-radius:99px;font-size:14px;font-weight:700;border:1px solid var(--line);color:var(--mut);background:#fff;transition:all .2s var(--ease)}
.p404-btn:hover{border-color:var(--g);color:var(--g)}
.p404-btn.p{background:linear-gradient(135deg,var(--g),#34ce57);border:0;color:#fff;box-shadow:0 6px 18px rgba(40,167,69,.35)}
.p404-btn.p:hover{transform:translateY(-2px);color:#fff}

/* ---------- 弹窗（举报/隐私） ---------- */
.pop-overlay{position:fixed;inset:0;z-index:1200;background:rgba(15,61,46,.5);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;visibility:hidden;transition:all .25s var(--ease)}
.pop-overlay.show{opacity:1;visibility:visible}
.pop-dialog{background:#fff;border-radius:var(--r-l);width:100%;max-width:460px;max-height:86vh;overflow-y:auto;box-shadow:var(--sh-3);transform:translateY(16px) scale(.97);transition:transform .25s var(--ease)}
.pop-overlay.show .pop-dialog{transform:none}
.pop-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(120deg,var(--g-deep),var(--g-dk));border-radius:var(--r-l) var(--r-l) 0 0}
.pop-header h3{font-size:16px;font-weight:800;color:#fff}
.pop-close{border:0;background:rgba(255,255,255,.15);color:#fff;width:28px;height:28px;border-radius:50%;font-size:16px;line-height:1;cursor:pointer}
.pop-body{padding:20px}
.pop-subtitle{font-size:13px;color:var(--mut);margin:0 0 12px}
.report-issues{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.report-issues label{display:flex;align-items:center;gap:7px;font-size:13px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-s);cursor:pointer;transition:all .15s}
.report-issues label:has(input:checked){border-color:var(--g);background:#f0f9f2;color:var(--g-dk);font-weight:600}
.report-textarea{width:100%;min-height:80px;border:1px solid var(--line);border-radius:var(--r-s);padding:10px 12px;font-size:13px;font-family:inherit;resize:vertical;outline:none}
.report-textarea:focus{border-color:var(--g)}
.pop-footer{display:flex;gap:10px;padding:0 20px 20px}
.pop-confirm{flex:1;border:0;background:linear-gradient(135deg,var(--g),#34ce57);color:#fff;font-weight:700;padding:10px;border-radius:99px;cursor:pointer;box-shadow:0 4px 12px rgba(40,167,69,.3)}
.pop-cancel{border:1px solid var(--line);background:#fff;color:var(--mut);padding:10px 24px;border-radius:99px;cursor:pointer}
.pop-article h3{font-size:16px;font-weight:800;margin-bottom:10px}
.pop-article p{font-size:13px;color:var(--mut);margin:0 0 10px}
.pop-article strong{display:block;font-size:13px;margin:12px 0 4px;color:var(--ink)}

/* ---------- 返回顶部 ---------- */
.m2-totop{position:fixed;right:20px;bottom:96px;z-index:800;width:42px;height:42px;border-radius:50%;background:#fff;box-shadow:var(--sh-2);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(10px);transition:all .3s var(--ease)}
.m2-totop svg{width:20px;height:20px;fill:var(--g)}
.m2-totop.show{opacity:1;visibility:visible;transform:none}
.m2-totop:hover{background:var(--g)}
.m2-totop:hover svg{fill:#fff}

/* ---------- 移动端底部 TabBar ---------- */
.m2-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:860;display:none;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:6px 0 calc(6px + env(safe-area-inset-bottom));box-shadow:0 -2px 16px rgba(15,61,46,.08)}
.m2-tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:var(--mut)}
.m2-tabbar a svg{width:21px;height:21px;fill:var(--mut);transition:all .2s}
.m2-tabbar a.on{color:var(--g);font-weight:700}
.m2-tabbar a.on svg{fill:var(--g);transform:translateY(-1px)}

/* ---------- 页脚 ---------- */
.m2-foot{margin-top:36px;background:linear-gradient(120deg,var(--g-deep),#14532f);color:rgba(255,255,255,.7);padding:32px 0;text-align:center}
.m2-foot-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px;margin-bottom:14px}
.m2-foot-nav a{font-size:13px;color:rgba(255,255,255,.85)}
.m2-foot-nav a:hover{color:#ffd76e}
.m2-foot-cpy{font-size:12px;line-height:1.9}
.m2-foot-cpy a{color:rgba(255,255,255,.6)}
.m2-foot-note{margin-top:10px;font-size:11px;color:rgba(255,255,255,.45)}

/* ---------- 响应式 ---------- */
@media (max-width:991px){
  .m2-nav{display:none}
}
@media (max-width:767px){
  body{padding-bottom:60px}
  .m2-tabbar{display:flex}
  .m2-top-in{height:54px;gap:12px}
  .m2-brand-txt i{display:none}
  .m2-search{flex:1}
  .m2-search input{width:100%}
  .heroapp{padding:22px}
  .heroapp-in{flex-wrap:wrap;gap:16px}
  .heroapp-ic{width:84px;height:84px;border-radius:22px}
  .heroapp-info h2{font-size:19px}
  .heroapp-dl{width:100%;justify-content:center}
  .dhero{padding:20px}
  .dhero-in{flex-wrap:wrap;gap:14px}
  .dhero-ic{width:84px;height:84px;border-radius:22px}
  .dhero-bd h1{font-size:19px}
  .dhero-side{flex-basis:100%;padding-top:14px;border-top:1px dashed var(--line)}
  .dhero-side .dlbtn{width:100%}
  .shot{height:220px}
  .apost{padding:22px 18px}
  .apost h1{font-size:19px}
  .m2-totop{bottom:76px;right:14px}
  .m2-foot{padding-bottom:72px}
  .tphero{flex-wrap:wrap;gap:14px;padding:20px}
  .vpanel-ic{width:96px;height:96px;border-radius:14px}
  .m2-sec-hd{flex-wrap:wrap}
  .m2-sec-hd .m2-tabs{order:10;margin-top:12px}
  .m2-sec-hd .m2-more{order:11;margin-top:12px;margin-left:auto}
  .arow-dl{display:none}
  .chips{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}
  .chip{padding:6px 8px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media (min-width:1200px){
  main.container{max-width:1180px}
}
