/* 全国辅助生殖态势 OSINT - 单页长滚动样式 */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#0a1626;--bg2:#0e1f33;--card:#12263f;--line:#1e3a5c;
  --tx:#dce8f5;--tx2:#8aa5c2;--teal:#19c3b1;--blue:#3ea6ff;--amber:#ffb547;--red:#ff6b6b;
  --grad:linear-gradient(135deg,#19c3b1,#3ea6ff);
}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--tx);font:15px/1.7 "PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif}
a{color:var(--blue);text-decoration:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}

/* header */
.site-head{background:radial-gradient(1200px 400px at 20% -10%,#134 0,transparent 60%),linear-gradient(160deg,#0c2138,#0a1626 70%);border-bottom:1px solid var(--line);padding:38px 0 26px}
.site-head h1{font-size:30px;letter-spacing:2px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}
.site-head .sub{color:var(--tx2);margin-top:6px}
.badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px;border:1px solid var(--teal);color:var(--teal);margin-right:8px}
.badge.osint{border-color:var(--amber);color:var(--amber)}

/* sections */
section{padding:52px 0 20px}
h2{font-size:21px;margin-bottom:6px}
h2 .en{font-size:12px;color:var(--tx2);font-weight:normal;margin-left:10px;letter-spacing:1px}
.sec-desc{color:var(--tx2);font-size:13px;margin-bottom:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px}

/* kpi */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px 18px;text-align:center}
.kpi b{font-size:30px;display:block;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700}
.kpi span{color:var(--tx2);font-size:13px}
.intro{margin-top:18px;color:var(--tx2);font-size:14px;border-left:3px solid var(--teal);padding-left:14px}

/* two columns：左地图 + 右表格（城市热力 / 实验室共用）；stretch 使左右卡片等高 */
.cols{display:grid;grid-template-columns:1.05fr 1fr;gap:18px;align-items:stretch}
.tt4{font-size:14px;margin-bottom:10px}
.tt4 em{font-style:normal;font-size:12px;color:var(--tx2)}
.map-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.map-legend span{font-size:12px;color:var(--tx2)}
.map-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:middle}
.map-legend em{font-style:normal;margin-left:6px;opacity:.75}

