/* CSL knowledge shell. Component selectors deliberately remain kb-scoped. */
.kb-page { --kb-ink:#15171b; --kb-muted:#515963; --kb-blue:#264eb3; --kb-paper:#fff; --kb-soft:#f5f7f9; --kb-line:#dadde1; --kb-danger:#a61c2c; margin:0; background:var(--kb-paper); color:var(--kb-ink); font:16px/1.65 "Inter","Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; -webkit-font-smoothing:antialiased; overflow-wrap:anywhere; }
.kb-page *, .kb-page *::before, .kb-page *::after { box-sizing:border-box; }
.kb-page [hidden] { display:none!important; }
.kb-anchor-alias { display:block; height:0; scroll-margin-top:100px; }
.kb-page[data-site-embedded] > [data-site-header], .kb-page[data-site-embedded] > [data-site-footer] { display:none; }
.kb-page a { color:var(--kb-blue); text-underline-offset:3px; }
.kb-page :where(button,input,select) { font:inherit; }
.kb-page button, .kb-page select, .kb-page summary { cursor:pointer; }
.kb-page button { touch-action:manipulation; }
.kb-page :focus-visible { outline:2px solid var(--kb-blue); outline-offset:4px; }
.kb-page h1, .kb-page h2, .kb-page h3, .kb-page p { margin-top:0; }
.kb-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.kb-skip { position:absolute; left:16px; top:-70px; z-index:100; padding:10px 14px; background:var(--kb-paper); }
.kb-skip:focus { top:8px; }
.kb-header { display:flex; align-items:center; gap:24px; min-height:60px; max-width:1392px; margin:0 auto; padding:12px 24px; background:var(--kb-paper); border-bottom:1px solid var(--kb-line); }
.kb-brand, .kb-section-brand { font-size:14px; font-weight:590; color:var(--kb-ink)!important; text-decoration:none; white-space:nowrap; letter-spacing:-.02em; }
.kb-search { display:flex; align-items:center; gap:7px; width:min(100%,620px); padding:4px; background:#fff; border:1px solid var(--kb-line); border-radius:5px; }
.kb-search input { width:100%; min-width:0; color:var(--kb-ink); background:transparent; border:0; padding:6px 8px; font-size:16px; }
.kb-search input:focus { outline-offset:1px; }
.kb-header-link { margin-left:auto; white-space:nowrap; text-decoration:none; font-size:14px; }
.kb-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:38px; padding:6px 12px; border:1px solid var(--kb-line); border-radius:5px; color:var(--kb-ink); background:var(--kb-paper); font-size:14px; font-weight:550; text-decoration:none; white-space:nowrap; transition:background 160ms,border-color 160ms,transform 160ms; }
.kb-button:hover { border-color:#b9c7db; background:var(--kb-soft); }
.kb-button:active, .kb-text-button:active, .kb-category:active { transform:scale(.98); }
.kb-button:disabled { opacity:.48; cursor:default; transform:none; }
.kb-button-primary { border-color:var(--kb-ink); background:var(--kb-ink); color:#fff; }
.kb-button-primary:hover { background:#2e3946; color:#fff; }
.kb-text-button { color:var(--kb-blue); border:0; background:transparent; padding:6px; border-radius:4px; font-size:14px; white-space:nowrap; transition:background 160ms,transform 160ms; }
.kb-text-button:hover { background:var(--kb-soft); }
.kb-layout { display:grid; grid-template-columns:210px minmax(0,800px) 180px; gap:36px; align-items:start; max-width:1440px; margin:0 auto; padding:32px 24px 56px; }
.kb-layout-hub { grid-template-columns:210px minmax(0,960px); max-width:1260px; gap:40px; }
.kb-sidebar { position:sticky; top:104px; font-size:14px; }
.kb-sidebar-heading { font-size:12px; color:var(--kb-muted); margin:0 10px 12px; }
.kb-sidebar > h2 { font-size:14px; font-weight:500; margin:0 0 14px; }
.kb-sidebar > ul { list-style:none; padding:0; margin:0 0 18px; display:grid; gap:4px; }
.kb-sidebar > ul a { display:block; color:var(--kb-muted); text-decoration:none; padding:7px 10px; border-radius:5px; }
.kb-sidebar > ul a:hover { background:var(--kb-soft); color:var(--kb-blue); }
.kb-sidebar > ul a[aria-current="page"] { background:var(--kb-soft); color:var(--kb-blue); }
.kb-category-nav { display:grid; gap:4px; }
.kb-category { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; padding:9px 10px; color:var(--kb-ink)!important; background:transparent; border:0; border-radius:6px; text-decoration:none; transition:background 160ms,color 160ms,transform 160ms; text-align:left; }
.kb-category:hover { background:var(--kb-soft); }
.kb-category[aria-current="true"] { color:var(--kb-blue)!important; background:#edf3ff; font-weight:500; }
.kb-category-count { color:var(--kb-muted); font-size:12px; font-variant-numeric:tabular-nums; }
.kb-field { display:grid; gap:8px; margin:26px 10px 0; color:var(--kb-muted); font-size:13px; }
.kb-field select { width:100%; min-width:0; border:1px solid var(--kb-line); border-radius:6px; background:var(--kb-paper); color:var(--kb-ink); padding:8px; font-size:14px; }
.kb-reset { margin:10px 4px 0; }
.kb-issues-link { display:block; margin:22px 10px 0; font-size:13px; color:var(--kb-muted)!important; text-decoration:none; }
.kb-layout > [data-kb-sidebar-home] { align-self:stretch; }
.kb-main { min-width:0; }
.kb-page-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-bottom:24px; }
.kb-page-heading h1 { font-size:clamp(30px,3.15vw,44px); line-height:1.2; font-weight:570; letter-spacing:-.045em; margin:4px 0 12px; }
.kb-eyebrow { color:var(--kb-muted); font-size:12px; letter-spacing:.08em; margin:0; }
.kb-intro { color:var(--kb-muted); font-size:15px; margin:0; max-width:650px; }
.kb-results-toolbar { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; padding:12px 0; border-bottom:1px solid var(--kb-line); color:var(--kb-muted); font-size:13px; }
.kb-count { margin:0; font-variant-numeric:tabular-nums; }
.kb-active-filters { display:flex; flex-wrap:wrap; gap:8px; padding:14px 0 0; }
.kb-filter-chip { border:1px solid var(--kb-line); border-radius:5px; background:var(--kb-soft); color:var(--kb-ink); padding:5px 8px; font-size:12px; }
.kb-results { min-width:0; }
.kb-result { border-bottom:1px solid var(--kb-line); padding:24px 0; transition:opacity 160ms,transform 160ms; }
.kb-result-title { font-size:19px; line-height:1.5; font-weight:500; margin:0 0 8px; }
.kb-result-title a { color:var(--kb-ink); text-decoration:none; }
.kb-result-title a:hover { color:var(--kb-blue); text-decoration:underline; }
.kb-result-excerpt { margin:0; color:var(--kb-muted); font-size:15px; line-height:1.75; }
.kb-result-excerpt mark { background:#e6efff; color:#17469e; padding:0 1px; }
.kb-result-meta { display:flex; flex-wrap:wrap; gap:5px 14px; margin-top:12px; color:var(--kb-muted); font-size:12px; }
.kb-result-meta a { text-decoration:none; }
.kb-result-sub { margin-top:9px; font-size:13px; }
.kb-result-sub a { text-decoration:none; }
.kb-pagination { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:7px; margin-top:28px; }
.kb-pagination a { min-width:36px; color:var(--kb-ink); }
.kb-pagination a[aria-current="page"] { color:#fff; background:var(--kb-ink); border-color:var(--kb-ink); }
.kb-pagination-gap { color:var(--kb-muted); }
.kb-notice { color:var(--kb-muted); padding:16px 0; margin:0; }
.kb-error { margin:20px 0; border-left:3px solid var(--kb-danger); padding:12px 16px; background:#fff5f5; color:var(--kb-danger); }
.kb-error p { margin:0 0 10px; }
.kb-empty { padding:48px 0; }
.kb-empty h2 { margin:0 0 8px; font-size:21px; }
.kb-empty p { color:var(--kb-muted); }
.kb-site-footer { display:flex; flex-wrap:wrap; gap:12px 24px; padding:22px max(24px,calc((100vw - 1392px)/2)); border-top:1px solid var(--kb-line); color:var(--kb-muted); font-size:13px; }
.kb-site-footer a { color:var(--kb-muted); text-decoration:none; }
.kb-mobile-only { display:none; }
.kb-drawer { width:min(380px,calc(100% - 24px)); max-height:calc(100dvh - 32px); margin:16px 12px 16px auto; padding:20px; border:1px solid var(--kb-line); border-radius:10px; color:var(--kb-ink); background:var(--kb-paper); overflow:auto; }
.kb-drawer::backdrop { background:rgb(13 23 38 / 30%); }
.kb-drawer[open] { animation:kb-drawer-enter 180ms ease-out; }
.kb-drawer-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.kb-drawer-head h2 { margin:0; font-size:19px; }
.kb-drawer .kb-sidebar, .kb-drawer .kb-toc { position:static; max-height:none; overflow:visible; }
.kb-reader-tools { display:flex; flex-wrap:wrap; gap:8px; }
.kb-reader-tools [data-kb-menu], .kb-reader-tools [data-kb-outline] { display:none; }
.kb-back { font-size:14px; text-decoration:none; display:inline-block; margin-bottom:20px; }
.kb-article-header { border-bottom:1px solid var(--kb-line); padding-bottom:24px; margin-bottom:28px; }
.kb-article-header h1 { margin:0 0 14px; font-size:32px; line-height:1.4; font-weight:570; letter-spacing:-.035em; }
.kb-article-meta { display:flex; flex-wrap:wrap; gap:7px 18px; color:var(--kb-muted); font-size:13px; }
.kb-breadcrumb { font-size:13px; color:var(--kb-muted); margin-bottom:16px; }
.kb-breadcrumb a { text-decoration:none; }
.kb-document-footer { border-top:1px solid var(--kb-line); margin-top:28px; padding-top:18px; font-size:13px; color:var(--kb-muted); }
.kb-reader-nav a span { display:block; font-size:12px; color:var(--kb-muted); margin-bottom:4px; }
.kb-reader-nav a strong { font-size:15px; font-weight:500; }
.kb-content { font-size:17px; line-height:1.85; min-width:0; }
.kb-content p { margin:0 0 1.1em; }
.kb-content h2, .kb-content h3 { position:relative; scroll-margin-top:100px; color:var(--kb-ink); line-height:1.5; }
.kb-content h2 { margin:36px 0 14px; font-size:24px; font-weight:600; }
.kb-content h3 { margin:28px 0 10px; font-size:20px; font-weight:600; }
.kb-content h2:first-child, .kb-content h3:first-child { margin-top:0; }
.kb-content ul, .kb-content ol { padding-left:1.5em; margin:0 0 1.2em; }
.kb-content li { margin:.3em 0; }
.kb-content img { max-width:100%; height:auto; border-radius:4px; }
.kb-content figure { margin:24px 0; }
.kb-content figcaption { font-size:13px; color:var(--kb-muted); margin-top:8px; }
.kb-content blockquote { margin:24px 0; padding:4px 0 4px 18px; border-left:3px solid var(--kb-line); color:var(--kb-muted); }
.kb-content pre { max-width:100%; overflow:auto; padding:16px; border-radius:6px; background:var(--kb-soft); font-size:14px; line-height:1.7; }
.kb-content code { overflow-wrap:anywhere; }
.kb-content pre code { overflow-wrap:normal; }
.kb-table-scroll { max-width:100%; overflow:auto; margin:24px 0; }
.kb-content table { width:100%; border-collapse:collapse; font-size:15px; }
.kb-content th, .kb-content td { border-bottom:1px solid var(--kb-line); padding:10px 12px; text-align:left; vertical-align:top; }
.kb-content th { background:var(--kb-soft); font-weight:500; }
/* Known dark-theme wrappers retained from the original documents. Preserve semantic source colors. */
.kb-content [style*="background:#1a1028"], .kb-content [style*="background:#1a1a2e"], .kb-content [style*="background:#161b22"], .kb-content [style*="linear-gradient(135deg,#111621,#0d1220)"] { background:var(--kb-soft)!important; border-color:var(--kb-line)!important; color:var(--kb-ink)!important; }
.kb-content [style*="color:#e2e9f5"] { color:var(--kb-ink)!important; }
.kb-content [style*="color:#8b949e"], .kb-content [style*="color:#98a2b8"], .kb-content [style*="color:#8b93a7"], .kb-content [style*="color:#a0a0b0"] { color:var(--kb-muted)!important; border-color:var(--kb-line)!important; }
.kb-content [style*="background:#2a1a3a"], .kb-content [style*="background:#2f3a55"] { background:#edf3ff!important; color:var(--kb-blue)!important; }
.kb-content a[style*="color:#a78bfa"] { color:var(--kb-blue)!important; }
.kb-copy-heading { display:inline-flex; vertical-align:middle; margin-left:9px; padding:3px 5px; border:0; border-radius:4px; background:transparent; color:var(--kb-muted); font-size:12px; font-weight:400; opacity:.75; transition:opacity 160ms,background 160ms; }
.kb-copy-heading:hover, .kb-copy-heading:focus-visible { opacity:1; color:var(--kb-blue); background:var(--kb-soft); }
.kb-copy-fallback { width:100%; margin-top:8px; border:1px solid var(--kb-line); border-radius:4px; padding:8px; font-size:13px; }
.kb-toc { position:sticky; top:108px; max-height:calc(100dvh - 130px); overflow:auto; font-size:13px; }
.kb-toc-title { font-size:12px; font-weight:500; color:var(--kb-muted); margin:0 0 12px; }
.kb-toc-list { display:grid; gap:3px; list-style:none; padding:0; margin:0; }
.kb-toc-list a { display:block; padding:6px 10px; border-left:1px solid var(--kb-line); color:var(--kb-muted); text-decoration:none; }
.kb-toc-list a[aria-current="location"] { color:var(--kb-blue); border-left:2px solid var(--kb-blue); background:var(--kb-soft); }
.kb-toc-list .kb-toc-level-3 { padding-left:20px; font-size:12px; }
.kb-reading-resume { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:10px; border:1px solid var(--kb-line); border-radius:6px; background:var(--kb-soft); color:var(--kb-muted); padding:10px 12px; margin:0 0 20px; font-size:13px; }
.kb-reading-resume p { margin:0; }
.kb-reader-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:40px; padding-top:24px; border-top:1px solid var(--kb-line); }
.kb-reader-nav a { text-decoration:none; }
.kb-reader-nav a:last-child { text-align:right; }
.kb-heading-flash { animation:kb-heading-focus 1100ms ease-out; }
@keyframes kb-drawer-enter { from { opacity:0; transform:translateX(16px); } to { opacity:1; transform:translateX(0); } }
@keyframes kb-heading-focus { from { background:#e8f0ff; } to { background:transparent; } }
@media(max-width:1180px) { .kb-layout { grid-template-columns:180px minmax(0,1fr) 160px; gap:26px; } .kb-layout-hub { grid-template-columns:190px minmax(0,1fr); } }
@media(max-width:960px) { .kb-layout { grid-template-columns:180px minmax(0,1fr); } .kb-layout > .kb-toc, .kb-layout > [data-kb-toc-home] { display:none; } .kb-reader-tools [data-kb-outline] { display:inline-flex; } .kb-layout-hub { grid-template-columns:180px minmax(0,1fr); } .kb-header { gap:16px; } .kb-article-header h1 { font-size:28px; } }
@media(max-width:700px) { .kb-header { flex-wrap:wrap; padding:10px 16px; gap:10px; } .kb-header-link { font-size:13px; } .kb-search { flex-basis:100%; order:3; width:100%; } .kb-layout, .kb-layout-hub { display:block; padding:24px 16px 40px; } .kb-layout > .kb-sidebar, .kb-layout > [data-kb-sidebar-home] { display:none; } .kb-mobile-only { display:inline-flex; } .kb-reader-tools [data-kb-menu], .kb-reader-tools [data-kb-outline] { display:inline-flex; } .kb-page-heading { align-items:flex-start; } .kb-page-heading h1 { font-size:30px; } .kb-result { padding:21px 0; } .kb-result-title { font-size:18px; } .kb-result-excerpt { font-size:15px; } .kb-content { font-size:17px; } .kb-content h2 { font-size:22px; scroll-margin-top:90px; } .kb-content h3 { font-size:19px; scroll-margin-top:90px; } .kb-article-header h1 { font-size:27px; } .kb-site-footer { padding:20px 16px; } .kb-reader-nav { gap:16px; } }
@media(pointer:coarse) { .kb-button,.kb-text-button,.kb-category,.kb-toc-list a,.kb-filter-chip { min-height:44px; } .kb-copy-heading { min-height:36px; } }
@media(prefers-reduced-motion:reduce) { .kb-page *, .kb-page *::before, .kb-page *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
