/* ===========================================================================
   My Knowledge Kitchen — 공통 컴포넌트 (concept-v1)
   tokens.css 의 var(--*) 사용. 모든 화면(Workspace / DocEditor …) 공유.
   =========================================================================== */

/* ---- 아이콘 (스프라이트 use) — 크기는 부모 `.xxx svg{}` 규칙/인라인 width·height, 색은 currentColor ---- */
.ic{flex-shrink:0}

/* ---- 앱 상단 바 ---- */
/* z-index:40 — 드롭다운(대화 셀렉터/정리 현황)이 워크스페이스 패널 위에 뜨도록. 모달(60+)보다는 아래 */
.app-bar{flex-shrink:0; position:relative; z-index:40; height:56px; display:flex; align-items:center; justify-content:space-between; padding:0 20px; background:var(--surface); border-bottom:1px solid var(--line)}
.brand{display:flex; align-items:center; gap:9px}
.brand-mark{width:28px;height:28px;border-radius:9px;background:var(--ink_btn);color:var(--on_solid);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;overflow:hidden}
.brand-mark img{width:74%;height:74%;object-fit:contain;display:block}
.brand-name{font-size:17px;font-weight:700;letter-spacing:-.01em}
.app-bar-right{display:flex; align-items:center; gap:8px}
/* 앱바 아이콘 버튼 (전체 문서 보기 등) — 프로필 좌측 */
.appbar-icon{width:36px;height:36px;border-radius:9px;border:none;background:transparent;color:var(--ink_2);cursor:pointer;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:background .12s,color .12s}
.appbar-icon:hover{background:var(--line_2);color:var(--accent)}
.appbar-icon svg{width:19px;height:19px}
.avatar-sm{width:32px;height:32px;border-radius:50%;background:var(--ink_2);color:var(--on_solid);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}
/* 앱바 3존 + 타이틀 완전 센터 (대화/문서함 공통) */
.ab-side{flex:1;display:flex;align-items:center;min-width:0}
.ab-side.right{justify-content:flex-end}
.ab-center-abs{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;white-space:nowrap}
.ab-center-abs .ab-nav{position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:11px}
.ab-title{font-size:15px;font-weight:700;color:var(--ink);white-space:nowrap}
.ab-nav{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--ink_3);background:transparent;border:1px solid var(--line);border-radius:8px;padding:5px 10px;cursor:pointer;font-family:inherit;text-decoration:none;white-space:nowrap}
.ab-nav:hover{border-color:var(--accent);color:var(--accent);background:var(--accent_soft)}
.ab-nav svg{width:13px;height:13px;flex-shrink:0}

