/* ============================================================
   Project Knowledge UI — Knowledge Explorer
   ============================================================ */

/* ── Shell ── */
.kn-shell{display:flex;flex-direction:column;height:100%;background:var(--bg);overflow:hidden;}
.kn-shell ::selection{background:var(--accent);color:#fff;}

/* ── Page container override (inside Orchestrator) ── */
#page-knowledge{padding:0;max-width:none;}
#page-knowledge.active{height:calc(100vh - 2.5rem);display:flex;flex-direction:column;}

/* ── Topbar ── */
.kn-topbar{display:flex;align-items:center;gap:1rem;padding:.6rem 1.25rem;border-bottom:1px solid var(--border);background:var(--s1);flex-shrink:0;flex-wrap:wrap;}
.kn-brand{display:flex;align-items:center;gap:.4rem;font-size:14px;font-weight:600;color:var(--accent);flex-shrink:0;}
.kn-brand-icon{font-size:16px;}
.kn-brand-text{letter-spacing:-0.3px;}
.kn-brand-sub{font-size:11px;font-weight:400;color:var(--muted2);background:var(--s2);padding:1px 7px;border-radius:10px;}
.kn-tabs{display:flex;gap:2px;background:var(--s2);border-radius:7px;padding:2px;border:1px solid var(--border);}
.kn-tab{background:none;border:none;color:var(--muted2);padding:4px 12px;border-radius:5px;font-size:11.5px;cursor:pointer;transition:all var(--dur-fast) var(--ease);white-space:nowrap;font-family:inherit;}
.kn-tab:hover{color:var(--text);background:var(--s3);}
.kn-tab.active{background:var(--accent);color:#fff;font-weight:600;}
.kn-search{margin-left:auto;flex-shrink:0;}
.kn-search input{width:200px;padding:.35rem .6rem;border:1px solid var(--border2);border-radius:6px;background:var(--s2);color:var(--text);font-size:12px;outline:none;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);}
.kn-search input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow);}

/* ── Body ── */
.kn-body{flex:1;overflow-y:auto;padding:1.25rem;max-width:1100px;margin-inline:auto;width:100%;box-sizing:border-box;}
.kn-view{display:none;animation:fadeIn var(--dur) var(--ease);}
.kn-view.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}

.kn-page-title{font-size:18px;font-weight:600;margin-bottom:.25rem;display:flex;align-items:center;gap:.5rem;}
.kn-page-subtitle{font-size:12px;color:var(--muted);margin-bottom:0;}

/* ── Type Grid (Overview) ── */
.kn-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem;margin-top:.75rem;}
.kn-type-card{background:var(--s1);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem .9rem;text-align:center;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);}
.kn-type-card:hover{border-color:var(--border2);box-shadow:var(--sh-sm);}
.kn-type-card .kn-type-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted2);margin-bottom:.25rem;}
.kn-type-card .kn-type-count{font-size:26px;font-weight:700;color:var(--text);}
.kn-type-card.kn-type-active{border-color:var(--accent);background:var(--accent-dim);}

/* ── Status Grid ── */
.kn-status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;margin-top:.75rem;}
.kn-status-card{background:var(--s1);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .75rem;transition:border-color var(--dur-fast) var(--ease);}
.kn-status-card:hover{border-color:var(--border2);}
.kn-status-card .kn-status-label{font-size:10px;font-weight:600;color:var(--muted2);margin-bottom:2px;}
.kn-status-card .kn-status-count{font-size:20px;font-weight:700;color:var(--text);}
.kn-status-card[data-status="FROZEN"]{border-left:3px solid var(--red);}
.kn-status-card[data-status="ACTIVE"]{border-left:3px solid var(--green);}
.kn-status-card[data-status="ACCEPTED"]{border-left:3px solid var(--blue);}
.kn-status-card[data-status="REJECTED"]{border-left:3px solid var(--muted2);opacity:.7;}
.kn-status-card[data-status="DEFERRED"]{border-left:3px solid var(--yellow);}
.kn-status-card[data-status="PROPOSED"]{border-left:3px solid var(--purple);}

