/* 파일 이름 일괄 변경 도구 — 더뉴 셸 '이름 공식 + 바뀐 이름 대조표'. 조각 색 = 새 이름 글자가 어디서 왔는지(쓴 글자·번호·날짜·시각·바꾼 글자·겹침 번호), 주황(accent)은 문제 표시에만 */
.fbr-work{--fbr-lit:#2f6aa8;--fbr-num:#7d45a3;--fbr-date:#24724c;--fbr-time:#1d6f77;--fbr-rep:#a3456f;--fbr-dup:#8a5c0a;--fbr-ext:#5b6b17;--fbr-chg:color-mix(in srgb,var(--ink) 70%,var(--card));
  position:relative;display:grid;container:fbr / inline-size}
html[data-theme="dark"] .fbr-work{--fbr-lit:#7fb0e6;--fbr-num:#c49be6;--fbr-date:#74c79c;--fbr-time:#6fcbd3;--fbr-rep:#e690b6;--fbr-dup:#e0b45e;--fbr-ext:#b5cc68}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .fbr-work{--fbr-lit:#7fb0e6;--fbr-num:#c49be6;--fbr-date:#74c79c;--fbr-time:#6fcbd3;--fbr-rep:#e690b6;--fbr-dup:#e0b45e;--fbr-ext:#b5cc68}}
.fbr-work [data-k="keep"]{--c:var(--ink)}.fbr-work [data-k="lit"]{--c:var(--fbr-lit)}.fbr-work [data-k="num"]{--c:var(--fbr-num)}.fbr-work [data-k="date"]{--c:var(--fbr-date)}
.fbr-work [data-k="time"]{--c:var(--fbr-time)}.fbr-work [data-k="rep"]{--c:var(--fbr-rep)}.fbr-work [data-k="cut"]{--c:var(--fbr-rep)}.fbr-work [data-k="dup"]{--c:var(--fbr-dup)}
.fbr-input{display:none}

/* 넣기 줄 */
.fbr-tray{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:12px 18px;border-bottom:1px solid var(--soft)}
.fbr-pick{display:flex;flex-wrap:wrap;gap:6px}
.fbr-pf1{display:none}
.fbr-work[data-mode="files"] .fbr-pf0{display:none}
.fbr-work[data-mode="files"] .fbr-pf1{display:inline}
.fbr-trayt{flex:1 1 200px;min-width:0;margin:0;font-family:var(--sans);font-size:12.5px;line-height:1.5;color:var(--muted)}
.fbr-trayt b{margin-right:8px;font-weight:700;color:var(--ink)}
.fbr-trayt .fbr-extag{display:inline-block;margin-right:7px;padding:0 6px;border:1px solid currentColor;border-radius:var(--radius);font-size:11px;line-height:17px;color:var(--accent)}
.fbr-exw{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.fbr-work[data-mode="files"] .fbr-exw{display:none}
.fbr-work:not([data-mode="files"]) .fbr-clear{display:none}

/* 새 이름 틀 */
.fbr-fx{display:grid;gap:6px;padding:14px 18px}
.fbr-fx > .v2-label{display:block}
.fbr-fxrow{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);transition:border-color var(--ease),box-shadow var(--ease)}
.fbr-fxrow:focus-within{border-color:var(--ink);box-shadow:0 0 0 2px var(--accent-wash)}
.fbr-tpl{flex:1 1 0;width:100%;min-width:0;height:44px;padding:0 12px;border:0;background:none;outline:0;font-family:var(--sans);font-size:16px;font-weight:600;color:var(--ink)}
.fbr-extp{display:grid;place-items:center;padding:0 12px;border-left:1px solid var(--soft);background:var(--wash);font-family:var(--sans);font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
.fbr-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.fbr-chips .v2-hint{margin-right:2px}
.fbr-chips button{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:1px solid var(--soft);border-radius:var(--radius);background:var(--paper);font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;transition:background var(--ease)}
.fbr-chips button:hover{background:var(--btn)}
.fbr-chips button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fbr-chips button i{width:9px;height:9px;border-radius:50%;background:var(--c)}
.fbr-chips code{font-family:var(--sans);font-size:11.5px;font-weight:500;color:var(--muted)}

/* 규칙 서랍 */
.fbr-rules{display:grid;gap:12px;padding:14px 18px 16px;border-top:1px solid var(--soft)}
.fbr-tabs button{display:inline-flex;align-items:center;gap:6px}
.fbr-dot{display:none;width:6px;height:6px;border-radius:50%;background:currentColor}
.fbr-tabs button.is-on .fbr-dot{display:inline-block}
.fbr-pane{display:grid;gap:10px 12px;align-items:end}
.fbr-pane[hidden]{display:none}
.fbr-pane[data-pane="find"]{grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr)}
.fbr-pane[data-pane="num"]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,2fr)}
.fbr-pane[data-pane="date"]{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}
.fbr-pane[data-pane="tidy"],.fbr-pane[data-pane="ext"]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.fbr-pnote,.fbr-sws{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin:0}
.fbr-pnote .v2-hint,p.fbr-pnote{margin:0;font-size:12px;line-height:1.5;color:var(--muted)}
.fbr-to{display:grid;place-items:center;height:var(--v2-ctl,42px);color:var(--muted)}
.fbr-ctl{display:block;width:100%;max-width:100%;min-width:0;height:var(--v2-ctl,42px);padding:0 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14.5px;font-weight:600}
.fbr-ctl:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fbr-ctl:disabled{opacity:.5;cursor:not-allowed}
.fbr-ctl::placeholder{font-weight:400;color:var(--ink);opacity:.38}
.v2-f.is-invalid .fbr-ctl{border-color:var(--accent)}

