/* ============ API Section ============ */
.api-collapsed{
  display:flex;align-items:center;gap:6px;padding:8px 10px;
  border-radius:var(--r-s);background:var(--green-s);
  cursor:pointer;transition:background .15s;
}
.api-collapsed:hover{background:rgba(26,122,58,.12)}
.api-collapsed-txt{font-size:13px;color:var(--green);font-weight:500;flex:1}
.api-collapsed-edit{font-size:11px;color:var(--t4)}
.api-row{display:flex;gap:5px;margin-top:6px}
.api-in{
  flex:1;background:rgba(0,0,0,.03);border:1px solid var(--border);
  border-radius:var(--r-xs);padding:9px 12px;font-size:13px;
  font-family:var(--font-mono);color:var(--text);outline:none;
  transition:border-color .15s,box-shadow .15s;width:100%;margin-bottom:6px;
}
.api-in:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-s)}
[data-theme="dark"] .api-in{background:rgba(255,255,255,.05)}
.btn-xs{
  background:var(--text);color:var(--bg);border:none;border-radius:var(--r-xs);
  padding:7px 13px;font-size:11px;font-family:var(--font-ui);font-weight:500;
  cursor:pointer;white-space:nowrap;transition:opacity .15s;
}
.btn-xs:hover{opacity:.7}
.token-stats{font-size:11px;color:var(--t4);font-family:var(--font-ui);padding:3px 0}

/* ============ History ============ */
.hist-wrap{flex:1;overflow-y:auto;padding:8px 12px}
.hist-empty{font-size:13px;color:var(--t4);text-align:center;padding:24px 0}
.hist-item{
  padding:10px 12px;border-radius:var(--r-s);
  border:1px solid var(--border);background:var(--win-s);
  margin-bottom:4px;cursor:pointer;transition:all .15s;
}
.hist-item:hover{border-color:rgba(0,0,0,.12);background:var(--win)}
.hist-item.active{border-color:var(--blue);background:var(--blue-s)}
.hist-q{font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}
.hist-meta{display:flex;gap:5px;align-items:center}
.hist-date{font-size:11px;color:var(--t4);font-family:var(--font-ui)}
.hist-cnt{font-size:11px;background:rgba(0,0,0,.05);color:var(--t3);padding:2px 8px;border-radius:20px}
.hist-del{
  margin-left:auto;background:none;border:none;cursor:pointer;
  color:var(--t4);display:flex;align-items:center;padding:2px;
}
.hist-del:hover{color:var(--red)}

/* History Detail */
.history-detail{flex:1;overflow-y:auto;padding:20px}

/* ============ Knowledge Base ============ */
.kb-topbar{
  padding:7px 12px;border-bottom:1px solid var(--border-s);
  display:flex;gap:5px;align-items:center;flex-shrink:0;
}
.kb-search{
  flex:1;background:rgba(0,0,0,.03);border:1px solid var(--border);
  border-radius:var(--r-xs);padding:8px 12px;font-size:13px;
  font-family:var(--font-body);color:var(--text);outline:none;
}
.kb-search:focus{border-color:var(--blue)}
[data-theme="dark"] .kb-search{background:rgba(255,255,255,.05)}
.btn-new-topic{
  background:var(--text);color:var(--bg);border:none;border-radius:var(--r-xs);
  padding:8px 14px;font-size:12px;font-family:var(--font-ui);
  font-weight:600;cursor:pointer;white-space:nowrap;
}
.btn-new-topic:hover{opacity:.75}
.kb-list{flex:1;overflow-y:auto;padding:6px 10px}
.kb-empty{font-size:13px;color:var(--t4);text-align:center;padding:24px 0;line-height:1.6}

