/* ==========================================================================
   标准查询工具站 · 统一设计系统（2026-11-12 重构，旧模板全部作废）
   规矩：全站一套模板一套配色（白底 + 深绿 #176b52），标准之间只差数据库；
   不再按标准换肤（engine.js 的 applyTheme 已停用，manifest.theme 不再生效）。
   ========================================================================== */
:root{
  --bd:#dfe7e3; --bg:#ffffff; --fg:#202b27; --ac:#176b52; --ac2:#edf5f1; --mut:#56655f; --gold:#8a5a00;
  --soft:#edf5f1; --panel:#f7f9f8; --ring:#176b5255; --btnh:#0f5138;
  --chipfg:#3f4b46; --chipbg:#f7faf8; --chipbd:#dfe7e3; --chipdot:#c3d5cc;
  --chiphov:#eef5f1; --chiphovbd:#9fc3b4; --chipglow:#176b5233; --doton:#9be8c4;
  --note:#3d463f; --dt:#202b27; --tn:#9aa8a0; --codebd:#cfe0d7; --codec:#0f5138;
  --hx:#a9b4ad; --hxx:#b0341b; --hxbg:#f7eae7; --statb:#176b52;
  --mark:#b0341b; --neg:#9a6420; --negdot:#ffd79a;
  --pgdis:#9aa8a0; --pgdisbd:#e3eae6; --pgdisbg:#f7faf8;
  --shadow:0 1px 2px rgba(24,54,43,.05); --shadow-lg:0 8px 24px rgba(24,54,43,.10);
  --radius:8px;
}
*{box-sizing:border-box}
/* 下面这一段是托管块，由 cha/待处理文件/gbt14721/make_rare_font.py 整段重写，不要手改。 */
/* FONT-SUBSET:BEGIN */
/* 生僻字兜底字体：**这一段由 cha/待处理文件/gbt14721/make_rare_font.py 生成，别手改**。
   为什么必须挂：正文首选微软雅黑不含 CJK 扩展区，访客设备（尤其 macOS/iOS/部分安卓）
   会**静默画豆腐块**——不报错、复制出来还是对的字，只有眼睛能发现。
   嵌入闸门：fsType==0（Installable）+ name 记录确有 SIL OFL/Apache 文本；
   BabelStone Han（ARPHIC）、SimSun-ExtB/ExtG（中易）、思源黑体第三方打包（fsType=8）
   都不许嵌进站点，只能在下面 body 字体栈里当**本机字体名**用（指名不分发，合法）。
   重跑：python make_rare_font.py（扫全站库收字 → 验授权 → 子集化 → 回读 → 重写这一段） */
