/* Knowledge Store — hybrid-search workzone diagrams.
   Page-bespoke pieces: the four-primitive panel (hs-prim — vector · lexical ·
   graph · sql side by side, each in its own accent), the result-fusion diagram
   (hs-fuse — four ranked lists merging into one fused list), and the
   two-mode return strip (hs-modes — primitives separately vs the fused
   result). The shared band accent (stk-layer--ks) and the DB-table matrix
   live in the module sheet ../knowledge-store.css.
   Static — no hover affordance (README §Hover).
   Loaded by _workzone/hybrid-search.html on top of ../../module.css
   + ../knowledge-store.css.
   Placement convention: docs/architecture/README.md §Styling. */

/* ════════════════ FOUR PRIMITIVES ════════════════ vector · lexical · graph ·
   sql, four complementary search paradigms, each panel in its own accent. */
.hs-prim {
  display: flex;
  gap: 0.6rem;
  margin: 1.1rem 0 0.4rem;
}
.hs-prim__col {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--border);
  border-top: 3px solid var(--dot);
  border-radius: var(--radius-md);
  padding: 0.75rem 0.85rem;
}
.hs-prim__col--vec {
  border-top-color: var(--accent);
}
.hs-prim__col--lexical {
  border-top-color: var(--s1);
}
.hs-prim__col--graph {
  border-top-color: var(--s3);
}
.hs-prim__col--sql {
  border-top-color: var(--s2);
}
.hs-prim__h {
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  margin-bottom: 0.1rem;
}
.hs-prim__t {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text);
}
.hs-prim__col--vec .hs-prim__t {
  color: var(--accent);
}
.hs-prim__col--lexical .hs-prim__t {
  color: var(--s1);
}
.hs-prim__col--graph .hs-prim__t {
  color: var(--s3);
}
.hs-prim__col--sql .hs-prim__t {
  color: var(--s2);
}
.hs-prim__op {
  font-family: var(--mono);
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  margin-bottom: 0.4rem;
}
.hs-prim__tbl {
  font-family: var(--mono);
  font-size: 0.66rem;
  font-weight: 700;
  color: var(--text-muted);
  margin-bottom: 0.45rem;
}
.hs-prim__d {
  font-size: 0.76rem;
  color: var(--text-dim);
  line-height: 1.5;
}

/* ════════════════ RESULT FUSION ════════════════ four ranked lists collapse
   into one fused list — RRF / weighted, under one ACL pre-filter. */
.hs-fuse {
  display: flex;
  align-items: stretch;
  gap: 0.7rem;
  margin: 1.1rem 0 0.4rem;
}
.hs-fuse__lists {
  flex: 1.3;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.hs-fuse__list {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.hs-fuse__tag {
  flex: 0 0 4.2rem;
  font-family: var(--mono);
  font-size: 0.66rem;
  font-weight: 700;
  text-align: right;
  white-space: nowrap;
}
.hs-fuse__list--vec .hs-fuse__tag {
  color: var(--accent);
}
.hs-fuse__list--lexical .hs-fuse__tag {
  color: var(--s1);
}
.hs-fuse__list--graph .hs-fuse__tag {
  color: var(--s3);
}
.hs-fuse__list--sql .hs-fuse__tag {
  color: var(--s2);
}
.hs-fuse__rank {
  flex: 1;
  display: flex;
  gap: 0.3rem;
}
.hs-fuse__cell {
  flex: 1;
  height: 1.4rem;
  border-radius: var(--tag-radius);
  border: 1px solid var(--dot);
  background: var(--paper);
}
.hs-fuse__list--vec .hs-fuse__cell {
  border-color: var(--accent-muted);
}
.hs-fuse__list--vec .hs-fuse__cell:nth-child(1) {
  background: var(--tint-25);
}
.hs-fuse__list--lexical .hs-fuse__cell {
  border-color: rgba(184, 78, 48, 0.35);
}
.hs-fuse__list--lexical .hs-fuse__cell:nth-child(1) {
  background: rgba(184, 78, 48, 0.22);
  border-color: rgba(184, 78, 48, 0.45);
}
.hs-fuse__list--graph .hs-fuse__cell:nth-child(1) {
  background: rgba(106, 128, 72, 0.22);
  border-color: rgba(106, 128, 72, 0.45);
}
.hs-fuse__list--graph .hs-fuse__cell {
  border-color: rgba(106, 128, 72, 0.35);
}
.hs-fuse__list--sql .hs-fuse__cell:nth-child(1) {
  background: rgba(136, 96, 64, 0.22);
  border-color: rgba(136, 96, 64, 0.45);
}
.hs-fuse__list--sql .hs-fuse__cell {
  border-color: rgba(136, 96, 64, 0.35);
}
.hs-fuse__op {
  flex: 0 0 auto;
  align-self: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  font-family: var(--mono);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--accent);
}
.hs-fuse__op-arrow {
  font-size: 1.1rem;
  line-height: 1;
}
.hs-fuse__out {
  flex: 0.9;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.35rem;
  background: var(--tint-6);
  border: 1.5px solid var(--accent-muted);
  border-radius: var(--radius-md);
  padding: 0.6rem 0.7rem;
}
.hs-fuse__out-h {
  font-family: var(--mono);
  font-size: 0.64rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--accent);
}
.hs-fuse__out-cell {
  height: 1.3rem;
  border-radius: var(--tag-radius);
  border: 1px solid var(--accent-muted);
  background: var(--paper);
}
.hs-fuse__out-cell:nth-child(2) {
  background: var(--tint-25);
}

/* ════════════════ TWO RETURN MODES ════════════════ KS returns both — the
   primitives separately (tools) and the fused result (RAG retrieval). */
.hs-modes {
  display: flex;
  gap: 0.75rem;
  margin: 0.95rem 0 0.3rem;
}
.hs-modes__col {
  flex: 1;
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 4px solid var(--dot);
  border-radius: var(--radius-md);
  padding: 0.8rem 1rem;
}
.hs-modes__col--tools {
  border-left-color: var(--s2);
}
.hs-modes__col--fused {
  border-left-color: var(--accent);
  background: var(--tint-6);
}
.hs-modes__h {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 0.4rem;
}
.hs-modes__t {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--text);
}
.hs-modes__for {
  font-family: var(--mono);
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
}
.hs-modes__col--fused .hs-modes__for {
  color: var(--accent);
}
.hs-modes__d {
  font-size: 0.77rem;
  color: var(--text-dim);
  line-height: 1.55;
}

/* ════════════════ BOUNDARY HAND-OFF ════════════════ KS retrieval ▸ Query
   Engine RAG / Agent Engine tools — where the storage layer ends. */
.hs-bound {
  display: flex;
  gap: 0.75rem;
  margin: 0.9rem 0 0.3rem;
}
.hs-bound__col {
  flex: 1;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 0.85rem 1rem;
}
.hs-bound__col--here {
  border-left: 4px solid var(--accent);
  background: var(--tint-6);
}
.hs-bound__col--there {
  border-left: 4px solid var(--s4);
}
.hs-bound__head {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 0.45rem;
}
.hs-bound__who {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--text);
}
.hs-bound__act {
  font-family: var(--mono);
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
}
.hs-bound__col--here .hs-bound__act {
  color: var(--accent);
}
.hs-bound__d {
  font-size: 0.78rem;
  color: var(--text-dim);
  line-height: 1.55;
}
.hs-bound__seam {
  align-self: center;
  font-size: 1rem;
  color: var(--accent);
}

@media (max-width: 640px) {
  .hs-prim,
  .hs-fuse,
  .hs-modes,
  .hs-bound {
    flex-direction: column;
  }
}