/* 요약 띠 */
.fbr-sum{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"t s a" "st st st";align-items:center;gap:8px 20px;padding:14px 18px}
.fbr-work[data-mode="empty"] .fbr-sum{display:none}
.fbr-sumt{grid-area:t}
.fbr-big{margin:4px 0 0;font-family:var(--sans);font-size:36px;font-weight:800;line-height:1;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums lining-nums}
.fbr-big small{margin-left:6px;font-size:15px;font-weight:700;letter-spacing:0;color:var(--muted)}
.fbr-sub{margin:7px 0 0;font-family:var(--sans);font-size:12px;line-height:1.5;color:var(--muted)}
.fbr-sub i{margin:0 6px;font-style:normal;opacity:.6}
.fbr-sub .fbr-bad{font-weight:700;color:var(--accent)}
.fbr-stripw{grid-area:s;min-width:0}
.fbr-strip{display:flex;gap:2px;height:30px}
.fbr-strip i{flex:1 1 0;min-width:2px;border-radius:1px;background:var(--fbr-chg);cursor:pointer;transition:background var(--ease)}
.fbr-strip[data-dense="1"]{gap:0}
.fbr-strip[data-dense="1"] i{min-width:0;border-radius:0}
.fbr-strip i[data-st="same"]{background:var(--soft)}
.fbr-strip i[data-st="dup"]{background:var(--fbr-dup)}
.fbr-strip i[data-st="bad"]{background:var(--accent)}
.fbr-strip i[data-st="off"]{background:none;box-shadow:inset 0 0 0 1px var(--soft)}
.fbr-skey{display:flex;flex-wrap:wrap;gap:3px 12px;margin:6px 0 0;padding:0;list-style:none;font-family:var(--sans);font-size:11px;color:var(--muted)}
.fbr-skey li{display:inline-flex;align-items:center;gap:5px}
.fbr-skey li::before{content:"";width:8px;height:8px;border-radius:1px;background:var(--fbr-chg)}
.fbr-skey li[data-st="same"]::before{background:var(--soft)}
.fbr-skey li[data-st="dup"]::before{background:var(--fbr-dup)}
.fbr-skey li[data-st="bad"]::before{background:var(--accent)}
.fbr-acts{grid-area:a;display:flex;flex-wrap:wrap;gap:6px}
.fbr-acts .v2-btn{justify-content:center}
#fbrZip{position:relative;overflow:hidden}
#fbrProg{position:absolute;left:0;right:0;bottom:0;width:100%;height:3px;border:0;background:none;-webkit-appearance:none;appearance:none}
#fbrProg::-webkit-progress-bar{background:transparent}
#fbrProg::-webkit-progress-value{background:var(--on-fill)}
#fbrProg::-moz-progress-bar{background:var(--on-fill)}
.fbr-status{grid-area:st;margin:0;min-height:18px;line-height:1.5}

