/* ============================================================
   结构规范大全 · 在线检索   (承接 theme.css 的 --xh-* 变量)
   v2：名称检索 / 条文检索分离 + 紧凑分组列表
   ============================================================ */

[hidden]{display:none !important}

/* 阅读页吸顶工具条高度（由 app.js 实测后覆盖） */
:root{--bk-bar-h:58px}

/* ---------- 模式切换 ---------- */
.sp-modes{display:inline-flex;gap:4px;padding:5px;border-radius:999px;background:var(--xh-panel-strong);
  border:1px solid var(--xh-border);box-shadow:var(--xh-shadow);margin:22px 0 18px;
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.sp-mode{border:none;background:transparent;padding:10px 24px;border-radius:999px;font-size:14.5px;
  font-weight:600;color:var(--xh-text-2);cursor:pointer;font-family:inherit;transition:all .2s}
.sp-mode:hover{color:var(--xh-primary-dark)}
.sp-mode.active{background:linear-gradient(135deg,var(--xh-primary) 0%,var(--xh-primary-dark) 100%);
  color:#fff;box-shadow:0 4px 14px rgba(66,144,245,.30)}

/* ---------- 搜索条 ---------- */
.sp-bar{display:flex;gap:10px;align-items:center;max-width:720px;margin:0 0 14px}
.sp-bar input{flex:1;min-width:0;padding:12px 18px;font-size:15px}
.sp-btn{padding:12px 26px;border-radius:999px;border:none;cursor:pointer;font-family:inherit;
  background:linear-gradient(135deg,var(--xh-primary) 0%,var(--xh-primary-dark) 100%);
  color:#fff;font-weight:600;font-size:14.5px;box-shadow:0 4px 18px rgba(66,144,245,.32);white-space:nowrap}
.sp-btn:hover{transform:translateY(-1px)}
.sp-clear{font-size:13px;color:var(--xh-text-3);cursor:pointer;white-space:nowrap;user-select:none}
.sp-clear:hover{color:var(--xh-primary-dark)}
.sp-hint{font-size:12.5px;color:var(--xh-text-3);line-height:1.8;margin:0 0 16px;max-width:760px}
.sp-hint em{font-style:normal;color:var(--xh-primary-dark);font-weight:700}
.sp-hint b{color:var(--xh-primary-dark)}

/* ---------- 名称模式：左分类 + 右紧凑列表 ---------- */
.sp-wrap{display:flex;gap:24px;align-items:flex-start}
.sp-side{position:sticky;top:calc(var(--xh-header-h) + 16px);flex:0 0 175px;width:175px;
  background:var(--xh-panel);border:1px solid var(--xh-border);border-radius:var(--xh-r-md);
  box-shadow:var(--xh-shadow);padding:8px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.sp-side a{display:flex;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:8px;
  font-size:12.5px;color:var(--xh-text-2);text-decoration:none;line-height:1.5}
.sp-side a:hover{background:rgba(66,144,245,.09);color:var(--xh-primary-dark)}
.sp-side a em{font-style:normal;color:var(--xh-text-3);font-size:11.5px;flex:0 0 auto}
.sp-side a.side-all{font-weight:700;color:var(--xh-text);border-bottom:1px solid var(--xh-border);
  border-radius:8px 8px 0 0;margin-bottom:4px;padding-bottom:9px}
.sp-list{flex:1 1 auto;min-width:0}

.sp-grp{margin-bottom:24px;scroll-margin-top:calc(var(--xh-header-h) + 14px)}
.sp-grp-h{display:flex;align-items:baseline;gap:10px;font-size:15.5px;font-weight:800;
  color:var(--xh-text);margin:0 0 9px;padding-left:11px;border-left:4px solid var(--xh-primary);line-height:1.4}
.sp-grp-h em{font-style:normal;font-size:12px;font-weight:500;color:var(--xh-text-3)}
.sp-rows{background:var(--xh-panel-strong);border:1px solid var(--xh-border);
  border-radius:var(--xh-r-sm);box-shadow:var(--xh-shadow);overflow:hidden}

.rw{display:grid;grid-template-columns:108px minmax(0,1fr) 108px 62px 14px;gap:12px;align-items:center;
  padding:9px 15px;border-bottom:1px solid var(--xh-border);text-decoration:none;color:inherit;
  transition:background .15s}
.rw:last-child{border-bottom:none}
.rw:hover{background:rgba(66,144,245,.09);text-decoration:none;color:inherit}
.rw-code{font-family:"SF Mono",Consolas,monospace;font-size:12px;font-weight:700;
  color:var(--xh-primary-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rw-name{font-size:14px;font-weight:600;color:var(--xh-text);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.rw-ver{font-style:normal;font-size:11.5px;color:var(--xh-text-3);font-weight:400;margin-left:6px}
.rw-tags{display:flex;gap:5px;justify-content:flex-start}
.rw-tag{font-style:normal;font-size:10.5px;padding:2px 7px;border-radius:999px;font-weight:700;
  background:rgba(239,68,68,.12);color:#b91c1c;white-space:nowrap}
.rw-tag.scan{background:rgba(100,116,139,.16);color:#64748b}
.rw-sec{font-size:12px;color:var(--xh-text-3);text-align:right;white-space:nowrap}
.rw-go{color:var(--xh-primary);font-size:16px;opacity:.4;text-align:right}
.rw:hover .rw-go{opacity:1}
.sp-none{padding:40px 20px;text-align:center;color:var(--xh-text-3);font-size:14px}

/* ---------- 条文检索结果 ---------- */
.sp-res{margin-top:4px}
.sp-res-hd{padding:11px 16px;border-radius:var(--xh-r-sm);background:rgba(66,144,245,.07);
  border:1px solid var(--xh-border);font-size:13px;color:var(--xh-text-2);margin-bottom:14px;line-height:1.7}
.sp-res-hd b{color:var(--xh-primary-dark)}
.sp-more{display:inline-block;margin-top:8px;font-size:12.5px;color:var(--xh-primary-dark);
  cursor:pointer;font-weight:700;user-select:none}
.sp-item{display:block;padding:11px 16px;border-bottom:1px dashed var(--xh-border);
  text-decoration:none;color:inherit;transition:background .15s}
.sp-item:last-child{border-bottom:none}
.sp-item:hover{background:rgba(66,144,245,.06);text-decoration:none;color:inherit}
.sp-item-t{font-size:13.5px;font-weight:700;color:var(--xh-primary-dark);line-height:1.6}
.sp-item-b{font-weight:500;color:var(--xh-text-3);font-size:12px;margin-left:8px}
.sp-item-s{font-size:13px;color:var(--xh-text-2);line-height:1.9;margin-top:3px}
.sp-item-s mark{background:rgba(245,158,11,.34);color:inherit;border-radius:3px;padding:0 2px}
.sp-book{margin-bottom:16px;background:var(--xh-panel-strong);border:1px solid var(--xh-border);
  border-radius:var(--xh-r-md);box-shadow:var(--xh-shadow);overflow:hidden}
.sp-book-hd{padding:10px 16px;font-size:13.5px;font-weight:700;color:var(--xh-text);
  border-bottom:1px solid var(--xh-border);background:rgba(66,144,245,.06)}
.sp-book-hd a{color:var(--xh-primary-dark);text-decoration:none}
.sp-book-hd a:hover{text-decoration:underline}
.sp-book-hd em{font-style:normal;font-weight:500;font-size:12px;color:var(--xh-text-3);margin-left:8px}

/* ============================================================
   阅读页
   ============================================================ */
.book-head{margin-bottom:16px}
.bk-crumb{font-size:13px;color:var(--xh-text-3);margin-bottom:8px;display:flex;gap:7px;align-items:center}
.bk-crumb a{color:var(--xh-primary-dark);text-decoration:none;font-weight:600}
.bk-crumb a:hover{text-decoration:underline}
.bk-crumb-sep{opacity:.5}
.bk-title{margin:0 0 10px !important}
.bk-meta{margin:0 0 14px;font-size:13px;color:var(--xh-text-2);display:flex;gap:10px;
  align-items:center;flex-wrap:wrap}
.bk-code{font-family:"SF Mono",Consolas,monospace;font-weight:700;color:var(--xh-primary-dark);
  background:rgba(66,144,245,.10);border:1px solid var(--xh-border);border-radius:999px;padding:3px 12px}
.bk-tag{font-style:normal;font-size:11px;padding:2px 9px;border-radius:999px;font-weight:700;
  background:rgba(100,116,139,.14);color:var(--xh-text-2)}
.bk-tag-strong{background:rgba(239,68,68,.12);color:#b91c1c}
.bk-tag-scan{background:rgba(100,116,139,.18);color:#64748b}
.bk-sep{color:var(--xh-text-3)}
/* ---------- 阅读页：吸顶工具条（返回目录 + 本书内检索） ---------- */
.bk-bar{position:sticky;top:var(--xh-header-h);z-index:60;display:flex;align-items:center;gap:12px;
  padding:9px 14px;margin:0 0 18px;border:1px solid var(--xh-border);border-radius:var(--xh-r-md);
  background:var(--xh-panel);box-shadow:var(--xh-shadow);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.bk-backbtn{display:inline-flex;align-items:center;gap:3px;padding:8px 15px;border-radius:999px;
  background:linear-gradient(135deg,var(--xh-primary) 0%,var(--xh-primary-dark) 100%);color:#fff;
  font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap;
  box-shadow:0 4px 14px rgba(66,144,245,.28);transition:transform .18s}
.bk-backbtn:hover{color:#fff;text-decoration:none;transform:translateY(-1px)}
.bk-backbtn em{font-style:normal}
.bk-barname{flex:1 1 auto;min-width:0;font-size:13.5px;font-weight:700;color:var(--xh-text-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .22s}
.bk-bar.is-stuck{box-shadow:0 10px 26px rgba(15,23,42,.10)}
.bk-bar.is-stuck .bk-barname{opacity:1}
.bk-search{display:flex;gap:10px;align-items:center;flex:0 1 400px;min-width:0}
.bk-search input{flex:1;min-width:0;padding:9px 15px;font-size:14px}
.bk-count{font-size:12.5px;color:var(--xh-text-2);white-space:nowrap}

/* 文末操作条 */
.bk-footbar{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap;
  margin:26px 0 4px;padding-top:22px;border-top:1px solid var(--xh-border)}
.bk-btn{display:inline-flex;align-items:center;gap:6px;padding:11px 26px;border-radius:999px;
  border:1px solid transparent;cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;
  text-decoration:none;background:linear-gradient(135deg,var(--xh-primary) 0%,var(--xh-primary-dark) 100%);
  color:#fff;box-shadow:0 4px 18px rgba(66,144,245,.28);transition:all .18s}
.bk-btn:hover{transform:translateY(-1px);text-decoration:none;color:#fff}
.bk-btn.ghost{background:var(--xh-panel);border-color:var(--xh-border);color:var(--xh-text-2);box-shadow:var(--xh-shadow)}
.bk-btn.ghost:hover{color:var(--xh-primary-dark);border-color:var(--xh-border-strong);background:rgba(66,144,245,.10)}

.book-layout{display:flex;gap:22px;align-items:flex-start;padding-bottom:10px}
.book-side{position:sticky;top:calc(var(--xh-header-h) + var(--bk-bar-h) + 14px);flex:0 0 288px;width:288px;
  max-height:calc(100vh - var(--xh-header-h) - var(--bk-bar-h) - 34px);display:flex;flex-direction:column;
  background:var(--xh-panel);border:1px solid var(--xh-border);border-radius:var(--xh-r-md);
  box-shadow:var(--xh-shadow);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.side-title{padding:11px 14px;font-size:12.5px;font-weight:800;letter-spacing:.4px;
  color:var(--xh-text-2);border-bottom:1px solid var(--xh-border);display:flex;
  align-items:center;justify-content:space-between;gap:8px}
.side-toggle{border:1px solid var(--xh-border);background:transparent;color:var(--xh-text-3);
  font-size:11px;padding:2px 9px;border-radius:999px;cursor:pointer;font-family:inherit}
.side-toggle:hover{color:var(--xh-primary-dark);border-color:var(--xh-border-strong)}
.side-nav{overflow:auto;padding:8px 8px 12px;scrollbar-width:thin}
.side-nav a{display:block;padding:6px 10px;border-radius:8px;font-size:12.5px;line-height:1.55;
  color:var(--xh-text-2);text-decoration:none;transition:background .15s,color .15s}
.side-nav a:hover{background:rgba(66,144,245,.09);color:var(--xh-primary-dark)}
.side-nav a.cur{background:linear-gradient(135deg,var(--xh-primary),var(--xh-primary-dark));
  color:#fff;font-weight:600}
.side-nav a.hitx{box-shadow:inset 3px 0 0 var(--xh-warning)}
.book-side.collapsed .side-nav{display:none}

.book-body{flex:1 1 auto;min-width:0;background:var(--xh-panel-strong);border:1px solid var(--xh-border);
  border-radius:var(--xh-r-md);box-shadow:var(--xh-shadow);padding:6px 34px 34px;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  font-size:15.5px;line-height:2.05;color:var(--xh-text);font-family:var(--xh-font);word-break:break-word}
/* 兜底：源站是 IE 定宽页（width:1000px / float），任何残留都不得顶出白框 */
.book-body *{max-width:100% !important;box-sizing:border-box}
.book-body img{height:auto !important}
.book-body table{width:auto;max-width:100%;border-collapse:collapse}
.book-body h1,.book-body h2{margin:22px 0 12px;font-size:17.5px;font-weight:800;line-height:1.55}
.book-body h3:not(.sec-h),.book-body h4{margin:18px 0 10px;font-size:16px;font-weight:700;line-height:1.6}
.book-body hr{border:none;border-top:1px solid var(--xh-border);margin:18px 0;height:0}
.sec{padding:20px 0 8px;border-top:1px solid var(--xh-border);scroll-margin-top:calc(var(--xh-header-h) + var(--bk-bar-h) + 16px)}
.sec:first-child{border-top:none;padding-top:6px}
.sec-h{font-size:16.5px;font-weight:800;color:var(--xh-primary-dark);margin:0 0 12px;
  padding-left:11px;border-left:4px solid var(--xh-primary);line-height:1.45}
.book-body img{max-width:100%;height:auto;display:block;margin:14px auto;border:1px solid var(--xh-border);
  border-radius:8px;background:#fff;padding:4px}
.book-body table{border-collapse:collapse;margin:14px auto;max-width:100%;font-size:14px}
.book-body td,.book-body th{border:1px solid var(--xh-border);padding:5px 9px}
.book-body p{margin:0 0 4px}
.book-body .warn{color:var(--xh-danger)}
.book-body mark{background:rgba(245,158,11,.34);color:inherit;border-radius:3px;padding:0 2px}
.sec.hitsec{background:rgba(245,158,11,.08);border-radius:10px;padding-left:12px;padding-right:12px}
.sec.cursec{box-shadow:inset 3px 0 0 var(--xh-primary)}

/* ============================================================
   深色模式
   ============================================================ */
body.dark .sp-modes,body.dark .sp-side,body.dark .sp-rows,body.dark .sp-book,
body.dark .book-side,body.dark .book-body,body.dark .bk-bar{background:rgba(20,28,46,.78);border-color:rgba(255,255,255,.08)}
body.dark .sp-mode{color:#9fb0c4}
body.dark .sp-mode.active{color:#fff}
body.dark .bk-barname{color:#cbd5e1}
body.dark .bk-btn.ghost{background:rgba(20,28,46,.78);border-color:rgba(255,255,255,.10);color:#9fb0c4}
body.dark .bk-btn.ghost:hover{color:#7ab7ff;border-color:rgba(66,144,245,.5);background:rgba(66,144,245,.16)}
body.dark .sp-grp-h,body.dark .rw-name{color:#e2e8f0}
body.dark .rw:hover,body.dark .sp-item:hover{background:rgba(66,144,245,.13)}
body.dark .sp-side a:hover,body.dark .side-nav a:hover{background:rgba(66,144,245,.16)}
body.dark .sp-side a.side-all{color:#e2e8f0}
body.dark .rw-tag{background:rgba(239,68,68,.22);color:#fca5a5}
body.dark .rw-tag.scan,body.dark .bk-tag{background:rgba(148,163,184,.18);color:#cbd5e1}
body.dark .bk-tag-strong{background:rgba(239,68,68,.22);color:#fca5a5}
body.dark .sp-item-t,body.dark .sp-book-hd a,body.dark .bk-crumb a{color:#7ab7ff}
body.dark .sp-item-s{color:#a9b8cc}
body.dark .sp-res-hd{background:rgba(66,144,245,.12);border-color:rgba(255,255,255,.08);color:#a9b8cc}
body.dark .book-body img{background:#fff}

/* ============================================================
   响应式
   ============================================================ */
@media (max-width:1080px){
  .sp-side{display:none}
  .rw{grid-template-columns:96px minmax(0,1fr) 96px 56px 12px;gap:9px}
}
@media (max-width:980px){
  .book-layout{flex-direction:column}
  .book-side{position:static;flex:none;width:100%;max-height:300px}
  .book-body{padding:4px 16px 26px}
  .bk-barname{display:none}
  .bk-search{flex:1 1 auto}
}
@media (max-width:720px){
  .sp-modes{display:flex;width:100%}
  .sp-mode{flex:1;padding:10px 8px;font-size:13.5px}
  .rw{grid-template-columns:minmax(0,1fr) 52px 12px;gap:8px;padding:9px 12px}
  .rw-code{display:none}
  .rw-tags{display:none}
  .rw-name{font-size:13.5px}
  .sp-bar{flex-wrap:wrap}
  .sp-btn{padding:11px 20px}
  .sp-grp-h{font-size:14px}
  .bk-bar{padding:7px 10px;gap:8px}
  .bk-bar .bk-backbtn{padding:8px 11px}
  .bk-bar .bk-backbtn em{display:none}
}
@media (max-width:560px){
  .bk-btn{padding:10px 20px;font-size:13.5px}
}
