/* Knowledge: a read-only folder of a Git repository. Uses the app's neutral tokens, like Board and Roadmap. */
.knowledge-workspace { display:flex; flex-direction:column; width:100%; height:100%; min-height:0; overflow:hidden; }
.content:has(.knowledge-workspace) { padding:0; overflow:hidden; }
.knowledge-reader { flex:1; min-width:0; min-height:0; overflow:auto; }
.knowledge-reader:focus { outline:none; }
.knowledge-loading { margin:12vh auto; text-align:center; color:var(--ink-faint); font-size:var(--text-label); }

/* Search: one field over names and text, like the Board's search control. */
.knowledge-toolbar { display:flex; align-items:center; gap:14px; padding:14px 28px; border-bottom:1px solid var(--line); flex-shrink:0; }
.knowledge-search { display:flex; align-items:center; gap:8px; width:420px; min-height:38px; border:1px solid rgb(var(--tone-rgb) / 0.08); background:var(--glass-2); border-radius:var(--radius-sm); padding:0 10px; color:var(--ink-faint); transition:border-color .14s; }
.knowledge-search:hover { border-color:var(--line-strong); }
.knowledge-search:focus-within { outline:2px solid var(--focus-ring); outline-offset:2px; }
.knowledge-search input { background:none; border:0; color:var(--ink); width:100%; min-width:0; font:inherit; font-size:var(--text-ui); outline:none; }
.knowledge-search input::placeholder { color:var(--ink-ghost); }
.knowledge-search input::-webkit-search-cancel-button { -webkit-appearance:none; display:none; }
.knowledge-search-clear { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:22px; height:22px; padding:0; border:0; border-radius:50%; background:var(--fill-selected); color:var(--ink-muted); cursor:pointer; }
.knowledge-search-clear:hover { color:var(--ink); }
.knowledge-search input:placeholder-shown ~ .knowledge-search-clear { display:none; }
.knowledge-search-kbd,.knowledge-finder-foot kbd { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 5px; border:1px solid var(--line-strong); border-bottom-width:2px; border-radius:5px; background:var(--surface-canvas); color:var(--ink-faint); font:500 var(--text-xs)/1 var(--font-mono); }
.knowledge-search:focus-within .knowledge-search-kbd,.knowledge-search input:not(:placeholder-shown) ~ .knowledge-search-kbd { display:none; }
.knowledge-search-cancel { display:none; }

/* States: not connected, first sync, failed, missing path. */
.knowledge-banner { display:flex; align-items:center; gap:12px; padding:12px 24px; background:color-mix(in srgb,var(--warn) 8%,var(--bg)); border-bottom:1px solid color-mix(in srgb,var(--warn) 25%,transparent); font-size:var(--text-label); color:var(--ink); }
.knowledge-banner>svg { color:var(--warn); flex-shrink:0; }
.knowledge-banner span { flex:1; line-height:1.6; }
.knowledge-banner small { display:block; color:var(--ink-muted); font-size:var(--text-label); }
.knowledge-badge { border:1px solid var(--line-strong); border-radius:6px; padding:3px 7px; font-size:var(--text-xs); color:var(--ink-faint); }
.knowledge-empty { display:flex; flex-direction:column; align-items:center; text-align:center; max-width:460px; margin:12vh auto; padding:24px; }
.knowledge-empty>svg { width:34px; height:34px; margin-bottom:20px; color:var(--ink-faint); }
.knowledge-empty h2 { font-size:24px; font-weight:600; letter-spacing:-.02em; color:var(--ink); }
.knowledge-empty p { color:var(--ink-muted); font-size:15px; line-height:1.7; margin:13px 0 23px; }
.knowledge-empty-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }

