
:root{
  --maxw: 42rem;
  --bg:#f4f1ea; --paper:#fbf9f4; --ink:#2b2622; --ink-soft:#6f675e;
  --line:#e3ddd1; --accent:#8a5a3c; --accent-soft:#b98c6d;
  --shadow: 0 1px 3px rgba(60,45,30,.08), 0 8px 30px rgba(60,45,30,.06);
}
:root[data-theme="dark"]{
  --bg:#16140f; --paper:#1e1b15; --ink:#ddd5c7; --ink-soft:#9a9080;
  --line:#322d24; --accent:#c79a6f; --accent-soft:#8a6a4a;
  --shadow: 0 1px 3px rgba(0,0,0,.4), 0 10px 36px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",Georgia,serif;
  font-size:calc(1rem * var(--fs,1));
  line-height:1.95; letter-spacing:.01em;
}
a{color:var(--accent); text-decoration:none}
a:hover{text-decoration:underline}

.topbar{
  position:sticky; top:0; z-index:10;
  display:flex; align-items:center; justify-content:space-between;
  padding:.6rem clamp(1rem,4vw,2rem);
  background:color-mix(in srgb, var(--bg) 86%, transparent);
  backdrop-filter:saturate(1.4) blur(8px);
  border-bottom:1px solid var(--line);
}
.brand{
  font-weight:700; font-size:1.05rem; color:var(--ink);
  display:flex; align-items:baseline; gap:.5rem; letter-spacing:.04em;
}
.brand span{font-size:.72rem; color:var(--ink-soft); font-weight:400; letter-spacing:.02em}
.tools{display:flex; gap:.4rem}
.tools button{
  font:inherit; font-size:.8rem; cursor:pointer; color:var(--ink-soft);
  background:transparent; border:1px solid var(--line); border-radius:.5rem;
  width:2.2rem; height:2rem; line-height:1; transition:.15s;
}
.tools button:hover{color:var(--accent); border-color:var(--accent-soft)}

.wrap{max-width:var(--maxw); margin:0 auto; padding:clamp(1.2rem,4vw,2.6rem) clamp(1rem,4vw,1.6rem) 5rem}

/* 首页 */
.home .hero{text-align:center; padding:3rem 0 2.4rem; border-bottom:1px solid var(--line); margin-bottom:1.6rem}
.home .hero h1{font-size:clamp(2.4rem,8vw,3.6rem); margin:0; letter-spacing:.08em}
.home .hero .sub{color:var(--ink-soft); margin:.6rem 0 1.6rem}
.cta{
  display:inline-block; padding:.6rem 1.6rem; border-radius:2rem;
  background:var(--accent); color:#fff; font-size:.95rem; letter-spacing:.06em;
}
.cta:hover{text-decoration:none; opacity:.92}
.vol{margin:2rem 0}
.vol>h2{font-size:1.1rem; color:var(--accent); border-left:3px solid var(--accent); padding-left:.6rem; margin:0 0 .8rem}
.chap-list{list-style:none; margin:0; padding:0; columns:2; column-gap:1.4rem}
@media(max-width:560px){.chap-list{columns:1}}
.chap-list li{break-inside:avoid; margin:0}
.chap-list a{
  display:flex; align-items:baseline; gap:.6rem; padding:.5rem .6rem;
  border-radius:.4rem; color:var(--ink);
}
.chap-list a:hover{background:var(--paper); text-decoration:none}
.chap-list .n{color:var(--ink-soft); font-size:.82rem; flex:none; min-width:3.6em}
.chap-list .t{flex:1}
.doc-list{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.6rem}
.doc-list a{
  display:inline-block; padding:.45rem .9rem; border:1px solid var(--line);
  border-radius:2rem; color:var(--ink); font-size:.9rem; background:var(--paper);
}
.doc-list a:hover{border-color:var(--accent-soft); color:var(--accent); text-decoration:none}

