/* ROBERIN The New — PDF 합치기 (pdf-merge) 20260907b
 * 팔레트는 추가 필수 확인 #16의 따뜻한 종이 기준을 그대로 쓴다.
 * 숫자 입력·결과 폰트는 assets/css/roberin-the-new-numerals-*.css가 소유하므로
 * 이 파일에서는 숫자 family/weight를 선언하지 않는다.
 * 라벨 리셋은 추가 필수 확인 #48에 따라 control을 제외한 span에만 건다.
 */
.tn-pmg-page{--pmg-paper:#faf6ee;--pmg-ink:#1a1208;--pmg-muted:#5a4a30;--pmg-line:#b8a888;--pmg-soft:#ddd4be;--pmg-surface:#fffaf0;--pmg-wash:#f5efdf;--pmg-accent:#c44a00;--pmg-good:#2f7d54;--pmg-primary:#1a1208;--pmg-primary-text:#faf6ee;--pmg-secondary:#ede6d4;max-width:1180px;margin:0 auto;color:var(--pmg-ink)}

.tn-pmg-tool,.tn-pmg-tool *{box-sizing:border-box}
.tn-pmg-tool{display:grid;gap:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;border:1px solid var(--pmg-line);background:var(--pmg-paper);color:var(--pmg-ink)}
.tn-pmg-tool :is(ul,ol,li,dl,dd,dt){margin:0;padding:0;list-style:none}
.tn-pmg-tool :is(code,pre,kbd,samp){padding:0;border:0;border-radius:0;background:none;background-color:transparent;color:inherit;-webkit-text-fill-color:inherit;font:inherit}

.tn-pmg-stage{display:grid;gap:14px;padding:18px;border-bottom:1px solid var(--pmg-line)}
.tn-pmg-pane-label{margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--pmg-muted)}

.tn-pmg-canvas{display:grid;justify-items:center;align-content:center;gap:10px;min-height:200px;padding:22px 18px;border:1px dashed var(--pmg-line);background:var(--pmg-surface);text-align:center;cursor:pointer}
.tn-pmg-canvas.is-over{border-color:var(--pmg-accent);background:var(--pmg-wash)}
.tn-pmg-canvas__title{margin:0;font-size:14px;font-weight:800}
.tn-pmg-canvas__hint{margin:0;font-size:11px;font-weight:400;line-height:1.6;color:var(--pmg-muted)}
.tn-pmg-canvas__pick{min-height:36px;padding:0 18px}

/* settings와 metrics는 같은 세로 축을 공유한다 (One-Shot Contract 우려 #42, 추가 필수 확인 #22). */
.tn-pmg-settings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:8px}
.tn-pmg-settings .tn-pmg-actions{grid-column:3/5}
.tn-pmg-field{display:grid;align-content:start;gap:5px;margin:0;padding:0;border:0;background:none;font-size:12px;font-weight:700}
.tn-pmg-field>span:not(.tn-pmg-control){display:block;padding:0;line-height:1.35}
.tn-pmg-control{display:flex!important;align-items:center!important;height:36px;border:1px solid var(--pmg-line);background:var(--pmg-surface)}
.tn-pmg-control input{flex:1 1 auto;width:auto;min-width:0;height:34px;padding:0 10px;border:0!important;outline:0!important;background:transparent!important;color:var(--pmg-ink)!important;-webkit-text-fill-color:var(--pmg-ink)!important;font-family:inherit;font-size:13px}
.tn-pmg-control select{flex:1 1 auto;width:100%;min-width:0;height:34px;padding:0 26px 0 10px;border:0!important;outline:0!important;background:transparent!important;color:var(--pmg-ink)!important;-webkit-text-fill-color:var(--pmg-ink)!important;font-family:inherit;font-size:12px;font-weight:700;-webkit-appearance:none;appearance:none;cursor:pointer}
.tn-pmg-control--select{position:relative}
.tn-pmg-control--select::after{content:"";position:absolute;right:10px;top:50%;width:7px;height:7px;margin-top:-5px;border-right:1px solid var(--pmg-muted);border-bottom:1px solid var(--pmg-muted);transform:rotate(45deg);pointer-events:none}
.tn-pmg-control b{display:grid;place-items:center;align-self:stretch;min-width:40px;padding:0 8px;border-left:1px solid var(--pmg-soft);border-bottom:0;font-size:11px;font-weight:700;color:var(--pmg-muted)}
/* placeholder 강도는 사이트 전역 기준(400 / ink .35)을 그대로 따른다. muted 토큰에 .35를
 * 다시 곱하면 같은 가족 도구보다 더 연해져 예시 문구가 안 읽힌다.
 * input에 건 -webkit-text-fill-color 가 ::placeholder 로 상속돼 예시 글자가 실제 값처럼
 * 진하게 보이는 것을 막는다 (추가 필수 확인 #9). 토큰을 써서 다크에서도 같이 뒤집는다. */
