/* CTF 知识库 — 白底黑字 / 黑底白字 双主题 · 居中阅读栏 */
:root{
  --bg:#ffffff; --panel:#f7f7f7; --panel2:#efefef; --line:#dcdcdc;
  --text:#1c1c1c; --muted:#5f5f5f; --faint:#969696;
  --acc:#000000; --acc-hover:#2e2e2e; --acc-fg:#ffffff;
  --input-bg:#f4f4f4; --hover:#fafafa; --border-strong:#828282;
  --code-bg:#f0f0f0; --pre-bg:#f7f7f7; --pre-fg:#222222;
  --quote-bg:#f6f6f6; --quote-border:#9a9a9a; --th-bg:#f2f2f2;
  --editor-bg:#fafafa; --catchip-border:#bdbdbd;
  --scroll:#c9c9c9; --scroll-hover:#b0b0b0;
  --sel-bg:#000000; --sel-fg:#ffffff;
  --mono:"Cascadia Code",Consolas,"JetBrains Mono",ui-monospace,monospace;
  --sans:"Segoe UI",system-ui,"Microsoft YaHei",sans-serif;
  --col:780px;
}
html.dark{
  --bg:#101010; --panel:#161616; --panel2:#1e1e1e; --line:#2b2b2b;
  --text:#d8d8d8; --muted:#a0a0a0; --faint:#707070;
  --acc:#f0f0f0; --acc-hover:#cfcfcf; --acc-fg:#101010;
  --input-bg:#1a1a1a; --hover:#1c1c1c; --border-strong:#4d4d4d;
  --code-bg:#1c1c1c; --pre-bg:#161616; --pre-fg:#cfcfcf;
  --quote-bg:#191919; --quote-border:#565656; --th-bg:#1d1d1d;
  --editor-bg:#141414; --catchip-border:#4d4d4d;
  --scroll:#333333; --scroll-hover:#454545;
  --sel-bg:#f0f0f0; --sel-fg:#101010;
}
*{box-sizing:border-box}
::selection{background:var(--sel-bg);color:var(--sel-fg)}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--text);font:15px/1.8 var(--sans);display:flex;flex-direction:column}

/* 顶栏 */
header{display:flex;align-items:center;gap:12px;padding:0 18px;height:52px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:10;flex-wrap:nowrap;overflow:hidden}
.logo{font-family:var(--mono);font-weight:700;font-size:15px;letter-spacing:.04em;color:var(--acc);user-select:none;flex:0 0 auto;white-space:nowrap}
.logo span{color:var(--faint);font-weight:400}
#search{flex:0 1 380px;min-width:0;background:var(--input-bg);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:6px 12px;font-size:13px;outline:none;transition:border-color .15s;text-overflow:ellipsis}
#search:focus{border-color:var(--border-strong);background:var(--bg)}
#search::placeholder{color:var(--faint)}
.actions{margin-left:auto;display:flex;align-items:center;gap:6px;flex:0 0 auto;white-space:nowrap}
.mode{color:var(--faint);font-size:11px;margin-right:4px;letter-spacing:.02em;white-space:nowrap}
button{background:var(--bg);color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:5px 11px;cursor:pointer;font-size:13px;line-height:1.5;transition:color .15s,border-color .15s,background .15s;white-space:nowrap;flex:0 0 auto;font-family:inherit}
button:hover{color:var(--acc);border-color:var(--border-strong);background:var(--hover)}
button.primary{background:var(--acc);color:var(--acc-fg);border-color:var(--acc);font-weight:600}
button.primary:hover{background:var(--acc-hover);border-color:var(--acc-hover);color:var(--acc-fg)}
button.danger{color:var(--faint)}
button.danger:hover{background:var(--acc);border-color:var(--acc);color:var(--acc-fg)}
button.disabled{opacity:.35;cursor:not-allowed}

