/* [2026-07-21] 이미지 최적화(리사이즈+압축) 스타일
   첨부 목업을 사이트 톤(#37be69)에 맞춰 이전. .rsz 스코프로 main.css와 충돌 방지. */

.rsz{
  --bg2:#fff;--bg3:#f0f2f5;
  --border:#e4e7ed;--border2:#d0d5dd;
  --accent:#37be69;--accent2:rgba(55,190,105,.1);--accent-dark:#2da85a;
  --text:#1a1d23;--text2:#6b7280;--text3:#9ca3af;
  --radius:10px;--shadow:0 1px 4px rgba(0,0,0,.07);
  color:var(--text);font-size:14px;
  width:1080px;max-width:100%;margin:48px auto;padding:0 20px 40px;
}
.rsz *{box-sizing:border-box;}
.rsz-hidden{display:none !important;}

/* 인라인 아이콘(Feather 스타일, currentColor 상속) */
.rsz .ico{width:16px;height:16px;flex:none;vertical-align:-3px;margin-right:6px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.rsz .ico--lg{width:40px;height:40px;stroke-width:1.5;margin:0;vertical-align:middle;}
.rsz .preset-glbl .ico{width:13px;height:13px;vertical-align:-2px;margin-right:4px;}

.rsz .page-title{margin-bottom:36px;text-align:center;}
.rsz .page-title h1{font-size:28px;font-weight:700;margin-bottom:8px;color:#16181d;letter-spacing:-.02em;}
.rsz .page-title p{font-size:15px;color:#5b6270;line-height:1.6;}

.rsz .layout{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start;}
.rsz .panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:12px;}
.rsz .panel-head{padding:11px 16px;border-bottom:1px solid var(--border);font-size:16px;font-weight:500;color:var(--text);}
.rsz .panel-body{padding:14px 16px;}

/* 업로드 */
.rsz .upload-zone{border:2px dashed var(--border2);border-radius:10px;padding:36px 16px;text-align:center;cursor:pointer;background:var(--bg3);transition:.2s;}
.rsz .upload-zone:hover{border-color:var(--accent);background:var(--accent2);}
.rsz .upload-zone .u-icon{font-size:36px;margin-bottom:10px;}
.rsz .upload-zone h3{font-size:14px;font-weight:600;margin-bottom:5px;}
.rsz .upload-zone p{font-size:11px;color:var(--text2);}
.rsz input[type=file]{display:none;}
.rsz-file-cnt{font-size:11px;color:var(--text2);margin:8px 0 4px;}

/* 파일 칩 */
.rsz .chip-wrap{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;}
.rsz .chip{display:flex;align-items:center;gap:4px;background:var(--bg3);border-radius:5px;padding:3px 8px;font-size:11px;color:var(--text2);max-width:140px;}
.rsz .chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rsz .chip-del{cursor:pointer;color:var(--text3);flex-shrink:0;}

/* 모드 탭 */
.rsz .mode-tabs{display:flex;border:1px solid var(--border2);border-radius:8px;overflow:hidden;margin-bottom:12px;}
.rsz .mode-tab{flex:1;padding:7px 4px;font-size:12px;font-weight:500;text-align:center;cursor:pointer;background:var(--bg3);color:var(--text);border:none;}
.rsz .mode-tab.on{background:var(--accent);color:#fff;}

/* 필드 */
.rsz .field-row{margin-bottom:12px;}
.rsz .fl{font-size:14px;font-weight:500;color:var(--text2);display:flex;justify-content:space-between;margin-bottom:5px;}
.rsz .fv{color:var(--accent);}
.rsz input[type=number],.rsz select{background:var(--bg3);border:1px solid var(--border2);border-radius:7px;color:var(--text);font-size:13px;padding:6px 9px;width:100%;}
.rsz input[type=number]:focus,.rsz select:focus{outline:none;border-color:var(--accent);}
.rsz input[type=range]{width:100%;accent-color:var(--accent);}
.rsz input[type=checkbox]{accent-color:var(--accent);}
.rsz .two-inp{display:grid;grid-template-columns:1fr 20px 1fr;align-items:center;gap:6px;}
.rsz .two-inp input{text-align:center;}
.rsz .x-sep{text-align:center;color:var(--text3);font-size:12px;}
.rsz-ratio-lock{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text2);cursor:pointer;}
.rsz-note{font-size:12px;color:var(--text2);}
.rsz-fit-row{border-top:1px solid var(--border);padding-top:12px;margin-top:4px;}
.rsz-hint{font-size:12px;color:var(--text3);margin-top:6px;line-height:1.5;}
.rsz-anchor{display:grid;grid-template-columns:repeat(3,26px);grid-template-rows:repeat(3,26px);gap:4px;}
.rsz-anchor-btn{width:26px;height:26px;border:1px solid var(--border2);background:var(--bg3);border-radius:5px;cursor:pointer;padding:0;position:relative;}
.rsz-anchor-btn:hover{border-color:var(--accent);}
.rsz-anchor-btn.on{background:var(--accent2);border-color:var(--accent);}
.rsz-anchor-btn.on::after{content:'';position:absolute;inset:0;margin:auto;width:8px;height:8px;background:var(--accent);border-radius:2px;}

/* 미리보기 */
.rsz-preview-sub{font-weight:400;color:var(--text3);font-size:11px;}
.rsz-preview-box{display:flex;align-items:center;justify-content:center;background:var(--bg3);border-radius:8px;padding:12px;margin-bottom:8px;min-height:140px;}
.rsz #preview-canvas{max-width:100%;max-height:440px;height:auto;display:block;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.15);}
.rsz #preview-canvas.rsz-grab{cursor:grab;}
.rsz #preview-canvas.rsz-grab:active{cursor:grabbing;}
.rsz-warn{color:#c47b00;}

/* 프리셋 */
.rsz .preset-group{margin-bottom:10px;}
.rsz .preset-glbl{font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px;}
.rsz .preset-chips{display:flex;gap:5px;flex-wrap:wrap;}
.rsz .pchip{padding:4px 9px;border-radius:20px;border:1px solid var(--border2);background:var(--bg3);font-size:11px;cursor:pointer;color:var(--text2);white-space:nowrap;line-height:1.4;text-align:center;}
.rsz .pchip:hover{border-color:var(--accent);color:var(--accent);}
.rsz .pchip.on{background:var(--accent2);color:var(--accent);border-color:var(--accent);font-weight:600;}

/* 품질 */
.rsz .q-btns{display:flex;gap:5px;}
.rsz .q-btn{flex:1;padding:5px 4px;border-radius:6px;border:1px solid var(--border2);background:var(--bg3);font-size:12px;font-weight:500;cursor:pointer;color:var(--text2);text-align:center;}
.rsz .q-btn.on{background:var(--accent);color:#fff;border-color:var(--accent);}

/* 변환 버튼 */
.rsz .go-btn{width:100%;padding:11px;border-radius:9px;border:none;background:var(--accent);color:#fff;font-size:14px;font-weight:700;cursor:pointer;margin-top:4px;}
.rsz .go-btn:disabled{background:var(--border2);cursor:not-allowed;color:var(--text3);}

/* 결과 */
.rsz .result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:10px;margin-bottom:14px;}
.rsz .rcard{background:#fff;border:1px solid var(--border);border-radius:9px;overflow:hidden;box-shadow:var(--shadow);}
.rsz .rcard img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--bg3);}
.rsz .rcard-info{padding:8px 10px;}
.rsz .rname{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px;}
.rsz .rmeta{font-size:10px;color:var(--text3);line-height:1.7;}
.rsz .rnew{color:var(--accent);font-weight:600;}
.rsz-muted{color:var(--text3);}
.rsz .rdl{width:100%;padding:5px;border:none;background:var(--bg3);color:var(--text2);font-size:11px;font-weight:600;cursor:pointer;}
.rsz .rdl:hover{background:var(--accent2);color:var(--accent);}

/* 진행 */
.rsz .prog-wrap{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:12px;box-shadow:var(--shadow);}
.rsz .prog-hd{display:flex;justify-content:space-between;font-size:12px;margin-bottom:8px;}
.rsz .prog-cnt{color:var(--accent);font-weight:700;}
.rsz .prog-bar-bg{height:6px;background:var(--bg3);border-radius:3px;overflow:hidden;}
.rsz .prog-bar{height:100%;background:var(--accent);border-radius:3px;transition:width .2s;width:0%;}
.rsz .empty-state{text-align:center;padding:60px 20px;color:var(--text3);}
.rsz .empty-state .icon{font-size:40px;margin-bottom:10px;}
.rsz .empty-state p{font-size:14px;}
.rsz-empty-panel{border:none !important;box-shadow:none !important;background:transparent !important;}

.rsz .dl-row{display:flex;gap:8px;justify-content:flex-end;margin-bottom:10px;}
.rsz .btn{padding:7px 16px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;border:none;display:inline-flex;align-items:center;gap:4px;}
.rsz .btn-ghost{background:transparent;border:1px solid var(--border2);color:var(--text2);}
.rsz .btn-ghost:hover{background:var(--bg3);}
.rsz .btn-accent{background:var(--accent);color:#fff;}
.rsz .btn-accent:hover{background:var(--accent-dark);}

@media(max-width:768px){
  .rsz{margin:clamp(24px,5.2vw,40px) auto;padding:0 clamp(12px,2.6vw,20px) clamp(28px,5.2vw,40px);}
  .rsz .layout{grid-template-columns:1fr;gap:clamp(12px,2.6vw,16px);}
  .rsz .page-title h1{font-size:clamp(20px,4.7vw,28px);}
  .rsz .page-title p{font-size:clamp(13px,2.6vw,15px);}
  .rsz .result-grid{grid-template-columns:repeat(auto-fill,minmax(clamp(130px,28vw,175px),1fr));}
}
