*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
body{
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
background:#f4f5f7;color:#1f2329;font-size:15px;line-height:1.55;
-webkit-font-smoothing:antialiased;
}
#app{min-height:100vh;min-height:100dvh;}
.page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;}
.appbar{
position:sticky;top:0;z-index:20;height:48px;display:flex;align-items:center;
background:#fff;border-bottom:1px solid #eceef1;padding:0 8px;
}
.appbar .back{
width:40px;height:40px;display:flex;align-items:center;justify-content:center;
border:0;background:none;color:#3a4150;font-size:22px;cursor:pointer;
}
.appbar .ttl{flex:1;text-align:center;font-size:16px;font-weight:600;color:#1f2329;padding-right:40px;}
.body{flex:1;padding:12px 12px 96px;}
.group{background:#fff;border-radius:12px;overflow:hidden;margin-bottom:14px;}
.group .g-tip{padding:10px 14px;color:#8a909c;font-size:12.5px;line-height:1.6;}
.opt{
display:flex;align-items:center;width:100%;min-height:52px;padding:12px 14px;
background:#fff;border:0;border-bottom:1px solid #f1f2f4;text-align:left;
color:#1f2329;font-size:15px;cursor:pointer;
}
.group .opt:last-child{border-bottom:0;}
.opt .o-main{flex:1;}
.opt .o-sub{display:block;color:#9aa0ac;font-size:12.5px;margin-top:2px;}
.opt .o-mark{color:#c2c7d0;font-size:18px;margin-left:8px;}
.opt.selected .o-mark{color:#2f6fed;}
.opt:active{background:#f7f8fa;}
.field{background:#fff;padding:12px 14px;border-bottom:1px solid #f1f2f4;}
.group .field:last-child{border-bottom:0;}
.field label{display:block;color:#8a909c;font-size:12.5px;margin-bottom:6px;}
.field input[type=text],.field input[type=tel],.field textarea{
width:100%;border:0;outline:0;resize:none;background:transparent;
font-size:15px;color:#1f2329;font-family:inherit;padding:0;
}
.field textarea{min-height:84px;line-height:1.6;}
.field .hint{color:#a8aeb8;font-size:12px;margin-top:4px;}
.imgs{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px;}
.img-cell,.img-add{width:72px;height:72px;border-radius:10px;overflow:hidden;position:relative;}
.img-cell img{width:100%;height:100%;object-fit:cover;}
.img-cell .rm{
position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;
background:rgba(0,0,0,.55);color:#fff;border:0;font-size:13px;line-height:20px;padding:0;
}
.img-add{
display:flex;flex-direction:column;align-items:center;justify-content:center;
border:1px dashed #cdd2da;color:#9aa0ac;background:#fafbfc;font-size:12px;cursor:pointer;
}
.img-add span{font-size:24px;line-height:1;margin-bottom:3px;}
.textpage{background:#fff;border-radius:12px;padding:16px 16px 20px;margin-bottom:14px;}
.textpage h3{font-size:15px;margin:14px 0 6px;}
.textpage h3:first-child{margin-top:0;}
.textpage p{margin:0 0 8px;color:#3a4150;font-size:13.5px;line-height:1.75;}
.footbar{
position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px 14px calc(10px + env(safe-area-inset-bottom));
background:linear-gradient(to top,#f4f5f7 70%,rgba(244,245,247,0));
}
.btn{
display:block;width:100%;height:46px;border:0;border-radius:23px;
font-size:16px;font-weight:600;cursor:pointer;
}
.btn-primary{background:#2f6fed;color:#fff;}
.btn-primary:disabled{background:#a9c2f6;}
.btn-ghost{background:#fff;color:#2f6fed;border:1px solid #d6e0fb;}
.btn:active{opacity:.88;}
.linkline{text-align:center;margin:12px 0 4px;}
.linkline a{color:#2f6fed;font-size:13.5px;text-decoration:none;}
.status{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 30px;}
.status .s-ico{font-size:52px;margin-bottom:16px;}
.status .s-t{font-size:17px;font-weight:600;margin-bottom:8px;color:#1f2329;}
.status .s-d{font-size:13.5px;color:#8a909c;line-height:1.7;max-width:280px;}
.status .s-act{margin-top:24px;width:220px;}
.ring{
width:84px;height:84px;border-radius:50%;background:#eaf3ff;color:#2f6fed;
display:flex;align-items:center;justify-content:center;margin-bottom:18px;
}
.ring svg{width:46px;height:46px;}
.te{background:#f9f9f9;min-height:100vh;min-height:100dvh;padding:30px 20px 40px;}
.te-badge{display:flex;justify-content:center;padding:18px 0 12px;}
.te-badge img{width:145px;height:145px;display:block;}
.te-title{text-align:center;font-size:26px;font-weight:600;color:#e8a736;letter-spacing:2px;padding:12px 0;word-break:break-all;}
.te-cert{display:flex;justify-content:center;align-items:center;gap:6px;width:fit-content;margin:0 auto 20px;padding:6px 18px;border:1px solid #61ae8f;border-radius:20px;background:rgba(255,255,255,.7);}
.te-cert img{width:20px;height:auto;}
.te-cert span{font-size:15px;color:#61ae8f;font-weight:500;line-height:1;}
.te-line{height:1px;background:linear-gradient(to right,transparent,#d4d4d4 15%,#d4d4d4 85%,transparent);margin:14px 20px;}
.te-sec{padding:16px 22px 8px;}
.te-sec-t{font-size:19px;font-weight:600;color:#333;padding-bottom:8px;}
.te-row{display:flex;align-items:flex-start;padding:5px 0;}
.te-label{width:110px;flex-shrink:0;font-size:15px;color:#a0a3a3;line-height:1.6;}
.te-value{flex:1;font-size:15px;color:#434548;word-break:break-all;line-height:1.6;}
.te-scope{font-size:15px;color:#434548;line-height:1.9;text-align:justify;padding:4px 0 8px;}
.te-desc-t{font-size:16px;font-weight:500;color:#7c7c7c;text-align:center;padding:8px 0;}
.te-desc{padding:6px 22px;}
.te-desc p{font-size:14px;color:#888;line-height:1.9;margin:0 0 10px;}
.te-bottom{text-align:center;padding:22px 0 10px;}
.te-join{font-size:17px;color:#61ae8f;font-weight:500;cursor:pointer;}
.te-join:active{color:#4a9a7a;}
@media(max-width:480px){
.te{padding:20px 14px 32px;}
.te-badge{padding:12px 0 8px;}
.te-badge img{width:118px;height:118px;}
.te-title{font-size:21px;letter-spacing:1px;padding:9px 0;}
.te-cert{padding:4px 14px;margin-bottom:14px;}
.te-cert span{font-size:14px;}
.te-sec{padding:12px 16px 6px;}
.te-sec-t{font-size:17px;}
.te-label{width:84px;font-size:14px;}
.te-value{font-size:14px;}
.te-scope{font-size:14px;line-height:1.8;}
.te-desc{padding:4px 8px;}
.te-desc p{font-size:13px;line-height:1.8;}
.te-join{font-size:16px;}
}
.toast{
position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:99;
background:rgba(17,20,26,.86);color:#fff;font-size:14px;border-radius:10px;padding:11px 18px;
max-width:80%;text-align:center;
}