:root{
  --bg:#0F1226; --bg2:#151935; --card:#1C2140; --card2:#232A4F;
  --p1:#6C5CE7; --p2:#4A6CF7; --accent:#22D3EE;
  --text:#EDEFFA; --text2:#9AA0C0; --text3:#6B719A;
  --line:rgba(255,255,255,.08);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{height:100%;-webkit-text-size-adjust:100%}
body{
  background:#0F1226;color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  font-size:15px;line-height:1.6;
  min-height:100vh;
  min-height:calc(var(--vh, 1vh) * 100);
  min-height:100dvh;          /* 手机地址栏收起时也能铺满 */
  overflow-x:hidden;
}
body::before{
  content:"";position:fixed;inset:0;z-index:-1;
  background:radial-gradient(900px 500px at 20% -10%,#2A2470 0%,rgba(42,36,112,0) 60%),
             radial-gradient(700px 400px at 95% 0%,#1B3A6B 0%,rgba(27,58,107,0) 55%),#0F1226;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font-family:inherit}

.app{max-width:640px;margin:0 auto;position:relative;
  min-height:100vh;
  min-height:calc(var(--vh, 1vh) * 100);
  min-height:100dvh;
  padding-bottom:calc(68px + env(safe-area-inset-bottom))}

/* 顶部 */
.hero{padding:calc(14px + env(safe-area-inset-top)) 16px 12px;
  background:linear-gradient(160deg,#2A2470 0%,#1B1F4B 55%,#0F1226 100%)}
.hero-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{font-size:26px;font-weight:800;letter-spacing:1px;
  background:linear-gradient(135deg,#B7A9FF,#22D3EE);-webkit-background-clip:text;color:transparent}
.slogan{font-size:12px;color:#8E93BC;margin-top:2px}
.avatar{border-radius:50%;object-fit:cover;background:var(--card2)}
.avatar-ph{border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#6C5CE7,#4A6CF7);color:#fff;font-weight:700}
.me-btn .avatar,.me-btn .avatar-ph{width:40px;height:40px;font-size:16px;border:1px solid rgba(167,155,255,.4)}

.tabs{display:flex;gap:8px;overflow-x:auto;margin-top:14px;padding-bottom:2px;-webkit-overflow-scrolling:touch}
.tabs::-webkit-scrollbar{display:none}
.tab{padding:7px 15px;border-radius:999px;font-size:14px;color:#9AA0C0;background:rgba(255,255,255,.06);white-space:nowrap}
.tab.on{color:#fff;font-weight:600;background:linear-gradient(135deg,#6C5CE7,#4A6CF7);box-shadow:0 4px 14px rgba(108,92,231,.4)}

/* 卡片 */
.card{margin:12px;padding:15px;background:var(--card);border:1px solid var(--line);border-radius:16px}
.head{display:flex;align-items:center;gap:10px}
.head .avatar,.head .avatar-ph{width:40px;height:40px;font-size:16px;flex:0 0 auto}
.who{flex:1;min-width:0}
.name{font-size:15px;font-weight:600;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tag{font-size:11px;color:#A79BFF;background:rgba(108,92,231,.16);padding:1px 8px;border-radius:999px;font-weight:400}
.tag.warn{color:#FFC46B;background:rgba(255,196,107,.14)}
.time{font-size:12px;color:var(--text3);margin-top:2px}
.text{margin-top:11px;font-size:15px;line-height:1.65;color:#DDE1F5;word-break:break-word;white-space:pre-wrap}

.counter{text-align:right;font-size:12px;color:var(--text3);margin-top:6px}
.grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.grid a{display:block}
.grid img{border-radius:10px;object-fit:cover;background:var(--card2)}
.g3 a{width:calc((100% - 12px)/3)}
.g2 a{width:calc((100% - 6px)/2)}
.g1 a{width:72%}
.g1 img,.g2 img,.g3 img{width:100%;aspect-ratio:1}

.ops{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);display:flex;gap:26px;font-size:13px;color:var(--text2)}
.op{display:flex;align-items:center;gap:6px;background:none;border:none;color:inherit;font-size:14px;cursor:pointer;padding:0}
.op.on{color:#FF6B81}

.empty{padding:70px 20px;text-align:center;color:var(--text3)}
.empty .ico{font-size:44px;opacity:.55;display:block;margin-bottom:10px}
.empty .sub{font-size:13px;color:#565C86;margin-top:6px}
.banner{margin:14px 12px 0;padding:11px 14px;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:linear-gradient(135deg,rgba(108,92,231,.22),rgba(74,108,247,.14));border:1px solid rgba(138,123,255,.34)}
.banner span{font-size:13px;color:#C9C2FF}
.banner b{font-size:12px;color:#fff;padding:5px 14px;border-radius:999px;background:linear-gradient(135deg,#6C5CE7,#4A6CF7);font-weight:500}

/* 表单 */
.box{margin:14px 12px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:16px}
.box h3{font-size:16px;margin-bottom:14px}
.field{margin-bottom:14px}
.field label{display:block;font-size:13px;color:var(--text2);margin-bottom:7px}
.input,textarea.input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line);
  background:#232A4F;color:var(--text);font-size:15px;outline:none;font-family:inherit}
.input:focus{border-color:rgba(138,123,255,.55)}
textarea.input{min-height:140px;resize:vertical;line-height:1.6}
.input::placeholder{color:#656B94}
.btn{display:block;width:100%;height:46px;border:none;border-radius:23px;font-size:16px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#6C5CE7,#4A6CF7);cursor:pointer}
.btn.ghost{background:rgba(255,255,255,.06);color:#A79BFF;border:1px solid rgba(138,123,255,.4);
  display:flex;align-items:center;justify-content:center;height:42px;font-size:14px}
.err{margin:12px;padding:10px 14px;border-radius:10px;background:rgba(255,107,129,.12);color:#FF8E9E;font-size:13px}
.ok{margin:12px;padding:10px 14px;border-radius:10px;background:rgba(34,211,238,.12);color:#7FE3F5;font-size:13px}
.hint{margin:8px 16px 0;font-size:12px;color:#5E648F;line-height:1.7}
.center{text-align:center}
.link{color:#A79BFF;font-size:13px}
.switch{margin-top:14px;text-align:center;font-size:13px;color:var(--text3)}

/* 选图 */
.pics{display:flex;gap:8px;flex-wrap:wrap}
.pic{width:88px;height:88px;border-radius:10px;object-fit:cover;background:var(--card2)}
.pic-add{width:88px;height:88px;border-radius:10px;border:1.5px dashed rgba(154,160,192,.45);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text3);font-size:12px;cursor:pointer}
.pic-add input{display:none}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{padding:8px 16px;border-radius:999px;font-size:14px;color:#A6ABCE;background:rgba(255,255,255,.06);cursor:pointer}
.chip input{display:none}
.chip.on{color:#fff;font-weight:600;background:linear-gradient(135deg,#6C5CE7,#4A6CF7)}

/* 评论 */
.cmt-title{padding:10px 18px 2px;font-size:14px;color:var(--text2)}
.cmt{margin:0 12px;padding:2px 15px;background:var(--card);border:1px solid var(--line);border-radius:16px}
.ci{display:flex;gap:10px;padding:13px 0;border-bottom:1px solid var(--line)}
.ci:last-child{border-bottom:none}
.ci .avatar,.ci .avatar-ph{width:34px;height:34px;font-size:14px;flex:0 0 auto}
.ci .n{font-size:13px;color:#B9BEE0}
.ci .t{font-size:12px;color:var(--text3);margin-left:7px}
.ci .c{margin-top:4px;font-size:14px;line-height:1.55;color:#E2E5F6;word-break:break-word;white-space:pre-wrap}
.cbar{display:flex;gap:8px;margin:12px;padding:10px;background:var(--card);border:1px solid var(--line);border-radius:14px}
.cbar .input{flex:1;height:42px;border-radius:21px}
.cbar .btn{width:auto;padding:0 18px;height:42px;font-size:15px;border-radius:21px}

/* 我的 */
.profile{display:flex;align-items:center;gap:12px;padding:15px;border-radius:16px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}
.profile .avatar,.profile .avatar-ph{width:62px;height:62px;font-size:24px;flex:0 0 auto}
.pname{font-size:18px;font-weight:700}
.psub{font-size:13px;color:#8E93BC;margin-top:4px}
.pstat{font-size:12px;color:var(--text3);margin-top:7px}
.pstat b{font-size:15px;color:#B7A9FF;margin-right:5px}
.sec{padding:14px 18px 2px;font-size:14px;color:var(--text2)}
.rules{margin:10px 12px 20px;padding:15px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid var(--line)}
.rules h5{font-size:14px;color:#B7A9FF;margin-bottom:6px}
.rules p{font-size:13px;line-height:1.9;color:var(--text3)}
.acts{display:flex;gap:10px;margin:12px}
.acts .btn{flex:1}

/* 底部 tabbar */
.tabbar{position:fixed;left:0;right:0;bottom:0;max-width:640px;margin:0 auto;
  height:calc(60px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);
  background:rgba(21,25,53,.97);border-top:1px solid var(--line);display:flex;align-items:center;z-index:50}
.tb{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  font-size:10.5px;color:#7C82A8;white-space:nowrap;padding:0 1px}
.tb.on{color:#8A7BFF}
.tb i{width:21px;height:21px;display:block;background-size:contain;background-repeat:no-repeat;background-position:center}
.i-home{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C82A8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10 12 4l8 6v9a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z'/%3E%3C/svg%3E")}
.i-plus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C82A8' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E")}
.i-user{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C82A8' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7'/%3E%3C/svg%3E")}
.i-msg{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C82A8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a8 8 0 0 1-8 8H8l-4 3v-4.5A8 8 0 0 1 11 4h2a8 8 0 0 1 8 8z'/%3E%3C/svg%3E")}
.i-rec{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C82A8' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.6 5.3 5.9.9-4.3 4.1 1 5.8-5.2-2.7-5.2 2.7 1-5.8L3.5 9.2l5.9-.9z'/%3E%3C/svg%3E")}
.tb.on .i-rec{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A7BFF' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.6 5.3 5.9.9-4.3 4.1 1 5.8-5.2-2.7-5.2 2.7 1-5.8L3.5 9.2l5.9-.9z'/%3E%3C/svg%3E")}
.i-vip{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C82A8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8l4-4h10l4 4-9 12L3 8z'/%3E%3Cpath d='M7.5 8h9'/%3E%3C/svg%3E")}
.tb.on .i-msg{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A7BFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a8 8 0 0 1-8 8H8l-4 3v-4.5A8 8 0 0 1 11 4h2a8 8 0 0 1 8 8z'/%3E%3C/svg%3E")}
.tb.on .i-vip{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A7BFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8l4-4h10l4 4-9 12L3 8z'/%3E%3Cpath d='M7.5 8h9'/%3E%3C/svg%3E")}
.tb{position:relative}
.dot{position:absolute;top:2px;left:50%;margin-left:4px;min-width:16px;height:16px;padding:0 4px;
  border-radius:8px;background:#FF5A6E;color:#fff;font-size:10px;line-height:16px;text-align:center;font-style:normal;font-weight:600}
.tb.on .i-home{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A7BFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10 12 4l8 6v9a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z'/%3E%3C/svg%3E")}
.tb.on .i-plus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A7BFF' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E")}
.tb.on .i-user{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A7BFF' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7'/%3E%3C/svg%3E")}

/* 悬浮客服 */
.cs-btn{position:fixed;right:16px;bottom:calc(74px + env(safe-area-inset-bottom));z-index:45;
  display:flex;align-items:center;gap:5px;padding:9px 14px;border-radius:999px;
  background:linear-gradient(135deg,#2E3A8C,#4A3FB8);border:1px solid rgba(167,155,255,.45);
  color:#DCD8FF;font-size:13px;box-shadow:0 8px 20px rgba(46,58,140,.45)}
.cs-ico{font-size:15px;line-height:1}
.cs-line{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:10px 12px;padding:13px 15px;border-radius:14px;font-size:14px;color:#EDEFFA;
  background:linear-gradient(135deg,rgba(46,58,140,.55),rgba(74,63,184,.45));
  border:1px solid rgba(167,155,255,.35)}
.cs-sub{font-size:12px;color:#A79BFF}

.fab{position:fixed;right:16px;bottom:calc(132px + env(safe-area-inset-bottom));width:52px;height:52px;border-radius:50%;
  background:linear-gradient(135deg,#6C5CE7,#4A6CF7);box-shadow:0 8px 22px rgba(76,108,247,.5);
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;font-weight:300;z-index:40}

.more{margin:18px 12px 30px;text-align:center}
.more a,.more button{display:inline-block;padding:9px 22px;border-radius:999px;background:rgba(255,255,255,.06);
  color:#A6ABCE;font-size:13px;border:none;cursor:pointer}
.foot{text-align:center;font-size:12px;color:var(--text3);padding:16px 0 30px}

/* 管理后台 */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px}
.st{padding:14px 6px;text-align:center;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.st b{display:block;font-size:22px;color:#B7A9FF;line-height:1.2}
.st{font-size:12px;color:var(--text3)}
.adm-list p{font-size:13px;line-height:1.9;color:#C3C7E4}
.adm-search{display:flex;gap:8px;margin:12px}
.adm-search .input{height:44px}
.adm-row{margin:10px 12px;padding:13px 14px;background:var(--card);border:1px solid var(--line);border-radius:14px}
.adm-h{font-size:12px;color:var(--text3);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.adm-c{margin-top:7px;font-size:14px;line-height:1.6;color:#E2E5F6;word-break:break-word;white-space:pre-wrap}
.adm-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
.adm-btns form{margin:0}
.ab{display:inline-block;padding:7px 15px;border-radius:999px;font-size:13px;color:#A6ABCE;
  background:rgba(255,255,255,.07);border:none;cursor:pointer;font-family:inherit}
.ab.danger{color:#FF8E9E;background:rgba(255,107,129,.14)}

/* 轻提示 */
.toast{position:fixed;left:50%;top:42%;transform:translate(-50%,-50%) scale(.94);
  padding:12px 20px;border-radius:12px;background:rgba(28,33,64,.97);border:1px solid rgba(138,123,255,.4);
  color:#EDEFFA;font-size:14px;z-index:200;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;
  box-shadow:0 10px 30px rgba(0,0,0,.45);max-width:80%;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.share-tip{margin:6px 16px 0;font-size:12px;color:#5E648F}

/* VIP 徽章 / 主页 */
.vip{display:inline-block;font-size:10px;font-weight:700;color:#3B2A00;padding:1px 6px;border-radius:4px;
  background:linear-gradient(135deg,#FFD76B,#F0A93B);margin-left:6px;vertical-align:1px}
.ustat{display:flex;gap:8px;margin-top:12px;padding:12px;border-radius:14px;background:rgba(255,255,255,.06);
  border:1px solid var(--line);text-align:center;font-size:12px;color:var(--text3)}
.ustat a,.ustat span{flex:1}
.ustat b{display:block;font-size:17px;color:#B7A9FF;font-weight:700}
.ubtns{display:flex;gap:10px;margin-top:12px}
.ubtns form{flex:1;margin:0}
.ubtns .btn.ghost,.ubtns a.btn{flex:1;height:40px;display:flex;align-items:center;justify-content:center}
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px}
.quick a{position:relative;padding:12px 4px;text-align:center;font-size:12px;color:#C3C7E4;border-radius:14px;
  background:var(--card);border:1px solid var(--line)}

/* 开屏动画 */
#splash{position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:18px;
  background:radial-gradient(120% 90% at 50% 30%, #EAF3FF 0%, #D8E7FB 60%, #C9DDF8 100%);
  transition:opacity .38s ease}
#splash.out{opacity:0}
.sp-logo{width:44vw;max-width:220px;border-radius:26px;box-shadow:0 14px 40px rgba(48,86,160,.28);
  animation:pop .9s cubic-bezier(.2,.9,.3,1.4) both, float 2.6s ease-in-out .9s infinite}
@keyframes pop{0%{transform:scale(.4) rotate(-8deg);opacity:0}70%{transform:scale(1.06) rotate(2deg);opacity:1}100%{transform:scale(1) rotate(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.sp-bar{width:150px;height:5px;border-radius:3px;background:rgba(43,74,140,.18);overflow:hidden}
.sp-bar i{display:block;height:100%;width:40%;border-radius:3px;
  background:linear-gradient(90deg,#4A6CF7,#6C5CE7);animation:ld 1.6s ease-in-out infinite}
@keyframes ld{0%{margin-left:-40%}100%{margin-left:100%}}
.sp-txt{font-size:13px;color:#5B78B8;letter-spacing:2px}

/* 协议弹窗 */
.agmask{position:fixed;inset:0;background:rgba(8,10,24,.7);z-index:298}
.agbox{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:299;
  width:86%;max-width:420px;padding:22px 20px 18px;border-radius:20px;
  background:#1C2140;border:1px solid rgba(138,123,255,.4);box-shadow:0 20px 60px rgba(0,0,0,.5)}
.ag-t{font-size:18px;font-weight:700;color:#fff;text-align:center}
.ag-d{font-size:14px;line-height:1.8;color:#DDE1F5;margin:14px 0 8px}
.ag-link{color:#5B9BFF;text-decoration:underline}
.ag-s{font-size:12px;color:#8E93BC;line-height:1.7;margin-bottom:16px}
.ag-no{display:block;width:100%;margin-top:10px;height:42px;border-radius:21px;border:none;
  background:rgba(255,255,255,.07);color:#A6ABCE;font-size:14px;cursor:pointer}
.ag-warn{margin-top:12px;font-size:12.5px;color:#FFB3BE;text-align:center;line-height:1.8}

/* 协议全文页 */
.doc{margin:12px;padding:18px 16px;background:var(--card);border:1px solid var(--line);border-radius:16px}
.doc-t{font-size:18px;font-weight:700;text-align:center;margin-bottom:14px;color:#fff}
.doc pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:13.5px;
  line-height:1.9;color:#D5D9EF}

/* 推荐 */
.rec-card{display:flex;align-items:center;gap:12px;margin:8px 12px;padding:14px;border-radius:16px;
  background:var(--card);border:1px solid var(--line)}
.rec-ico{width:52px;height:52px;flex:0 0 auto;border-radius:14px;font-size:26px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(108,92,231,.28),rgba(74,108,247,.18));border:1px solid rgba(138,123,255,.3)}
.rec-m{flex:1;min-width:0}
.rec-t{font-size:16px;font-weight:600;color:#fff;display:flex;align-items:center;gap:6px}
.rec-d{font-size:12.5px;color:var(--text2);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rec-c{font-size:11px;color:var(--text3);margin-top:4px}
.rec-go{flex:0 0 auto;font-size:13px;color:#A79BFF}

/* 锁屏 */
.lockbox{margin:24px 14px;padding:26px 18px;border-radius:20px;text-align:center;
  background:linear-gradient(160deg,rgba(42,36,112,.55),rgba(28,33,64,.9));
  border:1px solid rgba(138,123,255,.3)}
.lock-ico{font-size:44px}
.lock-t{font-size:19px;font-weight:700;color:#fff;margin-top:10px}
.lock-s{font-size:13px;color:#A9A2C6;line-height:1.8;margin:10px 0 18px}
.lockform .input{text-align:center;letter-spacing:4px}
.lockform .btn{margin-top:12px}
.lock-tip{margin-top:16px;font-size:12.5px;color:#8E93BC}

/* 优惠券 */
.cp{display:flex;align-items:center;gap:12px;margin:8px 12px;padding:13px 14px;border-radius:14px;
  background:linear-gradient(120deg,rgba(255,215,107,.12),rgba(240,169,59,.06));
  border:1px solid rgba(255,215,107,.32)}
.cp.off{filter:grayscale(1);opacity:.6}
.cp-l{flex:0 0 auto;text-align:center;padding-right:12px;border-right:1px dashed rgba(255,215,107,.4)}
.cp-v{font-size:13px;color:#FFD76B}
.cp-v b{font-size:26px;line-height:1.1}
.cp-c{font-size:11px;color:#C9B98A;margin-top:2px}
.cp-r{flex:1;min-width:0}
.cp-t{font-size:15px;font-weight:600;color:#fff}
.cp-s{font-size:12px;color:#A9A2C6;margin-top:3px}
.cp-b{flex:0 0 auto;display:flex;flex-direction:column;gap:6px}
.cp-b form{margin:0}
.csel{margin-top:9px;width:100%;height:36px;padding:0 10px;border-radius:10px;border:1px solid var(--line);
  background:#232A4F;color:#EDEFFA;font-size:13px;outline:none;font-family:inherit}
.pk-off{font-size:11px;color:#5BD6A0;margin-bottom:6px}

/* 置顶 / 打赏 */
.ops2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}
.ops2 form{margin:0}
.ab.gold{color:#3B2A00;background:linear-gradient(135deg,#FFD76B,#F0A93B);font-weight:600}
.op.gold{color:#FFD76B}
.tipinfo{font-size:12px;color:var(--text3)}
.pinflag{margin-top:9px;font-size:12px;color:#FFD76B}
.mask{position:fixed;inset:0;background:rgba(6,8,20,.62);z-index:90}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:100;max-width:640px;margin:0 auto;
  padding:18px 18px calc(20px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;
  background:#1C2140;border-top:1px solid rgba(167,155,255,.35)}
.sh-t{font-size:17px;font-weight:700;color:#fff;text-align:center}
.sh-d{font-size:12px;color:var(--text3);text-align:center;margin:6px 0 14px}
.sh-w{font-size:12px;color:#8E93BC;margin:8px 0 12px;text-align:right}
.sh-x{margin-top:12px;text-align:center;font-size:14px;color:#A6ABCE;padding:6px}

/* 通用列表行 */
.urow,.nrow{display:flex;align-items:center;gap:10px;margin:8px 12px;padding:12px 14px;
  background:var(--card);border:1px solid var(--line);border-radius:14px}
.urow .avatar,.urow .avatar-ph,.nrow .avatar,.nrow .avatar-ph{width:42px;height:42px;font-size:17px;flex:0 0 auto}
.urow .n,.nrow .n{font-size:15px;font-weight:600;color:#EDEFFA}
.urow .b,.nrow .b{font-size:13px;color:var(--text3);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rt{text-align:right;flex:0 0 auto}
.rt .t{font-size:12px;color:var(--text3)}
.dot2{display:inline-block;min-width:18px;height:18px;padding:0 5px;margin-top:4px;border-radius:9px;
  background:#FF5A6E;color:#fff;font-size:11px;line-height:18px;text-align:center;font-style:normal;font-weight:600}

/* 聊天 */
.msgs{margin:12px;padding:6px 0}
.mrow{display:flex;gap:8px;margin-bottom:14px;align-items:flex-start}
.mrow .avatar,.mrow .avatar-ph{width:34px;height:34px;font-size:14px;flex:0 0 auto}
.mrow.mine{justify-content:flex-end}
.bubble{max-width:74%;padding:10px 13px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.mrow.mine .bubble{background:linear-gradient(135deg,#5A4BD6,#3E5BD6);border-color:transparent}
.btext{font-size:14px;line-height:1.55;color:#EDEFFA;word-break:break-word;white-space:pre-wrap}
.bimg{max-width:180px;border-radius:10px;margin-bottom:6px}
.btime{font-size:11px;color:#8E93BC;margin-top:5px}
.mrow.mine .btime{color:#D9D4FF}
.imgbtn{width:42px;height:42px;border-radius:21px;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.07);font-size:18px;cursor:pointer;flex:0 0 auto}
.imgbtn input{display:none}

/* 评论点赞 */
.clike{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text3);cursor:pointer;flex:0 0 auto;align-self:center}
.clike.on{color:#FF6B81}
.cdel{background:none;border:none;color:#FF6B81;font-size:12px;cursor:pointer;padding:0 4px;font-family:inherit;flex:0 0 auto;align-self:center}

/* 充值 */
.wallet{display:flex;gap:10px;margin-top:14px}
.w-item{flex:1;padding:13px;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid var(--line);text-align:center}
.w-item b{display:block;font-size:20px;color:#FFD76B;line-height:1.3}
.w-item span{font-size:11px;color:#8E93BC}
.perk{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.perk:last-child{border-bottom:none}
.perk .pk{color:#5BD6A0;font-weight:700}
.perk b{font-size:14px;color:#EDEFFA}
.perk .pd{font-size:12px;color:var(--text3);margin-top:2px}
.pack{display:flex;align-items:center;gap:12px;margin:8px 12px;padding:14px;background:var(--card);
  border:1px solid var(--line);border-radius:14px}
.pk-l{flex:1;min-width:0}
.pk-n{font-size:15px;font-weight:600}
.pk-d{font-size:12px;color:var(--text3);margin-top:3px}
.pk-r{text-align:right;flex:0 0 auto}
.pk-p{font-size:19px;font-weight:700;color:#FFD76B;margin-bottom:6px}
.pk-r .btn{width:96px}
.gform{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.gform label{font-size:12px;color:var(--text2);display:block}
.gform .input{margin-top:6px;height:42px;padding:10px}
.grant{display:flex;gap:6px;align-items:center}
.gi{width:58px;height:34px;padding:0 8px;border-radius:8px;border:1px solid var(--line);
  background:#232A4F;color:var(--text);font-size:13px;outline:none}