/* 阅读页 */
.chap-nav{display:flex; align-items:center; justify-content:space-between; gap:.6rem; font-size:.88rem}
.chap-nav.top{margin-bottom:1.6rem; padding-bottom:.9rem; border-bottom:1px solid var(--line)}
.chap-nav.bottom{margin-top:2.4rem; padding-top:1.2rem; border-top:1px solid var(--line)}
.chap-nav a{color:var(--ink-soft)}
.chap-nav a:hover{color:var(--accent)}
.chap-nav .disabled{color:var(--line)}
.chap-title{text-align:center; font-size:1.7rem; letter-spacing:.06em; margin:1.4rem 0 2.2rem}
.chapter p{margin:0 0 1.15rem; text-indent:2em; text-align:justify}
.chapter em{font-style:normal; color:var(--ink-soft); border-bottom:1px dotted var(--accent-soft); padding-bottom:1px}
.chapter strong{font-weight:700; color:var(--ink)}
.chapter hr{border:0; text-align:center; margin:2rem 0}
.chapter hr::before{content:"⁂"; color:var(--accent-soft); letter-spacing:.4em}
.chapter h1,.chapter h2,.chapter h3,.chapter h4{line-height:1.4; text-indent:0}
.chapter blockquote{
  margin:1.2rem 0; padding:.6rem 1rem; text-indent:0;
  border-left:3px solid var(--accent-soft); background:var(--paper);
  color:var(--ink-soft); border-radius:0 .4rem .4rem 0;
}
.chapter blockquote p{text-indent:0; margin:.4rem 0}
.chapter code{font-family:ui-monospace,Menlo,monospace; font-size:.88em; background:var(--paper); padding:.1em .35em; border-radius:.3em}

/* 资料文档页 */
.doc-page .chapter p{text-indent:0}
.doc-h1{font-size:1.7rem; letter-spacing:.04em; margin:.4rem 0 1.6rem; padding-bottom:.6rem; border-bottom:2px solid var(--accent-soft)}
.doc h2{font-size:1.35rem; border-bottom:1px solid var(--line); padding-bottom:.3rem; margin:2rem 0 1rem}
.doc h3{font-size:1.1rem; color:var(--accent); margin:1.6rem 0 .6rem}
.doc ul,.doc ol{padding-left:1.4rem}
.doc li{margin:.3rem 0}
.doc img{max-width:100%; height:auto; border-radius:.5rem; border:1px solid var(--line); margin:.6rem 0; display:block}
.img-doc{text-align:center}
.img-doc img{margin:0 auto; box-shadow:var(--shadow)}
.badge{
  display:inline-block; margin-left:.5rem; font-size:.66rem; letter-spacing:.06em;
  padding:.05rem .4rem; border-radius:.5rem; vertical-align:middle;
  background:var(--accent-soft); color:#fff; font-family:ui-monospace,Menlo,monospace;
}
.table-wrap{overflow-x:auto; margin:1rem 0}
table{border-collapse:collapse; width:100%; font-size:.9rem}
th,td{border:1px solid var(--line); padding:.45rem .6rem; text-align:left; vertical-align:top}
th{background:var(--paper); color:var(--accent); white-space:nowrap}
tr:nth-child(even) td{background:color-mix(in srgb,var(--paper) 60%,transparent)}

/* 评论区 */
.comments{margin-top:3rem; padding-top:1.5rem; border-top:1px solid var(--line)}
.cm-title{font-size:1.2rem; color:var(--accent); margin:0 0 1rem}
.cm-form{display:flex; flex-direction:column; gap:.6rem; margin-bottom:1.6rem}
.cm-form input,.cm-form textarea{
  font:inherit; color:var(--ink); background:var(--paper);
  border:1px solid var(--line); border-radius:.5rem; padding:.55rem .7rem; resize:vertical;
}
.cm-form input:focus,.cm-form textarea:focus{outline:none; border-color:var(--accent-soft)}
.cm-actions{display:flex; align-items:center; justify-content:flex-end; gap:.8rem}
.cm-hint{font-size:.82rem; color:var(--ink-soft)}
.cm-form button{
  font:inherit; cursor:pointer; color:#fff; background:var(--accent);
  border:0; border-radius:.5rem; padding:.5rem 1.4rem; letter-spacing:.05em;
}
.cm-form button:hover{opacity:.92}
.cm-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1rem}
.cm-empty{color:var(--ink-soft); font-size:.9rem}
.cm-item{border-bottom:1px dashed var(--line); padding-bottom:1rem}
.cm-item:last-child{border-bottom:0}
.cm-meta{display:flex; align-items:baseline; gap:.7rem; font-size:.82rem; color:var(--ink-soft); margin-bottom:.3rem}
.cm-name{font-weight:700; color:var(--ink)}
.cm-ip{font-family:ui-monospace,Menlo,monospace; font-size:.78em; opacity:.7}
.cm-meta time{margin-left:auto}
.cm-body{white-space:pre-wrap; line-height:1.7}
