/* ===========================================================
   生成器补充样式 + 视觉定稿「黑白水墨」（M2 暖调 → M3 纯黑白）
   本文件在 demo 的 style.css 之后加载，同名选择器会覆盖它。
   分层：① 纸墨基色 ② 页头/页脚 ③ 列表·楼层·用户页 ④ 生成内容 ⑤ 弹窗 ⑥ 响应式
   =========================================================== */

/* ---------- ① 纸墨基色与排版 ---------- */
:root{
  --ink:#1e1a14;          /* 焦墨：标题 */
  --ink-2:#3a332a;        /* 正文墨 */
  --ink-3:#6b6152;        /* 次要文字 */
  --ink-4:#968a75;        /* 弱化文字 */
  --paper:#e9dfca;        /* 旧纸底（暖） */
  --paper-2:#f4ecde;      /* 卡片纸 */
  --paper-3:#ddd1b8;      /* 深一点的纸色 */
  --line:#c9bca2;
  --line-soft:#dcd0b8;
  --seal:#1e1a14;         /* 墨色强调 */
  --seal-d:#000000;
  --seal-soft:#e4d8c1;
  --gold:#8a7a5e;
  /* 兼容 style.css 里以 --blue 为主色的旧规则 */
  --blue:var(--seal);
  --blue-dark:var(--seal-d);
  --blue-soft:var(--seal-soft);
  --bg:var(--paper);
  --card:var(--paper-2);
  --txt:var(--ink-2);
  --txt-2:var(--ink-3);
  --txt-3:var(--ink-4);
  --warn:#5a5a5a;
  --radius:2px;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC",STSong,"SimSun",serif;
  --sans:"Microsoft YaHei","PingFang SC","Hiragino Sans GB","Segoe UI",system-ui,sans-serif;
}

body{
  font-family:var(--sans);
  font-size:13.5px;
  line-height:1.85;
  color:var(--ink-2);
  background-color:var(--paper);
  background-image:
    url("ink-fiber.svg"),
    var(--ink-wash, url("ink-wash.svg")),
    repeating-linear-gradient(0deg, rgba(90,70,40,.02) 0 1px, transparent 1px 6px);
  background-size:140px 140px, cover, auto;
  background-repeat:repeat, no-repeat, repeat;
  background-attachment:fixed, fixed, fixed;
  -webkit-font-smoothing:antialiased;
}
body.modal-open{overflow:hidden}

h1,h2,h3{font-family:var(--serif);font-weight:700}
a{color:var(--ink-2)}
a:hover{color:var(--seal)}
.muted-note{margin:18px 0 6px;font-size:12px;color:var(--ink-4);text-align:center}

/* ---------- ② 页头 ---------- */
.sitehead{background:linear-gradient(180deg,rgba(247,240,226,.94),rgba(232,221,200,.9));border-bottom:1px solid var(--line);position:relative}
.sitehead::after{
  content:"";position:absolute;left:0;right:0;bottom:-6px;height:12px;
  background-image:var(--ink-line, url("ink-line.svg"));
  background-position:center;background-size:100% 100%;background-repeat:no-repeat;
  opacity:.9;pointer-events:none;
}
.sitehead .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 0 12px}
.logo{display:block;flex:none;line-height:0}
.logo img{display:block;height:56px;width:auto}
/* 想让 LOGO 跟黑白主题统一成灰度：加 filter:grayscale(1) */
.logo:hover img{opacity:.9}
.head-right{display:flex;align-items:center;gap:14px}
/* 页头返回主站（yfzz.net）的小链接 */
.site-back{display:inline-flex;align-items:center;gap:3px;font-size:12px;color:var(--ink-3);
  text-decoration:none;white-space:nowrap;letter-spacing:.5px;padding-bottom:1px;
  border-bottom:1px dotted rgba(58,49,37,.45);transition:color .18s,border-color .18s}
