:root{
  --primary:#FF6B35;
  --primary-dark:#E85420;
  --accent:#07C160;
  --bg:#F4F5F7;
  --card:#FFFFFF;
  --text:#1F2329;
  --muted:#8A8F99;
  --line:#ECEEF1;
  --gold:#FFB020;
  --radius:14px;
  --shadow:0 2px 12px rgba(0,0,0,.06);
  --tabbar-h:58px;
  --topbar-h:50px;
  --safe-b:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:#e9eaee;color:var(--text);font-size:14px;line-height:1.5;
}
#app{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative;
  box-shadow:0 0 24px rgba(0,0,0,.08);}
.screen{min-height:100vh;display:flex;flex-direction:column;}
.hidden{display:none !important;}

/* ---------- 登录 ---------- */
#login{justify-content:center;align-items:center;background:linear-gradient(160deg,#FF8A3D,#FF6B35 55%,#E85420);}
.login-wrap{width:100%;padding:0 32px;text-align:center;color:#fff;}
.login-logo{width:72px;height:72px;margin:0 auto 16px;border-radius:20px;background:#fff;color:var(--primary);
  font-size:38px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(0,0,0,.18);}
.login-title{font-size:22px;font-weight:700;margin:0 0 6px;}
.login-sub{opacity:.9;margin:0 0 28px;font-size:13px;}
.login-form{background:rgba(255,255,255,.14);backdrop-filter:blur(6px);border-radius:18px;padding:20px 18px;text-align:left;}
.field{display:block;margin-bottom:14px;}
.grid2{display:flex;gap:10px;}
.grid2>.field{flex:1;min-width:0;}
.sub-summary{background:rgba(22,119,255,.08);border:1px solid rgba(22,119,255,.25);color:#1b6fd6;
  border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.5;margin:4px 0 12px;}
.sub-summary b{color:#0b59c2;}
.field-label{display:block;font-size:12px;opacity:.9;margin-bottom:6px;}
.field input{width:100%;height:44px;border:none;border-radius:10px;padding:0 14px;font-size:15px;background:#fff;color:#222;outline:none;}
.login-tip{font-size:12px;opacity:.85;margin-top:16px;line-height:1.7;}

/* ---------- 顶栏 ---------- */
#topbar{height:var(--topbar-h);background:var(--primary);color:#fff;display:flex;align-items:center;
  justify-content:space-between;padding:0 16px;position:sticky;top:0;z-index:20;}
.topbar-title{font-size:17px;font-weight:700;}
.topbar-user{font-size:12px;opacity:.95;max-width:46%;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ---------- 内容区 ---------- */
#content{flex:1;overflow-y:auto;padding:12px 12px calc(var(--tabbar-h) + var(--safe-b) + 16px);-webkit-overflow-scrolling:touch;}

/* ---------- 底部 Tab ---------- */
#tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;
  height:calc(var(--tabbar-h) + var(--safe-b));background:#fff;border-top:1px solid var(--line);
  display:flex;padding-bottom:var(--safe-b);z-index:30;}
.tab{flex:1;border:none;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;color:var(--muted);font-size:11px;cursor:pointer;}
.tab-ico{font-size:20px;line-height:1;filter:grayscale(1);opacity:.6;}
.tab.active{color:var(--primary);font-weight:600;}
.tab.active .tab-ico{filter:none;opacity:1;}

/* ---------- 通用卡片 ---------- */
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;margin-bottom:12px;}
.card-title{font-size:15px;font-weight:700;margin:0 0 8px;}
.muted{color:var(--muted);}
.row{display:flex;align-items:center;gap:8px;}
.between{justify-content:space-between;}

/* ---------- 按钮 ---------- */
.btn{border:none;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:.15s;}
.btn-block{width:100%;}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:active{background:var(--primary-dark);}
.btn-accent{background:var(--accent);color:#fff;}
.btn-ghost{background:#FFF1EA;color:var(--primary);}
.btn-line{background:#fff;border:1px solid var(--line);color:var(--text);}
.btn-sm{padding:7px 10px;font-size:12px;border-radius:8px;}
.btn:disabled{opacity:.5;}

/* ---------- 标签 ---------- */
.tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:20px;background:#FFF1EA;color:var(--primary);margin-right:6px;}
.tag.green{background:#E8F8EF;color:var(--accent);}
.tag.gold{background:#FFF7E6;color:var(--gold);}
.tag.gray{background:#F2F3F5;color:var(--muted);}

/* ---------- 今日推荐 ---------- */
.clock-card{background:linear-gradient(135deg,#FF8A3D,#FF6B35);color:#fff;border-radius:var(--radius);
  padding:16px;margin-bottom:12px;box-shadow:var(--shadow);}
.clock-time{font-size:30px;font-weight:800;letter-spacing:1px;font-variant-numeric:tabular-nums;}
.clock-meta{font-size:13px;opacity:.95;margin-top:2px;}
.clock-slot{display:inline-block;margin-top:10px;background:rgba(255,255,255,.22);padding:4px 12px;border-radius:20px;font-size:13px;font-weight:600;}

.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0;}
/* 微信朋友圈式排版：1 张单列(原比例)；2/4 张两列；3/5-9 张三列；4 张两列两行 */
.media-grid.wx-2, .media-grid.wx-4{grid-template-columns:repeat(2,1fr);}
.media-grid.wx-3, .media-grid.wx-9{grid-template-columns:repeat(3,1fr);}
.media-grid.wx-1{grid-template-columns:1fr;}
.media-grid.wx-1 .m{width:62%;max-height:220px;aspect-ratio:auto;background:#f3f4f6;}
.media-grid.wx-1 .m img, .media-grid.wx-1 .m video{height:auto;max-height:220px;object-fit:contain;}
.media-grid .m{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:#eee;cursor:pointer;}
.media-grid .m img,.media-grid .m video{width:100%;height:100%;object-fit:cover;display:block;}
.media-grid .m .badge{position:absolute;left:4px;bottom:4px;background:rgba(0,0,0,.55);color:#fff;font-size:10px;padding:1px 5px;border-radius:6px;z-index:2;}
.media-grid .m .m-zoom{position:absolute;right:4px;bottom:4px;background:rgba(0,0,0,.5);color:#fff;font-size:10px;padding:2px 6px;border-radius:10px;z-index:2;pointer-events:none;}
.media-grid .m:active{transform:scale(.97);}
/* 删除二次确认：按钮进入待确认态（醒目红） */
.btn.armed{background:#e23b3b !important;color:#fff !important;border-color:#e23b3b !important;}

.content-text{font-size:14px;line-height:1.7;white-space:pre-wrap;color:#2b2f36;}

/* ---------- 选择器 ---------- */
.seg{display:flex;background:#fff;border-radius:10px;padding:3px;gap:3px;margin-bottom:12px;}
.seg button{flex:1;border:none;background:none;padding:8px 0;border-radius:8px;font-size:13px;color:var(--muted);font-weight:600;cursor:pointer;}
.seg button.active{background:var(--primary);color:#fff;}

.selectors{display:flex;gap:8px;margin-bottom:12px;}
.selectors select{flex:1;height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 10px;font-size:14px;color:var(--text);outline:none;}

/* ---------- 内容库 双栏 ---------- */
.lib-layout{display:flex;gap:8px;align-items:flex-start;}
.lib-slots{width:96px;flex:0 0 96px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;}
.slot-btn{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 6px;font-size:12px;text-align:center;color:var(--muted);cursor:pointer;line-height:1.3;}
.slot-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:700;}
.slot-btn small{display:block;font-size:10px;opacity:.7;}
.lib-list{flex:1;min-width:0;}

/* ---------- 节日库 ---------- */
.fest-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;background:#fff;margin-bottom:10px;box-shadow:var(--shadow);}
.fest-date{width:48px;height:48px;flex:0 0 48px;border-radius:12px;background:linear-gradient(135deg,#FFB020,#FF8A3D);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:800;line-height:1;}
.fest-date small{font-size:9px;font-weight:600;opacity:.9;margin-top:2px;}
.fest-name{font-weight:700;font-size:15px;}
.fest-cat{font-size:11px;color:var(--muted);margin-top:2px;}

/* ---------- 内容库 → 节日库：醒目融合入口 ---------- */
.lib-fest-entry{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  background:linear-gradient(135deg,#FFF4E6,#FFE8D6);
  border:1px solid #FFD9BE;border-radius:14px;padding:14px 14px;margin-bottom:12px;
  cursor:pointer;color:var(--text);box-shadow:var(--shadow);transition:.15s;
}
.lib-fest-entry:active{transform:scale(.985);}
.lib-fest-entry .lfe-ico{font-size:26px;flex:0 0 auto;line-height:1;}
.lib-fest-entry .lfe-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.lib-fest-entry .lfe-txt b{font-size:15px;color:var(--primary);}
.lib-fest-entry .lfe-txt small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lib-fest-entry .lfe-go{font-size:13px;font-weight:700;color:var(--primary);flex:0 0 auto;}

/* ---------- 排行榜 ---------- */
.rank-row{display:flex;align-items:center;gap:10px;padding:12px 12px;background:#fff;border-radius:12px;margin-bottom:8px;box-shadow:var(--shadow);}
.rank-no{width:30px;height:30px;flex:0 0 30px;border-radius:50%;background:#F2F3F5;color:var(--muted);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;}
.rank-no.top1{background:#FFD700;color:#7a5b00;}
.rank-no.top2{background:#C9D3DD;color:#4a5560;}
.rank-no.top3{background:#E6A15B;color:#fff;}
.rank-row.me{background:#FFF1EA;border:1px solid #FFD0BC;}
.rank-name{flex:1;min-width:0;}
.rank-name .nm{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rank-name .sub{font-size:11px;color:var(--muted);}
.rank-score{font-weight:800;color:var(--primary);font-size:15px;}
.rank-score small{font-size:10px;color:var(--muted);font-weight:500;margin-left:2px;}
.rank-ellipsis{text-align:center;color:var(--muted);padding:6px 0;font-size:18px;letter-spacing:4px;}

/* ---------- 积分排名：顶部「我的双排名」条 ---------- */
.rank-me{
  display:flex;gap:10px;background:linear-gradient(135deg,#FF8A3D,#FF6B35);
  color:#fff;border-radius:14px;padding:12px;margin-bottom:12px;box-shadow:var(--shadow);
}
.rank-me .rmb{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;align-items:flex-start;}
.rank-me .rmb-lbl{font-size:11px;opacity:.92;}
.rank-me .rmb-rank{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;}
.rank-me .rmb-sub{font-size:12px;opacity:.92;font-variant-numeric:tabular-nums;}

/* ---------- 我的 ---------- */
.profile{background:linear-gradient(135deg,#FF8A3D,#FF6B35);color:#fff;border-radius:var(--radius);padding:18px;margin-bottom:12px;box-shadow:var(--shadow);}
.profile .pname{font-size:19px;font-weight:800;}
.profile .pmeta{font-size:12px;opacity:.95;margin-top:4px;}
.profile .ppoints{margin-top:12px;font-size:13px;opacity:.95;}
.profile .ppoints b{font-size:24px;font-weight:800;margin-right:4px;}
.menu{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.menu-item{display:flex;align-items:center;gap:12px;padding:14px 14px;border-bottom:1px solid var(--line);cursor:pointer;font-size:15px;}
.menu-item:last-child{border-bottom:none;}
.menu-item .mi-ico{font-size:18px;}
.menu-item .mi-arrow{margin-left:auto;color:var(--muted);}
.badge-count{background:var(--primary);color:#fff;font-size:11px;border-radius:10px;padding:1px 7px;margin-left:6px;}

/* ---------- 弹层 ---------- */
.toast{position:fixed;left:50%;top:42%;transform:translateX(-50%);background:rgba(0,0,0,.82);color:#fff;
  padding:10px 18px;border-radius:10px;font-size:13px;z-index:100;max-width:80%;text-align:center;}
.sheet-mask{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:90;display:flex;align-items:flex-end;justify-content:center;}
.sheet{width:100%;max-width:480px;background:#fff;border-radius:18px 18px 0 0;padding:18px 16px calc(18px + var(--safe-b));
  max-height:86vh;overflow-y:auto;}
.sheet h3{margin:0 0 14px;font-size:17px;}
.sheet .field{margin-bottom:12px;}
.sheet .field input,.sheet .field textarea,.sheet .field select{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px;font-size:14px;outline:none;font-family:inherit;}
.sheet .field textarea{min-height:90px;resize:vertical;}
.sheet-actions{display:flex;gap:10px;margin-top:8px;}

/* ---------- 弹层内：键值行 / 说明 ---------- */
.kv{display:flex;justify-content:space-between;align-items:center;padding:7px 0;font-size:14px;border-bottom:1px dashed var(--line);}
.kv:last-of-type{border-bottom:none;}
.kv span{color:var(--muted);}
.kv b{font-weight:700;font-variant-numeric:tabular-nums;}
.hint{font-size:12px;color:var(--muted);line-height:1.6;}

.empty{text-align:center;color:var(--muted);padding:40px 0;font-size:13px;}
.section-label{font-size:12px;color:var(--muted);margin:6px 2px 8px;font-weight:600;}
.dl-progress{font-size:12px;color:var(--muted);margin-top:6px;}

/* ---------- 节日库：宫格小块 ---------- */
.fest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.fest-tile{background:#fff;border-radius:14px;padding:14px 6px 12px;text-align:center;box-shadow:var(--shadow);
  cursor:pointer;position:relative;transition:.15s;border:1px solid transparent;}
.fest-tile:active{transform:scale(.96);}
.fest-tile .fi{width:38px;height:38px;margin:0 auto;display:flex;align-items:center;justify-content:center;}
.fest-tile .fn{font-weight:700;font-size:13px;margin-top:8px;}
.ln-ico{width:100%;height:100%;display:block;}
/* 简笔画按类别上色，清新区分 */
.fest-tile.cat-term .fi{color:#07C160;}
.fest-tile.cat-legal .fi{color:#FF6B35;}
.fest-tile.cat-custom .fi{color:#7B4DDB;}
.fest-tile.is-today{border-color:var(--primary);background:#FFF6F1;}
.fest-tile .today-dot{position:absolute;top:6px;right:6px;background:var(--primary);color:#fff;
  font-size:9px;padding:1px 6px;border-radius:8px;font-weight:700;}

/* ---------- 节日详情头 ---------- */
.fest-head{background:linear-gradient(135deg,#FF8A3D,#FF6B35);color:#fff;border-radius:var(--radius);
  padding:16px;margin-bottom:12px;box-shadow:var(--shadow);display:flex;align-items:center;gap:14px;}
.fest-head .fh-ico{width:56px;height:56px;flex:0 0 56px;border-radius:16px;background:rgba(255,255,255,.22);
  display:flex;align-items:center;justify-content:center;color:#fff;}
.fest-head .fh-ico .ln-ico{width:30px;height:30px;}
.fest-head .fh-name{font-size:19px;font-weight:800;}
.fest-head .fh-meta{font-size:12px;opacity:.95;margin-top:2px;}
.back-btn{display:inline-flex;align-items:center;gap:4px;border:none;background:#fff;color:var(--primary);
  border-radius:20px;padding:6px 14px;font-size:13px;font-weight:700;cursor:pointer;margin-bottom:12px;
  box-shadow:var(--shadow);}

/* ---------- 醒目「换一条」 ---------- */
.btn-shuffle{width:100%;margin-top:12px;height:50px;font-size:17px;font-weight:800;letter-spacing:1px;
  border:none;border-radius:14px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(90deg,#FF9A3D,#FF6B35 55%,#E85420);
  box-shadow:0 6px 16px rgba(232,84,32,.35);}
.btn-shuffle:active{transform:translateY(1px);}
.btn-shuffle .sh-ico{display:inline-block;animation:spin 3.2s linear infinite;font-size:19px;}
@keyframes spin{to{transform:rotate(360deg);}}
.shuffle-hint{text-align:center;font-size:12px;color:var(--muted);margin-top:6px;}

/* ---------- 店员管理 ---------- */
.clerk-item{display:flex;align-items:center;gap:10px;padding:12px;background:#fff;border-radius:12px;
  margin-bottom:8px;box-shadow:var(--shadow);}
.clerk-av{width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#FFF1EA;color:var(--primary);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;}
.clerk-off{background:#F2F3F5;color:var(--muted);}
.clerk-limit{font-size:12px;color:var(--muted);margin:2px 0 10px;}

/* ---------- 图标选择器 ---------- */
.icon-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;max-height:180px;overflow-y:auto;padding:4px;}
.icon-picker button{border:1px solid var(--line);background:#fff;border-radius:10px;height:36px;cursor:pointer;padding:0;
  display:flex;align-items:center;justify-content:center;color:var(--primary);}
.icon-picker button .ln-ico{width:20px;height:20px;}
.icon-picker button.active{border-color:var(--primary);background:#FFF1EA;}

/* ---------- 图片/视频灯箱（点击放大 + 单张保存） ---------- */
.lightbox{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.88);}
.lightbox .lb-backdrop{position:absolute;inset:0;}
.lightbox .lb-panel{position:relative;width:92%;max-width:520px;display:flex;flex-direction:column;gap:12px;z-index:2;}
.lightbox .lb-stage{display:flex;align-items:center;justify-content:center;background:#000;border-radius:12px;overflow:hidden;max-height:68vh;}
.lightbox .lb-stage img,.lightbox .lb-stage video{max-width:100%;max-height:68vh;display:block;border-radius:12px;}
.lightbox .lb-bar{display:flex;gap:10px;justify-content:center;}
/* 长按保存提示（微信内） */
.lightbox .lb-tip{background:rgba(255,255,255,.94);color:#1f2430;font-size:13px;font-weight:600;
  line-height:1.6;text-align:center;padding:9px 14px;border-radius:10px;}
/* 可滚动的长图 / 逐张长按视图 */
.lightbox .lb-stage.lb-scroll{display:block;overflow-y:auto;-webkit-overflow-scrolling:touch;
  max-height:66vh;background:#111;}
.lightbox .lb-stage.lb-scroll img{width:100%;height:auto;max-height:none;display:block;border-radius:0;}

/* ---------- 积分明细（历史数据） ---------- */
.points-list{display:flex;flex-direction:column;gap:8px;}
.points-row{display:flex;align-items:center;gap:10px;padding:11px 12px;background:#fff;border-radius:12px;box-shadow:var(--shadow);}
.points-row .pr-main{flex:1;min-width:0;}
.points-row .pr-reason{font-size:14px;font-weight:600;color:var(--text);}
.points-row .pr-date{font-size:12px;color:var(--muted);margin-top:2px;}
.points-row .pr-delta{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums;}
.points-row .pr-delta.plus{color:#07C160;}
.points-row .pr-delta.minus{color:#FF4D4F;}

/* ---------- 积分商城 ---------- */
.flex1{flex:1;min-width:0;}
.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.sheet-head b{font-size:17px;}
.sheet-x{color:var(--muted);font-size:14px;cursor:pointer;font-weight:600;padding:4px 2px;}
.danger{color:#e2453c !important;}
.mall-card{display:flex;gap:10px;background:#fff;border-radius:12px;padding:10px;box-shadow:var(--shadow);margin-bottom:10px;}
.mall-cover{width:84px;height:84px;flex:0 0 84px;border-radius:10px;overflow:hidden;background:#f2f3f5;}
.mall-info{flex:1;min-width:0;display:flex;flex-direction:column;}
.mall-title{font-size:15px;font-weight:700;line-height:1.35;}
.mall-sub{font-size:12px;color:var(--muted);margin:2px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mall-price{color:var(--primary);font-weight:800;font-size:15px;}
.mall-detail-cover{width:100%;height:200px;border-radius:12px;overflow:hidden;background:#f2f3f5;margin-bottom:8px;}
.mall-thumbs{display:flex;gap:8px;margin-bottom:4px;overflow-x:auto;}
.mall-thumb{width:54px;height:54px;flex:0 0 54px;border-radius:8px;overflow:hidden;border:2px solid transparent;background:#f2f3f5;cursor:pointer;}
.mall-thumb.on{border-color:var(--primary);}
.mall-thumb img{width:100%;height:100%;object-fit:cover;}
.stepper{display:flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.stepper button{width:38px;height:34px;border:none;background:#fff;font-size:18px;font-weight:700;color:var(--text);cursor:pointer;}
.stepper span{width:46px;text-align:center;font-size:15px;font-weight:700;}
.mall-addr{background:#fff;border-radius:12px;padding:12px;box-shadow:var(--shadow);margin-bottom:10px;cursor:pointer;}
.mall-bill{background:#fff;border-radius:12px;padding:12px;box-shadow:var(--shadow);margin:10px 0;font-size:14px;}
.mall-bill .row{margin:7px 0;}
.mall-order{background:#fff;border-radius:12px;padding:12px;box-shadow:var(--shadow);margin-bottom:10px;}

/* ============ 课程讨论区 / 问答区 ============ */
.lp-discuss{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:12px;padding:12px;}
.lp-dtabs{display:flex;gap:8px;margin-bottom:10px;}
.lp-dtabs button{flex:1;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:10px;padding:8px 0;font-size:14px;cursor:pointer;}
.lp-dtabs button.on{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:700;}
.lp-dinput{display:flex;gap:8px;align-items:flex-end;margin-bottom:10px;}
.lp-dinput textarea{flex:1;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:14px;resize:none;color:var(--text);font-family:inherit;}
.lp-dinput .btn-sm{padding:8px 14px;}
.lp-dlist{max-height:560px;overflow-y:auto;}
.lp-q,.lp-cm{background:#FAFBFC;border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:10px;}
.lp-cm-h{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:4px;}
.lp-cm-h b{color:var(--text);font-weight:700;}
.lp-cm-h .muted{font-size:12px;}
.lp-cm-c{font-size:14px;color:var(--text);line-height:1.5;white-space:pre-wrap;word-break:break-word;}
.lp-cm-f{display:flex;align-items:center;gap:14px;margin-top:6px;font-size:12px;color:var(--muted);}
.lp-like{cursor:pointer;user-select:none;}
.lp-like.on{color:#FF4D4F;font-weight:700;}
.lp-reply,.lp-del{cursor:pointer;color:var(--primary);}
.lp-del{color:#e2453c;}
.lp-replies{margin-top:8px;padding-left:10px;border-left:2px solid var(--line);}
.lp-replies .lp-cm{background:#fff;margin-bottom:8px;}
.lp-reward{display:inline-block;margin-left:8px;font-size:11px;color:var(--gold);background:#FFF7E6;padding:1px 7px;border-radius:20px;}
.lp-reward-hint{color:var(--accent);font-size:11px;margin-left:6px;}


/* ============ 站外打卡领奖（H5 用户端） ============ */
.cp-banner{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#FFF4E5,#FFE9D6);
  border:1px solid #FFD9B8;border-radius:14px;padding:12px 14px;margin-bottom:12px;cursor:pointer;}
.cp-banner-ico{font-size:24px;}
.cp-banner-txt{flex:1;min-width:0;display:flex;flex-direction:column;}
.cp-banner-txt b{font-size:15px;color:#C2410C;}
.cp-banner-txt small{font-size:11px;color:#9A6B4F;line-height:1.4;}
.cp-banner-go{color:#C2410C;font-weight:700;font-size:13px;white-space:nowrap;}

.cp{max-width:680px;margin:0 auto;padding-bottom:16px;}
.cp-head{margin:0 0 12px;}
.cp-h1{font-size:18px;font-weight:800;color:var(--text);margin-bottom:2px;}
.back-btn{display:inline-block;color:var(--muted);font-size:13px;margin:4px 0 10px;cursor:pointer;}
.cp-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:12px;}
.cp-cover{height:130px;display:flex;align-items:center;justify-content:center;background:#FFF4E5;font-size:48px;}
.cp-cover-x{color:#F0A868;}
.cp-card-b{padding:12px 14px;}
.cp-card-t{font-size:15px;font-weight:700;color:var(--text);}

.cp-detail{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;margin-top:10px;}
.cp-dt-title{font-size:17px;font-weight:800;color:var(--text);margin-bottom:6px;}
.cp-rules{background:#FAFBFC;border:1px solid var(--line);border-radius:10px;padding:10px;font-size:13px;
  color:var(--muted);line-height:1.6;margin:10px 0;}
.cp-prog{display:flex;gap:8px;margin:12px 0;}
.cp-prog>div{flex:1;text-align:center;background:#FAFBFC;border:1px solid var(--line);border-radius:10px;padding:10px 4px;}
.cp-prog .num{font-size:20px;font-weight:800;color:var(--primary);}
.cp-prog .lbl{font-size:12px;color:var(--muted);margin-top:2px;}
.cp-sec{font-size:14px;font-weight:700;color:var(--text);margin:16px 0 8px;}
.cp-reward{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid var(--line);
  border-radius:10px;margin-bottom:8px;background:#FAFBFC;}
.cp-rw-days{font-size:13px;color:var(--text);font-weight:600;}
.cp-rw-val{font-size:13px;color:var(--primary);font-weight:700;}
.cp-rw-val small{color:var(--muted);font-weight:400;margin-left:6px;}
.cp-task{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;}
.cp-task-l{flex:1;min-width:0;}
.cp-task-t{font-size:14px;font-weight:600;color:var(--text);}
.cp-ss-prev{margin-top:6px;}
.cp-ss-prev img{border-radius:8px;border:1px solid var(--line);}

.cp-grant{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--line);
  border-radius:10px;margin-bottom:8px;background:var(--card);}
.cp-grant-l{flex:1;min-width:0;}
.cp-grant-t{font-size:15px;font-weight:700;color:var(--text);}

/* ==================== 门店资料下载区 ==================== */
.dl-head{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;margin-bottom:12px;}
.dl-head-t{font-size:17px;font-weight:800;color:var(--text);}
.dl-head-s{font-size:12px;color:var(--muted);margin-top:4px;}
.dl-chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 12px;-webkit-overflow-scrolling:touch;}
.dl-chips::-webkit-scrollbar{display:none;}
.dl-chip{flex:0 0 auto;padding:7px 15px;border-radius:18px;background:var(--card);border:1px solid var(--line);
  font-size:13px;color:var(--text);cursor:pointer;}
.dl-chip.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600;}
.dl-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:12px;}
.dl-cover{position:relative;background:#F6F7FA;cursor:pointer;}
.dl-cover img{width:100%;max-height:360px;object-fit:cover;display:block;}
.dl-cover-empty{height:130px;display:flex;align-items:center;justify-content:center;font-size:38px;color:#B9C0CB;}
.dl-ext{position:absolute;top:10px;left:10px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;
  padding:3px 9px;border-radius:6px;letter-spacing:.5px;}
.dl-b{padding:12px 14px 14px;}
.dl-t{font-size:15px;font-weight:700;color:var(--text);margin-bottom:5px;}
.dl-meta{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px;}
.dl-btns{display:flex;gap:10px;}
.dl-btn{flex:1;height:42px;border:none;border-radius:10px;font-size:14px;font-weight:700;color:#fff;
  display:flex;align-items:center;justify-content:center;gap:4px;cursor:pointer;padding:0 8px;}
.dl-btn.src{background:#2F7BF6;}
.dl-btn.jpg{background:#0ABF74;}
.dl-btn.off{background:#C9CDD4;}