.tn-pmg-control input::placeholder{color:var(--pmg-ink);-webkit-text-fill-color:var(--pmg-ink);opacity:.35;font-weight:400}
.tn-pmg-control:has(input:focus-visible),.tn-pmg-control:has(select:focus-visible){outline:2px solid var(--pmg-accent);outline-offset:-1px}

.tn-pmg-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tn-pmg-btn{display:grid;place-items:center;width:100%;min-height:36px;padding:8px 10px;border:1px solid var(--pmg-line);background:var(--pmg-secondary);color:var(--pmg-ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;font-weight:800;line-height:1;outline:0;cursor:pointer}
.tn-pmg-btn--primary{background:var(--pmg-primary);color:var(--pmg-primary-text);-webkit-text-fill-color:var(--pmg-primary-text);border-color:var(--pmg-primary)}
.tn-pmg-btn:hover{border-color:var(--pmg-accent);outline:0}
.tn-pmg-btn:focus-visible{outline:2px solid var(--pmg-accent);outline-offset:2px}
.tn-pmg-btn:disabled{opacity:.55;cursor:default;outline:0}

.tn-pmg-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.tn-pmg-metrics>div{display:grid;gap:5px;min-width:0;padding:10px;border:1px solid var(--pmg-soft);background:var(--pmg-surface)}
.tn-pmg-metrics dt{font-size:11px;font-weight:400;color:var(--pmg-muted)}
.tn-pmg-metrics dd{font-size:14px}

/* 합쳐지는 순서 막대 — 파일별 페이지 분담을 눈으로 보여 준다 (추가 필수 확인 #15).
 * 무입력 첫 로드에서도 트랙과 안내를 그리고 세그먼트만 비운다 (#10). */
.tn-pmg-order{display:grid;gap:8px;padding:10px;border:1px solid var(--pmg-soft);background:var(--pmg-surface)}
.tn-pmg-order__head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.tn-pmg-order__title{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--pmg-muted)}
.tn-pmg-order__note{font-size:11px;font-weight:400;color:var(--pmg-muted)}
.tn-pmg-bar{display:flex;align-items:stretch;width:100%;height:26px;border:1px dashed var(--pmg-soft);background:var(--pmg-wash)}
.tn-pmg-bar.has-data{border-style:solid;border-color:var(--pmg-line)}
.tn-pmg-bar__empty{display:grid;place-items:center;width:100%;font-size:11px;font-weight:400;color:var(--pmg-muted)}
.tn-pmg-seg{display:grid;place-items:center;min-width:0;overflow:hidden;border-right:1px solid var(--pmg-line);background:var(--pmg-wash);font-size:11px;font-weight:800;color:var(--pmg-ink)}
.tn-pmg-seg:last-child{border-right:0}
.tn-pmg-seg--alt{background:var(--pmg-secondary)}