/* Topic Groups */
.topic-group{margin-bottom:10px}
.topic-header{
  display:flex;align-items:center;gap:6px;padding:6px 10px;
  border-radius:var(--r-s);cursor:pointer;margin-bottom:2px;transition:background .12s;
}
.topic-header:hover{background:rgba(0,0,0,.03)}
.topic-pip{width:7px;height:7px;border-radius:3px;flex-shrink:0}
.topic-name{font-size:14px;font-weight:600;color:var(--text);flex:1}
.topic-cnt{font-size:11px;color:var(--t4);font-family:var(--font-ui)}
.topic-arrow{font-size:8px;color:var(--t4);transition:transform .15s}
.topic-group.open .topic-arrow{transform:rotate(90deg)}
.topic-entries{display:none;padding-left:4px}
.topic-group.open .topic-entries{display:block}
.kb-entry{
  display:flex;align-items:flex-start;gap:7px;padding:7px 10px;
  border-radius:var(--r-s);border-left:2px solid transparent;
  cursor:pointer;margin-bottom:2px;transition:all .12s;
}
.kb-entry:hover{background:var(--win-s)}
.kb-entry.active{background:var(--win);border-left-color:var(--blue)}
.entry-info{flex:1;min-width:0}
.entry-q{
  font-size:13px;color:var(--t2);line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.entry-subtags{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}
.entry-subtag{
  font-size:10.5px;padding:2px 8px;border-radius:10px;
  background:var(--blue-s);color:var(--blue);font-family:var(--font-ui);
}
.entry-date{font-size:10.5px;color:var(--t4);flex-shrink:0;font-family:var(--font-ui)}
.entry-del{background:none;border:none;cursor:pointer;padding:0 2px;color:var(--t4);visibility:hidden}
.kb-entry:hover .entry-del{visibility:visible}
.entry-del:hover{color:var(--t2)}
.topic-del{background:none;border:none;cursor:pointer;padding:2px;color:var(--t4);visibility:hidden;margin-left:auto}
.topic-header:hover .topic-del{visibility:visible}
.topic-del:hover{color:var(--t2)}

/* KB Detail */
.kb-detail{flex:1;overflow-y:auto;padding:20px}
.kb-detail-hd{
  background:var(--win);border:1px solid var(--border);
  border-radius:var(--r);box-shadow:var(--sh);padding:20px 24px;margin-bottom:16px;
}
.kb-detail-tag{
  display:inline-flex;align-items:center;gap:4px;font-size:9.5px;
  font-weight:600;text-transform:uppercase;letter-spacing:.7px;
  padding:3px 10px;border-radius:20px;margin-bottom:10px;font-family:var(--font-ui);
}
.kb-detail-q{font-family:var(--font-serif);font-style:italic;font-size:18px;line-height:1.5;margin-bottom:8px}
.kb-detail-subtags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}
.kb-subtag{
  font-size:10px;padding:2px 8px;border-radius:12px;
  background:var(--blue-s);color:var(--blue);font-family:var(--font-ui);font-weight:500;
}
.kb-detail-meta{font-size:11px;color:var(--t4)}
.kb-detail-body{
  background:var(--win);border:1px solid rgba(26,122,58,.15);
  border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;
}
.kb-detail-body-hd{
  padding:12px 18px;border-bottom:1px solid rgba(26,122,58,.08);
  background:var(--green-s);font-size:13px;font-weight:600;color:var(--green);
}
.kb-detail-body-txt{
  padding:20px;font-size:14.5px;line-height:1.9;color:var(--t2);
  white-space:pre-wrap;max-height:60vh;overflow-y:auto;
}

/* ============ Modals ============ */
.modal-bd{
  position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:200;
  display:none;align-items:center;justify-content:center;backdrop-filter:blur(4px);
}
.modal-bd.open{display:flex}
.modal{
  background:var(--win);backdrop-filter:blur(20px) saturate(180%);
  border:1px solid var(--border);border-radius:var(--r);
  box-shadow:0 20px 60px rgba(0,0,0,.2);padding:20px;
  width:420px;max-width:92vw;animation:up .2s ease;max-height:85vh;overflow-y:auto;
}
.modal-title{font-size:15px;font-weight:600;margin-bottom:12px}
.modal-lbl{font-size:11px;color:var(--t3);margin-bottom:5px;font-family:var(--font-ui)}
.modal-in{
  width:100%;background:rgba(0,0,0,.03);border:1px solid var(--border);
  border-radius:var(--r-xs);padding:8px 10px;font-size:13px;
  font-family:var(--font-body);color:var(--text);outline:none;margin-bottom:10px;
}
.modal-in:focus{border-color:var(--blue)}
[data-theme="dark"] .modal-in{background:rgba(255,255,255,.06)}
.modal-topics{max-height:160px;overflow-y:auto;margin-bottom:10px}
.modal-topic-opt{
  display:flex;align-items:center;gap:7px;padding:7px 10px;
  border-radius:var(--r-s);cursor:pointer;font-size:12px;
  transition:background .12s;margin-bottom:2px;
}
.modal-topic-opt:hover{background:rgba(0,0,0,.04)}
.modal-topic-opt.sel{background:var(--blue-s);color:var(--blue)}
.modal-topic-pip{width:6px;height:6px;border-radius:2px;flex-shrink:0}
.modal-tag-row{display:flex;gap:5px;align-items:center;margin-bottom:10px}
.modal-subtags{
  display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px;min-height:24px;
  padding:6px 0;
}
.subtag-chip{
  display:inline-flex;align-items:center;gap:3px;
  padding:3px 10px;border-radius:14px;
  background:var(--blue-s);color:var(--blue);
  font-size:11px;font-family:var(--font-body);font-weight:500;
}
.subtag-chip button{
  background:none;border:none;color:var(--t3);cursor:pointer;
  font-size:10px;padding:0 0 0 2px;line-height:1;
}
.subtag-chip button:hover{color:var(--red)}
.modal-divider{font-size:10px;color:var(--t4);text-align:center;margin:8px 0}
.modal-btns{display:flex;gap:6px;justify-content:flex-end;margin-top:6px}
.btn-mcancel{
  background:rgba(0,0,0,.06);color:var(--t2);border:none;border-radius:var(--r-xs);
  padding:8px 16px;font-size:12px;font-family:var(--font-body);
  cursor:pointer;transition:background .12s;
}
.btn-mcancel:hover{background:rgba(0,0,0,.1)}
.btn-mok{
  background:var(--text);color:var(--bg);border:none;border-radius:var(--r-xs);
  padding:8px 16px;font-size:12px;font-family:var(--font-body);
  font-weight:500;cursor:pointer;transition:opacity .12s;
}
.btn-mok:hover{opacity:.75}