/* ---- (v2) 현재 대화(위키) 타이틀 — 정적 표시(DocEditor 등) ---- */
.wiki-title-bar{flex:1; display:flex; align-items:center; gap:7px; justify-content:center; min-width:0}
.wtb-icon{display:flex; color:var(--ink_3)}
.wtb-icon svg{width:16px;height:16px}
.wtb-name{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wtb-sub{font-size:12px;color:var(--ink_3);white-space:nowrap}

/* ---- (v2) 대화(conversation) 셀렉터 — 도우미 셀렉터 대체. 대화 단위 전환 ---- */
.convo-switch{flex:1; display:flex; justify-content:center; position:relative; min-width:0}
.convo-trigger{display:flex; align-items:center; gap:8px; min-width:0; max-width:340px; background:var(--bg); border:1px solid var(--line); border-radius:11px; padding:6px 11px; cursor:pointer; font-family:inherit; transition:border-color .12s, background .12s}
.convo-trigger:hover{border-color:var(--accent); background:var(--surface)}
.convo-icon{display:flex; color:var(--ink_3); flex-shrink:0}
.convo-icon svg{width:15px;height:15px}
.convo-name{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.convo-chev{color:var(--ink_3); flex-shrink:0; transition:transform .15s}
.convo-switch.open .convo-chev{transform:rotate(180deg)}
.convo-menu{position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%); width:300px; background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow_pop); padding:7px; z-index:120; display:none}
.convo-switch.open .convo-menu{display:block}
.convo-menu-label{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink_3);padding:8px 10px 6px}
.convo-item{display:flex; align-items:center; gap:9px; padding:9px 10px; border-radius:10px; cursor:pointer; text-decoration:none}
.convo-item:hover{background:var(--bg)}
.convo-item .ci-ic{display:flex; color:var(--ink_3); flex-shrink:0}
.convo-item .ci-ic svg{width:15px;height:15px}
.convo-item .ci-tx{flex:1; min-width:0}
.convo-item .ci-nm{font-size:13px;font-weight:600;color:var(--ink);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.convo-item .ci-meta{font-size:11px;color:var(--ink_3);margin-top:1px}
.convo-item .ci-ck{color:var(--accent); flex-shrink:0; margin-left:auto}
.convo-menu-div{height:1px;background:var(--line_2);margin:6px 8px}
.convo-item .ci-star{color:var(--amber); flex-shrink:0; margin-left:auto}
.convo-item .ci-star svg{width:14px;height:14px;fill:var(--amber)}
.convo-new{display:flex; align-items:center; gap:9px; padding:9px 10px; border-radius:10px; cursor:pointer; color:var(--accent); font-size:13px; font-weight:600; text-decoration:none}
.convo-new:hover{background:var(--accent_soft)}
.convo-new .cn-ic{display:flex}
.convo-new .cn-ic svg{width:15px;height:15px}
/* 대화 전체 보기 (중립 메뉴 아이템) */
.convo-all{display:flex; align-items:center; gap:9px; padding:9px 10px; border-radius:10px; cursor:pointer; color:var(--ink_2); font-size:13px; font-weight:600; text-decoration:none}
.convo-all:hover{background:var(--bg)}
.convo-all .ca-ic{display:flex; color:var(--ink_3)}
.convo-all .ca-ic svg{width:15px;height:15px}

/* ---- 도우미 셀렉터 (앱바 중앙) — v2 미사용(호환용 잔존) ---- */
.cookbook-switch{flex:1; max-width:360px; margin:0 28px; position:relative; display:flex; justify-content:center}
.cb-trigger{display:flex; align-items:center; gap:10px; min-width:248px; background:var(--bg); border:1px solid var(--line); border-radius:11px; padding:5px 12px 5px 7px; cursor:pointer; transition:border-color .12s, background .12s}
.cb-trigger:hover{border-color:var(--accent); background:var(--surface)}
.cb-avatar{width:30px;height:30px;border-radius:9px;flex-shrink:0;background:var(--accent_soft);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600}
.cb-body{flex:1;min-width:0;text-align:left}
.cb-name{font-size:14px;font-weight:600;color:var(--ink);line-height:1.25}
.cb-chev{color:var(--ink_3);flex-shrink:0;transition:transform .15s}
.cookbook-switch.open .cb-chev{transform:rotate(180deg)}
.cb-menu{position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%); width:310px; background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow_pop); padding:7px; z-index:120; display:none}
.cookbook-switch.open .cb-menu{display:block}
.cb-menu-label{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink_3);padding:8px 10px 6px}
.cb-item{display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:10px; cursor:pointer}
.cb-item:hover{background:var(--bg)}
.cbi-av{width:30px;height:30px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;background:var(--accent_soft);color:var(--accent)}
.cb-item.current .cbi-av{background:var(--accent_soft);box-shadow:inset 0 0 0 1px var(--accent)}
.cbi-tx{flex:1;min-width:0}
.cbi-nm{font-size:13px;font-weight:600;color:var(--ink);line-height:1.25}
.cbi-ds{font-size:11px;color:var(--ink_3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cbi-ck{color:var(--accent);flex-shrink:0}
.cb-menu-div{height:1px;background:var(--line_2);margin:6px 8px}
.cb-add{display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:10px; cursor:pointer; color:var(--accent); font-size:13px; font-weight:600; text-decoration:none}
.cb-add:hover{background:var(--accent_soft)}
.cba-ic{width:30px;height:30px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px dashed var(--accent)}

/* ---- 워크스페이스 / 패널 리사이저 ---- */
.workspace{flex:1; display:flex; overflow:hidden}
.panel-resizer{flex-shrink:0; width:7px; cursor:col-resize; background:transparent; position:relative; z-index:5}
.panel-resizer::before{content:""; position:absolute; left:50%; top:0; bottom:0; width:1px; transform:translateX(-50%); background:var(--line); transition:background .12s, width .12s}
.panel-resizer:hover::before, .panel-resizer.dragging::before{background:var(--accent); width:2px}

/* ---- 좌측 채팅 패널 ---- */
.chat-panel{width:44%; min-width:320px; flex-shrink:0; display:flex; flex-direction:column; background:var(--bg); position:relative}
.stream{flex:1; overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:16px}
.day-sep{align-self:center; font-size:11px; color:var(--ink_3); font-weight:600}

/* 사용자 입력 = 대화형 버블 (입력만 대화형) */
.turn{display:flex; flex-direction:column; width:100%}
.turn.user{align-items:flex-end}
.turn.user .bubble{max-width:86%; padding:11px 15px; font-size:14px; line-height:1.6; border-radius:16px; background:var(--user_bubble); color:var(--ink); border-bottom-right-radius:6px}

/* AI 결과 = 풀폭 플랫 출력 (페르소나 없음) */
.turn.ai{align-items:stretch}
.turn.ai + .turn{margin-top:8px}
.ai-output{width:100%}
.ai-text{font-size:14px; line-height:1.7; color:var(--ink)}
.ai-text + .ai-text{margin-top:10px}
.ai-text b{font-weight:600}
/* AI 생성 중 (BL-13 로딩) — 차분한 인디케이터. 토큰/스트리밍 용어 미노출(P-01) */
.ai-thinking{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--ink_3)}
.think-dots{display:inline-flex;gap:4px}
.think-dots span{width:6px;height:6px;border-radius:50%;background:var(--ink_3);animation:thinkPulse 1.3s ease-in-out infinite}
.think-dots span:nth-child(2){animation-delay:.18s}
.think-dots span:nth-child(3){animation-delay:.36s}
@keyframes thinkPulse{0%,70%,100%{opacity:.28}35%{opacity:.9}}

/* AI 답변 이후 · wiki 처리 통보 (조건부) */
.wiki-notice{margin-top:15px;padding-top:13px;border-top:1px solid var(--line)}
.wiki-head{display:flex;align-items:center;gap:7px}
.wiki-badge{width:18px;height:18px;border-radius:5px;flex-shrink:0;background:var(--green_soft);color:var(--green);display:flex;align-items:center;justify-content:center}
.wiki-badge svg{width:11px;height:11px}
.wiki-title{font-size:12px;font-weight:600;color:var(--ink_2)}
.wiki-sub{font-size:11.5px;color:var(--ink_3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 인라인 미니 문서 카드 */
.mini-doc-card{margin-top:10px;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:11px 13px;display:flex;align-items:center;gap:11px;cursor:pointer}
.mini-doc-card:hover{border-color:var(--accent)}
.mini-doc-card.active{border-color:var(--accent)}
.mini-doc-ico{width:34px;height:34px;border-radius:9px;flex-shrink:0;background:var(--accent_soft);color:var(--accent);display:flex;align-items:center;justify-content:center}
.mini-doc-body{flex:1;min-width:0}
.mini-doc-title{font-size:13px;font-weight:600;line-height:1.3}
.mini-doc-meta{font-size:11px;color:var(--ink_3);margin-top:2px}
.mini-doc-open{font-size:11px;font-weight:600;color:var(--link);white-space:nowrap}

/* 참조(출처) 칩 */
.citations{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}
.refs-label{font-size:11px;font-weight:600;color:var(--ink_3);margin-right:1px}
.cite-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;background:var(--link_soft);color:var(--link);padding:4px 9px;border-radius:var(--radius_pill);cursor:pointer;border:1px solid var(--cite_border)}
.cite-chip svg{width:11px;height:11px}

/* ---- 입력창(composer) ---- */
.composer{flex-shrink:0;padding:12px 16px 14px;background:var(--bg);border-top:1px solid var(--line);display:flex;align-items:flex-end;gap:4px}
.composer-inner{flex:1; min-width:0; display:flex;align-items:flex-end;gap:8px; background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:6px 6px 6px 14px}
.composer-inner:focus-within{border-color:var(--accent)}
.attach-btn{width:34px;height:34px;border-radius:50%;flex-shrink:0;background:transparent;border:none;color:var(--ink_3);cursor:pointer;display:flex;align-items:center;justify-content:center}
.composer-input{flex:1;border:none;outline:none;background:transparent;resize:none;font-size:14px;font-family:inherit;color:var(--ink);padding:8px 0;line-height:1.4;max-height:80px}
.composer-input::placeholder{color:var(--ink_3)}
.expand-btn{width:40px;height:40px;flex-shrink:0;margin-bottom:4px;border-radius:50%;background:transparent;border:none;color:var(--ink_3);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s}
.expand-btn:hover{background:var(--line_2);color:var(--accent)}
.expand-btn svg{width:17px;height:17px}
/* 리치에디터 축소 토글 — 컴포저 확장 버튼(expand-btn)과 동일 위치·스타일. 축소↔확장 일관 */
.re-toggle{width:40px;height:40px;flex-shrink:0;border-radius:50%;background:transparent;border:none;color:var(--ink_3);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s}
.re-toggle:hover{background:var(--line_2);color:var(--accent)}
.re-toggle svg{width:17px;height:17px}
.send-btn{width:36px;height:36px;border-radius:50%;flex-shrink:0;background:var(--ink_btn);border:none;color:var(--on_solid);cursor:pointer;display:flex;align-items:center;justify-content:center}

/* ---- 리치 에디터 (상세 입력, 하단 바텀시트) ---- */
.rich-editor{position:absolute; left:0; right:0; bottom:0; height:38%; min-height:260px; z-index:20; background:var(--surface); display:flex; flex-direction:column; border-top:1px solid var(--line); border-radius:16px 16px 0 0; box-shadow:var(--shadow_sheet)}
.rich-editor.hidden{display:none}
.re-head{flex-shrink:0; display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-bottom:1px solid var(--line)}
.re-title{font-size:13px;font-weight:600;color:var(--ink)}
.re-collapse{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--ink_2);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 11px;cursor:pointer;transition:border-color .12s,color .12s}
.re-collapse:hover{border-color:var(--accent);color:var(--accent)}
.re-collapse svg{width:13px;height:13px}
.re-toolbar{flex-shrink:0;display:flex;align-items:center;gap:3px;flex-wrap:wrap;padding:8px 14px;border-bottom:1px solid var(--line_2);background:var(--bg)}
.re-body{flex:1;overflow-y:auto;padding:18px 20px;outline:none;font-size:14px;line-height:1.7;color:var(--ink)}
.re-body:empty::before{content:attr(data-placeholder);color:var(--ink_3)}
.re-foot{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:11px 16px;border-top:1px solid var(--line)}
.re-attach{width:36px;height:36px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink_2);cursor:pointer;display:flex;align-items:center;justify-content:center}
.re-attach:hover{border-color:var(--accent);color:var(--accent)}
.re-spacer{flex:1}
.re-send{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--on_solid);background:var(--ink_btn);border:1px solid var(--ink_btn);border-radius:10px;padding:9px 16px;cursor:pointer}
.re-send svg{width:15px;height:15px}

