/* Knowledge documents: library, folders, document page, access and bin. Tokens from app.css only.
   Every selector is prefixed kd- because module stylesheets load on every page. */

.kd-tabs { margin-bottom: var(--s4); }
.kd-mt { margin-top: var(--s3); }
.kd-layout { margin-top: var(--s4); }

/* ---------------------------------------------------------------- breadcrumbs and chips */
.kd-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; font-size: 13px; color: var(--muted); margin: 0 0 var(--s2); min-width: 0; }
.kd-crumbs a { display: inline-flex; align-items: center; min-height: 24px; color: var(--accent-text); overflow-wrap: anywhere; }
.kd-crumbs [aria-current] { color: var(--text-2); font-weight: 600; overflow-wrap: anywhere; }
.kd-sep { color: var(--faint); }
.kd-chips { display: flex; flex-wrap: wrap; gap: var(--s2); margin-bottom: var(--s2); }
.kd-chips:empty { display: none; }
.kd-chips .chip { height: 24px; font-size: 12px; }
.kd-chip { height: 22px; padding: 0 8px; font-size: 11.5px; }
.kd-lock { display: inline-flex; align-items: center; gap: 3px; color: var(--muted); }

/* ---------------------------------------------------------------- filters */
.kd-filters { display: grid; grid-template-columns: minmax(220px, 2.2fr) repeat(auto-fit, minmax(120px, 1fr)); gap: var(--s3); align-items: end;
  padding: var(--s4); background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); box-shadow: var(--shadow-1); margin-bottom: var(--s4); }
.kd-filter-body .kd-filters { padding: 0; border: 0; box-shadow: none; margin: 0; background: transparent;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }
.kd-filter-actions { display: flex; gap: var(--s2); align-items: center; min-height: var(--control-h); }
.kd-results { margin-top: var(--s2); }

/* ---------------------------------------------------------------- tree */
.kd-tree-body { padding: var(--s3) var(--s3) var(--s4); }
.kd-tree { list-style: none; margin: 0; padding: 0 0 0 14px; }
.kd-tree.kd-tree-root { padding-left: 0; }
.kd-tree a { display: flex; align-items: center; gap: 6px; min-height: 30px; padding: 3px 8px; border-radius: 8px; color: var(--text-2); font-size: 13.5px; min-width: 0; }
.kd-tree a > span:first-of-type { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.kd-tree a .icon { color: var(--violet); flex: none; }
.kd-tree a:hover { background: var(--surface-2); text-decoration: none; color: var(--text); }
.kd-tree a[aria-current="page"] { background: var(--accent-soft); color: var(--accent-text); font-weight: 600; }
.kd-tree .kd-lock { margin-left: auto; }

/* ---------------------------------------------------------------- folders and documents */
.kd-folder-icon { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; flex: none; background: var(--accent-soft); color: var(--accent-text); }
.kd-desc { margin: 4px 0 0; font-size: 13px; color: var(--muted); line-height: 1.45; }
.kd-badge { display: inline-grid; place-items: center; flex: none; min-width: 40px; height: 26px; padding: 0 6px; border-radius: 7px;
  font: 700 10.5px/1 var(--font); letter-spacing: .04em; background: var(--surface-3); color: var(--text-2); }
.kd-badge.kd-pdf { background: var(--danger-soft); color: var(--danger); }
.kd-badge.kd-doc { background: var(--info-soft); color: var(--info); }
.kd-badge.kd-sheet { background: var(--good-soft); color: var(--good); }
.kd-badge.kd-deck { background: var(--warn-soft); color: var(--warn); }
.kd-badge.kd-img { background: var(--accent-soft); color: var(--accent-text); }
.kd-name { display: flex; align-items: flex-start; gap: var(--s3); min-width: 0; }
.kd-name-text { min-width: 0; }
.kd-title { font-weight: 600; color: var(--text); overflow-wrap: anywhere; }
.kd-sub { display: flex; flex-wrap: wrap; gap: 4px var(--s2); align-items: center; font-size: 12.5px; color: var(--muted); margin-top: 2px; }
.kd-file { overflow-wrap: anywhere; }
.kd-snippet { margin: 6px 0 0; font-size: 13px; color: var(--text-2); line-height: 1.5; overflow-wrap: anywhere; }
.kd-snippet mark { background: var(--accent-soft); color: var(--accent-text); border-radius: 3px; padding: 0 2px; }
.kd-tags { display: flex; flex-wrap: wrap; gap: 4px 8px; margin-top: 4px; }
.kd-tag { font-size: 12.5px; color: var(--accent-text); display: inline-flex; align-items: center; min-height: 24px; }
.kd-table td { vertical-align: top; }

/* ---------------------------------------------------------------- upload */
.kd-drop { position: relative; display: flex; flex-direction: column; align-items: center; gap: var(--s2); text-align: center;
  padding: var(--s5) var(--s4); border: 1.5px dashed var(--border-strong); border-radius: var(--r-lg); background: var(--surface-2);
  transition: border-color .12s, background .12s; }
.kd-drop.kd-over { border-color: var(--violet); background: var(--accent-soft); }
.kd-drop-icon { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent-text); }
.kd-drop-label { font-weight: 600; color: var(--accent-text); cursor: pointer; }
.kd-drop-or { color: var(--muted); font-weight: 400; }
.kd-file-input { max-width: 100%; font-size: 13px; }
.kd-drop.kd-enhanced .kd-file-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.kd-drop.kd-enhanced:focus-within { box-shadow: var(--focus); border-color: var(--violet); }
.kd-chosen { list-style: none; margin: 0; padding: 0; width: 100%; display: flex; flex-direction: column; gap: 4px; }
.kd-chosen:empty { display: none; }
.kd-chosen li { display: flex; justify-content: space-between; gap: var(--s3); font-size: 13px; padding: 6px 10px; border-radius: 8px; background: var(--surface); border: 1px solid var(--border); text-align: left; }
.kd-chosen li span:first-child { overflow-wrap: anywhere; min-width: 0; }
.kd-chosen li.kd-too-big { border-color: var(--danger); color: var(--danger); }
.kd-more { margin-top: var(--s3); }

