
:root{--bg:#fff;--fg:#1c1c1b;--mut:#5f5e5a;--line:rgba(0,0,0,.10);--side:#faf9f5;--acc:#185FA5;--card:#f6f5f1;
 --zebra:rgba(0,0,0,.022);--rowhov:rgba(24,95,165,.06);--exc:#454540;
 --scorebg:rgba(24,95,165,.05);--scorebg-h:rgba(24,95,165,.10);
 --shadow:0 1px 2px rgba(24,22,14,.05),0 4px 14px rgba(24,22,14,.05)}
html{scroll-behavior:smooth}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,"PingFang SC","Microsoft YaHei",Segoe UI,sans-serif;color:var(--fg);background:var(--bg);line-height:1.78;text-rendering:optimizeLegibility}
::selection{background:rgba(24,95,165,.16)}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:4px}
.side{position:fixed;top:0;left:0;width:262px;height:100vh;overflow:auto;background:var(--side);border-right:1px solid var(--line);padding:16px 12px;scrollbar-width:thin}
.brand a{font-weight:700;font-size:16px;color:var(--fg);letter-spacing:.01em}
#q{width:100%;margin:12px 0;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px;transition:border-color .15s,box-shadow .15s}
#q:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px rgba(24,95,165,.12)}
.grp{margin:12px 0}.grp-t{font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.08em;margin:8px 4px 4px;font-weight:600}
details.grp>summary.grp-t{cursor:pointer;list-style:none;user-select:none;padding:3px 4px;border-radius:6px}
details.grp>summary.grp-t:hover{background:rgba(0,0,0,.05);color:var(--fg)}
details.grp>summary.grp-t::-webkit-details-marker{display:none}
details.grp>summary.grp-t::after{content:"▸";float:right;margin-right:4px;transition:transform .15s;opacity:.5}
details.grp[open]>summary.grp-t::after{transform:rotate(90deg)}
nav ul{list-style:none;margin:0;padding:0}
nav li a{display:block;padding:5px 9px;border-radius:7px;font-size:13.5px;color:#3a3a37;line-height:1.55;transition:background .12s}
nav li a:hover{background:rgba(0,0,0,.05);text-decoration:none}
nav li a.on{background:var(--acc);color:#fff;font-weight:500}
.subg-t{font-size:11px;color:var(--mut);margin:9px 6px 1px 8px;font-weight:500;opacity:.8}
.subg-t::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--acc);opacity:.55;margin-right:6px;vertical-align:middle}
nav .subg-t + ul{margin-left:6px;border-left:1px solid var(--line)}
main{margin-left:262px}
.wrap{max-width:840px;margin:0 auto;padding:36px 30px 8px}
footer{max-width:840px;margin:28px auto;padding:14px 30px;color:var(--mut);font-size:12px;border-top:1px solid var(--line)}
h1{font-size:27px;line-height:1.3;letter-spacing:-.012em;margin:.2em 0 .55em;font-weight:700}
h2{font-size:20px;line-height:1.35;letter-spacing:-.006em;margin:1.6em 0 .55em;padding-bottom:.25em;border-bottom:1px solid var(--line);font-weight:650}
h3{font-size:16.5px;margin:1.2em 0 .4em;font-weight:650}
p{margin:.65em 0}strong{font-weight:650}
code{background:var(--card);padding:.1em .4em;border-radius:4px;font-size:.9em;font-family:ui-monospace,Menlo,monospace}
pre{background:var(--card);padding:12px 14px;border-radius:10px;overflow:auto;font-size:13px;line-height:1.6;border:1px solid var(--line)}
pre code{background:none;padding:0}
blockquote{margin:.9em 0;padding:.6em 1em;background:#fff8e6;border-left:3px solid #EF9F27;border-radius:0 8px 8px 0;color:#4a3a10}
hr{border:none;border-top:1px solid var(--line);margin:1.5em 0}
.tbl{overflow-x:auto;margin:1em 0;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}
table{border-collapse:collapse;width:100%;font-size:13.5px;font-variant-numeric:tabular-nums}
th,td{border:none;border-bottom:1px solid var(--line);padding:8px 11px;text-align:left;vertical-align:top}
th{background:var(--card);font-weight:650;border-bottom:2px solid rgba(0,0,0,.13);white-space:nowrap}
tr:nth-child(even) td{background:var(--zebra)}
tr:hover td{background:var(--rowhov)}
tr:last-child td{border-bottom:none}
ul,ol{margin:.5em 0;padding-left:1.4em}li{margin:.28em 0}
#menu{display:none}
/* 首页 */
.hero h1{font-size:31px;margin:0;letter-spacing:-.015em}.hero .sub{color:var(--mut);margin:.35em 0 0}
/* 📰 最新研究（头条区） */
.headline{display:grid;grid-template-columns:1.55fr 1fr;grid-auto-rows:min-content;gap:10px;margin:8px 0 4px}
.head1{grid-row:span 3;display:flex;flex-direction:column;gap:9px;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:18px 20px;box-shadow:var(--shadow);transition:border-color .15s,transform .12s}
.head1:hover{border-color:var(--acc);text-decoration:none;transform:translateY(-1px)}
.head1 .ht{font-size:17.5px;font-weight:700;color:var(--fg);line-height:1.45;letter-spacing:-.008em}
.hdate{font-size:11.5px;color:var(--mut);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.hex{font-size:13px;color:var(--exc);line-height:1.75}
.hmore{font-size:12.5px;color:var(--acc);font-weight:550;margin-top:auto}
.headi{display:flex;flex-direction:column;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:11px 15px;font-size:13.5px;font-weight:550;color:var(--fg);line-height:1.5;box-shadow:var(--shadow);transition:border-color .15s,transform .12s}
.headi:hover{border-color:var(--acc);text-decoration:none;transform:translateY(-1px)}
/* 🎯 记分牌条 */
.scorebar{display:block;margin:14px 0 4px;padding:10px 16px;border:1px dashed var(--acc);border-radius:11px;font-size:13.5px;color:var(--fg);background:var(--scorebg);transition:background .15s}
.scorebar:hover{text-decoration:none;background:var(--scorebg-h)}
.scorebar b{color:var(--acc);font-size:15px}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}
.jc{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}
.jt{font-weight:650;margin-bottom:4px}.jb{font-size:13px;color:#444}
a.jc{color:inherit;transition:border-color .15s,transform .12s}
a.jc:hover{text-decoration:none;border-color:var(--acc);transform:translateY(-1px)}
a.jc:hover .jt{color:var(--acc)}
.short{margin:14px 0;font-size:13.5px}.short span{color:var(--mut);margin-right:6px}
.short a{display:inline-block;margin:3px 8px 3px 0;padding:4px 11px;background:var(--card);border:1px solid var(--line);border-radius:20px;transition:border-color .15s,transform .12s}
.short a:hover{text-decoration:none;border-color:var(--acc);transform:translateY(-1px)}
.maph{margin-top:24px}.maplegend{font-size:12px;color:var(--mut);margin:6px 0 10px}
.maplegend .lg{margin-right:14px}.maplegend .lg.on::before{content:"";display:inline-block;width:10px;height:10px;border:2px solid var(--acc);border-radius:3px;margin-right:5px;vertical-align:middle}
.map{display:flex;flex-direction:column;gap:8px}
.band{display:flex;align-items:stretch;border-radius:11px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.bn{width:42px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:#333;background:rgba(0,0,0,.05)}
.bbody{padding:9px 12px;flex:1}.bname{font-weight:600;margin-bottom:5px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:12.5px;padding:3px 10px;border-radius:14px;background:#fff;border:1px solid var(--line);color:#555;transition:all .13s}
.chip.on{border-color:var(--acc);color:var(--acc);font-weight:500}.chip.on:hover{background:var(--acc);color:#fff;text-decoration:none;transform:translateY(-1px)}
.band1{background:#EEEDFE}.band2{background:#FAEEDA}.band3{background:#E1F5EE}.band4{background:#E6F1FB}
.band5{background:#E6F1FB}.band6{background:#F1EFE8}.band7{background:#FAEEDA}
/* 关系图 */
.graphbox{overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff}
#graph{width:100%;height:auto;min-width:760px}
.glayer{font-size:13px;fill:#999;font-weight:600}
.nlabel{font-size:13px;fill:#1a1a1a;font-weight:500}
.node{cursor:pointer}.node:hover circle{stroke-width:2.5}
.glegend{display:flex;gap:18px;margin:6px 0 10px;font-size:13px}
.glegend i{display:inline-block;width:14px;height:3px;margin-right:6px;vertical-align:middle;border-radius:2px}
.gnote{color:var(--mut);font-size:13px}
/* 搜索结果 */
#results{display:none;margin:-2px 0 8px;border:1px solid var(--line);border-radius:8px;background:#fff;max-height:62vh;overflow:auto}
.ritem{display:block;padding:7px 10px;border-bottom:1px solid var(--line);font-size:13px}
.ritem:last-child{border-bottom:none}
.ritem:hover{background:var(--card);text-decoration:none}
.ritem .rtag{display:inline-block;font-size:10px;color:var(--mut);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:0 6px;margin-right:6px;vertical-align:middle}
.ritem .rt{font-weight:600;color:var(--fg)}
.ritem .rd{display:block;color:var(--mut);font-size:11.5px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rno{padding:9px 10px;color:var(--mut);font-size:13px}
/* 元信息条 */
.metabar{display:flex;flex-wrap:wrap;gap:6px;margin:.1em 0 1.2em}
.badge{font-size:12px;padding:2px 9px;border-radius:12px;background:var(--card);border:1px solid var(--line);color:var(--mut);white-space:nowrap}
.badge.layer{color:var(--fg);font-weight:500}
.badge.tk{font-family:ui-monospace,Menlo,monospace;color:var(--acc);font-weight:600}
.badge.fresh-new{background:#e3f5ec;border-color:#9ad9bf;color:#1d7a52}
.badge.fresh-ok{background:#fff6e0;border-color:#e8c878;color:#8a6516}
.badge.fresh-old{background:#fbe9e4;border-color:#e0a692;color:#9a4322}
/* 关联链接按钮（公司卡 ↔ 估值报告） */
.xlinks{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 1.3em}
.xbtn{display:inline-flex;align-items:center;gap:6px;background:var(--acc);color:#fff;border-radius:9px;padding:6px 15px;font-size:13.5px;font-weight:500;border:1px solid var(--acc);box-shadow:var(--shadow);transition:transform .12s,opacity .12s}
.xbtn:hover{text-decoration:none;opacity:.92;transform:translateY(-1px)}
.xbtn.ghost{background:transparent;color:var(--acc)}
.xbtn.ghost:hover{background:var(--card);opacity:1}
/* 本页目录 */
.toc{margin:0 0 1.5em;border:1px solid var(--line);border-radius:8px;background:var(--side);padding:6px 14px}
.toc>summary{cursor:pointer;font-weight:600;font-size:13.5px;color:var(--fg);padding:3px 0}
.toc ul{columns:2;column-gap:24px;margin:8px 0 4px;padding-left:1.1em;font-size:13px}
.toc li{margin:.22em 0;break-inside:avoid}
h2,h3{scroll-margin-top:14px}
/* 最近更新 */
.recent{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}
.recent-i{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:6px 12px;font-size:13px;color:var(--fg);transition:border-color .15s,transform .12s}
.recent-i:hover{border-color:var(--acc);text-decoration:none;transform:translateY(-1px)}
.recent-i .rdate{font-size:11px;color:var(--mut);font-variant-numeric:tabular-nums}
.recent-i .rtag{font-size:10px;color:var(--mut);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:0 6px}
/* 研究报告（文章流） */
.artsec-h{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--mut);font-weight:700;margin:22px 0 2px;padding-bottom:7px;border-bottom:1.5px solid var(--fg)}
.theme-d{font-size:12.5px;color:var(--mut);margin:6px 0 2px;line-height:1.6}
.artlist{display:flex;flex-direction:column;margin-bottom:6px}
.art{display:grid;grid-template-columns:112px 1fr;gap:0 18px;padding:13px 6px;border-bottom:1px solid var(--line);align-items:baseline;transition:background .12s}
.art:hover{background:var(--card);text-decoration:none}
.art-meta{display:flex;flex-direction:column;gap:3px}
.art-date{font-size:12px;color:var(--mut);font-variant-numeric:tabular-nums}
.art-cat{font-size:10.5px;color:var(--acc);font-weight:700;letter-spacing:.03em}
.art-title{font-size:15.5px;font-weight:650;color:var(--fg);line-height:1.5;letter-spacing:-.004em}
.art:hover .art-title{color:var(--acc)}
.art-dek{display:block;font-size:13px;color:var(--exc);margin-top:4px;line-height:1.7}
.valsub{font-size:11.5px;color:var(--mut);font-weight:600;margin:12px 0 2px;letter-spacing:.02em}
.valgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:0 20px}
.val{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 6px;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--fg);transition:background .12s}
.val:hover{background:var(--card);text-decoration:none}.val:hover .vt{color:var(--acc)}
.val .vt{font-weight:500}.val .vdate{font-size:11px;color:var(--mut);font-variant-numeric:tabular-nums;white-space:nowrap}
/* 覆盖范围（coverage 索引） */
.covsec{margin:8px 0}
.covrow{display:grid;grid-template-columns:118px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);align-items:baseline}
.covrow-l{font-size:11.5px;color:var(--mut);text-transform:uppercase;letter-spacing:.03em;font-weight:700;line-height:1.5}
.covrow-r{display:flex;flex-wrap:wrap;gap:6px}
.cov{font-size:12.5px;padding:3px 10px;border-radius:6px;border:1px solid var(--line);color:#43423e;background:var(--bg);transition:border-color .12s,color .12s}
.cov:hover{border-color:var(--acc);color:var(--acc);text-decoration:none}
.cov-off{color:var(--mut);border-style:dashed;cursor:default}
.covnote{font-size:11.5px;color:var(--mut);align-self:center;margin-right:2px}
/* 回到顶部 */
#totop{position:fixed;right:16px;bottom:16px;z-index:25;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:var(--side);color:var(--fg);font-size:19px;line-height:40px;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s;box-shadow:0 2px 10px rgba(0,0,0,.14)}
#totop.show{opacity:.92;pointer-events:auto}#totop:hover{opacity:1;text-decoration:none}
@media(max-width:820px){
 .toc ul{columns:1}
 .headline{grid-template-columns:1fr}
 .head1{grid-row:auto}
 .art{grid-template-columns:1fr;gap:4px}
 .art-meta{flex-direction:row;gap:8px;align-items:baseline}
 .covrow{grid-template-columns:1fr;gap:5px}
 .valgrid{grid-template-columns:1fr}
 .side{transform:translateX(-100%);transition:.22s;z-index:20}
 body.navopen .side{transform:none;box-shadow:0 0 44px rgba(0,0,0,.28)}
 main{margin-left:0}#menu{display:block;position:fixed;top:10px;right:12px;z-index:30;font-size:20px;background:var(--side);border:1px solid var(--line);border-radius:10px;width:42px;height:42px;box-shadow:var(--shadow)}
 .wrap{padding:26px 18px 8px}
 .cards3{grid-template-columns:1fr}
 table{font-size:13px}th,td{padding:7px 9px}
}
@media(prefers-color-scheme:dark){
 :root{--bg:#1a1a18;--fg:#ececec;--mut:#9a988f;--line:rgba(255,255,255,.13);--side:#222220;--acc:#85B7EB;--card:#2a2a28;
  --zebra:rgba(255,255,255,.028);--rowhov:rgba(133,183,235,.10);--exc:#b8b6ae;
  --scorebg:rgba(133,183,235,.08);--scorebg-h:rgba(133,183,235,.14);
  --shadow:0 1px 2px rgba(0,0,0,.35),0 4px 14px rgba(0,0,0,.28)}
 ::selection{background:rgba(133,183,235,.28)}
 #q:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(133,183,235,.16)}
 .jb{color:#b8b6ae}
 details.grp>summary.grp-t:hover{background:#333}
 nav li a{color:#cfcdc7}nav li a:hover{background:#333}
 .chip{background:#2a2a28;color:#bbb}th{background:#2a2a28;border-bottom-color:rgba(255,255,255,.24)}
 .cov{color:#c8c6be}.artsec-h{border-bottom-color:#ececec}
 blockquote{background:#2c2812;color:#e8dca8}
 .graphbox,#q,#results{background:#222220}.nlabel{fill:#111}.glayer{fill:#888}
 .band1,.band2,.band3,.band4,.band5,.band6,.band7{filter:brightness(.5) saturate(.8)}
 .chip.on{color:var(--acc)}
 .badge.fresh-new{background:#16331f;border-color:#2f6b3f;color:#7fd7a0}
 .badge.fresh-ok{background:#332b12;border-color:#6b5a2a;color:#e0c878}
 .badge.fresh-old{background:#3a1f18;border-color:#6b3a2a;color:#e0a692}
 .xbtn{color:#15140f}.xbtn.ghost{color:var(--acc)}
}
