/* knowledge.css — Kunskap native view (chapter 22) */

/* Shared, stable identity colors. Quality labels keep their explicit wording. */
.kn-view .kn-tinted { --kn-ink:var(--kn-color); }
.kn-view .kn-chip.kn-tinted { color:var(--kn-ink); border-color:color-mix(in srgb,var(--kn-color) 38%,var(--k-line)); background:color-mix(in srgb,var(--kn-color) 12%,var(--k-surface)); }
.kn-view .kn-nav-item.kn-tinted { border-left:3px solid transparent; }
.kn-view .kn-nav-item.kn-tinted .kn-icon { color:var(--kn-ink); }
.kn-view .kn-nav-item[aria-current="true"] { border-left-color:var(--kn-ink,var(--k-accent)); background:color-mix(in srgb,var(--kn-color,var(--k-accent)) 13%,var(--k-surface)); color:var(--k-text); }
.kn-view .kn-catalog-card.kn-tinted { border-top:3px solid var(--kn-ink); }
.kn-icon { display:inline-block; width:1.2em; margin-right:.45em; flex-shrink:0; text-align:center; }
.kn-mobile-nav-toggle { display:none; }
.kn-nav-section { margin:16px 0; }
.kn-nav-section > summary { color:var(--k-text-2); font-size:12px; font-weight:650; padding:8px 6px; cursor:pointer; }
.kn-nav-section .kn-nav-item { margin-left:5px; width:calc(100% - 5px); }
.kn-source-search { box-sizing:border-box; margin:6px 0; font-size:12px; }
.kn-active-filters { display:flex; gap:6px; flex-wrap:wrap; }
.kn-active-filters:not(:empty) { flex-basis:100%; }
.kn-feed-tail { display:flex; justify-content:center; align-items:center; gap:14px; padding:20px 8px; min-height:44px; }
.kn-feed-status { color:var(--k-muted); font-size:12px; }
.kn-archive-content .kn-result-list { padding:0; }
.kn-archive-content .kn-result-item { border:1px solid var(--k-line); border-radius:7px; background:var(--k-surface); padding:10px 14px; content-visibility:auto; contain-intrinsic-size:auto 105px; }
.kn-archive-content .kn-result-btn { padding:0; border:0; border-radius:0; background:none; }
.kn-archive-content .kn-result-meta { margin-top:8px; flex-wrap:wrap; gap:6px; }
.kn-archive-content .kn-result-snippet { margin-bottom:0; max-height:3em; overflow:hidden; }
.kn-archive-shell .kn-doc-pane { min-width:0; max-width:1000px; }
.kn-endpoint-scroll { overflow-x:auto; }
.kn-view .kn-ep-table { table-layout:fixed; width:100%; min-width:1000px; }
.kn-view .kn-ep-table td { padding:10px 8px; vertical-align:middle; }
.kn-url-cell > span,.kn-finding-link { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.kn-finding-link { border:0; background:none; color:var(--k-text); font:inherit; cursor:pointer; padding:0; text-align:left; }
.kn-finding-link:hover { text-decoration:underline; }
.kn-finding-field h3 { font-size:12px; color:var(--k-muted); margin-bottom:5px; }
.kn-view .kn-benchmark-table .kn-source-link { color:var(--k-text); }
.kn-view .kn-chip-unknown { color:var(--k-muted); background:var(--k-raised); border-color:var(--k-line); }
@media(max-width:640px) {
  .kn-catalog > .kn-mobile-nav-toggle { display:block; flex-shrink:0; text-align:left; margin:6px 8px; }
  .kn-catalog > .kn-catalog-nav { display:none; }
  .kn-catalog.kn-nav-open > .kn-catalog-nav { display:block; max-height:240px; }
  .kn-feed-tail { flex-direction:column; gap:8px; }
  .kn-archive-shell .kn-toolbar { padding:8px; }
  .kn-catalog-heading p { display:none; }
  .kn-catalog-filter { flex-basis:120px!important; }
}

/* ── Layout ──────────────────────────────────────────────────────────── */
.kn-view {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background: var(--k-bg);
  color: var(--k-text);
  font-size: var(--k-size-base);
  font-family: var(--k-font);
}

.kn-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: var(--k-header-a);
  border-bottom: 1px solid var(--k-line);
  flex-shrink: 0;
  flex-wrap: wrap;
}

