#cp-progress{position:fixed;top:0;left:0;height:3px;background:var(--accent);z-index:99999;transition:width .1s;width:0}
.cp-back-top{position:fixed;bottom:80px;right:24px;z-index:9999;width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--fg);cursor:pointer;display:none;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.15);transition:all .2s}
.cp-back-top:hover{transform:scale(1.1)}
.cp-back-top svg{width:18px;height:18px}
.cp-toc{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 20px;margin-bottom:24px;position:sticky;top:20px}
.cp-toc-title{font-size:15px;font-weight:700;margin-bottom:10px;color:var(--fg);cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none}
.cp-toc-title::after{content:"收起";font-size:12px;color:var(--muted);font-weight:400}
.cp-toc.collapsed .cp-toc-title::after{content:"展开"}
.cp-toc.collapsed .cp-toc-list{display:none}
.cp-toc-list{margin:0;padding-left:20px;font-size:14px;line-height:1.8}
.cp-toc-list a{color:var(--muted);text-decoration:none}
.cp-toc-list a:hover{color:var(--accent)}
.cp-code-block{position:relative}
.cp-copy-btn{position:absolute;top:8px;right:8px;padding:4px 10px;font-size:12px;border-radius:4px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;opacity:0;transition:opacity .2s}
.cp-code-block:hover .cp-copy-btn{opacity:1}
.cp-copy-btn.copied{background:var(--accent);color:#fff;border-color:var(--accent)}
.cp-lightbox{display:none;position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.85);align-items:center;justify-content:center;cursor:zoom-out}
.cp-lightbox.active{display:flex}
.cp-lightbox img{max-width:90vw;max-height:90vh;border-radius:4px;box-shadow:0 0 40px rgba(0,0,0,.5)}
.cp-breadcrumb{font-size:13px;color:var(--muted);margin-bottom:16px}
.cp-breadcrumb a{color:var(--muted);text-decoration:none}
.cp-breadcrumb a:hover{color:var(--accent)}
.cp-breadcrumb .sep{margin:0 6px}
.cp-reading-meta{display:flex;gap:8px;font-size:13px;color:var(--muted);margin-bottom:20px}
.cp-post-nav{display:flex;gap:16px;margin-top:32px;padding-top:24px;border-top:1px solid var(--border)}
.cp-post-nav a{flex:1;padding:16px;border:1px solid var(--border);border-radius:var(--radius-sm);text-decoration:none;color:var(--fg);transition:border-color .15s}
.cp-post-nav a:hover{border-color:var(--accent)}
.cp-post-nav span{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
.cp-post-nav strong{font-size:14px;display:block}
.cp-post-nav-next{text-align:right}
.cp-share{display:flex;align-items:center;gap:10px;margin:24px 0;padding:16px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.cp-share-label{font-size:13px;color:var(--muted);font-weight:600}
.cp-share-btn{padding:6px 14px;border-radius:4px;font-size:12px;font-weight:600;text-decoration:none;border:1px solid var(--border);background:var(--surface);color:var(--fg);cursor:pointer;transition:all .15s}
.cp-share-btn:hover{border-color:var(--accent);color:var(--accent)}
.cp-share-weibo{background:#e6162d;color:#fff;border-color:#e6162d}
.cp-share-weibo:hover{opacity:.85;color:#fff}
.cp-share-x{background:#000;color:#fff;border-color:#000}
.cp-share-x:hover{opacity:.85;color:#fff}
.cp-cookie-bar{position:fixed;bottom:0;left:0;right:0;z-index:99998;background:var(--card);border-top:1px solid var(--border);padding:12px 24px;display:flex;align-items:center;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.cp-cookie-bar button{padding:6px 16px;background:var(--accent);color:#fff;border:none;border-radius:4px;font-size:13px;cursor:pointer}