/* ---- 마크다운 서식 툴바 (리치 에디터 / 문서 편집기 공용) ---- */
.re-tool,.md-tool{height:28px;min-width:28px;padding:0 7px;border:none;border-radius:7px;background:transparent;color:var(--ink_2);cursor:pointer;font-size:12.5px;font-weight:600;display:flex;align-items:center;justify-content:center}
.re-tool:hover,.md-tool:hover{background:var(--surface);color:var(--ink)}
.re-tool svg,.md-tool svg{width:15px;height:15px}
.re-tool i,.md-tool i{font-style:italic;font-family:var(--font_serif)}
.re-div,.md-div{width:1px;height:18px;background:var(--line);margin:0 4px}

/* ---- 우측 패널 / 탭 ---- */
.doc-panel{flex:1; display:flex; flex-direction:column; background:var(--bg); min-width:0; position:relative}

/* ---- 내장 웹 뷰어 (우측 패널 웹 탭) — 채팅 URL 클릭 → 앱 이탈 없이 보기 + 원본 등록(ingest) ---- */
.web-viewer{position:absolute;inset:0;z-index:30;background:var(--surface);display:flex;flex-direction:column}
.web-viewer.hidden{display:none}
.wv-head{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:9px 12px;border-bottom:1px solid var(--line);background:var(--surface)}
.wv-btn{width:30px;height:30px;border-radius:8px;border:none;background:transparent;color:var(--ink_2);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.wv-btn:hover{background:var(--bg);color:var(--ink)}
.wv-btn:disabled{color:var(--line);cursor:default}
.wv-btn svg{width:16px;height:16px}
.wv-addr{flex:1;min-width:0;display:flex;align-items:center;gap:7px;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:7px 11px;font-size:12.5px;color:var(--ink_2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wv-addr .ic{width:13px;height:13px;color:var(--ink_3);flex-shrink:0}
.wv-reg{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;font-size:12.5px;font-weight:600;color:var(--on_solid);background:var(--ink_btn);border:1px solid var(--ink_btn);border-radius:9px;padding:7px 12px;cursor:pointer;font-family:inherit}
.wv-reg:hover{background:var(--ink_btn_hover)}
.wv-reg svg{width:14px;height:14px}
.wv-reg.done{background:var(--accent_soft);border-color:transparent;color:var(--accent);cursor:default}
.wv-reg.done .proc-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:dcStatusPulse 1.4s ease-in-out infinite}
.wv-close{width:30px;height:30px;border-radius:8px;border:none;background:transparent;color:var(--ink_2);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.wv-close:hover{background:var(--bg)}
.wv-close svg{width:16px;height:16px}
/* 등록 후 정리 안내 배너 */
.wv-banner{flex-shrink:0;display:none;align-items:center;gap:8px;padding:9px 15px;background:var(--accent_soft);color:var(--accent);font-size:12px;font-weight:600;border-bottom:1px solid var(--line)}
.web-viewer.registered .wv-banner{display:flex}
.wv-banner .ic{width:14px;height:14px;flex-shrink:0}
.wv-banner a{margin-left:auto;color:var(--accent);text-decoration:underline;cursor:pointer}
.wv-body{flex:1;overflow-y:auto;padding:26px 30px 50px}
.wv-article{max-width:640px;margin:0 auto}
.wv-art-title{font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.3;color:var(--ink)}
.wv-art-by{font-size:12.5px;color:var(--ink_3);margin-top:9px}
.wv-art-hero{height:190px;background:linear-gradient(135deg,#EADFD6,var(--bg));border:1px solid var(--line);border-radius:12px;margin:18px 0;display:flex;align-items:center;justify-content:center;color:var(--ink_3);font-size:12px}
.wv-art-p{font-size:14.5px;line-height:1.8;color:var(--ink_2);margin-top:14px}

/* 채팅 본문 URL — 클릭 시 내장 웹 뷰어 */
.chat-url{color:var(--link);text-decoration:none;border-bottom:1px solid var(--cite_border);cursor:pointer;word-break:break-all}
.chat-url:hover{background:var(--link_soft);border-bottom-color:var(--link)}
.chat-url .ic{width:12px;height:12px;vertical-align:-1px;margin-right:2px;opacity:.75}
.panel-tabs{flex-shrink:0; display:flex; background:var(--surface); border-bottom:1px solid var(--line); padding:0 8px}
.panel-tab{flex:1; display:flex; align-items:center; justify-content:center; gap:7px; padding:11px 10px; font-size:13px; font-weight:600; color:var(--ink_3); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; transition:color .12s, border-color .12s}
.panel-tab:hover{color:var(--ink_2)}
.panel-tab.active{color:var(--accent); border-bottom-color:var(--accent)}
.panel-tab svg{width:16px;height:16px;flex-shrink:0}
.panel-tab .tab-badge{font-size:10px;font-weight:600;color:var(--accent);background:var(--accent_soft);padding:1px 7px;border-radius:var(--radius_pill)}
.pt-label{font-size:13px;font-weight:600;letter-spacing:-.01em}
.tab-pane{flex:1; display:flex; flex-direction:column; overflow:hidden; min-height:0}
.tab-pane.hidden{display:none}

/* 패널 헤더바 (필터 + 액션) — 컨텍스트/매뉴얼 공용 */
.doc-panel-head{flex-shrink:0; padding:11px 18px; border-bottom:1px solid var(--line); background:var(--surface); display:flex; align-items:center; justify-content:space-between; gap:12px}
.cookbook-bar{flex-shrink:0; padding:11px 18px; border-bottom:1px solid var(--line); background:var(--surface); display:flex; align-items:center; justify-content:flex-end; gap:7px}
.tray-filters{display:flex;gap:6px;flex-wrap:wrap;min-width:0}
.filter-chip{font-size:11px;font-weight:600;letter-spacing:.02em;padding:5px 11px;border-radius:var(--radius_pill);cursor:pointer;background:var(--surface);border:1px solid var(--line);color:var(--ink_2)}
.filter-chip.active{background:var(--ink);border-color:var(--ink);color:var(--on_solid)}
.canvas-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}
.canvas-actions.hidden{display:none}
.explorer-btn{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;font-size:11.5px;font-weight:600;color:var(--ink_2);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 11px;cursor:pointer;transition:border-color .12s,color .12s}
.explorer-btn:hover{border-color:var(--accent);color:var(--accent)}
.explorer-btn svg{width:14px;height:14px}
/* 문서 액션 — 스타(즐겨찾기) · 테이블 올리기/제외 (DocEditor de-head) */
.explorer-btn.de-star{padding:6px 8px}
.explorer-btn.de-star.on{color:var(--amber);border-color:var(--amber)}
.explorer-btn.de-star.on svg{fill:var(--amber)}
.explorer-btn.de-table.on{color:var(--accent);border-color:var(--accent);background:var(--accent_soft)}
.explorer-btn.de-table.on svg{fill:var(--accent)}
.de-div{width:1px;height:20px;background:var(--line);margin:0 3px;align-self:center;flex-shrink:0}
.de-more{position:relative}
.de-more-btn{padding:6px 8px}
.de-more-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:156px;background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow_pop);padding:6px;display:none;z-index:60}
.de-more.open .de-more-menu{display:block}
.de-more-item{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:8px;font-size:13px;font-weight:600;color:var(--ink_2);cursor:pointer;white-space:nowrap}
.de-more-item:hover{background:var(--bg)}
.de-more-item.danger{color:var(--danger)}
.de-more-item svg{width:15px;height:15px;flex-shrink:0}
/* 아이콘 전용 액션 버튼 (라벨 없음) */
.explorer-btn.ico{padding:6px 8px}
.de-save.ico{padding:6px 9px}
.de-save svg{width:15px;height:15px}
.explorer-btn.de-danger:hover{color:var(--danger);border-color:var(--danger)}
.explorer-btn.danger{color:var(--danger)}
.explorer-btn.danger:hover{border-color:var(--danger);color:var(--danger);background:var(--danger_soft)}

/* ---- 세로 문서 카드 리스트 (핀/스타 문서) ---- */
.doc-list{flex:1; min-height:0; overflow-y:auto; padding:16px 20px 24px; display:flex; flex-direction:column; gap:11px; width:100%; max-width:860px; margin:0 auto}
.doc-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius_card); padding:13px 14px; cursor:pointer; transition:border-color .15s}
.doc-card:hover{border-color:var(--accent)}
.dc-top{display:flex;align-items:flex-start;gap:8px;margin-bottom:6px}
.dc-actions{margin-left:auto;display:flex;align-items:center;gap:1px}
.dc-act{width:24px;height:24px;border-radius:7px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink_3);transition:background .12s,color .12s}
.dc-act svg{width:14px;height:14px}
.dc-act:hover{background:var(--bg);color:var(--ink_2)}
.dc-act.star.active{color:var(--amber)}
.dc-act.star.active svg{fill:var(--amber)}
.dc-act.pin.active{color:var(--accent)}
.dc-act.pin.active svg{fill:var(--accent)}
/* 고정(핀) 문서 — 제목 옆 마커 + 카드 좌측 강조선 */
.dc-pin-mark{display:inline-flex;align-items:center;color:var(--accent);flex-shrink:0}
.dc-pin-mark svg{width:13px;height:13px;fill:var(--accent)}
/* 카드 제목줄 — 뷰어(.de-titlewrap)와 동일 규칙: 제목 뒤에 북마크 별 부착 */
.dc-titlewrap{flex:1;min-width:0;display:flex;align-items:center;gap:6px}
.dc-title{flex:0 1 auto;min-width:0;font-size:14px;font-weight:600;letter-spacing:-.01em;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dc-bookmark{flex-shrink:0;width:24px;height:24px;border-radius:7px;border:none;background:transparent;color:var(--ink_3);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .12s,background .12s}
.dc-bookmark:hover{background:var(--bg);color:var(--amber)}
.dc-bookmark svg{width:15px;height:15px}
.dc-bookmark.active{color:var(--amber)}
.dc-bookmark.active svg{fill:var(--amber)}
.dc-titlewrap .dc-status{margin-right:0}

/* ── 탭별 액션 바 (참고 문서 / 지침 공통) ── */
.pane-actions{flex-shrink:0;display:flex;justify-content:flex-end;gap:7px;padding:8px 12px;background:var(--surface);border-bottom:1px solid var(--line)}
.pane-actions.hidden{display:none}

/* ── 지침 탭 (pane-instr) ── */
.instr-intro{flex-shrink:0;padding:12px 16px 4px;font-size:12px;color:var(--ink_2);line-height:1.6}
.instr-list{display:flex;flex-direction:column;gap:8px;padding:10px 12px}
.instr-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:11px 12px;cursor:pointer;transition:border-color .12s,box-shadow .12s}
.instr-card:hover{border-color:var(--accent);box-shadow:var(--shadow_card)}
.instr-card.off{opacity:.55}
.ic-top{display:flex;align-items:center;gap:10px}
.ic-badge{width:30px;height:30px;border-radius:9px;background:var(--accent_soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ic-badge svg{width:16px;height:16px}
.ic-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ic-name{font-size:13px;font-weight:700;color:var(--ink);line-height:1.3}
.ic-desc{font-size:11.5px;color:var(--ink_2);line-height:1.45}
.ic-actions{display:flex;align-items:center;gap:1px;flex-shrink:0}
.dc-act.ic-toggle.active{color:var(--green)}
.dc-act.ic-toggle.active svg{stroke:var(--green)}
.instr-tip{margin:6px 12px 14px;padding:11px 13px;display:flex;align-items:flex-start;gap:9px;background:var(--accent_soft);border-radius:12px;font-size:12px;color:var(--ink_2);line-height:1.55}
.instr-tip svg{width:15px;height:15px;color:var(--accent);flex-shrink:0;margin-top:1px}

/* 대화 설정 모달 — 지침 이관 안내 노트 */
.cset-note{margin-top:12px;padding:10px 12px;display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:9px;font-size:12px;color:var(--ink_2);line-height:1.5}
.cset-note svg{width:14px;height:14px;color:var(--accent);flex-shrink:0}
/* 문서 활동 상태 칩 — 성숙도(초안/발행) 폐지, "활동"만. 기본=배지 없음(P-01). 정리 중 / 새 문서 / 확인 필요 */
.dc-status{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:1px 8px;border-radius:var(--radius_pill);margin-right:6px;vertical-align:1px;flex-shrink:0}
.dc-status .st-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}
.dc-status.working{background:var(--accent_soft);color:var(--accent)}
.dc-status.working .st-dot{background:var(--accent)}
.dc-status.new{background:var(--green_soft);color:var(--green)}
.dc-status.attention{background:var(--amber_soft);color:var(--amber)}
@keyframes dcStatusPulse{0%,100%{opacity:1}50%{opacity:.4}}
.dc-status.working .st-dot{animation:dcStatusPulse 1.4s ease-in-out infinite}
.dc-summary{font-size:12px;color:var(--ink_2);line-height:1.5;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dc-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.dc-meta{font-size:11px;color:var(--ink_3);margin-top:9px}

/* 태그 칩 (공통) */
.tag-chip{font-size:11px;font-weight:600;color:var(--ink_2);background:var(--bg);border:1px solid var(--line);padding:2px 9px;border-radius:var(--radius_pill)}
/* 샘플 태그 — 설치 시 제공된 예시 문서 표식 (은은한 앰버) */
.tag-chip.sample{color:var(--amber,#B7791F);background:var(--amber_soft,#FBF3E4);border-color:var(--amber_soft,#F0E2C8)}
/* 문서 뷰어 메타 행 — 상태 배지 + 태그(필수 가시). 제목 아래 상시 노출 */
.de-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 18px 12px}
.de-status{font-size:11px;font-weight:700;padding:2px 10px;border-radius:var(--radius_pill);flex-shrink:0}
.de-status.draft{background:var(--amber_soft);color:var(--amber)}
.de-status.published{background:var(--green_soft);color:var(--green)}
.de-meta-div{width:1px;height:13px;background:var(--line);flex-shrink:0}
.de-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap}

/* ---- 하단 좌우 스크롤 스트립 (LLM 참고 / 연결 문서 / 스킬 장착 공용) ---- */
.ref-strip{flex-shrink:0; border-top:1px solid var(--line); background:var(--surface); padding:11px 0 12px}
.ref-strip-head{display:flex; align-items:center; gap:7px; padding:0 18px 9px; font-size:11px; font-weight:600; color:var(--ink_2)}
.ref-strip-head .rs-dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0}
.ref-strip-head .rs-count{margin-left:auto;font-weight:600;color:var(--ink_3)}
/* 함께 본 문서 스트립 — 기본 접힘(P-01 최소 노출), 헤더 클릭으로 펼침 */
.ref-strip-head{cursor:pointer}
.ref-strip-head .rs-chev{width:13px;height:13px;color:var(--ink_3);transition:transform .15s;flex-shrink:0}
.ref-strip:not(.collapsed) .ref-strip-head .rs-chev{transform:rotate(90deg)}
.ref-strip.collapsed .ref-scroll{display:none}
.ref-strip.collapsed .ref-strip-head{padding-bottom:0}
.ref-scroll{display:flex; gap:9px; overflow-x:auto; padding:1px 18px 5px}
.ref-scroll::-webkit-scrollbar{height:7px}
.ref-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
.ref-scroll::-webkit-scrollbar-track{background:transparent}
.ref-card{flex:0 0 auto; width:182px; background:var(--bg); border:1px solid var(--line); border-radius:11px; padding:11px 12px; cursor:pointer; transition:border-color .12s}
.ref-card:hover{border-color:var(--accent)}
.ref-card-top{display:flex; align-items:flex-start; justify-content:space-between; gap:7px; margin-bottom:7px}
.ref-title{flex:1; min-width:0; font-size:12.5px;font-weight:600;line-height:1.35;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ref-pin{width:22px;height:22px;border-radius:6px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink_3);flex-shrink:0;margin:-1px -2px 0 0;transition:background .12s,color .12s}
.ref-pin svg{width:14px;height:14px}
.ref-pin:hover{background:var(--surface);color:var(--accent)}
.ref-tags{display:flex;flex-wrap:wrap;gap:5px}
.ref-tag{font-size:10px;font-weight:600;color:var(--ink_2);background:var(--surface);border:1px solid var(--line);padding:2px 7px;border-radius:var(--radius_pill)}
.rel-row{margin-top:8px}
.rel-chip{display:inline-block;font-size:10px;font-weight:700;border-radius:var(--radius_pill);padding:2px 8px}
.rel-chip.strong{color:var(--accent);background:var(--accent_soft)}   /* 근거·인용 = 강한 연결 */
.rel-chip.weak{color:var(--ink_2);background:var(--line_2)}           /* 관련·참고 = 약한 연결 */
/* 연결 카드(B): 관계 리드 → 제목 → 태그 */
.ref-card .rel-chip{margin-bottom:6px}
.ref-card .ref-title{margin:0}
.ref-card .ref-tags{margin-top:8px}
/* 추가 = 플레이스홀더 카드 */
.ref-add{flex:0 0 auto;width:182px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px dashed var(--line);background:transparent;border-radius:11px;color:var(--ink_3);font-size:11.5px;font-weight:600;cursor:pointer;transition:border-color .12s,color .12s}
.ref-add:hover{border-color:var(--accent);color:var(--accent)}
.ref-add svg{width:18px;height:18px}
/* 스킬 카드 삭제(장착 해제) + 커맨드 */
.skill-remove{width:22px;height:22px;border-radius:6px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink_3);flex-shrink:0;margin:-1px -2px 0 0;transition:background .12s,color .12s}
.skill-remove svg{width:13px;height:13px}
.skill-remove:hover{background:var(--bg);color:var(--accent)}
.skill-cmd{display:inline-block;font-family:var(--font_mono);font-size:11px;font-weight:600;color:var(--accent);background:var(--accent_soft);border-radius:6px;padding:2px 8px}

