/* 课诵站样式 · 2026-09-08
   「念」的页面（日常课诵/僧团作法/受戒/巴帝摩卡）：巴利当主角，大字宽行距
   「查」的页面（行仪/教理/其他）：小字紧行距，重目录与检索          */

/* 巴利罗马字专用字体：DejaVu Serif 裁剪版，只留全站实际用到的 134 个字符。
   为什么要打包：ā ī ū ṃ ṅ ñ ṭ ḍ ṇ ḷ 这些长音与下点符号不是每台手机都有，
   缺一个字符系统就临时换字体顶上，那个字母会比周围大一点或矮一点，念的时候看错音。
   371KB → 13KB。中文落回下面的 --han-font。 */
@font-face{
  font-family:"Pali Serif";
  src:url("fonts/pali-serif.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;
  unicode-range:U+0000-024F,U+1E00-1EFF,U+2000-206F,U+00D7;
}
/* 粗体也得打包。上游用 **…** 给巴利标了诵读重音（61 页、全站几百处），
   只有常规体的话浏览器会把常规字硬拉成「假粗」，长音与下点糊在一起——
   标记本来就是给人看清重音的，糊了就白标。 */
@font-face{
  font-family:"Pali Serif";
  src:url("fonts/pali-serif-bold.woff2") format("woff2");
  font-weight:700;font-style:normal;font-display:swap;
  unicode-range:U+0000-024F,U+1E00-1EFF,U+2000-206F,U+00D7;
}

:root{
  --ground:#FCFAF6; --raised:#FFFFFF;
  --ink:#221B13; --ink-soft:#6D6154; --ink-faint:#9C8E7C;
  --accent:#8A3A1C; --accent-soft:#F2EADC;
  --rule:#E6DFD3;
  --pali-size:1.30rem; --zh-size:1.0rem;
  /* 底部三个悬浮控件共用：同高、同底、同边框，改这里就一起变 */
  --btn-size:2.8rem; --btn-bottom:1rem; --btn-edge:1.5px;
  --btn-line:#C9B79A;   /* 悬浮控件的边框：比正文分隔线明显一档，作者说原来看不清 */
  --head-base:var(--zh-size);   /* 标题基准；念诵页在下面改挂到巴利 */
  --shadow:0 1px 2px rgba(34,27,19,.06),0 8px 24px rgba(34,27,19,.05);
  --pali-font:"Pali Serif","Charis SIL","Gentium Plus","Noto Serif",Georgia,serif;
  --han-font:"Songti SC","STSong","Noto Serif CJK SC","Source Han Serif SC","SimSun",serif;
  --ui-font:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{
    --ground:#17130F; --raised:#1E1913;
    --ink:#EFE7DA; --ink-soft:#A0917E; --ink-faint:#7A6D5D;
    --accent:#D68A5C; --accent-soft:#2A2118;
    --rule:#302820;
  --btn-line:#4A3D2E;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.3);
  }
}
:root[data-theme="dark"]{
  --ground:#17130F; --raised:#1E1913;
  --ink:#EFE7DA; --ink-soft:#A0917E; --ink-faint:#7A6D5D;
  --accent:#D68A5C; --accent-soft:#2A2118;
  --rule:#302820;
  --btn-line:#4A3D2E;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.3);
}
:root[data-theme="light"]{
  --ground:#FCFAF6; --raised:#FFFFFF;
  --ink:#221B13; --ink-soft:#6D6154; --ink-faint:#9C8E7C;
  --accent:#8A3A1C; --accent-soft:#F2EADC;
  --rule:#E6DFD3;
  --btn-line:#C9B79A;
  --shadow:0 1px 2px rgba(34,27,19,.06),0 8px 24px rgba(34,27,19,.05);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--han-font)}

