/* 新外壳 v3（2026-10-23 动工）：XiaoHu.AI 新站原型的左侧栏 + 顶栏 + 手机底栏。
   只在 body.sv3 生效（build.py 开关 JIEDU_SHELL_V3 打开时的中文页）；开关关着时这个文件不会被引用。
   配色换成原型的白底 + 玫红：在 body 上重设站点令牌，正文组件跟着变；--p-* 别名也得在这里重设，
   因为 :root 上的 --p-* 已经按 :root 的值算好了，不会跟着 body 上的新值走。 */

body.sv3{
  --bg:#ffffff; --bg-2:#f7f7f8; --surface:#ffffff; --surface-2:#fafafa;
  --ink:#0b0b0c; --ink-2:#4a4a52; --muted:#8b8b94;
  --line:rgba(12,12,14,.09); --line-2:rgba(12,12,14,.16);
  --ember:#e54873; --ember-soft:#fdedf2;
  --p-bg:var(--surface); --p-card:var(--surface-2); --p-ink:var(--ink); --p-dim:var(--ink-2);
  --p-line:var(--line); --p-accent:var(--ember);
  --sv-bg:#ffffff; --sv-bg-2:#f7f7f8; --sv-bg-3:#efeff1; --sv-raise:#ffffff;
  --sv-line:rgba(12,12,14,.08); --sv-line-2:rgba(12,12,14,.15);
  --sv-ink:#0b0b0c; --sv-ink-2:#4a4a52; --sv-ink-3:#8b8b94;
  --sv-rose:#e54873; --sv-gold:#9a6a0c; --sv-gold-soft:#fbf1db;
  --sv-ok:#147a4a; --sv-ok-soft:#e6f4ec; --sv-violet:#7c5cff;   /* 10-24 补：绿=可用/完成/勾，紫=点缀底色（照设计稿） */
  --sv-sh-1:0 1px 2px rgba(12,12,14,.05);
  --sv-sh-3:0 2px 6px rgba(12,12,14,.05),0 30px 70px -24px rgba(12,12,14,.30);
  --sv-w:248px;
  padding-left:var(--sv-w);
}
html.dark body.sv3{
  --bg:#19191c; --bg-2:#1f1f23; --surface:#222226; --surface-2:#26262b;
  --ink:#ececee; --ink-2:#adadb5; --muted:#7c7c85;
  --line:rgba(255,255,255,.08); --line-2:rgba(255,255,255,.14);
  --ember:#f2638b; --ember-soft:#2a1119;
  --sv-bg:#19191c; --sv-bg-2:#1f1f23; --sv-bg-3:#28282d; --sv-raise:#222226;
  --sv-line:rgba(255,255,255,.075); --sv-line-2:rgba(255,255,255,.14);
  --sv-ink:#ececee; --sv-ink-2:#adadb5; --sv-ink-3:#7c7c85;
  --sv-rose:#f2638b; --sv-gold:#e3b257; --sv-gold-soft:#251c0a;
  --sv-ok:#4cc58c; --sv-ok-soft:#0f2319; --sv-violet:#9b85ff;
  --sv-sh-1:0 1px 2px rgba(0,0,0,.4);
  --sv-sh-3:0 2px 6px rgba(0,0,0,.4),0 30px 70px -24px rgba(0,0,0,.9);
}

/* ---------- 侧栏 ---------- */
.sv3-side{position:fixed;left:0;top:0;bottom:0;width:var(--sv-w);z-index:60;display:flex;flex-direction:column;
  background:var(--sv-bg-2);border-right:1px solid var(--sv-line);color:var(--sv-ink);font-size:14px;line-height:1.5;
  padding-left:env(safe-area-inset-left,0px)}
.sv3-top{padding:18px 14px 10px 18px;display:flex;align-items:center;justify-content:space-between}
.sv3-logo{display:block}
.sv3-logo img{height:19px;width:auto;display:block}
.sv3-logo .lg-white{display:none}
html.dark .sv3-logo .lg-ink{display:none}
html.dark .sv3-logo .lg-white{display:block}
.sv3-x{display:none;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:none;color:var(--sv-ink-3);cursor:pointer}
.sv3-x:hover{background:var(--sv-bg-3);color:var(--sv-ink)}
.sv3-search{margin:4px 12px 6px;display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:10px;
  background:var(--sv-raise);border:1px solid var(--sv-line);box-shadow:var(--sv-sh-1);font-size:13px;color:var(--sv-ink-3)}