/* 대조표 */
.fbr-lhead{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:12px 20px 8px;font-family:var(--sans);font-size:11.5px;color:var(--muted)}
.fbr-allc{display:inline-flex;align-items:center;gap:6px;font-weight:600;cursor:pointer}
.fbr-allc input{width:15px;height:15px;margin:0;accent-color:var(--ink)}
.fbr-lcol{font-weight:600}
.fbr-lcol i{margin:0 6px;font-style:normal}
.fbr-legend{display:flex;flex-wrap:wrap;gap:3px 12px;margin:0 0 0 auto;padding:0;list-style:none}
.fbr-legend li{display:inline-flex;align-items:center;gap:5px;color:var(--c)}
.fbr-legend li::before{content:"";width:10px;height:10px;border-radius:2px;background:color-mix(in srgb,var(--c) 22%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 55%,transparent)}
.fbr-legend li[data-k="cut"]::before{background:linear-gradient(transparent 45%,var(--c) 45%,var(--c) 60%,transparent 60%);box-shadow:none}
.fbr-list{position:relative;margin:0 18px 18px;padding:0;list-style:none;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);overflow-y:auto;overscroll-behavior:contain}
.fbr-work[data-mode="empty"] .fbr-list,.fbr-work[data-mode="empty"] .fbr-lhead{display:none}
.fbr-row{display:grid;grid-template-columns:54px minmax(0,1fr) 14px minmax(0,1fr) 116px;align-items:center;gap:4px 10px;min-height:42px;padding:8px 12px 8px 10px;border-top:1px solid var(--soft)}
.fbr-row:first-child{border-top:0}
.fbr-chk{display:flex;align-items:center;gap:7px;cursor:pointer}
.fbr-chk input{flex:0 0 auto;width:16px;height:16px;margin:0;accent-color:var(--ink)}
.fbr-no{font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.fbr-old,.fbr-new{min-width:0;margin:0;font-family:var(--sans);line-height:1.45;overflow-wrap:anywhere}
.fbr-old{font-size:12.5px;color:var(--muted)}
.fbr-new{font-size:13.5px;font-weight:650;color:var(--ink)}
.fbr-arr{font-size:12px;text-align:center;color:var(--muted)}
/* 토큰 단추·범례에 올리면 그 조각만 진하게(나머지 조각은 옅게) */
.fbr-work[data-hl] .fbr-list .fbr-s,.fbr-work[data-hl] .fbr-list .fbr-cut{background:none;transition:background var(--ease)}
.fbr-work[data-hl="lit"] .fbr-list .fbr-s[data-k="lit"],.fbr-work[data-hl="num"] .fbr-list .fbr-s[data-k="num"],.fbr-work[data-hl="date"] .fbr-list .fbr-s[data-k="date"],.fbr-work[data-hl="time"] .fbr-list .fbr-s[data-k="time"],.fbr-work[data-hl="rep"] .fbr-list .fbr-s[data-k="rep"],.fbr-work[data-hl="dup"] .fbr-list .fbr-s[data-k="dup"]{background:color-mix(in srgb,var(--c) 26%,transparent)}
.fbr-work[data-hl="cut"] .fbr-list .fbr-cut{background:color-mix(in srgb,var(--fbr-rep) 26%,transparent)}
.fbr-work[data-hl="keep"] .fbr-list .fbr-new{color:var(--muted)}
.fbr-work[data-hl="keep"] .fbr-list .fbr-new .fbr-k{color:var(--ink);background:color-mix(in srgb,var(--ink) 12%,transparent)}
.fbr-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:58px;max-width:116px}
.fbr-size{font-family:var(--sans);font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.fbr-bs{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:3px}
.fbr-bs:empty{display:none}
.fbr-b{padding:1px 5px;border-radius:2px;background:var(--wash);font-family:var(--sans);font-size:10.5px;font-weight:650;line-height:1.5;color:var(--muted);white-space:nowrap}
.fbr-b[data-b="dup"]{color:var(--fbr-dup)}
.fbr-b[data-b="nfc"]{color:var(--fbr-ext)}
.fbr-b[data-b="bad"]{background:var(--accent-wash);color:var(--accent);white-space:normal;text-align:right}
.fbr-s{border-radius:2px;background:color-mix(in srgb,var(--c) 11%,transparent);color:var(--c)}
.fbr-cut{background:color-mix(in srgb,var(--fbr-rep) 10%,transparent);color:var(--fbr-rep);text-decoration:line-through;text-decoration-thickness:1.5px}
.fbr-ext.is-chg{border-radius:2px;background:color-mix(in srgb,var(--fbr-ext) 11%,transparent);color:var(--fbr-ext)}
.fbr-sp{position:relative;font-style:normal}
.fbr-sp::after{content:"";position:absolute;left:50%;top:58%;width:2px;height:2px;margin:-1px 0 0 -1px;border-radius:50%;background:currentColor;opacity:.5}
.fbr-row[data-st="same"] .fbr-new{font-weight:500;color:var(--muted)}
.fbr-row[data-st="bad"]{box-shadow:inset 3px 0 0 var(--accent)}
.fbr-row[data-st="off"]{background:color-mix(in srgb,var(--wash) 45%,var(--paper))}
.fbr-row[data-st="off"] .fbr-old{text-decoration:line-through}
.fbr-offt{font-size:12.5px;font-weight:400;color:var(--muted)}
.fbr-row.is-flash{animation:fbr-flash .9s ease-out}
@keyframes fbr-flash{from{background:var(--accent-wash)}to{background:transparent}}

/* 빈 상태 · 끌어 놓기 */
.fbr-empty{display:none;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:auto;min-height:150px;margin:0 18px 18px;padding:20px;border:1.5px dashed var(--line);border-radius:var(--radius);background:var(--paper);font-family:var(--sans);color:var(--muted);cursor:pointer;text-align:center}
.fbr-empty:hover{background:color-mix(in srgb,var(--wash) 50%,var(--paper))}
.fbr-empty:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fbr-empty .i{width:26px;height:26px;color:var(--ink)}
.fbr-empty b{font-size:14.5px;color:var(--ink)}
.fbr-empty span{max-width:440px;font-size:12.5px;line-height:1.55}
.fbr-work[data-mode="empty"] .fbr-empty{display:flex}
.fbr-over{position:absolute;inset:0;z-index:3;display:none;place-items:center;margin:0;border:2px dashed var(--ink);border-radius:var(--radius);background:color-mix(in srgb,var(--card) 88%,transparent);font-family:var(--sans);font-size:15px;font-weight:700;color:var(--ink);pointer-events:none}
.fbr-work.is-over .fbr-over{display:grid}
.fbr-noscript{margin:0;color:var(--accent)}

@container fbr (max-width:620px){
  .fbr-row{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"c o m" "c n m";align-items:start;gap:2px 10px}
  .fbr-chk{grid-area:c;flex-direction:column;align-items:flex-start;gap:4px;padding-top:2px}
  .fbr-old{grid-area:o}
  .fbr-new{grid-area:n}
  .fbr-new::before{content:"→ ";font-weight:400;color:var(--muted)}
  .fbr-arr{display:none}
  .fbr-meta{grid-area:m}
  .fbr-sum{grid-template-columns:minmax(0,1fr);grid-template-areas:"t" "s" "a" "st"}
  .fbr-acts .v2-btn{flex:1 1 auto}
  .fbr-pane[data-pane="num"]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .fbr-pane[data-pane="num"] .fbr-wide{grid-column:1/-1}
}
@container fbr (max-width:440px){
  .fbr-pane[data-pane="find"]{grid-template-columns:minmax(0,1fr)}
  .fbr-to{display:none}
  .fbr-pane[data-pane="date"],.fbr-pane[data-pane="tidy"],.fbr-pane[data-pane="ext"]{grid-template-columns:minmax(0,1fr)}
  .fbr-legend{margin-left:0}
}
@media (prefers-reduced-motion:reduce){.fbr-row.is-flash{animation:none}.fbr-strip i,.fbr-chips button{transition:none}}

/* 본문 표: 파일 이름처럼 끊을 곳 없는 긴 문자열이 휴대폰 폭을 넘지 않게(전 언어) */
.v2-article .fbr-tbl th,.v2-article .fbr-tbl td{overflow-wrap:anywhere}