.kn-body {
  display: flex;
  flex: 1;
  overflow: hidden;
}

/* ── Search ──────────────────────────────────────────────────────────── */
.kn-search-wrap {
  flex: 2 1 320px;
  min-width: 220px;
  max-width: 640px;
}

@media (max-width: 720px) {
  .kn-search-wrap { max-width: none; flex-basis: 100%; }
}

.kn-search {
  width: 100%;
  background: var(--k-inset);
  border: 1px solid var(--k-line);
  border-radius: var(--k-radius-ctrl);
  color: var(--k-text);
  font-size: var(--k-size-base);
  font-family: var(--k-font);
  padding: 5px 9px;
  outline: none;
}
.kn-search:focus { border-color: var(--k-accent); }
.kn-search::placeholder { color: var(--k-dim); }
/* Search fields placed directly in a toolbar (not inside .kn-search-wrap)
   still deserve room to type a real query instead of a cramped sliver. */
.kn-toolbar > input[type="search"].kn-search,
.kn-catalog-heading + input[type="search"].kn-search {
  flex: 2 1 320px;
  min-width: 220px;
  max-width: 640px;
}
@media (max-width: 720px) {
  .kn-toolbar > input[type="search"].kn-search,
  .kn-catalog-heading + input[type="search"].kn-search { flex-basis: 100%; max-width: none; }
}

