.comment-editor[data-v-f214e6e2]{width:100%}.editor-input[data-v-f214e6e2]{gap:12px;display:flex}.editor-wrapper[data-v-f214e6e2]{flex:1;min-width:0}textarea[data-v-f214e6e2]{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-size:var(--text-sm);resize:vertical;transition:border-color var(--transition-fast);outline:none;padding:10px 12px;line-height:1.6}textarea[data-v-f214e6e2]::placeholder{color:var(--text-muted)}textarea[data-v-f214e6e2]:focus{border-color:var(--color-primary)}.editor-footer[data-v-f214e6e2]{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.char-count[data-v-f214e6e2]{color:var(--text-muted);font-size:var(--text-xs);font-family:var(--font-code)}.char-count--warn[data-v-f214e6e2]{color:var(--color-warning)}.editor-actions[data-v-f214e6e2]{gap:8px;display:flex}.btn-cancel[data-v-f214e6e2]{color:var(--text-secondary);border-radius:var(--radius-sm);font-size:var(--text-sm);padding:6px 14px}.btn-cancel[data-v-f214e6e2]:hover{color:var(--text-primary);background:var(--bg-elevated)}.btn-submit[data-v-f214e6e2]{background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:var(--text-sm);transition:background var(--transition-fast);padding:6px 16px;font-weight:500}.btn-submit[data-v-f214e6e2]:hover:not(:disabled){background:var(--color-primary-hover)}.btn-submit[data-v-f214e6e2]:disabled{opacity:.5;cursor:not-allowed}.login-hint[data-v-f214e6e2]{text-align:center;color:var(--text-muted);font-size:var(--text-sm);background:var(--bg-surface);border:1px dashed var(--border-default);border-radius:var(--radius-lg);padding:24px}.login-hint a[data-v-f214e6e2]{color:var(--color-primary);font-weight:500}.comment-item[data-v-b39733fc]{padding:12px 0}.comment-item--depth-1[data-v-b39733fc],.comment-item--depth-2[data-v-b39733fc]{margin-left:0}.comment-main[data-v-b39733fc]{gap:12px;display:flex}.comment-body[data-v-b39733fc]{flex:1;min-width:0}.comment-header[data-v-b39733fc]{align-items:center;gap:8px;margin-bottom:4px;display:flex}.comment-author[data-v-b39733fc]{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.comment-time[data-v-b39733fc]{font-size:var(--text-xs);color:var(--text-muted)}.comment-content[data-v-b39733fc]{font-size:var(--text-sm);color:var(--text-secondary);word-break:break-word;line-height:1.6}.comment-content--deleted[data-v-b39733fc]{color:var(--text-muted);font-style:italic}.comment-actions[data-v-b39733fc]{align-items:center;gap:12px;margin-top:6px;display:flex}.action-btn[data-v-b39733fc]{color:var(--text-muted);font-size:var(--text-xs);border-radius:var(--radius-sm);transition:all var(--transition-fast);align-items:center;gap:4px;padding:2px 6px;display:inline-flex}.action-btn[data-v-b39733fc]:hover{color:var(--color-primary);background:var(--color-primary-bg)}.action-btn--danger[data-v-b39733fc]:hover{color:var(--color-danger);background:#f851491a}.comment-children[data-v-b39733fc]{border-left:2px solid var(--border-muted);margin-top:8px;padding-left:44px}.comment-list__header[data-v-2a5b54b7]{margin-bottom:20px}.comment-title[data-v-2a5b54b7]{font-size:var(--text-xl);color:var(--text-primary);align-items:center;gap:8px;font-weight:600;display:flex}.comment-count[data-v-2a5b54b7]{font-size:var(--text-sm);color:var(--text-muted);font-weight:400;font-family:var(--font-code)}.article-detail-page[data-v-2a975ed2]{padding-top:0}.article-layout[data-v-2a975ed2]{align-items:flex-start;gap:32px;display:flex}.article-main[data-v-2a975ed2]{flex:1;min-width:0}.breadcrumb[data-v-2a975ed2]{font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;display:flex}.breadcrumb a[data-v-2a975ed2]{color:var(--text-muted);transition:color var(--transition-fast);text-decoration:none}.breadcrumb a[data-v-2a975ed2]:hover{color:var(--color-primary)}.breadcrumb-sep[data-v-2a975ed2]{color:var(--text-muted)}.breadcrumb-current[data-v-2a975ed2]{color:var(--text-secondary);max-width:200px}.article-header[data-v-2a975ed2]{margin-bottom:32px}.article-title[data-v-2a975ed2]{font-family:var(--font-heading);color:var(--text-primary);margin-bottom:16px;font-size:clamp(24px,4vw,36px);font-weight:700;line-height:1.3}.article-meta[data-v-2a975ed2]{color:var(--text-muted);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:16px;display:flex}.meta-author[data-v-2a975ed2]{color:var(--text-secondary);align-items:center;gap:8px;font-weight:500;display:inline-flex}.meta-item[data-v-2a975ed2]{align-items:center;gap:4px;display:inline-flex}.article-content[data-v-2a975ed2]{margin-bottom:48px}.article-content[data-v-2a975ed2] [id^=heading-]{scroll-margin-top:80px}.vip-paywall[data-v-2a975ed2]{border-radius:var(--radius-lg);margin-top:-32px;padding:80px 24px 40px;position:relative;overflow:hidden}.vip-paywall__blur[data-v-2a975ed2]{background:linear-gradient(to bottom, transparent 0%, var(--bg-secondary) 50%);pointer-events:none;position:absolute;inset:0}.vip-paywall__content[data-v-2a975ed2]{z-index:1;text-align:center;flex-direction:column;align-items:center;display:flex;position:relative}.vip-paywall__icon[data-v-2a975ed2]{margin-bottom:12px;font-size:40px}.vip-paywall__title[data-v-2a975ed2]{color:var(--text-primary);margin:0 0 8px;font-size:22px;font-weight:700}.vip-paywall__desc[data-v-2a975ed2]{color:var(--text-secondary);margin:0 0 20px;font-size:14px}.vip-paywall__btn[data-v-2a975ed2]{color:#7c5e00;cursor:pointer;background:linear-gradient(135deg,gold,#ffb800);border:none;border-radius:24px;padding:10px 32px;font-size:15px;font-weight:700;transition:transform .2s,box-shadow .2s}.vip-paywall__btn[data-v-2a975ed2]:hover{transform:translateY(-1px);box-shadow:0 4px 16px #ffb80066}.article-comments[data-v-2a975ed2]{border-top:1px solid var(--border-default);padding-top:32px}.article-sidebar[data-v-2a975ed2]{flex-shrink:0;align-self:flex-start;width:220px;max-height:calc(100vh - 96px);position:sticky;top:80px}@media (width<=1024px){.article-sidebar[data-v-2a975ed2]{display:none}}.mermaid-zoom-wrapper[data-v-2a975ed2]{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);margin:24px 0;position:relative;overflow:hidden}.mermaid-zoom-viewport[data-v-2a975ed2]{cursor:grab;width:100%;height:450px;overflow:hidden}.mermaid-zoom-wrapper--active .mermaid-zoom-viewport[data-v-2a975ed2]{cursor:grab;box-shadow:inset 0 0 0 2px var(--color-primary)}.mermaid-zoom-canvas[data-v-2a975ed2]{transform-origin:0 0;will-change:transform}.mermaid-zoom-canvas[data-v-2a975ed2] svg{height:auto;max-width:none!important}.mermaid-zoom-toolbar[data-v-2a975ed2]{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-default);z-index:10;background:#ffffffeb;border-radius:10px;align-items:center;gap:2px;padding:4px;display:flex;position:absolute;bottom:12px;right:12px;box-shadow:0 2px 12px #00000014}[data-theme=dark] .mermaid-zoom-toolbar[data-v-2a975ed2]{background:#1e212beb}.mermaid-zoom-btn[data-v-2a975ed2]{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.mermaid-zoom-btn[data-v-2a975ed2]:hover{background:var(--color-primary-bg);color:var(--color-primary)}.mermaid-zoom-btn[data-v-2a975ed2]:active{transform:scale(.92)}.mermaid-zoom-label[data-v-2a975ed2]{text-align:center;min-width:42px;color:var(--text-muted);-webkit-user-select:none;user-select:none;padding:0 2px;font-size:12px;font-weight:600}@media (width<=768px){.mermaid-zoom-viewport[data-v-2a975ed2]{height:320px}}