/* ---- 업무 매뉴얼 본문 ---- */
.cookbook-body{flex:1; overflow-y:auto; padding:22px 20px 40px; width:100%; max-width:860px; margin:0 auto}

/* ---- 문서 편집기 (DocEditor) ---- */
.doc-editor{flex:1; min-width:0; display:flex; flex-direction:column; background:var(--surface)}
.de-head{flex-shrink:0; display:flex; align-items:center; gap:9px; padding:11px 18px; border-bottom:1px solid var(--line)}
.de-back{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink_2);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.de-back:hover{border-color:var(--accent);color:var(--accent)}
.de-back svg{width:16px;height:16px}
.de-titlewrap{flex:1;min-width:0;display:flex;align-items:center;gap:8px}
.de-title{font-size:15px;font-weight:600;letter-spacing:-.01em;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto}
.de-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
/* 제목 옆 북마크(즐겨찾기) — DocEditor·DocBrowser 문서 뷰 공통. 무경계 별, on=amber */
.de-bookmark{flex-shrink:0;width:26px;height:26px;border-radius:7px;border:none;background:transparent;color:var(--ink_3);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .12s,background .12s}
.de-bookmark:hover{background:var(--line_2);color:var(--amber)}
.de-bookmark svg{width:16px;height:16px}
.de-bookmark.on{color:var(--amber)}
.de-bookmark.on svg{fill:var(--amber)}
.de-save{font-size:11.5px;font-weight:600;color:var(--on_solid);background:var(--ink_btn);border:1px solid var(--ink_btn);border-radius:8px;padding:6px 13px;cursor:pointer}
.de-toolbar{flex-shrink:0;display:flex;align-items:center;gap:3px;flex-wrap:wrap;padding:7px 16px;border-bottom:1px solid var(--line_2);background:var(--bg)}
.de-scroll{flex:1;overflow-y:auto}
.de-body{max-width:780px;margin:0 auto;padding:24px 30px 70px;outline:none}