/* ── Toast + copy control ────────────────────────────────────────────── */
.kn-toast {
  position: fixed;
  left: 50%;
  bottom: 28px;
  transform: translate(-50%, 12px);
  background: var(--k-panel, #1c2430);
  color: var(--k-text);
  border: 1px solid var(--k-line);
  border-radius: var(--k-radius-ctrl);
  padding: 8px 16px;
  font-size: var(--k-size-base);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease;
  z-index: 2000;
}
.kn-toast-visible { opacity: 1; transform: translate(-50%, 0); }
.kn-toast[data-tone="error"] { border-color: #f87171; color: #f87171; }
.kn-copy-btn {
  font-size: 0.85em;
  padding: 2px 8px;
  margin-left: 8px;
  border: 1px solid var(--k-line);
  border-radius: var(--k-radius-ctrl);
  background: transparent;
  color: var(--k-dim);
  cursor: pointer;
}
.kn-copy-btn:hover, .kn-copy-btn:focus-visible { color: var(--k-text); border-color: var(--k-accent); }

.kn-filter-select {
  background: var(--k-inset);
  border: 1px solid var(--k-line);
  border-radius: var(--k-radius-ctrl);
  color: var(--k-text);
  font-size: var(--k-size-sm);
  font-family: var(--k-font);
  padding: 5px 8px;
  cursor: pointer;
}
.kn-filter-select:focus { border-color: var(--k-accent); outline: none; }

.kn-bible-label {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: var(--k-size-sm);
  color: var(--k-text-2);
  cursor: pointer;
  white-space: nowrap;
}
.kn-bible-check { accent-color: var(--k-accent); }

/* ── Results + Doc pane ─────────────────────────────────────────────── */
.kn-results-area {
  flex: 1;
  overflow-y: auto;
  padding: 12px 14px;
  min-width: 0;
}

.kn-doc-pane {
  width: 44%;
  min-width: 300px;
  max-width: 600px;
  overflow-y: auto;
  border-left: 1px solid var(--k-line);
  padding: 14px 16px;
  background: var(--k-surface);
  flex-shrink: 0;
  position: relative;
}

/* ── Status messages ────────────────────────────────────────────────── */
.kn-notice, .kn-error, .kn-loading, .kn-empty {
  color: var(--k-muted);
  font-size: var(--k-size-sm);
  padding: 20px 0;
  text-align: center;
}
.kn-error { color: var(--k-danger); }

/* ── Result list ────────────────────────────────────────────────────── */
.kn-count {
  font-size: var(--k-size-xs);
  color: var(--k-muted);
  margin: 0 0 8px;
}

.kn-result-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.kn-result-item { margin: 0; }

.kn-result-btn {
  width: 100%;
  text-align: left;
  background: var(--k-surface);
  border: 1px solid var(--k-line);
  border-radius: var(--k-radius-card);
  padding: 8px 10px;
  cursor: pointer;
  color: var(--k-text);
  font-family: var(--k-font);
  font-size: var(--k-size-sm);
  transition: background .1s, border-color .1s;
}
.kn-result-btn:hover { background: var(--k-raised); border-color: var(--k-line-strong); }
.kn-result-btn:focus { outline: 2px solid var(--k-accent); outline-offset: 1px; }
.kn-result-btn[aria-pressed="true"] { border-color: var(--k-accent); background: var(--k-chip-active-bg); }

.kn-result-header {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 2px;
}

.kn-result-title {
  font-weight: 500;
  color: var(--k-text);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.kn-result-meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 2px;
}
.kn-result-source, .kn-result-date, .kn-result-type {
  font-size: var(--k-size-xs);
  color: var(--k-muted);
}

.kn-result-snippet {
  font-size: var(--k-size-xs);
  color: var(--k-text-2);
  margin: 4px 0 0;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

/* ── Badges ─────────────────────────────────────────────────────────── */
.kn-badge {
  font-size: var(--k-size-xs);
  padding: 1px 5px;
  border-radius: 3px;
  background: var(--k-chip-bg);
  color: var(--k-muted);
  white-space: nowrap;
  flex-shrink: 0;
}
.kn-badge-bible {
  background: var(--k-accent-tint);
  color: var(--k-accent-text);
}

/* ── Pagination ─────────────────────────────────────────────────────── */
.kn-pager {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px solid var(--k-line);
  justify-content: center;
}

.kn-btn {
  background: var(--k-surface);
  border: 1px solid var(--k-line);
  border-radius: var(--k-radius-ctrl);
  color: var(--k-text);
  cursor: pointer;
  font-family: var(--k-font);
  padding: 4px 10px;
}
.kn-btn:hover:not(:disabled) { background: var(--k-raised); }
.kn-btn:disabled { opacity: 0.4; cursor: default; }
.kn-btn:focus { outline: 2px solid var(--k-accent); outline-offset: 1px; }
.kn-btn-sm { font-size: var(--k-size-sm); }

.kn-page-info { font-size: var(--k-size-xs); color: var(--k-muted); }

/* ── Document reader ────────────────────────────────────────────────── */
.kn-doc-close {
  position: absolute;
  top: 10px;
  right: 10px;
  background: none;
  border: none;
  color: var(--k-muted);
  font-size: 18px;
  cursor: pointer;
  line-height: 1;
  padding: 2px 6px;
  border-radius: var(--k-radius-ctrl);
}
.kn-doc-close:hover { color: var(--k-text); background: var(--k-raised); }
.kn-doc-close:focus { outline: 2px solid var(--k-accent); }

.kn-doc-title {
  font-size: 15px;
  font-weight: 600;
  margin: 0 32px 8px 0;
  color: var(--k-text);
}

.kn-doc-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.kn-doc-meta-item {
  font-size: var(--k-size-xs);
  color: var(--k-muted);
  background: var(--k-inset);
  padding: 1px 6px;
  border-radius: 3px;
}

.kn-doc-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 10px; }

.kn-doc-paths {
  font-size: var(--k-size-xs);
  margin-bottom: 12px;
  color: var(--k-muted);
}
.kn-doc-paths summary { cursor: pointer; color: var(--k-text-2); margin-bottom: 4px; }
.kn-doc-path {
  font-family: var(--k-mono);
  font-size: var(--k-size-xs);
  background: var(--k-inset);
  padding: 2px 6px;
  border-radius: 3px;
  margin: 2px 0;
  word-break: break-all;
}

.kn-doc-content {
  font-family: var(--k-mono);
  font-size: var(--k-size-xs);
  background: var(--k-inset);
  border: 1px solid var(--k-line);
  border-radius: var(--k-radius-card);
  padding: 10px 12px;
  overflow-x: auto;
  white-space: pre-wrap;
  word-break: break-all;
  color: var(--k-text-2);
  max-height: 60vh;
  overflow-y: auto;
}

.kn-doc-snippet {
  font-size: var(--k-size-sm);
  color: var(--k-text-2);
  line-height: 1.6;
}

/* ── Lineage dialog ─────────────────────────────────────────────────── */
.kn-lineage-dialog {
  background: var(--k-surface);
  color: var(--k-text);
  border: 1px solid var(--k-line-strong);
  border-radius: var(--k-radius-card);
  padding: 0;
  max-width: min(860px, 94vw);
  width: 860px;
  max-height: 80vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: var(--k-shadow-pop);
}
.kn-lineage-dialog::backdrop { background: var(--k-overlay); }

.kn-lineage-header {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--k-line);
  flex-shrink: 0;
  flex-wrap: wrap;
}
.kn-lineage-title {
  font-size: 15px;
  font-weight: 600;
  margin: 0;
  flex: 1;
}
.kn-lineage-sub {
  font-size: var(--k-size-xs);
  color: var(--k-muted);
  margin: 2px 0 0;
  flex: 1;
  min-width: 100%;
  order: 2;
}
.kn-lineage-close {
  background: none;
  border: none;
  color: var(--k-muted);
  font-size: 18px;
  cursor: pointer;
  line-height: 1;
  padding: 2px 6px;
  border-radius: var(--k-radius-ctrl);
  flex-shrink: 0;
}
.kn-lineage-close:hover { color: var(--k-text); background: var(--k-raised); }
.kn-lineage-close:focus { outline: 2px solid var(--k-accent); }

.kn-lineage-body {
  overflow-y: auto;
  padding: 14px 16px;
  flex: 1;
}

.kn-lineage-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--k-size-sm);
}
.kn-lineage-table th {
  text-align: left;
  font-size: var(--k-size-xs);
  color: var(--k-muted);
  padding: 4px 8px;
  border-bottom: 1px solid var(--k-line);
  white-space: nowrap;
}
.kn-lineage-table td {
  padding: 5px 8px;
  border-bottom: 1px solid var(--k-td-line);
  vertical-align: top;
  word-break: break-word;
}
.kn-lineage-table tr:last-child td { border-bottom: none; }
.kn-unmapped td { color: var(--k-warn); }
.kn-missing td { color: var(--k-dim); font-style: italic; }

