/* ============================================================
   藏经阁 · 设计系统
   配色取自传统寺院：绀青（殿宇夜色）、金（庄严）、朱（山门）、檀（香木）、素（宣纸）
   ============================================================ */
:root{
  --indigo:#1b2a4a; --indigo-2:#243a5f; --indigo-3:#0f1b31;
  --gold:#b8893c; --gold-2:#d9b45e; --gold-soft:#f0e0bc;
  --cinnabar:#9e3b32; --cinnabar-2:#c0554a;
  --sandal:#6b4a2f; --paper:#f6efe1; --paper-2:#efe5d2; --paper-3:#e6d9bf;
  --ink:#2a2622; --ink-2:#5a5148; --ink-3:#6f6558;
  --jade:#3c6555;
  --bg:var(--paper); --fg:var(--ink); --fg-2:var(--ink-2); --fg-3:var(--ink-3);
  --em:var(--indigo); --ac:var(--cinnabar);
  --line:rgba(107,74,47,.20); --line-2:rgba(107,74,47,.10);
  --panel:#fffaf0; --panel-2:#fbf6ea;
  --shadow:0 2px 10px rgba(27,42,74,.08), 0 12px 34px rgba(27,42,74,.07);
  --serif:"Songti SC","宋体","STSong","Noto Serif CJK SC","Source Han Serif SC","SimSun",serif;
  --sans:"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Noto Sans CJK SC",sans-serif;
  --r:10px; --r-lg:16px;
  --top-h:56px; --tab-h:58px;
  --maxw:1180px;
}
html[data-theme="night"]{
  /* --fg-3 需立於 panel-2 (#201d18) 上仍可讀，故較日間調亮 */
  --bg:#12110e; --fg:#e7ddcb; --fg-2:#bdb2a0; --fg-3:#948a7a;
  --em:var(--gold-2); --ac:#d9705a;
  --panel:#191814; --panel-2:#201d18; --paper:#191814; --paper-2:#201d18; --paper-3:#2a2620;
  --line:rgba(217,180,94,.20); --line-2:rgba(217,180,94,.10);
  --ink:#e7ddcb; --ink-2:#bdb2a0; --ink-3:#948a7a;
  --jade:#6aa58d;
  --indigo:#0d1524; --indigo-2:#16233a; --gold:#d9b45e; --gold-soft:#3a3020;
  --shadow:0 2px 12px rgba(0,0,0,.5);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:var(--serif); font-size:16px; line-height:1.8;
  padding-top:var(--top-h); padding-bottom:calc(var(--tab-h) + 10px);
  background-image:
    radial-gradient(circle at 12% 8%, rgba(184,137,60,.06), transparent 42%),
    radial-gradient(circle at 88% 4%, rgba(27,42,74,.06), transparent 40%);
  background-attachment:fixed;
}
@media (min-width:900px){ body{padding-bottom:24px} }
a{color:var(--indigo-2); text-decoration:none}
html[data-theme="night"] a{color:var(--gold-2)}
a:hover{color:var(--cinnabar)}
html[data-theme="night"] a:hover{color:var(--gold)}
h1,h2,h3,h4{font-family:var(--serif); font-weight:600; line-height:1.35; margin:0 0 .5em; color:var(--indigo)}
html[data-theme="night"] h1,html[data-theme="night"] h2,html[data-theme="night"] h3,html[data-theme="night"] h4{color:var(--gold-2)}
h1{font-size:26px} h2{font-size:21px} h3{font-size:18px} h4{font-size:16px}
p{margin:0 0 1em}
img{max-width:100%; display:block}
::selection{background:var(--gold-soft); color:var(--indigo)}
html[data-theme="night"] ::selection{background:rgba(217,180,94,.30); color:var(--fg)}

