/* [2026-07-23] 영상 합치기(이어붙이기) — .vmg 스코프, 사이트 톤(#37be69) */

.vmg{
  --accent:#37be69;--accent-d:#0d8339;--accent2:#e5f6ec;
  --border:#e4e7ed;--border2:#d0d5dd;
  --text:#16181d;--text2:#5b6270;--text3:#9aa0ab;--bg3:#f0f2f5;
  --radius:12px;--shadow:0 1px 4px rgba(0,0,0,.07);
  width:1080px;max-width:100%;margin:48px auto;padding:0 20px 40px;color:var(--text);font-size:14px;
}
.vmg *{box-sizing:border-box;}
.vmg-hidden{display:none !important;}
/* 클립 디코딩용 오프스크린 비디오(캔버스 draw 위해 display:none 대신 화면 밖으로) */
.vmg-offscreen{position:absolute;left:-99999px;top:0;width:1px;height:1px;overflow:hidden;pointer-events:none;}

.vmg .page-title{margin-bottom:24px;text-align:center;}
.vmg .page-title h1{font-size:28px;font-weight:700;margin-bottom:8px;color:#16181d;letter-spacing:-.02em;}
.vmg .page-title p{font-size:15px;color:var(--text2);line-height:1.6;}

.vmg-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;align-items:start;}
.vmg-panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden;}
.vmg-panel-head{padding:11px 16px;border-bottom:1px solid var(--border);font-size:14px;font-weight:600;color:var(--text);display:flex;justify-content:space-between;align-items:center;}
.vmg-panel-body{padding:16px;}
.vmg-left{position:sticky;top:20px;}
.vmg-count{font-size:12px;color:var(--text3);font-weight:500;}

/* 스테이지(합성 미리보기 캔버스) */
.vmg-stage{background:#000;border-radius:10px;overflow:hidden;line-height:0;margin-bottom:12px;}
.vmg-stage canvas{width:100%;display:block;max-height:440px;background:#000;}
.vmg-playbar{display:flex;align-items:center;gap:12px;}
.vmg-playbtn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border2);background:#fff;color:var(--text);border-radius:9px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer;}
.vmg-playbtn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.vmg-playbtn:disabled{opacity:.5;cursor:not-allowed;}
.vmg-dur{font-size:13px;color:var(--text2);font-variant-numeric:tabular-nums;}
.vmg-dur b{color:var(--accent-d);}

/* 업로드 */
.vmg-drop{border:2px dashed var(--border2);border-radius:10px;padding:24px 16px;text-align:center;cursor:pointer;background:var(--bg3);transition:.2s;}
/* [2026-08-12] 추가 - 영상 드롭존을 영상 미리보기와 같은 크기(16:9, 최대 440px)로 확대 */
#vmgDrop{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:16/9;max-height:440px;padding:16px;}
.vmg-drop:hover{border-color:var(--accent);background:var(--accent2);}
.vmg-drop svg{width:36px;height:36px;stroke:var(--text3);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:6px;}
.vmg-drop h3{font-size:13px;font-weight:600;margin-bottom:3px;}
.vmg-drop p{font-size:11px;color:var(--text2);}
/* [2026-08-28] 클립 추가 후 드롭존을 콤팩트하게 정리(계속 추가는 가능) */
#vmgDrop.has{aspect-ratio:auto;max-height:none;flex-direction:row;gap:8px;padding:10px 14px;}
#vmgDrop.has svg{width:20px;height:20px;margin-bottom:0;}
#vmgDrop.has h3{font-size:12px;margin-bottom:0;}
#vmgDrop.has p{display:none;}
.vmg input[type=file]{display:none;}

/* 클립 목록 */
.vmg-none{font-size:13px;color:var(--text3);text-align:center;padding:16px 0;}
.vmg-list{display:flex;flex-direction:column;gap:8px;}
.vmg-item{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:9px;padding:8px;background:#fff;}
.vmg-item .idx{width:20px;text-align:center;font-weight:700;color:var(--accent-d);font-size:13px;flex:none;}
.vmg-item img{width:56px;height:34px;object-fit:cover;border-radius:5px;border:1px solid var(--border);background:#000;flex:none;}
.vmg-item-info{flex:1;min-width:0;}
.vmg-item-info b{display:block;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.vmg-item-info span{font-size:11px;color:var(--text2);font-variant-numeric:tabular-nums;}
.vmg-item-ord{display:flex;flex-direction:column;gap:2px;flex:none;}
.vmg-ord-btn{border:1px solid var(--border2);background:#fff;color:var(--text2);border-radius:5px;width:24px;height:18px;line-height:1;cursor:pointer;font-size:11px;padding:0;}
.vmg-ord-btn:disabled{opacity:.35;cursor:not-allowed;}
.vmg-ord-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent-d);}
.vmg-del{border:none;background:none;color:#d64545;font-size:12px;font-weight:600;cursor:pointer;padding:4px 6px;border-radius:6px;flex:none;}
.vmg-del:hover{background:#fdecec;}

/* 버튼 */
.vmg-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:11px;border-radius:9px;border:1px solid var(--border2);background:#fff;color:var(--text);font-size:14px;font-weight:600;cursor:pointer;margin-bottom:8px;}
.vmg-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.vmg-btn:last-child{margin-bottom:0;}
.vmg-btn--primary{background:var(--accent);color:#fff;border-color:var(--accent);}
.vmg-btn--primary:hover{background:var(--accent-d);}
.vmg-btn:disabled{opacity:.5;cursor:not-allowed;}

/* 진행 */
.vmg-progress{margin-top:12px;}
.vmg-progress.vmg-hidden{display:none;}
.vmg-bar{height:8px;background:var(--bg3);border-radius:5px;overflow:hidden;}
.vmg-bar > i{display:block;height:100%;width:0;background:var(--accent);transition:width .12s;}
.vmg-progress-label{font-size:12px;color:var(--text2);text-align:center;margin-top:6px;}

.vmg-tip{font-size:12px;color:var(--text3);line-height:1.6;margin-top:10px;}
.vmg-tip a{color:var(--accent-d);}

@media (max-width:900px){
  .vmg-layout{grid-template-columns:1fr;}
  .vmg-left{position:static;}
}
@media (max-width:768px){
  .vmg{margin:clamp(24px,5.2vw,48px) auto;padding:0 clamp(12px,2.6vw,20px) clamp(24px,5.2vw,40px);}
  .vmg .page-title h1{font-size:clamp(20px,4.7vw,28px);}
  .vmg .page-title p{font-size:clamp(13px,2.6vw,15px);}
  .vmg-panel-body{padding:clamp(12px,3.1vw,16px);}
}
