/* ============================================================
 * 正文代码卡片样式（前台文章 / 后台预览 / 会员端文档 共用）
 * 由 static/js/code-blocks.js 的 enhanceCodeBlocks() 生成结构：
 *   .code-card > .code-card-hd(.code-lang + .code-card-acts) + .code-card-bd(.code-gutter + pre.code-pre)
 * ============================================================ */
.article-content pre{margin:18px 0}
.code-card{margin:20px 0;border:1px solid #e3e8ef;border-radius:10px;overflow:hidden;background:#fbfcfe}
.code-card-hd{display:flex;align-items:center;gap:10px;padding:7px 12px;background:#f4f7fb;border-bottom:1px solid #e3e8ef}
.code-lang{font-size:12px;font-weight:600;letter-spacing:.4px;color:#5b6675;text-transform:uppercase}
.code-card-acts{margin-left:auto;display:flex;gap:6px}
.code-btn{border:1px solid #dbe2ec;background:#fff;border-radius:6px;padding:3px 10px;font-size:12px;
  color:#5b6675;cursor:pointer;line-height:1.6;transition:.15s}
.code-btn:hover{border-color:#1f6feb;color:#1f6feb}
.code-btn.on{background:#eaf1fe;border-color:#bcd3f8;color:#0b4fc4}
.code-btn.done{background:#eafaf0;border-color:#b7e0c2;color:#1a7f37}
.code-card-bd{display:flex;align-items:flex-start;background:#fbfcfe;overflow:hidden}
.code-gutter{flex:none;padding:13px 10px 13px 12px;background:#f4f7fb;border-right:1px solid #e8ecf2;
  color:#a3adba;text-align:right;white-space:pre;user-select:none;-webkit-user-select:none;
  font:13.5px/1.75 ui-monospace,SFMono-Regular,Menlo,Consolas,"Courier New",monospace}
.code-pre{flex:1 1 auto;min-width:0;margin:0 !important;padding:13px 14px;overflow-x:auto;white-space:pre;tab-size:4;
  font:13.5px/1.75 ui-monospace,SFMono-Regular,Menlo,Consolas,"Courier New",monospace;color:#26313f}
.code-pre code{font:inherit;white-space:inherit;background:none;padding:0;color:inherit}
.code-card.wrap .code-gutter{display:none}
.code-card.wrap .code-pre{white-space:pre-wrap;word-break:break-word;overflow-x:visible}
@media (max-width:640px){
  .code-gutter{display:none}
  .code-pre{font-size:13px}
}
/* 右下角轻提示（复制成功/失败） */
.code-toast{position:fixed;right:22px;bottom:22px;z-index:9999;max-width:min(360px,84vw);
  padding:10px 16px;border-radius:9px;background:#0f2743;color:#fff;font-size:14px;line-height:1.6;
  box-shadow:0 12px 32px rgba(15,39,67,.28);opacity:0;transform:translateY(10px);
  pointer-events:none;transition:opacity .2s,transform .2s}
.code-toast.show{opacity:1;transform:translateY(0)}