/* 布局 */
main{display:flex;flex:1;min-height:0}
#sidebar{width:250px;flex:0 0 250px;border-right:1px solid var(--line);background:var(--panel);overflow-y:auto;padding:6px 0 40px}
.side-head{display:flex;justify-content:space-between;align-items:center;padding:12px 18px 6px;color:var(--faint);font-size:11px;letter-spacing:.05em;font-family:var(--sans)}
.side-head b{font-weight:400;color:var(--faint)}
/* 结构编辑：一次改完再保存 */
#struct-bar{display:flex;align-items:center;gap:6px;margin:4px 12px 8px;padding:6px 8px;border:1px dashed var(--border-strong);border-radius:6px;font-size:11px;color:var(--muted);background:var(--panel2)}
#struct-tip{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#struct-bar button{padding:2px 9px;font-size:11px;line-height:1.6}
#note-list.struct-on .cat{cursor:grab}
.cat-act button.has-tpl{color:var(--acc);font-weight:600}
.side-tools{display:flex;align-items:center;gap:10px}
#btn-new-cat{border:none;background:none;color:var(--faint);font-size:11px;padding:0;cursor:pointer;letter-spacing:.02em;font-family:inherit;border-radius:3px}
#btn-new-cat:hover{color:var(--acc)}
#btn-new-cat.disabled{opacity:.4;cursor:not-allowed}
.side-empty{color:var(--faint);font-size:12px;padding:14px 18px;line-height:1.7;margin:0}
.cat{position:relative;display:flex;justify-content:space-between;align-items:center;padding:10px 18px 2px;color:var(--muted);font-size:12px;letter-spacing:.02em}
.cat-line{display:flex;align-items:center;gap:5px;min-width:0}
.cat-caret{flex:0 0 auto;width:11px;text-align:center;color:var(--faint);cursor:pointer;font-size:9px;user-select:none;line-height:1}
.cat-caret:hover{color:var(--acc)}
.cat.collapsed .cat-label{color:var(--muted);font-weight:500}
.cat-label{color:var(--acc);font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--sans)}
.cat-label i{font-style:normal;font-weight:400;color:var(--faint);margin-left:1px}
.cat-act{display:none;position:absolute;right:26px;top:50%;transform:translateY(-50%);background:var(--panel);gap:4px}
.cat:hover .cat-act{display:inline-flex}
/* 只读视图（看别人空间 / 未登录）：写操作入口直接不显示，不留一堆灰按钮 */
body.ro #btn-edit, body.ro #btn-new, body.ro #btn-import, body.ro #btn-image,
body.ro #btn-audio, body.ro #btn-file, body.ro #btn-new-cat,
body.ro #btn-save, body.ro #btn-delete, body.ro #btn-move-note,
body.ro .cat-act{display:none!important}
.cat:hover b{visibility:hidden}
.cat-act button{border:1px solid transparent;background:none;color:var(--faint);padding:0 4px;font-size:11px;line-height:1.5;border-radius:4px;cursor:pointer}
.cat-act button:hover{color:var(--acc);border-color:var(--line);background:var(--bg)}
.cat.drop-target{outline:1px dashed var(--acc);outline-offset:-3px;background:var(--panel2)}
.cat.drop-forbid{opacity:.45;outline:1px dashed var(--border-strong);outline-offset:-3px}
.cat[draggable="true"] .cat-label{cursor:grab}
#note-list.drop-root{background:var(--panel2);box-shadow:inset 0 0 0 2px var(--acc)}
.cat b{font-weight:400;color:var(--faint);font-size:11px}
.note-link{display:block;padding:5px 18px 5px 28px;color:var(--text);text-decoration:none;font-size:14px;border-left:2px solid transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .12s}
.note-link[draggable="true"]{cursor:grab}
.note-link:active{cursor:grabbing}
.note-link:hover{color:var(--acc)}
.note-link.active{border-left-color:var(--acc);color:var(--acc);background:var(--panel2);font-weight:600}
#main{flex:1;overflow-y:auto;min-width:0}

