
/* 主题令牌：默认=柔和（暖调纸感：米灰底/奶油卡片/柔蓝紫主色/暖色阴影），
   bright=纯白高对比（鲜蓝主色/冷色阴影），dark 见文末覆盖 */
:root{--bg:#efebe2;--bg2:#e5dfd2;--card:#fdfbf6;--card-glass:rgba(253,251,246,.75);
  --ink:#3d3a33;--muted:#8b8478;--line:#d3cbbb;--line2:#e9e3d5;
  --link:#3b5c9e;--panel-h:#f4f0e7;
  --brand:#6b7fa8;--brand2:#5a6e97;--brand-grad:linear-gradient(135deg,#6b7fa8,#8b7ab0);
  --radius:14px;--soft:#efece5;--soft2:#f7f4ee;--hover:#ebe7df;
  --shadow-sm:0 1px 2px rgba(80,66,40,.07),0 1px 6px rgba(80,66,40,.04);
  --shadow:0 4px 20px rgba(80,66,40,.08);
  --shadow-lg:0 8px 30px rgba(107,127,168,.1);
  --map-bg:#efece5;--prov-fill:#e6e2d7;--prov-stroke:#c4bcab;
  --lv1:#d6dade;--lv2:#b7c2cc;--lv3:#90a3b4;--lv4:#69839b;--lv5:#486481}
*{box-sizing:border-box}
body{margin:0;font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--ink);background:linear-gradient(180deg,var(--bg) 0%,var(--bg2) 100%);background-attachment:fixed}
a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1760px;margin:0 auto;padding:0 28px}
.muted{color:var(--muted)}
/* 入场动画 */
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
main.wrap{padding-top:24px;padding-bottom:48px;min-height:60vh;animation:fadeUp .4s ease}
/* topbar 毛玻璃 */
.topbar{background:var(--card-glass);backdrop-filter:blur(14px) saturate(1.6);-webkit-backdrop-filter:blur(14px) saturate(1.6);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.topbar .wrap{display:grid;grid-template-columns:minmax(170px,1fr) auto minmax(170px,1fr);
  align-items:center;gap:18px;height:56px}
.brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:17px;color:var(--ink)}
.brand:hover{text-decoration:none}
/* 中文名「梯图」：跟在英文名后，小一号、品牌色描边小签，不抢英文主名（顶栏用楷体
   正写，人人认得；小篆印只在首页通栏作徽标） */
.brand-cn{font-style:normal;font-size:12px;font-weight:600;color:var(--brand);letter-spacing:.12em;
  padding:1px 3px 1px 6px;border:1px solid var(--brand);border-radius:5px;margin-left:-3px;line-height:1.3}
@media (max-width:480px){.topbar .brand-cn{display:none}}   /* 窄屏顶栏放不下 */
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px}
.brand-mark svg{display:block;width:28px;height:28px;filter:drop-shadow(0 3px 8px rgba(107,127,168,.22))}
.mainnav{display:flex;justify-content:center;gap:2px}
.mainnav a{padding:6px 14px;border-radius:20px;color:var(--muted);font-weight:500;white-space:nowrap;transition:color .15s,background .15s}
.mainnav a.on{background:var(--brand-grad);color:#fff;text-decoration:none}
.mainnav a:hover{text-decoration:none;color:var(--brand);background:var(--hover)}
/* ARENA 导航：描边品牌胶囊（加粗、字距）与其他入口区分；**只有当前页才
   实心填充**——曾常驻渐变底白字，与"当前页"高亮同色，打开别的页面时两个
   胶囊一样亮，分不清身在哪页 */
.mainnav a.nav-arena{border:1.5px solid var(--brand);color:var(--brand);
  padding:4.5px 12.5px;font-weight:600;letter-spacing:.04em;white-space:nowrap;
  align-self:center}          /* 窄屏导航行被撑高时胶囊不跟着竖向拉伸 */
.mainnav a.nav-arena:hover{color:var(--brand);background:var(--hover)}
.mainnav a.nav-arena.on{background:linear-gradient(135deg,#7b74ac,#9370b8);
  border-color:transparent;color:#fff}
/* 导航下拉组（2026-10-14）：按对象分组的多栏面板（检索·浏览·名录 / 动态 / 专题），
   每项名称 + 一行说明；桌面悬停或点击展开，面板在顶栏下居中 */
.navgrp{position:relative}
.navgrp summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;
  gap:4px;padding:6px 14px;border-radius:20px;color:var(--muted);font-weight:500;
  transition:color .15s,background .15s;user-select:none;white-space:nowrap}
.navgrp summary::-webkit-details-marker{display:none}
.navgrp summary em{font-style:normal;font-size:10px;opacity:.7;transition:transform .15s}
.navgrp[open] summary em{transform:rotate(180deg)}
.navgrp:hover summary,.navgrp[open] summary{color:var(--brand);background:var(--hover)}
.navgrp.on summary{background:var(--brand-grad);color:#fff}
.navmenu{position:fixed;top:60px;left:50%;transform:translateX(-50%);
  display:flex;gap:6px;padding:12px;width:max-content;max-width:calc(100vw - 32px);
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow-lg);z-index:60}
.navcol{display:flex;flex-direction:column;gap:2px;width:208px;padding:0 4px}
.navcol+.navcol{border-left:1px dashed var(--line2);padding-left:10px}
.navcol h6{margin:2px 10px 6px;font-size:11.5px;font-weight:600;color:var(--muted);letter-spacing:.12em}
.mainnav .navmenu a{display:flex;flex-direction:column;gap:1px;padding:7px 10px;border-radius:9px;
  color:var(--ink);white-space:normal;text-align:left;font-weight:400}
.navmenu a b{font-size:13.5px;font-weight:600}
.navmenu a i{font-style:normal;font-size:11.5px;color:var(--muted);line-height:1.45}
.mainnav .navmenu a:hover{background:var(--soft);color:var(--brand)}
.mainnav .navmenu a.on{background:var(--soft);color:var(--brand)}
.navmenu a.on b{color:var(--brand)}
.navtoggle{display:none}
/* 顶栏紧凑搜索（全站随叫随到；首页/检索页有页面自己的大搜索框时不出现） */
.topright{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-width:0}
.topsearch{position:relative;min-width:0}
.tsform{position:relative;display:flex;align-items:center}
.herosearch .ghostbtn{padding:9px 14px;background:var(--card);color:var(--brand);
  border:1px solid var(--brand);border-radius:8px;font-size:13px;cursor:pointer;white-space:nowrap}
.herosearch .ghostbtn:hover{background:rgba(59,130,246,.08)}
.tsform input{width:240px;max-width:100%;padding:8px 14px 8px 36px;border:1px solid var(--line);
  border-radius:18px;font-size:13.5px;background:var(--bg2);color:var(--ink);
  transition:border-color .2s,box-shadow .2s,background .2s}
.tsform input:focus{outline:none;border-color:var(--brand);background:var(--card);
  box-shadow:0 0 0 3px rgba(59,130,246,.15)}
.tsform .mag{position:absolute;left:8px;top:50%;transform:translateY(-50%);display:flex;
  align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;
  background:transparent;color:var(--muted);cursor:pointer;border-radius:50%;transition:color .2s}
.tsform .mag:hover{color:var(--brand)}
.herosearch button,.filters button{padding:10px 20px;background:var(--brand-grad);color:#fff;border:0;
  border-radius:10px;font-size:15px;cursor:pointer;font-weight:600;box-shadow:var(--shadow-sm);
  transition:box-shadow .2s,transform .15s}
.herosearch button:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.footer{border-top:1px solid var(--line);color:var(--muted);font-size:13px;padding:20px 0;background:var(--card-glass);backdrop-filter:blur(10px)}
.footer-inner{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;text-align:center}
.footer-meta{display:flex;align-items:center;gap:16px;justify-content:center;flex-wrap:wrap}
.footer-meta a{color:var(--muted)}
.footer-meta a:hover{color:var(--brand);text-decoration:none}
/* 页脚署名字标（SVG，见 render_base.FROOT_SVG）：高度对齐正文字号 */
.footer .froot{height:11px;width:auto;vertical-align:-0.5px;margin-left:5px}
/* autocomplete */
.acbox{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--card);border:1px solid var(--line);
  border-radius:10px;box-shadow:0 8px 28px rgba(20,30,50,.12);z-index:30;overflow:hidden;display:none;max-height:420px;overflow-y:auto}
.acbox.show{display:block}
.acbox .ac-cat{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:6px 14px 3px;background:var(--bg2);font-weight:600}
.acbox a{display:flex;justify-content:space-between;gap:10px;padding:9px 14px;color:var(--ink);border-bottom:1px solid var(--line2)}
.acbox a:last-child{border:0}.acbox a:hover,.acbox a.act{background:var(--hover);text-decoration:none}
.acbox .tag{font-size:12px;color:var(--muted);white-space:nowrap}
.acbox .ac-more{display:block;text-align:center;padding:8px;color:var(--brand);font-size:13px;cursor:pointer}
.acbox .ac-more:hover{background:var(--hover)}
.acbox .ac-hint{font-size:11.5px;color:var(--muted);padding:6px 14px;background:var(--bg2)}
.acbox a.adv-pick{cursor:pointer}
/* quick chips */
.qchips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:14px;position:relative;z-index:1}
.qchip{display:inline-block;padding:5px 14px;border:1px solid var(--line);border-radius:16px;font-size:13px;
  color:var(--muted);text-decoration:none;transition:all .2s;cursor:pointer;background:var(--card)}
