/* ==========================================================================
   水门应用 · 液态玻璃设计系统 (Liquid Glass)
   —— 半透明白玻璃 + 边缘高光 + 彩色底层光晕
   注：底部 Tab 栏（navbar.css）保持原样，不在此处修改
   ========================================================================== */

:root{
  --brand:#3b82f6;
  --brand2:#6366f1;
  --text:#14161c;
  --muted:#6f7889;
  --radius:20px;

  /* 玻璃材质：靠透明度区分层级 */
  --glass:rgba(255,255,255,.55);      /* 常规：卡片、列表行 */
  --glass-2:rgba(255,255,255,.74);    /* 强：顶栏、弹层 */
  --glass-1:rgba(255,255,255,.34);    /* 弱：装饰容器 */
  --glass-line:rgba(255,255,255,.72); /* 描边（上亮下暗形成厚度） */
  --glass-hi:rgba(255,255,255,.95);   /* 顶部内高光 */

  --blur-1:14px; --blur-2:26px; --blur-3:40px; --sat:180%;

  --r-xs:10px; --r-sm:14px; --r-md:20px; --r-lg:26px; --r-xl:32px;
  --sh-1:0 2px 8px rgba(31,41,88,.06), 0 10px 28px rgba(31,41,88,.07);
  --sh-2:0 4px 16px rgba(31,41,88,.09), 0 18px 44px rgba(31,41,88,.11);
  --sh-btn:0 4px 14px rgba(59,130,246,.30);
  --err:#dc2626;   /* 删除/错误：补样式时用到，此前未定义会导致颜色失效 */
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
img{display:block}

body{
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Roboto,sans-serif;
  font-size:14px;
  min-height:100vh;
  padding-bottom:calc(96px + env(safe-area-inset-bottom));
  position:relative;
  z-index:0;
}

/* ---------- 底层 Aurora 光晕：玻璃必须「有东西可透」 ---------- */
body::before{
  content:''; position:fixed; inset:0; z-index:-3; pointer-events:none;
  background:
    radial-gradient(60% 44% at 10% 2%,  rgba(96,165,250,.34) 0%, rgba(96,165,250,0) 60%),
    radial-gradient(54% 40% at 94% 10%, rgba(167,139,250,.30) 0%, rgba(167,139,250,0) 62%),
    radial-gradient(48% 36% at 78% 80%, rgba(244,114,182,.24) 0%, rgba(244,114,182,0) 64%),
    radial-gradient(52% 38% at 16% 90%, rgba(52,211,153,.22) 0%, rgba(52,211,153,0) 66%),
    linear-gradient(168deg, #f4f7fd 0%, #f1f5fd 46%, #f8f4fd 100%);
}
/* 细腻噪点，消除渐变色带 */
body::after{
  content:''; position:fixed; inset:0; z-index:-2; pointer-events:none; opacity:.45;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .58 0 0 0 0 .68 0 0 0 .16 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
}
body.has-wallpaper::before{opacity:0}
body.has-wallpaper::after{opacity:.26}
/* 有壁纸时：玻璃调更透 + 提高饱和度，让壁纸的色与光真正被"折射"进来 */
body.has-wallpaper{
  /* 更透：让壁纸的色与细节穿过来 */
  --glass:rgba(255,255,255,.36);
  --glass-2:rgba(255,255,255,.56);
  --glass-1:rgba(255,255,255,.22);
  /* 模糊降低：模糊越大壁纸越糊、越看不出折射；这里保留足够细节又不刺眼 */
  --blur-1:10px; --blur-2:16px; --blur-3:26px;
  /* 饱和度拉高，让透出来的颜色更明显 */
  --sat:240%;
}

/* ---------- 壁纸层 ---------- */
.wallpaper{
  position:fixed;inset:-6%;z-index:-1;pointer-events:none;
  background-size:cover;background-position:center;background-repeat:no-repeat;
  /* 放大一点，避免 blur 把边缘羽化出白边 */
  transform:scale(1.12);
}
.wallpaper::after{
  content:'';position:absolute;inset:0;
  /* 用低饱和深蓝而非纯黑压暗，保留壁纸原有的色相层次 */
  background:linear-gradient(180deg, rgba(12,18,38,.9) 0%, rgba(12,18,38,.75) 100%);
  opacity:var(--wp-dim,0);
}

/* ==========================================================================
   顶部（玻璃）
   ========================================================================== */
.header{
  position:relative;overflow:hidden;
  padding:calc(20px + env(safe-area-inset-top)) 18px 16px;
  color:var(--text);
  background:linear-gradient(180deg, rgba(255,255,255,.72) 0%, rgba(255,255,255,.40) 60%, rgba(255,255,255,0) 100%);
  -webkit-backdrop-filter:blur(var(--blur-1)) saturate(var(--sat));
  backdrop-filter:blur(var(--blur-1)) saturate(var(--sat));
}
.header h1{
  margin:0;font-size:25px;font-weight:800;letter-spacing:.4px;
  background:linear-gradient(120deg,#1e3a8a 0%,var(--brand) 55%,var(--brand2) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.header .sub{margin-top:5px;font-size:12.5px;color:var(--muted);font-weight:500}

/* 搜索框：强玻璃胶囊 */
.search{
  margin-top:14px;display:flex;align-items:center;gap:8px;
  background:var(--glass-2);
  -webkit-backdrop-filter:blur(var(--blur-2)) saturate(var(--sat));
  backdrop-filter:blur(var(--blur-2)) saturate(var(--sat));
  border:1px solid var(--glass-line);
  border-radius:16px;padding:0 14px;height:44px;
  box-shadow:var(--sh-1), inset 0 1px 0 var(--glass-hi);
}
.search .s-ico{color:var(--muted);display:flex;align-items:center;flex-shrink:0}
.search input{
  flex:1;border:none;background:transparent;outline:none;
  color:var(--text);font-size:14.5px;padding:0;height:100%;
}
.search input::placeholder{color:#9aa3b2}

/* ==========================================================================
   分类胶囊 / 排序栏
   ========================================================================== */
.chips{display:flex;gap:9px;overflow-x:auto;padding:14px 14px 4px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{
  flex-shrink:0;padding:8px 16px;border-radius:999px;
  background:var(--glass-1);
  -webkit-backdrop-filter:blur(var(--blur-1)) saturate(var(--sat));
  backdrop-filter:blur(var(--blur-1)) saturate(var(--sat));
  border:1px solid var(--glass-line);
  font-size:13px;font-weight:600;color:#4a5464;
  box-shadow:0 1px 3px rgba(31,41,88,.05), inset 0 1px 0 var(--glass-hi);
  cursor:pointer;transition:.18s;white-space:nowrap;
}
.chip:active{transform:scale(.95)}
.chip.on{
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  border-color:rgba(255,255,255,.35);color:#fff;font-weight:700;
  box-shadow:0 4px 14px rgba(59,130,246,.34), inset 0 1px 0 rgba(255,255,255,.4);
}

.sortbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px 6px;font-size:12.5px;color:var(--muted)}
.sortbar .opts{display:flex;gap:6px;align-items:center}
.sortbar .opts span{
  cursor:pointer;padding:4px 11px;border-radius:999px;
  background:var(--glass-1);border:1px solid var(--glass-line);
  font-weight:600;transition:.16s;
}
.sortbar .opts span:active{transform:scale(.94)}
.sortbar .opts span.on{
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  color:#fff;font-weight:700;border-color:rgba(255,255,255,.35);
  box-shadow:0 3px 10px rgba(59,130,246,.28);
}

/* ==========================================================================
   应用卡片（玻璃）
   ========================================================================== */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:8px 14px 0}
.card{
  position:relative;padding:13px 13px 11px;
  background:var(--glass);
  -webkit-backdrop-filter:blur(var(--blur-2)) saturate(var(--sat));
  backdrop-filter:blur(var(--blur-2)) saturate(var(--sat));
  border:1px solid var(--glass-line);
  border-radius:var(--r-md);
  box-shadow:var(--sh-1), inset 0 1px 0 var(--glass-hi);
  transition:transform .18s ease, box-shadow .18s ease;
}
.card:active{transform:scale(.972)}
.card .tag{
  position:absolute;top:9px;right:9px;z-index:2;
  font-size:10px;font-weight:700;color:#fff;
  padding:3px 8px;border-radius:8px;
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  box-shadow:0 3px 9px rgba(59,130,246,.34), inset 0 1px 0 rgba(255,255,255,.4);
}
.card-top{display:flex;align-items:center;gap:9px}
.card .ic{
  width:52px;height:52px;border-radius:15px;flex-shrink:0;
  background:rgba(255,255,255,.6);object-fit:cover;
  box-shadow:0 3px 10px rgba(31,41,88,.13), inset 0 1px 0 rgba(255,255,255,.6);
}
.card-meta{display:flex;flex-direction:column;gap:4px;min-width:0}
.card .cat{
  align-self:flex-start;font-size:10.5px;font-weight:700;color:var(--brand);
  background:rgba(59,130,246,.14);padding:2.5px 8px;border-radius:7px;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.card .ver{font-size:10.5px;color:var(--muted);padding-left:2px}
.card .nm{
  margin-top:10px;font-weight:700;font-size:14.5px;line-height:1.3;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.card .sm{
  margin-top:4px;font-size:11.5px;color:var(--muted);height:34px;line-height:1.5;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.card .ft{margin-top:9px;display:flex;align-items:center;justify-content:space-between;gap:6px}
.ft-l{min-width:0;display:flex;align-items:center;gap:4px}
.stars{display:inline-flex;align-items:center;gap:1.5px}
.stars .st{flex-shrink:0;display:block}
.stars b{font-size:11px;color:#f59e0b;font-weight:700;margin-left:2px}
.nor{font-size:11px;color:var(--muted)}
.card .get{
  flex-shrink:0;font-size:11.5px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  padding:4px 12px;border-radius:999px;
  box-shadow:var(--sh-btn), inset 0 1px 0 rgba(255,255,255,.4);
}
.card .dl{
  margin-top:7px;padding-top:7px;border-top:1px solid rgba(31,41,88,.08);
  font-size:10.5px;color:var(--muted);
}

/* ==========================================================================
   排行榜
   ========================================================================== */
.board-tabs{display:flex;gap:9px;padding:14px 14px 4px;overflow-x:auto;scrollbar-width:none}
.board-tabs::-webkit-scrollbar{display:none}
.board-tabs .bt{
  flex-shrink:0;padding:8px 16px;border-radius:999px;
  background:var(--glass-1);border:1px solid var(--glass-line);
  font-size:13px;font-weight:600;color:#4a5464;cursor:pointer;transition:.18s;
  -webkit-backdrop-filter:blur(var(--blur-1));backdrop-filter:blur(var(--blur-1));
  box-shadow:0 1px 3px rgba(31,41,88,.05), inset 0 1px 0 var(--glass-hi);
}
.board-tabs .bt.on{
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  color:#fff;font-weight:700;border-color:rgba(255,255,255,.35);
  box-shadow:0 4px 14px rgba(59,130,246,.32), inset 0 1px 0 rgba(255,255,255,.4);
}
.rank-row{
  margin:9px 13px;padding:11px 13px;border-radius:var(--r-md);
  background:var(--glass);border:1px solid var(--glass-line);
  -webkit-backdrop-filter:blur(var(--blur-2)) saturate(var(--sat));
  backdrop-filter:blur(var(--blur-2)) saturate(var(--sat));
  box-shadow:var(--sh-1), inset 0 1px 0 var(--glass-hi);
  display:flex;align-items:center;gap:11px;transition:.16s;
}
.rank-row:active{transform:scale(.985)}
.rank-row.top1{border-color:rgba(251,191,36,.55);background:linear-gradient(100deg, rgba(251,191,36,.18) 0%, var(--glass) 55%)}
.rank-row.top2{border-color:rgba(148,163,184,.5);background:linear-gradient(100deg, rgba(148,163,184,.18) 0%, var(--glass) 55%)}
.rank-row.top3{border-color:rgba(217,119,6,.45);background:linear-gradient(100deg, rgba(217,119,6,.16) 0%, var(--glass) 55%)}
.medal{
  width:23px;height:23px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:11.5px;font-style:normal;font-weight:800;
  background:var(--glass-1);color:var(--muted);
  border:1px solid var(--glass-line);
}
.medal.rank1{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;border-color:rgba(255,255,255,.4);box-shadow:0 3px 9px rgba(251,191,36,.42)}
.medal.rank2{background:linear-gradient(135deg,#e2e8f0,#94a3b8);color:#fff;border-color:rgba(255,255,255,.4);box-shadow:0 3px 9px rgba(148,163,184,.38)}
.medal.rank3{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-color:rgba(255,255,255,.4);box-shadow:0 3px 9px rgba(217,119,6,.34)}
.rk-icon{
  width:42px;height:42px;border-radius:12px;object-fit:cover;flex-shrink:0;
  box-shadow:0 3px 9px rgba(31,41,88,.13), inset 0 1px 0 rgba(255,255,255,.6);
}
.rk-main{flex:1;min-width:0}
.rk-name{font-size:14.5px;font-weight:700;letter-spacing:.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rk-meta{font-size:11.5px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rk-sub{font-size:10.5px;color:var(--muted);margin-top:2px;opacity:.92}
.rk-score{text-align:right;flex-shrink:0;min-width:42px}
.rk-score b{
  display:block;font-size:16px;font-weight:800;line-height:1.1;
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.rk-score span{font-size:10px;color:var(--muted)}

/* ==========================================================================
   公告
   ========================================================================== */
.notice{
  display:flex;align-items:center;gap:8px;
  margin:10px 14px;padding:10px 13px;border-radius:var(--r-sm);
  background:var(--glass);border:1px solid var(--glass-line);
  -webkit-backdrop-filter:blur(var(--blur-1)) saturate(var(--sat));
  backdrop-filter:blur(var(--blur-1)) saturate(var(--sat));
  box-shadow:0 1px 4px rgba(31,41,88,.05), inset 0 1px 0 var(--glass-hi);
  font-size:12.5px;color:#4a5464;
}
.notice .n-tag{
  flex-shrink:0;font-size:10.5px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  padding:2.5px 9px;border-radius:7px;
}
.notice div{flex:1;min-width:0;line-height:1.45}
.notice .x{flex-shrink:0;color:var(--muted);font-size:11.5px;cursor:pointer}

/* ==========================================================================
   详情弹层（大块玻璃）
   ========================================================================== */
.sheet{
  position:fixed;inset:0;z-index:80;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:blur(var(--blur-3)) saturate(var(--sat));
  backdrop-filter:blur(var(--blur-3)) saturate(var(--sat));
  transform:translateY(100%);transition:transform .28s cubic-bezier(.32,.72,0,1);
  display:flex;flex-direction:column;overflow-y:auto;
}
.sheet.show{transform:translateY(0)}
.sheet-top{
  position:sticky;top:0;z-index:5;
  padding:calc(12px + env(safe-area-inset-top)) 16px 10px;
  display:flex;align-items:center;gap:12px;
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(var(--blur-2));backdrop-filter:blur(var(--blur-2));
  border-bottom:1px solid rgba(255,255,255,.6);
}
.sheet-top .back{font-size:24px;color:var(--text);cursor:pointer;line-height:1;padding:0 4px}
.sheet-top strong{font-size:15px;font-weight:700}
.sheet-body{padding:14px 16px calc(30px + env(safe-area-inset-bottom))}

.hero{
  display:flex;align-items:center;gap:13px;
  padding:14px;border-radius:var(--r-md);
  background:var(--glass);border:1px solid var(--glass-line);
  -webkit-backdrop-filter:blur(var(--blur-2)) saturate(var(--sat));
  backdrop-filter:blur(var(--blur-2)) saturate(var(--sat));
  box-shadow:var(--sh-1), inset 0 1px 0 var(--glass-hi);
}
.hero > img{width:60px;height:60px;border-radius:16px;object-fit:cover;flex-shrink:0;
  box-shadow:0 4px 12px rgba(31,41,88,.14), inset 0 1px 0 rgba(255,255,255,.6)}
.hero-ph{width:60px;height:60px;border-radius:16px;background:var(--glass-1);flex-shrink:0}
.hero-info{min-width:0;flex:1}
.hero .t{font-size:16px;font-weight:800;letter-spacing:.2px;line-height:1.25}
.hero-rate{display:flex;align-items:center;gap:5px;margin:5px 0 3px;flex-wrap:wrap}
.hr-stars{display:inline-flex;align-items:center;gap:1.5px}
.hr-stars .st{display:block}
.hero-rate b{font-size:12.5px;color:#f59e0b;font-weight:800}
.hr-n{font-size:11px;color:var(--muted)}
.hero .s{font-size:11.5px;color:var(--muted);line-height:1.5}

.metrics{
  display:flex;margin-top:12px;padding:11px 6px;border-radius:var(--r-sm);
  background:var(--glass-1);border:1px solid var(--glass-line);
  -webkit-backdrop-filter:blur(var(--blur-1));backdrop-filter:blur(var(--blur-1));
  box-shadow:inset 0 1px 0 var(--glass-hi);
}
.metrics > div{flex:1;text-align:center}
.metrics .v{font-size:14px;font-weight:800;color:var(--text)}
.metrics .k{font-size:10.5px;color:var(--muted);margin-top:2px}

.dl-btn{
  width:100%;margin-top:12px;border:none;cursor:pointer;
  padding:14px;border-radius:var(--r-sm);
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  color:#fff;font-size:14.5px;font-weight:700;
  box-shadow:var(--sh-btn), inset 0 1px 0 rgba(255,255,255,.4);
  transition:.16s;
}
.dl-btn:active{transform:scale(.98)}
.dl-tip{text-align:center;font-size:11.5px;color:var(--muted);margin-top:7px;line-height:1.5}

.act-row{display:flex;gap:10px;margin-top:12px}
.act-btn{
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  padding:11px;border-radius:var(--r-sm);cursor:pointer;
  background:var(--glass);border:1px solid var(--glass-line);
  -webkit-backdrop-filter:blur(var(--blur-1));backdrop-filter:blur(var(--blur-1));
  box-shadow:0 1px 4px rgba(31,41,88,.05), inset 0 1px 0 var(--glass-hi);
  font-size:13px;font-weight:600;color:#4a5464;transition:.16s;
}
.act-btn:active{transform:scale(.97)}
.act-btn.on{
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  color:#fff;border-color:rgba(255,255,255,.35);
  box-shadow:0 4px 12px rgba(59,130,246,.3), inset 0 1px 0 rgba(255,255,255,.4);
}
.act-btn b{font-weight:800}

.sec{margin-top:18px}
.sec h4{margin:0 0 9px;font-size:13.5px;font-weight:800;color:var(--text)}
.shots{display:flex;gap:9px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.shots::-webkit-scrollbar{display:none}
.shots img{
  height:180px;border-radius:var(--r-sm);flex-shrink:0;
  border:1px solid var(--glass-line);
  box-shadow:0 2px 8px rgba(31,41,88,.08);
}

/* 评分区 */
.rate-sum{
  display:flex;align-items:center;gap:14px;margin-top:12px;padding:14px;
  border-radius:var(--r-md);
  background:var(--glass);border:1px solid var(--glass-line);
  -webkit-backdrop-filter:blur(var(--blur-2)) saturate(var(--sat));
  backdrop-filter:blur(var(--blur-2)) saturate(var(--sat));
  box-shadow:var(--sh-1), inset 0 1px 0 var(--glass-hi);
}
.rate-sum .big{font-size:32px;font-weight:800;line-height:1;
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.rate-sum .side{flex:1;min-width:0}
.stars-line{font-size:13px;color:#f59e0b;letter-spacing:1px}
.bar-row{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:10.5px;color:var(--muted)}
.bar-row .b{flex:1;height:5px;border-radius:3px;background:rgba(31,41,88,.09);overflow:hidden}
.bar-row .b i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--brand),var(--brand2))}

/* 评论 */
.cmt-sec{margin-top:18px}
.cmt-box{
  padding:12px;border-radius:var(--r-md);
  background:var(--glass-1);border:1px solid var(--glass-line);
  -webkit-backdrop-filter:blur(var(--blur-1));backdrop-filter:blur(var(--blur-1));
  box-shadow:inset 0 1px 0 var(--glass-hi);
}
.cmt-box textarea{
  width:100%;border:1px solid var(--glass-line);border-radius:var(--r-xs);
  background:rgba(255,255,255,.6);padding:10px;font-size:13px;
  resize:vertical;min-height:64px;outline:none;color:var(--text);
}
.star{display:flex;gap:3px;margin:8px 0}
.star .s{font-size:20px;color:#dfe4ec;cursor:pointer;transition:.14s}
.star .s.on{color:#fbbf24}
.send-btn{
  border:none;cursor:pointer;padding:9px 20px;border-radius:var(--r-xs);
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  color:#fff;font-size:13px;font-weight:700;
  box-shadow:var(--sh-btn), inset 0 1px 0 rgba(255,255,255,.4);
}
.cmt{
  display:flex;gap:10px;padding:11px;border-radius:var(--r-sm);margin-top:9px;
  background:var(--glass);border:1px solid var(--glass-line);
  -webkit-backdrop-filter:blur(var(--blur-1));backdrop-filter:blur(var(--blur-1));
  box-shadow:0 1px 4px rgba(31,41,88,.05), inset 0 1px 0 var(--glass-hi);
}
.cmt .avatar,.cmt-head .avatar{
  width:34px;height:34px;border-radius:50%;object-fit:cover;flex-shrink:0;
  border:1px solid var(--glass-line);
}
.cmt-main{flex:1;min-width:0}
.cmt-top{display:flex;align-items:center;gap:7px}
.cmt-top .n{font-size:13px;font-weight:700}
.cmt-top .d{font-size:10.5px;color:var(--muted);margin-left:auto}
.cmt-body{font-size:13px;line-height:1.55;margin-top:4px;color:#3d465a}
.cmt-foot{display:flex;align-items:center;gap:10px;margin-top:6px;font-size:11px;color:var(--muted)}
.pending{
  display:inline-block;font-size:10px;font-weight:700;color:#f59e0b;
  background:rgba(245,158,11,.14);padding:1.5px 7px;border-radius:6px;
}
.more-btn{
  display:block;width:100%;margin-top:10px;cursor:pointer;
  padding:9px;border-radius:var(--r-xs);
  background:var(--glass-1);border:1px solid var(--glass-line);
  font-size:12.5px;color:var(--brand);font-weight:600;
}
.meta-row{display:flex;justify-content:space-between;padding:7px 0;font-size:12.5px;border-bottom:1px solid rgba(31,41,88,.07)}
.meta-row span:first-child{color:var(--muted)}
.meta-row span:last-child{font-weight:600}

/* ==========================================================================
   登录弹层
   ========================================================================== */
.lmask{position:fixed;inset:0;background:rgba(31,41,88,.32);display:none;align-items:flex-end;z-index:90;
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.lmask.show{display:flex}
.lcard{
  width:100%;padding:20px 18px calc(24px + env(safe-area-inset-bottom));
  border-radius:var(--r-xl) var(--r-xl) 0 0;
  background:rgba(255,255,255,.86);
  -webkit-backdrop-filter:blur(var(--blur-3)) saturate(var(--sat));
  backdrop-filter:blur(var(--blur-3)) saturate(var(--sat));
  border-top:1px solid var(--glass-line);
  box-shadow:0 -8px 40px rgba(31,41,88,.18), inset 0 1px 0 var(--glass-hi);
  animation:lup .26s cubic-bezier(.32,.72,0,1);
}
@keyframes lup{from{transform:translateY(100%)}to{transform:translateY(0)}}
.lcard h3{margin:0 0 14px;font-size:17px;font-weight:800}
.code-row{display:flex;gap:9px}
.code-row input{
  flex:1;border:1px solid var(--glass-line);border-radius:var(--r-xs);
  background:rgba(255,255,255,.7);padding:11px 13px;font-size:14px;outline:none;color:var(--text);
}
.code-btn{
  flex-shrink:0;border:none;cursor:pointer;padding:11px 15px;border-radius:var(--r-xs);
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  color:#fff;font-size:12.5px;font-weight:700;white-space:nowrap;
  box-shadow:var(--sh-btn), inset 0 1px 0 rgba(255,255,255,.4);
}
.login-tip{font-size:11.5px;color:var(--muted);margin-top:10px;line-height:1.5}
.step2{margin-top:14px;padding-top:14px;border-top:1px solid rgba(31,41,88,.08)}
.ava-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.ava-big{width:56px;height:56px;border-radius:50%;object-fit:cover;
  border:2px solid var(--glass-line);
  box-shadow:0 3px 10px rgba(31,41,88,.12)}
.ava-ops{display:flex;flex-direction:column;gap:6px}
.ava-ops button{
  border:1px solid var(--glass-line);background:rgba(255,255,255,.6);
  padding:5px 12px;border-radius:8px;font-size:11.5px;color:#4a5464;cursor:pointer;
}
.btn-mini{
  border:none;cursor:pointer;padding:9px 16px;border-radius:var(--r-xs);
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  color:#fff;font-size:13px;font-weight:700;
  box-shadow:var(--sh-btn), inset 0 1px 0 rgba(255,255,255,.4);
}

/* ==========================================================================
   个人中心抽屉
   ========================================================================== */
.drawer{position:fixed;inset:0;z-index:120;display:none}
.drawer.show{display:block}
.dw-mask{position:absolute;inset:0;background:rgba(31,41,88,.34);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:dwFade .2s ease}
@keyframes dwFade{from{opacity:0}to{opacity:1}}
.dw-panel{
  position:absolute;inset:0;display:flex;
  background:rgba(255,255,255,.80);
  -webkit-backdrop-filter:blur(var(--blur-3)) saturate(var(--sat));
  backdrop-filter:blur(var(--blur-3)) saturate(var(--sat));
  animation:dwIn .26s cubic-bezier(.32,.72,0,1);
}
@keyframes dwIn{from{transform:translateX(-100%)}to{transform:translateX(0)}}
@media (min-width:720px){.dw-panel{max-width:560px;box-shadow:0 0 60px rgba(31,41,88,.3)}}

.dw-side{
  width:132px;flex-shrink:0;display:flex;flex-direction:column;
  padding:calc(10px + env(safe-area-inset-top)) 0 10px;
  background:var(--glass-1);
  -webkit-backdrop-filter:blur(var(--blur-2));backdrop-filter:blur(var(--blur-2));
  border-right:1px solid var(--glass-line);
}
.dw-brand{display:flex;align-items:center;gap:7px;padding:4px 12px 12px;font-size:13px;font-weight:800}
.dw-logo{
  width:20px;height:20px;border-radius:6px;flex-shrink:0;
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  box-shadow:0 2px 7px rgba(59,130,246,.34), inset 0 1px 0 rgba(255,255,255,.4);
}
.dw-menu{flex:1;overflow-y:auto;padding:0 8px}
.dw-group{font-size:10.5px;color:#98a1b1;font-weight:700;padding:12px 6px 6px;letter-spacing:.6px}
.dw-item{
  display:flex;align-items:center;gap:8px;width:100%;
  border:1px solid transparent;background:transparent;
  padding:9px;border-radius:11px;font-size:13px;color:#4a5464;
  cursor:pointer;text-align:left;transition:.16s;margin-bottom:3px;
}
.dw-item svg{flex-shrink:0;opacity:.75}
.dw-item:active{transform:scale(.97)}
.dw-item.on{
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  color:#fff;font-weight:700;border-color:rgba(255,255,255,.35);
  box-shadow:0 3px 10px rgba(59,130,246,.3), inset 0 1px 0 rgba(255,255,255,.4);
}
.dw-item.on svg{opacity:1}
.dw-foot{padding:8px;border-top:1px solid var(--glass-line)}
.dw-quit{width:100%;border:none;background:transparent;padding:9px;border-radius:10px;
  font-size:12.5px;color:#ef4444;font-weight:600;cursor:pointer}
.dw-quit:active{background:rgba(239,68,68,.09)}

.dw-main{flex:1;min-width:0;display:flex;flex-direction:column}
.dw-head{
  display:flex;align-items:center;gap:8px;flex-shrink:0;
  padding:calc(10px + env(safe-area-inset-top)) 12px 10px;
  border-bottom:1px solid var(--glass-line);
  background:rgba(255,255,255,.5);
  -webkit-backdrop-filter:blur(var(--blur-1));backdrop-filter:blur(var(--blur-1));
}
.dw-close{
  border:1px solid var(--glass-line);background:rgba(255,255,255,.6);
  width:28px;height:28px;border-radius:9px;font-size:19px;line-height:1;
  color:#5b6472;cursor:pointer;display:flex;align-items:center;justify-content:center;
}
.dw-head strong{font-size:14.5px;font-weight:700}
.dw-spacer{margin-left:auto}
.dw-body{flex:1;overflow-y:auto;padding:12px 12px calc(24px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}

/* 用户卡片 */
.me-card{
  padding:14px;margin-bottom:14px;border-radius:var(--r-md);
  background:var(--glass);border:1px solid var(--glass-line);
  -webkit-backdrop-filter:blur(var(--blur-2)) saturate(var(--sat));
  backdrop-filter:blur(var(--blur-2)) saturate(var(--sat));
  box-shadow:var(--sh-1), inset 0 1px 0 var(--glass-hi);
}
.me-top{display:flex;align-items:center;gap:11px}
.me-av{
  width:52px;height:52px;border-radius:50%;object-fit:cover;flex-shrink:0;
  border:2px solid var(--glass-line);
  box-shadow:0 3px 12px rgba(31,41,88,.15), inset 0 1px 0 rgba(255,255,255,.6);
  background:rgba(255,255,255,.6);
}
.me-av.def{display:flex;align-items:center;justify-content:center;color:#fff;font-size:21px;font-weight:800}
.me-id{min-width:0}
.me-nick{font-size:16px;font-weight:800;line-height:1.25}
.me-uid{
  display:inline-block;margin-top:4px;font-size:10.5px;font-weight:700;letter-spacing:.4px;
  color:var(--brand);background:rgba(59,130,246,.14);padding:2px 8px;border-radius:7px;
}
.me-mail{font-size:11px;color:var(--muted);margin-top:4px}
.me-bio{
  margin-top:9px;font-size:12px;color:#5b6472;line-height:1.55;
  background:var(--glass-1);border:1px solid var(--glass-line);
  border-radius:var(--r-xs);padding:7px 10px;
}
.me-stats{display:flex;margin-top:12px;padding:9px 0;border-radius:var(--r-sm);
  background:var(--glass-1);border:1px solid var(--glass-line)}
.me-stats div{flex:1;text-align:center;position:relative}
.me-stats div + div::before{content:'';position:absolute;left:0;top:15%;height:70%;width:1px;background:rgba(31,41,88,.09)}
.me-stats b{display:block;font-size:16px;font-weight:800;
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.me-stats span{font-size:10.5px;color:var(--muted)}

.dw-sec{margin-bottom:16px}
.dw-sec h5{display:flex;align-items:center;gap:6px;margin:0 0 9px;font-size:13px;font-weight:800}
.dw-sec h5 em{font-style:normal;font-size:11px;font-weight:700;color:var(--brand);
  background:rgba(59,130,246,.14);padding:1px 7px;border-radius:999px}
.dw-empty{
  text-align:center;padding:26px 10px;font-size:12.5px;color:var(--muted);
  background:var(--glass-1);border:1px solid var(--glass-line);border-radius:var(--r-sm);
}
.dw-add{
  width:100%;border:none;cursor:pointer;padding:10px;border-radius:var(--r-sm);margin-bottom:10px;
  background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;
  font-size:13px;font-weight:700;
  box-shadow:var(--sh-btn), inset 0 1px 0 rgba(255,255,255,.4);
}
.me-row{
  display:flex;align-items:center;gap:10px;padding:9px 10px;margin-bottom:7px;
  border-radius:var(--r-sm);cursor:pointer;transition:.15s;
  background:var(--glass);border:1px solid var(--glass-line);
  -webkit-backdrop-filter:blur(var(--blur-1));backdrop-filter:blur(var(--blur-1));
  box-shadow:0 1px 4px rgba(31,41,88,.05), inset 0 1px 0 var(--glass-hi);
}
.me-row:active{transform:scale(.985)}
.me-row .ic{width:40px;height:40px;border-radius:11px;object-fit:cover;flex-shrink:0;
  box-shadow:0 2px 7px rgba(31,41,88,.12), inset 0 1px 0 rgba(255,255,255,.6)}
.me-row .ic.ph{background:rgba(255,255,255,.5)}
.me-row .tx{flex:1;min-width:0}
.me-row .n{font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me-row .m{font-size:11px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me-row .m2{font-size:11px;color:var(--muted);margin-top:2px}
.me-row .m2 .ok{color:#10b981;font-weight:600}
.me-row .m2 .off{color:#f59e0b;font-weight:600}
.me-row .rt{font-size:11px;color:var(--muted);flex-shrink:0}
.me-row.up{align-items:flex-start;flex-wrap:wrap}
.me-row.up .tx{flex:1 1 100%;order:2}
.me-row.up .ic{order:1}
.me-row.up .ops{order:3;flex:1 1 100%;display:flex;gap:6px;padding-top:2px}
.me-row .ops button{
  border:1px solid var(--glass-line);background:rgba(255,255,255,.6);
  padding:4px 11px;border-radius:8px;font-size:11.5px;color:#5b6472;cursor:pointer;
}
.me-row .ops button.pri{border-color:transparent;background:rgba(59,130,246,.14);color:var(--brand);font-weight:600}
.me-row .ops button.dan{border-color:transparent;background:rgba(239,68,68,.10);color:#ef4444}

.dw-form{display:flex;flex-direction:column;gap:11px}
.dw-form label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#5b6472;font-weight:600}
.dw-form label.ck{flex-direction:row;align-items:center;gap:8px}
.dw-form input[type=text],.dw-form input:not([type]),.dw-form input[type=range],.dw-form select{
  border:1px solid var(--glass-line);background:rgba(255,255,255,.62);
  border-radius:var(--r-xs);padding:9px 11px;font-size:13px;color:var(--text);
  font-weight:400;outline:none;width:100%;
}
.dw-form input[type=range]{padding:0;height:28px}
.dw-form label b{color:var(--brand);font-weight:800}
.dw-tip{font-size:11px;color:var(--muted);line-height:1.5}
.dw-row{display:flex;gap:8px}
.dw-btn{
  flex:1;border:none;cursor:pointer;padding:11px;border-radius:var(--r-sm);
  background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;
  font-size:13px;font-weight:700;
  box-shadow:var(--sh-btn), inset 0 1px 0 rgba(255,255,255,.4);
}
.dw-btn.ghost{background:var(--glass-1);color:#5b6472;box-shadow:none;border:1px solid var(--glass-line)}
.wp-preview{
  height:120px;border-radius:var(--r-sm);
  background:rgba(255,255,255,.5) center/cover no-repeat;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;color:var(--muted);border:1px solid var(--glass-line);
}

/* ==========================================================================
   我的上传（旧版弹层，保留兼容）
   ========================================================================== */
.my-item{
  display:flex;gap:11px;padding:11px;border-radius:var(--r-sm);margin-bottom:8px;
  background:var(--glass);border:1px solid var(--glass-line);
  box-shadow:0 1px 4px rgba(31,41,88,.05), inset 0 1px 0 var(--glass-hi);
}
.my-item .ic{width:44px;height:44px;border-radius:12px;object-fit:cover;flex-shrink:0}
.my-item .ph{width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.5);flex-shrink:0}
.my-item .info{flex:1;min-width:0}
.my-item .nm{font-size:13.5px;font-weight:700}
.my-item .mt{font-size:11px;color:var(--muted);margin-top:2px}
.my-item .ops{display:flex;gap:6px;margin-top:7px}
.my-item .ops button{
  border:1px solid var(--glass-line);background:rgba(255,255,255,.6);
  padding:4px 11px;border-radius:8px;font-size:11.5px;color:#5b6472;cursor:pointer;
}
.my-item .ops button.pri{border-color:transparent;background:rgba(59,130,246,.14);color:var(--brand);font-weight:600}
.my-item .ops button.dan{border-color:transparent;background:rgba(239,68,68,.10);color:#ef4444}
.btn-up{
  border:none;cursor:pointer;padding:7px 14px;border-radius:999px;
  background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;
  font-size:12.5px;font-weight:700;
  box-shadow:0 3px 10px rgba(59,130,246,.3), inset 0 1px 0 rgba(255,255,255,.4);
}

/* ==========================================================================
   上传表单
   ========================================================================== */
.sheet#upSheet{z-index:130}
body.dw-open .up-fab{display:none}
.u-field{margin-bottom:12px}
.u-field label{display:block;font-size:12px;color:#5b6472;font-weight:600;margin-bottom:5px}
.u-row{display:flex;gap:10px}
.u-row .u-field{flex:1}
.u-field input,.u-field textarea,.u-field select{
  width:100%;border:1px solid var(--glass-line);border-radius:var(--r-xs);
  background:rgba(255,255,255,.62);padding:10px 12px;font-size:13.5px;
  color:var(--text);outline:none;font-family:inherit;
}
.u-field textarea{resize:vertical;min-height:80px;line-height:1.55}
.u-field input:focus,.u-field textarea:focus{border-color:var(--brand)}
.up-pick{
  display:flex;align-items:center;justify-content:space-between;
  padding:11px 13px;border-radius:var(--r-xs);cursor:pointer;
  background:rgba(255,255,255,.62);border:1px dashed rgba(59,130,246,.4);
  font-size:13px;color:var(--brand);
}
.up-pick em{font-style:normal;font-size:11.5px;color:var(--muted)}
.u-field input[type=file]{display:none}
.u-hint{font-size:11.5px;color:var(--muted);line-height:1.5;margin-top:5px}

/* ==========================================================================
   通用
   ========================================================================== */
.empty{text-align:center;padding:50px 20px;color:var(--muted)}
.ico-box{
  width:56px;height:56px;margin:0 auto 12px;border-radius:16px;
  background:var(--glass-1);border:1px solid var(--glass-line);
}
.loading{text-align:center;padding:30px;color:var(--muted);font-size:12.5px}
.footer{text-align:center;padding:22px 16px 10px;font-size:11.5px;color:var(--muted);line-height:1.6}
.toast{
  position:fixed;left:50%;bottom:calc(40px + env(safe-area-inset-bottom));
  transform:translateX(-50%) translateY(20px);
  background:rgba(20,26,40,.86);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  color:#fff;border-radius:999px;padding:11px 20px;
  box-shadow:0 8px 24px rgba(15,23,42,.28);
  font-size:13px;letter-spacing:.2px;opacity:0;transition:.25s;pointer-events:none;z-index:200;
}
.toast.show{opacity:1;transform:translateX(-50%)}

/* 尊重系统的「减少动效」设置 */
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
}

/* ==========================================================================
   兼容模式（no-glass）
   --------------------------------------------------------------------------
   部分安卓 WebView / 老旧浏览器对 backdrop-filter 的实现有缺陷：
   大面积使用时会把整个页面糊掉、文字发虚，甚至出现残影。
   开启本模式后保留液态玻璃的配色与层次，但去掉背景模糊，
   改用高不透明度实色来维持可读性。视觉接近，兼容性大幅提升。
   触发方式：URL 加 ?noglass=1，或在个人中心 / 后台商店设置里开关。
   ========================================================================== */
body.no-glass{
  --glass:rgba(255,255,255,.94);
  --glass-2:rgba(255,255,255,.97);
  --glass-1:rgba(255,255,255,.87);
}
body.no-glass *,
body.no-glass *::before,
body.no-glass *::after{
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}
/* 去掉模糊后底层光晕会显得过花，这里压淡 */
body.no-glass::before{opacity:.55}
body.no-glass .sheet{background:rgba(255,255,255,.985)}
body.no-glass .lcard{background:rgba(255,255,255,.985)}
body.no-glass .dw-panel{background:rgba(255,255,255,.97)}
body.no-glass .wallpaper{filter:none !important}

/* ==========================================================================
   个人中心：不使用背景模糊
   --------------------------------------------------------------------------
   大面积 backdrop-filter 叠在 Aurora 光晕上，会让整块面板发虚、
   文字糊成一团，在手机浏览器上尤其明显。个人中心是整屏覆盖的面板，
   模糊面积最大、问题最突出，所以这里全部改为高不透明实色。
   保留圆角、描边、内高光和阴影，层次感不变，只是不再"透"。
   ========================================================================== */
.drawer .dw-mask,
.drawer .dw-panel,
.drawer .dw-side,
.drawer .dw-head,
.drawer .dw-body,
.drawer .dw-menu,
.drawer .dw-foot,
.drawer .me-card,
.drawer .me-stats,
.drawer .me-bio,
.drawer .me-row,
.drawer .dw-form input,
.drawer .dw-form select,
.drawer .dw-empty,
.drawer .wp-preview,
.drawer .dw-close,
.drawer .dw-item.on,
.drawer .dw-btn.ghost{
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}
.dw-panel{background:rgba(255,255,255,.97) !important}
.dw-side{background:#f6f8fc !important}
.dw-head{background:#fbfcfe !important}
.me-card{background:#ffffff !important}
.me-stats{background:#f5f7fb !important}
.me-bio{background:#f5f7fb !important}
.me-row{background:#ffffff !important}
.dw-empty{background:#f7f9fc !important}
.dw-form input,.dw-form select{background:#ffffff !important}
.wp-preview{background-color:#f5f7fb !important}

/* ==========================================================================
   补齐：以下类在 index.html / app.js 中使用，但此前从未定义
   --------------------------------------------------------------------------
   这些是液态玻璃 UI 重写时遗漏的元素，缺少样式会退化为浏览器默认外观，
   表现为"登录弹窗崩坏"、评论区排版错乱。这里按同一套玻璃语言补齐。
   ========================================================================== */

/* ---- 登录弹窗 ---- */
.tip{
  font-size:12.5px;color:var(--muted);line-height:1.6;margin:-6px 0 14px;
}
.field{margin-bottom:12px}
.field label{
  display:block;font-size:12px;color:var(--muted);font-weight:600;margin-bottom:6px;
}
/* 输入框用接近实色的白底：弹层叠在任意壁纸上都要保证文字可读 */
.field input,
.field select,
.field textarea{
  width:100%;box-sizing:border-box;
  border:1px solid var(--glass-line);border-radius:var(--r-xs);
  background:rgba(255,255,255,.92);
  padding:11px 13px;font-size:14px;outline:none;color:var(--text);
  font-family:inherit;transition:border-color .15s;
}
.field input:focus,
.field select:focus,
.field textarea:focus{border-color:var(--brand)}
/* 主操作按钮：与卡片里的安装按钮同一套渐变 */
.do{
  display:block;width:100%;border:none;cursor:pointer;
  padding:13px;border-radius:var(--r-xs);margin-top:6px;
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  color:#fff;font-size:15px;font-weight:700;font-family:inherit;
  box-shadow:var(--sh-btn), inset 0 1px 0 rgba(255,255,255,.4);
  transition:transform .12s;
}
.do:active{transform:scale(.985)}
/* 次要按钮（关闭） */
.close{
  display:block;width:100%;border:1px solid var(--glass-line);cursor:pointer;
  padding:11px;border-radius:var(--r-xs);margin-top:9px;
  background:rgba(255,255,255,.55);
  color:var(--muted);font-size:13.5px;font-weight:600;font-family:inherit;
}
.close:active{opacity:.8}
/* 当前账号行 */
.who{
  display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;
  font-size:12.5px;color:var(--muted);margin-bottom:12px;
}
.who b{color:var(--text);font-weight:700}

/* ---- 评分与评论 ---- */
.lb{
  font-size:11.5px;color:var(--muted);font-weight:600;
  padding:2px 8px;border-radius:20px;
  background:rgba(255,255,255,.6);border:1px solid var(--glass-line);
}
.cnt{font-size:12px;color:var(--muted);margin-top:6px}
/* 星级分布：轨道 + 填充 */
/* 必须 flex:1 + min-width:0：作为 .rate-sum 的 flex 子项，
   不设 flex 的话宽度只会按内容撑开（约 34px），里面的进度条会全部塌成 0 */
.bars{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;margin-top:10px}
/* 兼容：若某处仍用 .bar 而不是 .b，也必须 flex:1，否则宽度会塌陷成 0 */
.bar{
  flex:1;height:5px;border-radius:3px;overflow:hidden;
  background:rgba(31,41,88,.09);
}
.bar > i{
  display:block;height:100%;border-radius:3px;
  background:linear-gradient(90deg,var(--brand),var(--brand2));
}
/* 评论条目 */
.nick{font-weight:700;color:var(--text);font-size:13px}
.mine{
  font-size:10.5px;font-weight:700;color:var(--brand);
  padding:1px 6px;border-radius:6px;
  background:rgba(37,99,235,.10);border:1px solid rgba(37,99,235,.25);
}
.del{
  font-size:11.5px;color:var(--err);cursor:pointer;font-weight:600;
}
.del:active{opacity:.7}
.hint{font-size:12px;color:var(--muted);line-height:1.6}
/* 空状态图标容器 */
.ico{
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 12px;color:var(--muted);opacity:.55;
}
.ico svg{width:44px;height:44px}
/* 个人中心头像 */
.me-ava{
  width:52px;height:52px;border-radius:50%;object-fit:cover;flex-shrink:0;
  border:2px solid var(--glass-line);
  box-shadow:0 3px 10px rgba(31,41,88,.12);
}
/* 占位：无头像时显示首字母，避免留下空白方块 */
.me-ava:not([src]),.me-ava[src=""]{background:rgba(37,99,235,.12)}

/* 评论条目的时间文字（此前未定义，会继承成正文色显得突兀） */
.cmt-top .t{font-size:11px;color:var(--muted);font-weight:400}