.kn-td-raw, .kn-td-norm { font-family: var(--k-mono); font-size: var(--k-size-xs); }
.kn-td-source { white-space: nowrap; max-width: 140px; overflow: hidden; text-overflow: ellipsis; }
.kn-td-status { font-size: var(--k-size-xs); }

.kn-lineage-note {
  margin-top: 10px;
  font-size: var(--k-size-xs);
  color: var(--k-muted);
}

.kn-lineage-summary {
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--k-line);
}
.kn-lineage-kv {
  display: flex;
  gap: 8px;
  align-items: baseline;
  margin: 3px 0;
  font-size: var(--k-size-sm);
}
.kn-lineage-label {
  color: var(--k-muted);
  flex-shrink: 0;
  min-width: 120px;
}
.kn-lineage-val { color: var(--k-text); font-family: var(--k-mono); font-size: var(--k-size-xs); }
.kn-lineage-wip { color: var(--k-accent); font-family: var(--k-mono); font-size: var(--k-size-xs); }
.kn-lineage-divergence {
  font-size: var(--k-size-xs);
  color: var(--k-warn);
  margin: 4px 0 0;
  padding: 2px 6px;
  background: color-mix(in srgb, var(--k-warn) 10%, transparent);
  border-radius: 3px;
  display: inline-block;
}
.kn-lineage-section {
  font-size: 13px;
  font-weight: 600;
  color: var(--k-text);
  margin: 14px 0 6px;
}
.kn-selected td { background: color-mix(in srgb, var(--k-accent) 8%, transparent); }
.kn-td-tier { font-size: var(--k-size-xs); color: var(--k-muted); }
.kn-td-selected { text-align: center; color: var(--k-accent); font-weight: 600; }
.kn-td-rule { font-family: var(--k-mono); font-size: var(--k-size-xs); color: var(--k-muted); }
.kn-evidence-row td { padding-top: 0; border-bottom: 1px solid var(--k-line); }
.kn-evidence-details { font-size: var(--k-size-xs); }
.kn-evidence-details summary { cursor: pointer; color: var(--k-text-2); }
.kn-evidence-url {
  font-family: var(--k-mono);
  font-size: var(--k-size-xs);
  color: var(--k-muted);
  margin: 2px 0;
  word-break: break-all;
}

