/* AI 규칙 검토 화면(노무사·감독관 검토 워크스테이션) */
body.labeling-mode #sidebar, body.labeling-mode #composer-wrap, body.labeling-mode #chat,
body.labeling-mode #workbench, body.labeling-mode #newlaw, body.labeling-mode #admin,
body.labeling-mode #axioms{display:none}
body.labeling-mode #labeling{display:block}
#labeling{display:none; overflow-y:auto; padding:18px 22px}
/* 제목 1.25em·부제 .88em 은 공용 ux.css 규칙 — 아래 여백만 이 화면에서 준다 */
#labeling > .adm-h{margin-bottom:12px}

/* 출처별 대기열 그룹 — 지식(초록) vs 상담(보라, 검토 필수).
   다크 테마에서도 대비가 남도록 토큰(ux.css --src-k/--src-q)을 쓴다 */
.axc-group{border:1px solid var(--line); border-radius:10px; padding:8px 12px;
  margin:8px 0; background:var(--bg-card)}
.axc-group.knowledge{border-left:3px solid var(--src-k)}
.axc-group.nl2sql{border-left:3px solid var(--src-q)}
.axc-group-h{display:flex; gap:8px; align-items:center; flex-wrap:wrap;
  font-size:1.02em; margin-bottom:4px}
.axc-group-h > span:not(.axc-chip){color:var(--tx-faint); font-size:.9em; font-weight:400}

/* 출처 배지도 같은 토큰으로 — base.css 의 고정색(#2e7d32/#6a4fb3)을 이 화면에서 덮는다 */
#labeling .axc-src.k{color:var(--src-k); border-color:var(--src-k)}
#labeling .axc-src.q{color:var(--src-q); border-color:var(--src-q)}

.axc-support{font-size:.92em; color:var(--tx-faint); border:1px solid var(--line);
  border-radius:6px; padding:1px 6px; flex:none; cursor:help}

.axc-ev{flex-basis:100%; font-size:.92em; color:var(--tx-dim); margin-top:2px}
.axc-ev summary{cursor:pointer; color:var(--tx-faint); font-size:.92em}
.axc-ev > div{margin:3px 0}

.axc-sql{background:var(--bg-chip); border:1px solid var(--line); border-radius:8px;
  padding:7px 9px; font-size:.92em; white-space:pre-wrap; word-break:break-all; margin:3px 0}

.axc-edit{flex-basis:100%; border-top:1px dashed var(--line); padding-top:6px; margin-top:4px}

/* 후보 카드 v2 — 규칙 문장이 주인공, 근거는 펼침 패널로 (라벨링 UX 개선) */
#labeling{padding-left:max(22px, calc((100% - 1500px)/2));
  padding-right:max(22px, calc((100% - 1500px)/2))}

/* 두 대기열(지식/상담)을 좌우 2열로 — 세로 스크롤 절감. 좁은 화면은 1열 폴백 */
.axc-cols{display:grid; grid-template-columns:1fr 1fr; gap:10px; align-items:start}
@media (max-width:1100px){.axc-cols{grid-template-columns:1fr}}

/* 사용 순서 안내 — 접어 두고 필요할 때만 편다(할 일이 먼저 보이게) */
#lab-guide{margin-bottom:10px}
#lab-guide > summary{cursor:pointer; font-weight:600; color:var(--tx)}
#lab-guide .lab-guide-body{margin-top:8px}
#lab-guide .lab-guide-body p{margin:6px 0}

/* 동의 대기(검토중) 규칙 패널 — 요약(건수)은 접어도 보인다 */
.vote-panel{border:1px solid var(--line); border-left:3px solid var(--amber); border-radius:10px;
  background:var(--bg-card); padding:10px 12px; margin:10px 0}
.vote-panel > summary.lab-vote-h{cursor:pointer; font-size:1.08em; font-weight:700; color:var(--tx)}
.lab-vote-note{margin:6px 0 4px}
#lab-votes{max-height:260px; overflow-y:auto}
.lab-rule-sent{font-size:1.02em}

/* 승인 동결 배너 — 고정 크림색(#FFF4E5)은 다크에서 흰 글씨가 됐다 */
.lab-freeze{background:var(--amber-bg); border-left:3px solid var(--amber); color:var(--tx);
  border-radius:8px; padding:8px 11px; margin:6px 0; line-height:1.6}
.lab-freeze details{margin-top:4px}
.lab-freeze summary{cursor:pointer; color:var(--tx-dim); font-size:.92em}
.lab-freeze details > div{margin-top:4px; color:var(--tx-dim); font-size:.92em}

/* 유형 범례(=필터) — 평소엔 접어 둔다 */
.lab-legend{margin:6px 0}
.lab-legend > summary{cursor:pointer; color:var(--tx-dim); font-size:.92em}
.lab-legend > .axc-bar{margin-top:5px}