/* ── 顶栏 ───────────────────────────────── */
.bar{
  position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:.5rem;
  padding:.55rem .8rem;background:color-mix(in srgb,var(--ground) 97%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--rule);
}
.bar .crumb{
  flex:1;min-width:0;font-family:var(--ui-font);font-size:.82rem;letter-spacing:.03em;
  color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.bar .crumb b{color:var(--ink);font-weight:600}
.iconbtn{
  display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;flex:none;
  background:none;border:1px solid var(--rule);border-radius:.4rem;color:var(--ink);
  cursor:pointer;font:inherit;font-size:.95rem;line-height:1;
}
.iconbtn:hover{background:var(--accent-soft)}
.iconbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ── 抽屉目录 ───────────────────────────── */
.scrim{position:fixed;inset:0;z-index:50;background:rgba(20,14,8,.42);opacity:0;pointer-events:none;transition:opacity .22s ease}
.scrim.open{opacity:1;pointer-events:auto}
.drawer{
  position:fixed;z-index:60;top:0;bottom:0;left:0;width:min(22rem,88vw);overflow-y:auto;
  background:var(--raised);border-right:1px solid var(--rule);
  transform:translateX(-100%);transition:transform .22s ease;box-shadow:var(--shadow);
}
.drawer.open{transform:none}
@media (prefers-reduced-motion:reduce){.scrim,.drawer{transition:none}}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem .6rem;border-bottom:1px solid var(--rule)}
.drawer-head span{font-family:var(--ui-font);font-size:.75rem;letter-spacing:.18em;color:var(--ink-faint)}
/* 目录字号：跟正文一样跟着「大／小」按钮走，别写死小字（作者 2026-09-08 定，
   理由同正文——手机屏幕小、读者里年长的多，看清楚要紧）。 */
.toc{padding:.4rem .4rem 4rem;margin:0;font-family:var(--ui-font)}
.toc .zone{
  display:flex;align-items:baseline;gap:.5rem;padding:1.3rem 1rem .45rem;
  font-size:calc(var(--zh-size) * .92);letter-spacing:.12em;color:var(--accent);font-weight:600;
}
.toc .zone em{font-style:normal;color:var(--ink-faint);font-weight:400;font-size:.86em;letter-spacing:.02em}
.toc .grp{display:block;padding:.65rem 1rem .25rem;font-size:calc(var(--zh-size) * .9);color:var(--ink-faint);letter-spacing:.05em}
.toc a{display:block;padding:.6rem 1rem;border-radius:.35rem;color:var(--ink-soft);text-decoration:none;font-size:var(--zh-size);line-height:1.5}
.toc a:hover{background:var(--accent-soft);color:var(--ink)}
.toc a.here{background:var(--accent-soft);color:var(--ink);font-weight:600}
.toc a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.toc .d1{padding-left:1.9rem}
.toc .d2{padding-left:2.8rem}
.toc .d3{padding-left:3.7rem}

/* ── 正文（公共）────────────────────────── */
main{max-width:34rem;margin:0 auto;padding:1.3rem 1.1rem 6rem}
/* 标题（作者 2026-09-08 定）：要大、要粗、要最亮的那个颜色。
   两条硬要求，别改回去——
   ① 全部跟着 --zh-size 走，读者按「大」的时候标题得一起变大。
      原先写死 rem，正文放大了标题不动，越调越显得标题小。
   ② 每一级都明确大于正文。原先 h4 是 .92rem，比正文还小
      （甘马页的「宣告」就是 h4，作者一眼就看出来了）。
   颜色用 var(--ink)：深色模式下是白的，浅色模式下是最深的墨色——
   作者说「可以用白色」，指的是对比最强的那个，两种模式各取各的。 */
main h1{margin:.4rem 0 1.5rem;font-size:calc(var(--head-base) * 1.55);font-weight:700;color:var(--ink);letter-spacing:.04em;line-height:1.35;text-wrap:balance}
main h2{margin:2.6rem 0 1rem;padding-top:1.1rem;border-top:1px solid var(--rule);font-size:calc(var(--head-base) * 1.32);font-weight:700;color:var(--ink);letter-spacing:.03em;line-height:1.4;text-wrap:balance}
main h2:first-of-type{border-top:none;padding-top:0}
main h3{margin:2rem 0 .8rem;font-size:calc(var(--head-base) * 1.16);font-weight:700;color:var(--ink);letter-spacing:.02em;line-height:1.45;text-wrap:balance}
/* ⚠️ 念诵页的正文主体是巴利（--pali-size 1.30），不是中文（1.00）。
   标题必须跟巴利比——跟中文比就会出现「标题比正文小」。2026-09-08 犯过一次，
   作者从「提案ñatti」那个四级标题一眼看出来。 */
