/* ═══════════ #586 커넥터 UX — 상태 카드·가이드·픽커·run 로그 ═══════════ */
.conn-status { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; margin-bottom: 14px; background: var(--bg-tint); }
.conn-status-line { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.conn-status-actions { margin-top: 10px; }
.conn-guide { border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; margin-bottom: 14px; background: var(--bg); }
.conn-guide > summary { cursor: pointer; font-weight: 600; font-size: 13.5px; }
.conn-guide-steps { margin: 8px 0 4px; padding-left: 20px; font-size: 13px; line-height: 1.7; color: var(--ink); }
.conn-guide-steps li { margin-bottom: 4px; }
.conn-guide-link { margin: 4px 0 2px; font-size: 13px; }
.conn-pick-row { display: flex; gap: 8px; align-items: center; }
.conn-pick-row input { flex: 1; min-width: 0; }
.conn-pick-row .btn { flex: none; white-space: nowrap; }
.conn-pick-list { max-height: 46vh; overflow: auto; border: 1px solid var(--line); border-radius: 10px; padding: 6px; margin: 8px 0; }
.conn-pick-item { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 8px; cursor: pointer; font-size: 13.5px; }
.conn-pick-item:hover { background: var(--bg-tint); }
.conn-pick-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.run-list { max-height: 60vh; overflow: auto; }
.run-log-head { display: flex; align-items: center; gap: 10px; }
.run-log-head .admin-hint { flex: 1; min-width: 0; }
.run-log { background: #0F1B2D; color: #D7E3F4; border-radius: 10px; padding: 12px 14px; margin-top: 8px;
  max-height: 56vh; min-height: 200px; overflow: auto; font: 12px/1.6 ui-monospace, Menlo, monospace; white-space: pre-wrap; word-break: break-all; }

/* ── #541 프로젝트 보드 풀스크린 — ClickUp 처럼 좌우 마진 없이(보드 라우트 한정, 상세는 읽기 폭 유지) ── */
body[data-route="projects2-board"] main { max-width: none; padding-left: 16px; padding-right: 16px; }
/* 도메인 맵도 다른 탭(보드·대시보드·WIKI)과 같이 풀스크린 — 기본 main 은 콘텐츠 폭(fit-content)+가운데 정렬이라
   좁은 도메인 맵만 좌우로 붕 떠 보였다. margin:0 으로 auto 중앙정렬을 풀어 flex-column .app 안에서 전폭 stretch. */
body[data-route="domainmap"] main { max-width: none; margin: 0; }

/* ── #541 그룹바이/컬럼 정렬 ── */
.pjv-groupby-btn .pjv-view-btn-label { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pjv-thcol-name.pjv-sortable { cursor: pointer; }
.pjv-thcol-name.pjv-sortable:hover { color: var(--ink); }
.pjv-sort-ind { font-size: 10px; margin-left: 2px; color: var(--accent, #5b6cff); font-weight: 800; }
.pjv-menu-check { margin-left: auto; font-weight: 800; color: var(--accent, #5b6cff); }

/* ── #541 그룹 내 수동 재정렬 삽입선 ── */
.pjv-proj-insert-marker { height: 0; border-top: 2px solid var(--accent, #5b6cff); margin: -1px 0; pointer-events: none; }

/* ── #541 개요(Overview) 뷰 — 폴더/스페이스 진입 기본. 하위 폴더·리스트 요약 카드. ── */
.pjv-overview { padding: 4px 2px 24px; }
.pjv-ov-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 6px 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.pjv-ov-title { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.pjv-ov-kind { font-size: 11px; font-weight: 700; letter-spacing: .04em; color: var(--muted-2); border: 1px solid var(--line); border-radius: 5px; padding: 1px 6px; flex: none; }
.pjv-ov-name { margin: 0; font-size: 19px; font-weight: 800; letter-spacing: -.4px; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pjv-ov-stats { display: inline-flex; gap: 6px; flex: none; }
.pjv-ov-stat { font-size: 12px; font-weight: 600; color: var(--ink-sub); background: var(--bg-tint); border: 1px solid var(--line); border-radius: 7px; padding: 3px 9px; }
/* 개요 통계 칩 '진행/완료'를 리스트 상태 보드의 상태 알약과 같은 톤(꽉 찬 색·흰 글자)으로 통일(#762).
   statRow 순서 고정: 1=전체(합계, 중립 유지)·2=진행·3=완료. 색은 개요 미니바(prog=파랑·done=민트)와 동일. */
.pjv-ov-stat:nth-child(2) { color: #fff; background: var(--blue); border-color: transparent; }
.pjv-ov-stat:nth-child(3) { color: #fff; background: var(--mint); border-color: transparent; }
.pjv-ov-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(164px, 1fr)); gap: 10px; } /* 최소 폭 220→164(#req) — 열 폭을 줄여 1행당 카드 수 증가 */
.pjv-ov-card { border: 1px solid var(--line); border-radius: 12px; padding: 12px 13px; background: var(--bg); cursor: pointer; transition: border-color .12s, box-shadow .12s, transform .06s; display: flex; flex-direction: column; gap: 8px; }
.pjv-ov-card:hover { border-color: var(--accent, #5b6cff); box-shadow: 0 3px 12px rgba(21,35,59,.08); }
.pjv-ov-card:active { transform: translateY(1px); }
.pjv-ov-card-head { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pjv-ov-card-name { font-size: 14px; font-weight: 700; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1; }
.pjv-ov-card-sub { font-size: 10.5px; font-weight: 700; letter-spacing: .03em; color: var(--muted-2); flex: none; }
.pjv-ov-card-count { font-size: 12px; color: var(--ink-sub); }
.pjv-ov-bar { display: flex; height: 6px; border-radius: 4px; overflow: hidden; background: var(--bg-tint); }
.pjv-ov-bar-seg { display: block; height: 100%; }
.pjv-ov-bar-seg.todo { background: var(--muted-3, #94a3b8); }
.pjv-ov-bar-seg.prog { background: var(--blue, #f59e0b); }
.pjv-ov-bar-seg.done { background: var(--mint, #22c55e); }
.pjv-ov-bar-seg.empty { flex: 1; background: transparent; }
/* ── #592 지식 문서 UI ── */
/* doc-mode — 지식 계열 라우트에서 main 을 전폭 캔버스로. 셸(.kn-shell)이 자체 패딩·사이드바 폭을 소유. */
main.doc-mode { max-width: none; padding: 0; }
/* 셸 없는 지식 계열 화면(자료·편집 폼·휴지통·로딩) — 기존 중앙 정렬 패딩을 래퍼로 복원. */

/* 지식 셸 — 좌 사이드바(고정 260px, border-right, 자체 스크롤 sticky) + 우 콘텐츠(flex 1, 자체 패딩). */
.kn-shell { display: flex; align-items: flex-start; min-height: calc(100vh - 64px); position: relative; }
.kn-side { flex: 0 0 var(--pjv-side-w, 240px); min-width: 0; box-sizing: border-box; position: sticky; top: 64px;   /* (#670) 프로젝트 탭과 --pjv-side-w 공유(같은 localStorage 'pjv:sideW') — 항상 동일 폭 */
  max-height: calc(100vh - 64px); overflow-y: auto; overscroll-behavior: contain;
  border-right: 1px solid var(--line); padding: 22px 16px 32px; background: var(--bg); }
/* 사이드바 폭 조절 핸들(#670) — 프로젝트 탭 .pjv-side-resize 동형. .kn-side 는 자체 스크롤(overflow)이라 그 안에 절대배치하면 클립되므로,
   비스크롤 셸(.kn-shell)의 자식으로 두고 사이드바 우측 경계(left=--pjv-side-w)에 얹는다. */
.kn-side-resize { position: absolute; top: 0; left: var(--pjv-side-w, 240px); margin-left: -4px; width: 8px; height: 100%; cursor: col-resize; z-index: 6; }
.kn-side-resize::after { content: ''; position: absolute; top: 0; left: 3px; width: 2px; height: 100%; background: transparent; transition: background .12s; }
.kn-side-resize:hover::after, body.pjv-side-resizing .kn-side-resize::after { background: var(--accent, #5b6cff); }
.kn-shell.side-off > .kn-side-resize { display: none; }
.kn-main { flex: 1; min-width: 0; padding: 28px 40px 64px; }
.kn-side-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.kn-side-head .eyebrow { margin-bottom: 0; }
.kn-side-collapse, .kn-side-reopen { border: 1px solid var(--line); background: var(--bg); cursor: pointer;
  border-radius: 6px; color: var(--muted-2); font-size: 12px; line-height: 1; padding: 4px 7px; }
.kn-side-collapse:hover, .kn-side-reopen:hover { color: var(--ink-sub); background: var(--bg-tint); }
.kn-shell.side-off > .kn-side { display: none; }
.kn-side-reopen { display: none; }
.kn-shell.side-off > .kn-side-reopen { display: inline-flex; flex: none; align-self: flex-start;
  position: sticky; top: 76px; margin: 14px 0 0 12px; }
@media (max-width: 820px) {
  .kn-shell { flex-direction: column; min-height: 0; }
  .kn-side { position: static; flex-basis: auto; width: 100%; max-height: none;
    border-right: none; border-bottom: 1px solid var(--line); padding: 16px; }
  .kn-main { padding: 20px 16px 48px; width: 100%; box-sizing: border-box; }
}

/* 문서 캔버스 — 브레드크럼/액션 줄은 전폭, 내용 컬럼(제목·속성·본문·패널)은 기본 820px 중앙(노션). ⤢(.full)로 해제. */
.kn-doc-title, .kn-doc-badges, .kn-props-slot, .kn-doc-hr, .kn-doc-body, .kn-doc-panels, .kn-comments {
  max-width: 820px; margin-left: auto; margin-right: auto; }
/* 본문 — 렌더러가 줄바꿈(<br>)·블록을 직접 처리하므로 .unit-body(pre-wrap)를 쓰지 않는다. */

/* 속성 블록(노션형) — 라벨 130px muted + 값. 빈 값은 행 자체 생략(TS). */
.kn-props { font-size: 13px; }
.kn-prop { display: flex; align-items: baseline; gap: 12px; padding: 3px 0; }
.kn-prop-k { flex: 0 0 130px; min-width: 0; color: var(--muted); font-weight: 600; }
.kn-prop-v { flex: 1; min-width: 0; color: var(--ink); word-break: break-word;
  display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.kn-prop-ext { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.kn-prop-dim { opacity: .62; }
.kn-props-foot { display: flex; align-items: center; gap: 8px; margin-top: 6px; position: relative; }
.kn-props-more, .kn-props-gear { border: none; background: none; cursor: pointer; font-size: 12px; font-weight: 600;
  color: var(--muted-2); padding: 3px 6px; border-radius: 6px; }
.kn-props-more:hover, .kn-props-gear:hover { background: var(--bg-tint); color: var(--ink-sub); }

/* ⚙ 속성 설정 팝오버 — 카탈로그 전체 👁 토글 + [이 문서에만 저장]/[전체 기본값으로 저장]. */
.kn-props-pop { position: absolute; left: 0; top: calc(100% + 6px); z-index: 60; width: 300px; max-height: 55vh;
  overflow: auto; background: var(--bg); border: 1px solid var(--line-net); border-radius: 12px;
  box-shadow: 0 10px 32px rgba(21, 35, 59, .14); padding: 10px; }
.kn-props-pop-head { display: flex; align-items: center; justify-content: space-between; gap: 8px;
  font-size: 12px; font-weight: 700; color: var(--muted-head); margin: 2px 4px 8px; }
.kn-props-rec { border: none; background: none; cursor: pointer; font-size: 11.5px; font-weight: 600;
  color: var(--muted-2); padding: 2px 5px; border-radius: 5px; }
.kn-props-rec:hover { background: var(--bg-tint); color: var(--ink-sub); }
.kn-propopt { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 6px; border-radius: 6px; font-size: 13px; }
.kn-propopt:hover { background: var(--bg-tint); }
.kn-propopt.off .kn-propopt-label { color: var(--muted-2); }
.kn-propopt-eye { border: none; background: none; cursor: pointer; font-size: 13px; line-height: 1; padding: 2px 5px; border-radius: 5px; color: var(--ink-sub); }
.kn-propopt-eye:hover { background: var(--bg-tint-2); }
.kn-props-pop-actions { display: flex; gap: 6px; margin-top: 10px; flex-wrap: wrap; }

/* 지식 댓글(#592) — 문서 하단 인라인. 프로젝트 코멘트 드로어와 톤 통일하되 문서 흐름에 담백하게. */
.kn-comments { margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--line); }
.kn-comments-head { margin-bottom: 14px; }
.kn-cmt-feed { display: flex; flex-direction: column; gap: 2px; }
.kn-cmt-loading, .kn-cmt-empty { color: var(--muted-2); font-size: 14px; padding: 6px 2px 14px; }
.kn-cmt-card { display: flex; gap: 10px; padding: 8px 0; }
.kn-cmt-ava { flex: none; width: 28px; height: 28px; font-size: 12px; }
.kn-cmt-body { flex: 1; min-width: 0; }
.kn-cmt-meta { display: flex; align-items: baseline; gap: 8px; }
.kn-cmt-name { font-weight: 650; font-size: 14px; color: var(--ink); }
.kn-cmt-time { font-size: 12.5px; color: var(--muted-2); }
.kn-cmt-text { font-size: 15px; line-height: 1.6; margin-top: 2px; word-break: break-word; }
.kn-cmt-foot { display: flex; align-items: center; gap: 6px; margin-top: 5px; flex-wrap: wrap; }
.kn-cmt-reacts { display: inline-flex; align-items: center; gap: 5px; flex-wrap: wrap; position: relative; }
.kn-cmt-like, .kn-cmt-chip, .kn-cmt-addr, .kn-cmt-replybtn {
  border: 1px solid var(--line); background: var(--bg); cursor: pointer; border-radius: 999px;
  font-size: 12px; line-height: 1; padding: 4px 9px; color: var(--ink-sub); }
.kn-cmt-like:hover, .kn-cmt-chip:hover, .kn-cmt-addr:hover, .kn-cmt-replybtn:hover { background: var(--bg-tint); }
.kn-cmt-like.on, .kn-cmt-chip.mine { border-color: var(--blue); color: var(--blue); background: color-mix(in srgb, var(--blue) 8%, var(--bg)); }
.kn-cmt-addr { padding: 4px 8px; }
.kn-cmt-replybtn { border-color: transparent; color: var(--muted-2); }
.kn-cmt-emojipop { position: absolute; bottom: calc(100% + 4px); left: 0; z-index: 40; display: flex; gap: 2px;
  background: var(--bg); border: 1px solid var(--line); border-radius: 10px; padding: 4px; box-shadow: 0 6px 24px rgba(21,35,59,.14); }
.kn-cmt-emojiopt { border: none; background: none; cursor: pointer; font-size: 17px; line-height: 1; padding: 4px 5px; border-radius: 7px; }
.kn-cmt-emojiopt:hover { background: var(--bg-tint); }
.kn-cmt-thread { margin: 0 0 6px 38px; padding-left: 12px; border-left: 2px solid var(--line); }
.kn-cmt-reply { padding: 6px 0; }
.kn-cmt-replybox { display: flex; gap: 6px; align-items: flex-start; margin-top: 4px; }
.kn-cmt-composer { display: flex; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.kn-cmt-composer-in { flex: 1; min-width: 0; }
.kn-cmt-composer-foot { display: flex; justify-content: flex-end; margin-top: 6px; }
.kn-cmt-input { width: 100%; box-sizing: border-box; resize: none; border: 1px solid var(--line); border-radius: 10px;
  padding: 9px 12px; font: inherit; font-size: 14px; line-height: 1.5; color: var(--ink); background: var(--bg); }
.kn-cmt-input:focus { outline: none; border-color: var(--blue); }
.kn-cmt-input-sm { padding: 6px 10px; font-size: 13px; }
.kn-cmt-send { flex: none; border: 1px solid var(--blue); background: var(--blue); color: #fff; cursor: pointer;
  border-radius: 8px; font-size: 13px; font-weight: 600; padding: 7px 16px; }
.kn-cmt-send:hover { filter: brightness(1.05); }
.kn-cmt-send:disabled { opacity: .5; cursor: default; }
@media (max-width: 820px) { .kn-cmt-thread { margin-left: 14px; } }

/* 피크 패널(#592) — 우측 슬라이드 드로어. 목록/트리/테이블에서 항목 클릭 → 페이지 이동 없이 문서 미리보기. */
/* 피크/인라인 모드의 문서 캔버스 — 컨테이너가 폭을 제한하므로 내부 820px 센터링·큰 패딩 완화. */
@media (max-width: 820px) { }

/* 사이드바 카테고리 트리(#592) — 카테고리 ▸ 펼침(지식 인라인), 폴더는 재귀 펼침. */
.kn-nav-catwrap { display: block; }
.kn-nav-tw { border: none; background: none; cursor: pointer; color: var(--muted-2); font-size: 9px; line-height: 1;
  width: 16px; flex: none; padding: 2px; border-radius: 4px; text-align: center; }
.kn-nav-tw:hover { color: var(--ink-sub); background: var(--bg-tint); }
.kn-nav-cat { display: flex; align-items: center; gap: 2px; }
.kn-nav-cat .tree-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kn-nav-kids { display: block; }
.kn-nav-doc { display: flex; align-items: center; gap: 5px; font-size: 13px; }
.kn-nav-doc .tree-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kn-nav-folder { cursor: pointer; }
.kn-nav-glyph { font-size: 12px; flex: none; }
.kn-nav-note { font-size: 12px; color: var(--muted-2); padding: 4px 8px 4px 24px; }
.kn-tree-archived { opacity: .5; }

/* ── WIKI 사이드바(#req) = 프로젝트 탭 사이드바 컴포넌트 재사용(.pjv-side-navitem/.pjv-side-search/.pjv-side-navcount).
   위계: space 헤더(색 아바타+볼드, 프로젝트 탭 스페이스 행 동형) › 카테고리 행(들여쓰기+칩+개수).
   '우리 팀'은 별·색칠 대신 글자 칩(.kn-team-chip = .pjv-side-cat)으로 명시. ── */
/* (#670) 헤더·검색창 여백은 프로젝트 탭 기본값(.pjv-side-nav-head margin:0 / .pjv-side-search margin:8px 2px 6px)을 그대로 상속 —
   예전 오버라이드(head margin-bottom 4 / search margin 0 2 8)가 프로젝트와 검색창 위 간격을 미세하게 어긋나게 했음. 제거해 완전 일치. */
.kn-tree2 { display: flex; flex-direction: column; gap: 1px; }
.kn-side-glyph { flex: none; width: 16px; text-align: center; color: var(--muted-2); font-size: 12px; line-height: 1; }
/* (#req) 우리 팀 ★ — 이름 앞 컴팩트 마커(글자칩이 208px 에서 이름 잘라먹던 것 대체) + 하단 범례. */
.kn-cat-star { flex: none; width: 12px; color: var(--blue); font-size: 10px; line-height: 1; text-align: center; }
.pjv-side-navitem.active .kn-cat-star { color: var(--blue); }
.kn-side-item-sub { padding-left: 26px; }
/* space 섹션 헤더 — details/summary 를 프로젝트 탭 스페이스 행처럼(마커 제거 + 캐럿 우측). */
.kn-space-group { margin: 0; }
.kn-space-group + .kn-space-group { margin-top: 4px; }
.kn-tree2 > .kn-side-item + .kn-space-group, .kn-tree2 > .kn-side-item-sub + .kn-space-group { margin-top: 8px; }
.kn-space-head { list-style: none; cursor: pointer; }
.kn-space-head::-webkit-details-marker { display: none; }
.kn-space-head .pjv-side-navlabel { font-weight: 700; color: var(--ink); }
.kn-space-caret { cursor: pointer; }
/* 카테고리 행 — 개수는 오른쪽 끝(.pjv-side-navcount 재사용), 0 은 흐리게. ▸ 펼침 셰브런은 글리프 자리. */
.kn-nav-cat { gap: 6px; }
.kn-count-zero { opacity: .45; }
.kn-nav-tw { width: 18px; height: 22px; font-size: 10.5px; flex: none; }
/* '우리 팀' 칩 — 프로젝트 탭 카테고리 칩(.pjv-side-cat)과 동일. 칩이 곧 범례(별도 설명 불필요).
   칩은 절대 안 줄임(줄면 '우...' — 의미 소실): 대신 라벨이 말줄임. (.pjv-side-cat 의 flex:0 1000 auto 를 이긴다.) */
/* 검색창 안 input — 전역 input 기본 스타일(테두리·패딩)이 캡슐 안에서 이중 테두리를 만들던 것 무력화. */
.pjv-side-search .pjv-side-search-input { border: none; background: none; outline: none; box-shadow: none; padding: 0; border-radius: 0; }
/* 사이드바 검색 결과 문서 행(#req 파리티 — 프로젝트 탭의 매칭 프로젝트 행과 동형): 카테고리 아래 들여쓴 결과. */
.kn-side-hits { display: flex; flex-direction: column; gap: 1px; }
.kn-side-hitdoc { padding: 4px 10px 4px 40px; font-size: 13px; font-weight: 500; gap: 6px; }
.kn-side-hitdoc .pjv-side-navlabel { font-weight: 500; }
.kn-side-hitmore { padding: 2px 10px 6px 40px; font-size: 12px; color: var(--muted-2); }
/* 개수·지식 수 배지(카테고리 펼침 안 폴더용 — 기존 클래스 유지). */
.kn-nav-count { flex: none; margin-left: 6px; min-width: 1.8em; text-align: right; font-size: 11.5px; font-weight: 600;
  color: var(--muted-2); font-variant-numeric: tabular-nums; letter-spacing: 0; }
.kn-nav-count.zero { opacity: .45; }
/* #783 검토 대기(pending) — 트리엔 보이지만 검색·주입엔 없는 상태. 배지 없이 두면 승인된 지식으로 오인된다. */
.kn-nav-review { min-width: 0; padding: 0 6px; border-radius: 999px; font-size: 10px; font-weight: 800;
  color: var(--ink-note); background: var(--bg-note); border: 1px solid var(--line-note); }
.kn-tree-pending .tree-label { color: var(--ink-sub); }

/* 검색 캡슐(#req) — 검색 입력 + 검색방식 셀렉트를 한 컨테이너로(오른쪽 도킹·hairline 구분선). */

/* 카테고리 헤더(#592) — 본문 영역 상단(이름·설명 + ＋폴더·⚙보기). */

/* 카테고리 보기 팝오버(#592). */
.kn-viewopt { display: flex; align-items: center; gap: 8px; width: 100%; border: none; background: none; cursor: pointer;
  border-radius: 8px; padding: 7px 8px; font-size: 13.5px; color: var(--ink); text-align: left; }
.kn-viewopt:hover { background: var(--bg-tint); }
.kn-viewopt.on { color: var(--blue); font-weight: 600; }
.kn-viewopt-check { width: 14px; flex: none; color: var(--blue); font-weight: 800; }
.kn-viewopt-sub { color: var(--ink-sub); font-size: 12.5px; }

/* 테이블 뷰(#592) — 제목/유형/작성 주체/갱신. */

/* 폴더 드릴다운 브레드크럼 + 엔트리 바(#592). */
.kn-entry-inline { margin-top: 2px; }

/* ── #541 후속 — 리스트 카테고리(도메인) 소유 UI: 사이드바 배지·리스트 폼 셀렉트·상세 상속표시 ── */
/* #req: 이름 우선. flex-shrink 를 크게(1000) 줘 폭이 부족하면 태그가 먼저 줄고(이름은 최대한 유지),
   폭이 넓으면 긴 태그('AI 워크플로우 표준화' 등)도 max 170px 까지 다 보인다(옛 92px 캡이 항상 ... 되던 문제). */
.pjv-side-cat { flex: 0 1000 auto; min-width: 0; max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: 10.5px; font-weight: 600; padding: 1px 6px; border-radius: 6px; margin-left: 4px;
  background: color-mix(in srgb, var(--accent, #5b6cff) 14%, transparent); color: var(--accent, #5b6cff); }
/* #req: 사이드바가 좁으면(≤ 240px) 카테고리 태그 숨김 — 더 중요한 이름에 폭 전부 양보. 사이드바 폭 컨테이너 쿼리. */
.pjv-side-nav { container-type: inline-size; container-name: pjvside; }
@container pjvside (max-width: 240px) { .pjv-side-navlist .pjv-side-cat { display: none; } }
.pjv-side-cat.none { background: transparent; color: var(--muted-3); font-weight: 500; border: 1px dashed var(--line); }
.pjv-side-navitem.active .pjv-side-cat { background: color-mix(in srgb, var(--accent, #5b6cff) 24%, transparent); }
.pjv-cat-select { width: 100%; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg); font-size: 14px; color: var(--ink); }
.field-hint { font-size: 11.5px; color: var(--muted-2); margin-top: 5px; }
.ps-cat-inherit { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ps-cat-chip { font-size: 12.5px; font-weight: 600; padding: 2px 9px; border-radius: 7px; background: var(--bg-tint); border: 1px solid var(--line); color: var(--ink); }
.ps-cat-none { font-size: 12.5px; color: var(--muted-3); }
.ps-cat-inherit-hint { font-size: 11.5px; color: var(--muted-2); }


/* #1291 v4 — 커넥터 멤버 매핑 일괄 연결 바(슬랙 69명 규모라 하나씩은 비현실적) */
.cu-map-bulk { display: flex; align-items: center; gap: 8px; margin: 10px 0 6px; flex-wrap: wrap; }
