
:root{--bg:#fbfbf9;--fg:#1f2328;--muted:#4b5257;--line:#cfcabf;--line-soft:#e3e1da;
--card:#fff;--surface-2:#f6f5f0;--band:#f6f5f0;--accent:#0b6b53;--accent-weak:#f1f8f4;--warn:#b4471f;--warnbg:#fdf1ec;--sev:#a01b1b;--sevbg:#fdecec;
--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;
--fs-xs:12px;--fs-sm:14px;--fs-md:16px;--fs-lg:20px;--fs-xl:24px;
--lh-tight:1.3;--lh-heading:1.35;--lh-ui:1.5;--lh-body:1.6;
--r-sm:8px;--r-md:12px;--r-pill:999px;--prose:72ch;
/* v0.10.3 task-17：桌面内容带按视口比例取「中间 2/3」，而不是固定像素。
   ≥1280 用 66.67vw（1440→960 / 1920→1280 / 2560→1707，被 1680 封顶）；
   768–1279 保持 v0.10.2 的满宽手感（默认 100%；实测原值就是 100%，不是 100% - 48px，
   改成 -48px 会让 768 档与 v0.10.2 不逐像素一致，故不改）；<768 满宽 + 14px 内边距不变。 */
--band-w:100%;--wrap-pad:20px}
.wrap{width:var(--band-w);max-width:1680px;margin-inline:auto;padding:0 var(--wrap-pad)}
@media (min-width:1280px){:root{--band-w:66.67vw}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);min-height:100vh;
display:flex;flex-direction:column;
font:16px/1.6 -apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
header{border-bottom:1px solid var(--line);background:var(--bg)}
header .wrap{display:flex;align-items:center;gap:16px;height:60px;flex-wrap:nowrap}
.logo{font-weight:700;font-size:16px;color:var(--fg);white-space:nowrap}
.logo-zh{font-weight:400;font-size:14px;color:var(--muted);margin-left:8px;white-space:nowrap}
/* v0.6.5：logo 中文副标题只在简体中文界面显示（en/es/zh-Hant 隐藏，移动端仍隐藏） */
html:not([lang="zh"]) .logo-zh{display:none}
.langs{margin-left:6px;font-size:14px;display:flex;align-items:center;gap:6px;
  white-space:nowrap;flex-wrap:nowrap}
.langs a{color:var(--muted);padding:1px 5px;border-radius:8px;white-space:nowrap;
  display:inline-flex;align-items:center}
