/* 编程笔记 · 共享样式(由各页面引入) */
:root{
  --paper:#f7f4ec; --ink:#2a2520; --ink-light:#5a544c;
  --red:#a82929; --gold:#b08d3a; --line:#d8cdb6;
  --code-bg:#2a2520; --code-fg:#f7f4ec;
}
.dark{
  --paper:#1c1a17; --ink:#ece6d4; --ink-light:#9d9788;
  --red:#d96b6b; --gold:#d4a64a; --line:#3a352d;
  --code-bg:#121110; --code-fg:#ece6d4;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:64px}
body{background:var(--paper);color:var(--ink);
  font-family:"Source Han Serif SC","Noto Serif SC","宋体",SimSun,serif;
  line-height:1.85;display:flex;flex-direction:column;min-height:100vh;transition:background .3s,color .3s}
a{color:var(--red);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:880px;margin:0 auto;padding:0 22px;width:100%}

/* 顶部 */
header.site-head{
  text-align:center;padding:50px 20px 26px;border-bottom:1px solid var(--line);
  position:relative;background:rgba(255,255,255,.15);
}
header.site-head.compact{padding:28px 20px 18px}
.site-title{font-size:42px;font-weight:700;letter-spacing:2px;color:var(--ink);margin-bottom:6px}
.site-sub{font-size:14px;color:var(--ink-light);letter-spacing:3px}

/* 主导航 */
nav.main-nav{position:sticky;top:0;z-index:10;background:var(--paper);
  border-bottom:1px solid var(--line);text-align:center;padding:10px 14px;
  box-shadow:0 1px 0 rgba(0,0,0,.02);transition:background .3s}
nav.main-nav a{color:var(--ink);font-size:14px;margin:0 18px;letter-spacing:1.5px;
  display:inline-block;padding:2px 4px;border-bottom:2px solid transparent}
nav.main-nav a:hover,nav.main-nav a.active{color:var(--red);
  text-decoration:none;border-bottom-color:var(--red)}
nav.main-nav .sep{color:var(--line);font-size:12px}

/* 通用版块 */
main{flex:1;padding:30px 0}
section.block{
  background:rgba(255,255,255,.45);border:1px solid var(--line);
  border-radius:2px;padding:28px 32px;margin-bottom:24px;position:relative;
}
.dark section.block{background:rgba(0,0,0,.18)}
h2{font-size:20px;font-weight:700;color:var(--ink);margin-bottom:16px;
  padding-left:14px;border-left:4px solid var(--red);letter-spacing:2px}
h3{font-size:17px;font-weight:700;color:var(--ink);margin:18px 0 8px;
  padding-left:10px;border-left:3px solid var(--gold)}
h4{font-size:15px;font-weight:700;color:var(--red);margin:14px 0 6px;letter-spacing:1px}
h4 .meta{color:var(--ink-light);font-weight:400;font-size:13px;margin-left:6px}
p{font-size:15px;margin-bottom:8px}
p.no-indent{text-indent:0}
em.tag{display:inline-block;padding:2px 8px;border:1px solid var(--gold);
  color:var(--ink-light);font-size:12px;letter-spacing:1px;margin-right:4px;font-style:normal}
em.tag.dif{color:var(--red);border-color:var(--red)}
ul,ol{padding-left:22px;margin:6px 0 12px}
li{margin:4px 0;font-size:14.5px}

/* 文章卡片 */
.post-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px}
@media(max-width:600px){.post-grid{grid-template-columns:1fr}}
.post-card{border:1px dashed var(--line);padding:14px 16px;background:rgba(255,255,255,.35);
  border-radius:2px;transition:all .2s;display:block;color:var(--ink)}
.post-card:hover{border-color:var(--red);background:rgba(255,255,255,.7);
  transform:translateY(-1px);text-decoration:none}
.post-card h4{margin:0 0 4px;color:var(--ink);font-size:15px}
.post-card .meta{font-size:12px;color:var(--ink-light);margin-bottom:6px}
.post-card .summary{font-size:13.5px;color:var(--ink-light);line-height:1.6}

/* 文章正文版块(码集页) */
article.entry{padding:6px 0 14px;border-bottom:1px dashed var(--line);margin-bottom:18px}
article.entry:last-child{border-bottom:none}
article.entry h4{margin-top:22px}
article.entry h4:first-child{margin-top:6px}

/* 代码块 */
pre.code{
  position:relative;background:var(--code-bg);color:var(--code-fg);
  padding:34px 16px 14px 16px;border-radius:2px;overflow-x:auto;
  font-family:Consolas,Monaco,Menlo,monospace;font-size:13px;line-height:1.7;
  margin:10px 0 14px;white-space:pre
}
pre.code::before{
  content:attr(data-fname);position:absolute;top:0;left:0;right:0;
  padding:4px 16px;background:rgba(255,255,255,.06);color:#9d9788;
  font-size:11px;letter-spacing:1px;border-bottom:1px solid rgba(255,255,255,.08)
}
.copy-btn{position:absolute;top:6px;right:8px;background:rgba(255,255,255,.1);
  color:#9d9788;border:1px solid rgba(255,255,255,.15);padding:2px 8px;
  font-size:11px;cursor:pointer;border-radius:2px;font-family:inherit;letter-spacing:1px}