/* 通用表格 */
.tscroll{max-height:400px;overflow:auto;border:1px solid var(--line);border-radius:8px}
table.ct{width:100%;border-collapse:collapse;font-size:13px}
table.ct th{position:sticky;top:0;background:#0f2340;color:var(--tx2);font-size:12px;font-weight:600;text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);z-index:2;white-space:nowrap}
table.ct td{padding:8px 10px;border-bottom:1px solid rgba(30,58,92,.55);vertical-align:middle}
table.ct tbody tr:hover{background:rgba(25,195,177,.07)}
table.ct .rk{width:34px;color:var(--tx2);font-variant-numeric:tabular-nums}
table.ct .rk.k1{color:#ff6b6b;font-weight:700}
table.ct .rk.k2{color:#ffd166;font-weight:700}
table.ct .rk.k3{color:#41e0c0}
table.ct .cn{font-weight:600;white-space:nowrap}
table.ct .ct2{white-space:nowrap;color:var(--tx2);font-size:12.5px}
table.ct .hn{color:var(--tx)}
table.ct .hn em{font-style:normal;color:var(--tx2);font-size:12px;margin-left:6px}
table.ct .vh .hn{display:inline-block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
table.ct .vv b{color:var(--amber);font-size:14px}
table.ct .vv progress{width:90px;height:5px;display:block;margin-top:4px;border:none;background:var(--bg2);border-radius:3px;overflow:hidden}
table.ct .vv progress::-webkit-progress-bar{background:var(--bg2)}
table.ct .vv progress::-webkit-progress-value{background:linear-gradient(90deg,#19c3b1,#3ea6ff)}
table.ct .vv em{display:block;font-style:normal;font-size:11px;color:var(--tx2)}
table.ct .rt{white-space:nowrap;color:var(--tx2);font-size:12px}
table.ct .rt b{color:#19c3b1;font-size:14px;font-variant-numeric:tabular-nums}
table.ct .rt small{display:block;font-size:10.5px;opacity:.75;line-height:1.3}
table.ct .gy{color:var(--teal);white-space:nowrap}
table.ct .gy.up{color:#ff7a45;font-weight:700}
table.ct .mut{color:#4a6076}
table.ct .tag{display:inline-block;font-size:11.5px;border:1px solid var(--line);border-radius:4px;padding:1px 7px;color:#9fd8ff;white-space:nowrap}
table.ct .ft{max-width:210px}
table.ct .ft span{display:inline-block;font-size:11.5px;background:var(--bg2);border:1px solid var(--line);border-radius:4px;padding:1px 7px;margin:2px 4px 2px 0;color:#9fd8ff}
table.ct .ep{max-width:190px;color:var(--tx2);font-size:12.5px}
table.ct .tier{display:inline-block;font-size:10.5px;border:1px solid;border-radius:10px;padding:0 6px;margin-left:6px;vertical-align:1px}

/* 统计条 & 筛选 */
.stat-line{margin-top:10px;font-size:12.5px;color:var(--tx2)}
.stat-line b{color:var(--amber)}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.filters select,.filters input{background:var(--bg2);border:1px solid var(--line);border-radius:6px;color:var(--tx);font-size:13px;padding:7px 10px;outline:none}
.filters input{flex:1;min-width:180px}
.filters select:focus,.filters input:focus{border-color:var(--teal)}

/* heatmap card */
.chartbox{position:relative}
#city-map{min-height:430px}
#lab-map{min-height:360px}

/* 实验室右侧明细表：行数少（6行），压缩滚动高度使整体更紧凑，两栏更易等高 */
#labs .tscroll{max-height:340px}
#labs table.ct td{vertical-align:top;padding-top:10px;padding-bottom:10px}
#labs table.ct .hn{white-space:normal;line-height:1.55}
#labs table.ct .hn .tier{margin-left:0;margin-right:6px}

/* 辅助生殖动态：时间轴 */
.ntl{position:relative}
.nitem{display:flex;gap:14px;padding:13px 2px;border-bottom:1px dashed rgba(30,58,92,.65)}
.nitem:last-child{border-bottom:none}
.nitem.first{padding-top:4px}
.nd{flex:0 0 62px;color:var(--tx2);font-size:12.5px;font-variant-numeric:tabular-nums;padding-top:2px}
.nb{flex:1;min-width:0}
.nh{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}
.ntag{display:inline-block;font-size:11px;border:1px solid;border-radius:10px;padding:0 8px;line-height:18px;white-space:nowrap}
.nb b{font-weight:600;font-size:13.5px;line-height:1.65}
.nb em{display:block;font-style:normal;font-size:11.5px;color:#4a6076;margin-top:2px}
@media(max-width:560px){.nitem{flex-direction:column;gap:4px}}

/* trend legend */
.legend{display:flex;gap:20px;font-size:12.5px;color:var(--tx2);margin-bottom:8px}
.legend i{display:inline-block;width:18px;height:3px;border-radius:2px;vertical-align:middle;margin-right:6px}

/* footer */
footer{margin-top:60px;border-top:1px solid var(--line);padding:28px 0 40px;color:var(--tx2);font-size:12.5px}
footer p{margin-bottom:6px}

#gotop{position:fixed;right:24px;bottom:28px;width:42px;height:42px;border-radius:50%;background:var(--grad);color:#06222e;border:none;font-size:18px;cursor:pointer;display:none;z-index:99}

@media(max-width:900px){
  .kpis{grid-template-columns:repeat(2,1fr)}
  .cols{grid-template-columns:1fr}
  .site-head h1{font-size:24px}
}
@media(max-width:560px){.kpis{grid-template-columns:1fr 1fr}}