.tn-pmg-status{margin:0;padding:10px 12px;border:1px solid var(--pmg-soft);background:var(--pmg-surface);font-size:11px;font-weight:400;line-height:1.6;color:var(--pmg-muted)}
.tn-pmg-status[data-state=error]{border-color:var(--pmg-accent);color:var(--pmg-accent)}
.tn-pmg-status[data-state=success]{color:var(--pmg-good)}
.tn-pmg-status[data-state=busy]{border-color:var(--pmg-accent)}

.tn-pmg-queue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:18px}
.tn-pmg-queue__empty{grid-column:1/-1;margin:0;padding:14px;border:1px dashed var(--pmg-soft);background:var(--pmg-surface);font-size:11px;font-weight:400;line-height:1.6;color:var(--pmg-muted);text-align:center}
.tn-pmg-row{display:grid;grid-template-columns:104px minmax(0,1fr);align-items:start;gap:12px;padding:12px;border:1px solid var(--pmg-soft);background:var(--pmg-surface)}
.tn-pmg-row.is-dragging{opacity:.45}
.tn-pmg-row.is-drop{border-color:var(--pmg-accent)}
.tn-pmg-handle{position:relative;display:block;line-height:0;cursor:grab}
.tn-pmg-row__thumb{display:block;width:104px;height:134px;border:1px solid var(--pmg-soft);background:var(--pmg-wash);object-fit:contain}
.tn-pmg-thumb--pending{display:grid;place-items:center;font-size:10px;font-weight:800;letter-spacing:.04em;color:var(--pmg-muted)}
.tn-pmg-thumb--pending.is-loading{background:repeating-linear-gradient(135deg,var(--pmg-wash),var(--pmg-wash) 6px,var(--pmg-surface) 6px,var(--pmg-surface) 12px)}
.tn-pmg-order-mark{position:absolute;top:4px;left:4px;display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border:1px solid var(--pmg-line);background:var(--pmg-paper);font-size:11px;font-weight:800;line-height:1}
.tn-pmg-row__body{display:grid;align-content:start;gap:6px;min-width:0}
.tn-pmg-row__name{margin:0;overflow:hidden;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.tn-pmg-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;font-size:11px;font-weight:400;color:var(--pmg-muted)}
.tn-pmg-details>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tn-pmg-detail-value{font-size:11px;color:var(--pmg-ink)}
.tn-pmg-field--range .tn-pmg-control{height:32px}
.tn-pmg-field--range .tn-pmg-control input{height:30px;font-size:12px}
.tn-pmg-row__foot{display:grid;grid-template-columns:minmax(0,1fr) 40px 40px auto;align-items:center;gap:6px}
.tn-pmg-row__state{overflow:hidden;font-size:11px;font-weight:700;color:var(--pmg-muted);text-overflow:ellipsis;white-space:nowrap}
.tn-pmg-row__state[data-state=error]{color:var(--pmg-accent)}
.tn-pmg-row__state[data-state=ready]{color:var(--pmg-good)}
.tn-pmg-row .tn-pmg-btn{width:100%;min-height:32px;padding:0 8px;font-size:11px}

.tn-pmg-note{padding:0 18px 18px}
.tn-pmg-caption{margin:0;font-size:11px;font-weight:400;line-height:1.6;color:var(--pmg-muted)}

