/* Платформа — экраны «Знания» (база знаний проекта и кабинета, rag.py). Поверх app.css, без внешних зависимостей. */
.kbsec{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.kbcard{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:12px 14px;display:flex;flex-direction:column;gap:8px;min-width:0}
.kbcard.on{border-color:var(--acc);box-shadow:0 0 0 2px rgba(79,107,255,.14)}
.kbcard .kh{display:flex;align-items:flex-start;gap:9px;min-width:0}
.kbcard .kh .ico{font-size:19px;line-height:1;flex:0 0 auto}
.kbcard .kh .nm{flex:1;min-width:0}
.kbcard .kh .nm b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kbcard .kh .nm .d{font-size:11px;color:var(--mut);line-height:1.4;margin-top:2px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kbcard .num{font-size:11px;color:var(--mut);font-variant-numeric:tabular-nums}
.kbcard .num b{color:var(--ink)}
.kbfill{height:8px;border-radius:5px;background:var(--soft2);overflow:hidden}
.kbfill i{display:block;height:100%;border-radius:5px;background:var(--acc);transition:width .3s}
.kbfill.empty i{background:var(--line)}.kbfill.low i{background:var(--red)}
.kbfill.mid i{background:var(--amb)}.kbfill.ok i{background:var(--grn)}
.kbcard .acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:4px}
.kbcard .acts .btn{padding:4px 9px;font-size:11px;border-radius:7px}
.kbdocs .d{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--soft2)}
.kbdocs .d:last-child{border-bottom:0}
.kbdocs .d .ico{font-size:16px}
.kbdocs .d .t{min-width:0}
.kbdocs .d .t b{font-size:13px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.kbdocs .d .t b:hover{color:var(--acc)}
.kbdocs .d .t .m{font-size:11px;color:var(--mut);margin-top:2px}
.kbdocs .d .ctl{display:flex;gap:5px;flex:0 0 auto}
.kbdocs .d .ctl .btn{padding:4px 8px;font-size:11px;border-radius:7px}
.kbhit{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:#FBFCFE}
.kbhit .hh{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--mut);margin-bottom:5px}
.kbhit .hh b{color:var(--ink);font-size:12px}
.kbhit .tx{font-size:12.5px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:180px;overflow:auto}
.kbhit mark{background:#FFF0B8;color:inherit;border-radius:3px;padding:0 2px}
.kbsearch{display:flex;gap:8px;flex-wrap:wrap}
.kbsearch .in{flex:1;min-width:180px}
.kbtext{width:100%;min-height:180px;font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.kbmini{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.kbmini .m{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--mut);background:var(--soft);border:1px solid var(--line);
  border-radius:8px;padding:3px 7px;white-space:nowrap}
.kbmini .m i{font-style:normal}
.kbmini .m .bar{width:44px;height:6px;border-radius:4px;background:var(--soft2);overflow:hidden;display:inline-block}
.kbmini .m .bar b{display:block;height:100%;background:var(--acc)}
.kbmini .m.empty .bar b{background:var(--line)}.kbmini .m.low .bar b{background:var(--red)}
.kbmini .m.mid .bar b{background:var(--amb)}.kbmini .m.ok .bar b{background:var(--grn)}
.kbview{max-height:58vh;overflow:auto;font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word;
  background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.kbsrc{font-size:11px;color:var(--mut);margin-top:6px;line-height:1.6}
.kbsrc b{color:var(--ink)}
@media(max-width:900px){.kbsec{grid-template-columns:1fr}.kbdocs .d{grid-template-columns:auto 1fr;row-gap:6px}.kbdocs .d .ctl{grid-column:1/-1}}
