
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lbl{display:block;font-size:13px;font-weight:600;color:var(--ink2);margin-bottom:6px}
.it-grid{display:grid;grid-template-columns:380px minmax(0,1fr);gap:20px;align-items:start}
.it-settings{position:sticky;top:12px}
.it-settings h3{margin:18px 0 8px}
.presets{display:grid;gap:8px}
.pgroup{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pg{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;width:100%}
.chip{font-size:13px;padding:6px 11px;min-height:34px}
.rs,.cm{margin-top:10px}
input[type=range]{width:100%;accent-color:var(--brand);height:30px}
.kbchips{margin:0 0 8px}
.kbchips button{font-size:13px;padding:5px 10px;min-height:32px}
.chk{display:flex;gap:8px;align-items:center;font-weight:500;font-size:14px;cursor:pointer}
.chk input{width:18px;height:18px;accent-color:var(--brand)}
.outrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
.bgrow{display:flex;gap:8px;align-items:center}
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;min-height:210px;border:2px dashed #a5b4fc;background:#f8faff;cursor:pointer;transition:background .15s,border-color .15s}
.drop:hover,.drop.over{background:#eef2ff;border-color:var(--brand)}
.drop svg{width:58px;height:58px}
.drop b{font-size:18px}
.drop u{color:var(--brand)}
.drop span{font-size:14px;color:var(--muted)}
.res-head{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;margin:18px 0 10px}
.res-acts{display:flex;gap:8px}
.results{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.res{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px}
.res .th{width:72px;height:72px;border-radius:8px;overflow:hidden;background:repeating-conic-gradient(#eef0f4 0 25%,#fff 0 50%) 0 0/14px 14px;border:0;padding:0;cursor:zoom-in}
.res .th img{width:100%;height:100%;object-fit:cover;display:block}
.res .nm{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.res .sz{font-size:13px;color:var(--ink2);font-variant-numeric:tabular-nums}
.res .sz s{color:var(--muted)}
.badge{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:2px 8px;margin-left:4px}
.b-ok{background:#d1fae5;color:#065f46}.b-warn{background:#fef3c7;color:#92400e}.b-err{background:#fee2e2;color:#991b1b}
.res .note{font-size:12.5px;color:var(--warn);margin-top:2px}
.res .acts{display:flex;gap:6px}
.res.busy .sz::after{content:" · working…";color:var(--brand)}
.cmp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.cmp-grid figure{margin:0;background:repeating-conic-gradient(#eef0f4 0 25%,#fff 0 50%) 0 0/14px 14px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.cmp-grid img{display:block;width:100%;max-height:60vh;object-fit:contain}
.cmp-grid figcaption{background:#fff;font-size:13px;padding:6px 10px;color:var(--ink2)}
dialog{border:0;border-radius:16px;padding:18px;width:min(900px,calc(100% - 24px));box-shadow:0 20px 60px rgba(15,23,42,.35)}
dialog::backdrop{background:rgba(15,23,42,.55)}
.dlg-head{display:flex;justify-content:space-between;align-items:center}.dlg-head h2{margin:0;font-size:19px}
@media (max-width:980px){.it-grid{grid-template-columns:1fr;gap:14px}.it-settings{position:static;order:2}.it-main{display:contents}.drop{order:1}.res-head{order:3;margin:4px 0 0}.results{order:4}}
@media (max-width:560px){.res{grid-template-columns:60px minmax(0,1fr)}.res .th{width:60px;height:60px}.res .acts{grid-column:1/-1}.res .acts .btn{flex:1}.cmp-grid{grid-template-columns:1fr}.drop{min-height:170px}}