/* 来源：SourceHanSansSC-Regular（黑体/sans，SourceHanSansSC-Regular.otf；授权依据 name 表内 OFL/Apache 文本） */
@font-face{font-family:"CHARARE";src:url("fonts/cjk-rare.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+25BE8,U+29F7E,U+29F83,U+29F8C,U+2B689,U+2B6ED,U+2CD8B,U+2CD8F,U+2CD90,U+2CDAD,U+2CDAE}
/* 来源：HanaMinB（明朝体/serif，HanaMinB.ttf；授权依据 LICENSE-fonts-hanazono-copyright.txt（Debian main，许可标 Hanazono-Font-License or Open-Font-License）） */
@font-face{font-family:"CHARARE";src:url("fonts/cjk-rare-hanaminb.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+2AC9B,U+2B692,U+2B6A2,U+2B6AA,U+2B6DA,U+2EB1B,U+2EB1C,U+2EB1D,U+2EB1E,U+2EB1F,U+2EB21,U+2EB22,U+2EB23,U+2EB24}
/* 缺口 4 字在字体池里没有任何可嵌入来源：𱇮 𱇶 𱇾 𱉐
   影响 gbt15628 141 字段；退路是访客本机字体（SimSun-ExtB / SimSun-ExtG / BabelStone Han），
   非 Windows 访客仍会画豆腐块。上线前要么往 cha/待处理文件/<标准>/raw 放一个 OFL 全字区来源
   重跑本脚本，要么这些行走位图兜底。 */
/* FONT-SUBSET:END */
/* 字体栈里 SimSun-ExtB / SimSun-ExtG / BabelStone Han 是给 CJK 扩展区生僻字本机兜底的（指名不分发）。 */
body{margin:0;min-height:100vh;display:flex;flex-direction:column;
     font:14px/1.75 "CHARARE","Microsoft YaHei","PingFang SC",Arial,"SimSun-ExtB","SimSun-ExtG",
     "BabelStone Han","Source Han Sans SC","Noto Serif CJK SC",sans-serif;
     color:var(--fg);background:var(--bg);letter-spacing:.005em}
a{color:var(--ac);text-decoration:none}
a:hover{color:var(--btnh)}
:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.mut{color:var(--mut)}
code{font-family:Consolas,"Courier New",monospace;background:var(--ac2);border:1px solid var(--codebd);
     border-radius:4px;padding:0 5px;color:var(--codec);font-size:12px}

/* ============================== 固定框架（所有页面共用） ============================== */
body{padding-left:232px;padding-top:44px}
/* 侧栏沿用定稿预览的配色（theme=v2 · header=sidebar）：深绿底 + 白字，当前项浅绿胶囊 */
.fx-sb{position:fixed;left:0;top:0;bottom:0;width:232px;z-index:40;display:flex;flex-direction:column;
  padding:22px 14px;overflow-y:auto;background:var(--ac)}
.fx-brand{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:0 6px}
.fx-logo{position:relative;width:30px;height:30px;flex:0 0 30px;border-radius:8px;background:rgba(255,255,255,.16)}
.fx-logo::after{content:"";position:absolute;inset:5px;background:#fff;
  -webkit-mask:url(/assets/logo-mono.svg) center/contain no-repeat;mask:url(/assets/logo-mono.svg) center/contain no-repeat}
.fx-brand b{display:block;font-size:15.5px;line-height:1.3;color:#fff}
.fx-brand small{display:block;font-size:11px;color:rgba(255,255,255,.65);font-weight:400;letter-spacing:.5px}
.fx-nav{display:flex;flex-direction:column;gap:2px;flex:1}
.fx-nav a{padding:9px 12px;border-radius:5px;color:rgba(255,255,255,.92);font-size:15px;letter-spacing:.02em;transition:background .16s,color .16s}
.fx-nav a.d{padding:7px 12px;font-size:13.5px;font-weight:400;letter-spacing:0;color:rgba(255,255,255,.88)}
.fx-nav a:hover,.fx-nav a.on{background:var(--soft);color:var(--ac)}
.fx-cap{font-size:11px;color:rgba(255,255,255,.55);margin:14px 6px 4px;letter-spacing:1.5px}
.fx-sbfoot{font-size:11.5px;color:rgba(255,255,255,.65);margin-top:16px;line-height:1.7;padding:0 6px}
.fx-top{position:fixed;top:0;left:232px;right:0;height:44px;z-index:39;background:#fff;border-bottom:1px solid var(--bd);
  font-size:13px;color:var(--mut)}
.fx-topin{position:relative;max-width:1280px;height:44px;margin:0 auto;padding:0 24px;
  display:flex;align-items:center;justify-content:space-between}
.fx-top .fx-crumb a{color:var(--mut)}
.fx-top .fx-crumb a:hover{color:var(--ac)}
.fx-top .fx-crumb .sep{margin:0 8px;color:var(--bd)}
.fx-top .fx-crumb b{color:var(--fg)}
.fx-top .fx-mid{flex:1;min-width:0;margin:0 12px;text-align:center;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;font-size:12.5px;color:var(--mut)}
.fx-top .fx-mid b{color:var(--fg);font-weight:600}
.fx-top .fx-right{flex:none;margin-left:16px;position:relative;z-index:1}
.fx-top .fx-right a{color:var(--ac);text-decoration:underline;white-space:nowrap}
.fx-top .fx-right a:hover{color:var(--btnh)}
.fx-foot{margin:auto 0 0;border-top:1px solid var(--bd);background:#fff;font-size:13px}
.fx-footin{max-width:1100px;margin:0 auto;padding:14px 18px 16px;display:flex;gap:24px;align-items:flex-start;justify-content:space-between}
.fx-disc{color:var(--mut);font-size:12px;line-height:1.8}
.fx-disc p{margin:0}

/* ============================== 标准页主体 ============================== */
.pg{max-width:1280px;width:100%;margin:0 auto;padding:22px 24px 30px;display:flex;flex-direction:column;height:calc(100vh - 44px)}

#searchwrap{position:relative;margin-bottom:16px}
/* 浅绿底带铺满右侧整个宽度，输入控件组在带内居中、略收窄 */
#bar{display:flex;gap:8px;align-items:center;justify-content:center;background:var(--ac2);border:1px solid var(--chiphovbd);border-radius:var(--radius);
     box-shadow:0 2px 10px rgba(24,54,43,.12);padding:12px;flex-wrap:wrap}
#bar select{font:inherit;padding:8px 6px;border:1px solid var(--bd);border-radius:5px;background:#fff;color:var(--fg)}
#bar input{font:inherit;flex:0 1 560px;min-width:170px;padding:8px 10px;border:1px solid var(--bd);border-radius:5px;color:var(--fg)}
#bar input:focus{outline:2px solid var(--ring);border-color:var(--ac)}
#bar button{font:inherit;background:var(--ac);color:#fff;border:none;border-radius:5px;cursor:pointer;padding:8px 22px;font-weight:600}
#bar button:hover{background:var(--btnh)}

.hist{position:absolute;left:50%;transform:translateX(-50%);width:min(784px,100%);top:calc(100% + 2px);background:#fff;border:1px solid var(--bd);
  border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:6px;display:none;z-index:30;max-height:330px;overflow:auto;text-align:left}
.hist .hh{display:flex;align-items:center;font-size:11.5px;color:var(--mut);padding:2px 8px 6px;margin-bottom:3px;border-bottom:1px dashed var(--bd)}
.hist .hh b{color:var(--fg);font-weight:600;letter-spacing:1px;margin-right:auto}
.hist .hh button{font:inherit;font-size:11.5px;color:var(--ac);background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:4px}
.hist .hh button:hover{background:var(--ac2)}
.hist .hi{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:5px;cursor:pointer;font-size:13px}
.hist .hi:hover,.hist .hi.on{background:var(--ac2)}
.hist .hi .hq{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hist .hi .hm{flex:none;font-size:11px;color:var(--mut);background:var(--chipbg);border:1px solid var(--bd);border-radius:4px;padding:0 5px}
.hist .hi .hx{flex:none;color:var(--hx);font-size:16px;line-height:1;padding:0 4px;border-radius:4px}
.hist .hi .hx:hover{color:var(--hxx);background:var(--hxbg)}

#wrap{display:flex;flex:1;min-height:0;gap:14px;margin-bottom:70px}
#tree{width:320px;min-width:240px;border:1px solid var(--bd);border-radius:var(--radius);background:#fff;overflow:auto;padding:8px}
#treehead{font-size:12px;color:var(--mut);padding:2px 6px 8px;border-bottom:1px dashed var(--bd);margin-bottom:6px}
#main{flex:1;overflow:auto;border:1px solid var(--bd);border-radius:var(--radius);background:#fff;padding:14px 16px}
.tnode{cursor:pointer;padding:2px 4px;border-radius:4px;white-space:nowrap}
.tnode:hover{background:var(--ac2)}
.tnode .tw{display:inline-block;width:14px;color:var(--mut)}
.tnode .tc{color:var(--mut);font-size:12px;margin-left:6px;font-family:Consolas,monospace}
.tnode .tl{color:var(--mut);font-size:12px;font-style:italic}
.tnode .tn{color:var(--tn);font-size:11.5px}
.tnode.sel{background:var(--ac2);color:var(--ac);font-weight:600}

#note{background:var(--panel);border:1px solid var(--bd);border-radius:var(--radius);margin-top:4px;padding:12px 16px 14px;font-size:13px;color:var(--note)}
#note h4{margin:0 0 4px;font-size:15px;color:var(--ac)}
#note h5{margin:12px 0 4px;font-size:13px;color:var(--ac);border-left:3px solid var(--ac);padding-left:7px;letter-spacing:.5px}
#note p{margin:3px 0;line-height:1.75}
#note p.codebox{background:#fff;border:1px dashed var(--codebd);border-radius:5px;padding:7px 10px;margin:6px 0}
#note a{color:var(--ac)}
#note b{color:var(--ac)}
#note dl.terms{margin:4px 0 2px}
#note .term{margin:6px 0}
#note dt{font-weight:600;color:var(--dt)}
#note dt i{font-weight:400;color:var(--mut);margin-left:6px}
#note dd{margin:2px 0 0 20px;line-height:1.7}
#note .nz{display:block;color:var(--mut);font-size:12px}
#note p.src{margin-top:12px;padding-top:9px;border-top:1px dashed var(--bd)}

#pager{margin:4px 2px 10px;color:var(--mut);font-size:12px}
.lv{white-space:nowrap}
.pgbtn{font:inherit;font-size:12px;color:var(--ac);background:#fff;border:1px solid var(--chiphovbd);border-radius:5px;
       padding:1px 9px;cursor:pointer;margin-left:6px}
.pgbtn:hover{background:var(--ac2)}
.pgbtn:disabled{color:var(--pgdis);border-color:var(--pgdisbd);cursor:default;background:var(--pgdisbg)}

table{border-collapse:collapse;width:100%;background:#fff;font-size:13px}
th,td{border:1px solid var(--bd);padding:5px 8px;text-align:left;vertical-align:top}
th{background:var(--thbg, var(--panel));position:sticky;top:0}
tr.hit{cursor:pointer}
tr.hit:hover td{background:var(--ac2)}
.cd{font-family:Consolas,"Courier New",monospace;white-space:nowrap}
.lat{font-style:italic}
.mark{color:var(--mark);font-weight:700}
.lv1{font-weight:700}

#detail{background:var(--panel);border:1px solid var(--bd);border-radius:var(--radius);margin-top:4px;padding:12px 14px;display:none}
.backbtn{font:inherit;font-size:13px;color:var(--ac);background:#fff;border:1px solid var(--chiphovbd);border-radius:5px;
         padding:4px 14px;cursor:pointer;margin-bottom:8px}
.backbtn:hover{background:var(--ac2)}
#detail h3{margin:0 0 6px;font-size:16px}
#detail .chain{margin:6px 0;color:var(--mut);font-size:13px}
#detail .chain a{color:var(--ac);cursor:pointer;text-decoration:underline}
#detail .subh{margin:14px 0 0;padding-top:10px;border-top:1px dashed var(--bd);font-size:13px;font-weight:600;color:var(--ac)}
.kv{display:grid;grid-template-columns:104px 1fr;gap:2px 10px;font-size:13px;margin-top:6px}
.kv .k{color:var(--mut)}
.tw2{overflow-x:auto;max-width:100%}
.tw2 table{min-width:760px}
.desc{white-space:pre-wrap;line-height:1.8}
.warn{color:var(--mark);background:var(--hxbg);border:1px solid #f0d9bd;border-radius:5px;padding:1px 7px;font-size:12px}

/* ============================== 门户页（分类导航，无全站搜索） ============================== */
#portal{max-width:1280px;width:100%;margin:0 auto;padding:22px 24px 30px}
#portal .phero{border-bottom:2px solid var(--fg);padding-bottom:20px}
#portal .phero h1{margin:0;font-size:28px;letter-spacing:1px}
#portal .phero p{margin:10px 0 0;color:var(--mut);font-size:14px;max-width:46em;line-height:1.8}
#portal .phero b{color:var(--ac)}
.pcat{margin-top:28px}
.pcat-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--bd);padding-bottom:10px;margin-bottom:14px}
.pcat-head h2{margin:0;font-size:19px;display:flex;align-items:baseline;gap:12px}
.pcat-head h2 small{font-size:13px;color:var(--mut);font-weight:400}
.pcat-head>span{font-size:12px;color:var(--mut)}
.pcat .cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pcat .card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--bd);border-radius:var(--radius);
            padding:14px 16px 12px;color:inherit;box-shadow:var(--shadow);transition:border-color .16s,box-shadow .16s}
.pcat .card:hover{border-color:var(--chiphovbd);box-shadow:var(--shadow-lg)}
.pcat .card .nm{font-size:15px;font-weight:700;color:var(--fg)}
.pcat .card:hover .nm{color:var(--ac)}
.pcat .card .no{font-family:Consolas,monospace;color:var(--mut);font-size:12px;margin-top:2px}
.pcat .card .ct{color:var(--mut);font-size:12px;margin-top:6px;flex:1;line-height:1.7}
.pcat .card .cc{margin-top:10px;padding-top:9px;border-top:1px dashed var(--bd);font-size:13px;color:var(--ac);font-weight:600}

/* ============================== 窄屏 ============================== */
@media (max-width:1000px){
  .pcat .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  body{padding-left:0;padding-top:0}
  .fx-sb{position:static;width:auto;flex-direction:row;flex-wrap:wrap;align-items:center}
  .fx-nav{flex-direction:row;flex-wrap:wrap}
  .fx-cap{width:100%;margin:8px 6px 2px}
  .fx-sbfoot{display:none}
  .fx-top{display:none}
  .pg{height:auto;min-height:0}
  #wrap{flex:none;flex-direction:column;height:auto}
  #main{min-height:300px}
  #tree{width:100%;max-height:300px}
}
@media (max-width:600px){
  .pcat .cards{grid-template-columns:1fr}
  .phead h1{font-size:20px}
}
