/* 작업 폴더: [썸네일 생성][편집실 열기] 한 줄 — 썸네일이 왼쪽 */
.workflow-editor-actions .editor-buttons{display:flex;gap:6px;justify-content:flex-end;flex-wrap:nowrap}   /* 세 버튼은 늘 한 줄 */
.workflow-editor-actions .editor-buttons>:is(button,a){white-space:nowrap}
.workflow-editor-actions .open-thumbs[hidden]{display:none}
.workflow-editor-actions .open-thumbs svg{width:14px;height:14px}
/* 썸네일 창 (src/thumbnail-tool.js) */
@font-face{font-family:EngineJalnanGothic;src:url('../assets/fonts/engine/JalnanGothic.ttf') format('truetype');font-display:swap}
.thumb-dialog{border:0;border-radius:var(--radius-panel);padding:0;width:min(1120px,calc(100vw - 32px));max-height:calc(100dvh - 48px);background:var(--surface);color:var(--ink);box-shadow:none}
.thumb-dialog::backdrop{background:var(--overlay)}
.thumb-dialog[open]{display:flex;flex-direction:column;overflow:auto;padding:24px 28px 28px;gap:12px}
.thumb-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.thumb-head h2{margin:0;font:var(--type-screen-title);letter-spacing:var(--track-screen-title)}
.thumb-kicker{display:block;margin-bottom:4px;font:var(--type-meta);color:var(--muted)}
.thumb-head p{margin:4px 0 0;font:var(--type-meta);color:var(--muted)}
/* 닫기: 대시보드 창 닫기와 같은 모양(배경 없이 × 만, 올리면 진하게) */
.thumb-dialog .thumb-close{flex:none;border:0;background:transparent;color:var(--muted);width:32px;height:32px;padding:0;border-radius:6px;font-size:24px;line-height:1;cursor:pointer}
.thumb-dialog .thumb-close:hover{background:transparent;color:var(--secondary)}
.thumb-warn{margin:0;padding:10px 14px;border-radius:10px;background:var(--dot-warn-bg);color:var(--dot-warn-text);font:var(--type-meta)}
.thumb-error{color:var(--danger);font:var(--type-body)}
.thumb-msg{margin:0;min-height:0;font:var(--type-meta);color:var(--danger)}
.thumb-msg:empty{display:none}
.thumb-dialog button{font:inherit;font-size:12px;border:0;border-radius:9px;padding:8px 12px;background:var(--inset);color:var(--ink);cursor:pointer}
.thumb-dialog button.primary{background:var(--solid);color:var(--on-solid);font-weight:600;width:auto;min-height:0;margin:0}
.thumb-dialog button:disabled{opacity:.45;cursor:default}
.thumb-dialog:has(.thumb-empty){width:min(520px,calc(100vw - 32px))}
.thumb-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:20px 0 8px}
.thumb-empty h3{margin:0;font:var(--type-panel-title);letter-spacing:var(--track-panel-title)}
.thumb-empty p{margin:0 0 8px;font:var(--type-meta);color:var(--muted);line-height:1.7}
.thumb-empty button.primary{padding:11px 20px;font-size:13px}
.thumb-sec{border-top:1px solid var(--track);padding-top:16px}
.thumb-sec-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.thumb-sec-head>div{display:flex;gap:6px}
.thumb-sec h3{margin:0;font:var(--type-panel-title);letter-spacing:var(--track-panel-title)}
.thumb-sec h3 span{font:var(--type-meta);color:var(--muted);margin-left:4px}
.thumb-hint{margin:6px 0 0;font:var(--type-meta);color:var(--muted)}
.thumb-picks{display:flex;gap:14px;overflow-x:auto;padding:12px 8px 8px;margin:0 -8px}
.thumb-picks figure{margin:0;flex:none;width:180px;display:flex;flex-direction:column;gap:8px}
.thumb-picks img{width:180px;aspect-ratio:9/16;object-fit:cover;border-radius:10px;background:#000}
.thumb-picks figcaption{display:flex;flex-direction:column;gap:3px;font:var(--type-meta)}
.thumb-picks small{color:var(--muted);line-height:1.5}
.thumb-picks .thumb-check{color:var(--dot-warn-text)}
.thumb-dl{align-self:flex-start;margin-top:2px;font-size:12px;color:var(--ink);background:var(--inset);border-radius:8px;padding:6px 10px;text-decoration:none}
.thumb-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px;padding-top:12px}
.thumb-items article{display:flex;gap:12px;background:var(--inset);border-radius:12px;padding:12px}
.thumb-frame{position:relative;flex:none;width:118px;aspect-ratio:9/16;border-radius:8px;overflow:hidden;background:#000;container-type:inline-size}
.thumb-frame img{width:100%;height:100%;object-fit:cover;display:block}
.thumb-frame.missing{display:grid;place-items:center;color:#fff8;font-size:11px}
.thumb-text{position:absolute;white-space:nowrap;font-family:EngineJalnanGothic,Pretendard,sans-serif;font-size:7.4cqw;line-height:1.1;-webkit-text-stroke:.25cqw #000;paint-order:stroke fill}
.thumb-fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.thumb-row{display:flex;align-items:center;gap:6px}
.thumb-row b{font-size:13px}.thumb-row .grow{flex:1}
.thumb-id{font:var(--type-caption);color:var(--muted);font-family:var(--font-mono)}
.thumb-row button{padding:5px 8px;background:var(--surface)}
.thumb-fields label{display:flex;flex-direction:column;gap:4px;font:var(--type-caption);color:var(--secondary)}
.thumb-fields input,.thumb-fields select{height:32px;border:0;border-radius:8px;background:var(--surface);color:var(--ink);padding:0 10px;font:inherit;font-size:12px;min-width:0}
.thumb-two{display:flex;gap:6px}.thumb-two input{flex:1}
.thumb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;padding-top:12px}
.thumb-cell{display:flex;flex-direction:column;gap:4px;padding:0!important;background:none!important;text-align:left}
.thumb-cell img{width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:8px;background:#000;outline:2px solid transparent;outline-offset:1px}
.thumb-cell:hover img{outline-color:var(--focus)}
.thumb-cell.cand img{outline-color:var(--status-busy)}
.thumb-cell span{font:var(--type-caption);color:var(--muted);font-family:var(--font-mono)}
@media(max-width:760px){.thumb-dialog[open]{padding:18px 16px}.thumb-items{grid-template-columns:1fr}}
.thumb-pick-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.thumb-pick-acts .thumb-dl{margin-top:0}
.thumb-pick-acts button{font-size:12px;border:1px solid var(--input-border);background:var(--surface);color:var(--ink);border-radius:8px;padding:5px 10px;cursor:pointer}
.thumb-pick-acts .thumb-chosen{background:var(--solid);border-color:var(--solid);color:var(--on-solid);font-weight:600}.thumb-pick-acts .thumb-chosen:hover{background:var(--solid-hover);color:var(--on-solid)}
.thumb-dialog:focus,.thumb-dialog:focus-visible{outline:none}   /* 창 자체에 파란 초점 테두리를 두르지 않는다 — 초점은 안쪽 버튼에 */
.workflow-editor-actions .open-premiere[hidden]{display:none}
.workflow-editor-actions .open-premiere svg{width:14px;height:14px}
/* '제출하면 다시 렌더해요' 한 번만 뜨는 말풍선 — 편집실 열기 버튼 위 */
.workflow-editor-actions{position:relative}
.rerender-tip{position:absolute;z-index:5;display:flex;align-items:center;gap:10px;background:var(--solid);color:var(--on-solid);border-radius:999px;padding:6px 6px 6px 16px;box-shadow:0 8px 24px #00000026;white-space:nowrap}
.rerender-tip p{margin:0;font-size:12px;font-weight:600}
.rerender-tip button{min-height:0;border:0;border-radius:var(--button-radius);height:26px;padding:0 11px;font:inherit;font-size:11px;font-weight:700;background:color-mix(in srgb,var(--on-solid) 8%,transparent);color:var(--on-solid);cursor:pointer}
.rerender-tip button:hover{background:color-mix(in srgb,var(--on-solid) 14%,transparent)}
.rerender-tip i{position:absolute;bottom:-5px;width:12px;height:12px;background:var(--solid);transform:rotate(45deg);border-radius:2px}
.rerender-tip.below i{bottom:auto;top:-5px}
/* 좁은 화면 — 세 버튼(썸네일 생성 · 프리미어로 내보내기 · 편집실 열기)을 한 줄 가운데로. 모자라면 아이콘을 뺀다 */
@media(max-width:760px){
 .workflow-editor-actions{align-items:center}   /* 버튼 묶음이 영상 폭보다 넓으면 오른쪽 끝 기준이라 왼쪽으로 밀렸다 — 가운데 기준으로 */
 .workflow-editor-actions .editor-buttons{justify-content:center;flex-wrap:nowrap;gap:5px;align-self:center}
 .workflow-editor-actions .editor-buttons>:is(button,a).workflow-editor-actions,.workflow-editor-actions .editor-buttons>:is(button,a){flex:0 1 auto;min-width:0;padding-left:10px;padding-right:10px;gap:5px}
}
@media(max-width:420px){.workflow-editor-actions .editor-buttons svg{display:none}}
/* 넓은 화면 — 세 버튼은 검수 카드 위(오른쪽 칸)에 한 줄로. 칸이 세 버튼(약 356px)보다 좁으면 아이콘을 뺀다 */
.workflow-inspector{container-type:inline-size}
@container (max-width:365px){.workflow-inspector>.workflow-editor-actions .editor-buttons svg{display:none}}
/* 만드는 중(모형 D3) — 그 맥미니의 도트 로봇 옆에서 후보 세 칸이 차례로 진해지고, 단계 문구가 넘어가고, 막대가 흐른다 */
.thumb-making{gap:12px;padding-top:12px}
.thumb-press{display:flex;align-items:flex-end;gap:12px;height:60px;margin-bottom:4px}
.thumb-press .node-robot{width:46px;height:46px;display:block}
.thumb-tiles{display:flex;gap:5px;align-items:flex-end;padding-bottom:6px}
.thumb-tiles b{width:18px;height:24px;border-radius:4px;background:var(--inset);animation:thumb-tile 3.3s steps(1,end) infinite}
.thumb-tiles b:nth-child(2){animation-delay:1.1s}.thumb-tiles b:nth-child(3){animation-delay:2.2s}
@keyframes thumb-tile{0%{background:var(--ink-soft);transform:translateY(-4px)}10%{transform:none}33%,100%{background:var(--inset)}}
.thumb-making .thumb-step{font-size:15px;font-weight:600}
.thumb-bar{width:100%;max-width:300px;height:8px;border-radius:8px;background:var(--inset);overflow:hidden}
.thumb-bar i{display:block;height:100%;width:40%;border-radius:8px;background:var(--ink);animation:thumb-slide 1.6s ease-in-out infinite}
@keyframes thumb-slide{0%{transform:translateX(-100%)}100%{transform:translateX(260%)}}
.thumb-making p{margin-top:6px}
/* 작업 폴더 버튼: 만드는 중일 때만 그림 아이콘 대신 도는 동그라미 */
.workflow-editor-actions .open-thumbs.is-running svg{display:none}
.workflow-editor-actions .open-thumbs.is-running::before{content:'';flex:none;width:14px;height:14px;border-radius:50%;background:conic-gradient(transparent 0 25%,currentColor);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2.5px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,transparent calc(100% - 2.5px),#000 calc(100% - 2px));animation:thumb-spin .9s linear infinite}
@keyframes thumb-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.thumb-tiles b,.thumb-bar i,.workflow-editor-actions .open-thumbs.is-running::before{animation-duration:3s}}
/* 만드는 맥미니가 꺼져 있을 때 — 흐린 로봇(물음표)과 안내만 */
.thumb-off .node-robot{width:46px;height:46px;display:block;color:var(--muted);margin-bottom:4px}
.thumb-off h3{font-size:16px}
/* 맞춤 썸네일을 못 쓰는 채널 — 회색, 눌리지 않는다 */
.workflow-editor-actions .open-thumbs.is-off{opacity:.45;cursor:default}
/* 탭(2026-10-06 모형 A) — 발행용 고르기가 기본, 다시 만드는 일은 직접 만들기 탭에만 */
.thumb-dialog .thumb-tabs{display:inline-flex;align-self:flex-start;gap:4px;padding:4px;border-radius:999px;background:var(--inset)}
.thumb-dialog .thumb-tabs button{border:0;border-radius:999px;padding:8px 16px;background:transparent;color:var(--secondary);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.thumb-dialog .thumb-tabs button[aria-selected="true"]{background:var(--surface);color:var(--ink)}
.thumb-sec-pick{border-top:0;padding-top:4px}
.thumb-picks .thumb-pic{position:relative;border-radius:10px}
.thumb-picks figure.on .thumb-pic{outline:3px solid var(--solid);outline-offset:3px}
.thumb-picks .thumb-pic img{display:block}
.thumb-picks .thumb-badge{position:absolute;top:8px;left:8px;padding:3px 8px;border-radius:999px;background:var(--solid);color:var(--on-solid);font-size:11px;font-weight:700}
.thumb-done{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:12px 14px 12px 16px;border-radius:14px;background:var(--dot-ok-bg)}
.thumb-done span{font-size:13px;font-weight:600;color:var(--dot-ok-text);line-height:1.5}
.thumb-dialog .thumb-done button.primary{flex:none;padding:10px 18px;font-size:13px}
/* 직접 만들기 탭 위 버튼 — 검정 버튼과 같은 규격(알약 · 38px · 13px 굵게), 색만 회색 */
.thumb-dialog .thumb-sec-head>div>button:not(.primary){height:38px;padding:0 18px;border-radius:999px;font-size:13px;font-weight:600;background:var(--inset);color:var(--ink)}
.thumb-dialog .thumb-sec-head>div>button:not(.primary):hover:not(:disabled){background:var(--hover)}

.workflow-editor-actions .open-download[hidden]{display:none}
.workflow-editor-actions .open-download svg{width:14px;height:14px}

/* 썸네일 · 프리미어 · 영상 받기는 아이콘만(이름은 마우스를 올리면) — 편집실 열기만 글자, 좁은 화면에서도 한 줄(2026-10-09) */
.workflow-editor-actions .editor-buttons>button.ic{width:var(--button-small-height,30px)!important;min-width:var(--button-small-height,30px)!important;flex:none!important;padding:0!important;justify-content:center;border-radius:50%!important;position:relative}
.workflow-editor-actions .editor-buttons>button.ic>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.workflow-editor-actions .editor-buttons>button.ic:not(.is-running) svg{display:block!important;width:15px;height:15px}

/* 다시 렌더 상태 알약 — 버튼 줄 맨 왼쪽(버튼과 같은 높이). 실패 = 연한 빨강 · 누르면 이유 창, 렌더 중 = 회색 + 도는 동그라미(2026-10-12) */
/* 줄 밖에 떠 있다(버튼 묶음의 왼쪽 끝에 붙임) — 버튼 줄이 오른쪽 정렬이든 가운데 정렬이든 버튼은 1px 도 안 밀린다 */
.workflow-editor-actions .editor-buttons{position:relative}
.workflow-editor-actions .render-pill{position:absolute;right:100%;top:0;margin-right:6px;display:inline-flex;align-items:center;gap:7px;height:var(--button-small-height,30px);padding:0 12px 0 8px;border-radius:999px;font-size:12px;font-weight:650;white-space:nowrap}
.workflow-editor-actions .render-pill[hidden]{display:none}
.workflow-editor-actions .render-pill.fail{background:var(--danger-bg);color:var(--danger);cursor:pointer}
.workflow-editor-actions .render-pill.fail:hover{background:color-mix(in srgb,var(--danger) 18%,var(--surface))}
.workflow-editor-actions .render-pill.fail>i{width:18px;height:18px;border-radius:50%;background:var(--danger);color:#fff;display:grid;place-items:center;font-style:normal;font-size:12px;font-weight:800;line-height:1}
.workflow-editor-actions .render-pill.busy{background:var(--hover);color:var(--secondary);padding-left:10px}
.workflow-editor-actions .render-pill .spin{width:14px;height:14px;border-radius:50%;border:2px solid color-mix(in srgb,var(--ink) 14%,transparent);border-top-color:var(--secondary);animation:render-pill-spin 1s linear infinite}
@keyframes render-pill-spin{to{transform:rotate(360deg)}}
/* 좁은 화면 — 글자를 빼고 표시만(버튼 네 개가 한 줄에서 밀리지 않게) */
@media(max-width:520px){.workflow-editor-actions .render-pill>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.workflow-editor-actions .render-pill{padding:0 6px}}
@media(prefers-reduced-motion:reduce){.workflow-editor-actions .render-pill .spin{animation-duration:3s}}

/* 숨긴 단추는 숨긴 채로 — roles.css 의 공통 단추 규칙(선택자 무게가 큼)이 [hidden] 을 덮어 운영자에게 프리미어 단추가 보였다(2026-10-26) */
.workflow-editor-actions .editor-buttons>[hidden]{display:none!important}