/* ── Filter bar ── */
.kn-filter-bar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;}
.kn-filter-group{display:flex;gap:3px;flex-wrap:wrap;}
.kn-filter-chip{padding:.3rem .65rem;border-radius:14px;font-size:11px;font-weight:500;border:1px solid var(--border);background:var(--s1);color:var(--muted2);cursor:pointer;transition:all var(--dur-fast) var(--ease);white-space:nowrap;font-family:inherit;}
.kn-filter-chip:hover{border-color:var(--accent);color:var(--accent);}
.kn-filter-chip.active{background:var(--accent);color:#fff;border-color:var(--accent);}
.kn-sort select{padding:.3rem .5rem;border:1px solid var(--border2);border-radius:6px;background:var(--s2);color:var(--text);font-size:11px;outline:none;cursor:pointer;}

/* ── Explorer List ── */
.kn-explorer-list{display:flex;flex-direction:column;gap:4px;}
.kn-explorer-item{display:flex;align-items:flex-start;gap:.6rem;padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--s1);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);}
.kn-explorer-item:hover{border-color:var(--border2);box-shadow:var(--sh-sm);}
.kn-explorer-item.kn-item-decision{border-left:3px solid var(--green);}
.kn-explorer-item.kn-item-rejected{border-left:3px solid var(--red);opacity:.75;}
.kn-explorer-item.kn-item-deferred{border-left:3px solid var(--yellow);}
.kn-explorer-item.kn-item-experiment{border-left:3px solid var(--purple);}
.kn-explorer-item.kn-item-lesson{border-left:3px solid var(--blue);}
.kn-explorer-item.kn-item-question{border-left:3px solid var(--yellow);border-style:dashed;}
.kn-explorer-item.kn-item-principle{border-left:3px solid var(--accent);}
.kn-explorer-item.kn-item-history{border-left:3px solid var(--muted2);opacity:.7;}
.kn-explorer-main{flex:1;min-width:0;}
.kn-explorer-title{font-size:12.5px;font-weight:600;color:var(--text);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kn-explorer-summary{font-size:11px;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.kn-explorer-meta{display:flex;gap:.4rem;align-items:center;flex-shrink:0;margin-top:2px;}

/* ── Decision Matrix ── */
.kn-decision-matrix{overflow-x:auto;margin-top:.75rem;}
.kn-matrix-table{width:100%;border-collapse:collapse;font-size:11px;}
.kn-matrix-table th{padding:.4rem .6rem;text-align:left;border-bottom:1px solid var(--border);color:var(--muted);font-weight:600;white-space:nowrap;}
.kn-matrix-table td{padding:.4rem .6rem;border-bottom:1px solid var(--border);color:var(--text);vertical-align:top;}
.kn-matrix-table tr:hover td{background:var(--s2);}
.kn-matrix-id{font-family:var(--mono);font-size:10px;color:var(--accent);font-weight:600;}
.kn-matrix-title{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ── Decision Lists ── */
.kn-decision-section{margin-top:1.25rem;}
.kn-decision-section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;}
.kn-decision-section-title{font-size:13px;font-weight:600;color:var(--text);}
.kn-decision-section-count{font-size:10px;color:var(--muted);background:var(--s2);padding:1px 7px;border-radius:10px;}
.kn-decision-cards{display:flex;flex-direction:column;gap:3px;}

/* ── Timeline ── */
.kn-timeline{position:relative;padding-left:20px;}
.kn-timeline::before{content:'';position:absolute;left:7px;top:4px;bottom:4px;width:2px;background:var(--border);}
.kn-timeline-item{position:relative;padding:.5rem 0;}
.kn-timeline-item::before{content:'';position:absolute;left:-17px;top:10px;width:8px;height:8px;border-radius:50%;background:var(--accent);border:2px solid var(--bg);}
.kn-timeline-item.kn-tl-rejected::before{background:var(--red);}
.kn-timeline-item.kn-tl-deferred::before{background:var(--yellow);}
.kn-timeline-item.kn-tl-active::before{background:var(--green);}
.kn-timeline-item.kn-tl-frozen::before{background:var(--accent);}
.kn-timeline-item.kn-tl-principle::before{background:var(--purple);}
.kn-timeline-date{font-size:10px;font-weight:600;color:var(--accent);margin-bottom:2px;}
.kn-timeline-title{font-size:12.5px;font-weight:600;color:var(--text);line-height:1.4;}
.kn-timeline-summary{font-size:11px;color:var(--muted);margin-top:2px;}
.kn-timeline-badge{margin-top:3px;}

/* ── Detail Drawer ── */
.kn-drawer{position:fixed;top:0;right:0;bottom:0;width:520px;max-width:90vw;background:var(--s1);border-left:1px solid var(--border);z-index:300;display:flex;flex-direction:column;transform:translateX(100%);transition:transform var(--dur) var(--ease);box-shadow:-4px 0 20px rgba(0,0,0,0.08);}
.kn-drawer.open{transform:translateX(0);}
.kn-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0;gap:.75rem;}
.kn-drawer-meta{flex:1;min-width:0;}
.kn-drawer-title{font-size:15px;font-weight:600;color:var(--text);line-height:1.4;margin-bottom:.3rem;}
.kn-drawer-badges{display:flex;gap:.3rem;flex-wrap:wrap;}
.kn-drawer-close{background:none;border:none;font-size:16px;color:var(--muted);cursor:pointer;padding:2px 6px;border-radius:5px;transition:all var(--dur-fast) var(--ease);flex-shrink:0;}
.kn-drawer-close:hover{color:var(--text);background:var(--s2);}
.kn-drawer-body{flex:1;overflow-y:auto;padding:1rem 1.25rem;font-size:13px;line-height:1.7;color:var(--text);}
.kn-drawer-body h1{font-size:18px;font-weight:700;margin:1rem 0 .5rem;border-bottom:1px solid var(--border);padding-bottom:.3rem;}
.kn-drawer-body h2{font-size:15px;font-weight:600;margin:.75rem 0 .4rem;}
.kn-drawer-body h3{font-size:13px;font-weight:600;margin:.5rem 0 .3rem;}
.kn-drawer-body p{margin:.35rem 0;}
.kn-drawer-body ul,.kn-drawer-body ol{padding-left:1.25rem;margin:.35rem 0;}
.kn-drawer-body li{margin:.15rem 0;}
.kn-drawer-body code{background:var(--s3);padding:.1rem .3rem;border-radius:3px;font-size:11px;font-family:var(--mono);}
.kn-drawer-body pre{background:var(--s3);padding:.6rem;border-radius:5px;overflow-x:auto;margin:.4rem 0;}
.kn-drawer-body pre code{background:none;padding:0;}
.kn-drawer-body blockquote{border-left:3px solid var(--accent);margin:.4rem 0;padding:.3rem .6rem;background:var(--s2);color:var(--muted);font-size:12px;}
.kn-drawer-body table{border-collapse:collapse;width:100%;margin:.4rem 0;font-size:11.5px;}
.kn-drawer-body th,.kn-drawer-body td{border:1px solid var(--border);padding:.3rem .45rem;}
.kn-drawer-body th{background:var(--s2);font-weight:600;}
.kn-drawer-body a{color:var(--accent);text-decoration:none;}
.kn-drawer-body a:hover{text-decoration:underline;}
.kn-drawer-body hr{border:none;border-top:1px solid var(--border);margin:.6rem 0;}
.kn-drawer-footer{padding:.75rem 1.25rem;border-top:1px solid var(--border);flex-shrink:0;font-size:10px;color:var(--muted);}
.kn-drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.3);z-index:299;opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease);}
.kn-drawer-overlay.show{opacity:1;pointer-events:all;}