/* ---- 속성(frontmatter) 모달 ---- */
.prop-overlay{position:absolute;inset:0;z-index:60;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:30px}
.prop-overlay.hidden{display:none}
.prop-modal{width:100%;max-width:460px;max-height:100%;background:var(--surface);border-radius:16px;overflow:hidden;box-shadow:var(--shadow_pop);display:flex;flex-direction:column}
.prop-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.prop-title{font-size:14px;font-weight:600;color:var(--ink)}
.prop-close{width:32px;height:32px;border-radius:8px;border:none;background:var(--bg);color:var(--ink_2);cursor:pointer;display:flex;align-items:center;justify-content:center}
.prop-close svg{width:16px;height:16px}
.prop-close:hover{background:var(--line_2)}
.prop-body{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.prop-row{display:flex;align-items:center;gap:12px}
.prop-key{flex:0 0 84px;font-size:12px;font-weight:600;color:var(--ink_3)}
.prop-field{flex:1;min-width:0;font-size:13px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 10px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.prop-field.mono{font-family:var(--font_mono);font-size:12px;color:var(--ink_2)}
.prop-input,.prop-select{flex:1;min-width:0;font-size:13px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 10px;outline:none;font-family:inherit}
.prop-input:focus,.prop-select:focus{border-color:var(--accent)}
.prop-input.mono{font-family:var(--font_mono);font-size:12px}
.prop-select{cursor:pointer}
.prop-sub{font-size:11.5px;color:var(--ink_3);line-height:1.55;margin-bottom:4px}
.prop-divider{height:1px;background:var(--line_2);margin:5px 0}
.prop-badge{font-size:11px;font-weight:600;color:var(--amber);background:var(--amber_soft);border-radius:5px;padding:2px 8px}
/* 문서 정보 — 태그 인라인 편집(칩 x + 추가) */
.prop-tags{gap:6px}
.ptag{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;color:var(--ink_2);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius_pill);padding:2px 3px 2px 9px}
.ptag-x{border:none;background:none;color:var(--ink_3);cursor:pointer;font-size:14px;line-height:1;padding:0 3px;border-radius:50%}
.ptag-x:hover{color:var(--danger)}
.ptag-add{font-size:11px;font-weight:700;color:var(--ink_3);background:none;border:1px dashed var(--line);border-radius:var(--radius_pill);padding:3px 10px;cursor:pointer;font-family:inherit}
.ptag-add:hover{border-color:var(--accent);color:var(--accent)}
.ptag-input{font-size:11px;border:1px solid var(--accent);border-radius:var(--radius_pill);padding:2px 9px;outline:none;font-family:inherit;width:76px;color:var(--ink)}
.prop-foot{flex-shrink:0;display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--line)}
.prop-cancel{font-size:13px;font-weight:600;padding:8px 15px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink_2);cursor:pointer}
.prop-cancel:hover{background:var(--bg)}
.prop-save{font-size:13px;font-weight:600;padding:8px 16px;border-radius:9px;border:1px solid var(--ink_btn);background:var(--ink_btn);color:var(--on_solid);cursor:pointer}

