.template-layout{display:grid;grid-template-columns:var(--layout-sidebar-width) minmax(0,1fr);gap:var(--layout-gap);align-items:start}.template-sidebar,.template-main{background:var(--surface);border-radius:var(--layout-panel-radius);padding:24px;min-width:0}.template-sidebar{padding:16px;position:sticky;top:16px;max-height:calc(100dvh - 140px);overflow:auto}.template-sidebar>label{font-size:11px;color:var(--muted)}.template-sidebar input{width:100%;margin:8px 0 14px}.template-channels button{display:flex;flex-direction:column;gap:6px;width:100%;text-align:left;padding:13px 12px;border:0;border-radius:10px;background:transparent;color:var(--secondary)}.template-channels button.active{background:var(--inset);color:var(--ink);font-weight:600}.template-channels small{color:var(--muted);font-size:10px;font-weight:400}.template-main>header{display:flex;justify-content:space-between;gap:16px;align-items:start}.template-main h2{font-size:23px;margin:6px 0 12px}.template-main p,.asset-intro,.asset-footnote{font-size:12px;line-height:1.8;color:var(--muted)}.template-eyebrow{margin:0}.template-tag{font-size:10px;padding:7px 9px;border-radius:6px;background:var(--inset);white-space:nowrap}.template-form fieldset,.asset-slot fieldset{border:0;padding:0;margin:0;min-width:0}.template-form section{margin:20px 0 0}
.template-form section:first-child{margin-top:0}.template-form h3,.asset-slot h3{margin:0 0 10px}.template-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.template-fields label,.asset-size label{margin:0;display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--secondary)}.template-layout input,.template-layout select,.asset-size input{height:var(--toolbar-control-height);border:0;border-radius:10px;background:var(--inset);color:var(--ink);padding:0 12px;width:100%;min-width:0;font-size:12px}.template-form footer{display:flex;gap:10px;align-items:center;margin-top:20px}.template-form footer [role=status]{flex:1}.asset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.asset-slot{background:var(--inset);padding:20px;border-radius:14px;min-width:0}.asset-slot header{display:flex;justify-content:space-between;gap:8px}.asset-slot header span,.asset-slot small{font-size:10px;color:var(--muted)}.asset-slot p{font-size:12px;line-height:1.8}.asset-preview{display:grid;place-items:center;height:110px;border-radius:8px;background:var(--surface);font-size:11px;color:var(--muted);padding:16px}
/* 파일이 있으면 미리보기 칸을 진한 회색으로 — 투명 PNG 의 흰 로고가 흰·옅은 회색 칸에 묻히지 않게 */
.asset-preview:has(img){--chk-a:color-mix(in srgb,var(--ink) 13%,var(--surface));--chk-b:color-mix(in srgb,var(--ink) 19%,var(--surface));background:repeating-conic-gradient(var(--chk-a) 0 25%,var(--chk-b) 0 50%) 0 0/16px 16px}.asset-preview img{max-width:100%;max-height:78px;object-fit:contain}.asset-filename{overflow-wrap:anywhere;margin-bottom:4px}.asset-slot .asset-file-label{margin:16px 0 12px;font-size:12px}.asset-file-label input{border:0;font-size:11px;height:auto;padding:10px 0;max-width:100%}.asset-size{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px}.asset-size input{background:var(--surface)}.asset-slot .works-button{margin-top:14px;background:var(--surface)}.asset-slot [role=status]{margin-bottom:0}.asset-error{color:var(--danger)!important}.works-guide:has(.asset-grid){width:min(850px,calc(100vw - 40px))}.works-guide:has(.asset-grid) .works-guide-body{max-height:70dvh;overflow:auto}.asset-footnote{margin-top:20px}.works-option .work-no-poster{width:32px;height:45px;background:var(--inset);border-radius:5px;display:grid;place-items:center;flex:none;color:var(--muted)}
@media(max-width:1150px){.template-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.template-layout{grid-template-columns:1fr}.template-sidebar{position:static;max-height:220px}.template-channels{display:flex;overflow:auto}.template-channels button{min-width:130px}.template-fields,.asset-grid{grid-template-columns:1fr}.template-main{padding:20px}.template-main>header{flex-wrap:wrap}}

/* File controls share Workspace buttons; upload stays compact at the bottom right. */
.asset-slot{display:flex;flex-direction:column}.asset-slot form{margin-top:auto}.asset-slot fieldset{display:flex;flex-direction:column}
.asset-file-row{display:flex;align-items:center;gap:12px;margin:18px 0 16px;min-width:0}
.asset-slot .asset-file-label{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;margin:0;padding:0 13px;height:34px;border:0;border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer;font-size:12px}
.asset-file-label input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0;padding:0}
.asset-file-label:focus-within{outline:2px solid var(--muted);outline-offset:3px}.asset-selected-file{font-size:11px;color:var(--muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}
.asset-upload-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}
.asset-slot .asset-upload{display:inline-flex;align-items:center;justify-content:center;flex:none;margin:0 0 0 auto;height:32px;min-height:32px;padding:0 14px;border:0;border-radius:8px;background:var(--solid);color:var(--on-solid);font-size:12px;line-height:1}
.asset-upload:hover{background:var(--solid-hover)}.asset-upload:disabled{opacity:.5}.asset-slot [role=status]:empty{display:none}

.channel-works{margin-top:20px}.channel-works article{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--inset);border-radius:12px;padding:20px;margin-top:12px}.channel-works article strong{font-size:13px}.channel-works article p{margin:7px 0 0;font-size:11px}.channel-works article>div:last-child{text-align:right;flex:none}.channel-works article span{font-size:12px}.channel-works article small{display:block;margin-top:8px;color:var(--muted);font-size:10px}
@media(max-width:760px){.channel-works article{align-items:start;flex-direction:column}.channel-works article>div:last-child{text-align:left}}