/* ---------------------------------------------------------------- your access */
.kd-can { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: 13.5px; }
.kd-can li { display: flex; align-items: flex-start; gap: 8px; }
.kd-can li > span:first-child { width: 20px; height: 20px; border-radius: 6px; display: grid; place-items: center; flex: none; }
.kd-can li.yes > span:first-child { background: var(--good-soft); color: var(--good); }
.kd-can li.no { color: var(--muted); }
.kd-can li.no > span:first-child { background: var(--surface-3); color: var(--muted); }
.kd-explain li { padding: 4px 0; }
.kd-why { display: block; }
.kd-check-h { font-size: 15px; margin: var(--s4) 0 var(--s2); }

/* ---------------------------------------------------------------- document page */
.kd-preview { overflow: hidden; }
.kd-image { padding: var(--s4); background: var(--surface-2); display: grid; place-items: center; }
.kd-image img { max-width: 100%; height: auto; max-height: 70vh; border-radius: var(--r); box-shadow: var(--shadow-1); background: #fff; }
.kd-pdf { background: var(--surface-2); }
.kd-pdf iframe { display: block; width: 100%; height: min(78vh, 900px); border: 0; background: #fff; }
.kd-pdf-note { padding-top: var(--s3); padding-bottom: var(--s3); margin: 0; }
.kd-note { padding-bottom: 0; }
.kd-preview-body { overflow-wrap: anywhere; }
.kd-pre { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font: 13px/1.6 var(--mono, ui-monospace, monospace); color: var(--text); }
.kd-pre-wrap { white-space: pre-wrap; margin: 0; line-height: 1.6; }
.kd-page + .kd-page { margin-top: var(--s5); padding-top: var(--s5); border-top: 1px solid var(--border); }
.kd-page-n, .kd-slide-n { font: 600 11px/1 var(--font); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin: 0 0 var(--s2); }
.kd-slides { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s3); }
.kd-slide { border: 1px solid var(--border); border-radius: var(--r); padding: var(--s4) var(--s5); background: var(--surface-2); }
.kd-slide h3 { font-size: 17px; margin: 6px 0 var(--s2); }
.kd-slide ul { margin: 0; padding-left: 1.2em; color: var(--text-2); }
.kd-sheet + .kd-sheet { margin-top: var(--s5); }
.kd-sheet h3 { font-size: 15px; margin: 0 0 var(--s2); }
.kd-grid { font-size: 13px; }
.kd-grid td, .kd-grid th { padding: 7px 10px; white-space: nowrap; }
.kd-blocks table { margin: var(--s3) 0; }
.kd-versions .kd-row-actions, .kd-row-actions { display: flex; gap: var(--s2); align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.kd-versions > li { flex-wrap: wrap; }
.kd-versions > li > .grow { flex: 1 1 220px; min-width: 0; }
.kd-versions .meta span { overflow-wrap: anywhere; }
.kd-actions { display: flex; gap: var(--s2); flex-wrap: wrap; }
.kd-kv dd { overflow-wrap: anywhere; }
.kd-desc-lg { margin: 0 0 var(--s4); color: var(--text-2); line-height: 1.55; }

/* ---------------------------------------------------------------- access */
.kd-acts { display: flex; flex-wrap: wrap; gap: 4px; }
.kd-who { overflow-wrap: anywhere; }
.kd-fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.kd-fieldset legend { margin-bottom: var(--s2); padding: 0; }
.kd-radios { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); }
.kd-action-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 6px var(--s4); }
.kd-action-grid .check { align-items: flex-start; }
.kd-hidden { display: none !important; }
.kd-help p { margin: 0 0 var(--s2); line-height: 1.5; }
.kd-help p:last-child { margin-bottom: 0; }
.kd-bin-row { flex-wrap: wrap; }
.kd-bin-row > .grow { flex: 1 1 220px; min-width: 0; }

/* the kb-stack spacing also applies inside card bodies */
.card-body.kb-stack > * + * { margin-top: var(--s4); }

@media (max-width: 720px) {
  .kd-filters { grid-template-columns: 1fr 1fr; }
  .kd-filters .kd-q { grid-column: 1 / -1; }
  .kd-filter-actions { grid-column: 1 / -1; }
  .kd-pdf iframe { height: 70vh; }
}
.kd-blocks > :first-child { margin-top: 0; }
