:root{
  --paper:#faf7f2; --ink:#2a2622; --ink2:#5c554d; --ink3:#8c837a;
  --gold:#c9a96e; --gold-d:#a8873f; --card:#ffffff; --line:#e8e0d4;
  --green:#5b7d5e; --red:#b4574e;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);
  font-family:-apple-system,"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased}
body{padding-bottom:calc(52px * var(--fsmul,1) + 14px + env(safe-area-inset-bottom));font-size:calc(16px * var(--fsmul,1))}
#app{max-width:720px;margin:0 auto;padding:0 16px}

/* 顶部 */
.hdr{padding:22px 0 10px;text-align:center}
.hdr .day{font-size:calc(12px * var(--fsmul,1));letter-spacing:2px;color:var(--gold-d);font-weight:600}
.hdr h1{font-size:calc(15px * var(--fsmul,1));color:var(--ink3);font-weight:400;margin:6px 0 0;letter-spacing:1px}
.title{font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:calc(26px * var(--fsmul,1));line-height:1.42;
  font-weight:700;margin:14px 0 6px;text-align:center;letter-spacing:.5px}
.title-underline{width:54px;height:2px;background:var(--gold);margin:14px auto 22px;border-radius:2px}

/* 音频 */
.audio{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,var(--s-f4efe4),var(--s-efe7d8));
  border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:0 0 22px}
.audio button{width:44px;height:44px;border-radius:50%;border:none;background:var(--gold);
  color:#fff;font-size:calc(17px * var(--fsmul,1));flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.audio button:active{transform:scale(.94)}
.audio .meta{flex:1;min-width:0}
.audio .meta b{display:block;font-size:calc(13px * var(--fsmul,1));color:var(--gold-d);font-weight:600}
.audio .meta small{font-size:calc(11px * var(--fsmul,1));color:var(--ink3)}
.bar{height:4px;background:rgba(0,0,0,.09);border-radius:3px;margin-top:7px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--gold);border-radius:3px;transition:width .25s}

/* 区块 */
.sec{margin:0 0 30px}
.sec-h{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:calc(14px * var(--fsmul,1));
  color:var(--gold-d);font-weight:700;letter-spacing:1px}
.sec-h:after{content:"";flex:1;height:1px;background:var(--line)}
.body{font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:calc(17px * var(--fsmul,1));line-height:1.92;
  color:var(--ink);letter-spacing:.2px}
.body p{margin:0 0 15px}
.verse{background:var(--s-fff);border-left:3px solid var(--gold);border-radius:0 10px 10px 0;
  padding:16px 18px;margin:0 0 14px;font-family:"Songti SC","Noto Serif CJK SC",serif;
  font-size:calc(16.5px * var(--fsmul,1));line-height:1.95;color:var(--t-3b352e);box-shadow:0 1px 3px rgba(0,0,0,.03)}
.verse p{margin:0 0 11px}
.verse p:last-of-type{margin-bottom:0}
.verse .ref{display:block;margin-top:10px;font-size:calc(12.5px * var(--fsmul,1));color:var(--gold-d);
  font-family:-apple-system,sans-serif;letter-spacing:.5px}
.core{background:linear-gradient(135deg,var(--s-fdf8ec),var(--s-f8f0dd));border:1px solid var(--s-ecdfc2);
  border-radius:14px;padding:20px 18px;font-family:"Songti SC","Noto Serif CJK SC",serif;
  font-size:calc(18px * var(--fsmul,1));line-height:1.85;color:var(--t-6b4f1d);text-align:center;font-weight:600}
.q{color:var(--t-4a3f2e)}

/* 我的回应 */
.note{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}
.note textarea{width:100%;min-height:104px;border:none;outline:none;resize:vertical;
  font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:calc(16px * var(--fsmul,1));line-height:1.85;
  color:var(--ink);background:transparent}
.note textarea::placeholder{color:#c3b9ab}
.note .row{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.note .row small{color:var(--ink3);font-size:calc(12px * var(--fsmul,1))}

/* 按钮 */
.btn{border:none;border-radius:12px;padding:13px 20px;font-size:calc(15px * var(--fsmul,1));font-weight:600;
  font-family:inherit;background:var(--gold);color:#fff;width:100%}
.btn:active{transform:scale(.985);opacity:.92}
.btn.done{background:var(--green)}
.btn.ghost{background:transparent;color:var(--ink2);border:1px solid var(--line);font-weight:500}
.btn.sm{width:auto;padding:9px 16px;font-size:calc(13.5px * var(--fsmul,1));border-radius:10px}
.cta{margin:6px 0 34px}

/* 祷告 */
.p-item{background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:14px 16px;margin-bottom:10px;display:flex;gap:12px;align-items:flex-start}
.p-item .chk{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);
  flex:0 0 auto;margin-top:2px;display:flex;align-items:center;justify-content:center;
  font-size:calc(13px * var(--fsmul,1));color:#fff}
.p-item.ok .chk{background:var(--green);border-color:var(--green)}
.p-item.ok .txt{text-decoration:line-through;color:var(--ink3)}
.p-item .txt{flex:1;font-size:calc(15.5px * var(--fsmul,1));line-height:1.65;font-family:"Songti SC",serif}
.p-item .txt small{display:block;font-family:-apple-system,sans-serif;font-size:calc(11.5px * var(--fsmul,1));
  color:var(--ink3);margin-top:5px;text-decoration:none}
.p-add{display:flex;gap:8px;margin:0 0 16px}
.p-add input{flex:1;border:1px solid var(--line);background:var(--s-fff);border-radius:12px;
  padding:12px 14px;font-size:calc(15px * var(--fsmul,1));font-family:inherit;outline:none;color:var(--ink)}
.empty{text-align:center;color:var(--ink3);font-size:calc(13.5px * var(--fsmul,1));padding:40px 0;line-height:1.8}

/* 我的 */
.stats{display:flex;gap:10px;margin:0 0 22px}
.stat{flex:1;background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:16px 10px;text-align:center}
.stat b{display:block;font-size:calc(26px * var(--fsmul,1));color:var(--gold-d);font-weight:700;
  font-family:"Songti SC",serif;line-height:1.2}
.stat small{font-size:calc(11.5px * var(--fsmul,1));color:var(--ink3)}
.hist{background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:14px 16px;margin-bottom:9px;display:flex;justify-content:space-between;
  align-items:center;gap:10px}
.hist .d{font-size:calc(12px * var(--fsmul,1));color:var(--ink3)}
.hist .t{font-size:calc(15px * var(--fsmul,1));font-family:"Songti SC",serif;margin-top:3px}

/* 底部导航 */
#tabs{position:fixed;left:0;right:0;bottom:0;display:flex;background:rgba(250,247,242,.985);
  border-top:1px solid var(--line);
  padding-bottom:env(safe-area-inset-bottom);z-index:20}
#tabs .tab{flex:1;background:none;border:none;padding:7px 0 6px;color:var(--ink3);
  font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:2px}
#tabs .tab{position:relative}
#tabs .tabdot{display:none;position:absolute;top:3px;left:50%;margin-left:4px;min-width:16px;height:16px;
  padding:0 4px;border-radius:9px;background:var(--s-e0453a);color:#fff;font-style:normal;font-weight:600;
  font-size:calc(10px * var(--fsmul,1));line-height:16px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.2)}
#tabs .tabdot.on{display:block}
#tabs .tab span{font-size:calc(19.5px * var(--fsmul,1));line-height:1.05}
#tabs .tab i{font-style:normal;font-size:calc(11.5px * var(--fsmul,1));letter-spacing:.5px;margin-top:1px}
#tabs .tab.active{color:var(--gold-d);font-weight:600}

.view{display:none}
.view.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);background:rgba(42,38,34,.93);
  color:#fff;font-size:calc(13.5px * var(--fsmul,1));padding:10px 20px;border-radius:22px;z-index:99;
  opacity:0;transition:opacity .25s;pointer-events:none}
.toast.on{opacity:1}

/* ── 首次引导页（圆角卡片） ── */
#onboard{position:fixed;inset:0;z-index:50;background:#191510;
  display:flex;align-items:center;justify-content:center;
  padding:calc(14px + env(safe-area-inset-top)) 14px calc(14px + env(safe-area-inset-bottom))}
#onboard .frame{width:100%;height:100%;border-radius:30px;overflow:hidden;
  box-shadow:0 10px 40px rgba(0,0,0,.5);position:relative;cursor:pointer}
#onboard .frame img{width:100%;height:100%;object-fit:cover;display:block}
#onboard .frame:active{transform:scale(.985);transition:transform .12s}
/* ── 开屏页 ── */
#splash{position:fixed;inset:0;z-index:60;background:#191510;display:flex;
  align-items:center;justify-content:center;cursor:pointer}
#splash img{width:100%;height:100%;object-fit:cover;display:block}
/* ── 首次引导页（圆角卡片） ── */
#onboard{position:fixed;inset:0;z-index:50;background:#191510;
  display:flex;align-items:center;justify-content:center;
  padding:calc(14px + env(safe-area-inset-top)) 14px calc(14px + env(safe-area-inset-bottom))}
#onboard .frame{width:100%;height:100%;border-radius:30px;overflow:hidden;
  box-shadow:0 10px 40px rgba(0,0,0,.5);position:relative;cursor:pointer}
#onboard .frame img{width:100%;height:100%;object-fit:cover;display:block}
#onboard .frame:active{transform:scale(.985);transition:transform .12s}

/* ── 诊断卡 ── */
.diag{padding:2px 2px 6px}
.diag-row{font-size:calc(13px * var(--fsmul,1));color:var(--t-8a7a5c);margin-bottom:8px;letter-spacing:.5px}
.diag-warn{font-size:calc(12.5px * var(--fsmul,1));color:var(--t-b4813a);margin:6px 0 8px}
.btn-mini{display:inline-block;margin:0 8px 6px 0;padding:7px 14px;border-radius:16px;
  border:1px solid var(--s-d8c9a8);background:var(--s-fbf7ee);color:var(--t-5b4a2e);font-size:calc(12.5px * var(--fsmul,1));font-family:inherit}
.dlg-mask{position:fixed;inset:0;z-index:80;background:rgba(25,21,16,.55);
  display:flex;align-items:center;justify-content:center;padding:22px}