/* ---------- 顶部山门 ---------- */
.zj-top{
  position:fixed; top:0; left:0; right:0; height:var(--top-h); z-index:60;
  display:flex; align-items:center; gap:10px; padding:0 14px;
  background:linear-gradient(180deg,var(--indigo) 0%,var(--indigo-2) 100%);
  color:#f3e9d6; box-shadow:0 1px 0 rgba(217,180,94,.5), 0 6px 18px rgba(15,27,49,.28);
}
html[data-theme="night"] .zj-top{background:linear-gradient(180deg,#0b1322,#16233a)}
.zj-top .brand{display:flex; align-items:center; gap:8px; font-size:19px; letter-spacing:.14em; white-space:nowrap}
.zj-top .brand svg{width:24px; height:24px; flex:none}
.zj-top .brand b{font-weight:600; color:var(--gold-2)}
.zj-top nav{display:flex; gap:2px; margin-left:auto; overflow-x:auto; scrollbar-width:none}
.zj-top nav::-webkit-scrollbar{display:none}
.zj-top nav a{
  color:#e3d8c3; font-size:14.5px; padding:7px 10px; border-radius:8px; white-space:nowrap;
  letter-spacing:.04em;
}
.zj-top nav a:hover{background:rgba(217,180,94,.16); color:#fff}
.zj-top nav a.on{background:rgba(217,180,94,.26); color:var(--gold-2); font-weight:600}
.zj-tools{display:flex; gap:6px; align-items:center; flex:none}
.zj-tools button{
  font-family:var(--serif); font-size:13px; color:var(--gold-2); cursor:pointer;
  background:rgba(255,255,255,.08); border:1px solid rgba(217,180,94,.45);
  padding:5px 9px; border-radius:20px; line-height:1.2; min-width:34px;
}
.zj-tools button:hover{background:rgba(217,180,94,.22)}
@media (max-width:899px){ .zj-top nav{display:none} .zj-top .brand{font-size:17px} }

/* ---------- 移动端底部经签 ---------- */
.zj-tabbar{
  position:fixed; left:0; right:0; bottom:0; height:var(--tab-h); z-index:60;
  display:flex; background:var(--panel); border-top:1px solid var(--line);
  box-shadow:0 -4px 16px rgba(27,42,74,.10);
  padding-bottom:env(safe-area-inset-bottom);
}
.zj-tabbar a{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
  font-size:11.5px; color:var(--fg-3); letter-spacing:.04em;
}
.zj-tabbar a span{font-size:17px; line-height:1}
.zj-tabbar a.on{color:var(--cinnabar)}
.zj-tabbar a.on span{transform:translateY(-1px)}
html[data-theme="night"] .zj-tabbar a.on{color:var(--gold)}
@media (min-width:900px){ .zj-tabbar{display:none} }

/* ---------- 版心 ---------- */
.wrap{max-width:var(--maxw); margin:0 auto; padding:18px 14px 40px}
.wrap.wide{max-width:1420px}
.page-head{margin:6px 0 20px; padding-bottom:12px; border-bottom:1px solid var(--line); position:relative}
.page-head h1{display:flex; align-items:center; gap:9px}
.page-head .sub{color:var(--fg-2); font-size:14.5px; margin-top:4px; max-width:76ch}
.page-head::after{
  content:""; position:absolute; left:0; bottom:-1px; width:64px; height:3px;
  background:linear-gradient(90deg,var(--gold),transparent);
}
.kicker{font-size:12.5px; letter-spacing:.28em; color:var(--cinnabar); text-transform:uppercase}
html[data-theme="night"] .kicker{color:var(--gold)}

/* ---------- 卡片 / 栅格 ---------- */
.grid{display:grid; gap:14px}
.g2{grid-template-columns:1fr} .g3{grid-template-columns:1fr} .g4{grid-template-columns:repeat(2,1fr)}
@media (min-width:700px){ .g2{grid-template-columns:1fr 1fr} .g3{grid-template-columns:1fr 1fr} .g4{grid-template-columns:repeat(3,1fr)} }
@media (min-width:1000px){ .g3{grid-template-columns:repeat(3,1fr)} .side{grid-template-columns:minmax(0,1fr) 320px} }
.side{display:grid; gap:18px; grid-template-columns:1fr}
/* 1fr 之网格項 min-width 默認爲 auto，寬內容（豎排、表格、長串）會撐破頁面 */
.g2>*,.g3>*,.g4>*,.side>*,.reader>*{min-width:0}
.card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:16px 17px; box-shadow:var(--shadow); position:relative; overflow:hidden;
}
.card.tight{padding:12px 13px}
.card.flat{box-shadow:none; background:var(--panel-2)}
.card.acc::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg,var(--gold),var(--cinnabar));
}
.card h3,.card h4{margin-bottom:.35em}
.card .meta{font-size:12.8px; color:var(--fg-3); display:flex; flex-wrap:wrap; gap:4px 10px; margin-bottom:8px}
.card p:last-child{margin-bottom:0}
.panel-title{display:flex; align-items:baseline; gap:8px; margin:0 0 10px; font-size:15px; color:var(--sandal); letter-spacing:.08em}
html[data-theme="night"] .panel-title{color:var(--gold-2)}
.panel-title::before{content:"❖"; color:var(--gold); font-size:12px}