/* 기술 정보(조회 조건 SQL 등)는 접어서 아래로 */
.lab-tech{margin:6px 0}
.lab-tech > summary{cursor:pointer; color:var(--tx-faint); font-size:.92em}

.lab-dim{color:var(--tx-faint); font-size:.92em}
.lab-conflict{color:var(--red); border-color:var(--red)}
.ax-review-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.ax-rule-review,.ax-evidence-panel,.ax-revision-note{flex-basis:100%;min-width:0;margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg-soft)}
.ax-rule-review[hidden],.ax-evidence-panel[hidden]{display:none}
.ax-rule-review form{display:grid;gap:10px}
.ax-revision-note>div,.ax-source-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75;margin-top:6px}
.ax-source-card{min-width:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg-card);margin-top:10px}
.ax-source-card h4{margin-bottom:6px}
.ax-source-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--tx-dim);margin-bottom:6px}
.ax-baseline-conflict{border-left:3px solid var(--amber)}
.ax-evidence-panel .state{padding:12px}
.ax-review-actions button{min-height:38px}
.ax-revision-note small{color:var(--tx-dim)}

/* Related questions stay compact; full conversations are read in a separate dialog. */
.ax-chat-sources{margin-top:20px;min-width:0;border-top:1px solid var(--line);padding-top:14px}
.ax-chat-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ax-chat-list-heading h5{font-size:1em;margin:0}
.ax-chat-list-heading h5 span{color:var(--accent);margin-left:6px}
.ax-chat-sources>p{margin:8px 0 12px}
.ax-chat-row{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:8px;background:var(--bg-card);min-width:0}
.ax-chat-row-content{flex:1;min-width:0}
.ax-chat-row-meta{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--tx-dim);font-size:.92em}
.ax-chat-preview{margin:5px 0 0;line-height:1.6;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ax-chat-row>button{flex-shrink:0;min-height:38px}
.ax-chat-pagination{display:flex;justify-content:center;align-items:center;gap:5px;flex-wrap:wrap;margin-top:14px}
.ax-chat-pagination button{min-width:34px;min-height:38px}
.ax-chat-pagination [aria-current=page]{opacity:1;background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}
.ax-chat-sources[aria-busy=true] .ax-chat-row{opacity:.6}
.ax-chat-sources [data-chat-page-message]:empty{display:none}
.ax-chat-sources [data-chat-page-message]{margin-top:10px}
#axiom-chat-dialog{box-sizing:border-box;width:min(1080px,calc(100vw - 40px));max-width:calc(100vw - 40px);height:min(88dvh,920px);max-height:88dvh;padding:0;margin:auto;border:1px solid var(--line);border-radius:16px;background:var(--bg-card);color:var(--tx);box-shadow:0 24px 80px #0004;font-family:inherit;font-size:var(--font-size-base);overflow:hidden}
#axiom-chat-dialog[open]{display:flex;flex-direction:column}
#axiom-chat-dialog::backdrop{background:#14203388}
.ax-chat-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--line);flex-shrink:0}
.ax-chat-dialog-header>div{min-width:0}
.ax-chat-dialog-header h2{font-size:1.2em;line-height:1.4;margin:0}
.ax-chat-dialog-header p{margin:6px 0 0;overflow-wrap:anywhere}
.ax-chat-dialog-header>button{flex-shrink:0;min-height:38px}
.ax-chat-dialog-body{flex:1;min-height:0;padding:20px 22px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.ax-chat-dialog-body:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.ax-chat-message{min-width:0;border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:16px}
.ax-chat-message.question{background:var(--accent-soft);border-color:var(--accent-soft)}
.ax-chat-message h3{font-size:1em;margin:0 0 10px;color:var(--tx)}
.ax-chat-message .ax-source-text{margin:0;line-height:1.8}
.ax-chat-dialog-footer{border-top:1px solid var(--line);padding:14px 22px;flex-shrink:0;text-align:center}
.ax-chat-turn-pagination{display:flex;justify-content:center;align-items:center;gap:16px}
.ax-chat-turn-pagination button{min-height:40px}
.ax-chat-empty{padding:24px 0;text-align:center}
@media(max-width:600px){
  .ax-chat-row{align-items:flex-start;flex-direction:column;gap:8px}
  .ax-chat-row>button{align-self:flex-end}
  #axiom-chat-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);border-radius:12px}
  .ax-chat-dialog-header,.ax-chat-dialog-body,.ax-chat-dialog-footer{padding:14px}
  .ax-chat-message{padding:12px}
  .ax-chat-turn-pagination{gap:10px}
}

.axc-chip.big{font-weight:700; color:var(--tx)}
.axc-chip.big b{font-size:1.2em}

.axc-card{border:1px solid var(--line); border-radius:10px; background:var(--bg-card);
  padding:10px 12px; margin:8px 0}
.axc-card.done{opacity:.72}
/* 판정 전송 중 — 같은 카드를 두 번 누르지 못하게 */
.axc-card.busy{opacity:.6; pointer-events:none}
.axc-top{display:flex; gap:6px; align-items:center; flex-wrap:wrap}
.axc-id{margin-left:auto; font-size:.92em; color:var(--tx-faint);
  font-family:ui-monospace,Consolas,monospace}
.axc-main{font-size:1.08em; font-weight:600; line-height:1.5; margin:6px 0 2px;
  letter-spacing:-.01em}
.axc-term{color:var(--tx); font-weight:700}
.axc-sub{font-size:.92em; color:var(--tx-dim); display:-webkit-box; -webkit-line-clamp:2;
  -webkit-box-orient:vertical; overflow:hidden}
.axc-foot{display:flex; gap:5px; align-items:center; flex-wrap:wrap; margin-top:8px}

/* 카드 안 오류·잠금 안내는 좁게 — 공용 .state 의 큰 여백을 줄인다 */
.axc-msg{margin-top:8px}
#labeling .axc-card .state, #labeling .vote-panel .state.lock{padding:10px 12px; text-align:left;
  flex-direction:row; align-items:center; gap:8px; flex-wrap:wrap}
