/* Aipress 前台样式 · 无外部依赖 */
:root{
  --bg:#f7f9fc; --card:#ffffff; --text:#26334a; --muted:#7b8798;
  --line:#e6ebf2; --accent:#2f6fd8; --accent-2:#5c8eea; --accent-soft:#eaf2ff;
  --header:rgba(255,255,255,.93); --shadow:0 2px 14px rgba(32,54,92,.05);
  --shadow-hover:0 10px 28px rgba(32,54,92,.10); --radius:14px;
  --code-bg:#f3f6fa; --danger:#d9534f; --ok:#1a9d6a;
  /* 全站统一缓动曲线：进出一致，动效更顺滑 */
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);
  /* 中文段落首行缩进：2em 会随「文字大小」档位一起缩放，改成 0 可关闭 */
  --para-indent:2em;
}
html[data-theme="dark"]{
  --bg:#121620; --card:#1b2130; --text:#dfe4f0; --muted:#8e99b0;
  --line:#2b3344; --accent:#7fa6f0; --accent-2:#a3bcf5; --accent-soft:#252d47;
  --header:rgba(24,29,41,.92); --shadow:0 3px 18px rgba(0,0,0,.18);
  --shadow-hover:0 8px 26px rgba(0,0,0,.3); --code-bg:#222a3a;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;font-size:15.5px;line-height:1.75;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none;transition:color .2s var(--ease)}
a:hover{color:var(--accent-2)}
img{max-width:100%;height:auto}
button,input,textarea{font-family:inherit;font-size:inherit}
.muted{color:var(--muted)}
.small{font-size:13px}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:#fff;padding:8px 14px;border-radius:0 0 8px 0;z-index:99}
.skip-link:focus{left:0}

/* ---------- 顶部 ---------- */
.site-header{position:sticky;top:0;z-index:40;background:var(--header);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.header-inner{max-width:900px;margin:0 auto;height:62px;padding:0 20px;display:flex;align-items:center;gap:18px}
.site-logo{display:flex;align-items:center;gap:10px;color:var(--text);font-weight:700;font-size:17px;white-space:nowrap}
.site-logo:hover{color:var(--text)}
.header-nav{display:flex;align-items:center;gap:4px;flex:1;overflow-x:auto;scrollbar-width:none}
.header-nav::-webkit-scrollbar{display:none}
.header-nav a{padding:6px 11px;border-radius:8px;color:var(--muted);font-size:14px;white-space:nowrap}
.header-nav a:hover{color:var(--accent);background:var(--accent-soft)}
.header-nav a.active{color:var(--accent);background:var(--accent-soft);font-weight:600}
.nav-toggle{border:1px solid var(--line);background:var(--card);color:var(--muted);width:34px;height:34px;border-radius:9px;display:none;flex-direction:column;gap:4px;justify-content:center;align-items:center;cursor:pointer;flex:none}
.nav-toggle span{width:16px;height:2px;background:currentColor;border-radius:2px}
/* 头部站内搜索（导航最后一项）：回车提交到 /search/，与站内搜索页同源 */
.header-search{display:flex;align-items:center;flex:none;width:186px;height:34px;border:1px solid var(--line);border-radius:9px;background:var(--card);overflow:hidden;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.header-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.header-search input{flex:1;min-width:0;width:100%;height:100%;padding:0 4px 0 10px;border:0;outline:0;background:transparent;color:var(--text);font-size:13.5px}
.header-search input::-webkit-search-cancel-button{cursor:pointer}
.header-search input::placeholder{color:var(--muted)}
.header-search button{flex:none;width:34px;height:100%;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);cursor:pointer}
.header-search button:hover{color:var(--accent);background:var(--accent-soft)}
.header-search svg{display:block}

/* 顶部导航栏自定义背景色：文字与按钮随背景深浅自动适配，只影响启用后的顶栏 */
.site-header.has-custom-bg .site-logo{color:var(--header-ink,var(--text))}
.site-header.has-custom-bg .site-logo:hover{color:var(--header-ink,var(--text))}
.site-header.has-custom-bg .header-nav a{color:var(--header-muted,var(--muted))}
.site-header.has-custom-bg .header-nav a:hover,
.site-header.has-custom-bg .header-nav a.active{color:var(--header-ink,var(--text));background:rgba(128,128,128,.18)}
.site-header.has-custom-bg .nav-toggle{color:var(--header-ink,var(--text));background:rgba(128,128,128,.14);border-color:rgba(128,128,128,.28)}
.site-header.has-custom-bg .header-search{background:rgba(128,128,128,.14);border-color:rgba(128,128,128,.28)}
.site-header.has-custom-bg .header-search input,
.site-header.has-custom-bg .header-search button{color:var(--header-ink,var(--text))}
.site-header.has-custom-bg .header-search input::placeholder{color:var(--header-muted,var(--muted))}
.site-header.has-custom-bg .header-search button:hover{background:rgba(128,128,128,.2)}
@media(max-width:700px){.site-header.has-custom-bg .header-nav{background:var(--header)}}

/* ---------- 首页分类导航（Danv1 主题功能） ----------
 * 与文章正文同宽；方块按「(容器宽 − 间距) ÷ 本行个数」自动等分，
 * flex-grow 让每一行的方块铺满整行，窄屏由 min-width 自动减少列数并换行。 */
.catnav-strip{max-width:900px;margin:16px auto 0;padding:0 20px}
.catnav-inner{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;--catnav-c1:#4f6bed;--catnav-c2:#9b5cf6;--catnav-basis:110px}
.cat-pill{display:inline-flex;align-items:center;justify-content:center;flex:1 1 var(--catnav-basis);min-width:96px;max-width:100%;height:clamp(40px,5vw,48px);padding:0 10px;border-radius:11px;font-size:clamp(12.5px,1.5vw,14.5px);font-weight:600;line-height:1.2;color:#fff;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:linear-gradient(135deg,var(--catnav-c1),var(--catnav-c2));box-shadow:0 2px 8px rgba(60,80,180,.10);transition:transform .22s var(--ease),box-shadow .22s var(--ease),filter .22s var(--ease)}
.cat-pill:hover{color:#fff;transform:translateY(-3px);box-shadow:0 8px 20px rgba(60,80,180,.26);filter:saturate(1.12)}
.cat-pill:active{transform:translateY(-1px)}

.breadcrumb{max-width:900px;margin:18px auto -6px;padding:0 20px;font-size:13px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.breadcrumb a{color:var(--muted)}
.breadcrumb a:hover{color:var(--accent)}
.crumb-sep{opacity:.5}

/* ---------- 容器 / 卡片 ---------- */
.container{max-width:900px;margin:0 auto;padding:26px 20px 60px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px 28px;margin-bottom:18px}
.archive-head{margin:4px 0 22px}
.archive-head h1{font-size:23px;margin:0 0 4px}
.archive-head p{color:var(--muted);font-size:14px;margin:0}
.section-title{font-size:17px;margin:0 0 16px;font-weight:700}

/* ---------- 文章列表 ---------- */
.post-list{display:flex;flex-direction:column;gap:18px}
.post-card{display:flex;gap:20px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px;transition:transform .24s var(--ease),box-shadow .24s var(--ease)}
.post-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.post-card-main{flex:1;min-width:0}
.post-card-title{font-size:18.5px;line-height:1.45;margin:0 0 10px;font-weight:700}
.post-card-title a{color:var(--text)}
.post-card-title a:hover{color:var(--accent)}
.post-card-excerpt{color:var(--muted);font-size:14px;line-height:1.8;margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-indent:var(--para-indent)}
.post-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--muted);font-size:12.5px}
.post-meta a{color:var(--muted)}
.post-meta a:hover{color:var(--accent)}
.meta-cat{background:var(--accent-soft);color:var(--accent)!important;padding:1px 8px;border-radius:5px;font-weight:600}
.meta-sep{opacity:.5}
.post-thumb{width:132px;height:96px;border-radius:10px;overflow:hidden;flex:none;display:block}
.post-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb-placeholder{width:100%;height:100%;display:grid;place-items:center;font-size:34px;font-weight:700;color:#fff;background:linear-gradient(135deg,hsl(var(--hue),62%,68%),hsl(calc(var(--hue) + 40),60%,58%))}
.thumb-placeholder.thumb-cat{font-size:15px;line-height:1.25;padding:6px;text-align:center;word-break:break-all}
.logo-img{max-height:30px;width:auto;border-radius:7px;display:block}

.pagination{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;margin-top:26px}
.page-link{padding:7px 13px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--muted);font-size:13.5px}
.page-link:hover{color:var(--accent);border-color:var(--accent)}
.page-link.current{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.page-link.disabled{opacity:.45;cursor:default}

/* ---------- 文章正文 ---------- */
.article-head{margin-bottom:22px}
.article-title{font-size:26px;line-height:1.4;margin:0 0 12px;font-weight:750}
.article-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:13px}
.article-meta a{color:var(--muted)}
.article-meta a:hover{color:var(--accent)}
.article-cover{margin:0 0 24px;border-radius:12px;overflow:hidden}
.article-cover img{display:block;width:100%}
.prose{font-size:16px;line-height:1.95;color:var(--text);word-wrap:break-word}
.prose>*:first-child{margin-top:0}
.prose>*:last-child{margin-bottom:0}
.prose p{margin:0 0 1.15em;text-indent:var(--para-indent)}
.prose h1,.prose h2,.prose h3,.prose h4{line-height:1.4;margin:1.7em 0 .7em;font-weight:700}
.prose h1{font-size:24px}.prose h2{font-size:21px}.prose h3{font-size:18px}.prose h4{font-size:16px}
.prose h2{padding-left:11px;border-left:3px solid var(--accent)}
.prose ul,.prose ol{margin:0 0 1.2em;padding-left:1.6em}
.prose li{margin:.3em 0}
.prose blockquote{margin:0 0 1.2em;padding:10px 18px;background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;color:var(--muted)}
.prose blockquote p{margin:0;text-indent:0}
.prose code{background:var(--code-bg);border:1px solid var(--line);padding:1px 6px;border-radius:5px;font-size:13.5px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.prose pre{background:var(--code-bg);border:1px solid var(--line);border-radius:10px;padding:16px 18px;overflow:auto;margin:0 0 1.3em;line-height:1.65}
.prose pre code{background:none;border:0;padding:0;font-size:13.5px}
.prose img,.prose video,.prose audio{border-radius:10px;display:block;margin:1.2em auto}
.prose hr{border:0;border-top:1px solid var(--line);margin:2em 0}
.prose a{text-decoration:underline;text-underline-offset:3px}
.article-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}
.tag{background:var(--accent-soft);color:var(--accent);padding:4px 11px;border-radius:7px;font-size:13px}

.post-nav{display:flex;justify-content:space-between;gap:14px;margin-bottom:18px}
.post-nav-item{flex:1;min-width:0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px 16px;box-shadow:var(--shadow)}
.post-nav-item.right{text-align:right}
.post-nav-label{display:block;color:var(--muted);font-size:12px;margin-bottom:3px}
.post-nav-item a{font-size:14px;font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.related-list{list-style:none;margin:0;padding:0}
.related-list li{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:14px}
.related-list li:last-child{border:0}
.related-list time{color:var(--muted);font-size:12.5px;flex:none}

/* ---------- 评论 ---------- */
.comments{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px 28px;margin-top:18px;scroll-margin-top:80px}
.comment-count{color:var(--muted);font-weight:400;font-size:14px}
.comment-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:10px}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:10px 12px;color:var(--text);font-size:14px}
.comment-form input:focus,.comment-form textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.comment-form textarea{resize:vertical;min-height:96px;margin-bottom:10px}
.comment-form-bottom{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.comment-tip{color:var(--muted);font-size:12px;flex:1;min-width:180px}
.btn-primary{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:9px;padding:9px 20px;font-size:14px;font-weight:600;cursor:pointer}
.btn-primary:hover{background:var(--accent-2);color:#fff}
.btn-primary:disabled{opacity:.6;cursor:wait}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:9px;padding:8px 14px;font-size:13px;cursor:pointer}
.btn-ghost:hover{color:var(--accent);border-color:var(--accent)}
.remember{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12.5px;margin-top:10px;cursor:pointer}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.comment-msg{font-size:13.5px;margin-top:10px;min-height:0}
.comment-msg.ok{color:var(--ok)}
.comment-msg.err{color:var(--danger)}
.reply-tip{font-size:13px;color:var(--accent)}
.moderation-tip{font-size:12.5px;margin-top:14px}
.comment-list{margin-top:26px}
.comment-item{display:flex;gap:12px;padding:16px 0;border-top:1px solid var(--line)}
.comment-avatar{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:#fff;font-weight:700;flex:none;font-size:15px}
.comment-body{flex:1;min-width:0}
.comment-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:13px;margin-bottom:5px}
.comment-author{font-weight:700;color:var(--text)}
.badge-admin{background:var(--accent);color:#fff;font-size:11px;font-weight:700;letter-spacing:.3px;padding:2px 8px;border-radius:5px}
.comment-item.comment-admin{background:linear-gradient(90deg,var(--accent-soft),rgba(255,255,255,0) 72%);border-left:3px solid var(--accent);padding-left:12px;border-radius:9px}
.comment-time{color:var(--muted);font-size:12px}
.comment-reply-btn{margin-left:auto;background:none;border:0;color:var(--muted);cursor:pointer;font-size:12.5px;padding:2px 4px}
.comment-reply-btn:hover{color:var(--accent)}
.comment-text{font-size:14.5px;line-height:1.8;word-break:break-word}
.comment-text p{margin:0 0 .5em}.comment-text p:last-child{margin:0}
.comment-text code{background:var(--code-bg);padding:1px 5px;border-radius:4px;font-size:13px}
.comment-children{margin-left:48px;border-left:2px solid var(--line);padding-left:16px}
.comment-children .comment-item{padding:12px 0}
.comment-empty{color:var(--muted);font-size:14px;text-align:center;padding:20px 0}

/* ---------- 归档 / 友链 / 搜索 / 404 ---------- */
.archive-year{margin-bottom:26px}
.archive-year-title{font-size:21px;margin:0 0 12px;color:var(--accent)}
.archive-month{margin-bottom:16px}
.archive-month h3{font-size:15px;margin:0 0 8px;font-weight:600}
.archive-month ul{list-style:none;margin:0;padding:0}
.archive-month li{display:flex;gap:14px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:14.5px}
.archive-month li:last-child{border:0}
.archive-month time{color:var(--muted);font-size:13px;flex:none;width:48px}
.link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.link-card{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:11px;color:var(--text)}
.link-card:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.link-avatar{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;display:grid;place-items:center;font-weight:700;flex:none}
.link-info{display:flex;flex-direction:column;min-width:0}
.link-info strong{font-size:14.5px}
.link-info small{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-box{display:flex;gap:10px}
.search-box input{flex:1;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:11px 14px;color:var(--text)}
.search-box input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.search-status{font-size:13.5px;margin:16px 4px 10px}
.search-results .post-card{padding:18px 20px}
.notfound{text-align:center;padding:52px 24px}
.notfound-code{font-size:64px;font-weight:800;color:var(--accent);opacity:.25;line-height:1;margin-bottom:8px}
.notfound h1{font-size:22px;margin:0 0 8px}
.notfound p{color:var(--muted);margin:0 0 22px}
.notfound-actions{display:flex;gap:10px;justify-content:center}
.empty-state{text-align:center;padding:44px 24px}
.empty-state h2{font-size:19px;margin:0 0 8px}
.empty-state p{color:var(--muted);margin:0 0 20px}

/* ---------- 页脚 ---------- */
.site-footer{border-top:1px solid var(--line);background:var(--card);margin-top:20px}
.footer-inner{max-width:900px;margin:0 auto;padding:28px 20px 18px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.footer-title{font-weight:700;font-size:16px}
.footer-sub{color:var(--muted);font-size:13px;margin:4px 0 0}
.footer-links{display:flex;gap:16px;align-items:center;font-size:13.5px}
.footer-bottom{max-width:900px;margin:0 auto;padding:12px 20px 22px;border-top:1px solid var(--line);color:var(--muted);font-size:12.5px;display:flex;gap:8px;flex-wrap:wrap}
.dot{opacity:.5}

/* ---------- 响应式 ---------- */
@media(max-width:720px){
  .header-inner{height:56px;gap:10px}
  .nav-toggle{display:flex}
  .header-nav{position:absolute;top:56px;left:0;right:0;background:var(--card);border-bottom:1px solid var(--line);box-shadow:var(--shadow);flex-direction:column;align-items:stretch;padding:10px 16px;display:none;gap:2px}
  .header-nav.open{display:flex}
  .header-nav a{padding:9px 12px}
  .header-search{width:132px}
  .container{padding:20px 14px 44px}
  .card,.comments{padding:20px 18px}
  .post-card{padding:18px;gap:12px}
  .post-card-title{font-size:17px}
  .post-thumb{width:88px;height:70px}
  .thumb-placeholder{font-size:24px}
  .article-title{font-size:22px}
  .comment-fields{grid-template-columns:1fr}
  .comment-children{margin-left:20px;padding-left:10px}
  .post-nav{flex-direction:column}
  .post-nav-item.right{text-align:left}
  .catnav-strip{padding:0 14px;margin-top:12px}
  .catnav-inner{gap:8px}
  .cat-pill{min-width:84px;height:42px;font-size:13px;flex-basis:calc((100% - 24px) / 3)}
}

/* ---------- 管理员工具条（仅登录后由 me.php 注入，访客无感） ---------- */
.ap-adminbar{position:sticky;top:0;z-index:60;background:#23282d;color:#e8eaed;font-size:12.5px;line-height:1.4;box-shadow:0 1px 6px rgba(0,0,0,.18)}
.ap-adminbar-inner{max-width:1100px;margin:0 auto;min-height:34px;padding:4px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ap-adminbar-avatar{width:22px;height:22px;border-radius:50%;object-fit:cover;flex:none}
.ap-adminbar-inner a{color:#9fd0ff;text-decoration:none}
.ap-adminbar-inner a:hover{color:#fff;text-decoration:underline}
.ap-adminbar-sep{color:#6b7280}

/* ---------- 文章作者署名卡 ---------- */
.author-card{display:flex;gap:16px;align-items:flex-start;padding:20px 22px;margin:18px 0}
.author-avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none;background:#eef1fd}
.author-info{min-width:0}
.author-label{font-size:11.5px;letter-spacing:.5px;color:var(--muted,#7d889e);text-transform:uppercase;margin-bottom:3px}
.author-name{font-size:16px;font-weight:700;color:var(--text,#2b3448);text-decoration:none}
.author-name:hover{color:var(--accent,#4c63c4)}
.author-bio{margin:6px 0 0;font-size:13.5px;color:var(--muted,#7d889e);line-height:1.7}
.author-tip{margin:6px 0 0;font-size:11.5px;color:var(--muted,#7d889e);opacity:.75}

/* ---------- 评论 Gravatar 头像 / 已登录身份 ---------- */
img.comment-avatar{object-fit:cover;background:#eef1fd;border:1px solid var(--line,#e7ebf3)}
.comment-identity{display:flex;align-items:center;gap:9px;padding:9px 12px;margin-bottom:10px;background:#eef1fd;border:1px solid var(--line,#e7ebf3);border-radius:9px;font-size:13px;color:var(--muted,#7d889e)}
.comment-identity img{width:28px;height:28px;border-radius:50%;object-fit:cover;flex:none}
.comment-identity strong{color:var(--text,#2b3448)}
.comment-identity a{margin-left:auto;font-size:12.5px;color:var(--muted,#7d889e)}

/* ---------- 正文外链图片 / 音视频 ---------- */
.md-media{display:block;max-width:100%;height:auto;border-radius:10px;margin:14px auto}
video.md-media,audio.md-media{width:100%}
audio.md-media{height:46px}

@media(max-width:720px){
  .ap-adminbar-inner{gap:8px;padding:5px 14px;font-size:12px}
  .author-card{padding:16px 18px;gap:12px}
  .author-avatar{width:46px;height:46px}
}

/* ---------- 页脚自定义代码 ---------- */
.footer-custom{width:100%;margin-top:8px;color:var(--muted);font-size:12.5px;line-height:1.8}
.footer-custom:empty{display:none}
.footer-custom a{color:var(--accent)}
.footer-custom img{max-width:100%;height:auto;vertical-align:middle}

/* ---------- Auto HighSlide 灯箱（文章内图片点击放大） ---------- */
.prose img.hs-zoom,img.md-media.hs-zoom{cursor:zoom-in;transition:opacity .24s var(--ease),filter .24s var(--ease)}
.prose img.hs-zoom:hover,img.md-media.hs-zoom:hover{filter:brightness(1.06)}
.hs-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(10,14,24,.9);opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s var(--ease)}
.hs-overlay.hs-open{opacity:1;visibility:visible}
.hs-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:100%}
.hs-overlay img.hs-large{display:block;max-width:92vw;max-height:80vh;width:auto;height:auto;border-radius:10px;background:#20263a;box-shadow:0 26px 80px rgba(0,0,0,.6);transform-origin:center center;will-change:transform,opacity}
.hs-caption{max-width:92vw;color:#dfe6f5;font-size:13px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hs-counter{position:absolute;top:-32px;right:2px;color:#c8d3ec;font-size:12.5px;letter-spacing:.5px}
.hs-btn{position:absolute;display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:20px;line-height:1;cursor:pointer;backdrop-filter:blur(6px);transition:background .22s var(--ease),transform .22s var(--ease),border-color .22s var(--ease)}
.hs-btn:hover{background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.5);transform:scale(1.06)}
.hs-close{top:-46px;right:0;font-size:22px}
.hs-prev,.hs-next{top:50%;margin-top:-20px;font-size:22px}
.hs-prev{left:-54px}.hs-next{right:-54px}
.hs-loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#cfd8ee;font-size:13px;pointer-events:none}
body.hs-lock{overflow:hidden}
@media(max-width:720px){
  .hs-overlay{padding:12px}
  .hs-prev{left:4px}.hs-next{right:4px}
  .hs-close{top:-6px;right:0}
  .hs-overlay img.hs-large{max-width:94vw;max-height:72vh}
  .hs-counter{top:-38px;right:52px}
}
@media(prefers-reduced-motion:reduce){
  .hs-overlay,.hs-overlay img.hs-large,.cat-pill,.post-card{transition-duration:.01ms!important}
}

/* ---------- 全局文字大小（后台「设置 → 阅读与显示」） ----------
 * --fs-scale 统一控制阅读区文字；导航栏、页脚等固定尺寸元素不跟着放大，
 * 避免大字号把布局撑破。默认档位 large，比旧版略大、更适合长时间阅读。 */
html{--fs-scale:1}
html[data-fs="normal"]{--fs-scale:1}
html[data-fs="large"]{--fs-scale:1.09}
html[data-fs="xlarge"]{--fs-scale:1.18}
html[data-fs="xxlarge"]{--fs-scale:1.28}
body{font-size:calc(15.5px * var(--fs-scale))}
.prose{font-size:calc(16px * var(--fs-scale))}
.prose h1{font-size:calc(24px * var(--fs-scale))}
.prose h2{font-size:calc(21px * var(--fs-scale))}
.prose h3{font-size:calc(18px * var(--fs-scale))}
.prose h4{font-size:calc(16px * var(--fs-scale))}
.prose code,.prose pre code{font-size:calc(13.5px * var(--fs-scale))}
.post-card-title{font-size:calc(18.5px * var(--fs-scale))}
.post-card-excerpt{font-size:calc(14px * var(--fs-scale))}
.comment-text{font-size:calc(14.5px * var(--fs-scale))}
.archive-month li{font-size:calc(14.5px * var(--fs-scale))}
.link-info strong{font-size:calc(14.5px * var(--fs-scale))}

/* ---------- 右下角常驻按钮组：上是回到顶部，下是外观模式 ---------- */
.ap-fab{position:fixed;right:24px;bottom:24px;z-index:60;display:flex;flex-direction:column;align-items:center;gap:10px}
.back-to-top{width:46px;height:46px;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(120,130,148,.74);color:#fff;cursor:pointer;box-shadow:0 6px 20px rgba(28,42,74,.18);backdrop-filter:blur(6px);font-size:12px;font-weight:700;letter-spacing:.5px;transition:transform .24s var(--ease),background .24s var(--ease),box-shadow .24s var(--ease)}
.back-to-top:hover{transform:translateY(-3px);background:var(--accent);box-shadow:0 10px 26px rgba(28,42,74,.26)}
.back-to-top:active{transform:translateY(-1px)}
.back-to-top:focus-visible{outline:3px solid var(--accent-2);outline-offset:3px}
.back-to-top svg{width:22px;height:22px;display:block;fill:currentColor}
html[data-theme="dark"] .back-to-top{background:rgba(150,162,184,.74)}
html[data-theme="dark"] .back-to-top:hover{background:var(--accent)}

/* 外观模式按钮：自动 / 日间 / 夜间，常驻，不依赖回到顶部开关 */
.ap-theme-wrap{position:relative}
.ap-theme-btn{position:relative;width:46px;height:46px;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(120,130,148,.74);color:#fff;cursor:pointer;box-shadow:0 6px 20px rgba(28,42,74,.18);backdrop-filter:blur(6px);transition:transform .24s var(--ease),background .24s var(--ease)}
.ap-theme-btn:hover{transform:translateY(-3px);background:var(--accent)}
.ap-theme-btn:focus-visible{outline:3px solid var(--accent-2);outline-offset:3px}
.ap-theme-btn svg{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:1.8}
.ap-theme-badge{position:absolute;right:-2px;bottom:-2px;min-width:17px;height:17px;padding:0 3px;border-radius:9px;background:var(--card);color:var(--accent);font-size:10px;line-height:17px;font-weight:700;text-align:center;letter-spacing:0;box-shadow:0 1px 5px rgba(0,0,0,.18)}
html[data-theme="dark"] .ap-theme-btn{background:rgba(150,162,184,.74)}
html[data-theme="dark"] .ap-theme-btn:hover{background:var(--accent)}
.ap-theme-menu{position:absolute;right:56px;bottom:0;width:174px;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-hover);display:flex;flex-direction:column;gap:2px}
.ap-theme-menu[hidden]{display:none}
.ap-theme-menu-title{padding:4px 10px 6px;font-size:11.5px;color:var(--muted);letter-spacing:.5px}
.ap-theme-menu button{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--text);font-size:13.5px;text-align:left;cursor:pointer}
.ap-theme-menu button:hover{background:var(--accent-soft)}
.ap-theme-menu button.is-active{background:var(--accent-soft);color:var(--accent);font-weight:600}
.ap-theme-menu .ap-tm-ico{width:16px;text-align:center;font-size:14px;flex:none}
.ap-theme-menu small{font-size:11px;color:var(--muted);font-weight:400}
.ap-theme-menu .ap-tm-check{margin-left:auto;font-style:normal;color:var(--accent);opacity:0}
.ap-theme-menu button.is-active .ap-tm-check{opacity:1}
@media(max-width:720px){.ap-fab{right:16px;bottom:16px}.back-to-top,.ap-theme-btn{width:42px;height:42px}.ap-theme-menu{right:52px}}
@media(prefers-reduced-motion:reduce){.back-to-top,.ap-theme-btn{transition-duration:.01ms!important}}
@media(max-width:420px){.header-inner{gap:8px}.header-search{width:104px}.header-search input{font-size:13px;padding-left:8px}}
