:root{
  --ink:#1f2b38;
  --body-c:#3a4450;
  --sub:#5f6b76;
  --faint:#8b95a0;
  --rule:#c9d1d9;
  --rule-l:#e4e9ee;
  --band:#f4f6f8;
  --mat:#eceff2;
  --accent:#1a4f8b;
  --accent-d:#143c6b;
  --accent-l:#c7d5e6;
  --hdr-h:64px;
  --serif:"Songti SC","STSong","SimSun","Noto Serif CJK SC","Source Han Serif SC",serif;
  --sans:-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  --num:Georgia,"Times New Roman","Songti SC",serif;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--sans);font-size:16px;line-height:1.9;color:var(--body-c);background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
ol,ul{list-style:none}
::selection{background:var(--accent);color:#fff}
[id]{scroll-margin-top:calc(var(--hdr-h) + 16px)}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
.topline{height:3px;background:var(--accent)}
.btn{display:inline-block;background:var(--accent);color:#fff;padding:10px 22px;font-size:14px;letter-spacing:.08em;border:1px solid var(--accent);border-radius:2px;cursor:pointer;font-family:var(--sans);line-height:1.6;white-space:nowrap}
.btn:hover{background:var(--accent-d);border-color:var(--accent-d)}
.btn-line{background:#fff;color:var(--ink);border:1px solid var(--rule)}
.btn-line:hover{background:#fff;color:var(--accent);border-color:var(--accent)}
.more{font-size:14px;color:var(--accent);white-space:nowrap}
.more:hover{text-decoration:underline}
.more::after{content:" ›"}
p a.lnk,.lnk{color:var(--accent);border-bottom:1px solid var(--accent-l)}
.lnk:hover{border-bottom-color:var(--accent)}

/* ═════════════ 页头 ═════════════ */
.site-hd{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.98);border-bottom:1px solid var(--rule)}
.hd{display:flex;align-items:center;gap:28px;height:var(--hdr-h)}
.brand{display:flex;flex-direction:column;line-height:1.25;white-space:nowrap}
.brand-n{font-family:var(--serif);font-weight:700;font-size:19px;color:var(--ink);letter-spacing:.08em}
.brand-s{font-size:11.5px;color:var(--faint);letter-spacing:.14em;margin-top:2px}
.gnav{margin-left:auto;align-self:stretch}
.gnav>ul{display:flex;height:100%}
.gi{position:relative;display:flex}
.gl{display:flex;align-items:center;padding:0 16px;font-size:15px;color:var(--body-c);letter-spacing:.06em;position:relative;white-space:nowrap}
.gl:hover{color:var(--accent)}
.gi.is-active>.gl{color:var(--accent);font-weight:600}
.gi.is-active>.gl::after{content:"";position:absolute;left:16px;right:16px;bottom:-1px;height:2px;background:var(--accent)}
.gi-contact{display:none}
.sub{display:none;position:absolute;top:100%;left:0;min-width:168px;background:#fff;border:1px solid var(--rule);border-top:2px solid var(--accent);box-shadow:0 8px 20px rgba(31,43,56,.08);padding:6px 0}
.has-sub:hover .sub,.has-sub:focus-within .sub{display:block}
.sub a{display:block;padding:7px 18px;font-size:14px;color:var(--body-c);white-space:nowrap;line-height:1.7}
.sub a:hover{background:var(--band);color:var(--accent)}
.sub a[aria-current]{color:var(--accent);font-weight:600}
.hd-cta{padding:8px 18px}
.menu-btn{display:none;background:#fff;border:1px solid var(--rule);border-radius:2px;padding:5px 14px;font-size:14px;cursor:pointer;color:var(--ink)}
.menu-btn::before{content:"≡";margin-right:6px;font-size:16px}
.site-hd.open .menu-btn::before{content:"×"}
@media (max-width:1000px){
  .gl{padding:0 11px;font-size:14.5px}
  .gi.is-active>.gl::after{left:11px;right:11px}
}
@media (max-width:860px){
  .hd{gap:12px}
  .brand-s{display:none}
  .hd-cta{margin-left:auto;padding:6px 14px;font-size:13.5px}
  .menu-btn{display:block}
  .gnav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--rule);box-shadow:0 10px 24px rgba(31,43,56,.1);max-height:calc(100vh - var(--hdr-h));overflow-y:auto;margin:0}
  .site-hd.open .gnav{display:block}
  .gnav>ul{display:block;padding:6px 0 12px}
  .gi{display:block;border-bottom:1px solid var(--rule-l)}
  .gi-contact{display:block}
  .gl{padding:12px 24px;font-size:15.5px}
  .gi.is-active>.gl::after{display:none}
  .gi.is-active>.gl{box-shadow:inset 3px 0 0 var(--accent)}
  .sub,.has-sub:hover .sub,.has-sub:focus-within .sub{display:flex;flex-wrap:wrap;position:static;border:0;box-shadow:none;padding:0 16px 10px 36px;min-width:0;gap:0 4px}
  .sub a{padding:4px 10px;font-size:14px;color:var(--sub)}
  .sub a[aria-current]{background:var(--band)}
}

/* ═════════════ 栏目头 ═════════════ */
.pagehead{background:var(--band);border-bottom:1px solid var(--rule)}
.pagehead .wrap{padding-top:22px}
.crumb{font-size:13px;color:var(--faint)}
.crumb a:hover{color:var(--accent)}
.crumb i{font-style:normal;margin:0 8px;color:var(--rule)}
.crumb span{color:var(--sub)}
.pagehead h1{font-family:var(--serif);font-weight:700;font-size:clamp(25px,3vw,32px);color:var(--ink);letter-spacing:.08em;line-height:1.45;margin-top:20px}
.ph-desc{font-size:14.5px;color:var(--sub);margin-top:8px;max-width:50em}
.tabs{display:flex;gap:4px;margin-top:22px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar,.tabs3::-webkit-scrollbar{display:none}
.tabs a{flex:none;padding:10px 18px 11px;font-size:15px;color:var(--sub);border-bottom:2px solid transparent;margin-bottom:-1px;letter-spacing:.04em;white-space:nowrap}
.tabs a:hover{color:var(--accent)}
.tabs a[aria-current]{color:var(--accent);font-weight:600;border-bottom-color:var(--accent);background:#fff;border-top:1px solid var(--rule);border-left:1px solid var(--rule);border-right:1px solid var(--rule)}
.tabs3{display:flex;gap:18px;padding:12px 0 14px;border-top:1px solid var(--rule);margin-top:-1px;overflow-x:auto;scrollbar-width:none;background:#fff;margin-left:-24px;margin-right:-24px;padding-left:24px;padding-right:24px}
.t3g{display:flex;align-items:center;gap:2px;flex:none}
.t3n{font-size:12.5px;color:var(--faint);letter-spacing:.12em;margin-right:6px}
.t3g a{font-size:13.5px;color:var(--sub);padding:3px 8px;border-radius:2px;white-space:nowrap}
.t3g a b{font-family:var(--num);color:var(--faint);margin-right:4px;font-weight:700}
.t3g a:hover{color:var(--accent);background:var(--band)}
.t3g.is-on .t3n{color:var(--accent)}
.t3g.is-on a{color:var(--ink)}
.t3g.is-on a b{color:var(--accent)}

/* ═════════════ 内页章节 ═════════════ */
main{display:block}
section.doc{padding:60px 0 0}
main>section.doc:first-child{padding-top:48px}
section.doc.band{background:var(--band);border-top:1px solid var(--rule-l);border-bottom:1px solid var(--rule-l);margin-top:64px;padding:56px 0 60px}
section.doc.band + section.doc{padding-top:56px}
.sec-title{font-family:var(--serif);font-weight:700;font-size:clamp(21px,2.4vw,25px);color:var(--ink);letter-spacing:.06em;line-height:1.5}
.sec-title::after{content:"";display:block;width:40px;height:3px;background:var(--accent);margin-top:12px}
.sec-lede{max-width:47em;margin-top:18px}
.sub-title{font-family:var(--serif);font-size:18px;font-weight:700;color:var(--ink);letter-spacing:.05em;margin-top:40px;line-height:1.5}
.sub-title .no{font-family:var(--num);color:var(--accent);margin-right:10px}
.prose{max-width:47em}
.prose p+p{margin-top:.8em}
.note{font-size:13px;color:var(--faint);margin-top:18px;line-height:1.8}
.end{height:72px}

/* 正文加侧注 */
.article{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:44px;margin-top:26px;align-items:start}
.article .prose p{font-size:15.5px}
.aside{background:var(--band);border-top:3px solid var(--accent);padding:18px 22px 20px;font-size:14px}
.aside h4{font-family:var(--serif);font-size:15px;color:var(--ink);letter-spacing:.06em;margin-bottom:8px}
.aside li{position:relative;padding-left:14px;line-height:1.75;margin-top:6px;color:var(--body-c)}
.aside li::before{content:"";position:absolute;left:0;top:.75em;width:5px;height:5px;background:var(--accent)}
.aside .src{font-size:12px;color:var(--faint);margin-top:12px}
@media (max-width:900px){.article{grid-template-columns:1fr;gap:24px}}

/* 引文 */
.block-quote{margin-top:36px;border-left:3px solid var(--accent);background:var(--band);padding:22px 28px}
.block-quote p{font-family:var(--serif);font-size:17px;color:var(--ink);letter-spacing:.03em;line-height:1.85}
.block-quote small{display:block;font-family:var(--sans);font-size:13.5px;color:var(--sub);margin-top:10px;line-height:1.85}
.block-quote cite{display:block;font-style:normal;font-size:13px;color:var(--faint);margin-top:10px}

/* 编号要点 */
.points{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;margin-top:24px;counter-reset:pt;border-top:2px solid var(--ink)}
.points>li{counter-increment:pt;position:relative;padding:14px 0 14px 46px;border-bottom:1px solid var(--rule-l)}
.points>li::before{content:counter(pt);position:absolute;left:0;top:13px;font-family:var(--num);font-weight:700;font-size:20px;color:var(--accent);width:34px;text-align:right}
.points b{display:block;font-weight:600;color:var(--ink);font-size:15px;line-height:1.7}
.points p{font-size:13.5px;color:var(--sub);margin-top:4px;line-height:1.8}
.points.one{grid-template-columns:1fr}
@media (max-width:760px){.points{grid-template-columns:1fr}}

/* 横向流程 */
.flow{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px 0;margin-top:24px}
.flow li{display:flex;align-items:center}
.flow span{display:block;border:1px solid var(--rule);background:#fff;padding:8px 14px;font-size:14px;color:var(--ink);line-height:1.6}
.flow li:not(:last-child)::after{content:"→";color:var(--faint);margin:0 8px}
.flow li.hl span{border-color:var(--accent);color:var(--accent);font-weight:600;background:#eef3f9}
.flow-cap{font-size:13px;color:var(--faint);margin-top:10px}

/* 图版 */
.plate{display:grid;gap:18px;margin-top:26px}
.plate.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.plate.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.plate.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.fig{margin:0;border:1px solid var(--rule);background:#fff;display:flex;flex-direction:column}
.fig .ph{aspect-ratio:4/3;overflow:hidden;background:#1d232a}
.fig .ph img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.fig.dia .ph{background:#fff;padding:12px;border-bottom:1px solid var(--rule-l)}
.fig.dia .ph img{object-fit:contain}
.fig .ph img.lowres{object-fit:contain;max-width:min(100%,var(--maxw,100%));margin:auto}
.fig figcaption{font-size:13px;color:var(--sub);padding:9px 13px 10px;line-height:1.7;flex:1}
.fig figcaption .fno{font-family:var(--serif);color:var(--ink);margin-right:8px}
.fig.wide .ph{aspect-ratio:16/9}
.fig.tall .ph{aspect-ratio:3/4}
.fig.sq .ph{aspect-ratio:1/1}
.plate-more{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:10px;font-size:13px;color:var(--faint)}
.plate-more button{background:none;border:0;color:var(--accent);cursor:pointer;font-size:13.5px}
.plate-more button:hover{text-decoration:underline}
.figno{text-align:center;font-size:13.5px;color:var(--ink);margin-top:14px;line-height:1.7}
.figno b{font-family:var(--serif)}
.figno .sub2{color:var(--faint);font-size:12.5px}
@media (max-width:900px){.plate.c4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.plate.c3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.plate.c2,.plate.c3{grid-template-columns:1fr}}

/* 三线表 */
.t3wrap{overflow-x:auto;margin-top:22px}
.tabno{text-align:center;font-size:13.5px;color:var(--ink);margin-bottom:10px}
.tabno b{font-family:var(--serif)}
table.t3{width:100%;border-collapse:collapse;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);font-size:14px;background:#fff}
.t3 th{font-weight:600;color:var(--ink);font-size:13.5px;text-align:left;padding:9px 12px;border-bottom:1px solid var(--ink);white-space:nowrap}
.t3 td{padding:9px 12px;border-bottom:1px solid var(--rule-l);color:var(--body-c);vertical-align:top;line-height:1.75}
.t3 tr:last-child td{border-bottom:none}
.t3 .num{font-family:var(--num);font-variant-numeric:tabular-nums;white-space:nowrap}
.t3 td.new,.t3 tr.ours td{color:var(--accent);font-weight:600}
.t3 tr.grp td{font-family:var(--serif);font-weight:700;color:var(--ink);background:var(--band);letter-spacing:.04em}
.t3 tr.grp td span{font-family:var(--sans);font-weight:400;color:var(--faint);font-size:12.5px;margin-left:8px;letter-spacing:0}
.t3 tr.row{cursor:zoom-in}
.t3 tr.row:hover td{background:#f8fafc;color:var(--accent)}
.t3 .c{text-align:center}
.t3.compact td,.t3.compact th{padding:6px 10px;font-size:13px}

/* 数据条 */
.stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:36px;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);background:#fff}
.stat{padding:18px 20px 20px;border-left:1px solid var(--rule-l)}
.stat:first-child{border-left:none}
.stat b{display:block;font-family:var(--num);font-weight:700;font-size:clamp(20px,2.2vw,26px);color:var(--accent);letter-spacing:.01em;white-space:nowrap}
.stat b small{font-family:var(--sans);font-size:14px;font-weight:400;margin-left:3px}
.stat>span{display:block;font-size:12.5px;color:var(--sub);margin-top:6px;line-height:1.65}
.stats.c3{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){
  .stats,.stats.c3{grid-template-columns:1fr 1fr}
  .stat{border-left:none;border-top:1px solid var(--rule-l);padding:14px 8px 15px}
  .stat:nth-child(-n+2){border-top:none}
}

/* 结尾框 */
.note-box{margin-top:48px;border:1px solid var(--rule);background:var(--band);padding:24px 28px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.note-box p{max-width:44em;font-size:14.5px}
.note-box b{color:var(--ink)}
.note-box .acts{display:flex;gap:10px;flex-wrap:wrap}

/* 翻页 */
.pager{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:64px}
.pg{display:block;border-top:2px solid var(--ink);padding:14px 2px 0;font-family:var(--serif);font-size:17px;color:var(--ink);letter-spacing:.04em;line-height:1.5}
.pg small{display:block;font-family:var(--sans);font-size:12.5px;color:var(--faint);letter-spacing:.1em;margin-bottom:4px}
a.pg:hover{color:var(--accent);border-top-color:var(--accent)}
.pg.next{text-align:right}
.pg.prev small::before{content:"‹ "}
.pg.next small::after{content:" ›"}
span.pg{border-top-color:transparent}

/* ═════════════ 首页 ═════════════ */
.hero{padding:56px 0 0}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:52px;align-items:center}
.hero-kicker{font-size:14px;letter-spacing:.16em;color:var(--accent);margin-bottom:18px}
.hero h1{font-family:var(--serif);font-weight:700;font-size:clamp(27px,3.5vw,40px);line-height:1.42;color:var(--ink);letter-spacing:.05em}
.hero-deck{font-family:var(--serif);font-size:clamp(15px,1.7vw,18.5px);color:var(--sub);letter-spacing:.05em;margin-top:12px}
.hero-lead{margin-top:20px;font-size:15.5px}
.hero-actions{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.hero-fig{margin:0}
.hero-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hero-pair .cell{border:1px solid var(--rule);background:#fff}
.hero-pair .ph{aspect-ratio:4/5;overflow:hidden;background:#1d232a}
.hero-pair img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.hero-pair .cap{text-align:center;font-size:12.5px;color:var(--sub);padding:5px;border-top:1px solid var(--rule-l)}
.hero-pair .aft .cap{color:var(--accent);font-weight:600}
.hero-fig figcaption{font-size:13px;color:var(--sub);margin-top:10px;line-height:1.7}
.hero-fig figcaption b{font-family:var(--serif);color:var(--ink)}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr;gap:32px}}

.idx{padding:68px 0 0}
.idx.band{background:var(--band);border-top:1px solid var(--rule-l);border-bottom:1px solid var(--rule-l);margin-top:68px;padding:56px 0 60px}
.idx.band + .idx{padding-top:56px}
.idx-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;border-bottom:1px solid var(--rule);padding-bottom:12px}
.idx-head h2{font-family:var(--serif);font-weight:700;font-size:clamp(21px,2.4vw,25px);color:var(--ink);letter-spacing:.08em;line-height:1.4;position:relative}
.idx-head h2::after{content:"";position:absolute;left:0;bottom:-13px;width:40px;height:3px;background:var(--accent)}
.idx-head p{font-size:14px;color:var(--sub);margin-top:4px;font-family:var(--sans);font-weight:400;letter-spacing:0}
.idx-lede{max-width:47em;margin-top:22px;font-size:15px}
.idx-2col{display:grid;grid-template-columns:1fr 1fr;gap:48px}
@media (max-width:900px){.idx-2col{grid-template-columns:1fr;gap:56px}}
.metrics{border-top:2px solid var(--ink)}
.metric{display:grid;grid-template-columns:190px minmax(0,1fr);gap:16px;align-items:baseline;padding:14px 4px;border-bottom:1px solid var(--rule-l)}
.metric b{font-family:var(--num);font-size:22px;color:var(--accent);white-space:nowrap}
.metric b small{font-family:var(--sans);font-size:13px;font-weight:400;margin-left:2px}
.metric span{font-size:14px;color:var(--body-c);line-height:1.7}
.metric a{color:var(--accent);font-size:13px;white-space:nowrap}
.ribbon{display:grid;grid-template-columns:repeat(5,1fr);margin-top:26px;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}
.ribbon a{display:block;padding:14px 16px 16px;border-left:1px solid var(--rule-l)}
.ribbon a:first-child{border-left:0}
.ribbon a:hover{background:var(--band)}
.ribbon .r-y{font-family:var(--num);font-weight:700;color:var(--accent);font-size:16px;white-space:nowrap}
.ribbon .r-t{display:block;font-family:var(--serif);font-weight:700;color:var(--ink);font-size:15px;margin-top:2px}
.ribbon .r-n{display:block;font-size:12.5px;color:var(--faint);margin-top:2px}
@media (max-width:900px){.ribbon{grid-template-columns:1fr 1fr}.ribbon a{border-left:0;border-top:1px solid var(--rule-l)}.ribbon a:nth-child(-n+2){border-top:0}}
.partners-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.partners-list li{border:1px solid var(--rule);background:#fff;padding:5px 12px;font-size:14px;color:var(--ink)}
.cta-band{background:var(--ink);color:#c5ced8;margin-top:72px}
.cta-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-top:34px;padding-bottom:34px}
.cta-band h2{font-family:var(--serif);color:#fff;font-size:22px;letter-spacing:.08em;font-weight:700}
.cta-band p{font-size:14px;margin-top:4px}
.cta-band .btn{background:#fff;color:var(--ink);border-color:#fff}
.cta-band .btn:hover{background:var(--accent-l);border-color:var(--accent-l)}

/* 体系图 */
.sysmap{margin-top:28px}
.sm-theory{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.sm-t{border:1px solid var(--rule);border-top:3px solid var(--ink);background:#fff;padding:16px 20px}
.sm-t .k{font-size:12.5px;color:var(--faint);letter-spacing:.14em}
.sm-t h3{font-family:var(--serif);font-size:17px;color:var(--ink);letter-spacing:.05em;margin-top:2px}
.sm-t p{font-size:13.5px;color:var(--sub);margin-top:6px;line-height:1.75}
.sm-arrow{text-align:center;color:var(--faint);font-size:13px;letter-spacing:.2em;padding:10px 0;position:relative}
.sm-arrow::before{content:"";display:block;width:1px;height:16px;background:var(--rule);margin:0 auto 4px}
.sm-stages{display:grid;grid-template-columns:3fr 4fr 3fr;gap:16px}
.sm-s{border:1px solid var(--rule);border-top:3px solid var(--accent);background:#fff;padding:16px 18px 12px}
.sm-s .k{font-size:12.5px;color:var(--accent);letter-spacing:.14em}
.sm-s h3{font-family:var(--serif);font-size:17px;color:var(--ink);letter-spacing:.06em;margin-top:2px}
.sm-s ol{margin-top:10px;border-top:1px solid var(--rule-l);padding-top:6px}
.sm-s li a{display:grid;grid-template-columns:24px minmax(0,1fr);gap:6px;padding:5px 0;font-size:14px;color:var(--ink);line-height:1.6}
.sm-s li a b{font-family:var(--num);color:var(--faint);text-align:right}
.sm-s li a:hover{color:var(--accent)}
.sm-s li a:hover b{color:var(--accent)}
.sm-s li small{display:block;grid-column:2;font-size:12.5px;color:var(--sub);line-height:1.7}
@media (max-width:820px){.sm-theory,.sm-stages{grid-template-columns:1fr}}

/* 工程实例卡（首页） */
.cards3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:28px}
.ccard{border:1px solid var(--rule);background:#fff;display:flex;flex-direction:column}
.ccard .pp{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule-l)}
.ccard .pp .ph{aspect-ratio:1/1;overflow:hidden;background:#1d232a;position:relative}
.ccard .pp img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.ccard .pp .lab{position:absolute;left:0;bottom:0;font-size:11.5px;color:#fff;background:rgba(31,43,56,.78);padding:1px 8px}
.ccard .pp .aft .lab{background:var(--accent)}
.ccard .cb{padding:14px 16px 16px}
.ccard h3{font-family:var(--serif);font-size:15.5px;color:var(--ink);letter-spacing:.03em;line-height:1.55}
.ccard p{font-size:13px;color:var(--sub);margin-top:5px;line-height:1.75}
@media (max-width:900px){.cards3{grid-template-columns:1fr}}

/* ═════════════ 工程实例页 ═════════════ */
.filterbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.case-list{margin-top:8px}
.case-e{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:32px;padding:34px 0;border-bottom:1px solid var(--rule)}
.case-e:last-child{border-bottom:0}
.case-e .pp{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.case-e .cell{border:1px solid var(--rule);background:#fff}
.case-e .ph{aspect-ratio:4/3;overflow:hidden;background:#1d232a;display:flex}
.case-e .ph img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.case-e .ph img.lowres{object-fit:contain}
.case-e .cap{text-align:center;font-size:12.5px;color:var(--sub);padding:5px;border-top:1px solid var(--rule-l)}
.case-e .aft .cap{color:var(--accent);font-weight:600}
.case-e .extra{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}
.case-e .extra .ph{aspect-ratio:3/2}
.case-e .no{font-family:var(--num);font-size:13px;color:var(--faint);letter-spacing:.08em}
.case-e h3{font-family:var(--serif);font-size:19px;color:var(--ink);letter-spacing:.04em;line-height:1.5;margin-top:2px}
.case-e .ctype{display:inline-block;font-size:12.5px;color:var(--accent);border:1px solid var(--accent-l);padding:0 8px;margin-top:8px;border-radius:2px}
.case-e dl{margin-top:14px;border-top:2px solid var(--ink)}
.case-e dl div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;padding:7px 0;border-bottom:1px solid var(--rule-l);font-size:13.5px;line-height:1.75}
.case-e dt{color:var(--faint)}
.case-e dd{color:var(--body-c)}
.case-e dd .ev{margin-top:2px}
@media (max-width:860px){.case-e{grid-template-columns:1fr;gap:18px}}

/* 关键技术 */
.tsec{padding-top:56px}
.tsec+.tsec{border-top:1px solid var(--rule);margin-top:60px}
.t-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:end}
.t-no{font-family:var(--num);font-weight:700;font-size:56px;line-height:.9;color:var(--accent)}
.t-k{font-size:12.5px;color:var(--faint);letter-spacing:.14em}
.t-head h2{font-family:var(--serif);font-weight:700;font-size:clamp(22px,2.6vw,27px);color:var(--ink);letter-spacing:.08em;line-height:1.35}
.def{margin-top:24px;font-family:var(--serif);font-size:17px;color:var(--ink);line-height:1.95;border-left:3px solid var(--accent);padding:4px 0 4px 20px;max-width:46em}
.def cite{display:block;font-family:var(--sans);font-style:normal;font-size:12.5px;color:var(--faint);margin-top:6px}
.tcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:8px}
.tcard{border:1px solid var(--rule);border-top:3px solid var(--accent);background:#fff;padding:22px 22px 18px;display:flex;flex-direction:column}
.tcard .t-no{font-size:40px}
.tcard h2{font-family:var(--serif);font-size:20px;color:var(--ink);letter-spacing:.08em;margin-top:10px}
.tcard .lead{font-size:14px;color:var(--sub);margin-top:6px;line-height:1.8}
.tcard ol{margin-top:14px;border-top:1px solid var(--rule-l);counter-reset:k;flex:1}
.tcard ol li{counter-increment:k;position:relative;padding:9px 0 9px 26px;border-bottom:1px solid var(--rule-l);font-size:14px;line-height:1.75;color:var(--ink)}
.tcard ol li::before{content:"（" counter(k) "）";position:absolute;left:-6px;color:var(--accent);font-size:13px}
.tcard .evbox{margin-top:14px}
@media (max-width:900px){.tcards{grid-template-columns:1fr}}

/* 相关证书 */
.evidence{margin-top:30px;border:1px solid var(--rule);background:var(--band);padding:16px 18px}
.evidence .ev-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13.5px;color:var(--ink);font-weight:600}
.evidence .ev-h a{font-weight:400}
.ev-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:12px}
.ev-item{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;align-items:center;background:#fff;border:1px solid var(--rule-l);padding:6px;text-align:left;cursor:zoom-in;width:100%}
.ev-item:hover{border-color:var(--accent)}
.ev-item .th{height:52px;display:flex;align-items:center;justify-content:center;background:var(--mat)}
.ev-item .th img{max-height:48px;max-width:48px;width:auto;height:auto;box-shadow:0 0 0 1px rgba(31,43,56,.08)}
.ev-item .tx{font-size:12.5px;line-height:1.55;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ev-item .tx small{display:block;color:var(--faint);font-size:11.5px}
.evidence.slim{background:none;border:0;padding:0;margin-top:14px}
.ev{display:inline-block;font-size:12px;line-height:20px;padding:0 8px;color:var(--accent);border:1px solid var(--accent-l);border-radius:2px;white-space:nowrap;background:#fff}
.ev:hover{background:var(--accent);border-color:var(--accent);color:#fff}

/* 图表卡 */
.chart-card{border:1px solid var(--rule);background:#fff;padding:22px 22px 16px}
.chart-card svg{width:100%;height:auto;display:block}
.legend{display:flex;gap:22px;font-size:12.5px;color:var(--sub);padding-top:10px;flex-wrap:wrap}
.legend i{display:inline-block;width:18px;height:3px;margin-right:7px;vertical-align:middle}
.chart-block{display:grid;grid-template-columns:3fr 2fr;gap:40px;margin-top:26px;align-items:start}
@media (max-width:900px){.chart-block{grid-template-columns:1fr;gap:26px}}
.tables2{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px}
@media (max-width:820px){.tables2{grid-template-columns:1fr}}

/* 造价条 */
.costbars{margin-top:26px;max-width:640px}
.costbar{margin-bottom:14px}
.costbar-label{display:flex;justify-content:space-between;gap:14px;font-size:13px;color:var(--sub);margin-bottom:5px}
.costbar-label .val{font-family:var(--num);color:var(--faint);white-space:nowrap}
.costbar-track{height:11px;background:#fff;border:1px solid var(--rule);position:relative;overflow:hidden}
.costbar-fill{position:absolute;top:0;bottom:0;background:#9aa5ae}
.costbar.ours .costbar-fill{background:var(--accent)}
.costbar.ours .costbar-label span{color:var(--accent);font-weight:600}
.costbar.ours .costbar-label .val{color:var(--accent)}

/* 对比论述 */
.vs-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:26px}
.vs{border:1px solid var(--rule);background:#fff;padding:20px 24px}
.vs h3{font-family:var(--serif);font-size:17px;color:var(--ink);letter-spacing:.05em}
.vs.ours{border-top:3px solid var(--accent)}
.vs.old{border-top:3px solid #9aa5ae}
.vs p{font-size:14.5px;margin-top:10px;line-height:1.85}
@media (max-width:820px){.vs-grid{grid-template-columns:1fr}}

/* ═════════════ 证书 ═════════════ */
.mat{display:flex;align-items:center;justify-content:center;background:var(--mat);border:1px solid var(--rule-l);padding:16px;aspect-ratio:4/3;overflow:hidden}
.mat img{width:auto;height:auto;max-width:100%;max-height:100%;background:#fff;box-shadow:0 1px 3px rgba(31,43,56,.2),0 0 0 1px rgba(31,43,56,.05)}
.open-cert{display:flex;flex-direction:column;justify-content:flex-start;width:100%;text-align:left;background:none;border:0;padding:0;cursor:zoom-in}
.open-cert:hover .mat{border-color:var(--rule)}

.feat{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 24px;margin-top:28px}
.feat .mat{aspect-ratio:1/1;padding:24px}
.feat .cap{padding-top:12px}
.feat .f-name{display:block;font-family:var(--serif);font-size:16px;font-weight:700;color:var(--ink);letter-spacing:.03em;line-height:1.55}
.feat .f-meta{display:block;font-size:12.5px;color:var(--accent);margin-top:4px}
.feat .f-proj{display:block;font-size:13px;color:var(--sub);margin-top:6px;line-height:1.75}
.open-cert:hover .f-name{color:var(--accent)}
.feat.compact{grid-template-columns:repeat(6,1fr);gap:16px}
.feat.compact .mat{padding:12px;aspect-ratio:4/5}
.feat.compact .f-name{font-size:13.5px}
.feat.compact .f-meta{font-size:12px}
.feat.compact .f-proj{display:none}
@media (max-width:900px){.feat{grid-template-columns:1fr 1fr}.feat.compact{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.feat{grid-template-columns:1fr}.feat .mat{aspect-ratio:4/3}.feat.compact{grid-template-columns:1fr 1fr}}

.mats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:24px}
.mats .cap{display:block;font-size:13px;color:var(--sub);margin-top:10px;line-height:1.7}
.mats .cap b{display:block;font-family:var(--serif);color:var(--ink);font-size:14px;line-height:1.55}
@media (max-width:820px){.mats{grid-template-columns:1fr 1fr}}

/* 年表 */
.phases{margin-top:8px}
.phase{display:grid;grid-template-columns:240px minmax(0,1fr);gap:44px;padding:34px 0 30px;border-bottom:1px solid var(--rule)}
.phase:last-child{border-bottom:1px solid var(--ink)}
.ph-side{position:sticky;top:calc(var(--hdr-h) + 24px);align-self:start}
.ph-no{font-size:12.5px;letter-spacing:.16em;color:var(--accent)}
.ph-yr{font-family:var(--num);font-size:25px;font-weight:700;color:var(--ink);margin-top:4px;line-height:1.3;white-space:nowrap}
.ph-t{font-family:var(--serif);font-size:17px;font-weight:700;color:var(--ink);margin-top:6px;letter-spacing:.04em}
.ph-d{font-size:13.5px;color:var(--sub);margin-top:12px;line-height:1.85}
.tl{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:16px;width:100%;padding:12px 0;border:0;border-bottom:1px solid var(--rule-l);background:none;text-align:left;cursor:zoom-in;align-items:start}
.ph-list li:first-child .tl,.ph-list li:first-child .tl-group{padding-top:0}
.ph-list li:last-child .tl,.ph-list li:last-child .tl-group{border-bottom:0}
.tl:hover .tl-t{color:var(--accent)}
.tl-y{font-family:var(--num);font-weight:700;font-size:15px;color:var(--accent);line-height:1.6}
.tl-t{display:block;font-size:15px;font-weight:600;color:var(--ink);line-height:1.6}
.tl-p{display:block;font-size:13.5px;color:var(--sub);line-height:1.7;margin-top:2px}
.tl-m{display:block;font-size:12.5px;color:var(--faint);line-height:1.7;margin-top:1px}
.tl-th{display:flex;gap:6px;padding-top:2px}
.tl-th img{height:50px;width:auto;border:1px solid var(--rule);background:#fff}
.tl-group{display:grid;grid-template-columns:52px minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--rule-l)}
.tl-pats{margin-top:6px;border-left:2px solid var(--rule-l);padding-left:14px}
.tl-pats button{display:block;width:100%;text-align:left;background:none;border:0;padding:3px 0;font-size:13.5px;color:var(--sub);line-height:1.7;cursor:zoom-in}
.tl-pats button:hover{color:var(--accent)}
.tl-pats .pno{font-family:var(--num);font-size:12.5px;color:var(--faint);margin-left:8px;white-space:nowrap}
@media (max-width:900px){.phase{grid-template-columns:1fr;gap:18px}.ph-side{position:static}}
@media (max-width:560px){.tl{grid-template-columns:44px minmax(0,1fr)}.tl-th{display:none}.tl-group{grid-template-columns:44px minmax(0,1fr)}}

/* 发明专利 */
.pgroup{margin-top:44px}
.pgroup:first-child{margin-top:30px}
.pg-head{display:flex;align-items:baseline;gap:14px;border-bottom:2px solid var(--ink);padding-bottom:8px}
.pg-head h2{font-family:var(--serif);font-size:20px;color:var(--ink);letter-spacing:.06em}
.pg-head span{font-family:var(--num);color:var(--accent);font-size:15px}
.pg-desc{font-size:14px;color:var(--sub);margin-top:12px;max-width:52em}
.pcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin-top:6px}
.pcard{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--rule-l);text-align:left;background:none;border-left:0;border-right:0;border-top:0;cursor:zoom-in;width:100%;align-items:start}
.pcard .th{background:var(--mat);padding:5px;display:flex;justify-content:center}
.pcard .th img{width:100%;height:auto;box-shadow:0 0 0 1px rgba(31,43,56,.08)}
.pcard .pn{display:block;font-size:15px;font-weight:600;color:var(--ink);line-height:1.6}
.pcard:hover .pn{color:var(--accent)}
.pcard .pm{display:block;font-family:var(--num);font-size:13px;color:var(--accent);margin-top:3px}
.pcard .pi{display:block;font-size:12.5px;color:var(--faint);margin-top:3px;line-height:1.65}
@media (max-width:820px){.pcards{grid-template-columns:1fr}}

/* 技术带头人 */
.leader{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:52px;margin-top:28px;align-items:start}
.leader-name{font-family:var(--serif);font-size:30px;font-weight:700;color:var(--ink);letter-spacing:.24em;line-height:1.3}
.leader-role{font-size:14.5px;color:var(--accent);margin-top:8px;letter-spacing:.06em}
.leader-bio{margin-top:16px;font-size:15px}
.poem{margin-top:28px;border:1px solid var(--rule);background:#fff;padding:22px 26px;position:relative}
.poem .pt{font-family:var(--serif);font-size:16px;color:var(--ink);letter-spacing:.12em}
.poem .pt small{font-size:13px;color:var(--faint);letter-spacing:.04em;margin-left:8px}
.poem p{font-family:var(--serif);font-size:16px;color:var(--body-c);line-height:2.05;letter-spacing:.08em;margin-top:10px}
.poem cite{display:block;text-align:right;font-style:normal;font-size:13px;color:var(--faint);margin-top:8px;letter-spacing:.04em}
.leader .stats{margin-top:0;grid-template-columns:1fr 1fr}
.leader .stat:nth-child(3){border-left:none}
.leader .stat:nth-child(n+3){border-top:1px solid var(--rule-l)}
.books{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}
.books .mat{aspect-ratio:4/5;padding:14px;background:#fff}
.books .cap{display:block;font-size:13px;color:var(--sub);margin-top:10px;line-height:1.7}
.books .cap b{display:block;font-family:var(--serif);color:var(--ink);font-size:14px}
.cv{margin-top:22px;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}
.cv button{display:grid;grid-template-columns:74px minmax(0,1fr);gap:12px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--rule-l);padding:9px 4px;font-size:14px;color:var(--body-c);line-height:1.7;cursor:zoom-in}
.cv li:last-child button{border-bottom:0}
.cv button:hover{color:var(--accent)}
.cv .y{font-family:var(--num);font-weight:700;color:var(--accent)}
.cv .cv-p{display:block;font-size:12.5px;color:var(--faint);line-height:1.6}
@media (max-width:900px){.leader{grid-template-columns:1fr;gap:36px}}
.team{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:18px}
.team li{font-size:14px;color:var(--ink);border-bottom:1px solid var(--rule-l);padding:2px 4px}
.team li small{color:var(--faint);font-family:var(--num);margin-left:4px}

/* 联系 */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;margin-top:28px;align-items:start}
.info{border-top:2px solid var(--ink)}
.info .row{display:grid;grid-template-columns:100px 1fr;gap:14px;padding:13px 6px;border-bottom:1px solid var(--rule-l);font-size:15px}
.info .k{color:var(--faint);font-size:13.5px;padding-top:2px}
.info .v{color:var(--ink)}
.info .tel{font-family:var(--num);font-weight:700;font-size:20px;letter-spacing:.02em}
.info .tip{display:block;font-size:12.5px;color:var(--faint);margin-top:4px}
.checklist{margin-top:28px}
.checklist h3{font-family:var(--serif);font-size:16px;color:var(--ink);letter-spacing:.06em}
.checklist ol{margin-top:10px;counter-reset:c}
.checklist li{counter-increment:c;position:relative;padding:6px 0 6px 30px;font-size:14.5px;border-bottom:1px dashed var(--rule-l)}
.checklist li::before{content:counter(c);position:absolute;left:0;top:7px;width:20px;height:20px;border:1px solid var(--accent);color:var(--accent);font-family:var(--num);font-size:12px;line-height:18px;text-align:center;border-radius:50%}
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:26px;border-top:2px solid var(--ink)}
.steps li{padding:16px 14px 0;border-left:1px solid var(--rule-l);position:relative}
.steps li:first-child{border-left:0}
.steps b{display:block;font-family:var(--num);color:var(--accent);font-size:18px}
.steps span{display:block;font-family:var(--serif);font-weight:700;color:var(--ink);font-size:15.5px;margin-top:2px}
.steps p{font-size:13px;color:var(--sub);margin-top:4px;line-height:1.7}
@media (max-width:820px){.steps{grid-template-columns:1fr 1fr}.steps li{border-left:0;border-top:1px solid var(--rule-l);padding-bottom:14px}}
.cform{border:1px solid var(--rule);background:#fff;padding:26px 28px}
.cform h3{font-family:var(--serif);font-size:17px;color:var(--ink);margin-bottom:16px;letter-spacing:.06em}
.cform .frow{margin-bottom:14px}
.cform label{display:block;font-size:13px;color:var(--ink);font-weight:600;margin-bottom:6px}
.cform input,.cform select,.cform textarea{width:100%;background:#fff;border:1px solid var(--rule);border-radius:2px;color:var(--ink);padding:10px 12px;font-size:14px;font-family:var(--sans)}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none;border-color:var(--accent)}
.cform textarea{min-height:90px;resize:vertical}
.form-ok{display:none;margin-top:12px;font-size:13.5px;color:#1e7a3c}
.form-note{font-size:12.5px;color:var(--faint);margin-top:12px;line-height:1.75}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr;gap:40px}}

/* ═════════════ 页脚 ═════════════ */
.site-ft{background:var(--ink);color:#a9b4bf;margin-top:88px;font-size:13.5px;line-height:1.9}
.ft-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,2fr);gap:48px;padding-top:44px;padding-bottom:36px}
.site-ft .f-name{font-family:var(--serif);font-size:16px;color:#fff;letter-spacing:.06em}
.ft-co p{margin-top:10px;font-size:13px}
.btn-ft{background:transparent;border-color:rgba(255,255,255,.4);color:#fff;padding:6px 16px;font-size:13px;margin-top:4px}
.btn-ft:hover{background:rgba(255,255,255,.1);border-color:#fff}
.ft-map{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.ft-col h4{font-family:var(--serif);color:#fff;font-size:14.5px;letter-spacing:.08em;font-weight:700;margin-bottom:8px}
.ft-col a{display:block;font-size:13px;line-height:2}
.ft-col a:hover,.ft-bar a:hover{color:#fff}
.ft-bar{display:flex;flex-wrap:wrap;gap:6px 26px;border-top:1px solid rgba(255,255,255,.12);padding-top:16px;padding-bottom:26px;font-size:12.5px;color:#8794a1}
@media (max-width:860px){.ft-grid{grid-template-columns:1fr;gap:30px}.ft-map{grid-template-columns:1fr 1fr}}

/* ═════════════ 成果档案 ═════════════ */
.ar-preface{max-width:52em;font-size:15px}
.ar-preface p+p{margin-top:.7em}
.filters{position:sticky;top:var(--hdr-h);z-index:30;background:rgba(255,255,255,.98);border-bottom:1px solid var(--rule);margin-top:40px;padding:14px 0 12px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:#fff;border:1px solid var(--rule);border-radius:2px;padding:4px 12px;font-size:13.5px;color:var(--body-c);cursor:pointer;line-height:1.7}
.chip .n{font-family:var(--num);color:var(--faint);margin-left:5px}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.chip[aria-pressed="true"] .n{color:#d6e2f0}
.frow2{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;align-items:center}
.frow2 select,.frow2 input{font:inherit;font-size:13.5px;color:var(--ink);background:#fff;border:1px solid var(--rule);border-radius:2px;padding:6px 10px;height:34px}
.frow2 input{flex:1;min-width:200px}
.frow2 select:focus,.frow2 input:focus{outline:none;border-color:var(--accent)}
@media (max-width:700px){
  .filters{position:static}
  .frow2 select,.frow2 input{flex:1 1 calc(50% - 5px);min-width:0}
  .frow2 input{flex-basis:100%;order:-1}
}
.result-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:22px;font-size:13.5px;color:var(--sub)}
.result-bar b{font-family:var(--num);color:var(--ink)}
.tech-banner{display:inline-flex;gap:10px;align-items:center;background:#eef3f9;border:1px solid var(--accent-l);color:var(--accent);padding:2px 10px;border-radius:2px}
.tech-banner button{background:none;border:0;color:var(--accent);cursor:pointer;text-decoration:underline;font-size:13px}
.agrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 20px;margin-top:20px}
.acard .mat{aspect-ratio:4/3.2;padding:12px}
.acard .ac-id{display:flex;justify-content:space-between;gap:8px;font-family:var(--num);font-size:12px;color:var(--faint);margin-top:10px}
.acard .ac-t{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-family:var(--serif);font-size:15px;font-weight:700;color:var(--ink);line-height:1.55;margin-top:3px}
.acard .ac-p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12.5px;color:var(--sub);line-height:1.7;margin-top:4px}
.acard .ac-i{display:block;font-size:12px;color:var(--faint);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acard:hover .ac-t{color:var(--accent)}
.empty{padding:60px 0;text-align:center;color:var(--faint);display:none}
@media (max-width:1000px){.agrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.agrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}}
.cat-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
table.ctab{width:100%;border-collapse:collapse;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);font-size:13px;min-width:860px}
.ctab th{text-align:left;font-weight:600;color:var(--ink);padding:8px 10px;border-bottom:1px solid var(--ink);white-space:nowrap}
.ctab td{padding:8px 10px;border-bottom:1px solid var(--rule-l);vertical-align:top;line-height:1.7}
.ctab tr.grp td{font-family:var(--serif);font-weight:700;font-size:14px;color:var(--ink);background:var(--band);letter-spacing:.04em}
.ctab tr.row{cursor:zoom-in}
.ctab tr.row:hover td{background:#f8fafc}
.ctab .mono{font-family:var(--num);white-space:nowrap;font-variant-numeric:tabular-nums}
.ctab .id{color:var(--faint)}
.tscroll{overflow-x:auto;margin-top:24px}

/* ═════════════ 图片查看器 ═════════════ */
.lb{position:fixed;inset:0;z-index:200;background:rgba(17,22,28,.95);display:none}
.lb.open{display:grid;grid-template-columns:minmax(0,1fr) 380px}
.lb-stage{position:relative;overflow:auto;display:flex;align-items:center;justify-content:center;padding:58px 72px}
.lb-stage img{max-width:100%;max-height:100%;width:auto;height:auto;background:#fff;box-shadow:0 10px 40px rgba(0,0,0,.45)}
.lb-stage.can-zoom img{cursor:zoom-in}
.lb-stage.zoom{display:block;padding:28px}
.lb-stage.zoom img{max-width:none;max-height:none;margin:0 auto;cursor:zoom-out}
.lb-count{position:fixed;top:18px;left:22px;font-family:var(--num);font-size:13px;color:#aab4bf;letter-spacing:.06em}
.lb-hint{position:fixed;bottom:16px;left:22px;font-size:12px;color:#7d8894}
.lb-nav{position:fixed;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;font-size:20px;line-height:1;cursor:pointer}
.lb-nav:hover{background:rgba(255,255,255,.2)}
.lb-nav[disabled]{display:none}
.lb-prev{left:16px}
.lb-next{right:396px}
.lb-panel{background:#fff;overflow-y:auto;padding:26px 26px 30px;display:flex;flex-direction:column}
.lb-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.lb-cat{font-size:12.5px;color:var(--accent);letter-spacing:.12em}
.lb-close{background:none;border:1px solid var(--rule);border-radius:2px;padding:2px 12px;font-size:13px;color:var(--sub);cursor:pointer}
.lb-close:hover{color:var(--accent);border-color:var(--accent)}
.lb-panel h3{font-family:var(--serif);font-size:19px;font-weight:700;color:var(--ink);margin-top:10px;line-height:1.55;letter-spacing:.03em}
.lb-panel dl{margin-top:18px;border-top:2px solid var(--ink)}
.lb-panel dl div{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;padding:8px 0;border-bottom:1px solid var(--rule-l);font-size:13.5px;line-height:1.7}
.lb-panel dt{color:var(--faint)}
.lb-panel dd{color:var(--ink);word-break:break-all}
.lb-panel dd a{color:var(--accent);border-bottom:1px solid var(--accent-l)}
.lb-panel dd button{background:none;border:0;padding:0;color:var(--accent);text-decoration:underline;cursor:pointer;font-size:13.5px}
.lb-actions{margin-top:auto;padding-top:22px;display:flex;gap:10px;flex-wrap:wrap}
.lb-actions .btn{padding:8px 16px;font-size:13px}
body.lb-lock{overflow:hidden}
@media (max-width:900px){
  .lb.open{grid-template-columns:1fr;grid-template-rows:minmax(0,56vh) auto;overflow-y:auto}
  .lb-stage{padding:44px 14px 14px}
  .lb-next{right:16px}
  .lb-nav{top:28vh}
  .lb-hint{display:none}
}

/* 截图辅助 */
html.shift body{transform:translateY(var(--shift))}

/* 打印 */
@media print{
  .site-hd,.topline,.tabs,.tabs3,.pager,.filters,.result-bar,.agrid,.empty,.lb,.no-print,.site-ft,.cta-band,.note-box{display:none !important}
  body{font-size:10.5pt;line-height:1.6;color:#000}
  .wrap{max-width:none;padding:0}
  .pagehead{background:none;border:0}
  section.doc{padding-top:18pt}
  .tscroll,.t3wrap{overflow:visible}
  table.ctab{min-width:0;font-size:8.5pt}
  .ctab tr,.fig,.case-e{break-inside:avoid}
}

/* 首页补充 */
a.sm-t{display:block}
a.sm-t:hover{border-color:var(--accent)}
a.sm-t:hover h3{color:var(--accent)}
.idx-leader{margin-top:24px}
.idx-leader .leader-name{font-size:24px}
.idx-leader .books{grid-template-columns:repeat(2,150px);margin-top:18px;gap:16px}
.idx-leader .books .mat{padding:10px}
.idx-leader .books .cap{font-size:12px;line-height:1.6}
.idx .partners-list{margin-top:14px}
.cta-band{background:var(--accent)}
.cta-band p{color:#d6e2f0}
body[data-page="index"] .site-ft{margin-top:0}
@media (max-width:560px){.idx-leader .books{grid-template-columns:1fr 1fr}.metric{grid-template-columns:1fr;gap:2px}}