#labeling .axc-card .state .st-ic, #labeling .vote-panel .state.lock .st-ic{font-size:18px}
#labeling .axc-card .state .st-tx{text-align:left; max-width:none; flex:1 1 220px}

.pat-badge{font-size:.92em; font-weight:600; padding:2px 9px; border-radius:6px; flex:none;
  cursor:help; color:var(--tx-dim); background:var(--bg-chip); border:1px solid var(--line)}
.pat-filter{cursor:pointer}
.pat-filter:hover{border-color:var(--accent); color:var(--tx)}
.pat-filter.on{border-color:var(--accent); color:var(--accent); background:var(--accent-soft); font-weight:700}

.axc-stat{display:flex; gap:6px; align-items:center; margin:6px 0 4px}

/* 재조회 중(검색·페이지 이동) — 목록을 지우지 않고 흐리게만 */
#ax-cand-box.axc-busy{opacity:.55; pointer-events:none; transition:opacity .12s}

.axc-evp{border-top:1px dashed var(--line); margin-top:8px; padding-top:8px; font-size:.96em}
.evp-h,.evp-sql-h{font-size:.92em; color:var(--tx-faint); margin:0 0 5px}
.kn-chips{display:flex; gap:5px; flex-wrap:wrap; max-height:56px; overflow-y:auto; padding:2px 0}
.kn-chip{font-size:.92em; padding:2px 9px; border-radius:999px; border:1px solid var(--line);
  background:var(--bg-chip); color:var(--tx-dim); cursor:pointer;
  font-family:ui-monospace,Consolas,monospace}
.kn-chip:hover{border-color:var(--accent); color:var(--tx)}
.kn-chip.on{border-color:var(--accent); color:var(--accent); background:var(--accent-soft);
  font-weight:600}
.kn-excerpt{margin-top:6px; border:1px solid var(--line); border-left:3px solid var(--accent);
  border-radius:8px; background:var(--bg-chip); padding:8px 10px}
.ke-meta{font-size:.92em; color:var(--tx-faint); margin-bottom:3px}
.ke-text{font-size:var(--font-size-base); line-height:1.65; white-space:pre-wrap; word-break:break-word;
  display:-webkit-box; -webkit-line-clamp:8; -webkit-box-orient:vertical; overflow:hidden}
.ke-text.full{display:block; -webkit-line-clamp:unset}
.qa-block{border:1px solid var(--line); border-radius:8px; background:var(--bg-chip);
  padding:8px 10px; margin-bottom:6px}
.qa-meta{font-size:.92em; color:var(--tx-faint); margin-bottom:3px}
.qa-text{font-size:var(--font-size-base); line-height:1.6; white-space:pre-wrap}
.evp-rows{font-size:.92em; color:var(--tx-dim); margin:4px 0}
.evp-rat{font-size:.92em; color:var(--tx-faint); margin-top:6px}

/* 입력 라벨 — 플레이스홀더만 있던 칸에 보이는 이름을 붙인다 */
.lab-fld{display:inline-flex; flex-direction:column; gap:2px}
.lab-lb{display:block; font-size:.88em; color:var(--tx-dim); font-weight:600}
.lab-sel{font-size:var(--font-size-base); padding:4px 7px; border-radius:8px;
  border:1px solid var(--line); background:var(--bg-card); color:var(--tx)}
.lab-newacct{display:flex; gap:8px; flex-wrap:wrap; align-items:flex-end; margin-top:8px;
  border-top:1px dashed var(--line); padding-top:8px}