body.chant{--head-base:var(--pali-size)}
main h4{margin:1.6rem 0 .6rem;font-size:calc(var(--head-base) * 1.06);font-weight:700;color:var(--ink);letter-spacing:.02em;line-height:1.5;text-wrap:balance}
main a{color:var(--accent)}
main blockquote{
  margin:1rem 0;padding:.7rem 1rem;border-left:3px solid var(--accent);
  background:var(--accent-soft);border-radius:0 .35rem .35rem 0;
  font-size:.92rem;line-height:1.7;color:var(--ink-soft);
}
main blockquote p{margin:.3rem 0}
main img{max-width:100%;height:auto;border-radius:.3rem}
main hr{border:none;border-top:1px solid var(--rule);margin:2rem 0}
.tablewrap{overflow-x:auto;margin:1rem 0;-webkit-overflow-scrolling:touch}
main table{border-collapse:collapse;font-family:var(--ui-font);font-size:.82rem;min-width:100%}
/* ⚠️ 别加 white-space:nowrap。上游有些「念诵者｜念诵内容」是用表格排的，
   里面是整句巴利，不换行就会被切掉右半边（2026-09-08 手机上踩到）。
   真正很宽的数据表由 .tablewrap 负责横向滚动。 */
main th,main td{border:1px solid var(--rule);padding:.5rem .65rem;text-align:left;vertical-align:top;white-space:normal;word-break:break-word}
main td:first-child{white-space:nowrap;color:var(--ink-faint);font-size:.9em}
main th{background:var(--accent-soft);color:var(--ink);font-weight:600}
main code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:var(--accent-soft);padding:.06rem .3rem;border-radius:.2rem}
main pre{overflow-x:auto;background:var(--accent-soft);padding:.8rem;border-radius:.4rem}
main pre code{background:none;padding:0}

/* ── 诵读单元 tai/roman/zh ──────────────── */
/* 一组「巴利＋中文」＝ 一个 .v。⚠️ 别改回按标签形状匹配——
   上游有三种写法（一个 <p> 塞十几组／装在 <li> 里／干脆不打标记），
   按形状匹配会漏掉后两种，左右排列时几十个元素挤成一行（2026-09-09 踩过）。 */
.v{display:flex;flex-direction:column;gap:.3rem;padding:.7rem 0}
.v + .v{border-top:1px solid color-mix(in srgb,var(--rule) 55%,transparent)}
main p:has(> .v),main li:has(> .v){margin:0;padding:0;list-style-position:outside}
main p:has(> roman){display:flex;flex-direction:column;gap:.3rem;margin:0;padding:.7rem 0}
main p:has(> roman) + p:has(> roman){border-top:1px solid color-mix(in srgb,var(--rule) 55%,transparent)}
roman{
  display:block;font-family:var(--pali-font);font-size:var(--pali-size);
  line-height:1.62;color:var(--ink);letter-spacing:.005em;
}
zh{display:block;font-size:var(--zh-size);line-height:1.68;color:var(--ink-soft)}
tai{display:none}                     /* 傣文：数据保留，暂不上线 */
/* 缅文同理（2026-09-09）：巴帝摩卡各页有 1105 处 <my>，没样式就会跟巴利挤在一起，
   左右排列时更乱。按作者对傣文定的规矩办——数据留着，不显示。
   ⚠️ 要显示就把下面这行删掉，数据一个字没删。 */
my{display:none}
body.show-my my{display:block;font-size:1.05rem;line-height:2;color:var(--ink-faint)}
han{display:block;font-size:var(--zh-size);line-height:1.68;color:var(--ink-soft)}
body.pali-only zh,body.pali-only han{display:none}

/* 「查」的页面：字号跟「念」一样大（作者 2026-09-08 定）
   理由：手机屏幕本来就小，读者里年长的多，多翻两下没关系，看清楚要紧。
   要小的人自己点底下的「小」，档位会记住。 */
body.read main{max-width:36rem}
body.read main p{line-height:1.9;font-size:var(--zh-size)}
body.read main li{line-height:1.9;font-size:var(--zh-size)}
body.read main table{font-size:calc(var(--zh-size) * .88)}
body.read main blockquote{font-size:calc(var(--zh-size) * .95)}

