*,*::before,*::after{box-sizing:border-box}body.kb-standalone{margin:0;padding:0;font-family:var(--kb-font-sans);font-size:var(--kb-font-size-base);line-height:1.7;color:var(--kb-text-primary);background-color:var(--kb-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.kb-header-badge{display:none!important}a{color:var(--kb-accent);text-decoration:none;transition:color 0.2s ease}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.kb-header{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--kb-header-height);background-color:var(--kb-bg-secondary);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.kb-header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent 0%,var(--kb-border) 15%,var(--kb-border) 85%,transparent 100%)}.kb-header-inner{display:flex;align-items:center;justify-content:space-between;height:100%;max-width:100%;padding:0 24px}.kb-header-left{display:flex;align-items:center;gap:12px}.kb-header-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--kb-text-primary)}.kb-header-logo:hover{text-decoration:none}.kb-logo-img{height:32px;width:auto;border-radius:6px}.kb-logo-placeholder{display:flex;align-items:center;justify-content:center;height:36px;padding:0 16px;border:2px dashed var(--kb-border);border-radius:8px;background-color:var(--kb-bg-primary);color:var(--kb-text-muted);font-size:var(--kb-font-size-xs);font-weight:500;letter-spacing:.02em;white-space:nowrap;gap:6px}.kb-header-right{display:flex;align-items:center;gap:8px}.kb-header-badge{display:inline-flex;align-items:center;padding:4px 12px;font-size:var(--kb-font-size-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--kb-text-secondary);background-color:var(--kb-bg-primary);border:1px solid var(--kb-border);border-radius:6px}.kb-header-badge--version{background-color:#fff0}.kb-theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--kb-border);border-radius:8px;background:var(--kb-bg-primary);color:var(--kb-text-secondary);cursor:pointer;transition:all 0.2s ease}.kb-theme-toggle:hover{color:var(--kb-text-primary);border-color:var(--kb-text-muted)}[data-kb-theme="light"] .kb-icon-moon{display:none}[data-kb-theme="light"] .kb-icon-sun{display:block}[data-kb-theme="dark"] .kb-icon-sun{display:none}[data-kb-theme="dark"] .kb-icon-moon{display:block}[data-kb-theme="light"] .kb-logo-img--dark{display:none}[data-kb-theme="light"] .kb-logo-img--light{display:block}[data-kb-theme="dark"] .kb-logo-img--light{display:none}[data-kb-theme="dark"] .kb-logo-img--dark{display:block}.kb-mobile-menu-btn{display:none;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;background:none;color:var(--kb-text-primary);cursor:pointer}.kb-layout{display:flex;min-height:100vh;padding-top:var(--kb-header-height)}.kb-sidebar-left{position:fixed;top:var(--kb-header-height);left:0;bottom:0;width:var(--kb-sidebar-width);background-color:var(--kb-bg-secondary);border-right:1px solid var(--kb-border);overflow-y:auto;z-index:50}.kb-sidebar-left-inner{display:flex;flex-direction:column;min-height:100%;padding:20px 0}.kb-sidebar-nav{flex:1;padding:0 12px}.kb-nav-list{list-style:none;margin:0;padding:0}.kb-nav-item{margin-bottom:1px}.kb-nav-link-wrapper{display:flex;align-items:center}.kb-nav-link{flex:1;display:block;padding:8px 12px;font-size:var(--kb-font-size-sm);font-weight:400;color:var(--kb-text-secondary);border-radius:6px;text-decoration:none;transition:all 0.15s ease;line-height:1.4}.kb-nav-link:hover{color:var(--kb-text-primary);background-color:var(--kb-bg-primary);text-decoration:none}.kb-nav-link--active{color:var(--kb-accent);font-weight:500;background-color:var(--kb-bg-primary);border-left:2px solid var(--kb-accent);padding-left:10px;border-radius:0 6px 6px 0}.kb-nav-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:none;color:var(--kb-text-muted);cursor:pointer;border-radius:4px;transition:all 0.15s ease;flex-shrink:0}.kb-nav-toggle:hover{color:var(--kb-text-primary);background-color:var(--kb-bg-primary)}.kb-nav-chevron{transition:transform 0.2s ease}.kb-nav-toggle[aria-expanded="false"] .kb-nav-chevron{transform:rotate(-90deg)}.kb-nav-children{overflow:hidden;max-height:500px;transition:max-height 0.35s cubic-bezier(.4,0,.2,1),opacity 0.3s ease;opacity:1}.kb-nav-children--collapsed{max-height:0!important;opacity:0;overflow:hidden}.kb-nav-children .kb-nav-list{padding-left:16px}.kb-sidebar-footer{padding:16px 12px;border-top:1px solid var(--kb-border);margin-top:auto}.kb-sidebar-visit{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:var(--kb-font-size-sm);color:var(--kb-text-secondary);text-decoration:none;border-radius:6px;transition:all 0.15s ease}.kb-sidebar-visit:hover{color:var(--kb-text-primary);background-color:var(--kb-bg-primary);text-decoration:none}.kb-external-icon{margin-left:auto;opacity:.5}.kb-sidebar-credit{margin-top:12px;padding:0 12px;font-size:11px;color:var(--kb-text-muted);opacity:.7}.kb-sidebar-credit a{color:var(--kb-text-muted);text-decoration:underline;text-decoration-color:var(--kb-border);text-underline-offset:2px;transition:color 0.15s ease}.kb-sidebar-credit a:hover{color:var(--kb-text-secondary);text-decoration:underline}.kb-main{flex:1;margin-left:var(--kb-sidebar-width);margin-right:var(--kb-toc-width);min-width:0;display:flex;flex-direction:column}.kb-content{max-width:var(--kb-content-max-width);width:100%;margin:0 auto;padding:48px 40px;flex:1}.kb-page-meta-pill{display:inline-flex;align-items:center;padding:4px 12px;margin-bottom:16px;font-size:var(--kb-font-size-xs);font-weight:500;color:var(--kb-text-muted);background-color:var(--kb-bg-primary);border:1px solid var(--kb-border);border-radius:100px;letter-spacing:.01em}.kb-page-title{font-size:var(--kb-font-size-3xl);font-weight:700;letter-spacing:-.02em;margin:0 0 8px 0;color:var(--kb-text-primary);line-height:1.2}.kb-page-excerpt{font-size:var(--kb-font-size-lg);color:var(--kb-text-secondary);margin:0 0 32px 0;line-height:1.6}.kb-page-content h2{font-size:var(--kb-font-size-2xl);font-weight:700;margin:48px 0 16px 0;padding-top:16px;letter-spacing:-.02em;color:var(--kb-text-primary);line-height:1.3}.kb-page-content h3{font-size:var(--kb-font-size-xl);font-weight:600;margin:32px 0 12px 0;color:var(--kb-text-primary);line-height:1.4}.kb-page-content h4{font-size:var(--kb-font-size-lg);font-weight:600;margin:24px 0 8px 0;color:var(--kb-text-primary)}.kb-page-content p{margin:0 0 16px 0;color:var(--kb-text-secondary)}.kb-page-content ul,.kb-page-content ol{margin:0 0 16px 0;padding-left:24px;color:var(--kb-text-secondary)}.kb-page-content li{margin-bottom:8px;line-height:1.6}.kb-page-content li strong{color:var(--kb-text-primary)}.kb-page-content blockquote{margin:28px 0;padding:20px 24px 20px 28px;border-left:3px solid var(--kb-accent);background-color:var(--kb-bg-card);border-radius:0 8px 8px 0;color:var(--kb-text-secondary);font-style:italic;line-height:1.7}.kb-page-content blockquote p:last-child{margin-bottom:0}.kb-page-content code{font-family:var(--kb-font-mono);font-size:.9em;padding:2px 6px;background-color:var(--kb-bg-code);border-radius:4px;color:var(--kb-text-primary)}.kb-page-content pre{margin:24px 0;padding:0;background-color:var(--kb-bg-code);border-radius:8px;overflow:hidden;border:1px solid var(--kb-border);position:relative}.kb-page-content pre code{display:block;padding:20px 24px;overflow-x:auto;background:none;font-size:var(--kb-font-size-sm);line-height:1.7}.kb-page-content img{border-radius:8px;margin:24px 0}.kb-page-content table{width:100%;border-collapse:collapse;margin:24px 0;font-size:var(--kb-font-size-sm)}.kb-page-content table th,.kb-page-content table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--kb-border)}.kb-page-content table th{font-weight:600;color:var(--kb-text-primary);background-color:var(--kb-bg-primary)}.kb-page-content table td{color:var(--kb-text-secondary)}.kb-page-content table tr:hover td{background-color:var(--kb-bg-primary)}.kb-page-content hr{border:none;border-top:1px solid var(--kb-border);margin:32px 0}.kb-sidebar-right{position:fixed;top:var(--kb-header-height);right:0;bottom:0;width:var(--kb-toc-width);padding:48px 24px 24px 0;overflow-y:auto}.kb-toc{position:sticky;top:0}.kb-toc-title{font-size:var(--kb-font-size-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--kb-text-muted);margin:0 0 12px 0}.kb-toc-list{list-style:none;margin:0;padding:0;border-left:1px solid var(--kb-border)}.kb-toc-item{margin:0}.kb-toc-item--h3{padding-left:12px}.kb-toc-link{display:block;padding:4px 12px;font-size:var(--kb-font-size-sm);color:var(--kb-text-muted);text-decoration:none;border-left:2px solid #fff0;margin-left:-1px;transition:all 0.15s ease;line-height:1.5}.kb-toc-link:hover{color:var(--kb-text-primary);text-decoration:none}.kb-toc-link--active{color:var(--kb-text-primary);border-left-color:var(--kb-accent);font-weight:500}.kb-prev-next{display:flex;gap:16px;width:100%;margin-top:48px}.kb-prev-next--single{display:flex}.kb-prev-next--single .kb-prev-next-link{flex:1}.kb-prev-next-link{flex:1;display:flex;flex-direction:column;gap:4px;padding:16px 20px;border:1px solid var(--kb-border);border-radius:10px;text-decoration:none;transition:all 0.2s ease;background-color:var(--kb-bg-secondary)}.kb-prev-next-link{transition:border-color 0.15s ease,box-shadow 0.15s ease,transform 0.15s ease}.kb-prev-next-link:hover{border-color:var(--kb-accent);box-shadow:0 4px 16px rgb(0 0 0 / .08);text-decoration:none;transform:translateY(-1px)}.kb-prev-next-link:hover .kb-prev-next-title{color:var(--kb-accent)}.kb-prev-next-label svg{transition:transform 0.15s ease}.kb-prev-next-link--prev:hover .kb-prev-next-label svg{transform:translateX(-3px)}.kb-prev-next-link--next:hover .kb-prev-next-label svg{transform:translateX(3px)}.kb-prev-next-link--next{text-align:right;align-items:flex-end}.kb-prev-next-label{display:flex;align-items:center;gap:4px;font-size:var(--kb-font-size-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--kb-text-muted)}.kb-prev-next-title{font-size:var(--kb-font-size-base);font-weight:500;color:var(--kb-text-primary)}.kb-sidebar-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgb(0 0 0 / .5);z-index:40;opacity:0;transition:opacity 0.3s ease}.kb-sidebar-backdrop--visible{display:block;opacity:1}.kb-sidebar-left::-webkit-scrollbar,.kb-sidebar-right::-webkit-scrollbar{width:4px}.kb-sidebar-left::-webkit-scrollbar-thumb,.kb-sidebar-right::-webkit-scrollbar-thumb{background-color:var(--kb-border);border-radius:4px}.kb-sidebar-left::-webkit-scrollbar-track,.kb-sidebar-right::-webkit-scrollbar-track{background:#fff0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--kb-header-height) + 24px)}::selection{background-color:var(--kb-accent);color:#fff}.kb-search-trigger{display:flex;align-items:center;gap:8px;padding:7px 14px;border:1px solid var(--kb-border);border-radius:100px;background:var(--kb-bg-primary);color:var(--kb-text-muted);cursor:pointer;transition:all 0.15s ease;font-family:var(--kb-font-sans);font-size:var(--kb-font-size-sm)}.kb-search-trigger:hover{color:var(--kb-text-primary);border-color:var(--kb-accent);background:var(--kb-bg-secondary)}.kb-search-shortcut{display:flex;align-items:center;gap:2px}.kb-search-shortcut kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 4px;font-family:var(--kb-font-sans);font-size:11px;font-weight:500;color:var(--kb-text-muted);background:var(--kb-bg-secondary);border:1px solid var(--kb-border);border-radius:4px}@media (max-width:600px){.kb-search-shortcut{display:none}}.kb-search-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:200;background-color:rgb(0 0 0 / .6);align-items:flex-start;justify-content:center;padding-top:15vh}.kb-search-overlay--open{display:flex}.kb-search-modal{width:90%;max-width:640px;max-height:70vh;background-color:var(--kb-bg-secondary);border:1px solid var(--kb-border);border-radius:12px;box-shadow:var(--kb-shadow-lg);display:flex;flex-direction:column;overflow:hidden}.kb-search-input-wrap{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--kb-border)}.kb-search-icon{flex-shrink:0;color:var(--kb-text-muted)}.kb-search-input{flex:1;border:none;background:#fff0;font-size:var(--kb-font-size-lg);font-family:var(--kb-font-sans);color:var(--kb-text-primary);outline:none}.kb-search-input::placeholder{color:var(--kb-text-muted)}.kb-search-esc{display:inline-flex;align-items:center;padding:2px 6px;font-family:var(--kb-font-sans);font-size:11px;font-weight:500;color:var(--kb-text-muted);background:var(--kb-bg-primary);border:1px solid var(--kb-border);border-radius:4px;flex-shrink:0}.kb-search-results{overflow-y:auto;flex:1;padding:8px}.kb-search-result{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:8px;text-decoration:none;cursor:pointer;transition:background-color 0.1s ease}.kb-search-result:hover,.kb-search-result--active{background-color:var(--kb-bg-primary);text-decoration:none}.kb-search-result-parent{font-size:var(--kb-font-size-xs);font-weight:500;color:var(--kb-text-muted);text-transform:uppercase;letter-spacing:.04em}.kb-search-result-title{font-size:var(--kb-font-size-base);font-weight:600;color:var(--kb-text-primary)}.kb-search-result-heading{font-size:var(--kb-font-size-sm);color:var(--kb-accent)}.kb-search-result-snippet{font-size:var(--kb-font-size-sm);color:var(--kb-text-muted);line-height:1.5}.kb-search-result-snippet mark{background-color:rgb(42 221 255 / .2);color:var(--kb-text-primary);padding:1px 2px;border-radius:2px}.kb-search-empty,.kb-search-loading{padding:48px 24px;text-align:center;font-size:var(--kb-font-size-sm);color:var(--kb-text-muted);display:flex;flex-direction:column;align-items:center;gap:8px;line-height:1.6}.kb-search-empty::before{content:'';display:block;width:36px;height:36px;background-image:url("data:image/svg+xml,%3Csvg width='36' height='36' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;opacity:.5;margin-bottom:4px}body.kb-standalone{--e-global-color-accent:var(--kb-accent);--e-global-color-primary:var(--kb-accent);--e-global-color-secondary:var(--kb-text-secondary);--e-global-color-text:var(--kb-text-primary);--hello-theme-color-accent:var(--kb-accent)}.kb-standalone a:hover,.kb-standalone a:focus{color:var(--kb-accent)!important;text-decoration:none!important}.kb-standalone .elementor-widget-container a:hover,.kb-standalone .elementor-element a:hover,.kb-standalone .e-widget-container a:hover,.kb-standalone .elementor-widget-text-editor a:hover,.kb-standalone .elementor-widget-heading a:hover,.kb-standalone .elementor-widget-icon-list .elementor-icon-list-item a:hover{color:var(--kb-accent)!important;text-decoration:none!important}.kb-standalone .elementor-button:hover,.kb-standalone .elementor-button-wrapper a:hover,.kb-standalone .elementor-button-link:hover,.kb-standalone [class*="elementor-button"]:hover{background-color:var(--kb-accent)!important;color:#000!important;border-color:var(--kb-accent)!important}.kb-standalone .elementor-icon:hover,.kb-standalone .elementor-icon:hover i,.kb-standalone .elementor-icon:hover svg{color:var(--kb-accent)!important;fill:var(--kb-accent)!important}.kb-standalone *:focus-visible{outline-color:var(--kb-accent)!important}.kb-standalone .kb-theme-toggle{background:var(--kb-bg-primary)!important;color:var(--kb-text-secondary)!important;border-color:var(--kb-border)!important;box-shadow:none!important}.kb-standalone .kb-theme-toggle:hover{background:var(--kb-bg-primary)!important;color:var(--kb-text-primary)!important;border-color:var(--kb-text-muted)!important;box-shadow:none!important}.kb-standalone .kb-search-trigger{background:var(--kb-bg-primary)!important;color:var(--kb-text-muted)!important;border-color:var(--kb-border)!important;box-shadow:none!important}.kb-standalone .kb-search-trigger:hover{background:var(--kb-bg-secondary)!important;color:var(--kb-text-primary)!important;border-color:var(--kb-accent)!important;box-shadow:none!important}.kb-standalone .kb-nav-toggle{background:transparent!important;color:var(--kb-text-muted)!important;box-shadow:none!important}.kb-standalone .kb-nav-toggle:hover{background:var(--kb-bg-primary)!important;color:var(--kb-text-primary)!important}.kb-standalone .kb-mobile-menu-btn{background:transparent!important;color:var(--kb-text-primary)!important;border-color:transparent!important;box-shadow:none!important}.kb-standalone .kb-mobile-menu-btn:hover{background:transparent!important;color:var(--kb-text-primary)!important}.kb-standalone .kb-nav-link:hover{background-color:var(--kb-bg-primary)!important;color:var(--kb-text-primary)!important;text-decoration:none!important}.kb-standalone .kb-prev-next-link:hover{border-color:var(--kb-accent)!important;background-color:var(--kb-bg-secondary)!important;text-decoration:none!important}.kb-standalone .kb-prev-next-link:hover .kb-prev-next-title{color:var(--kb-accent)!important}.kb-standalone .kb-card:hover{border-color:var(--kb-accent)!important;background-color:var(--kb-bg-secondary)!important;text-decoration:none!important;color:inherit!important}.kb-standalone .kb-card-sublinks a:hover{color:var(--kb-accent)!important;text-decoration:none!important}.kb-standalone .kb-card-sublinks-more:hover{color:var(--kb-accent)!important;text-decoration:none!important}.kb-standalone .kb-sidebar-visit:hover{background-color:var(--kb-bg-primary)!important;color:var(--kb-text-primary)!important;text-decoration:none!important}.kb-standalone .kb-toc-link:hover{color:var(--kb-text-primary)!important;text-decoration:none!important}.kb-standalone .kb-search-result:hover{background-color:var(--kb-bg-primary)!important;text-decoration:none!important}.kb-standalone .kb-code-copy-btn:hover{color:var(--kb-text-primary)!important;border-color:var(--kb-text-muted)!important;background-color:var(--kb-bg-secondary)!important}