/* ---------- 标签 / 按钮 ---------- */
.chip{
  display:inline-block; font-size:12.3px; line-height:1.5; padding:2px 9px; border-radius:20px;
  background:rgba(184,137,60,.12); color:var(--sandal); border:1px solid rgba(184,137,60,.3);
  margin:0 4px 4px 0; white-space:normal; max-width:100%; overflow-wrap:anywhere;
}
html[data-theme="night"] .chip{color:var(--gold-2); background:rgba(184,137,60,.16)}
.chip.i{background:rgba(27,42,74,.08); color:var(--indigo-2); border-color:rgba(27,42,74,.22)}
html[data-theme="night"] .chip.i{color:#9fb4d6; background:rgba(120,150,200,.14); border-color:rgba(150,180,220,.28)}
.chip.r{background:rgba(158,59,50,.10); color:var(--cinnabar); border-color:rgba(158,59,50,.28)}
.chip.j{background:rgba(75,124,107,.12); color:var(--jade); border-color:rgba(75,124,107,.3)}
.chip.click{cursor:pointer}
.chip.click:hover,.chip.on{background:var(--indigo); color:var(--gold-soft); border-color:var(--indigo)}
html[data-theme="night"] .chip.click:hover,html[data-theme="night"] .chip.on{background:var(--gold); color:#1a1610}
.btn{
  display:inline-flex; align-items:center; gap:6px; cursor:pointer; font-family:var(--serif);
  font-size:14.5px; padding:7px 16px; border-radius:24px; border:1px solid var(--indigo);
  background:var(--indigo); color:var(--gold-soft); letter-spacing:.06em; transition:.18s;
}
.btn:hover{background:var(--indigo-2); transform:translateY(-1px)}
.btn.ghost{background:transparent; color:var(--indigo)}
.btn.ghost:hover{background:rgba(27,42,74,.07); color:var(--indigo)}
html[data-theme="night"] .btn{background:var(--gold); border-color:var(--gold); color:#171308}
html[data-theme="night"] .btn.ghost{background:transparent; color:var(--gold-2)}
.btn.sm{font-size:13px; padding:4px 11px}
.btn.z{background:var(--cinnabar); border-color:var(--cinnabar)}
.row{display:flex; flex-wrap:wrap; gap:8px; align-items:center}
.end{margin-left:auto}
.hr{height:1px; background:var(--line); margin:16px 0; border:0}
.hr.lotus{height:22px; background:none; text-align:center; color:var(--sandal); opacity:.75; font-size:13px; line-height:22px; position:relative}
html[data-theme="night"] .hr.lotus{color:var(--gold)}
.hr.lotus::before,.hr.lotus::after{content:""; position:absolute; top:11px; height:1px; background:var(--line); width:38%}
.hr.lotus::before{left:4%} .hr.lotus::after{right:4%}

/* ---------- 表单 ---------- */
.field{display:flex; align-items:center; gap:8px; background:var(--panel); border:1px solid var(--line);
  border-radius:26px; padding:6px 14px; min-width:0}
.field input{border:0; background:transparent; font-family:var(--serif); font-size:15.5px; color:var(--fg);
  flex:1; min-width:60px; outline:none}
.field svg{width:16px; height:16px; color:var(--fg-3); flex:none}
select,textarea{font-family:var(--serif); font-size:14.5px; color:var(--fg); background:var(--panel);
  border:1px solid var(--line); border-radius:8px; padding:6px 9px}
textarea{width:100%; resize:vertical; line-height:1.7}
.seg{display:inline-flex; border:1px solid var(--line); border-radius:22px; overflow:hidden; background:var(--panel)}
.seg button{
  border:0; background:transparent; font-family:var(--serif); font-size:13.8px; color:var(--fg-2);
  padding:6px 13px; cursor:pointer; letter-spacing:.04em;
}
.seg button.on{background:var(--indigo); color:var(--gold-soft)}
html[data-theme="night"] .seg button.on{background:var(--gold); color:#171308}

/* ---------- 首页 · 山门 ---------- */
.hero{
  position:relative; overflow:hidden; border-radius:var(--r-lg); padding:30px 22px 26px;
  background:linear-gradient(135deg,var(--indigo) 0%,var(--indigo-2) 58%,#365077 100%);
  color:#f4ecd9; box-shadow:var(--shadow); margin-bottom:18px;
}
html[data-theme="night"] .hero{background:linear-gradient(135deg,#0b1424,#1b2a4a 60%,#2f4468)}
.hero::after{
  content:""; position:absolute; inset:auto -40px -70px auto; width:300px; height:300px; opacity:.14;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><g fill='none' stroke='%23d9b45e' stroke-width='1.6'><circle cx='50' cy='50' r='9'/><g><path d='M50 41C56 20 68 16 74 12c-2 18-10 26-24 29'/><path d='M50 41C44 20 32 16 26 12c2 18 10 26 24 29'/><path d='M59 50c21-6 25-18 29-24-18 2-26 10-29 24'/><path d='M41 50c-21-6-25-18-29-24 18 2 26 10 29 24'/><path d='M50 59c6 21 18 25 24 29-2-18-10-26-24-29'/><path d='M50 59c-6 21-18 25-24 29 2-18 10-26 24-29'/><path d='M59 50c21 6 25 18 29 24-18-2-26-10-29-24'/><path d='M41 50c-21 6-25 18-29 24 18-2 26-10 29-24'/></g></g></svg>") no-repeat center/contain;
}
.hero .kicker{color:var(--gold-2)}
.hero h1{color:#fdf4df; font-size:32px; letter-spacing:.06em; margin:6px 0 10px}
.hero p{max-width:60ch; color:#e6dcc6; font-size:15.5px; position:relative; z-index:1}
.hero .stats{display:flex; flex-wrap:wrap; gap:10px 26px; margin:16px 0 18px; position:relative; z-index:1}
.hero .stats i{font-style:normal; display:block}
.hero .stats b{display:block; font-size:22px; color:var(--gold-2); line-height:1.2; font-weight:600}
.hero .stats span{font-size:12.5px; color:#cfc4ae; letter-spacing:.1em}
.hero .field{max-width:520px; position:relative; z-index:1}
.hero .field input{color:#26324b}
.hero .go{position:relative; z-index:1; margin-top:12px; display:flex; gap:10px; flex-wrap:wrap}
.hero .go .btn{background:var(--gold); border-color:var(--gold); color:#1d1809}
.hero .go .btn.ghost{background:transparent; color:#f0e3c6; border-color:rgba(240,227,198,.6)}

.quote-of-day{font-size:19px; line-height:2; color:var(--indigo); text-align:center; padding:6px 0 2px; letter-spacing:.03em}
html[data-theme="night"] .quote-of-day{color:var(--gold-2)}
.quote-of-day .qsrc{display:block; font-size:13px; color:var(--fg-3); letter-spacing:.1em; margin-top:6px}

/* ---------- 条目列表 ---------- */
.list{display:grid; gap:10px}
.item{border:1px solid var(--line); border-radius:var(--r); background:var(--panel); padding:12px 14px; cursor:pointer; transition:.16s}
.item:hover{border-color:var(--gold); transform:translateY(-1px); box-shadow:var(--shadow)}
.item h4{margin:0 0 3px; font-size:16.5px}
.item .sub{font-size:13px; color:var(--fg-3); margin-bottom:5px}
.item p{font-size:14.6px; color:var(--fg-2); margin:0}
.item.open{cursor:default}
.item.hit{border-color:var(--gold); background:var(--panel-2); box-shadow:var(--shadow)}
.item .toggle{font-size:12.5px; color:var(--gold); flex:none}
.num{font-size:12.5px; color:var(--fg-3); font-variant-numeric:tabular-nums}

/* ---------- 摺疊（史脈·法流十段） ---------- */
.era{border:1px solid var(--line); border-radius:var(--r); background:var(--panel); overflow:hidden; transition:.16s}
.era:hover{border-color:var(--gold)}
.era.open{border-color:var(--gold); background:var(--panel-2); box-shadow:var(--shadow)}
.era-h{display:flex; align-items:baseline; gap:9px; width:100%; padding:12px 14px; background:none; border:0; color:inherit; font:inherit; text-align:left; cursor:pointer}
.era-h:focus-visible{outline:2px solid var(--ac); outline-offset:-2px; border-radius:var(--r)}
.era-h .no{flex:none; width:1.4em; font-size:13px; font-weight:600; color:var(--sandal)}
.era-h .nm{font-size:16.5px; font-weight:600; color:var(--em)}
.era-h .yr{margin-left:auto; font-size:13px; color:var(--fg-3); white-space:nowrap; font-variant-numeric:tabular-nums}
.era-h .car{flex:none; font-size:12px; color:var(--sandal); transition:transform .2s}
/* 日間 --gold 過淺（與 panel 僅 2.9:1），故段號與箭頭改檀色，夜間還之為金 */
html[data-theme="night"] .era-h .no,html[data-theme="night"] .era-h .car{color:var(--gold)}
.era.open .car{transform:rotate(180deg)}
.era-c{display:none; padding:2px 14px 15px; border-top:1px solid var(--line)}
.era.open .era-c{display:block; animation:eraOpen .24s ease}
@keyframes eraOpen{from{opacity:0; transform:translateY(-5px)}to{opacity:1; transform:none}}
@media (max-width:560px){
  .era-h{flex-wrap:wrap; row-gap:2px}
  .era-h .nm{flex:1 1 auto; order:1}
  .era-h .car{order:2}
  .era-h .yr{order:3; flex:1 1 100%; margin-left:calc(1.4em + 9px); white-space:normal}
}

/* ---------- 年表 ---------- */
.tl{position:relative; margin-left:8px; padding-left:22px}
.tl::before{content:""; position:absolute; left:4px; top:4px; bottom:4px; width:2px;
  background:linear-gradient(180deg,var(--gold),var(--cinnabar),var(--indigo))}
.tl-item{position:relative; padding:0 0 16px}
.tl-item::before{content:""; position:absolute; left:-22px; top:8px; width:10px; height:10px; border-radius:50%;
  background:var(--panel); border:2px solid var(--gold)}
.tl-item.hit::before{background:var(--cinnabar); border-color:var(--cinnabar)}
.tl-item .when{font-size:12.8px; color:var(--cinnabar); letter-spacing:.08em}
html[data-theme="night"] .tl-item .when{color:var(--gold)}
.tl-item h4{margin:1px 0 3px; font-size:16px}
.tl-item p{margin:0; font-size:14.4px; color:var(--fg-2)}

/* ---------- 表格 ---------- */
table.zt{width:100%; border-collapse:collapse; font-size:14.4px}
table.zt th,table.zt td{border-bottom:1px solid var(--line); padding:8px 9px; text-align:left; vertical-align:top}
/* 窄屏下讓書目表橫向捲動，勿把經名擠成一字一行 */
.scroll-x table.zt{min-width:660px}
.scroll-x table.zt th,.scroll-x table.zt td{white-space:nowrap}
.scroll-x table.zt td.t{white-space:normal; min-width:150px}
/* 藏目書目表：窄屏把卷／朝代／藏別併入經名副行，不必橫向拖動 */
.sub-line{display:none; font-size:12.4px; color:var(--fg-2); margin-top:3px}
@media (max-width:719px){
  .scroll-x table.btable{min-width:0; font-size:13.6px}
  .scroll-x table.btable th,.scroll-x table.btable td{white-space:normal; padding:9px 7px}
  .scroll-x table.btable td.t{min-width:0}
  .scroll-x table.btable .hide-sm{display:none}
  .scroll-x table.btable .sub-line{display:block}
}
table.zt th{color:var(--sandal); font-weight:600; background:var(--panel-2); white-space:nowrap; letter-spacing:.04em}
html[data-theme="night"] table.zt th{color:var(--gold-2)}
table.zt tr:hover td{background:var(--panel-2)}
table.zt td.n{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; color:var(--fg-2)}
.scroll-x{overflow:auto; -webkit-overflow-scrolling:touch}

/* ---------- 阅读台 ---------- */
.reader{display:grid; gap:16px; grid-template-columns:minmax(0,1fr)}
@media (min-width:1000px){ .reader{grid-template-columns:262px minmax(0,1fr)} }
.rail{position:sticky; top:calc(var(--top-h) + 12px); align-self:start; max-height:calc(100vh - var(--top-h) - 26px); overflow:auto;
  background:var(--panel); border:1px solid var(--line); border-radius:var(--r-lg); padding:12px}
.rail .toc a{display:block; font-size:13.6px; color:var(--fg-2); padding:5px 8px; border-radius:6px; border-left:2px solid transparent; line-height:1.5}
.rail .toc a:hover{background:var(--panel-2); color:var(--em)}
.rail .toc a.on{border-left-color:var(--gold); background:var(--panel-2); color:var(--em); font-weight:600}
.rail .toc-part{font-size:12.2px; color:var(--fg-3); letter-spacing:.06em; padding:9px 4px 3px; margin-top:7px; border-top:1px solid var(--line-2)}
html[data-theme="night"] .rail .toc a.on{color:var(--gold-2)}
@media (max-width:999px){ .rail{position:static; max-height:none} }

.text{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--r-lg); padding:20px 20px 26px;
  box-shadow:var(--shadow);
}
.text .sechead{font-size:15px; color:var(--ac); letter-spacing:.14em; margin:22px 0 10px; padding-bottom:5px; border-bottom:1px dashed var(--line);
  display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px}
.text .sechead:first-child{margin-top:0}
.text .sechead .btn{margin-left:auto}
.text .snip{font-size:14.6px; line-height:1.9; color:var(--fg-2); margin:6px 0 0; padding:3px 10px; letter-spacing:.01em;
  border-left:2px solid var(--gold-soft); background:var(--panel-2); border-radius:0 6px 6px 0}
.text .body{font-size:18.5px; line-height:2.1; letter-spacing:.02em; text-align:justify; word-break:break-word}
html[data-theme="night"] .text .body{color:#ded3bf}
.text .body .kn{color:var(--sandal); font-weight:600}
.text .body em{font-style:normal; background:linear-gradient(transparent 62%,var(--gold-soft) 62%); padding:0 1px}
.text .note{font-size:14px; color:var(--fg-3); background:var(--panel-2); border-left:3px solid var(--gold); padding:9px 12px; border-radius:0 8px 8px 0; margin:0 0 14px; line-height:1.85}
.vertical .text .body{
  /* vertical-rl 之下 width 屬 block 軸，內容會自行撑開；須釘住 100% 令其成橫向捲動區 */
  writing-mode:vertical-rl; text-orientation:upright; height:74vh; width:100%; max-width:100%;
  overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch;
  font-size:20px; line-height:2.3; padding:12px 8px; letter-spacing:.08em;
}
.vertical .text .body p{margin:0 0 18px}
.vertical .rtools::after{content:"· 向左拖動以續讀"; font-size:12.4px; color:var(--fg-3); letter-spacing:.05em}
.rtools{display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:12px}
.sizev{font-size:12.8px; color:var(--fg-3); min-width:38px; text-align:center}

/* ---------- 辞典 / 术语卡 ---------- */
.term{border-bottom:1px solid var(--line-2); padding:11px 0}
.term:last-child{border-bottom:0}
.term .t{font-size:17.5px; color:var(--indigo); font-weight:600}
html[data-theme="night"] .term .t{color:var(--gold-2)}
.term .py{font-size:12.6px; color:var(--fg-3); font-family:var(--sans); letter-spacing:.04em; margin-left:6px}
.term .def{font-size:14.8px; color:var(--fg-2); margin-top:3px}
dl.qa{margin:0}
dl.qa dt{font-size:15.5px; color:var(--indigo); font-weight:600; margin-top:14px}
dl.qa dt::before{content:"問 "; color:var(--ac)}
html[data-theme="night"] dl.qa dt{color:var(--gold-2)}
dl.qa dd{margin:4px 0 0; font-size:14.8px; color:var(--fg-2); padding-left:0}
dl.qa dd::before{content:"答 "; color:var(--jade); font-size:13px; letter-spacing:.1em}

/* ---------- 引文块 ---------- */
blockquote.q{
  margin:10px 0; padding:11px 15px; background:var(--panel-2); border-left:3px solid var(--cinnabar);
  border-radius:0 10px 10px 0; font-size:16.5px; line-height:1.95; color:var(--indigo);
}
html[data-theme="night"] blockquote.q{color:#e0d5bd; border-left-color:var(--gold)}
blockquote.q .src{display:block; font-size:12.8px; color:var(--fg-3); margin-top:5px; letter-spacing:.06em}

/* ---------- 画廊 ---------- */
.gal{display:grid; gap:12px; grid-template-columns:repeat(2,1fr)}
@media (min-width:760px){ .gal{grid-template-columns:repeat(3,1fr)} }
@media (min-width:1120px){ .gal{grid-template-columns:repeat(4,1fr)} }
.gal figure{margin:0; background:var(--panel); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; cursor:pointer; transition:.18s}
.gal figure:hover{transform:translateY(-2px); box-shadow:var(--shadow); border-color:var(--gold)}
.gal .ph{aspect-ratio:4/3; background:var(--paper-3); position:relative; overflow:hidden}
.gal .ph img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease}
.gal figure:hover .ph img{transform:scale(1.045)}
.gal figcaption{padding:8px 10px 9px}
.gal figcaption b{display:block; font-size:13.8px; font-weight:600; color:var(--indigo); line-height:1.4}
html[data-theme="night"] .gal figcaption b{color:var(--gold-2)}
.gal figcaption span{display:block; font-size:11.8px; color:var(--fg-3); margin-top:2px; line-height:1.5}
.lightbox{position:fixed; inset:0; background:rgba(12,16,26,.93); z-index:90; display:flex; flex-direction:column;
  align-items:center; justify-content:center; padding:18px; gap:12px}
.lightbox img{max-width:94vw; max-height:70vh; border-radius:6px; box-shadow:0 18px 60px rgba(0,0,0,.6)}
.lightbox .cap{color:#e9dfc9; font-size:14px; text-align:center; max-width:70ch; line-height:1.75}
.lightbox .cap small{display:block; color:#a89d88; font-size:11.8px; margin-top:5px; font-family:var(--sans); word-break:break-all}
.lightbox .x{position:absolute; top:14px; right:16px; font-size:26px; color:#e9dfc9; background:none; border:0; cursor:pointer}

/* ---------- 行持页 ---------- */
.counter{ text-align:center; padding:18px 14px }
.counter .big{font-size:60px; line-height:1; color:var(--cinnabar); font-variant-numeric:tabular-nums; letter-spacing:.02em}
html[data-theme="night"] .counter .big{color:var(--gold-2)}
.counter .mall{font-size:13px; color:var(--fg-3); letter-spacing:.16em; margin-top:4px}
.counter .tap{
  margin:14px auto 6px; width:118px; height:118px; border-radius:50%; cursor:pointer;
  border:2px solid var(--gold); background:radial-gradient(circle at 34% 30%,#fdf4dd,var(--gold-soft) 70%);
  color:var(--cinnabar); font-family:var(--serif); font-size:23px; letter-spacing:.1em; line-height:1.3;
  box-shadow:0 6px 18px rgba(184,137,60,.28); transition:transform .12s;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
}
html[data-theme="night"] .counter .tap{background:radial-gradient(circle at 34% 30%,#3a3020,#241f14);color:var(--gold-2)}
.counter .tap:active{transform:scale(.94)}
.beat{display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--line); margin:0 3px}
.beat.on{background:var(--cinnabar); box-shadow:0 0 0 3px rgba(158,59,50,.18)}
.copybook{background:var(--panel-2); border:1px solid var(--line); border-radius:var(--r); touch-action:none; display:block; width:100%}
.timer-ring{position:relative; width:150px; height:150px; margin:0 auto}
.timer-ring svg{transform:rotate(-90deg)}
.timer-ring .tv{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:25px; color:var(--indigo)}
html[data-theme="night"] .timer-ring .tv{color:var(--gold-2)}
.timer-ring .tv small{font-size:11.8px; color:var(--fg-3); letter-spacing:.14em}

/* ---------- 弹层 ---------- */
.mask{position:fixed; inset:0; background:rgba(15,20,32,.5); z-index:80; display:flex; align-items:center; justify-content:center; padding:16px}
.modal{background:var(--panel); border:1px solid var(--line); border-radius:var(--r-lg); padding:18px 19px; max-width:640px; width:100%; max-height:84vh; overflow:auto; box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modal h3{margin-top:0}
.modal .x{position:sticky; float:right; top:0; border:0; background:none; font-size:22px; cursor:pointer; color:var(--fg-3)}

/* ---------- 其他 ---------- */
.empty{padding:26px 14px; text-align:center; color:var(--fg-3); font-size:14.5px}
.loading{padding:22px; text-align:center; color:var(--fg-3)}
.loading::after{content:"☸ 正在展开经卷…"; animation:pulse 1.4s infinite}
@keyframes pulse{0%,100%{opacity:.35}50%{opacity:1}}
.tag-row{margin:8px 0}
.badge{display:inline-block; min-width:1.9em; text-align:center; font-size:12px; padding:1px 6px; border-radius:5px; background:var(--paper-3); color:var(--sandal); margin-right:6px; letter-spacing:.04em}
html[data-theme="night"] .badge{background:#2a2620; color:var(--gold-2)}
.tabset{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px}
.tabset button{border:1px solid var(--line); background:var(--panel); color:var(--fg-2); font-family:var(--serif); font-size:14.2px; padding:6px 14px; border-radius:22px; cursor:pointer}
.tabset button.on{background:var(--indigo); color:var(--gold-soft); border-color:var(--indigo)}
html[data-theme="night"] .tabset button.on{background:var(--gold); color:#171308}
.kv{display:grid; grid-template-columns:auto 1fr; gap:4px 12px; font-size:14.2px}
.kv dt{color:var(--fg-3); white-space:nowrap}
.kv dd{margin:0; color:var(--fg)}
.foot{max-width:var(--maxw); margin:36px auto 0; padding:18px 14px 30px; border-top:1px solid var(--line); color:var(--fg-3); font-size:12.8px; line-height:1.9; text-align:center}
.foot a{color:var(--fg-2)}
[hidden]{display:none !important}
.fade{animation:fade .35s ease}
@keyframes fade{from{opacity:0; transform:translateY(6px)}to{opacity:1; transform:none}}
.search-hit{background:rgba(217,180,94,.45); border-radius:2px; padding:0 1px}
html[data-theme="night"] .search-hit{background:rgba(217,180,94,.82); color:#201b12; font-weight:600}
.jump{font-size:13px; color:var(--fg-3)}
.jump b{color:var(--ac); font-weight:600}
.muted{color:var(--fg-3); font-size:13.4px}
.small{font-size:13.4px}
.nowrap{white-space:nowrap}
.center{text-align:center}
.mt{margin-top:14px} .mb{margin-bottom:14px}

@media (max-width:699px){
  h1{font-size:22px} .hero h1{font-size:25px} .hero{padding:24px 16px 22px}
  .text{padding:16px 14px 20px} .text .body{font-size:17px; line-height:2.05}
  .wrap{padding:14px 11px 34px}
}
@media print{
  .zj-top,.zj-tabbar,.rail,.rtools,.hero .go{display:none !important}
  body{padding:0; background:#fff} .text{border:0; box-shadow:none}
}