/* 阅读栏（居中） */
#note-head,#content,#editor-wrap,#comments,#foot{width:100%;max-width:var(--col);margin:0 auto;padding-left:40px;padding-right:40px}
#note-head{padding-top:44px}
#note-title{margin:0;font-size:28px;font-weight:650;line-height:1.35;color:var(--acc);letter-spacing:.01em}
#note-meta{display:flex;gap:8px;align-items:center;margin:10px 0 0;color:var(--muted);font-size:12px;flex-wrap:wrap}
.catchip{border:1px solid var(--catchip-border);border-radius:20px;padding:1px 9px;color:var(--acc);font-family:var(--mono);font-size:11px}
.tag{background:var(--panel2);border-radius:20px;padding:1px 9px;color:var(--muted);font-size:11px}
.path{font-family:var(--mono);font-size:11px;color:var(--faint)}
.date{margin-left:auto;color:var(--faint)}
button.mini{border:1px solid var(--line);background:var(--bg);color:var(--muted);border-radius:20px;padding:1px 9px;font-size:11px;cursor:pointer}
button.mini:hover{color:var(--acc-fg);background:var(--acc);border-color:var(--acc)}

/* 正文 */
#content{padding-top:10px;padding-bottom:100px}
.md h1,.md h2,.md h3,.md h4{font-weight:600;color:var(--acc);line-height:1.4;margin:1.6em 0 .6em}
.md h1{font-size:22px}
.md h2{font-size:18px;padding-left:10px;border-left:3px solid var(--acc)}
.md h3{font-size:16px}
.md p{margin:.7em 0}
.md code{font-family:var(--mono);font-size:.87em;background:var(--code-bg);border-radius:4px;padding:1px 6px;color:var(--acc)}
.md pre{position:relative;background:var(--pre-bg);border:1px solid var(--line);border-radius:8px;padding:14px 16px;overflow-x:auto;margin:1em 0}
.md pre code{background:none;padding:0;color:var(--pre-fg);font-size:13px;line-height:1.65}
/* 复制按钮挂在滚动容器（pre）之外，代码块横向滚动时不会跟着跑 */
.md .code-wrap{position:relative;margin:1em 0}
.md .code-wrap pre{margin:0}
.md .code-wrap .copy{position:absolute;top:8px;right:8px;opacity:0;transition:.15s;font-size:11px;padding:3px 8px;background:var(--bg);color:var(--muted);border:1px solid var(--line);border-radius:5px;cursor:pointer;z-index:1}
.md .code-wrap:hover .copy{opacity:1}
.md .code-wrap .copy:hover{color:var(--acc-fg);background:var(--acc);border-color:var(--acc)}
.md pre .copy{position:absolute;top:8px;right:8px;opacity:0;transition:.15s;font-size:11px;padding:3px 8px;background:var(--bg);color:var(--muted);border:1px solid var(--line);border-radius:5px;cursor:pointer}
.md pre:hover .copy{opacity:1}
.md pre .copy:hover{color:var(--acc-fg);background:var(--acc);border-color:var(--acc)}
.md blockquote{margin:1em 0;padding:6px 16px;border-left:3px solid var(--quote-border);background:var(--quote-bg);color:var(--muted);border-radius:0 6px 6px 0}
.md table{border-collapse:collapse;width:100%;margin:14px 0;font-size:14px}
.md th,.md td{border:1px solid var(--line);padding:6px 12px;text-align:left}
.md th{background:var(--th-bg);color:var(--acc);font-weight:600}
.md a{color:var(--acc);text-decoration:underline;text-decoration-color:var(--quote-border);text-underline-offset:3px}
.md a:hover{text-decoration-color:var(--acc)}
.md hr{border:none;border-top:1px solid var(--line);margin:28px 0}
.md img{max-width:100%;border-radius:6px;filter:grayscale(1)}
html.dark .md img{filter:grayscale(1) brightness(.92)}
.md ul,.md ol{padding-left:1.4em}
.md li{margin:.25em 0}
.empty{color:var(--muted);padding:40px 0}

