
  :root{
    /* ══ 皮肤 1：曜石黑 · 冰蓝（默认）══
       苹果 UI 质感：深黑底 + 半透明玻璃卡 + 细腻描边，不用刺眼霓虹 */
    --primary:#0a84ff; --primary-d:#3aa0ff; --primary-l:#64c8ff;
    --accent:#30d5c8;                                  /* 点色：青，只做点缀 */
    --on-primary:#ffffff;                              /* 主色按钮上的字（白） */
    --bg:#050507; --bg2:#0a0a0e; --card:#121216; --card2:#17171c; --elev:#1e1e24;
    --text:#f5f5f7; --sub:#9a9aa3; --dim:#6e6e76; --line:#26262c; --line2:#33333a;
    --glass:rgba(255,255,255,.06);                     /* 玻璃高光 */
    --glow-a:rgba(10,132,255,.16); --glow-b:rgba(48,213,200,.05);
    --cta:linear-gradient(135deg,#0a84ff,#0066e0);
    --glow:0 0 18px rgba(10,132,255,.35);
    --like:#ff375f; --ok:#30d158; --warn:#ff9f0a;
    --gold:#ffb74d; --gold-soft:rgba(255,183,77,.14);
    --safe-b:env(safe-area-inset-bottom,0px); --safe-t:env(safe-area-inset-top,0px);
    --tbh:calc(54px + var(--safe-b));                  /* 底部导航总高，浮层靠它让位 */
    --radius:16px;
  }
  /* ══ 皮肤 2：夜幕紫 · 赛博朋克 ══ */
  html[data-skin="violet"]{
    --primary:#bf5af2; --primary-d:#d580ff; --primary-l:#e5b3ff;
    --accent:#ff2fb9;
    --on-primary:#ffffff;
    --bg:#07040d; --bg2:#0c0816; --card:#151020; --card2:#1b1428; --elev:#241a35;
    --text:#f7f2ff; --sub:#a698c2; --dim:#74658c; --line:#2a1e3d; --line2:#392a50;
    --glass:rgba(255,255,255,.06);
    --glow-a:rgba(191,90,242,.20); --glow-b:rgba(255,47,185,.08);
    --cta:linear-gradient(135deg,#bf5af2,#8f2fd6);
    --glow:0 0 18px rgba(191,90,242,.40);
    --like:#ff2d78; --ok:#30d158; --warn:#ff9f0a;
    --gold:#e8b3ff; --gold-soft:rgba(232,179,255,.14);
  }
  /* ══ 皮肤 3：午夜靛 · 极简科技 ══ */
  html[data-skin="indigo"]{
    --primary:#5e5ce6; --primary-d:#7d7bff; --primary-l:#a5a3ff;
    --accent:#00d4c8;
    --on-primary:#ffffff;
    --bg:#06060d; --bg2:#0b0b16; --card:#141421; --card2:#1a1a29; --elev:#222234;
    --text:#f2f2fb; --sub:#9b9bb5; --dim:#6a6a82; --line:#272738; --line2:#353548;
    --glass:rgba(255,255,255,.06);
    --glow-a:rgba(94,92,230,.20); --glow-b:rgba(0,212,200,.06);
    --cta:linear-gradient(135deg,#5e5ce6,#4140c0);
    --glow:0 0 18px rgba(94,92,230,.42);
    --like:#ff375f; --ok:#30d158; --warn:#ff9f0a;
    --gold:#a5a3ff; --gold-soft:rgba(165,163,255,.14);
  }
  *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
  /* WebView 适配：禁长按菜单 / 选中 / 橡皮筋整页拖动，避免嵌进 App 后冒出原生控件 */
  html{
    height:100%;
    -webkit-text-size-adjust:100%;
    -webkit-touch-callout:none;
    touch-action:manipulation;
  }
  html,body{
    overflow:hidden;                 /* 关键：整页不滚动，杜绝"无限下滑" */
    overscroll-behavior:none;
  }
  body{
    font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
    background:#04060c;color:var(--text);font-size:14px;
    height:100%;width:100%;
    display:flex;align-items:center;justify-content:center;
    -webkit-user-select:none;user-select:none;
  }
  /* 正文与输入框要能选中 */
  .dcontent,.cmt .mt,.cquote,.card .title,.card .excerpt,.excerpt,
  input,textarea,[contenteditable]{
    -webkit-user-select:text;user-select:text;-webkit-touch-callout:default;
  }
  img,a{-webkit-user-drag:none}
  button{font-family:inherit;cursor:pointer;border:none;outline:none;background:none;color:inherit}
  input,textarea{font-family:inherit;outline:none;border:none;background:none;color:inherit}
  input::placeholder,textarea::placeholder{color:#5a636f}
  .hide{display:none!important}
  img{display:block}

  /* 手机壳（仅桌面预览） */
  .app{
    position:relative;width:390px;height:844px;
    max-height:calc(100vh - 20px); max-height:calc(100dvh - 20px);
    background:
      radial-gradient(118% 44% at 50% -7%,var(--glow-a),transparent 64%),
      radial-gradient(96% 38% at 50% 106%,var(--glow-b),transparent 72%),
      linear-gradient(180deg,var(--bg2),var(--bg) 52%,#04060c);
    overflow:hidden;border-radius:34px;
    box-shadow:0 0 0 10px var(--bg),0 0 0 11px var(--line2),0 24px 70px rgba(0,0,0,.82);
    display:flex;flex-direction:column;
  }

  /* 顶栏 */
  .topbar{flex-shrink:0;background:linear-gradient(180deg,var(--bg2),var(--bg));
    border-bottom:1px solid var(--line);padding-top:var(--safe-t);position:relative;z-index:30}
  .tb-row{height:46px;display:flex;align-items:center;padding:0 14px;gap:10px}
  .tb-row .brand{height:26px;display:flex;align-items:center}
  .tb-row .brand img{height:26px;filter:brightness(1.12) saturate(1.1)}
  .tb-row .grow{flex:1}
  .tb-row .ico{width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:var(--sub);font-size:17px}

  /* 顶部 tab：推荐 · 手册 · 视频 */
  .tabs{display:flex;gap:22px;padding:0 16px 9px;overflow-x:auto;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tabs span{font-size:15px;color:var(--dim);white-space:nowrap;position:relative;padding-bottom:6px;cursor:pointer;transition:color .15s}
  .tabs span.on{color:var(--text);font-weight:700}
  .tabs span.on::after{content:'';position:absolute;left:50%;bottom:0;transform:translateX(-50%);
    width:22px;height:3px;border-radius:2px;background:var(--cta);box-shadow:var(--glow)}
  /* 顶部右侧：已运行天数 + 欢迎新骑士（两行右对齐，用 id 覆盖 .tabs span） */
  #siteAge{margin-left:auto;display:inline-flex;flex-direction:column;align-items:flex-end;gap:1px;
    font-size:10.5px;line-height:1.35;color:#5a6472;font-weight:400;padding-bottom:0;text-align:right;max-width:64%}
  /* 注意：内部 b/span 也是 .tabs 里的 span，会被 `.tabs span`（15px + padding）命中，这里必须显式压回小字 */
  #siteAge b,#siteAge .w{font-size:10.5px;line-height:1.35;padding-bottom:0;position:static;white-space:nowrap}
  #siteAge b{font-weight:700;color:#8b93a1}
  #siteAge .w{color:#5a6472;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  #siteAge .w em{font-style:normal;font-weight:700;color:var(--text)}

  /* 页面容器：只有 .page 内部滚 */
  .pages{flex:1;position:relative;overflow:hidden;min-height:0}
  .page{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:none}
  .page.on{display:block}
  .page::-webkit-scrollbar{display:none}

  /* 首页 = 原生横向 scroll-snap 幻灯片（推荐/手册/视频三屏）。
     用系统原生滚动而不是自己写 touchmove+transform：
       GPU 合成、跟手、不阻塞纵向滚动，WebView 里也不卡。 */
  /* 首页三屏 = display 切换（顶部 tab 标题点击切换，不用横向滑动）。
     全屏左右滑统一为底部 tab 切换（推荐/手册/消息/我的），不触发顶部。 */
  #pg-home{display:none;flex-direction:column;overflow:hidden}
  #pg-home.on{display:flex}
  .pane{display:none;flex:0 0 auto;width:100%;height:100%;overflow-y:auto;overflow-x:hidden;
    overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding-bottom:8px}
  .pane.on{display:block}
  .pane::-webkit-scrollbar{display:none}
  .pane.fp{padding:10px 12px 18px}   /* 纯卡片流的板块自己带内边距；手册/视频内部有各自布局 */

  /* 下拉刷新：指示器固定在页顶，当前 pane 做 translateY 让位 */
  .ptr{position:absolute;top:0;left:0;right:0;height:62px;display:flex;align-items:center;justify-content:center;
    gap:7px;font-size:11.5px;color:#5a6472;opacity:0;pointer-events:none;z-index:4;font-weight:400;transition:opacity .18s ease}
  .ptr .ico{font-size:14px;line-height:1;transition:transform .18s ease;display:inline-block;opacity:.8}
  .ptr.ready{color:#6b7684;font-weight:400}
  .ptr.busy .ico{animation:spin .8s linear infinite}
  @keyframes spin{to{transform:rotate(360deg)}}

  /* 头像：真实头像图片盖在首字色块上；图挂了 onerror 自删，自动露出首字 */
  .avw{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;
    background:var(--cta);color:var(--on-primary);font-weight:800;flex-shrink:0;border-radius:50%}
  .avw>i{font-style:normal;line-height:1}
  .avw>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--elev)}
  .avw.vav{width:18px;height:18px;font-size:9px}
  .avw.metaav{width:20px;height:20px;font-size:10px}
  .avw.dav{width:38px;height:38px;font-size:16px}
  .avw.cav{width:30px;height:30px;font-size:12px}
  .avw.meav{width:58px;height:58px;font-size:22px}

  /* 卡片流 */
  .feed{padding:10px 12px 24px}
  .card{background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--line);
    border-radius:var(--radius);overflow:hidden;margin-bottom:12px;
    box-shadow:inset 0 1px 0 var(--glass),0 8px 24px rgba(0,0,0,.5);
    cursor:pointer;transition:transform .12s,border-color .15s}
  .card:active{transform:scale(.985);border-color:var(--line2)}
  .card .cover{width:100%;aspect-ratio:16/10;background:var(--card2);overflow:hidden;position:relative}
  .card .cover img{width:100%;height:100%;object-fit:cover}
  .card .cover img.cprev-gif{object-fit:cover}
  .card .cover::after{content:'';position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(180deg,transparent 52%,rgba(0,0,0,.6))}
  .card .body{padding:11px 13px 13px;position:relative}
  .card .title{font-size:15px;line-height:1.45;font-weight:600;color:var(--text);
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .card .excerpt{font-size:12px;color:var(--sub);line-height:1.55;margin-top:6px;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .card .meta{display:flex;align-items:center;gap:7px;margin-top:9px;font-size:11px;color:var(--sub);flex-wrap:nowrap;overflow:hidden}
  .card .meta .av{width:20px;height:20px;border-radius:50%;flex-shrink:0}
  .card .meta .nmx{color:var(--sub);max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1}
  .card .meta .right{margin-left:auto;display:flex;gap:8px;flex-shrink:0}

  /* 无封面帖子：不摆占位图，做成"文字卡" —— 左侧主色书脊 */
  .card.textonly{position:relative;overflow:hidden}
  .card.textonly::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;z-index:2;
    background:linear-gradient(180deg,var(--primary-l),var(--primary))}
  .card.textonly::after{content:'';position:absolute;right:-46px;top:-46px;width:150px;height:150px;border-radius:50%;
    background:radial-gradient(circle,var(--glow-a),transparent 70%);pointer-events:none}
  .card.textonly .body{padding:15px 16px 14px 18px;position:relative;z-index:1}
  .card.textonly .title{font-size:16.5px;line-height:1.42;font-weight:700;letter-spacing:.2px;
    -webkit-line-clamp:3;color:#f4f8fd}
  .card.textonly .excerpt{margin-top:9px;-webkit-line-clamp:3;font-size:12.5px;line-height:1.62}
  .card.textonly .meta{margin-top:11px;padding-top:10px;border-top:1px solid #212836}

  /* 点赞 */
  .like{display:inline-flex;align-items:center;gap:3px;cursor:pointer;flex-shrink:0;
    font-size:11px;color:var(--sub);transition:transform .12s}
  .like .hi{font-size:14px;line-height:1;filter:grayscale(1) brightness(1.6);transition:filter .15s}
  .like.on{color:#ff4d6a;font-weight:700}
  .like.on .hi{filter:none}
  .like.pop{animation:pop .38s cubic-bezier(.2,1.6,.4,1)}
  @keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.45)}100%{transform:scale(1)}}
  .biglike{display:flex;align-items:center;justify-content:center;gap:8px;margin:22px 0 4px;
    padding:12px;border-radius:26px;background:var(--card2);border:1px solid var(--line);
    font-size:14px;font-weight:600;color:#8b94a1;cursor:pointer;transition:.15s}
  .biglike .hi{font-size:22px;line-height:1;filter:grayscale(1) brightness(1.6)}
  .biglike.on{background:rgba(255,45,85,.13);border-color:rgba(255,77,106,.5);color:#ff4d6a;box-shadow:var(--glow)}
  .biglike.on .hi{filter:none}
  .biglike.pop .hi{animation:pop .42s cubic-bezier(.2,1.6,.4,1)}
  .tag{background:var(--gold-soft);color:var(--gold);padding:2px 8px;border-radius:20px;font-weight:600;font-size:11px;flex-shrink:0;
    border:1px solid var(--gold-soft)}
  .tag.geo{background:var(--glass);color:var(--accent);border-color:var(--line2)}
  .tag.pay{background:var(--cta);color:var(--on-primary);font-weight:800;border:none}
  .tag.free{background:var(--glass);color:var(--like);font-weight:700;border:1px solid var(--line2)}
  /* 卡片左侧：点赞按钮（合并原来左侧数量 + 右侧点赞，一个心搞定） */
  .tag.like-tag{display:inline-flex;align-items:center;gap:4px;background:var(--glass);color:var(--sub);
    border:1px solid var(--line2);font-weight:700;cursor:pointer;transition:.15s;user-select:none}
  .tag.like-tag .hi{font-size:12px;line-height:1;filter:grayscale(1) brightness(1.7);transition:filter .15s}
  .tag.like-tag.on{color:var(--like);border-color:rgba(255,55,95,.45);background:rgba(255,55,95,.13)}
  .tag.like-tag.on .hi{filter:none}
  .tag.like-tag:active{transform:scale(.94)}
  .tag.like-tag.pop{animation:pop .38s cubic-bezier(.2,1.6,.4,1)}
  /* 卡片右侧：收藏星 + 数量（☆ 未收藏 / ★ 已收藏） */
  .card .meta .fav{display:inline-flex;align-items:center;gap:2px;font-size:15px;line-height:1;color:var(--dim);
    cursor:pointer;transition:color .15s,transform .15s;user-select:none}
  .card .meta .fav .fc{font-size:11px;font-weight:700;color:var(--sub);letter-spacing:0}
  .card .meta .fav.on{color:var(--warn);text-shadow:0 0 8px rgba(255,159,10,.45)}
  .card .meta .fav.on .fc{color:var(--warn)}
  .card .meta .fav:active{transform:scale(.86)}
  .card .meta .fav.pop{animation:pop .38s cubic-bezier(.2,1.6,.4,1)}
  /* 邀请入口（「我」页签到卡下方） */
  .inv-entry{display:flex;align-items:center;gap:10px;margin:12px;padding:13px 16px;border-radius:var(--radius);
    background:linear-gradient(135deg,rgba(255,55,95,.14),rgba(255,159,10,.10));border:1px solid rgba(255,55,95,.28);
    cursor:pointer}
  .inv-entry:active{transform:scale(.99)}
  .inv-entry .ic{font-size:20px}
  .inv-entry .tx{flex:1;font-size:13.5px;color:var(--text);font-weight:600}
  .inv-entry .tx b{color:var(--like);font-weight:800}
  .inv-entry .ar{color:var(--dim)}
  /* 分享弹窗 */
  .inv-head{font-size:16px;font-weight:800;text-align:center;margin:4px 0 14px;color:var(--text)}
  .inv-head b{color:var(--like)}
  .inv-link{font-size:12px;color:var(--sub);background:var(--bg2);border:1px dashed var(--line2);border-radius:10px;
    padding:11px 12px;word-break:break-all;text-align:center;line-height:1.6;margin-bottom:12px}
  .inv-note{font-size:11.5px;color:var(--sub);line-height:1.9;margin-bottom:14px;text-align:center}
  .inv-note b{color:var(--like);font-weight:800}
  /* 全局爱心爆炸特效层 */
  .fx-layer{position:fixed;inset:0;pointer-events:none;z-index:9999;overflow:hidden}
  .fx-heart{position:fixed;left:0;top:0;line-height:1;pointer-events:none;
    transform:translate(-50%,-50%) scale(.5);opacity:1;
    animation:fxHeart 1.05s cubic-bezier(.18,.72,.3,1) forwards}
  @keyframes fxHeart{
    0%{opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(0deg)}
    18%{opacity:1;transform:translate(calc(-50% + var(--dx) * .38),calc(-50% + var(--dy) * .42)) scale(var(--sc)) rotate(calc(var(--rot) * .45))}
    75%{opacity:.95}
    100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy) - 34px)) scale(calc(var(--sc) * .8)) rotate(var(--rot))}
  }
  .fx-ring{position:fixed;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;pointer-events:none;
    border:2.5px solid rgba(255,55,95,.75);box-shadow:0 0 12px rgba(255,55,95,.5);animation:fxRing .62s ease-out forwards}
  @keyframes fxRing{0%{opacity:.95;transform:scale(.45)}100%{opacity:0;transform:scale(5.2)}}
  /* #话题标签（帖子里打的标签） */
  .tag.ht{background:var(--glass);color:var(--primary-d);border-color:var(--line2)}
  .ctags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
  .dtags{display:flex;flex-wrap:wrap;gap:6px;margin:-6px 0 14px}
  .cover .lockbadge{position:absolute;right:8px;top:8px;z-index:2;background:rgba(8,9,12,.74);color:var(--like);
    font-size:11px;padding:3px 9px;border-radius:20px;font-weight:800;border:1px solid rgba(255,55,95,.42);
    backdrop-filter:blur(6px);text-shadow:0 1px 4px rgba(0,0,0,.5)}
  .cover .featbadge{position:absolute;left:8px;top:8px;z-index:2;background:rgba(8,9,12,.72);color:#ffd54f;
    font-size:11px;padding:3px 9px;border-radius:20px;font-weight:700;border:1px solid rgba(255,213,79,.4);
    backdrop-filter:blur(6px)}
  .feat-txt{display:inline-block}
  mark{background:var(--gold-soft);color:var(--gold);border-radius:3px;padding:0 2px}

  /* 手册搜索 */
  .mhead{position:sticky;top:0;z-index:6;background:rgba(11,14,19,.95);backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);padding:10px 12px 9px}
  .msearch{display:flex;align-items:center;gap:8px;height:38px;background:#181e27;border:1px solid var(--line2);
    border-radius:19px;padding:0 6px 0 14px}
  .msearch input{flex:1;font-size:14px;min-width:0;color:#eef3fa}
  .msearch .sb{background:var(--cta);color:var(--on-primary);font-size:13px;font-weight:800;
    padding:6px 15px;border-radius:15px;flex-shrink:0}
  .mcat-bar{margin-top:9px;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:1px}
  .mcat-bar::-webkit-scrollbar{display:none}
  .mcat-chip{flex-shrink:0;height:30px;padding:0 14px;display:flex;align-items:center;justify-content:center;
    background:#181e27;border:1px solid var(--line2);border-radius:15px;color:var(--sub);font-size:12.5px;
    cursor:pointer;transition:.15s;white-space:nowrap}
  .mcat-chip.on{background:var(--cta);border-color:var(--cta);color:var(--on-primary);font-weight:700}
  /* 手册：筛选行（类型下拉 + 可兑换）——一行搞定，替代原来铺满的类型 chips */
  .mfilters{display:flex;align-items:center;gap:8px;margin-top:9px}
  .mdrop{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px;border-radius:15px;
    background:#181e27;border:1px solid var(--line2);color:var(--sub);font-size:12.5px;cursor:pointer;
    max-width:58%;transition:.15s}
  .mdrop span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mdrop i{font-style:normal;font-size:10px;opacity:.75;flex-shrink:0}
  .mdrop.active{color:var(--text);border-color:var(--primary);background:rgba(10,132,255,.10)}
  .mdrop-panel{position:fixed;z-index:70;display:none;min-width:150px;max-height:44vh;overflow-y:auto;
    background:var(--elev);border:1px solid var(--line2);border-radius:14px;padding:6px;
    box-shadow:0 14px 34px rgba(0,0,0,.55)}
  .mdrop-item{display:block;padding:9px 12px;border-radius:10px;font-size:13px;color:var(--text);cursor:pointer}
  .mdrop-item:active{background:var(--card2)}
  .mdrop-item.on{background:var(--cta);color:var(--on-primary);font-weight:700}
  /* ===== 全局搜索 ===== */
  .shead{display:flex;align-items:center;gap:10px;padding:10px 14px;padding-top:calc(10px + var(--safe-t));
    border-bottom:1px solid var(--line);background:var(--bg2);position:sticky;top:0;z-index:5}
  .sinput{flex:1;min-width:0;height:38px;display:flex;align-items:center;gap:8px;padding:0 12px;border-radius:19px;
    background:var(--card2);border:1px solid var(--line2)}
  .sinput .sic{font-size:14px;color:var(--sub);flex-shrink:0}
  .sinput input{flex:1;min-width:0;border:none;outline:none;background:none;color:var(--text);font-size:14px}
  .sinput input::placeholder{color:var(--dim)}
  .sinput .sclr{display:none;font-style:normal;font-size:12px;color:var(--sub);width:18px;height:18px;line-height:18px;
    text-align:center;border-radius:50%;background:var(--line);cursor:pointer;flex-shrink:0}
  .scancel{font-size:14px;color:var(--sub);flex-shrink:0;cursor:pointer}
  .stip{font-size:11.5px;color:var(--dim);padding:12px 16px 0}
  .sblock{padding:12px 14px 2px}
  .sblock .shd{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--sub);margin-bottom:9px}
  .sblock .shd i{font-style:normal;font-size:12px;color:var(--dim);cursor:pointer}
  .sblock .sempty{font-size:12px;color:var(--dim)}
  .schips{display:flex;flex-wrap:wrap;gap:8px}
  .schip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:6px 12px;border-radius:16px;
    background:var(--card2);border:1px solid var(--line2);color:var(--sub);font-size:12.5px;cursor:pointer}
  .schip b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:190px}
  .schip i{font-style:normal;font-size:11px;color:var(--dim);padding-left:2px}
  .schip.on{color:var(--on-primary);background:var(--cta);border-color:var(--cta);font-weight:700}
  .sfilters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .sres-head{font-size:12px;color:var(--sub);padding:2px 2px 10px}
  .sres-head b{color:var(--text)}
  .sres .feed{padding:0}
  .hotrow{display:flex;gap:8px;overflow-x:auto;margin-top:9px;scrollbar-width:none;padding-bottom:1px}
  .hotrow::-webkit-scrollbar{display:none}
  .hotrow b{flex-shrink:0;font-size:12px;font-weight:500;color:var(--gold);background:var(--gold-soft);
    border:1px solid var(--gold-soft);padding:4px 11px;border-radius:14px;cursor:pointer;white-space:nowrap}
  .mres{display:flex;align-items:center;justify-content:space-between;padding:11px 14px 0;font-size:12px;color:var(--sub)}
  .mres a{color:var(--primary-d);font-weight:600}

  /* 状态 */
  .empty{text-align:center;padding:56px 24px;color:var(--sub);font-size:13px;line-height:1.8}
  .empty .big{font-size:42px;margin-bottom:12px;opacity:.35}
  .empty button{margin-top:16px;background:var(--cta);color:var(--on-primary);
    padding:10px 26px;border-radius:22px;font-size:14px;font-weight:800}
  .loading{text-align:center;padding:26px;color:var(--sub);font-size:12px}

  /* 未登录提示 */
  .guard{padding:70px 30px 0;text-align:center}
  .guard .ic{font-size:52px;margin-bottom:16px;opacity:.85}
  .guard h2{font-size:17px;font-weight:700;margin-bottom:8px;color:#f2f5f9}
  .guard p{font-size:13px;color:var(--sub);line-height:1.7;margin-bottom:24px}
  .guard button{background:var(--cta);color:var(--on-primary);padding:11px 34px;border-radius:24px;
    font-size:15px;font-weight:800;box-shadow:0 6px 20px var(--glow-a)}

  /* 底部导航：强制常驻 —— z-index 高于所有浮层，浮层靠 bottom:var(--tbh) 给它让位 */
  .tabbar{flex-shrink:0;height:var(--tbh);padding-bottom:var(--safe-b);
    background:linear-gradient(180deg,var(--bg2),var(--bg));
    border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-around;
    position:relative;z-index:120}
  .tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;
    color:var(--dim);cursor:pointer;height:100%;justify-content:center;transition:color .15s;position:relative}
  .tab svg{width:23px;height:23px;transition:transform .18s ease}
  /* 激活态：主色 + 图标上浮 + 顶部一道细光条（不再用 drop-shadow 糊一团光晕） */
  .tab.on{color:var(--primary)}
  .tab.on svg{transform:translateY(-1px)}
  .tab.on::before{content:'';position:absolute;top:5px;left:50%;transform:translateX(-50%);
    width:16px;height:3px;border-radius:2px;background:var(--cta);box-shadow:var(--glow)}
  .tab.on span{color:var(--primary-l);font-weight:700}
  .tab.plus{flex:0 0 64px}
  .tab.plus .btn{width:50px;height:32px;border-radius:11px;
    background:var(--cta);
    display:flex;align-items:center;justify-content:center;color:var(--on-primary);font-size:23px;font-weight:400;
    box-shadow:0 4px 16px var(--glow-a),inset 0 1px 0 rgba(255,255,255,.35)}
  .tab.plus:active .btn{transform:scale(.94)}

  /* 详情 / 浮层：
     ① bottom:var(--tbh) —— 给常驻的底部导航让位，内容不会被压住；
     ② z-index 一律 < 120（导航），保证导航永远在最上层。 */
  .detail{position:absolute;top:0;left:0;right:0;bottom:var(--tbh);background:var(--bg);z-index:40;transform:translateX(100%);
    transition:transform .26s ease;overflow:hidden;overscroll-behavior:contain;display:flex;flex-direction:column}
  .detail.on{transform:translateX(0)}
  /* 帖子详情打开：底部导航隐藏，详情页占满，功能栏顶替导航位置 */
  body.detail-open .tabbar{display:none}
  body.detail-open #detail{bottom:0}
  body.detail-open #chat{bottom:0}
  .detail.dragging{transition:none}
  .detail::-webkit-scrollbar{display:none}
  .dhead{position:sticky;top:0;background:rgba(11,14,19,.92);backdrop-filter:blur(18px) saturate(160%);
    border-bottom:1px solid var(--line);z-index:5;padding-top:var(--safe-t);flex-shrink:0}
  .dhead .row{height:48px;display:flex;align-items:center;gap:10px;padding:0 12px}
  .dhead .back{font-size:26px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;line-height:1;color:var(--sub)}
  .dhead .t{flex:1;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--text)}
  .dbody{flex:1;padding:14px 16px 34px;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  /* 正文上下快捷定位按钮 */
  .d-jump{position:absolute;right:12px;bottom:72px;display:none;flex-direction:column;gap:8px;z-index:6}
  .d-jump.on{display:flex}
  .dj-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--line2);background:var(--card);
    color:var(--sub);font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.12);
    display:flex;align-items:center;justify-content:center;transition:.15s}
  .dj-btn:active{transform:scale(.92);color:var(--text)}
  /* 图片放大 lightbox */
  .lb-mask{position:fixed;inset:0;background:rgba(0,0,0,.94);z-index:500;display:flex;align-items:center;justify-content:center;
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:lbFade .2s ease}
  .lb-mask img{max-width:92%;max-height:88vh;object-fit:contain;border-radius:12px;
    box-shadow:0 20px 60px rgba(0,0,0,.55);animation:lbZoom .25s cubic-bezier(.2,.9,.3,1.15)}
  .lb-close{position:absolute;top:16px;right:16px;width:38px;height:38px;border-radius:50%;
    background:rgba(255,255,255,.14);color:#fff;font-size:17px;line-height:1;
    display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(4px)}
  .lb-close:active{transform:scale(.92)}
  @keyframes lbFade{from{opacity:0}to{opacity:1}}
  @keyframes lbZoom{from{transform:scale(.82);opacity:0}to{transform:scale(1);opacity:1}}

  /* 帖子底部功能栏：替换底部导航，5 个功能区（评论输入/赞/收藏/回复/私聊） */
  .dbar{flex-shrink:0;display:flex;align-items:center;gap:10px;padding:8px 12px;padding-bottom:calc(8px + var(--safe-b));
    background:linear-gradient(180deg,var(--bg2),var(--bg));border-top:1px solid var(--line);z-index:6}
  .dbar-input{flex:1;min-width:0;height:38px;border-radius:20px;background:var(--card2);border:1px solid var(--line2);
    display:flex;align-items:center;padding:0 15px;cursor:text}
  .dbar-input .ph{font-size:13px;color:var(--dim)}
  .dbar-acts{display:flex;align-items:center;gap:2px;flex-shrink:0}
  .dbar-acts .act{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 9px;cursor:pointer;min-width:44px}
  .dbar-acts .act .ic{font-size:20px;line-height:1;transition:transform .15s}
  .dbar-acts .act:active .ic{transform:scale(.85)}
  .dbar-acts .act .lb{font-size:10px;color:var(--dim)}
  .dbar-acts .act.on .ic{color:var(--like)}
  .dbar-acts .act.on .lb{color:var(--like)}
  #actFav.on .ic{color:var(--warn)}
  #actFav.on .lb{color:var(--warn)}
  .dbar-acts .act.off{opacity:.4}          /* 不可用状态（如老论坛帖的删除） */
  /* 精选字样（列表标题 / 详情标题通用） */
  .feat-pill{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.5px;padding:1.5px 6px;border-radius:6px;
    background:linear-gradient(135deg,#ffd54f,#ff9800);color:#3d2400;margin-right:5px;vertical-align:1.5px;
    box-shadow:0 2px 6px rgba(255,152,0,.32)}
  h1 .feat-pill{font-size:11px;vertical-align:2.5px;margin-right:6px}
  /* 详情页：IP 归属行 + 右侧「管理」 */
  .d-georow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-4px 0 12px;min-height:24px}
  .d-manage{flex-shrink:0;font-size:12px;color:var(--sub);background:var(--card2);border:1px solid var(--line2);
    border-radius:14px;padding:4px 11px;cursor:pointer}
  .d-manage:active{background:var(--elev)}

  /* 评论输入条：呼出键盘时上移 */
  .dreply{flex-shrink:0;display:flex;align-items:flex-end;gap:10px;padding:8px 12px;padding-bottom:calc(8px + var(--safe-b));
    background:var(--bg2);border-top:1px solid var(--line);z-index:7}
  .dr-input{flex:1;min-height:38px;max-height:120px;overflow-y:auto;border-radius:12px;background:var(--card2);
    border:1px solid var(--line2);padding:9px 13px;font-size:14px;color:var(--text);line-height:1.5;outline:none;word-break:break-word}
  .dr-input:empty::before{content:attr(data-ph);color:var(--dim);pointer-events:none}
  .dr-send{flex-shrink:0;height:38px;padding:0 20px;border:none;border-radius:12px;background:var(--cta);color:var(--on-primary);
    font-size:14px;font-weight:700;cursor:pointer}
  .dr-send:active{transform:scale(.96)}
  .dr-send:disabled{opacity:.5}
  /* 表情按钮在输入框内部（右下角） */
  .dr-wrap{flex:1;position:relative}
  .dr-emoji-in{position:absolute;right:6px;bottom:6px;width:30px;height:30px;border:none;border-radius:50%;
    background:none;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.7;z-index:2}
  .dr-emoji-in:active{transform:scale(.9);opacity:1}
  .dr-wrap .dr-input{padding-right:44px;padding-bottom:12px}
  /* 表情面板 */
  .emoji-panel{position:fixed;z-index:500;width:288px;max-height:220px;overflow-y:auto;background:var(--bg2);
    border:1px solid var(--line2);border-radius:14px;padding:12px;display:grid;grid-template-columns:repeat(8,1fr);
    gap:4px;box-shadow:0 10px 30px rgba(0,0,0,.4)}
  .emoji-panel .em{font-size:24px;line-height:1;text-align:center;cursor:pointer;padding:4px 0;border-radius:8px;transition:.1s}
  .emoji-panel .em:active{transform:scale(1.25);background:var(--card2)}
  .pub-richtext{position:relative}
  .rt-emoji{position:absolute;right:18px;top:16px;width:34px;height:34px;border:none;border-radius:10px;
    background:var(--card2);border:1px solid var(--line2);font-size:17px;cursor:pointer;z-index:2;
    display:flex;align-items:center;justify-content:center}

  /* 私聊气泡 */
  .mline{display:flex;margin:8px 0}
  .mline.me{justify-content:flex-end}
  .mline.peer{justify-content:flex-start}
  .mline .bubble{max-width:76%;padding:9px 13px;border-radius:16px;font-size:14px;line-height:1.55;word-break:break-word}
  .mline.me .bubble{background:var(--cta);color:var(--on-primary);border-bottom-right-radius:4px}
  .mline.peer .bubble{background:var(--card2);color:var(--text);border:1px solid var(--line2);border-bottom-left-radius:4px}

  /* 同城手选地区网格 */
  .city-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
  .city-item{text-align:center;padding:13px 0;border-radius:12px;background:var(--card);border:1px solid var(--line);
    font-size:14px;color:var(--text);cursor:pointer;transition:all .15s}
  .city-item:active{transform:scale(.95)}
  .city-item.on{background:var(--cta);color:var(--on-primary);border-color:transparent;font-weight:700}

  .dbody h1{font-size:18px;line-height:1.42;font-weight:700;margin-bottom:12px;color:var(--text)}
  .dauthor{display:flex;align-items:center;gap:9px;padding:10px 0 14px;border-bottom:1px solid var(--line);margin-bottom:14px}
  .dauthor .av{width:38px;height:38px;border-radius:50%;flex-shrink:0}
  .dauthor .info{flex:1;min-width:0}
  .dauthor .nm{font-size:14px;font-weight:600;color:var(--text)}
  .dauthor .tm{font-size:11px;color:var(--sub);margin-top:2px}
  .d-friend-btn{flex-shrink:0;font-size:12px;color:var(--cta);border:1px solid var(--cta);border-radius:14px;
    padding:4px 12px;cursor:pointer;background:transparent;white-space:nowrap}
  .d-friend-btn:active{opacity:.7}
  /* 消息页 tab */
  .msg-tabs{display:flex;gap:20px;padding:12px 16px 4px;font-size:14px;font-weight:600}
  .msg-tabs span{position:relative;color:var(--sub);cursor:pointer;padding-bottom:6px}
  .msg-tabs span.on{color:var(--text)}
  .msg-tabs span.on::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--cta);border-radius:2px}
  .msg-tabs em{font-style:normal;background:var(--like);color:#fff;border-radius:8px;font-size:10px;
    padding:1px 5px;margin-left:4px;vertical-align:1px}
  /* 消息页社交模块 */
  .msg-social{display:flex;gap:8px;padding:12px 16px 4px}
  .msg-social .ms-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;
    background:var(--card2);border:1px solid var(--line2);border-radius:12px;cursor:pointer}
  .msg-social .ms-item:active{transform:scale(.97)}
  .msg-social .ms-item .ic{font-size:20px}
  .msg-social .ms-item .lb{font-size:11px;color:var(--sub)}
  /* 添加朋友搜索 */
  .af-search{display:flex;gap:8px}
  .af-search input{flex:1;height:42px;border:1px solid var(--line2);border-radius:21px;padding:0 16px;
    font-size:14px;color:var(--text);background:var(--card2);outline:none}
  .dcontent{font-size:15px;line-height:1.78;color:var(--text);word-break:break-word}
  /* 手册信息卡（品牌/车型/文件大小/网盘/备注） */
  .mcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;margin:14px 0}
  .mcard .mh{font-size:13px;font-weight:700;color:var(--text);margin-bottom:10px}
  .mcard .mlist{display:flex;flex-direction:column;gap:9px}
  .mcard .mrow{font-size:13px;display:flex;gap:8px;align-items:baseline;padding:8px 10px;background:var(--card2);border-radius:8px}
  .mcard .mrow .mk{color:var(--sub);flex-shrink:0;min-width:56px}
  .mcard .mrow .mv{color:var(--text);font-weight:600;word-break:break-all}
  .mcard .mnet{margin-top:12px;padding:11px;background:var(--card2);border-radius:10px}
  .mcard .mnet.locked{color:var(--sub);font-size:12.5px;text-align:center;line-height:1.7}
  .mcard .mnet .mlbl{font-size:12px;color:var(--sub);margin-bottom:9px}
  .mcard .mnet .mbtns{display:flex;gap:10px}
  .mcard .mnet .mbtn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;height:38px;
    border-radius:19px;font-size:13px;font-weight:700;background:var(--card);color:var(--text);
    border:1px solid var(--line2);cursor:pointer;text-decoration:none;transition:.15s}
  .mcard .mnet .mbtn.primary{background:var(--cta);color:var(--on-primary);border-color:var(--cta)}
  .mcard .mnet .mbtn:active{transform:scale(.96)}
  .mcard .mnet .mval{font-size:12.5px;color:var(--text);word-break:break-all;margin-bottom:4px;line-height:1.6}
  .mcard .mnet .mval a{color:var(--primary-l);text-decoration:none}
  .mcard .mcopy{margin-top:9px;font-size:12px;padding:6px 16px;border-radius:16px;border:1px solid var(--cta);
    background:transparent;color:var(--cta);cursor:pointer}
  .mcard .mremark{margin-top:11px;font-size:12.5px;color:var(--sub);line-height:1.7}
  .mcard .mremark span{color:var(--dim);margin-right:6px}
  .mcard .mdecl{margin-top:9px;font-size:12px;color:#4caf50}
  .dcontent img{max-width:100%;height:auto;border-radius:10px;margin:10px 0}
  /* Discuz 表情：行内小图标，不占整行、不放大 */
  .dcontent img.smiley,.cmt img.smiley,.cquote img.smiley{width:22px;height:22px;max-width:22px;vertical-align:-4px;
    margin:0 1px;border-radius:0;display:inline-block}
  .dcontent blockquote{background:var(--card2);border-left:3px solid var(--primary);padding:8px 12px;margin:10px 0;
    color:var(--sub);border-radius:0 8px 8px 0;font-size:14px}
  .dstats{display:flex;gap:18px;font-size:12px;color:var(--sub);margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}
  .dlink{display:block;text-align:center;margin-top:18px;color:var(--primary-d);font-size:13px;font-weight:600}

  /* 赞墙（用赞换手册） */
  .paywall{background:linear-gradient(160deg,var(--elev),var(--card));border:1px solid var(--gold-soft);border-radius:var(--radius);
    padding:22px 18px;text-align:center;margin:6px 0 16px;box-shadow:inset 0 1px 0 var(--glass)}
  .paywall .ico{font-size:40px;margin-bottom:10px;filter:drop-shadow(0 0 12px var(--glow-a))}
  .paywall h3{font-size:16px;font-weight:700;margin-bottom:6px;color:var(--text)}
  .paywall .desc{font-size:12px;color:var(--sub);line-height:1.7;margin-bottom:14px}
  .paywall .price{font-size:26px;font-weight:800;color:var(--like);line-height:1.1;font-variant-numeric:tabular-nums}
  .paywall .price small{font-size:13px;font-weight:600;margin-left:3px;color:var(--like)}
  .paywall .btn{margin-top:15px;width:100%;background:var(--cta);color:var(--on-primary);
    padding:13px;border-radius:26px;font-size:15px;font-weight:800;box-shadow:0 6px 20px var(--glow-a)}
  .paywall .btn.ghost{background:var(--card2);color:var(--gold);border:1.5px solid var(--line2);box-shadow:none}
  .paywall .bal{font-size:12px;color:#8d95a1;margin-top:10px}
  .attlist{margin-top:16px}
  .attlist .h{font-size:13px;font-weight:700;margin-bottom:9px;color:#dfe5ee}
  .att{display:flex;align-items:center;gap:10px;padding:11px 12px;background:var(--card2);border:1px solid var(--line);
    border-radius:11px;margin-bottom:8px;font-size:13px;text-decoration:none;color:var(--text)}
  .att .fi{font-size:18px}
  .att .nm2{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .att .sz{font-size:11px;color:var(--sub);flex-shrink:0}
  .att .dl{font-size:11px;color:var(--primary-d);font-weight:600;flex-shrink:0}

  /* ===== 评论 / 引用回复 ===== */
  .csec{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}
  .csec .ch{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
  .csec .ch b{font-size:15px;font-weight:700;color:#eef1f6}
  .csec .ch span{font-size:11px;color:var(--sub)}
  /* 小红书式回复：无线条，靠留白分隔；引用=树状二级子节点（缩进浅底） */
  .cmt{display:flex;gap:12px;padding:13px 0}
  .cmt .av{width:34px;height:34px;border-radius:50%;flex-shrink:0;font-size:14px;font-weight:800;
    background:linear-gradient(135deg,#3a4351,#252b34);color:#c6ced8;
    display:flex;align-items:center;justify-content:center}
  .cmt .mx{flex:1;min-width:0}
  .cmt .mh{display:flex;align-items:baseline;gap:8px}
  .cmt .mh b{font-size:13px;font-weight:700;color:#cfd7e2}
  .cmt .mh span{margin-left:auto;font-size:10.5px;color:#616a77;flex-shrink:0}
  .cmt .mt{margin-top:5px;font-size:13.5px;line-height:1.66;color:#c3cbd6;word-break:break-word}
  .cmt .mt img{max-width:100%;border-radius:8px;margin:8px 0}
  /* 树状二级子节点：缩进 + 浅底圆角块（替代老式左边线引用） */
  .csub{margin:7px 0 2px;padding:8px 11px;background:#171b22;border-radius:10px;
    font-size:12.5px;line-height:1.6;color:#8d95a1;word-break:break-word}
  .csub b{color:#a9b3c0;font-weight:700;margin-right:4px}
  /* 回复操作行（楼层回复 / 删除自己的回复） */
  .cacts{margin-top:6px;display:flex;justify-content:flex-end;gap:16px}
  .creply{font-size:11px;color:#616a77;cursor:pointer}
  .creply:active{color:var(--primary-l)}
  .cdel{font-size:11px;color:#616a77;cursor:pointer}
  .cdel:active{color:var(--like)}
  .cfoot{text-align:center;padding:14px 0 4px;font-size:11.5px;color:var(--dim)}
  .cfoot button{font-size:12.5px;font-weight:700;color:var(--primary-d)}

  /* 消息 / 我 */
  .listcard{background:var(--card);border:1px solid var(--line);margin:12px;border-radius:var(--radius);overflow:hidden}
  .mi{display:flex;align-items:center;gap:12px;padding:15px 16px;border-bottom:1px solid var(--line);cursor:pointer}
  .mi:last-child{border-bottom:none}
  .mi:active{background:var(--card2)}
  .mi .ic{width:38px;height:38px;border-radius:11px;background:var(--glass);border:1px solid var(--line2);
    display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
  .mi .tx{flex:1;min-width:0}
  .mi .tx b{font-size:14px;font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
  .mi .tx span{font-size:11px;color:var(--sub)}
  .mi .ar{color:var(--dim)}
  /* 私信列表：iOS 风格左滑删除 */
  .swipe{position:relative;overflow:hidden;background:#ff3b30}
  .swipe .swipe-body{position:relative;z-index:2;background:var(--card);
    transition:transform .22s cubic-bezier(.25,.8,.3,1);will-change:transform;
    border-bottom:1px solid var(--line)}
  .swipe:last-child .swipe-body{border-bottom:none}
  .swipe .swipe-del{position:absolute;right:0;top:0;bottom:0;width:84px;z-index:1;
    display:flex;align-items:center;justify-content:center;background:#ff3b30;color:#fff;
    font-size:13.5px;font-weight:700;letter-spacing:.5px}
  .swipe .swipe-del:active{background:#e0322a}

  .me-hero{background:
      radial-gradient(90% 120% at 12% 0%,var(--glow-a),transparent 60%),
      linear-gradient(160deg,var(--elev),var(--bg));
    border-bottom:1px solid var(--line);padding:24px 20px 30px;position:relative;overflow:hidden}
  .me-hero::after{content:'';position:absolute;right:-24px;bottom:-30px;width:150px;height:150px;border-radius:50%;
    background:radial-gradient(circle,var(--glow-b),transparent 68%)}
  .me-hero .top{display:flex;align-items:center;gap:13px;position:relative;z-index:2}
  .me-hero .av{width:58px;height:58px;border-radius:50%;
    border:2px solid var(--glass);flex-shrink:0;box-shadow:0 0 20px var(--glow-a)}
  .me-hero .nm{font-size:18px;font-weight:700;color:var(--text)}
  .me-hero .grp{display:inline-flex;align-items:center;gap:4px;margin-top:6px;background:var(--gold-soft);
    border:1px solid var(--gold-soft);padding:3px 11px;border-radius:20px;font-size:11px;font-weight:800;color:var(--gold)}
  .me-stats{display:flex;background:var(--card);border:1px solid var(--line);margin:-18px 14px 0;border-radius:var(--radius);
    position:relative;z-index:3;box-shadow:0 10px 26px rgba(0,0,0,.5);overflow:hidden}
  .me-stats div{flex:1;text-align:center;padding:14px 4px}
  .me-stats div+div{border-left:1px solid var(--line)}
  .me-stats b{display:block;font-size:16px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
  .me-stats b.gas{color:var(--like);font-weight:900}
  .me-stats b.sell{color:#ffb800}
  .me-stats span{font-size:11px;color:var(--sub)}
  .me-stats.five div{padding:12px 2px}
  .me-stats.five b{font-size:14.5px}
  .me-stats.five span{font-size:10px}
  .me-stats .sp-entry{cursor:pointer;background:linear-gradient(160deg,rgba(255,193,7,.16),rgba(255,149,0,.05));position:relative}
  .me-stats .sp-entry b{font-size:19px;filter:drop-shadow(0 0 6px rgba(255,193,7,.65));animation:spStar 2.2s ease-in-out infinite}
  .me-stats .sp-entry span{color:#ffc107;font-weight:700}
  @keyframes spStar{0%,100%{transform:scale(1)}50%{transform:scale(1.14)}}

  /* 等级进度（赞 = 用户组） */
  .lvcard{background:var(--card);border:1px solid var(--line);margin:12px;border-radius:var(--radius);padding:14px 16px}
  .lvcard .hd{display:flex;justify-content:space-between;font-size:11.5px;color:var(--sub);margin-bottom:9px}
  .lvcard .hd em{font-style:normal;color:var(--gold);font-weight:700}
  .lvbar{height:8px;background:var(--card2);border-radius:4px;overflow:hidden}
  .lvbar i{display:block;height:100%;border-radius:4px;
    background:linear-gradient(90deg,var(--primary),var(--gold));box-shadow:0 0 12px var(--glow-a);transition:width .5s}
  .lvcard .ft{font-size:11px;color:var(--dim);margin-top:9px}

  /* 皮肤切换器 */
  .skinbox{background:var(--card);border:1px solid var(--line);margin:12px;border-radius:var(--radius);padding:14px 16px}
  .skinbox .shd{font-size:12px;color:var(--sub);margin-bottom:12px}
  .srow{display:flex;gap:8px}
  .sk{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 4px 10px;
    border-radius:12px;border:1.5px solid var(--line);cursor:pointer;transition:.15s}
  .sk:active{transform:scale(.97)}
  .sk.on{border-color:var(--primary);background:var(--glass);box-shadow:0 0 0 1px var(--primary) inset}
  .sk .dot{width:26px;height:26px;border-radius:50%;box-shadow:0 0 12px var(--glow-a)}
  .sk .nm{font-size:11px;color:var(--sub);line-height:1.3;text-align:center}
  .sk.on .nm{color:var(--text);font-weight:700}

  #toastBox{position:absolute;left:50%;bottom:86px;transform:translateX(-50%);background:rgba(22,25,31,.96);
    border:1px solid #333a45;color:#eef1f6;padding:9px 17px;border-radius:20px;font-size:12px;opacity:0;transition:.3s;
    pointer-events:none;z-index:999;max-width:80%;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.6)}

  /* ===== 视频 ===== */
  .vgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px 26px}
  .vcard{background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--line);
    border-radius:12px;overflow:hidden;box-shadow:0 6px 16px rgba(0,0,0,.35);cursor:pointer;transition:transform .12s}
  .vcard:active{transform:scale(.97)}
  .vthumb{position:relative;width:100%;aspect-ratio:16/10;background:var(--card2);overflow:hidden}
  .vthumb img{width:100%;height:100%;object-fit:cover;display:block}
  .vthumb .pl{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    font-size:26px;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.8)}
  .vthumb .dur{position:absolute;right:6px;bottom:6px;background:rgba(6,7,10,.78);color:var(--text);
    font-size:10px;padding:1px 6px;border-radius:8px}
  .vthumb .newtag{position:absolute;left:6px;top:6px;background:var(--cta);
    color:var(--on-primary);font-size:10px;font-weight:800;padding:1px 7px;border-radius:8px}
  .vthumb .vdel{position:absolute;right:6px;top:6px;background:rgba(0,0,0,.66);color:#fff;
    font-size:10px;font-weight:600;padding:2px 8px;border-radius:8px;backdrop-filter:blur(4px)}
  .vcard .vt{padding:8px 9px 4px;font-size:12.5px;font-weight:600;line-height:1.4;color:var(--text);
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .vcard .vm{padding:0 9px 10px;font-size:11px;color:var(--sub);display:flex;gap:7px;align-items:center}
  /* 上传 */
  .vdrop{margin:16px;border:1.5px dashed var(--line2);border-radius:var(--radius);background:var(--card);
    padding:26px 18px;text-align:center;cursor:pointer;transition:.15s}
  .vdrop:active{background:var(--card2);border-color:var(--primary)}
  .vdrop .ic{font-size:34px;margin-bottom:9px;opacity:.85}
  .vdrop .h{font-size:14px;font-weight:700;margin-bottom:6px;color:var(--text)}
  .vdrop .s{font-size:11.5px;color:var(--sub);line-height:1.7}
  .vbox{margin:0 16px 14px;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:14px;
    box-shadow:0 6px 16px rgba(0,0,0,.35)}
  .vbox .nm{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vbox .bar{height:6px;border-radius:3px;background:var(--card2);margin:11px 0 8px;overflow:hidden}
  .vbox .bar i{display:block;height:100%;width:0;border-radius:3px;
    background:linear-gradient(90deg,var(--primary),var(--gold));transition:width .2s}
  .vbox .st{font-size:11.5px;color:var(--sub);display:flex;justify-content:space-between;gap:10px}
  .vplay-wrap{margin:0 16px 14px;background:#000;border-radius:13px;overflow:hidden;border:1px solid var(--line)}
  .vplay-wrap video{width:100%;display:block;max-height:300px;background:#000}
  .vf{margin:0 16px 16px}
  .vf label{display:block;font-size:12px;color:var(--sub);font-weight:600;margin:12px 0 6px}
  .vf input,.vf textarea{width:100%;border:none;font-size:15px;padding:9px 0;color:var(--text);
    border-bottom:1px solid var(--line);background:none;outline:none;font-family:inherit}
  .vf textarea{font-size:14px;line-height:1.6;resize:none;min-height:96px;border:1px solid var(--line);
    border-radius:10px;padding:10px 12px;background:var(--card)}
  .vbtn{width:100%;padding:13px;border-radius:24px;font-size:15px;font-weight:800;color:var(--on-primary);
    background:var(--cta);box-shadow:0 6px 20px var(--glow-a)}
  .vbtn:disabled{opacity:.5}

  /* ===== 发帖编辑器（v2）===== */
  .pub-head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;
    border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg2);z-index:5}
  .pub-head .cancel{font-size:14px;color:var(--sub)}
  .pub-head .acts{display:flex;align-items:center;gap:8px}
  .pub-head .preview{font-size:13px;color:var(--primary-d);padding:6px 10px}
  .pub-head .go{font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,#ff6b81,#ff2d55);
    padding:6px 18px;border-radius:18px;box-shadow:0 4px 14px rgba(255,45,85,.35)}
  .pub-head .go .hh{color:#ff2d55;text-shadow:0 0 3px #fff,0 0 3px #fff;margin-left:2px;font-size:14px}
  .pub-head .go:disabled{opacity:.4}
  /* 第一行：加号矩形 + 已选媒体缩略 */
  .pub-media{padding:14px 16px 4px}
  .pm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .pm-item{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--card2);
    border:1px solid var(--line)}
  .pm-item img,.pm-item video{width:100%;height:100%;object-fit:cover;display:block}
  .pm-item .rm{position:absolute;right:4px;top:4px;width:20px;height:20px;border-radius:50%;
    background:rgba(0,0,0,.66);color:#fff;font-size:13px;line-height:20px;text-align:center;z-index:2}
  .pm-item .vtag{position:absolute;left:4px;bottom:4px;background:rgba(0,0,0,.66);color:#fff;
    font-size:9px;padding:1px 5px;border-radius:6px}
  /* 视频格：封面/占位 + 居中播放按钮；点一下就地播放 */
  .pm-item .pm-vid{position:absolute;inset:0;cursor:pointer}
  .pm-item .pm-vid img{width:100%;height:100%;object-fit:cover;display:block}
  .pm-item .pm-vid .novid{width:100%;height:100%;background:linear-gradient(160deg,var(--elev),var(--card))}
  .pm-item .pm-vid .vplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    width:34px;height:34px;border-radius:50%;background:rgba(8,9,12,.62);border:1px solid rgba(255,255,255,.35);
    display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;padding-left:2px;
    box-shadow:0 4px 14px rgba(0,0,0,.45)}
  .pm-item .pm-vid video{width:100%;height:100%;object-fit:contain;background:#000}
  .pm-add{aspect-ratio:1;border-radius:12px;border:1.5px dashed var(--line2);background:var(--card);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;
    color:var(--dim);font-size:11px;transition:.15s}
  .pm-add:active{background:var(--card2);border-color:var(--primary)}
  .pm-add .plus{font-size:26px;font-weight:300;color:var(--sub);line-height:1}
  .pm-prog{position:absolute;left:0;right:0;bottom:0;height:6px;background:rgba(0,0,0,.45);z-index:2}
  .pm-prog i{display:block;height:100%;background:var(--cta);width:0;transition:width .2s}
  .pm-pct{position:absolute;right:6px;top:-24px;font-size:11px;font-weight:700;color:#fff;
    background:rgba(0,0,0,.7);padding:2px 8px;border-radius:10px;z-index:3}
  .pm-err{position:absolute;right:4px;bottom:4px;width:20px;height:20px;border-radius:50%;
    background:var(--like);color:#fff;font-size:12px;line-height:20px;text-align:center;z-index:2}
  /* 预览内容 */
  .pv-text{font-size:15px;line-height:1.7;color:var(--text);white-space:pre-wrap;word-break:break-word}
  .pv-media{margin-top:12px;display:flex;flex-direction:column;gap:8px}
  .pv-media img,.pv-media video{max-width:100%;border-radius:10px;display:block}
  .pv-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
  .pv-loc{font-size:12px;color:var(--sub);margin-top:12px}
  .pv-meta{font-size:12px;color:var(--dim);margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
  /* 第二行：富文本 */
  .pub-richtext{padding:12px 16px 6px}
  .pub-richtext .rt{min-height:88px;font-size:15px;line-height:1.7;color:var(--text);outline:none;
    word-break:break-word;border:none;background:none;white-space:pre-wrap}
  .pub-richtext .rt:empty::before{content:attr(data-ph);color:var(--dim)}
  /* 第三行：#标签 */
  .pub-tags{padding:10px 16px}
  .pt-row{display:flex;flex-wrap:wrap;gap:8px}
  .pt-chip{font-size:12px;padding:5px 12px;border-radius:16px;background:var(--card2);
    border:1px solid var(--line);color:var(--sub);cursor:pointer;transition:.15s}
  .pt-chip.on{background:var(--glass);border-color:var(--primary);color:var(--primary-l)}
  .pt-add{font-size:12px;padding:5px 12px;border-radius:16px;background:var(--glass);
    border:1px dashed var(--line2);color:var(--primary-d);cursor:pointer}
  .pub-tags .pt-inp{margin-top:8px;font-size:13px;color:var(--text);border-bottom:1px solid var(--line);
    padding:4px 0;width:100%}
  /* 第四行：地区 */
  .pub-loc{padding:10px 16px;display:flex;align-items:center;gap:10px}
  .pub-loc .ico{font-size:16px}
  .pub-loc .loc-txt{font-size:13px;color:var(--text);flex:1}
  .pub-loc .loc-txt .hint{color:var(--dim);font-size:12px}
  .pub-loc .re{font-size:12px;color:var(--primary-d)}
  /* 第五行：发布设置 */
  .pub-set{padding:10px 16px 24px}
  .ps-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
  .ps-row:last-child{border-bottom:none}
  .ps-row .lb{font-size:13px;color:var(--sub);width:76px;flex-shrink:0}
  .ps-row .opts{flex:1;display:flex;flex-wrap:wrap;gap:7px}
  .ps-row .opt{font-size:12px;padding:4px 12px;border-radius:15px;background:var(--card2);
    border:1px solid var(--line);color:var(--sub);cursor:pointer;transition:.15s}
  .ps-row .opt.on{background:var(--glass);border-color:var(--primary);color:var(--primary-l)}
  .ps-row .opt.ai{display:flex;align-items:center;gap:4px}
  .ps-row .opt input[type=checkbox]{accent-color:var(--primary)}
  /* 可见范围下拉 */
  .ps-row .viswrap{flex:1;position:relative}
  .ps-row .vsel{display:flex;align-items:center;justify-content:space-between;gap:8px;
    font-size:13px;padding:7px 12px;border-radius:10px;background:var(--card2);
    border:1px solid var(--line);color:var(--text);cursor:pointer}
  .ps-row .vsel .car{color:var(--dim);font-size:12px;transition:.15s}
  .ps-row .vdrop{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;
    background:var(--elev);border:1px solid var(--line2);border-radius:12px;overflow:hidden;
    box-shadow:0 12px 30px rgba(0,0,0,.5)}
  .ps-row .vopt{padding:11px 14px;font-size:13px;color:var(--text);cursor:pointer;
    display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
  .ps-row .vopt:last-child{border-bottom:none}
  .ps-row .vopt:active{background:var(--glass)}
  .ps-row .vopt.on{color:var(--primary-l);font-weight:600}
  /* 预览层 */
  #pubPreview{position:absolute;top:0;left:0;right:0;bottom:var(--tbh);background:var(--bg);z-index:70;
    transform:translateX(100%);transition:transform .26s ease;overflow-y:auto;display:flex;flex-direction:column}
  #pubPreview.on{transform:translateX(0)}
  /* 媒体选择底部弹层 */
  .sheet-mask{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:160;display:none;backdrop-filter:blur(2px)}
  .sheet-mask.on{display:block}
  /* 删除确认弹窗 */
  .confirm-mask{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:200;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(2px)}
  .confirm-box{background:var(--card);border-radius:16px;padding:26px 22px 18px;width:82%;max-width:320px;text-align:center;animation:popIn .18s ease}
  @keyframes popIn{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}
  .confirm-box .c-ic{font-size:40px;margin-bottom:10px}
  .confirm-box .c-title{font-size:15px;font-weight:600;color:var(--text);line-height:1.5}
  .confirm-box .c-desc{font-size:12px;color:var(--sub);margin-top:8px;line-height:1.6}
  .confirm-box .c-btns{display:flex;gap:10px;margin-top:20px}
  .confirm-box .c-btns button{flex:1;height:42px;border-radius:21px;font-size:14px;font-weight:600;border:none;cursor:pointer}
  .confirm-box .c-cancel{background:var(--card2);color:var(--text)}
  .confirm-box .c-ok{background:var(--like);color:#fff}
  .sheet{position:absolute;left:0;right:0;bottom:0;background:var(--card);border-radius:20px 20px 0 0;
    padding:8px 16px calc(16px + var(--safe-b));z-index:161;animation:sheetUp .22s ease}
  @keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
  .sheet .grab{width:36px;height:4px;border-radius:2px;background:var(--line2);margin:8px auto 14px}
  /* 登录弹窗 */
  .sheet > input{width:100%;height:44px;border:1px solid var(--line2);border-radius:22px;padding:0 18px;
    font-size:14px;background:var(--card2);color:var(--text);outline:none}
  .sheet > input:focus{border-color:var(--cta)}
  .lg-captcha{display:flex;gap:10px;margin-top:10px;align-items:stretch}
  .lg-captcha input{flex:1;height:44px;border:1px solid var(--line2);border-radius:22px;padding:0 18px;
    font-size:14px;background:var(--card2);color:var(--text);outline:none;min-width:0}
  .lg-captcha span{flex-shrink:0;height:44px;width:110px;border-radius:10px;overflow:hidden;cursor:pointer;
    background:var(--card2);border:1px solid var(--line2);display:flex;align-items:center;justify-content:center}
  .lg-captcha span svg{width:100%;height:100%}
  /* 个人中心 */
  .pf-rows{background:var(--card2);border-radius:14px;padding:6px 14px;margin-bottom:14px}
  .pf-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line)}
  .pf-row:last-child{border-bottom:none}
  .pf-row .k{font-size:12px;color:var(--sub);flex-shrink:0;margin-right:14px}
  .pf-row b{font-size:13.5px;color:var(--text);text-align:right;word-break:break-all}
  .pf-pwd{padding:14px;background:var(--card2);border-radius:14px}
  .pf-pwd input{width:100%;height:42px;border:1px solid var(--line2);border-radius:12px;padding:0 14px;
    font-size:14px;background:var(--bg2);color:var(--text);outline:none}
  .pf-pwd input:focus{border-color:var(--cta)}
  /* 个人中心：昵称 */
  .pf-nick{padding:14px;background:var(--card2);border-radius:14px;margin-bottom:14px}
  .nk-line{display:flex;align-items:center;gap:10px}
  .nk-line input{flex:1;min-width:0;height:42px;border:1px solid var(--line2);border-radius:12px;padding:0 14px;
    font-size:14px;background:var(--bg2);color:var(--text);outline:none}
  .nk-line input:focus{border-color:var(--cta)}
  .nk-line input:disabled{opacity:.6;color:var(--sub)}
  .nk-btn{flex-shrink:0;height:42px;padding:0 14px;border:none;border-radius:12px;font-size:12.5px;font-weight:800;
    color:var(--on-primary);background:var(--cta);cursor:pointer}
  .nk-btn:disabled{opacity:.45}
  .nk-lb{font-size:12px;color:var(--sub);flex:1}
  .nk-seg{display:flex;border:1px solid var(--line2);border-radius:10px;overflow:hidden}
  .nk-seg b{padding:7px 18px;font-size:12.5px;font-weight:700;color:var(--sub);cursor:pointer}
  .nk-seg b.on{background:var(--cta);color:var(--on-primary)}
  .nk-tip{font-size:11px;color:var(--dim);line-height:1.7;margin-top:10px}
  .nk-acts{display:flex;gap:10px;margin-top:12px}
  .nk-acts .sg-btn{flex:1;padding:11px 0}
  .sheet .opt-big{display:flex;align-items:center;gap:14px;padding:15px 6px;border-bottom:1px solid var(--line);
    font-size:15px;color:var(--text);cursor:pointer}
  .sheet .opt-big:last-child{border-bottom:none}
  .sheet .opt-big .ic{font-size:22px;width:30px;text-align:center}
  /* 赞助得赞 */
  .sp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
  .sp-tier{border:1px solid var(--line2);border-radius:12px;padding:14px 6px;text-align:center;cursor:pointer;transition:.15s}
  .sp-tier:active{transform:scale(.96)}
  .sp-tier.on{border-color:var(--cta);background:rgba(255,149,0,.08)}
  .sp-tier .m{font-size:17px;font-weight:700;color:var(--text)}
  .sp-tier .c{font-size:11px;color:var(--like);margin-top:4px}
  .btn-main{width:100%;height:44px;background:var(--cta);color:var(--on-primary);border:none;border-radius:22px;
    font-size:15px;font-weight:700;cursor:pointer}
  .btn-main:active{transform:scale(.97)}
  /* 赞助弹窗（参考老站样式：居中卡片 + Logo二维码 + 已完成付款） */
  .sp-mask{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:210;display:flex;align-items:center;justify-content:center;
    backdrop-filter:blur(2px);padding:20px}
  .sp-dialog{background:#fff;border-radius:16px;width:100%;max-width:340px;max-height:88vh;overflow-y:auto;
    padding:18px 20px 20px;color:#241d15;animation:popIn .18s ease}
  .sp-dialog .sp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
  .sp-dialog .sp-head b{font-size:16px;font-weight:700}
  .sp-dialog .sp-head .x{font-size:22px;color:#999;cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center}
  .sp-dialog .sp-sub{font-size:12px;color:#8d8578;text-align:center;margin-bottom:14px}
  .sp-dialog .sp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
  .sp-dialog .sp-tier{border:1px solid #e6e8ee;border-radius:12px;padding:13px 6px;text-align:center;cursor:pointer}
  .sp-dialog .sp-tier.on{border-color:#ff9500;background:#fff7ed}
  .sp-dialog .sp-tier .m{font-size:16px;font-weight:800;color:#ef4444}
  .sp-dialog .sp-tier .c{font-size:10.5px;color:#ef4444;margin-top:3px}
  .sp-dialog .sp-note{font-size:11px;color:#8d8578;text-align:center;margin-top:16px;line-height:1.8}
  .sp-dialog .sp-paytitle{font-size:18px;font-weight:700;text-align:center;margin:6px 0 14px}
  .sp-dialog .sp-qrwrap{display:flex;justify-content:center;margin-bottom:10px}
  .sp-dialog .sp-qrwrap img{width:230px;height:230px;background:#fff;border-radius:10px;object-fit:contain;
    -webkit-touch-callout:default;user-select:auto;-webkit-user-select:auto}
  .sp-dialog .sp-qrhint{font-size:11.5px;line-height:1.7;text-align:center;color:#ef4444;
    background:#fff5f5;border:1px dashed #f5bcbc;border-radius:10px;padding:8px 10px;margin:0 0 10px}
  .sp-dialog .sp-payamt{text-align:center;font-size:13px;font-weight:700;color:#ef4444;margin-bottom:12px}
  .sp-dialog .sp-paid-btn{width:100%;height:44px;background:#07c160;color:#fff;border:none;border-radius:22px;
    font-size:15px;font-weight:700;cursor:pointer;margin-bottom:12px}
  .sp-dialog .sp-paid-btn:active{transform:scale(.98)}
  .sp-dialog .sp-tip{font-size:11px;color:#8d8578;text-align:center;line-height:1.8;margin-bottom:10px}
  .sp-dialog .sg-btn.ghost{background:#f4f2ec;color:#241d15;border:none;border-radius:22px;height:40px;font-weight:600}
  /* 播放器 */
  #player{background:#000;z-index:60}
  #player .dhead{background:rgba(0,0,0,.9);border-bottom-color:rgba(255,255,255,.12)}
  #player .dhead .t,#player .dhead .back{color:#fff}
  #player .pstage{flex:1;display:flex;align-items:center;justify-content:center;background:#000;min-height:0}
  #player video{width:100%;max-height:100%;display:block;background:#000}
  #player .pinfo{padding:14px 16px calc(18px + var(--safe-b));color:var(--sub)}
  #player .pinfo .t{color:#fff;font-size:15px;font-weight:600;line-height:1.5}
  #player .pinfo .m{font-size:11.5px;margin-top:8px;display:flex;gap:14px;flex-wrap:wrap}
  .vempty{padding:60px 30px;text-align:center;color:var(--sub);font-size:13px;line-height:1.9}  .vempty .big{font-size:46px;opacity:.35;margin-bottom:12px}
  /* 列表翻页时的底部轻提示（避免滑到底像没反应） */
  .loadmore{text-align:center;font-size:12px;color:var(--dim);padding:14px 0 18px;letter-spacing:.5px}
  .loadmore::before{content:'';display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px;
    border:2px solid var(--line2);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}
  @keyframes spin{to{transform:rotate(360deg)}}
  /* 站点统计 */
  .stat-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:12px 14px}
  .stat-cards .sc{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 6px;text-align:center}
  .stat-cards .sc b{display:block;font-size:15px;font-weight:800;color:var(--text)}
  .stat-cards .sc span{font-size:11px;color:var(--sub)}
  .stat-sec{padding:4px 14px 14px}
  .stat-sec .sh{font-size:13px;font-weight:700;color:var(--text);margin:10px 0 8px}
  .stat-row{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--card);border:1px solid var(--line);
    border-radius:10px;margin-bottom:6px}
  .stat-row .rk{width:20px;height:20px;border-radius:50%;background:var(--card2);color:var(--sub);font-size:11px;
    display:flex;align-items:center;justify-content:center;flex-shrink:0}
  .stat-row .nm{flex:1;font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .stat-row .vl{font-size:12px;color:var(--sub);flex-shrink:0}
  /* 用户资料卡 */
  .uc-mask{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:300;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease}
  .uc-card{background:var(--card);border:1px solid var(--line);border-radius:18px;width:88%;max-width:340px;padding:18px;position:relative}
  .uc-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
  .uc-head .avw{width:48px;height:48px;font-size:20px}
  .uc-head .nm{font-size:16px;font-weight:800;color:var(--text)}
  .uc-head .grp{font-size:12px;color:var(--sub);margin-top:3px}
  .uc-head .x{position:absolute;right:14px;top:12px;font-size:20px;color:var(--dim);cursor:pointer;line-height:1}
  .uc-stats{display:flex;background:var(--card2);border-radius:12px;padding:12px 4px;margin-bottom:14px}
  .uc-stats div{flex:1;text-align:center}
  .uc-stats div+div{border-left:1px solid var(--line)}
  .uc-stats b{display:block;font-size:15px;font-weight:800;color:var(--text)}
  .uc-stats b.gas{color:var(--like)}
  .uc-stats span{font-size:11px;color:var(--sub)}
  .uc-rows{background:var(--card2);border-radius:12px;padding:6px 14px}
  .mi .tx b .gone{font-style:normal;font-size:11px;color:var(--dim);margin-left:6px;font-weight:600}
  .uc-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
  .uc-row:last-child{border-bottom:none}
  .uc-row span{font-size:12px;color:var(--sub)}
  .uc-row b{font-size:13px;color:var(--text)}
  .uc-msg{width:100%;margin-top:14px;height:42px;border:none;border-radius:21px;background:var(--cta);
    color:var(--on-primary);font-size:14px;font-weight:800;cursor:pointer;transition:.15s}
  .uc-msg:active{transform:scale(.97)}
  .uc-friend{width:100%;margin-top:10px;height:42px;border:1px solid var(--line2);border-radius:21px;background:var(--card2);
    color:var(--text);font-size:14px;font-weight:700;cursor:pointer;transition:.15s}
  .uc-friend:active{transform:scale(.97)}
  .vbar{display:flex;align-items:center;gap:8px;padding:11px 14px 2px;font-size:12px;color:var(--sub)}
  .vbar .seg{margin-left:auto;display:flex;gap:6px}
  .vbar .seg b{font-weight:600;padding:4px 12px;border-radius:14px;background:var(--card2);color:var(--sub);cursor:pointer;
    border:1px solid var(--line)}
  .vbar .seg b.on{background:var(--cta);color:var(--on-primary);border-color:transparent}

  /* ===== 每日签到 ===== */
  .sg-hint{display:flex;align-items:flex-start;gap:7px;margin:12px 12px -4px;padding:10px 12px;border-radius:12px;
    font-size:11.5px;line-height:1.7;color:var(--sub);
    background:linear-gradient(135deg,rgba(255,55,95,.13),rgba(255,55,95,.04));
    border:1px solid rgba(255,55,95,.22)}
  .sg-hint .hh{font-size:13px;line-height:1.55;filter:drop-shadow(0 0 6px rgba(255,55,95,.55));flex-shrink:0}
  .sg-hint .tx{flex:1;min-width:0}
  .sg-hint b{color:var(--like);font-weight:800}
  .sg-card{display:flex;align-items:center;gap:12px;margin:12px;padding:14px 16px;border-radius:var(--radius);
    background:linear-gradient(135deg,var(--elev),var(--card));border:1px solid var(--gold-soft);
    box-shadow:0 6px 18px rgba(0,0,0,.4)}
  .sg-card .ic{width:42px;height:42px;border-radius:13px;flex-shrink:0;font-size:20px;
    background:var(--cta);display:flex;align-items:center;justify-content:center;
    box-shadow:0 4px 16px var(--glow-a)}
  .sg-card.done{background:var(--card);border-color:var(--line)}
  .sg-card.done .ic{background:linear-gradient(135deg,#34d058,#1f9d44);box-shadow:0 4px 14px rgba(48,209,88,.3)}
  .sg-card .tx{flex:1;min-width:0}
  .sg-card .tx b{display:block;font-size:14px;font-weight:700;color:var(--text)}
  .sg-card .tx span{display:block;font-size:11.5px;color:var(--sub);margin-top:3px}
  .sg-card .tx em{font-style:normal;font-weight:800;color:#ff4d4f;font-size:13px}
  .sg-btn{flex-shrink:0;padding:9px 18px;border-radius:20px;font-size:13.5px;font-weight:800;color:var(--on-primary);
    background:var(--cta);box-shadow:0 4px 16px var(--glow-a);transition:.15s}
  .sg-btn:active{transform:scale(.96)}
  .sg-btn:disabled{opacity:.5}
  .sg-btn.ghost{background:var(--card2);color:var(--sub);box-shadow:none;border:1px solid var(--line2)}
  .sg-hero{margin:16px;padding:22px 16px;border-radius:var(--radius);text-align:center;position:relative;overflow:hidden;
    background:radial-gradient(90% 130% at 50% 0%,var(--glow-a),transparent 65%),linear-gradient(160deg,var(--elev),var(--card));
    border:1px solid var(--gold-soft)}
  .sg-hero .n{font-size:46px;font-weight:800;line-height:1;color:var(--gold);font-variant-numeric:tabular-nums;
    text-shadow:0 0 26px var(--glow-a)}
  .sg-hero .u{font-size:12px;color:var(--sub);margin-top:7px}
  .sg-hero .r{margin-top:16px;font-size:13px;font-weight:600;color:var(--sub)}
  .sg-hero .r em{font-style:normal;font-weight:800;color:#ff4d4f;font-size:16px}
  .sg-cal{display:flex;gap:6px;margin:16px 16px 4px}
  .sg-cal .d{flex:1;text-align:center;font-size:10.5px;color:var(--sub)}
  .sg-cal .d i{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;
    border-radius:50%;background:var(--card2);font-style:normal;font-size:13px;color:var(--dim);margin-bottom:5px}
  .sg-cal .d.on i{background:linear-gradient(135deg,var(--gold),var(--primary));color:var(--on-primary);font-weight:800;
    box-shadow:0 3px 14px var(--glow-a)}
  .sg-cal .d.today i{box-shadow:0 0 0 2px var(--gold) inset}
  .sg-rule{margin:16px;background:var(--card);border-radius:var(--radius);padding:15px 16px;border:1px solid var(--line)}
  .sg-rule h4{font-size:13px;margin-bottom:11px;font-weight:700;color:var(--text)}
  .sg-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
  .sg-grid .c{text-align:center;padding:7px 2px;border-radius:9px;background:var(--card2);border:1px solid var(--line)}
  .sg-grid .c b{display:block;font-size:13px;color:var(--gold);font-variant-numeric:tabular-nums}
  .sg-grid .c span{font-size:9.5px;color:var(--sub)}
  .sg-grid .c.cur{background:linear-gradient(135deg,var(--elev),var(--card));border-color:var(--gold-soft);
    box-shadow:0 3px 14px var(--glow-a)}
  .sg-grid .c.cur b{color:var(--gold)}
  .sg-note{font-size:11.5px;color:var(--sub);line-height:2;margin:14px 16px 0}
  .gain-pop{position:fixed;left:50%;top:36%;z-index:200;pointer-events:none;
    font-size:30px;font-weight:800;color:#ff4d4f;text-shadow:0 2px 18px rgba(255,77,79,.55);
    animation:gainUp 1.15s ease-out forwards}
  @keyframes gainUp{
    0%{opacity:0;transform:translate(-50%,12px) scale(.6)}
    22%{opacity:1;transform:translate(-50%,-6px) scale(1.18)}
    100%{opacity:0;transform:translate(-50%,-96px) scale(1)}
  }

  /* 移动端：铺满，去掉手机壳 */
  @media (max-width:560px){
    body{background:var(--bg);display:block}
    .app{width:100%;height:100vh;height:100dvh;max-height:none;border-radius:0;box-shadow:none}
  }

  /* ===== 发帖页手册入口（低调小按钮） ===== */
  .pub-manual-entry{display:inline-flex;align-items:center;gap:5px;margin:2px 16px 0;padding:5px 10px;
    background:var(--card2);border:1px solid var(--line2);border-radius:999px;cursor:pointer}
  .pub-manual-entry .ic{font-size:14px}
  .pub-manual-entry .tx{font-size:12px;color:var(--sub);font-weight:600}
  .pub-manual-entry .ar{color:var(--dim);font-size:13px}

  /* ===== 发布手册表单 ===== */
  .mpub-wrap{padding:12px 16px}
  .mpub-sec{margin-bottom:16px}
  .mpub-sec .lbl{font-size:13px;color:var(--text);font-weight:600;margin-bottom:8px}
  .mpub-sec .lbl em{font-style:normal;font-size:11px;margin-left:4px}
  .mpub-sec .lbl em.req{color:#ff4d4f}
  .mpub-sec .lbl em.opt{color:var(--dim)}
  .mcats{display:flex;flex-wrap:wrap;gap:8px}
  .mcat{font-size:12.5px;color:var(--text);padding:7px 13px;border-radius:999px;
    background:var(--bg2,var(--card));border:1px solid var(--line)}
  .mcat.on{color:var(--on-primary);background:var(--cta);border-color:var(--cta);font-weight:600}
  .minp{width:100%;box-sizing:border-box;font-size:14px;color:var(--text);background:var(--bg2,var(--card));
    border:1px solid var(--line);border-radius:10px;padding:11px 12px;outline:none}
  .minp:focus{border-color:var(--primary-d)}
  .mmedia{display:flex;flex-wrap:wrap;gap:10px}
  .mthumb{position:relative;width:96px;height:96px;border-radius:10px;overflow:hidden;background:var(--bg2,var(--card))}
  .mthumb img{width:100%;height:100%;object-fit:cover}
  .mthumb .rm{position:absolute;top:4px;right:4px;width:20px;height:20px;line-height:20px;text-align:center;
    background:rgba(0,0,0,.6);color:#fff;border-radius:50%;font-size:13px}
  .mup{width:96px;height:96px;border-radius:10px;border:1px dashed var(--line2);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
    color:var(--sub);font-size:11px;background:var(--bg2,var(--card))}
  .mup span{font-size:24px;line-height:1}
  .mup.small{width:96px;height:96px}
  .mdecl{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--sub);line-height:1.6}
  .mdecl input{accent-color:var(--cta);width:16px;height:16px}
  .mta{width:100%;box-sizing:border-box;min-height:90px;font-size:13px;color:var(--text);
    background:var(--bg2,var(--card));border:1px solid var(--line);border-radius:10px;padding:11px 12px;outline:none;resize:vertical}
  .mgo{width:100%;margin-top:6px;padding:13px;font-size:15px;font-weight:700;color:var(--on-primary);
    background:var(--cta);border:none;border-radius:12px}
  .mgo:disabled{opacity:.5}
  .mtip{margin-top:7px;font-size:11.5px;color:var(--sub);line-height:1.7}

  /* ===== 视频帖：卡片角标 + 详情播放 ===== */
  .vbadge{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    font-size:34px;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.5);background:rgba(0,0,0,.28)}
  .dvideo{margin:12px 0;position:relative;cursor:pointer}
  .dvideo img{width:100%;border-radius:12px;background:#000;max-height:60vh;object-fit:contain}
  .dvideo video{width:100%;border-radius:12px;background:#000;max-height:60vh}
  .dvideo .dplay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
  .dvideo .dplay span{width:56px;height:56px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;
    display:flex;align-items:center;justify-content:center;font-size:22px;padding-left:4px;
    backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.25)}