.sv3-search:hover{border-color:var(--sv-line-2);color:var(--sv-ink-2)}
.sv3-search kbd{margin-left:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;color:var(--sv-ink-3);
  border:1px solid var(--sv-line);border-radius:5px;padding:0 5px;background:var(--sv-bg-2)}
.sv3-scroll{flex:1;overflow-y:auto;min-height:0;padding:6px 12px 14px;overscroll-behavior:contain}
.sv3-sg{font-size:11.5px;font-weight:500;color:var(--sv-ink-3);padding:16px 10px 6px;letter-spacing:.02em}
.sv3-si{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:9px;font-size:13.5px;font-weight:500;
  color:var(--sv-ink-2);transition:background .12s,color .12s}
.sv3-si:hover{background:var(--sv-bg-3);color:var(--sv-ink)}
.sv3-si .sv3-i{flex:none;color:var(--sv-ink-3)}
.sv3-si[aria-current="page"]{background:var(--sv-raise);color:var(--sv-ink);box-shadow:var(--sv-sh-1),0 0 0 1px var(--sv-line)}
.sv3-si[aria-current="page"] .sv3-i{color:var(--sv-rose)}
.sv3-si small{margin-left:auto;font-size:11px;font-weight:400;color:var(--sv-ink-3);white-space:nowrap}
.sv3-pill{margin-left:auto;font-style:normal;font-size:10.5px;font-weight:600;border-radius:999px;padding:0 7px;line-height:18px;
  background:var(--sv-gold-soft);color:var(--sv-gold)}
.sv3-in-only{display:none}
body.sv3-in .sv3-in-only{display:block}
body.sv3-in .sv3-out-only{display:none}
.sv3-card{margin:18px 4px 4px;padding:14px;border-radius:14px;background:var(--sv-raise);border:1px solid var(--sv-line);box-shadow:var(--sv-sh-1)}
.sv3-card b{display:block;font-size:13px}
.sv3-card p{font-size:12px;color:var(--sv-ink-3);margin-top:3px;line-height:1.55}
.sv3-card a{display:flex;justify-content:center;margin-top:10px;font-size:12.5px;font-weight:600;padding:7px 0;border-radius:9px;
  background:var(--sv-ink);color:var(--sv-bg)}