/* ---- 마크다운 문서 본문 (md-doc / de-body 공용) ---- */
.md-h1{font-size:24px;font-weight:700;letter-spacing:-.02em;line-height:1.25;color:var(--ink)}
.md-doc .md-h1{font-size:20px}
.md-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:11px;font-size:11.5px;color:var(--ink_3)}
.md-h2{font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-top:26px;padding-bottom:6px;border-bottom:1px solid var(--line_2)}
.md-doc .md-h2{font-size:15px;margin-top:20px}
.md-p{font-size:14px;line-height:1.75;color:var(--ink_2);margin-top:12px}
.md-ul{list-style:none;margin-top:11px;display:flex;flex-direction:column;gap:8px}
.md-ul li{font-size:14px;line-height:1.65;color:var(--ink);padding-left:20px;position:relative}
.md-ul li::before{content:"";position:absolute;left:6px;top:9px;width:5px;height:5px;border-radius:50%;background:var(--ink_3)}
.md-table{width:100%;border-collapse:collapse;margin-top:14px;font-size:13px}
.md-table th,.md-table td{border:1px solid var(--line);padding:8px 11px;text-align:left}
.md-table th{background:var(--bg);font-weight:600;color:var(--ink)}
.md-table td{color:var(--ink_2)}
.md-callout{margin-top:14px;padding:12px 14px;background:var(--accent_soft);border-radius:10px;font-size:13.5px;line-height:1.7;color:var(--ink_2)}

/* ---- 공용 버튼 (모달 푸터 등) ---- */
.btn-primary{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--on_solid);background:var(--ink_btn);border:1px solid var(--ink_btn);border-radius:10px;padding:9px 18px;cursor:pointer}
.btn-primary:hover{background:var(--ink_btn_hover);border-color:var(--ink_btn_hover)}
.btn-primary svg{width:15px;height:15px}
.btn-primary:disabled{background:var(--line);border-color:var(--line);color:var(--ink_3);cursor:not-allowed}
.btn-ghost{display:inline-flex;align-items:center;font-size:13px;font-weight:600;padding:9px 16px;border-radius:10px;cursor:pointer;background:var(--surface);border:1px solid var(--line);color:var(--ink_2);text-decoration:none}
.btn-ghost:hover{background:var(--bg)}

/* ---- 공용 세그먼트 컨트롤 ---- */
.seg{display:inline-flex;background:var(--bg);border:1px solid var(--line);border-radius:9px;overflow:hidden;flex-shrink:0}
.seg button{font-size:12.5px;font-weight:600;padding:7px 13px;border:none;background:transparent;color:var(--ink_3);cursor:pointer}
.seg button.active{background:var(--surface);color:var(--ink)}

/* ---- 공용 토글 스위치 ---- */
.sw{width:40px;height:23px;border-radius:20px;background:var(--line);position:relative;cursor:pointer;border:none;transition:background .15s;flex-shrink:0}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;background:var(--on_solid);transition:left .15s;box-shadow:var(--shadow_knob)}
.sw.on{background:var(--accent)}
.sw.on::after{left:19px}

/* 온보딩 설명 캡션 (샘플 대화·샘플 문서 하단) */
.onb-caption{flex-shrink:0;padding:11px 16px;background:var(--accent_soft);border-top:1px solid var(--line);font-size:12px;color:var(--ink_2);display:flex;align-items:center;gap:8px;line-height:1.5}
.onb-caption > svg{width:14px;height:14px;color:var(--accent);flex-shrink:0}
.onb-caption a{color:var(--accent);font-weight:700;text-decoration:none;margin-left:auto;white-space:nowrap}
.onb-caption a:hover{text-decoration:underline}
/* AI 미연결 칩 (앱바) */
.ai-off{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--radius_pill);border:1px solid var(--amber);background:var(--amber_soft);color:var(--amber);font-size:12px;font-weight:700;cursor:pointer;text-decoration:none}
.ai-off svg{width:13px;height:13px}