.qchip:hover{border-color:var(--brand);color:var(--brand);background:rgba(59,130,246,.06);transform:translateY(-1px)}
/* hero */
.hero{text-align:center;padding:54px 24px 38px;border-radius:var(--radius);
  background:linear-gradient(135deg,#f0ebe0 0%,#ece6f0 50%,#e8eef0 100%);
  border:1px solid var(--line);margin-bottom:26px;position:relative;z-index:3;
  box-shadow:var(--shadow)}
/* 装饰光斑单独裹一层做裁剪，hero 本身不能 overflow:hidden，否则会剪掉搜索候选框 */
.hero-deco{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none;z-index:0}
.hero-deco::before{content:"";position:absolute;top:-40%;right:-10%;width:500px;height:500px;
  background:radial-gradient(circle,rgba(107,127,168,.1) 0%,transparent 70%);pointer-events:none}
.hero-deco::after{content:"";position:absolute;bottom:-30%;left:-5%;width:350px;height:350px;
  background:radial-gradient(circle,rgba(139,122,176,.08) 0%,transparent 70%);pointer-events:none}
.hero h1{font-size:34px;margin:0 0 8px;position:relative;letter-spacing:-.02em}
.hero h1 b{background:linear-gradient(135deg,#6b7fa8,#8b7ab0);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:1.15em}
.hero .sub{color:var(--muted);max-width:680px;margin:0 auto 22px;position:relative}
.herosearch{position:relative;display:flex;gap:8px;max-width:640px;margin:0 auto;z-index:5}
.herosearch input{flex:1;padding:13px 16px;border:1px solid var(--line);border-radius:12px;font-size:16px;
  background:var(--card);transition:border-color .2s,box-shadow .2s}
/* 归类快选：与输入框同高同弧，宽度收紧把空间留给关键词 */
.herosearch select{max-width:210px;padding:12px 8px;border:1px solid var(--line);border-radius:12px;
  font-size:13.5px;background:var(--card);color:var(--ink);cursor:pointer;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.herosearch select:hover{border-color:var(--brand)}
/* 首页 hero 的行动入口：检索工具统一在 /search，首页给"去那儿"的大按钮 */
.herocta{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;margin:6px 0 4px;position:relative;z-index:5}
.cta-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 34px;border-radius:14px;
  background:var(--brand-grad);color:#fff;font-size:17px;font-weight:700;text-decoration:none;
  box-shadow:var(--shadow);transition:transform .15s,box-shadow .2s}
.cta-btn:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.cta-btn svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}
.cta-sec{font-size:14.5px;color:var(--muted);text-decoration:underline dotted;text-underline-offset:4px}
.cta-sec:hover{color:var(--brand)}
.herosearch input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px rgba(59,130,246,.15)}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:26px 0}
/* 专题页：列表卡片 / 指标卡 / 下载卡的栅格（曾缺这条，卡片退回行内
   链接，列表页碎成几块、指标卡一张一行铺满） */
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin:22px 0}
.stat-topic,.stat-file,.stat-kpi{display:flex;flex-direction:column;align-items:center;gap:4px}
.stats .stat-topic b{font-size:20px;line-height:1.4;margin:2px 0}
.stats .stat-topic span:not(.stat-icon),.stats .stat-file span:not(.stat-icon){line-height:1.7;font-size:13.5px}
.stats .stat-file b{font-size:14.5px;line-height:1.4;word-break:break-all;margin:2px 0}
.tplist{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
/* 首页横幅三栏：审评审批动态 | 介绍 | 本周节假日（两侧请求时插入），左右等宽对称；
   宽度不够时介绍独占首行、两侧并排其下，再窄全部堆叠 */
.herorow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:stretch;margin-bottom:22px}
.herorow.no-cde{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.herorow .hero{margin-bottom:0;padding:24px 26px;display:flex;flex-direction:column;justify-content:space-between;gap:14px}
.herorow .hero h1{font-size:24px;line-height:1.35;margin-bottom:10px}
.herorow .hero .sub{margin:0 auto 14px;font-size:14px;line-height:1.75;color:var(--ink);max-width:none}
.heropts{list-style:none;margin:0 0 12px;padding:0;position:relative;display:flex;flex-direction:column;gap:6px;text-align:left}
.heropts li{font-size:13px;color:var(--muted);line-height:1.6;display:grid;grid-template-columns:5.4em 1fr;gap:8px;align-items:baseline}
.heropts li b{color:var(--brand);font-size:12.5px;border:1px solid var(--brand);border-radius:5px;
  padding:0 4px;line-height:1.55;font-weight:600;text-align:center}
.heronote{font-size:12.5px;color:var(--muted);line-height:1.7;margin:0 0 16px;position:relative;
  padding-top:10px;border-top:1px dashed var(--line)}
.herorow .herocta{gap:14px}
.herorow .cta-btn{padding:11px 22px;font-size:15.5px}
.herorow .cta-sec{font-size:13.5px}
/* 首页通栏徽标（用户给样定稿）：深海军蓝底上一行排开——「梯图」小篆竖长印 ·
   白色粗体 TrialMap · 金色口号「拾级而上　一览全局」；窄屏口号折到下一行 */
.homebanner{display:flex;justify-content:center;padding:30px 32px;margin-bottom:16px;
  background:linear-gradient(135deg,#0d1938 0%,#0b1a3a 55%,#101d3f 100%);
  border-color:#1d2a4d}
.homebanner .hero-deco{display:none}
/* 印章居中：左右两栏等宽（1fr），品牌名靠右、口号靠左，印章恰在通栏正中 */
.hb-lock{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  gap:12px 30px;position:relative;width:100%}
.hb-lock h1{justify-self:end}
.hb-lock .hb-motto{justify-self:start}
.hb-lock .brand-seal{height:84px;width:auto;flex:none}
.homebanner h1{margin:0;font-size:40px;line-height:1;letter-spacing:-.01em}
.homebanner h1 b{background:none;-webkit-background-clip:border-box;background-clip:border-box;
  color:#fff;font-size:1em;font-weight:800}
.hb-motto{margin:0;display:flex;gap:.9em;font-size:38px;font-weight:600;line-height:1;
  letter-spacing:.04em;white-space:nowrap;
  background:linear-gradient(180deg,#f3dcaa 0%,#d9b46e 55%,#b88f4a 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
@media (max-width:760px){
  .homebanner{padding:22px 16px}
  .hb-lock{gap:8px 12px}
  .hb-lock .brand-seal{height:60px;margin:0}
  .homebanner h1{font-size:26px}
  .hb-motto{font-size:17px;flex-direction:column;gap:.35em}}
.herogo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;position:relative;z-index:5}
.herogo a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 8px;
  border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);text-align:center;
  transition:transform .15s,box-shadow .15s,border-color .15s}
.herogo a:hover{text-decoration:none;transform:translateY(-2px);border-color:var(--brand);box-shadow:var(--shadow-lg)}
.herogo a b{font-size:14.5px;color:var(--brand)}
.herogo a span{font-size:12px;color:var(--muted);line-height:1.5}
.herogo a.go-main{background:var(--brand-grad);border-color:transparent}
.herogo a.go-main b,.herogo a.go-main span{color:#fff}
.herogo a.go-main span{opacity:.88}
.herogo a.go-main svg{color:#fff}
@media (max-width:560px){.herogo{grid-template-columns:1fr}}
/* 核心数据嵌进 hero 中栏：两组上下排，每组三列 */
/* 中栏随左右栏等高：核心数据三组按内容比例拉高撑满剩余高度（卡内内容垂直居中），
   组间距固定——上下不留空白，也不会因留白全堆在组间而显得松散 */
.hero .kpis{flex:1;flex-direction:column;gap:12px;margin:0;position:relative;z-index:5;text-align:left}
.hero .kgrp{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;background:var(--card);padding:8px 10px 10px}
.hero .krow{grid-template-columns:repeat(3,minmax(0,1fr))}
.hero .kgrp-ctr .krow,.hero .kgrp-ppl .krow{grid-template-columns:repeat(4,minmax(0,1fr))}
.hero .kgrp-ctr .krow.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.kgrp-ppl{--kc:#9a6a2a}
/* 每格都是入口：悬停出「→」 */
.kpi{position:relative}
.kpi::after{content:"→";position:absolute;right:8px;top:6px;color:var(--brand);font-size:13px;
  opacity:0;transform:translateX(-3px);transition:opacity .15s,transform .15s}
.kpi:hover::after{opacity:.8;transform:none}
.hero .kpi{padding:4px 8px}
.hero .kpi b{font-size:19px}
.hero .kpi span{font-size:12.5px}
@media (max-width:560px){.hero .krow,.hero .kgrp-ctr .krow,.hero .kgrp-ppl .krow{grid-template-columns:repeat(2,minmax(0,1fr))}}
.herorow .qchips{align-items:center;margin-top:0;padding-top:18px;gap:6px}
.herorow .qchips .muted{font-size:12.5px;margin-right:2px}
.herorow .qchip{padding:3px 11px;font-size:12.5px}
@media(max-width:1180px){.herorow{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .herorow .hero{grid-column:1/-1;order:-1}}
@media(max-width:760px){.herorow,.herorow.no-cde{grid-template-columns:1fr}}
/* 首页核心数据条：审评审批一组 + 临床试验一组 */
.kpis{display:flex;gap:14px;margin:0 0 26px;flex-wrap:wrap}
.kgrp{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px 12px;min-width:0;
  border-top:3px solid var(--kc,var(--brand))}
.kgrp-cde{--kc:#2a4f9a;flex:3 1 330px}
.kgrp-ctr{--kc:#10b981;flex:6 1 560px}
.kgrp h4{margin:0 0 6px 4px;font-size:12.5px;color:var(--kc);letter-spacing:.08em}
.krow{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:4px}
.kpi{display:flex;flex-direction:column;padding:6px 8px;border-radius:8px;color:var(--ink);min-width:0;transition:background .15s}
.kpi:hover{background:var(--hover);text-decoration:none}
.kpi b{font-size:22px;font-weight:700;line-height:1.25;font-variant-numeric:tabular-nums}
.kpi span{font-size:13px;color:var(--ink)}
.kpi i{font-style:normal;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 首页使用提示：本站能回答的问题（按主题分栏） */
.uses{margin:26px 0}
.uses-head h3{margin:0 0 4px}
.uses-head p{margin:0 0 12px;font-size:13.5px;line-height:1.7}
.usecols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:1180px){.usecols{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.usecols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.usecols{grid-template-columns:1fr}}
.usegrp{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 12px 6px}
.usegrp h4{margin:0 0 6px;font-size:13.5px;color:var(--brand);letter-spacing:.06em}
.useq{display:flex;flex-direction:column;gap:3px;padding:8px 6px;border-top:1px dashed var(--line2);color:var(--ink);border-radius:6px}
.usegrp h4+.useq{border-top:0}
.useq:hover{background:var(--hover);text-decoration:none}
.useq b{font-size:13.5px;line-height:1.45}
.useq span{font-size:12.5px;color:var(--muted);line-height:1.6}
.useq i{font-style:normal;font-size:12.5px;color:var(--brand);font-weight:600}
.stat{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 18px 18px;text-align:center;color:var(--ink);
  overflow:hidden;transition:transform .2s,box-shadow .2s,border-color .2s}
.stat::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--stat-grad,var(--brand-grad));border-radius:14px 14px 0 0}
.stat:hover{border-color:transparent;text-decoration:none;box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.stat .stat-icon{font-size:30px;margin-bottom:8px;display:block;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}
.stat b{display:block;font-size:28px;color:var(--ink);font-weight:700;transition:color .2s}
.stat span{color:var(--muted);font-size:14px}
.stat i{display:block;font-style:normal;color:var(--muted);font-size:11.5px;margin-top:2px}
/* 卡片类型渐变accent */
.stat-institution{--stat-grad:linear-gradient(90deg,#3b82f6,#2563eb)}
.stat-sponsor{--stat-grad:linear-gradient(90deg,#f59e0b,#ea580c)}
.stat-drug{--stat-grad:linear-gradient(90deg,#10b981,#059669)}
.stat-investigator{--stat-grad:linear-gradient(90deg,#8b5cf6,#7c3aed)}
.stat-contact{--stat-grad:linear-gradient(90deg,#06b6d4,#0891b2)}
.stat-chictr{--stat-grad:linear-gradient(90deg,#14b8a6,#0d9488)}
/* person / contact 信息面板 */
.pinfos{margin-top:12px;display:flex;flex-direction:column;gap:5px}
.pinfo{display:flex;gap:10px;font-size:14px;align-items:baseline}
.hosted-note b{color:#0b6b53;background:rgba(11,107,83,.09);
  border:1px solid rgba(11,107,83,.28);border-radius:5px;padding:1px 8px}
.hosted-note .dim{color:var(--muted);font-size:13px}
.cancelled-note b{color:#b3261e;background:rgba(179,38,30,.09);
  border:1px solid rgba(179,38,30,.28);border-radius:5px;padding:1px 8px}
.cancelled-note .dim{color:var(--muted);font-size:13px}
.pinfo dt{color:var(--muted);min-width:76px;margin:0;flex-shrink:0}
.pinfo dd{margin:0}
.chip2{display:inline-block;background:var(--soft);border-radius:8px;padding:1px 9px;margin:0 6px 4px 0;font-size:13px}
a.chip2{color:var(--ink)}
a.chip2:hover{background:var(--line2);text-decoration:none}
a.chip2.on{background:var(--brand);color:#fff}
a.chip2.on .muted{color:#fff;opacity:.75}
/* 面板内的纯列表（IIT 面板等）：去掉项目符号与默认缩进 */
.plainlist{list-style:none;margin:6px 0 4px;padding:0}
.plainlist li{padding:2px 0;line-height:1.5}
/* 归类统计（facets）*/
.facets{margin-top:14px;border-top:1px dashed var(--line);padding-top:10px}
.fsec{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;padding:4px 0}
.ftitle{color:var(--muted);font-size:13px;min-width:60px;flex-shrink:0}
.fitem{display:inline-block;background:var(--soft);border-radius:14px;padding:2px 10px;
  font-size:13px;color:var(--ink);margin:0 2px 4px 0}
.fitem b{font-weight:600;color:var(--brand);margin-left:5px}
.fitem.on{background:var(--brand);color:#fff}
.fitem.on b{color:#fff}
a.fitem:hover{text-decoration:none;background:var(--hover)}
a.fitem.on:hover{background:var(--brand2)}
.fitem.plain{background:transparent;border:1px dashed var(--line)}
.chip .fitem{margin:0}
/* 绑定面板折叠（机构页研究者超额部分） */
.pfold{display:inline}
.pfold summary{display:inline-block;cursor:pointer;list-style:none;
  color:var(--brand);font-size:13px;margin:0 2px 4px 0;user-select:none}
.pfold summary::-webkit-details-marker{display:none}
.pfold summary::after{content:" ▾ 展开"}
.pfold[open] summary::after{content:" ▴ 收起"}
/* 机构分布地图 */
.mtiles{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:12px}
.mtile{background:var(--soft2);border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.mtile dt{color:var(--muted);font-size:12.5px;margin:0}
.mtile dd{margin:2px 0 0;font-weight:600;font-size:14px}
.cnmap{width:100%;max-width:1000px;height:auto;border:1px solid var(--line);border-radius:10px;background:var(--map-bg)}
.cnmap [data-drill]{cursor:pointer}
/* 试验页地图↔机构表联动：可点省份（形状+标签）与选中态 */
.cnmap [data-pick]{cursor:pointer}
.cnmap .plabel[data-pick]{cursor:pointer;pointer-events:all;
  stroke:rgba(0,0,0,0);stroke-width:7px;paint-order:stroke}
.cnmap .prov.sel{stroke:var(--brand);stroke-width:2.4}
.cnmap polygon.prov.sel{stroke:var(--brand);stroke-width:3.6}
.cnmap .plabel.sel{fill:var(--brand);font-weight:700}
.mlegend .maphint{color:var(--ink)}
.mlegend .maphint b{color:var(--brand)}
.mlegend .maphint a{cursor:pointer}
#sec-sites tr.row-hit td{background:var(--soft2)}
#sec-sites tr.row-hit:hover td{background:var(--hover)}
.cnmap .prov{fill:var(--prov-fill);stroke:var(--prov-stroke);stroke-width:.7;transition:fill .2s,stroke .2s,stroke-width .2s}
.cnmap .prov:hover{stroke:var(--brand);stroke-width:1.5;filter:brightness(1.15)}
.cnmap .prov.lv0,.cnmap .prov:not([class*="lv"]){transition:fill .2s}
/* mini bar */
.cnmap .mbar{fill:var(--brand);opacity:.7;transition:opacity .2s}
.cnmap .mbar:hover{opacity:1}
.cnmap .mbar-bg{fill:var(--prov-stroke);opacity:.2}
/* 分级设色：省底色深浅=机构数（真实地理图，path，面积不等大，深色不
   会整格盖住文字） */
.cnmap .lv1,.lvbox.lv1{fill:var(--lv1);background:var(--lv1)}
.cnmap .lv2,.lvbox.lv2{fill:var(--lv2);background:var(--lv2)}
.cnmap .lv3,.lvbox.lv3{fill:var(--lv3);background:var(--lv3)}
.cnmap .lv4,.lvbox.lv4{fill:var(--lv4);background:var(--lv4)}
.cnmap .lv5,.lvbox.lv5{fill:var(--lv5);background:var(--lv5)}
/* 网格/蜂窝图（polygon/rect）：格子等大且必带文字，深色底会把文字压
   看不清——数值大小改用描边深浅表达，填色统一保持浅底（用户口径） */
.cnmap polygon.prov,.cnmap rect.prov{fill:var(--prov-fill)}
.cnmap polygon.lv1,.cnmap rect.lv1{fill:var(--prov-fill);stroke:var(--lv1);stroke-width:3}
.cnmap polygon.lv2,.cnmap rect.lv2{fill:var(--prov-fill);stroke:var(--lv2);stroke-width:3}
.cnmap polygon.lv3,.cnmap rect.lv3{fill:var(--prov-fill);stroke:var(--lv3);stroke-width:3}
.cnmap polygon.lv4,.cnmap rect.lv4{fill:var(--prov-fill);stroke:var(--lv4);stroke-width:3}
.cnmap polygon.lv5,.cnmap rect.lv5{fill:var(--prov-fill);stroke:var(--lv5);stroke-width:3}
.cnmap .prov.sc{stroke-width:.9}
.cnmap .scbox{fill:none;stroke:var(--prov-stroke);stroke-width:.8}
.cnmap .sclabel{font-size:8.5px;fill:var(--muted);text-anchor:middle}
/* 省标签：字号/行高与 geomap._LABEL_FONT/_LINE_H 同步（防重叠按此计算） */
.cnmap .plabel[data-drill]{cursor:pointer;pointer-events:all;
  stroke:rgba(0,0,0,0);stroke-width:7px;paint-order:stroke}
.cnmap .plabel{font-size:8.5px;fill:var(--ink);text-anchor:middle;font-weight:500;
  paint-order:stroke;stroke:var(--map-bg);stroke-width:2.5px;stroke-linejoin:round;
  pointer-events:none}
.cnmap .plabel.dim{fill:var(--muted);font-weight:400;opacity:.75}
/* 标签压在深底色上看不清（老问题）：geomap 给压在 lv 底色上的标签带 data-lv，
   这里按主题与级别换对比色，并配反色描边。三套主题的 lv 色阶各不同，逐套定 */
.cnmap .plabel[data-lv="4"],.cnmap .plabel[data-lv="5"]{fill:#fff;stroke:rgba(15,23,42,.55);stroke-width:2.5px;font-weight:600}
[data-theme=bright] .cnmap .plabel[data-lv="4"]{fill:#0b1220;stroke:rgba(255,255,255,.6)}
[data-theme=dark] .cnmap .plabel[data-lv="4"]{fill:#fff;stroke:rgba(0,0,0,.5)}
[data-theme=dark] .cnmap .plabel[data-lv="5"]{fill:#0b1220;stroke:rgba(255,255,255,.55)}
[data-theme=dark] .cnmap .plabel[data-lv="3"]{fill:#fff;stroke:rgba(0,0,0,.5)}
.mlegend .lvbox{display:inline-block;width:13px;height:13px;border-radius:3px;
  margin:0 4px 0 10px;vertical-align:-2px;border:1px solid rgba(0,0,0,.08)}
.cnmap .spon .star{font-size:13px;fill:#d33;text-anchor:middle}
.cnmap .spon .slabel{font-size:8.5px;fill:#d33;text-anchor:middle;
  paint-order:stroke;stroke:var(--map-bg);stroke-width:2.5px;stroke-linejoin:round}
.mlegend{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin:6px 0;align-items:center}
.mlegend .star2{color:#d33}
.mnote{margin-top:6px}
.mlegend a{margin-right:4px}
.mlegend .maptoggle{padding:2px 9px;border:1px solid var(--line);
  border-radius:999px;white-space:nowrap;color:var(--ink)}
.mlegend .maptoggle:hover{border-color:var(--brand);color:var(--brand)}
/* 主体浏览：省/市两级位置归类导航 */
.locnav{margin:10px 0 14px}
.locrow{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px}
.crumb{font-size:14px;color:var(--muted);flex-shrink:0}
.crumb b{color:var(--ink)}
.locchips{display:inline}
/* 风云榜挂点：当前层醒目入口（品牌渐变描边）+ 分类项旁「榜」小标 */
.arenago{display:inline-flex;gap:4px;align-items:baseline;flex-wrap:wrap;
  font-size:13px;margin-left:8px;padding:1px 10px;border-radius:12px;
  border:1px solid rgba(234,88,12,.45);color:#c2410c;background:rgba(251,146,60,.08)}
a.arenago:hover{text-decoration:none;background:rgba(251,146,60,.18)}
.arenago a{color:#c2410c;font-weight:600}
.fwrap{display:inline-flex;align-items:baseline;white-space:nowrap}
a.arl{font-size:11px;line-height:1.5;color:var(--muted);opacity:.5;padding:0 3px;
  margin:0 6px 0 -3px;border-radius:4px;font-weight:600}
a.arl:hover{opacity:1;color:#fff;text-decoration:none;
  background:linear-gradient(135deg,#f97316,#db2777)}
.hiergrid li a.arl{flex:0 0 auto;margin:0;color:var(--muted)}
.hiergrid li a.arl:hover{color:#fff}
.locmap summary{cursor:pointer;color:var(--muted);font-size:13px;list-style:none;user-select:none;margin:4px 0}
.locmap summary::-webkit-details-marker{display:none}
.locmap summary::after{content:" ▾"}
.locmap[open] summary::after{content:" ▴"}
/* 省内（市级）分布图：格子少，不需要跟全国图一样大，缩小些给下面的
   列表让位（用户口径：省内地图太占地方）——试验详情页的省内视图走这个
   默认值（下面接的是宽表，图还是得让着表）。 */
.citymap .cnmap{max-width:420px}
/* 主体浏览页的省内视图改左右布局（用户口径：列表就 3 列不占宽，图挤在
   窄栏里字太小，不如图放大、列表挪右边）：图不用再让位给下面的表，
   放大到接近全国图的尺寸；列表定宽窄栏，屏幕不够宽时自动折行堆叠 */
.loc-split{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;margin-top:6px}
/* 地图:列表按 60:40 定比分（用户口径），减去的 10px 是 gap 20px 在两栏
   各自的份摊——两栏宽度按容器宽度百分比走，会一起跟着缩放，不像固定
   像素那样此消彼长；grow:0 保持比例不被撑宽，shrink:1 留给窄屏兜底
   （连同 flex-wrap 一起在放不下时改回上下堆叠）。地图栏基准更宽了，
   里面的 svg 就不用再单独封顶 max-width，跟着栏宽走，字号连带更大 */
.loc-split .locmap{flex:0 1 calc(60% - 10px);min-width:280px;margin:0}
/* 上面 .citymap .cnmap{max-width:420px} 那条是给试验详情页的省内视图
   （图上方堆表格，得让着表）留的，选择器没管到 .loc-split 语境也会命中
   ——图面板明明分到 60% 宽度，里面的 svg 却被那条旧规则摁死在 420px，
   面板右侧空出一大截（用户实测反馈）。这条选择器多一层 .loc-split，
   特异度比它高，专门在分栏语境里解封，让 svg 吃满面板宽度 */
.loc-split .locmap .cnmap{max-width:none}
.loc-split .loc-list{flex:0 1 calc(40% - 10px);min-width:260px}
.loc-split .loc-list .tbl{width:100%}
@media(max-width:760px){.mtiles{grid-template-columns:repeat(2,1fr)}}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:10px}
.cols .col.wide{grid-column:auto}
.col{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-sm)}
.col h3{margin:0 0 12px;font-size:16px}
.col h3 .more{float:right;font-size:13px;font-weight:400}
.upd-day h4{margin:6px 0 6px;font-size:14px}
.upd-day ul,.feed{margin:0;padding-left:0;list-style:none}
.upd-day li,.feed li{padding:4px 0;border-bottom:1px solid var(--line2);font-size:14px}
/* badges */
.badge{display:inline-block;padding:1px 9px 1px 7px;border-radius:20px;font-size:12.5px;background:var(--soft);color:var(--muted);white-space:nowrap}
.badge::before{margin-right:3px;font-size:11px}
.s-active{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#15803d}
.s-done{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1d4ed8}
.s-stop{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#b91c1c}
.s-pause{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}
/* 推定已结束（本站标注，非登记状态）：灰底虚线框与真实状态徽标区分开 */
.s-pend{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);color:#475569;border:1px dashed #94a3b8}
/* 同面板的反面结论（判断过、仍按在研计）：同样虚线框表明是本站判断 */
.s-pend-ok{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#15803d;border:1px dashed #4ade80}
/* 试验归类徽标（trialcat）：BE 系蓝色、非 BE 按期别暖灰渐进、上市后紫灰 */
.c-beh{background:linear-gradient(135deg,#dbeafe,#93c5fd);color:#1e40af}
.c-bep{background:linear-gradient(135deg,#cffafe,#a5f3fc);color:#155e75}
.c-nbi{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);color:#475569}
.c-nbiii{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}
.c-nbe23{background:linear-gradient(135deg,#ffedd5,#fed7aa);color:#9a3412}
.c-nbepm{background:linear-gradient(135deg,#ede9fe,#ddd6fe);color:#5b21b6}
.c-review{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}
.c-done{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#15803d}
.catdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:baseline}
.catdot.c-beh{background:#3b82f6}.catdot.c-bep{background:#06b6d4}
.catdot.c-nbi{background:#94a3b8}.catdot.c-nbiii{background:#f59e0b}
.catdot.c-nbe23{background:#ea580c}.catdot.c-nbepm{background:#8b5cf6}
.hs-ev{color:var(--muted);font-size:12px;margin-left:6px}
/* tables */
.listhead{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.listhead h2{font-size:20px;margin:0}
.tbl{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:clip;font-size:13px;box-shadow:var(--shadow-sm)}
.tbl thead th{position:sticky;top:56px;z-index:4}
.tbl th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:10px 14px;background:var(--soft2);border-bottom:1px solid var(--line)}
.tbl td{padding:11px 14px;border-bottom:1px solid var(--line2);vertical-align:top;font-weight:400}
.tbl tbody tr:nth-child(even) td{background:var(--soft2)}
.tbl tbody tr:hover td{background:var(--hover)}
.tbl tr:last-child td{border-bottom:0}
.c-reg a{font-family:ui-monospace,"JetBrains Mono","Fira Code",Menlo,Consolas,monospace;font-size:12.5px;font-weight:400}
.c-title a{font-weight:400;font-size:12.5px}
.c-sub{font-size:13px;color:var(--muted);margin-top:2px}
.canon-hint{font-size:12px;white-space:nowrap;margin-left:2px}
.elink{color:var(--link)}
.empty{text-align:center;color:var(--muted);padding:36px}
.tbl.narrow td:last-child,.tbl.narrow th:last-child{width:120px;white-space:nowrap}
/* 层级浏览子节点：可排序列表（点列头切换名称/试验数排序） */
/* 层级浏览的全树搜索框 + 数据来源标注 */
.hfilter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px}
/* 搜索框包一层 .acfi（联想下拉的定位锚点）后，弹性尺寸由包裹层接管 */
.hfilter .acfi{flex:0 1 280px}
.hfilter .acfi input{width:100%}
.hfilter input[type=search]{flex:0 1 280px;padding:7px 11px;font-size:13px;color:var(--ink);
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.hfilter input[type=search]:focus{outline:none;border-color:var(--brand)}
.hfilter button{padding:7px 15px;font-size:13px;cursor:pointer;color:#fff;
  background:var(--brand);border:0;border-radius:var(--radius)}
.hfilter button:hover{background:var(--brand2)}
.hclear{font-size:13px;color:var(--muted)}
/* 风云榜筛选两个提交钮:确定=安静换台(常规主按钮);开榜=进全屏自动开跑
   (品牌渐变强调,保留仪式感) */
.arenaform .aok{background:var(--soft);color:var(--ink);border:1px solid var(--line)}
.arenaform .aok:hover{background:var(--hover);border-color:var(--brand);color:var(--brand)}
.arenaform .arace{background:var(--brand-grad);color:#fff;border:0}
/* 搜索/筛选命中高亮：底色荧光笔风格，不改变字色；深色主题降低饱和度保对比 */
mark{background:linear-gradient(transparent 45%,rgba(251,191,36,.55) 45%);
  color:inherit;border-radius:2px;padding:0 1px}
[data-theme=dark] mark{background:linear-gradient(transparent 45%,rgba(251,191,36,.32) 45%)}
/* 试验数迷你条（主体浏览表/分类子节点列表）：相对同屏最大值的直观主次 */
.nbar{display:inline-block;height:4px;border-radius:2px;background:var(--brand);
  opacity:.45;vertical-align:middle;margin-left:2px}
/* 分类页本层实时筛选框（纯前端过滤，不提交服务端） */
.hierflt{padding:6px 10px;font-size:13px;border:1px solid var(--line);border-radius:9px;
  background:var(--card);color:var(--ink);width:170px}
.hierflt:focus{outline:none;border-color:var(--brand)}
@media(max-width:760px){.hierflt{width:120px}}
.hsrc{font-size:12px;color:var(--muted);flex:1 1 100%}
/* 搜索结果里的层级路径（帮助判断该病名在哪一支下） */
.hiersearch td:first-child{white-space:normal}
.hpath{font-size:12px;color:var(--muted);margin-top:2px}
/* 子分类清单：自适应多栏。一行一个的话，47 个子类要占 47 行，下面的趋势图
   与试验列表就被推得很远——多栏后同样的内容只占三分之一高度 */
.hierbar{display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:wrap;margin:0 0 7px;font-size:14px}
.hiersort{font-size:12.5px;color:var(--muted);display:inline-flex;gap:6px;align-items:center}
.hiersort a{padding:2px 10px;border:1px solid var(--line);border-radius:12px;
  color:var(--muted);white-space:nowrap}
.hiersort a:hover{text-decoration:none;color:var(--brand);border-color:var(--brand)}
.hiersort a.on{color:var(--brand);border-color:var(--brand);background:rgba(59,130,246,.07)}
.hiergrid{list-style:none;margin:0 0 18px;padding:0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0 20px}
.hiergrid li{display:flex;align-items:baseline;gap:8px;min-width:0;
  padding:5px 2px;border-bottom:1px solid var(--line2);font-size:13.5px}
.hiergrid li a{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;color:var(--ink);font-weight:400}
.hiergrid li a:hover{color:var(--brand)}
.hiergrid li b{flex:0 0 54px;text-align:right;font-weight:600;font-size:12.5px;
  color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:560px){.hiergrid{grid-template-columns:1fr}}
.hierlist{margin:0 0 18px;table-layout:fixed}
.hierlist td.num,.hierlist th.num,.hierlist th:last-child{width:110px;text-align:right;white-space:nowrap}
.hierlist td.num{font-variant-numeric:tabular-nums;color:var(--muted)}
.hierlist th.sortable a{color:var(--muted);display:inline-block;width:100%}
.hierlist th.sortable.on a{color:var(--brand)}
.hierlist th.sortable:hover a{color:var(--fg)}
.hierlist th.num a{text-align:right}
.hierlist td a{font-weight:400}
/* 详情页疾病面包屑：末级病名的试验数徽标 */
.cdisn{margin-left:.35em;font-variant-numeric:tabular-nums}
b.cdisn{color:var(--brand);font-weight:600}
span.cdisn{font-size:.9em}
/* 试验列表统一（状态图标/分期/登记号/首次公示/样本量/耗时/药物/申办者/
   组长单位/PI/题目）。列序与 _TRIAL_LIST_COLS 一致——加列时两边同步改。
   耗时列配色：快于全库同分期中位绿、慢于中位红（基准=profile.dur_ref；
   无基准/无值不着色），与变更历史的红绿同色系。
   默认（无 autofit，如 ChiCTR 列表共用此类、无 JS 兜底前）单行省略；
   接了列宽自适应的表（data-autofit，五视图共用）切折行模式：可换行、
   不截断（信息可见优先），日期/登记号等整体不可断内容由算法的地板宽
   保住不会折断。nth-child 宽度仅作无 JS 兜底 */
.trial-list{table-layout:fixed}
/* 研究者筛选（/entity?type=investigator）：列宽交 fitcols，数字列右对齐 */
.invtbl{table-layout:fixed}
.invtbl th,.invtbl td{padding:7px 9px}
.invtbl td.nw{white-space:nowrap}
.invtbl th.num,.invtbl td.num{text-align:right;padding-left:4px;padding-right:8px}
.invtbl th.num{line-height:1.35}
.invfind select{max-width:220px}
.trial-list th,.trial-list td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trial-list[data-autofit] th,.trial-list[data-autofit] td{white-space:normal;overflow:visible;text-overflow:clip;padding:7px 9px}
/* 紧排数字列（样本量/耗时，v6.2 列分型）：右对齐方便通行内扫读与按量级
   比较，内边距收窄（内核按列实测计算值，自动跟着变窄）；表头同挂 num、
   允许折行——配合 th[data-fold] 地板减半，"样本量"/"耗时(月)"折两行
   也不再把列撑到比内容宽 */
.trial-list th.num,.trial-list td.num{text-align:right;padding-left:4px;padding-right:6px}
.trial-list th.num{line-height:1.35}
.trial-list th:nth-child(1),.trial-list td:nth-child(1){width:48px}    /* 状态（图标，title 看全称） */
.trial-list th:nth-child(2),.trial-list td:nth-child(2){width:84px}    /* 分期 */
.trial-list th:nth-child(3),.trial-list td:nth-child(3){width:116px}   /* 登记号 */
.trial-list th:nth-child(4),.trial-list td:nth-child(4){width:100px}   /* 首次公示：定长日期 */
.trial-list th:nth-child(5),.trial-list td:nth-child(5){width:48px}    /* 样本量（num：右对齐+表头折行） */
.trial-list th:nth-child(6),.trial-list td:nth-child(6){width:50px}    /* 耗时(月)，title 看口径与快慢 */
.trial-list th:nth-child(7),.trial-list td:nth-child(7){width:150px}   /* 药物 */
.trial-list th:nth-child(8),.trial-list td:nth-child(8){width:185px}   /* 申办者 */
.trial-list th:nth-child(9),.trial-list td:nth-child(9){width:175px}   /* 组长单位 */
.trial-list th:nth-child(10),.trial-list td:nth-child(10){width:84px}  /* PI */
.trial-list.tl-person th:nth-child(9),.trial-list.tl-person td:nth-child(9){width:175px}  /* 研究者列集：适应症 */
.trial-list.tl-person th:nth-child(10),.trial-list.tl-person td:nth-child(10){width:auto}  /* 研究者列集：题目（弹性） */
.dur-fast{color:#186429;font-weight:600}
.dur-slow{color:#a33;font-weight:600}
/* 题目（第 10 列）占余下空间（≈190px，悬停看全题、点击进详情）。
   有 JS 时以上宽度被 data-autofit 的 colgroup 覆盖（按内容测算），
   本块仅作无 JS 兜底 */
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0 14px}
.filters select,.filters input{padding:8px 12px;border:1px solid var(--line);border-radius:9px;font-size:14px}
.filters input[type=text]{width:130px}
.filters input[type=text].wide{width:min(320px,58vw)}
.filters button{padding:8px 16px}
.rangeform{margin:10px 0 14px;align-items:center;flex-wrap:wrap}
.rangeform label{font-size:14px;color:var(--muted)}
.rangeform input[type=date]{background:var(--card);color:var(--text)}
.rangetabs{margin:6px 0 12px;display:flex;gap:8px}
.rangetabs .fitem{font-size:14px;padding:5px 14px}
.c-brief{max-width:260px}
/* pagination */
.pagination{display:flex;gap:6px;justify-content:center;margin:22px 0;flex-wrap:wrap}
.pg{padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font-size:14px}
.pg.cur{background:var(--brand-grad);color:#fff;border-color:transparent;box-shadow:var(--shadow-sm)}
.pg.disabled{color:var(--muted);background:var(--soft2)}.pg.gap{border:0;background:transparent}
a.pg:hover{border-color:var(--brand);text-decoration:none}
/* detail */
.detail{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px 28px;box-shadow:var(--shadow)}
.tdhead{border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:18px}
.tdmeta .reg{font-family:ui-monospace,"JetBrains Mono","Fira Code",Menlo,Consolas,monospace;color:var(--muted);margin-right:4px}
.tdhead h1{font-size:23px;margin:8px 0 10px}
.tdsub{display:flex;gap:24px;flex-wrap:wrap;color:var(--muted);font-size:14px}
/* 详情页概要条 + 粘性小导航 + 长文本跨栏 */
.hstrip{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.hs{background:var(--soft);border-radius:9px;padding:4px 12px;font-size:13.5px}
.hs i{font-style:normal;color:var(--muted);margin-right:7px;font-size:12.5px}
.subnav{position:sticky;top:56px;z-index:10;display:flex;gap:4px;flex-wrap:wrap;
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:7px 10px;margin:0 0 16px;box-shadow:0 3px 10px rgba(20,30,50,.04)}
.subnav a{padding:3px 11px;border-radius:8px;font-size:13.5px;color:var(--muted)}
.subnav a:hover{background:var(--soft);color:var(--brand);text-decoration:none}
section[id]{scroll-margin-top:110px}
.kv.wide{grid-column:1 / -1}
.elink.big{font-size:15px;font-weight:600}
.wbanner{background:#fff4e5;border:1px solid #f4d19a;color:#98630f;padding:10px 14px;border-radius:10px;margin-bottom:16px}
.vswitch{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.vbtn{padding:5px 11px;border:1px solid var(--line);border-radius:8px;font-size:13px;color:var(--ink);background:var(--soft2)}
.vbtn.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.fgroup{margin:22px 0}
.fgroup h4{font-size:15px;margin:0 0 12px;padding-left:10px;border-left:3px solid var(--brand)}
.hint-sort{font-size:12px;font-weight:400;margin-left:8px}
.sortable th{cursor:pointer;user-select:none;white-space:nowrap}
.sortable th:hover{color:var(--brand)}
.sortable th.sort-asc::after{content:" ▲"}
.sortable th.sort-desc::after{content:" ▼"}
.kvgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px 26px}
@media(min-width:1400px){.kvgrid{grid-template-columns:repeat(3,1fr)}
  .crits{grid-template-columns:1fr 1fr}}
.kv{display:flex;gap:12px;padding:7px 0;border-bottom:1px solid var(--line2)}
.kv dt{color:var(--muted);min-width:110px;margin:0;flex-shrink:0}
.kv dd{margin:0}
.mini{width:100%;border-collapse:collapse;font-size:14px}
.mini th{text-align:left;color:var(--muted);font-weight:600;font-size:12.5px;padding:7px 10px;background:var(--soft2);border-bottom:1px solid var(--line)}
/* 综合表统计列（th/td.num）：内容是纯数字，列要尽量窄——表头折行成多行
   （覆盖 .sortable th 的 nowrap），数据居中；配合 data-autofit 的
   th[data-fold]（表头宽地板减半）与 data-fit-flex（机构名称列为弹性列）
   把宽度让给内容。td.nw：国家/地区/研究者/身份等短内容列不换行，
   autofit 按 nowrap 钉死列宽 */
.mini th.num{white-space:normal;width:1%;min-width:0;line-height:1.35;padding:6px 8px}
.mini td.num{text-align:center;padding:6px 8px}
.mini td.nw{white-space:nowrap}
/* 综合表外国行可折行格：超长单词允许任意处断开（列宽不被个别长词撑宽） */
.sitetbl td:not(.nw){overflow-wrap:anywhere}
.mini td{padding:7px 10px;border-bottom:1px solid var(--line2)}
.mini td.longcell{max-width:420px;font-size:13.5px}
.crits{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.crit h5{margin:0 0 6px}.crit ul{margin:0;padding-left:18px}.crit li{padding:2px 0;font-size:14px}
/* version diffs (变更历史/每日更新明细) */
.vdiff{border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:10px 0;background:var(--soft2)}
.vdiff-head{margin-bottom:8px}
.wflag{color:#b7791f;background:#fff4e5;border-radius:8px;padding:1px 8px;font-size:12.5px}
.dfrow{display:flex;gap:10px;align-items:baseline;padding:4px 0;border-bottom:1px dashed var(--line2);font-size:14px;flex-wrap:wrap}
.dfrow:last-child{border-bottom:0}
.dfl{color:var(--muted);min-width:96px;flex-shrink:0}
.dfold{color:#a33;text-decoration:line-through;text-decoration-color:#d99}
.dfarr{color:var(--muted)}
.dfnew{color:#186429;font-weight:600}
.dfrow.child{align-items:flex-start}
.dchild{flex:1;min-width:240px}
.dadd{color:#186429;font-size:13.5px;padding:1px 0}
.ddel{color:#a33;font-size:13.5px;padding:1px 0}
/* updates pages */
.tbl.narrow4 td,.tbl.narrow4 th{width:22%}
.tbl.narrow4 td:first-child,.tbl.narrow4 th:first-child{width:34%}
.numlist{padding-left:22px;margin:8px 0 20px}
.numlist li{padding:7px 0;border-bottom:1px solid var(--line2)}
.numlist details summary{cursor:pointer;list-style:none}
.numlist details summary::-webkit-details-marker{display:none}
.numlist details summary .c-sub::after{content:" ▾ 展开";color:var(--brand)}
.numlist details[open] summary .c-sub::after{content:" ▴ 收起"}
/* entity */
.entityhead{margin-bottom:18px}
.ecrumb{color:var(--muted);font-size:14px}
.entityhead h1{font-size:24px;margin:6px 0 10px}
.estat b{font-size:20px;color:var(--brand)}
.chip{margin-left:8px;font-size:13px}
.etabs{display:flex;gap:6px;margin-bottom:16px}
.etab{padding:7px 14px;border:1px solid var(--line);border-radius:20px;color:var(--muted);background:var(--card)}
.etab.on{background:var(--brand-grad);color:#fff;border-color:transparent}
.errbox{text-align:center;padding:80px 20px}.errbox h1{font-size:56px;margin:0;color:var(--brand)}
.btn{display:inline-block;margin-top:14px;padding:9px 20px;background:var(--brand-grad);color:#fff;border-radius:10px;box-shadow:var(--shadow-sm)}
@media(max-width:760px){.grid4{grid-template-columns:repeat(2,1fr)}.cols{grid-template-columns:1fr}
  .kvgrid,.crits{grid-template-columns:1fr}.tl{grid-template-columns:1fr}
  /* 窄屏放不下一行：换行到第二行，横向滚动而不是整个隐藏（隐藏会导致
     试验检索/每日更新/试验地图 等入口在手机上完全摸不到） */
  .topbar .wrap{display:flex;flex-wrap:wrap;height:auto;padding-top:8px;padding-bottom:8px;gap:6px 8px}
  .topright{display:contents}
  .brand{order:1}.thm-sw{order:2;margin-left:auto}.acctbox{order:2}
  .thm-sw .thm-btn{padding:4px 5px;font-size:14px}
  .topsearch{order:4;width:100%;margin:4px 0 2px}
  .tsform input{width:100%}
  /* 窄屏导航：☰ 抽屉。点开后整组竖排，下拉组原位展开、各栏上下堆叠 */
  .navtoggle{display:inline-flex;order:3;align-items:center;justify-content:center;width:34px;height:34px;
    margin-left:4px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);
    font-size:17px;cursor:pointer}
  .mainnav{order:5;width:100%;display:none;flex-direction:column;align-items:stretch;gap:4px;
    max-height:calc(100vh - 130px);overflow-y:auto;padding:6px 0 4px;border-top:1px solid var(--line2);margin-top:6px}
  .mainnav.open{display:flex}
  .mainnav>a,.mainnav>a.nav-arena{padding:8px 12px;font-size:14px;align-self:flex-start}
  .mainnav>a.nav-arena{padding:5px 12px;margin-left:2px}
  .navgrp summary{padding:8px 12px;font-size:14px}
  .navmenu{position:static;transform:none;flex-direction:column;width:auto;max-width:none;gap:4px;
    padding:2px 0 6px 10px;background:none;border:0;box-shadow:none}
  .navcol{width:auto;padding:0}
  .navcol+.navcol{border-left:0;padding-left:0}
  .navcol h6{margin:6px 10px 2px}}
/* ── 主题：明亮 / 深色（默认柔和见 :root）── */
[data-theme=bright]{--bg:#fff;--bg2:#f0f6ff;--card:#fff;--card-glass:rgba(255,255,255,.85);
  --ink:#0f172a;--muted:#475569;--line:#d5dde8;--line2:#f1f5f9;
  --link:#1d4ed8;--panel-h:#f5f8fc;
  --brand:#2563eb;--brand2:#1d4ed8;--brand-grad:linear-gradient(135deg,#2563eb,#7c3aed);
  --soft:#f1f5f9;--soft2:#f8fafc;--hover:#eff6ff;
  --shadow-sm:0 1px 3px rgba(37,99,235,.06);
  --shadow:0 4px 20px rgba(37,99,235,.09);
  --shadow-lg:0 8px 30px rgba(37,99,235,.13);
  --map-bg:#f4f9ff;--prov-fill:#eef3f9;--prov-stroke:#b7c9e2;
  --lv1:#d6e6fa;--lv2:#b4d0f4;--lv3:#84b1ec;--lv4:#4f8de0;--lv5:#1f6feb}
[data-theme=bright] .hero{background:linear-gradient(135deg,#eff6ff 0%,#e0e7ff 50%,#f5f3ff 100%)}
[data-theme=bright] .hero h1 b{background:linear-gradient(135deg,#2563eb,#7c3aed);-webkit-background-clip:text;background-clip:text;color:transparent}
[data-theme=bright] .hero-deco::before{background:radial-gradient(circle,rgba(37,99,235,.12) 0%,transparent 70%)}
[data-theme=bright] .hero-deco::after{background:radial-gradient(circle,rgba(124,58,237,.1) 0%,transparent 70%)}
[data-theme=dark]{--bg:#0f1419;--bg2:#161b22;--card:#1c2128;--card-glass:rgba(28,33,40,.8);
  --ink:#d3d9e3;--muted:#8d95a5;--line:#3a4250;--line2:#272d37;
  --link:#7ab4ff;--panel-h:#222830;
  --brand:#60a5fa;--brand2:#3b82f6;--brand-grad:linear-gradient(135deg,#60a5fa,#818cf8);
  --soft:#262c36;--soft2:#22272f;--hover:#262d38;
  --shadow-sm:0 1px 3px rgba(0,0,0,.2);
  --shadow:0 4px 20px rgba(0,0,0,.25);
  --shadow-lg:0 8px 30px rgba(0,0,0,.3);
  --map-bg:#1a1f26;--prov-fill:#242a34;--prov-stroke:#3c4554;
  --lv1:#2b3a52;--lv2:#33507a;--lv3:#3e64a0;--lv4:#4c7cc2;--lv5:#6194e0}
[data-theme=dark] .badge{background:#2a3140;color:#aeb8c8}
[data-theme=dark] .s-active{background:linear-gradient(135deg,#1d3a28,#2a4d35);color:#7ecf96}
[data-theme=dark] .s-done{background:linear-gradient(135deg,#20304a,#2a4060);color:#8ab4f0}
[data-theme=dark] .s-stop{background:linear-gradient(135deg,#452427,#5a2d30);color:#e08a8a}
[data-theme=dark] .s-pause{background:linear-gradient(135deg,#40331d,#4d3f22);color:#d9b06b}
[data-theme=dark] .s-pend{background:linear-gradient(135deg,#2c333f,#3a4150);color:#9aa5b5;border-color:#5a6474}
[data-theme=dark] .wbanner{background:#3a2f1a;border-color:#5a4a26;color:#d9b878}
[data-theme=dark] .wflag{background:#3a2f1a;color:#d9b06b}
[data-theme=dark] .dfold,[data-theme=dark] .ddel{color:#e08a8a}
[data-theme=dark] .dfnew,[data-theme=dark] .dadd{color:#7ecf96}
[data-theme=dark] .dur-fast{color:#7ecf96}
[data-theme=dark] .dur-slow{color:#e08a8a}
[data-theme=dark] .crit li,[data-theme=dark] .hero .sub{color:var(--ink)}
[data-theme=dark] .hero{background:linear-gradient(135deg,#1a1f35 0%,#1e1b39 50%,#251a3a 100%);border-color:rgba(255,255,255,.06)}
[data-theme=dark] .hero h1 b{background:linear-gradient(135deg,#60a5fa,#818cf8);-webkit-background-clip:text;background-clip:text;color:transparent}
input,select{background:var(--card);color:var(--ink)}
/* spinner */
.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--line2);
  border-top-color:var(--brand);border-radius:50%;animation:spin .6s linear infinite;vertical-align:-3px}
@keyframes spin{to{transform:rotate(360deg)}}
/* 返回顶部 */
#toTop{position:fixed;bottom:24px;right:24px;z-index:50;width:42px;height:42px;
  border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--brand);
  cursor:pointer;font-size:18px;display:none;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(20,30,50,.15);transition:opacity .2s,transform .2s}
#toTop.show{display:flex}
#toTop:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(20,30,50,.2)}
/* ── /guide 配图（推定已结束 / 试验要跑多久；内联 SVG，随索引 meta 刷新）── */
.gfig{display:block;width:100%;max-width:760px;height:auto;margin:10px 0 4px}
.gfig.pscurve{max-width:420px}
.detail.guide{max-width:1180px;margin-left:auto;margin-right:auto}
.guide p,.guide li{line-height:1.8}
.guide .figcap{margin-top:14px}
.guide .fignote{font-size:12.5px;color:var(--muted);margin:2px 0 14px;max-width:760px}
/* 说明页紧凑表：宽度随内容、行距收紧；外包 tblwrap 窄屏横向滚动 */
.tblwrap{max-width:100%;overflow-x:auto;margin:8px 0 6px}
/* tblwrap 是滚动容器：表头若 sticky 会相对它偏移 56px、压住首行并撑出竖滚动条 */
.tblwrap .tbl thead th{position:static}
/* ── 专题研究报告（/topics/<key>，ctrweb/topics.py 渲染）── */
/* 报告正文收在可读宽度内（整屏 1300px 一行太长读不动），图表居中 */
.topic-report{max-width:980px;margin:0 auto}
.topic-report h2{margin:34px 0 6px;padding-top:10px;border-top:1px solid var(--line)}
.topic-report blockquote{margin:10px 0;padding:10px 14px;border-left:3px solid var(--brand-grad,#8b7ab0);
  background:var(--card);border-radius:0 8px 8px 0;color:var(--muted)}
.topic-report blockquote p{margin:2px 0}
.topic-report pre{background:var(--card);border:1px solid var(--line);border-radius:8px;
  padding:10px 14px;overflow-x:auto;font-size:12.5px}
.topic-report ol,.topic-report ul{padding-left:22px;line-height:1.9}
.topic-fig{margin:18px auto 8px;text-align:center}
.topic-fig img{max-width:100%;height:auto;border:1px solid var(--line);border-radius:10px;
  background:#fff;padding:6px}
.topic-fig figcaption{font-size:12.5px;color:var(--muted);margin-top:6px}
.tbl.tbl-c{width:auto;font-size:12.5px}
.tbl.tbl-c th{padding:6px 12px;position:static;white-space:nowrap}
.tbl.tbl-c td{padding:5px 12px;white-space:nowrap}
.tbl.tbl-c td.num,.tbl.tbl-c th.num{text-align:right}
.tbl.tbl-c tr.grp td{font-weight:600;border-top:1px solid var(--line)}
.tbl.tbl-c.tbl-wrap td:nth-child(2),.tbl.tbl-c td.wrapcell{white-space:normal;min-width:16em;max-width:36em}
.tbl.tbl-c tr.hl td{background:color-mix(in srgb,var(--brand) 10%,transparent);font-weight:600}
.gfig .tg{stroke:var(--line2);stroke-width:1}
.gfig .tyl,.gfig .txl,.gfig .rowl,.gfig .valr,.gfig .bandl{fill:var(--muted);
  font-size:11px;font-family:inherit}
.gfig .tyl{text-anchor:end}.gfig .txl,.gfig .bandl{text-anchor:middle}
.gfig .rowl{text-anchor:end;fill:var(--ink)}
.gfig .lvl{stroke:var(--ink);stroke-width:1;stroke-dasharray:4 3;opacity:.45}
.pscurve .pl{fill:none;stroke-width:2;stroke-linejoin:round;opacity:.85}
.pscurve .pd{stroke:var(--card);stroke-width:1.4}
.figrow{display:flex;gap:28px;flex-wrap:wrap;margin:6px 0}
.figrow>div{flex:0 1 420px;min-width:280px}
.figcap{margin:12px 0 0;font-size:12.5px;color:var(--muted);font-weight:600}
.figlegend{margin:2px 0 10px;font-size:12px;color:var(--muted);
  display:flex;flex-wrap:wrap;gap:4px 14px}
.figlegend .lg{display:inline-flex;align-items:center;gap:5px}
.figlegend i{width:9px;height:9px;border-radius:50%;display:inline-block}
/* 通俗说明框（一句话结论/规则）与可展开的技术细节 */
.plainbox{margin:10px 0 14px;padding:12px 16px;background:var(--soft2);
  border:1px solid var(--line);border-left:4px solid var(--brand);
  border-radius:0 10px 10px 0;font-size:14.5px;line-height:1.75}
.techbox{margin:22px 0 6px;border:1px dashed var(--line);border-radius:10px;
  padding:4px 16px 10px}
.techbox>summary{cursor:pointer;font-weight:600;color:var(--brand);padding:8px 0}
.techbox h4{margin:14px 0 6px}
.tbl-th2 th{text-align:center}.tbl-th2 td{text-align:right}
.tbl-th2 td:first-child{text-align:left}
/* 无衰减肿瘤子桶（3.6节）：数字性质不同于其余单元格（历史耗时上限，非
   概率界限），底色与右上角 † 标共同标出，避免被误读成同一种数字——配色
   与「⚠ 待核对」徽标同一套琥珀色，全站"需要额外注意"统一用这个色系 */
.tbl-th2 td.nodecay{background:linear-gradient(135deg,#fef3c7,#fde68a)}
.tbl-th2 td.nodecay sup{color:#92400e;font-weight:700;margin-left:1px}
.formula{margin:8px 0;padding:8px 14px;background:var(--soft2);
  border-left:3px solid var(--brand);border-radius:0 8px 8px 0;font-size:14px}
/* 两个时钟示意图 */
.clockfig .ax{stroke:var(--line);stroke-width:1.5}
.clockfig .node circle{fill:var(--card);stroke:var(--brand);stroke-width:2}
.clockfig .nl{fill:var(--ink);font-size:12.5px;font-weight:600;text-anchor:middle}
.clockfig .nd{fill:var(--muted);font-size:11px;text-anchor:middle}
.clockfig .brace{fill:none;stroke-width:1.4}
.clockfig .brace.a{stroke:#3b82f6}.clockfig .brace.b{stroke:#ea580c}
.clockfig .bl{font-size:11.5px;text-anchor:middle}
.clockfig .bl.a{fill:#3b82f6}.clockfig .bl.b{fill:#ea580c}
/* 队列滞留率 */
.cohortfig .cb{fill:var(--brand);opacity:.8}
.cohortfig .cb:hover{opacity:1}
.cohortfig .band{fill:var(--ink);opacity:.035}
.cohortfig .band.e1{opacity:.07}
/* 完成耗时区间条 */
.durfig .bar{stroke-width:5;opacity:.55;stroke-linecap:round}
.durfig .bar2{stroke-width:5;opacity:.18;stroke-linecap:round}
.durfig .med{stroke-width:2.6}
.durfig .kmd{fill:var(--card);stroke-width:2}
.durfig .durrow:hover .bar{opacity:.8}
.durfig .durrow:hover .bar2{opacity:.34}
.tbl-th td,.tbl-dur td{padding:8px 12px}
.tbl-dur .kmcol{color:var(--brand)}
/* 复制按钮 */
.copybtn{border:1px solid var(--line);background:var(--soft);border-radius:6px;
  padding:2px 6px;font-size:12px;cursor:pointer;vertical-align:middle;transition:background .15s,color .15s}
.copybtn:hover{background:var(--hover)}
.copybtn.ok{color:#1a7f37;border-color:#1a7f37}
/* 清除筛选 */
.clrbtn{font-size:13px;color:var(--muted);padding:8px 14px;border:1px solid var(--line);
  border-radius:9px;background:var(--card);text-decoration:none;white-space:nowrap;transition:color .15s,border-color .15s}
.clrbtn:hover{color:var(--brand);border-color:var(--brand);text-decoration:none}
/* CSV 导出按钮（与列表筛选同源的条件） */
.expbtn{font-size:13px;color:var(--brand);padding:8px 14px;border:1px solid var(--line);
  border-radius:9px;background:var(--card);text-decoration:none;white-space:nowrap;transition:border-color .15s,background .15s}
.expbtn:hover{border-color:var(--brand);background:rgba(123,116,172,.08);text-decoration:none}
/* 标题栏右侧工具组（几个按钮挨在一起，不被两端对齐拉开） */
.lhtools{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}
/* 导出下拉：点「导出」展开，选 HTML / CSV */
.expmenu{position:relative;display:inline-block}
.expmenu>summary{list-style:none;cursor:pointer;display:inline-block}
.expmenu>summary::-webkit-details-marker{display:none}
.expmenu>summary::after{content:" ▾";font-size:11px}
.expmenu[open]>summary{border-color:var(--brand)}
.expopts{position:absolute;right:0;top:calc(100% + 4px);z-index:30;width:260px;
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  box-shadow:0 6px 20px rgba(0,0,0,.12);padding:4px}
.expopts a{display:block;padding:8px 10px;border-radius:7px;text-decoration:none;color:var(--ink)}
.expopts a:hover{background:var(--hover);text-decoration:none}
.expopts b{color:var(--brand);font-size:13px}
.expopts span{display:block;font-size:12px;color:var(--muted);margin-top:2px;line-height:1.45}
/* 主题切换器 */
.thm-sw{margin-left:auto;display:flex;gap:2px;background:var(--soft);border-radius:9px;padding:3px}
.acctbox{display:flex;gap:6px;align-items:center;margin-left:6px;flex-shrink:0}
.acct-u{font-size:13px;color:var(--ink);text-decoration:none;border:1px solid var(--line);
  border-radius:8px;padding:4px 10px;white-space:nowrap;max-width:9em;overflow:hidden;
  text-overflow:ellipsis}
.acct-u:hover{border-color:var(--brand);color:var(--brand)}
.acct-out{font-size:13px;color:var(--muted);background:none;border:1px solid transparent;
  border-radius:8px;padding:4px 8px;cursor:pointer}
.acct-out:hover{color:#c0504d;border-color:#c0504d}
.statlock{display:flex;gap:10px;align-items:baseline}
.thm-btn{border:none;background:transparent;border-radius:7px;padding:5px 8px;font-size:15px;
  cursor:pointer;transition:background .15s;line-height:1}
.thm-btn:hover{background:var(--hover)}
.thm-btn.on{background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.1)}
/* 全部展开/收起 */
.toggle-all{font-size:13px;color:var(--brand);cursor:pointer;background:none;border:none;
  padding:2px 6px;vertical-align:baseline}
.toggle-all:hover{text-decoration:underline}
/* ── 灵动增强：主题过渡/涟漪/行高亮/错落入场/Toast/视差 ── */
.thm-trans,.thm-trans *,.thm-trans *::before,.thm-trans *::after{transition:background-color .3s ease,color .3s ease,border-color .3s ease,fill .3s ease,box-shadow .3s ease !important}
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.35);transform:scale(0);animation:rippleAnim .6s ease-out;pointer-events:none}
@keyframes rippleAnim{to{transform:scale(3);opacity:0}}
button,.pg,.etab,.thm-btn,.vbtn,.stat{position:relative;overflow:hidden}
.tbl tbody tr td:first-child{box-shadow:inset 3px 0 0 transparent;transition:box-shadow .15s}
.tbl tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--brand)}
@keyframes fadeUpD{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.stat{animation:fadeUpD .4s ease both}
.stat:nth-child(2){animation-delay:.06s}.stat:nth-child(3){animation-delay:.12s}.stat:nth-child(4){animation-delay:.18s}.stat:nth-child(5){animation-delay:.24s}.stat:nth-child(6){animation-delay:.3s}
.col{animation:fadeUpD .45s ease both}.col:last-child{animation-delay:.08s}
#toastbox{position:fixed;bottom:72px;right:24px;z-index:100;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 16px;font-size:14px;color:var(--ink);box-shadow:0 4px 20px rgba(20,30,50,.15);display:flex;align-items:center;gap:8px;pointer-events:auto;animation:toastIn .25s ease both;max-width:340px}
.toast.out{animation:toastOut .25s ease both}
.toast .ti{font-size:16px;flex-shrink:0}
.toast.ok{border-left:3px solid #2ea047}.toast.ok .ti{color:#2ea047}
.toast.err{border-left:3px solid #e74c3c}.toast.err .ti{color:#e74c3c}
.toast.info{border-left:3px solid var(--brand)}.toast.info .ti{color:var(--brand)}
@keyframes toastIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateX(40px)}}
.hero{--py:0px}
.hero-deco::before{transform:translateY(var(--py))}
.hero-deco::after{transform:translateY(calc(var(--py) * -.5))}
/* ── 适应症热词云（ICD-10 类目）── */
.icdbox{position:relative;margin:26px 0;padding:20px 24px 16px;border:1px solid var(--line);
  border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);overflow:hidden}
.icdbox::before{content:"";position:absolute;top:-45%;left:-8%;width:620px;height:620px;pointer-events:none;
  background:radial-gradient(circle,rgba(107,127,168,.10) 0%,transparent 70%)}
.icdbox::after{content:"";position:absolute;bottom:-50%;right:-6%;width:520px;height:520px;pointer-events:none;
  background:radial-gradient(circle,rgba(139,122,176,.09) 0%,transparent 70%)}
.icdhead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;position:relative}
.icdhead h3{margin:0;font-size:17px}
.icdhead h3 .muted{font-size:13px;font-weight:400;margin-left:6px}
.icdsub{margin:2px 0 0;color:var(--muted);font-size:12.5px;position:relative}
.wcloud{display:block;width:100%;height:auto;max-height:min(72vh,700px);margin:2px 0 6px;position:relative}
/* 窄屏另排一版竖版（词更少、字更大）——SVG 文字不会自动重排，宽幅版缩到
   手机宽度后最小的词只剩 5px，等于没有 */
.wcloud-m{display:none;width:100%;height:auto;margin:2px 0 6px;position:relative}
.wcw text{font-weight:700;text-anchor:middle;fill:currentColor;letter-spacing:-.01em;
  paint-order:stroke;transition:opacity .15s}
.wcw{cursor:pointer}
.wcw:hover text{opacity:.62;text-decoration:none}
.wc-n{font-weight:600;opacity:.62;font-variant-numeric:tabular-nums}
.wclegend{display:flex;flex-wrap:wrap;gap:5px 8px;position:relative;
  border-top:1px dashed var(--line);padding-top:10px;margin-top:2px}
.wcl{display:inline-flex;align-items:center;gap:5px;padding:2px 9px 2px 6px;border-radius:14px;
  font-size:12.5px;color:var(--ink);background:var(--soft);transition:background .15s}
.wcl i{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}
.wcl b{font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.wcl:hover{text-decoration:none;background:var(--hover)}
/* 折叠块：词云与变迁动画都不轻（70 个词的 SVG + 41 行动画数据），
   默认只留标题与一行预览，点开再拉正文 */
.foldctl{display:flex;align-items:center;gap:12px;flex-shrink:0}
.foldbtn{flex-shrink:0}
.fold .foldtease{margin-top:6px}
.foldbody{margin-top:2px}
.foldbody.loading{min-height:56px;display:flex;align-items:center;justify-content:center;
  color:var(--muted);font-size:13px}
.fold.open .foldtease{display:none}
/* ── 近十年适应症变迁：条形竞速 ── */
.racebox{position:relative;margin:26px 0;padding:18px 24px 20px;border:1px solid var(--line);
  border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);overflow:hidden}
.racebox{--rname:158px;--rgap:56px}
/* ARENA 活跃度页首：艺术字 ARENA(斜体特粗、品牌紫渐变字、下衬斜切色带,
 * 与成片片头同一字标)+ 一行中文说明;再下是筛选摘要与说明折叠(居中)。
 * 原为"风云榜"三字方块字牌——改名:统计的是登记数量 */
.arena-head{text-align:center;margin:2px 0 8px}
.arena-brand{display:inline-flex;flex-direction:column;align-items:center;
  gap:6px;user-select:none;line-height:1}
.ab-word{position:relative;display:inline-block;padding:0 .12em .08em 0;
  font:italic 900 44px/1 'Arial Black','Segoe UI Black','Helvetica Neue',Impact,system-ui,sans-serif;
  letter-spacing:.05em;
  background:linear-gradient(120deg,#6f68a5 0%,#9370b8 55%,#c07ad0 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 4px 10px rgba(123,116,172,.28))}
.ab-word::after{content:"";position:absolute;left:.06em;right:.02em;bottom:-.02em;
  height:.1em;border-radius:2px;transform:skewX(-24deg);opacity:.4;
  background:linear-gradient(90deg,#6f68a5,#c07ad0)}
.ab-cn{font-size:13px;letter-spacing:.32em;color:var(--muted);font-weight:500;
  padding-left:.32em}
.arena-sub{margin:8px 0 0;font-size:13.5px;display:flex;align-items:center;
  justify-content:center;gap:10px;flex-wrap:wrap}
/* 风云榜：占满容器宽（与全屏体验配套），名字列 JS 按内容自适应加宽
   （--rname/--rfs），主体名完整显示不截断 */
.arena{--rname:236px;--rgap:56px}
/* 筛选工具条分两组：主体（对象/身份/关键词/地域）｜ 试验（专业/适应症/
   时间窗/类型/分期/Top-N），组间竖线分隔 */
.agroup{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.agroup+.agroup{margin-left:6px;padding-left:14px;border-left:1px solid var(--line)}
.aglab{font-style:normal;font-size:11.5px;color:var(--brand);
  font-weight:600;letter-spacing:.08em;opacity:.75}
/* 竞技舞台：racefsbox = 控制条+舞台的容器（全屏时整体铺满）。默认
   ☀️ 明亮（米白纸感+油墨色，用户钦点默认）；🔥 烈焰 / ⚡ 霓虹 为深色
   变体（JS 给容器加 rsc-* 类切换） */
.arena .racefsbox{background:#f8f4ec;border:1px solid rgba(140,100,40,.3);
  border-radius:12px;padding:10px 14px 14px;margin-top:14px}
.arena .race{margin-top:8px}
.arena .rrow{left:14px;right:14px;top:6px;height:var(--rrowh,40px);
  transition:transform .95s cubic-bezier(.45,.05,.2,1),opacity .55s ease}
.arena .rgrid{left:calc(14px + var(--rname));right:calc(14px + var(--rgap))}
.arena .rname{color:#241f1a;font-size:var(--rfs,13.5px)}
.arena a.rrow:hover .rname{color:#8a5a20}
.arena .rval{color:#6f6355;font-size:var(--rvs,12.5px)}
.arena .rgrid i{background:rgba(60,45,20,.18)}
.arena .rgrid i b{color:#8a7c66}
.arena .ryearbig{color:#7b74ac;opacity:.18}
.arena .rbar i{color:#a49a8a}
.arena .rbar2 i{color:#8a7c66;opacity:.5}
.arena .rval2{color:#8a7c66;font-size:var(--rvs2,11px)}
/* 深色变体：亮字、同色光晕、炭根→焰尖渐变（明亮无光晕无渐变） */
.arena .racefsbox.rsc-blaze{background:radial-gradient(130% 100% at 50% 118%,
  #33182a 0%,#181220 55%,#100e14 100%);border-color:rgba(214,120,80,.3)}
.arena .racefsbox.rsc-neon{background:radial-gradient(130% 100% at 50% 118%,
  #13234d 0%,#101528 60%,#0c101e 100%);border-color:rgba(120,160,255,.32)}
.arena .racefsbox.rsc-blaze .rname,.arena .racefsbox.rsc-neon .rname{color:#f2e9dd}
.arena .racefsbox.rsc-blaze a.rrow:hover .rname,
.arena .racefsbox.rsc-neon a.rrow:hover .rname{color:#ffc9a3}
.arena .racefsbox.rsc-blaze .rval,.arena .racefsbox.rsc-neon .rval{color:#b4abc0}
.arena .racefsbox.rsc-blaze .icdsub,.arena .racefsbox.rsc-neon .icdsub{color:#b4abc0}
.arena .racefsbox.rsc-blaze .rgrid i,.arena .racefsbox.rsc-neon .rgrid i{
  background:rgba(232,180,200,.16)}
.arena .racefsbox.rsc-blaze .rgrid i b,
.arena .racefsbox.rsc-neon .rgrid i b{color:#a598b3}
.arena .racefsbox.rsc-blaze .ryearbig,
.arena .racefsbox.rsc-neon .ryearbig{color:#8f89c9;opacity:.13}
.arena .racefsbox.rsc-blaze .rbar i,.arena .racefsbox.rsc-neon .rbar i{
  color:#97919f;box-shadow:0 0 14px -2px currentColor;
  background:linear-gradient(90deg,
    color-mix(in srgb,currentColor 55%,#140a06) 0%,currentColor 68%)}
.arena .racefsbox.rsc-blaze .rbar2 i,
.arena .racefsbox.rsc-neon .rbar2 i{color:#7d7585;opacity:.55}
.arena .racefsbox.rsc-blaze .rval2,.arena .racefsbox.rsc-neon .rval2{color:#a198aa}
/* ★突出主体：名字加粗换色，横条描边+强光晕（明亮方案也描边） */
.arena a.rrow.hi .rname{font-weight:700;color:var(--brand)}
.arena .racefsbox.rsc-blaze a.rrow.hi .rname,
.arena .racefsbox.rsc-neon a.rrow.hi .rname{color:#ffd28c}
.arena a.rrow.hi .rbar i{
  box-shadow:0 0 0 1.5px currentColor,0 0 18px -1px currentColor}
/* 全屏：racefsbox 整体铺满（背景随配色方案），行高/字号由 JS 按屏适配 */
/* 伪全屏（.pfs）：CSS 把竞技台固定铺满视口，不走 Fullscreen API——
   API 全屏每次进入浏览器都会弹"按 Esc 退出"原生提示，遮挡观感且
   无法关闭；伪全屏无任何提示，ESC 由页面自己接管退出 */
.racefsbox.pfs{position:fixed;inset:0;z-index:9990;border-radius:0;
  margin:0;padding:1.5vh 2vw;overflow:auto;box-shadow:none}
.racefsbox.pfs .racectl{margin:6px 0 2px}
.arena .racectl #racexit{display:none}
.arena .racefsbox.pfs .racectl #racexit{display:inline-flex}
/* 手机影院（.rphone，JS 按触屏+短边判定）：控制条压紧，竖构图画面吃满控制条
   以下的剩余高度、不滚动；成片说明/副标题/AI 文案是做视频用的，手机上收起。
   影院/全屏钮在手机影院里多余（已铺满；微信内核真全屏不可靠）也收起 */
.arena .racefsbox.pfs.rphone{display:flex;flex-direction:column;overflow:hidden;
  padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
.arena .racefsbox.pfs.rphone .racectl{gap:5px;margin:0 0 4px}
.arena .racefsbox.pfs.rphone .racectl .rbtn{padding:3px 9px;font-size:13px}
.arena .racefsbox.pfs.rphone #racego,.arena .racefsbox.pfs.rphone #racefs,
.arena .racefsbox.rphone #raceexp{display:none}
.arena .racefsbox.pfs.rphone.rmobmode .rmobwrap{flex:1;min-height:0;width:100%;
  margin:0;overflow:hidden}
.arena .racefsbox.pfs.rphone.rmobmode .rmobframe{height:100%;width:auto;max-width:100%;
  padding:0;border:0;border-radius:8px;box-shadow:none;background:none}
.arena .racefsbox.pfs.rphone.rmobmode .rmobframe canvas{object-fit:contain;background:none;
  border-radius:8px;cursor:pointer}
.arena .racefsbox.pfs.rphone .rmobcap,.arena .racefsbox.pfs.rphone .rvai{display:none}
/* 说明入口：单开页面（/arena/help），页首只留一个链接 */
.ahelp{font-size:12.5px;padding:3px 12px;border:1px solid var(--line);
  border-radius:14px;color:var(--muted);white-space:nowrap}
.ahelp:hover{color:var(--brand);border-color:var(--brand);text-decoration:none}
/* ARENA 说明页：目录 + 分节，正文宽度收在可读范围 */
.ahdoc{max-width:880px;margin:18px auto 40px;padding:0 4px}
.ahdoc h2{font-size:22px;margin:6px 0 4px}
.ahdoc .ahlead{color:var(--muted);margin:0 0 14px}
.ahdoc nav.ahtoc{display:flex;flex-wrap:wrap;gap:6px 10px;margin:0 0 18px;
  padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.ahdoc nav.ahtoc a{font-size:13.5px}
.ahdoc section{margin:0 0 14px;padding:14px 18px;border:1px solid var(--line);
  border-radius:12px;background:var(--card)}
.ahdoc h3{font-size:16.5px;margin:0 0 8px;color:var(--brand)}
.ahdoc h4{font-size:14.5px;margin:12px 0 4px}
.ahdoc p,.ahdoc li{font-size:14px;line-height:1.75;color:var(--ink)}
.ahdoc p{margin:4px 0}
.ahdoc ul{margin:4px 0;padding-left:1.3em}
.ahdoc .mut{color:var(--muted)}
.ahdoc table.tbl{margin:6px 0;font-size:13.5px}
.ahdoc code{font-size:12.5px}
/* 动向图例色板：默认"明亮"（升墨红/守成赭金/降墨青，与 JS 锚点一致），
   JS 切换配色方案时同步改写；rampbar=降→守成→升 */
.sw-up{color:#d71424}.sw-hold{color:#e5a606}.sw-down{color:#0f98b3}
.rampbar{display:inline-block;width:120px;height:8px;border-radius:4px;
  vertical-align:baseline;margin:0 4px;
  background:linear-gradient(90deg,#0f98b3,#e5a606,#d71424)}
/* 配色方案选择器（控制条内） */
.rscheme{padding:5px 9px;border:1px solid var(--line);border-radius:16px;
  background:var(--soft);color:var(--ink);font-size:12.5px;cursor:pointer}
/* 双条：粗条=当年新登记（动量色），细灰条=时间窗内累计（独立刻度） */
.rbarwrap{flex:1;display:flex;flex-direction:column;gap:3px;margin-right:var(--rgap)}
.arena .rbar{flex:none;height:var(--rbh,16px)}
.rbar2{position:relative;height:var(--rb2h,6px)}
.rbar2 i{display:block;height:100%;width:0;min-width:2px;border-radius:0 3px 3px 0;
  background:currentColor;color:var(--muted);opacity:.5}
.rbar2 b{position:absolute;top:50%;left:0;margin-left:6px;transform:translateY(-50%);
  font-size:11px;font-weight:500;color:var(--muted);white-space:nowrap;
  font-variant-numeric:tabular-nums;opacity:.9}
/* 风云榜筛选卡：四行（主体/地域/试验/范围），左列组名对齐、右列控件流式
   换行；控件统一 34px 高、13.5px 字；占位提示比正文小两级（12px）；
   操作钮收在末行右端 */
.arenaform{position:relative;margin:8px 0 12px;padding:10px 14px 12px;
  display:flex;flex-direction:column;gap:8px;background:var(--card);
  border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.arenaform .aline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 0}
.arenaform .aline+.aline{padding-top:10px;border-top:1px dashed var(--line)}
.arenaform .arow{display:flex;align-items:center;gap:10px;min-width:0}
.arenaform .arow+.arow{margin-left:18px;padding-left:18px;border-left:1px dashed var(--line)}
.arenaform .arow.afoot{flex:1 1 auto}
.arenaform .afoot .actl{flex:1}
.arenaform .aglab{flex:0 0 auto;font-size:11px;letter-spacing:.12em;opacity:.8}
.arenaform .actl{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
.arenaform select,.arenaform input[type=text]{box-sizing:border-box;height:34px;
  padding:0 11px;border:1px solid var(--line);border-radius:9px;
  background:var(--card);color:var(--ink);font-size:13.5px}
.arenaform select{max-width:180px;cursor:pointer}
.arenaform select[hidden]{display:none}
.arenaform input[type=text]{width:150px}
.arenaform input[type=text].aw{width:190px}
.arenaform .specwrap input{min-width:0;width:170px}
.arenaform input::placeholder{font-size:12px;color:var(--muted);opacity:.85}
.arenaform select:hover,.arenaform input[type=text]:hover{border-color:var(--brand)}
.arenaform select:focus,.arenaform input[type=text]:focus{outline:none;
  border-color:var(--brand);box-shadow:0 0 0 3px var(--hover)}
.arenaform select:disabled{opacity:.55;cursor:not-allowed}
.arenaform .mcombo summary{height:34px;box-sizing:border-box;padding:0 12px;
  border-radius:9px;font-size:13.5px}
.arenaform .mcombo summary b{font-size:12px}
.arenaform .aacts{margin-left:auto;display:inline-flex;align-items:center;gap:8px}
.arenaform .aacts button{height:34px;padding:0 18px;border-radius:9px;
  font-size:13.5px;cursor:pointer}
.arenaform .hclear{font-size:12px;padding:0 6px}
@media (max-width:640px){
  .arenaform{padding:10px 10px 12px}
  .arenaform .arow{flex-direction:column;align-items:stretch;gap:6px;width:100%}
  .arenaform .arow+.arow{margin:8px 0 0;padding:8px 0 0;border-left:0;
    border-top:1px dashed var(--line)}
  .arenaform input[type=text],.arenaform input[type=text].aw,
  .arenaform .specwrap input{width:100%}
  .arenaform .specwrap{flex:1 1 100%}
  .arenaform .aacts{margin-left:0;width:100%;justify-content:flex-end}
}
.arenaempty{margin-top:12px;padding:30px 16px;text-align:center;color:var(--muted);
  border:1px dashed var(--line);border-radius:12px;background:var(--soft)}
/* 专业"可选可输"：输入框 + 联想浮层 */
.specwrap{position:relative;display:inline-flex}
.specwrap input{min-width:210px}
.sugbox{position:absolute;top:calc(100% + 6px);left:0;z-index:35;min-width:280px;
  max-width:360px;padding:6px;flex-direction:column;gap:2px;
  background:var(--card);border:1px solid var(--line);border-radius:12px;
  box-shadow:var(--shadow-lg)}
/* display:flex 会盖过 hidden 属性的 UA 隐藏（曾致联想框以空盒常驻、
   悬在表单下挡住存图/配色一行）——显式只在非 hidden 时 flex */
.sugbox:not([hidden]){display:flex}
.sugbox button{display:flex;align-items:baseline;gap:8px;padding:7px 10px;
  border:0;border-radius:8px;background:none;color:var(--ink);font-size:13px;
  text-align:left;cursor:pointer}
.sugbox button:hover{background:var(--soft);color:var(--brand)}
.sugbox button i{flex:1;font-style:normal;font-size:11.5px;color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sugbox button b{font-weight:600;font-size:11.5px;color:var(--muted);
  font-variant-numeric:tabular-nums}
/* 多选组合框（类型/分期）：收起的下拉面板里放 checkbox，不平铺占行 */
.mcombo{position:relative}
.mcombo summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;
  gap:7px;padding:6px 12px;border:1px solid var(--line);border-radius:10px;
  background:var(--card);font-size:13.5px;color:var(--ink);white-space:nowrap}
.mcombo summary::-webkit-details-marker{display:none}
.mcombo summary b{font-weight:500;color:var(--muted)}
.mcombo summary::after{content:'▾';font-size:10px;color:var(--muted)}
.mcombo[open] summary{border-color:var(--brand)}
.mc-lab{max-width:150px;overflow:hidden;text-overflow:ellipsis}
.mcmenu{position:absolute;z-index:35;top:calc(100% + 6px);left:0;width:310px;
  max-height:300px;overflow:auto;padding:8px;display:flex;flex-direction:column;
  gap:3px;background:var(--card);border:1px solid var(--line);border-radius:12px;
  box-shadow:var(--shadow-lg)}
.mcmenu .achip{border-radius:8px}
.mcfoot{display:flex;justify-content:space-between;gap:8px;padding-top:8px;
  margin-top:5px;border-top:1px solid var(--line)}
.mcfoot button{padding:4px 14px;border:1px solid var(--line);border-radius:14px;
  background:var(--soft);color:var(--ink);font-size:12.5px;cursor:pointer}
.mcfoot button:hover{background:var(--hover)}
.achip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;
  border:1px solid var(--line);border-radius:8px;background:var(--soft);
  font-size:12.5px;color:var(--muted);cursor:pointer;white-space:nowrap;
  transition:border-color .15s,color .15s}
.achip:hover{border-color:var(--brand);color:var(--brand)}
.achip:has(input:checked){border-color:var(--brand);color:var(--ink);background:var(--hover)}
.achip input{accent-color:var(--brand);margin:0;width:13px;height:13px;flex-shrink:0}
.achip b{font-weight:600;font-variant-numeric:tabular-nums;opacity:.75}
.racectl{display:flex;align-items:center;gap:10px;flex-shrink:0;flex-wrap:wrap}
.rbtn{padding:5px 15px;border:1px solid var(--line);border-radius:16px;background:var(--soft);
  color:var(--ink);font-size:13px;cursor:pointer;white-space:nowrap;transition:background .15s}
.rbtn:hover{background:var(--hover)}
.rbtn.rspd{padding:5px 10px;min-width:44px;font-variant-numeric:tabular-nums;color:var(--muted)}
#raceyr{width:170px;accent-color:var(--brand);cursor:pointer}
.ryear{font-size:19px;font-variant-numeric:tabular-nums;color:var(--brand);min-width:44px;text-align:right}
/* 📱 手机视图：勾选后**整个竞速区切换为手机画面**——DOM 舞台与图注退场，
   画布按横构图 2772×1240 严格等比显示（电脑上看竖版太费劲，预览一律横
   版；竖版导出时才整体旋转 90°，内容一致），全屏时高度封顶不出屏，导出
   视频录的就是这块画布的内容，所见即所得。「≈实物尺寸」档按 6.7 吋旗舰
   面板宽 154mm 显示（CSS 物理单位，准度依赖系统 DPI 设置），专答"字号在
   手机上够不够大" */
.rmoblab{display:inline-flex;align-items:center;gap:6px;font-size:13px;
  color:var(--muted);cursor:pointer;white-space:nowrap;user-select:none}
.rmoblab input{accent-color:var(--brand);margin:0;width:14px;height:14px;flex-shrink:0}
.racectl .rmoblab.rbtn{color:var(--ink)}
.racectl .rmoblab.rbtn:has(input:checked){border-color:var(--brand);color:var(--brand);font-weight:600}
.rmobwrap{display:flex;flex-direction:column;align-items:center;gap:8px;
  margin:10px auto 4px}
.rmobwrap[hidden]{display:none}
.racefsbox.rmobmode .race{display:none}
.racefsbox.rmobmode .icdsub{display:none}
/* ── 曲线竞速（风云榜第二图式）──
   名次列与条形共用；曲线画布接管条形区（与 .rgrid 同坐标），行宽收窄
   到名字列——画布的悬停/点击不再被整行链接挡住。图式开关复用 .rbtn */
.modeseg{display:inline-flex;align-items:stretch;border:1px solid var(--line);
  border-radius:16px;overflow:hidden}
/* display:inline-flex 会盖过 hidden 属性的 UA 隐藏（同 .sugbox 的坑）：
   镜头/坐标档只在曲线模式显示，靠这条才能真正收起 */
.modeseg[hidden]{display:none}
.modeseg .rbtn{border:0;border-radius:0;padding:5px 12px}
.modeseg .rbtn+.rbtn{border-left:1px solid var(--line)}
/* 口径下拉：面板里每行 = 标签 + 一组分段钮；面板不必与 ⚙ 同宽 */
.dsettings.mseg .dsbody{min-width:0}
.dsettings.mseg .dsrow{margin:6px 0}
.dsettings.mseg .dsrow>span:first-of-type{flex:0 0 auto}
.mseg>summary{font-variant-numeric:tabular-nums}
/* 条件不足的那一档置灰但**留在原处**：藏起来的功能找不到，留着才能从
   它的 title 里读到"缺什么条件才能用" */
.modeseg .rbtn[disabled]{opacity:.42;cursor:not-allowed}
.modeseg .rbtn[disabled]:hover{background:var(--soft)}
.modeseg .rbtn.on{background:var(--brand);border-color:var(--brand);color:#fff}
.raceline{position:absolute;top:2px;bottom:2px;
  left:calc(var(--rname) + 10px);right:var(--rgap)}
.arena .raceline{left:calc(14px + var(--rname) + 10px);
  right:calc(14px + var(--rgap))}
.raceline[hidden]{display:none}
.raceline canvas{width:100%;height:100%;display:block;cursor:crosshair}
.racefsbox.linemode .rbarwrap{display:none}
.racefsbox.linemode .rgrid{display:none}
.racefsbox.linemode .rrow{left:auto;width:calc(var(--rname) + 26px)}
.arena .racefsbox.linemode .raceline{left:14px;right:14px}
.racefsbox.linemode .rname{text-align:left}
.racefsbox.linemode .rrow.lhl .rname{font-weight:700}
/* 曲线模式名单画在画布上(引线名单,与曲线同一份帧布局);DOM 名次行
   只服务条形,曲线模式下整体隐藏 */
.racefsbox.linemode .rrow{display:none}
/* 条形+累计口径：刻度整体换累计这套（tk-c），细灰条不显示（粗条就是
   累计，按累计选 Top）；行内容居中（细条藏起后粗条不悬在半空） */
/* 表示档里不可用的那一档(缺分母)整个收起——.modeseg 里的按钮是 flex 子项,
   须显式让 hidden 生效 */
.modeseg .rbtn[hidden]{display:none}
/* 三套固定刻度共存：当年(tk-y) / 累计(tk-c) 由服务端发，近 N 年与占比
   (tk-p) 由 JS 按当前口径现生成；.rgrid 上的 tkc/tkp 类选一套显示 */
.rgrid i.tk-c,.rgrid i.tk-p{display:none}
.rgrid.tkc i.tk-c{display:block}
.rgrid.tkc i.tk-y{display:none}
.rgrid.tkp i.tk-p{display:block}
.rgrid.tkp i.tk-y,.rgrid.tkp i.tk-c{display:none}
.racefsbox.barcum .rbar2{visibility:hidden}
.racefsbox.barcum .rbarwrap{justify-content:center}
/* 曲线模式：名次列名字用各自曲线的颜色（--rc 挂在行上，JS 按行写入）。
   特异性对齐：明亮基线（.arena .rname）、深色变体（rsc-* 亮字）与悬停
   规则都压过裸 .linemode 规则——逐一加 .arena/.rsc- 前缀钉死同色，名字
   与线永远一致；悬停/高亮只加粗不变色。动向色板（升/降 ramp）只属于
   条形 */
.arena .racefsbox.linemode .rname,
.arena .racefsbox.rsc-blaze.linemode .rname,
.arena .racefsbox.rsc-neon.linemode .rname{color:var(--rc,var(--ink))}
.arena .racefsbox.linemode a.rrow:hover .rname,
.arena .racefsbox.rsc-blaze.linemode a.rrow:hover .rname,
.arena .racefsbox.rsc-neon.linemode a.rrow:hover .rname{color:var(--rc,var(--ink))}
.racefsbox.linemode a.rrow:hover .rname,
.racefsbox.linemode a.rrow.lhl .rname,
.arena .racefsbox.linemode a.rrow.hi .rname{font-weight:700}
.racefsbox.linemode .rampbar{display:none}
/* 外框(毛玻璃)配色出自风云榜自身方案:变量挂在 racefsbox 上,rsc-* 方案
   类切换(明亮=米纸玻璃,烈焰=暗焰玻璃,霓虹=夜蓝玻璃)——页面换主题不串色 */
.racefsbox{--rvg1:rgba(250,246,238,.62);--rvg2:rgba(232,223,203,.42);
  --rvbd:rgba(122,96,52,.35);--rvin:rgba(255,255,255,.55)}
.racefsbox.rsc-blaze{--rvg1:rgba(74,38,56,.55);--rvg2:rgba(26,19,34,.5);
  --rvbd:rgba(214,120,80,.38);--rvin:rgba(255,255,255,.12)}
.racefsbox.rsc-neon{--rvg1:rgba(40,56,102,.55);--rvg2:rgba(16,22,42,.5);
  --rvbd:rgba(120,160,255,.4);--rvin:rgba(255,255,255,.12)}
/* 视频号文案(AI)面板:手机视图预览下方;短标题带字数(超 16 标红) */
.rvai{width:min(760px,100%);box-sizing:border-box;margin:10px auto 0;text-align:left;
  align-self:center}
.rvai .rvaist{margin-left:10px;font-size:13px}
.rvaiout{margin-top:10px;padding:12px 14px;border:1px solid var(--line);
  border-radius:12px;background:var(--card)}
.rvaihd{font-size:13px;color:var(--muted);margin:6px 0 4px}
.rvaihd em{font-style:normal;margin-left:6px}
.rvaihd em.over{color:#c0392b;font-weight:600}
.rvairow{display:flex;gap:8px;align-items:flex-start}
.rvairow input,.rvairow textarea{flex:1;min-width:0;font:inherit;padding:6px 9px;
  border:1px solid var(--line);border-radius:8px;background:var(--bg,#fff);color:var(--ink)}
.rvairow textarea{resize:vertical;line-height:1.55}
.rmobframe{width:min(100%,calc((100vh - 230px)*2.236));
  aspect-ratio:2772/1240;border-radius:20px;padding:10px;
  background:linear-gradient(155deg,var(--rvg1),var(--rvg2));
  border:1px solid var(--rvbd);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  box-shadow:0 18px 46px rgba(0,0,0,.28),inset 0 1px 0 var(--rvin)}
.rmobframe canvas{display:block;width:100%;height:100%;border-radius:12px;
  cursor:zoom-in;background:#fff}
.rmobframe.mmob-real{width:154mm}
/* 三档缩放：适配屏幕（占满可视高）/ 更大（超出屏，可滚动看细节）/
   ≈实物尺寸。曲线原生竖屏的适配档吃满 (100vh-140px)——预览框上下的
   说明行与控制条开销比原估计小，此前按 230px 算得太保守，画面偏小 */
.rmobframe.mmob-big{width:140%}
.rmobwrap{max-width:100%;overflow:auto}
.rmobframe.rv-port{width:min(100%,calc((100vh - 140px)/2.236));
  aspect-ratio:1240/2772}
.rmobframe.rv-port.mmob-big{
  width:min(100%,calc((100vh - 140px)/2.236*1.5))}
.rmobframe.rv-port.mmob-real{width:74mm}
.rvfs{margin-left:10px;font-size:12px;color:var(--muted);white-space:nowrap}
.rvfs b{font-weight:600;color:var(--ink);min-width:22px;display:inline-block;
  text-align:center;font-variant-numeric:tabular-nums}
.rvfsb{padding:1px 7px;border:1px solid var(--line);border-radius:8px;
  background:var(--soft);color:var(--muted);font-size:12px;cursor:pointer;
  line-height:1.4}
.rvfsb:hover{color:var(--brand);border-color:var(--brand)}
/* ⚙ 显示设置弹层(曲线模式):线宽/标注字号/名单字号/发光 */
.dsettings{position:relative}
.dsettings summary{list-style:none;cursor:pointer;user-select:none}
.dsettings summary::-webkit-details-marker{display:none}
.dsbody{position:absolute;right:0;top:calc(100% + 8px);z-index:70;
  background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:10px 14px;box-shadow:var(--shadow-lg);min-width:220px}
.dsrow{display:flex;align-items:center;gap:7px;font-size:12px;
  color:var(--muted);margin:7px 0;white-space:nowrap}
.dsrow b{min-width:36px;text-align:center;color:var(--ink);
  font-variant-numeric:tabular-nums}
.setb{padding:1px 9px;border:1px solid var(--line);border-radius:8px;
  background:var(--soft);color:var(--muted);font-size:12px;cursor:pointer;
  line-height:1.5}
.setb:hover{color:var(--brand);border-color:var(--brand)}
.dshint{font-size:10px;opacity:.6;margin-left:2px}
/* ⚙ 行显隐(曲线专属/桌面专属)：.dsrow 是 flex,须显式让 hidden 生效 */
.dsrow[hidden]{display:none}
.dsmob{font-style:normal;font-size:10.5px;color:var(--brand);margin-left:2px}
.setglow.on{color:var(--brand);border-color:var(--brand);
  background:var(--hover)}
/* 选中态(镜头/坐标/标注/密度各组的可点项):品牌底白字,一眼可见 */
.setb.on{background:var(--brand);border-color:var(--brand);color:#fff}
.setb.on:hover{color:#fff}
/* 控制条三组：播放 | 图式·口径·坐标 | 配色·导出·全屏·⚙（右组靠右）；
   导出类控件收进「⤓ 导出」下拉；全屏播放时控制条闲置 2s 淡出 */
.arena .racectl .rscheme{margin-left:auto}
/* 风云榜：播放/重播收在右侧按钮区最右，作主按钮 */
.arena .racectl #raceplay{background:var(--brand-grad);color:#fff;border-color:transparent;
  min-width:84px;font-weight:600}
.arena .racectl #raceplay:hover{filter:brightness(1.08)}
.arena .racectl{gap:8px}
.arena .racectl .rbtn{padding:5px 11px}
.arena .racectl #racego{border-color:var(--brand);color:var(--brand);font-weight:600}
.arena .racectl #racego:hover{background:var(--hover)}
/* # 节点数据：开关钮，开启时同图式分段钮的选中态 */
.arena .racectl #racenodes.on{background:var(--brand);border-color:var(--brand);color:#fff}
.arena .racectl #racenodes[hidden]{display:none}
.arena .ryear{font-size:24px;font-weight:700;min-width:58px}
.rexbody{display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.racefsbox .racectl,.racefsbox .icdsub{transition:opacity .4s ease}
.racefsbox.ctlidle .racectl,.racefsbox.ctlidle .icdsub{opacity:0}
.racefsbox.ctlidle{cursor:none}
/* 读屏用隐形榜单（曲线模式名单画在画布上） */
.rsr{position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.racefsbox:not(.linemode) .rsr{display:none}
.rmzoom{margin-left:8px;padding:2px 10px;border:1px solid var(--line);
  border-radius:12px;background:var(--soft);color:var(--muted);font-size:12px;
  cursor:pointer}
.rmzoom:hover{color:var(--brand);border-color:var(--brand)}
.rmzoom.on{border-color:var(--brand);color:var(--brand)}
.rvtitle{margin-left:10px;padding:2px 8px;border:1px solid var(--line);
  border-radius:10px;background:var(--soft);color:var(--ink);font-size:12px;
  width:340px}
.rvtitle:focus{outline:none;border-color:var(--brand)}
.rmobcap{font-size:12.5px;color:var(--muted)}
/* 刻度标签画在 race 上边距里，避让最后一行 */
.race{position:relative;margin-top:34px}
/* 固定刻度网格：与横条同一坐标系（左让出病名列、右留出数字位） */
.rgrid{position:absolute;left:var(--rname);right:var(--rgap);top:0;bottom:0;pointer-events:none}
.rgrid i{position:absolute;top:0;bottom:0;width:1px;background:var(--line);opacity:.75}
.rgrid i b{position:absolute;top:-22px;left:0;transform:translateX(-50%);font-weight:500;
  font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
/* 年份水印 + 站点域名（截图转发时带着出处）：横向居中、纵向偏下——后几名的
   条都很短，图的中下部本来就是空的，年份放在正中间也最好找 */
.rwm{position:absolute;left:50%;top:60%;transform:translate(-50%,-50%);
  text-align:center;white-space:nowrap;pointer-events:none;line-height:1}
.ryearbig{display:block;font-size:92px;line-height:.82;font-weight:800;
  letter-spacing:-.04em;color:var(--brand);opacity:.13;font-variant-numeric:tabular-nums}
/* 域名沿用首页大标题里 TrialMap 的字形气质：驼峰、重字重、渐变字面、压扁拉宽
   ——图被转发出去时，落款要和用户点进来看到的站名是同一个东西。后缀小一档、
   淡一档：先读到品牌名，.cn 只是把人带回来的那条路，不该跟品牌抢分量 */
.rbrand{display:block;margin-top:6px;font-size:30px;font-weight:800;
  letter-spacing:.012em;opacity:.42;transform:scale(1.06,.9)}
.rbrand b{font-weight:800;background:var(--brand-grad);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.rbrand i{font-style:normal;font-weight:700;font-size:.8em;color:var(--brand);
  opacity:.55;letter-spacing:.02em}
.rrow{position:absolute;left:0;right:0;top:0;height:28px;display:flex;align-items:center;gap:10px;
  color:var(--ink);will-change:transform;
  transition:transform .6s cubic-bezier(.4,0,.2,1),opacity .4s ease}
a.rrow:hover{text-decoration:none}
a.rrow:hover .rname{color:var(--brand)}
a.rrow:hover .rbar i{opacity:1;filter:saturate(1.25)}
.rname{width:var(--rname);flex-shrink:0;text-align:right;font-size:13.5px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;padding-right:2px}
.rbar{flex:1;height:20px;position:relative;margin-right:var(--rgap)}
.rbar i{display:block;height:100%;width:0;min-width:2px;border-radius:0 4px 4px 0;
  background:currentColor;opacity:.85;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.rval{position:absolute;top:50%;left:0;margin-left:8px;transform:translateY(-50%);
  font-size:12.5px;font-weight:600;color:var(--muted);white-space:nowrap;
  font-variant-numeric:tabular-nums}
/* 章配色（按试验数排序的槽位）：中明度，柔和/明亮/深色三主题下均可读 */
.wc0{color:#dc4b3e}.wc1{color:#cf7513}.wc2{color:#cf3d78}.wc3{color:#1f8fb5}
.wc4{color:#3f9948}.wc5{color:#7b52c4}.wc6{color:#ab8a1c}.wc7{color:#3566cf}
.wc8{color:#0e9a90}.wc9{color:#a1583a}.wc10{color:#c25db0}.wc11{color:#5c8a2e}
.wc12{color:#7d8797}
[data-theme=dark] .wc0{color:#ff7264}[data-theme=dark] .wc1{color:#ffab45}
[data-theme=dark] .wc2{color:#ff6ba4}[data-theme=dark] .wc3{color:#49c3ea}
[data-theme=dark] .wc4{color:#67c96f}[data-theme=dark] .wc5{color:#a888f0}
[data-theme=dark] .wc6{color:#d9b83c}[data-theme=dark] .wc7{color:#6f9bff}
[data-theme=dark] .wc8{color:#33ccbe}[data-theme=dark] .wc9{color:#d08462}
[data-theme=dark] .wc10{color:#e88ad6}[data-theme=dark] .wc11{color:#9dc95a}
[data-theme=dark] .wc12{color:#9aa5b5}
[data-theme=dark] .icdbox::before{background:radial-gradient(circle,rgba(96,165,250,.10) 0%,transparent 70%)}
[data-theme=dark] .icdbox::after{background:radial-gradient(circle,rgba(129,140,248,.10) 0%,transparent 70%)}
@media(max-width:760px){.icdbox{padding:16px 14px 12px}
  .wcloud{display:none}.wcloud-m{display:block}
  .wclegend{gap:4px 6px}.wcl{font-size:11.5px;padding:1px 7px 1px 5px}
  .racebox{padding:14px 12px 16px;--rname:96px;--rgap:40px}
  .arena{--rname:128px}
  .racectl{width:100%}#raceyr{flex:1;width:auto}
  .rname{font-size:12px}.rval{font-size:11.5px;margin-left:5px}
  .ryearbig{font-size:52px;opacity:.12}
  .rbrand{font-size:17px;margin-top:3px}
  .rgrid i b{font-size:10.5px}}
/* ── 分类节点分析面板：年度趋势 + 主要药物 ── */
.hacols{display:grid;grid-template-columns:1.35fr 1fr;gap:14px;margin:4px 0 18px;align-items:start}
.hacard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 16px 12px;box-shadow:var(--shadow-sm);min-width:0}
.hacard h4{margin:0 0 6px;font-size:15px}
.hacard h4 .muted{font-size:12.5px;font-weight:400;margin-left:6px}
.trendchart{display:block;width:100%;height:auto}
.trendchart .tg{stroke:var(--line);stroke-width:1}
.trendchart .tyl,.trendchart .txl{fill:var(--muted);font-size:11px;
  font-variant-numeric:tabular-nums}
.trendchart .tyl{text-anchor:end}
.trendchart .txl{text-anchor:middle}
.trendchart .tline{fill:none;stroke:var(--brand);stroke-width:2.2;
  stroke-linejoin:round;stroke-linecap:round}
/* 末年是还没走完的当年：虚线 + 空心点，别让人把它读成断崖 */
.trendchart .tdash{stroke-dasharray:5 4;opacity:.55}
.trendchart .tarea{fill:var(--brand);opacity:.09;stroke:none}
.trendchart .tdot{fill:var(--brand);stroke:var(--card);stroke-width:1.6}
.trendchart .tdot.last{fill:var(--card);stroke:var(--brand);stroke-width:2}
.trendchart .thit{fill:transparent}      /* 点太小不好点，整条年份带都是热区 */
.hacard .tone{padding:26px 0 30px;text-align:center;font-size:13.5px}
.trendchart a:hover .tdot{r:5.4}
.trendchart a:hover .thit{fill:var(--brand);opacity:.06}
.dbars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}
.dbar{display:flex;align-items:center;gap:8px;font-size:13px;line-height:1.5}
.dbn{flex:0 0 34%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:var(--ink);text-align:right}
.dbn:hover{color:var(--brand)}
.dbar.on .dbn{color:var(--brand);font-weight:600}
.dbt{flex:1;height:11px;background:var(--soft2);border-radius:0 3px 3px 0;min-width:0}
.dbt i{display:block;height:100%;min-width:2px;border-radius:0 3px 3px 0;
  background:var(--brand-grad);opacity:.8}
.dbar.on .dbt i{opacity:1}
.dbv{flex:0 0 42px;text-align:right;font-size:12.5px;color:var(--muted);font-weight:600;
  font-variant-numeric:tabular-nums}
.dbg{flex:0 0 14px;color:var(--muted);font-size:12px;text-align:center}
.dbg:hover{color:var(--brand);text-decoration:none}
#hierhot,#hierrace{margin:14px 0}
@media(max-width:900px){.hacols{grid-template-columns:1fr}
  .dbn{flex-basis:42%}}
.spark-wrap{margin:4px 0 8px}
.spark{width:100%;height:36px;display:block}
/* year range slider */
.yrslider{display:inline-flex;align-items:center;gap:8px;position:relative;min-width:220px}
.yr-label{font-size:13px;color:var(--muted);white-space:nowrap}
.yr-val{font-size:13px;font-weight:600;color:var(--ink);min-width:70px;text-align:center}
.yr-track{position:relative;width:140px;height:20px}
.yr-fill{position:absolute;top:50%;transform:translateY(-50%);height:4px;background:var(--brand);border-radius:2px;pointer-events:none}
.yr-rng{position:absolute;top:0;left:0;width:100%;height:20px;margin:0;background:transparent;-webkit-appearance:none;appearance:none;pointer-events:none}
.yr-rng::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--card);border:2px solid var(--brand);cursor:pointer;pointer-events:auto;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:transform .15s}
.yr-rng::-webkit-slider-thumb:hover{transform:scale(1.2)}
.yr-rng::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--card);border:2px solid var(--brand);cursor:pointer;pointer-events:auto;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.yr-rng::-moz-range-track{background:transparent}
.yr-track::before{content:"";position:absolute;top:50%;transform:translateY(-50%);width:100%;height:4px;background:var(--line);border-radius:2px}
@media(max-width:760px){.yrslider{min-width:180px}.yr-track{width:100px}}
/* 检索工作台（/search 空态与结果页共用）*/
.srch-head{max-width:860px;margin:10px auto 0;text-align:center}
.srch-head h1{font-size:26px;margin:6px 0}
.srch-head .sub{color:var(--muted);font-size:13.5px;margin:0 auto 18px;max-width:640px;line-height:1.7}
.advform{margin:0 auto;text-align:left}
.chipbar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.chipbar:empty{margin:0}
.achip{display:inline-flex;align-items:center;gap:7px;padding:4px 6px 4px 12px;border:1px solid var(--brand);border-radius:14px;background:rgba(59,130,246,.08);color:var(--ink);font-size:13px}
.achip b{cursor:pointer;color:var(--muted);font-weight:400;font-size:12px;padding:0 4px;border-radius:50%}
.achip b:hover{color:#e74c3c}
.advbox{margin-top:10px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.advbox summary{cursor:pointer;padding:10px 16px;font-size:14px;color:var(--muted);user-select:none;list-style-position:inside}
.advbox summary:hover{color:var(--brand)}
.advbox[open] summary{border-bottom:1px dashed var(--line);color:var(--ink)}
.advinner{padding:14px 16px}
/* 机构页备案信息分区（instbox）：基本信息/机构动态/备案专业各自折叠，
   收起时摘要行携带计数；盒内比通用 advinner 收紧一些 */
.instbox .advinner{padding:10px 16px 12px}
.instbox .pinfos{margin-top:0}
.instbox .majortbl + .pinfo{margin-top:10px}
/* 项目历程面板（journeybox）：时间线 + 招募批次表 */
.journeybox .tl-date{white-space:nowrap;font-weight:600}
.journeybox .tl-src{color:var(--muted);font-size:12px;white-space:nowrap}
.journeybox .fgroup h4 .muted{font-weight:400;margin-left:8px;font-size:12px}
.mtools{display:flex;justify-content:flex-end;margin-bottom:6px}
/* 备案专业两列表：科室窄列不折行，研究者列随内容折行 */
.majortbl{width:100%;border-collapse:collapse;font-size:13px}
.majortbl th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;
  padding:6px 10px;border-bottom:1px solid var(--line);background:var(--soft2)}
.majortbl td{padding:6px 10px;border-bottom:1px solid var(--line2);
  vertical-align:top;overflow-wrap:anywhere}
.majortbl tr:last-child td{border-bottom:0}
.majortbl td.mdept{white-space:nowrap;font-weight:600;width:1%}
@media(max-width:760px){.majortbl td.mdept{white-space:normal;width:auto}}
/* 机构动态四列表：日期列不折行、不被挤压；含暂停/停止/整改的行突出 */
.insptbl td.idate,.tbl td.idate{white-space:nowrap;min-width:6.5em}
.insptbl td.mhand{width:34%}
.insp-alert td{background:rgba(220,60,60,.07)!important;color:var(--ink)}
.tbl tbody tr.insp-alert td:first-child{box-shadow:inset 4px 0 0 #d93025}
.insp-alert td.idate{font-weight:600}
[data-theme=dark] .insp-alert td{background:rgba(255,110,100,.12)!important}
.alertlink{display:inline-block;font-size:12.5px;padding:2px 10px;border:1px solid #d93025;
  border-radius:12px;color:#d93025;text-decoration:none}
.alertlink.on{background:#d93025;color:#fff}
.alertbar{margin:0 0 6px}
.sp-panel>summary{cursor:pointer;display:flex;align-items:baseline;gap:12px;list-style:none;margin:14px 0 8px}
.sp-panel>summary::-webkit-details-marker{display:none}
.sp-panel>summary::before{content:"▸";color:var(--muted)}
.sp-panel[open]>summary::before{content:"▾"}
.sp-panel>summary h2{margin:0}
.sp-panel[open]>summary .muted{display:none}
.sp-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:stretch}
/* 右栏与地图等高：高度由地图决定，列表在栏内滚动 */
.sp-side{position:relative;min-height:320px}
.sp-in{position:absolute;inset:0;overflow-y:auto;padding-right:4px}
.sp-tools{margin-bottom:8px;display:flex;gap:6px;align-items:center}
.sp-head{margin-bottom:8px}
.sp-item{padding:8px 10px;border:1px solid var(--line);border-left:3px solid #d93025;
  border-radius:8px;margin-bottom:8px;background:var(--card)}
.sp-d{font-weight:600;margin-right:6px;white-space:nowrap}
.sp-m{font-size:13px;color:var(--muted);margin-top:2px}
.sp-m span,.sp-h span{display:inline-block;min-width:4.6em;margin-right:6px;font-size:12px;opacity:.75}
.sp-h{font-size:13px;margin-top:3px;color:#b3261e}
.sp-more{display:block;text-align:center;padding:6px;font-size:13px}
@media(max-width:760px){.sp-grid{grid-template-columns:1fr}.sp-side{min-height:0;height:420px}}
@media(prefers-color-scheme:dark){.sp-h{color:#ff8a80}}
[data-theme=dark] .alertlink{color:#ff8a80;border-color:#ff8a80}
/* 备案专业：研究者独立 span（顿号分隔由 CSS 补，JS 局部重排 span 顺序） */
.majortbl td .pp+.pp::before{content:"、"}
/* 试验列表折叠壳（懒加载）：片段注入区与 instbox 盒内边距一致；
   状态图标徽标悬停可看全称；列表上方「点列头排序」用法提示 */
.trialbox .lazybody{padding:10px 16px}
.statbox .lazybody{padding:0 16px 16px}
.trial-list .badge{cursor:help}
.lhint{margin:0 0 4px}
.lhint .hint-sort{margin-left:0}
.advgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:10px 14px}
.advgrid label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted)}
.acfi{position:relative;display:block}
.growrow{display:flex;align-items:center;gap:10px;padding:4px 0}
.gname{flex:0 0 7em}
.gbar{flex:1;height:10px;background:var(--bg2);border-radius:5px;overflow:hidden}
.gbar i{display:block;height:100%;background:var(--brand);border-radius:5px}
.gnum{flex:0 0 auto;font-size:12px;color:var(--muted)}
.maplink{margin-top:8px}
.geolist{margin-top:10px}
.specbox .cnmap{max-height:min(56vh,520px);width:auto;margin:0 auto;display:block}
.advgrid input{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:14px;background:var(--bg2);color:var(--ink)}
.advgrid input:focus{outline:none;border-color:var(--brand)}
.advrow{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}
.advrow select{padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--bg2);color:var(--ink);font-size:13.5px;max-width:190px}
.advrow .primary,.advrow button{padding:9px 22px;background:var(--brand-grad);color:#fff;border:0;border-radius:8px;font-size:14px;cursor:pointer}
/* 归类复选框组（宽屏自适应几栏；与全站宽容器一致）。上下两段=「且」，
   段内勾选=「或」——语义靠分隔线上的标注显式表达 */
.catbox{margin-top:4px;border:1px solid var(--line2);border-radius:10px;padding:10px 14px 12px;background:var(--soft2)}
.catbox-h{font-size:12.5px;color:var(--muted);margin-bottom:6px}
.catbox-h b,.catbox-split b{color:var(--brand2);font-weight:700}
.catbox-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:6px 20px}
.catbox fieldset{border:0;margin:0;padding:0}
.catbox legend{font-size:12px;color:var(--muted);padding:0;margin-bottom:2px}
.catbox label{display:inline-flex;align-items:center;gap:5px;margin:3px 12px 3px 0;font-size:13px;cursor:pointer;color:var(--ink)}
.catbox input[type=checkbox]{accent-color:var(--brand)}
.catbox-split{display:flex;align-items:center;gap:10px;margin:10px 0 6px;font-size:12px;color:var(--muted);white-space:normal}
.catbox-split::before,.catbox-split::after{content:"";flex:1;border-top:1px dashed var(--line)}
.advhint{font-size:12px;color:var(--muted)}
.fs-link{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;
  color:var(--muted);cursor:pointer;user-select:none}
.fs-link input{accent-color:var(--brand)}
.advhint code{background:var(--bg2);border:1px solid var(--line);border-radius:4px;padding:0 4px;font-size:11.5px}
.srch-chips{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 10px}
.srch-chips:empty{display:none}
/* 跨库检索提示（一边查空、另一库有匹配）*/
.xhint{margin:10px 0;padding:10px 16px;border:1px dashed var(--brand);border-radius:10px;
  background:rgba(59,130,246,.06);font-size:13.5px;color:var(--ink)}
.xhint a{font-weight:600}
/* 数据全景 */
.ov-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:20px;margin-top:16px}
.ov-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.ov-panel h3{margin:0 0 12px;font-size:15px}
.ov-panel h3 .muted{font-size:12px;font-weight:400}
.ovbar{display:flex;align-items:center;gap:10px;padding:3.5px 0;color:var(--ink);font-size:13px}
.ovbar:hover{text-decoration:none;color:var(--brand)}
.ov-k{flex:0 0 132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ov-track{flex:1;height:8px;background:var(--bg2);border-radius:4px;overflow:hidden}
.ov-fill{display:block;height:100%;background:var(--brand-grad);border-radius:4px}
.ovbar b{flex:0 0 auto;min-width:46px;text-align:right;font-size:12px;color:var(--muted);font-weight:600}
.ov-chips{display:flex;flex-wrap:wrap;gap:6px}
/* 同城对比等榜单里的"自己"高亮：纯视觉（换色加粗），不加文字——
   轨道是 flex:1，文字会挤占该行条形宽度造成"变短"错觉 */
.ovbar.own .ov-k{color:var(--brand);font-weight:700}
.ovbar.own .ov-fill{background:linear-gradient(90deg,#f59e0b,#ea580c)}
.ovbar.own b{color:var(--brand)}
/* 同城榜"…"间隔行：自己掉出 TOP N 时，省略中间名次再附上自己 */
.ovgap{text-align:center;color:var(--muted);opacity:.45;padding:0 0 1px;
  letter-spacing:.4em;font-size:11px;line-height:1.2}
/* 样本规模大数面板 */
.ov-big{display:flex;align-items:baseline;gap:10px;padding:6px 0 2px}
.ov-big b{font-size:30px;font-weight:800;color:var(--ink);
  background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.ov-big span{font-size:12.5px;color:var(--muted)}
.inst-stats{margin-top:14px}
/* 队列画像（profbox）：条形行尾的占比+基线差列、小节标题、指标行、脚注 */
.ovbar .ov-p{flex:0 0 auto;min-width:74px;text-align:right;font-size:11.5px;
  color:var(--muted);font-weight:600}
.ov-p i{font-style:normal;font-size:10.5px;margin-left:3px}
.ov-p i.up{color:#0a9d6c}
.ov-p i.down{color:#e05252}
.prof-sub{font-size:12px;color:var(--muted);margin:10px 0 4px;font-weight:600}
.prof-sub:first-child{margin-top:0}
.prof-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  font-size:13px;padding:4px 0;color:var(--ink)}
.prof-row span{color:var(--muted)}
.prof-row b{font-weight:600;font-variant-numeric:tabular-nums;text-align:right}
.prof-row .ov-p{min-width:0}
.profbox summary .warn{color:#b45309;font-size:12px;margin-left:6px}
.prof-note{font-size:12px;color:var(--muted);margin:12px 2px 0;line-height:1.7}
/* 分层大表（分期×机构规模×样本量）：带框线——混排内容（文本/数字/
   占比条）多列时,框线比底线更容易对行对列 */
.pstab{width:100%;border-collapse:collapse;font-size:13px;margin-top:2px}
.pstab th,.pstab td{border:1px solid var(--line2);padding:5px 10px;
  text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.pstab th{background:var(--th);color:var(--muted);font-weight:600}
.pstab .g{border-left:2px solid var(--line)}
.pstab .z{color:var(--muted);opacity:.55}
.pstab tr.tot td{background:var(--th);font-weight:600}
.pstab th:first-child{text-align:left}
.pstab td:first-child{text-align:left}
/* 合并大表（分期×机构×样本量）：**网格之外的独立单元**——网格里的
   chips/面板是一个单元，大表单独一块独占整行（不参与网格排布，宽度
   恒为面板全宽）；窄屏兜底横向滚动 */
.prof-wide{margin-top:20px;overflow-x:auto}
@media(max-width:760px){.pstab{font-size:11.5px}}
/* 画像行比普通全景行多一列占比，标签列相应收窄；窄屏挤不下时占比列让位 */
.probbox .ov-k{flex:0 0 112px}
@media(max-width:760px){.profbox .ov-p{display:none}}
/* 管线矩阵（分期×状态，matrixbox 折叠盒）：紧凑小格，空格淡化 */
/* 试验药物全表（申办方页）：按药名长度分组的格子阵，试验数前置对齐成列 */
.dfilter{display:block;width:100%;max-width:360px;padding:8px 12px;
  border:1px solid var(--line);border-radius:8px;font-size:13.5px;
  background:var(--bg2);color:var(--ink)}
.dfilter:focus{outline:none;border-color:var(--brand)}
.dtools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px}
.dtools .dfilter{margin:0;flex:1 1 220px}
.dgroup{margin-bottom:6px}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px}
.dcell{display:flex;align-items:baseline;gap:8px;padding:4px 10px;
  border:1px solid var(--line);border-radius:8px;background:var(--soft);
  font-size:13px;color:var(--ink);min-width:0}
.dcell b{flex:0 0 2.4em;text-align:right;font-size:12px;font-weight:600;
  color:var(--brand)}
.dcell span{flex:1;min-width:0;overflow-wrap:anywhere}
.dcell:hover{text-decoration:none;border-color:var(--brand);color:var(--brand)}
.dcell.on{background:var(--brand);border-color:var(--brand);color:#fff}
.dcell.on b{color:#fff}
/* 申办方页关联主体：低相似候选折叠组（默认不展示） */
.relmore{margin-top:6px}
.relmore summary{cursor:pointer;font-size:12px;color:var(--muted);user-select:none}
.relmore summary:hover{color:var(--brand)}
.relm-i{margin-top:6px}
.relkw{display:inline-flex;gap:6px;align-items:center;margin-left:10px;vertical-align:middle}
.relkw input[type=search]{padding:5px 10px;border:1px solid var(--line);
  border-radius:8px;font-size:12.5px;background:var(--bg2);color:var(--ink);
  width:230px}
.relkw input[type=search]:focus{outline:none;border-color:var(--brand)}
.relkw button{padding:5px 12px;border:0;border-radius:8px;background:var(--brand-grad);
  color:#fff;font-size:12.5px;cursor:pointer}
.matrix{font-size:12.5px;margin:0}
.matrix th,.matrix td{padding:4px 10px;text-align:center;white-space:nowrap}
.matrix tbody th{text-align:left}
.matrix td a{display:block;margin:-4px -10px;padding:4px 10px;font-weight:600}
.matrix td a:hover{text-decoration:none;background:var(--hover);color:var(--brand)}
.matrix td.muted{color:var(--line)}
/* 页尾相关维度导航 */
.relnav{margin:18px 0 4px;padding:12px 16px;border:1px dashed var(--line);border-radius:10px;
  font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px 6px;align-items:baseline}
.relnav .rg b{margin-right:8px;font-weight:600;color:var(--ink)}
.relnav .rg a{margin-right:6px}
.relnav .rsep{opacity:.4;margin:0 4px}
@media(max-width:760px){.ov-k{flex-basis:96px}.ov-grid{grid-template-columns:1fr}}
/* version timeline */
.vtimeline{position:relative;margin:12px 0 20px;padding:0 8px;overflow-x:auto}
.vt-line{position:absolute;top:14px;left:8px;right:8px;height:2px;background:var(--line);border-radius:1px;z-index:0}
.vt-nodes{display:flex;gap:0;position:relative;z-index:1;min-width:max-content}
.vt-node{display:flex;flex-direction:column;align-items:center;gap:2px;padding:0 16px;text-decoration:none;color:var(--muted);cursor:pointer;transition:color .2s;position:relative;min-width:90px}
.vt-node:hover{color:var(--ink)}
.vt-dot{width:10px;height:10px;border-radius:50%;background:var(--card);border:2px solid var(--muted);margin-top:9px;transition:all .2s}
.vt-node:hover .vt-dot{border-color:var(--brand);transform:scale(1.3)}
.vt-node.cur .vt-dot{background:var(--brand);border-color:var(--brand);box-shadow:0 0 0 4px rgba(59,130,246,.15)}
.vt-seq{font-size:13px;font-weight:600;color:var(--ink)}
.vt-date{font-size:11px;white-space:nowrap}
.vt-chg{font-size:10px;color:var(--brand);background:rgba(59,130,246,.08);padding:1px 6px;border-radius:8px;white-space:nowrap}
.vt-chg[data-vd]{cursor:pointer;text-decoration:underline dotted}
.vt-chg[data-vd]:hover{background:rgba(59,130,246,.18)}
.vdiff.vd-hl{outline:2px solid var(--brand);outline-offset:2px;transition:outline-color .4s}
.vt-warn{font-size:11px;color:#e74c3c}
.vt-cur-tag{font-size:9px;color:#fff;background:var(--brand);padding:1px 5px;border-radius:4px;white-space:nowrap}
.vt-node.cur{color:var(--brand)}
[data-theme=dark] .vt-dot{background:var(--bg2);box-shadow:0 0 0 2px var(--bg2)}
[data-theme=dark] .vt-node.cur .vt-dot{box-shadow:0 0 0 4px rgba(59,130,246,.2),0 0 8px rgba(59,130,246,.3)}
@media(max-width:760px){.vtimeline{padding:0 4px}.vt-node{min-width:72px;padding:0 8px}}
/* row expand (inline preview) */
.row-expand{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:6px;border:1px solid var(--line);border-radius:4px;background:var(--card);color:var(--muted);cursor:pointer;font-size:11px;line-height:1;padding:0;vertical-align:middle;transition:all .2s}
.row-expand:hover{border-color:var(--brand);color:var(--brand);background:rgba(59,130,246,.06)}
.row-expand.open{border-color:var(--brand);color:var(--brand);transform:rotate(90deg)}
.trial-preview td{padding:12px 16px;background:var(--bg2);border-bottom:1px solid var(--line)}
.trial-preview-content{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:13px}
.tp-item{display:flex;align-items:baseline;gap:4px;max-width:100%}
.tp-item .tp-label{color:var(--muted);white-space:nowrap}
.tp-item .tp-val{color:var(--ink);font-weight:500}
[data-theme=dark] .trial-preview td{background:rgba(255,255,255,.03)}
/* 导航项多（加了「审评动态」），中等宽度收窄内距，避免逐字折行 */
@media (max-width:1440px){.mainnav a,.navgrp summary{padding:6px 9px}}

/* 机构动态：数据变更日期索引（5 列紧凑表，数字右对齐） */
.tbl.chg-idx{width:auto;min-width:520px}
.tbl.chg-idx th,.tbl.chg-idx td{padding-left:18px;padding-right:18px;white-space:nowrap}
.tbl.chg-idx td.num,.tbl.chg-idx th:not(:first-child){text-align:right}
.tbl.chg-idx td.zero{color:var(--muted)}
/* 机构动态：某日变更明细（类型 tab + 分组表格） */
.chg-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 14px;border-bottom:1px solid var(--line)}
.chg-tabs a{padding:7px 14px;border:1px solid transparent;border-bottom:none;border-radius:9px 9px 0 0;color:var(--muted);text-decoration:none;margin-bottom:-1px}
.chg-tabs a b{margin-left:4px;color:inherit}
.chg-tabs a.on{border-color:var(--line);background:var(--card);color:var(--brand,#7b74ac)}
.chg-tabs a.empty{opacity:.45;cursor:default}
.chg-view{margin:0 0 10px;font-size:13px}
.chg-view a{margin-left:10px;color:var(--muted);text-decoration:none;padding:2px 8px;border-radius:7px;border:1px solid transparent}
.chg-view a.on{border-color:var(--brand,#7b74ac);color:var(--brand,#7b74ac)}
.chg-tbl{margin-bottom:16px}
.chg-tbl td{vertical-align:top}
.chg-tbl td.chg-prov{white-space:nowrap;color:var(--muted);width:7em}
.chg-tbl td.chg-inst{width:26%;min-width:12em}
.chg-tbl td.chg-tags{width:9em}
.chg-tbl td.chg-detail{line-height:1.7}
.chg-tbl tr.chg-grp td{background:var(--bg2,rgba(0,0,0,.035));font-weight:600;padding-top:7px;padding-bottom:7px}
.chg-canon{font-size:12px;color:var(--muted);margin-top:2px}
.chg-tag{display:inline-block;font-size:12px;padding:1px 7px;border-radius:6px;margin:0 4px 3px 0;border:1px solid var(--line);white-space:nowrap}
.chg-tag.t-basic{color:#2f6db5;border-color:#2f6db555}
.chg-tag.t-major{color:#1f8a5b;border-color:#1f8a5b55}
.chg-tag.t-person{color:#9a6a12;border-color:#9a6a1255}
.chg-tag.t-insp{color:#b5452f;border-color:#b5452f55}
.chg-tag.t-rtime{color:var(--muted)}
.chg-h3{font-size:15px;margin:18px 0 8px}
@media (max-width:640px){
  .tbl.chg-idx{min-width:0;width:100%}
  .tbl.chg-idx th,.tbl.chg-idx td{padding-left:8px;padding-right:8px}
  .chg-tbl thead{display:none}
  .chg-tbl tr{display:block;padding:8px 10px;border-top:1px solid var(--line)}
  .chg-tbl td{display:block;width:auto!important;min-width:0!important;padding:2px 0!important;border:none!important}
  .chg-tbl td.chg-prov{display:inline-block;margin-right:6px}
  .chg-tbl td.chg-inst{display:inline-block;font-weight:600}
  .chg-tbl td.chg-detail{overflow-wrap:anywhere}
  .chg-tabs a{padding:6px 9px}
}
.insp-tools{margin:0 0 8px}
/* 试验动态（/updates）：归类统计总表 + 日期 tab + 子 tab + 表格明细 */
.tbl.uov th.ugrp{text-align:center;font-weight:500;color:var(--muted)}
.tbl.uov thead tr:nth-child(2) th{font-size:12.5px}
.udates a small{color:var(--muted);font-size:11.5px}
.usub{margin-top:2px}
.ustat{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 8px;font-size:13px}
.ustat-l{color:var(--muted);min-width:5em}
.ustat .fitem{margin:0}
.ustat span.fitem{cursor:default}
.utbl td{vertical-align:top}
.utbl td.nowrap,.tbl td.nowrap{white-space:nowrap}
.utbl td.c-ind{font-size:13px;max-width:14em}
.utbl td.u-tags{width:8.5em}
.utbl td.u-brief{min-width:16em;font-size:13.5px}
.utbl td.u-brief summary{cursor:pointer;color:var(--muted)}
.utbl td.u-brief summary::after{content:" ▾";color:var(--brand)}
.utbl td.u-brief details[open] summary::after{content:" ▴"}
.utbl .vdiff{padding:8px 10px;margin:6px 0 2px}
.umove{margin-bottom:2px}
.umove b{color:var(--brand,#7b74ac)}
.chg-tag.u-status{color:#b5452f;border-color:#b5452f55}
.chg-tag.u-recruit{color:#1f8a5b;border-color:#1f8a5b55}
.chg-tag.u-site{color:#2f6db5;border-color:#2f6db555}
.chg-tag.u-protocol{color:#7b4bb5;border-color:#7b4bb555}
.chg-tag.u-contact{color:#9a6a12;border-color:#9a6a1255}
.chg-tag.u-other{color:var(--muted)}
@media (max-width:640px){
  .utbl{min-width:920px}
  .utbl td.c-title{min-width:15em}
  .utbl td.c-ind{min-width:10em}
  .utbl td.u-brief{min-width:14em}
  .udates a small{display:none}
}
/* ── 可点击性与面板层次 ──
   1) 正文里的链接（无 class 的 <a> 与实体链接 .elink）一律带淡下划线，
      悬停加深；导航/胶囊/按钮类链接各有外形，不在此列。
   2) 折叠面板（advbox）摘要行做成"面板标题栏"：浅底+粗标题+品牌色箭头，
      和正文、和相邻面板一眼分开；嵌在面板里的卡片（ov-panel）退一档底色。 */
main a:not([class]),main a.elink{text-decoration:underline;text-decoration-thickness:1px;
  text-underline-offset:3px;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);
  transition:text-decoration-color .15s,color .15s}
main a:not([class]):hover,main a.elink:hover{text-decoration-color:currentColor}
/* 页内导航条/标签页/胶囊/大按钮：外形已表明可点，不加下划线 */
main :is(.subnav,.chg-tabs,.cd-hchips,.herogo) a{text-decoration:none}
summary{cursor:pointer}
.ovbar{border-radius:6px;margin:0 -6px;padding-left:6px;padding-right:6px;transition:background .12s}
.ovbar:hover{background:var(--hover)}
.ovbar .ov-k{color:var(--link)}
.ovbar.own .ov-k{color:var(--brand)}
.advbox{margin-top:12px;background:var(--card);box-shadow:var(--shadow-sm);overflow:clip}
.advbox>summary{list-style:none;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
  padding:11px 16px;background:var(--panel-h);color:var(--ink);font-weight:600;transition:background .15s}
.advbox>summary::-webkit-details-marker{display:none}
.advbox>summary::before{content:"";flex:0 0 auto;width:7px;height:7px;margin:0 4px 0 1px;
  border:solid var(--brand);border-width:0 2px 2px 0;transform:translateY(-2px) rotate(-45deg);transition:transform .15s}
.advbox[open]>summary::before{transform:translateY(-4px) rotate(45deg)}
.advbox>summary .muted{font-weight:400}
.advbox>summary:hover{background:var(--hover);color:var(--ink)}
.advbox[open]>summary{border-bottom:1px solid var(--line);color:var(--ink)}
.advbox .ov-panel{background:var(--soft2);box-shadow:none}
.detail section+section{border-top:1px solid var(--line2)}
