/* 신규 법령 영향예측 뷰 */
#newlaw{flex:1; display:none; min-height:0}
body.newlaw-mode #sidebar{display:none}
body.newlaw-mode #composer-wrap{display:none}
body.newlaw-mode #chat{display:none}
body.newlaw-mode #newlaw{display:grid; grid-template-columns:440px 1fr}

.nl-col{border-right:1px solid var(--line); display:flex; flex-direction:column; min-height:0}
.nl-col:last-child{border-right:none}

/* 정보 위계: 화면 제목 > 섹션 제목 > 본문. 기본 13pt 는 유지하고 상대 배율만 쓴다. */
#newlaw .wb-head{font-size:1.12em}
.nl-samples{display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-top:6px}
.nl-rev{display:block; margin-top:5px; font-size:.88em; font-weight:400; color:var(--tx-faint)}

.nl-form{padding:14px; display:flex; flex-direction:column; gap:10px; overflow-y:auto}
.nl-label{font-size:.92em; font-weight:600; color:var(--tx-dim); margin-bottom:-5px}
.lb-sub{font-weight:400; color:var(--tx-faint)}
#nl-title{margin:0}
#nl-text{flex:1; min-height:280px; border:1px solid var(--line); border-radius:10px;
  background:var(--bg-input); color:var(--tx); font-size:var(--font-size-base); padding:10px; resize:vertical;
  font-family:inherit; box-sizing:border-box; line-height:1.6}
/* 분석 중에는 주 버튼이 눌리지 않는다는 것이 보여야 한다(연타 방지) */
#nl-analyze:disabled{opacity:.45; cursor:default}
.nl-note{font-size:var(--font-size-base); color:var(--tx-dim); line-height:1.6; background:var(--amber-bg);
  border:1px solid var(--amber); border-radius:8px; padding:8px 10px}
.nl-note details{margin-top:5px}
.nl-note summary{cursor:pointer; color:var(--tx-dim)}
.nl-alt{display:flex; flex-direction:column; gap:6px; align-items:flex-start;
  border-top:1px dashed var(--line); padding-top:11px}
#nl-result{padding:14px; overflow-y:auto}
.nl-est{font-size:var(--font-size-base); color:var(--tx-dim); line-height:1.6; background:var(--bg-chip);
  border-radius:8px; padding:9px 11px; margin-bottom:12px}
.nl-est > summary{cursor:pointer; color:var(--tx); font-weight:600}
.nl-est > div{margin-top:6px}
.nl-sec{font-size:1.08em; font-weight:700; margin:18px 0 8px; display:flex; gap:8px; align-items:center}
.nl-sec .n{font-weight:500; font-size:var(--font-size-base); color:var(--tx-dim)}
.nl-det-note{font-size:var(--font-size-base); color:var(--tx-dim); line-height:1.55; margin:0 0 8px}
.nl-det-block{border:1px solid var(--accent); border-radius:12px; padding:10px 12px; margin-bottom:12px;
  background:var(--accent-soft)}
.nl-det-head{display:flex; align-items:center; gap:8px; font-size:var(--font-size-base); font-weight:700;
  margin-bottom:8px; flex-wrap:wrap}
.nl-det-head .pills{display:flex; gap:4px}

.nl-conf{border:1px solid var(--amber); border-left-width:3px; border-radius:10px;
  padding:9px 12px; margin-bottom:7px; background:var(--bg-card)}
.cf-head{display:flex; gap:8px; align-items:center; margin-bottom:4px; flex-wrap:wrap}
.cf-kind{font-size:var(--font-size-base); font-weight:700; padding:1px 8px; border-radius:999px; flex:none}
.cf-topic{font-size:var(--font-size-base); font-weight:600}
.cf-val{margin-left:auto; font-size:var(--font-size-base); font-weight:700; color:var(--red)}
.cf-why{font-size:var(--font-size-base); color:var(--tx-dim); margin-bottom:6px}
.cf-rows{display:flex; flex-direction:column; gap:3px; margin-bottom:5px}
.cf-side{font-size:var(--font-size-base); color:var(--tx-dim); line-height:1.5}
.cf-tag{font-weight:700; font-size:var(--font-size-base); margin-right:4px}
.cf-kn{font-size:var(--font-size-base); color:var(--tx-faint); border-top:1px dashed var(--line); padding-top:5px}
.cf-fb{display:flex; align-items:center; gap:6px; margin-top:6px; flex-wrap:wrap}
.cf-fb-q{font-size:var(--font-size-base); color:var(--tx-faint)}
.cf-fb-btn{font-size:var(--font-size-base); padding:2px 9px; border-radius:999px; border:1px solid var(--line);
  background:var(--bg-card); color:var(--tx-dim)}