.copy-btn:hover{background:rgba(255,255,255,.18);color:var(--paper)}
.copy-btn.copied{color:#7bd88f}

/* 速查卡 */
details.cs{margin:8px 0;border:1px solid var(--line);border-radius:2px;background:rgba(255,255,255,.35)}
.dark details.cs{background:rgba(0,0,0,.18)}
details.cs>summary{padding:10px 16px;cursor:pointer;font-weight:700;
  color:var(--ink);list-style:none;position:relative;letter-spacing:1px}
details.cs>summary::after{content:"+";position:absolute;right:16px;color:var(--red);
  font-size:18px;font-weight:400}
details.cs[open]>summary::after{content:"−"}
details.cs>summary::-webkit-details-marker{display:none}
details.cs>div{padding:4px 16px 14px}

/* 标签云 */
.tagcloud{margin-top:8px}
.tagcloud em.tag{margin:3px 4px 3px 0;cursor:default}

/* 答疑 */
.qa-item{margin:14px 0;padding:12px 16px;background:rgba(255,255,255,.35);
  border-left:3px solid var(--red);border-radius:2px}
.qa-item .q{color:var(--ink);font-weight:700;margin-bottom:6px}
.qa-item .q::before{content:"问 ";color:var(--red);font-weight:700;margin-right:4px}
.qa-item .a{color:var(--ink-light)}
.qa-item .a::before{content:"答 ";color:var(--red);font-weight:700;margin-right:4px}

/* 动态日志 */
.timeline{list-style:none;padding-left:0}
.timeline li{position:relative;padding:10px 0 10px 22px;border-bottom:1px dashed var(--line);font-size:14.5px}
.timeline li::before{content:"";position:absolute;left:6px;top:18px;
  width:6px;height:6px;background:var(--red);border-radius:50%}
.timeline .date{color:var(--ink-light);font-size:13px;margin-right:8px;letter-spacing:1px}

/* 信息列表 */
.info-list{list-style:none;padding:0;font-size:14.5px}
.info-list li{padding:8px 0;border-bottom:1px dashed var(--line);display:flex}
.info-list li:last-child{border-bottom:none}
.info-list .label{flex:0 0 130px;color:var(--ink-light);letter-spacing:1px}
.info-list .value{color:var(--ink)}

/* 提示框 */
.notice-box{background:rgba(168,41,41,.04);border-left:3px solid var(--red);
  padding:14px 18px;font-size:14.5px;margin:12px 0}
.notice-box.ok{background:rgba(47,125,70,.06);border-left-color:#2f7d46}
.notice-box .t{color:var(--red);font-weight:700;margin-bottom:4px;display:block}
.notice-box.ok .t{color:#2f7d46}

/* Hero */
.hero{text-align:center;padding:8px 0 18px}
.hero .q{font-size:16px;color:var(--ink-light);letter-spacing:2px;font-style:italic}
.hero .q::before,.hero .q::after{content:"◆ ";color:var(--gold);font-size:11px;vertical-align:middle}

/* 统计条 */
.stat-row{display:flex;justify-content:center;gap:30px;margin:14px 0;flex-wrap:wrap}
.stat-item{text-align:center}
.stat-item .n{font-size:26px;font-weight:700;color:var(--red);letter-spacing:1px}
.stat-item .l{font-size:12px;color:var(--ink-light);letter-spacing:2px}

/* 浮动按钮 */
.fab{position:fixed;right:20px;bottom:20px;width:42px;height:42px;border-radius:50%;
  background:var(--red);color:#fff;border:none;cursor:pointer;font-size:18px;
  box-shadow:0 2px 6px rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;
  z-index:20;transition:transform .2s,opacity .2s;opacity:0;pointer-events:none}
.fab.show{opacity:1;pointer-events:auto}
.fab:hover{transform:scale(1.08)}
.fab.dark{right:20px;bottom:74px;width:38px;height:38px;font-size:16px;background:var(--ink)}

/* 页脚 */
footer{border-top:1px solid var(--line);padding:28px 20px;text-align:center;
  color:var(--ink-light);font-size:13px;background:rgba(255,255,255,.3);line-height:2}
footer .brand{font-size:16px;color:var(--ink);letter-spacing:3px;margin-bottom:6px;font-weight:700}
footer .beian{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);font-size:12.5px}
footer .beian a{color:var(--ink-light);margin:0 6px}
footer .beian a:hover{color:var(--red)}
.gov-icon{display:inline-block;width:13px;height:13px;vertical-align:-2px;margin-right:3px}
footer .nointer{color:var(--gold);font-size:12px;letter-spacing:2px;margin-top:6px}

/* 备案专用 */
.compliance-box{background:rgba(176,141,58,.06);border:1px solid var(--gold);
  padding:16px 20px;border-radius:2px;font-size:14px;margin:14px 0}

/* 锚点偏移 */
section.block, article.entry{scroll-margin-top:70px}

@media(max-width:600px){
  .site-title{font-size:30px;letter-spacing:1px}
  h2{font-size:18px}
  section.block{padding:22px 20px}
  nav.main-nav a{margin:0 8px;font-size:13px}
  .info-list li{flex-direction:column}
  .info-list .label{flex:none;margin-bottom:2px}
}
