/* Knowledge Graph & Tri-Hybrid Retrieval — isolated page components. */
:root { --kg-nav-height:66px; }
.kg-hero { padding:32px 0 0; background:radial-gradient(ellipse at 88% 20%,#f2f1ff 0,#f8fafa 32%,#ffffff 68%); }
.kg-breadcrumb { display:flex; flex-wrap:wrap; gap:8px 16px; font-size:12px; margin-bottom:56px; color:#626a70; }
.kg-breadcrumb a { color:inherit; }
.kg-hero h1 { font-size:clamp(3rem,4.7vw,4rem); margin:24px 0 24px; }
.kg-hero .eyebrow { font-size:12px; letter-spacing:.65px; }
.kg-hero-lead { font-size:20px; line-height:1.65; max-width:610px; color:#424a50; }
.kg-hero-support { font-size:14px; line-height:1.85; max-width:600px; }
.kg-foundation { margin-top:64px; border-top:1px solid var(--line); padding:24px 0 32px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px 24px; font-size:12px; }
.kg-foundation > span { color:#626a70; }
.kg-foundation strong { font-weight:500; }
.kg-label { display:block; font-size:12px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:#626a70; }
.kg-cover { background:white; border:1px solid #e1ddff; border-radius:15px; box-shadow:0 22px 65px #2f1d990d; overflow:hidden; margin:0; }
.kg-cover figcaption { padding:16px 16px; display:flex; justify-content:space-between; gap:16px; font-size:12px; letter-spacing:.5px; color:#626a70; border-bottom:1px solid var(--line); background:#f8fafa; }
.kg-cover figcaption span:last-child { letter-spacing:0; }
.kg-cover-boundary { margin:24px; border:1px dashed #beb6ff; border-radius:10px; padding:16px; background:#ffffff; }
.kg-cover-authority { padding-bottom:16px; border-bottom:1px solid var(--line); }
.kg-cover-authority strong { font-size:12px; display:block; margin-top:7px; color:#4128cc; font-weight:500; }
.kg-cover-path { display:grid; grid-template-columns:33px 1fr auto; gap:16px; align-items:center; padding:16px 0; border-bottom:1px solid #f2f1ff; }
.kg-path-icon { display:grid; place-items:center; height:33px; border:1px solid #e1ddff; border-radius:7px; background:#f2f1ff; color:#4128cc; font-size:14px; }
.kg-cover-path strong { display:block; font-size:12px; color:#4128cc; font-weight:500; }
.kg-cover-path small { display:block; font-size:12px; color:#626a70; margin-top:5px; line-height:1.6; }
.kg-mini-tag { font-size:12px; color:#4128cc; border:1px solid #e1ddff; border-radius:4px; padding:3px 5px; }
.kg-cover-result { padding:16px 16px; margin-top:16px; border:1px solid #e1ddff; border-radius:7px; background:#f2f1ff; }
.kg-cover-result strong { display:block; font-size:14px; font-weight:500; margin:7px 0; color:#1f1266; }
.kg-cover-result small { font-size:12px; color:#626a70; }
.kg-cover-output { padding:16px 24px; display:flex; flex-wrap:wrap; gap:8px; justify-content:space-between; background:#f8fafa; border-top:1px solid var(--line); font-size:12px; color:#4128cc; }
.kg-cover-output strong { font-weight:500; }
.kg-nav { position:sticky; top:var(--header-height); z-index:1020; background:white; border-block:1px solid var(--line); box-shadow:0 5px 12px #120a3d04; }
.kg-nav-links { display:grid; grid-template-columns:repeat(5,1fr); }
.kg-nav-links a { display:flex; align-items:center; gap:8px; min-height:66px; padding:16px 16px; font-size:12px; color:#626a70; border-bottom:3px solid transparent; }
.kg-nav-links a span { font-size:12px; color:#626a70; }
.kg-nav-links a.active { color:var(--brand); border-color:var(--brand); background:linear-gradient(0deg,#f2f1ff,transparent); }
.kg-nav-links a:hover { color:var(--brand); background-color:#f8fafa; }
.kg-nav-mobile { display:none; padding:16px 0; }
.kg-section { padding:96px 0; scroll-margin-top:calc(var(--header-height) + var(--kg-nav-height) + 22px); }
.kg-section h2 { font-size:clamp(2rem,3.35vw,3rem); }
.kg-section h3 { font-size:20px; }
.kg-section p { font-size:14px; line-height:1.85; }
.kg-section .lead-copy { font-size:20px; line-height:1.65; }
.kg-wash { background:#f8fafa; }
.kg-heading { margin-bottom:48px; }
.kg-note { font-size:12px !important; line-height:1.75 !important; color:#626a70; margin-top:16px; }
.kg-subsection { margin-top:64px; padding-top:48px; border-top:1px solid var(--line); }
.kg-views { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.kg-views article { padding:32px; border-right:1px solid var(--line); }
.kg-views article:last-child { border:0; }
.kg-views h3 { font-size:20px; margin:16px 0; }
.kg-views p { font-size:12px; margin:0; }
.kg-definition-list { margin:0; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:white; }
.kg-definition-list > div { padding:24px 24px; display:grid; grid-template-columns:150px 1fr; gap:24px; border-bottom:1px solid var(--line); }
.kg-definition-list > div:last-child { border:0; }
.kg-definition-list dt { font-weight:500; color:#4128cc; font-size:12px; }
.kg-definition-list dd { font-size:12px; margin:0; line-height:1.8; }
.kg-callout { border-left:3px solid #beb6ff; padding:7px 0 7px 24px; margin-top:32px; }
.kg-callout p { font-size:14px; margin:0; }
.kg-demo { background:white; border:1px solid #e1ddff; border-radius:14px; overflow:hidden; box-shadow:0 16px 55px #2f1d9907; }
.kg-demo-toolbar { display:flex; justify-content:space-between; gap:24px; align-items:center; padding:24px 24px; background:#f2f1ff; border-bottom:1px solid var(--line); }
.kg-demo-toolbar h3 { font-size:16px; margin:7px 0 0; }
.kg-demo-toolbar .form-select { font-size:12px; min-width:255px; border-color:#e1ddff; background-color:white; }
.kg-demo-toolbar label { font-size:12px; display:block; margin-bottom:5px; color:#626a70; }
.kg-demo-scope { display:flex; gap:8px 24px; flex-wrap:wrap; padding:16px 24px; border-bottom:1px solid var(--line); font-size:12px; }
.kg-demo-body { padding:24px; }
.kg-paths { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--line); border-radius:9px; overflow:hidden; }
.kg-paths article { padding:24px; border-right:1px solid var(--line); }
.kg-paths article:last-child { border:0; }
.kg-paths h4 { font-size:16px; margin:16px 0; }
.kg-paths p { font-size:12px; margin-bottom:16px; }
.kg-paths strong { font-size:12px; font-weight:500; color:#4128cc; }
.kg-filter-row { display:flex; gap:16px; justify-content:space-between; align-items:center; margin:24px 0 16px; flex-wrap:wrap; }
.kg-filters { display:flex; border:1px solid #e1ddff; border-radius:7px; padding:4px; gap:4px; background:#f8fafa; }
.kg-filters button { border:0; border-radius:4px; background:transparent; color:#626a70; font-size:12px; padding:8px 16px; }
.kg-filters button.active { background:var(--brand); color:white; }
.kg-filters button:focus-visible,.kg-reset:focus-visible,.kg-evidence-toggle:focus-visible { outline:2px solid var(--brand); outline-offset:3px; }
#kg-result-summary { font-size:12px; color:#4128cc; }
.kg-selection-note { font-size:12px !important; line-height:1.75 !important; margin-bottom:16px; color:#626a70; }
.kg-results { border:1px solid var(--line); border-radius:9px; overflow:hidden; }
.kg-result { display:grid; grid-template-columns:minmax(0,1fr) 215px; gap:16px; padding:24px; border-bottom:1px solid var(--line); }
.kg-result:last-child { border:0; }
.kg-result h4 { font-size:16px; margin:8px 0 8px; }
.kg-result p { font-size:12px; margin-bottom:16px; }
.kg-result small { font-size:12px; color:#626a70; display:block; line-height:1.8; }
.kg-result-side { display:flex; flex-direction:column; align-items:flex-end; gap:16px; font-size:12px; }
.kg-methods { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; }
.kg-methods span { border:1px solid #e1ddff; background:#f2f1ff; color:#4128cc; border-radius:4px; font-size:12px; padding:4px 6px; }
.kg-result details { margin-top:16px; font-size:12px; line-height:1.9; color:#626a70; }
.kg-result summary { color:var(--brand); cursor:pointer; }
.kg-result details p { font-size:12px; margin:8px 0 0; }
.kg-empty { padding:24px; font-size:12px; }
.kg-badge { display:inline-flex; font-size:12px; font-weight:500; background:#eef1f2; color:#007260; border:1px solid #e6fffa; border-radius:5px; padding:4px 8px; line-height:1.5; white-space:nowrap; }
.kg-gate { margin-top:24px; padding:24px; border:1px solid #e1ddff; border-left:3px solid var(--brand); background:#f2f1ff; border-radius:7px; }
.kg-gate.is-warning { background:#ffffff; border-color:#fff0bf; border-left-color:#996500; }
.kg-gate.is-warning .kg-badge { background:#fff9e6; border-color:#fff0bf; color:#664200; }
.kg-gate-head { display:flex; align-items:center; gap:16px 16px; flex-wrap:wrap; margin-bottom:16px; }
.kg-gate-head h4 { font-size:16px; margin:0; }
.kg-gate p { font-size:12px; line-height:1.75; margin:0; }
.kg-evidence-toggle { color:var(--brand); font-size:12px; padding:16px 0 0; background:transparent; border:0; font-weight:500; text-align:left; }
.kg-evidence-toggle::after { content:' +'; }
.kg-evidence-toggle[aria-expanded=true]::after { content:' −'; }
.kg-record { background:#f8fafa; padding:16px; margin-top:16px; border:1px solid var(--line); border-radius:7px; }
.kg-record dl { margin:0; }
.kg-record dl > div { display:grid; grid-template-columns:150px 1fr; gap:16px; padding:8px 0; border-bottom:1px solid var(--line); }
.kg-record dl > div:last-child { border:0; }
.kg-record dt { font-weight:500; color:#4128cc; font-size:12px; }
.kg-record dd { font-size:12px; margin:0; line-height:1.8; overflow-wrap:anywhere; }
.kg-demo-footer { background:#f8fafa; border-top:1px solid var(--line); padding:16px 24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; font-size:12px; color:#626a70; }
.kg-reset { background:none; border:0; color:var(--brand); font-size:12px; padding:0; text-decoration:underline; text-underline-offset:3px; }
.kg-boundary-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; }
.kg-boundary-grid article { border-top:1px solid var(--line); padding-top:24px; }
.kg-step { color:#4128cc; font-size:12px; }
.kg-boundary-grid h3 { font-size:16px; margin:16px 0 16px; }
.kg-boundary-grid p { font-size:12px; margin:0; }
.kg-lineage { display:grid; grid-template-columns:1.2fr 1fr; background:white; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.kg-lineage > div { padding:32px; }
.kg-lineage > div:last-child { border-left:1px solid var(--line); }
.kg-lineage h3 { font-size:20px; margin:16px 0 24px; }
.kg-lineage ol { list-style:none; margin:0; padding:0 0 0 16px; border-left:1px solid #e1ddff; }
.kg-lineage li { padding:0 0 24px 8px; position:relative; }
.kg-lineage li:last-child { padding-bottom:0; }
.kg-lineage ol li::before { content:''; width:7px; height:7px; background:#beb6ff; border-radius:50%; position:absolute; left:-19px; top:6px; }
.kg-lineage ol strong { display:block; font-size:12px; font-weight:500; color:#4128cc; }
.kg-lineage ol span { display:block; font-size:12px; color:#626a70; margin-top:8px; }
.kg-check-list { padding:8px 0 0; margin:0; list-style:none; }
.kg-check-list li { padding:16px 0 16px 24px; border-bottom:1px solid var(--line); font-size:12px; position:relative; }
.kg-check-list li::before { content:'✓'; position:absolute; left:0; color:var(--brand); }
.kg-check-list li:last-child { border:0; }
.kg-related { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); border-radius:12px; margin-top:40px; overflow:hidden; background:white; }
.kg-related a { padding:24px; border-right:1px solid var(--line); color:var(--body); }
.kg-related a:last-child { border:0; }
.kg-related a:hover { background:#f2f1ff; }
.kg-related strong { display:block; font-size:16px; margin-bottom:16px; }
.kg-related span { font-size:12px; line-height:1.7; display:block; }
.kg-related b { display:block; margin-top:16px; font-size:12px; font-weight:500; color:var(--brand); }
.kg-download { margin-top:24px; font-size:12px !important; }
@media (max-width:991px) {
  .kg-breadcrumb { margin-bottom:32px; }.kg-hero h1 { font-size:clamp(3rem,7vw,4.5rem); }.kg-cover { max-width:620px; }.kg-foundation { margin-top:48px; }.kg-section { padding:64px 0; }
  .kg-nav-links { display:none; }.kg-nav-mobile { display:flex; align-items:center; gap:16px; }.kg-nav-mobile label { font-size:12px; white-space:nowrap; }.kg-nav-mobile select { font-size:12px; }
  .kg-boundary-grid { grid-template-columns:repeat(2,1fr); }.kg-demo-toolbar { align-items:flex-start; }.kg-demo-toolbar h3 { line-height:1.5; }.navbar-collapse.show { max-height:calc(100svh - 90px); overflow-y:auto; }
}
@media (max-width:767px) {
  .kg-hero h1 { font-size:3rem; }.kg-hero-lead { font-size:16px; }.kg-hero .eyebrow { line-height:1.9; }
  .kg-cover-boundary { margin:16px; padding:16px; }.kg-cover figcaption { font-size:12px; padding:16px; }.kg-cover-path { grid-template-columns:28px 1fr; gap:8px; }.kg-mini-tag { display:none; }
  .kg-foundation { display:grid; grid-template-columns:1fr 1fr; gap:16px; font-size:12px; }.kg-foundation > span { grid-column:1/-1; }
  .kg-views,.kg-paths,.kg-related,.kg-lineage { grid-template-columns:1fr; }.kg-views article,.kg-paths article,.kg-related a { border-right:0; border-bottom:1px solid var(--line); }.kg-views article { padding:24px; }
  .kg-demo-toolbar { flex-direction:column; align-items:stretch; padding:24px 16px; gap:16px; }.kg-demo-toolbar .form-select { min-width:0; }.kg-demo-scope { padding:16px 16px; }.kg-demo-body { padding:24px 16px; }
  .kg-filters { width:100%; }.kg-filters button { padding:8px 0; flex:1; font-size:12px; }.kg-filter-row { gap:16px; }.kg-result { grid-template-columns:1fr; padding:16px 16px; gap:16px; }.kg-result-side { align-items:flex-start; }.kg-methods { justify-content:flex-start; }
  .kg-gate { padding:16px; }.kg-gate-head h4 { font-size:16px; }.kg-record dl > div,.kg-definition-list > div { grid-template-columns:1fr; gap:6px; }.kg-demo-footer { padding:16px 16px; }
  .kg-subsection { margin-top:48px; padding-top:40px; }.kg-lineage > div { padding:24px; }.kg-lineage > div:last-child { border-left:0; border-top:1px solid var(--line); }
}
@media (max-width:375px) { .kg-hero h1 { font-size:2.5rem; }.kg-boundary-grid { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print { .kg-nav,.kg-demo-toolbar select,.kg-reset,.kg-filters { display:none !important; }.kg-section { padding:32px 0; }.kg-hero { background:white; } }