.langs a.on{background:var(--accent);color:#fff}
nav{display:flex;gap:14px;font-size:14px;flex-wrap:nowrap;white-space:nowrap;align-items:center}
nav a{white-space:nowrap}
/* v0.8.2 task-118：宽屏一行；768–1023 允许换行（禁止单字竖排）；<768 汉堡菜单 */
@media (max-width:1024px) and (min-width:768px){
  header .wrap{height:auto;flex-wrap:wrap;gap:6px 12px;padding-top:8px;padding-bottom:8px}
  nav{order:3;flex-basis:100%;flex-wrap:wrap;gap:8px 12px;font-size:14px}
  .langs{margin-left:auto;order:2;gap:4px}
}
.nav-toggle{display:none;align-items:center;justify-content:center;min-width:40px;min-height:40px;
  font-size:20px;background:#fff;color:var(--fg);border:1px solid var(--line);border-radius:8px;
  cursor:pointer}
@media (max-width:767px){
  header .wrap{height:auto;flex-wrap:wrap;gap:8px 12px}
  .nav-toggle{display:inline-flex;margin-left:auto}
  header nav{display:none;order:3;width:100%;flex-wrap:wrap;gap:6px 14px;padding:4px 0 2px;
    font-size:14px}
  header.nav-open nav{display:flex}
  header nav a{display:inline-flex;align-items:center;min-height:40px;white-space:nowrap}
  .langs{margin-left:0;gap:6px}
  .langs a{min-height:40px;padding:4px 6px}
  .logo{font-size:16px}
  .logo-zh{display:none}
}
main{padding:24px 0 64px;flex:1}
h1{font-size:var(--fs-xl);line-height:var(--lh-tight);margin:0 0 8px}
h2{font-size:var(--fs-lg);line-height:var(--lh-heading);margin:24px 0 12px}
.sub{color:var(--muted);font-size:var(--fs-sm);line-height:var(--lh-ui);margin:0 0 16px;max-width:var(--prose)}
#q{width:100%;padding:14px 16px;font-size:16px;border:1px solid var(--line);
border-radius:12px;background:#fff}
.row{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap}
select,button{padding:8px 12px;border:1px solid var(--line);border-radius:8px;
background:#fff;font-size:14px}
button{cursor:pointer;background:var(--accent);color:#fff;border-color:var(--accent)}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;
padding:14px 16px;margin:10px 0}
.card h3{margin:0 0 4px;font-size:16px}
.card h2{margin:0 0 4px;font-size:16px}
.card .meta{color:var(--muted);font-size:14px}
.tag{display:inline-block;font-size:13px;padding:1px 7px;border-radius:999px;
border:1px solid var(--line);margin-left:6px;color:var(--muted)}
.tag.cn{color:#8a4b00;border-color:#e8c9a6}
.tag.gb{color:#1f4f8a;border-color:#b9cde6}
.tag.us{color:#0b6b53;border-color:#a9d3c5}
.tag.es{color:#8a2c1f;border-color:#e6bdb4}
.tag.au{color:#6b3b0b;border-color:#e0c9a6}
.tag.combo{color:#7a3b1f;border-color:#e6c3b3}
.tag.ca{color:#7a1420;border-color:#e7c3c7}
.tag.mx{color:#4b5b0b;border-color:#cdd6a6}
.tag.tw{color:#1f5c7a;border-color:#b7d5e3}
.tag.sg{color:#7a1f3d;border-color:#e3b7c5}
/* v0.8.1：双语对照开关/来源徽章/版本/原文 */
.bil-toggle{display:inline-flex;align-items:center;gap:4px;font-size:14px;
  color:var(--muted);margin:0 8px;cursor:pointer}
.bil-toggle input{width:14px;height:14px}
.tr-badge{display:inline-block;margin-left:6px;font-size:13px;padding:0 5px;
  border:1px solid var(--line);border-radius:8px;color:var(--muted);vertical-align:1px}
.tr-ver{font-size:14px;color:var(--muted);margin-left:4px}
.tr-orig{color:var(--muted);font-weight:400}
/* v0.7.x：ATC 类别 / 大类浏览 */
.atcgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}
.catgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;margin:10px 0}
.atccard{display:block;padding:8px 10px;border:1px solid var(--line);border-radius:12px;
  background:#fff;color:var(--fg);font-size:14px}
.atccard:hover{border-color:var(--accent)}
.atccard code{font-weight:700;margin-right:4px}
.atclist{columns:2;column-gap:24px}
.atclist li{break-inside:avoid;margin:2px 0}
/* v0.10.2 task-3：ATC/大类页成分列表改自适应多列网格——宽屏（1440 / 2560）不再把内容
   挤在中间一列（旧 .wrap 920px + columns:2，2560 视口下列宽只有 268px）。
   minmax(300px,1fr) 保证单列 ≥300px，行内「主名 + 盐型子行 + 状态角标」不折断。 */
.atcmembers{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
 column-gap:24px;row-gap:0;columns:auto;padding-left:20px;margin:6px 0 10px;max-width:none}
.atcmembers li{font-size:16px;line-height:1.3;break-inside:auto}
@media (max-width:767px){ .atclist{columns:1} .atcmembers{display:block;padding-left:18px}
 .atcmembers li{font-size:16px} }
/* v0.8.5：ATC 类名 v2 来源小字 / 盐型附注 / 状态角标 / 查看更多 */
.atc-src{color:var(--muted);font-size:13px;margin-left:6px;white-space:nowrap}
.atccard .atc-src{display:block;margin:2px 0 0;white-space:normal}
.atc-src-line{margin:-8px 0 10px}
.atc-count{margin:-6px 0 10px}
.salt{color:var(--muted);font-size:14px;margin-left:6px}
/* v0.10.2 task-3：盐型独立成块级子行（左缩进对齐主名），文案「盐型：Name」。
   原来是内联 span，390px 下与主名/角标抢行，且每个盐型各带一次「暂无中文名」。 */
.salt-row{display:block;margin:1px 0 2px;color:var(--muted);font-size:15px;line-height:1.4}
.salt-row .salt-k{color:var(--muted)}
.salt-row .nm{color:var(--muted)}
.drug-name-src{min-height:18px;margin:2px 0 0;font-size:14px}
.drug-name-src [data-sub-src]:not(:empty){display:inline-block;padding:1px 7px;
  border:1px solid var(--line);border-radius:999px;background:#f6f5f0;color:var(--muted)}
.salt .nm{color:var(--muted)}
.atcmembers .st-badge{margin-left:4px;padding:0 5px;margin-right:3px;font-size:13px;
  line-height:1.2}
/* v0.10.2：状态角标尾部带市场码（reports/atc-status-aggregation-20261110.md）。
   字号 12px 是硬线（v0.10.2 起「任何可见文字 <12px 即违规」）：11px 虽然能把 390px 下
   4 徽章行压到 2 行，但那是拿可读性换高度。12px + padding:0 5px + line-height 1.2 时
   4 徽章行平均 48px（v0.10.1 无市场码时 52px），仍然比原来矮。 */
.st-badge .mk{margin-left:3px;font-size:13px;letter-spacing:0;font-variant-numeric:tabular-nums}
.atc-mk-hint{margin:-4px 0 10px}
/* 盐型子行不再逐个标「暂无中文名」：标记由 markAtcRowGaps() 每行只放一枚（链接外） */
.atcdetails{margin:8px 0 0}
.atcdetails summary{cursor:pointer;color:var(--accent);font-size:14px;margin:4px 0}
.atcdetails .atcmembers{margin-top:6px}
/* v0.9.6 task-145b：ATC4 页「按剂型看跨市场明细」（客户端懒加载 data/idx/atc4-forms.json） */
.atc4forms{margin:10px 0 0}
.atc4forms summary{cursor:pointer;color:var(--accent);font-size:14px;margin:4px 0}
.atc4forms table{font-size:14px}
.atc4forms th,.atc4forms td{padding:4px 6px;border-bottom:1px solid var(--line)}
.atc4forms thead th{white-space:nowrap;font-variant-numeric:tabular-nums}
.atc4forms tbody th{font-weight:600}
.atc4forms tbody td{text-align:right;font-variant-numeric:tabular-nums}
.atc4forms tbody td.z{color:var(--muted);text-align:center}
.atc4note{margin:4px 0 0;font-size:14px}
.cat-note .lang-block{margin:2px 0}
.catquick{margin:18px 0 6px}
.catquick h2{font-size:16px;margin:0 0 8px}
.catchip{display:inline-block;margin:0 8px 8px 0;padding:5px 10px;border:1px solid var(--line);
  border-radius:999px;background:#f6f5f0;color:var(--fg);font-size:14px}
.catchip:hover{border-color:var(--accent)}
/* v0.9.6 task-143：首页「最近更新」= 最近 3 个版本（版本号/日期是事实，不翻译） */
.homeupd{margin:18px 0 6px}
.homeupd h2{font-size:16px;margin:0 0 8px}
.homeupd .updlist{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.homeupd .updlist a{display:inline-flex;align-items:center;gap:8px;padding:5px 10px;
  border:1px solid var(--line);border-radius:999px;background:#f6f5f0;color:var(--fg);
  font-size:14px;text-decoration:none}
.homeupd .updlist a:hover{border-color:var(--accent)}
.homeupd .upd-date{color:var(--muted);font-size:14px}
.homeupd .sub{margin:8px 0 0;font-size:14px}
.tag.warn{color:#8a4b12;border-color:#e6c9a2;background:#fff6e8}
/* v0.9.1 task-22：可访问性基础 */
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:#0b6b53;color:#fff;
  padding:8px 12px;border-radius:0 0 8px 0;text-decoration:none}
.skip-link:focus{left:0}
:focus-visible{outline:3px solid #0b6b53;outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* v0.9.1 task-29 P0/P1 */
.search-status{margin:8px 0 0;min-height:20px}
.match-name{display:inline-block;margin-left:6px;font-size:14px;color:var(--fg)}
.linkbtn,.detbtn,.rowreport,.mf-reset,.bil-toggle,.m-more summary{min-height:24px;
  display:inline-flex;align-items:center;justify-content:center}
#q,.mf-field select,.mf-field input[type=search]{border:2px solid #6f7c75}
header nav{flex-wrap:wrap;row-gap:6px}
.langs{margin-left:auto;flex-shrink:0}
@media (max-width:767px){
  .linkbtn,.detbtn,.rowreport,.mf-reset,.m-more summary{min-height:44px;min-width:44px}
}
.badge{display:inline-block;font-size:13px;padding:2px 8px;border-radius:8px;
margin-left:8px}
.badge.sev{background:var(--sevbg);color:var(--sev);border:1px solid #f0c4c4}
.badge.warn{background:var(--warnbg);color:var(--warn);border:1px solid #f0d3c4}
.badge.export{background:#eef4fb;color:#1f4f8a;border:1px solid #b9cde6}
.notice{background:var(--warnbg);border:1px solid #f0d3c4;border-radius:12px;
padding:12px 14px;font-size:14px;margin:14px 0}
.notice.nick{background:#f1f8f4;border-color:#cfe6da}
.notice.nick .nick-head{font-size:16px}
.notice.nick .nick-head b{font-size:16px}
.notice.nick .sub{margin:6px 0 0}
.notice.nick .sub a{white-space:nowrap}
.notice.nick .sub.src{font-size:14px;margin-top:4px}
.notice.warnbox{background:#fff8e8;border-color:#ecd9a8}
table{width:100%;border-collapse:collapse;font-size:16px;line-height:1.5;margin-top:8px}
th,td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line)}
th{color:var(--muted);font-weight:600;font-size:14px}
table.res{margin-top:12px;background:#fff;border:1px solid var(--line);
border-radius:12px;overflow:hidden;font-size:16px;line-height:1.5}
table.res th{background:#f6f5f0;font-size:14px;letter-spacing:.02em}
table.res td{vertical-align:top}
table.res tbody tr:hover{background:#fcfcfa}
.c-ing{font-weight:600;width:26%}
.c-dose{width:14%;white-space:nowrap;font-variant-numeric:tabular-nums}
.c-brand{width:38%}
.c-mah{width:22%;color:var(--muted);font-size:14px}
footer{border-top:1px solid var(--line);color:var(--muted);font-size:14px;
padding:18px 0 40px;background:#fff}
footer .wrap{display:flex;gap:16px;flex-wrap:wrap;align-items:baseline}
.foot-links{margin-left:auto;display:flex;gap:14px;white-space:nowrap}
.foot-links a{color:var(--accent)}
.report-line{margin-top:14px}
kbd{background:#eee;padding:1px 5px;border-radius:8px;font-size:14px}
.empty{color:var(--muted);padding:20px 0}
.release{border-top:1px solid var(--line);padding:18px 0 6px;margin-top:18px}
.release:first-of-type{border-top:0;margin-top:0;padding-top:4px}
.release h2{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin:0 0 8px}
.release .rel-date{font-size:13px;font-weight:400;color:var(--muted)}
.release table{font-size:14px}
.release ul{margin:6px 0 12px;padding-left:22px}
.release li{margin:4px 0}
.release-pending{color:var(--warn);font-size:14px;margin:6px 0 0}
/* ── UI P0：解析条 / 自动完成 / 分组折叠 / 加载更多 / 国家提示 ── */
.sel-label{color:var(--muted);font-size:14px;margin-right:2px}
.searchwrap{position:relative}
/* v0.10.2 M-4：#ac 的锚点从 .searchwrap 换成 .searchbar，方便把 #meta / 国家行
   一起放进 sticky 的 .searchwrap 里，而不让建议列表跟着往下挪两层。 */
.searchbar{position:relative}
#ac{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;display:none;
background:#fff;border:1px solid var(--line);border-radius:12px;
box-shadow:0 8px 24px rgba(31,35,40,.12);overflow:hidden;text-align:left}
#ac.open{display:block}
.ac-item{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
padding:9px 12px;cursor:pointer;font-size:14px;border-bottom:1px solid #f1efe9}
.ac-item:last-child{border-bottom:0}
.ac-item.on{background:#f1f8f4}
.ac-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-meta{color:var(--muted);font-size:14px;white-space:nowrap;flex:none}
.parsebar{display:flex;flex-wrap:wrap;gap:6px 16px;background:#f4f6f4;
border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-size:14px;margin:14px 0}
.parsebar b{color:var(--muted);font-weight:600;margin-right:4px}
.parsebar .pmatch{color:var(--accent)}
.grp-name{font-weight:600}
.grp-count{color:var(--muted);font-size:14px;font-weight:400;margin-left:6px}
.grp-tags{text-align:right}
.linkbtn{background:none;border:0;color:var(--accent);padding:2px 0;cursor:pointer;
font-size:14px;text-decoration:underline}
.fold-row td{padding:2px 8px 8px}
.loadmore{text-align:center;margin:10px 0 0}
.loadmore button{padding:8px 16px;font-size:14px}
.countrymiss .cm-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.countrymiss .cm-actions a,.countrymiss .cm-actions button{font-size:14px}
/* v0.5.6：A1 详情 / A3 盐型释放上下文 / B6 行级报告 / B7 导出工具条 */
.ctxwrap{margin-left:4px}
.ctx{display:inline-block;font-size:14px;line-height:1.5;padding:1px 7px;border-radius:999px;
 border:1px solid var(--line);color:var(--muted);margin:1px 4px 1px 0;white-space:nowrap}
.ctx.warn{color:var(--warn);border-color:#f0d3c4;background:#fff6e8}
a.ctx:hover{text-decoration:none;border-color:var(--accent);color:var(--accent)}
.rowreport{display:inline-block;margin-left:6px;font-size:14px;color:var(--muted);text-decoration:none}
.rowreport:hover{color:var(--warn);text-decoration:none}
.detbtn{margin-left:6px;font-size:14px}
.restools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:10px 0 0}
.restools .exportnote{color:var(--muted);font-size:14px}
/* v0.9.7 task-12 UI 批次 A-1：身份卡 / 结果分页 / 零结果三动作 / 粘性搜索 / 骨架 */
#identity:empty{display:none}
.idcard{border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;
 background:#fff;padding:12px 14px;margin:14px 0 10px}
.idcard .idrow{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;margin:0 0 6px}
.idcard .idrow .idq{font-size:20px;font-weight:700}
.idcard .idrow .idarrow{color:var(--muted)}
.idcard .idrow .iding{font-size:16px;font-weight:600;color:var(--accent)}
.idbadge{background:var(--warnbg);color:var(--warn);border:1px solid #f0d3c4;border-radius:999px;
 padding:2px 10px;font-size:14px;white-space:nowrap}
.idfields{display:flex;flex-wrap:wrap;gap:3px 16px;font-size:14px;color:var(--muted);margin:0}
.idfields b{color:var(--fg);font-weight:600}
.idwarn{background:var(--warnbg);border:1px solid #f0d3c4;border-radius:12px;padding:9px 12px;
 font-size:14px;margin:9px 0 0}
.idacts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.idacts a,.idacts button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;
 padding:0 15px;border-radius:12px;border:1px solid var(--accent);background:var(--surface-2);color:var(--accent);
 font-size:14px;text-decoration:none;cursor:pointer;font-family:inherit}
.idacts .primary{background:var(--accent);color:#fff}
.idacts a:hover,.idacts button:hover{text-decoration:none;filter:brightness(.96)}
.res-more{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;
 margin:10px 0 0}
.res-more .sub{margin:0;font-size:14px}
.res-more button{min-height:40px;padding:0 16px;border-radius:12px;border:1px solid var(--accent);
 background:#fff;color:var(--accent);font-size:14px;cursor:pointer;font-family:inherit}
.res-more button:hover{filter:brightness(.96)}
.res-samelist{margin:6px 0 10px;padding-left:20px}
.res-samelist li{margin:3px 0;font-size:14px}
table.res.rows td.c-det{text-align:right;white-space:nowrap}
table.res.rows .rowform{display:block;color:var(--muted);font-size:14px}
.empty3{margin:12px 0 0}.empty3 .e3acts{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 0}
.empty3 .e3acts a,.empty3 .e3acts button{min-height:40px;display:inline-flex;align-items:center;
 padding:0 14px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--fg);
 font-size:14px;text-decoration:none;cursor:pointer;font-family:inherit}
.empty3 .e3acts a:hover,.empty3 .e3acts button:hover{border-color:var(--accent);color:var(--accent)}
.res-skeleton .sk-row{height:36px;margin:8px 0;border-radius:8px;
 background:linear-gradient(90deg,#f1efe9 25%,#f8f6f1 37%,#f1efe9 63%);
 background-size:400% 100%;animation:skfade 1.2s ease-in-out infinite}
@keyframes skfade{0%{background-position:100% 50%}100%{background-position:0 50%}}
@media (prefers-reduced-motion:reduce){.res-skeleton .sk-row{animation:none}}
@media (max-width:767px){
  /* v0.10.2 M-4：sticky 区从「只有输入框」扩到「输入框 + 命中数 + 国家/地区」。
     手机滚到第 3 屏后仍能看到「共多少条」并直接换国家（原来要一路滚回顶部）。 */
  .has-q .searchwrap{position:sticky;top:0;z-index:20;background:var(--bg);padding:6px 0;
   border-bottom:1px solid var(--line)}
  .has-q .searchwrap #ac{top:calc(100% + 2px)}
  .has-q .searchwrap .search-status{margin:2px 0 0;min-height:0}
  .has-q .searchwrap .row{margin-top:4px}
}
table.det{margin:4px 0 8px;font-size:14px;background:#f6f5f0;border:1px solid var(--line);
 border-radius:8px;overflow:hidden}
table.det th{background:#f6f5f0;font-size:14px}
table.det td{padding:5px 8px;vertical-align:top}
tr.detrow>td.detcell{padding:4px 8px 10px;background:#f6f5f0}
tr.detrow table.det{margin:0}
/* v0.6.3 U1：首屏 3 步引导（v0.8.2 task-115：移到搜索框正下方、国家行之前；层级增强） */
.u1guide{border:1px solid var(--line);border-radius:12px;background:#fff;
 padding:16px 18px;margin:12px 0 2px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.u1head{display:flex;align-items:baseline;gap:10px}
.u1head h2{margin:0;font-size:20px;font-weight:700;letter-spacing:.01em}
.u1close{margin-left:auto;background:none;border:0;color:var(--muted);font-size:20px;
 line-height:1;padding:6px 8px;min-width:36px;min-height:36px;cursor:pointer}
.u1close:hover{color:var(--fg)}
.u1steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:12px 0 0;
 padding:0;list-style:none}
.u1step{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#f6f5f0}
.u1step b{display:block;font-size:16px;margin:0 0 3px}
.u1step .sub{margin:4px 0 0;font-size:14px}
.u1try{margin-top:6px;font-size:14px;color:var(--muted)}
.u1try button{padding:3px 8px;font-size:14px;margin:2px 4px 2px 0;border-radius:8px}
html.u1-off #u1guide{display:none!important}
/* v0.8.2 task-116：搜索后收起「按大类浏览」 */
.catquick.cat-hidden{display:none!important}
/* v0.6.3 U2：结果顶部各国叫法横排（单成分唯一锚定时才渲染） */
.u2bar{border:1px solid var(--line);border-radius:12px;background:#fff;
 padding:10px 12px;margin:12px 0}
.u2head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.u2head b{font-size:14px}
.u2head .sub{margin:0;font-size:14px}
.u2chips{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;
 margin-top:8px;padding-bottom:2px}
.u2chip{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:1px;
 background:#f6f5f0;border:1px solid var(--line);color:var(--fg);border-radius:12px;
 padding:6px 10px;font-size:14px;cursor:pointer;text-align:left;min-width:0;max-width:220px}
.u2chip:hover{border-color:var(--accent)}
.u2chip.on{border-color:var(--accent);background:#f1f8f4}
.u2chip .u2c{font-weight:600;color:var(--muted);font-size:13px}
.u2chip .u2n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.u2chip .u2n.empty{color:var(--muted);font-style:italic}
/* v0.6.6：成分页多国并排矩阵（行=规格/剂型/释放，列=国家；服务端默认 en 序，客户端按语言重排） */
.matwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:10px 0}
table.matrix{width:100%;border-collapse:collapse;min-width:860px}
table.matrix th,table.matrix td{border:1px solid var(--line);padding:8px 12px;
  text-align:left;vertical-align:top;font-size:16px;line-height:1.5}
table.matrix thead th{white-space:nowrap;font-weight:650}
table.matrix td.m-spec{white-space:nowrap;background:#f6f5f0}
table.matrix .m-brand{display:-webkit-box;-webkit-box-orient:vertical;
  -webkit-line-clamp:2;overflow:hidden;max-width:220px;margin:0 6px 2px 0;
  vertical-align:top;line-height:1.35;min-height:24px;padding:3px 0;
  text-decoration:underline;text-underline-offset:2px}
/* v0.10.2 M-5：矩阵卡里的成分对照名是判断「这条到底是什么药」的关键信息，12px → 14px */
.m-en{display:inline-block;margin:0 6px 2px 0;font-size:14px;color:var(--muted)}
.m-zh{display:inline-block;margin:0 0 2px 0;font-size:14px;color:var(--muted)}
/* v0.9.0 task-19/6：无商品名占位 / 矩阵 +N 展开 */
.brand-none{color:var(--muted);font-weight:600}
.m-none-ing{display:inline-block;font-size:14px;color:var(--muted);margin-left:4px}
.m-more{display:inline-block;margin-left:4px;font-size:14px}
/* v0.9.1 task-29/22：矩阵筛选器占位，避免 JS 插入时把表格整体推下去（CLS） */
.mf-slot{min-height:170px}
@media (max-width:767px){ .mf-slot{min-height:92px} }
.m-more summary{cursor:pointer;color:var(--accent);list-style:none}
.m-more summary::-webkit-details-marker{display:none}
.m-more summary:before{content:"+";font-weight:600}
.m-more[open] summary:before{content:"−"}
.m-rest{display:block;margin-top:4px;font-size:14px}
.m-orig{display:block;margin-top:2px;font-size:14px;color:var(--muted);font-weight:400;white-space:normal}
.name-single-note,.maker-single-note{margin:18px 0 0;color:var(--muted);font-size:14px}
/* v0.8.4 task-128：状态彩色角标（A1 明细等） */
.st-badge{display:inline-block;font-size:13px;padding:2px 6px;border-radius:999px;
  border:1px solid var(--line);margin-right:4px;white-space:nowrap}
.st-active{color:#0b6b53;border-color:#a9d3c5;background:#eef7f3}
.st-discontinued{color:#8a4b12;border-color:#e6c9a2;background:#fff6e8}
.st-withdrawn{color:#8a2c1f;border-color:#e6bdb4;background:#fdf0ee}
.st-unknown{color:var(--muted);background:#f6f5f2}
.c-brand{overflow-wrap:anywhere}
/* v0.10.2 task-5：成分页顶部精简悬浮条（滚过 H1 后仍知道「我在看哪个成分」）。
   纯 CSS sticky：不加自动隐藏动画、不改键盘/读屏顺序；高度 ≤56px；
   z-index 15 < 手机底栏 .tabbar 的 45，> 矩阵内容（行头 2）。 */
.drug-sticky{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:10px;
  min-height:44px;max-height:56px;margin:0 0 10px;padding:6px 10px;
  background:var(--bg);border:1px solid var(--line);border-radius:10px}
.drug-sticky .ds-name{flex:1 1 auto;min-width:0;font-weight:600;font-size:15px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drug-sticky .ds-meta{flex:0 0 auto;color:var(--muted);font-size:13px;white-space:nowrap}
.drug-sticky .ds-filter{flex:0 0 auto;min-height:32px;display:inline-flex;align-items:center;
  padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);
  color:var(--fg);font-size:13px;text-decoration:none}
.drug-sticky .ds-filter:hover{border-color:var(--accent);color:var(--accent)}
#filters,table.matrix th[data-country],table.matrix td[data-country]{scroll-margin-top:64px}
@media (max-width:767px){ .drug-sticky{max-height:56px;padding:4px 8px} }
/* v0.10.3 task-16：成分页主视图 = 按国家分组清单（矩阵降级 ?view=table）。
   目标行高：1440 ≤72px / 390 ≤88px；零「未收录」格子；无 JS 也可读。 */
.formchips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px}
.formchip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;
 border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--fg);
 font-size:14px;text-decoration:none}
.formchip:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}
.formchip.on{background:var(--accent-weak);border-color:var(--accent);color:var(--accent);
 font-weight:600}
.formchip .n{color:var(--muted);font-size:13px}
.mkblock{margin:0 0 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);
 padding:10px 12px}
.mkblock>h3{margin:0 0 6px;font-size:16px}
.mkblock>h3 .sub{font-weight:400;margin-left:6px}
.mkspecs{list-style:none;margin:0;padding:0}
.mkrow{display:grid;grid-template-columns:minmax(120px,1.1fr) minmax(90px,.9fr) 3fr;
 align-items:baseline;gap:4px 10px;padding:6px 0;border-top:1px solid var(--line-soft);
 font-size:16px;line-height:1.35}
.mkrow:first-child{border-top:0}
.mkst{font-weight:600}
.mkf{color:var(--muted);font-size:14px}
.mkname-cell{display:flex;align-items:baseline;gap:6px;min-width:0;overflow:hidden;
 max-height:3em}
/* 名字最多两行（长中文/英文商品名在 390 下会占 3 行，把行高顶到 135） */
.mknames{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
 overflow:hidden;white-space:normal;min-width:0;line-height:1.35}
.mknames .m-brand{white-space:nowrap}
/* `+N`：纯 CSS 展开（checkbox + label），无 JS 可点。
   不用 <details>：它和矩阵遗留的 .m-brand/.m-rest 规则打架，390 下把行高从 71 顶到 95。 */
.mkname-cell .m-x{display:none}
.mkname-cell .m-more{display:inline-block;margin:0;cursor:pointer;color:var(--accent);
 border:1px solid var(--line);border-radius:999px;padding:0 6px;font-size:13px;line-height:20px}
.mkname-cell .m-rest{display:none}
.mkname-cell .m-x:checked ~ .m-rest{display:inline}
.mkname-cell .m-x:checked ~ .m-more{background:var(--accent-weak);border-color:var(--accent)}
/* 矩阵里的 .m-brand 是 -webkit-box 行夹（块级），清单里要行内排，否则每个名字独占一行 */
.mkname-cell .m-brand{display:inline;max-width:none;min-height:0;padding:0;
 text-decoration:none;-webkit-line-clamp:none}
.mkrowmeta{grid-column:1 / -1;display:flex;align-items:center;gap:8px;min-width:0}
.mkx{color:var(--muted);font-size:13px;white-space:nowrap;min-width:0;
 overflow:hidden;text-overflow:ellipsis}
.mkx a{margin:0 1px}
.mkundis{margin:8px 0 0;padding-top:8px;border-top:1px dashed var(--line);font-size:16px;
 color:var(--muted)}
.mkundis .uname{margin-right:8px}
.mkcmp{margin:6px 0 10px}
.tableview[hidden]{display:none}
.mkblock.mkflash{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:no-preference){
 .mkblock{transition:outline-color .2s}
}
@media (max-width:767px){
 /* chips 单行横滑（24 个 chip 换成受控码后最多 8 个，仍不铺多行占首屏） */
 .formchips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
  padding-bottom:2px;margin-bottom:8px}
 .formchip{flex:0 0 auto}
 .mkrow{grid-template-columns:1fr auto;font-size:16px;padding:4px 0;line-height:1.25}
 .mkf{grid-column:2;text-align:right}
 .mknames{grid-column:1 / -1}
 /* 手机上省掉「也在」这两个字，只留市场码，避免行高被推到 100px+ */
 .mkx [data-i18n]{display:none}
 /* 手机只显示第一个名字（任务允许 ≤2），第二个及以后进 +N，保证行高 ≤88px */
}
.matrix-brand-note{margin:6px 0 0;font-size:14px}
/* v0.10.2 task-10：CN 无商品名 → 名称位显示「厂家：<MAH>」（弱化，不是品牌名） */
.m-mah{color:var(--fg);font-weight:600}
.m-mah .mah-k{color:var(--muted);font-weight:400;font-size:13px}
.m-mah .m-n{color:var(--muted);font-weight:400;font-size:13px}
/* v0.10.2 R1：剂型列里的「来源原文」小字（不翻译原文，只翻译这个标签） */
.m-orig{color:var(--muted);font-size:13px}
.m-orig-raw{color:var(--muted);font-size:13px}
/* v0.10.2 task-4：可见列全空的行（只在被隐藏市场有记录）默认不渲染，说明 + 一键加列在表下 */
.matrix-hidden-rows{margin:8px 0 0}
.matrix-hidden-rows .sub{margin:0 0 6px}
table.matrix tr[data-hide-empty="1"]{display:none}
.matrix-hk-note{margin:4px 0 0;font-size:14px;color:var(--warn)}
/* v0.11.0 P1：EU 区域层的口径说明（集中审批 ≠ 某国在售、无规格/剂型/包装）。
   与 .matrix-hk-note 同一档字号（14px，≥ 辅助 13px 底线），不新起一套字号。 */
.matrix-region-note,.mkregion{margin:4px 0 0;font-size:14px;line-height:1.55;
  color:var(--muted);max-width:var(--prose)}
.matrix-region-note{color:var(--warn)}
.mkregion{margin:0 0 10px}
.mkregion b{color:var(--fg);font-weight:600}
/* v0.8.3 task-119：矩阵筛选器 */
.matrix-filters{margin:10px 0 6px;border:1px solid var(--line);border-radius:12px;
  background:var(--surface-2);padding:10px 12px}
.mf-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mf-title{font-weight:600;font-size:14px}
.mf-count{color:var(--muted);font-size:14px}
.mf-toggle{margin-left:auto}
.mf-panel{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:8px 14px;margin-top:10px}
.mf-field{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--muted)}
.mf-field select,.mf-field input[type=search]{padding:6px 8px;border:1px solid var(--line);
  border-radius:8px;font-size:14px;background:#fff;color:var(--fg)}
.mf-countries{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:14px;color:var(--fg)}
.mf-countries label{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.m-reset{border:1px solid var(--line);background:#fff;color:var(--fg);border-radius:8px;
  padding:6px 12px;font-size:14px;cursor:pointer}
.mf-country-actions{display:flex;gap:6px;margin-top:4px}
.mf-country-actions .mf-reset{padding:2px 8px;font-size:14px}
.mf-count.mf-warn{color:var(--warn);font-weight:600}
/* v0.10.2 M-3：「横滑看更多市场」只对桌面（表格态）成立，手机是卡片态、没有横滑，不再显示 */
.matrix-scroll-hint{display:none;margin:2px 0 0;font-size:14px}
@media (min-width:768px){ .matrix-scroll-hint{display:block} }
/* v0.9.0 task-6：横滑 + 规格列 sticky + 移动端卡片 */
.matwrap{position:relative}
table.matrix thead th:first-child,
table.matrix td.m-spec{position:sticky;left:0;z-index:2}
table.matrix th[data-country]:not([data-defcol]),
table.matrix td[data-country]:not([data-defcol]){display:none}
.matrix-sort-note{margin:4px 0 0;font-size:14px}
@media (max-width:767px){
  .matrix-filters .mf-panel{display:none}
  .matrix-filters.mf-open .mf-panel{display:grid}
  .mf-toggle{display:inline-flex;min-height:40px;align-items:center}
  .mf-field select,.mf-field input[type=search]{min-height:40px}
  /* v0.10.2 M-3：筛选器复选框 36px → 44px 触控目标（WCAG 2.2 AA 推荐 44×44） */
  .mf-countries label{min-height:44px}
}
@media (min-width:768px){
  /* v0.9.1 P0-4：桌面筛选面板本来常显，隐藏无效的「筛选」按钮 */
  .mf-toggle{display:none}
}
@media (max-width:767px){
  /* 移动端：每规格一张卡，市场列纵向排列，不横向滚动 */
  .matwrap{overflow-x:visible;margin:8px 0}
  table.matrix{display:block;min-width:0;width:100%;border-collapse:separate;border-spacing:0}
  table.matrix thead{display:none}
  table.matrix tbody{display:block}
  table.matrix tr{display:block;background:#fff;border:1px solid var(--line);
    border-radius:12px;margin:8px 0;padding:6px 8px}
  table.matrix td{display:block;border:0;padding:3px 2px;white-space:normal;font-size:14px}
  table.matrix td.m-spec{position:static;background:transparent;border-bottom:1px solid var(--line);
    margin-bottom:4px;padding-bottom:6px}
  table.matrix td[data-country]:before{content:attr(data-country) " · ";color:var(--muted);
    font-weight:600;font-size:14px}
}
@media (max-width:767px){
  .u1steps{grid-template-columns:1fr}
  .u1close{min-width:44px;min-height:44px}
  .u2chip{max-width:70vw}
}
@media (max-width:767px){
  .wrap{padding:0 14px}
  header .wrap{height:auto;flex-wrap:wrap;padding:10px 14px;gap:8px 12px}
  .logo{font-size:16px}
  .logo-zh{display:none}
  nav{flex-wrap:wrap;gap:8px 12px;font-size:14px}
  .langs{margin-left:auto}
  #q{font-size:16px;padding:12px 14px}
  .row{gap:8px}
  .sel-label{display:block;width:100%;margin:2px 0 0}
  .parsebar{gap:4px 12px;font-size:14px}
  .card{padding:12px}
  footer .wrap{display:block}
  .foot-links{margin:8px 0 0;display:flex;flex-wrap:wrap;white-space:normal;gap:8px 14px}
  /* 结果表 → 卡片（ARTG / 同成分表一并生效，靠 data-label 带出列名） */
  table.res{display:block;border:0;border-radius:0;background:transparent;margin-top:8px}
  table.res thead{display:none}
  table.res tbody{display:block}
  table.res tr{display:block;background:#fff;border:1px solid var(--line);
    border-radius:12px;margin:8px 0;padding:8px 12px}
  table.res td{display:block;border:0;padding:8px 0;width:auto}
  table.res td.c-dose{white-space:normal}
  table.res td.c-empty{display:none}
  table.res td[data-label]:before{content:attr(data-label) " · ";color:var(--muted);font-size:14px}
  table.res tr.grp{background:#f7f8f5;border-color:#e7e5dc;padding:8px 12px}
  table.res tr.grp td{display:block;width:auto}
  table.res tr.grp .grp-tags{text-align:left;margin-top:2px}
  table.res tr.fold-row{background:transparent;border:0;padding:0;margin:0}
  table.res tr.fold-row td{padding:0 0 4px}
  table.res tr.detrow{background:#f6f5f0;border-color:#e7e5dc;padding:4px 8px}
  table.res tr.detrow>td.detcell{display:block;padding:0}
  table.det{display:block;overflow-x:auto;white-space:nowrap}
  .restools{margin-top:8px}
  table.res tbody tr:hover{background:#fff}
  .loadmore button{width:100%}
}
/* i18n P1：静态页（About / What's new / Confused）移动端收尾 */
@media (max-width:767px){
  .tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  main table:not(.res){font-size:14px}
  .release table{display:block;overflow-x:auto}
  .release ul,.release li,p,li{overflow-wrap:anywhere}
}
/* /warn 页：数据行按语言只显示一块（无 JS 时默认英文） */
.lang-block{display:none}
.lang-block[data-lang-block="en"]{display:block}
/* v0.5.3：品牌无页 → 不可点文本（不是链接，禁止回退 drug 页） */
.brand-plain{font-weight:600;color:var(--fg)}
/* v0.6.0：组合页跨市场同组合区块 */
.xlist{margin:6px 0 0;padding-left:18px;font-size:14px}
.xlist li{margin:3px 0}
.xlist .x-mkt{font-weight:600;color:var(--fg)}
/* v0.6.4 B10：术语表 */
dl.glossary{margin:10px 0;border-top:1px solid var(--line)}
dl.glossary dt{font-weight:650;margin:10px 0 2px}
dl.glossary dd{margin:0 0 4px;color:var(--muted)}
.atcbar code{font-size:14px}
/* v0.5.4：厂家列（可点厂家 + 「+N」展开列表） */
.maker-link{color:var(--accent)}
.maker-plain{color:var(--fg)}
.mah-toggle{font-size:14px;margin-left:4px;padding:0;text-decoration:underline}
.mah-list{margin:6px 0 0;padding-left:18px;font-size:14px}
.mah-list[hidden]{display:none}
.mah-list li{margin:2px 0}
.maker-page table.res{margin-top:6px}
.grp-name{font-weight:600}
a.grp-name{color:var(--accent)}
.warn-item{border:1px solid var(--line);border-radius:12px;background:#fff;
  padding:12px 14px;margin:10px 0}
.warn-item h3{margin:0 0 6px;font-size:16px;line-height:1.45}
.warn-item .warn-body{margin:0 0 8px}
.warn-item .warn-meta{color:var(--muted);font-size:14px;margin:0;overflow-wrap:anywhere}
.warn-item .badge{vertical-align:2px}
/* v0.6.7：/warn 分页（10 条/页；移动端 ≥40px 可点） */
.warnpager{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:16px 0 4px;font-size:14px}
.warnpager .pg-status{color:var(--muted);font-size:14px;margin-right:6px}
.warnpager a,.warnpager span{min-width:36px;min-height:36px;display:inline-flex;
  align-items:center;justify-content:center;padding:4px 9px;border:1px solid var(--line);
  border-radius:8px;color:var(--fg);background:#fff}
.warnpager a:hover{border-color:var(--accent)}
.warnpager .pg-num.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.warnpager .disabled{color:var(--muted);opacity:.5;cursor:not-allowed}
.drugwarn ul{margin:6px 0 4px;padding-left:20px}
@media (max-width:767px){
  .warn-item .warn-meta{font-size:14px}
  .warnpager{gap:6px}
  .warnpager a,.warnpager span{min-width:40px;min-height:40px;font-size:16px}
}

/* ── v0.9.8 task-13（UI 批次 A-2）：统一外壳 / 44px 触控 / 名字页 / 成分页 ── */
.sn{display:flex;align-items:center;gap:2px;font-size:14px;white-space:nowrap;margin-left:8px}
.sn>a,.sn>details>summary{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;
 border-radius:8px;color:var(--fg);cursor:pointer;list-style:none;white-space:nowrap}
.sn>a:hover,.sn>details>summary:hover{background:#f1f8f4;text-decoration:none}
.sn>a.on{color:var(--accent);font-weight:600}
.sn>details>summary::-webkit-details-marker{display:none}
.sn>details[open]>summary{background:#f1f8f4;color:var(--accent)}
.sn>details>summary:after{content:"▾";margin-left:6px;color:var(--muted);font-size:14px}
.sn-dd{position:relative}
.sn-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:60;background:#fff;
 border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(31,35,40,.12);
 padding:12px;min-width:300px}
.sn-cats,.sn-mkts{display:grid;grid-template-columns:repeat(2,minmax(170px,1fr));gap:2px 10px}
.sn-about{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px}
.sn-cats a,.sn-mkts a,.sn-about a{display:flex;align-items:center;gap:8px;min-height:40px;
 padding:4px 8px;border-radius:8px;color:var(--fg);font-size:14px}
.sn-cats a:hover,.sn-mkts a:hover,.sn-about a:hover{background:#f1f8f4;text-decoration:none}
.sn-mkts .meta{color:var(--muted);font-size:14px;margin-left:auto}
.sn-foot{border-top:1px solid var(--line);margin-top:8px;padding-top:8px;display:flex;
 justify-content:space-between;gap:12px;font-size:14px}
.tabbar{display:none}
@media (max-width:767px){
  header.hdr-shell .wrap{height:56px;flex-wrap:nowrap;gap:8px;padding:0 12px}
  header.hdr-shell .logo{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:14px}
  header.hdr-shell .logo-zh{display:none}
  header.hdr-shell nav{display:none}
  header.hdr-shell .nav-toggle{display:none}
  header.hdr-shell .langs{margin-left:auto;flex-shrink:0;gap:2px}
  header.hdr-shell .langs a{min-width:44px;min-height:44px;display:inline-flex;
   align-items:center;justify-content:center;padding:0 4px;font-size:14px}
  body{padding-bottom:56px}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;height:56px;background:#fff;
   border-top:1px solid var(--line);z-index:45;padding-bottom:env(safe-area-inset-bottom)}
  .tabbar a{flex:1;display:inline-flex;align-items:center;justify-content:center;
   min-height:44px;font-size:14px;color:var(--muted);position:relative}
  .tabbar a.on{color:var(--accent);font-weight:600}
  .tabbar a.on:before{content:"";position:absolute;top:0;left:26%;right:26%;height:3px;
   background:var(--accent);border-radius:0 0 3px 3px}
}
/* P0-7：六类触控目标 ≥44×44（min-height 扩张，视觉基本不变） */
nav a{min-height:44px;display:inline-flex;align-items:center}
.langs a{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.catchip{min-height:44px}
.atccard{min-height:44px}
.u1try button{min-height:44px}
.homeupd .updlist a{min-height:44px}
/* P0-8：名字页「不可互换」警示 + 成分卡折叠 */
.name-notice{color:var(--warn);margin:6px 0 2px}
.name-more{margin:10px 0}
.name-more>summary{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;
 border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;font-size:14px}
.name-more>summary::-webkit-details-marker{display:none}
.name-more>summary:after{content:"▾";margin-left:6px;color:var(--muted);font-size:14px}
.name-more[open]>summary:after{content:"▴"}
/* P0-9：成分页筛选器默认收起（details 由 JS 包） */
.mf-slot{min-height:44px}
.mf-details{margin:10px 0 6px;border:1px solid var(--line);border-radius:12px;background:#fff}
.mf-details>summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;
 cursor:pointer;font-size:14px;font-weight:600;list-style:none}
.mf-details>summary::-webkit-details-marker{display:none}
.mf-details>summary:after{content:"▾";margin-left:auto;color:var(--muted);font-size:14px}
.mf-details[open]>summary{border-bottom:1px solid var(--line)}
.mf-details .matrix-filters{margin:0;border:0;border-radius:0 0 12px 12px}
.mf-details .mf-toggle{display:none}
.mf-details .mf-panel{display:grid}
.drug-identity{margin:2px 0 10px}
.drug-identity b{color:var(--fg)}

/* A-2 fix：桌面壳单行（1280 下 5 项 nav 不再折行被 header 高度裁切） */
@media (min-width:1100px){
  header.hdr-shell .wrap{height:64px;flex-wrap:nowrap}
  header.hdr-shell .sn{flex-wrap:nowrap}
  header.hdr-shell .langs{margin-left:auto}
}
@media (min-width:768px) and (max-width:1024px){
  header.hdr-shell .wrap{height:auto;flex-wrap:wrap;
   padding-top:8px;padding-bottom:8px;gap:6px 12px}
  header.hdr-shell .sn{order:3;flex-basis:100%;flex-wrap:wrap;margin-left:0;gap:4px 8px}
  header.hdr-shell .langs{margin-left:auto}
}

/* A-2 fix2：头部双语开关单行（zh「显示原文对照」6 字，1280 下不折行） */
header.hdr-shell .bil-toggle{white-space:nowrap;margin:0 6px;flex:none}

/* ── v0.10.0 tokens 2.0 配套 ── */
.notice>div,.warn-item .warn-body,.idcard .notice div{max-width:var(--prose)}
table.res tbody tr:nth-child(even):not(.grp):not(.detrow):not(.fold-row){background:var(--surface-2)}
table.res tbody tr:hover{background:var(--surface-2)}
body.density-compact table.res td{padding:4px 8px;font-size:14px}
body.density-compact table.res th{padding:4px 8px;font-size:13px}
body.density-compact table.res{font-size:14px}
.warn-item h2{margin:0 0 6px;font-size:16px;line-height:1.4;font-weight:700}
.warn-item h3{margin:0 0 6px;font-size:16px;line-height:1.4;font-weight:700}
.warnfilters{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 4px}
.warnfilters button{min-height:44px;padding:0 14px;border-radius:var(--r-pill);border:1px solid var(--line);background:#fff;color:var(--fg);font-size:14px}
.warnfilters button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.atc-notes{margin:14px 0}
.atc-notes>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:14px;color:var(--accent)}
.atc-notes .notice{margin:8px 0}
.covtools{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.covtools button{min-height:44px;padding:0 14px;border-radius:var(--r-pill);border:1px solid var(--line);background:#fff;color:var(--fg);font-size:14px}
@media (max-width:767px){
  .coverage-table .covgap{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .tabbar{padding-bottom:env(safe-area-inset-bottom)}
  main{padding-bottom:80px}
}
@media (max-width:767px){.catgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.u1guide{padding:12px}.card{padding:12px}}

/* v0.10.0: neutral background bands + right-top category/language controls */
main .section,main .catquick{background:var(--band);border:1px solid var(--line);border-radius:12px;padding:16px}
/* v0.10.2 同色守卫：catquick 是「面板」层（--card），chip 才是里面的井（--surface-2）；
   两层都用 --band 会白压白，只剩 1px 边框分界。 */
main .catquick{background:var(--card)}
.u1guide{background:#fff}
.sn-right{display:flex;align-items:center;gap:2px;margin-left:auto}
.sn-right details{position:relative}
.sn-right summary{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 10px;border-radius:8px;cursor:pointer;list-style:none;font-size:14px;color:var(--fg)}
.sn-right summary::-webkit-details-marker{display:none}
.sn-right details[open]>summary{background:var(--accent-weak);color:var(--accent)}
.sn-panel-right{right:0;left:auto;min-width:210px}
.lang-menu a{display:flex;min-height:44px;align-items:center;padding:0 10px;border-radius:8px;color:var(--fg)}
.lang-menu a.on{background:var(--accent-weak);color:var(--accent);font-weight:600}
.sn-cats.compact{grid-template-columns:repeat(2,minmax(150px,1fr))}
.mmenu{display:none}
@media (max-width:767px){.sn-right .qcat,.sn-right .langdd{display:none}.mmenu{display:inline-flex}}
