/* Hachimi-BV Docs —— 与站点统一的自有样式（镜像页不加载上游 VitePress 资源） */
:root{color-scheme:light;--bg:#f6f8fa;--bg-soft:#eef2f6;--panel:#ffffff;--panel2:#f8fafc;--line:#d0d7de;--line-light:#e6ebf0;--text:#1f2328;--text-2:#57606a;--muted:#6e7781;--accent:#0969da;--accent-strong:#0550ae;--accent-soft:#ddf4ff;--ok:#1a7f37;--ok-soft:#dafbe1;--warn:#bc4c00;--warn-soft:#fff1e5;--err:#cf222e;--err-soft:#ffebe9;--shadow-small:0 1px 2px rgba(31,35,40,.06);--shadow:0 3px 8px rgba(31,35,40,.08);--radius-small:6px;--radius:10px}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif}
a{color:var(--accent)}
/* ---------- 顶栏（与站点一致） ---------- */
.site-header{position:sticky;top:0;z-index:100;background:linear-gradient(135deg,#161b22,#1d232c);border-bottom:1px solid #30363d;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.header-inner{width:min(1280px,calc(100% - 32px));min-height:60px;margin:0 auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 0}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#f0f6fc}
.brand-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;display:block;background:#0d1117;box-shadow:0 0 0 1px rgba(255,255,255,.18),0 0 0 3px rgba(255,255,255,.05),0 2px 8px rgba(0,0,0,.45);transition:transform .18s ease,box-shadow .18s ease}
.brand:hover .brand-avatar{transform:scale(1.06);box-shadow:0 0 0 1px rgba(255,255,255,.32),0 0 0 3px rgba(9,105,218,.28),0 4px 12px rgba(0,0,0,.5)}
.brand-name{font-weight:650;font-size:14px;letter-spacing:.2px}
.brand-sub{font-size:12px;color:#9aa4ae;padding-left:10px;border-left:1px solid #30363d}
.header-nav{margin-left:auto;display:flex;align-items:center;gap:22px}
.header-nav > a{color:#f0f6fc;font-size:14px;font-weight:600;opacity:.9;text-decoration:none;padding:4px 0;transition:opacity .2s,color .2s,box-shadow .2s}
.header-nav > a:hover{color:#fff;opacity:1}
.header-nav > a.active{color:#fff;opacity:1;box-shadow:inset 0 -2px 0 var(--accent)}
.nav-drop{position:relative;display:flex;align-items:center}
.nav-drop-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;cursor:pointer;color:#f0f6fc;font:inherit;font-size:14px;font-weight:600;opacity:.9;padding:4px 0;transition:opacity .2s,color .2s}
.nav-drop-btn:hover,.nav-drop:hover .nav-drop-btn,.nav-drop.open .nav-drop-btn,.nav-drop-btn.is-active{color:#fff;opacity:1}
.nav-drop-btn.is-active{box-shadow:inset 0 -2px 0 var(--accent)}
.nav-caret{transition:transform .18s ease}
.nav-drop:hover .nav-caret,.nav-drop.open .nav-caret,.nav-drop:focus-within .nav-caret{transform:rotate(180deg)}
.nav-drop-menu{position:absolute;top:calc(100% + 8px);left:50%;min-width:158px;padding:6px;border-radius:10px;background:#1b2129;border:1px solid #30363d;box-shadow:0 10px 24px rgba(0,0,0,.38);display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;transform:translateX(-50%) translateY(-4px);transition:opacity .16s ease,transform .16s ease}
.nav-drop-menu::before{content:"";position:absolute;top:-9px;left:0;right:0;height:9px}
.nav-drop:hover .nav-drop-menu,.nav-drop.open .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.nav-drop-menu a{display:block;padding:8px 12px;border-radius:7px;color:#f0f6fc;font-size:13.5px;font-weight:600;opacity:.9;text-decoration:none;box-shadow:none!important;white-space:nowrap}
.nav-drop-menu a:hover{background:rgba(9,105,218,.22);opacity:1}
.nav-drop-menu a.active{background:rgba(9,105,218,.3);opacity:1}
/* ---------- 文档骨架 ---------- */
.doc-shell{width:min(1280px,calc(100% - 32px));margin:22px auto 40px;display:grid;grid-template-columns:266px minmax(0,1fr);gap:22px;align-items:start}
.doc-side{position:sticky;top:78px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-small);max-height:calc(100vh - 110px);overflow:auto}
.doc-side-title{font-weight:700;font-size:13px;color:var(--text);letter-spacing:.3px}
.doc-side-note{font-size:11.5px;color:var(--muted);margin:4px 0 12px;line-height:1.5}
.doc-group{margin-top:12px}
.doc-group-name{font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:.6px;padding:0 6px 5px}
.doc-group a{display:block;padding:6px 8px;border-radius:7px;color:var(--text-2);font-size:13.5px;text-decoration:none;line-height:1.45;transition:background .15s,color .15s}
.doc-group a:hover{background:var(--bg-soft);color:var(--text)}
.doc-group a.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:650}
.doc-main{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:26px 30px 30px;box-shadow:var(--shadow-small);min-width:0}
/* ---------- 正文排版 ---------- */
.doc-body{word-wrap:break-word}
.doc-body h1{font-size:28px;line-height:1.3;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--line-light)}
.doc-body h2{font-size:21px;margin:34px 0 12px;padding-top:10px;border-top:1px solid var(--line-light)}
.doc-body h2:first-child,.doc-body h3:first-child{margin-top:0;border-top:0;padding-top:0}
.doc-body h3{font-size:17px;margin:24px 0 10px}
.doc-body h4{font-size:15px;margin:20px 0 8px}
.doc-body p{margin:12px 0}
.doc-body ul,.doc-body ol{margin:12px 0;padding-left:26px}
.doc-body li{margin:5px 0}
.doc-body a{text-decoration:none;border-bottom:1px solid rgba(9,105,218,.35)}
.doc-body a:hover{border-bottom-color:var(--accent)}
.doc-body strong{font-weight:700}
.doc-body hr{border:0;border-top:1px solid var(--line-light);margin:26px 0}
.doc-body img,.doc-body video{max-width:100%;height:auto;border-radius:var(--radius-small);border:1px solid var(--line-light);margin:10px 0;display:block;background:#fff}
.doc-body blockquote{margin:14px 0;padding:8px 16px;border-left:3px solid var(--line);color:var(--text-2);background:var(--panel2);border-radius:0 8px 8px 0}
.doc-body code{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:12.5px;background:var(--bg-soft);padding:2px 5px;border-radius:4px;border:1px solid var(--line-light)}
.doc-body pre{margin:14px 0;padding:14px 16px;overflow:auto;background:#f6f8fa;border:1px solid var(--line-light);border-radius:var(--radius-small);line-height:1.55}
.doc-body pre code{background:none;border:0;padding:0;font-size:12.5px}
.doc-body pre .line{display:block}
.doc-body .shiki span{color:var(--shiki-light)}
.doc-body table{width:100%;border-collapse:collapse;margin:14px 0;font-size:13.5px;display:block;overflow:auto}
.doc-body th,.doc-body td{border:1px solid var(--line);padding:7px 10px;text-align:left}
.doc-body thead th{background:var(--bg-soft);font-weight:700}
.doc-body kbd{font-family:inherit;font-size:12px;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:1px 5px;background:var(--panel2)}
.doc-body .header-anchor{display:none}
.doc-body a.doc-nolink{color:inherit;border-bottom:0;cursor:text}
.doc-body .custom-block{margin:16px 0;padding:12px 16px;border-radius:var(--radius-small);border:1px solid var(--line);border-left-width:4px;background:var(--panel2);font-size:14px}
.doc-body .custom-block-title{font-weight:700;margin-bottom:4px}
.doc-body .custom-block.tip{border-left-color:var(--ok);background:var(--ok-soft)}
.doc-body .custom-block.info{border-left-color:var(--accent);background:var(--accent-soft)}
.doc-body .custom-block.warning{border-left-color:var(--warn);background:var(--warn-soft)}
.doc-body .custom-block.danger{border-left-color:var(--err);background:var(--err-soft)}
.doc-body details.custom-block{margin:16px 0;padding:10px 16px;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--panel2)}
.doc-body details summary{cursor:pointer;font-weight:650}
.doc-source{margin:26px 0 0;padding-top:14px;border-top:1px solid var(--line-light);color:var(--muted);font-size:12px}
/* ---------- 底栏 ---------- */
.site-footer{display:flex;align-items:center;justify-content:space-between;padding:12px max(20px,calc((100% - 1280px)/2 + 18px));background:rgba(246,248,250,.92);border-top:1px solid var(--line-light);color:var(--muted);font-size:12px}
.footer-links{display:flex;gap:18px}
.footer-links{display:flex;gap:18px;align-items:center}
.footer-src{color:var(--muted)}
.footer-links a{color:var(--text-2);text-decoration:none}
.footer-links a:hover{color:var(--accent)}
@media (max-width:900px){
  .doc-shell{grid-template-columns:1fr}
  .doc-side{position:static;max-height:none}
  .doc-main{padding:20px 16px 24px}
  .doc-body h1{font-size:23px}
  .header-inner{padding:8px 0;gap:10px;min-height:52px}
  .brand{gap:8px}.brand-avatar{width:28px;height:28px}.brand-name,.brand-sub{display:none}
  .header-nav{gap:10px}.header-nav > a,.nav-drop-btn{font-size:12px;padding:3px 0;white-space:nowrap}
  .site-footer{flex-direction:column;gap:6px;text-align:center}
}