/* ---- 공용 빈/에러 상태 (BL-13) — 화면별 인스턴스가 공유. 차분·인간적(P-01) ---- */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:11px;padding:44px 24px;color:var(--ink_2)}
.empty-ico{width:52px;height:52px;border-radius:15px;flex-shrink:0;background:var(--bg);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink_3)}
.empty-ico svg{width:24px;height:24px}
.empty-title{font-size:15px;font-weight:600;color:var(--ink)}
.empty-sub{font-size:12.5px;color:var(--ink_3);line-height:1.65;max-width:300px}
.empty-chips{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;margin-top:3px}
.empty-chip{font-size:12px;font-weight:500;color:var(--ink_2);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius_pill);padding:6px 13px;cursor:pointer;transition:border-color .12s,color .12s}
.empty-chip:hover{border-color:var(--accent);color:var(--accent)}
.empty-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:5px}
/* 에러 변형 — 아이콘만 데인저 틴트, 문구는 차분 유지(과한 경고 지양) */
.empty-state.error .empty-ico{background:var(--danger_soft);border-color:transparent;color:var(--danger)}

/* ---- 정리 현황 인디케이터 + 팝오버 (BL-09 ingest 처리 알림) ----
   앱바 우측. 처리 중일 때만 노출(P-01 · 없으면 숨김). 큐 용어 미노출 → "정리 중/곧 정리/완료" 인간화 */
.proc-indicator{position:relative;flex-shrink:0}
.proc-btn{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border-radius:var(--radius_pill);border:1px solid var(--line);background:var(--surface);color:var(--ink_2);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:border-color .12s,color .12s}
.proc-btn:hover{border-color:var(--accent);color:var(--accent)}
.proc-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0;animation:dcStatusPulse 1.4s ease-in-out infinite}
/* 확인 필요가 있으면 앰버 강조점 하나 덧붙임 */
.proc-btn .proc-attn{width:6px;height:6px;border-radius:50%;background:var(--amber);flex-shrink:0}
.proc-pop{position:absolute;top:calc(100% + 9px);right:0;width:330px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow_pop);z-index:130;display:none;overflow:hidden}
.proc-indicator.open .proc-pop{display:block}
.proc-pop-head{padding:13px 15px 11px;border-bottom:1px solid var(--line)}
.proc-pop-title{font-size:13.5px;font-weight:700;color:var(--ink)}
.proc-pop-sub{font-size:11.5px;color:var(--ink_3);margin-top:2px}
.proc-list{max-height:340px;overflow-y:auto}
.proc-row{display:flex;align-items:flex-start;gap:10px;padding:11px 15px;border-top:1px solid var(--line_2);cursor:pointer;text-decoration:none}
.proc-row:first-child{border-top:none}
.proc-row:hover{background:var(--bg)}
.proc-row-ic{width:26px;height:26px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.proc-row-ic svg{width:14px;height:14px}
.proc-row-ic.working{background:var(--accent_soft)}
.proc-row-ic.queued{background:var(--line_2)}
.proc-row-ic.attention{background:var(--amber_soft);color:var(--amber)}
.proc-row-ic.done{background:var(--green_soft);color:var(--green)}
.proc-row-ic.error{background:var(--danger_soft);color:var(--danger)}
.proc-row-ic .proc-dot{animation:dcStatusPulse 1.4s ease-in-out infinite}
.proc-row-ic.queued .proc-dot{background:var(--ink_3);animation:none}
.proc-row-body{flex:1;min-width:0;display:flex;flex-direction:column}
.proc-row-title{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.proc-row-meta{font-size:11px;color:var(--ink_3);margin-top:2px;line-height:1.4}
.proc-row.attention .proc-row-meta{color:var(--amber)}
.proc-row-act{font-size:11.5px;font-weight:600;color:var(--link);white-space:nowrap;align-self:center;flex-shrink:0}
.proc-row.error .proc-row-act{color:var(--danger)}
.proc-pop-foot{padding:10px 15px;border-top:1px solid var(--line);text-align:center}
.proc-pop-foot a{font-size:12px;font-weight:600;color:var(--ink_2);text-decoration:none}
.proc-pop-foot a:hover{color:var(--accent)}

/* ---- 위키링크 (BL-08) — 본문 [[...]] 렌더. docId/doc:// 미노출, 대상 제목만(P-01) ---- */
.wlink{color:var(--link);font-weight:500;text-decoration:none;border-bottom:1px solid var(--cite_border);cursor:pointer;border-radius:2px}
.wlink:hover{border-bottom-color:var(--link);background:var(--link_soft)}
.wlink .ic{width:12px;height:12px;vertical-align:-1px;margin-right:1px;opacity:.75}
/* 아직 없는 링크 — 부드러운 "아직 없음"(절제 · 강한 빨강 지양). hover 시 "만들기" 유도 */
.wlink.missing{color:var(--ink_3);border-bottom:1px dashed var(--ink_3)}
.wlink.missing:hover{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent_soft)}
.wlink.missing::after{content:"아직 없음";font-size:9.5px;font-weight:700;color:var(--ink_3);background:var(--line_2);border-radius:4px;padding:1px 5px;margin-left:5px;vertical-align:1px}
.wlink.missing:hover::after{content:"만들기";color:var(--accent);background:var(--accent_soft)}

/* [[ 자동완성 드롭다운 — 이름으로 검색·선택. UUID 몰라도 됨(시스템이 doc:// 승격) */
.wlink-suggest{width:288px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow_pop);overflow:hidden}
.wls-head{font-size:11px;font-weight:600;color:var(--ink_3);padding:9px 13px 7px}
.wls-head b{color:var(--accent);font-family:var(--font_mono);font-weight:700}
.wls-item{display:flex;align-items:center;gap:9px;padding:9px 13px;cursor:pointer;text-decoration:none}
.wls-item:hover,.wls-item.active{background:var(--bg)}
.wls-item .ic{width:15px;height:15px;color:var(--ink_3);flex-shrink:0}
.wls-body{flex:1;min-width:0}
.wls-title{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.3}
.wls-title mark{background:var(--accent_soft);color:var(--accent);border-radius:3px;padding:0 1px}
.wls-path{font-size:11px;color:var(--ink_3);margin-top:1px}
.wls-new{display:flex;align-items:center;gap:9px;padding:10px 13px;cursor:pointer;color:var(--accent);font-size:12.5px;font-weight:600;border-top:1px solid var(--line_2);text-decoration:none}
.wls-new .ic{width:15px;height:15px}

