
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;background:#0d0a16 url('/img/bg-home.jpg') center/cover fixed no-repeat;color:#ece8f7;min-height:100vh;position:relative;overflow-x:hidden}
body::before{content:'';position:fixed;inset:-50%;width:200%;height:200%;
  background:linear-gradient(45deg,#8b5cf6 0%,#a855f7 25%,#ec4899 50%,#60a5fa 75%,#8b5cf6 100%);
  background-size:400% 400%;pointer-events:none;z-index:0;animation:grad 24s ease infinite;opacity:.3;mix-blend-mode:overlay}
@keyframes grad{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.2)}100%{transform:rotate(360deg) scale(1)}}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background:linear-gradient(180deg,rgba(6,4,14,.48) 0%,rgba(8,5,18,.34) 45%,rgba(10,6,20,.5) 100%),
             radial-gradient(120% 90% at 50% 45%,transparent 30%,rgba(6,4,14,.38) 100%)}
.wrap{position:relative;z-index:2;max-width:960px;margin:0 auto;padding:34px 18px 50px}
.head{text-align:center;margin-bottom:26px}
.head h1{font-size:32px;font-weight:800;letter-spacing:3px;
  background:linear-gradient(135deg,#c4b5fd 0%,#a78bfa 45%,#f0abfc 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.head .sub{margin-top:10px;font-size:13.5px;color:rgba(255,255,255,.6)}
.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:16px;backdrop-filter:blur(14px)}
.filters select,.filters input{flex:1;min-width:160px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:9px 12px;color:#ece8f7;font-size:13.5px;outline:none}
.filters select:focus{border-color:#a78bfa}
.filters select option{background:#2a2440;color:#ece8f7;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.06)}
.filters select option:checked{background:#37304f}
.filters select option:hover{background:#3d3657}
.filters select::-webkit-scrollbar{width:8px}
.filters select::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:99px}
.list{display:flex;flex-direction:column;gap:12px}
.fw-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:28px;padding:16px 18px;display:flex;align-items:center;gap:16px;transition:transform .2s,box-shadow .2s;backdrop-filter:blur(12px)}
.fw-card:hover{transform:translateY(-2px);box-shadow:0 14px 40px rgba(0,0,0,.25)}
.fw-info{flex:1;min-width:0}
.fw-info .device{font-size:15px;font-weight:700;color:#f0abfc}
.fw-info .ver{font-size:13px;color:#c4b5fd;font-family:Consolas,monospace;margin:4px 0 6px;word-break:break-all}
.fw-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:rgba(255,255,255,.55)}
.fw-meta span{display:inline-flex;align-items:center;gap:4px}
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;background:rgba(167,139,250,.2);color:#c4b5fd;border:1px solid rgba(167,139,250,.35)}
.badge.green{background:rgba(52,211,153,.15);color:#6ee7b7;border-color:rgba(52,211,153,.35)}
.dl-btn{background:linear-gradient(135deg,#8b5cf6,#ec4899);border:none;color:#fff;border-radius:20px;padding:12px 26px;font-size:14px;font-weight:700;cursor:pointer;transition:filter .2s;white-space:nowrap;text-decoration:none}
.dl-btn:hover{filter:brightness(1.15)}
.dl-btn.disabled{background:rgba(255,255,255,.12);color:rgba(255,255,255,.4);cursor:not-allowed}
.empty{padding:40px;text-align:center;color:rgba(255,255,255,.4)}
.foot{text-align:center;margin-top:30px;font-size:12px;color:rgba(255,255,255,.4)}
.foot a{color:#a78bfa;text-decoration:none}
.count{font-size:12.5px;color:rgba(255,255,255,.5);margin-bottom:12px}
.pager{display:flex;gap:10px;justify-content:center;margin-top:20px;align-items:center;font-size:13px;color:rgba(255,255,255,.6)}
.pager button{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#ece8f7;border-radius:8px;padding:6px 14px;cursor:pointer;font-size:12.5px}
.pager button:disabled{opacity:.35;cursor:default}
.loading{text-align:center;padding:40px;color:rgba(255,255,255,.5)}
@keyframes spin{to{transform:rotate(360deg)}}
.spinner{width:26px;height:26px;border-radius:50%;border:3px solid rgba(167,139,250,.25);border-top-color:#a78bfa;animation:spin .8s linear infinite;margin:0 auto 10px}
@media(max-width:600px){.fw-card{flex-direction:column;align-items:stretch}.dl-btn{text-align:center}}

/* ===== 毛玻璃统一（深色） ===== */
.filters{
  background:rgba(20,14,36,.45);
  -webkit-backdrop-filter:blur(26px) saturate(190%) brightness(1.12);
  backdrop-filter:blur(26px) saturate(190%) brightness(1.12);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), inset 0 1px 0 rgba(255,255,255,.25), 0 10px 30px rgba(0,0,0,.25);
}
.filters select,.filters input{background:rgba(42,36,58,.72);border:1px solid rgba(255,255,255,.16);
  -webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),inset 0 1px 0 rgba(255,255,255,.18)}
.fw-card{
  position:relative;overflow:hidden;
  background:rgba(255,255,255,.10);
  -webkit-backdrop-filter:blur(24px) saturate(190%) brightness(1.12);
  backdrop-filter:blur(24px) saturate(190%) brightness(1.12);
  border:1px solid rgba(255,255,255,.20);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), inset 0 1px 0 rgba(255,255,255,.22), 0 6px 20px rgba(0,0,0,.18);
}
.fw-card::after{content:'';position:absolute;top:-70%;right:-12%;width:55%;height:230%;
  background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.12) 45%,rgba(255,255,255,.03) 60%,transparent 78%);
  transform:rotate(7deg);pointer-events:none}
.fw-card:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1), inset 0 1px 0 rgba(255,255,255,.26), 0 18px 46px rgba(0,0,0,.32)}
.pager button{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}

/* SVG 图标 */
.dl-btn{display:inline-flex;align-items:center;gap:6px}
.dl-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fw-meta span{display:inline-flex;align-items:center;gap:4px}
.fw-meta svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.8}

/* ===== 动态背景层 + 毛玻璃模糊开关（后台可切换） ===== */
#pg-bg{position:fixed;inset:-6%;z-index:0;pointer-events:none;opacity:0;transition:opacity .7s ease;
  background-position:center;background-size:cover;background-repeat:no-repeat}
#pg-bg.pg-on{opacity:1}
body.pg-blur #pg-bg{-webkit-filter:blur(22px) saturate(1.05) brightness(.82);filter:blur(22px) saturate(1.05) brightness(.82);transform:scale(1.05)}
body.pg-sharp #pg-bg{-webkit-filter:none;filter:none;transform:none}
/* 选了自定义背景时不再加载默认背景图 */
body.pg-wall{background-image:none!important}
/* 关闭模糊：取消所有 UI 的毛玻璃，界面浮于清晰背景之上 */
body.pg-sharp *{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