/* Browse: breadcrumbs, a Name / Updated list and the folder's README. */
.knowledge-content { max-width:1180px; padding:24px 28px 64px; margin:0 auto; }
.knowledge-path-row { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:32px; margin-bottom:14px; }
.knowledge-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:9px; color:var(--ink-faint); font-size:var(--text-ui); min-width:0; overflow-wrap:anywhere; }
.knowledge-breadcrumb a { color:var(--ink-muted); text-decoration:none; font-weight:500; }
.knowledge-breadcrumb a:hover { color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.knowledge-breadcrumb strong { color:var(--ink); font-weight:600; }
.knowledge-item-count { flex-shrink:0; font-size:var(--text-sm); color:var(--ink-muted); font-variant-numeric:tabular-nums; }
.knowledge-skipped { margin:14px 2px 0; font-size:var(--text-sm); color:var(--ink-faint); }
.knowledge-file-list { border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; margin-bottom:26px; }
.knowledge-file-list table { width:100%; border-collapse:collapse; table-layout:fixed; }
.knowledge-file-list td,.knowledge-file-list th { padding:0 17px; border-bottom:1px solid var(--line); color:var(--ink-faint); font-size:var(--text-label); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; text-align:left; }
.knowledge-file-list th { height:37px; background:var(--glass-1); font-size:var(--text-sm); font-weight:400; color:var(--ink-muted); }
.knowledge-file-list td { height:53px; transition:background 120ms; }
.knowledge-file-list td:last-child,.knowledge-file-list th:last-child { width:116px; text-align:right; font-variant-numeric:tabular-nums; }
.knowledge-file-list td:last-child { font-size:var(--text-xs); }
.knowledge-file-list tr:last-child td { border-bottom:0; }
.knowledge-file-list tr:hover td,.knowledge-file-list tr:focus-within td { background:var(--fill-hover); }
.knowledge-file-list a { display:flex; gap:12px; align-items:center; min-height:53px; color:var(--ink); text-decoration:none; font-size:var(--text-ui); font-weight:500; }
.knowledge-file-list a:hover>span:last-child { text-decoration:underline; text-decoration-color:var(--ink-faint); text-underline-offset:4px; }
.knowledge-file-list a>span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.knowledge-file-mark { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; color:var(--ink-muted); flex-shrink:0; }

/* Read: one card per file with its preview controls, full view and Download. */
.knowledge-preview { border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; background:var(--surface-canvas); }
.knowledge-preview-head { display:flex; gap:18px; align-items:center; flex-wrap:wrap; min-height:59px; padding:10px 16px; border-bottom:1px solid var(--line); background:var(--glass-1); }
.knowledge-file-title { display:flex; gap:10px; align-items:center; font-size:var(--text-ui); color:var(--ink); min-width:0; overflow-wrap:anywhere; }
.knowledge-file-title strong { font-weight:500; }
.knowledge-file-title .knowledge-file-mark { width:27px; height:27px; }
.knowledge-file-title .knowledge-file-mark svg { width:20px; height:20px; }
.knowledge-preview-actions { margin-left:auto; display:flex; align-items:center; gap:8px; }
.knowledge-preview-actions .btn.icon { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; min-height:36px; padding:0; color:var(--ink); background:var(--glass-2); border:1px solid rgb(var(--tone-rgb) / 0.08); border-radius:var(--radius-sm); }
.knowledge-preview-actions .btn.icon:hover { background:var(--fill-selected); border-color:var(--line-strong); }
.knowledge-preview-actions .btn.icon svg { width:18px; height:18px; stroke-width:1.8; }
.knowledge-preview-modes .html-preview-tools { border:0; padding:0; background:none; }
.knowledge-preview-modes .image-controls,.knowledge-preview-modes .pdf-controls { padding:0; border:0; background:none; gap:12px; min-height:30px; }
.knowledge-preview-modes .preview-position { font-size:var(--text-sm); color:var(--ink-muted); }
.knowledge-preview-modes .btn { border-radius:6px; color:var(--ink-muted); }
.knowledge-preview-modes .btn.icon { width:30px; height:30px; min-height:30px; padding:5px; }
.knowledge-preview-modes [hidden] { display:none!important; }
.knowledge-preview-body { min-height:0; }
.knowledge-preview-body [hidden] { display:none!important; }
.knowledge-preview-body>.access-note,.knowledge-preview-body>.preview-unavailable { padding:50px 22px; text-align:center; }
.knowledge-preview-body .document-preview { display:block; flex:initial; overflow:visible; min-height:0; }
.knowledge-preview-body .markdown-scroll { overflow:visible; padding:0; }
.knowledge-preview-body .markdown-body { max-width:850px; margin:0 auto; padding:34px 38px 44px; font-family:var(--font-sans); }
.knowledge-preview-body .markdown-body h1 { margin-top:0; }
.knowledge-preview-body pre.html-source,.knowledge-preview-body pre.file-source-text { margin:0; padding:24px; font:var(--text-label)/1.8 var(--font-mono); white-space:pre-wrap; overflow-wrap:anywhere; color:var(--ink); background:var(--surface-canvas); }
.knowledge-preview-body .html-preview { min-height:480px; }
.knowledge-preview .knowledge-media-body { height:min(72dvh,800px); min-height:340px; display:flex; flex-direction:column; background:var(--glass-1); }
.knowledge-preview .knowledge-media-body[data-inline-kind="pdf"] { height:auto; min-height:220px; max-height:72dvh; }
.knowledge-media-body .pdf-surface { padding:24px; }
.knowledge-media-body .image-stage { min-height:0; }
.knowledge-media-body .access-note { margin:auto; font-size:var(--text-label); color:var(--ink-faint); }
.knowledge-article h2,.knowledge-article h3 { display:flex; align-items:center; gap:8px; scroll-margin-top:24px; }
.knowledge-heading-link { opacity:0; border:0; background:none; color:var(--ink-faint); cursor:pointer; font:inherit; font-size:16px; padding:0 2px; }
.knowledge-article :is(h2,h3):hover .knowledge-heading-link,.knowledge-heading-link:focus-visible { opacity:1; }

/* Markdown uses the app's neutral surfaces and lines, inline and in full view. `:root` outranks the
   GitHub theme, which loads later with the same specificity. */
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body { color:var(--ink); font-size:var(--text-ui); line-height:1.65; }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body :is(h1,h2,h3,h4,h5,strong,b,dt,p,li,td,blockquote) { color:var(--ink); }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body h1 { font-size:28px; font-weight:600; letter-spacing:-.02em; }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body h2 { font-size:22px; font-weight:600; }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body h3 { font-size:var(--text-heading); font-weight:600; }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body :is(h4,h5) { font-size:var(--text-ui); font-weight:600; }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body table { display:table; width:100%; border-collapse:collapse; font-size:var(--text-body); }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body th { text-align:left; }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body :is(h1,h2) { border-bottom-color:var(--line); }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body :is(h6,.footnotes,del) { color:var(--ink-muted); }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body blockquote { border-left-color:var(--line-strong); }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body hr { background-color:var(--line); border-bottom-color:var(--line); }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body table tr { background-color:transparent; border-top-color:var(--line); }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body table tr:nth-child(2n) { background-color:var(--glass-1); }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body table :is(th,td) { border-color:var(--line-strong); }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body table th { background-color:var(--glass-2); }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body :is(code,tt,samp) { background-color:var(--glass-2); color:inherit; }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body pre { background-color:var(--surface-code); }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body pre code { background-color:transparent; }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body kbd { color:var(--ink); background-color:var(--surface-raised); border-color:var(--line-strong); box-shadow:inset 0 -1px 0 var(--line-strong); }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body img { background-color:transparent; }
/* Links in text are underlined, so color is never their only cue. */
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body a { color:var(--run); text-decoration:underline; text-decoration-thickness:from-font; text-underline-offset:2px; }
:root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body a:hover { text-decoration-thickness:2px; }

/* Search results: one card with Files and In documents. */
.knowledge-finder { border:1px solid var(--line); border-radius:var(--radius-md); background:var(--surface-canvas); overflow:hidden; }
.knowledge-finder-head { display:flex; align-items:center; padding:10px 12px; border-bottom:1px solid var(--line); background:var(--glass-1); }
.knowledge-scope button span { margin-left:7px; color:var(--ink-faint); font-size:var(--text-xs); font-variant-numeric:tabular-nums; }
.knowledge-scope button.on span { color:var(--ink-muted); }
.knowledge-finder-body { padding:6px; }
.knowledge-finder-status { min-height:46px; margin:0; padding:14px 10px; font-size:var(--text-label); color:var(--ink-faint); }
.knowledge-finder-group { padding:4px 0 6px; }
.knowledge-finder-group+.knowledge-finder-group { margin-top:4px; border-top:1px solid var(--line-soft); padding-top:10px; }
.knowledge-finder-group h3 { margin:4px 10px 6px; font-size:var(--text-sm); font-weight:500; color:var(--ink-muted); }
.knowledge-hit { display:flex; align-items:center; gap:12px; min-height:46px; padding:7px 10px; border-radius:var(--radius-sm); color:var(--ink); text-decoration:none; outline:none; }
.knowledge-hit:hover { background:var(--fill-hover); }
.knowledge-hit:focus-visible { background:var(--fill-selected); }
.knowledge-hit-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:var(--text-ui); font-weight:500; }
.knowledge-hit-where { margin-left:auto; padding-left:12px; flex-shrink:0; font-size:var(--text-sm); color:var(--ink-faint); }
.knowledge-hit mark { padding:0 1px; border-radius:3px; background:var(--fill-selected); color:var(--ink); font-weight:600; }
.knowledge-hit-doc+.knowledge-hit-doc { margin-top:4px; }
.knowledge-hit-sections { margin:0 0 4px 25px; padding-left:16px; border-left:1px solid var(--line); }
.knowledge-hit--text { flex-direction:column; align-items:flex-start; gap:3px; min-height:0; padding:8px 10px; }
.knowledge-hit-heading { font-size:var(--text-body); font-weight:500; color:var(--ink); }
.knowledge-hit-snippet { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:var(--text-label); line-height:1.55; color:var(--ink-muted); }
.knowledge-finder-more { display:block; margin:2px 0 4px; padding:7px 10px; border:0; border-radius:var(--radius-sm); background:none; color:var(--ink-muted); font:inherit; font-size:var(--text-label); text-align:left; text-decoration:none; cursor:pointer; }
.knowledge-finder-more:hover { background:var(--fill-hover); color:var(--ink); }
.knowledge-finder-empty { display:flex; flex-direction:column; align-items:center; gap:6px; padding:44px 16px; text-align:center; }
.knowledge-finder-empty strong { font-size:var(--text-ui); font-weight:500; color:var(--ink); }
.knowledge-finder-empty span { font-size:var(--text-label); color:var(--ink-muted); }
.knowledge-finder-foot { display:flex; gap:18px; padding:9px 14px; border-top:1px solid var(--line); background:var(--glass-1); font-size:var(--text-xs); color:var(--ink-faint); }
.knowledge-finder-foot span { display:inline-flex; align-items:center; gap:4px; }
@media (hover:none) { .knowledge-finder-foot,.knowledge-search-kbd { display:none!important; } }