/* ── Tab bar ────────────────────────────────────────────────────────── */
.kn-tabbar {
  display: flex;
  gap: 0;
  padding: 0 14px;
  background: var(--k-header-a);
  border-bottom: 1px solid var(--k-line);
  flex-shrink: 0;
}
.kn-tab {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--k-muted);
  cursor: pointer;
  font-family: var(--k-font);
  font-size: var(--k-size-sm);
  padding: 8px 14px;
  transition: color .1s, border-color .1s;
}
.kn-tab:hover { color: var(--k-text); }
.kn-tab:focus { outline: 2px solid var(--k-accent); outline-offset: -2px; }
.kn-tab-active { color: var(--k-text); border-bottom-color: var(--k-accent); font-weight: 500; }

/* ── Source link ────────────────────────────────────────────────────── */
.kn-source-link {
  background: none;
  border: none;
  color: var(--k-accent);
  cursor: pointer;
  font-family: var(--k-font);
  font-size: inherit;
  padding: 0;
  text-decoration: underline;
  text-decoration-style: dotted;
}
.kn-source-link:hover { text-decoration-style: solid; }
.kn-source-link:focus { outline: 2px solid var(--k-accent); outline-offset: 1px; }

/* ── Endpoint table ────────────────────────────────────────────────── */
.kn-ep-table { margin-top: 6px; }

/* ── Document sections (versions, relations, aliases) ──────────────── */
.kn-doc-section {
  margin: 12px 0 0;
  font-size: var(--k-size-sm);
  border: 1px solid var(--k-line);
  border-radius: var(--k-radius-card);
  padding: 0;
}
.kn-doc-section > summary {
  cursor: pointer;
  padding: 6px 10px;
  color: var(--k-text-2);
  font-weight: 500;
  user-select: none;
}
.kn-doc-section > summary:hover { color: var(--k-text); }
.kn-doc-section[open] > summary { border-bottom: 1px solid var(--k-line); }

.kn-doc-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--k-size-xs);
}
.kn-doc-table th {
  text-align: left;
  font-size: var(--k-size-xs);
  color: var(--k-muted);
  padding: 4px 10px;
  border-bottom: 1px solid var(--k-line);
}
.kn-doc-table td {
  padding: 4px 10px;
  border-bottom: 1px solid var(--k-td-line);
  vertical-align: top;
  word-break: break-word;
}
.kn-doc-table tr:last-child td { border-bottom: none; }
.kn-td-date { font-size: var(--k-size-xs); color: var(--k-muted); white-space: nowrap; }

.kn-doc-rel-list {
  list-style: none;
  margin: 0;
  padding: 4px 10px 8px;
}
.kn-doc-rel {
  margin: 3px 0;
  font-size: var(--k-size-xs);
}

.kn-doc-section .kn-doc-path {
  margin: 2px 10px;
}

/* ── FormFactor field menu in product popup ──────────────────────────── */
.pp-field-menu-wrap {
  position: relative;
  display: inline-flex;
  margin-left: 4px;
  vertical-align: middle;
}

.pp-field-menu-btn {
  background: none;
  border: 1px solid transparent;
  border-radius: var(--k-radius-ctrl);
  color: var(--k-dim);
  cursor: pointer;
  font-size: 13px;
  line-height: 1;
  padding: 1px 4px;
  transition: color .1s, border-color .1s;
}
.pp-field-menu-btn:hover,
.pp-field-menu-btn[aria-expanded="true"] {
  color: var(--k-text);
  border-color: var(--k-line);
  background: var(--k-raised);
}
.pp-field-menu-btn:focus { outline: 2px solid var(--k-accent); outline-offset: 1px; }