.cf-fb-btn:hover:not(:disabled){border-color:var(--accent); color:var(--tx)}
.cf-fb-btn:disabled{opacity:.45}
.cf-fb-done{font-size:var(--font-size-base)}

/* 충돌 카드 AI 검증 배지 */
.cf-verify{display:inline-block; margin-left:8px; font-size:var(--font-size-base); padding:1px 8px;
  border-radius:999px; border:1px solid var(--line); color:var(--tx-faint)}
.cf-verify.ok{color:var(--accent); border-color:var(--accent)}


/* 신규법 분석 실시간 로딩 패널 */
.nlp{border:1px solid var(--line); border-radius:12px; background:var(--bg-card);
  padding:14px 16px; margin:6px}
.nlp-head{display:flex; align-items:center; gap:10px; font-size:var(--font-size-base); margin-bottom:10px}
.nlp-el{margin-left:auto; font-size:var(--font-size-base); color:var(--tx-dim)}
.nlp-spin{width:16px; height:16px; border-radius:50%; flex:none;
  border:2.5px solid var(--line); border-top-color:var(--accent);
  animation:nlp-rot .8s linear infinite}
@keyframes nlp-rot{to{transform:rotate(360deg)}}
.nlp-steps{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px}
.nlp-steps li{display:flex; align-items:baseline; gap:8px; font-size:var(--font-size-base);
  padding:6px 10px; border-radius:8px}
.nlp-steps li.run{background:var(--bg-chip); font-weight:600}
.nlp-steps li.done{color:var(--tx-dim)}
.nlp-ico{flex:none}
.nlp-detail{color:var(--accent); font-weight:400; font-size:var(--font-size-base)}
.nlp-dur{margin-left:auto; font-size:var(--font-size-base); color:var(--tx-faint)}
.nlp-hint{margin-top:10px; font-size:var(--font-size-base); color:var(--tx-faint)}


.nl-mods{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:6px}
.nl-mod{font-size:var(--font-size-base); padding:3px 10px; border-radius:999px; border:1px solid var(--line);
  background:var(--bg-card); color:var(--tx-dim)}
.nl-fchip{cursor:pointer; user-select:none}
.nl-fchip:hover{border-color:var(--accent); color:var(--tx)}
.nl-fchip.on{background:var(--bg-chip); font-weight:600; color:var(--tx)}
.nl-fchip:focus-visible, .nl-pg:focus-visible{outline:2px solid var(--accent); outline-offset:2px}
.nl-pager{display:flex; align-items:center; gap:10px; justify-content:center;
  margin-top:8px; flex-wrap:wrap}
.nl-pg{font-size:var(--font-size-base); padding:3px 11px; border-radius:8px; border:1px solid var(--line);
  background:var(--bg-card); color:var(--tx-dim); cursor:pointer}
.nl-pg:hover:not(:disabled){border-color:var(--accent); color:var(--tx)}
.nl-pg:disabled{opacity:.4; cursor:default}
.nl-pg-info{font-size:var(--font-size-base); color:var(--tx-faint)}
.nl-mod b{color:var(--tx)}

.nl-topic{display:flex; align-items:center; gap:8px; margin-bottom:5px; font-size:var(--font-size-base)}
.nl-topic .tname{flex:none; width:120px; font-weight:600; overflow:hidden; text-overflow:ellipsis;
  white-space:nowrap}
.nl-bar{flex:1; height:8px; border-radius:999px; background:var(--bg-chip); overflow:hidden}
.nl-bar > i{display:block; height:100%; background:var(--accent); border-radius:999px}
.nl-topic .tcnt{flex:none; font-size:var(--font-size-base); color:var(--tx-faint)}
.nl-card{border:1px solid var(--line); border-radius:10px; background:var(--bg-card);
  padding:9px 12px; margin-bottom:6px}
.nl-card .nc-head{display:flex; gap:8px; align-items:center; font-size:var(--font-size-base); margin-bottom:4px}
.nl-card .nc-topic{font-weight:600}
.nl-card .nc-rel{margin-left:auto; flex:none; font-size:var(--font-size-base); color:var(--accent);
  border:1px solid var(--accent); border-radius:6px; padding:1px 7px}
.nl-card .nc-text{font-size:var(--font-size-base); color:var(--tx-dim); line-height:1.55}
.nl-card .nc-terms{margin-top:5px; display:flex; gap:4px; flex-wrap:wrap}
.nl-term{font-size:var(--font-size-base); color:var(--accent); background:var(--accent-soft); border-radius:5px;
  padding:1px 6px}