.dlg{background:var(--s-faf7f2);border-radius:18px;max-height:76vh;display:flex;flex-direction:column;
  width:100%;padding:16px 14px;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.dlg-pre{overflow:auto;font-size:calc(11.5px * var(--fsmul,1));line-height:1.6;color:var(--t-3d3223);white-space:pre-wrap;
  word-break:break-all;font-family:ui-monospace,Menlo,monospace;flex:1}
.dlg-close{margin-top:12px;padding:11px 0;border-radius:14px;border:none;background:#3d2f18;
  color:#f8efdd;font-size:calc(14px * var(--fsmul,1));font-family:inherit}

/* ── 登录/注册窗 ── */
.auth-mask{position:fixed;inset:0;z-index:90;background:rgba(25,21,16,.6);
  display:flex;align-items:center;justify-content:center;padding:22px}
.auth-card{background:var(--s-faf7f2);border-radius:18px;width:100%;max-height:86vh;overflow:auto;
  padding:22px 18px 16px;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.auth-h{font-size:calc(17px * var(--fsmul,1));font-weight:700;color:var(--t-2f2515);text-align:center;letter-spacing:1px}
.auth-sub{font-size:calc(12px * var(--fsmul,1));color:var(--t-8a7a5c);text-align:center;margin:6px 0 14px}
.auth-tabs{display:flex;gap:8px;margin-bottom:12px}
.auth-tab{flex:1;padding:8px 0;border-radius:12px;border:1px solid var(--s-d8c9a8);background:var(--s-fbf7ee);
  color:var(--t-5b4a2e);font-size:calc(13px * var(--fsmul,1));font-family:inherit}
.auth-tab.active{background:#3d2f18;color:#f8efdd;border-color:#3d2f18}
.auth-card input{width:100%;margin:0 0 10px;padding:11px 12px;border-radius:12px;
  border:1px solid var(--s-d8c9a8);background:var(--s-fff);font-size:calc(14px * var(--fsmul,1));font-family:inherit;box-sizing:border-box}
.auth-msg{min-height:16px;font-size:calc(12px * var(--fsmul,1));color:var(--t-a04a3a);text-align:center;margin-top:8px}
.auth-cancel{display:block;width:100%;margin-top:6px;padding:10px 0;border:none;border-radius:12px;
  background:transparent;color:var(--t-8a7a5c);font-size:calc(13px * var(--fsmul,1));font-family:inherit}

/* ── 小家心得 ── */
.ref-card{background:var(--s-fffdf8);border:1px solid var(--s-eee2cc);border-left:3px solid var(--s-c2a074);
  border-radius:12px;padding:12px 14px;margin:8px 0}
.ref-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.ref-top b{font-size:calc(14px * var(--fsmul,1));color:var(--t-2f2515)}
.ref-top small{color:var(--t-8a7a5c);font-size:calc(12px * var(--fsmul,1))}
.ref-body{font-size:calc(14.5px * var(--fsmul,1));line-height:1.7;color:var(--t-31281a);white-space:pre-wrap}
.ref-pastor{margin-top:10px;background:var(--s-f5f2ff);border-left:3px solid var(--s-6366f1);border-radius:8px;padding:9px 12px}
.ref-pastor-h{font-size:calc(11.5px * var(--fsmul,1));color:#6366f1;font-weight:700;margin-bottom:3px;letter-spacing:.5px}
.ref-pastor div{font-size:calc(13.5px * var(--fsmul,1));line-height:1.65;color:var(--t-3d3560);white-space:pre-wrap}
.ref-foot{margin-top:6px}
.ref-foot small{color:var(--t-a59377);font-size:calc(12px * var(--fsmul,1))}

/* ── 心得互动（点赞/留言） ── */
.ref-act{background:none;border:none;font-family:inherit;font-size:calc(12.5px * var(--fsmul,1));color:var(--t-8a7a5c);
  padding:4px 10px 4px 0;cursor:pointer}
.ref-act.liked{color:var(--t-d1467a);font-weight:600}
.ref-comment-area{margin-top:8px;border-top:1px dashed var(--s-e6d9c2);padding-top:9px}
.ref-c-row{font-size:calc(13px * var(--fsmul,1));line-height:1.6;color:var(--t-3d3223);margin-bottom:5px}
.ref-c-name{color:var(--t-a8813f);font-weight:600}
.ref-c-txt{color:var(--t-4a3f2e)}
.ref-c-time{color:#b3a68f;font-size:calc(11px * var(--fsmul,1));margin-left:6px}
.ref-c-empty{font-size:calc(12.5px * var(--fsmul,1));color:var(--t-a59377);padding:4px 0}
.ref-c-form{display:flex;gap:8px;margin-top:8px}
.ref-c-form input{flex:1;padding:9px 11px;border:1px solid var(--s-ddd0b6);border-radius:10px;
  background:var(--s-fffdf8);font-size:calc(13px * var(--fsmul,1));font-family:inherit;box-sizing:border-box}
.ref-c-form .btn-mini{margin:0;white-space:nowrap}

/* ── 心得可见范围 ── */
.ref-vis-row{display:flex;align-items:center;gap:6px;margin:8px 0 2px;flex-wrap:wrap}
.ref-vis-row small{color:var(--t-8a7a5c)}
.ref-vis{background:var(--s-f7efe0);border:1px solid var(--s-e6d9c2);border-radius:14px;padding:4px 10px;
  font-size:calc(12px * var(--fsmul,1));color:var(--t-8a7a5c);font-family:inherit;cursor:pointer}
.ref-vis.on{background:var(--s-c2a074);border-color:var(--s-c2a074);color:#fff}

/* ── 增量刷新：新到的心得高亮一下 ── */
.ref-card.ref-new{animation:refIn .5s ease;position:relative}
.ref-card.ref-new::after{content:"新";position:absolute;top:8px;right:10px;font-size:calc(10px * var(--fsmul,1));
  color:#fff;background:var(--accent,#b58a4a);border-radius:8px;padding:1px 6px}
@keyframes refIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.grp-list{display:flex;flex-direction:column;gap:10px}

/* 未来（提前下发）的灵修条目 */
.hist-future{opacity:.92;border-left:3px solid var(--accent,#b58a4a)}

/* ── 读经 / 书籍 ── */
.rd-body .body p{margin:6px 0;line-height:1.75;font-size:calc(16px * var(--fsmul,1))}
.bk-row{display:flex;align-items:center;justify-content:space-between;cursor:pointer}
.bk-go{color:var(--accent,#b58a4a);font-size:calc(13px * var(--fsmul,1));white-space:nowrap;padding-left:10px}
#tabs .tab i{font-size:calc(11.5px * var(--fsmul,1))}
@media (max-width:360px){#tabs .tab i{font-size:calc(10.5px * var(--fsmul,1))}}

/* 章节卡内小标题（不参与顶部段落列表的视觉层级） */
.sub-sec .sec-h{font-size:calc(13px * var(--fsmul,1));opacity:.85;margin-top:10px;border:none;padding-left:0}

/* ---- 灵修提醒 ---- */
.rem-body .rem-line { font-size:calc(13px * var(--fsmul,1)); color:var(--t-6b5a45); margin:6px 0 8px; }
.rem-times { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }
.rem-chip {
  border:1px solid var(--s-e6dccd); background:var(--s-fff); color:var(--t-6b5a45);
  border-radius:14px; padding:5px 12px; font-size:calc(12.5px * var(--fsmul,1));
}
.rem-chip.on { background:#8b7355; border-color:#8b7355; color:#fff; }
.rem-in {
  width:54px; text-align:center; border:1px solid var(--s-e6dccd); border-radius:8px;
  padding:6px; font-size:calc(14px * var(--fsmul,1)); background:var(--s-fff); color:var(--t-4a3a28);
}

/* ---- 我的页：紧凑美化 ---- */
.sec { margin:10px 0; }
.sec-h { margin-bottom:6px; }

.me-line {
  display:flex; align-items:center; justify-content:space-between;
  gap:8px; padding:8px 10px; background:var(--s-fff);
  border:1px solid var(--s-efe6d8); border-radius:12px;
}
.me-who { display:flex; flex-direction:column; min-width:0; }
.me-name { font-size:calc(14.5px * var(--fsmul,1)); color:var(--t-4a3a28); font-weight:600; letter-spacing:.3px; }
.me-sub { font-size:calc(11.5px * var(--fsmul,1)); color:var(--t-a3917b); margin-top:1px; }

/* 网站其他板块：三宫格 */
.web-grid { display:flex; gap:8px; }
.web-cell {
  flex:1 1 0; display:flex; flex-direction:column; align-items:center;
  gap:3px; padding:11px 4px; background:var(--s-fff);
  border:1px solid var(--s-efe6d8); border-radius:12px;
}
.web-cell:active { background:var(--s-faf5ec); }
.web-ico { font-size:calc(19px * var(--fsmul,1)); line-height:1; }
.web-txt { font-size:calc(12px * var(--fsmul,1)); color:var(--t-6b5a45); }

/* 折叠区 */
.fold-h { display:flex; align-items:center; gap:6px; cursor:pointer; }
.fold-arrow { margin-left:auto; font-size:calc(11px * var(--fsmul,1)); color:#b8a68f; }
.fold-body { padding:2px 0 0; }
.hide { display:none !important; }

/* 提醒卡更紧凑 */
.rem-body { padding:2px 0 0; }
.rem-body .rem-line { margin:2px 0 8px; }
.rem-body .row { gap:8px; }
.rem-chip { padding:4px 10px; font-size:calc(12px * var(--fsmul,1)); }

/* ---- 推广海报 ---- */
.btn-poster {
  width:100%; margin-top:8px; padding:11px; border:1px dashed var(--s-d9c9b0);
  background:var(--s-fffdf9); color:var(--t-8b7355); border-radius:12px; font-size:calc(13.5px * var(--fsmul,1));
}
.btn-poster:active { background:var(--s-f7efe3); }
.dlg-mask {
  position:fixed; inset:0; background:rgba(40,30,20,.55);
  display:flex; align-items:center; justify-content:center; padding:14px; z-index:999;
}
.poster-box {
  background:var(--s-fff); border-radius:18px; padding:12px; max-width:96vw;
  max-height:92vh; overflow:auto; text-align:center;
}
.poster-img { width:100%; max-width:380px; border-radius:12px; display:block; margin:0 auto 8px; }
.poster-row { justify-content:center; flex-wrap:wrap; }

/* ---- 登录 / 注册 ---- */
.auth-tabs { display:flex; gap:8px; margin-bottom:12px; }
.auth-tab {
  flex:1; padding:9px; border-radius:11px; border:1px solid var(--s-e6dccd);
  background:var(--s-fff); color:var(--t-8b7355); font-size:calc(14.5px * var(--fsmul,1));
}
.auth-tab.on { background:#8b7355; border-color:#8b7355; color:#fff; font-weight:600; }
.auth-body input { margin-bottom:8px; }
.auth-tip { font-size:calc(12px * var(--fsmul,1)); color:var(--t-a3917b); line-height:1.7; margin-top:4px; }
.auth-tip b { color:var(--t-8b7355); }

/* ---- 邀请码 + 扫一扫 ---- */
.inv-row { display:flex; gap:8px; align-items:stretch; margin-bottom:8px; }
.inv-input { flex:1 1 auto; margin-bottom:0 !important; }
.inv-scan {
  flex:0 0 auto; padding:0 12px; border-radius:10px; border:1px solid var(--s-d9c9b0);
  background:var(--s-fffdf9); color:var(--t-8b7355); font-size:calc(13px * var(--fsmul,1));
}
.inv-scan:active { background:var(--s-f7efe3); }

/* ---- 内部通讯 ---- */
.chat-body { padding:2px 2px 0; }
.chat-state { font-size:calc(13px * var(--fsmul,1)); color:var(--t-6b5a45); line-height:1.55; margin-bottom:8px; }

/* ---- 灵修提醒：时间下拉框 ---- */
.rem-select-row { display:flex; align-items:center; gap:8px; margin:4px 0 8px; }
.rem-select-label { font-size:calc(13px * var(--fsmul,1)); color:var(--t-6b5a45); }
.rem-select {
  flex:0 1 auto; min-width:108px; padding:8px 10px; border-radius:10px;
  border:1px solid var(--s-d9c9b0); background:var(--s-fffdf9); color:var(--t-4a3a28); font-size:calc(15px * var(--fsmul,1));
  appearance:none; -webkit-appearance:none;
  background-image:linear-gradient(45deg, transparent 50%, #8b7355 50%), linear-gradient(135deg, #8b7355 50%, transparent 50%);
  background-position:calc(100% - 16px) 55%, calc(100% - 11px) 55%;
  background-size:5px 5px, 5px 5px; background-repeat:no-repeat;
}
.rem-select:focus { outline:none; border-color:var(--s-c2a074); }

/* ============================================================
   属灵书籍 · App 内原生阅读器（排版优先级最高）
   ============================================================ */
:root { --bk-fs:17px; }

.bk-sheet {
  position: fixed; inset: 0; z-index: 80;
  display: flex; flex-direction: column;
  background: #fbf7ee;
  color: #3a3226;
  opacity: 0; transform: translateY(10px);
  transition: opacity .26s ease, transform .26s ease;
  overflow: hidden;
}
.bk-sheet.on { opacity: 1; transform: none; }

/* 顶栏 */
.bk-head {
  flex: 0 0 auto; display: flex; align-items: center; gap: 8px;
  padding: calc(10px + env(safe-area-inset-top)) 14px 10px;
  background: rgba(251, 247, 238, .985);
  border-bottom: 1px solid #ece2cf;
}
.bk-back, .bk-tool {
  border: 0; background: transparent; cursor: pointer;
  font: inherit; font-size:calc(15px * var(--fsmul,1)); font-weight: 500; color: #7d5f33;
  padding: 6px 2px; min-width: 56px; text-align: left;
}
.bk-tool {
  min-width: 44px; text-align: center;
  font-family: Georgia, "Songti SC", serif; font-size:calc(15px * var(--fsmul,1));
  border: 1px solid #e3d4b6; border-radius: 999px; padding: 4px 10px;
  color: #8a6b3a; background: #fffdf8;
}
.bk-title {
  flex: 1 1 auto; text-align: center; font-size:calc(15px * var(--fsmul,1)); font-weight: 600;
  letter-spacing: .02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  color: #4a3f2e;
}

/* 内容区 */
.bk-body { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.bk-body::-webkit-scrollbar, .bk-lib::-webkit-scrollbar, .bk-toc-list::-webkit-scrollbar { width: 0; height: 0; }
.bk-body { scrollbar-width: none; }

/* ---------- 书库 ---------- */
.bk-lib { padding: 18px 16px calc(40px + env(safe-area-inset-bottom)); max-width: 720px; margin: 0 auto; }
.bk-hero { padding: 6px 4px 18px; }
.bk-hero-t {
  font-family: Georgia, "Songti SC", "Noto Serif CJK SC", serif;
  font-size:calc(25px * var(--fsmul,1)); letter-spacing: .06em; color: #3b3020;
}
.bk-hero-s { margin-top: 8px; font-size:calc(12.5px * var(--fsmul,1)); line-height: 1.7; color: #94836a; }
.bk-grid { display: flex; flex-direction: column; gap: 10px; }
.bk-card {
  display: flex; gap: 14px; align-items: center;
  padding: 12px 14px; border-radius: 16px;
  background: #fffdf8; border: 1px solid rgba(226, 210, 178, .55);
  box-shadow: 0 4px 14px rgba(122, 96, 48, .055);
  cursor: pointer; transition: transform .15s ease, box-shadow .15s ease;
}
.bk-card:active { transform: scale(.985); box-shadow: 0 2px 8px rgba(120, 96, 50, .1); }
.bk-cover {
  flex: 0 0 auto; width: 42px; height: 60px; border-radius: 4px 7px 7px 4px;
  background:
    linear-gradient(100deg, rgba(255, 255, 255, .55) 0%, rgba(255, 255, 255, 0) 26%),
    linear-gradient(155deg, #f4e7cd 0%, #e8d4ae 58%, #d9c096 100%);
  display: flex; align-items: center; justify-content: center;
  box-shadow: inset 3px 0 0 rgba(140, 106, 52, .22), inset 0 0 0 1px rgba(160, 126, 68, .18), 0 2px 5px rgba(120, 96, 50, .18);
}
.bk-cover-i { display: none; }
.bk-cover-w {
  font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
  font-size:calc(21px * var(--fsmul,1)); color: #6b4f27; font-weight: 600;
  writing-mode: vertical-rl; letter-spacing: .06em; line-height: 1;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .5);
}
.bk-info { flex: 1 1 auto; min-width: 0; }
.bk-name {
  font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
  font-size:calc(16.5px * var(--fsmul,1)); font-weight: 600; color: #2a2317; letter-spacing: .015em;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.bk-meta { margin-top: 3px; font-size:calc(12px * var(--fsmul,1)); color: #8b7a5e; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bk-bar { margin-top: 8px; height: 4px; border-radius: 4px; background: #e8dcc2; overflow: hidden; }
.bk-bar > i { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, #d9b571, #b78d47); }
.bk-prog-t { margin-top: 6px; font-size:calc(11.5px * var(--fsmul,1)); color: #857254; letter-spacing: .02em; }
.bk-prog-t b { color: #a67f3c; font-weight: 600; }

/* ---------- 阅读页 ---------- */
.bk-page { max-width: 660px; margin: 0 auto; padding: 0 22px calc(56px + env(safe-area-inset-bottom)); }
.bk-readbar { height: 2px; background: #efe6d3; margin: 0 -22px 22px; }
.bk-readbar > i { display: block; height: 100%; background: linear-gradient(90deg, #d9b571, #b78d47); transition: width .3s ease; }

.bk-art {
  padding-top: 10px;
  font-family: "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", Georgia, serif;
  font-size: var(--bk-fs);
  line-height: 1.98;
  color: #2e2717;
  letter-spacing: .012em;
  text-align: justify;
  word-break: break-word;
}
.bk-ch-no {
  font-size:calc(12px * var(--fsmul,1)); letter-spacing: .42em; color: #8b7554;
  text-align: center; font-family: -apple-system, "PingFang SC", sans-serif;
  text-transform: uppercase; margin-bottom: 10px;
}
.bk-ch-t {
  margin: 8px 0 15px; text-align: center;
  font-size: 1.34em; font-weight: 600; line-height: 1.6;
  letter-spacing: .03em; color: #2f2718;
}
.bk-flourish {
  position: relative; text-align: center; color: #c8a869;
  font-size:calc(11px * var(--fsmul,1)); margin: 0 0 22px; letter-spacing: .5em;
}
.bk-flourish::before, .bk-flourish::after {
  content: ""; position: absolute; top: 50%; width: 27%; height: 1px;
  background: linear-gradient(90deg, transparent, #d9c39a, transparent);
}
.bk-flourish::before { left: 4%; }
.bk-flourish::after { right: 4%; }

.bk-ps > p {
  margin: 0 0 .48em; text-indent: 2em; text-align: justify;
  text-justify: inter-ideograph;
}
.bk-ps > p:first-child { margin-top: .1em; }
.bk-ps > p.bk-sub {
  text-indent: 0; margin: 1.35em 0 .6em;
  font-weight: 600; letter-spacing: .02em; color: #3a2f1c;
}
.bk-sheet.bk-dark .bk-ps > p.bk-sub { color: #ded4bd; }

/* 章末落款 */
.bk-fin {
  margin: 30px 0 0; text-align: center;
  font-family: -apple-system, "PingFang SC", sans-serif;
  font-size:calc(11px * var(--fsmul,1)); letter-spacing: .12em; color: #b3a184;
}
.bk-sheet.bk-dark .bk-fin { color: #7d7360; }

/* 翻页 */
.bk-nav {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin: 34px 0 6px;
  padding-top: 18px; border-top: 1px solid #eee3cf;
  font-family: -apple-system, "PingFang SC", sans-serif;
}
.bk-nb {
  border: 1px solid #e3d4b6; background: #fffdf8; color: #8a6b3a;
  border-radius: 999px; padding: 8px 15px; font-size:calc(13px * var(--fsmul,1)); cursor: pointer;
}
.bk-nb.off { opacity: .34; pointer-events: none; }
.bk-nn { font-size:calc(12px * var(--fsmul,1)); color: #a8977c; letter-spacing: .08em; }

.bk-toc-btn {
  display: block; margin: 22px auto 0;
  border: 1px solid #e6d9bf; background: transparent; color: #a08863;
  border-radius: 999px; padding: 7px 18px; font-size:calc(12.5px * var(--fsmul,1)); cursor: pointer;
}

/* 状态 */
.bk-loading, .bk-empty {
  padding: 60px 22px; text-align: center; color: #a0906f; font-size:calc(13.5px * var(--fsmul,1)); line-height: 1.9;
}
.bk-spin {
  display: inline-block; width: 13px; height: 13px; margin-right: 8px; vertical-align: -2px;
  border: 2px solid #e2d0ad; border-top-color: #b78d47; border-radius: 50%;
  animation: bkspin .8s linear infinite;
}
@keyframes bkspin { to { transform:rotate(360deg); } }
.bk-tip {
  margin: 14px auto 0; width: fit-content; padding: 5px 14px; border-radius: 999px;
  background: #f3ead6; color: #9a7f4d; font-size:calc(11.5px * var(--fsmul,1)); transition: opacity .3s;
}
.bk-tip.bye { opacity: 0; }
.bk-toast {
  position: fixed; left: 50%; bottom: 68px; transform: translateX(-50%);
  z-index: 99; padding: 9px 16px; border-radius: 999px;
  background: rgba(58, 50, 38, .92); color: #fdf8ee; font-size:calc(12.5px * var(--fsmul,1));
  transition: opacity .35s; max-width: 80vw;
}
.bk-toast.bye { opacity: 0; }

/* 目录 / 设置 弹层 */
.bk-mask {
  position: fixed; inset: 0; z-index: 90;
  background: rgba(46, 38, 26, .46);
  display: flex; align-items: flex-end; justify-content: center;
}
.bk-toc, .bk-set {
  width: 100%; max-width: 680px; max-height: 74vh;
  background: #fffdf8; border-radius: 18px 18px 0 0;
  padding: 16px 16px calc(20px + env(safe-area-inset-bottom));
  display: flex; flex-direction: column; overflow: hidden;
  animation: bkup .24s ease;
}
@keyframes bkup { from { transform:translateY(24px); opacity:.6; } }
.bk-toc-h, .bk-set-h {
  font-size:calc(13.5px * var(--fsmul,1)); font-weight: 600; color: #4a3f2e;
  padding: 2px 4px 12px; border-bottom: 1px solid #f0e7d6; margin-bottom: 6px;
}
.bk-toc-list { overflow-y: auto; -webkit-overflow-scrolling: touch; }
.bk-toc-row {
  display: flex; align-items: center; gap: 10px;
  padding: 11px 6px; border-bottom: 1px solid #f6efe1; cursor: pointer;
}
.bk-toc-row.cur { background: #fdf6e8; border-radius: 8px; }
.bk-toc-n { flex: 0 0 30px; font-size:calc(11.5px * var(--fsmul,1)); color: #b09a72; text-align: right; }
.bk-toc-t { flex: 1 1 auto; font-size:calc(13.5px * var(--fsmul,1)); color: #3f3423; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bk-toc-done { flex: 0 0 auto; font-size:calc(10.5px * var(--fsmul,1)); color: #b78d47; border: 1px solid #eadcbe; border-radius: 999px; padding: 1px 7px; }

.bk-set { max-height: none; }
.bk-set-row { display: flex; align-items: center; gap: 12px; padding: 14px 6px; border-bottom: 1px solid #f6efe1; }
.bk-set-l { flex: 0 0 auto; font-size:calc(13.5px * var(--fsmul,1)); color: #4a3f2e; }
.bk-set-v { flex: 1 1 auto; text-align: center; font-size:calc(13.5px * var(--fsmul,1)); color: #8a6b3a; }
.bk-set-b {
  border: 1px solid #e3d4b6; background: #fffdf8; color: #8a6b3a;
  border-radius: 10px; padding: 8px 16px; font-size:calc(14px * var(--fsmul,1)); cursor: pointer;
}
.bk-set-b.wide { flex: 1 1 auto; }
.bk-set-tip { padding: 14px 6px 2px; font-size:calc(11.5px * var(--fsmul,1)); color: #a8977c; line-height: 1.8; }

/* 夜间模式 */
.bk-sheet.bk-dark { background: #17150f; color: #c9c0ad; }
.bk-sheet.bk-dark .bk-head { background: rgba(23, 21, 15, .95); border-bottom-color: #2a261c; }
.bk-sheet.bk-dark .bk-title { color: #d6cdb8; }
.bk-sheet.bk-dark .bk-hero-t,
.bk-sheet.bk-dark .bk-ch-t { color: #e0d7c2; }
.bk-sheet.bk-dark .bk-hero-s,
.bk-sheet.bk-dark .bk-meta,
.bk-sheet.bk-dark .bk-prog-t { color: #8b8271; }
.bk-sheet.bk-dark .bk-card { background: #1e1b14; border-color: #2c281e; }
.bk-sheet.bk-dark .bk-name { color: #ddd4c0; }
.bk-sheet.bk-dark .bk-cover { background: linear-gradient(150deg, #3a3323, #2a2519); box-shadow: inset 2px 0 0 rgba(255, 255, 255, .06); }
.bk-sheet.bk-dark .bk-cover-w { color: #c3a978; }
.bk-sheet.bk-dark .bk-bar { background: #2a261c; }
.bk-sheet.bk-dark .bk-art {
  padding-top: 10px; color: #c5bca9; }
.bk-sheet.bk-dark .bk-ch-no { color: #8b7a56; }
.bk-sheet.bk-dark .bk-readbar { background: #2a261c; }
.bk-sheet.bk-dark .bk-nav { border-top-color: #2a261c; }
.bk-sheet.bk-dark .bk-nb { background: #1e1b14; border-color: #3a3326; color: #c3a978; }
.bk-sheet.bk-dark .bk-toc-btn { border-color: #332d21; color: #9c8f76; }
.bk-sheet.bk-dark .bk-toc,
.bk-sheet.bk-dark .bk-set { background: #1e1b14; }
.bk-sheet.bk-dark .bk-toc-h,
.bk-sheet.bk-dark .bk-set-h { color: #ddd4c0; border-bottom-color: #2a261c; }
.bk-sheet.bk-dark .bk-toc-row { border-bottom-color: #26221a; }
.bk-sheet.bk-dark .bk-toc-row.cur { background: #26221a; }
.bk-sheet.bk-dark .bk-toc-t, .bk-sheet.bk-dark .bk-set-l { color: #cfc6b2; }
.bk-sheet.bk-dark .bk-set-b { background: #26221a; border-color: #3a3326; color: #c3a978; }
.bk-sheet.bk-dark .bk-toc-btn,
.bk-sheet.bk-dark .bk-back { color: #b39461; }


/* 夜间模式：目录 / 设置弹层（挂在 body 上，用 html.bk-night 生效） */
html.bk-night .bk-toc, html.bk-night .bk-set { background: #1e1b14; }
html.bk-night .bk-toc-h, html.bk-night .bk-set-h { color: #ddd4c0; border-bottom-color: #2a261c; }
html.bk-night .bk-toc-row { border-bottom-color: #26221a; }
html.bk-night .bk-toc-row.cur { background: #26221a; }
html.bk-night .bk-toc-n { color: #8b7a56; }
html.bk-night .bk-toc-t { color: #cfc6b2; }
html.bk-night .bk-toc-done { color: #b39461; border-color: #3a3326; }
html.bk-night .bk-set-l { color: #cfc6b2; }
html.bk-night .bk-set-v { color: #b39461; }
html.bk-night .bk-set-b { background: #26221a; border-color: #3a3326; color: #c3a978; }
html.bk-night .bk-set-tip { color: #8b8271; }
html.bk-night .bk-mask { background: rgba(0, 0, 0, .55); }

/* 夜间正文再亮一档，长读不费眼 */
.bk-sheet.bk-dark { background: #1b1913; }
.bk-sheet.bk-dark .bk-art { color: #d2c9b6; }
.bk-sheet.bk-dark .bk-ch-t { color: #e6ddc8; }


/* ---------- 书籍 tab 内嵌渲染 ---------- */
.bk-tabhost { padding-bottom: 8px; }
.bk-inline .bk-lib { padding: 14px 16px calc(24px + env(safe-area-inset-bottom)); max-width: 720px; margin: 0 auto; }

/* ---------- 每章语音条（贴在阅读页底部） ---------- */
.bk-audio {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 5;
  display: flex; align-items: center; gap: 10px;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: rgba(251, 247, 238, .99);
  border-top: 1px solid #ece2cf;
}
.bk-sheet.bk-dark .bk-audio { background: rgba(27, 25, 19, .97); border-top-color: #2a261c; }
.bk-ap {
  flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%;
  border: 1px solid #e3d4b6; background: #fffdf8; color: #8a6b3a;
  font-size:calc(13px * var(--fsmul,1)); line-height: 1; cursor: pointer;
}
.bk-sheet.bk-dark .bk-ap { background: #26221a; border-color: #3a3326; color: #c3a978; }
.bk-abar { flex: 1 1 auto; height: 3px; border-radius: 3px; background: #e8dcc2; overflow: hidden; cursor: pointer; }
.bk-abar > i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #d9b571, #b78d47); }
.bk-sheet.bk-dark .bk-abar { background: #2a261c; }
.bk-at { flex: 0 0 auto; font-size:calc(11px * var(--fsmul,1)); color: #8b7a5e; font-variant-numeric: tabular-nums; }
.bk-sheet.bk-dark .bk-at { color: #8b8271; }
.bk-as {
  flex: 0 0 auto; min-width: 38px; border: 1px solid #e3d4b6; background: #fffdf8;
  color: #8a6b3a; border-radius: 999px; padding: 5px 8px; font-size:calc(11.5px * var(--fsmul,1)); cursor: pointer;
}
.bk-sheet.bk-dark .bk-as { background: #26221a; border-color: #3a3326; color: #c3a978; }
.bk-sheet.has-audio .bk-page { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }


/* ---------- 小家引导（属灵书籍解锁条件） ---------- */
.bk-gate { max-width: 640px; margin: 0 auto; padding: 18px 16px calc(28px + env(safe-area-inset-bottom)); }
.bk-gate-hero { text-align: center; padding: 6px 6px 18px; }
.bk-gate-ico { font-size:calc(34px * var(--fsmul,1)); line-height: 1; }
.bk-gate-t {
  margin-top: 10px; font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
  font-size:calc(21px * var(--fsmul,1)); letter-spacing: .05em; color: #3b3020;
}
.bk-gate-s { margin-top: 8px; font-size:calc(12.5px * var(--fsmul,1)); line-height: 1.85; color: #8c7c62; }
.bk-gate-card {
  background: #fffdf8; border: 1px solid rgba(226, 210, 178, .6); border-radius: 16px;
  padding: 16px 15px; box-shadow: 0 4px 14px rgba(122, 96, 48, .05);
}
.bk-gate-card.pending { border-color: rgba(214, 168, 96, .7); background: #fffcf4; }
.bk-gate-name { font-size:calc(15.5px * var(--fsmul,1)); font-weight: 600; color: #3f3423; letter-spacing: .02em; }
.bk-gate-need { margin-top: 8px; font-size:calc(13px * var(--fsmul,1)); color: #7d6a4d; }
.bk-gate-need b { color: #c07a1e; font-size:calc(19px * var(--fsmul,1)); font-family: Georgia, serif; }
.bk-gate-bar { margin-top: 11px; height: 11px; border-radius: 11px; background: #f2e7d2; overflow: hidden; box-shadow: inset 0 1px 2px rgba(160,120,60,.12); }
.bk-gate-bar > i { display: block; height: 100%; border-radius: 11px; background: linear-gradient(90deg, #f5c46a, #d98c26 70%, #c97a17); box-shadow: 0 0 6px rgba(217,140,38,.45); transition: width .5s ease; }
.bk-gate-cnt { margin-top: 7px; font-size:calc(11.5px * var(--fsmul,1)); color: #9c8a6d; }
.bk-gate-line { margin-top: 8px; font-size:calc(13px * var(--fsmul,1)); line-height: 1.9; color: #6d5f49; }
.bk-gate-line strong { color: #b5721f; }
.bk-gate-code {
  margin: 14px 0 4px; padding: 12px 14px; border-radius: 12px;
  background: #f6fbf3; border: 1px dashed #a9d39a; text-align: center;
}
.bk-gate-code-l { font-size:calc(11px * var(--fsmul,1)); color: #6f8a63; letter-spacing: .16em; }
.bk-gate-code-h { margin-top: 7px; font-size:calc(10.5px * var(--fsmul,1)); color: #93a88a; letter-spacing: .06em; }
.bk-gate-code-v {
  cursor: pointer; margin-top: 6px; font-family: Georgia, "Courier New", monospace;
  font-size:calc(27px * var(--fsmul,1)); letter-spacing: .16em; color: #2f6b34; font-weight: 700;
}
.bk-gate-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.bk-gate-btn {
  flex: 1 1 auto; min-width: 108px; border: 1px solid #e3d4b6; background: #fffdf8;
  color: #7d5f33; border-radius: 999px; padding: 10px 14px; font-size:calc(13px * var(--fsmul,1)); cursor: pointer;
}
.bk-gate-btn.primary {
  background: linear-gradient(135deg, #d9a75f, #b98a3f); border-color: #c39a52; color: #fffdf7; font-weight: 600;
}
.bk-gate-tip { margin-top: 11px; font-size:calc(11.5px * var(--fsmul,1)); line-height: 1.85; color: #9a8a70; }
.bk-gate-note {
  margin-top: 14px; padding: 14px 15px; border-radius: 14px;
  background: #fbf7ee; border: 1px solid #eee2cc;
}
.bk-gate-note-t { font-size:calc(13px * var(--fsmul,1)); font-weight: 600; color: #4a3f2e; }
.bk-gate-note-s { margin-top: 6px; font-size:calc(12px * var(--fsmul,1)); line-height: 1.85; color: #8c7c62; }
html.bk-night .bk-gate-t, html.bk-night .bk-gate-name { color: #e0d7c2; }
html.bk-night .bk-gate-card { background: #1e1b14; border-color: #2c281e; }
html.bk-night .bk-gate-note { background: #1b1913; border-color: #2a261c; }
html.bk-night .bk-gate-s, html.bk-night .bk-gate-line, html.bk-night .bk-gate-note-s { color: #8b8271; }
html.bk-night .bk-gate-btn { background: #26221a; border-color: #3a3326; color: #c3a978; }


/* ---------- 我的页：小家卡片 ---------- */
.fam-body { padding:2px 0 4px; }
.fam-name { font-size:calc(14.5px * var(--fsmul,1)); font-weight:600; color:var(--t-3f3423); margin:2px 0 5px; }
.fam-line { font-size:calc(12.5px * var(--fsmul,1)); line-height:1.85; color:var(--t-7d6d55); }
.fam-line.sub { margin-top:6px; font-size:calc(11.5px * var(--fsmul,1)); color:var(--t-9a8a70); }
.fam-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:11px; }
.fam-row .btn-mini { flex:0 0 auto; }
.btn-mini.primary { background:linear-gradient(135deg, var(--s-d9a75f), #b98a3f); color:#fffdf7; border-color:#c39a52; font-weight:600; }


/* ---------- 章节打不开：友好引导页 ---------- */
.bk-empty-hero { text-align: center; padding: 34px 22px 30px; }
.bk-empty-emoji { font-size:calc(44px * var(--fsmul,1)); margin-bottom: 10px; }
.bk-empty-title { font-size:calc(17px * var(--fsmul,1)); font-weight: 600; color: #5a4a2c; margin-bottom: 8px; letter-spacing: 0.5px; }
.bk-empty-desc { font-size:calc(13px * var(--fsmul,1)); line-height: 1.9; color: #8a7a5e; max-width: 280px; margin: 0 auto 18px; }
.bk-dark .bk-empty-title { color: #e8d9b0; }
.bk-dark .bk-empty-desc { color: #a89a78; }
.bk-empty .bk-gate-btn { margin: 6px auto 0; min-width: 150px; }


/* ---------- 灵修开篇问安 ---------- */
.greet { margin:14px 2px 6px; padding:13px 15px 12px; border-radius:12px;
  background:linear-gradient(180deg, var(--s-fdf6e7), var(--s-fbf2e0)); border-left:3px solid var(--s-d9a75f); }
.greet div { font-size:calc(14.5px * var(--fsmul,1)); line-height:1.95; color:var(--t-6b573a); text-align:justify; }
.greet div p, .greet p { margin:0 0 8px; }
body.dark .greet, .dark .greet { background:linear-gradient(180deg, #2a2419, #241f16); border-left-color:#a9834a; }
body.dark .greet div, .dark .greet div { color:#d8c8a6; }

/* ═══ 今日分享图（灵修页底部卡片 + 大图预览） ═══ */
.share-card{background:var(--s-fdfaf3);border:1px solid var(--s-efe6d8);border-radius:14px;padding:12px;margin:14px 0 6px;}
.sc-top{display:flex;gap:12px;align-items:center;}
.sc-thumb{width:84px;height:112px;border-radius:8px;object-fit:cover;background:var(--s-f1ead9);
  box-shadow:0 2px 8px rgba(139,115,85,.16);flex:0 0 auto;}
.sc-info{flex:1 1 auto;min-width:0;}
.sc-t{font-size:calc(14.5px * var(--fsmul,1));font-weight:600;color:var(--t-5c4a33);margin-bottom:4px;}
.sc-s{font-size:calc(11.5px * var(--fsmul,1));color:var(--t-a99a86);line-height:1.55;margin-bottom:8px;}
.sc-row{display:flex;gap:8px;}
.sc-row .btn-mini{flex:1 1 0;}
.sc-full{width:100%;border-radius:10px;display:block;}

/* 近期与往期灵修：可折叠 */
.hist-head{position:relative;padding-right:20px;cursor:pointer;
  -webkit-tap-highlight-color:transparent;user-select:none}
.hist-arrow{position:absolute;right:0;top:50%;transform:translateY(-50%);
  font-size:calc(15px * var(--fsmul,1));line-height:1;color:var(--ink3)}
.hist-body{padding-top:2px}

/* 新版本提醒条 */
.updbar{position:fixed;left:10px;right:10px;bottom:calc(66px + env(safe-area-inset-bottom));z-index:60;
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;
  background:var(--s-fdf6e6);border:1px solid var(--s-e8d5a8);box-shadow:0 4px 14px rgba(120,95,40,.12);
  font-size:calc(13.5px * var(--fsmul,1));color:var(--t-6b5327)}
.upd-t{flex:1;font-weight:600}
.upd-go{border:0;border-radius:9px;padding:7px 12px;background:linear-gradient(135deg,#c9a24a,#a9853a);
  color:#fff;font:inherit;font-weight:600;font-size:calc(13px * var(--fsmul,1))}
.upd-x{border:0;background:none;color:var(--t-a08a5c);font-size:calc(15px * var(--fsmul,1));padding:2px 4px}

/* 小家情况 */
.famx-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;
  background:rgba(251,247,238,.985);border-bottom:1px solid var(--s-ece2cf);position:sticky;top:0;z-index:5}
.famx-back{border:0;background:none;font:inherit;font-size:calc(15px * var(--fsmul,1));color:var(--t-7d5f33);padding:4px 2px}
.famx-title{text-align:center;font-weight:600;font-size:calc(15.5px * var(--fsmul,1));color:var(--t-4a3d28);white-space:nowrap}
.famx-refresh{border:0;background:none;font-size:calc(17px * var(--fsmul,1));color:var(--t-a08a5c);padding:2px 6px;justify-self:end}
.famx-body{padding:14px 14px calc(84px + env(safe-area-inset-bottom))}
.famx-head{text-align:center;margin:6px 0 16px}
.famx-name{font-family:"Songti SC",serif;font-size:calc(20px * var(--fsmul,1));color:var(--t-3f3423);font-weight:600}
.famx-sub{font-size:calc(12.5px * var(--fsmul,1));color:var(--t-9c8a6d);margin-top:5px}
.famx-card{background:var(--s-fffdf8);border:1px solid var(--s-efe6d8);border-radius:14px;padding:11px 13px;margin-bottom:9px}
.famx-mname{font-size:calc(15.5px * var(--fsmul,1));font-weight:600;color:var(--t-3f3423);margin-bottom:9px}
.famx-grid{display:flex;gap:8px}
.famx-cell{flex:1;background:var(--s-f8f3e9);border-radius:10px;padding:8px 9px;border:1px solid transparent}
.famx-cell.on{background:var(--s-f1f7ec);border-color:var(--s-cfe4c4)}
.famx-cell-h{font-size:calc(11.5px * var(--fsmul,1));color:var(--t-8a795c);margin-bottom:3px}
.famx-cell-v{font-size:calc(13px * var(--fsmul,1));font-weight:600;color:var(--t-5b4b30)}
.famx-cell.on .famx-cell-v{color:var(--t-3f7a34)}
.famx-cell-s{font-size:calc(10.5px * var(--fsmul,1));color:var(--t-93815f);margin-top:3px;line-height:1.35}
.famx-tip{font-size:calc(12px * var(--fsmul,1));color:var(--t-9c8a6d);line-height:1.6;margin:14px 2px 10px}
.famx-sum{font-size:calc(12px * var(--fsmul,1));color:var(--t-8a795c);background:var(--s-f8f3e9);border-radius:10px;padding:9px 12px;margin:2px 0 4px}

/* ==================== 💬 通讯（小家私信 / 小家群聊） ==================== */
.msg-body { padding-bottom:28px; }
.msg-card {
  position:relative; margin:12px 0 6px; padding:14px 16px; border-radius:14px;
  background:linear-gradient(135deg, var(--s-eef2ff) 0%, var(--s-e0e7ff) 100%);
  border:1px solid var(--s-dbe2ff); cursor:pointer;
}
.msg-card-t { font-size:calc(16px * var(--fsmul,1)); font-weight:700; color:var(--t-312e81); }
.msg-card-s { margin-top:6px; font-size:calc(13px * var(--fsmul,1)); color:var(--t-4b5563); overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap; }
.msg-sec { margin:18px 0 8px; font-size:calc(13px * var(--fsmul,1)); font-weight:600; color:var(--t-6b7280); }
.msg-row {
  display:flex; align-items:center; gap:12px; padding:12px 14px; margin-bottom:8px;
  background:var(--s-fff); border:1px solid var(--s-eef0f4); border-radius:12px; cursor:pointer;
}
.msg-row:active { background:var(--s-f8fafc); }
.msg-av {
  width:38px; height:38px; flex:0 0 38px; border-radius:50%; background:var(--s-e0e7ff);
  color:var(--t-4338ca); font-weight:700; font-size:calc(15px * var(--fsmul,1)); display:flex;
  align-items:center; justify-content:center;
}
.msg-mid { flex:1 1 auto; min-width:0; }
.msg-name { font-size:calc(15px * var(--fsmul,1)); font-weight:600; color:var(--t-1f2937); }
.msg-last { margin-top:3px; font-size:calc(13px * var(--fsmul,1)); color:#9ca3af; overflow:hidden;
  text-overflow:ellipsis; white-space:nowrap; }
.msg-badge {
  position:absolute; right:14px; top:14px; min-width:18px; height:18px; padding:0 5px;
  border-radius:9px; background:var(--s-ef4444); color:#fff; font-size:calc(11px * var(--fsmul,1)); line-height:18px;
  text-align:center; font-weight:700;
}
.msg-row .msg-badge { position:static; margin-left:auto; }

/* 聊天页 */
.chat-view { display:flex; flex-direction:column; height:100%; }
.cm-list { flex:1 1 auto; overflow-y:auto; padding:12px 12px 4px; background:var(--s-f6f7fb); }
.cm-row { display:flex; align-items:flex-start; gap:8px; margin-bottom:14px; }
.cm-row.mine { flex-direction:row-reverse; }
.cm-av {
  width:32px; height:32px; flex:0 0 32px; border-radius:50%; background:var(--s-e0e7ff);
  color:var(--t-4338ca); font-size:calc(13px * var(--fsmul,1)); font-weight:700; display:flex;
  align-items:center; justify-content:center;
}
.cm-wrap { max-width:76%; }
.cm-who { font-size:calc(12px * var(--fsmul,1)); color:#9ca3af; margin-bottom:4px; }
.cm-b {
  padding:9px 13px; border-radius:14px; background:var(--s-fff); color:var(--t-1f2937);
  font-size:calc(15px * var(--fsmul,1)); line-height:1.55; white-space:pre-wrap; word-break:break-word;
  box-shadow:0 1px 2px rgba(15, 23, 42, .06);
}
.cm-b.mine { background:var(--s-4f46e5); color:#fff; }
/* 群消息里的网址：白底深蓝、我的气泡（靛底）用浅金，保证两边都看得清 */
.cm-b a.cm-link { color:#1d4ed8; text-decoration:underline; word-break:break-all; }
.cm-b.mine a.cm-link { color:#ffe9b0; }
html[data-theme="dark"] .cm-b a.cm-link { color:#8ab4ff; }
html[data-theme="dark"] .cm-b.mine a.cm-link { color:#ffe9b0; }
.cm-t { margin-top:4px; font-size:calc(11px * var(--fsmul,1)); color:#b6bcc8; text-align:right; }
.cm-in {
  display:flex; align-items:flex-end; gap:8px; padding:8px 12px 12px;
  background:var(--s-fff); border-top:1px solid var(--s-eef0f4);
}
.cm-ta {
  flex:1 1 auto; resize:none; border:1px solid var(--s-e5e7eb); border-radius:12px;
  padding:9px 12px; font-size:calc(15px * var(--fsmul,1)); line-height:1.5; max-height:120px;
  font-family:inherit; color:var(--t-1f2937); background:var(--s-f9fafb);
}
.cm-ta:focus { outline:none; border-color:var(--s-c7d2fe); background:var(--s-fff); }
.cm-send {
  flex:0 0 auto; padding:10px 16px; border:none; border-radius:12px;
  background:var(--s-4f46e5); color:#fff; font-size:calc(15px * var(--fsmul,1)); font-weight:600;
}
.cm-send:disabled { opacity:.55; }

/* 通讯未读：底部「我的」红点 */
#tabs .tab.has-badge { position:relative; }
#tabs .tab.has-badge::after {
  content:""; position:absolute; top:6px; right:50%; margin-right:-14px;
  width:8px; height:8px; border-radius:50%; background:var(--s-ef4444);
}


/* ============ 「我的」页：微信式分组列表 ============ */
.wx-hero{display:flex;align-items:center;gap:14px;background:var(--s-fff);padding:20px 16px 18px;
  margin:0 0 10px;border-radius:0 0 16px 16px;cursor:pointer}
.wx-ava{width:58px;height:58px;border-radius:10px;flex:0 0 auto;display:flex;align-items:center;
  justify-content:center;font-size:calc(24px * var(--fsmul,1));font-weight:600;color:#fff;
  background:linear-gradient(135deg,var(--s-c8a06a),#8f6f43)}
.wx-hero-m{flex:1;min-width:0}
.wx-name{font-size:calc(17px * var(--fsmul,1));font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wx-sub{font-size:calc(12px * var(--fsmul,1));color:var(--t-9a9a9a);margin-top:5px}
.wx-arrow{color:#c9c9c9;font-size:calc(20px * var(--fsmul,1));line-height:1;padding-left:2px}
.wx-title{font-size:calc(12.5px * var(--fsmul,1));color:var(--t-94918c);margin:16px 22px 7px;letter-spacing:.3px}
.wx-group{background:var(--s-fff);margin:0 12px;border-radius:12px;overflow:hidden}
.wx-group + .wx-group{margin-top:10px}
.wx-cell{display:flex;align-items:center;gap:12px;padding:14px 15px;min-height:50px;
  cursor:pointer;-webkit-tap-highlight-color:transparent;position:relative}
.wx-cell:active{background:var(--s-f7f5f1)}
.wx-cell + .wx-cell::before{content:"";position:absolute;left:47px;right:0;top:0;height:1px;background:var(--s-f1eee9)}
.wx-ico{width:20px;font-size:calc(17px * var(--fsmul,1));text-align:center;flex:0 0 auto}
.wx-t{flex:1;font-size:calc(15px * var(--fsmul,1));color:var(--ink)}
.wx-v{font-size:calc(12.5px * var(--fsmul,1));color:#a3a09a;max-width:46%;text-align:right;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.wx-fold{padding:0 15px 14px 47px}
.wx-fold.hide{display:none}
.wx-fold .row{margin:0}
.wx-red .wx-t{color:var(--t-d9534f)}
.wx-stats{display:flex;padding:14px 0}
.wx-stats .wx-stat{flex:1;text-align:center;position:relative}
.wx-stats .wx-stat + .wx-stat::before{content:"";position:absolute;left:0;top:50%;
  transform:translateY(-50%);width:1px;height:26px;background:var(--s-f1eee9)}
.wx-stats .wx-stat b{display:block;font-size:calc(19px * var(--fsmul,1));color:var(--gold-d);font-weight:600}
.wx-stats .wx-stat small{font-size:calc(11.5px * var(--fsmul,1));color:var(--t-9a9a9a)}
.wx-note{font-size:calc(11.5px * var(--fsmul,1));color:#a8a49d;margin:14px 22px 24px;text-align:center;line-height:1.7}


/* ============ 消息气泡操作（撤回 / 清空） ============ */
.cm-mask{position:fixed;left:0;right:0;top:0;bottom:0;background:rgba(0,0,0,.34);z-index:9999;
  display:flex;align-items:flex-end}
.cm-sheet{width:100%;background:var(--s-f2efe9);padding:8px 10px 16px;border-radius:16px 16px 0 0;
  animation:cmup .18s ease-out}
@keyframes cmup{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
.cm-sheet-b{display:block;width:100%;padding:15px 10px;border:0;background:var(--s-fff);font-size:calc(15.5px * var(--fsmul,1));
  color:var(--t-3a3226);margin-top:8px;border-radius:11px;font-family:inherit}
.cm-sheet-b:active{background:var(--s-eceae5)}
.cm-sheet-b.danger{color:var(--t-d9534f)}
.cm-sheet-b.cancel{color:var(--t-7a756d)}
.cm-clear{cursor:pointer}


/* ============ 引用 / 编辑提示条 ============ */
.cm-quote{font-size:calc(12px * var(--fsmul,1));color:var(--t-7d766c);background:var(--s-efece6);border-left:3px solid var(--s-d8c9ae);
  padding:6px 9px;border-radius:6px;margin-bottom:5px;max-width:76vw;line-height:1.45;
  overflow:hidden;text-overflow:ellipsis}
.cm-quote b{color:var(--t-9c907a);font-weight:600;margin-right:5px}
.cm-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--s-f7f3ea);
  border-top:1px solid var(--s-ece5d8);font-size:calc(12.5px * var(--fsmul,1));color:var(--t-7a756d)}
.cm-bar.hide{display:none}
.cm-bar-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-bar-x{border:0;background:transparent;font-size:calc(15px * var(--fsmul,1));color:var(--t-a89f8e);padding:4px 8px;font-family:inherit}


/* ============ 表情回应 / 已读 / @ / 置顶 / 搜索 ============ */
.cm-reacts{display:flex;gap:5px;flex-wrap:wrap;margin-top:4px}
.cm-react{border:1px solid var(--s-e6dfd2);background:var(--s-fff);border-radius:11px;padding:2px 8px;
  font-size:calc(12.5px * var(--fsmul,1));color:var(--t-6f675c);font-family:inherit;line-height:1.5}
.cm-react.mine{background:var(--s-fdf3e3);border-color:var(--s-e8d3ae);color:var(--t-8a6d3b)}
.cm-react:active{transform:scale(.94)}
.cm-at{color:var(--t-c0392b);font-weight:600;font-size:calc(12px * var(--fsmul,1))}
.cm-b.atme{box-shadow:0 0 0 1.5px var(--s-e3b7ac) inset}
.cm-search{display:flex;gap:8px;padding:9px 12px;background:var(--s-fff);border-bottom:1px solid var(--s-f0ebe2)}
.cm-search.hide{display:none}
.cm-search-in{flex:1;border:1px solid var(--s-e6dfd2);border-radius:9px;padding:8px 10px;
  font-size:calc(14px * var(--fsmul,1));font-family:inherit;background:var(--s-faf7f2);color:var(--t-3a3226)}
.cm-pin{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--s-fff8e8);
  border-bottom:1px solid var(--s-f0e4c8);font-size:calc(12.5px * var(--fsmul,1));color:var(--t-8a6d3b)}
.cm-pin.hide{display:none}
.cm-pin-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-at-btn{border:0;background:var(--s-f3efe7);color:var(--t-8a7a5e);font-size:calc(16px * var(--fsmul,1));font-weight:600;
  width:38px;border-radius:9px;margin-right:6px;font-family:inherit}
.cm-hit{background:var(--s-fff);border-radius:10px;padding:10px 12px;margin:8px 10px;
  box-shadow:0 1px 3px rgba(0,0,0,.05)}
.cm-hit-h{font-size:calc(11.5px * var(--fsmul,1));color:var(--t-a29a8c);margin-bottom:4px}
.cm-hit-b{font-size:calc(14px * var(--fsmul,1));color:var(--t-3a3226);line-height:1.5;word-break:break-word}
.cm-sheet-list{max-height:62vh;overflow-y:auto}

.cm-sheet-h{font-size:calc(12px * var(--fsmul,1));color:var(--t-9a9182);padding:6px 8px 8px;text-align:center}
.cm-at-q{margin-bottom:8px}
.cm-at-body{max-height:44vh;overflow-y:auto}

/* 加载骨架：切进通讯时不要白屏 */
.msg-load-t{text-align:center;font-size:calc(13px * var(--fsmul,1));color:var(--t-a89f8e);padding:22px 0 14px;letter-spacing:.5px}
.msg-skel{height:64px;margin:0 12px 10px;border-radius:14px;
  background:linear-gradient(100deg,var(--s-f2eee6) 25%,var(--s-e9e3d8) 37%,var(--s-f2eee6) 63%);
  background-size:400% 100%;animation:msgSkel 1.25s ease-in-out infinite}
@keyframes msgSkel{0%{background-position:100% 50%}100%{background-position:0 50%}}

/* 没有小家 → 引导建小家 */
.msg-guide{margin:18px 14px;background:var(--s-fff);border-radius:16px;padding:22px 18px 18px;
  box-shadow:0 2px 10px rgba(0,0,0,.05);text-align:center}
.msg-guide-emj{font-size:calc(38px * var(--fsmul,1));line-height:1.1;margin-bottom:8px}
.msg-guide-t{font-size:calc(17px * var(--fsmul,1));font-weight:600;color:var(--t-3a3226);margin-bottom:8px}
.msg-guide-s{font-size:calc(13.5px * var(--fsmul,1));color:var(--t-8a8172);line-height:1.65;margin-bottom:12px;text-align:left}
.msg-guide-step{text-align:left;margin:6px 0 16px}
.msg-guide-li{display:flex;gap:9px;align-items:flex-start;font-size:calc(13.5px * var(--fsmul,1));color:var(--t-5d5548);
  line-height:1.6;padding:5px 0}
.msg-guide-n{flex:0 0 20px;height:20px;line-height:20px;text-align:center;border-radius:50%;
  background:var(--s-f0e7d6);color:var(--t-9c8355);font-size:calc(12px * var(--fsmul,1));font-weight:600}
.msg-guide .btn-mini{margin:4px 5px}
.msg-guide-tip{font-size:calc(12px * var(--fsmul,1));color:var(--t-a89f8e);line-height:1.6;margin-top:10px}

/* 候补小家（未满 4 人） */
.msg-card-s.pend{color:var(--t-b07d2b);font-weight:500}

/* ---------------- 家人圈（发现 → 家人圈） ---------------- */
.fd-dot{display:none;margin-left:auto;min-width:18px;height:18px;line-height:18px;padding:0 5px;
  border-radius:999px;background:var(--s-d9534f);color:#fff;font-size:calc(11px * var(--fsmul,1));text-align:center;font-weight:600}
.fd-dot[style*="display: none"]{display:none}
.fd-intro{padding:10px 16px 2px;font-size:calc(12px * var(--fsmul,1));color:var(--t-a39a8b);letter-spacing:.3px}
.fd-compose{background:var(--s-fff);margin:10px 12px 4px;border-radius:14px;padding:11px 12px;
  box-shadow:0 1px 3px rgba(90,70,40,.05)}
.fd-ta{width:100%;border:0;outline:none;resize:none;font:inherit;font-size:calc(14.5px * var(--fsmul,1));line-height:1.55;
  color:var(--ink);background:none;min-height:62px}
.fd-ta::placeholder{color:#bdb5a8}
.fd-cbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:4px}
.fd-count{font-size:calc(11.5px * var(--fsmul,1));color:#bdb5a8;margin-right:auto}
.fd-send{border:0;border-radius:999px;padding:7px 18px;font-size:calc(13.5px * var(--fsmul,1));font-weight:600;
  color:#fff;background:var(--gold-d);letter-spacing:.5px}
.fd-send:disabled{opacity:.55}
.fd-list{padding:6px 12px calc(96px + env(safe-area-inset-bottom))}
.fd-empty{text-align:center;color:var(--t-a39a8b);font-size:calc(13px * var(--fsmul,1));padding:34px 20px;line-height:1.8}
.fd-card{background:var(--s-fff);border-radius:14px;padding:13px 14px 6px;margin-bottom:10px;
  box-shadow:0 1px 3px rgba(90,70,40,.05)}
.fd-head{display:flex;align-items:center;gap:10px}
.fd-av{width:36px;height:36px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;
  justify-content:center;background:var(--s-efe6d8);color:var(--t-8a6f43);font-size:calc(15px * var(--fsmul,1));font-weight:600}
.fd-meta{flex:1;min-width:0}
.fd-name{font-size:calc(14.5px * var(--fsmul,1));font-weight:600;color:var(--t-3f3423);overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}
.fd-shep{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;
  background:var(--s-f3ece0);color:var(--t-9c7c43);font-size:calc(10.5px * var(--fsmul,1));font-weight:500;vertical-align:1px}
.fd-time{font-size:calc(11.5px * var(--fsmul,1));color:var(--t-a39a8b);margin-top:2px}
.fd-menu{border:0;background:none;font-size:calc(17px * var(--fsmul,1));color:#b6ab99;padding:2px 4px;line-height:1}
.fd-mrow{display:flex;gap:8px;margin:8px 0 0}
.fd-del{border:0;border-radius:8px;padding:6px 12px;font-size:calc(12.5px * var(--fsmul,1));color:#fff;background:#c9564d}
.fd-cancel{border:0;border-radius:8px;padding:6px 12px;font-size:calc(12.5px * var(--fsmul,1));color:var(--t-6b6257);background:var(--s-f0ece5)}
.fd-body{font-size:calc(14.5px * var(--fsmul,1));line-height:1.72;color:var(--t-332c22);margin:10px 0 8px;word-break:break-word}
.fd-link{color:var(--t-3f7fb5);text-decoration:none;word-break:break-all}
.fd-acts{display:flex;gap:6px;padding:2px 0 8px}
.fd-like,.fd-cm{border:0;background:var(--s-f7f4ef);border-radius:999px;padding:5px 12px;font-size:calc(12.5px * var(--fsmul,1));
  color:var(--t-7b7062);font-weight:500}
.fd-like.on{background:var(--s-fdeceb);color:var(--t-c9564d)}
.fd-cm.on{background:var(--s-eef3f8);color:var(--t-3f7fb5)}
.fd-likes{background:var(--s-f8f5f0);border-radius:9px;padding:6px 10px;font-size:calc(12.5px * var(--fsmul,1));color:var(--t-7b7062);
  margin-bottom:6px;line-height:1.6}
.fd-cmts{margin-bottom:4px}
.fd-cmt{padding:5px 0;border-top:1px solid var(--s-f4f0e9)}
.fd-chtml{font-size:calc(13px * var(--fsmul,1));line-height:1.62;color:var(--t-3d352b);word-break:break-word}
.fd-chtml b{color:var(--t-8a6f43);font-weight:600}
.fd-cmeta{font-size:calc(11px * var(--fsmul,1));color:#b3aa9c;margin-top:2px}
.fd-cwrite{padding:6px 0 9px}
.fd-rtip{font-size:calc(11.5px * var(--fsmul,1));color:var(--t-a08a5c);margin-bottom:5px}
.fd-rtx{color:var(--t-3f7fb5);margin-left:6px}
.fd-crow{display:flex;gap:7px}
.fd-cinput{flex:1;border:1px solid var(--s-ece5da);border-radius:999px;padding:7px 13px;font:inherit;
  font-size:calc(13px * var(--fsmul,1));outline:none;background:var(--s-fbf9f5);color:var(--ink)}
.fd-cinput:focus{border-color:var(--s-dccfba);background:var(--s-fff)}
.fd-csend{border:0;border-radius:999px;padding:7px 14px;font-size:calc(12.5px * var(--fsmul,1));font-weight:600;
  color:#fff;background:var(--gold-d)}
.fd-csend:disabled{opacity:.55}
.fd-more{text-align:center;padding:6px 0 18px}
.fd-morebtn{border:1px solid var(--s-e6ded1);background:var(--s-fff);border-radius:999px;padding:8px 20px;
  font-size:calc(12.5px * var(--fsmul,1));color:var(--t-8a7b62)}
.fd-end{text-align:center;color:#c3bbad;font-size:calc(11.5px * var(--fsmul,1));padding:8px 0 18px}

/* ---------------- 我的心得·本地优先（待同步） ---------------- */
.ref-local{border-style:dashed;border-color:var(--s-d8c8b0);background:var(--s-fffdf8);}
.ref-local .ref-top small{color:var(--t-b08a4a);font-weight:600;}
.ref-local .ref-body{color:var(--t-4a3a28);}
.ref-local .btn-mini{margin-top:6px;align-self:flex-start;}

/* 有新版本：底部「我的」tab 小圆点 + 「版本更新」行内红点 */
#tabs .tab.has-dot{position:relative}
#tabs .tab.has-dot::before{
  content:"";position:absolute;top:6px;right:50%;margin-right:-14px;
  width:8px;height:8px;border-radius:50%;background:var(--s-ef4444)}
.upd-dot{width:8px;height:8px;border-radius:50%;background:var(--s-ef4444);flex:0 0 auto;margin-left:-4px}

/* ============ 灵修音乐（浸泡音乐）列表 ============ */
.mx-body{padding:10px 12px 90px}
.mx-sum{font-size:calc(12.5px * var(--fsmul,1));color:var(--t-9a9086);margin:4px 4px 8px;line-height:1.6}
.mx-tools{display:flex;align-items:center;gap:10px;margin:0 2px 10px}
.mx-chip{font:inherit;font-size:calc(12.5px * var(--fsmul,1));padding:7px 14px;border-radius:999px;border:1px solid var(--s-e2d9c9);
  background:var(--s-fff);color:var(--t-8a6d3b)}
.mx-chip:active{background:var(--s-f7f2e8)}
.mx-chip-t{font-size:calc(11.5px * var(--fsmul,1));color:#b3a99a}
.mx-list{display:flex;flex-direction:column;gap:10px}
.mx-row{background:var(--s-fff);border-radius:14px;padding:13px 14px;box-shadow:0 1px 3px rgba(90,70,40,.05)}
.mx-head{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}
.mx-t{font-size:calc(15px * var(--fsmul,1));font-weight:600;color:var(--ink);line-height:1.35}
.mx-s{font-size:calc(11.5px * var(--fsmul,1));color:#a8a09a}
.mx-ops{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.mx-state{font-size:calc(11.5px * var(--fsmul,1));color:#a8a09a;flex:1}
.mx-state.mx-ok{color:var(--t-3f9a6a)}
.mx-btn{font:inherit;font-size:calc(12.5px * var(--fsmul,1));padding:6px 13px;border-radius:999px;border:1px solid var(--s-e2d9c9);
  background:var(--s-fff);color:var(--t-8a6d3b);white-space:nowrap}
.mx-btn:active{background:var(--s-f7f2e8)}
.mx-btn[disabled]{opacity:.55}
.mx-player{display:flex;align-items:center;gap:9px;margin-top:2px}
.mx-player .mx-play{padding:5px 12px;font-size:calc(12px * var(--fsmul,1));border-color:var(--s-e6ddcd);background:var(--s-fdfbf6);color:var(--t-7a5f33)}
.mx-time{font-size:calc(11px * var(--fsmul,1));color:#a8a09a;min-width:78px}
.mx-bar{flex:1;height:4px;border-radius:999px;background:var(--s-eee7dc);overflow:hidden}
.mx-bar i{display:block;height:100%;width:0;background:var(--s-c8a06a);transition:width .25s}

/* 朗读只在 App 内收听（网页版提示条） */
.bk-audio.bk-aw {
  display: flex; align-items: center; gap: 10px; justify-content: space-between;
  padding: 10px 14px; background: #f4f1ea; border-top: 1px solid #e6e0d4;
}
.bk-aw-t { font-size:calc(13.5px * var(--fsmul,1)); color: #6b6255; flex: 1 1 auto; line-height: 1.5; }
.bk-aw-s { font-size:calc(12.5px * var(--fsmul,1)); color: #8d8577; margin-top: 3px; }
.bk-aw-b {
  flex: 0 0 auto; border: 0; border-radius: 999px; padding: 7px 14px;
  background: #8a7a5c; color: #fff; font-size:calc(13px * var(--fsmul,1)); font-weight: 600;
}
.bk-dark .bk-audio.bk-aw { background: #1e1c19; border-top-color: #2c2924; }
.bk-dark .bk-aw-t { color: #a99f8d; }

/* 网页版听不了时的提示块（灵修音乐） */
.mx-hint { margin:10px 0 4px; padding:12px 14px; border-radius:14px; background:var(--s-f4f1ea); }
.mx-hint-t { font-size:calc(14px * var(--fsmul,1)); font-weight:700; color:var(--t-4a4235); }
.mx-hint-s { font-size:calc(12.5px * var(--fsmul,1)); color:var(--t-7d7466); margin-top:4px; line-height:1.5; }

/* 断网时书架顶部的说明条 */
.bk-offline { margin: 8px 12px 0; padding: 9px 12px; border-radius: 12px;
  background: #fdf3e3; color: #8a6a2f; font-size:calc(12.5px * var(--fsmul,1)); line-height: 1.5; }


/* ==================== 每周查经（原生阅读） ==================== */
.st-wrap { padding:4px 0 24px; }
.st-head { padding:2px 2px 10px; }
.st-h-t { font-size:calc(17px * var(--fsmul,1)); font-weight:700; color:var(--t-2b2317); letter-spacing:.01em; }
.st-h-s { margin-top:3px; font-size:calc(12.5px * var(--fsmul,1)); color:var(--t-8a7f6a); }
.st-item {
  display:block; width:100%; text-align:left; box-sizing:border-box;
  margin:0 0 10px; padding:13px 14px 12px;
  background:var(--s-fffdf7); border:1px solid var(--s-efe6d2); border-radius:14px;
  box-shadow:0 1px 2px rgba(90, 70, 30, .04);
  font-family:inherit; cursor:pointer;
}
.st-item:active { background:var(--s-fbf6e9); }
.st-w { display:flex; align-items:center; gap:7px; margin-bottom:5px; }
.st-week { font-size:calc(12px * var(--fsmul,1)); font-weight:700; color:var(--t-a4782c); background:var(--s-f7eed8); border-radius:7px; padding:2px 7px; }
.st-book { font-size:calc(11.5px * var(--fsmul,1)); color:var(--t-9a8f79); }
.st-new { margin-left:auto; font-size:calc(11px * var(--fsmul,1)); font-weight:700; color:#fff; background:#c8963f; border-radius:7px; padding:2px 7px; }
.st-t { font-size:calc(15.5px * var(--fsmul,1)); font-weight:600; color:var(--t-2e2717); line-height:1.45; }
.st-d { margin-top:6px; font-size:calc(12px * var(--fsmul,1)); color:var(--t-96896f); }
.st-empty { padding:34px 18px; text-align:center; }
.st-empty-t { font-size:calc(16px * var(--fsmul,1)); font-weight:600; color:var(--t-3a3325); }
.st-empty-s { margin-top:8px; font-size:calc(13px * var(--fsmul,1)); color:var(--t-8c8270); line-height:1.6; }
.st-empty-b { margin-top:16px; padding:9px 22px; font-size:calc(14px * var(--fsmul,1)); color:var(--t-6b5220); background:var(--s-f4ead2); border:0; border-radius:10px; font-family:inherit; }
.st-doc-top { font-size:calc(12px * var(--fsmul,1)); color:var(--t-9a8f79); letter-spacing:.02em; }
.st-doc-h1 { margin:6px 0 2px; font-size:1.16em; line-height:1.5; color:var(--t-2b2317); font-weight:700; }

/* 查经正文用的语义元素（服务端 Markdown 转换产出） */
.bk-doc h2 { margin: 1.5em 0 .7em; font-size: 1.06em; line-height: 1.6; color: #3a2f1c; font-weight: 700; letter-spacing: .01em; }
.bk-doc h3 { margin: 1.3em 0 .55em; font-size: 1em; line-height: 1.6; color: #40361f; font-weight: 600; }
.bk-doc h4 { margin: 1.1em 0 .5em; font-size: .96em; color: #4a3f26; font-weight: 600; }
.bk-doc p { margin: 0 0 .62em; text-indent: 2em; text-align: justify; text-justify: inter-ideograph; }
.bk-doc p:first-child { margin-top: 0; }
.bk-doc ul, .bk-doc ol { margin: .2em 0 .9em; padding-left: 1.5em; }
.bk-doc li { margin: 0 0 .34em; line-height: 1.85; text-align: justify; }
.bk-doc blockquote {
  margin: .9em 0; padding: .7em .95em; background: #f8f1e0; border-left: 3px solid #d9bf87;
  border-radius: 0 10px 10px 0; color: #4a3f28;
}
.bk-doc blockquote p { text-indent: 0; margin: 0; }
.bk-doc hr { margin: 1.4em 0; border: 0; border-top: 1px solid #e8ddc6; }
.bk-doc table { width: 100%; margin: .9em 0; border-collapse: collapse; font-size: .92em; }
.bk-doc th, .bk-doc td { padding: 6px 8px; border: 1px solid #e8ddc6; text-align: left; }
.bk-doc th { background: #f7f0de; font-weight: 600; }
.bk-doc pre { margin: .9em 0; padding: 10px 12px; background: #f6f1e4; border-radius: 10px; overflow-x: auto; font-size: .88em; }
.bk-doc code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .92em; background: #f3ecdb; padding: 1px 4px; border-radius: 5px; }
.bk-doc pre code { background: none; padding: 0; }
.bk-doc a { color: #9a6f22; }

/* 夜间 */
html.bk-night .st-item, .bk-night .st-item { background: #221f1a; border-color: #35302a; }
html.bk-night .st-item:active { background: #2a2620; }
html.bk-night .st-h-t, html.bk-night .st-t { color: #ded4bd; }
html.bk-night .st-h-s, html.bk-night .st-d, html.bk-night .st-book, html.bk-night .st-doc-top { color: #9a9082; }
html.bk-night .st-week { background: #33291a; color: #d9b571; }
html.bk-night .st-empty-t { color: #ded4bd; }
html.bk-night .st-empty-s { color: #9a9082; }
html.bk-night .st-empty-b { background: #33291a; color: #d9b571; }
html.bk-night .bk-doc h2, html.bk-night .bk-doc h3, html.bk-night .bk-doc h4, html.bk-night .st-doc-h1 { color: #ded4bd; }
html.bk-night .bk-doc blockquote { background: #2a251d; border-left-color: #6b5836; color: #cfc5b0; }
html.bk-night .bk-doc hr { border-top-color: #3a342b; }
html.bk-night .bk-doc th, html.bk-night .bk-doc td { border-color: #3a342b; }
html.bk-night .bk-doc th { background: #2a251d; }
html.bk-night .bk-doc pre, html.bk-night .bk-doc code { background: #2a251d; color: #cfc5b0; }
html.bk-night .bk-doc a { color: #d9b571; }

/* 书卷分组标题 */
.st-grp { display:flex; align-items:baseline; gap:8px; margin:14px 2px 8px; padding-top:6px; border-top:1px solid var(--s-efe6d2); }
.st-grp:first-of-type { border-top:0; padding-top:0; margin-top:4px; }
.st-grp-n { font-size:calc(14.5px * var(--fsmul,1)); font-weight:700; color:var(--t-6b5220); letter-spacing:.02em; }
.st-grp-c { font-size:calc(11.5px * var(--fsmul,1)); color:var(--t-a2967d); }
html.bk-night .st-grp { border-top-color: #35302a; }
html.bk-night .st-grp-n { color: #d9b571; }
html.bk-night .st-grp-c { color: #8e8474; }

/* ---- 家人圈图片（0.11.14）---- */
.fd-tools{display:flex;align-items:center;gap:8px;padding-top:6px}
.fd-pick{border:0;background:var(--s-f6f1e8);color:var(--t-8a7350);border-radius:999px;
  padding:6px 13px;font-size:calc(13px * var(--fsmul,1));line-height:1.2}
.fd-draft{display:flex;flex-wrap:wrap;gap:6px;padding-top:8px;align-items:center}
.fd-draft:empty{display:none}
.fd-draft .d{position:relative;width:72px;height:72px;border-radius:10px;overflow:hidden;background:var(--s-f3eee5)}
.fd-draft .d img{width:100%;height:100%;object-fit:cover;display:block}
.fd-draft .d .x{position:absolute;top:2px;right:2px;width:19px;height:19px;border:0;padding:0;
  border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:calc(11px * var(--fsmul,1));line-height:19px;text-align:center}
.fd-draft .d.wait{display:flex;align-items:center;justify-content:center;color:#bdb5a8;font-size:calc(18px * var(--fsmul,1))}
.fd-draft .cnt{font-size:calc(11.5px * var(--fsmul,1));color:#bdb5a8}
.fd-body-empty{display:none}
.fd-imgs{display:grid;gap:4px;margin:4px 0 9px}
.fd-imgs.n1{grid-template-columns:1fr}
.fd-imgs.n2{grid-template-columns:1fr 1fr}
.fd-imgs.n3{grid-template-columns:1fr 1fr 1fr}
.fd-imgs .fd-img{position:relative;overflow:hidden;border-radius:9px;background:var(--s-f3eee5)}
.fd-imgs .fd-img:before{content:"";display:block;padding-top:100%}
.fd-imgs .fd-img img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block}
.fd-imgs.n1 .fd-img{border-radius:11px}
.fd-imgs.n1 .fd-img:before{padding-top:0}
.fd-imgs.n1 .fd-img img{position:static;max-height:330px;object-fit:contain;background:var(--s-faf7f1)}
.fdv{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;background:#000;
  display:flex;align-items:center;justify-content:center}
.fdv-img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.fdv-bar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:8px;
  padding:calc(8px + env(safe-area-inset-top)) 12px 10px;color:#fff;
  background:linear-gradient(rgba(0,0,0,.55),rgba(0,0,0,0))}
.fdv-cnt{margin-right:auto;font-size:calc(13px * var(--fsmul,1));opacity:.92}
.fdv-btn{border:0;background:rgba(255,255,255,.18);color:#fff;border-radius:999px;
  padding:6px 14px;font-size:calc(13px * var(--fsmul,1))}
.fdv-nav{position:absolute;top:56px;bottom:0;width:30%}
.fdv-nav.l{left:0}
.fdv-nav.r{right:0}

/* ---- 聊天图片（0.11.15，单条最多 3 张）---- */
.cm-imgs{display:grid;gap:3px;margin:2px 0 2px;max-width:230px}
.cm-imgs.n1{grid-template-columns:1fr}
.cm-imgs.n2{grid-template-columns:1fr 1fr}
.cm-imgs.n3{grid-template-columns:1fr 1fr 1fr}
.cm-imgs .cm-img{position:relative;overflow:hidden;border-radius:7px;background:var(--s-efe9df)}
.cm-imgs .cm-img:before{content:"";display:block;padding-top:100%}
.cm-imgs .cm-img img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block}
.cm-imgs.n1{max-width:200px}
.cm-imgs.n1 .cm-img:before{padding-top:0}
.cm-imgs.n1 .cm-img img{position:static;max-height:230px;object-fit:contain;background:var(--s-faf7f1)}
.cm-draft{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 10px 0}
.cm-draft:empty{display:none}
.cm-draft .d{position:relative;width:56px;height:56px;border-radius:9px;overflow:hidden;background:var(--s-f3eee5)}
.cm-draft .d img{width:100%;height:100%;object-fit:cover;display:block}
.cm-draft .d .x{position:absolute;top:1px;right:1px;width:17px;height:17px;border:0;padding:0;
  border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:calc(10px * var(--fsmul,1));line-height:17px;text-align:center}
.cm-draft .d.wait{display:flex;align-items:center;justify-content:center;color:#bdb5a8}
.cm-draft .cnt{font-size:calc(11px * var(--fsmul,1));color:#bdb5a8}

/* ---------- 分享：二维码卡片 ---------- */
.qr-card { margin:10px 0 4px; padding:14px 12px 12px; border-radius:16px;
  background:var(--s-fffdf8); border:1px solid var(--s-ece0c8); text-align:center; }
.qr-card .qr-cv { display:block; margin:2px auto 8px; border-radius:10px; background:var(--s-fff); }
.qr-card .qr-cap { font-size:calc(12px * var(--fsmul,1)); color:var(--t-8c837a); line-height:1.7; margin-bottom:6px; }
.qr-card .qr-link { font-size:calc(12.5px * var(--fsmul,1)); color:var(--t-b4813a); word-break:break-all;
  background:var(--s-fbf4e6); border:1px dashed var(--s-e2cfa6); border-radius:10px;
  padding:7px 10px; margin:0 0 10px; letter-spacing:.2px; }
.qr-card .row { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin:0; }
.qr-card .btn-mini { margin:0; }

/* ===== 群聊顶部 hero（2026-11-13，与网站 /groups/ 同一套视觉）===== */
.msg-hero {
    position:relative;
    overflow:hidden;
    text-align:center;
    margin:2px 0 12px;
    padding:20px 16px 19px;
    border-radius:18px;
    background:radial-gradient(120% 92% at 50% -18%, rgba(255, 214, 138, .40), rgba(255, 214, 138, 0) 62%),
        linear-gradient(140deg, #a52126 0%, #8c1c21 42%, #6b1317 100%);
    box-shadow:0 10px 24px rgba(107, 19, 23, .26), inset 0 1px 0 rgba(255, 255, 255, .16);
    color:#fff;
}
.msg-hero::after {
    content:"";
    position:absolute;
    left:50%;
    bottom:10px;
    transform:translateX(-50%);
    width:40px;
    height:2px;
    border-radius:2px;
    background:linear-gradient(90deg, rgba(255, 214, 138, 0), var(--s-ffd68a), rgba(255, 214, 138, 0));
}
.msg-hero-badge {
    width:44px;
    height:44px;
    margin:0 auto 9px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:calc(21px * var(--fsmul,1));
    line-height:1;
    border-radius:15px;
    background:rgba(255, 255, 255, .14);
    border:1px solid rgba(255, 255, 255, .30);
    box-shadow:inset 0 1px 0 rgba(255, 255, 255, .28);
}
.msg-hero-t {
    font-size:calc(19px * var(--fsmul,1));
    font-weight:700;
    letter-spacing:.05em;
    text-shadow:0 2px 8px rgba(0, 0, 0, .22);
}
.msg-hero-s {
    margin-top:8px;
    font-size:calc(12.5px * var(--fsmul,1));
    letter-spacing:.28em;
    text-indent:.28em;
    color:#ffe6b8;
}
.msg-hero-pill {
    display:inline-flex;
    align-items:center;
    gap:5px;
    margin-top:11px;
    padding:4px 11px;
    font-size:calc(11.5px * var(--fsmul,1));
    color:#fff5df;
    background:rgba(255, 255, 255, .13);
    border:1px solid rgba(255, 255, 255, .26);
    border-radius:999px;
}


/* ══════════════════════════════════════════════════════════
   主题变量：白天（默认）
   深色主题只覆盖这一组变量，其余规则一律走 var()，不再写死颜色。
   ══════════════════════════════════════════════════════════ */
:root{
  --fsmul:1;
--s-4f46e5:#4f46e5;
  --s-6366f1:#6366f1;
  --s-c2a074:#c2a074;
  --s-c7d2fe:#c7d2fe;
  --s-c8a06a:#c8a06a;
  --s-cfe4c4:#cfe4c4;
  --s-d8c8b0:#d8c8b0;
  --s-d8c9a8:#d8c9a8;
  --s-d8c9ae:#d8c9ae;
  --s-d9534f:#d9534f;
  --s-d9a75f:#d9a75f;
  --s-d9c9b0:#d9c9b0;
  --s-dbe2ff:#dbe2ff;
  --s-dccfba:#dccfba;
  --s-ddd0b6:#ddd0b6;
  --s-e0453a:#e0453a;
  --s-e0e7ff:#e0e7ff;
  --s-e2cfa6:#e2cfa6;
  --s-e2d9c9:#e2d9c9;
  --s-e3b7ac:#e3b7ac;
  --s-e5e7eb:#e5e7eb;
  --s-e6d9c2:#e6d9c2;
  --s-e6dccd:#e6dccd;
  --s-e6ddcd:#e6ddcd;
  --s-e6ded1:#e6ded1;
  --s-e6dfd2:#e6dfd2;
  --s-e8d3ae:#e8d3ae;
  --s-e8d5a8:#e8d5a8;
  --s-e9e3d8:#e9e3d8;
  --s-ecdfc2:#ecdfc2;
  --s-ece0c8:#ece0c8;
  --s-ece2cf:#ece2cf;
  --s-ece5d8:#ece5d8;
  --s-ece5da:#ece5da;
  --s-eceae5:#eceae5;
  --s-eee2cc:#eee2cc;
  --s-eee7dc:#eee7dc;
  --s-eef0f4:#eef0f4;
  --s-eef2ff:#eef2ff;
  --s-eef3f8:#eef3f8;
  --s-ef4444:#ef4444;
  --s-efe6d2:#efe6d2;
  --s-efe6d8:#efe6d8;
  --s-efe7d8:#efe7d8;
  --s-efe9df:#efe9df;
  --s-efece6:#efece6;
  --s-f0e4c8:#f0e4c8;
  --s-f0e7d6:#f0e7d6;
  --s-f0ebe2:#f0ebe2;
  --s-f0ece5:#f0ece5;
  --s-f1ead9:#f1ead9;
  --s-f1eee9:#f1eee9;
  --s-f1f7ec:#f1f7ec;
  --s-f2eee6:#f2eee6;
  --s-f2efe9:#f2efe9;
  --s-f3ece0:#f3ece0;
  --s-f3eee5:#f3eee5;
  --s-f3efe7:#f3efe7;
  --s-f4ead2:#f4ead2;
  --s-f4efe4:#f4efe4;
  --s-f4f0e9:#f4f0e9;
  --s-f4f1ea:#f4f1ea;
  --s-f5f2ff:#f5f2ff;
  --s-f6f1e8:#f6f1e8;
  --s-f6f7fb:#f6f7fb;
  --s-f7eed8:#f7eed8;
  --s-f7efe0:#f7efe0;
  --s-f7efe3:#f7efe3;
  --s-f7f2e8:#f7f2e8;
  --s-f7f3ea:#f7f3ea;
  --s-f7f4ef:#f7f4ef;
  --s-f7f5f1:#f7f5f1;
  --s-f8f0dd:#f8f0dd;
  --s-f8f3e9:#f8f3e9;
  --s-f8f5f0:#f8f5f0;
  --s-f8fafc:#f8fafc;
  --s-f9fafb:#f9fafb;
  --s-faf5ec:#faf5ec;
  --s-faf7f1:#faf7f1;
  --s-faf7f2:#faf7f2;
  --s-fbf2e0:#fbf2e0;
  --s-fbf4e6:#fbf4e6;
  --s-fbf6e9:#fbf6e9;
  --s-fbf7ee:#fbf7ee;
  --s-fbf9f5:#fbf9f5;
  --s-fdeceb:#fdeceb;
  --s-fdf3e3:#fdf3e3;
  --s-fdf6e6:#fdf6e6;
  --s-fdf6e7:#fdf6e7;
  --s-fdf8ec:#fdf8ec;
  --s-fdfaf3:#fdfaf3;
  --s-fdfbf6:#fdfbf6;
  --s-ffd68a:#ffd68a;
  --s-fff:#fff;
  --s-fff8e8:#fff8e8;
  --s-fffdf7:#fffdf7;
  --s-fffdf8:#fffdf8;
  --s-fffdf9:#fffdf9;
  --t-1f2937:#1f2937;
  --t-2b2317:#2b2317;
  --t-2e2717:#2e2717;
  --t-2f2515:#2f2515;
  --t-31281a:#31281a;
  --t-312e81:#312e81;
  --t-332c22:#332c22;
  --t-3a3226:#3a3226;
  --t-3a3325:#3a3325;
  --t-3b352e:#3b352e;
  --t-3d3223:#3d3223;
  --t-3d352b:#3d352b;
  --t-3d3560:#3d3560;
  --t-3f3423:#3f3423;
  --t-3f7a34:#3f7a34;
  --t-3f7fb5:#3f7fb5;
  --t-3f9a6a:#3f9a6a;
  --t-4338ca:#4338ca;
  --t-4a3a28:#4a3a28;
  --t-4a3d28:#4a3d28;
  --t-4a3f2e:#4a3f2e;
  --t-4a4235:#4a4235;
  --t-4b5563:#4b5563;
  --t-5b4a2e:#5b4a2e;
  --t-5b4b30:#5b4b30;
  --t-5c4a33:#5c4a33;
  --t-5d5548:#5d5548;
  --t-6b4f1d:#6b4f1d;
  --t-6b5220:#6b5220;
  --t-6b5327:#6b5327;
  --t-6b573a:#6b573a;
  --t-6b5a45:#6b5a45;
  --t-6b6257:#6b6257;
  --t-6b7280:#6b7280;
  --t-6f675c:#6f675c;
  --t-7a5f33:#7a5f33;
  --t-7a756d:#7a756d;
  --t-7b7062:#7b7062;
  --t-7d5f33:#7d5f33;
  --t-7d6d55:#7d6d55;
  --t-7d7466:#7d7466;
  --t-7d766c:#7d766c;
  --t-8a6d3b:#8a6d3b;
  --t-8a6f43:#8a6f43;
  --t-8a7350:#8a7350;
  --t-8a795c:#8a795c;
  --t-8a7a5c:#8a7a5c;
  --t-8a7a5e:#8a7a5e;
  --t-8a7b62:#8a7b62;
  --t-8a7f6a:#8a7f6a;
  --t-8a8172:#8a8172;
  --t-8b7355:#8b7355;
  --t-8c8270:#8c8270;
  --t-8c837a:#8c837a;
  --t-93815f:#93815f;
  --t-94918c:#94918c;
  --t-96896f:#96896f;
  --t-9a8a70:#9a8a70;
  --t-9a8f79:#9a8f79;
  --t-9a9086:#9a9086;
  --t-9a9182:#9a9182;
  --t-9a9a9a:#9a9a9a;
  --t-9c7c43:#9c7c43;
  --t-9c8355:#9c8355;
  --t-9c8a6d:#9c8a6d;
  --t-9c907a:#9c907a;
  --t-a04a3a:#a04a3a;
  --t-a08a5c:#a08a5c;
  --t-a2967d:#a2967d;
  --t-a29a8c:#a29a8c;
  --t-a3917b:#a3917b;
  --t-a39a8b:#a39a8b;
  --t-a4782c:#a4782c;
  --t-a59377:#a59377;
  --t-a8813f:#a8813f;
  --t-a89f8e:#a89f8e;
  --t-a99a86:#a99a86;
  --t-b07d2b:#b07d2b;
  --t-b08a4a:#b08a4a;
  --t-b4813a:#b4813a;
  --t-c0392b:#c0392b;
  --t-c9564d:#c9564d;
  --t-d1467a:#d1467a;
  --t-d9534f:#d9534f;
}

/* ---------- 深色主题 ---------- */
html[data-theme="dark"]{
  color-scheme:dark;
  --paper:#14120e; --ink:#e9e3d6; --ink2:#b3aa9a; --ink3:#8d8474;
  --card:#1d1a15; --line:#2f2b23;
  --gold:#c9a96e; --gold-d:#d9c091; --green:#7e9d81; --red:#c86f66;
--s-4f46e5:#4f46e5;
  --s-6366f1:#6366f1;
  --s-c2a074:#c2a074;
  --s-c7d2fe:#252937;
  --s-c8a06a:#c8a06a;
  --s-cfe4c4:#2f3c28;
  --s-d8c8b0:#d8c8b0;
  --s-d8c9a8:#d8c9a8;
  --s-d8c9ae:#d8c9ae;
  --s-d9534f:#d9534f;
  --s-d9a75f:#d9a75f;
  --s-d9c9b0:#d9c9b0;
  --s-dbe2ff:#232634;
  --s-dccfba:#3e372b;
  --s-ddd0b6:#40392b;
  --s-e0453a:#e0453a;
  --s-e0e7ff:#151820;
  --s-e2cfa6:#e2cfa6;
  --s-e2d9c9:#3a342a;
  --s-e3b7ac:#271d1a;
  --s-e5e7eb:#292c30;
  --s-e6d9c2:#3c3528;
  --s-e6dccd:#3a3328;
  --s-e6ddcd:#3a3328;
  --s-e6ded1:#383228;
  --s-e6dfd2:#383228;
  --s-e8d3ae:#3f382a;
  --s-e8d5a8:#403a2b;
  --s-e9e3d8:#211e18;
  --s-ecdfc2:#3b3528;
  --s-ece0c8:#3a3427;
  --s-ece2cf:#393326;
  --s-ece5d8:#373126;
  --s-ece5da:#363026;
  --s-eceae5:#1e1d19;
  --s-eee2cc:#393326;
  --s-eee7dc:#211d17;
  --s-eef0f4:#25292f;
  --s-eef2ff:#14171f;
  --s-eef3f8:#151a1f;
  --s-ef4444:#ef4444;
  --s-efe6d2:#383225;
  --s-efe6d8:#373025;
  --s-efe7d8:#221e17;
  --s-efe9df:#211d17;
  --s-efece6:#1f1c18;
  --s-f0e4c8:#3a3426;
  --s-f0e7d6:#221e17;
  --s-f0ebe2:#342f25;
  --s-f0ece5:#1f1c17;
  --s-f1ead9:#221e17;
  --s-f1eee9:#1e1c18;
  --s-f1f7ec:#1a2015;
  --s-f2eee6:#201d16;
  --s-f2efe9:#1f1c17;
  --s-f3ece0:#211d16;
  --s-f3eee5:#201d16;
  --s-f3efe7:#201d16;
  --s-f4ead2:#221f17;
  --s-f4efe4:#201d16;
  --s-f4f0e9:#332d23;
  --s-f4f1ea:#1f1c16;
  --s-f5f2ff:#16141e;
  --s-f6f1e8:#201c15;
  --s-f6f7fb:#14161e;
  --s-f7eed8:#211e16;
  --s-f7efe0:#211d16;
  --s-f7efe3:#201c16;
  --s-f7f2e8:#201c15;
  --s-f7f3ea:#201c15;
  --s-f7f4ef:#1f1b15;
  --s-f7f5f1:#1e1b16;
  --s-f8f0dd:#211e16;
  --s-f8f3e9:#201c15;
  --s-f8f5f0:#1f1b15;
  --s-f8fafc:#14191e;
  --s-f9fafb:#16191c;
  --s-faf5ec:#1f1c15;
  --s-faf7f1:#1f1b15;
  --s-faf7f2:#1f1b14;
  --s-fbf2e0:#201d15;
  --s-fbf4e6:#201c15;
  --s-fbf6e9:#1f1d15;
  --s-fbf7ee:#1f1c15;
  --s-fbf9f5:#1e1b14;
  --s-fdeceb:#1f1515;
  --s-fdf3e3:#201c15;
  --s-fdf6e6:#201c15;
  --s-fdf6e7:#1f1c15;
  --s-fdf8ec:#1f1c15;
  --s-fdfaf3:#1e1b14;
  --s-fdfbf6:#1e1b14;
  --s-ffd68a:#ffd68a;
  --s-fff:#1d1a15;
  --s-fff8e8:#1f1c15;
  --s-fffdf7:#1e1b14;
  --s-fffdf8:#1e1b14;
  --s-fffdf9:#1e1a14;
  --t-1f2937:#bfcadb;
  --t-2b2317:#dfd4c4;
  --t-2e2717:#dfd6c3;
  --t-2f2515:#dfd4c3;
  --t-31281a:#ded2c1;
  --t-312e81:#a5a4ce;
  --t-332c22:#d7cfc3;
  --t-3a3226:#d5cdc0;
  --t-3a3325:#d6cfbf;
  --t-3b352e:#cfc9c2;
  --t-3d3223:#d9cdbc;
  --t-3d352b:#d2cabf;
  --t-3d3560:#b3acd1;
  --t-3f3423:#d9cdbb;
  --t-3f7a34:#abcea4;
  --t-3f7fb5:#90abc3;
  --t-3f9a6a:#97c7ae;
  --t-4338ca:#8f8bc1;
  --t-4a3a28:#d7c7b6;
  --t-4a3d28:#d7cab6;
  --t-4a3f2e:#d3c8b8;
  --t-4a4235:#cdc6ba;
  --t-4b5563:#afb7c3;
  --t-5b4a2e:#d4c6af;
  --t-5b4b30:#d4c6ae;
  --t-5c4a33:#d2c2ae;
  --t-5d5548:#c4bdb2;
  --t-6b4f1d:#d4c7af;
  --t-6b5220:#d4c7ae;
  --t-6b5327:#d2c5ac;
  --t-6b573a:#cfbfa7;
  --t-6b5a45:#c8baa9;
  --t-6b6257:#bcb5ad;
  --t-6b7280:#a4a9b3;
  --t-6f675c:#bab4ab;
  --t-7a5f33:#cebea4;
  --t-7a756d:#b1ada8;
  --t-7b7062:#b8b0a5;
  --t-7d5f33:#cebda3;
  --t-7d6d55:#c0b4a2;
  --t-7d7466:#b5afa5;
  --t-7d766c:#b2ada6;
  --t-8a6d3b:#caba9d;
  --t-8a6f43:#c9b89b;
  --t-8a7350:#c4b39a;
  --t-8a795c:#bdb19c;
  --t-8a7a5c:#bdb19c;
  --t-8a7a5e:#bcb09c;
  --t-8a7b62:#b9af9d;
  --t-8a7f6a:#b4ad9e;
  --t-8a8172:#b0aa9f;
  --t-8b7355:#c1b09a;
  --t-8c8270:#b1aa9e;
  --t-8c837a:#aca59f;
  --t-93815f:#bcaf97;
  --t-94918c:#a3a09c;
  --t-96896f:#b3aa97;
  --t-9a8a70:#b4a895;
  --t-9a8f79:#afa795;
  --t-9a9086:#a89f97;
  --t-9a9182:#aaa396;
  --t-9a9a9a:#9b9b9b;
  --t-9c7c43:#c6b596;
  --t-9c8355:#c3b191;
  --t-9c8a6d:#b6a993;
  --t-9c907a:#afa694;
  --t-a04a3a:#c79f97;
  --t-a08a5c:#bfb090;
  --t-a2967d:#afa590;
  --t-a29a8c:#a79f92;
  --t-a3917b:#b1a18f;
  --t-a39a8b:#a89f91;
  --t-a4782c:#c9b89a;
  --t-a59377:#b4a48d;
  --t-a8813f:#c5b393;
  --t-a89f8e:#a79e8d;
  --t-a99a86:#ad9e8b;
  --t-b07d2b:#c7b497;
  --t-b08a4a:#c2af8e;
  --t-b4813a:#c4af91;
  --t-c0392b:#c49792;
  --t-c9564d:#be8a86;
  --t-d1467a:#bd859a;
  --t-d9534f:#bb8280;
}
html[data-theme="dark"] img{filter:brightness(.92)}
html[data-theme="dark"] .verse{box-shadow:0 1px 3px rgba(0,0,0,.5)}
/* 顶栏、家族页头、问候卡、toast 是半透明浅色，单独覆盖 */
html[data-theme="dark"] #tabs{background:rgba(20,18,14,.96);border-top-color:#2b271f}
html[data-theme="dark"] .famx-bar{background:rgba(20,18,14,.96);border-bottom-color:#2b271f}
html[data-theme="dark"] .greet{background:linear-gradient(180deg,#241f16,#201c14)}
html[data-theme="dark"] .toast{background:rgba(60,54,46,.95);color:#f2ece0}


/* ══════════════════════════════════════════════════════════
   显示设置控件（我的 → 显示）+ 听书返回条
   ══════════════════════════════════════════════════════════ */
.wx-segrow{padding:8px 14px 12px}
.wx-seg{display:flex;gap:6px;background:var(--s-efe6d8);border-radius:12px;padding:4px}
.wx-seg-b{flex:1;padding:9px 0;border:0;border-radius:9px;background:transparent;
  color:var(--ink2);font-size:calc(13.5px * var(--fsmul,1));font-weight:600;
  font-family:inherit;-webkit-tap-highlight-color:transparent}
.wx-seg-b.on{background:var(--card);color:var(--gold-d);
  box-shadow:0 1px 3px rgba(90,70,40,.18)}
html[data-theme="dark"] .wx-seg-b.on{background:#33302a;color:#e0c795;
  box-shadow:0 1px 3px rgba(0,0,0,.5)}
.wx-tip{padding:0 14px 12px;color:var(--ink3);font-size:calc(11.5px * var(--fsmul,1));
  line-height:1.6}
.wx-prev{margin:0 14px 14px;padding:12px 13px;border-radius:12px;
  background:var(--s-efe6d8);border:1px solid var(--line)}
.wx-prev-t{color:var(--ink3);font-size:calc(11px * var(--fsmul,1));letter-spacing:1px;margin-bottom:6px}
.wx-prev-b{font-size:calc(15px * var(--fsmul,1));color:var(--ink);line-height:1.85;font-family:"Songti SC","Noto Serif CJK SC",serif}

.backbar{padding:6px 0 2px}
.backbar-b{border:0;background:transparent;color:var(--gold-d);font-family:inherit;
  font-size:calc(14px * var(--fsmul,1));font-weight:600;padding:6px 2px;
  -webkit-tap-highlight-color:transparent}

/* 深色下金底按钮改用深字，白字压金底只有 2.2:1，长辈看不清 */
html[data-theme="dark"] .btn,
html[data-theme="dark"] .fd-send,
html[data-theme="dark"] .ref-vis.on,
html[data-theme="dark"] .rem-chip.on,
html[data-theme="dark"] .auth-tab.on,
html[data-theme="dark"] .auth-tab.active,
html[data-theme="dark"] .btn-mini.primary{color:#241c10}

/* 夜间：书架（.bk-inline）沿用阅读器的暗色配色；原来只写了 .bk-sheet.bk-dark，
   书架挂在 App 页里没有被覆盖，书卡还是白底、书名发亮。 */
html[data-theme="dark"] .bk-inline .bk-ps > p.bk-sub{color: #ded4bd;}
html[data-theme="dark"] .bk-inline .bk-fin{color: #7d7360;}
/* 夜间模式 */
html[data-theme="dark"] .bk-inline{background: #17150f; color: #c9c0ad;}
html[data-theme="dark"] .bk-inline .bk-head{background: rgba(23, 21, 15, .95); border-bottom-color: #2a261c;}
html[data-theme="dark"] .bk-inline .bk-title{color: #d6cdb8;}
html[data-theme="dark"] .bk-inline .bk-hero-t,
html[data-theme="dark"] .bk-inline .bk-ch-t{color: #e0d7c2;}
html[data-theme="dark"] .bk-inline .bk-hero-s,
html[data-theme="dark"] .bk-inline .bk-meta,
html[data-theme="dark"] .bk-inline .bk-prog-t{color: #8b8271;}
html[data-theme="dark"] .bk-inline .bk-card{background: #1e1b14; border-color: #2c281e;}
html[data-theme="dark"] .bk-inline .bk-name{color: #ddd4c0;}
html[data-theme="dark"] .bk-inline .bk-cover{background: linear-gradient(150deg, #3a3323, #2a2519); box-shadow: inset 2px 0 0 rgba(255, 255, 255, .06);}
html[data-theme="dark"] .bk-inline .bk-cover-w{color: #c3a978;}
html[data-theme="dark"] .bk-inline .bk-bar{background: #2a261c;}
html[data-theme="dark"] .bk-inline .bk-art{padding-top: 10px; color: #c5bca9;}
html[data-theme="dark"] .bk-inline .bk-ch-no{color: #8b7a56;}
html[data-theme="dark"] .bk-inline .bk-readbar{background: #2a261c;}
html[data-theme="dark"] .bk-inline .bk-nav{border-top-color: #2a261c;}
html[data-theme="dark"] .bk-inline .bk-nb{background: #1e1b14; border-color: #3a3326; color: #c3a978;}
html[data-theme="dark"] .bk-inline .bk-toc-btn{border-color: #332d21; color: #9c8f76;}
html[data-theme="dark"] .bk-inline .bk-toc,
html[data-theme="dark"] .bk-inline .bk-set{background: #1e1b14;}
html[data-theme="dark"] .bk-inline .bk-toc-h,
html[data-theme="dark"] .bk-inline .bk-set-h{color: #ddd4c0; border-bottom-color: #2a261c;}
html[data-theme="dark"] .bk-inline .bk-toc-row{border-bottom-color: #26221a;}
html[data-theme="dark"] .bk-inline .bk-toc-row.cur{background: #26221a;}
html[data-theme="dark"] .bk-inline .bk-toc-t,
html[data-theme="dark"] .bk-inline .bk-set-l{color: #cfc6b2;}
html[data-theme="dark"] .bk-inline .bk-set-b{background: #26221a; border-color: #3a3326; color: #c3a978;}
html[data-theme="dark"] .bk-inline .bk-toc-btn,
html[data-theme="dark"] .bk-inline .bk-back{color: #b39461;}
/* 夜间正文再亮一档，长读不费眼 */
html[data-theme="dark"] .bk-inline{background: #1b1913;}
html[data-theme="dark"] .bk-inline .bk-art{color: #d2c9b6;}
html[data-theme="dark"] .bk-inline .bk-ch-t{color: #e6ddc8;}
html[data-theme="dark"] .bk-inline .bk-audio{background: rgba(27, 25, 19, .97); border-top-color: #2a261c;}
html[data-theme="dark"] .bk-inline .bk-ap{background: #26221a; border-color: #3a3326; color: #c3a978;}
html[data-theme="dark"] .bk-inline .bk-abar{background: #2a261c;}
html[data-theme="dark"] .bk-inline .bk-at{color: #8b8271;}
html[data-theme="dark"] .bk-inline .bk-as{background: #26221a; border-color: #3a3326; color: #c3a978;}

/* 书架夜景：书名再压暗一档（用户反馈「书名太亮」），卡片也收一点亮度 */
html[data-theme="dark"] .bk-inline .bk-card{background:#1a1712;border-color:#282419}
html[data-theme="dark"] .bk-inline .bk-name{color:#c2b8a1}
html[data-theme="dark"] .bk-inline .bk-title{color:#bcb29c}
html[data-theme="dark"] .bk-inline .bk-cover{box-shadow:inset 2px 0 0 rgba(255,255,255,.04)}

/* 阅读设置里的「白天/夜晚」三态按钮 */
.bk-set-seg{display:flex;gap:6px;margin-left:auto}
.bk-set-b.on{background:#c2a074;color:#fff;border-color:#c2a074}
html.bk-night .bk-set-b.on,
html[data-theme="dark"] .bk-inline .bk-set-b.on{background:#7d6339;color:#f3ead8;border-color:#8a7043}