/* ---- 삭제 확인 다이얼로그 + 백링크 영향 고지 (BL-10) ---- */
.confirm-overlay{position:absolute;inset:0;z-index:70;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:30px}
.confirm-overlay.hidden{display:none}
.confirm-modal{width:100%;max-width:410px;background:var(--surface);border-radius:16px;overflow:hidden;box-shadow:var(--shadow_pop)}
.confirm-head{padding:18px 20px 13px}
.confirm-title{font-size:15px;font-weight:700;color:var(--ink)}
.confirm-sub{font-size:12.5px;color:var(--ink_2);line-height:1.6;margin-top:6px}
.confirm-impact{margin:2px 20px;background:var(--bg);border:1px solid var(--line);border-radius:11px;padding:11px 13px}
.confirm-impact-t{font-size:12px;font-weight:600;color:var(--ink_2);display:flex;align-items:center;gap:7px}
.confirm-impact-t .ic{width:14px;height:14px;color:var(--amber);flex-shrink:0}
.confirm-backlinks{margin-top:9px;display:flex;flex-direction:column;gap:6px}
.confirm-bl{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink_2)}
.confirm-bl .ic{width:13px;height:13px;color:var(--ink_3);flex-shrink:0}
.confirm-note{font-size:11.5px;color:var(--ink_3);line-height:1.55;margin-top:10px}
.confirm-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px 16px}
.btn-danger{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--on_solid);background:var(--danger);border:1px solid var(--danger);border-radius:10px;padding:9px 16px;cursor:pointer;font-family:inherit}
.btn-danger:hover{background:#A83E28;border-color:#A83E28}
.btn-danger svg{width:15px;height:15px}

/* ---- 대화 설정 (BL-11) — 모델(응답 스타일) + 지침 장착. 고급·opt-in. prop-modal 재사용 ---- */
.cset-label{font-size:12px;font-weight:700;color:var(--ink_2);margin:12px 0 8px;display:flex;align-items:baseline}
.cset-label:first-child{margin-top:2px}
.cset-hint{font-size:11px;font-weight:500;color:var(--ink_3);margin-left:7px}
.cset-inst{display:flex;flex-direction:column;gap:7px}
.cset-item{display:flex;align-items:center;gap:9px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.cset-grip{color:var(--ink_3);cursor:grab;display:flex;flex-shrink:0}
.cset-grip svg{width:14px;height:14px}
.cset-ico{width:28px;height:28px;border-radius:8px;background:var(--accent_soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cset-ico svg{width:15px;height:15px}
.cset-body{flex:1;min-width:0;display:flex;flex-direction:column}
.cset-name{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.3}
.cset-desc{font-size:11px;color:var(--ink_3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cset-remove{width:24px;height:24px;border-radius:6px;border:none;background:transparent;color:var(--ink_3);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cset-remove:hover{background:var(--surface);color:var(--danger)}
.cset-remove svg{width:13px;height:13px}
.cset-add{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px;margin-top:8px;border:1px dashed var(--line);border-radius:10px;color:var(--ink_3);font-size:12.5px;font-weight:600;background:none;cursor:pointer;font-family:inherit}
.cset-add:hover{border-color:var(--accent);color:var(--accent)}
.cset-add svg{width:14px;height:14px}
.cset-seg{width:100%}
.cset-seg button{flex:1}
/* 지침 추가 모달 (BL-11 · 대화별 커스텀 지침) */
.instr-attach{font-size:11.5px;font-weight:600;color:var(--ink_2);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:5px 11px;cursor:pointer;flex-shrink:0;font-family:inherit;align-self:center}
.instr-attach:hover{border-color:var(--accent);color:var(--accent)}
.instr-attach.on{background:var(--accent_soft);border-color:transparent;color:var(--accent)}
.instr-textarea{width:100%;min-height:90px;font-size:13px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:9px 11px;outline:none;font-family:inherit;line-height:1.6;resize:vertical;margin-top:8px}
.instr-textarea:focus{border-color:var(--accent)}
.instr-textarea::placeholder{color:var(--ink_3)}
.instr-pane.hidden{display:none}
/* Recipe 탭 항목 = 끌어서 순서 변경(핸들 없이 행 전체 드래그) + 눌러서 편집 */
#pane-instr .cset-item{cursor:grab}
#pane-instr .cset-item:active{cursor:grabbing}

/* ---- 폴더·태그 정리 (BL-03 taxonomy) — 사람 언어(폴더·태그). 병합=조용한 제안 ---- */
.merge-suggest{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:13px 15px}
.ms-head{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--accent)}
.ms-head svg{width:14px;height:14px}
.ms-body{font-size:13px;color:var(--ink_2);line-height:1.6;margin-top:7px}
.ms-body b{color:var(--ink);font-weight:600}
.ms-acts{display:flex;gap:8px;margin-top:11px}
.ms-merge{font-size:12.5px;font-weight:600;color:var(--on_solid);background:var(--ink_btn);border:1px solid var(--ink_btn);border-radius:9px;padding:7px 14px;cursor:pointer;font-family:inherit}
.ms-merge:hover{background:var(--ink_btn_hover)}
.ms-keep{font-size:12.5px;font-weight:600;color:var(--ink_2);background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:7px 14px;cursor:pointer;font-family:inherit}
.ms-keep:hover{background:var(--bg)}
.org-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:11px;overflow:hidden}
.org-item{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;background:var(--surface)}
.org-item + .org-item{border-top:1px solid var(--line_2)}
.org-ic{width:16px;height:16px;color:var(--ink_3);flex-shrink:0;margin-top:1px}
/* 한 줄 형식: 타이틀 : 설명 (개수 미표시) */
.org-body{flex:1;min-width:0;font-size:13px;line-height:1.55}
.org-name{font-weight:600;color:var(--ink)}
.org-sep{color:var(--ink_3);margin:0 3px}
/* 폴더·태그 설명 = AI에게 주는 설명서(무엇을 이 폴더/태그에 넣을지) */
.org-desc{font-size:12.5px;color:var(--ink_3)}
.org-acts{display:flex;gap:1px;flex-shrink:0}
.org-edit,.org-del{width:26px;height:26px;border-radius:7px;border:none;background:transparent;color:var(--ink_3);cursor:pointer;display:flex;align-items:center;justify-content:center}
.org-edit:hover{background:var(--bg);color:var(--accent)}
.org-del:hover{background:var(--bg);color:var(--danger)}
.org-edit svg,.org-del svg{width:14px;height:14px}
/* 추가 버튼 (폴더/태그) */
.org-add{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:8px;padding:9px;border:1px dashed var(--line);border-radius:10px;color:var(--ink_3);font-size:12.5px;font-weight:600;background:none;cursor:pointer;font-family:inherit}
.org-add:hover{border-color:var(--accent);color:var(--accent)}
.org-add svg{width:14px;height:14px}
/* 임의 폴더/태그 허용 토글 행 */
.org-allow{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:11px;padding:0 2px}
.org-allow .oa-tx{font-size:12px;color:var(--ink_2);line-height:1.5}
.org-allow .oa-tx b{color:var(--ink);font-weight:600}
/* 편집 상태 — 이름·설명 인라인 편집 (✏️ 클릭 시) */
.org-item.editing{background:var(--bg)}
.org-item.editing .org-body{display:flex;flex-direction:column;gap:6px}
.org-edit-name{font-size:13px;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:5px 9px;outline:none;font-family:inherit;align-self:flex-start;min-width:110px}
.org-edit-name:focus{border-color:var(--accent)}
.org-edit-desc{width:100%;font-size:12.5px;color:var(--ink_2);background:var(--surface);border:1px solid var(--accent);border-radius:7px;padding:6px 9px;outline:none;font-family:inherit}
.org-save,.org-cancel{width:26px;height:26px;border-radius:7px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center}
.org-save{color:var(--accent)}
.org-save:hover{background:var(--accent_soft)}
.org-cancel{color:var(--ink_3)}
.org-cancel:hover{background:var(--surface);color:var(--ink)}
.org-save svg,.org-cancel svg{width:15px;height:15px}
.org-tags{display:flex;flex-wrap:wrap;gap:6px}