/* Settings: the source reads like the Project access rows above it. */
.knowledge-source-row { display:flex; align-items:center; gap:14px; min-height:62px; padding:10px 4px; border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); }
.knowledge-source-mark { display:flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:7px; background:var(--glass-3); color:var(--ink-muted); flex-shrink:0; }
.knowledge-source-name { display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.knowledge-source-name b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:var(--text-ui); font-weight:500; color:var(--ink); }
.knowledge-source-name small { font-size:var(--text-sm); color:var(--ink-faint); }
.knowledge-source-meta { display:flex; flex-wrap:wrap; align-items:center; gap:2px 14px; }
.knowledge-source-meta .mono { font-size:var(--text-xs); }
.knowledge-source-status { display:inline-flex; align-items:center; gap:7px; color:var(--ink-muted); font-variant-numeric:tabular-nums; }
.knowledge-source-status i { width:7px; height:7px; border-radius:50%; background:var(--ink-faint); }
.knowledge-source-status.ok i { background:var(--ok); }
.knowledge-source-status.warn { color:var(--warn); }
.knowledge-source-status.warn i { background:var(--warn); }
.knowledge-source-name .knowledge-source-error { color:var(--ink-muted); }
.knowledge-source-row .btn { flex-shrink:0; }

/* The connection dialog follows the app's own dialogs. */
.knowledge-form .ctl { width:100%; }
.knowledge-form [hidden] { display:none!important; }
.knowledge-field-label { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.knowledge-field-label span { font-size:var(--text-sm); color:var(--ink-faint); text-align:right; }
.knowledge-key,.knowledge-secret-edit { display:flex; gap:8px; }
.knowledge-key .ctl { flex:1; min-width:0; font-family:var(--font-mono); font-size:var(--text-sm); color:var(--ink-muted); }
.knowledge-secret { display:flex; align-items:center; gap:8px; min-height:38px; padding:0 4px 0 12px; border:1px solid rgb(var(--tone-rgb) / 0.08); border-radius:var(--radius-sm); background:var(--glass-1); }
.knowledge-secret-value { display:inline-flex; align-items:center; gap:8px; flex:1; min-width:0; color:var(--ink); font-size:var(--text-label); }
.knowledge-secret-value svg { color:var(--ink-muted); flex-shrink:0; }
.knowledge-secret[data-token-state="remove"] .knowledge-secret-value { color:var(--ink-muted); }
.knowledge-secret-actions { display:flex; gap:2px; }
.knowledge-secret-actions .btn { min-height:30px; padding:4px 10px; }
.btn.danger.knowledge-disconnect { --btn-bg:transparent; margin-right:auto; padding-left:2px; padding-right:2px; }

@media (max-width:900px) {
  .knowledge-toolbar { padding:12px 18px; gap:10px; }
  .knowledge-content { padding:20px 18px 40px; }
  .knowledge-preview-body .markdown-body { padding:26px; }
}
@media (max-width:700px) {
  .knowledge-banner { padding:12px 16px; flex-wrap:wrap; }
  .knowledge-banner>span { min-width:200px; }
  .knowledge-source-row { flex-wrap:wrap; }
  .knowledge-source-name { flex-basis:calc(100% - 42px); }
  .knowledge-source-row .btn { margin-left:42px; }
}
@media (max-width:600px) {
  .knowledge-toolbar { gap:10px; padding:12px; }
  .knowledge-search { flex:1; min-width:0; width:auto; }
  .knowledge-toolbar.is-searching .knowledge-search-cancel { display:inline-flex; }
  .knowledge-content { padding:16px 12px 35px; }
  .knowledge-breadcrumb { gap:5px; }
  .knowledge-file-list table,.knowledge-file-list thead,.knowledge-file-list tbody { display:block; }
  .knowledge-file-list tr { display:grid; grid-template-columns:minmax(0,1fr) 106px; }
  .knowledge-file-list th,.knowledge-file-list td { display:flex; align-items:center; width:auto!important; min-width:0; padding:0 12px; }
  .knowledge-file-list td:last-child,.knowledge-file-list th:last-child { justify-content:flex-end; }
  .knowledge-file-list td[colspan] { grid-column:1/-1; justify-content:flex-start; }
  .knowledge-file-list a { gap:10px; min-width:0; width:100%; }
  .knowledge-file-list .knowledge-file-mark { width:26px; height:28px; }
  .knowledge-preview-head { padding:10px 12px; gap:10px; }
  .knowledge-preview-actions { gap:6px; }
  .knowledge-preview-modes { order:3; width:100%; }
  .knowledge-preview-modes .image-controls,.knowledge-preview-modes .pdf-controls { justify-content:space-between; width:100%; }
  .knowledge-preview-body .markdown-body { padding:24px 18px; }
  :root :is(.knowledge-preview-body,.knowledge-full-view) .markdown-body.markdown-body table { font-size:var(--text-label); }
  .knowledge-preview .knowledge-media-body { height:62dvh; min-height:320px; }
  .knowledge-media-body .pdf-surface { padding:16px; }
  .knowledge-finder-foot,.knowledge-search-kbd { display:none!important; }
  .knowledge-finder-body { padding:4px; }
  .knowledge-hit-where { display:none; }
  .knowledge-hit-sections { margin-left:20px; padding-left:10px; }
}
@media (prefers-reduced-motion:reduce) { .knowledge-file-list td,.knowledge-search { transition:none; } }