.works-guide-body .asset-intro,.works-guide-body .asset-version-note{margin:0;font-size:12px;font-weight:400;line-height:20px;color:var(--muted)}
.works-guide-body .asset-intro{margin-bottom:4px}
.works-guide-body .asset-version-note{margin-bottom:20px}
.works-guide-body .asset-footnote{margin:24px 0 0;font-size:11px;font-weight:400;line-height:1.9;color:color-mix(in srgb,var(--muted) 80%,var(--surface))}
.works-guide-body .asset-footnote p{margin:0;color:inherit;font-size:inherit}
/* 채널 템플릿: 미리보기 | 설정 (src/template-preview.js). The preview keeps the 9:16 shorts ratio. */
/* 2026-10-14 — 잘난체 · 잘난체 고딕 · 그리운 · 와구리도 대시보드에 둔다(종전엔 파일이 없어 미리보기가 다른 폰트로 그렸다). 파일은 ai-video app/assets/fonts 와 같다 */
@font-face{font-family:EngineJalnan;src:url('../assets/fonts/engine/Jalnan.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineJalnanGothic;src:url('../assets/fonts/engine/JalnanGothic.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineGriun;src:url('../assets/fonts/engine/Griun.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineWaguri;src:url('../assets/fonts/engine/WAGURI.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineMulmaru;src:url('../assets/fonts/engine/Mulmaru.woff2') format('woff2');font-display:swap}
/* 페이퍼로지 · 프리젠테이션(OFL, 2026-10-02) — 굵기마다 따로 */
@font-face{font-family:EnginePaperlogy6SemiBold;src:url('../assets/fonts/engine/Paperlogy-6SemiBold.ttf') format('truetype');font-display:swap}
@font-face{font-family:EnginePaperlogy7Bold;src:url('../assets/fonts/engine/Paperlogy-7Bold.ttf') format('truetype');font-display:swap}
@font-face{font-family:EnginePaperlogy8ExtraBold;src:url('../assets/fonts/engine/Paperlogy-8ExtraBold.ttf') format('truetype');font-display:swap}
@font-face{font-family:EnginePaperlogy9Black;src:url('../assets/fonts/engine/Paperlogy-9Black.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineFreesentation6SemiBold;src:url('../assets/fonts/engine/Freesentation-6SemiBold.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineFreesentation7Bold;src:url('../assets/fonts/engine/Freesentation-7Bold.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineFreesentation8ExtraBold;src:url('../assets/fonts/engine/Freesentation-8ExtraBold.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineFreesentation9Black;src:url('../assets/fonts/engine/Freesentation-9Black.ttf') format('truetype');font-display:swap}
/* 에이투지체 A2Z(OFL, 2026-10-02) */
@font-face{font-family:EngineA2Z6SemiBold;src:url('../assets/fonts/engine/A2Z-6SemiBold.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineA2Z7Bold;src:url('../assets/fonts/engine/A2Z-7Bold.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineA2Z8ExtraBold;src:url('../assets/fonts/engine/A2Z-8ExtraBold.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineA2Z9Black;src:url('../assets/fonts/engine/A2Z-9Black.ttf') format('truetype');font-display:swap}
/* 쿠키런 원본 TTF · 저작권과 사용권 전문: assets/fonts/engine/CookieRun-LICENSE_ko_en.pdf */
/* 배민 도현체 원본 TTF · 사용권 전문: assets/fonts/engine/BMDOHYEON-LICENSE.txt */
@font-face{font-family:EngineBMDohyeon;src:url('../assets/fonts/engine/BMDOHYEON_ttf.ttf') format('truetype');font-display:swap}
/* 이사만루체 원본 TTF · 공게임즈 사용권 안내: assets/fonts/engine/esamanru-LICENSE.txt */
@font-face{font-family:EngineEsamanruBold;src:url('../assets/fonts/engine/esamanru-Bold.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineEsamanruMedium;src:url('../assets/fonts/engine/esamanru-Medium.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineEsamanruLight;src:url('../assets/fonts/engine/esamanru-Light.ttf') format('truetype');font-display:swap}

@font-face{font-family:EngineCookieRunRegular;src:url('../assets/fonts/engine/CookieRun-Regular.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineCookieRunBold;src:url('../assets/fonts/engine/CookieRun-Bold.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineCookieRunBlack;src:url('../assets/fonts/engine/CookieRun-Black.ttf') format('truetype');font-display:swap}
@font-face{font-family:EngineNotoBlack;src:url('../assets/fonts/engine/NotoSansCJKkr-Black.woff2') format('woff2');font-display:swap}
.template-main>.template-split{background:none;padding:0;border-radius:0;overflow:visible;display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--layout-gap);align-items:start}
.template-split>.template-form{background:var(--surface);border-radius:var(--layout-panel-radius);padding:24px;min-width:0}
.template-preview{background:var(--surface);border-radius:var(--layout-panel-radius);padding:20px;display:flex;flex-direction:column;align-items:center;gap:10px;min-height:0}
.shorts-preview{position:relative;width:270px;aspect-ratio:9/16;container-type:size;background:#000;border-radius:14px;overflow:hidden;flex:none}
.template-preview-note{margin:0;font:var(--type-caption);color:var(--muted)}
.sp-band{position:absolute;background:linear-gradient(160deg,#3a3d44,#1d1f24);display:grid;place-items:center}
.sp-band span{font:600 3.2cqh/1 var(--font-sans);color:#ffffff66}
.sp-title{position:absolute;left:4%;right:4%;text-align:center;line-height:1.25;word-break:keep-all}
.sp-title>div{white-space:nowrap;overflow:hidden;text-overflow:clip}
.sp-line{position:absolute;left:5%;right:5%;text-align:center;line-height:1.2;font-weight:800;white-space:nowrap;overflow:hidden;text-shadow:0 0 .12em #000,0 0 .12em #000}
.sp-work{font-family:Pretendard,sans-serif;font-weight:700;text-shadow:none}
.sp-platform{position:absolute;font-family:Pretendard,sans-serif;font-weight:700;white-space:nowrap}
.sp-chip{display:inline-block;font:600 2.2cqh/1.4 var(--font-sans);color:#fff;background:#ffffff26;border-radius:.4em;padding:.2em .5em}
/* full height: the preview grows with the panel, width follows the 9:16 ratio */
@media(min-width:1251px){
 .template-main>.template-split{flex:1 1 auto;min-height:0;align-items:stretch}
 .template-split>.template-form{overflow:auto;min-height:0}
 .template-preview{height:100%;justify-content:center}
 .shorts-preview{width:auto;height:min(100%,640px);flex:1 1 auto;max-height:calc(100% - 26px)}
}
/* too narrow for side by side (sidebar + 310px preview + form) — stack, preview on top */
@media(max-width:1000px){.template-main>.template-split{grid-template-columns:1fr}.shorts-preview{width:min(270px,100%)}}
/* beside the preview the form is narrower — let the field grid pick 3·2·1 columns by width */
.template-split .template-fields{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.template-scene{display:flex;gap:3px;background:var(--inset);padding:3px;border-radius:9px}
.template-scene button{border:0;border-radius:6px;padding:6px 10px;font:var(--type-caption);background:transparent;color:var(--muted)}
.template-scene button[aria-checked="true"]{background:var(--surface);color:var(--ink);font-weight:600}

/* 숨긴 채널 관리 (채널 관리) — 왼쪽 채널 칸 맨 아래 회색 칸 + 스위치 창. 테두리 없음 */
.ch-hidden-open{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:10px;border:0;border-radius:10px;padding:11px 12px;background:var(--inset);color:var(--secondary);font:inherit;font-size:12px;cursor:pointer}
.ch-hidden-open[hidden]{display:none}
.ch-hidden-open:hover{background:var(--hover);color:var(--ink)}
.ch-hidden-open small{font-size:11px;color:var(--muted)}
.ch-hidden-dialog{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;overflow:auto;border:0;border-radius:var(--radius-panel);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-dialog)}
.ch-hidden-dialog::backdrop{background:var(--overlay)}
.ch-hidden-body{display:flex;flex-direction:column;gap:10px;padding:24px}
.ch-hidden-body header{display:flex;align-items:center;justify-content:space-between}
.ch-hidden-body h2{margin:0;font-size:18px}
.ch-hidden-close{border:0;background:transparent;color:var(--muted);font-size:22px;width:32px;height:32px;cursor:pointer}
.ch-hidden-hint{margin:0;font-size:12px;color:var(--muted);line-height:1.6}
.ch-hidden-msg{margin:0;font-size:12px;color:var(--danger)}
.ch-hidden-msg:empty{display:none}
.ch-hidden-list{display:flex;flex-direction:column;gap:4px}
.ch-hidden-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;background:var(--inset);cursor:pointer;margin:0}
.ch-hidden-row.is-hidden .ch-hidden-av,.ch-hidden-row.is-hidden strong{opacity:.45}
.ch-hidden-av{width:28px;height:28px;border-radius:50%;overflow:hidden;flex:none;display:grid;place-items:center;background:var(--hover);font-size:12px;color:var(--secondary)}
.ch-hidden-av img{width:100%;height:100%;object-fit:cover}
.ch-hidden-name{flex:1;min-width:0}
.ch-hidden-name strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-hidden-name small{display:block;font-size:11px;color:var(--muted);margin-top:1px}
/* 스위치 — 켜짐(보임)은 검정, 꺼짐(숨김)은 회색 */
.ch-hidden-row input[role=switch]{appearance:none;-webkit-appearance:none;position:relative;flex:none;width:36px;height:20px;margin:0;padding:0;border:0;border-radius:999px;background:var(--folder-fill);cursor:pointer;transition:background .15s}
.ch-hidden-row input[role=switch]::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px #0003;transition:transform .15s}
.ch-hidden-row input[role=switch]:checked{background:var(--solid)}
.ch-hidden-row input[role=switch]:checked::after{transform:translateX(16px)}
.ch-hidden-row input[role=switch]:disabled{cursor:default;opacity:.6}
.ch-hidden-row input[role=switch]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}

/* 채널 칸 목록에 아이콘 — 채널 관리, 채널 템플릿, 소재 아카이브 */
.template-channels button.has-av{flex-direction:row;align-items:center;gap:10px}
.template-channels .tc-av{width:28px;height:28px;border-radius:50%;overflow:hidden;flex:none;display:grid;place-items:center;background:var(--hover);font-size:12px;color:var(--secondary)}
.template-channels .tc-av img{width:100%;height:100%;object-fit:cover}
.template-channels .tc-txt{display:flex;flex-direction:column;gap:6px;min-width:0}
/* 작품 로고 여러 개(0112) — 카드 목록 · 기본은 파란 테두리 · 올리기 칸은 흰 카드 */
.asset-msg{font-size:12px;color:var(--accent);margin:0 0 12px}.asset-msg:empty{display:none}
.asset-logos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.asset-logo{background:var(--surface);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:7px;min-width:0}
.asset-logo.is-default{box-shadow:inset 0 0 0 2px var(--accent)}
.asset-logo .asset-preview{height:80px;padding:8px}
.asset-logo-row{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:0 2px;min-width:0}
.asset-logo-row strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.asset-badge{flex:none;font-size:10px;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:2px 7px;border-radius:999px}
.asset-uses,.asset-logo-meta{flex:none;font-size:10px;color:var(--muted);padding:0 2px}
.asset-logo-acts{display:flex;flex-wrap:wrap;gap:4px;padding:0 2px 2px}
.asset-logo-acts button,.asset-cancel{font:inherit;font-size:11px;border:0;border-radius:999px;padding:5px 10px;background:var(--inset);color:var(--secondary);cursor:pointer}
.asset-logo-acts button:hover,.asset-cancel:hover{background:var(--hover);color:var(--ink)}
.asset-rename{font:inherit;font-size:12px;border:0;border-radius:6px;background:var(--inset);padding:4px 6px;min-width:0;width:100%}
.asset-add{font:inherit;border:0;border-radius:12px;background:transparent;box-shadow:inset 0 0 0 1.5px var(--track);display:grid;place-items:center;align-content:center;min-height:150px;color:var(--muted);font-size:12px;cursor:pointer}
.asset-add b{display:block;font-size:22px;font-weight:400;color:var(--secondary)}
.asset-add:hover{background:var(--surface)}
.asset-uploader{margin-top:12px;background:var(--surface);border-radius:12px;padding:14px}
.asset-uploader fieldset{border:0;padding:0;margin:0;display:block;min-width:0}
.asset-up-body{display:flex;flex-direction:column;gap:10px}
.asset-upload-title{margin:0;font-size:12px;font-weight:600}
.asset-upload-name{display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--secondary)}
.asset-upload-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.asset-upload-row>span{display:flex;gap:6px}
.asset-check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--secondary)}
.asset-uploader .asset-size{margin:0}
.asset-uploader .asset-size input,.asset-upload-name input{height:36px;border:0;border-radius:9px;background:var(--inset);color:var(--ink);padding:0 12px;font:inherit;font-size:12px;min-width:0}
.asset-slot .asset-uploader .asset-file-label{margin:0}
.asset-slot .asset-uploader .works-button{margin:0;background:var(--solid);color:var(--on-solid)}
/* 채널 관리 — 작품마다 쓸 로고 고르기(0112) */
.channel-works article:has(.ch-logo-pick){flex-wrap:wrap}
.channel-works .ch-logo-pick{flex-basis:100%;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.channel-works .ch-logo-lab{font-size:11px;color:var(--muted)}
.ch-logo-chips{display:flex;flex-wrap:wrap;gap:6px}
.ch-logo-chip{display:flex;align-items:center;gap:6px;border:0;border-radius:10px;padding:5px 10px 5px 5px;background:var(--surface);color:var(--secondary);font:inherit;font-size:12px;cursor:pointer}
.ch-logo-chip:disabled{cursor:default}
.ch-logo-chip.on{background:var(--solid);color:var(--on-solid);font-weight:600}
.channel-works .ch-logo-chip small{display:inline;margin:0;font-size:10px;color:inherit;opacity:.7}
.channel-works .ch-logo-chip .ch-logo-mini{width:44px;height:26px;border-radius:6px;background:repeating-conic-gradient(color-mix(in srgb,var(--ink) 13%,var(--surface)) 0 25%,color-mix(in srgb,var(--ink) 19%,var(--surface)) 0 50%) 0 0/8px 8px;display:grid;place-items:center;overflow:hidden;font-size:0}
.ch-logo-mini img{max-width:40px;max-height:22px;object-fit:contain}
.ch-logo-chip.on .ch-logo-mini{box-shadow:0 0 0 1.5px var(--on-solid)}
.asset-uploader label{margin-top:0}
.asset-uploader .asset-check{flex-direction:row}
.asset-uploader input[type=checkbox]{height:auto;width:auto;border:0;margin:0;accent-color:var(--accent)}
.asset-uploader .asset-file-label input{border:0;height:auto}
.asset-uploader .asset-file-row{margin:0}
.asset-uploader .asset-file-label span{background:var(--inset)}
/* 로고 올리기 폼 다듬기 — 카드와 띄우기 · 버튼 규격 토큰 · 테두리 없는 회색 네모 체크 */
.asset-slot .asset-uploader{margin-top:16px}
.asset-uploader .asset-cancel,.asset-slot .asset-uploader .works-button{height:var(--button-height);padding:0 var(--button-pad-x);border-radius:var(--button-radius);font-size:var(--button-font)}
.asset-uploader .asset-cancel{background:var(--inset);color:var(--secondary)}
.asset-uploader .asset-file-label{height:var(--button-height);padding:0 var(--button-pad-x);border-radius:var(--button-radius);background:var(--inset);font-size:var(--button-font)}
.asset-uploader .asset-file-label span{background:none}
.asset-uploader input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;padding:0;border:0;width:18px;min-width:18px;height:18px;border-radius:5px;background:var(--inset);display:grid;place-items:center;cursor:pointer}
.asset-uploader input[type=checkbox]:checked{background:var(--solid)}
.asset-uploader input[type=checkbox]:checked::after{content:"";width:9px;height:5px;border:2px solid var(--on-solid);border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg)}
.asset-logo-acts button{height:var(--button-small-height);padding:0 10px;border-radius:var(--button-radius)}
.asset-logo-acts button.is-save{background:var(--solid);color:var(--on-solid);font-weight:600}
.asset-logo .asset-rename{height:var(--button-small-height);border:0;border-radius:6px;background:var(--inset);padding:0 8px;font-size:12px;outline:none}
.asset-logo .asset-rename:focus-visible{box-shadow:inset 0 0 0 1.5px var(--accent)}
/* 로고 빼기 — 카드 오른쪽 위 동그란 ×, 마우스를 올리면 스르르(터치 화면은 늘 보임) */
.asset-logo{position:relative}
.asset-remove{position:absolute;top:12px;right:12px;z-index:1;width:24px;height:24px;border:0;border-radius:50%;padding:0;display:grid;place-items:center;background:var(--solid);color:var(--on-solid);cursor:pointer;opacity:0;transform:scale(.8);transition:opacity .16s ease,transform .16s ease;box-shadow:0 2px 6px #0000002e}
.asset-remove svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.asset-logo:hover .asset-remove,.asset-logo:focus-within .asset-remove{opacity:1;transform:scale(1)}
.asset-remove:hover{background:var(--status-error)}
@media(hover:none){.asset-remove{opacity:1;transform:none}}
.asset-logo .asset-preview{overflow:hidden}
.asset-logo .asset-preview img{max-width:100%;max-height:64px;object-fit:contain}
/* 드라이브에서 로고 가져오기(0114) — 로고 칸 아래 넓은 칸. 맥미니가 찾은 그림을 골라 넣는다 */
.asset-head-side{display:flex;align-items:center;gap:8px}
.asset-slot header .asset-drive-open{font:inherit;font-size:var(--button-small-font);font-weight:600;height:var(--button-small-height);padding:0 var(--button-small-pad-x);border:0;border-radius:var(--button-radius);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap}
.asset-slot header .asset-drive-open:hover{background:var(--hover)}
.asset-slot header{align-items:center}
.asset-drive{margin-top:16px;background:var(--inset);border-radius:14px;padding:20px}
.ld-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ld-head h3{margin:0;font-size:15px}
.ld-x{border:0;background:transparent;color:var(--muted);font-size:20px;line-height:1;width:30px;height:30px;border-radius:50%;cursor:pointer}
.ld-x:hover{background:var(--surface);color:var(--ink)}
.asset-drive .ld-from{margin:4px 0 14px;font-size:12px;color:var(--secondary);line-height:1.6}
.ld-from a{color:var(--accent);text-decoration:none}
.ld-from button,.ld-retry{font:inherit;font-size:12px;border:0;background:none;color:var(--secondary);text-decoration:underline;text-underline-offset:3px;padding:0;cursor:pointer}
.ld-retry{margin-top:10px}
.asset-drive .ld-msg{margin:0 0 10px;font-size:12px;color:var(--danger)}.asset-drive .ld-msg:empty{display:none}
.ld-wait{background:var(--surface);border-radius:12px;padding:26px 20px;text-align:center}
.ld-spin{display:block;width:26px;height:26px;border-radius:50%;border:3px solid var(--track);border-top-color:var(--solid);margin:0 auto 12px;animation:ld-spin .9s linear infinite}
@keyframes ld-spin{to{transform:rotate(360deg)}}
.asset-drive .ld-wait p{margin:0;font-size:13px;font-weight:600;color:var(--ink)}
.ld-wait small{display:block;margin-top:5px;font-size:12px;color:var(--secondary);line-height:1.6}
.ld-skel{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}.ld-skel i{height:110px;border-radius:12px;background:var(--surface);opacity:.6}
.ld-bar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 10px;font-size:12px;color:var(--secondary)}
.ld-cands{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.ld-cand{background:var(--surface);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:7px;min-width:0}
.ld-cand.on{box-shadow:inset 0 0 0 2px var(--accent)}
.ld-toggle{position:relative;border:0;padding:0;background:none;cursor:pointer;display:block;width:100%}
.ld-thumb{display:grid;place-items:center;height:80px;border-radius:8px;overflow:hidden;font-size:11px;color:var(--muted);--chk-a:color-mix(in srgb,var(--ink) 13%,var(--surface));--chk-b:color-mix(in srgb,var(--ink) 19%,var(--surface));background:repeating-conic-gradient(var(--chk-a) 0 25%,var(--chk-b) 0 50%) 0 0/16px 16px}
.ld-thumb img{max-width:100%;max-height:64px;object-fit:contain}
.ld-box{position:absolute;top:6px;left:6px;width:20px;height:20px;border-radius:6px;background:color-mix(in srgb,var(--surface) 85%,transparent);display:grid;place-items:center}
.ld-cand.on .ld-box{background:var(--accent)}
.ld-cand.on .ld-box::after{content:"";width:9px;height:5px;border:2px solid var(--on-accent);border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg)}
.asset-drive .ld-fn{margin:0;padding:0 2px;font-size:11px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
.ld-fn b{color:var(--ink);font-weight:600}
.ld-label{height:var(--button-small-height);border:0;border-radius:8px;background:var(--inset);color:var(--ink);padding:0 9px;font:inherit;font-size:12px;min-width:0;outline:none}
.ld-label:focus-visible{box-shadow:inset 0 0 0 1.5px var(--accent)}
.ld-def{display:flex;align-items:center;gap:6px;border:0;background:none;padding:0 2px;font:inherit;font-size:11px;color:var(--secondary);cursor:pointer}
.ld-def i{width:14px;height:14px;border-radius:50%;background:var(--inset);flex:none}
.ld-def.on{color:var(--ink);font-weight:600}.ld-def.on i{background:var(--accent);box-shadow:inset 0 0 0 3px var(--inset)}
.ld-more{margin-top:14px;font-size:12px;color:var(--muted)}
.ld-more summary{cursor:pointer;color:var(--secondary)}
.asset-drive .ld-more p{margin:6px 0 10px;font-size:12px}
.ld-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;font-size:12px;color:var(--secondary)}
.ld-foot>span:last-child{display:flex;gap:6px;margin-left:auto}
.ld-close{font:inherit;height:var(--button-height);padding:0 var(--button-pad-x);border:0;border-radius:var(--button-radius);background:transparent;color:var(--secondary);font-size:var(--button-font);cursor:pointer}
.ld-close:hover{background:var(--surface)}
.ld-primary{font:inherit;height:var(--button-height);padding:0 var(--button-pad-x);border:0;border-radius:var(--button-radius);background:var(--solid);color:var(--on-solid);font-size:var(--button-font);font-weight:var(--button-weight);cursor:pointer;white-space:nowrap}
.ld-primary:disabled{background:var(--surface);color:var(--muted);cursor:default}
.ld-ask{background:var(--surface);border-radius:12px;padding:18px}
.asset-drive .ld-ask>p{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--ink)}
.ld-ask small{display:block;font-size:12px;color:var(--secondary);line-height:1.6;margin-bottom:12px}
.ld-link{display:flex;gap:8px}
.ld-link input{flex:1;min-width:0;height:var(--button-height);border:0;border-radius:var(--button-radius);background:var(--inset);color:var(--ink);padding:0 16px;font:inherit;font-size:13px;outline:none}
.ld-link input:focus-visible{box-shadow:inset 0 0 0 1.5px var(--accent)}
.asset-drive .ld-note{margin:10px 0 0;font-size:12px;color:var(--muted)}
@media(max-width:600px){.ld-skel{grid-template-columns:repeat(2,1fr)}.ld-link{flex-direction:column}}
/* 가이드 원문용 pre-wrap 이 에셋 화면의 줄바꿈까지 빈 줄로 그리던 것 */
.works-guide-body:has(.asset-grid){white-space:normal}
.works-guide-body .asset-drive,.works-guide-body .asset-slot{white-space:normal}
/* 플랫폼 로고를 권리사마다(0115) — 어디서 쓸지 고르기 · 권리사 고르기 · 없을 때 · 드라이브 넣기 용도 */
.asset-psrc{display:flex;flex-wrap:wrap;gap:2px;background:var(--track);padding:3px;border-radius:var(--radius-pill,999px);margin:0 0 12px}
.asset-psrc button{flex:1;border:0;background:transparent;color:var(--secondary);font:inherit;font-size:12px;font-weight:500;height:30px;padding:0 10px;border-radius:var(--radius-pill,999px);white-space:nowrap;cursor:pointer}
.asset-psrc button[aria-checked="true"]{background:var(--solid);color:var(--on-solid);font-weight:600}
.asset-psrc button:disabled{cursor:default}
.asset-holder-pick{display:flex;align-items:center;gap:8px;background:var(--surface);border-radius:10px;padding:8px 10px;margin:0 0 12px;font-size:12px;color:var(--secondary)}
.asset-holder-pick select{flex:1;min-width:0;border:0;background:var(--inset);border-radius:8px;height:30px;padding:0 8px;font:inherit;font-size:12px;color:var(--ink)}
.asset-slot .asset-pnote{font-size:12px;line-height:1.6;color:var(--secondary);background:var(--surface);border-radius:10px;padding:10px 12px;margin:0 0 12px}
.asset-pnote b{color:var(--ink)}
.asset-slot .asset-pnote-foot{background:none;padding:0;margin:10px 0 0;color:var(--muted)}
.asset-pempty{background:var(--surface);border-radius:12px;padding:18px;text-align:center}
.asset-slot .asset-pempty p{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--ink)}
.asset-pempty small{display:block;font-size:12px;color:var(--secondary);margin-bottom:12px;line-height:1.6}
.asset-pempty span{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.asset-pempty button{font:inherit;font-size:var(--button-small-font);font-weight:600;height:var(--button-small-height);padding:0 var(--button-small-pad-x);border:0;border-radius:var(--button-radius);background:var(--inset);color:var(--ink);cursor:pointer}
.asset-pempty .asset-pempty-up{background:var(--solid);color:var(--on-solid)}
.ld-role{display:flex;gap:2px;background:var(--inset);padding:3px;border-radius:999px}
.ld-role button{flex:1;border:0;background:transparent;color:var(--secondary);font:inherit;font-size:11px;padding:5px 6px;border-radius:999px;cursor:pointer;white-space:nowrap}
.ld-role button[aria-checked="true"]{background:var(--solid);color:var(--on-solid);font-weight:600}
.asset-drive .ld-to{margin:0;padding:0 2px;font-size:11px;line-height:1.5;color:var(--secondary)}
.ld-only{display:flex;align-items:center;gap:6px;border:0;background:none;padding:0 2px;font:inherit;font-size:11px;color:var(--secondary);cursor:pointer}
.ld-only i{width:14px;height:14px;border-radius:4px;background:var(--inset);flex:none;display:grid;place-items:center}
.ld-only.on{color:var(--ink);font-weight:600}.ld-only.on i{background:var(--solid)}
.ld-only.on i::after{content:"";width:7px;height:4px;border:2px solid var(--on-solid);border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg)}
/* 토스트(toast.js) — 창 아래 가운데에 잠깐. 되돌리기 같은 버튼이 붙을 수 있다 */
.ws-toast{position:absolute;z-index:5;left:50%;bottom:28px;transform:translate(-50%,8px);display:flex;align-items:center;gap:14px;max-width:calc(100% - 48px);padding:11px 12px 11px 20px;border-radius:12px;background:var(--toast-bg);color:var(--toast-ink);font-size:12px;font-weight:500;line-height:1.5;box-shadow:0 6px 24px #0000001a;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .26s ease,transform .26s ease,visibility 0s .26s}
.ws-toast.in-page{position:fixed}
.ws-toast:not(:has(button)){padding-right:20px}
.ws-toast.visible{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0);transition:opacity .18s ease,transform .18s ease,visibility 0s}
.ws-toast button{flex:none;font:inherit;font-size:12px;font-weight:700;border:0;border-radius:var(--button-radius);height:28px;padding:0 12px;background:var(--surface);color:var(--ink);cursor:pointer}
@media(prefers-reduced-motion:reduce){.ws-toast,.ws-toast.visible{transition:none;transform:translate(-50%,0)}}
/* 채널 관리 좁은 화면 — 작품 관리처럼: 돋보기 검색칸 + 프로필 타일 가로 줄, 숨긴 채널 관리는 줄 끝 타일 */
.channels-layout .ch-search svg,.channels-layout .tc-hidden-tile{display:none}
@media(max-width:760px){
 .channels-layout .template-sidebar{max-height:none;padding:12px}
 .channels-layout .ch-search{display:flex;align-items:center;gap:9px;background:var(--inset);border-radius:9px;height:38px;padding:0 12px;color:var(--muted)}
 .channels-layout .ch-search svg{display:block;width:16px;height:16px;flex:none}
 .channels-layout .ch-search-lab{display:none}
 .channels-layout .template-sidebar .ch-search input{margin:0;height:auto;padding:0;background:transparent;border:0;outline:none;font-size:12px;color:var(--ink)}
 .channels-layout .template-channels{display:flex;gap:6px;overflow-x:auto;margin-top:10px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
 .channels-layout .template-channels::-webkit-scrollbar{display:none}
 .channels-layout .template-channels button,.channels-layout .template-channels button.has-av{flex:none;width:78px;min-width:0;flex-direction:column;align-items:center;gap:6px;padding:10px 4px 8px;text-align:center}
 .channels-layout .template-channels .tc-av{width:40px;height:40px;font-size:14px}
 .channels-layout .template-channels .tc-txt{display:block;width:100%;font-size:11px;font-weight:600;line-height:1.35}
 .channels-layout .template-channels .tc-txt small{display:block;margin-top:2px}
 .channels-layout .template-channels .tc-txt,.channels-layout .template-channels .tc-txt small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
 .channels-layout .template-channels .tc-txt small{font-weight:400}
 .channels-layout .tc-hidden-tile{display:flex}
 .channels-layout .tc-hidden-tile .tc-av{background:var(--inset);color:var(--secondary);font-weight:700}
 .channels-layout .tc-hidden-tile .tc-txt{color:var(--secondary)}
 .channels-layout .ch-hidden-open{display:none}
}

/* 채널 관리 · 사용 작품 상태 거르기(src/channels.js) — 알약 칩, 고른 것은 검정 */
.channel-works .ch-status-filter{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.channel-works .ch-status-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:0;border-radius:999px;font:inherit;font-size:12px;font-weight:600;cursor:pointer;background:var(--inset);color:var(--secondary)}
.channel-works .ch-status-chip b{font-weight:600;color:var(--muted)}
.channel-works .ch-status-chip.on{background:var(--solid);color:var(--on-solid)}.channel-works .ch-status-chip.on b{color:inherit;opacity:.7}
.channel-works .ch-status-empty,.channel-works .ch-status-more{font-size:12px;color:var(--muted);margin:10px 0 0}
/* 렌더 템플릿(0133) — 새 파이프라인 영상 모양. 칸은 면의 밝기로만 나눈다 */
.rt-sw{display:inline-flex;flex-direction:column;justify-content:center;gap:2px;width:20px;height:20px;border-radius:5px;background:#141416;padding:0 3px;flex:none}
.rt-sw i{display:block;height:3px;border-radius:2px}
.rt-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);gap:22px;align-items:start;margin-top:18px}
.rt-form fieldset{display:flex;flex-direction:column}
.rt-form label{margin:0}
.rt-form input,.rt-form select{border:0;background:var(--inset);border-radius:8px;height:38px;padding:0 10px;font:inherit;font-size:12px;color:var(--ink);min-width:0}
.rt-color{display:flex;gap:6px;align-items:center}
.rt-color input[type=color]{width:38px;height:38px;padding:4px;flex:none;cursor:pointer}
.rt-color input[type=color]::-webkit-color-swatch-wrapper{padding:0}.rt-color input[type=color]::-webkit-color-swatch{border:0;border-radius:5px}
.rt-color input:not([type]){flex:1;text-transform:uppercase}
.rt-none{font-size:11px;color:var(--muted);line-height:1.7}
.rt-status{font-size:11px;color:var(--secondary);min-height:18px;margin:14px 0 0}
.rt-actions{display:flex;gap:8px;align-items:center;margin-top:8px}
.rt-actions>span{flex:1}
.rt-actions button{border:0;border-radius:999px;height:36px;padding:0 16px;font-size:12px;font-weight:600;background:var(--inset);color:var(--ink);width:auto}
.rt-actions .primary{background:var(--solid);color:var(--on-solid)}
.rt-actions .rt-retire{background:none;color:var(--muted);padding:0 4px}
.rt-preview{background:var(--inset);border-radius:16px;padding:18px;position:sticky;top:0}
.rt-preview h3{margin:0 0 6px;font-size:13px}.rt-preview>p{font-size:11px;margin:0 0 12px}
.rt-pick{display:flex;flex-direction:column;gap:8px}
.rt-pick select{border:0;background:var(--surface);border-radius:8px;height:36px;padding:0 10px;font-size:11px;color:var(--ink);min-width:0}
.rt-go{border:0;border-radius:999px;height:36px;background:var(--solid);color:var(--on-solid);font-size:12px;font-weight:600}
.rt-shots{margin-top:14px}
.rt-shot-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rt-shot-grid figure{margin:0}.rt-shot-grid img{display:block;width:100%;border-radius:10px;background:#141416}
.rt-shot-grid figcaption{font-size:10px;color:var(--muted);text-align:center;margin-top:6px}
.rt-wait,.rt-stale,.rt-fail{font-size:11px;line-height:1.7;border-radius:10px;padding:10px 12px;margin:0 0 10px;background:var(--surface);color:var(--secondary)}
.rt-fail{color:var(--danger)}
@media(max-width:1100px){.rt-split{grid-template-columns:1fr}.rt-preview{position:static}}
.rt-color input[type=color]:has(+ input:placeholder-shown){opacity:.3}

/* 채널 템플릿 · 작품 탭(0134) */
.ct-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0 0}
.ct-tab{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px 0 8px;border:0;border-radius:10px;background:var(--inset);color:var(--secondary);font:inherit;font-size:12px;font-weight:600;position:relative}
.ct-tab.on{background:var(--solid);color:var(--on-solid)}
.ct-dot{width:6px;height:6px;border-radius:50%;background:var(--accent,#2456E8);display:inline-block}
.ct-scope{display:inline-flex;background:var(--inset);border-radius:999px;padding:3px;margin-top:16px}
.ct-scope button{border:0;background:none;border-radius:999px;height:30px;padding:0 14px;font:inherit;font-size:12px;font-weight:600;color:var(--secondary)}
.ct-scope button.on{background:var(--surface);color:var(--ink)}
.template-main .ct-state{font-size:11px;color:var(--secondary);margin:8px 0 0}
.ct-load{margin-bottom:14px}.ct-load select{height:32px;font-size:11px;color:var(--secondary)}
.ct-old{margin-top:26px;background:var(--inset);border-radius:14px;padding:14px 16px}
.ct-old summary{cursor:pointer;font-size:12px;font-weight:600;list-style:none}
.ct-old summary::-webkit-details-marker{display:none}
.ct-old summary small{font-weight:400;color:var(--muted);margin-left:6px}
.ct-old form{margin-top:12px}.ct-old input,.ct-old select{border:0;background:var(--surface);border-radius:8px;height:36px;padding:0 10px}
.ct-body{padding-bottom:8px}.ct-body .rt-preview{top:0}
.rt-form .template-fields{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.ct-logo{margin-bottom:6px}.ct-logo-row{display:flex;flex-direction:column;gap:8px}.ct-logo .ch-logo-mini{width:44px;height:26px;border-radius:6px;background:repeating-conic-gradient(color-mix(in srgb,var(--ink) 13%,var(--surface)) 0 25%,color-mix(in srgb,var(--ink) 19%,var(--surface)) 0 50%) 0 0/8px 8px;display:grid;place-items:center;overflow:hidden}.ct-logo .ch-logo-mini img{max-width:100%;max-height:100%}.ct-logo .ch-logo-chip small{font-size:10px;opacity:.7}
/* 채널 템플릿: 칸(왼쪽)과 실제 모양 보기(오른쪽)는 높이가 같은 두 판 — 스크롤도 따로 */
.template-main>.ct-top{flex:none;overflow:visible;padding:18px 24px}
.ct-top .ct-tabs{margin:0}
.template-main>.template-split.ct-split{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:stretch;flex:1 1 auto;min-height:0}
.ct-left{background:var(--surface);border-radius:var(--layout-panel-radius);padding:24px;min-width:0;min-height:0;overflow:auto}
.ct-left>.rt-form{background:none;padding:0;border-radius:0;overflow:visible}
.ct-split>.ct-side{display:block;height:auto;min-height:0;overflow:auto;padding:20px}
.ct-side .rt-pick select{background:var(--inset)}
.ct-side .rt-wait,.ct-side .rt-stale,.ct-side .rt-fail{background:var(--inset)}
@media(max-width:1100px){.template-main>.template-split.ct-split{grid-template-columns:1fr}}
.ct-voice{margin-bottom:6px}.ct-voice-row{display:flex;gap:8px;align-items:center}.ct-voice-row select{flex:1;max-width:340px}.ct-listen{border:0;border-radius:999px;height:36px;padding:0 14px;background:var(--inset);font:inherit;font-size:12px;font-weight:600;color:var(--ink)}.ct-voice .rt-none{margin:6px 0 0}

/* 폰트 고르기(src/font-picker.js) — 이름을 그 폰트로 보여 준다 */
.fp{position:relative;min-width:0}
.fp-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;border-radius:8px;background:var(--panel2,var(--inset));color:inherit;padding:6px 9px;font-size:15px;cursor:pointer;text-align:left;line-height:1.3}
.fp-btn:disabled{opacity:.5;cursor:default}
.fp-btn .fp-cur{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fp-btn .fp-dots{margin-right:-2px}
.fp-btn svg{width:14px;height:14px;flex:none;stroke:currentColor;opacity:.55;fill:none;stroke-width:2}
.fp-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:50;background:var(--panel2,var(--surface));border-radius:10px;padding:6px;max-height:320px;overflow:auto;box-shadow:0 12px 32px rgba(0,0,0,.35)}
.fp-list[hidden]{display:none}
.fp-item{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;color:inherit;padding:7px 8px;border-radius:7px;font-size:16px;text-align:left;cursor:pointer;line-height:1.3}
.fp-item>span{flex:1;min-width:0}
.fp-item:hover{background:color-mix(in srgb,currentColor 10%,transparent)}
.fp-item.on{background:#5e5ce6;color:#fff}
.fp-item small{font-family:Pretendard,-apple-system,sans-serif;font-size:10.5px;opacity:.65;white-space:nowrap}
/* 제목 두 줄 색 — 두 색을 이어 붙인 알약, 흰색도 보이게 옅은 회색 테두리 */
.fp-dots{display:inline-flex;flex:none;height:10px;border-radius:999px;overflow:hidden;box-shadow:0 0 0 1px rgba(128,128,128,.55)}.fp-dots b{width:10px;height:10px}

/* 채널 템플릿 위쪽: 작품 드롭다운(2026-10-02) — 칸은 다른 입력처럼 회색, 적용 모습 미리보기 판은 흰색 */
.template-main>header .ct-head{display:flex;flex-wrap:wrap;align-items:center;column-gap:14px}
.template-main>header .ct-head h2{margin:0}
.template-main>header .ct-head p{flex-basis:100%}
.ct-work{display:flex;align-items:center;min-width:0;flex:0 1 380px}
.ct-work .fp{flex:1;min-width:0}
.ct-work .fp-btn{font-family:inherit;font-size:14px;background:var(--inset);padding:9px 12px}
/* 흰 판 맨 위 작품 고르기 — 상자 없이 제목처럼 크게(2026-10-07) */
.rt-form>.ct-work{display:flex;margin:0 0 20px;flex:none}
.rt-form>.ct-work .fp{flex:0 1 auto;max-width:100%}
.rt-form>.ct-work .fp-btn{width:auto;max-width:100%;justify-content:flex-start;gap:10px;padding:2px 4px 2px 0;background:none;border-radius:6px;font-size:22px;font-weight:750;letter-spacing:-.6px;color:var(--ink)}
.rt-form>.ct-work .fp-btn:hover{color:var(--secondary)}
.rt-form>.ct-work .fp-btn svg{width:18px;height:18px;opacity:.7}
.ct-work .fp-item{font-family:inherit;font-size:14px}
.ct-work .fp-btn .fp-dots{margin:0 2px 0 6px}
.ct-split>.ct-side.rt-preview{background:var(--surface)}
/* 채널 관리: 채널 이름을 누르면 유튜브 채널(새 탭) — 평소엔 제목 그대로, 올리면 밑줄 · 화살표 */
.ch-yt-link{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.ch-yt-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .12s}
.ch-yt-link:hover{text-decoration:underline;text-underline-offset:4px}.ch-yt-link:hover svg,.ch-yt-link:focus-visible svg{opacity:.6}
/* 채널 템플릿 '바로 보기'(2026-10-07) — 렌더 없이 글자색 · 폰트. 아래 맥미니 렌더 미리보기와 같은 흰 판 안 */
.ct-quick{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}
.ct-quick-h{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}
.ct-quick-h h3{margin:0;font-size:15px}
.ct-quick-seg{display:inline-flex;gap:3px;padding:3px;border-radius:999px;background:var(--inset)}
.ct-quick-seg button{border:0;border-radius:999px;background:none;padding:5px 12px;font:inherit;font-size:12px;color:var(--secondary);cursor:pointer}
.ct-quick-seg button[aria-selected="true"]{background:var(--surface);color:var(--ink);font-weight:650}
.ct-quick .shorts-preview.ct-quick-stage{width:240px;height:auto;max-height:none;flex:none;aspect-ratio:9/16}
.ct-quick-note{margin:0;font-size:12px;color:var(--muted);text-align:center}
.ct-preset{margin:-12px 0 18px;font-size:12px;color:var(--secondary);line-height:1.6}
.ct-preset b{color:var(--ink);font-weight:650}
/* 채널 템플릿 '끌어서 정하기'(2026-10-08) — 바로 보기 위 요소를 끌어 크기 · 위치를 정한다. 테두리 없이 면으로, 고른 것만 점선 */
.ct-quick .shorts-preview.ct-drag{width:270px;user-select:none;touch-action:none}
.ct-drag>div{position:absolute}
.ct-drag .cd-t{left:0;right:0;text-align:center;font-weight:800;line-height:1;white-space:nowrap;pointer-events:none}
.ct-drag .cd-band{background:#2a2d33 center/cover no-repeat;cursor:ns-resize}
.ct-drag .cd-hd{position:absolute;left:50%;top:-1px;width:40px;height:5px;margin-left:-20px;border-radius:3px;background:#fff;box-shadow:0 0 4px #0009;cursor:ns-resize}
.ct-drag .cd-line{left:7.4%;right:7.4%;display:flex;align-items:flex-end;justify-content:center;text-align:center;font-weight:900;line-height:1.2;white-space:nowrap;text-shadow:0 0 .1em #000,0 0 .1em #000,0 0 .16em #000;cursor:ns-resize;z-index:2}
.ct-drag .cd-logo{display:grid;place-items:center;cursor:move;z-index:3}
.ct-drag .cd-logo img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.ct-drag .cd-rs{position:absolute;right:-6px;bottom:-6px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--accent);cursor:nwse-resize;z-index:4}
.ct-drag .sel{outline:1.5px dashed #fff;outline-offset:2px}
.ct-drag .cd-safe{left:0;right:0;height:0;border-top:1.5px dashed #FFD600;cursor:ns-resize;z-index:1}
.ct-drag .cd-safe::before{content:"";position:absolute;left:0;right:0;top:-7px;height:14px}
.ct-drag .cd-safe span{position:absolute;right:6px;top:-15px;font-size:9px;color:#FFD600;white-space:nowrap}
.ct-drag .cd-safe.bad{border-top-color:#FF5A5A}.ct-drag .cd-safe.bad span{color:#FF5A5A}
/* 제목 · 로고를 넣는 범위(엔진 200 · 1715)는 흐린 점선, 실제 썸네일이 잘리는 곳(2:3 가운데 크롭, 148 · 1770)은 진한 선(2026-10-20 사용자) */
.ct-drag .cd-safe{border-top-style:dotted;border-top-color:rgba(255,214,0,.55)}.ct-drag .cd-safe span{color:rgba(255,214,0,.8)}
.ct-drag .cd-safe.top{cursor:default;pointer-events:none}.ct-drag .cd-safe.top::before{content:none}.ct-drag .cd-safe.top span{top:3px}
.ct-drag .cd-crop{position:absolute;left:0;right:0;height:0;border-top:1.5px dashed #FFD600;pointer-events:none;z-index:1}
.ct-drag .cd-crop span{position:absolute;left:6px;top:-15px;font-size:9px;color:#FFD600;white-space:nowrap}.ct-drag .cd-crop.bot span{top:3px}
.ct-drag .cd-safe.bad{border-top-color:#FF5A5A}.ct-drag .cd-safe.bad span{color:#FF5A5A}
.ct-drag .cd-ui{inset:0;z-index:5;pointer-events:none}.ct-drag .cd-ui[hidden]{display:none}.ct-drag .cd-ui i{position:absolute}
.ct-drag .cd-tip{left:50%;transform:translate(-50%,-100%);z-index:6;padding:3px 8px;border-radius:6px;background:rgba(0,0,0,.75);color:#fff;font-size:10px;white-space:nowrap;pointer-events:none}
.ct-drag-tools{display:flex;justify-content:center;align-items:center;gap:6px;min-height:30px;flex-wrap:wrap}
.ct-drag-tools span{font-size:11px;color:var(--muted);margin-right:2px}
.ct-drag-tools button{height:30px;padding:0 10px;border:0;border-radius:999px;background:var(--inset);color:var(--ink);font:inherit;font-size:12px;cursor:pointer}
.ct-drag-note{margin:0;font-size:11px;line-height:1.5;color:var(--muted);text-align:center;min-height:0;max-width:300px}
.ct-drag-note.bad{color:var(--status-error)}
.ct-safe-btn{margin-left:auto;width:32px;height:32px;flex:none;border:0;border-radius:50%;display:grid;place-items:center;background:var(--inset);color:var(--ink);cursor:pointer}
.ct-safe-btn[aria-pressed="true"]{background:var(--ink);color:var(--surface)}
.ct-quick-h .ct-quick-seg{margin-left:0}
.ct-real{width:100%;margin-top:14px}
.ct-real>summary{cursor:pointer;font-size:13px;font-weight:650;padding:8px 0}
.ct-layout-note{margin:0;font-size:12px;color:var(--secondary)}
.ct-num{margin-top:6px}.ct-num>summary{cursor:pointer;font-size:12px;color:var(--secondary);padding:6px 0}
.ct-num .template-fields{margin-top:8px}.ct-num small{font-size:10px;color:var(--muted)}

/* 채널 템플릿 '제목 폭에 맞춰 채우기' 스위치 줄(0176) */
.ct-fill{display:flex;align-items:center;gap:12px;margin:12px 0 2px;font-size:13px}
.ct-fill-lb{flex:1}.ct-fill-lb small{display:block;font-size:11px;color:var(--muted);margin-top:2px;line-height:1.5}

/* 화살표 규칙(10/27): 6.4×3.2 · 중간 회색 · 1.4px */
.fp-btn svg{width:12.8px;height:12.8px;opacity:1;stroke:var(--secondary);stroke-width:2.625}.rt-form>.ct-work .fp-btn svg{width:12.8px;height:12.8px;opacity:1}