.sv3-card a:hover{background:var(--sv-rose);color:#fff}
body.sv3-mem .sv3-card,body.sv3-mem .sv3-join{display:none}
.sv3-foot{border-top:1px solid var(--sv-line);padding:10px 12px calc(12px + env(safe-area-inset-bottom,0px))}
.sv3-acct{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:38px;border:0;border-radius:10px;cursor:pointer;
  background:var(--sv-ink);color:var(--sv-bg);font-size:13.5px;font-weight:600;font-family:inherit}
.sv3-acct:hover{background:var(--sv-rose);color:#fff}
body.sv3-in .sv3-acct{background:var(--sv-raise);color:var(--sv-ink);box-shadow:var(--sv-sh-1),0 0 0 1px var(--sv-line)}
body.sv3-in .sv3-acct:hover{background:var(--sv-bg-3)}
.sv3-foot .btn-acct.acct-av{justify-content:flex-start;height:44px;padding:0 10px 0 6px;border-radius:12px}
.sv3-hint{font-size:11.5px;color:var(--sv-ink-3);margin-top:7px;text-align:center;line-height:1.5}
.sv3-admin{align-items:center;justify-content:center;margin-bottom:8px;height:30px;border-radius:9px;font-size:12.5px;font-weight:600;
  color:var(--sv-rose);border:1px solid var(--sv-rose)}

/* ---------- 顶栏 ---------- */
.sv3-bar{position:sticky;top:0;z-index:50;height:52px;display:flex;align-items:center;gap:6px;
  padding:0 max(18px,env(safe-area-inset-right,0px)) 0 18px;border-bottom:1px solid var(--sv-line);
  background:color-mix(in srgb,var(--sv-bg) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.sv3-crumb{display:flex;align-items:center;gap:6px;min-width:0;font-size:13px;color:var(--sv-ink-3)}
.sv3-crumb a:hover{color:var(--sv-ink)}
.sv3-crumb b{color:var(--sv-ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sv3-sp{flex:1}
.sv3-menu,.sv3-ic{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:8px;background:none;color:var(--sv-ink-2);cursor:pointer}
.sv3-menu:hover,.sv3-ic:hover{background:var(--sv-bg-2);color:var(--sv-ink)}
.sv3-menu{display:none}
/* 顶栏文字按钮：进化日志、登录（手机上收起） */
.sv3-tt{display:inline-flex;align-items:center;height:32px;padding:0 10px;border:0;border-radius:8px;background:none;font:inherit;
  font-size:13px;font-weight:500;color:var(--sv-ink-2);cursor:pointer;white-space:nowrap}
.sv3-tt:hover{background:var(--sv-bg-2);color:var(--sv-ink)}
.sv3-tt .v{font-family:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;color:var(--sv-rose);margin-right:5px}
/* 语言切换（中 / EN / 日）和非会员的「会员」入口（10-24 补） */
.sv3-ls{display:inline-flex;align-items:center;gap:1px;padding:2px;border-radius:9px;box-shadow:inset 0 0 0 1px var(--sv-line)}
.sv3-ls .ls{font-size:12px;font-weight:600;color:var(--sv-ink-3);padding:3px 7px;border-radius:7px;line-height:1.3}
.sv3-ls .ls:hover{color:var(--sv-ink)}
.sv3-ls .ls.on{background:var(--sv-bg-2);color:var(--sv-ink)}
.sv3-tt.sv3-join{color:var(--sv-rose);font-weight:600}
body.sv3-mem .sv3-tt.sv3-join{display:none}
/* 深浅色三选一：按钮图标跟着当前选择（跟随系统 / 浅色 / 深色） */
.sv3-thw{position:relative}
.sv3-th .th-sun,.sv3-th .th-moon{display:none}
.sv3-th[data-th="light"] .th-auto,.sv3-th[data-th="dark"] .th-auto{display:none}
.sv3-th[data-th="light"] .th-sun,.sv3-th[data-th="dark"] .th-moon{display:block}
.sv3-thm{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:220px;padding:6px;border-radius:14px;background:var(--sv-raise);
  box-shadow:inset 0 0 0 1px var(--sv-line),var(--sv-sh-3)}
.sv3-thm[hidden]{display:none}
.sv3-thm button{display:grid;grid-template-columns:18px 1fr 8px;gap:10px;align-items:center;width:100%;text-align:left;padding:8px 10px;
  border:0;border-radius:9px;background:none;font:inherit;font-size:13.5px;color:var(--sv-ink);cursor:pointer}
.sv3-thm button:hover{background:var(--sv-bg-2)}
.sv3-thm button .sv3-i{color:var(--sv-ink-2)}
.sv3-thm small{display:block;font-size:11px;color:var(--sv-ink-3)}
.sv3-thm button i{width:8px;height:8px;border-radius:50%}
.sv3-thm button[aria-checked="true"]{font-weight:600}
.sv3-thm button[aria-checked="true"] i{background:var(--sv-rose)}
.sv3-thm p{font-size:11px;color:var(--sv-ink-3);line-height:1.5;padding:6px 10px 4px;border-top:1px solid var(--sv-line);margin:4px 0 0}
.sv3-sub{display:inline-flex;align-items:center;height:32px;padding:0 13px;margin-left:4px;border-radius:9px;
  background:var(--sv-ink);color:var(--sv-bg);font-size:13px;font-weight:600}
.sv3-sub:hover{background:var(--sv-rose);color:#fff}
.sv3-strip{position:sticky;top:52px;z-index:40}
.sv3-strip .cat-tab.on{background:var(--sv-ink);color:var(--sv-bg);border-color:var(--sv-ink)}

/* ---------- 手机：侧栏变抽屉，底部常驻五个入口 ---------- */
.sv3-mask{display:none}
.sv3-tabbar{display:none}
@media (max-width:920px){
  body.sv3{padding-left:0}
  .sv3-side{width:min(300px,86vw);transform:translateX(-102%);transition:transform .24s ease,box-shadow .24s ease;box-shadow:none}
  body.sv3-open .sv3-side{transform:none;box-shadow:var(--sv-sh-3)}   /* 收起时不带阴影，免得屏幕左边漏一道灰（10-24） */
  body.sv3-open .sv3-mask{display:block;position:fixed;inset:0;z-index:55;background:rgba(10,10,12,.38)}
  body.sv3-open{overflow:hidden}
  .sv3-x,.sv3-menu,.sv3-ic-search{display:grid}
  .sv3-bar{padding-left:10px}
}
@media (max-width:760px){
  body.sv3{padding-bottom:calc(62px + env(safe-area-inset-bottom,0px))}
  .sv3-tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;align-items:flex-end;border-top:1px solid var(--sv-line);
    background:color-mix(in srgb,var(--sv-bg) 94%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    padding:4px 6px max(6px,env(safe-area-inset-bottom,0px))}
  .sv3-tb{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0 2px;font-size:10.5px;font-weight:600;color:var(--sv-ink-3)}
  .sv3-tb[aria-current="page"]{color:var(--sv-rose)}
  .sv3-tb-ask .orb{width:40px;height:40px;margin-top:-18px;border-radius:50%;display:grid;place-items:center;color:#fff;
    background:linear-gradient(150deg,#f27299,var(--sv-rose) 60%);box-shadow:0 0 0 4px var(--sv-bg),0 10px 20px -10px rgba(229,72,115,.9)}
  .sv3-hide-s{display:none!important}
  .sv3-sub{height:30px;padding:0 11px;font-size:13px}   /* 手机顶栏也留「订阅」（设计稿有，10-24 复查补回） */
}

/* 阅读专注模式（reading-layer）：外壳整个收起 */
html.rl-focus body.sv3{padding-left:0}
html.rl-focus .sv3-side,html.rl-focus .sv3-bar,html.rl-focus .sv3-tabbar,html.rl-focus .sv3-strip{display:none!important}
html.rl-on .sv3-strip{display:none}
/* 文章页：手机底栏照常显示（10-24 照设计稿），阅读工具条浮在底栏上面（见 v3/article.css 第 9 节）；专注模式整个收起（上面） */

/* ---------- 会员中心 /me/：自带的左栏和手机顶栏让给全站外壳，入口并进侧栏「我的」 ---------- */
body.sv3 .mx{grid-template-columns:minmax(0,1fr);min-height:calc(100vh - 52px)}
body.sv3 .mx>.side,body.sv3 .mx .mtop{display:none!important}
/* 手机上会员中心保留它自己的底栏（首页 / 日报 / 问小互 / 收藏 / 我的），全站底栏让位 */
body.sv3-me .sv3-tabbar{display:none}
@media (max-width:760px){body.sv3-me{padding-bottom:0}}

/* ---------- 新页脚（10-24 照设计稿：每天更新 / 学与做 / 合作） ---------- */
.sv3-footer{border-top:1px solid var(--sv-line);background:var(--sv-bg);margin-top:80px}
.sv3-footer .in{max-width:1180px;margin:0 auto;padding:56px clamp(16px,4vw,48px) 30px}
.sv3-footer .g{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}
.sv3-footer .mark{display:inline-block}
.sv3-footer .mark img{height:20px;width:auto;display:block}
.sv3-footer .mark .lg-white{display:none}
html.dark .sv3-footer .mark .lg-ink{display:none}
html.dark .sv3-footer .mark .lg-white{display:block}
.sv3-footer .tag{font-size:14px;color:var(--sv-ink-2);margin:14px 0 0;max-width:22em;line-height:1.7}
.sv3-footer h5{font-size:12.5px;font-weight:600;color:var(--sv-ink-3);margin:0 0 12px}
.sv3-footer ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.sv3-footer ul a{font-size:13.5px;color:var(--sv-ink-2)}
.sv3-footer ul a:hover,.sv3-footer .b a:hover{color:var(--sv-ink)}
.sv3-footer .b{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:44px;padding-top:20px;
  border-top:1px solid var(--sv-line);font-size:12.5px;color:var(--sv-ink-3)}
.sv3-footer .b nav{display:flex;gap:16px;flex-wrap:wrap}
.sv3-footer .b a{color:var(--sv-ink-3)}
.sv3-footer .b .lg{display:inline-flex;gap:12px;padding-left:16px;border-left:1px solid var(--sv-line)}
@media (max-width:760px){.sv3-footer{margin-top:56px}.sv3-footer .in{padding-top:40px}.sv3-footer .g{grid-template-columns:1fr 1fr;gap:28px 20px}
  .sv3-footer .g>div:first-child{grid-column:1/-1}}

/* 旧页脚的新标志（开关关着时不会出现，留着兼容） */
body.sv3 .site-footer .mark img{height:20px;width:auto;display:block}
body.sv3 .site-footer .mark .lg-white{display:none}
html.dark body.sv3 .site-footer .mark .lg-ink{display:none}
html.dark body.sv3 .site-footer .mark .lg-white{display:block}

/* ---------- 文章页（10-24 照设计稿）：标题上方出处行、速览下的分享卡封面、刻度目录、「接着读」 ---------- */
body.sv3 .sv3-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px;font-size:13px;color:var(--sv-ink-3)}
body.sv3 .sv3-kicker a,body.sv3 [data-reading-layout] [data-reading-role] .sv3-kicker a[href]{color:var(--sv-ink-2);text-decoration:none}   /* 阅读层给正文链接上色，这里压回灰色 */
body.sv3 .sv3-kicker a:hover,body.sv3 [data-reading-layout] [data-reading-role] .sv3-kicker a[href]:hover{color:var(--sv-rose)}
body.sv3 .sv3-kicker span,body.sv3 .sv3-kicker i{font-style:normal;opacity:.6}
body.sv3 .reader-meta--end,body.sv3 .reader-rail-back{display:none}
body.sv3 .sv3-cover{margin:22px 0 8px}
body.sv3 .sv3-cover img{display:block;width:100%;height:auto;border-radius:14px;box-shadow:0 0 0 1px var(--sv-line)}
@media (min-width:1051px){
  /* 目录平时是一列小横杠，读到哪节哪道变长变红；鼠标移上去展开成带标题的面板 */
  body.sv3 .reader-rail-inner{width:30px}
  body.sv3 .reader-rail-label,body.sv3 .reader-rail-topics{display:none}
  body.sv3 .reader-toc{gap:2px}
  body.sv3 .reader-toc a{display:block;font-size:0;line-height:0;padding:5px 0;border:0}
  body.sv3 .reader-toc a>*{display:none}
  body.sv3 .reader-toc a::before{content:"";display:block;width:14px;height:2px;border-radius:2px;background:var(--sv-line-2);transition:width .2s,background .2s}
  body.sv3 .reader-toc a:hover::before{background:var(--sv-ink-3)}
  body.sv3 .reader-toc a[aria-current=true]::before{width:26px;background:var(--sv-rose)}
  body.sv3 .reader-rail-inner:hover,body.sv3 .reader-rail-inner:focus-within{width:270px;margin:-14px 0 0 -16px;padding:14px 16px 16px;border-radius:14px;
    background:var(--sv-raise);box-shadow:inset 0 0 0 1px var(--sv-line),var(--sv-sh-3);z-index:30}
  body.sv3 .reader-rail-inner:hover .reader-rail-label,body.sv3 .reader-rail-inner:focus-within .reader-rail-label,
  body.sv3 .reader-rail-inner:hover .reader-rail-topics,body.sv3 .reader-rail-inner:focus-within .reader-rail-topics{display:block}
  body.sv3 .reader-rail-inner:hover .reader-toc a,body.sv3 .reader-rail-inner:focus-within .reader-toc a{display:grid;grid-template-columns:19px 1fr;gap:7px;
    font-size:12.5px;line-height:1.6;padding:3px 0}
  body.sv3 .reader-rail-inner:hover .reader-toc a>*,body.sv3 .reader-rail-inner:focus-within .reader-toc a>*{display:inline}
  body.sv3 .reader-rail-inner:hover .reader-toc a::before,body.sv3 .reader-rail-inner:focus-within .reader-toc a::before{display:none}
  body.sv3 .reader-rail-inner:hover .reader-toc a[aria-current=true],body.sv3 .reader-rail-inner:focus-within .reader-toc a[aria-current=true]{color:var(--sv-rose)}
}
body.sv3 .sv3-next{max-width:1080px;margin:56px auto 0;padding:0 clamp(16px,4vw,48px)}
body.sv3 .sv3-next h2{font-size:22px;letter-spacing:-.02em;font-weight:700;margin:0 0 16px;color:var(--sv-ink)}
body.sv3 .sv3-next .g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
body.sv3 .sv3-next .c{display:block;min-width:0;text-decoration:none;color:var(--sv-ink)}
body.sv3 .sv3-next .cv{display:block;aspect-ratio:1200/630;border-radius:12px;overflow:hidden;background:var(--sv-bg-2);box-shadow:0 0 0 1px var(--sv-line)}
body.sv3 .sv3-next .cv img{width:100%;height:100%;object-fit:cover;display:block}
body.sv3 .sv3-next .cv.nc{display:flex;align-items:flex-end;padding:14px;font-size:14px;line-height:1.4}
body.sv3 .sv3-next .m{display:block;margin-top:10px;font-size:12px;color:var(--sv-ink-3)}
body.sv3 .sv3-next b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:4px;font-size:15px;line-height:1.45}
body.sv3 .sv3-next .c:hover b{color:var(--sv-rose)}
@media (max-width:760px){body.sv3 .sv3-next .g{grid-template-columns:minmax(0,1fr);gap:18px}}

/* 账号区（10-24，assets/v3/acct.js）：登录后换成头像 + 名字 + 档位标签，点开向上弹菜单；原来的「我的」按钮让位 */
body.sv3-acct-on .sv3-foot .btn-acct{display:none!important}
.sv3-acct2{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:12px;text-align:left;color:var(--sv-ink);
  background:none;border:0;cursor:pointer;font:inherit}
.sv3-acct2:hover,.sv3-acct2[aria-expanded="true"]{background:var(--sv-bg-3)}
.sv3-acct2 .av{position:relative;flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;color:#fff;
  background:linear-gradient(140deg,#f27299,var(--sv-rose))}
.sv3-acct2.soon .av::after{content:"";position:absolute;right:-1px;top:-1px;width:9px;height:9px;border-radius:50%;background:#e5484d;box-shadow:0 0 0 2px var(--sv-bg-2)}
.sv3-acct2 .who{flex:1;min-width:0;display:grid;gap:1px}
.sv3-acct2 .nm{display:flex;align-items:center;gap:6px;min-width:0}
.sv3-acct2 .nm b{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sv3-acct2 .pill{flex:none;font-style:normal;font-size:10.5px;font-weight:600;border-radius:5px;padding:0 6px;line-height:17px}
.sv3-acct2 .pill.mem{color:var(--sv-gold);background:var(--sv-gold-soft)}
.sv3-acct2 .pill.free{color:var(--sv-ink-2);background:var(--sv-bg-3)}
.sv3-acct2 .pill.exp{color:#c2412d;background:rgba(229,72,77,.12)}
.sv3-acct2 small{font-size:11.5px;color:var(--sv-ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sv3-acct2 .cv{flex:none;color:var(--sv-ink-3)}
.sv3-am{position:fixed;z-index:120;padding:6px;border-radius:14px;background:var(--sv-raise);box-shadow:var(--sv-sh-3),0 0 0 1px var(--sv-line)}
.sv3-am .hd{display:grid;gap:2px;padding:10px 10px 12px;margin-bottom:4px;border-bottom:1px solid var(--sv-line)}
.sv3-am .hd b{font-size:13.5px}
.sv3-am .hd span{font-size:12px;color:var(--sv-ink-3)}
.sv3-am a,.sv3-am button{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:9px;font-size:13.5px;color:var(--sv-ink);background:none;border:0;cursor:pointer;font-family:inherit}
.sv3-am a:hover,.sv3-am button:hover{background:var(--sv-bg-2)}
.sv3-am a.hot{color:var(--sv-rose);font-weight:600}
.sv3-am .sep{height:1px;margin:4px 6px;background:var(--sv-line)}

/* 今天旁边的「+N」、关于小互用小互头像、深色下登录弹窗遮罩加深（10-24 复查） */
.sv3-cnt{margin-left:auto;font-style:normal;font-size:11px;font-weight:700;color:#fff;background:var(--sv-rose);border-radius:999px;padding:0 7px;line-height:18px}
.sv3-av{width:18px;height:18px;border-radius:50%;flex:none;object-fit:cover}
html.dark body.sv3 .lgm-mask{background:rgba(0,0,0,.62)}

/* 书架补丁（10-24，照设计稿第 23 版，配合 assets/v3/shelf.js）：
   合书时左边那叠纸先撤掉，不然封面翻回右边后左边会剩一块黄纸；翻开时等封面落稳了才显出来。点书页可以翻页，右页悬停时页边出现一道浅影 */
body.sv3 .bs-stage.is-open .bs-left{transition:opacity .2s .6s}
body.sv3 .bs-stage.is-closing .bs-left{opacity:0;transition:opacity .2s}
body.sv3 .bs-stage.is-open .bs-right,body.sv3 .bs-stage.is-open .bs-flap{cursor:pointer}
body.sv3 .bs-stage .bs-right::after{content:"";position:absolute;top:0;right:0;bottom:0;width:44px;background:linear-gradient(90deg,transparent,rgba(110,85,40,.1));opacity:0;transition:opacity .2s;pointer-events:none}
body.sv3 .bs-stage.is-open .bs-right:hover::after{opacity:1}

/* 问小互的对话列表：在问小互页再点一次侧栏「问小互」就收起（设计稿第 20 版） */
body.sv3-akfold .sv3-side #mx-akl{display:none!important}

/* 问小互页顶栏的「＋」新对话（设计稿第 20 版，手机上不用打开侧栏就能开新对话）；其他页不显示 */
.sv3-newq{display:none!important}
body.sv3-onask .sv3-newq{display:inline-grid!important}

/* ---------- 全站统一的会员提醒（10-24，照设计稿第 25 版 #gate；脚本 assets/v3/gate.js） ---------- */
.sv3-gate{position:fixed;inset:0;z-index:170;display:grid;place-items:center;padding:20px;background:color-mix(in srgb,var(--sv-bg) 55%,transparent);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:sv3gin .2s ease both}
.sv3-gate[hidden]{display:none}
.sv3-gate-c{position:relative;width:min(440px,100%);padding:28px 28px 22px;border-radius:24px;color:var(--sv-ink);
  background:radial-gradient(360px 180px at 100% 0,var(--sv-gold-soft),transparent 70%),var(--sv-raise);box-shadow:inset 0 0 0 1px var(--sv-line),var(--sv-sh-3);
  animation:sv3gup .32s cubic-bezier(.2,.8,.2,1) both}
.sv3-gate-x{position:absolute;top:14px;right:14px;width:30px;height:30px;border:0;border-radius:50%;display:grid;place-items:center;background:none;color:var(--sv-ink-3);font-size:20px;line-height:1;cursor:pointer}
.sv3-gate-x:hover{background:var(--sv-bg-2);color:var(--sv-ink)}
.sv3-gate-k{display:inline-block;font-size:11.5px;font-weight:700;color:var(--sv-gold);background:var(--sv-gold-soft);border-radius:6px;padding:1px 8px}
.sv3-gate-c h3{font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.3;margin:12px 0 0}
.sv3-gate-c>p{font-size:14px;color:var(--sv-ink-2);line-height:1.7;margin:8px 0 0}
.sv3-gate-l{list-style:none;margin:18px 0 0;padding:14px 0 0;border-top:1px solid var(--sv-line);display:grid;gap:9px}
.sv3-gate-l li{display:grid;grid-template-columns:18px 1fr;gap:8px;font-size:13px;line-height:1.55;color:var(--sv-ink-3)}
.sv3-gate-l li svg{color:var(--sv-ok);margin-top:2px}
.sv3-gate-l li b{color:var(--sv-ink-2);font-weight:600;margin-right:6px}
.sv3-gate-l li.on{color:var(--sv-ink-2)}
.sv3-gate-l li.on b{color:var(--sv-ink)}
.sv3-gate-a{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.sv3-gate-a .v3-btn{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 16px;border:0;border-radius:11px;font:600 14px/1 inherit;cursor:pointer;text-decoration:none}
.sv3-gate-a .v3-btn.rose{background:var(--sv-rose);color:#fff}
.sv3-gate-a .v3-btn.sec{background:var(--sv-bg-2);color:var(--sv-ink);box-shadow:inset 0 0 0 1px var(--sv-line)}
@keyframes sv3gin{from{opacity:0}}
@keyframes sv3gup{from{opacity:0;transform:translateY(10px) scale(.98)}}

/* ---------- 全站底部播放条（10-24，照设计稿 #pbar；脚本 assets/v3/player.js）：卡片上的「▶ 播客」原地播放。浅色跟着外壳走 ---------- */
.sv3-pb{position:fixed;left:var(--sv-w,0px);right:0;bottom:0;z-index:49;padding:10px max(18px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px));
  background:color-mix(in srgb,var(--sv-bg) 90%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--sv-line);
  box-shadow:0 -10px 30px -18px rgba(12,12,14,.25);transform:translateY(110%);transition:transform .22s ease}
.sv3-pb.on{transform:none}
.sv3-pb-in{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;align-items:center}
.sv3-pb button{border:0;background:none;cursor:pointer;font:inherit;color:inherit}
.sv3-pb .pl{width:42px;height:42px;border-radius:50%;background:var(--sv-ink);color:var(--sv-bg);display:grid;place-items:center}
.sv3-pb .pl:hover,.sv3-pb .pl.playing{background:var(--sv-rose);color:#fff}
.sv3-pb .tx{min-width:0}
.sv3-pb .t{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sv3-pb .m{display:flex;gap:12px;margin-top:2px;font-size:11.5px;color:var(--sv-ink-3)}
.sv3-pb .tm{font-variant-numeric:tabular-nums}
.sv3-pb .rd{color:var(--sv-rose);font-weight:600}
.sv3-pb .pg{margin-top:7px;height:4px;border-radius:2px;background:var(--sv-bg-3);cursor:pointer;overflow:hidden}
.sv3-pb .pg i{display:block;height:100%;width:0;background:var(--sv-rose)}
.sv3-pb .spd{font:600 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--sv-ink-2);padding:6px 8px;border-radius:8px;box-shadow:inset 0 0 0 1px var(--sv-line-2)}
.sv3-pb .spd:hover{color:var(--sv-ink)}
.sv3-pb .x{padding:8px;border-radius:8px;color:var(--sv-ink-3)}
.sv3-pb .x:hover{background:var(--sv-bg-2);color:var(--sv-ink)}
body.sv3-pb-on{padding-bottom:72px}
@media (max-width:920px){.sv3-pb{left:0}}
@media (max-width:760px){
  .sv3-pb{bottom:calc(62px + env(safe-area-inset-bottom,0px));padding:8px 12px}
  .sv3-pb-in{gap:10px}
  body.sv3.sv3-pb-on{padding-bottom:calc(128px + env(safe-area-inset-bottom,0px))}
}
[data-pod].playing{background:var(--sv-rose)!important;color:#fff!important}
/* 侧栏「我的」组角标：灰底小字，和「今天 +N」的玫红区分开（今天条数 / 问了几次 / 接了几个） */
.sv3-n{background:var(--sv-bg-3);color:var(--sv-ink-2);font-weight:600}
.sv3-si[aria-current="page"] .sv3-n{background:color-mix(in srgb,var(--sv-rose) 14%,transparent);color:var(--sv-rose)}
/* 侧栏「别靠刷到 · 免费订阅」卡只给访客（设计稿第 52 版；免费账号也不出） */
body.sv3-in .sv3-card{display:none}
.sv3-gate-alt{align-self:center;margin-left:4px;font-size:13px;font-weight:600;color:var(--sv-ink-2)}
.sv3-gate-alt:hover{color:var(--sv-rose)}
/* 手机：提醒从底部弹出（设计稿第 25 版） */
@media (max-width:640px){
  .sv3-gate{place-items:end center;padding:0}
  .sv3-gate-c{width:100%;border-radius:24px 24px 0 0;padding-bottom:calc(22px + env(safe-area-inset-bottom,0px));animation-name:sv3gsheet}
}
@keyframes sv3gsheet{from{transform:translateY(40px);opacity:0}}