.pp-field-menu {
  position: absolute;
  top: calc(100% + 3px);
  right: 0;
  z-index: 900;
  min-width: 220px;
  background: var(--k-raised);
  border: 1px solid var(--k-line-strong);
  border-radius: var(--k-radius-card);
  box-shadow: var(--k-shadow-pop);
  list-style: none;
  margin: 0;
  padding: 4px 0;
}

.pp-field-menu-item {
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  color: var(--k-text);
  cursor: pointer;
  font-family: var(--k-font);
  font-size: var(--k-size-sm);
  padding: 6px 12px;
}
.pp-field-menu-item:hover { background: var(--k-row-hover); }
.pp-field-menu-item:focus { outline: none; background: var(--k-row-hover); }

/* Curated library: browsing and evidence are deliberately separate surfaces. */
.kn-catalog { display:flex; flex:1; min-height:0; overflow:hidden; }
.kn-catalog-nav { flex:0 0 230px; overflow:auto; padding:16px 8px; background:var(--k-surface); }
.kn-nav-title { margin:0 10px 14px; font-size:16px; }
.kn-nav-item { display:block; width:100%; border:0; border-radius:5px; background:none; color:var(--k-text-2); font:inherit; padding:8px 10px; text-align:left; cursor:pointer; }
.kn-nav-item:hover,.kn-nav-item[aria-current="true"] { background:var(--k-chip-active-bg); color:var(--k-accent); }
.kn-nav-item:focus-visible,.kn-chip:focus-visible,.kn-card-title:focus-visible { outline:2px solid var(--k-accent); outline-offset:2px; }
.kn-nav-heading { font-weight:650; margin-top:14px; }
.kn-nav-subtitle { margin:22px 10px 6px; color:var(--k-muted); font-size:11px; text-transform:uppercase; letter-spacing:.07em; }
.kn-nav-note { color:var(--k-muted); font-size:12px; line-height:1.5; padding:8px; }
.kn-catalog-main { flex:1; min-width:0; display:flex; flex-direction:column; overflow:hidden; }
.kn-catalog-heading { flex-basis:100%; }
.kn-catalog-heading h1 { font-size:20px; margin:5px 0; }
.kn-catalog-heading p { font-size:12px; color:var(--k-muted); margin:6px 0 10px; }
.kn-catalog-content { flex:1; min-height:0; overflow:auto; padding:20px; }
.kn-catalog-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr)); gap:12px; }
.kn-catalog-card { display:flex; flex-direction:column; gap:10px; align-items:flex-start; border:1px solid var(--k-line); border-radius:8px; background:var(--k-surface); padding:18px; }
.kn-card-title { border:0; background:none; color:var(--k-text); font:inherit; font-weight:600; font-size:15px; cursor:pointer; padding:0; text-align:left; }
.kn-card-title:hover { text-decoration:underline; }
.kn-card-description,.kn-catalog-explainer { color:var(--k-text-2); font-size:13px; line-height:1.5; margin:0; white-space:pre-wrap; }
.kn-catalog-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:12px 0; }
.kn-chip { border:1px solid color-mix(in srgb,var(--k-accent) 20%,transparent); background:color-mix(in srgb,var(--k-accent) 10%,var(--k-surface)); border-radius:5px; color:var(--k-accent); font:inherit; font-size:12px; cursor:pointer; padding:3px 7px; text-align:left; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.kn-chip-source,.kn-chip-measured { color:var(--k-good,#6fcdb4); border-color:color-mix(in srgb,var(--k-good,#6fcdb4) 25%,transparent); background:color-mix(in srgb,var(--k-good,#6fcdb4) 10%,var(--k-surface)); }
.kn-chip-estimated,.kn-chip-unknown { color:var(--k-warn); background:color-mix(in srgb,var(--k-warn) 10%,var(--k-surface)); border-color:color-mix(in srgb,var(--k-warn) 25%,transparent); }
.kn-chip:hover { filter:brightness(1.2); text-decoration:underline; }
.kn-catalog-detail { flex:0 0 440px; min-width:0; overflow:auto; position:relative; padding:20px; background:var(--k-surface); box-sizing:border-box; }
.kn-catalog-detail[hidden],.kn-splitter[hidden],.kn-doc-pane[hidden] { display:none; }
.kn-catalog-detail .kn-lineage-kv { display:block; padding:5px 0; border-bottom:1px solid var(--k-line); overflow-wrap:anywhere; }
.kn-catalog-detail .kn-lineage-label { display:block; font-size:11px; margin-bottom:3px; }
.kn-splitter { flex:0 0 7px; background:var(--k-line); cursor:col-resize; touch-action:none; position:relative; z-index:2; }
.kn-splitter:hover,.kn-splitter:focus-visible { background:var(--k-accent); outline:none; }
.kn-archive-splitter:has(+.kn-doc-pane[hidden]) { display:none; }
.kn-entry-form { display:grid; gap:12px; }
.kn-entry-form label { display:grid; gap:5px; color:var(--k-text-2); font-size:12px; }
.kn-entry-form textarea { min-height:90px; resize:vertical; }
.kn-entry-form .kn-search { box-sizing:border-box; }
.kn-history-item { border-bottom:1px solid var(--k-line); padding:10px 0; }
.kn-catalog-filter { display:flex; flex-direction:column; gap:4px; font-size:11px; color:var(--k-muted); flex:1 1 150px; max-width:240px; }
.kn-catalog-filter .kn-search { box-sizing:border-box; }
.kn-data-warning { color:var(--k-warn); border-left:2px solid var(--k-warn); padding:7px 10px; font-size:12px; line-height:1.5; }
.kn-benchmark-scroll { overflow:auto; max-width:100%; }
.kn-benchmark-table { border-collapse:collapse; table-layout:fixed; font-size:12px; }
.kn-benchmark-table th { position:relative; text-align:left; height:32px; padding:5px 9px; background:var(--k-surface); color:var(--k-muted); border:1px solid var(--k-line); }
.kn-benchmark-table td { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; height:32px; padding:5px 9px; border:1px solid var(--k-line); }
.kn-benchmark-table tbody tr:hover { background:var(--k-raised); }
.kn-col-resizer { position:absolute; right:-3px; top:0; bottom:0; width:8px; cursor:col-resize; touch-action:none; z-index:2; }
.kn-col-resizer:hover,.kn-col-resizer:focus-visible { background:var(--k-accent); outline:none; }
.kn-benchmark-table .kn-source-link { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
@media (max-width:800px) {
  .kn-catalog-nav { max-width:170px; }
  .kn-catalog-detail { position:absolute; inset:90px 8px 8px; width:auto!important; border:1px solid var(--k-line-strong); z-index:10; box-shadow:var(--k-shadow-pop); }
  .kn-detail-splitter { display:none; }
  .kn-catalog-content { padding:12px; }
  .kn-doc-pane { position:absolute; inset:100px 10px 10px; width:auto!important; max-width:none; min-width:0; z-index:10; }
  .kn-archive-splitter { display:none; }
}
@media (max-width:640px) {
  .kn-catalog { flex-direction:column; }
  .kn-catalog-nav { flex-basis:auto!important; width:100%!important; max-width:none; max-height:135px; border-bottom:1px solid var(--k-line); box-sizing:border-box; }
  .kn-catalog > .kn-splitter { display:none; }
  .kn-tab { padding:8px; }
  .kn-toolbar { max-height:38vh; overflow:auto; }
}

/* Current delivery is a purposeful reference view, not another raw archive. */
.kn-current-guidance { border:1px solid var(--k-line); border-left:3px solid #5eead4; border-radius:8px; padding:14px 18px; margin:0 0 16px; background:var(--k-bg-2, #17191c); }
.kn-current-guidance h2 { font-size:15px; margin:0 0 10px; }
.kn-guidance-row { display:grid; grid-template-columns:minmax(180px,1fr) 2fr; gap:6px 20px; padding:10px 0; }
.kn-guidance-row p { margin:0; color:var(--k-muted); }
.kn-guidance-row code { grid-column:1 / -1; overflow-wrap:anywhere; font-size:12px; }
.kn-authority-label { display:inline-block; font-size:12px; color:var(--k-muted); margin:5px 12px 5px 0; }
.kn-result-snippet mark { color:inherit; background:#fcd34d33; border-radius:2px; }
.kn-current-block { border:1px solid var(--k-line); border-left:3px solid var(--kn-color, #93c5fd); padding:16px 20px; border-radius:8px; margin-bottom:14px; }
.kn-current-block h2 { font-size:17px; margin:0 0 10px; }
.kn-current-block p { line-height:1.6; margin:8px 0; }
.kn-current-block li { margin:8px 0; }
.kn-current-block .kn-lineage-val { overflow-wrap:anywhere; min-width:0; }
.kn-current-block pre { white-space:pre-wrap; overflow-wrap:anywhere; }
.kn-current-status[data-status="degraded"], .kn-current-status[data-status="unavailable"] { border-left-color:#fcd34d; }
.kn-current-status[data-status="ok"] { border-left-color:#5eead4; }
.kn-current .kn-nav-item { text-decoration:none; }
.kn-current .kn-source-link, .kn-current-guidance .kn-source-link { color:#7dd3fc; }
@media(max-width:700px){ .kn-guidance-row { grid-template-columns:1fr; }.kn-current-block { padding:12px; }.kn-current .kn-lineage-kv { flex-direction:column; gap:4px; } }

/* ── Data & API: clickable headings, recipe blocks, categories, health ─── */
.kn-heading-link { background:none; border:none; padding:0; margin:0; font:inherit; font-weight:600; color:inherit; cursor:pointer; text-align:left; }
.kn-heading-link:hover, .kn-heading-link:focus-visible { color:var(--k-accent); text-decoration:underline; }
.kn-current-recipe-line { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:6px 0; }
.kn-current-recipe-line code { flex:1 1 auto; min-width:0; overflow-wrap:anywhere; background:var(--k-inset); padding:3px 6px; border-radius:4px; }
.kn-current-category-tabs { display:flex; flex-direction:column; gap:4px; margin-bottom:14px; }
.kn-current-category-tabs .kn-nav-item { width:100%; text-align:left; }
.kn-current-category-tabs [aria-pressed=true] { background:var(--k-hover); border-left:3px solid var(--kn-color,var(--k-accent)); }
.kn-current-list { display:grid; gap:12px; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); }
.kn-health-row-head { display:flex; align-items:center; gap:8px; }
.kn-health-row-head h2 { margin:0; }
.kn-health-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; background:#6b7280; }
.kn-health-dot[data-status="online"] { background:#4ade80; }
.kn-health-dot[data-status="error"], .kn-health-dot[data-status="forbidden"], .kn-health-dot[data-status="schema_mismatch"] { background:#f87171; }
.kn-health-dot[data-status="auth_required"] { background:#fcd34d; }
.kn-health-dot[data-status="unknown"] { background:#6b7280; }
/* Real-data benchmark suggestions: bounded list, never replaces the result feed. */
.kn-suggest{position:relative;min-width:180px}
.kn-suggest-line{display:flex;align-items:stretch;gap:4px}
.kn-suggest-line .kn-search{min-width:0;width:100%;flex:1}
.kn-suggest-toggle{flex:0 0 32px;padding:4px}
.kn-suggest-list{position:fixed;z-index:1200;box-sizing:border-box;max-height:280px;overflow:auto;background:var(--k-bg,#18191d);color:var(--k-text,#eee);border:1px solid #626574;border-radius:8px;box-shadow:0 8px 28px #0008}
.kn-suggest-list[hidden]{display:none}
.kn-suggest-option{padding:9px 12px;cursor:pointer;overflow-wrap:anywhere}
.kn-suggest-option small{display:block;opacity:.65;font-size:11px}
.kn-suggest-option:hover,.kn-suggest-option[aria-selected="true"]{background:#7161d544}
.kn-suggest-status{display:block;font-size:11px;opacity:.7;min-height:1em;margin-top:3px}
.kn-technical-name{display:block;opacity:.55;overflow-wrap:anywhere;margin:4px 0 8px}