/* ── Toast ── */
.kn-toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(20px);padding:.5rem 1rem;border-radius:7px;font-size:12px;font-weight:500;color:#fff;background:var(--green);box-shadow:var(--sh-md);opacity:0;transition:all .3s var(--ease);z-index:9999;pointer-events:none;white-space:nowrap;}
.kn-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.kn-toast.error{background:var(--red);}

/* ── Badge variants for knowledge types ── */
.kn-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600;padding:2px 7px;border-radius:10px;white-space:nowrap;}
.kn-badge-frozen{background:var(--red-dim);color:var(--red);}
.kn-badge-active{background:var(--green-dim);color:var(--green);}
.kn-badge-accepted{background:var(--blue-dim);color:var(--blue);}
.kn-badge-rejected{background:var(--s3);color:var(--muted2);}
.kn-badge-deferred{background:var(--yellow-dim);color:var(--yellow);}
.kn-badge-proposed{background:var(--purple-dim);color:var(--purple);}
.kn-badge-decision{background:var(--accent-dim);color:var(--accent);}
.kn-badge-principle{background:var(--purple-dim);color:var(--purple);}
.kn-badge-experiment{background:var(--blue-dim);color:var(--blue);}
.kn-badge-lesson{background:var(--green-dim);color:var(--green);}
.kn-badge-question{background:var(--yellow-dim);color:var(--yellow);}
.kn-badge-history{background:var(--s3);color:var(--muted2);}
.kn-badge-conflict{background:var(--red-dim);color:var(--red);}
.kn-badge-default{background:var(--s2);color:var(--muted);}

