/* Aqlli qidiruv paneli va bilim obyektlari (knowledge/smart-search.js, smart-objects.js).
   Ranglar — umumiy tokenlar (tokens.css / board.css mavzulari). */

/* ── panel ── */
.kn-panel{width:340px;z-index:27}
.kn-ask{flex:none;display:flex;gap:6px;padding:10px 12px 6px}
.kn-ask input{flex:1;min-width:0;height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--border-subtle);
  background:var(--surface-2,rgba(127,127,127,.08));color:var(--text-primary);font:inherit;font-size:.9rem;outline:none}
.kn-ask input:focus{border-color:var(--accent-primary)}
.kn-go{flex:none;width:36px;height:36px;border-radius:10px;border:none;background:var(--accent-primary);color:#fff;
  display:grid;place-items:center;cursor:pointer}
.kn-modes[hidden]{display:none}
.kn-modes{flex:none;display:flex;gap:4px;padding:0 12px 8px;overflow-x:auto;scrollbar-width:none}
.kn-modes::-webkit-scrollbar{display:none}
.kn-modes button,.kn-tabs button{flex:none;height:26px;padding:0 10px;border-radius:13px;border:1px solid var(--border-subtle);
  background:none;color:var(--text-muted);font:inherit;font-size:.76rem;cursor:pointer;white-space:nowrap}
.kn-modes button.on,.kn-tabs button.on{background:var(--accent-soft-strong,rgba(34,211,238,.18));
  border-color:var(--accent-primary);color:var(--text-primary)}
.kn-body{padding-top:4px}
.kn-hint{font-size:.84rem;line-height:1.5;color:var(--text-muted);margin:6px 0 12px}
.kn-chips{display:flex;flex-wrap:wrap;gap:6px}
.kn-chip{padding:5px 10px;border-radius:14px;border:1px solid var(--border-subtle);background:none;color:var(--text-primary);
  font:inherit;font-size:.78rem;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kn-chip:hover{background:var(--surface-hover)}
.kn-state{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:26px 8px;font-size:.88rem;color:var(--text-muted)}
.kn-state.warn{color:var(--text-primary)}
.kn-sub{flex-basis:100%;font-size:.78rem;color:var(--text-muted)}
.kn-spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--border-strong,rgba(127,127,127,.4));
  border-top-color:var(--accent-primary);animation:kn-spin .7s linear infinite}
@keyframes kn-spin{to{transform:rotate(360deg)}}

/* ── natija kartasi ── */
.kn-card{display:flex;flex-direction:column;gap:10px}
.kn-head{position:relative}
.kn-title{margin:0;font-size:1.12rem;line-height:1.25;letter-spacing:.01em;text-transform:uppercase;color:var(--text-primary);
  overflow-wrap:anywhere}
.kn-subtitle{font-size:.8rem;color:var(--text-muted);margin-top:3px}
.kn-tag{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:9px;font-size:.7rem;
  background:var(--accent-soft,rgba(34,211,238,.12));color:var(--accent-text,var(--accent-primary))}
.kn-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.kn-tabs::-webkit-scrollbar{display:none}
.kn-view{display:flex;flex-direction:column;gap:8px;min-height:60px}
.kn-prev{position:relative;border-radius:10px;overflow:hidden;background:rgba(127,127,127,.08);
  border:1px solid var(--border-subtle)}