/* ── 底部工具条 ─────────────────────────── */
.tools{
  height:var(--btn-size);display:flex;align-items:center;gap:.2rem;padding:0 .3rem;
  background:var(--raised);border:var(--btn-edge) solid var(--btn-line);
  border-radius:calc(var(--btn-size) / 2);box-shadow:var(--shadow);
}
.tools button{
  border:none;background:none;color:var(--ink);cursor:pointer;
  white-space:nowrap;padding:.45rem .7rem;border-radius:calc(var(--btn-size) / 2);
  font-family:var(--ui-font);font-size:calc(var(--zh-size) * .82);letter-spacing:.03em;font-weight:600;
}
.tools button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent);font-weight:600}
.tools button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

/* ── 搜索 ───────────────────────────────── */
.searchbox{
  position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;
  background:var(--ground);
}
/* ⚠️ 这一行不能删：上面写了 display:flex，会盖掉 hidden 属性自带的隐藏，
   搜索框就会一直铺满全屏挡住正文。2026-09-08 上线后踩过一次。 */
.searchbox[hidden]{display:none}
.searchbar{
  display:flex;gap:.5rem;align-items:center;padding:.6rem .8rem;
  border-bottom:1px solid var(--rule);background:var(--raised);
}
.searchbar input{
  flex:1;min-width:0;padding:.6rem .8rem;border:1px solid var(--rule);border-radius:.4rem;
  background:var(--ground);color:var(--ink);font-family:var(--pali-font);
  font-size:1.05rem;line-height:1.4;
}
.searchbar input:focus{outline:2px solid var(--accent);outline-offset:1px}
.results{flex:1;overflow-y:auto;padding:.4rem .6rem 3rem;-webkit-overflow-scrolling:touch}
.results .hint{
  padding:1.4rem 1rem;color:var(--ink-faint);font-family:var(--ui-font);
  font-size:.9rem;line-height:1.7;text-align:center;
}
.results a{
  display:block;padding:.85rem .8rem;border-bottom:1px solid var(--rule);
  color:var(--ink);text-decoration:none;
}
.results a:hover{background:var(--accent-soft)}
.results .rz{
  display:block;font-family:var(--ui-font);font-size:.7rem;letter-spacing:.12em;
  color:var(--accent);margin-bottom:.2rem;
}
.results .rt{display:block;font-size:calc(var(--zh-size) * 1.02);font-weight:600;line-height:1.5}
.results .rs{
  display:block;margin-top:.25rem;font-size:calc(var(--zh-size) * .84);
  line-height:1.6;color:var(--ink-soft);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

/* ── 上下篇 ─────────────────────────────── */
.nav{display:flex;gap:.6rem;margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--rule);font-family:var(--ui-font);font-size:.85rem}
.nav a{flex:1;padding:.7rem .9rem;border:1px solid var(--rule);border-radius:.4rem;color:var(--ink-soft);text-decoration:none;line-height:1.4}
.nav a:hover{background:var(--accent-soft);color:var(--ink)}
.nav a small{display:block;color:var(--ink-faint);font-size:.72rem;letter-spacing:.1em;margin-bottom:.2rem}
.nav a.next{text-align:right}

/* ── 首页 ───────────────────────────────── */
/* 2026-09-08：首页改成一句欢迎语，下面 .home-zone 那套分区卡片样式暂时用不上，
   先留着——作者说过首页还要再调，哪天要把清单放回来直接就能用。 */
.intro{margin:0 0 2rem;font-size:var(--zh-size);line-height:1.9;color:var(--ink-soft)}
.home-zone{margin:0 0 1.4rem;padding:1.1rem 1.2rem;background:var(--raised);border:1px solid var(--rule);border-radius:.5rem}
.home-zone h2{margin:0 0 .15rem;border:none;padding:0;font-size:calc(var(--zh-size) * 1.15);letter-spacing:.04em}
.home-zone .meta{font-family:var(--ui-font);font-size:.78rem;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:.8rem}
.home-zone ul{margin:0;padding:0;list-style:none}
.home-zone li{margin:0}
.home-zone a{
  display:block;padding:.5rem .2rem;color:var(--ink);text-decoration:none;
  font-size:var(--zh-size);line-height:1.6;border-bottom:1px solid color-mix(in srgb,var(--rule) 50%,transparent);
}
.home-zone li:last-child a{border-bottom:none}
.home-zone a:hover{color:var(--accent)}
.home-zone li.rest{display:none}
.home-zone.open li.rest{display:list-item}
.home-zone .more{
  display:block;width:100%;margin-top:.6rem;padding:.6rem;
  background:none;border:1px solid var(--rule);border-radius:.4rem;
  color:var(--accent);font-family:var(--ui-font);font-size:calc(var(--zh-size) * .92);
  letter-spacing:.04em;cursor:pointer;
}
.home-zone .more:hover{background:var(--accent-soft)}
.home-zone .more:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ── 首页「最近更新」──────────────────────
   全部历史在「七 其他 › 更新记录」。条目文字是读者看得见的，改之前先给作者过目。 */