/* ── Card helper ── */
.kn-card{background:var(--s1);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:0;}

/* ── Responsive ── */
@media (max-width: 768px) {
  .kn-topbar{flex-direction:column;align-items:stretch;gap:.5rem;padding:.5rem .75rem;}
  .kn-tabs{justify-content:center;}
  .kn-search input{width:100%;}
  .kn-search{margin-left:0;}
  .kn-body{padding:.75rem;}
  .kn-drawer{width:100vw;max-width:100vw;}
  .kn-filter-bar{flex-direction:column;align-items:stretch;}
  .kn-type-grid{grid-template-columns:1fr 1fr;}
}

/* ── Knowledge Capture (P2.5-D) ── */
.kc-item{border:1px solid var(--border);border-radius:8px;padding:.7rem .85rem;margin-bottom:.6rem;background:var(--s1);}
.kc-item-pending{border-left:3px solid var(--yellow);}
.kc-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.35rem;}
.kc-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:10px;letter-spacing:.03em;}
.kc-badge-pending{background:var(--yellow-dim);color:var(--yellow);}
.kc-badge-canonical{background:var(--green-dim);color:var(--green);}
.kc-badge-dismissed{background:var(--s2);color:var(--muted2);}
.kc-type{font-size:10px;font-family:monospace;color:var(--muted2);}
.kc-title{font-size:13px;font-weight:600;color:var(--text);}
.kc-desc{font-size:12px;color:var(--muted);line-height:1.5;}
.kc-change{font-size:12px;color:var(--text);background:var(--s2);border-radius:6px;padding:.4rem .55rem;margin-top:.35rem;line-height:1.5;}
.kc-meta{display:flex;gap:.4rem;flex-wrap:wrap;align-items:baseline;margin-top:.45rem;font-size:11px;}
.kc-k{color:var(--muted2);text-transform:uppercase;font-size:9.5px;letter-spacing:.04em;}
.kc-v{color:var(--muted);margin-right:.5rem;}
.kc-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.6rem;}

/* ── Knowledge Acquisition (P3) ── */
.ka-inquiry-list{display:flex;flex-direction:column;gap:4px;max-height:320px;overflow-y:auto;}
.ka-inquiry-item{display:flex;align-items:flex-start;gap:.6rem;padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--s1);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);}
.ka-inquiry-item:hover{border-color:var(--border2);box-shadow:var(--sh-sm);}
.ka-inquiry-main{flex:1;min-width:0;}
.ka-inquiry-title{font-size:12.5px;font-weight:600;color:var(--text);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ka-inquiry-meta{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin-top:2px;}
.ka-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600;padding:2px 7px;border-radius:10px;white-space:nowrap;background:var(--s2);color:var(--muted);}
.ka-badge-candidate{background:var(--green-dim);color:var(--green);}
.ka-stat{font-size:10px;color:var(--muted2);margin-right:.3rem;}
.ka-source-list{display:flex;flex-direction:column;gap:4px;max-height:400px;overflow-y:auto;}
.ka-source-item{border:1px solid var(--border);border-radius:8px;padding:.55rem .75rem;background:var(--s1);}
.ka-source-head{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:.3rem;}
.ka-source-title{font-size:12px;font-weight:600;}
.ka-source-title a{color:var(--accent);text-decoration:none;}
.ka-source-title a:hover{text-decoration:underline;}
.ka-source-error{font-size:11px;color:var(--red,#dc2626);margin-top:.3rem;}
