/* Original mock extensions: retain the existing workspace theme and layout. */
.toolbar .tabs{min-width:0;max-width:100%;overflow-x:auto;flex-wrap:nowrap}
.toolbar .tabs button{flex:0 0 auto;white-space:nowrap}
.mock-storage-conflict{position:fixed;inset:12px 12px auto;z-index:2000;border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--surface,#fff);color:var(--text,#172b4d);box-shadow:0 6px 24px #172b4d22}
.mock-storage-conflict[hidden]{display:none}
.mock-storage-conflict button{padding:8px 12px;margin-left:8px;border-radius:6px;background:var(--primary,#7162df);color:white}

/* 용도별 설정은 단일 패널로 읽고 긴 API 주소도 패널 폭 안에서 줄바꿈한다. */
.ai-grid.ai-settings-single{grid-template-columns:minmax(0,1fr);max-width:960px}
.ai-page .ai-box p{overflow-wrap:anywhere}
/* 소유자 지정은 프로필 편집과 구분하되 기존 입력·버튼의 간격과 색을 공유한다. */
.ai-owner-editor{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface,#fff)}
.ai-owner-editor>summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--text,#26354a)}
.ai-owner-editor form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin-top:12px}
.ai-owner-editor .ai-owner-note{grid-column:1/-1;margin:0}
.ai-owner-editor select{max-width:100%;min-height:38px}
.approval-agent-scope{padding:10px 12px;border-radius:6px;background:#f4f2ff;color:#665997!important}
@media(max-width:600px){.ai-owner-editor form{grid-template-columns:minmax(0,1fr)}.ai-owner-editor button,.ai-owner-editor select{min-height:44px}}

.ai-page [hidden]{display:none!important}

/* AI 담당자 페이지는 현재 소유 목록 → 개별 편집 → 별도 등록 → 본인 키 회수 순서로 읽는다.
 * 관리자 소유권·삭제 조작은 별도 확인 영역에 두고 긴 역할·이름이 열 폭을 늘리지 않게 한다. */
.ai-page .ai-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:10px}
.ai-page .ai-page-header p{margin:0;max-width:680px}
.ai-page .ai-page-controls{flex:none}
.ai-page .ai-settings-status{padding:10px 14px;margin:12px 0 20px;border-radius:8px;background:var(--surface-muted,#f7f8fa);color:var(--text,#42526e);min-height:20px;overflow-wrap:anywhere}
.ai-page .ai-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}
.ai-page .ai-summary>div{display:flex;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:var(--surface,#fff)}
.ai-page .ai-summary strong{font-size:23px;font-weight:600;color:var(--primary,#7162df)}
.ai-page .ai-summary span{font-size:12px;color:var(--muted,#657184)}
.ai-page .ai-agent-workspace{max-width:none;grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr);align-items:start}
.ai-page .ai-box>h3:first-child{margin:0 0 12px;font-size:15px}
.ai-page .ai-scope-tabs{display:flex;gap:6px;padding:4px;background:var(--surface-muted,#f7f8fa);border:1px solid var(--line);border-radius:9px;margin-bottom:16px;width:fit-content}
.ai-page .ai-scope-tabs button{border:0;background:transparent;min-height:36px;padding:7px 18px;border-radius:6px;font-size:12px;color:var(--muted,#657184)}
.ai-page .ai-scope-tabs button[aria-selected=true]{background:var(--surface,#fff);color:var(--primary,#7162df);box-shadow:0 1px 4px #26354a14;font-weight:600}
.ai-page .agent-row{align-items:flex-start;padding:16px;margin:12px 0 0;border:1px solid var(--line);border-radius:10px;gap:12px}
.ai-page .agent-row>.avatar{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;font-size:12px}
.ai-page .ai-agent-details{flex:1;min-width:0}
.ai-page .ai-agent-heading{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.ai-page .ai-agent-heading strong{font-size:14px;overflow-wrap:anywhere}
.ai-page .ai-state-badge{padding:3px 8px;border-radius:20px;color:#347459;background:#edf6f1;font-size:10px;white-space:nowrap}
.ai-page .ai-state-badge.inactive{color:#657184;background:#edf0f5}
.ai-page .agent-row small{line-height:1.6;overflow-wrap:anywhere}
.ai-page .ai-role-summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ai-page .ai-profile-editor{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.ai-page .ai-profile-editor>summary,.ai-page .ai-owner-editor>summary{font-size:12px;color:var(--primary,#7162df);cursor:pointer;padding:4px 0}
.ai-page .ai-profile-editor form,.ai-page .ai-registration form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.ai-page .ai-registration form{grid-template-columns:minmax(0,1fr)}
.ai-page .ai-profile-editor .field:has(textarea),.ai-page .ai-profile-editor form>button{grid-column:1/-1}
.ai-page .field{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:11px;color:var(--muted,#657184)}
.ai-page .field :is(input,select,textarea){box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--line);border-radius:7px;background:var(--surface,#fff);padding:9px 11px;font:inherit;font-size:12px;color:var(--text,#26354a)}
.ai-page .field textarea{min-height:100px;resize:vertical;line-height:1.6}
.ai-page .ai-form-actions,.ai-page .ai-agent-admin-actions,.ai-page .ai-key-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ai-page .ai-agent-admin-actions{margin-top:12px}
.ai-page button{min-height:38px;padding:8px 14px;border-radius:7px;font-size:12px;line-height:1.4}
.ai-page button:disabled{cursor:not-allowed;opacity:.55}
.ai-page button.danger{background:#c34150;color:#fff;border:1px solid #c34150;font-weight:600}
.ai-page button.ai-danger-outline{background:#fff7f7;color:#b13544;border:1px solid #ebc6cc;font-weight:500}
.ai-page :is(button,input,select,textarea,summary):focus-visible{outline:2px solid var(--primary,#7162df);outline-offset:2px}
.ai-page .ai-warning{color:#a24b31!important;background:#fff8ef;padding:9px 11px;border-radius:7px;line-height:1.7}
.ai-page .ai-deletion-panel{border:1px solid #ebc6cc;background:#fffafb;border-radius:9px;padding:14px;margin-top:14px}
.ai-page .ai-deletion-panel h4{margin:0;font-size:13px;color:#a12f3c}
.ai-page .ai-delete-consent{display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:1.7;margin:14px 0;color:var(--text,#26354a)}
.ai-page .ai-delete-consent input{flex:none;width:16px;height:16px;margin:2px 0}
.ai-page .ai-key-management{margin-top:20px}
.ai-page .key-row{flex-wrap:wrap;align-items:center;padding:15px 0}
.ai-page .key-row>div:first-child{flex:1;min-width:0;overflow-wrap:anywhere}
.ai-page .ai-key-confirm{flex-basis:100%;padding:12px 14px;border:1px solid #ebc6cc;border-radius:8px;background:#fffafb}
.ai-page .ai-key-confirm p{margin:0 0 10px;color:var(--text,#42526e)}
.ai-page .ai-key-confirm button+button{margin-left:8px}
@media(max-width:1000px){.ai-page .ai-agent-workspace{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.ai-page{padding:16px}.ai-page .ai-page-header{flex-direction:column;gap:10px}.ai-page .ai-page-controls{width:100%}.ai-page .ai-page-controls button{width:100%}.ai-page .ai-summary{gap:6px}.ai-page .ai-summary>div{flex-direction:column;align-items:flex-start;gap:4px;padding:12px}.ai-page .ai-summary strong{font-size:20px}.ai-page .ai-summary span{font-size:10px}.ai-page .agent-row{padding:12px;gap:8px}.ai-page .ai-profile-editor form{grid-template-columns:minmax(0,1fr)}.ai-page .ai-box{padding:14px}.ai-page :is(button,select,input:not([type=checkbox])){min-height:44px}.ai-page .ai-scope-tabs button{min-height:44px}.ai-page .ai-owner-editor form{grid-template-columns:minmax(0,1fr)}}

/* 기간 조건은 기존 필터 입력과 같은 간격을 쓰고 좁은 화면에서는 날짜를 줄바꿈한다. */
.schedule-filter-condition{align-items:flex-start;flex-wrap:wrap}
.schedule-filter-values{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px;flex:1;min-width:240px}
.schedule-filter-values label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--muted,#657184);min-width:130px}
.schedule-filter-values input[type=date]{width:100%;box-sizing:border-box}
.schedule-filter-values .schedule-filter-missing{flex-direction:row;align-items:center;min-width:auto;min-height:35px}
.schedule-filter-values input[type=checkbox]{flex:none;min-width:0;width:16px;height:16px;padding:0}
.schedule-filter-values small{flex-basis:100%;font-size:10px;color:var(--muted,#657184)}
@media(max-width:720px){.schedule-filter-values{min-width:0;flex-basis:100%}.schedule-filter-values label{flex:1}.schedule-filter-values .schedule-filter-missing{flex-basis:100%}}

/* 통합 검색은 기존 모달 색상·간격을 공유하고 결과 본문을 텍스트로만 표시한다. */
/* 크기 선택은 표시 영역만 바꾼다. 화면 밖으로 넘지 않게 제한하며 뒤의 업무 조작은 그대로 허용한다. */
.keyword-rag-backdrop{display:none;position:fixed;right:20px;bottom:20px;width:min(640px,calc(100vw - 40px));height:min(780px,calc(100dvh - 40px));z-index:10040;pointer-events:none}
.keyword-rag-backdrop[data-size=small]{width:min(440px,calc(100vw - 40px));height:min(650px,calc(100dvh - 40px))}
.keyword-rag-backdrop[data-size=large]{width:min(900px,calc(100vw - 40px));height:min(860px,calc(100dvh - 40px))}
.keyword-rag-backdrop[data-size=maximum]{width:calc(100vw - 40px);height:calc(100dvh - 40px)}
.keyword-rag-backdrop.open{display:flex}
.keyword-rag-dialog{box-sizing:border-box;display:flex;flex-direction:column;gap:12px;width:100%;height:100%;min-height:0;min-width:0;overflow:hidden;padding:20px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 48px #20283824;pointer-events:auto;color:var(--ink,#202838)}
.keyword-rag-header{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}
.keyword-rag-header h2{font-size:16px;font-weight:600;margin:0;min-width:0}
.keyword-rag-window-actions{display:flex;align-items:center;gap:2px}
.keyword-rag-window-actions button{border:0;background:transparent;color:var(--muted,#657184);padding:8px;font-size:12px;border-radius:8px}
.keyword-rag-window-actions .keyword-rag-icon-button{width:44px;padding:0;font-size:22px;line-height:1}
.keyword-rag-window-actions button:hover{background:var(--surface-muted,#f5f5fa)}
.keyword-rag-size-control{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:none;min-width:0;font-size:12px;color:var(--muted,#657184)}
.keyword-rag-size-control>label{display:flex;align-items:center;gap:10px;min-width:0}
.keyword-rag-size-select{box-sizing:border-box;width:160px;max-width:100%;min-width:0;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface,#fff);font:inherit;color:var(--ink,#202838)}
.keyword-rag-workflow-context{flex:none;min-width:0;margin:0;font-size:12px;color:var(--muted,#657184);overflow-wrap:anywhere}
.keyword-rag-request-actions{display:flex;justify-content:flex-end;gap:8px;flex:none}
.keyword-rag-request-actions button{min-height:44px;border-radius:8px;font-size:12px;padding:8px 14px}
.keyword-rag-dialog :is(button,select,input,textarea,summary):focus-visible{outline:2px solid var(--purple,#7162df);outline-offset:2px}
.keyword-rag-controls{display:flex;gap:8px;align-items:flex-end;flex:none;margin:0}
.keyword-rag-controls label{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0;font-size:12px;color:var(--muted,#657184)}
.keyword-rag-controls select{border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--surface,#fff);font:inherit;color:var(--ink,#202838);width:100%;min-width:0}
.keyword-rag-controls button{font-size:12px;padding:8px 12px;white-space:nowrap}
.keyword-rag-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;flex:none}
.keyword-rag-quick-actions button{font-size:12px;padding:8px;min-width:0;white-space:normal}
.keyword-rag-dialog button,.keyword-rag-dialog select,.keyword-rag-source summary,.keyword-rag-evidence-group>summary,#keywordRagChatButton{min-height:44px}
.keyword-rag-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.keyword-rag-greeting{display:flex;flex:1;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:24px 12px;color:var(--muted,#657184)}
.keyword-rag-greeting-mark{font-size:34px;color:var(--purple,#7162df);line-height:1.2}
.keyword-rag-greeting h3{font-size:18px;line-height:1.5;font-weight:500;margin:14px 0 6px;color:var(--ink,#202838)}
.keyword-rag-greeting p{font-size:12px;margin:0 0 12px}
.keyword-rag-greeting small{font-size:10px;line-height:1.6;max-width:280px}
.keyword-rag-transcript{display:grid;gap:12px;min-width:0}
.keyword-rag-question,.keyword-rag-answer{border:1px solid var(--line);border-radius:12px;padding:12px;min-width:0;overflow-wrap:anywhere}
.keyword-rag-question{background:#f1effc;margin-left:24px}
.keyword-rag-answer{background:var(--surface,#fff);margin-right:8px}
.keyword-rag-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}
/* 읽기 밀도는 챗봇 내부에만 적용한다. 공통 Markdown을 바꿔 업무·댓글·보고의 간격을 줄이지 않는다. */
.keyword-rag-dialog .keyword-rag-text{line-height:1.5;margin:6px 0}
.keyword-rag-dialog .keyword-rag-text :where(p,ul,ol,blockquote,pre){margin:4px 0}
.keyword-rag-dialog .keyword-rag-text li{margin:2px 0}
.keyword-rag-dialog .keyword-rag-text :where(h1,h2,h3,h4,h5,h6){margin:8px 0 4px;line-height:1.35}
.keyword-rag-text.pms-markdown-content{white-space:normal}
.keyword-rag-answer small,.keyword-rag-source small{display:block;font-size:11px;color:var(--muted,#657184);overflow-wrap:anywhere}
.keyword-rag-source-heading{font-size:12px;margin:18px 0 0;font-weight:600}
.keyword-rag-evidence-group{border-top:1px solid var(--line);margin-top:10px}
.keyword-rag-evidence-group>.keyword-rag-source-heading{display:list-item;box-sizing:border-box;margin:0;padding:10px 0;cursor:pointer;line-height:1.4;color:var(--purple,#7162df)}
.keyword-rag-evidence-group>summary:focus-visible{outline:2px solid var(--purple,#7162df);outline-offset:2px;border-radius:4px}
.keyword-rag-evidence-group>.keyword-rag-source{margin-top:6px;padding-top:4px}
.keyword-rag-source{border-top:1px solid var(--line);margin-top:12px;padding-top:8px}
.keyword-rag-source summary{display:list-item;cursor:pointer;padding:10px 0;font-size:12px;color:var(--purple,#7162df)}
.keyword-rag-source button{margin-top:8px}
.keyword-rag-summary-coverage{border:1px solid var(--line);border-radius:8px;padding:10px;margin:10px 0;background:var(--surface-muted,#f8f8fb);font-size:11px;line-height:1.7;overflow-wrap:anywhere}
.keyword-rag-summary-coverage p{margin:4px 0}
.keyword-rag-summary-status{font-size:10px;color:var(--muted,#657184)}
.keyword-rag-summary-group{border-top:1px solid var(--line);padding-top:8px;margin-top:10px;font-size:11px;overflow-wrap:anywhere}
.keyword-rag-summary-group p{margin:0 0 4px}
.keyword-rag-notice{font-size:11px;line-height:1.6;margin:0;max-height:76px;overflow:auto;flex:none;overflow-wrap:anywhere}
.keyword-rag-form{display:grid;gap:4px;padding:10px;border:1px solid var(--line);border-radius:22px;background:var(--surface-muted,#f8f8fb);flex:none;margin:0}
.keyword-rag-form:focus-within{border-color:var(--purple,#7162df);box-shadow:0 0 0 2px #7162df18}
.keyword-rag-form>label{display:block;min-width:0}
.keyword-rag-form textarea{display:block;width:100%;min-width:0;min-height:44px;max-height:132px;border:0;border-radius:12px;padding:4px 6px;resize:none;background:transparent;font:inherit;font-size:12px;line-height:1.6;color:var(--ink,#202838);outline:none}
.keyword-rag-actions{display:flex;gap:6px;justify-content:flex-end}
.keyword-rag-actions button{border-radius:18px;font-size:11px;padding:8px 14px}
.keyword-rag-window-note{font-size:10px;line-height:1.5;color:var(--muted,#657184);margin:0;text-align:center;flex:none}
.keyword-rag-keyboard-hint{font-size:10px;line-height:1.4;color:var(--muted,#657184);margin:0;text-align:right;flex:none}
.keyword-rag-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.keyword-rag-dialog [hidden]{display:none!important}
body.keyword-rag-window-active{margin:0;overflow:hidden}
body.keyword-rag-window-active>.app{display:none!important}
.keyword-rag-backdrop.keyword-rag-standalone{inset:0;width:100%;height:100dvh}
.keyword-rag-standalone .keyword-rag-dialog{border:0;border-radius:0;box-shadow:none;padding:20px;gap:14px}
.keyword-rag-standalone .keyword-rag-header,.keyword-rag-standalone .keyword-rag-controls,.keyword-rag-standalone .keyword-rag-body,.keyword-rag-standalone .keyword-rag-notice,.keyword-rag-standalone .keyword-rag-form{width:min(860px,100%);margin-inline:auto}
.keyword-rag-standalone .keyword-rag-quick-actions{width:min(860px,100%);margin-inline:auto}
@media(max-width:720px){.keyword-rag-dialog{padding:12px;gap:8px}.keyword-rag-backdrop,.keyword-rag-backdrop[data-size]{right:12px;bottom:12px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.keyword-rag-header h2{font-size:15px}.keyword-rag-question{margin-left:12px}.keyword-rag-answer{margin-right:0}.keyword-rag-standalone .keyword-rag-dialog{padding:12px}.keyword-rag-backdrop.keyword-rag-standalone{inset:0;width:100%;height:100dvh;max-height:none}.top-actions>#keywordRagChatButton{flex:1;white-space:nowrap}}
@media(max-height:540px){.keyword-rag-dialog{overflow:auto;overscroll-behavior:contain}.keyword-rag-body{flex:0 0 auto;max-height:240px;min-height:100px}.keyword-rag-greeting{padding:12px}.keyword-rag-greeting small{display:none}.keyword-rag-chooser-mode .keyword-rag-dialog{overflow:hidden}.keyword-rag-chooser-mode .keyword-rag-body{flex:1;max-height:none;min-height:0}}
.unified-search-backdrop{z-index:10050}.unified-search-dialog{width:min(850px,94vw);max-height:88vh;overflow:auto;padding:24px}.unified-search-form{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0;align-items:center}.unified-search-form input{flex:1;min-width:0}.unified-search-form input,.unified-search-form select{border:1px solid var(--line);border-radius:6px;padding:10px;background:var(--surface,#fff);font:inherit}.unified-search-project{display:flex;align-items:center;gap:12px;flex-basis:100%;font-size:12px;color:var(--muted,#657184)}.unified-search-project[hidden]{display:none}.unified-search-project select{flex:1;min-width:0}.unified-search-form input,.unified-search-form select,.unified-search-dialog button{min-height:44px}.unified-search-results{display:grid;gap:12px;margin:14px 0}.unified-search-item{border:1px solid var(--line);border-radius:8px;padding:14px}.unified-search-item small{display:block;font-size:11px;color:var(--muted,#657184)}.unified-search-item button{display:block;text-align:left;margin:8px 0;font-weight:600}.unified-search-item p{font-size:12px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.unified-search-dialog .modal-header{position:sticky;top:-24px;background:var(--surface,#fff);padding:8px 0;z-index:1}@media(max-width:600px){.unified-search-form input{flex-basis:100%}.unified-search-form>select{flex:1;min-width:0}.unified-search-project{align-items:stretch;flex-direction:column;gap:4px}.unified-search-dialog{padding:16px}.unified-search-dialog .modal-header{top:-16px}}
/* AI 설정이 표시된 동안 공통 업무 보드 조작만 숨긴다. 필터 값과 DOM은 유지하며
 * 메뉴를 떠나 해당 설정 패널이 제거되면 원래 업무 화면의 표시 규칙이 다시 적용된다. */
body:has(#view > .ai-page) :is(.toolbar,.filter-panel,.project-banner,.board-note,.compact-dashboard){display:none!important}

/* MCP 키별 승인 선택은 저장 권한 자체와 구분한다. 고정 승인 안내와 선택 항목을 같은 폼 안에 둔다. */
.mcp-approval-policy { margin:16px 0; padding:16px; border:1px solid var(--line,#dfe3ee); border-radius:12px; min-width:0; }
.mcp-approval-policy legend { padding:0 6px; font-weight:700; }
.mcp-approval-fixed { display:flex; flex-wrap:wrap; gap:8px 16px; margin:10px 0; padding:10px 12px; background:var(--surface-soft,#f5f6fb); border-radius:8px; }
.mcp-approval-fixed span { color:var(--muted,#7c87a0); }
.mcp-approval-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 16px; }
.mcp-approval-options label { display:flex; align-items:center; gap:8px; min-height:36px; cursor:pointer; }
.mcp-approval-options input[type=checkbox] { width:18px; height:18px; margin:0; flex:0 0 auto; }
@media(max-width:720px) { .mcp-approval-options { grid-template-columns:1fr; } .mcp-approval-options label { min-height:44px; } }

/* MCP 복사 동작은 연결/키 발급과 구분한다. 긴 도구명은 줄바꿈하고 작은 화면도44px 조작을 유지한다. */
.ai-page .mcp-guide-copy-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.ai-page .mcp-guide-copy-actions button{min-height:44px;white-space:normal;text-align:left}
.ai-page .mcp-connection-guide,.ai-page .mcp-full-guide{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;min-width:0;line-height:1.5}
