/* ===== 小陈知识库 · 前台样式（扁平多彩自适应） ===== */
:root{
  --bg:#f4f6fb; --card:#ffffff; --ink:#1f2333; --ink2:#6b7280; --line:#e6e9f2;
  --brand:#5b5bd6; --brand2:#8b5cf6;
  --c-tech:#3b82f6; --c-product:#8b5cf6; --c-ops:#f59e0b; --c-design:#ec4899; --c-finance:#10b981; --c-other:#06b6d4;
  --radius:14px;
  --shadow:0 1px 2px rgba(31,35,51,.04), 0 4px 16px rgba(31,35,51,.06);
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.7}
a{color:inherit;text-decoration:none}
img{max-width:100%}
mark{background:#fde68a;color:#92400e;border-radius:3px;padding:0 2px}

/* ===== 顶栏 ===== */
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar-inner{max-width:1280px;margin:0 auto;padding:0 20px;height:60px;display:flex;align-items:center;gap:16px}
.logo{display:flex;align-items:center;gap:10px;flex-shrink:0}
.logo-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--brand),var(--brand2));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:17px;box-shadow:0 3px 8px rgba(91,91,214,.35)}
.logo-name{font-weight:700;font-size:16px;letter-spacing:.3px}
.logo-name small{display:block;font-size:10px;font-weight:500;color:var(--ink2);letter-spacing:1px}
/* 顶部导航菜单 */
.main-menu{display:flex;align-items:center;gap:4px;flex-shrink:0}
.main-menu a{padding:7px 12px;border-radius:8px;font-size:13.5px;font-weight:600;color:var(--ink2);transition:.15s;white-space:nowrap}
.main-menu a:hover{color:var(--brand);background:#f2f3fb}
.main-menu a.on{color:var(--brand);background:rgba(91,91,214,.08)}
.search{flex:1;max-width:460px;position:relative}
.search input{width:100%;height:38px;border:1px solid var(--line);border-radius:19px;padding:0 38px 0 16px;font-size:13px;outline:none;background:#f7f8fc;transition:.2s}
.search input:focus{border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px rgba(91,91,214,.12)}
.search svg{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:#9ca3af}
.top-actions{margin-left:auto;display:flex;gap:10px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);transition:.18s;text-decoration:none}
.btn:hover{border-color:#c7cbe0;background:#f7f8fc}
.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand2));border:none;color:#fff;box-shadow:0 3px 10px rgba(91,91,214,.3)}
.btn-primary:hover{background:linear-gradient(135deg,#4b4bcf,#7d4fe3);box-shadow:0 5px 14px rgba(91,91,214,.4);transform:translateY(-1px)}
.hamburger{display:none;width:38px;height:38px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer;align-items:center;justify-content:center}

/* ===== 主区 ===== */
.main{max-width:1280px;margin:22px auto;padding:0 20px;display:flex;gap:22px;align-items:flex-start}

/* 左侧分类 */
.sidebar{width:230px;flex-shrink:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 12px;box-shadow:var(--shadow);position:sticky;top:82px}
.side-title{font-size:12px;color:var(--ink2);font-weight:600;padding:4px 10px 10px;letter-spacing:1px}
.cat-item{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:9px;cursor:pointer;color:var(--ink2);font-size:13.5px;transition:.15s;position:relative}
.cat-item:hover{background:#f2f3fb;color:var(--ink)}
.cat-item.active{background:linear-gradient(90deg,rgba(91,91,214,.12),rgba(139,92,246,.08));color:var(--ink);font-weight:600}
.cat-item.active::before{content:"";position:absolute;left:-12px;top:6px;bottom:6px;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--brand),var(--brand2))}
.cat-item a{display:flex;align-items:center;gap:9px;width:100%;color:inherit}
.dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.cat-count{margin-left:auto;font-size:11px;background:#eef0f7;color:var(--ink2);border-radius:10px;padding:1px 8px;font-weight:600;white-space:nowrap}

/* 标签云 */
.tag-cloud{display:flex;flex-wrap:wrap;gap:12px 14px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;box-shadow:var(--shadow);line-height:1.4}
.cloud-tag{display:inline-flex;align-items:baseline;gap:4px;font-weight:600;padding:3px 8px;border-radius:8px;transition:.15s;cursor:pointer;opacity:.85}
.cloud-tag:hover{opacity:1;background:rgba(91,91,214,.08);transform:translateY(-1px)}
.cloud-tag em{font-style:normal;font-size:11px;color:var(--ink2);background:#eef0f7;border-radius:9px;padding:0 6px;font-weight:600}
/* 子级分类：树状缩进（左边竖线 + 子项前横线 + 小圆点） */
.cat-sub{padding-left:26px;margin-left:6px;position:relative;border-left:2px solid #eaecf5}
.cat-sub .cat-item{position:relative;font-size:13px;padding:6px 10px}
.cat-sub .cat-item::before{content:"";position:absolute;left:-18px;top:50%;width:14px;height:2px;background:#eaecf5;border-radius:1px;transform:translateY(-1px)}
.cat-sub .dot{width:7px;height:7px;opacity:.85}
/* 侧栏分组分隔线（标签云与分类分开） */
.cat-sep{margin:12px 12px;border-top:1px solid var(--line)}
/* 侧栏 Top6 标签 */
.side-tags-hd{display:flex;align-items:center;justify-content:space-between;padding:0 12px;margin-bottom:8px;font-size:13px;font-weight:700}
.side-tags-hd a{color:var(--ink2);transition:.15s}
.side-tags-hd a:hover{color:var(--brand)}
.side-tags-hd .more{font-size:11px;font-weight:600;color:#9aa0b1}
.side-tags{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px}
.side-tag{display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;border:1px solid;border-radius:8px;padding:5px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:.15s;max-width:100%;min-width:0;flex:0 0 auto}
.side-tag:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.08);opacity:.9}
.side-tag em{font-style:normal;font-size:10.5px;opacity:.75}
/* 6 色循环（浅色模式） */
.side-tag.c1{background:rgba(59,130,246,.12);color:#2563eb;border-color:rgba(59,130,246,.3)}
.side-tag.c2{background:rgba(139,92,246,.12);color:#7c3aed;border-color:rgba(139,92,246,.3)}
.side-tag.c3{background:rgba(245,158,11,.14);color:#b45309;border-color:rgba(245,158,11,.35)}
.side-tag.c4{background:rgba(236,72,153,.12);color:#db2777;border-color:rgba(236,72,153,.3)}
.side-tag.c5{background:rgba(16,185,129,.12);color:#059669;border-color:rgba(16,185,129,.3)}
.side-tag.c6{background:rgba(6,182,212,.12);color:#0891b2;border-color:rgba(6,182,212,.3)}
/* 深色模式（同一组色但提亮 + 背景加深） */
[data-theme="dark"] .side-tag.c1{background:rgba(59,130,246,.2);color:#93c5fd;border-color:rgba(96,165,250,.45)}
[data-theme="dark"] .side-tag.c2{background:rgba(139,92,246,.22);color:#c4b5fd;border-color:rgba(167,139,250,.45)}
[data-theme="dark"] .side-tag.c3{background:rgba(245,158,11,.22);color:#fcd34d;border-color:rgba(251,191,36,.5)}
[data-theme="dark"] .side-tag.c4{background:rgba(236,72,153,.2);color:#f9a8d4;border-color:rgba(244,114,182,.45)}
[data-theme="dark"] .side-tag.c5{background:rgba(16,185,129,.2);color:#6ee7b7;border-color:rgba(52,211,153,.45)}
[data-theme="dark"] .side-tag.c6{background:rgba(6,182,212,.2);color:#67e8f9;border-color:rgba(34,211,238,.45)}
.side-tags-empty{padding:4px 12px;font-size:12px;color:#9aa0b1;line-height:1.6}

/* ===== AI 问答 ===== */
.ai-wrap{max-width:780px;margin:0 auto}
.ai-head{text-align:center;margin-bottom:16px}
.ai-head h1{font-size:22px;margin:0 0 6px}
.ai-head p{color:var(--ink2);font-size:13px;margin:0}
.ai-chat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;max-height:56vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px}
.ai-empty{text-align:center;color:var(--ink2);font-size:13.5px;padding:36px 10px;line-height:2}
.ai-empty .big{font-size:36px}
.ai-empty p{margin:6px 0 10px}
.ai-sug{display:inline-block;margin:4px;padding:6px 14px;border:1px dashed var(--line);background:var(--bg);color:var(--ink2);border-radius:16px;font-size:12.5px;cursor:pointer;transition:.15s}
.ai-sug:hover{border-color:var(--brand);color:var(--brand)}
.ai-bubble{max-width:86%;padding:12px 15px;border-radius:13px;font-size:13.5px;line-height:1.75;word-break:break-word}
.ai-q{align-self:flex-end;background:var(--brand);color:#fff;border-bottom-right-radius:4px}
.ai-q-text{white-space:pre-wrap}
.ai-a{align-self:flex-start;background:#f2f3fb;border:1px solid #e8eaf5;border-bottom-left-radius:4px;color:#2a2f42}
.ai-a h1,.ai-a h2,.ai-a h3{font-size:15px;margin:10px 0 6px}
.ai-a h1:first-child,.ai-a h2:first-child,.ai-a h3:first-child{margin-top:0}
.ai-a p{margin:6px 0}
.ai-a ul,.ai-a ol{margin:6px 0;padding-left:20px}
.ai-a code{background:#e6e9f7;color:#7c3aed;padding:1px 6px;border-radius:5px;font-size:12.5px;font-family:Consolas,Monaco,monospace}
.ai-a pre{background:#1e2140;color:#d6daf5;border-radius:8px;padding:10px 12px;overflow-x:auto;margin:8px 0}
.ai-a pre code{background:none;color:inherit;padding:0}
.ai-a blockquote{border-left:3px solid var(--brand);background:#eef0fb;margin:8px 0;padding:4px 12px;color:var(--ink2)}
.ai-a table{border-collapse:collapse;margin:8px 0;font-size:12.5px}
.ai-a th,.ai-a td{border:1px solid var(--line);padding:4px 10px}
.ai-a th{background:#eef0f7}
.ai-loading{color:var(--ink2)}
.ai-loading::after{content:"";display:inline-block;width:8px;height:8px;border:2px solid var(--brand);border-top-color:transparent;border-radius:50%;margin-left:8px;vertical-align:middle;animation:ai-spin .8s linear infinite}
@keyframes ai-spin{to{transform:rotate(360deg)}}
.ai-err{color:#dc2626;font-size:13px}
.ai-refs{margin-top:2px}
.ai-refs-hd{font-size:11.5px;color:var(--ink2);font-weight:700;margin-bottom:6px}
.ai-refs-bubble{max-width:100%;background:none;border:none;padding:2px 2px 0;box-shadow:none}
.ai-refs-bubble .ai-ref{display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line);color:var(--ink);font-size:12.5px;padding:5px 12px;border-radius:8px;margin:0 6px 6px 0;text-decoration:none;transition:.15s}
.ai-refs-bubble .ai-ref:hover{border-color:var(--brand);color:var(--brand)}
.ai-inputbar{display:flex;gap:10px;margin-top:14px}
.ai-inputbar input{flex:1;height:46px;padding:0 16px;border:1.5px solid var(--line);border-radius:12px;font-size:14px;outline:none;background:var(--card);color:var(--ink);transition:.15s}
.ai-inputbar input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(91,91,214,.12)}
.ai-inputbar .btn{height:46px;padding:0 24px;border-radius:12px}
.ai-foot{text-align:center;color:var(--ink2);font-size:11.5px;margin-top:10px}
/* AI 激活面板 */
.ai-activate{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:34px 30px;max-width:520px;margin:0 auto}
.ai-act-card{text-align:center}
.ai-act-title{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:16px}
.ai-act-form{display:flex;flex-direction:column;gap:10px;max-width:340px;margin:0 auto}
.ai-act-form input{height:44px;padding:0 14px;border:1.5px solid var(--line);border-radius:10px;font-size:14px;outline:none;background:var(--card);color:var(--ink);transition:.15s;width:100%;box-sizing:border-box}
.ai-act-form input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(91,91,214,.12)}
.ai-act-form .btn{height:44px;border-radius:10px}
.ai-act-msg{font-size:12.5px;margin-top:10px;min-height:18px}
.ai-act-tip{font-size:11.5px;color:var(--ink2);margin-top:18px}
[data-theme="dark"] .ai-a{background:#232741;border-color:#33385a;color:#d4d7ea}
[data-theme="dark"] .ai-a code{background:#2b2f45;color:#b794f6}
[data-theme="dark"] .ai-a blockquote{background:#262a40}
[data-theme="dark"] .ai-a th{background:#2b2f45}
[data-theme="dark"] .ai-sug{background:#1d2030;color:#a0a6bd}

.chev{width:14px;height:14px;color:#9ca3af;transition:.2s;flex-shrink:0}
.chev.open{transform:rotate(90deg)}

/* 右侧内容 */
.content{flex:1;min-width:0}
.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px}
.page-head h1{font-size:22px;font-weight:700}
.page-head .desc{color:var(--ink2);font-size:13px;margin-top:2px}
.filters{display:flex;gap:8px}
.chip{height:32px;padding:0 14px;border-radius:16px;border:1px solid var(--line);background:#fff;font-size:12.5px;color:var(--ink2);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.15s}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}

/* 文档卡片 */
.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.doc-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 18px 14px;cursor:pointer;transition:.2s;position:relative;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.doc-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(31,35,51,.1);border-color:transparent}
.doc-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent,var(--brand))}
/* 置顶徽标（左上角围角） */
.doc-card .top-flag{position:absolute;top:0;left:0;z-index:2;display:inline-flex;align-items:center;gap:3px;background:linear-gradient(135deg,#ff6b35,#ef4444);color:#fff;font-size:11px;font-weight:700;letter-spacing:.5px;line-height:1;padding:5px 13px 5px 9px;border-radius:0 0 12px 0;box-shadow:0 2px 8px rgba(239,68,68,.32)}
.doc-card:has(.top-flag){padding-top:34px}
.doc-card h3{font-size:15.5px;font-weight:600;margin:2px 0 8px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.doc-card h3:hover{color:var(--brand)}
.doc-card p{font-size:12.5px;color:var(--ink2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:auto}
.doc-meta{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#9aa0b1;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid #f0f2f8}
.tag{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:6px;font-size:11px;font-weight:600}
.tag-gray{background:#eef0f7;color:#6b7280}
[data-theme="dark"] .tag-gray{background:#2b2f45;color:#a0a6bd}
/* 文档标签多彩（6 色循环） */
.tagc1{background:rgba(59,130,246,.12);color:#2563eb}
.tagc2{background:rgba(139,92,246,.12);color:#7c3aed}
.tagc3{background:rgba(245,158,11,.14);color:#b45309}
.tagc4{background:rgba(236,72,153,.12);color:#db2777}
.tagc5{background:rgba(16,185,129,.12);color:#059669}
.tagc6{background:rgba(6,182,212,.12);color:#0891b2}
[data-theme="dark"] .tagc1{background:rgba(59,130,246,.2);color:#93c5fd}
[data-theme="dark"] .tagc2{background:rgba(139,92,246,.2);color:#c4b5fd}
[data-theme="dark"] .tagc3{background:rgba(245,158,11,.22);color:#fcd34d}
[data-theme="dark"] .tagc4{background:rgba(236,72,153,.2);color:#f9a8d4}
[data-theme="dark"] .tagc5{background:rgba(16,185,129,.2);color:#6ee7b7}
[data-theme="dark"] .tagc6{background:rgba(6,182,212,.2);color:#67e8f9}
.view-num{display:inline-flex;align-items:center;gap:4px;margin-left:auto}
.empty{background:var(--card);border:1px dashed #d5d9e8;border-radius:var(--radius);padding:60px 20px;text-align:center;color:var(--ink2)}
.empty .big{font-size:40px;margin-bottom:8px}

/* ===== 详情页三栏 ===== */
.main.wide{max-width:1400px}
.article{flex:1;min-width:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:34px 42px;max-width:860px}
.crumb{font-size:12.5px;color:var(--ink2);margin-bottom:18px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.crumb a:hover{color:var(--brand)}
.crumb .sep{color:#c3c7d8}
.article h1{font-size:27px;font-weight:700;line-height:1.4;margin-bottom:14px}
.meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:14px;color:var(--ink2);font-size:12.5px;padding-bottom:14px}
.meta-row .avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#5b5bd6,#ec4899);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}
/* 第二行：分类/置顶/文档标签/编辑 */
.meta-tags{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.meta-tags .sep{color:var(--ink2);opacity:.5;margin:0 2px;font-weight:400}
.meta-tags .actions{margin-left:auto}
.lock-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:6px;font-size:11px;font-weight:600;background:rgba(217,119,6,.12);color:#d97706}
.priv-bar{margin-top:14px;padding:10px 14px;border-radius:10px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);color:#b45309;font-size:12.5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.actions{margin-left:auto;display:flex;gap:8px}
.actions .btn{height:32px;padding:0 13px;font-size:12.5px}

/* Markdown 渲染区 */
.md{padding-top:24px;font-size:15px;color:#2a2f42;overflow-wrap:break-word}
.md h1{font-size:23px;margin:8px 0 14px;line-height:1.4;color:var(--ink);font-weight:700}
.md h2{font-size:20px;margin:30px 0 12px;padding-left:12px;border-left:4px solid var(--brand);line-height:1.4;color:var(--brand);font-weight:700}
.md h3{font-size:16.5px;margin:24px 0 10px;color:var(--brand);font-weight:600}
.md h4{font-size:15px;margin:20px 0 8px;color:var(--brand2);font-weight:600}
.md p{margin:10px 0}
.md ul,.md ol{margin:10px 0 10px 4px;padding-left:22px}
.md li{margin:5px 0}
.md blockquote{margin:14px 0;padding:12px 16px;background:#f2f3fb;border-left:4px solid var(--brand2);border-radius:0 8px 8px 0;color:#4a4f68}
.md code{background:#eef0f7;color:#7c3aed;padding:2px 6px;border-radius:5px;font-size:13px;font-family:Consolas,Monaco,"Courier New",monospace}
.md pre{position:relative;background:#f2f3f9;border:1px solid #dfe3f0;border-radius:10px;padding:40px 18px 16px;margin:14px 0;overflow-x:auto}
.md pre::before{content:attr(data-lang);position:absolute;top:0;left:0;right:0;padding:7px 16px;background:#e8eaf5;color:#6b7280;font-size:11.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;border-bottom:1px solid #dfe3f0;border-radius:10px 10px 0 0;font-family:Consolas,Monaco,monospace}
.md pre:not([data-lang])::before{content:"code"}
.md pre code{background:none;color:#24292f;padding:0;font-size:13px;line-height:1.7}
/* 代码块复制按钮 */
.md pre{position:relative}
.code-copy{position:absolute;top:8px;right:8px;border:1px solid rgba(0,0,0,.12);background:rgba(255,255,255,.85);color:#4b5563;font-size:11px;padding:3px 10px;border-radius:6px;cursor:pointer;transition:.15s;z-index:2}
.code-copy:hover{background:#fff;color:var(--brand);border-color:var(--brand)}
/* 图片 lightbox */
.lightbox{position:fixed;inset:0;background:rgba(10,12,20,.82);z-index:200;display:flex;align-items:center;justify-content:center;cursor:zoom-out;animation:lb-fade .18s}
.lightbox img{max-width:90vw;max-height:88vh;border-radius:10px;box-shadow:0 10px 50px rgba(0,0,0,.5)}
@keyframes lb-fade{from{opacity:0}to{opacity:1}}
[data-theme="dark"] .code-copy{background:rgba(30,33,64,.9);color:#a0a6bd;border-color:#3a3f66}
.md table{border-collapse:collapse;margin:14px 0;width:100%;font-size:13.5px}
.md th{background:#f2f3fb;text-align:left}
.md th,.md td{border:1px solid var(--line);padding:8px 12px}
.md img{border-radius:10px}
.md a{color:#2563eb;border-bottom:1px solid rgba(37,99,235,.35);transition:color .15s,background .15s,border-color .15s}
.md a:hover{color:#1d4ed8;border-bottom-color:#1d4ed8;background:rgba(37,99,235,.07)}
.md hr{border:none;border-top:1px solid var(--line);margin:24px 0}
.md input[type="checkbox"]{margin-right:6px}

/* 上下篇 */
.prevnext{display:flex;gap:12px;margin-top:36px;padding-top:20px;border-top:1px solid var(--line)}
.pn{flex:1;border:1px solid var(--line);border-radius:10px;padding:12px 16px;transition:.15s;display:block}
.pn:hover{border-color:var(--brand);background:#fafaff}
.pn .lbl{font-size:11.5px;color:#9aa0b1;margin-bottom:4px}
/* 相关文档 */
.related{margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}
.related-hd{font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:12px}
.related-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.rel-item{display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);border-radius:10px;padding:11px 14px;transition:.15s;text-decoration:none}
.rel-item:hover{border-color:var(--brand);background:#fafaff}
.rel-title{font-size:13.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rel-meta{font-size:11px;color:var(--ink2)}
@media(max-width:640px){ .related-list{grid-template-columns:1fr} }
.pn .t{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pn.next{text-align:right}

/* 右侧目录 */
.toc{width:230px;flex-shrink:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);position:sticky;top:82px;max-height:calc(100vh - 110px);overflow-y:auto}
.toc-title{font-size:12px;color:var(--ink2);font-weight:600;letter-spacing:1px;margin-bottom:12px;display:flex;align-items:center;gap:6px}
.toc a{display:block;padding:5px 10px;border-radius:7px;font-size:12.8px;color:var(--ink2);border-left:2px solid transparent;transition:.15s;line-height:1.5;cursor:pointer}
.toc a:hover{color:var(--ink);background:#f2f3fb}
.toc a.active{color:var(--brand);font-weight:600;border-left-color:var(--brand);background:rgba(91,91,214,.06)}
.toc a.lv2{padding-left:22px;font-size:12.3px}
.toc a.lv3{padding-left:34px;font-size:12px}
.toc .back{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.toc .back a{display:flex;align-items:center;gap:6px;color:#9aa0b1;font-size:12px}

/* 搜索页 */
.search-bar{display:flex;gap:10px;margin-bottom:18px}
.search-bar input{flex:1;height:44px;border:1px solid var(--line);border-radius:10px;padding:0 16px;font-size:14px;outline:none;background:#fff}
.search-bar input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(91,91,214,.12)}
.search-bar .btn{height:44px;padding:0 26px}
.result-item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:12px;box-shadow:var(--shadow);display:block;transition:.15s}
.result-item:hover{border-color:var(--brand)}
.result-item h3{font-size:15.5px;font-weight:600;margin-bottom:6px}
.result-item h3:hover{color:var(--brand)}
.result-item p{font-size:13px;color:var(--ink2);margin-bottom:8px}
.result-meta{display:flex;align-items:center;gap:10px;font-size:11.5px;color:#9aa0b1}

/* 分页 */
.pager{display:flex;align-items:center;gap:8px;padding:18px 0 4px;justify-content:flex-end;font-size:13px;flex-wrap:wrap}
.pager-info{color:#9aa0b1;margin-right:auto}
.pg{min-width:32px;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:#fff;font-size:13px;color:var(--ink2)}
.pg:hover{border-color:var(--brand);color:var(--brand)}
.pg.cur{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:600}
.pg.dots{border:none;background:none}

/* 错误页 */
.err-page{max-width:520px;margin:80px auto;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:50px 30px;box-shadow:var(--shadow)}
.err-page .code{font-size:56px;font-weight:800;background:linear-gradient(135deg,var(--brand),var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent}
.err-page p{color:var(--ink2);margin:14px 0 22px}

/* 抽屉 */
.drawer-mask{display:none;position:fixed;inset:0;background:rgba(20,22,35,.4);z-index:60}
.drawer-mask.show{display:block}

/* 页脚 */
.footer{max-width:1280px;margin:30px auto 0;padding:20px;border-top:1px solid var(--line);color:#9aa0b1;font-size:12px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.footer.wide{max-width:1400px}

/* ===== 响应式 ===== */
@media(max-width:1200px){ .toc{display:none} }
@media(max-width:1024px){
  .sidebar{display:none;position:fixed;top:0;left:0;bottom:0;width:270px;z-index:70;border-radius:0;box-shadow:0 0 40px rgba(0,0,0,.2);overflow-y:auto}
  .sidebar.open{display:block}
  .hamburger{display:inline-flex}
}
@media(max-width:860px){
  .main-menu{display:none} /* 小屏隐藏顶部菜单，用抽屉分类导航 */
}
@media(max-width:768px){
  /* 顶栏在窄屏折叠：搜索框变图标/标题截断/AI 只留 emoji */
  .search{display:none}
  .logo-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .logo-name small{display:none}
  .ai-entry .btn-text{display:none}
  .ai-entry .emoji{font-size:16px}
  .topbar-inner{gap:8px}
}
@media(max-width:640px){
  .topbar-inner{padding:0 14px;gap:10px}
  .search{max-width:none}
  .top-actions .btn-text{display:none}
  .doc-grid{grid-template-columns:1fr}
  .page-head{flex-direction:column;align-items:flex-start}
  .article{padding:24px 18px}
  .article h1{font-size:21px}
  .meta-row{gap:10px}
  .prevnext{flex-direction:column}
}

/* ===== 深色模式 ===== */
[data-theme="dark"]{
  --bg:#14161f; --card:#1d2030; --ink:#e8eaf5; --ink2:#a0a6bd; --line:#2b2f42;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.28);
}
[data-theme="dark"] .topbar{background:rgba(29,32,48,.92);border-bottom-color:var(--line)}
[data-theme="dark"] .logo-name small{color:#6b7190}
[data-theme="dark"] .search input{background:#262a3d;border-color:var(--line);color:var(--ink)}
[data-theme="dark"] .search input::placeholder{color:#6b7190}
[data-theme="dark"] .btn{background:var(--card);border-color:var(--line);color:var(--ink)}
[data-theme="dark"] .btn:hover{background:#262a3d;border-color:#3a3f5c}
[data-theme="dark"] .cat-item:hover{background:#262a3d}
[data-theme="dark"] .cat-count{background:#2b2f42;color:#a0a6bd}
[data-theme="dark"] .cat-sub{border-left-color:#33385a}
[data-theme="dark"] .cat-sub .cat-item::before{background:#33385a}
[data-theme="dark"] .chev{color:#5d6380}
[data-theme="dark"] .article{color:var(--ink)}
[data-theme="dark"] .md{color:#d4d7ea}
[data-theme="dark"] .md h1{color:#f0f1fa}
[data-theme="dark"] .md h2,[data-theme="dark"] .md h3{color:#a5a8ff}
[data-theme="dark"] .md h4{color:#c4b5fd}
[data-theme="dark"] .md blockquote{background:#262a40;border-left-color:#8b5cf6;color:#b9bdd4}
[data-theme="dark"] .md code{background:#2b2f45;color:#b794f6}
[data-theme="dark"] .md pre{background:#22263a;border-color:#33385a}
[data-theme="dark"] .md pre::before{background:#2b2f45;color:#9aa0b8;border-bottom-color:#33385a}
[data-theme="dark"] .md pre code{color:#d6daf5}
[data-theme="dark"] .md th{background:#2b2f45}
[data-theme="dark"] .md th,.md td{border-color:#33385a}
[data-theme="dark"] .tag{color:#c5c9e0!important}
[data-theme="dark"] .doc-meta,.tbl .row-sub{color:#8a90ab}
[data-theme="dark"] .doc-meta{border-top-color:#2b2f42}
[data-theme="dark"] .doc-card p,.result-item p{color:#9aa0b8}
[data-theme="dark"] .pager-info,.result-meta{color:#8a90ab}
[data-theme="dark"] .pg{background:var(--card);border-color:var(--line);color:#a0a6bd}
[data-theme="dark"] .chip{background:var(--card);border-color:var(--line);color:#a0a6bd}
[data-theme="dark"] .toc a{color:#a0a6bd}
[data-theme="dark"] .toc a:hover{background:#262a3d;color:var(--ink)}
[data-theme="dark"] .footer{border-top-color:var(--line);color:#6b7190}
[data-theme="dark"] .empty{color:#8a90ab}
[data-theme="dark"] .crumb a:hover{color:#8d8df0}
[data-theme="dark"] .prevnext .pn{border-color:var(--line)}
[data-theme="dark"] .prevnext .pn:hover{background:#22263a}

/* 用户中心 */
.user-wrap{max-width:860px;margin:0 auto;padding:18px 0 40px}
.user-head{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:16px;box-shadow:var(--shadow)}
.user-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#5b5bd6,#ec4899);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800}
.user-email{font-size:16px;font-weight:700;color:var(--ink)}
.user-meta{font-size:12px;color:var(--ink2);margin-top:4px}
.fav-list{display:flex;flex-direction:column;gap:8px}
.fav-item{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:11px 14px;transition:.15s}
.fav-item:hover{border-color:var(--brand);background:#fafaff}
.fav-title{font-size:14px;font-weight:600;color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fav-meta{font-size:11.5px;color:var(--ink2);flex-shrink:0}
.fav-del{margin-left:auto;flex-shrink:0}
.ai-hist-item{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:8px}
.ai-hist-q{font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:6px}
.ai-hist-a{font-size:12.5px;color:var(--ink2);line-height:1.7;margin-bottom:8px}
.ai-hist-meta{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#9aa0b1}
.ai-hist-meta .link-btn{color:#dc2626;background:none;border:none;cursor:pointer;font-size:12px}
.fav-btn.on{background:rgba(245,158,11,.12);color:#b45309;border-color:#fcd34d}
.fs-ctrl{display:inline-flex;gap:2px;margin-left:2px}
.fs-btn{width:30px;height:30px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--ink2);font-size:11.5px;font-weight:700;cursor:pointer;transition:.15s}
.fs-btn:hover{border-color:var(--brand);color:var(--brand)}
[data-theme="dark"] .fav-item:hover{background:#22263a}
@media(max-width:640px){ .fav-item{flex-wrap:wrap} .fav-meta{flex-basis:100%} .fav-del{margin-left:auto} }

/* ===== 用户中心（全宽卡片式） ===== */
.main.solo{max-width:1060px;margin:0 auto;padding:0 18px}
.main.solo .content.full{flex:1;min-width:0;padding:18px 0 50px}
.uc-wrap{display:flex;flex-direction:column;gap:18px}
.uc-head{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#5b5bd6,#8b5cf6);border-radius:16px;padding:26px 28px;color:#fff;box-shadow:0 10px 30px rgba(91,91,214,.25)}
.uc-avatar{width:66px;height:66px;border-radius:50%;background:rgba(255,255,255,.22);border:2px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;flex-shrink:0}
.uc-name{font-size:22px;font-weight:800}
.uc-email{font-size:13px;opacity:.9;margin-top:3px}
.uc-badges{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}
.uc-badges .pill{display:inline-block;font-size:11px;padding:2px 9px;border-radius:20px;background:rgba(255,255,255,.18)}
.uc-badges .pill.ok{background:rgba(16,185,129,.9);color:#fff}
.uc-badges .pill.gray{background:rgba(255,255,255,.12);color:rgba(255,255,255,.85)}
.uc-actions{margin-left:auto;display:flex;gap:8px;flex-shrink:0}
.uc-actions .btn{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);color:#fff;height:34px;padding:0 16px;border-radius:8px;cursor:pointer;font-size:13px;text-decoration:none;display:inline-flex;align-items:center;transition:.15s}
.uc-actions .btn:hover{background:rgba(255,255,255,.3)}
.uc-actions .btn.btn-primary{background:#fff;color:#5b5bd6;border-color:#fff;font-weight:700}
.uc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.uc-stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;align-items:center;box-shadow:var(--shadow)}
.uc-stat .num{font-size:30px;font-weight:800;line-height:1}
.uc-stat .lbl{font-size:12.5px;color:var(--ink2);margin-top:8px}
.uc-stat.c1 .num{color:#2563eb}.uc-stat.c2 .num{color:#7c3aed}.uc-stat.c3 .num{color:#0891b2}
.uc-panel{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.uc-panel-hd{display:flex;align-items:center;gap:8px;padding:16px 20px;border-bottom:1px solid var(--line)}
.uc-panel-hd h2{font-size:15px;font-weight:700;color:var(--ink);margin:0}
.uc-panel-hd .sub{font-size:12px;color:var(--ink2)}
.uc-panel-hd .more{margin-left:auto;font-size:12px;color:var(--brand);text-decoration:none}
.uc-panel .fav-list,.uc-panel .ai-hist-list{padding:14px 18px}
.uc-empty{text-align:center;color:#9aa0b1;padding:26px 0;font-size:13px}
.fav-item{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:11px 14px;transition:.15s;margin-bottom:8px}
.fav-item:hover{border-color:var(--brand);background:#fafaff}
.fav-title{font-size:14px;font-weight:600;color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fav-meta{font-size:11.5px;color:var(--ink2);flex-shrink:0}
.fav-del{margin-left:auto;flex-shrink:0}
.ai-hist-item{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:8px}
.ai-hist-q{font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:6px}
.ai-hist-a{font-size:12.5px;color:var(--ink2);line-height:1.7;margin-bottom:8px}
.ai-hist-meta{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#9aa0b1}
.ai-hist-meta .link-btn{color:#dc2626;background:none;border:none;cursor:pointer;font-size:12px}
/* 编辑资料弹窗（前台） */
.modal-mask{position:fixed;inset:0;background:rgba(10,12,20,.55);z-index:300;display:flex;align-items:center;justify-content:center}
.modal{background:var(--card);border-radius:14px;width:94%;max-width:440px;box-shadow:0 20px 60px rgba(0,0,0,.25);overflow:hidden}
.modal-hd{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid var(--line);font-size:15px;font-weight:700;color:var(--ink)}
.modal-hd .x{background:none;border:none;font-size:16px;color:var(--ink2);cursor:pointer}
.modal-bd{display:flex;flex-direction:column;gap:10px}
.modal-bd .form-item label{font-size:12px;color:var(--ink2);display:block;margin-bottom:5px}
.modal-bd .input{border:1.5px solid var(--line);border-radius:9px;padding:0 12px;font-size:14px;width:100%;box-sizing:border-box;background:var(--card);color:var(--ink);outline:none}
.modal-bd .input:focus{border-color:var(--brand)}
.modal-bd .help{font-size:11.5px;color:var(--ink2)}
/* 登录页双 Tab */
.login-tabs{display:flex;gap:6px;background:#eef0f7;border-radius:10px;padding:4px;margin-bottom:20px;max-width:340px;margin-left:auto;margin-right:auto}
.login-tab{flex:1;border:none;background:transparent;padding:9px 0;border-radius:8px;font-size:13.5px;font-weight:600;color:var(--ink2);cursor:pointer;transition:.15s}
.login-tab.on{background:var(--card);color:var(--brand);box-shadow:0 2px 8px rgba(0,0,0,.08)}
[data-theme="dark"] .login-tabs{background:#2b2f45}
/* 留言板 */
.comment-box{margin-top:30px;border-top:1px solid var(--line);padding-top:22px}
.comment-hd{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:14px}
.comment-hd .sub{font-size:12px;color:var(--ink2);font-weight:400;margin-left:6px}
.comment-empty{text-align:center;color:#9aa0b1;padding:22px 0;font-size:13px;border:1px dashed var(--line);border-radius:10px}
.comment-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.cm-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#5b5bd6,#ec4899);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;flex-shrink:0}
.cm-body{flex:1;min-width:0}
.cm-head{display:flex;align-items:center;gap:10px;margin-bottom:5px}
.cm-name{font-size:13px;font-weight:700;color:var(--ink)}
.cm-time{font-size:11px;color:#9aa0b1}
.cm-del{margin-left:auto;background:none;border:none;color:#dc2626;font-size:12px;cursor:pointer;opacity:0;transition:.15s}
.comment-item:hover .cm-del{opacity:1}
.cm-del:hover{text-decoration:underline}
.cm-del-side{opacity:1!important;font-size:11.5px;background:#fee2e2;border-radius:6px;padding:2px 8px;flex-shrink:0}
.cm-del-side:hover{background:#fecaca}
.cm-emojis-side{position:relative;margin-bottom:8px}
.emoji-btn-sm{padding:4px 10px!important;font-size:12px!important}
.cm-side-item .cm-head{flex-wrap:wrap;gap:6px}
.cm-side-item .cm-name{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.comments-side .emoji-panel{max-width:284px;grid-template-columns:repeat(6,1fr)}
.cm-text{font-size:13.5px;color:var(--ink);line-height:1.7;word-break:break-word}
.comment-form{margin-top:16px}
.comment-form textarea{width:100%;box-sizing:border-box;border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;font-size:13.5px;min-height:88px;resize:vertical;outline:none;background:var(--card);color:var(--ink);font-family:inherit}
.comment-form textarea:focus{border-color:var(--brand)}
.comment-form-ft{display:flex;align-items:center;justify-content:space-between;margin-top:8px}
.comment-form-ft .hint{font-size:11px;color:#9aa0b1}
.comment-login-tip{text-align:center;padding:8px 0}
/* toast（前台） */
.toast{position:fixed;top:70px;left:50%;transform:translate(-50%,-10px);background:#111827;color:#fff;padding:10px 22px;border-radius:8px;font-size:13px;z-index:400;opacity:0;transition:.2s;box-shadow:0 6px 20px rgba(0,0,0,.2);pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.ok{background:#059669}.toast.err{background:#dc2626}
@media(max-width:640px){
  .uc-head{flex-wrap:wrap;padding:20px}
  .uc-actions{width:100%;margin-left:0}
  .uc-stats{grid-template-columns:repeat(3,1fr);gap:8px}
  .uc-stat{padding:14px 8px}
  .uc-stat .num{font-size:22px}
  .fav-item{flex-wrap:wrap}
  .fav-meta{flex-basis:100%}
}

/* ===== 留言板（美化版） ===== */
.comment-box{margin-top:34px;padding-top:24px;border-top:2px dashed var(--line);background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 24px 24px;box-shadow:var(--shadow)}
.comment-hd{font-size:16px;font-weight:800;color:var(--ink);margin-bottom:16px;display:flex;align-items:baseline;gap:8px}
.comment-hd::before{content:'';width:4px;height:16px;background:linear-gradient(180deg,#5b5bd6,#ec4899);border-radius:2px;align-self:center}
.comment-hd .sub{font-size:12px;color:var(--ink2);font-weight:400}
.comment-empty{text-align:center;color:#9aa0b1;padding:26px 0;font-size:13px;background:#f8f9fd;border-radius:10px}
[data-theme="dark"] .comment-empty{background:#1c1f30}
.comment-item{display:flex;gap:12px;padding:14px 4px;border-bottom:1px solid var(--line);transition:.15s}
.comment-item:last-of-type{border-bottom:none}
.comment-item:hover{background:#fafaff}
[data-theme="dark"] .comment-item:hover{background:#1e2133}
.cm-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#5b5bd6,#ec4899);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;flex-shrink:0;box-shadow:0 3px 8px rgba(91,91,214,.25)}
.cm-body{flex:1;min-width:0}
.cm-head{display:flex;align-items:center;gap:10px;margin-bottom:5px}
.cm-name{font-size:13.5px;font-weight:700;color:var(--ink)}
.cm-time{font-size:11px;color:#9aa0b1}
.cm-del{margin-left:auto;background:none;border:none;color:#dc2626;font-size:12px;cursor:pointer;opacity:0;transition:.15s}
.comment-item:hover .cm-del{opacity:1}
.cm-del:hover{text-decoration:underline}
.cm-text{font-size:14px;color:var(--ink);line-height:1.75;word-break:break-word}
.comment-form{margin-top:16px;padding:14px;background:#f8f9fd;border-radius:12px}
[data-theme="dark"] .comment-form{background:#1c1f30}
.comment-form textarea{width:100%;box-sizing:border-box;border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;font-size:14px;min-height:92px;resize:vertical;outline:none;background:var(--card);color:var(--ink);font-family:inherit;transition:.15s}
.comment-form textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(91,91,214,.12)}
.comment-form-ft{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.comment-form-ft .hint{font-size:11px;color:#9aa0b1}
.comment-login-tip{text-align:center;padding:6px 0}
.comment-login-tip .btn{height:38px;padding:0 24px;border-radius:9px}
@media(max-width:640px){ .comment-box{padding:16px 14px} .comment-item{flex-wrap:nowrap} }

/* ===== 我的页面：激活高级功能（新版折叠式样式见下方） ===== */
.uc-activate-msg{font-size:12.5px;padding:0 20px 16px;min-height:16px}
/* ===== 文档附件 ===== */
.attach-box{margin-top:26px;padding:18px 20px;background:var(--card);border:1.5px dashed var(--line);border-radius:14px}
.attach-hd{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:12px}
.attach-hd::before{content:'';display:inline-block;width:4px;height:14px;background:linear-gradient(180deg,#5b5bd6,#ec4899);border-radius:2px;margin-right:8px;vertical-align:-2px}
.attach-item{display:flex;align-items:center;gap:14px;padding:10px 14px;background:#f8f9fd;border-radius:10px}
[data-theme="dark"] .attach-item{background:#1c1f30}
.attach-name{flex:1;font-size:13.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attach-lock{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#fff8ec;border:1px solid #fde68a;border-radius:10px;font-size:13px;color:#92400e;flex-wrap:wrap}
[data-theme="dark"] .attach-lock{background:#3a2f1a;border-color:#6b5316;color:#fcd34d}
.attach-lock .btn{margin-left:auto}

/* ===== 普通/高级用户标识 ===== */
.uc-badges .pill.vip{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#7c2d12;font-weight:800;box-shadow:0 2px 8px rgba(245,158,11,.35)}
.lvl{display:inline-block;font-style:normal;font-size:10px;font-weight:700;padding:1px 6px;border-radius:6px;vertical-align:1px;margin-left:4px;background:#eef0f7;color:#6b7280}
.lvl.vip{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#7c2d12}
[data-theme="dark"] .lvl{background:#2b2f45;color:#a0a6bd}

/* ===== 评论区：回复 + 表情 ===== */
.cm-reply{margin-left:34px}
.cm-reply-tag{font-size:11px;color:var(--brand);background:rgba(91,91,214,.08);padding:1px 8px;border-radius:6px}
.cm-reply-btn{background:none;border:none;color:var(--brand);font-size:12px;cursor:pointer;margin-left:auto}
.cm-reply-btn:hover{text-decoration:underline}
.cm-reply-form{margin-top:10px;padding:10px;background:#f8f9fd;border-radius:10px}
[data-theme="dark"] .cm-reply-form{background:#1c1f30}
.cm-reply-form textarea{width:100%;box-sizing:border-box;border:1.5px solid var(--line);border-radius:8px;padding:9px 12px;font-size:13px;min-height:64px;resize:vertical;outline:none;background:var(--card);color:var(--ink);font-family:inherit}
.cm-reply-form textarea:focus{border-color:var(--brand)}
.cm-emojis{position:relative;margin-bottom:8px}
.emoji-btn{background:#fff;border:1px solid var(--line);border-radius:8px;padding:5px 12px;font-size:12.5px;cursor:pointer;color:var(--ink)}
[data-theme="dark"] .emoji-btn{background:#1c1f30;color:#e5e7f0}
.emoji-panel{position:absolute;bottom:38px;left:0;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.15);padding:10px;display:grid;grid-template-columns:repeat(10,1fr);gap:4px;z-index:20;max-width:400px}
.emoji-item{background:none;border:none;font-size:19px;cursor:pointer;padding:4px;border-radius:6px;transition:.12s}
.emoji-item:hover{background:#f0f2fa;transform:scale(1.15)}
/* ===== 后台评论管理 ===== */
.cm-admin-list{display:flex;flex-direction:column;gap:10px}
.cm-admin-item{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--card)}
.cm-admin-reply{margin-left:26px;border-left:3px solid var(--brand);border-radius:8px}
.cm-admin-hd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.cm-admin-name{font-size:13.5px;font-weight:700;color:var(--ink)}
.cm-admin-doc{font-size:12px;color:var(--brand);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}
.cm-admin-time{font-size:11px;color:#9aa0b1}
.cm-admin-ops{margin-left:auto;display:flex;gap:10px}
.cm-admin-ops .link-btn{background:none;border:none;color:var(--brand);cursor:pointer;font-size:12.5px}
.cm-admin-ops .link-btn.danger{color:#dc2626}
.cm-admin-replyto{font-size:11.5px;color:var(--brand);margin-bottom:4px}
.cm-admin-content{font-size:13.5px;color:var(--ink);line-height:1.7}
.cm-admin-replybox{display:flex;gap:8px;margin-top:10px;align-items:flex-start}
.cm-admin-replybox textarea{flex:1;border:1.5px solid var(--line);border-radius:8px;padding:8px 12px;font-size:13px;min-height:56px;resize:vertical;outline:none;background:var(--card);color:var(--ink);font-family:inherit}
.cm-admin-replybox textarea:focus{border-color:var(--brand)}
.cm-admin-replybox .btn{height:36px;border-radius:8px;padding:0 16px}

/* ===== AI 页高级功能锁定提示 ===== */
.ai-locked{max-width:420px;margin:60px auto 40px;text-align:center;padding:46px 36px;background:var(--card);border:1.5px dashed var(--line);border-radius:18px;box-shadow:var(--shadow)}
.ai-locked-icon{font-size:52px;margin-bottom:16px}
.ai-locked-title{font-size:20px;font-weight:800;color:var(--ink);margin-bottom:10px}
.ai-locked-text{font-size:13.5px;color:var(--ink2);line-height:1.9;margin-bottom:24px}
.ai-locked .btn{height:42px;padding:0 30px;border-radius:10px;text-decoration:none;display:inline-flex;align-items:center}

/* ===== 文档三栏布局 ===== */
.main.threecol{display:grid;grid-template-columns:240px minmax(0,1fr) 320px;gap:24px;max-width:1520px;margin:0 auto;padding:24px 20px}
.main.threecol .article{order:2;min-width:0}
.main.threecol .toc-left{order:1;position:sticky;top:80px;max-height:calc(100vh - 100px);overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 14px;font-size:13px;align-self:flex-start}
.main.threecol .toc-left .toc-title{font-weight:700;color:var(--ink);margin-bottom:10px;font-size:14px}
.main.threecol .comments-side{order:3;position:sticky;top:80px;max-height:calc(100vh - 100px);overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column}
.main.threecol .comments-side .cm-side-scroll{flex:1;overflow-y:auto;margin:0 -8px;padding:0 8px}
.cm-side-item{padding:10px 0;border-bottom:1px solid var(--line)}
.cm-side-item:last-child{border-bottom:none}
.cm-avatar-sm{width:28px;height:28px;font-size:12px;border-radius:50%;background:linear-gradient(135deg,#5b5bd6,#ec4899);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}
.cm-side-item .cm-body{flex:1;min-width:0}
.cm-side-item{display:flex;gap:9px;align-items:flex-start}
.cm-side-item .cm-text{font-size:12.5px;color:var(--ink);line-height:1.6;margin:4px 0}
@media(max-width:1220px){
  .main.threecol{grid-template-columns:1fr;gap:18px}
  .main.threecol .toc-left{position:static;max-height:none;order:-1}
  .main.threecol .comments-side{position:static;max-height:none}
}

/* ===== 我的评论 ===== */
.cm-mine-item{align-items:flex-start}
.cm-mine-main{flex:1;min-width:0}
.cm-mine-content{font-size:13.5px;color:var(--ink);line-height:1.7;margin-bottom:5px;word-break:break-word}
.cm-mine-meta{font-size:11.5px;color:var(--ink2)}
.cm-mine-meta a.link{color:var(--brand);text-decoration:none}
.cm-mine-meta a.link:hover{text-decoration:underline}

/* ===== 留言分页 ===== */
.cm-pager{margin-left:auto;font-size:12px;display:inline-flex;gap:10px;align-items:center}
.cm-pager a{color:var(--brand);text-decoration:none}
.cm-pager a:hover{text-decoration:underline}
.cm-pager em{font-style:normal;color:#9aa0b1}
.cm-pager-sm{font-size:11px;gap:6px}

/* ===== 激活高级功能（折叠式） ===== */
.uc-activate-panel{padding:0!important;overflow:hidden}
.uc-activate-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;cursor:pointer;padding:15px 20px;font-size:14.5px;font-weight:700;color:var(--ink);transition:.15s;text-align:left}
.uc-activate-trigger:hover{background:rgba(245,158,11,.06)}
.uc-act-trigger-l{color:#b45309;letter-spacing:.5px}
.uc-act-trigger-r{font-size:12px;font-weight:600;color:#9aa0b1;flex-shrink:0;margin-left:12px}
.uc-activate-box{padding:2px 20px 20px;background:linear-gradient(180deg,rgba(245,158,11,.05),transparent)}
.uc-activate-tip{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--ink2);margin-bottom:12px;line-height:1.8}
.uc-activate-tip .tip-ico{font-size:15px;line-height:1.8;flex-shrink:0}
.uc-activate-row{display:flex;gap:10px;align-items:stretch}
.uc-activate-row input{flex:1;min-width:0;height:44px;padding:0 14px;border:1.5px solid #fcd34d;border-radius:10px;font-size:16px;outline:none;background:var(--card);color:var(--ink);letter-spacing:1px;box-sizing:border-box;-webkit-appearance:none;appearance:none}
.uc-activate-row input::-webkit-input-placeholder{font-size:14px;color:#b8bdc9}
.uc-activate-row input:focus{border-color:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.15)}
.uc-activate-row .btn{flex-shrink:0;height:44px;border-radius:10px;padding:0 18px;white-space:nowrap;box-sizing:border-box}
@media(max-width:640px){
  .uc-activate-trigger{padding:14px 16px}
  .uc-activate-box{padding:2px 16px 16px}
  .uc-activate-row{flex-direction:column;gap:12px}
  .uc-activate-row input{flex:none;width:100%;height:52px;font-size:16px}
  .uc-activate-row .btn{width:100%;height:52px}
}