.recent{margin-top:2.6rem;padding-top:1.4rem;border-top:1px solid var(--rule)}
.recent h2{margin:0 0 .9rem;border:none;padding:0;font-size:calc(var(--zh-size) * 1.15)}
.recent ul{margin:0;padding-left:1.1rem}
.recent li{margin:.8rem 0;line-height:1.8;font-size:calc(var(--zh-size) * .96);color:var(--ink-soft)}
.recent li strong{color:var(--ink);font-weight:600;margin-right:.15rem}
.recent li code{
  background:var(--accent-soft);color:var(--accent);font-family:var(--ui-font);
  font-size:.78em;letter-spacing:.06em;padding:.1rem .4rem;border-radius:.25rem;margin-right:.35rem;
}
.allupd{
  display:inline-block;margin-top:.7rem;font-family:var(--ui-font);
  font-size:calc(var(--zh-size) * .9);color:var(--accent);text-decoration:none;
}
.allupd:hover{text-decoration:underline}

/* ── 首页「常看的几篇」──────────────────────
   这一块的内容不是构建出来的，是 theme/site.js 在**读者自己的浏览器里**
   从 localStorage 填的（没有服务器、没有 cookie，缘由见 site.js 里的说明）。
   ⚠️ 别给 .seen 写 display——记录为空时 site.js 靠 hidden 属性把整块藏起来，
      写了 display 就会盖掉 hidden，首页上凭空多一个空框（搜索框踩过这个坑，
      见本文件 .searchbox[hidden] 那一行）。下面那条 [hidden] 是保险。*/
.seen{margin-top:2.4rem;padding-top:1.4rem;border-top:1px solid var(--rule)}
.seen[hidden]{display:none}
.seen h2{margin:0 0 .5rem;border:none;padding:0;font-size:calc(var(--zh-size) * 1.15)}
.seen ul{margin:0;padding:0;list-style:none}
.seen li{margin:0}
.seen a{
  display:block;padding:.6rem .2rem;color:var(--ink);text-decoration:none;
  font-size:var(--zh-size);line-height:1.5;
  border-bottom:1px solid color-mix(in srgb,var(--rule) 50%,transparent);
}
.seen li:last-child a{border-bottom:none}
.seen a:hover{color:var(--accent)}
.seen-z{
  display:block;font-family:var(--ui-font);font-size:.74rem;letter-spacing:.1em;
  color:var(--ink-faint);margin-bottom:.15rem;
}

/* 未完成的篇（上游只建了标题、正文是空的，2026-09-08 普查有 89 篇）。
   标出来免得读者点进去扑空。⚠️ 别改成「隐藏」——上游哪天补上内容，
   隐藏了就没人发现它已经能看了。 */
.toc a.todo{color:var(--ink-faint)}
.toc a.todo i{font-style:normal;font-size:.82em;opacity:.8;margin-left:.3em}
.todo-note{
  margin:1.5rem 0;padding:.9rem 1rem;border:1px dashed var(--rule);border-radius:.4rem;
  background:var(--raised);color:var(--ink-faint);
  font-family:var(--ui-font);font-size:calc(var(--zh-size) * .9);line-height:1.75;
}

/* ── 列表缩进 ─────────────────────────────
   浏览器默认 padding-left 是 40px，390px 的手机上等于白扔十分之一宽度，
   嵌套两层就更浪费（作者 2026-09-08 指出）。收到 1.5em，嵌套层再收。 */
main ol,main ul{padding-left:1.5em;margin:.8rem 0}
main li{margin:.4rem 0;line-height:1.85}
main li>ol,main li>ul{padding-left:1.15em;margin:.35rem 0}
main li::marker{color:var(--ink-faint)}

