
:root{
  --ink:#1c1a17; --paper:#fdfcf9; --accent:#7a1f1f;
  --muted:#6b6457; --rule:#e3ddcf; --bg:#e9e6dd;
  --ok:#2f6b3f; --draft:#9a6a16;
  --panel:rgba(253,252,249,.9); --hover:#ffffff;
  --flash:rgba(122,31,31,.15);
}
html[data-theme="dark"]{
  --ink:#e7e2d7; --paper:#201e1b; --accent:#e0938f;
  --muted:#9b9486; --rule:#3a352d; --bg:#15130f;
  --ok:#7dc08c; --draft:#d6aa5a;
  --panel:rgba(32,30,27,.9); --hover:#2a2722;
  --flash:rgba(224,147,143,.18);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:"Source Han Serif SC","Noto Serif CJK SC","Songti SC",
              "FZShuSong-Z01","SimSun",serif;
  line-height:1.95; font-size:18px;
  transition:background .3s ease, color .3s ease;
}
a{color:inherit}
.topbar{
  position:sticky; top:0; z-index:10;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  min-height:3.1rem; line-height:1;
  padding:.4rem clamp(1rem,4vw,2rem);
  background:var(--panel); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--rule);
  font-family:system-ui,-apple-system,sans-serif; font-size:14px;
  transition:background .3s ease, border-color .3s ease;
}
.topbar a{text-decoration:none}
.topbar .home{color:var(--muted)}
.topbar .home:hover{color:var(--ink)}
.topbar .pdf{
  border:1px solid var(--accent); color:var(--accent);
  padding:.32rem .9rem; border-radius:7px; white-space:nowrap;
  transition:background .15s,color .15s;
}
.topbar .pdf:hover{background:var(--accent); color:#fff}
.page{
  max-width:42rem; margin:2.5rem auto;
  padding:3.5rem clamp(1.3rem,5vw,4rem);
  background:var(--paper); counter-reset:chapter section;
  box-shadow:0 1px 3px rgba(0,0,0,.07),0 10px 34px rgba(0,0,0,.06);
  transition:background .3s ease, color .3s ease;
}
h1.title{text-align:center; font-size:1.7rem; font-weight:700; margin:0 0 .5rem; letter-spacing:.06em}
.subtitle{text-align:center; color:var(--muted); font-size:.82rem; line-height:1.85; margin:0 0 2.6rem}
.chapter{counter-reset:section}
.chapter:not(.unnumbered){counter-increment:chapter}
.chapter>h2{text-align:center; font-size:1.16rem; font-weight:700; margin:2.5rem 0 1.2rem}
.chapter>h2::before{content:"第" counter(chapter,cjk-ideographic) "章　"}
.chapter.unnumbered>h2::before{content:none}
.section-h{counter-increment:section; text-align:center; font-weight:700; font-size:1.02rem; margin:1.9rem 0 1rem}
.section-h::before{content:"第" counter(section,cjk-ideographic) "节　"}
.art{margin:0 0 1rem; counter-reset:kuan}
.art>p{margin:0 0 .5rem; text-indent:2em; text-align:justify}
.artno{font-weight:700}
.artno.branch{color:var(--ink)}
p.loose{text-indent:2em; text-align:justify; margin:.5rem 0}
p.center-note{text-indent:0; text-align:center; font-size:.9rem; color:var(--muted); margin:1.2rem 0}
ol.kuan{list-style:none; margin:.35rem 0; padding:0}
ol.kuan>li{counter-increment:kuan; text-indent:2em; text-align:justify; margin:.2rem 0}
ol.kuan>li::before{content:"（" counter(kuan,cjk-ideographic) "）"}
strong{font-weight:700}
a.ref{color:var(--accent); text-decoration:none; border-bottom:1px dotted var(--accent)}
a.ref.broken{color:red}
.sub-heading{font-weight:700; font-size:1.02rem; margin:1.9rem 0 1rem; text-align:center}
sup.fn{font-size:.7em; line-height:0}
sup.fn a{color:var(--accent); text-decoration:none}
.footnotes{margin-top:3rem; padding-top:1rem; border-top:1px solid var(--rule); font-size:.82rem; color:var(--ink)}
.footnotes ol{padding-left:1.4em; margin:0}
.footnotes li{text-indent:0; margin:.4rem 0; line-height:1.7}
.footnotes a.back{text-decoration:none; color:var(--muted); margin-left:.3em}
@media (max-width:600px){
  body{font-size:17px}
  .page{margin:0; padding:2rem 1.2rem; box-shadow:none}
}

/* ---- 会议记录格式 ---- */
.meeting-info{text-align:center;margin:0 0 .8rem}
.meeting-info table{margin:0 auto;border-spacing:.8rem .25rem;font-size:.9rem}
.meeting-info td.mlabel{white-space:nowrap;text-align:right;color:var(--muted)}
.meeting-info td.mcontent{text-align:left}
.storage-basis{text-align:center;font-size:.78rem;color:var(--muted);margin:.3rem 0 .8rem}
hr.full-rule{border:none;border-top:.5px solid var(--ink);margin:.6rem 0}
hr.half-rule{border:none;border-top:.3px solid var(--muted);width:50%;margin:.6rem auto;display:block}
.min-section{font-weight:700;font-size:1.05rem;margin:1.4rem 0 .7rem;text-align:left}
.min-subsection{font-weight:700;font-size:1rem;margin:1.1rem 0 .5rem;text-align:left}
p.speech{text-indent:0;margin:.45rem 0 .2rem;text-align:justify}
p.speech strong{font-weight:700}
p.min-para{text-indent:2em;text-align:justify;margin:.4rem 0}
.attendance-list{margin:.5rem 0}
.attendee{padding-left:2em;margin:.2rem 0;font-size:.97rem}
.motion-block{border-left:3px solid var(--ink);padding:.65rem 1.5rem;margin:1rem 0;background:rgba(0,0,0,.02)}
.motion-block p{margin:.3rem 0;text-indent:0}
.vote-wrap{margin:.7rem 0}
.vote-block{border:.5px solid var(--ink);padding:.4rem 1.5em;font-size:.97rem;text-indent:2em;text-align:left}
.signature-row{display:flex;justify-content:space-around;margin:3rem 0 1rem;text-align:center;font-size:.97rem}

/* ---- 裁决书 / ruling 格式 ---- */
.party-block{margin:.7rem 0 .7rem}
.party-block .party-label{font-weight:700; margin:0}
.party-block .party-content{text-indent:2em; margin:0}
.section-label{font-weight:700; margin:1.6rem 0 .6rem}
.ruling-items{margin:.5rem 0 1rem; counter-reset:ruling}
.ruling-item{counter-increment:ruling; display:grid; grid-template-columns:4em 1fr;
             margin:.5rem 0; text-align:justify}
.ruling-item .ruling-num{font-size:1em; white-space:nowrap; padding-left:2em}
.ruling-item .ruling-text{text-align:justify}
.opinion-items{margin:.5rem 0 1rem; counter-reset:opinion}
.opinion-item{counter-increment:opinion; display:grid; grid-template-columns:4em 1fr;
              margin:.5rem 0; text-align:justify}
.opinion-item .ruling-num{font-size:1em; white-space:nowrap; padding-left:2em}
.opinion-item .ruling-text{text-align:justify}
.ruling-date{text-align:right; margin:1.2rem 0 .5rem}
.ruling-vote-record{border:.5px solid var(--ink);padding:.8rem 1.5em;margin:1.2rem 0}
.ruling-vote-record .vote-header{font-weight:700;margin:0 0 .5rem}
.ruling-vote-record table{border-collapse:collapse;width:100%}
.ruling-vote-record td{padding:.25rem .6rem;vertical-align:top}
.ruling-vote-record td:first-child{white-space:nowrap}
.opinion-title-block{text-align:center; margin:2rem 0 1rem}
.opinion-title-block h2,.opinion-title-block h3{
  margin:.2rem 0; font-size:1.1rem; font-weight:700; letter-spacing:.04em}
.tag.closed{color:#555; background:rgba(0,0,0,.07)}

/* ---- 索引页 ---- */
.index{max-width:46rem; margin:0 auto; padding:clamp(2rem,6vw,4rem) clamp(1.3rem,5vw,3rem)}
.index h1{text-align:center; font-size:1.9rem; letter-spacing:.08em; margin:0 0 .4rem}
.index .lead{text-align:center; color:var(--muted); font-size:.9rem; margin:0 0 1.8rem}

/* ---- 改革横幅 ---- */
.reform-banner{
  position:relative; margin:0 0 2.6rem; padding:1.1rem 1.4rem 1.1rem 1.5rem;
  border:1px solid var(--accent); border-left:4px solid var(--accent);
  border-radius:10px; background:var(--flash);
  font-size:.92rem; line-height:1.85;
}
.reform-banner .rb-label{
  display:inline-block; font-family:system-ui,-apple-system,sans-serif;
  font-size:.7rem; letter-spacing:.22em; font-weight:700;
  color:var(--accent); margin:0 0 .35rem;
}
.reform-banner .rb-title{font-weight:700; color:var(--ink); margin:0 0 .25rem; font-size:1.02rem}
.reform-banner .rb-text{color:var(--ink); margin:0}
.reform-banner .rb-text a{color:var(--accent); text-decoration:none; border-bottom:1px dotted var(--accent)}
.reform-banner .rb-text a:hover{background:var(--flash)}
.cat{margin:2.2rem 0 1rem; font-size:1.05rem; font-weight:700; color:var(--accent);
     border-bottom:1px solid var(--rule); padding-bottom:.4rem}
.law-list{list-style:none; padding:0; margin:0}
.law-list li{margin:.2rem 0}
.law-link{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.7rem .9rem; text-decoration:none; border-radius:9px;
  transition:background .12s;
}
.law-link:hover{background:var(--hover)}
.law-name{font-size:1.05rem}
.tag{font-family:system-ui,sans-serif; font-size:.72rem; padding:.16rem .55rem; border-radius:20px; white-space:nowrap}
.tag.ok{color:var(--ok); background:rgba(47,107,63,.1)}
.tag.draft{color:var(--draft); background:rgba(154,106,22,.12)}
.tag.repealed{color:var(--accent); background:rgba(122,31,31,.1)}
.tag.sealed{color:var(--muted); background:rgba(0,0,0,.06)}
.law-list li .law-link .law-name.repealed-name{text-decoration:line-through; opacity:.7}

/* ---- 制度改革纪事：社长令框 / 法律清单 ---- */
.decree-box{border:.5px solid var(--ink); padding:1.1rem 1.6rem; margin:1.6rem 0; border-radius:6px}
.decree-box .decree-center{text-indent:0; text-align:center; margin:.2rem 0 .7rem; font-weight:700}
.decree-box .decree-right{text-indent:0; text-align:right; margin:.7rem 0 0}
.decree-box .decree-para{text-indent:2em; text-align:justify; margin:.45rem 0}
p.block-list{text-indent:0; padding-left:2em; text-align:left; margin:1rem 0}

/* ---- 数据表格（法条附录等） ---- */
.table-wrap{overflow-x:auto; margin:1.5rem 0; text-align:center}
table.data-table{border-collapse:collapse; margin:0 auto;
  font-size:.92rem; line-height:1.6}
table.data-table th,table.data-table td{
  border:.5px solid var(--rule); padding:.4rem .9rem; text-align:center}
table.data-table th{font-weight:700; background:rgba(0,0,0,.035)}
html[data-theme="dark"] table.data-table th{background:rgba(255,255,255,.05)}

/* ---- 动效：平滑滚动与跳转高亮 ---- */
html{scroll-behavior:smooth}
/* 跳转目标避开顶栏遮挡 */
.art, .footnotes li, sup.fn, .min-section, .min-subsection,
.chapter>h2, .chapter.unnumbered>h2{scroll-margin-top:4.8rem}
a.ref{transition:color .15s, border-color .15s, background .15s}
a.ref:hover{background:var(--flash); border-bottom-style:solid}
/* 落点高亮：淡色渐隐 */
@keyframes ref-flash{
  0%{background:var(--flash); box-shadow:0 0 0 .35em var(--flash)}
  70%{background:var(--flash); box-shadow:0 0 0 .35em var(--flash)}
  100%{background:transparent; box-shadow:0 0 0 .35em transparent}
}
.flash{animation:ref-flash 1.8s ease-out; border-radius:3px}

/* ---- 目录侧边栏（宽屏，含滚动高亮） ---- */
.toc{display:none}
@media (min-width:1200px){
  .toc{
    display:block; position:fixed; top:4.8rem; left:calc(50% - 36rem);
    width:13.5rem; max-height:calc(100vh - 7rem); overflow:auto;
    font-family:system-ui,-apple-system,sans-serif; font-size:.85rem;
    line-height:1.45; padding-right:.4rem;
  }
}
.toc-title{font-weight:700; color:var(--muted); margin:0 0 .55rem;
  font-size:.8rem; letter-spacing:.18em}
.toc ul{list-style:none; margin:0; padding:0}
.toc li{margin:.08rem 0}
.toc li.toc-unnum{margin-top:.3rem}
.toc a{
  display:block; text-decoration:none; color:var(--muted);
  padding:.26rem .65rem; border-left:2px solid transparent;
  border-radius:0 5px 5px 0;
  transition:color .18s, border-color .18s, background .18s;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.toc a:hover{color:var(--ink); background:var(--hover)}
.toc a.active{color:var(--accent); border-left-color:var(--accent);
  background:var(--hover); font-weight:700}
.toc a .hsp{width:.4em !important}

/* ---- 深色模式切换按钮（悬浮） ---- */
.theme-toggle{
  position:fixed; right:1.1rem; bottom:1.1rem; z-index:30;
  width:2.7rem; height:2.7rem; border-radius:50%;
  border:1px solid var(--rule); background:var(--panel); color:var(--ink);
  cursor:pointer; font-size:1.15rem; line-height:1;
  display:flex; align-items:center; justify-content:center;
  backdrop-filter:blur(8px); box-shadow:0 2px 12px rgba(0,0,0,.18);
  transition:background .3s ease, color .3s ease,
             border-color .3s ease, transform .15s ease;
}
.theme-toggle:hover{transform:scale(1.09)}
.theme-toggle:active{transform:scale(.96)}
/* 页面载入时整体轻微浮现 */
@keyframes page-rise{from{opacity:0; transform:translateY(10px)} to{opacity:1; transform:none}}
.page, .index{animation:page-rise .45s ease-out both}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .flash{animation:none}
  .page, .index{animation:none}
}
