:root { --kb-link:#b94515; }
.kb-feeds { container-type:inline-size; }
.kb-feeds-intro { display:flex; justify-content:space-between; gap:20px; align-items:start; margin:28px 0 22px; }
.kb-feeds-intro h2 { font-size:22px; font-weight:650; letter-spacing:-.4px; }
.kb-feeds-intro p { font-size:13px; color:var(--ink-2); max-width:610px; margin-top:7px; line-height:1.7; }
.kb-feed-count { flex-shrink:0; font-size:13px; color:var(--ink-2); padding-top:5px; }
.kb-feed-columns { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr); gap:40px; padding:0 24px 12px; color:var(--ink-2); font-size:12px; }
.kb-feed { background:var(--surface); border:1px solid var(--border); border-radius:12px; margin-bottom:20px; overflow:hidden; }
.kb-feed-route { display:grid; grid-template-columns:minmax(0,1.15fr) 24px minmax(0,1fr) 24px minmax(0,1fr); gap:8px; padding:24px; }
.kb-feed-node,.kb-feed-process { min-width:0; overflow-wrap:anywhere; }
.kb-feed-node h3,.kb-feed-process h3 { font-size:16px; line-height:1.5; font-weight:650; margin:12px 0 9px; letter-spacing:-.15px; }
.kb-feed-node h3 a { color:var(--ink); text-decoration:none; }
.kb-feed-node h3 a:hover { color:var(--kb-link); text-decoration:underline; }
.kb-feed-node p,.kb-feed-process p { font-size:13px; line-height:1.75; color:var(--ink-2); }
.kb-feed-doc { display:inline-block; margin-top:14px; font-size:12px; color:var(--kb-link); text-underline-offset:3px; }
.kb-feed-arrow { color:var(--ink-3); padding-top:42px; font-size:22px; text-align:center; }
.kb-feed-process { padding:0 8px; }
.kb-feed-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 24px; padding:13px 24px; background:var(--surface-2); font-size:12px; line-height:1.6; color:var(--ink-2); }
.kb-feed-footer a,.kb-feed-downstream a { color:var(--kb-link); text-underline-offset:3px; }
.kb-feed-footer .kb-map-pending { margin-inline-start:8px; }
.kb-feed-downstream { display:flex; gap:8px 16px; flex-wrap:wrap; padding:14px 24px; font-size:12px; line-height:1.7; border-top:1px solid var(--border); }
.kb-feed-downstream small { flex-basis:100%; color:var(--ink-2); font-size:12px; }
.kb-feed a:focus-visible { outline:2px solid var(--accent); outline-offset:4px; border-radius:2px; }
.kb-map-filter-panel { border:1px solid var(--border); border-radius:10px; background:var(--surface); margin-bottom:24px; }
.kb-map-filter-panel > summary { cursor:pointer; padding:16px 20px; font-size:13px; font-weight:600; }
.kb-map-filter-panel > summary span { margin-inline-start:16px; font-weight:400; color:var(--ink-2); }
.kb-map-filter-panel > summary:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.kb-map-filter-panel .kb-map-controls { border:0; margin:0; padding-top:0; }
@media(max-width:620px) { .kb-map-filter-panel > summary { padding:16px; } .kb-map-filter-panel > summary span { display:block; margin:6px 0 0 16px; font-size:12px; } }
.kg-source-path { margin:20px 0; padding:16px; background:var(--surface-2); border-radius:8px; }
.kg-source-path h3 { margin:0 0 8px; font-size:14px; }
.kg-source-path p { font-size:13px; line-height:1.8; overflow-wrap:anywhere; }
.kg-source-path a { display:inline-block; margin-top:12px; font-size:13px; color:var(--kb-link); }
@container (max-width:700px) {
  .kb-feed-columns { display:none; }
  .kb-feed-route { grid-template-columns:minmax(0,1fr); gap:16px; padding:20px; }
  .kb-feed-node,.kb-feed-process { padding:0; }
  .kb-feed-arrow { padding:0; text-align:start; transform:rotate(90deg); width:24px; line-height:1; }
  .kb-feed-footer,.kb-feed-downstream { padding:14px 20px; }
  .kb-feeds-intro { flex-wrap:wrap; gap:10px; }
}
html[data-theme="dark"] { --kb-link:#ff9a6b; }
.kb-page-head { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:30px; }
.kb-breadcrumb { font-size:13px; color:var(--ink-2); margin-bottom:14px; }
.kb-breadcrumb a, .kb-section a, .kb-prose a, .kb-question-panel a { color:var(--kb-link); }
.kb-page-head h1 { font-size:34px; line-height:1.17; font-weight:650; letter-spacing:-1px; max-width:680px; }
.kb-page-head p { color:var(--ink-2); max-width:690px; margin-top:12px; font-size:15px; }
.kb-head-actions { flex-shrink:0; display:flex; gap:8px; padding-top:38px; }
.kb-local { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:12px; color:var(--ink-2); margin-bottom:28px; padding-bottom:12px; border-bottom:1px solid var(--border); }
.kb-local > span:last-child { margin-left:auto; }
.kb-local-dot { width:7px; height:7px; border-radius:50%; background:var(--accent); }
.kb-start { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0 0 34px; border:1px solid var(--border); background:var(--surface); border-radius:12px; overflow:hidden; }
.kb-start > a { display:flex; align-items:flex-start; padding:20px 18px; gap:13px; text-decoration:none; color:var(--ink); border-right:1px solid var(--border); }
.kb-start > a:last-child { border-right:0; }
.kb-start > a:hover { background:var(--accent-dim); }
.kb-start > a > span { font:600 20px var(--mono); color:var(--accent); }
.kb-start > a > span { flex:none; white-space:nowrap; }
.kb-start > a > b { margin-left:auto; font-weight:400; color:var(--ink-2); }
.kb-start strong { font-size:14px; font-weight:650; }
.kb-start p { font-size:12px; line-height:1.6; color:var(--ink-2); margin-top:5px; }
.kb-section-head { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:20px; flex-wrap:wrap; }
.kb-section-head h2, .kb-section > h2 { font-size:20px; font-weight:650; letter-spacing:-.3px; }
.kb-section-head p, .kb-help { font-size:13px; color:var(--ink-2); margin-top:6px; line-height:1.7; }
.kb-section-head > a { font-size:13px; color:var(--kb-link); text-decoration:none; }
.kb-search-row { display:flex; gap:10px; margin-bottom:16px; }
.kb-search { display:flex; align-items:center; gap:10px; padding:0 15px; border:1px solid var(--border); border-radius:8px; background:var(--surface); flex:1; min-width:0; }
.kb-search > span { font-size:26px; color:var(--ink-2); }
.kb-search input { width:100%; border:0; background:transparent; color:var(--ink); padding:12px 0; outline:none; font:inherit; }
.kb-search:focus-within { outline:2px solid var(--accent); outline-offset:2px; }
.kb-filters { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:18px; }
.kb-filter { border:1px solid transparent; background:transparent; color:var(--ink-2); border-radius:7px; cursor:pointer; padding:9px 12px; font:inherit; font-size:13px; font-weight:500; min-height:40px; }
.kb-filter span { font-size:11px; margin-left:8px; opacity:.85; }
.kb-filter.active { color:var(--ink); background:var(--surface); border-color:var(--border); box-shadow:var(--shadow); }
.kb-filter:hover { color:var(--accent); }
.kb-result-count { font-size:12px; color:var(--ink-2); margin:0 0 14px; }
.kb-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.kb-card { display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:20px; min-width:0; }
.kb-card:hover { border-color:var(--accent); }
.kb-card-meta { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
.kb-kind { display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--ink-2); font-weight:500; }
.kb-kind b { font-size:15px; }
.kb-kind.source { color:#287263; }
.kb-kind.automation { color:#94632e; }
.kb-kind.project { color:#526b98; }
html[data-theme="dark"] .kb-kind.source { color:#82c7b5; }
html[data-theme="dark"] .kb-kind.automation { color:#d9b07c; }
html[data-theme="dark"] .kb-kind.project { color:#a3bce5; }
.kb-coverage { font-size:11px; color:var(--ink-2); }
.kb-card h3 { font-size:19px; font-weight:650; margin-bottom:9px; letter-spacing:-.2px; }
.kb-card h3 a { color:var(--ink); text-decoration:none; }
.kb-card > p { font-size:13px; line-height:1.7; color:var(--ink-2); flex:1; }
.kb-card-bottom { display:flex; justify-content:space-between; gap:8px; align-items:center; padding-top:18px; margin-top:18px; border-top:1px solid var(--border); flex-wrap:wrap; }
.kb-card-bottom > span:last-child { font-size:11px; color:var(--ink-2); }
.kb-evidence { font-size:11px; color:var(--ink-2); }
.kb-evidence::before { content:'•'; color:var(--ok); font-size:15px; margin-right:5px; }
.kb-evidence.pending::before { color:#ad762f; }
.kb-no-results { padding:36px 20px; border:1px dashed var(--border); border-radius:10px; color:var(--ink-2); text-align:center; }
.kb-no-results p { margin-top:8px; font-size:13px; }
.kb-document-list { display:flex; flex-direction:column; border:1px solid var(--border); background:var(--surface); border-radius:10px; overflow:hidden; }
.kb-document-link { display:flex; align-items:center; padding:18px; gap:14px; color:var(--ink)!important; text-decoration:none; border-bottom:1px solid var(--border); }
.kb-document-link:last-child { border-bottom:0; }
.kb-document-link:hover { background:var(--accent-dim); }
.kb-document-icon { font-size:25px; color:var(--accent); }
.kb-document-link strong { display:block; font-size:14px; font-weight:600; }
.kb-document-link small { display:flex; gap:12px; flex-wrap:wrap; margin-top:6px; font-size:11px; color:var(--ink-2); }
.kb-arrow { margin-left:auto; color:var(--ink-2); }
.kb-search-doc-title { margin:28px 0 14px; font-size:19px; }
.kb-entity-meta, .kb-document-meta { display:flex; gap:15px; align-items:center; flex-wrap:wrap; padding-bottom:22px; margin-bottom:25px; border-bottom:1px solid var(--border); color:var(--ink-2); font-size:12px; }
.kb-document-meta a { color:var(--kb-link); text-decoration:none; }
.kb-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:28px; }
.kb-section { margin-bottom:28px; }
.kb-section > h2 { margin-bottom:10px; }
.kb-section > .kb-help { margin-bottom:16px; }
.kb-question-panel { padding:22px; align-self:start; background:var(--accent-dim); border-radius:10px; }
.kb-question-panel h2 { font-size:16px; margin-bottom:10px; }
.kb-question-panel p, .kb-question-panel li { font-size:12px; color:var(--ink-2); line-height:1.7; }
.kb-question-panel ul { padding-left:17px; margin-top:14px; }
.kb-question-panel li { margin-bottom:10px; }
.kb-side-note { font-size:11px; border-top:1px solid var(--border); padding-top:14px; margin-top:16px; color:var(--ink-2); }
.kb-relations { display:grid; gap:10px; }
.kb-relation { display:flex; flex-direction:column; gap:5px; background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:16px; text-decoration:none; }
.kb-relation strong { color:var(--ink); font-size:14px; }
.kb-relation > span:not(.kb-kind) { font-size:12px; color:var(--ink-2); }
.kb-pending { color:var(--ink-2); font-size:11px; }
.kb-reader { display:grid; grid-template-columns:minmax(0,760px) 220px; gap:40px; align-items:start; }
.kb-prose { background:var(--surface); padding:30px 34px; border:1px solid var(--border); border-radius:10px; overflow-wrap:anywhere; font-size:14px; line-height:1.85; min-width:0; }
.kb-prose > h1:first-child { display:none; }
.kb-prose #kb-содержание, .kb-prose #kb-содержание + ul { display:none; }
.kb-prose p, .kb-prose ul, .kb-prose ol, .kb-prose pre, .kb-prose table, .kb-prose blockquote { margin-bottom:18px; }
.kb-prose h2 { font-size:21px; line-height:1.4; font-weight:650; margin:30px 0 13px; padding-top:6px; scroll-margin-top:24px; }
.kb-prose h3 { margin:22px 0 10px; font-size:17px; }
.kb-prose ul, .kb-prose ol { padding-left:23px; }
.kb-prose li { margin:5px 0; }
.kb-prose code { font-family:var(--mono); font-size:.88em; background:var(--surface-2); padding:2px 4px; border-radius:4px; }
.kb-prose pre { padding:15px; overflow-x:auto; background:var(--surface-2); border-radius:7px; line-height:1.6; }
.kb-prose pre code { background:none; padding:0; }
.kb-prose table { width:100%; border-collapse:collapse; }
.kb-prose td, .kb-prose th { border:1px solid var(--border); padding:8px; text-align:left; white-space:normal; vertical-align:top; }
.kb-toc { position:sticky; top:24px; }
.kb-toc h2 { font-size:12px; font-weight:650; margin-bottom:12px; }
.kb-toc nav { display:flex; flex-direction:column; gap:3px; }
.kb-toc-link { text-align:left; cursor:pointer; padding:7px 0 7px 12px; border:0; border-left:2px solid var(--border); background:none; color:var(--ink-2); font:inherit; font-size:12px; line-height:1.55; }
.kb-toc-link:hover { border-color:var(--accent); color:var(--accent); }
.kb-back-card { display:block; margin-top:20px; font-size:12px; white-space:normal; }
.kb-provenance { margin-top:22px; font-size:11px; color:var(--ink-2); }
.kb-provenance summary { cursor:pointer; }
.kb-provenance p { margin-top:15px; }
.kb-provenance p > * { display:block; overflow-wrap:anywhere; margin:5px 0; }
.kb-robot-entities { display:flex; gap:12px; flex-wrap:wrap; margin:18px 0; }
.kb-robot-entities a { font-size:13px; text-decoration:none; }
.kb-card-doc { display:inline-block; margin-top:15px; color:var(--kb-link); font-size:12px; text-decoration:none; }
/* Relationship overview and one-hop component view. */
.kb-map-summary { display:flex; flex-wrap:wrap; gap:12px 24px; padding:18px 0; margin-bottom:22px; border-block:1px solid var(--border); color:var(--ink-2); font-size:13px; }
.kb-map-summary b { color:var(--ink); font-size:20px; margin-right:4px; }
.kb-map-summary > span:last-child { margin-left:auto; align-self:center; font-size:12px; }
.kb-map-summary-pending b { color:#94632e; }
html[data-theme="dark"] .kb-map-summary-pending b { color:#d9b07c; }
.kb-map-controls { display:flex; flex-wrap:wrap; align-items:end; gap:16px; margin-bottom:24px; padding:20px; background:var(--surface); border:1px solid var(--border); border-radius:10px; }
.kb-map-controls > div { flex:1 1 230px; min-width:0; }
.kb-map-controls label:not(.kb-map-check) { display:block; font-size:12px; color:var(--ink-2); margin-bottom:7px; }
.kb-map-controls select, .kb-map-controls input[type="search"] { min-height:42px; min-width:0; }
.kb-map-check { display:flex; gap:8px; align-items:center; font-size:12px; min-height:42px; cursor:pointer; }
.kb-map-check input { width:17px; height:17px; flex:none; accent-color:var(--accent); }
.kb-map-count { font-size:12px; color:var(--ink-2); margin-bottom:18px; }
.kb-flow-list { display:grid; gap:20px; }
.kb-flow { min-width:0; background:var(--surface); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.kb-flow-head { display:flex; align-items:center; gap:14px; padding:18px 22px; border-bottom:1px solid var(--border); }
.kb-flow-number { font:12px var(--mono); color:var(--ink-3); flex:none; }
.kb-flow-head > div { min-width:0; }
.kb-flow-head h2 { font-size:18px; font-weight:650; margin-top:3px; line-height:1.35; }
.kb-flow-head h2 a { color:var(--ink); text-decoration:none; }
.kb-flow-head h2 a:hover { color:var(--kb-link); }
.kb-flow-open { margin-left:auto; color:var(--kb-link); font-size:12px; flex:none; }
.kb-flow-stages { display:grid; grid-template-columns:minmax(0,1fr) 22px minmax(0,1.1fr) 22px minmax(0,1fr); gap:14px; padding:22px; }
.kb-flow-stages section { min-width:0; }
.kb-flow-stages h3 { font-size:11px; color:var(--ink-2); font-weight:600; text-transform:uppercase; letter-spacing:.07em; margin-bottom:12px; }
.kb-flow-stages p { font-size:13px; color:var(--ink-2); line-height:1.7; }
.kb-flow-arrow { color:var(--ink-3); font-size:23px; align-self:center; text-align:center; }
.kb-map-chips { display:flex; flex-direction:column; gap:10px; }
.kb-map-chip { display:flex; align-items:baseline; gap:7px; padding:9px 11px; border:1px solid var(--border); border-radius:7px; text-decoration:none; color:var(--ink); font-size:13px; line-height:1.55; min-width:0; overflow-wrap:anywhere; background:var(--bg); }
.kb-map-chip > span:first-child { flex:none; color:var(--ink-2); }
.kb-map-chip > span:last-child { margin-left:auto; flex:none; color:var(--ink-3); }
.kb-map-chip.source { border-left:3px solid #7fae9f; }
.kb-map-chip.automation { border-left:3px solid #c6a16c; }
.kb-map-chip.project { border-left:3px solid #95a8c8; }
.kb-map-chip:hover { border-color:var(--accent); color:var(--kb-link); }
.kb-map-passport { display:inline-block; font-size:12px; color:var(--kb-link); margin-top:13px; }
.kb-map-result { font-size:13px; line-height:1.7; color:var(--kb-link); }
.kb-map-action { display:block; color:var(--ink-2); font-size:11px; margin-bottom:5px; }
.kb-map-pending { display:inline-block; font-size:11px; color:#94632e; background:var(--accent-dim); border-radius:4px; padding:3px 6px; margin-top:6px; }
html[data-theme="dark"] .kb-map-pending { color:#d9b07c; }
.kb-map-notes { border-top:1px solid var(--border); padding:12px 22px; font-size:12px; color:var(--ink-2); }
.kb-map-notes summary, .kb-map-neighbor summary { cursor:pointer; padding-block:3px; }
.kb-map-notes ul { padding-left:18px; margin-top:14px; }
.kb-map-notes li { margin-bottom:12px; line-height:1.7; }
.kb-map-notes a, .kb-map-focus-heading a, .kb-map-center > a:not(.btn) { color:var(--kb-link); }
.kb-map-notes p { margin-top:5px; }
.kb-map-focus-heading { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; font-size:12px; color:var(--ink-2); margin:6px 0 24px; }
.kb-map-focus-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1fr); gap:24px; align-items:start; }
.kb-map-neighbors { min-width:0; grid-column:1; grid-row:1; }
.kb-map-neighbors:last-child { grid-column:3; }
.kb-map-neighbors > h2 { font-size:15px; line-height:1.5; }
.kb-map-neighbors > h2 span { font-size:12px; font-weight:400; margin-left:6px; color:var(--ink-2); }
.kb-map-neighbors > .kb-help { margin:7px 0 18px; }
.kb-map-center { grid-column:2; grid-row:1; min-width:0; position:sticky; top:24px; display:flex; flex-direction:column; gap:16px; padding:24px; background:var(--surface); border:1px solid var(--accent); border-radius:12px; box-shadow:var(--shadow); }
.kb-map-center-label { font-size:11px; color:var(--ink-2); }
.kb-map-center h2 { font-size:24px; font-weight:650; line-height:1.3; letter-spacing:-.4px; }
.kb-map-center p { font-size:13px; color:var(--ink-2); line-height:1.8; }
.kb-map-center > a { font-size:12px; }
.kb-map-center .btn { text-align:center; }
.kb-map-neighbor { min-width:0; padding:16px; margin-bottom:16px; background:var(--surface); border:1px solid var(--border); border-radius:10px; }
.kb-map-neighbor.pending { border-style:dashed; }
.kb-map-direction { color:var(--ink-2); font-size:11px; margin-bottom:10px; }
.kb-map-neighbor > p { font-size:12px; line-height:1.7; color:var(--ink-2); margin-top:10px; }
.kb-map-neighbor .kb-map-sentence { padding-top:10px; border-top:1px solid var(--border); }
.kb-map-neighbor details { margin-top:12px; font-size:11px; color:var(--ink-2); }
.kb-map-neighbor details p { margin-top:8px; line-height:1.7; }
.kb-map-empty { font-size:12px; color:var(--ink-2); padding:18px; border:1px dashed var(--border); border-radius:8px; }
.kb-loading { color:var(--ink-2); padding:40px; }
.kb-directory button:focus-visible, .kb-start a:focus-visible, .kb-card a:focus-visible, .kb-document-link:focus-visible, .kb-toc-link:focus-visible, .kb-map-node:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
@media(max-width:1120px) { .kb-start > a { padding:16px 12px; gap:9px; } .kb-detail-grid { grid-template-columns:minmax(0,1fr) 230px; gap:20px; } .kb-reader { grid-template-columns:minmax(0,1fr) 180px; gap:22px; } .kb-prose { padding:24px; } }
@media(max-width:800px) { .sidebar { flex-wrap:wrap; overflow:visible; } .sidebar-logo { flex:1; } .sidebar-nav { order:3; width:100%; flex:none; overflow-x:auto; border-top:1px solid var(--border); scrollbar-width:thin; } .sidebar-nav > a { flex:none; } .sidebar-footer { flex:none; } .kb-page-head { margin-bottom:22px; } .kb-page-head h1 { font-size:29px; } .kb-local > span:last-child { margin-left:0; } .kb-start { grid-template-columns:1fr; } .kb-start > a { border-right:0; border-bottom:1px solid var(--border); padding:14px 18px; } .kb-start > a:last-child { border-bottom:0; } .kb-start p { margin-top:2px; } .kb-detail-grid { grid-template-columns:1fr; } .kb-reader { grid-template-columns:1fr; } .kb-toc { position:static; order:-1; padding:16px; border:1px solid var(--border); border-radius:8px; } .kb-toc nav { display:flex; flex-direction:row; flex-wrap:wrap; gap:8px; } .kb-toc-link { border:1px solid var(--border); border-radius:5px; padding:8px; } .kb-provenance { margin-top:14px; }  }
@media(max-width:560px) { .kb-page-head { flex-direction:column; gap:12px; } .kb-head-actions { padding-top:0; flex-wrap:wrap; } .kb-grid { grid-template-columns:1fr; } .kb-card { padding:18px; } .kb-card h3 { font-size:18px; } .kb-section-head { align-items:flex-start; } .kb-prose { padding:20px; } .kb-document-meta { gap:8px; }  .kb-search-row > button { padding:8px; } }
@media(prefers-reduced-motion:reduce) { .kb-prose { scroll-behavior:auto; } }

.kb-page-head > div:first-child, .kb-document-link > span { min-width:0; }
.kb-document-icon, .kb-arrow { flex:none; }
.kb-detail-grid > *, .kb-reader > * { min-width:0; }
.kb-toc { max-height:calc(100vh - 48px); overflow-y:auto; }
.kb-map-controls :is(a,button,input,select):focus-visible, .kb-flow a:focus-visible, .kb-map-focus-grid a:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
@media(max-width:1120px) { .kb-map-focus-grid { gap:16px; } .kb-map-center { padding:18px; } .kb-map-center h2 { font-size:21px; } .kb-flow-stages { gap:10px; padding:18px; } }
@media(max-width:800px) { .kb-toc { max-height:none; overflow:visible; } .kb-map-focus-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; } .kb-map-center { grid-column:1/-1; grid-row:1; position:static; } .kb-map-neighbors { grid-row:2; } .kb-map-neighbors:last-child { grid-column:2; } .kb-map-summary > span:last-child { margin-left:0; width:100%; } }
@media(max-width:620px) { .kb-flow-head { padding:16px; align-items:flex-start; flex-wrap:wrap; } .kb-flow-head h2 { font-size:17px; } .kb-flow-open { width:100%; margin:0 0 0 28px; flex:auto; } .kb-flow-stages { grid-template-columns:minmax(0,1fr); padding:16px; gap:12px; } .kb-flow-arrow { transform:rotate(90deg); justify-self:start; margin-left:8px; } .kb-map-controls { padding:16px; } .kb-map-controls > div { flex-basis:100%; } .kb-map-focus-grid { grid-template-columns:minmax(0,1fr); } .kb-map-neighbors:last-child { grid-column:1; grid-row:3; } .kb-map-check { flex:1 1 180px; } .kb-map-notes { padding-inline:16px; } }

.kg-shell { --kg-project:#3b67a0; --kg-automation:#96601d; --kg-source:#237560; --kg-edge:#758392; border:1px solid var(--border); border-radius:12px; background:var(--surface); overflow:hidden; }
html[data-theme="dark"] .kg-shell { --kg-project:#8eb7ee; --kg-automation:#e6b574; --kg-source:#77c6ae; --kg-edge:#8194a7; }
.kg-shell :is(button,a,input,select,summary,svg):focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.kg-toolbar { display:flex; gap:14px; flex-wrap:wrap; align-items:end; padding:18px 20px 12px; }
.kg-toolbar label { color:var(--ink-2); font-size:12px; }
.kg-search, .kg-picker { display:flex; flex-direction:column; gap:6px; flex:1 1 190px; min-width:0; }
.kg-toolbar :is(input[type="search"],select) { width:100%; min-width:0; font:inherit; font-size:14px; background:var(--bg); color:var(--ink); border:1px solid var(--border); border-radius:6px; padding:10px; }
.kg-check { display:flex; align-items:center; gap:8px; padding:10px 0; flex:1 1 160px; cursor:pointer; }
.kg-check input { flex:none; width:16px; height:16px; }
.kg-results { padding:0 20px 15px; display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:12px; color:var(--ink-2); border-bottom:1px solid var(--border); }
.kg-result { background:var(--surface-2); color:var(--ink); border:1px solid var(--border); border-radius:6px; font:inherit; font-size:12px; padding:7px 10px; cursor:pointer; text-align:left; overflow-wrap:anywhere; }
.kg-result:hover { border-color:var(--ink-2); }
.kg-workspace { display:grid; grid-template-columns:minmax(0,1fr) 310px; min-width:0; }
.kg-field { min-width:0; background:var(--bg); display:flex; flex-direction:column; }
.kg-legend { padding:16px 18px 4px; display:flex; gap:10px 20px; flex-wrap:wrap; color:var(--ink-2); font-size:11px; }
.kg-legend b { margin-right:3px; font-size:15px; }
.kg-legend .project b { color:var(--kg-project); }
.kg-legend .automation b { color:var(--kg-automation); }
.kg-legend .source b { color:var(--kg-source); }
#kg-svg { order:2; display:block; width:100%; height:clamp(500px,78vh,700px); touch-action:none; user-select:none; cursor:grab; }
#kg-svg:active { cursor:grabbing; }
#kg-arrow path { fill:var(--kg-edge); }
.kg-edge { stroke:var(--kg-edge); stroke-width:1.4; opacity:.6; }
.kg-edge.pending { stroke-dasharray:6 5; }
.kg-edge.active { opacity:1; stroke:var(--ink); stroke-width:2.5; }
.kg-edge.dim { opacity:.12; }
.kg-node { cursor:grab; --kg-node-color:var(--kg-project); }
.kg-node.automation { --kg-node-color:var(--kg-automation); }
.kg-node.source { --kg-node-color:var(--kg-source); }
.kg-hit { fill:transparent; }
.kg-dot { fill:var(--kg-node-color); stroke:var(--surface); stroke-width:2; }
.kg-halo { fill:none; stroke:transparent; stroke-width:2; }
.kg-node.selected .kg-halo { stroke:var(--ink); }
.kg-node.selected .kg-dot { stroke:var(--ink); }
.kg-node text { fill:var(--ink); font-size:14px; font-weight:500; stroke:var(--bg); stroke-width:4px; stroke-linejoin:round; paint-order:stroke; pointer-events:none; }
.kg-node.selected text { font-weight:750; }
.kg-node.dim { opacity:.2; }
.kg-node:focus-visible { outline:none; opacity:1; }
.kg-node:focus-visible .kg-hit { stroke:var(--ink); stroke-width:2; stroke-dasharray:4 2; }
.kg-zoom { order:1; display:flex; align-items:center; flex-wrap:wrap; gap:7px; padding:10px 16px; }
.kg-zoom .btn { font-size:12px; min-height:34px; }
.kg-zoom output { min-width:36px; text-align:center; font-size:11px; color:var(--ink-2); font-variant-numeric:tabular-nums; }
#kg-motion-status { font-size:11px; color:var(--ink-2); }
.kg-help { order:3; padding:0 18px 16px; font-size:11px; line-height:1.7; color:var(--ink-2); }
.kg-details { min-width:0; max-height:850px; overflow-y:auto; padding:24px 20px; border-left:1px solid var(--border); scroll-padding:20px; }
.kg-eyebrow { display:block; color:var(--ink-2); font-size:10px; letter-spacing:.12em; margin-bottom:18px; }
.kg-details h2 { font-size:23px; font-weight:650; line-height:1.3; margin:12px 0; overflow-wrap:anywhere; }
.kg-details p { font-size:13px; line-height:1.75; color:var(--ink-2); margin-bottom:14px; overflow-wrap:anywhere; }
.kg-detail-intro p { margin-bottom:20px; }
.kg-detail-links { display:flex; flex-direction:column; gap:12px; margin:20px 0; font-size:12px; }
.kg-detail-links a { color:var(--kb-link); }
.kg-detail-links .btn { color:var(--ink); text-align:center; white-space:normal; }
.kg-position { font-size:12px; margin-bottom:24px; }
.kg-position summary { cursor:pointer; color:var(--ink-2); }
.kg-position > div { display:flex; gap:6px; margin-top:10px; }
.kg-details h3 { font-size:14px; font-weight:650; margin-bottom:5px; }
.kg-details .kg-caption { font-size:11px; line-height:1.6; }
.kg-relation { padding:16px 0; border-top:1px solid var(--border); }
.kg-relation > small { font-size:10px; color:var(--ink-2); }
.kg-relation > p:first-of-type { color:var(--ink); font-weight:550; margin:7px 0; }
.kg-status { display:block; font-size:10px; color:var(--ink-2); margin-bottom:10px; }
.kg-status.pending { color:var(--kg-automation); }
.kg-relation .kg-basis { font-size:11px; }
@media(min-width:1700px) { .kg-workspace { grid-template-columns:minmax(0,1fr) 360px; } }
@media(max-width:1500px) { .kg-workspace { grid-template-columns:minmax(0,1fr); } .kg-details { border-left:0; border-top:1px solid var(--border); max-height:none; overflow:visible; } .kg-relation-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; } .kg-detail-links { flex-direction:row; flex-wrap:wrap; align-items:center; } }
@media(max-width:560px) { .kg-toolbar { padding:16px; gap:10px; } .kg-search, .kg-picker { flex-basis:100%; } .kg-toolbar :is(input[type="search"],select) { font-size:16px; } .kg-check { flex-basis:100%; } .kg-results { padding-inline:16px; } .kg-legend { padding-inline:12px; gap:7px 12px; } #kg-svg { height:390px; } .kg-zoom { padding-inline:10px; gap:6px; } .kg-zoom .btn { padding:8px; } .kg-details { padding:20px 16px; } .kg-relation-list { grid-template-columns:minmax(0,1fr); } }
@media(prefers-reduced-motion:reduce) { .kg-shell * { scroll-behavior:auto; } }

.kb-project-group { margin-top:28px; }
.kb-project-group > h2 { font-size:19px; margin:0 0 16px; }
.kb-project-group > h2 span { color:var(--ink-2); font-weight:400; font-size:13px; margin-left:6px; }
.kb-structure { min-width:0; display:flex; flex-direction:column; gap:14px; margin:20px 0; padding:16px; border:1px solid var(--border); border-radius:8px; background:var(--surface-2); font-size:12px; }
.kb-card .kb-structure { margin:14px 0 6px; padding:12px; }
.kb-structure h2 { font-size:18px; margin:0; }
.kb-structure strong { display:block; margin-bottom:6px; font-size:12px; font-weight:650; color:var(--ink); }
.kb-structure > div > div, .kb-structure > div:not(:has(strong)) { display:flex; flex-wrap:wrap; gap:6px; }
.kb-structure a { display:inline-block; color:var(--kb-link); background:var(--surface); border:1px solid var(--border); border-radius:5px; padding:5px 8px; text-decoration:none; overflow-wrap:anywhere; }
.kb-structure a:hover { border-color:var(--ink-2); }
.kb-structure small { display:block; color:var(--ink-2); line-height:1.65; margin-top:5px; }
.kb-parent { color:var(--ink-2); font-size:12px; margin-top:12px; }
.kb-parent a { color:var(--kb-link); }
.kb-structure a:focus-visible, .kb-parent a:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.panel-project-group { margin-bottom:32px; }
.kg-level { display:flex; flex-direction:column; gap:6px; flex:0 1 170px; min-width:0; }
.kb-card { border-radius:12px; padding:22px; }
.kb-card h3 { font-size:18px; line-height:1.45; }
.kb-card h3 a:hover { color:var(--kb-link); text-decoration:underline; text-underline-offset:3px; }
.kb-card-context { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 16px; margin-top:20px; padding-top:14px; border-top:1px solid var(--border); font-size:12px; line-height:1.7; color:var(--ink-2); }
.kb-card-context b { color:var(--ink); font-weight:600; margin-inline-start:4px; }
.kb-card-context a { color:var(--kb-link); text-underline-offset:3px; }
.kb-card-evidence { display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:14px; font-size:11px; color:var(--ink-2); }
.kb-card-evidence .kb-evidence { flex-basis:100%; }
.kb-card-bottom { margin:18px -22px -22px; padding:10px 22px; background:var(--surface-2); border-radius:0 0 11px 11px; }
.kb-card-bottom a { display:inline-flex; align-items:center; min-height:36px; color:var(--kb-link); font-size:13px; text-decoration:none; }
.kb-card-bottom a:first-child { font-weight:600; }
.kb-card-bottom a:hover { text-decoration:underline; text-underline-offset:3px; }
.kb-card a:focus-visible,.kb-entity-page a:focus-visible,.kb-entity-page summary:focus-visible { outline:2px solid var(--accent); outline-offset:3px; border-radius:3px; }
.kb-evidence::before { color:var(--ink-3); }
.kb-entity-page { container-type:inline-size; }
.kb-entity-page .kb-head-actions { flex-wrap:wrap; max-width:300px; justify-content:flex-end; }
.kb-entity-overview { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:22px 24px; margin-bottom:20px; }
.kb-entity-identity { display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; margin-bottom:20px; }
.kb-entity-facts { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr); gap:20px; }
.kb-entity-facts > div { min-width:0; }
.kb-entity-facts dt { color:var(--ink-2); font-size:12px; margin-bottom:7px; }
.kb-entity-facts dd { font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.kb-entity-operator { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:12px 20px; margin-top:20px; padding-top:14px; border-top:1px solid var(--border); font-size:12px; }
.kb-entity-operator a { color:var(--kb-link); }
.kb-entity-operator details { min-width:0; color:var(--ink-2); }
.kb-entity-operator summary { cursor:pointer; }
.kb-entity-operator code { display:block; margin-top:8px; overflow-wrap:anywhere; color:var(--ink); }
.kb-entity-sections { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px; }
.kb-entity-sections a { display:inline-flex; align-items:center; min-height:40px; padding:8px 12px; border:1px solid var(--border); border-radius:7px; font-size:12px; text-decoration:none; color:var(--ink-2); background:var(--surface); }
.kb-entity-sections a:hover { border-color:var(--accent); color:var(--kb-link); }
.kb-entity-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:28px; align-items:start; }
.kb-entity-layout > * { min-width:0; }
.kb-entity-layout [id] { scroll-margin-top:24px; }
.kb-entity-composition > .kb-structure { margin:14px 0 0; border-radius:12px; padding:20px; }
.kb-entity-composition > .kb-parent { padding:20px; background:var(--surface); border:1px solid var(--border); border-radius:12px; font-size:14px; line-height:1.8; }
.kb-entity-layout .kb-question-panel { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:22px; }
.kb-entity-layout .kb-question-panel h2 { font-size:18px; }
.kb-entity-layout .kb-question-panel p,.kb-entity-layout .kb-question-panel li { font-size:13px; }
.kb-relation { border-radius:10px; padding:18px 20px; gap:8px; }
.kb-relation:hover { border-color:var(--accent); }
.kb-document-link { padding:18px 20px; }
@container (max-width:860px) {
  .kb-entity-layout { grid-template-columns:minmax(0,1fr); gap:8px; }
  .kb-entity-page .kb-page-head { flex-direction:column; gap:16px; }
  .kb-entity-page .kb-head-actions { padding-top:0; max-width:none; justify-content:flex-start; }
}
@container (max-width:650px) {
  .kb-entity-facts { grid-template-columns:minmax(0,1fr); gap:16px; }
  .kb-entity-overview { padding:20px; }
}
@media(max-width:560px) { .kb-card { padding:20px; } .kb-card-bottom { margin-inline:-20px; margin-bottom:-20px; padding-inline:20px; } .kb-card-bottom a { min-height:40px; } }
