:root{--m:#9C2B2B;--m2:#7A1F1F;--g:#B0895E;--ink:#1C1A17;--sub:#6B6357;--line:#E7DFD2;--bg:#FAF7F2;--card:#fff;--green:#5F7A3A;--blue:#3F6188}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font:15px/1.72 -apple-system,"Segoe UI","Microsoft YaHei",sans-serif;-webkit-text-size-adjust:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:1220px;margin:0 auto;padding:0 22px}

/* 顶部导航 */
.nav{position:sticky;top:0;z-index:50;background:rgba(250,247,242,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav-in{max-width:1220px;margin:0 auto;padding:0 22px;height:62px;display:flex;align-items:center;gap:26px}
.brand{display:flex;align-items:baseline;gap:9px;flex:0 0 auto}
.brand b{font-size:20px;color:var(--m2);letter-spacing:2px}
.brand span{font-size:11px;color:var(--g);letter-spacing:2.2px;font-weight:600}
.nav-links{display:flex;gap:2px;flex:1;overflow-x:auto;scrollbar-width:none}
.nav-links::-webkit-scrollbar{display:none}
.nav-links a{padding:7px 11px;border-radius:7px;font-size:13.4px;color:var(--sub);white-space:nowrap}
.nav-links a:hover{background:#F7EDE8;color:var(--m2)}
.nav-links a.on{background:#FBF0EC;color:var(--m2);font-weight:700}
.nav-search{flex:0 0 auto}
.nav-search input{width:190px;padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px;outline:none}
.nav-search input:focus{border-color:var(--g)}

/* 首页 hero */
.hero{padding:54px 0 10px;text-align:center}
.hero .tag{display:inline-block;font-size:11.5px;letter-spacing:1.4px;color:#fff;background:var(--m);padding:3px 11px;border-radius:4px;margin-bottom:16px}
.hero h1{font-size:38px;margin:0 0 12px;letter-spacing:3px;color:var(--m2)}
.hero p{font-size:15px;color:var(--sub);margin:0 auto 24px;max-width:660px;line-height:1.85}
.hero form{display:flex;gap:9px;max-width:560px;margin:0 auto 10px}
.hero input{flex:1;padding:13px 17px;border:1px solid var(--line);border-radius:11px;font-size:14.5px;background:#fff;outline:none}
.hero input:focus{border-color:var(--g);box-shadow:0 0 0 3px rgba(176,137,94,.12)}
.hero button{padding:13px 26px;border:0;border-radius:11px;background:linear-gradient(135deg,#9C2B2B,#7A1F1F);color:#fff;font-size:14.5px;font-weight:600;cursor:pointer}
.hero .hot{font-size:12.6px;color:var(--sub)}
.hero .hot a{color:var(--m2);border-bottom:1px dashed #D8C6B4;margin:0 5px}

/* KPI */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:12px;margin:34px 0}
.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px 15px}
.kpi b{display:block;font-size:26px;line-height:1.1;color:var(--m2);font-variant-numeric:tabular-nums}
.kpi span{display:block;font-size:11.8px;color:var(--sub);margin-top:5px;line-height:1.5}
.kpi i{display:block;font-size:10.8px;color:#9B9285;margin-top:3px;font-style:normal}

/* 库卡片 */
h2.sec{font-size:18px;margin:38px 0 14px;padding-left:12px;border-left:4px solid var(--m)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:13px}
.lib{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px 18px;transition:.16s;display:block}
.lib:hover{border-color:#D9C7B4;box-shadow:0 6px 20px rgba(122,31,31,.07);transform:translateY(-1px)}
.lib-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}
.lib-h b{font-size:16px;color:var(--m2)}
.lib-h em{font-style:normal;font-size:19px;font-weight:700;color:var(--g);font-variant-numeric:tabular-nums}
.lib p{margin:0;font-size:12.6px;color:var(--sub);line-height:1.65}
.lib .st{display:inline-block;font-size:10.8px;padding:1px 7px;border-radius:4px;margin-top:9px;border:1px solid}
.st-a{background:#EAF1E2;color:#41601F;border-color:#C9D8B4}
.st-b{background:#FBF1DC;color:#8A5B14;border-color:#EBD7AE}
.st-c{background:#F1EFEA;color:#7A736A;border-color:#DFD9CF}

/* 列表页 */
.page-hd{padding:26px 0 14px;border-bottom:1px solid var(--line);margin-bottom:16px}
.page-hd h1{font-size:23px;margin:0 0 6px;color:var(--m2)}
.page-hd p{margin:0;font-size:13px;color:var(--sub)}
.tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0}
.tools input[type=text]{flex:1;min-width:220px;padding:9px 13px;border:1px solid var(--line);border-radius:9px;font-size:13.6px;outline:none;background:#fff}
.tools input[type=text]:focus{border-color:var(--g)}
.tools select{padding:9px 11px;border:1px solid var(--line);border-radius:9px;font-size:13.2px;background:#fff}
.tools .n{font-size:12.6px;color:var(--sub)}
table{width:100%;border-collapse:collapse;background:#fff;font-size:13.2px;border:1px solid var(--line);border-radius:11px;overflow:hidden}
th,td{padding:9px 11px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{background:#F6EFE9;color:var(--m2);font-weight:600;font-size:12.4px;white-space:nowrap}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:#FDFAF6}
td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.td-t{color:var(--m2);font-weight:600}
.pill{display:inline-block;font-size:11px;padding:1px 7px;border-radius:4px;background:#F6EFE9;color:#7A5A38;border:1px solid #EBDCC9;margin-right:4px}
.pager{display:flex;gap:8px;align-items:center;justify-content:center;margin:22px 0}
.pager button{padding:7px 14px;border:1px solid var(--line);background:#fff;border-radius:8px;font-size:13px;cursor:pointer;color:var(--sub)}
.pager button:disabled{opacity:.45;cursor:default}
.pager span{font-size:12.8px;color:var(--sub)}

/* 详情 */
.dt{background:#fff;border:1px solid var(--line);border-radius:13px;padding:22px 24px;margin-bottom:16px}
.dt h1{font-size:22px;margin:0 0 4px;color:var(--m2);line-height:1.4}
.dt .meta{font-size:12.6px;color:var(--sub);margin-bottom:14px}
.dl{display:grid;grid-template-columns:112px 1fr;gap:7px 14px;font-size:13.4px}
.dl dt{color:var(--sub);font-size:12.8px}
.dl dd{margin:0;color:var(--ink)}
.bar{display:flex;align-items:center;gap:9px;margin:4px 0}
.bar .nm{flex:0 0 122px;font-size:12.7px;text-align:right;color:var(--ink)}
.bar .tr{flex:1;height:14px;background:#F3EBDF;border-radius:7px;overflow:hidden;min-width:40px}
.bar .tr i{display:block;height:100%;background:linear-gradient(90deg,#9C2B2B,#C4644F);border-radius:7px}
.bar .vl{flex:0 0 92px;font-size:12px;color:var(--sub);font-variant-numeric:tabular-nums}
.txt{white-space:pre-wrap;font-size:13.6px;line-height:1.9;background:#FBF9F5;border:1px solid var(--line);border-radius:9px;padding:13px 15px}
.note{background:#FBF3E8;border:1px solid #EFE4D4;border-left:4px solid var(--g);border-radius:9px;padding:12px 15px;margin:14px 0;font-size:13px;color:#5A4A32;line-height:1.75}
footer{margin-top:56px;border-top:1px solid var(--line);padding:24px 0 40px;font-size:12.3px;color:var(--sub);line-height:1.9}
footer b{color:#5A5248}
.empty{padding:44px;text-align:center;color:var(--sub);font-size:13.6px}
.loading{padding:40px;text-align:center;color:var(--sub);font-size:13.4px}
@media(max-width:820px){
 .hero{padding:32px 0 6px}.hero h1{font-size:26px;letter-spacing:1.5px}
 .nav-in{height:auto;padding:9px 14px;flex-wrap:wrap;gap:8px}
 .nav-search input{width:100%}
 .nav-search{width:100%}
 table{font-size:12.2px}th,td{padding:7px 8px}
 .dl{grid-template-columns:84px 1fr}
 .bar .nm{flex:0 0 90px;font-size:11.8px}
}

/* ===== 全站统一导航（2026-10-31 收敛）===== */
.nav-more{position:relative;flex:0 0 auto}
.nav-more-btn{padding:7px 11px;border:0;background:transparent;font-family:inherit;font-size:13.4px;
color:var(--sub);cursor:pointer;border-radius:7px;display:inline-flex;align-items:center;gap:4px}
.nav-more-btn:hover{background:#F7EDE8;color:var(--m2)}
.nav-more-btn.on{background:#FBF0EC;color:var(--m2);font-weight:700}
.nav-more-pop{display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:152px;background:#fff;
border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(122,31,31,.10);padding:6px;z-index:60}
.nav-more-pop.open{display:block}
.nav-more-pop a{display:block;padding:7px 11px;border-radius:7px;font-size:13.2px;color:var(--sub);white-space:nowrap}
.nav-more-pop a:hover{background:#F7EDE8;color:var(--m2)}
.nav-more-pop a.on{background:#FBF0EC;color:var(--m2);font-weight:700}
@media(max-width:820px){.nav-more-pop{position:static;box-shadow:none;border:0;padding:0}}

/* 移动端：导航改为换行而不是横向滚动（滚动会把「更多」和后半段库挤出屏幕，手机上点不到） */
@media(max-width:820px){
  .nav-links{flex-wrap:wrap;overflow-x:visible;gap:0;flex:1 1 100%}
  .nav-links a{padding:6px 9px;font-size:12.8px}
  .nav-more-btn{padding:6px 9px;font-size:12.8px}
  .nav-more-pop{display:none;padding:2px 0 4px 8px}
  .nav-more-pop.open{display:block}
  .nav-more-pop a{display:inline-block;padding:5px 9px;font-size:12.6px}
}

/* ==========================================================================
   显示设置（主题 / 字号 / 密度）· 2026-10-31
   由 nav.js 在首帧前把 data-theme / data-fs / data-density 写到 <html> 上
   ========================================================================== */
:root{--fs-body:15px;--lh-body:1.72}

/* 深色 */
html[data-theme="dark"]{
  --bg:#14130F;--card:#1D1B16;--ink:#EDE7DC;--sub:#A79E90;--line:#332E26;
  --m:#B8453F;--m2:#D9776F;--g:#B0895E;--green:#7E9B62;--blue:#7CA0C4;
  color-scheme:dark;
}
html[data-theme="dark"] .nav{background:rgba(20,19,15,.94)}
html[data-theme="dark"] .nav-links a:hover{background:#2A251E}
html[data-theme="dark"] .nav-links a.on{background:#3A201D;color:#E8A79F}
html[data-theme="dark"] .nav-search input{background:#1D1B16;color:var(--ink)}
html[data-theme="dark"] .hero{background:linear-gradient(160deg,#241C18 0%,#2B211A 62%,#33261C 100%)}
html[data-theme="dark"] .hero h1{color:#E8A79F}
html[data-theme="dark"] .hero p{color:var(--sub)}

/* 护眼（米黄纸感） */
html[data-theme="sepia"]{
  --bg:#F1EAD8;--card:#FAF4E4;--ink:#2E2820;--sub:#6A5F4C;--line:#DDD1B6;
  --m:#8E4B30;--m2:#70391F;--g:#9A7B4F;
}
html[data-theme="sepia"] .nav{background:rgba(241,234,216,.95)}
html[data-theme="sepia"] .hero{background:linear-gradient(160deg,#EFE3CB 0%,#EBDFC6 62%,#E5D7BA 100%)}

/* 字号三档 */
html[data-fs="1"]{--fs-body:13.5px}
html[data-fs="2"]{--fs-body:15px}
html[data-fs="3"]{--fs-body:16.5px}
html[data-fs="1"] body,html[data-fs="2"] body,html[data-fs="3"] body{font-size:var(--fs-body)}
html[data-fs="3"] .xm-card-t{font-size:16px}

/* 密度 */
html[data-density="compact"] body{line-height:1.5}
html[data-density="compact"] .xm-card-bd{padding:11px 13px}
html[data-density="compact"] .xm-card-hd{padding:10px 13px}
html[data-density="compact"] .xm-list-row{padding:7px 0}
html[data-width="wide"] .xm-shell{max-width:1440px}

/* ==========================================================================
   通用组件（admin.html / account.html / 设置抽屉共用）
   ========================================================================== */
.xm-shell{max-width:1220px;margin:0 auto;padding:0 22px}
.xm-page{padding:26px 0 60px;min-height:calc(100vh - 62px)}
.xm-h1{font-size:23px;font-weight:800;margin:0 0 6px;color:var(--m2);letter-spacing:.4px}
.xm-sub{font-size:13.2px;color:var(--sub);margin:0 0 20px}

/* 卡片 */
.xm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:14px}
.xm-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.xm-card{background:var(--card);border:1px solid var(--line);border-radius:13px;overflow:hidden;
  transition:box-shadow .18s,border-color .18s;display:flex;flex-direction:column}
.xm-card:hover{box-shadow:0 8px 26px rgba(122,31,31,.07);border-color:#DCCDBA}
.xm-card-hd{display:flex;align-items:center;gap:9px;padding:12px 15px;border-bottom:1px solid var(--line);background:var(--card)}
.xm-card-ico{flex:0 0 30px;width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  background:var(--bbg,#FBF0EC);color:var(--m2)}
.xm-card-ico svg{width:16px;height:16px}
.xm-card-t{font-size:14.4px;font-weight:700;color:var(--ink);flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xm-card-bd{padding:14px 15px;flex:1}
.xm-card-d{font-size:12.4px;color:var(--sub);line-height:1.62;margin:0}
.xm-card-ft{padding:10px 15px;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px;
  background:rgba(0,0,0,.012);font-size:12px;color:var(--sub);flex-wrap:nowrap;overflow:hidden}
.xm-card-ft .xm-tag{flex:0 0 auto;white-space:nowrap}
.xm-card-ft code{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:44%}
.xm-card.off{opacity:.62}
.xm-card.off .xm-card-ico{background:#EFEDE8;color:#9C9488}

/* 开关 */
.xm-sw{position:relative;display:inline-flex;align-items:center;gap:0;flex:0 0 auto}
.xm-sw input{position:absolute;opacity:0;width:0;height:0}
.xm-sw span{display:block;width:40px;height:22px;border-radius:11px;background:#D8D2C7;position:relative;
  cursor:pointer;transition:background .18s}
.xm-sw span::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.22);transition:transform .18s}
.xm-sw input:checked + span{background:var(--m)}
.xm-sw input:checked + span::after{transform:translateX(18px)}
.xm-sw input:focus-visible + span{outline:2px solid var(--g);outline-offset:2px}
.xm-sw input:disabled + span{opacity:.45;cursor:not-allowed}
html[data-theme="dark"] .xm-sw span{background:#3E382E}

/* 按钮 */
.xm-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 15px;border-radius:9px;
  border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:13.2px;font-family:inherit;
  cursor:pointer;transition:.16s;white-space:nowrap}
.xm-btn:hover{border-color:var(--g);color:var(--m2)}
.xm-btn:disabled{opacity:.5;cursor:not-allowed}
.xm-btn-primary{background:linear-gradient(135deg,var(--m),var(--m2));border-color:transparent;color:#fff;font-weight:600}
.xm-btn-primary:hover{color:#fff;filter:brightness(1.06)}
.xm-btn-ghost{background:transparent}
.xm-btn-danger{color:#A12E2E;border-color:#E3C4C0}
.xm-btn-danger:hover{background:#FBEEEC;border-color:#D89C96}
.xm-btn-sm{padding:5px 11px;font-size:12.4px;border-radius:7px}

/* 表单 */
.xm-field{margin-bottom:13px}
.xm-label{display:block;font-size:12.4px;color:var(--sub);margin-bottom:5px;font-weight:600}
.xm-input{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--card);
  color:var(--ink);font-size:13.6px;font-family:inherit;outline:none;transition:.16s}
.xm-input:focus{border-color:var(--g);box-shadow:0 0 0 3px rgba(176,137,94,.13)}
.xm-input::placeholder{color:#A69C8D}
.xm-hint{font-size:11.8px;color:#94897A;margin-top:5px;line-height:1.55}
.xm-err{font-size:12.4px;color:#B23B32;margin-top:8px;min-height:17px}

/* 标签 */
.xm-tag{display:inline-block;padding:2px 8px;border-radius:5px;font-size:11.2px;background:var(--bbg,#FBF0EC);
  color:var(--m2);line-height:1.7}
.xm-tag.gray{background:#EDEAE3;color:#7A7368}
.xm-tag.green{background:#EAF1E1;color:#4E6B33}
.xm-tag.blue{background:#E7EEF6;color:#3F6188}

/* 分段选择（主题/字号/密度）
   注意：不能写成 inline-flex + flex:1 —— 容器 shrink-to-fit 与子项 flex 会互相依赖，
   浏览器退化成按 min-content 计算，中文按钮会被压成竖排（「标/准」两行）。 */
.xm-seg{display:flex;width:100%;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--card)}
.xm-seg button{flex:1 1 0;min-width:0;padding:7px 10px;border:0;background:transparent;font-size:12.8px;
  color:var(--sub);cursor:pointer;font-family:inherit;border-right:1px solid var(--line);white-space:nowrap}
.xm-seg button:last-child{border-right:0}
.xm-seg button.on{background:var(--bbg,#FBF0EC);color:var(--m2);font-weight:700}

/* KPI */
.xm-kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:15px 16px}
.xm-kpi b{display:block;font-size:25px;line-height:1.1;color:var(--m2);font-variant-numeric:tabular-nums}
.xm-kpi span{display:block;font-size:11.8px;color:var(--sub);margin-top:5px}
.xm-kpi i{display:block;font-size:10.8px;color:#9B9285;margin-top:3px;font-style:normal}

/* 标签页 */
.xm-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 18px;overflow-x:auto;scrollbar-width:none}
.xm-tabs::-webkit-scrollbar{display:none}
.xm-tab{padding:9px 15px;border:0;background:transparent;font-size:13.4px;color:var(--sub);cursor:pointer;
  font-family:inherit;border-bottom:2px solid transparent;white-space:nowrap;margin-bottom:-1px}
.xm-tab.on{color:var(--m2);font-weight:700;border-bottom-color:var(--m)}
.xm-tab:hover{color:var(--m2)}

/* 列表行 */
.xm-list-row{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.2px}
.xm-list-row:last-child{border-bottom:0}

/* 表格 */
.xm-tbl{width:100%;border-collapse:collapse;font-size:13px}
.xm-tbl th{text-align:left;font-size:11.8px;color:var(--sub);font-weight:700;padding:8px 9px;
  border-bottom:1px solid var(--line);white-space:nowrap;background:rgba(0,0,0,.014)}
.xm-tbl td{padding:9px;border-bottom:1px solid var(--line);vertical-align:middle}
.xm-tbl tr:hover td{background:rgba(156,43,43,.028)}
.xm-tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--card)}

/* 分组标题行（后台） */
.xm-grp{display:flex;align-items:center;gap:9px;margin:0 0 11px;flex-wrap:wrap}
.xm-grp > b{white-space:nowrap;flex:0 0 auto}

/* 空状态 */
.xm-empty{text-align:center;padding:42px 20px;color:var(--sub);font-size:13.2px}
.xm-empty svg{width:38px;height:38px;opacity:.32;margin-bottom:10px}

/* 提示条 */
.xm-alert{padding:10px 13px;border-radius:10px;font-size:12.8px;line-height:1.6;margin-bottom:14px;
  background:var(--bbg,#FBF0EC);color:var(--m2);border:1px solid #EFD9D2}
.xm-alert.warn{background:#FDF4E3;color:#8A5D1B;border-color:#EFDFB8}
.xm-alert.ok{background:#EDF4E7;color:#42632A;border-color:#D3E1C4}

/* 设置抽屉 */
.xm-drawer-mask{position:fixed;inset:0;background:rgba(28,26,23,.34);opacity:0;pointer-events:none;
  transition:opacity .2s;z-index:90}
.xm-drawer-mask.open{opacity:1;pointer-events:auto}
.xm-drawer{position:fixed;top:0;right:0;height:100%;width:352px;max-width:88vw;background:var(--bg);
  border-left:1px solid var(--line);z-index:91;transform:translateX(102%);transition:transform .24s cubic-bezier(.3,.8,.3,1);
  display:flex;flex-direction:column;box-shadow:-12px 0 40px rgba(0,0,0,.12)}
.xm-drawer.open{transform:none}
.xm-drawer-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}
.xm-drawer-hd b{font-size:15px}
.xm-drawer-bd{flex:1;overflow-y:auto;padding:16px 18px}
.xm-drawer-ft{padding:13px 18px;border-top:1px solid var(--line);display:flex;gap:9px}
.xm-drawer .xm-seg button{flex:1}
.xm-set-group{margin-bottom:20px}
.xm-set-group h4{font-size:12.2px;color:var(--sub);margin:0 0 9px;font-weight:700;letter-spacing:.4px}

/* 导航右侧用户区 */
.nav-user{display:flex;align-items:center;gap:5px;flex:0 0 auto}
.nav-ico{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;
  background:transparent;color:var(--sub);cursor:pointer;border-radius:8px;font-family:inherit;padding:0}
.nav-ico:hover{background:#F7EDE8;color:var(--m2)}
.nav-ico svg{width:17px;height:17px}
.nav-me{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:8px;font-size:13px;color:var(--sub)}
.nav-me:hover{background:#F7EDE8;color:var(--m2)}
.nav-me .av{width:23px;height:23px;border-radius:50%;background:var(--m);color:#fff;display:flex;
  align-items:center;justify-content:center;font-size:11.5px;font-weight:700}
html[data-theme="dark"] .nav-ico:hover,html[data-theme="dark"] .nav-me:hover{background:#2A251E}

/* Toast */
.xm-toast-wrap{position:fixed;left:50%;bottom:34px;transform:translateX(-50%);z-index:95;display:flex;
  flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.xm-toast{background:#26231D;color:#F3EDE3;padding:9px 17px;border-radius:9px;font-size:13px;
  box-shadow:0 8px 26px rgba(0,0,0,.22);opacity:0;transform:translateY(8px);transition:.22s;max-width:82vw}
.xm-toast.show{opacity:1;transform:none}
.xm-toast.err{background:#8E2F27}
.xm-toast.ok{background:#3C5A2C}

@media(max-width:820px){
  .xm-grid{grid-template-columns:1fr}
  .xm-grid-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .xm-page{padding:18px 0 44px}
  .xm-h1{font-size:20px}
  .xm-kpi b{font-size:21px}
  .xm-grp-d{display:none}
}

/* ==========================================================================
   主题补全与深色适配（2026-10-31）
   --bbg 此前只靠 var() 兜底值，深色下会露出浅色底块，这里统一声明
   ========================================================================== */
:root{--bbg:#FBF0EC}

html[data-theme="dark"]{
  --bbg:#3A2118;
}
html[data-theme="sepia"]{--bbg:#F1E2CB}

/* 深色下的硬编码色覆盖（标签 / 提示条 / 表格 / 卡片细节） */
html[data-theme="dark"] .xm-tag.gray{background:#2C2820;color:#A79E90}
html[data-theme="dark"] .xm-tag.green{background:#28331F;color:#9BBE80}
html[data-theme="dark"] .xm-tag.blue{background:#1F2A36;color:#8FB4D8}
html[data-theme="dark"] .xm-alert{background:#33211D;color:#E9A9A1;border-color:#4A2C26}
html[data-theme="dark"] .xm-alert.warn{background:#332B18;color:#D9B96C;border-color:#4A3E22}
html[data-theme="dark"] .xm-alert.ok{background:#22301B;color:#A1C488;border-color:#33452A}
html[data-theme="dark"] .xm-card:hover{border-color:#4C4335}
html[data-theme="dark"] .xm-card.off .xm-card-ico{background:#2A251E;color:#7C7466}
html[data-theme="dark"] .xm-btn-danger{color:#E08A81;border-color:#5A322C}
html[data-theme="dark"] .xm-btn-danger:hover{background:#3A201D;border-color:#7A423A}
html[data-theme="dark"] .xm-tbl th{background:rgba(255,255,255,.028)}
html[data-theme="dark"] .xm-tbl tr:hover td{background:rgba(255,255,255,.03)}
html[data-theme="dark"] .xm-card-ft{background:rgba(255,255,255,.022)}
html[data-theme="dark"] .xm-input::placeholder{color:#7C7466}
html[data-theme="dark"] .xm-hint{color:#8B8375}
html[data-theme="dark"] .xm-err{color:#E08A81}
html[data-theme="dark"] .xm-kpi i{color:#8B8375}
html[data-theme="dark"] .xm-empty svg{opacity:.4}
html[data-theme="dark"] .xm-me .av,
html[data-theme="dark"] .nav-me .av{background:var(--m);color:#fff}
html[data-theme="dark"] .xm-card-ft code{color:#7C7466}

/* 开关选中态：明确压过主题底色规则 */
html .xm-sw input:checked + span{background:var(--m)}
html[data-theme="dark"] .xm-sw input:checked + span{background:var(--m)}
html[data-theme="sepia"] .xm-sw input:checked + span{background:var(--m)}

/* ---------- 列表页：维度筛选 + 固定列宽 ---------- */
.facets{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}
.facets:empty{display:none}
.facets .fl{display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:4px 8px 4px 11px;font-size:12.8px}
.facets .fl b{color:var(--sub);font-weight:600}
.facets select{border:0;background:transparent;color:var(--ink);font:inherit;font-size:13px;outline:none;cursor:pointer;max-width:168px;padding:3px 0}
.facets .fclear{border:1px solid var(--line);background:var(--card);color:var(--m);border-radius:9px;padding:5px 12px;font-size:12.8px;cursor:pointer;font-family:inherit}
.facets .fclear:hover{border-color:var(--m)}
/* 固定列宽取代自适应：原先「平台」「店铺」被挤成一字一行 */
table.xt{table-layout:fixed}
table.xt td{overflow-wrap:anywhere}
table.xt td.nw{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 多行截断必须套内层 div：td 上的 -webkit-box 会破坏单元格布局 */
table.xt .cut{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.55}
/* 可排序表头：整格可点，方向标记常驻但未选中时压暗，避免表头宽度跳动 */
table.xt th.srt{cursor:pointer;user-select:none}
table.xt th.srt:hover{color:var(--m)}
table.xt th.srt .sic{display:inline-block;margin-left:4px;font-size:9.5px;opacity:.34;vertical-align:1px;transition:opacity .15s}
table.xt th.srt:hover .sic{opacity:.7}
table.xt th.srt.on{color:var(--m)}
table.xt th.srt.on .sic{opacity:1}
.pager .jump{font-size:12.6px;color:var(--sub);display:inline-flex;align-items:center;gap:6px}
/* 加了首页/末页/跳页后按钮变多，窄屏必须换行，否则被压成「上 1 下 末」 */
.pager{flex-wrap:wrap;row-gap:8px}
.pager .jump input{width:58px;padding:5px 6px;border:1px solid var(--line);border-radius:7px;font-size:12.6px;text-align:center;background:var(--card);color:var(--ink);font-family:inherit;outline:none}
.pager .jump button{padding:5px 10px;font-size:12.4px}
@media(max-width:640px){
  .facets .fl{font-size:12px}
  .facets select{max-width:118px}
  table.xt{font-size:12.4px}
}
/* 小屏：百分比列宽在 390px 下会把每列压成一条竖缝（曾被压到「木…」「动…」），
   改为表格恢复自适应 + 外层横向滚动，保持每列可读。 */
.tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:11px}
@media(max-width:820px){
  table.xt{table-layout:auto;min-width:760px}
  table.xt .cut{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px;max-height:none}
  /* 窄列保持单行：否则「国家级」会被拆成「国家 / 级」 */
}

/* ---------- 详情页：图集 + 操作 + 关联推荐 ---------- */
.pd{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px;margin-top:16px;align-items:start}
.pd-nomedia{grid-template-columns:1fr}
.pd-media img.main{width:100%;aspect-ratio:1/1;object-fit:contain;background:var(--card);border:1px solid var(--line);border-radius:11px;display:block}
.pd-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pd-thumbs img{width:54px;height:54px;object-fit:cover;border:1px solid var(--line);border-radius:7px;cursor:pointer;background:var(--card);transition:.15s}
.pd-thumbs img:hover{border-color:var(--g)}
.pd-thumbs img.on{border-color:var(--m);box-shadow:0 0 0 2px rgba(156,43,43,.15)}
.pd-info .dl{margin:0}
.pd-acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.btn-line{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);font-size:13.4px;font-family:inherit;text-decoration:none;cursor:pointer;transition:.15s}
.btn-line:hover{border-color:var(--m);color:var(--m)}
.btn-line.on{background:var(--m);border-color:var(--m);color:#fff}
.btn-line:disabled{opacity:.6;cursor:default}
.rel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.relc{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card);text-decoration:none;color:var(--ink);transition:.15s}
.relc:hover{border-color:var(--g);transform:translateY(-1px)}
.relc .ri{display:block;aspect-ratio:1/1;background:var(--bg)}
.relc .ri.nophoto{display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--sub);border-bottom:1px solid var(--line)}
.relc .ri img{width:100%;height:100%;object-fit:cover;display:block}
.relc .rn{font-size:12.6px;line-height:1.5;padding:8px 9px 2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:38px}
.relc .rm{font-size:11.8px;color:var(--sub);padding:0 9px 9px}
.xm-toast{position:fixed;left:50%;bottom:38px;transform:translateX(-50%) translateY(10px);background:rgba(28,26,23,.93);color:#fff;padding:10px 18px;border-radius:9px;font-size:13.4px;opacity:0;pointer-events:none;transition:.2s;z-index:999}
.xm-toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:820px){
  .pd{grid-template-columns:1fr;gap:16px}
  .pd-media{max-width:320px}
  .rel{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* 820–1100px 之间搜索框 190px 会挤掉导航末尾项（「企业库」被截成「企」） */
@media(max-width:1100px) and (min-width:821px){
  .nav-search input{width:118px}
  .nav-links a{padding:7px 8px;font-size:13px}
}
