.blog-page,.blog-index-page{--bi-primary: var(--brand);--bi-surface: #ffffff;--bi-bg: #f0f2f5;--bi-text: #1e293b;--bi-text-muted: #666;--bi-border: #e2e8f0;--code-bg: #1e1e2e;--code-text: #cdd6f4;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;background-color:var(--bi-bg);min-height:100vh;color:var(--bi-text);line-height:1.7}.blog-page *,.blog-page *:before,.blog-page *:after,.blog-index-page *,.blog-index-page *:before,.blog-index-page *:after{box-sizing:border-box}.blog-page a,.blog-index-page a{text-decoration:none;color:inherit}.header-card{margin:12px auto 0;background-color:#fff;padding:24px 28px;border-radius:16px;box-shadow:0 8px 20px #00000014}.header-card h1{margin:0;font-size:28px;font-weight:600;display:flex;align-items:center;gap:10px;line-height:1.3}.blog-breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--bi-text-muted);margin-bottom:8px}.blog-breadcrumb a{color:var(--bi-primary);transition:opacity .2s}.blog-breadcrumb a:hover{opacity:.8}.blog-breadcrumb .breadcrumb-sep{color:#cbd5e1;font-size:11px}.blog-breadcrumb .breadcrumb-current{color:var(--bi-text);font-weight:500}.header-card .header-meta{display:flex;align-items:center;gap:16px;margin-top:12px;flex-wrap:wrap}.header-meta .meta-item{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#94a3b8}.header-meta .meta-tags{display:flex;gap:8px}.header-meta .meta-tag{display:inline-block;padding:2px 10px;border-radius:10px;font-size:12px;font-weight:500;background-color:#eef2ff;color:var(--brand)}.header-card p{margin:12px 0 0;font-size:15px;color:var(--bi-text-muted);line-height:1.6}.blog-content{padding:30px 0 60px}.blog-content .row>.col-lg{min-width:0}.blog-article-nav{background:var(--bi-surface);border-radius:16px;padding:1.25rem;border:1px solid var(--bi-border);box-shadow:0 2px 8px #0000000f;position:sticky;top:80px;max-height:calc(100vh - 100px);height:calc(100vh - 100px);display:flex;flex-direction:column;transition:all .3s ease;width:240px;min-width:240px}.blog-article-nav::-webkit-scrollbar{width:4px}.blog-article-nav::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.nav-tree{flex:1;overflow-y:auto;min-height:0}.nav-tree::-webkit-scrollbar{width:4px}.nav-tree::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.blog-article-nav.collapsed{padding:.75rem;width:48px;min-width:48px;height:auto;overflow:hidden}.blog-article-nav.collapsed .nav-header-text,.blog-article-nav.collapsed .nav-tree,.blog-article-nav.collapsed .nav-promo{display:none}.blog-article-nav.collapsed .nav-toggle-btn{position:static;margin:0 auto}.nav-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.nav-search{position:relative;margin-bottom:.75rem}.nav-search .bi-search{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:.75rem;color:#94a3b8;pointer-events:none}.nav-search-input{width:100%;padding:.4rem .4rem .4rem 28px;border:1px solid var(--bi-border);border-radius:8px;font-size:.78rem;color:var(--bi-text);background:#f8fafc;outline:none;transition:all .2s;box-sizing:border-box}.nav-search-input:focus{border-color:var(--bi-primary);background:#fff;box-shadow:0 0 0 3px rgba(var(--brand-rgb),.1)}.nav-search-input::placeholder{color:#94a3b8}.nav-search-clear{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:15px;height:15px;border-radius:50%;border:none;background:#dbe3ee;color:#64748b;font-size:.52rem;display:none;align-items:center;justify-content:center;cursor:pointer;padding:0;line-height:1}.nav-search-clear.visible{display:flex}.nav-search-clear:hover{background:#c3cfe0}html[data-theme=dark] .blog-page .nav-search-clear,html[data-theme=dark] .blog-index-page .nav-search-clear{background-color:#475569;color:#cbd5e1}html[data-theme=dark] .blog-page .nav-search-clear:hover,html[data-theme=dark] .blog-index-page .nav-search-clear:hover{background-color:#5a6b83;color:#fff}.blog-article-nav.collapsed .nav-search{display:none}.nav-header-text{font-size:.875rem;font-weight:600;color:var(--bi-text);display:flex;align-items:center;gap:.5rem}.nav-toggle-btn{width:28px;height:28px;border-radius:8px;border:none;background:#f1f5f9;color:#64748b;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.nav-toggle-btn:hover{background:#e2e8f0;color:var(--bi-text)}.nav-tree-category{margin-bottom:.5rem}.nav-tree-header{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;border-radius:8px;cursor:pointer;transition:all .2s;font-size:.9rem;font-weight:500;color:#618ed3;-webkit-user-select:none;user-select:none}.nav-tree-header:hover{background:#f8fafc}.nav-tree-header i:first-child{font-size:.85rem;color:var(--bi-primary)}.nav-tree-header .nav-tree-toggle{font-size:.65rem;color:#94a3b8;transition:transform .2s;margin-left:auto}.nav-tree-count{font-size:.7rem;color:#94a3b8;background:#f1f5f9;padding:1px 6px;border-radius:8px;margin-left:auto;margin-right:4px;flex-shrink:0}.nav-tree-header.collapsed .nav-tree-toggle{transform:rotate(-90deg)}.nav-tree-items{padding-left:.75rem;overflow:hidden;transition:max-height .3s ease}.nav-tree-items.collapsed{max-height:0}.nav-tree-items .nav-tree-item{padding-left:.25rem}.nav-tree-item{display:block;padding:.3rem .5rem;border-radius:6px;font-size:.9rem;color:#94a3b8;transition:all .2s;line-height:1.4;margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toc-hot-tags{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--bi-border)}.toc-hot-tags-title{font-size:.85rem;font-weight:600;color:var(--bi-text-muted);margin-bottom:.5rem;display:flex;align-items:center;gap:.375rem}.toc-hot-tags .hot-tags-list{display:flex;flex-wrap:wrap;gap:6px}.toc-hot-tags .hot-tag-item{padding:3px 10px;border-radius:12px;font-size:.75rem}.toc-hot-tags .hot-tag-count{font-size:.65rem}.nav-promo{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--bi-border)}.nav-promo-label{display:flex;align-items:center;justify-content:space-between;font-size:.7rem;color:#94a3b8;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.nav-promo-label span:last-child{font-size:.6rem;background:#f1f5f9;padding:1px 6px;border-radius:4px;text-transform:none;letter-spacing:0}.nav-promo-item{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--bi-border);transition:all .2s;cursor:pointer}.nav-promo-item:last-child{border-bottom:none}.nav-promo-item:hover{opacity:.8}.nav-promo-item i{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:.85rem;flex-shrink:0}.nav-promo-item.promo-blue i{background:#eff6ff;color:#3b82f6}.nav-promo-item.promo-purple i{background:#f5f3ff;color:#8b5cf6}.nav-promo-item.promo-green i{background:#f0fdf4;color:#22c55e}.nav-promo-item .promo-text{flex:1;min-width:0}.nav-promo-item .promo-title{font-size:.8rem;font-weight:500;color:var(--bi-text);margin:0;line-height:1.3}.nav-promo-item .promo-desc{font-size:.7rem;color:#94a3b8;margin:0;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.blog-card{background:var(--bi-surface);border-radius:16px;padding:2rem;margin-bottom:1.5rem;border:1px solid var(--bi-border);box-shadow:0 2px 8px #0000000f}.blog-card h2{font-size:1.5rem;font-weight:600;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.blog-card p{margin-bottom:1rem;color:var(--bi-text-muted)}.blog-card p:last-child{margin-bottom:0}.blog-sidebar-ad{width:100%;max-width:326px;margin:0 auto 1rem;background:#f8f9fa;border-radius:12px;padding:12px;border:1px solid var(--bi-border);box-sizing:border-box}.blog-sidebar-ad .ad-label{font-size:11px;color:#adb5bd;margin-bottom:8px;text-align:center;text-transform:uppercase;letter-spacing:1px}.blog-sidebar-ad .ad-slot{width:100%;min-height:250px;border-radius:8px;overflow:hidden;background:var(--bi-border)}.blog-sidebar-ad .ad-placeholder{width:100%;min-height:250px;display:flex;align-items:center;justify-content:center;color:#aaa;font-size:13px}.blog-toc{background:var(--bi-surface);border-radius:16px;padding:1.5rem;border:1px solid var(--bi-border);box-shadow:0 2px 8px #0000000f;position:sticky;top:80px}.blog-toc h5{font-size:1rem;font-weight:600;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.blog-toc a{display:block;padding:.5rem 0;color:var(--bi-text-muted);border-bottom:1px solid var(--bi-border);transition:color .2s}.blog-toc a:hover{color:var(--bi-primary)}.blog-toc a:last-of-type{border-bottom:none}.blog-cta{margin-top:1rem}.blog-cta-label{display:block;font-size:.75rem;color:var(--bi-text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.blog-cta-btn{display:inline-block}.blog-cta-btn a{display:block;padding:.5rem 1rem;color:#fff;text-decoration:none;font-size:.95rem;border-radius:12px;background-color:var(--brand);transition:all .2s ease;box-shadow:0 4px 8px rgba(var(--brand-rgb),.3);border-left:none}.blog-cta-btn a:hover{color:#e1e1e1;background-color:#5878d1;transform:translateY(-1px);box-shadow:0 6px 12px rgba(var(--brand-rgb),.35)}.blog-cta-section{background:#fff;border:1px solid var(--bi-border);border-radius:16px;padding:2rem;text-align:center;margin-top:2rem;box-shadow:0 2px 8px #0000000a}.blog-cta-section h3{font-size:1.25rem;font-weight:600;margin-bottom:.5rem;color:var(--bi-text)}.blog-cta-section p{color:var(--bi-text-muted);margin-bottom:1rem}.blog-cta-section .blog-cta-btn{margin-top:.5rem}.blog-related{margin-top:2rem;background:var(--bi-surface);border-radius:16px;padding:1.5rem;border:1px solid var(--bi-border);box-shadow:0 2px 8px #0000000a}.blog-related h3{font-size:1.1rem;font-weight:600;margin:0 0 1rem;color:var(--bi-text);display:flex;align-items:center;gap:8px}.blog-related-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.blog-related-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:var(--bi-bg);color:var(--bi-text);font-size:14px;transition:all .2s;line-height:1.4}.blog-related-item:hover{background:rgba(var(--brand-rgb),.08);color:var(--bi-primary)}.blog-related-item i{color:var(--bi-primary);font-size:16px;flex-shrink:0}.blog-promo{background:var(--bi-surface);border-radius:16px;padding:1.25rem;border:1px solid var(--bi-border);box-shadow:0 2px 8px #0000000f;margin-top:1rem}.blog-promo-label{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:#94a3b8;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}.blog-promo-label span:last-child{font-size:.65rem;background:#f1f5f9;padding:2px 8px;border-radius:6px;text-transform:none;letter-spacing:0}.blog-promo-item{display:flex;align-items:center;gap:.75rem;padding:.625rem 0;border-bottom:1px solid var(--bi-border);transition:all .2s;cursor:pointer}.blog-promo-item:last-child{border-bottom:none}.blog-promo-item:hover{opacity:.8}.blog-promo-item i{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:10px;font-size:1rem;flex-shrink:0}.blog-promo-item.promo-blue i{background:#eff6ff;color:#3b82f6}.blog-promo-item.promo-purple i{background:#f5f3ff;color:#8b5cf6}.blog-promo-item.promo-green i{background:#f0fdf4;color:#22c55e}.blog-promo-item .promo-text{flex:1;min-width:0}.blog-promo-item .promo-text .promo-title{font-size:.9rem;font-weight:500;color:var(--bi-text);margin:0;line-height:1.4}.blog-promo-item .promo-text .promo-desc{font-size:.75rem;color:#94a3b8;margin:2px 0 0;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.blog-code{background:var(--code-bg);color:var(--code-text);padding:1.25rem 1.5rem;border-radius:12px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.9rem;margin:1rem 0;overflow-x:auto;white-space:pre-wrap;word-break:break-word;line-height:1.6}.blog-code-inline{background:#0d6efd1a;color:#0d6efd;padding:.15rem .5rem;border-radius:4px;font-family:JetBrains Mono,monospace;font-size:.85em}.blog-tip{background:#f0fdf4;border-left:4px solid #22c55e;padding:1.25rem 1.5rem;border-radius:0 12px 12px 0;margin:1.25rem 0}.blog-tip strong{color:#16a34a}.blog-warning{background:#fffbeb;border-left:4px solid #f59e0b;padding:1.25rem 1.5rem;border-radius:0 12px 12px 0;margin:1.25rem 0}.blog-warning strong{color:#d97706}.blog-qa{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem 1.5rem;margin:1rem 0}.blog-qa-q{margin-bottom:.5rem;color:#1e293b}.blog-qa-q strong{color:#6366f1}.blog-qa-a{color:#475569;margin-bottom:0;padding-left:1rem;border-left:3px solid #6366f1}.blog-example{background:var(--bi-bg);border:1px solid var(--bi-border);border-radius:12px;padding:1.5rem;margin:1.25rem 0}.blog-example-title{font-weight:600;margin-bottom:1rem}.blog-table{width:100%;border-collapse:collapse;margin:1.25rem 0;font-size:.9rem;border-radius:12px;overflow:hidden;border:1px solid var(--bi-border)}.blog-table th{background:#1e293b;color:#fff;padding:.875rem 1rem;text-align:left;font-weight:600}.blog-table td{padding:.875rem 1rem;border-bottom:1px solid var(--bi-border)}.blog-table tr:last-child td{border-bottom:none}.blog-table tr:hover td{background:#0d6efd08}.blog-index-content{padding:30px 0 60px}.blog-tree-sidebar{background:var(--bi-surface);border-radius:16px;padding:1.25rem;border:1px solid var(--bi-border);box-shadow:0 2px 8px #0000000f;position:sticky;top:80px;max-height:calc(100vh - 100px);overflow-y:auto}.blog-tree-sidebar::-webkit-scrollbar{width:4px}.blog-tree-sidebar::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.blog-tree-title{font-size:.875rem;font-weight:600;color:var(--bi-text);margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.blog-tree-category{margin-bottom:.5rem}.blog-tree-category-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .625rem;border-radius:10px;cursor:pointer;transition:all .2s;font-size:.85rem;font-weight:500;color:var(--bi-text);-webkit-user-select:none;user-select:none}.blog-tree-category-header:hover{background:#f8fafc}.blog-tree-category-header .tree-toggle{font-size:.7rem;color:#94a3b8;transition:transform .2s}.blog-tree-category-header.collapsed .tree-toggle{transform:rotate(-90deg)}.blog-tree-category-header .tree-count{font-size:.7rem;color:#94a3b8;background:#f1f5f9;padding:1px 8px;border-radius:10px;margin-left:auto;margin-right:8px}.blog-tree-items{padding-left:.5rem;overflow:hidden;transition:max-height .3s ease}.blog-tree-items.collapsed{max-height:0}.blog-tree-item{display:block;padding:.375rem .625rem;border-radius:8px;font-size:.8rem;color:var(--bi-text-muted);transition:all .2s;line-height:1.4;margin-bottom:2px}.blog-tree-item:hover{background:#f8fafc;color:var(--bi-primary)}.blog-tree-item.active{background:#eef2ff;color:var(--brand);font-weight:500}.blog-index-card{background:var(--bi-surface);border-radius:16px;padding:24px;margin-bottom:20px;border:1px solid var(--bi-border);box-shadow:0 2px 8px #0000000f;transition:all .25s ease;display:block;position:relative}.blog-index-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001a}.blog-index-card .bi-tag{display:inline-block;padding:4px 14px;border-radius:12px;font-size:12px;font-weight:600;background-color:#eef2ff;color:var(--bi-primary)}.bi-tag-dev{background-color:#eef2ff;color:var(--brand)}.bi-tag-tools{background-color:#f5f3ff;color:#8b5cf6}.bi-tag-tutorial{background-color:#ecfdf5;color:#059669}.blog-index-card h3{font-size:18px;font-weight:600;margin:12px 0 8px;color:var(--bi-text)}.blog-index-card .bi-desc{color:var(--bi-text-muted);font-size:14px;margin-bottom:12px;line-height:1.6}.blog-index-card .bi-meta{display:flex;align-items:center;gap:16px;color:#94a3b8;font-size:13px}.blog-index-card .bi-meta i{margin-right:4px}.blog-index-card.bi-coming-soon{opacity:.55;cursor:default}.blog-index-card.bi-coming-soon:hover{transform:none;box-shadow:0 2px 8px #0000000f}.blog-index-empty{text-align:center;padding:60px 20px;color:var(--bi-text-muted)}.blog-index-empty i{font-size:48px;color:#cbd5e1;margin-bottom:16px}.blog-index-no-results{text-align:center;padding:40px;color:var(--bi-text-muted)}.blog-pagination{display:flex;justify-content:center;align-items:center;gap:6px;padding:24px 0 8px}.blog-page-btn{min-width:40px;height:40px;border:1px solid var(--bi-border);background:var(--bi-surface);color:var(--bi-text);border-radius:8px;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s}.blog-page-btn:hover:not(:disabled):not(.active){border-color:var(--bi-primary);color:var(--bi-primary);background:rgba(var(--brand-rgb),.06)}.blog-page-btn.active{background:var(--bi-primary);border-color:var(--bi-primary);color:#fff}.blog-page-btn:disabled{opacity:.4;cursor:not-allowed}.blog-page-ellipsis{padding:0 4px;color:var(--bi-text-muted);font-size:14px}.search-container{margin:25px 0 0}.search-container input{width:320px;max-width:90%;padding:10px 15px;border:none;border-radius:12px;box-shadow:0 2px 8px #0000001a;font-size:14px;outline:none;font-family:inherit}.search-container input:focus{box-shadow:0 2px 12px rgba(var(--brand-rgb),.25)}.header-hot-tags{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}.header-hot-tags-label{font-size:.85rem;color:#64748b;font-weight:500}.header-hot-tag{display:inline-block;padding:.2rem .65rem;border-radius:12px;font-size:.8rem;background:#eef2ff;color:#618ed3;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.header-hot-tag:hover{background:#618ed3;color:#fff}.categories{margin-top:20px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.categories button{padding:8px 20px;border:none;border-radius:12px;background-color:var(--bi-primary);color:#fff;font-size:14px;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 12px rgba(var(--brand-rgb),.3);font-family:inherit}.categories button:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(var(--brand-rgb),.35)}.blog-tree-subcategory{margin-bottom:2px}.blog-tree-subcategory-header{display:flex;align-items:center;gap:6px;padding:.375rem .5rem .375rem 1.25rem;border-radius:8px;cursor:pointer;transition:all .2s;font-size:.8rem;font-weight:500;color:var(--bi-text-muted);-webkit-user-select:none;user-select:none}.blog-tree-subcategory-header:hover{background:#f8fafc;color:var(--bi-text)}.blog-tree-subcategory-header.active{background:#eef2ff;color:var(--brand)}.blog-tree-subcategory-header i:first-child{font-size:.75rem;color:var(--bi-primary);opacity:.7}.blog-tree-subcategory-header .tree-count{font-size:.65rem;color:#94a3b8;background:#f1f5f9;padding:1px 6px;border-radius:8px;margin-left:auto;margin-right:6px}.blog-tree-subcategory-header .tree-toggle{font-size:.6rem;color:#94a3b8;transition:transform .2s}.blog-tree-subcategory-header.collapsed .tree-toggle{transform:rotate(-90deg)}.blog-tree-sub-items{padding-left:1rem;overflow:hidden;transition:max-height .3s ease}.blog-tree-sub-items.collapsed{max-height:0}.blog-tree-sub-items .blog-tree-item{font-size:.75rem;padding:.25rem .5rem}.blog-tree-sub3category-header{display:flex;align-items:center;gap:6px;padding:.3rem .5rem .3rem 2rem;border-radius:8px;cursor:pointer;transition:all .2s;font-size:.78rem;font-weight:500;color:var(--bi-text-muted);-webkit-user-select:none;user-select:none}.blog-tree-sub3category-header:hover{background:#f8fafc;color:var(--bi-text)}.blog-tree-sub3category-header.active{background:#eef2ff;color:var(--brand)}.blog-tree-sub3category-header i:first-child{font-size:.7rem;color:var(--bi-primary);opacity:.6}.blog-tree-sub3category-header .tree-count{font-size:.6rem;color:#94a3b8;background:#f1f5f9;padding:1px 6px;border-radius:8px;margin-left:auto;margin-right:6px}.blog-tree-sub3category-header .tree-toggle{font-size:.55rem;color:#94a3b8;transition:transform .2s}.blog-tree-sub3category-header.collapsed .tree-toggle{transform:rotate(-90deg)}.blog-tree-sub3-items{padding-left:1.5rem;overflow:hidden;transition:max-height .3s ease}.blog-tree-sub3-items.collapsed{max-height:0}.blog-tree-sub3-items .blog-tree-item{font-size:.73rem;padding:.22rem .5rem}.bi-tag-interview{background-color:#fff7ed;color:#ea580c}.blog-hot-tags{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--bi-border)}.hot-tags-list{display:flex;flex-wrap:wrap;gap:6px}.hot-tag-item{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;font-size:.75rem;font-weight:500;background-color:#f1f5f9;color:#64748b;transition:all .2s;cursor:pointer}.hot-tag-item:hover{background-color:#eef2ff;color:var(--brand)}.hot-tag-item.active{background-color:var(--brand);color:#fff}.hot-tag-count{font-size:.65rem;opacity:.6}.hot-tag-item.active .hot-tag-count{opacity:.8}@media (max-width: 767px){.blog-tree-sidebar .hot-tags-list{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.blog-tree-sidebar .hot-tag-item{justify-content:center;padding:4px 6px;font-size:.7rem}.blog-article-nav{padding:.75rem!important}.nav-header{margin-bottom:.5rem}.nav-tree-item{font-size:.8rem;padding:.25rem .4rem}}.bi-tags-row{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.bi-tag-link{display:inline-block;padding:1px 8px;border-radius:8px;font-size:12px;background-color:#f1f5f9;color:#64748b;transition:all .2s;cursor:pointer}.bi-tag-link:hover{background-color:#eef2ff;color:var(--brand)}.active-tag-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:14px;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-strong) 100%);color:#fff;font-size:13px;font-weight:500;box-shadow:0 2px 8px rgba(var(--brand-rgb),.3)}.active-tag-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#ffffff40;cursor:pointer;transition:background .2s;font-size:10px}.active-tag-remove:hover{background:#ffffff80}.nav-tree-subcategory{margin-bottom:2px}.nav-tree-sub-header{display:flex;align-items:center;gap:.375rem;padding:.25rem .5rem .25rem 1.25rem;border-radius:6px;cursor:pointer;transition:all .2s;font-size:.8rem;font-weight:600;color:#618ed3;-webkit-user-select:none;user-select:none}.nav-tree-sub-header:hover{background:#f1f5f9;color:#4a6ec4}.nav-tree-sub-header i:first-child{font-size:.75rem;color:var(--bi-primary);opacity:.7}.nav-tree-sub-header .nav-tree-toggle{font-size:.6rem;color:#94a3b8;transition:transform .2s;margin-left:auto}.nav-tree-sub-header.collapsed .nav-tree-toggle{transform:rotate(-90deg)}.nav-tree-sub-items{padding-left:1.5rem;overflow:hidden;transition:max-height .3s ease}.nav-tree-sub-items.collapsed{max-height:0}.nav-tree-sub-items .nav-tree-item{font-size:.8rem;padding:.2rem .4rem}.nav-tree-sub3-header{display:flex;align-items:center;gap:.375rem;padding:.2rem .5rem .2rem 1.25rem;border-radius:6px;cursor:pointer;transition:all .2s;font-size:.78rem;font-weight:600;color:#618ed3;-webkit-user-select:none;user-select:none}.nav-tree-sub3-header:hover{background:#f1f5f9;color:#4a6ec4}.nav-tree-sub3-header i:first-child{font-size:.7rem;color:var(--bi-primary);opacity:.6}.nav-tree-sub3-header .nav-tree-toggle{font-size:.55rem;color:#94a3b8;transition:transform .2s;margin-left:auto}.nav-tree-sub3-header.collapsed .nav-tree-toggle{transform:rotate(-90deg)}.nav-tree-sub3-items{padding-left:1.5rem;overflow:hidden;transition:max-height .3s ease}.nav-tree-sub3-items.collapsed{max-height:0}.nav-tree-sub3-items .nav-tree-item{font-size:.78rem;padding:.18rem .4rem}.header-meta .meta-tag-clickable{display:inline-block;padding:2px 10px;border-radius:10px;font-size:12px;font-weight:500;background-color:#eef2ff;color:var(--brand);cursor:pointer;transition:all .2s}.header-meta .meta-tag-clickable:hover{background-color:var(--brand);color:#fff}.categories button.active{background-color:var(--brand);box-shadow:0 4px 12px rgba(var(--brand-rgb),.4)}@media (max-width: 991px){.header-card h1{font-size:24px}.blog-toc{position:static;margin-bottom:2rem}.blog-tree-sidebar{position:static;margin-bottom:2rem;max-height:none}}@media (max-width: 767px){.header-card{padding:20px 18px;margin-top:16px}.header-card h1{font-size:20px}.header-card .header-meta{gap:10px}.blog-card{padding:1.25rem}.blog-index-card{padding:20px}}@media (max-width: 991.98px){.blog-content .row>.col-auto{width:100%;max-width:100%}.blog-content .row>.col-lg-3{width:100%;max-width:100%}.blog-index-content .row>.col-lg{order:1}.blog-index-content .row>.col-auto{order:2;width:100%;max-width:100%}.blog-article-nav{position:static;width:100%;min-width:0;height:auto;max-height:none}.blog-article-nav.collapsed{width:100%;min-width:0;height:auto;padding:.75rem 1rem}.blog-article-nav.collapsed .nav-header-text{display:inline}.blog-article-nav.collapsed .nav-header{margin-bottom:0}.blog-article-nav.collapsed .nav-search,.blog-article-nav.collapsed .nav-tree,.blog-article-nav.collapsed .nav-promo,.blog-article-nav.collapsed .blog-hot-tags{display:none}.nav-toggle-btn{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}body.blog-sheet-mode .blog-content .row>.col-auto,body.blog-sheet-mode .blog-index-content .row>.col-auto{display:none}body.blog-sheet-mode .blog-content .blog-toc{display:none}.blog-nav-fab{display:none;position:fixed;right:16px;bottom:calc(128px + env(safe-area-inset-bottom));z-index:9998;align-items:center;gap:6px;padding:12px 16px;min-height:48px;border:none;border-radius:999px;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-strong) 100%);color:#fff;font-size:14px;font-weight:500;box-shadow:0 4px 16px rgba(var(--brand-rgb),.4);cursor:pointer}body.blog-sheet-mode .blog-nav-fab{display:inline-flex}.blog-nav-fab:active{transform:scale(.96)}.blog-nav-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;opacity:0;visibility:hidden;transition:opacity .25s ease;z-index:10000}body.blog-sheet-open .blog-nav-mask{opacity:1;visibility:visible}.blog-nav-sheet{position:fixed;left:0;right:0;bottom:0;z-index:10001;background:#fff;border-radius:16px 16px 0 0;max-height:78vh;display:flex;flex-direction:column;transform:translateY(105%);transition:transform .3s ease;box-shadow:0 -4px 24px #00000026}body.blog-sheet-open .blog-nav-sheet{transform:translateY(0)}.blog-nav-sheet-handle{width:40px;height:4px;border-radius:2px;background:#e2e8f0;margin:8px auto 0;flex-shrink:0}.blog-nav-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid var(--bi-border);flex-shrink:0}.blog-nav-sheet-tabs{display:flex;gap:4px;background:#f1f5f9;border-radius:10px;padding:4px}.blog-nav-sheet-tabs button{border:none;background:transparent;padding:8px 16px;min-height:44px;font-size:14px;color:#64748b;border-radius:8px;cursor:pointer}.blog-nav-sheet-tabs button.active{background:#fff;color:#1e293b;font-weight:600;box-shadow:0 1px 4px #0000001a}.blog-nav-sheet-close{border:none;background:transparent;font-size:18px;color:#64748b;min-width:44px;min-height:44px;cursor:pointer}.blog-nav-sheet-body{overflow-y:auto;padding:12px 16px calc(16px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.blog-nav-sheet-pane{display:none}.blog-nav-sheet-pane.active{display:block}.blog-nav-sheet .blog-article-nav{position:static;width:auto;min-width:0;height:auto;max-height:none;box-shadow:none;border:none;padding:0;background:transparent}.blog-nav-sheet .blog-article-nav .nav-toggle-btn,.blog-nav-sheet .blog-article-nav .nav-promo{display:none}.blog-nav-sheet .blog-toc{display:block;position:static;box-shadow:none;border:none;padding:0;background:transparent}}html[data-theme=dark] .blog-page,html[data-theme=dark] .blog-index-page{--bi-primary: #8aa5f5;--bi-surface: #1e293b;--bi-bg: #0f172a;--bi-text: #e2e8f0;--bi-text-muted: #94a3b8;--bi-border: #334155}html[data-theme=dark] .blog-page .header-card,html[data-theme=dark] .blog-index-page .header-card,html[data-theme=dark] .blog-page .blog-cta-section,html[data-theme=dark] .blog-page .nav-search-input:focus{background-color:var(--bi-surface)}html[data-theme=dark] .blog-page .blog-warning{background:#422006;border-color:#92400e}html[data-theme=dark] .blog-page .blog-tip{background:#0d2416;border-left-color:#22c55e}html[data-theme=dark] .blog-page .blog-tip strong{color:#4ade80}html[data-theme=dark] .blog-page .nav-tree-count,html[data-theme=dark] .blog-index-page .nav-tree-count,html[data-theme=dark] .blog-page .nav-toggle-btn,html[data-theme=dark] .blog-index-page .nav-toggle-btn{background-color:#334155;color:#cbd5e1}html[data-theme=dark] .blog-page .nav-toggle-btn:hover,html[data-theme=dark] .blog-index-page .nav-toggle-btn:hover{background-color:#8aa5f533;color:#9db8f5}html[data-theme=dark] .blog-page .nav-promo-label span:last-child,html[data-theme=dark] .blog-index-page .nav-promo-label span:last-child{background-color:#334155;color:#cbd5e1}html[data-theme=dark] .blog-page .nav-search-input,html[data-theme=dark] .blog-index-page .blog-article-nav .nav-search-input{background-color:var(--bi-bg);color:var(--bi-text)}html[data-theme=dark] .blog-page .blog-qa-q{color:var(--bi-text)}html[data-theme=dark] .blog-page .bi-tag-interview{background-color:#431407;color:#fdba74}html[data-theme=dark] .blog-page .blog-index-card .bi-tag,html[data-theme=dark] .blog-index-page .blog-index-card .bi-tag,html[data-theme=dark] .blog-page .bi-tag-dev,html[data-theme=dark] .blog-index-page .bi-tag-dev{background-color:#8aa5f529;color:#9db8f5}html[data-theme=dark] .blog-page .bi-tag-tools,html[data-theme=dark] .blog-index-page .bi-tag-tools{background-color:#8b5cf633;color:#c4b5fd}html[data-theme=dark] .blog-page .bi-tag-tutorial,html[data-theme=dark] .blog-index-page .bi-tag-tutorial{background-color:#10b98129;color:#6ee7b7}html[data-theme=dark] .blog-page .header-meta .meta-tag,html[data-theme=dark] .blog-page .header-meta .meta-tag-clickable{background-color:#8aa5f529;color:#9db8f5}html[data-theme=dark] .blog-page .header-meta .meta-tag-clickable:hover{background-color:var(--brand);color:#fff}html[data-theme=dark] .blog-page .hot-tag-item,html[data-theme=dark] .blog-index-page .hot-tag-item{background-color:#334155;color:#cbd5e1}html[data-theme=dark] .blog-page .hot-tag-item:hover,html[data-theme=dark] .blog-index-page .hot-tag-item:hover{background-color:#8aa5f533;color:#9db8f5}html[data-theme=dark] .blog-page .bi-tag-link,html[data-theme=dark] .blog-index-page .bi-tag-link{background-color:#334155;color:#cbd5e1}html[data-theme=dark] .blog-page .bi-tag-link:hover,html[data-theme=dark] .blog-index-page .bi-tag-link:hover{background-color:#8aa5f533;color:#9db8f5}html[data-theme=dark] .blog-index-page .header-hot-tags-label{color:var(--bi-text-muted)}html[data-theme=dark] .blog-index-page .header-hot-tag{background-color:#334155;color:#9db8f5}html[data-theme=dark] .blog-index-page .header-hot-tag:hover{background-color:var(--brand);color:#fff}html[data-theme=dark] .blog-page .nav-tree-header,html[data-theme=dark] .blog-page .nav-tree-sub-header,html[data-theme=dark] .blog-page .nav-tree-sub3-header,html[data-theme=dark] .blog-page .header-hot-tag,html[data-theme=dark] .blog-index-page .header-hot-tag{color:#9db8f5}html[data-theme=dark] .blog-index-page .search-container input{background-color:#0f172a;border:1px solid var(--bi-border);color:var(--bi-text)}html[data-theme=dark] .blog-nav-sheet{background:var(--bi-surface)}html[data-theme=dark] .blog-nav-sheet-tabs{background:#0f172a}html[data-theme=dark] .blog-nav-sheet-tabs button{color:var(--bi-text-muted)}html[data-theme=dark] .blog-nav-sheet-tabs button.active{background:#334155;color:var(--bi-text)}html[data-theme=dark] .blog-nav-fab{box-shadow:0 4px 16px #00000080}.ac{font-size:0;opacity:0;line-height:0;pointer-events:none}
