/* 공용 진행 표시 — AI 노만석 '원문 대조' 표시와 같은 디자인 */
.nl-ld { padding: 10px 12px; background: var(--canvas, #f6f5f1); color: var(--ink-3, #666); font-size: 13px; }
.nl-ld-h { display: flex; align-items: center; gap: 8px; }
.nl-ld-t { font-weight: 600; color: var(--ink-2, #333); flex: 1; min-width: 0; animation: nlFade .4s ease; }
.nl-ld-sec { font-variant-numeric: tabular-nums; color: var(--ink-3, #777); font-size: 12px; white-space: nowrap; }
.nl-ld-spin { width: 14px; height: 14px; border: 2px solid rgba(164,38,44,.2); border-top-color: var(--seal, #a4262c); border-radius: 50% !important; animation: nlSpin .8s linear infinite; flex: none; }
.nl-ld-sub { margin: 6px 0 0; font-size: 12px; color: var(--ink-3, #777); }
.nl-ld-bar { position: relative; height: 4px; margin: 8px 0 6px; background: rgba(0,0,0,.07); overflow: hidden; }
.nl-ld-bar i { position: absolute; inset: 0 auto 0 0; width: 0; background: var(--seal, #a4262c); transition: width .3s linear; }
.nl-ld-bar::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent); transform: translateX(-100%); animation: nlShim 1.4s infinite; }
.nl-ld-steps { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 3px; font-size: 12px; }
.nl-ld-steps li { position: relative; padding-left: 18px; color: var(--ink-4, #aaa); transition: color .3s; }
.nl-ld-steps li::before { content: ''; position: absolute; left: 3px; top: 5px; width: 7px; height: 7px; border-radius: 50% !important; background: rgba(0,0,0,.15); }
.nl-ld-steps li.on { color: var(--ink-2, #333); font-weight: 600; }
.nl-ld-steps li.on::before { background: var(--seal, #a4262c); animation: nlPulse 1s infinite; }
.nl-ld-steps li.ok { color: var(--ink-3, #777); }
.nl-ld-steps li.ok::before { content: '✓'; background: none; color: #2e7d32; font-size: 11px; font-weight: 700; left: 2px; top: -1px; width: auto; height: auto; }
.nl-ld.is-done .nl-ld-spin, .nl-ld.is-done .nl-ld-bar::after { animation: none; border-color: #2e7d32; }
.nl-ld.is-fail { background: #fdf0f0; } .nl-ld.is-fail .nl-ld-t { color: var(--seal, #a4262c); } .nl-ld.is-fail .nl-ld-spin, .nl-ld.is-fail .nl-ld-bar::after { animation: none; }
.nl-ld-ov { position: fixed; inset: 0; z-index: 9000; display: grid; place-items: center; padding: 16px; background: rgba(20,27,39,.35); opacity: 0; transition: opacity .2s; }
.nl-ld-ov.on { opacity: 1; }
.nl-ld-box { width: min(440px, 100%); background: var(--paper, #fff); box-shadow: 0 18px 48px rgba(0,0,0,.18); padding: 6px; }
.nl-ld-box .nl-ld { background: transparent; padding: 14px 16px; }
.aif-job .nl-ld, [data-job] .nl-ld { margin-top: 10px; }
[data-job].nl-has-ld > .progress, [data-job].nl-has-ld [data-job-label], .aif-job.nl-has-ld .progress { display: none !important; }
@keyframes nlSpin { to { transform: rotate(360deg); } }
@keyframes nlShim { to { transform: translateX(100%); } }
@keyframes nlPulse { 50% { transform: scale(1.5); opacity: .5; } }
@keyframes nlFade { from { opacity: 0; transform: translateY(2px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .nl-ld-spin, .nl-ld-bar::after, .nl-ld-steps li.on::before { animation: none; } }

/* NeoLaw 디자인 기준: 각진 표식·단색 막대(둥근 회전·반짝임·깜빡임·초록 체크 없음) */
.nl-ld-spin { width: 9px; height: 9px; border: 0 !important; background: var(--seal, #a4262c); border-radius: 0 !important; animation: none !important; }
.nl-ld-bar::after { display: none !important; }
.nl-ld-steps li::before { border-radius: 0 !important; width: 7px; height: 7px; background: transparent; border: 1px solid var(--ink-4, #8a93a3); animation: none !important; }
.nl-ld-steps li.on::before { background: var(--seal, #a4262c); border-color: var(--seal, #a4262c); }
.nl-ld-steps li.ok::before { content: ''; background: var(--ink-3, #5a6475); border-color: var(--ink-3, #5a6475); left: 3px; top: 5px; width: 7px; height: 7px; color: transparent; }
.nl-ld-box { box-shadow: 8px 8px 0 rgba(0,0,0,.18) !important; border: 1px solid var(--ink, #18202e); }
.nl-ld-t { animation: none !important; }
.nl-ld.is-done .nl-ld-spin { background: var(--ok, #2e6b4f); }
