*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;background:#f2f4f8;color:#1a1b1c;max-width:520px;margin:0 auto;min-height:100vh}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}

/* 顶栏 */
.topbar{background:linear-gradient(135deg,#0ea5a4,#14b8a6);color:#fff;padding:18px 16px 46px;position:relative}
.topbar h1{font-size:20px;font-weight:700;display:flex;align-items:center;gap:8px}
.topbar .sub{font-size:12px;opacity:.85;margin-top:6px}
.topbar .wave{position:absolute;bottom:-1px;left:0;right:0}
.topbar .wave svg{display:block;width:100%;height:22px}

/* 内容区 */
.main{padding:0 12px;margin-top:-24px;position:relative;padding-bottom:80px}

/* 资源卡片 */
.card{background:#fff;border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 2px 10px rgba(0,0,0,.05);display:flex;gap:12px;align-items:center;cursor:pointer;transition:transform .12s}
.card:active{transform:scale(.98)}
.card .cover{width:64px;height:64px;border-radius:10px;object-fit:cover;background:linear-gradient(135deg,#0ea5a4,#14b8a6);flex-shrink:0}
.card .info{flex:1;min-width:0}
.card .t{font-size:15px;font-weight:600;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.card .d{font-size:12px;color:#8a9199;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card .p{display:inline-block;margin-top:8px;font-size:13px;font-weight:700;color:#ff5a3c;background:#fff2ee;padding:3px 10px;border-radius:20px}
.card .p small{font-size:11px;font-weight:400;color:#b06b5c}
.card .go{width:28px;height:28px;border-radius:50%;background:#0ea5a4;color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}

/* 详情页 */
.detail{background:#fff;border-radius:14px;padding:16px;margin-bottom:12px}
.detail h2{font-size:18px;line-height:1.5;margin-bottom:10px}
.detail .intro{font-size:13px;color:#555;line-height:1.8;white-space:pre-wrap}
.detail .cover-big{width:100%;height:170px;object-fit:cover;border-radius:12px;margin-bottom:14px}

/* 时长选择 */
.tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.tier{border:1.5px solid #e4e7ec;border-radius:10px;padding:10px 4px;text-align:center;background:#fff;cursor:pointer}
.tier .h{font-size:13px;font-weight:600}
.tier .m{font-size:10px;color:#9aa1a9;margin-top:2px}
.tier.on{border-color:#0ea5a4;background:#f0fbfa;color:#0b8c8b}
.tier.on .m{color:#0ea5a4}

/* 按钮 */
.btn{display:block;width:100%;border:none;border-radius:12px;padding:14px;font-size:16px;font-weight:600;text-align:center;cursor:pointer;color:#fff;background:linear-gradient(135deg,#0ea5a4,#14b8a6);box-shadow:0 4px 14px rgba(14,165,164,.3)}
.btn:active{transform:scale(.98)}
.btn.warn{background:linear-gradient(135deg,#ff7a45,#ff5a3c);box-shadow:0 4px 14px rgba(255,90,60,.3)}
.btn.gray{background:#e4e7ec;color:#555;box-shadow:none}

/* 支付页 */
.pay-box{background:#fff;border-radius:14px;padding:20px 16px;text-align:center;margin-bottom:12px}
.pay-box .amt{font-size:34px;font-weight:800;color:#ff5a3c}
.pay-box .amt small{font-size:16px}
.pay-box .qr-wrap{width:230px;height:230px;margin:18px auto;padding:10px;border:1px solid #eef0f3;border-radius:12px;background:#fff}
.pay-box .qr-wrap img{width:100%;height:100%;object-fit:contain}
.pay-box .tip{font-size:12px;color:#8a9199;line-height:1.8;margin-top:4px}
.pay-box .tip b{color:#0ea5a4}

/* 状态条 */
.stat{display:flex;justify-content:space-between;background:#fff;border-radius:12px;padding:12px 14px;margin-bottom:12px;font-size:13px}
.stat .k{color:#8a9199}
.stat .v{font-weight:600}

/* 倒计时 */
.countdown{background:linear-gradient(135deg,#fff7e6,#fffbea);border:1px solid #ffe7a8;border-radius:12px;padding:14px;text-align:center;margin-bottom:12px}
.countdown .cd{font-size:26px;font-weight:800;color:#ff7a00;font-variant-numeric:tabular-nums}
.countdown .cd-tip{font-size:12px;color:#b08a3e;margin-top:4px}

/* 下载框 */
.dl-box{background:#fff;border-radius:14px;padding:16px;margin-bottom:12px}
.dl-box .lb{font-size:12px;color:#8a9199;margin-bottom:6px}
.dl-box .link{background:#f4f6f9;border-radius:10px;padding:12px;font-size:14px;word-break:break-all;color:#0ea5a4;margin-bottom:10px;line-height:1.6}
.dl-box .copy{display:inline-flex;align-items:center;gap:4px;background:#0ea5a4;color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:13px;cursor:pointer}
.dl-box .copy:active{opacity:.8}
.pass{display:flex;align-items:center;gap:8px;background:#fff8e1;border:1px dashed #f0c96a;border-radius:10px;padding:10px 12px;margin-top:10px;font-size:14px;color:#8a6d1a}
.pass b{font-size:18px;letter-spacing:3px;color:#c98000}

/* 空态 */
.empty{text-align:center;padding:60px 20px;color:#9aa1a9;font-size:14px}

/* 提示浮层 */
.toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.9);background:rgba(0,0,0,.78);color:#fff;padding:14px 22px;border-radius:12px;font-size:14px;z-index:99;opacity:0;pointer-events:none;transition:all .2s}
.toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.fixed-btn{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top,#f2f4f8 60%,rgba(242,244,248,0));z-index:20}
.fixed-btn .btn{box-shadow:0 -2px 18px rgba(14,165,164,.25)}

/* 后台 */
.admin-card{background:#fff;border-radius:14px;padding:16px;margin-bottom:12px}
.admin-card h3{font-size:15px;margin-bottom:12px;color:#0b8c8b}
.form-row{margin-bottom:12px}
.form-row label{display:block;font-size:12px;color:#8a9199;margin-bottom:5px}
.form-row input,.form-row select,.form-row textarea{width:100%;border:1.5px solid #e4e7ec;border-radius:10px;padding:10px 12px;font-size:14px;outline:none;background:#fff}
.form-row input:focus,.form-row textarea:focus{border-color:#0ea5a4}
table{width:100%;font-size:12px;border-collapse:collapse}
th,td{padding:8px 6px;border-bottom:1px solid #f0f2f5;text-align:left;word-break:break-all}
th{color:#8a9199;font-weight:500}
.tag{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px}
.tag.ok{background:#e6f9ef;color:#13a85f}
.tag.no{background:#fff0ee;color:#ff5a3c}
.tag.wa{background:#fff7e6;color:#d98a00}
.nav{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.nav a{background:#fff;border-radius:20px;padding:7px 14px;font-size:13px;color:#555;border:1px solid #e4e7ec}
.nav a.on{background:#0ea5a4;color:#fff;border-color:#0ea5a4}