/* 灰阶语法高亮（浅色） */
.hljs-comment,.hljs-quote{color:#8f8f8f;font-style:italic}
.hljs-keyword,.hljs-selector-tag,.hljs-doctag,.hljs-meta{color:#000;font-weight:600}
.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attr,.hljs-attribute,.hljs-variable,.hljs-template-variable,.hljs-type{color:#3f3f3f}
.hljs-number,.hljs-literal,.hljs-symbol,.hljs-bullet,.hljs-built_in,.hljs-builtin-name,.hljs-params{color:#1f1f1f}
.hljs-title,.hljs-section,.hljs-name,.hljs-selector-id,.hljs-selector-class{color:#000;font-weight:600}
.hljs-deletion{color:#7a7a7a;text-decoration:line-through}
.hljs-emphasis{font-style:italic}
.hljs-strong{font-weight:700}
/* 灰阶语法高亮（暗色） */
html.dark .hljs-comment,html.dark .hljs-quote{color:#7c7c7c}
html.dark .hljs-keyword,html.dark .hljs-selector-tag,html.dark .hljs-doctag,html.dark .hljs-meta{color:#fff}
html.dark .hljs-string,html.dark .hljs-regexp,html.dark .hljs-addition,html.dark .hljs-attr,html.dark .hljs-attribute,html.dark .hljs-variable,html.dark .hljs-template-variable,html.dark .hljs-type{color:#c8c8c8}
html.dark .hljs-number,html.dark .hljs-literal,html.dark .hljs-symbol,html.dark .hljs-bullet,html.dark .hljs-built_in,html.dark .hljs-builtin-name,html.dark .hljs-params{color:#e2e2e2}
html.dark .hljs-title,html.dark .hljs-section,html.dark .hljs-name,html.dark .hljs-selector-id,html.dark .hljs-selector-class{color:#fff}
html.dark .hljs-deletion{color:#8a8a8a}

/* 编辑器 */
#editor-wrap{padding-top:10px;padding-bottom:60px}
#editor{width:100%;height:56vh;background:var(--editor-bg);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:14px;font:13px/1.65 var(--mono);resize:vertical;outline:none;transition:border-color .15s}
#editor:focus{border-color:var(--border-strong);background:var(--bg)}
.editor-bar{display:flex;gap:8px;align-items:center;margin-top:12px}
.editor-bar .tip{color:var(--faint);font-size:12px;margin-right:auto}
#foot{padding-bottom:44px;color:var(--faint);font-size:11px}

/* 提示 / 浮层 */
#hint-row{position:fixed;top:64px;left:50%;transform:translateX(-50%);z-index:20}
#edit-hint{display:none;background:var(--acc);color:var(--acc-fg);border-radius:8px;padding:8px 16px;font-size:13px;box-shadow:0 8px 28px rgba(0,0,0,.35)}
#toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:50}
.toast{background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--acc);padding:9px 14px;border-radius:6px;font-size:13px;max-width:420px;box-shadow:0 8px 28px rgba(0,0,0,.18);word-break:break-all}
.toast.err{background:var(--acc);color:var(--acc-fg);border-color:var(--acc);font-weight:600}
#dropzone{display:none;position:fixed;inset:0;background:rgba(0,0,0,.05);border:2px dashed var(--acc);z-index:60;align-items:center;justify-content:center;font-size:17px;letter-spacing:.08em;color:var(--acc);font-family:var(--mono);pointer-events:none}
#dropzone.on{display:flex}

/* 评论区 */
#comments{border-top:1px solid var(--line);margin-top:26px;padding-top:18px;padding-bottom:60px}
.cmt-top{display:flex;align-items:baseline;gap:10px}
.cmt-top h3{margin:0;font-size:15px;font-weight:600;color:var(--acc)}
.cmt-top h3 b{font-weight:400;color:var(--faint);font-size:12px}
.cmt-hint{color:var(--faint);font-size:12px}
.cmt{padding:10px 0;border-bottom:1px dashed var(--line)}
.cmt-head{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.cmt-head b{color:var(--acc);font-weight:600}
.cmt-head time{color:var(--faint)}
.cmt-del{border:none;background:none;color:var(--faint);font-size:12px;cursor:pointer;padding:0 2px;text-decoration:underline;font-family:inherit}
.cmt-del:hover{color:var(--acc)}
.cmt-text{font-size:14px;line-height:1.75;margin-top:4px;white-space:pre-wrap;word-break:break-word}
.cmt-empty{color:var(--faint);font-size:13px;margin:10px 0}
#cmt-editor{display:flex;gap:8px;align-items:flex-start;margin-top:12px}
#cmt-text{flex:1;min-height:64px;resize:vertical;font:13px/1.65 var(--sans);color:var(--text);background:var(--editor-bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px;outline:none;transition:border-color .15s}
#cmt-text:focus{border-color:var(--border-strong);background:var(--bg)}
#btn-cmt-send{flex:0 0 auto;margin-top:2px}

/* 用户层目录（depth 0）加粗区分 */
.cat[data-depth="0"] .cat-label{letter-spacing:.03em}
.cat[data-depth="0"]{border-top:1px solid transparent;margin-top:2px}

/* 滚动条 */
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:var(--scroll);border-radius:6px}
::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover)}
::-webkit-scrollbar-track{background:transparent}

@media (max-width:1180px){
  .mode{display:none}
  #search{flex-basis:260px}
}
@media (max-width:900px){
  #sidebar{display:none}
  #note-head,#content,#editor-wrap,#foot{padding-left:20px;padding-right:20px}
  #search{flex:1 1 auto;min-width:0}
  .actions{gap:4px}
  .actions button{padding:5px 9px;font-size:12px}
  header{gap:8px;padding:0 12px}
}
@media (max-width:760px){
  .lbl-md{display:none}
  .logo{font-size:13px}
}

/* ===== 外观层：透明壁纸 / 点击特效（数值由后台管理页写入 data/settings.json） ===== */
#kb-wall{position:fixed;inset:-30px;z-index:-1;pointer-events:none;background-position:center;background-repeat:no-repeat;background-size:cover;opacity:var(--kb-wall-op,0);filter:blur(var(--kb-wall-blur,0px));transition:opacity .35s ease,filter .35s ease;transform:translateZ(0)}
html.dark #kb-wall{filter:blur(var(--kb-wall-blur,0px)) saturate(.8) brightness(.92)}
/* 有壁纸时：阅读栏透出背景，导航栏 / 侧边栏 / 评论区改成毛玻璃 */
html.has-wall body{background:transparent}
:root{
  --glass:rgba(255,255,255,.68); --glass-solid:rgba(255,255,255,.95);
  --glass-brd:rgba(255,255,255,.62); --glass-blur:18px;
  --glass-field:rgba(255,255,255,.5); --glass-field-focus:rgba(255,255,255,.8);
}
html.dark{
  --glass:rgba(20,20,20,.66); --glass-solid:rgba(16,16,16,.95);
  --glass-brd:rgba(255,255,255,.1);
  --glass-field:rgba(0,0,0,.36); --glass-field-focus:rgba(0,0,0,.6);
}
html.has-wall header,
html.has-wall #sidebar,
html.has-wall #comments{
  background:var(--glass);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.1);
  backdrop-filter:blur(var(--glass-blur)) saturate(1.1);
}
html.has-wall header{border-bottom-color:var(--glass-brd)}
html.has-wall #sidebar{border-right-color:var(--glass-brd)}
html.has-wall #comments{
  border:1px solid var(--glass-brd);
  border-radius:14px;
  box-shadow:0 10px 30px rgba(0,0,0,.07);
  padding-bottom:34px;
  margin-bottom:26px;
}
html.has-wall #cmt-text{background:var(--glass-field)}
html.has-wall #cmt-text:focus{background:var(--glass-field-focus)}
/* 磨砂面偏灰，次要文字提一级保证可读 */
html.has-wall #comments .cmt-hint,
html.has-wall #comments .cmt-empty{color:var(--muted)}
@supports not ((backdrop-filter:blur(4px)) or (-webkit-backdrop-filter:blur(4px))){
  html.has-wall header,
  html.has-wall #sidebar,
  html.has-wall #comments{background:var(--glass-solid)}
  html.has-wall #cmt-text{background:var(--editor-bg)}
}

.kb-fx{position:absolute;left:0;top:0;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);will-change:transform,opacity}
.kb-fx.fixed{position:fixed;z-index:20}
.kb-fx.ring{border:1.5px solid var(--kb-fx-color,var(--acc));animation:kb-fx-ring var(--kb-fx-dur,560ms) cubic-bezier(.22,.61,.36,1) forwards}
.kb-fx.dot{background:var(--kb-fx-color,var(--acc));animation:kb-fx-dot var(--kb-fx-dur,560ms) ease-out forwards}
@keyframes kb-fx-ring{0%{transform:translate(-50%,-50%) scale(.28);opacity:.55}100%{transform:translate(-50%,-50%) scale(1);opacity:0}}
@keyframes kb-fx-dot{0%{transform:translate(-50%,-50%) scale(1);opacity:.5}100%{transform:translate(-50%,-50%) scale(0);opacity:0}}
@media (prefers-reduced-motion:reduce){.kb-fx{display:none}}

/* 后台管理页里的效果预览框 */
.kb-preview{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--panel);min-height:150px}
.kb-wall-local{position:absolute;inset:-24px;pointer-events:none;background-position:center;background-repeat:no-repeat;background-size:cover;opacity:var(--kb-wall-op,0);filter:blur(var(--kb-wall-blur,0px));transition:opacity .25s ease,filter .25s ease}


/* 弹窗：登录 / 注册 / 注册码 */
.kb-modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.42);padding:20px}
.kb-dialog{width:min(520px,100%);max-height:86vh;display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 18px 48px rgba(0,0,0,.28);overflow:hidden}
.kb-dlg-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--panel)}
.kb-dlg-head b{font-size:13px;letter-spacing:.02em}
.kb-x{background:none;border:none;color:var(--faint);font-size:20px;line-height:1;padding:0 4px;cursor:pointer}
.kb-x:hover{color:var(--acc);background:none;border:none}
.kb-dlg-body{padding:16px;overflow:auto}
.kb-tabs{display:flex;gap:6px;margin-bottom:14px}
.kb-tabs button{flex:1 1 0;padding:7px 10px;font-size:12px}
.kb-tabs button.on{background:var(--acc);color:var(--acc-fg);border-color:var(--acc);font-weight:600}
.kb-form{display:flex;flex-direction:column;gap:10px}
.kb-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.kb-form input{background:var(--input-bg);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:7px 10px;font-size:13px;font-family:inherit;outline:none}
.kb-form input:focus{border-color:var(--border-strong);background:var(--bg)}
.kb-form button{margin-top:2px}
.kb-msg{font-size:12px;color:var(--muted);min-height:1em}
.kb-msg.err{color:#c0392b}
html.dark .kb-msg.err{color:#ff8a80}
.kb-inv-quota b.ok{color:#1a7f37}
html.dark .kb-inv-quota b.ok{color:#7ee787}
.kb-note{font-size:11.5px;color:var(--faint);line-height:1.7;margin-top:6px}
.kb-inv-quota{font-size:12px;color:var(--muted);margin-bottom:10px}
.kb-inv-bar{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.kb-inv-table{width:100%;border-collapse:collapse;font-size:12px}
.kb-inv-table th{text-align:left;color:var(--faint);font-weight:400;border-bottom:1px solid var(--line);padding:5px 6px}
.kb-inv-table td{border-bottom:1px solid var(--line);padding:6px;vertical-align:middle}
.kb-inv-table tr.used td{color:var(--faint)}
code.inv{font-family:var(--mono);font-size:12px;background:var(--code-bg);padding:2px 6px;border-radius:4px;letter-spacing:.04em}
.inv-act{text-align:right;white-space:nowrap}
.inv-act button{padding:2px 8px;font-size:11px;margin-left:4px}

/* md 里的 ![](xxx.mp3) 渲染成的播放器 */
#content audio.kb-audio{display:block;width:100%;max-width:520px;margin:12px 0}

/* 导入选择弹窗：两个大按钮 */
.kb-import{display:flex;flex-direction:column;gap:10px}
.kb-imp{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;
  padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);
  cursor:pointer;color:var(--text);font:inherit;line-height:1.6}
.kb-imp:hover{border-color:var(--acc);background:var(--panel)}
.kb-imp b{font-size:13px;font-weight:600}
.kb-imp span{font-size:12px;color:var(--muted)}
.kb-imp code{font-family:var(--mono);font-size:11.5px;background:var(--bg);border:1px solid var(--line);
  padding:1px 4px;border-radius:3px}