/* ── 巴利与中文：上下排列 / 左右排列 ────────
   作者 2026-09-08：iPad 和电脑上左右并排看着方便。手机上窄，默认仍是上下。
   选择记在浏览器本地。 */
body.side .v,body.side main p:has(> roman){
  flex-direction:row;align-items:baseline;gap:1.1rem;
}
body.side .v roman,body.side roman{flex:1 1 58%;min-width:0}
body.side .v zh,body.side .v han,body.side zh,body.side han{flex:1 1 42%;min-width:0}
@media (max-width:33rem){
  /* 窄屏硬要并排会挤成面条，给中文留个下限 */
  body.side main p:has(> roman){gap:.7rem}
  body.side zh,body.side han{flex:1 1 38%}
}
body.side main{max-width:52rem}
body.side.read main{max-width:52rem}
.bar .layoutbtn .sw{display:none}
body.side .bar .layoutbtn .sw{display:block}
body.side .bar .layoutbtn .st{display:none}

/* 左上角写「目录」两个字，不用三条横线——作者 2026-09-08：
   「目录两个字大家都明白什么意思」。 */
.iconbtn.textbtn{
  width:auto;padding:0 .7rem;font-family:var(--ui-font);
  font-size:calc(var(--zh-size) * .88);letter-spacing:.08em;font-weight:600;
}

/* ── 对念：谁念什么 ───────────────────────
   上游用两列表格排受戒对念，手机上放不下。改成角色标签 + 一行行正文。 */
.say{margin:1.6rem 0}
.who{
  display:inline-block;margin-bottom:.5rem;padding:.2rem .7rem;border-radius:.3rem;
  background:var(--accent-soft);color:var(--accent);
  font-family:var(--ui-font);font-size:calc(var(--zh-size) * 1.0);
  letter-spacing:.1em;font-weight:600;
}
.said{border-left:2px solid var(--rule);padding-left:.95rem}
.said p{margin:0}
.said p + p{border-top:1px solid color-mix(in srgb,var(--rule) 55%,transparent)}
.said p{padding:.7rem 0;display:flex;flex-direction:column;gap:.3rem}
body.side .said p{flex-direction:row;align-items:baseline;gap:1.1rem}

/* ── 页内目录 ─────────────────────────────
   长文档（大清净边别住有 19 个小标题）滚起来找不着北。放在正文最上面，
   默认收起。⚠️ 跟左上角的大目录是两回事，别合并（作者 2026-09-08 定）。 */
.pagetoc{
  margin:0 0 1.8rem;border:1px solid var(--rule);border-radius:.45rem;
  background:var(--raised);overflow:hidden;
}
.pagetoc summary{
  padding:.7rem .95rem;cursor:pointer;list-style:none;
  font-family:var(--ui-font);font-size:calc(var(--zh-size) * .88);
  letter-spacing:.06em;color:var(--accent);font-weight:600;
}
.pagetoc summary::-webkit-details-marker{display:none}
.pagetoc summary::after{content:" ▾";opacity:.6}
.pagetoc[open] summary::after{content:" ▴"}
.pagetoc summary:hover{background:var(--accent-soft)}
.pagetoc nav{border-top:1px solid var(--rule);padding:.3rem 0 .5rem}
.pagetoc a{
  display:block;padding:.5rem .95rem;color:var(--ink-soft);text-decoration:none;
  font-family:var(--ui-font);font-size:calc(var(--zh-size) * .92);line-height:1.5;
}
.pagetoc a:hover{background:var(--accent-soft);color:var(--ink)}
.pagetoc a.p3{padding-left:1.9rem}
.pagetoc a.p4{padding-left:2.9rem;font-size:calc(var(--zh-size) * .86)}
/* 点进来的小节别被吸顶的顶栏盖住 */
main h2,main h3,main h4{scroll-margin-top:4rem}

/* ── 回到顶端 ─────────────────────────────
   长文档一路滚下去，要回开头得刮半天（作者 2026-09-08）。
   滚过一屏才出现，不挡着底下的工具条。 */