body:is([data-scheme=dark],[data-scheme=inverse],[data-scheme=auto][data-l=dark],[data-scheme=auto][data-d=dark]) .tn-pmg-page{--pmg-paper:#241d12;--pmg-ink:#efe6d2;--pmg-muted:#c3b492;--pmg-line:#6f6047;--pmg-soft:#574a37;--pmg-surface:#322a1a;--pmg-wash:#2c2517;--pmg-accent:#e8823f;--pmg-good:#66a77f;--pmg-primary:#4a3116;--pmg-primary-text:#f7ead1;--pmg-secondary:#2f2115}
body:is([data-scheme=dark],[data-scheme=inverse],[data-scheme=auto][data-l=dark],[data-scheme=auto][data-d=dark]) .tn-pmg-tool :is(button,input,select){color:var(--pmg-ink)!important;-webkit-text-fill-color:var(--pmg-ink)!important}
body:is([data-scheme=dark],[data-scheme=inverse],[data-scheme=auto][data-l=dark],[data-scheme=auto][data-d=dark]) .tn-pmg-btn--primary{border-color:var(--pmg-accent)}
/* 전역 다크 규칙 `.entry-content [class*="tn-"]{color:#f7ead1!important}` 이 상태 색까지 cream 으로
 * 덮어 다크에서 오류·완료 신호가 사라진다 (kill list #15, 우려 #14). 의미 색은
 * 특이도를 올려 되돌린다. 대비비 accent 5.19 / good 4.99 — 둘 다 4.5 이상. */
body:is([data-scheme=dark],[data-scheme=inverse],[data-scheme=auto][data-l=dark],[data-scheme=auto][data-d=dark]) .tn-pmg-page .tn-pmg-tool :is(.tn-pmg-status,.tn-pmg-row__state)[data-state=error]{color:var(--pmg-accent)!important;-webkit-text-fill-color:var(--pmg-accent)!important}
body:is([data-scheme=dark],[data-scheme=inverse],[data-scheme=auto][data-l=dark],[data-scheme=auto][data-d=dark]) .tn-pmg-page .tn-pmg-tool :is(.tn-pmg-status[data-state=success],.tn-pmg-row__state[data-state=ready]){color:var(--pmg-good)!important;-webkit-text-fill-color:var(--pmg-good)!important}

@media(prefers-color-scheme:dark){body[data-scheme=auto]:not([data-l=light]) .tn-pmg-page{--pmg-paper:#241d12;--pmg-ink:#efe6d2;--pmg-muted:#c3b492;--pmg-line:#6f6047;--pmg-soft:#574a37;--pmg-surface:#322a1a;--pmg-wash:#2c2517;--pmg-accent:#e8823f;--pmg-good:#66a77f;--pmg-primary:#4a3116;--pmg-primary-text:#f7ead1;--pmg-secondary:#2f2115}
body[data-scheme=auto]:not([data-l=light]) .tn-pmg-tool :is(button,input,select){color:var(--pmg-ink)!important;-webkit-text-fill-color:var(--pmg-ink)!important}
body[data-scheme=auto]:not([data-l=light]) .tn-pmg-btn--primary{border-color:var(--pmg-accent)}
body[data-scheme=auto]:not([data-l=light]) .tn-pmg-page .tn-pmg-tool :is(.tn-pmg-status,.tn-pmg-row__state)[data-state=error]{color:var(--pmg-accent)!important;-webkit-text-fill-color:var(--pmg-accent)!important}
body[data-scheme=auto]:not([data-l=light]) .tn-pmg-page .tn-pmg-tool :is(.tn-pmg-status[data-state=success],.tn-pmg-row__state[data-state=ready]){color:var(--pmg-good)!important;-webkit-text-fill-color:var(--pmg-good)!important}}

@media(max-width:720px){
.tn-pmg-page{margin-inline:5px}
.tn-pmg-stage,.tn-pmg-queue{padding:13px}
.tn-pmg-note{padding:0 13px 13px}
.tn-pmg-canvas{min-height:168px;padding:18px 12px}
.tn-pmg-settings{grid-template-columns:repeat(2,minmax(0,1fr))}
.tn-pmg-settings .tn-pmg-actions{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}
.tn-pmg-actions .tn-pmg-btn--primary{grid-column:1/-1}
.tn-pmg-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
.tn-pmg-queue{grid-template-columns:1fr}
.tn-pmg-row{grid-template-columns:88px minmax(0,1fr)}
.tn-pmg-row__thumb{width:88px;height:114px}
.tn-pmg-row__foot{grid-template-columns:40px 40px minmax(0,1fr)}
.tn-pmg-row__state{grid-column:1/-1;grid-row:1}
}