.kn-prev img{display:block;width:100%;max-height:230px;object-fit:contain;background:rgba(0,0,0,.18)}
.kn-prev .kn-cv{display:block;width:100%;height:200px}
.kn-prev-interactive .kn-cv{height:240px}
.kn-prev-model3d img,.kn-prev-protein img{height:200px;object-fit:contain}
.kn-ph{height:170px;display:grid;place-items:center;font-size:2rem;font-weight:700;color:var(--text-muted)}
.kn-cap{padding:5px 9px;font-size:.74rem;color:var(--text-muted);overflow-wrap:anywhere}
.kn-3dbtn{position:absolute;left:50%;top:86px;transform:translateX(-50%);height:36px;padding:0 16px;border-radius:18px;
  border:1px solid var(--accent-primary);background:rgba(8,12,18,.78);color:#fff;font:inherit;font-weight:600;cursor:pointer}
.kn-3dbtn:hover{background:rgba(8,12,18,.92)}
.kn-strip{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.kn-strip button{flex:none;width:54px;height:54px;padding:0;border-radius:8px;overflow:hidden;cursor:pointer;
  border:2px solid transparent;background:rgba(127,127,127,.12);color:var(--text-muted);font-size:.8rem}
.kn-strip button.on{border-color:var(--accent-primary)}
.kn-strip img{width:100%;height:100%;object-fit:cover;display:block}
.kn-sum{margin:0;font-size:.86rem;line-height:1.5;color:var(--text-primary);overflow-wrap:anywhere}
.kn-facts{margin:0;display:grid;grid-template-columns:minmax(90px,38%) 1fr;gap:4px 10px;font-size:.8rem}
.kn-facts dt{color:var(--text-muted)}
.kn-facts dd{margin:0;color:var(--text-primary);font-weight:600;overflow-wrap:anywhere}
.kn-auto{font-size:.74rem;color:var(--text-muted)}
.kn-h{font-size:.76rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:4px}
.kn-refs{margin:0;padding-left:16px;font-size:.78rem;display:flex;flex-direction:column;gap:6px}
.kn-refs a,.kn-src-name{color:var(--accent-text,var(--accent-primary));text-decoration:none;overflow-wrap:anywhere}
.kn-refs a:hover,a.kn-src-name:hover{text-decoration:underline}
.kn-ref-meta{color:var(--text-muted);font-size:.72rem}
.kn-time{margin:0;padding:0 0 0 14px;list-style:none;border-left:2px solid var(--accent-soft-strong,rgba(34,211,238,.3));
  display:flex;flex-direction:column;gap:8px;font-size:.8rem}
.kn-time li{display:flex;flex-direction:column}
.kn-time b{font-family:'JetBrains Mono',monospace;font-size:.74rem;color:var(--accent-text,var(--accent-primary))}
.kn-link{align-self:flex-start;border:none;background:none;padding:2px 0;color:var(--accent-text,var(--accent-primary));
  font:inherit;font-size:.78rem;cursor:pointer;text-decoration:underline}
.kn-more{text-decoration:none}
.kn-add{height:40px;border-radius:11px;border:none;background:var(--accent-primary);color:#fff;font:inherit;
  font-weight:700;font-size:.9rem;cursor:pointer}
.kn-add:disabled{opacity:.45;cursor:default}
.kn-add:not(:disabled):hover{filter:brightness(1.08)}
.kn-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.kn-srcbtn{border:none;background:none;color:var(--text-muted);font:inherit;font-size:.78rem;cursor:pointer;padding:2px 0}
.kn-srcbtn:hover{color:var(--text-primary)}
.kn-note{font-size:.7rem;color:var(--text-muted);text-align:right}
.kn-alt{display:flex;flex-direction:column;gap:5px;padding-top:6px;border-top:1px solid var(--border-subtle)}
.kn-alt-h{font-size:.74rem;color:var(--text-muted)}

/* ── manbalar ro'yxati (panel, popover, lightbox) ── */
.kn-srclist{display:flex;flex-direction:column;gap:7px;font-size:.78rem}
.kn-srclist[hidden]{display:none}
.kn-src{line-height:1.35}
.kn-src-name{font-weight:600;color:var(--text-primary)}
.kn-src-lic{margin-left:7px;padding:1px 6px;border-radius:7px;font-size:.68rem;background:rgba(127,127,127,.16);
  color:var(--text-muted);white-space:nowrap}
.kn-src-attr,.kn-src-date{font-size:.72rem;color:var(--text-muted);overflow-wrap:anywhere}
.kn-pop{position:fixed;z-index:61;width:270px;max-width:calc(100vw - 16px);padding:10px 12px;border-radius:12px;
  background:var(--surface-1);border:1px solid var(--border-subtle);box-shadow:var(--shadow-float);color:var(--text-primary)}
.kn-pop-h{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:7px}

/* ── doskadagi jonli 3D ko'rgich (kanvas ustidagi qatlam) ── */
.kn-live{position:absolute;z-index:3;border-radius:8px;overflow:hidden;background:#141a22}
.kn-live-port{position:absolute;inset:0}
.kn-live-bar{position:absolute;right:6px;top:6px;display:flex;gap:4px;opacity:.55;transition:opacity .15s}
.kn-live:hover .kn-live-bar,.kn-live:focus-within .kn-live-bar{opacity:1}
.kn-live-bar button{width:28px;height:28px;border-radius:7px;border:none;background:rgba(8,12,18,.72);color:#fff;
  font-size:.82rem;cursor:pointer;line-height:1}
.kn-live-bar button:hover{background:rgba(8,12,18,.95)}
.kn-live-msg{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;font-size:.8rem;
  color:rgba(255,255,255,.8);pointer-events:none;padding:0 12px}
.kn-live:fullscreen{width:100vw!important;height:100vh!important;left:0!important;top:0!important;border-radius:0}
body.th-light .kn-live{background:#e6ecf3}
body.th-light .kn-live-msg{color:rgba(23,32,51,.75)}

/* ── modal: rasm, to'liq ekran xarita, kesish, 3D ko'rish ── */
.kn-modal{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;background:rgba(6,9,14,.92);color:#fff}
.kn-modal-top{flex:none;display:flex;align-items:center;gap:8px;padding:10px 14px}
.kn-modal-top b{flex:1;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kn-x,.kn-btn{height:34px;min-width:34px;padding:0 12px;border-radius:9px;border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.08);color:#fff;font:inherit;font-size:.88rem;cursor:pointer}
.kn-btn.kn-primary{background:var(--accent-primary);border-color:transparent;font-weight:700}
.kn-modal-body{flex:1;min-height:0;position:relative;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:10px;padding:0 14px 14px}
.kn-light{max-width:100%;max-height:calc(100% - 70px);object-fit:contain;border-radius:8px}
.kn-light-src{max-width:560px;color:#fff}
.kn-light-src .kn-src-name{color:#fff}
.kn-mapcv{width:100%;height:100%;border-radius:10px;touch-action:none;cursor:grab}
.kn-live-modal{position:relative;width:100%;height:100%;flex:1}
.kn-crop{position:relative;max-width:100%;max-height:100%;touch-action:none;cursor:crosshair;line-height:0}
.kn-crop img{max-width:100%;max-height:calc(100vh - 110px);user-select:none;-webkit-user-drag:none}
.kn-crop-sel{position:absolute;border:2px solid #fff;box-shadow:0 0 0 9999px rgba(0,0,0,.55);pointer-events:none}

#bSmartSel{color:var(--accent-text,var(--accent-primary))}
body.viewer #bSmartBtn,body.viewer #bSmart{display:none!important}
@media(max-width:820px){.kn-panel{left:10px;width:auto}}
@media (prefers-reduced-motion:reduce){.kn-spin{animation:none}}