.totop{
  width:var(--btn-size);height:var(--btn-size);flex:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--raised);color:var(--accent);
  border:var(--btn-edge) solid var(--btn-line);border-radius:50%;box-shadow:var(--shadow);
  cursor:pointer;
}
.totop:hover{background:var(--accent-soft)}
.totop:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.totop{transition:none}}

/* ── 左下角：本页内容 ─────────────────────
   页面下方想跳到别的小节，不该逼人先滚回顶端（作者 2026-09-08）。
   跟右下角的「回到顶端」对称，同一个样式。 */
.ptocbtn{
  width:var(--btn-size);height:var(--btn-size);flex:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--raised);color:var(--accent);
  border:var(--btn-edge) solid var(--btn-line);border-radius:50%;box-shadow:var(--shadow);
  cursor:pointer;
}
.ptocbtn:hover{background:var(--accent-soft)}
.ptocbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.ptocbtn,.ptoc-sheet{transition:none}}

.ptoc-sheet{
  position:fixed;left:0;right:0;bottom:0;z-index:65;max-height:72vh;
  display:flex;flex-direction:column;
  background:var(--raised);border-top:1px solid var(--rule);
  border-radius:.8rem .8rem 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.18);
}
.ptoc-sheet[hidden]{display:none}
.ptoc-sheet-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:.8rem 1rem .6rem;border-bottom:1px solid var(--rule);
  font-family:var(--ui-font);font-size:calc(var(--zh-size) * .88);
  letter-spacing:.08em;color:var(--accent);font-weight:600;
}
.ptoc-sheet nav{overflow-y:auto;padding:.3rem 0 1.2rem;-webkit-overflow-scrolling:touch}
.ptoc-sheet a{
  display:block;padding:.62rem 1rem;color:var(--ink-soft);text-decoration:none;
  font-family:var(--ui-font);font-size:var(--zh-size);line-height:1.5;
}
.ptoc-sheet a:hover{background:var(--accent-soft);color:var(--ink)}
.ptoc-sheet a.p3{padding-left:2rem}
.ptoc-sheet a.p4{padding-left:3rem;font-size:calc(var(--zh-size) * .9)}

/* ── 底部横条 ─────────────────────────────
   本页目录 · 字号工具 · 回到顶端 三件并成一排，整体居中。
   作者 2026-09-09 定，两条都是他在安卓平板上发现的：
   ① **一直显示**，不要滚过一屏才出现——平板上拉到下面它也不出来；
   ② **不要各自钉在屏幕左右下角**，宽屏上跑得太开不好看。都挨着中间那组。 */
.dockbar{
  position:fixed;left:50%;transform:translateX(-50%);bottom:var(--btn-bottom);z-index:31;
  display:flex;align-items:center;gap:.5rem;
}
.ptocbtn[hidden]{display:none}

/* ── 文字开关：巴 / 巴中 ─────────────────
   原先是「只念巴利」四个字，挤在底部横条里很难受（作者 2026-09-09）。
   改成一个显示当前状态的小按钮，点开选。
   ⚠️ 以后加英文、傣文、缅文，就在 langmenu 里添一行，别把按钮写回长文案。 */
.langmenu{
  position:fixed;left:50%;transform:translateX(-50%);
  bottom:calc(var(--btn-bottom) + var(--btn-size) + .5rem);z-index:32;
  display:flex;flex-direction:column;min-width:11rem;
  background:var(--raised);border:var(--btn-edge) solid var(--btn-line);
  border-radius:.6rem;box-shadow:var(--shadow);overflow:hidden;
}
.langmenu[hidden]{display:none}
.langmenu button{
  display:flex;align-items:baseline;gap:.6rem;
  padding:.7rem .9rem;background:none;border:none;cursor:pointer;
  color:var(--ink);font-family:var(--ui-font);font-size:var(--zh-size);
  text-align:left;border-bottom:1px solid var(--rule);
}
.langmenu button:last-child{border-bottom:none}
.langmenu button small{color:var(--ink-faint);font-size:calc(var(--zh-size) * .78)}
.langmenu button:hover{background:var(--accent-soft)}
.langmenu button[aria-current="true"]{color:var(--accent);font-weight:700;background:var(--accent-soft)}
#tLang{min-width:2.9rem;white-space:nowrap;letter-spacing:.06em}

/* 只看中文 */
body.zh-only roman{display:none}

