:root{
  --blue:#1677ff;
  --blue-d:#0958d9;
  --blue-l:#e6f0ff;
  --bg:#f0f2f5;
  --card:#ffffff;
  --text:#1f2d3d;
  --sub:#8a94a6;
  --line:#e8edf3;
  --warn:#fa8c16;
  --ok:#52c41a;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--text);background:var(--bg);font-size:15px;}
button{font-family:inherit;cursor:pointer;border:none;outline:none;}
input,select,textarea{font-family:inherit;}

/* 顶部栏 */
.app-header{background:linear-gradient(135deg,var(--blue),#4096ff);color:#fff;padding:18px 16px 14px;text-align:center;position:sticky;top:0;z-index:20;}
.app-header .logo{font-size:22px;font-weight:800;letter-spacing:1px;}
.app-header .header-sub{font-size:12px;opacity:.85;margin-top:2px;}

/* 主内容 */
.app-main{max-width:720px;margin:0 auto;padding:12px 12px 76px;min-height:100vh;}
.view{display:none;animation:fade .2s ease;}
.view.active{display:block;}
@keyframes fade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

/* 首页 banner */
.banner{background:linear-gradient(135deg,#1677ff,#69b1ff);color:#fff;border-radius:16px;padding:22px 18px;box-shadow:0 6px 18px rgba(22,119,255,.25);}
.banner h1{margin:0 0 6px;font-size:24px;}
.banner p{margin:0 0 16px;opacity:.92;font-size:13px;}
.banner-stats{display:flex;justify-content:space-around;text-align:center;}
.banner-stats b{display:block;font-size:20px;}
.banner-stats span{font-size:11px;opacity:.85;}

/* 区块 */
.block{background:var(--card);border-radius:14px;padding:14px;margin-top:14px;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.block-title{font-weight:700;font-size:16px;margin-bottom:12px;padding-left:10px;border-left:4px solid var(--blue);}

/* 平台网格 */
.platform-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.pf-card{background:var(--blue-l);border-radius:10px;padding:12px 4px;text-align:center;font-size:13px;color:var(--blue-d);}
.pf-ico{display:block;font-size:22px;margin-bottom:4px;}

/* 步骤 */
.step-list .step{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:14px;}
.step-list .step:last-child{border-bottom:none;}
.step-no{width:24px;height:24px;flex:none;background:var(--blue);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;}

/* 子tab */
.sub-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;position:sticky;top:64px;background:var(--bg);z-index:10;}
.sub-tabs .tab-pill{flex:none;padding:7px 14px;border-radius:18px;background:#fff;color:var(--sub);font-size:13px;border:1px solid var(--line);}
.sub-tabs .tab-pill.active{background:var(--blue);color:#fff;border-color:var(--blue);}

/* 列表 */
.list{display:grid;grid-template-columns:1fr;gap:10px;}
.row{display:flex;align-items:center;gap:10px;background:#fff;border-radius:12px;padding:10px 12px;box-shadow:0 2px 6px rgba(0,0,0,.04);}
.row .ava{width:40px;height:40px;flex:none;border-radius:50%;background:var(--blue-l);color:var(--blue-d);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;overflow:hidden;}
.row .ava img{width:100%;height:100%;object-fit:cover;}
.row .title{flex:1;min-width:0;}
.row .title .t{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.row .title .meta{font-size:11px;color:var(--sub);margin-top:3px;}
.row .help-btn{flex:none;background:var(--blue);color:#fff;padding:8px 14px;border-radius:20px;font-size:13px;font-weight:600;}
.row .help-btn:active{background:var(--blue-d);}
.empty-tip{text-align:center;color:var(--sub);padding:40px 0;font-size:14px;}

/* 我的发布分类 */
.pub-cat{margin-bottom:14px;border-bottom:2px solid var(--blue);}
.pub-cat .cat-h{font-weight:700;font-size:15px;padding-bottom:8px;margin-bottom:10px;color:var(--blue-d);}
.pub-cat .cat-h .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--blue);margin-right:6px;vertical-align:middle;}
.pub-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px dashed var(--line);font-size:13px;gap:8px;}
.pub-item > span:first-child{flex:1;min-width:0;}
.pub-actions{display:inline-flex;gap:6px;flex:none;}
.btn-mini{flex:none;padding:2px 8px;font-size:12px;font-weight:500;border:1px solid var(--blue);color:var(--blue);background:#fff;border-radius:12px;cursor:pointer;font-family:inherit;line-height:1.4;}
.btn-mini:active{opacity:.85;}

/* 我的发布：双图展示（点广任务） */
.pub-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;}
.pub-shots{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap;}
.pub-shot{display:flex;flex-direction:column;align-items:center;gap:3px;}
.pub-shot img{width:90px;height:90px;object-fit:cover;border:1px solid var(--line);border-radius:8px;cursor:zoom-in;background:#f7f8fa;}
.pub-shot-label{font-size:11px;color:var(--sub);font-weight:600;}
.pub-shot-single{width:90px;height:90px;object-fit:cover;border:1px solid var(--line);border-radius:8px;cursor:zoom-in;margin-top:6px;}
.pub-item:last-child{border-bottom:none;}
.pub-item .st{font-size:11px;color:var(--sub);}
.pub-item .st.doing{color:var(--ok);}
.pub-item .st.done{color:var(--sub);}
.pub-empty{font-size:12px;color:var(--sub);padding:6px 0;}

/* 我的发布弹框（来自「我的」菜单入口） */
.mypub-modal{max-height:62vh;overflow-y:auto;padding-right:4px;}

/* 表单 */
.form label{display:block;font-size:13px;color:var(--sub);margin:12px 0 5px;}
.input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font-size:14px;background:#fff;color:var(--text);margin: 3px auto;}
.input:focus{border-color:var(--blue);}
textarea.input{resize:vertical;}
.seg{display:flex;gap:8px;}
.seg-btn{flex:1;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--sub);font-size:14px;}
.seg-btn.active{background:var(--blue);color:#fff;border-color:var(--blue);}
.btn-primary{width:100%;margin-top:18px;padding:13px;background:var(--blue);color:#fff;border-radius:12px;font-size:16px;font-weight:700;}
.btn-primary:active{background:var(--blue-d);}
.btn-ghost{background:#fff;color:var(--blue);border:1px solid var(--blue);border-radius:10px;padding:8px 12px;font-size:13px;}

/* 我的 */
.mine-head{background:#fff;border-radius:14px;padding:16px;display:flex;align-items:center;gap:12px;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.mine-head .avatar{width:52px;height:52px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;flex:none;}
.mine-info{flex:1;}
.mine-name{font-size:17px;font-weight:700;}
.mine-points{font-size:12px;color:var(--sub);margin-top:4px;}
.mine-menu{background:#fff;border-radius:14px;margin-top:14px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.mine-item{display:flex;align-items:center;gap:10px;padding:15px 16px;border-bottom:1px solid var(--line);font-size:15px;}
.mine-item:last-child{border-bottom:none;}
.mine-item span:first-child{font-size:18px;}
.mine-item .tag{margin-left:auto;font-size:11px;background:var(--blue-l);color:var(--blue-d);padding:2px 8px;border-radius:10px;}

/* 登录 */
.auth-card{background:#fff;border-radius:16px;padding:18px;margin-top:20px;box-shadow:0 4px 14px rgba(0,0,0,.06);}
.auth-tabs{display:flex;gap:8px;margin-bottom:14px;}
.auth-tab{flex:1;padding:10px;background:var(--bg);border-radius:10px;color:var(--sub);font-size:15px;}
.auth-tab.active{background:var(--blue);color:#fff;}
.auth-hint{font-size:12px;color:var(--sub);margin-top:12px;text-align:center;line-height:1.6;}
.code-row{display:flex;gap:8px;align-items:stretch;margin-top:0;}
.code-row .input{flex:1;}
.code-row .btn-ghost{flex:none;padding:11px 12px;white-space:nowrap;}
.code-row .btn-ghost:disabled{color:var(--sub);border-color:var(--line);cursor:not-allowed;}

/* 底部菜单 */
.tabbar{position:fixed;bottom:0;left:0;right:0;max-width:720px;margin:0 auto;display:flex;background:#fff;border-top:1px solid var(--line);box-shadow:0 -2px 10px rgba(0,0,0,.05);z-index:30;}
.tab{flex:1;background:none;padding:8px 0 6px;color:var(--sub);font-size:11px;display:flex;flex-direction:column;align-items:center;gap:2px;}
.tab span{font-size:20px;}
.tab.active{color:var(--blue);}

/* 弹框 */
#modal-root{position:fixed;inset:0;z-index:50;display:none;}
#modal-root.show{display:block;}
.modal-mask{position:absolute;inset:0;background:rgba(0,0,0,.5);}
.modal{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:90%;max-width:420px;max-height:84vh;overflow-y:auto;background:#fff;border-radius:16px;padding:18px;}
.modal h3{margin:0 0 10px;font-size:17px;color:var(--blue-d);}
.modal .m-note{font-size:14px;color:var(--text);line-height:1.7;background:var(--blue-l);border-radius:10px;padding:12px;margin-bottom:12px;}
.modal .m-note img{width:100%;border-radius:8px;margin-top:8px;}
.modal .m-rule{font-size:12px;color:var(--sub);margin-bottom:12px;line-height:1.6;}
.modal .m-upload{margin-bottom:12px;}
.modal .m-upload input{font-size:13px;}
.modal .m-actions{display:flex;gap:10px;}
.modal .m-actions .btn-primary{margin-top:0;flex:1;}
.modal .btn-line{flex:1;padding:13px;border:1px solid var(--blue);color:var(--blue);background:#fff;border-radius:12px;font-size:15px;font-weight:600;}
/* 任务标签：普通阅读 / 点广阅读 / 置顶 */
.row .title .t .tag-ad,
.row .title .t .tag-normal,
.row .title .t .tag-top{display:inline-block;font-size:11px;padding:1px 7px;border-radius:10px;margin-left:6px;font-weight:600;vertical-align:middle;}
.row .title .t .tag-normal{background:#e6f7ff;color:#0958d9;}
.row .title .t .tag-ad{background:#fff7e6;color:#d46b08;}
.row .title .t .tag-top{background:linear-gradient(135deg,#ffa940,#fa8c16);color:#fff;border:none;font-weight:700;box-shadow:0 2px 6px rgba(250,140,22,.35);}
/* 发布表单勾选行 */
.ck-line{display:flex;align-items:center;gap:6px;font-size:13px;color:#666;margin:6px 0;}
.ck-line input{width:auto;}

/* 发布扣点提示框 */
.pub-cost{margin:14px 0 6px;padding:12px 14px;background:linear-gradient(135deg,#f0f7ff,#e6f0ff);border:1px solid #bcd7ff;border-radius:12px;}
.pub-cost-row{display:flex;align-items:baseline;gap:6px;font-size:14px;color:#1f2d3d;padding:2px 0;}
.pub-cost-row b{font-size:18px;color:#1677ff;font-weight:800;}
.pub-cost-row span:first-child{color:#8a94a6;font-size:13px;flex:1;}
.pub-cost-tip{font-size:12px;color:#8a94a6;margin-top:6px;line-height:1.5;}
.modal .close-x{position:absolute;right:14px;top:12px;font-size:22px;color:var(--sub);background:none;z-index:10;}

/* 图片查看器（统一全站大图） */
.iv-wrap{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:8px;}
.iv-wrap .iv-full{max-width:100%;max-height:80vh;object-fit:contain;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.18);}
.iv-close{color:#fff !important;font-size:28px !important;background:rgba(0,0,0,.5) !important;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;right:18px !important;top:18px !important;}

/* 客服弹框 */
.kefu-box{text-align:center;}
.kefu-box img{width:180px;height:180px;object-fit:cover;border:1px solid var(--line);border-radius:10px;margin:10px auto;}
.kefu-box .wx{font-size:16px;font-weight:700;color:var(--blue-d);}
.kefu-box .tip{font-size:12px;color:var(--sub);margin-top:6px;}

/* 提示 toast */
.toast{position:fixed;left:50%;top:40%;transform:translateX(-50%);background:rgba(0,0,0,.8);color:#fff;padding:10px 18px;border-radius:10px;font-size:14px;z-index:99;display:none;}

/* 充值档位按钮 */
.rc-amounts{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0;}
.rc-amounts button{flex:1;min-width:60px;padding:12px 0;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:15px;font-weight:700;color:var(--text);}
.rc-amounts button.active{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 4px 10px rgba(22,119,255,.2);}
.rc-info{font-size:13px;color:var(--sub);margin:6px 0 12px;line-height:1.5;}
.rc-info b{color:var(--blue);font-size:14px;}
.rc-qr-label{text-align:center;font-size:14px;color:var(--text);margin:8px 0;font-weight:600;}

/* PC 端适配 */
@media (min-width:768px){
  .app-main{padding-bottom:20px;}
  .list{grid-template-columns:1fr 1fr;}
  .tabbar{position:static;max-width:720px;margin:14px auto 0;border-radius:14px;border:1px solid var(--line);}
  .tabbar .tab{flex-direction:row;gap:6px;font-size:14px;padding:12px;}
  .tab span{font-size:18px;}
}

/* 置顶任务：渐变背景 + 红色「置顶」标签 */
.row.pinned{background:linear-gradient(135deg,#fff7e6 0%,#ffe1b3 50%,#ffd591 100%);border:1px solid #ffc069;box-shadow:0 4px 12px rgba(255,169,77,.22);}
.row.pinned .tag-top{background:linear-gradient(135deg,#ffa940,#fa8c16);color:#fff;border:none;font-weight:700;box-shadow:0 2px 6px rgba(250,140,22,.45);}

/* 我的发布：标题行 flex 布局 + 置顶按钮 + 剩余时长 */
.pub-cat .cat-h{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;}
.pub-cat .cat-h .cat-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pub-cat .cat-h .st{flex:none;margin-left:0;}
.pin-left{flex:none;font-size:11px;color:#cf1322;background:#fff1f0;border:1px solid #ffa39e;padding:2px 8px;border-radius:10px;white-space:nowrap;}
.pin-btn{flex:none;background:linear-gradient(135deg,#ff4d4f,#cf1322);color:#fff;padding:6px 14px;border-radius:18px;font-size:13px;font-weight:600;box-shadow:0 2px 6px rgba(207,19,34,.25);}
.pin-btn:active{opacity:.85;}
.pin-btn:disabled{background:#d9d9d9;color:#fff;cursor:not-allowed;box-shadow:none;}
.relist-btn{flex:none;background:linear-gradient(135deg,#1677ff,#0958d9);color:#fff;padding:6px 14px;border-radius:18px;font-size:13px;font-weight:600;box-shadow:0 2px 6px rgba(22,119,255,.25);}
.relist-btn:active{opacity:.85;}
.relist-btn:disabled{background:#d9d9d9;color:#fff;cursor:not-allowed;box-shadow:none;}
.pub-cat .cat-h .st.offshelf{color:#f5222d;font-weight:600;}
.pub-cat.pinned .cat-h{border-bottom-color:#ffc069;}

/* 标题过长时右→左滚动（无缝循环） */
.mq{overflow:hidden !important;text-overflow:clip !important;white-space:nowrap !important;display:block !important;}
.mq .mq-track{display:inline-flex;white-space:nowrap;animation:marq 9s linear infinite;}
.mq .mq-t{display:inline-block;padding-right:40px;white-space:nowrap;}
@keyframes marq{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* 以下样式由陈果于2026年8月25日补充 */
.tab span{color: #1677ff;}
.tab span img{width: 20px;}