/* 반려·보류 사유 — 카드 안에서 받는다(네이티브 prompt 가 후보·근거를 가렸다) */
.lab-judge{display:flex; flex-direction:column; gap:5px}
.lab-reason{width:100%; box-sizing:border-box; padding:6px 9px; border:1px solid var(--line);
  border-radius:8px; background:var(--bg-input); color:var(--tx);
  font-family:inherit; font-size:var(--font-size-base); line-height:1.5; resize:vertical}

/* 수정 승인 폼 — Enter 로도 제출되도록 <form> 으로 감쌌다 */
.lab-edit-h{font-size:.92em; color:var(--tx-dim); margin-bottom:5px}
.lab-edit-row{display:flex; gap:8px; flex-wrap:wrap; align-items:flex-end}

/* 노무사 검수: 공리 문장과 짧은 원문을 함께 읽고 직접 근거를 선택한다. */
.ax-knowledge-picker{min-width:0;font-size:13pt;line-height:1.7}
.ax-knowledge-fields{border:0;padding:0;margin:0;min-width:0}
.ax-knowledge-fields>legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.ax-knowledge-picker h5{font-size:1.1em;margin:0 0 12px}
.ax-knowledge-picker p{margin:8px 0 14px}
.ax-knowledge-statement{padding:16px 18px;border-left:4px solid var(--accent);border-radius:8px;background:var(--accent-soft);margin-bottom:14px;overflow-wrap:anywhere}
.ax-knowledge-statement p{font-weight:650;margin:8px 0 0}
.ax-knowledge-search{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin:16px 0;min-width:0}
.ax-knowledge-search>label{display:grid;gap:6px;flex:1 1 250px;min-width:0;font-weight:600}
.ax-knowledge-search input{min-width:0;width:100%;min-height:52px;padding:10px 14px;border:1px solid var(--control-border);border-radius:9px;background:var(--bg-input);color:var(--tx);font:inherit;box-sizing:border-box}
.ax-knowledge-count b{color:var(--accent)}
.ax-knowledge-choices{display:grid;gap:12px;min-width:0}
.ax-knowledge-choice{display:block;padding:16px 18px;border:1px solid var(--control-border);border-radius:10px;background:var(--bg-card);cursor:pointer;min-width:0;overflow-wrap:anywhere}
.ax-knowledge-choice.selected{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.ax-knowledge-choice-heading{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.ax-knowledge-choice-heading>strong{flex:1;min-width:0}
.ax-knowledge-choice-heading>span{color:var(--accent);font-size:.95em}
.ax-knowledge-picker input[type=checkbox]{width:22px;height:22px;min-height:22px;flex:none;accent-color:var(--accent);margin:0;cursor:pointer}
.ax-knowledge-text{display:block;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85;margin-top:10px}
.ax-knowledge-choice .ax-source-meta{display:block;margin:8px 0 0}
.ax-knowledge-picker .ax-mini{min-height:52px;padding:10px 16px;justify-content:center;font-size:13pt}
.ax-knowledge-pages{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:16px 0}
.ax-knowledge-submit{padding:18px;border:1px solid var(--line-strong);background:var(--bg-soft);border-radius:10px;margin-top:18px}
.ax-knowledge-confirm{display:flex;align-items:center;gap:12px;font-weight:650;cursor:pointer;min-height:48px}
.ax-knowledge-submit>p{color:var(--tx-dim)}
.ax-knowledge-submit [data-knowledge-message]{color:var(--accent);margin-bottom:0}
.ax-knowledge-submit [data-knowledge-message]:empty{display:none}
.ax-knowledge-picker :focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.ax-knowledge-actions{align-items:flex-start;gap:10px}
.ax-other-actions{margin-left:auto;min-width:0}
.ax-other-actions>summary{box-sizing:border-box;display:flex;align-items:center;justify-content:center;min-height:52px;padding:10px 16px;border:1px solid var(--control-border);border-radius:9px;color:var(--tx-dim);background:var(--bg-card);font-size:13pt;cursor:pointer;list-style:none}
.ax-other-actions>summary::after{content:' ▾';margin-left:8px}
.ax-other-actions[open]>summary::after{content:' ▴'}
.ax-other-actions>div{display:flex;flex-wrap:wrap;gap:8px;padding-top:8px}
.ax-other-actions>summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:600px){.ax-knowledge-choice,.ax-knowledge-submit{padding:12px}.ax-knowledge-choice-heading>span{margin-left:34px}.ax-knowledge-picker .ax-mini{padding:10px}.ax-knowledge-confirm{align-items:flex-start}.ax-knowledge-pages{gap:4px}.ax-knowledge-pages .ax-mini{min-height:48px;padding:8px}}