/* 站群互链（照 093／004 的写法，2026-09-10 作者要求补上）。
   ⛔ 法名站与袈裟站不参与，别顺手加。 */
.sister{
  margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--rule);
  font-family:var(--ui-font);font-size:calc(var(--zh-size) * .86);
  color:var(--ink-faint);text-align:center;letter-spacing:.04em;
}
.sister a{color:var(--ink-soft);text-decoration:none;margin:0 .1rem}
.sister a:hover{color:var(--accent)}

/* ── 目录折叠（作者 2026-09-10 定）─────────────
   「今天受戒要看第四章，要拉很久才到。」默认全收起，点开才展开；
   当前所在的那一区、那一组自动展开。 */
.zonebox > summary,.grpbox > summary{
  cursor:pointer;list-style:none;position:relative;
}
.zonebox > summary::-webkit-details-marker,
.grpbox  > summary::-webkit-details-marker{display:none}
.zonebox > summary::after,.grpbox > summary::after{
  content:"▾";position:absolute;right:1rem;color:var(--ink-faint);
  font-size:.8em;transition:transform .15s ease;
}
.zonebox[open] > summary::after,.grpbox[open] > summary::after{transform:rotate(180deg)}
@media (prefers-reduced-motion:reduce){
  .zonebox > summary::after,.grpbox > summary::after{transition:none}
}
.zonebox > summary:hover,.grpbox > summary:hover{background:var(--accent-soft)}
.zonebox{border-bottom:1px solid var(--rule)}
.zonebox:last-child{border-bottom:none}
/* 分组这一层：标题用普通字重，跟分区区分开 */
.grpbox > summary{padding:.55rem 1rem .55rem 1.9rem}
.grpbox > summary .grp{padding:0;display:inline}
.grpbox > summary > a{display:inline;padding:0}
.grpbox > a,.grpbox > span.grp{padding-left:2.8rem}

/* 顶栏的 GitHub 按钮（作者 2026-09-10 要的）：一个 G 字，
   点一下跳到这一页在 GitHub 上的源文件，读者在那里提意见。
   ⚠️ build.py 里 GITHUB库 留空时整个按钮不渲染，不会留死链接。 */
.ghbtn{text-decoration:none}
.ghbtn svg{display:block}

/* ── 本页二维码（作者 2026-09-10 要的）─────────────────────
   ⛔ 二维码永远深色画在浅底上，深色主题下**也不反色**——
      不少扫码器不认反色的码。所以 .qr-code 自带白底与深色字色，
      不跟 --ink / --ground 走。 */
.qr-mask{
  position:fixed;inset:0;z-index:80;
  display:flex;align-items:center;justify-content:center;padding:1.2rem;
  background:rgba(24,18,12,.58);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
}
.qr-mask[hidden]{display:none}   /* 不能删：display:flex 会盖掉 hidden 属性 */
.qr-card{
  width:100%;max-width:20rem;text-align:center;
  background:var(--raised);border:1px solid var(--rule);border-radius:1rem;
  padding:1.1rem 1.1rem .9rem;box-shadow:0 14px 44px rgba(0,0,0,.32);
}
.qr-title{
  font-family:var(--han-font);font-weight:600;color:var(--ink);
  font-size:calc(var(--zh-size) * 1.02);line-height:1.4;margin-bottom:.85rem;
}
.qr-code{
  background:#fff;color:#191309;border-radius:.65rem;
  width:min(14.5rem,66vw);aspect-ratio:1;margin:0 auto;padding:.5rem;
}
.qr-code svg{display:block;width:100%;height:100%}
.qr-tip{
  margin-top:.8rem;font-family:var(--ui-font);color:var(--accent);
  font-size:calc(var(--zh-size) * .82);letter-spacing:.02em;
}
.qr-url{
  margin-top:.4rem;font-family:var(--ui-font);color:var(--ink-faint);
  font-size:calc(var(--zh-size) * .68);line-height:1.5;word-break:break-all;
}
.qr-close{
  margin-top:.95rem;width:100%;padding:.55rem;cursor:pointer;
  font-family:var(--ui-font);font-size:calc(var(--zh-size) * .86);
  color:var(--ink-soft);background:none;
  border:var(--btn-edge) solid var(--btn-line);border-radius:.6rem;
}
.qr-close:hover{color:var(--accent);border-color:var(--accent)}