.site-back:hover,.site-back:focus-visible{color:var(--seal);border-bottom-color:var(--seal);outline:none}
.ro-pill{
  display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:2px;
  background:rgba(255,250,240,.55);border:1px solid rgba(0,0,0,.28);color:var(--seal);
  font:inherit;font-size:12px;letter-spacing:2px;text-decoration:none;cursor:pointer;
  transition:background .18s,border-color .18s,color .18s;
}
a.ro-pill:hover,a.ro-pill:focus-visible{background:var(--seal);border-color:var(--seal);color:#f7efdd;outline:none}
.search{display:flex;height:34px}
.search input{
  width:248px;height:34px;padding:0 12px;border:1px solid var(--line);border-right:0;
  border-radius:2px 0 0 2px;background:#faf4e8;color:var(--ink-2);font-size:12.5px;
}
.search input::placeholder{color:var(--ink-4)}
.search input:focus{border-color:rgba(0,0,0,.5);background:#fff}
.search button{
  height:34px;padding:0 18px;border:1px solid var(--seal);border-radius:0 2px 2px 0;cursor:pointer;
  background:var(--seal);color:#f7efdd;font-size:13px;letter-spacing:2px;
}
.search button:hover{background:var(--seal-d);border-color:var(--seal-d)}

/* ---------- 面包屑 ---------- */
.crumb{font-size:12.5px;color:var(--ink-4);padding:16px 0 12px}
.crumb a{color:var(--ink-3)}
.crumb a:hover{color:var(--seal)}
.crumb span.sp{margin:0 6px;color:var(--line)}

/* ---------- ③ 首页：分区与版块 ---------- */
.board-wrap{display:flex;flex-direction:column;gap:18px}
.cat{background:var(--card);border:var(--box-border,1px) solid #3a3125;border-radius:0;overflow:hidden;box-shadow:0 1px 0 rgba(0,0,0,.06)}
.cat-hd{
  display:flex;align-items:center;justify-content:space-between;padding:15px 18px 13px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,rgba(255,250,240,.62),rgba(226,215,194,.55));
}
.cat-hd h2{
  display:inline-block;font-size:17px;color:#f7efdd;border-left:0;padding:6px 30px 8px 20px;
  line-height:1.5;letter-spacing:4px;position:relative;z-index:0;
  text-shadow:0 1px 3px rgba(20,14,8,.55);
}
.cat-hd h2::before{
  content:"";position:absolute;left:-15px;right:-17px;top:-10px;bottom:-8px;z-index:-1;
  background-image:var(--ink-smear, url("ink-smear.svg"));
  background-position:center;background-size:100% 100%;background-repeat:no-repeat;
}
/* 一圈更淡的外溢墨晕，模拟墨在纸上洇开 */
.cat-hd h2::after{
  content:"";position:absolute;left:-22px;right:-24px;top:-16px;bottom:-14px;z-index:-2;
  background-image:var(--ink-smear, url("ink-smear.svg"));
  background-position:center;background-size:100% 100%;background-repeat:no-repeat;
  filter:blur(var(--ink-halo,5px));opacity:var(--ink-halo-opacity,.45);
}
.cat-hd .cnt{font-size:12px;color:var(--ink-4);letter-spacing:1px}

.board{display:grid;grid-template-columns:52px minmax(0,1fr) 168px 216px;gap:14px;align-items:center;
  padding:13px 18px;border-bottom:1px solid var(--line-soft)}
.board:last-child{border-bottom:0}
.board:hover{background:rgba(0,0,0,.028)}
.bicon{
  width:44px;height:44px;border-radius:2px;display:grid;place-items:center;color:#f7efdd;
  font-family:var(--serif);font-size:19px;font-weight:600;
  background:linear-gradient(150deg,var(--c1,#6e6e6e),var(--c2,#2d2d2d));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),0 1px 2px rgba(0,0,0,.16);
  text-shadow:0 1px 1px rgba(0,0,0,.28);
}
.bmain{min-width:0}
.bname{display:inline-block;font-family:var(--serif);font-size:15px;font-weight:700;color:var(--ink);letter-spacing:.6px}
.bname:hover{color:var(--seal)}
.bmain p{font-size:12px;color:var(--ink-4);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sub-boards{margin-top:5px;font-size:12px;color:var(--ink-4)}
.sub-boards a{color:var(--ink-3);margin-right:10px}
.sub-boards a:hover{color:var(--seal)}
.bstats{font-size:12px;color:var(--ink-4);display:flex;flex-direction:column;gap:2px}
.bstats b{color:var(--ink-2);font-weight:600}
.blast{font-size:12px;color:var(--ink-4);text-align:right;overflow:hidden}
.blast .bt{display:block;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.blast .bt:hover{color:var(--seal)}
.blast .ba{margin-top:2px;color:var(--ink-4)}

/* 首页底部「关于这个存档」卡片 */

/* ---------- 版块页 ---------- */
.forum-head{
  background:var(--card);border:var(--box-border,1px) solid #3a3125;border-radius:0;padding:16px 20px;
  display:flex;align-items:center;gap:16px;margin-bottom:14px;box-shadow:0 1px 2px rgba(0,0,0,.05);
}
.forum-head .bicon{width:52px;height:52px;font-size:20px;border-radius:2px}
.forum-head h1{font-size:20px;color:var(--ink);letter-spacing:1px}
.forum-head p{font-size:12.5px;color:var(--ink-4);margin-top:4px}
.forum-head .fh-right{margin-left:auto;text-align:right;font-size:12px;color:var(--ink-4);line-height:1.9}
.forum-head .fh-right b{color:var(--ink-2)}

.toolbar{
  display:flex;align-items:center;justify-content:space-between;background:none;
  border:0;padding:0 2px 8px;
}
.tabs{display:flex;gap:6px}
.tabs a{padding:4px 13px;border:1px solid transparent;border-radius:1px;font-size:12.5px;color:var(--ink-3)}
.tabs a:hover{color:var(--seal);background:var(--seal-soft)}
.tabs a.on{background:var(--seal-soft);border-color:#cbbda3;color:var(--seal-d);font-weight:600}
.toolbar .tb-info{font-size:12px;color:var(--ink-4)}

/* ---------- 主题列表 ---------- */
.tlist{background:var(--card);border:var(--box-border,1px) solid #3a3125;border-radius:0;overflow:hidden}
.tlist-hd,.trow{display:grid;grid-template-columns:minmax(0,1fr) 132px 126px 196px;align-items:center;gap:10px}
.tlist-hd{padding:9px 16px;background:var(--paper-3);border-bottom:1px solid var(--line);
  font-size:12px;color:var(--ink-4);letter-spacing:1px}
.trow{padding:11px 16px;border-bottom:1px solid var(--line-soft);font-size:12px;color:var(--ink-4)}
.trow:last-child{border-bottom:0}
.trow:hover{background:rgba(0,0,0,.025)}
.tt{display:flex;align-items:center;gap:8px;min-width:0}
.tt .tag{flex:none;font-size:10.5px;line-height:18px;padding:0 6px;border-radius:1px;color:#f7efdd;letter-spacing:1px}
.tag-top{background:var(--seal)}
.tag-best{background:#4a4a4a}
.tag-pic{background:#6b6b6b}
.tag-att{background:#8a8a8a}
.tt a.tname{font-family:var(--serif);font-size:14.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tt a.tname:hover{color:var(--seal);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.tt .pages{flex:none;font-size:11px;color:var(--ink-4)}
.t-author a{color:var(--ink-3)}
.t-cnt{display:flex;align-items:baseline;gap:4px;white-space:nowrap}
.t-cnt span{color:var(--ink-3)}
.t-cnt .sep{color:var(--line);margin:0 1px}
.t-cnt .vw{color:var(--ink-4)}
.t-last{text-align:right;line-height:1.75}
.t-last a{color:var(--ink-3)}
.t-last a:hover{color:var(--seal)}
.t-last .tm{color:var(--ink-4)}

/* ---------- 分页 ---------- */
.pg{display:flex;justify-content:center;align-items:center;gap:5px;margin:20px 0}
.pg a,.pg span.cur{
  min-width:30px;height:30px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:1px;background:var(--card);color:var(--ink-3);font-size:13px;
}
.pg a:hover{border-color:var(--seal);color:var(--seal)}
.pg span.cur{background:var(--seal);border-color:var(--seal);color:#f7efdd;font-weight:600}
.pg .gap{border:0;background:none;color:var(--ink-4)}
.pg .info{border:0;background:none;color:var(--ink-4);font-size:12px;margin-left:8px}

/* ---------- 主题页 ---------- */
.thread-head{background:var(--card);border:var(--box-border,1px) solid #3a3125;border-radius:0;padding:18px 22px;
  margin-bottom:14px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.thread-head h1{font-size:21px;line-height:1.5;color:var(--ink);letter-spacing:.4px}
.thread-head h1 .tag{vertical-align:3px;margin-right:8px;font-size:10.5px}
.thread-sub{margin-top:9px;font-size:12px;color:var(--ink-4);display:flex;gap:16px;flex-wrap:wrap}
.thread-sub b{color:var(--ink-2);font-weight:600}

.post{display:grid;grid-template-columns:198px minmax(0,1fr);background:var(--card);
  border:var(--box-border,1px) solid #3a3125;border-radius:0;margin-bottom:12px;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.p-side{background:linear-gradient(180deg,var(--paper-3),#f2f2f0);border-right:1px solid var(--line);
  padding:16px 14px 14px;text-align:center}
.p-avatar-link{display:inline-block;line-height:0;text-decoration:none;border-radius:2px;
  transition:box-shadow .18s}
.p-avatar-link:hover,.p-avatar-link:focus-visible{box-shadow:0 0 0 2px rgba(58,49,37,.38);outline:none}
.p-avatar{width:118px;height:118px;border:1px solid var(--line);border-radius:2px;background:#fff;
  object-fit:cover;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.p-avatar-fallback{
  width:118px;height:118px;border:1px solid var(--line);border-radius:2px;margin:0 auto;
  display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:38px;font-weight:600;
  color:#f7efdd;background:linear-gradient(135deg,#6e6e6e,#2d2d2d);
}
.p-id{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:10px;flex-wrap:wrap}
.p-name{margin-top:0;font-family:var(--serif);font-size:15.5px;font-weight:700;color:var(--ink)}
.p-name:hover{color:var(--seal)}
.p-group{display:inline-block;margin-top:0;font-size:11px;padding:1px 8px;border-radius:1px;
  background:#e6dbc6;border:1px solid var(--line);color:var(--ink-3);letter-spacing:1px}
.p-group.member{background:var(--seal-soft);border-color:#cbbda3;color:var(--seal-d)}
.p-group.admin{background:#e2d7c0;border-color:#bfb29a;color:#3a3125}
.p-stats{margin-top:14px;text-align:left;font-size:12px;color:var(--ink-4);line-height:2}
.p-stats b{color:var(--ink-2);font-weight:600;float:right}
.p-main{padding:14px 22px 18px;display:flex;flex-direction:column}
.p-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--ink-4);
  border-bottom:1px dashed var(--line);padding-bottom:10px;margin-bottom:14px}
.p-head .ph-left{display:flex;gap:12px;align-items:center}
.p-head .floor{color:var(--ink-3)}
.p-body{font-size:14.5px;line-height:2.05;color:var(--ink-2);word-break:break-word}
.p-body p{margin:0 0 .8em}
.p-body p:last-child{margin-bottom:0}
.p-body blockquote{margin:.8em 0;padding:10px 14px;background:#efe6d3;border-left:3px solid #c2b49a;
  color:var(--ink-3);font-size:13.5px;border-radius:0 2px 2px 0}
.p-body code{font-family:Consolas,Monaco,monospace;background:var(--paper-3);border:1px solid var(--line);
  border-radius:1px;padding:1px 5px;font-size:13px;color:var(--seal-d)}
.p-edit{margin-top:14px;font-size:12px;color:var(--ink-4);text-align:right}
.p-foot{margin-top:auto;padding-top:14px;display:flex;gap:10px;align-items:center;
  border-top:1px solid var(--line-soft);font-size:12px;color:var(--ink-4)}
.p-sign{margin-top:16px;padding:10px 12px;border-top:1px dashed var(--line);font-size:12px;color:var(--ink-4);line-height:1.8}
.p-sign img,.bb-sign img{max-width:100%;height:auto;vertical-align:middle}
.p-sign a,.bb-sign a{color:var(--seal-d)}
.p-sign table,.bb-sign table{border-collapse:collapse;max-width:100%;font-size:12px}
.p-sign td,.p-sign th,.bb-sign td,.bb-sign th{border:1px solid var(--line);padding:3px 6px;vertical-align:top}
.p-sign figure,.bb-sign figure{margin:6px 0}
/* 老帖 HTML / 签名里的外链图片失效时，由 app.js 换成这个占位 */
.img-dead{display:inline-block;margin:4px 0;padding:2px 8px;border:1px dashed var(--line);
  border-radius:2px;color:var(--ink-4);font-size:12px}

/* ---------- 用户页 ---------- */
.space-head{position:relative;height:158px;border-radius:2px 2px 0 0;overflow:hidden;
  background:linear-gradient(120deg,#211c15 0%,#3a3a3a 55%,#5c5c5c 100%)}
.space-head::after{content:"";position:absolute;inset:0;
  background:radial-gradient(620px 220px at 80% 8%,rgba(255,246,230,.14),transparent 72%)}
.space-head .sh-txt{position:absolute;right:22px;bottom:18px;color:rgba(255,255,255,.45);font-size:11px;letter-spacing:3px}
.space-body{background:var(--card);border:1px solid var(--line);border-top:0;border-radius:0 0 2px 2px;padding:0 24px 24px}
.space-top{display:flex;align-items:flex-end;gap:18px;margin-top:-28px;position:relative;z-index:2}
.space-avatar{width:116px;height:116px;border:3px solid #fff;border-radius:2px;
  box-shadow:0 3px 12px rgba(0,0,0,.2);object-fit:cover;background:#fff}
.space-id{padding-bottom:6px}
.space-id h1{font-size:23px;color:var(--ink);display:flex;align-items:center;gap:10px;letter-spacing:1px}
.space-id .badge{font-size:11px;font-weight:400;padding:2px 9px;border-radius:1px;background:var(--seal-soft);
  border:1px solid #cbbda3;color:var(--seal-d);font-family:var(--sans);letter-spacing:1px}
.space-id .sub{margin-top:6px;font-size:12.5px;color:var(--ink-4)}
.space-id .sub b{color:var(--ink-2)}

.space-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;margin-top:20px}
.space-grid.single{grid-template-columns:minmax(0,1fr)}
.card{background:var(--card);border:var(--box-border,1px) solid #3a3125;border-radius:0;box-shadow:0 1px 0 rgba(0,0,0,.05)}
.card-hd{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 12px;
  border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(255,250,240,.6),rgba(226,215,194,.55))}
.card-hd h3{
  display:inline-block;font-size:14px;color:#f7efdd;border-left:0;padding:4px 22px 5px 15px;
  position:relative;letter-spacing:2px;line-height:1.6;z-index:0;
  text-shadow:0 1px 3px rgba(20,14,8,.55);
}
.card-hd h3::before{
  content:"";position:absolute;left:-11px;right:-13px;top:-8px;bottom:-6px;z-index:-1;
  background-image:var(--ink-smear, url("ink-smear.svg"));
  background-position:center;background-size:100% 100%;background-repeat:no-repeat;
}
.card-hd h3::after{
  content:"";position:absolute;left:-17px;right:-19px;top:-13px;bottom:-11px;z-index:-2;
  background-image:var(--ink-smear, url("ink-smear.svg"));
  background-position:center;background-size:100% 100%;background-repeat:no-repeat;
  filter:blur(var(--ink-halo,4px));opacity:var(--ink-halo-opacity,.42);
}
.card-hd a{font-size:12px;color:var(--ink-4)}
.card-bd{padding:16px;overflow-wrap:anywhere}

.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.stat{border:1px solid var(--line);border-radius:2px;padding:12px 10px;text-align:center;background:var(--paper-3)}
.stat b{display:block;font-family:var(--serif);font-size:21px;color:var(--ink);font-weight:700;line-height:1.2}
.stat span{font-size:12px;color:var(--ink-4)}

.dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 26px}
.dl div{display:flex;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:12.5px}
.dl dt{flex:none;width:64px;color:var(--ink-4)}
.dl dd{flex:1;min-width:0;color:var(--ink-2)}

.mini-list li{display:flex;gap:10px;align-items:baseline;padding:9px 0;border-bottom:1px dashed var(--line);font-size:13px}
.mini-list li:last-child{border-bottom:0}
.mini-list .mi-time{margin-left:auto;color:var(--ink-4);font-size:12px;white-space:nowrap}
.mini-list a{color:var(--ink-2)}
.mini-list a:hover{color:var(--seal)}
.mini-list .mi-fid{font-size:11px;color:var(--ink-4);background:var(--paper-3);border:1px solid var(--line);
  border-radius:1px;padding:0 5px}

.quote-item{padding:11px 0;border-bottom:1px dashed var(--line)}
.quote-item:last-child{border-bottom:0}
.quote-item .qi-hd{font-size:12px;color:var(--ink-4);display:flex;gap:8px}
.quote-item .qi-hd a{color:var(--ink-3)}
.quote-item p{margin-top:5px;font-size:13px;color:var(--ink-2);line-height:1.8;overflow-wrap:anywhere}

.timeline{border-left:2px solid var(--line);margin-left:6px;padding-left:16px}
.timeline li{position:relative;padding:0 0 16px;font-size:12.5px;color:var(--ink-3)}
.timeline li::before{content:"";position:absolute;left:-22px;top:5px;width:8px;height:8px;border-radius:50%;
  background:var(--card);border:2px solid var(--line)}
.timeline li:first-child::before{border-color:var(--seal)}
.timeline b{display:block;color:var(--ink);font-size:13px}
.timeline span{color:var(--ink-4)}

/* ---------- 页脚 ---------- */
.sitefoot{background:linear-gradient(180deg,rgba(246,239,225,.92),rgba(226,215,194,.92));border-top:var(--box-border,1px) solid #3a3125;
  margin-top:30px;padding:24px 0 28px;position:relative}
.sitefoot::before{content:"";position:absolute;top:-5px;left:0;right:0;height:10px;
  background-image:var(--ink-line, url("ink-line.svg"));
  background-position:center;background-size:100% 100%;background-repeat:no-repeat;opacity:.8}
.sitefoot .wrap{text-align:center;font-size:12px;color:var(--ink-4);line-height:2.1}
/* 页脚「关于这个存档」：直接复用卡片样式（.card / .card-hd / .card-bd），全站每页都有 */
.foot-about{max-width:920px;margin:0 auto;text-align:left}
.about-bd p{margin:0 0 10px;font-size:13px;line-height:1.95;color:var(--ink-2)}
.about-bd p:last-child{margin-bottom:0}
.about-bd b{color:var(--ink);font-weight:600}
.about-bd a{color:var(--seal-d);text-decoration:underline;text-underline-offset:2px}
.about-bd a:hover{color:var(--ink)}
.foot-meta{border-top:1px dashed var(--line);padding-top:14px;margin-top:18px}
.sitefoot b{color:var(--ink-2);font-weight:600}
.sitefoot .flinks a{margin:0 10px;color:var(--ink-3)}
.sitefoot .flinks a:hover{color:var(--seal)}
.sitefoot .f-icp{margin-top:8px;font-size:12px}
.sitefoot .f-icp a{color:var(--ink-4);letter-spacing:.5px;text-decoration:none}
.sitefoot .f-icp a:hover{color:var(--seal)}

/* ---------- ④ 生成内容：老帖 HTML（白名单渲染） ---------- */
.p-body table{border-collapse:collapse;max-width:100%;margin:12px 0;font-size:13px}
.p-body td,.p-body th{border:1px solid var(--line);padding:4px 8px;vertical-align:top}
.p-body th{background:var(--paper-3);font-weight:600}
.p-body img{max-width:100%;height:auto;border-radius:1px}
.p-body a{color:var(--seal-d);text-decoration:underline;text-underline-offset:2px}
.p-body a:hover{color:var(--ink)}
.p-body h1,.p-body h2,.p-body h3,.p-body h4,.p-body h5,.p-body h6{font-family:var(--serif);margin:.7em 0 .4em;line-height:1.45}
.p-body h1{font-size:20px}.p-body h2{font-size:18px}.p-body h3{font-size:16px}
.p-body h4{font-size:15px}.p-body h5{font-size:14px}.p-body h6{font-size:13.5px}
.p-body ul,.p-body ol{margin:.5em 0 .8em 1.6em}
.p-body ul li{list-style:disc}
.p-body ol li{list-style:decimal}

/* ---------- ⑤ 生成内容：BBCode ---------- */
.p-body{overflow-wrap:anywhere}
.bb-quote{margin:12px 0;padding:10px 14px;border-left:3px solid #c2b49a;background:#efe6d3;
  color:var(--ink-3);border-radius:0 2px 2px 0}
.bb-quote .bb-quote{margin:8px 0;background:var(--paper-3)}
.bb-code{margin:12px 0;padding:12px 14px;background:#211c15;color:#e8ddc8;border-radius:2px;overflow-x:auto}
.bb-code code{display:block;background:none;color:inherit;border:0;padding:0;
  font-family:Consolas,"Courier New",monospace;font-size:12px;line-height:1.7;white-space:pre}
.bb-table{border-collapse:collapse;margin:12px 0;max-width:100%}
.bb-table td{border:1px solid var(--line);padding:6px 10px;font-size:13px}
.bb-media{display:flex;align-items:center;gap:10px;margin:12px 0;padding:10px 12px;
  border:1px solid var(--line);border-radius:2px;background:var(--paper-3)}
.bb-media .bm-ico{width:30px;height:30px;display:grid;place-items:center;border-radius:1px;
  background:rgba(0,0,0,.06);color:var(--seal);font-size:13px}
.bb-media b{display:block;font-size:13px}
.bb-media span{color:var(--ink-4);font-size:12px}
.bb-hide,.bb-free{margin:12px 0;padding:10px 12px;border:1px dashed #c6b8a0;background:#f7efdd;border-radius:2px}
.bbh-note{font-size:12px;color:#5b5142;margin-bottom:6px;letter-spacing:1px}
.bb-indent{margin-left:2em}
.bb-rate{margin:10px 0;font-size:12px;color:var(--ink-3);background:var(--paper-3);
  border:1px solid var(--line);border-radius:2px;padding:8px 10px}
.bb-rate span{color:var(--seal);margin-right:6px}
.bb-sign{margin-top:14px;padding-top:10px;border-top:1px dashed var(--line);color:var(--ink-4);font-size:12px;overflow-wrap:anywhere}
.bb-sign img{max-width:100%;height:auto}
.bb-sign::before{content:"签 名：";color:var(--ink-4)}
.bb-user{color:var(--seal)}
.bb-url-dead{color:var(--ink-4);text-decoration:line-through}
.bb-list{margin:10px 0 10px 1.6em}
.bb-hr{border:0;border-top:1px solid var(--line);margin:14px 0}
.bb-plain{white-space:normal}
.smiley{max-width:1.9em;max-height:1.9em;width:auto;height:auto;vertical-align:-0.32em}
.smiley-code{color:var(--ink-4);font-size:12px}

/* ---------- 附件 ---------- */
.p-attach{margin-top:12px}
.attach-img{margin:12px 0;display:inline-block;padding:4px;border:1px solid var(--line);
  background:#fff;border-radius:2px;cursor:zoom-in}
.attach-img img{display:block;max-width:100%;border-radius:1px;background:var(--paper-3)}
.attach-img figcaption,.attach-cap{margin-top:6px;font-size:12px;color:var(--ink-4);text-align:center}
.attach-img.is-void img{display:none}
.attach-card{display:flex;align-items:center;gap:12px;margin:12px 0;padding:10px 12px;
  border:1px solid var(--line);border-radius:2px;background:var(--paper-3)}
.attach-ico{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:1px;
  background:#e2d7c0;color:var(--ink-3);font-size:11px;font-weight:700;letter-spacing:.3px}
.attach-meta{flex:1;min-width:0}
.attach-meta b{display:block;font-size:13px;word-break:break-all;color:var(--ink-2)}
.attach-meta span{color:var(--ink-4);font-size:12px}
.attach-act{flex:0 0 auto}
.attach-note{font-size:12px;color:var(--ink-4);border:1px dashed var(--line);border-radius:1px;
  padding:3px 10px;white-space:nowrap;background:rgba(255,255,255,.4)}
.attach-missing{display:flex;align-items:center;gap:12px;margin:12px 0;padding:10px 12px;
  border:1px dashed var(--line);border-radius:2px;background:#f2ead9;color:var(--ink-4)}
.attach-missing .am-ico{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;
  border-radius:50%;background:#ded2b9;color:var(--ink-4);font-size:16px}
.attach-missing .am-meta b{display:block;font-size:13px;color:var(--ink-3);word-break:break-all}
.attach-missing .am-meta span{font-size:12px}
.ext-img{margin:12px 0}
.ext-img img{max-width:100%;border:1px solid var(--line);border-radius:2px}
.ext-img figcaption{font-size:12px;color:var(--ink-4);margin-top:4px}
.ext-img.is-broken img{display:none}
.ext-img.is-broken::before{content:"外链图片已失效（原图床已关闭）";display:block;padding:26px 12px;
  text-align:center;color:var(--ink-4);font-size:13px;border:1px dashed var(--line);border-radius:2px;
  background:#f2ead9}
.ext-img-broken{color:var(--ink-4)}

/* ---------- 搜索页 ---------- */
.sbox{background:var(--card);border:1px solid var(--line);border-radius:2px;padding:20px;margin:16px 0;
  box-shadow:0 1px 2px rgba(0,0,0,.05)}
.sbox h1{font-size:19px;letter-spacing:2px;margin:0 0 6px;color:var(--ink)}
.sbox p{color:var(--ink-4);font-size:13px;margin:0 0 14px}
.sform{display:flex;gap:8px;flex-wrap:wrap}
.sform input{flex:1;min-width:220px;padding:9px 12px;border:1px solid var(--line);border-radius:2px;
  font-size:14px;background:#faf4e8;color:var(--ink-2)}
.sform input:focus{outline:2px solid rgba(0,0,0,.14);border-color:var(--seal)}
.sform button{padding:9px 22px;border:1px solid var(--seal);border-radius:2px;background:var(--seal);
  color:#f7efdd;font-size:14px;cursor:pointer;letter-spacing:2px}
.sform button:hover{background:var(--seal-d);border-color:var(--seal-d)}
.sstat{margin:12px 0;font-size:13px;color:var(--ink-4)}
.sres{background:var(--card);border:1px solid var(--line);border-radius:2px;overflow:hidden}
.sitem{padding:12px 16px;border-bottom:1px solid var(--line-soft)}
.sitem:last-child{border-bottom:0}
.sitem a{font-family:var(--serif);font-size:14.5px;color:var(--seal-d)}
.sitem a:hover{text-decoration:underline;text-underline-offset:3px}
.sitem .sm{font-size:12px;color:var(--ink-4);margin-top:3px}
.sempty{padding:28px 16px;text-align:center;color:var(--ink-4);font-size:13px}

/* ---------- ⑤ 存档说明弹窗 ---------- */
.modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}
.modal[hidden]{display:none}
.modal-mask{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.modal-box{
  position:relative;width:min(680px,100%);max-height:calc(100vh - 48px);overflow:auto;
  background:var(--card);border:1px solid #b3a486;padding:28px 32px 22px;
  box-shadow:inset 0 0 0 6px var(--card),inset 0 0 0 7px var(--line),0 24px 60px rgba(0,0,0,.35);
}
.modal-box h2{font-size:20px;letter-spacing:4px;color:var(--ink);padding-bottom:12px;margin-bottom:16px;
  border-bottom:1px solid var(--line);position:relative}
.modal-box h2::after{content:"";position:absolute;left:0;bottom:-4px;width:150px;height:9px;
  background:url("ink-line.svg") center / 100% 100% no-repeat}
.modal-bd p{margin:0 0 11px;font-size:13.5px;line-height:1.95;color:var(--ink-2)}
.modal-bd p:last-child{margin-bottom:0}
.modal-bd b{color:var(--ink);font-weight:600}
.modal-ft{display:flex;justify-content:flex-end;margin-top:20px}
.modal-ok{height:38px;padding:0 30px;border:1px solid var(--seal);background:var(--seal);color:#f7efdd;
  font-size:13.5px;letter-spacing:4px;cursor:pointer;border-radius:1px}
.modal-ok:hover{background:var(--seal-d);border-color:var(--seal-d)}
.modal-ok:focus-visible{outline:2px solid rgba(0,0,0,.45);outline-offset:3px}

/* ---------- 墨迹调参面板（仅 ?tune=1 时由 ink-tuner.js 插入） ---------- */
.ink-tuner{position:fixed;right:14px;bottom:14px;z-index:300;width:264px;
  background:rgba(252,247,238,.98);border:1px solid #3a3125;border-radius:2px;
  box-shadow:0 12px 30px rgba(40,30,20,.35);font-family:var(--sans);font-size:12px;color:var(--ink-2)}
.ink-tuner .tk-hd{display:flex;align-items:center;justify-content:space-between;
  padding:8px 10px;border-bottom:1px solid #c9bca2;
  background:linear-gradient(180deg,rgba(255,250,240,.9),rgba(232,221,200,.8))}
.ink-tuner .tk-hd b{font-family:var(--serif);letter-spacing:2px;font-size:13px}
.ink-tuner .tk-hd button{border:1px solid #c9bca2;background:#f6efe1;width:22px;height:20px;
  cursor:pointer;color:#3a332a;line-height:1;padding:0}
.ink-tuner .tk-row{display:flex;align-items:center;gap:8px;padding:4px 10px}
.ink-tuner .tk-row label{flex:none;width:62px;color:#5b5142}
.ink-tuner .tk-row input[type=range]{flex:1;min-width:0;accent-color:#1e1a14}
.ink-tuner .tk-row input[type=color]{width:28px;height:20px;padding:0;border:1px solid #c9bca2;background:none}
.ink-tuner .tk-val{flex:none;width:34px;text-align:right;color:#8a7f6b;font-variant-numeric:tabular-nums}
.ink-tuner .tk-note{margin:6px 10px 8px;color:#8a7f6b;line-height:1.6;font-size:11px}
.ink-tuner .tk-ft{display:flex;gap:6px;padding:8px 10px;border-top:1px dashed #c9bca2}
.ink-tuner .tk-ft button{flex:1;height:26px;border:1px solid #3a3125;background:#1e1a14;
  color:#f7efdd;cursor:pointer;font-size:12px}
.ink-tuner .tk-ft button:hover{background:#000}
.ink-tuner.folded .tk-bd,.ink-tuner.folded .tk-ft{display:none}

/* ---------- 轻提示 / 灯箱 ---------- */
.toast{position:fixed;left:50%;bottom:38px;transform:translateX(-50%) translateY(12px);
  background:rgba(30,25,18,.95);color:#f2f2f0;font-size:13px;padding:9px 16px;border-radius:2px;
  opacity:0;pointer-events:none;transition:.22s;z-index:99;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.lightbox{position:fixed;inset:0;background:rgba(25,20,14,.9);display:none;align-items:center;
  justify-content:center;z-index:100;padding:40px}
.lightbox.show{display:flex}
.lightbox img{max-width:92vw;max-height:88vh;box-shadow:0 10px 40px rgba(0,0,0,.55);border-radius:1px;background:#fff}

/* ---------- ⑥ 响应式 ---------- */
@media (max-width:1240px){
  .wrap{width:auto;margin:0 16px}
}
/* 窄屏：本文件在 style.css 之后加载，非媒体查询规则会盖掉 demo 的响应式覆盖，
   所以这里必须把关键断点重新声明一遍。 */
@media (max-width:900px){
  /* 窄屏：第一行 LOGO + 右侧「返回主站 / 存档说明」，第二行整宽搜索框 */
  .sitehead .wrap{
    display:grid;grid-template-columns:auto 1fr auto auto;
    align-items:center;column-gap:10px;row-gap:10px;padding:14px 16px;
  }
  .logo{grid-column:1;grid-row:1}
  .logo img{height:46px}
  .head-right{display:contents}
  .site-back{grid-column:3;grid-row:1;justify-self:end;font-size:11.5px}
  .ro-pill{grid-column:4;grid-row:1;justify-self:end}
  .search{grid-column:1 / -1;grid-row:2;margin:0;min-width:0}
  .search input{flex:1;width:auto;min-width:0}
  .search button{padding:0 14px}

  .crumb{padding:12px 0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .muted-note{font-size:11.5px}

  .board{grid-template-columns:42px minmax(0,1fr) 96px;gap:10px;padding:12px 14px}
  .bicon{width:38px;height:38px;font-size:15px;border-radius:2px}
  .blast{display:none}
  .bmain p{white-space:normal;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}
  .bstats{font-size:11px;text-align:right}

  .forum-head{flex-wrap:wrap;padding:14px;gap:12px}
  .forum-head h1{font-size:17px}
  .forum-head .fh-right{margin-left:0;width:100%;text-align:left;border-top:1px dashed var(--line);padding-top:8px}

  .tlist-hd,.trow{grid-template-columns:minmax(0,1fr) 96px}
  .t-author,.t-cnt,.t-last{display:none}
  .toolbar{flex-wrap:wrap;gap:8px}

  .thread-head{padding:14px}
  .thread-head h1{font-size:17px}
  .post{grid-template-columns:1fr}
  .p-side{display:flex;align-items:center;gap:12px;text-align:left;padding:12px 14px;border-right:0;border-bottom:1px solid var(--line)}
  .p-avatar,.p-avatar-fallback{width:52px;height:52px;font-size:20px;margin:0;flex:none}
  .p-id{margin-top:0;justify-content:flex-start;gap:8px}
  .p-name{font-size:14px}
  .p-stats,.p-sign{display:none}
  .p-main{padding:14px 16px 16px}
  .p-body{font-size:14px;line-height:1.9}
  .p-head{flex-wrap:wrap;gap:4px 10px}
  .p-foot{flex-wrap:wrap;gap:6px}

  .attach-card{max-width:none;flex-wrap:wrap}
  .attach-meta{flex-basis:calc(100% - 52px)}
  .attach-act{width:100%;text-align:left;padding-left:52px}

  .space-head{height:120px}
  .space-body{padding:0 15px 18px}
  .space-top{gap:12px;flex-wrap:wrap;margin-top:-24px}
  .space-avatar{width:84px;height:84px;font-size:30px}
  .space-id h1{font-size:19px;flex-wrap:wrap;gap:8px}
  .space-grid{grid-template-columns:1fr}
  .dl{grid-template-columns:1fr}
  .stat-row{grid-template-columns:repeat(2,1fr)}

  .modal-box{padding:22px 20px 18px}
  .modal-box h2{font-size:18px}
}
@media (max-width:760px){
  body{background-attachment:scroll}
  .attach-card{flex-wrap:wrap}
  .attach-act{width:100%}
  .attach-note{display:inline-block}
  .modal{padding:12px}
  .modal-box{padding:18px 15px 14px;max-height:calc(100vh - 24px)}
  .modal-bd p{font-size:13px}
  .modal-ok{width:100%;letter-spacing:3px}
}

/* ---------- 让 demo 的固定 1180px 容器自适应窄屏（用户故事 19） ---------- */
.wrap{width:auto;max-width:1204px;margin:0 auto;padding-left:12px;padding-right:12px;box-sizing:border-box}

/* ---------- 视频嵌入（bilibili / 优酷 / 腾讯 / YouTube） ---------- */
.bb-video { margin: 14px 0; max-width: 100%; }
.bb-video .bv-box { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden;
  background: #d9cfb8; border: 1px solid #c9bda4; }
.bb-video .bv-box iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.bb-video figcaption { margin-top: 6px; font-size: 12px; color: #8d8577; }
.bb-media a { display: block; margin-top: 4px; font-size: 12px; }

/* ---------- 老站链接改成站内链接后的样式 ---------- */
.bb-old-link { color: inherit; text-decoration: underline; text-decoration-style: dotted;
  text-underline-offset: 2px; }
.bb-old-link:hover { text-decoration-style: solid; }
