*{box-sizing:border-box}
body{margin:0;font-family:system-ui,sans-serif;background:#0f1115;color:#eceef2}
main{max-width:1000px;margin:0 auto;padding:32px 16px 64px}
h1{margin:0;font-size:2rem}
.sub{color:#9aa1ad;margin:6px 0 24px}
.drop{display:flex;align-items:center;justify-content:center;height:130px;border:2px dashed #3a4050;border-radius:14px;cursor:pointer;color:#9aa1ad;transition:.15s}
.drop:hover,.drop.over{border-color:#4c8dff;color:#fff;background:#161a22}
.controls{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin-top:20px}
.controls label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:#9aa1ad}
input[type=number],select{background:#1a1e27;color:#fff;border:1px solid #3a4050;border-radius:8px;padding:10px;font-size:1rem;width:110px}
button{background:#4c8dff;color:#fff;border:0;border-radius:8px;padding:11px 18px;font-size:1rem;cursor:pointer}
button:disabled{opacity:.4;cursor:not-allowed}
button.small{padding:6px 10px;font-size:.8rem;background:#2a3040}
.info{color:#9aa1ad;font-size:.9rem;min-height:1.2em}
.stitchWrap{margin:8px 0 18px;border-radius:10px;overflow:hidden;background:#000}
#stitch{display:block;width:100%;height:auto}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;align-items:start}
.card{background:#161a22;border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:8px}
.card img{width:100%;height:auto;border-radius:6px;display:block;background:#000}
.card .row{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:#9aa1ad}
