*{box-sizing:border-box;margin:0;padding:0;font-family:'Segoe UI',system-ui,sans-serif}
body{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);min-height:100vh;padding:20px;color:#1f2937}
.app{max-width:1100px;margin:0 auto}
.hero{text-align:center;color:#fff;margin-bottom:24px}
.hero h1{font-size:2.4rem;margin-bottom:8px;text-shadow:0 2px 8px rgba(0,0,0,.2)}
.hero p{opacity:.95}
.card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.15);margin-bottom:20px}
.step{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #eee}
.upload-btn{background:#667eea;color:#fff;padding:12px 22px;border-radius:10px;cursor:pointer;font-weight:600;transition:transform .15s}
.upload-btn:hover{transform:translateY(-2px)}
.bg-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bg{width:34px;height:34px;border-radius:50%;border:2px solid #fff;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.15);transition:transform .15s}
.bg:hover{transform:scale(1.15)}
.bg.active{outline:3px solid #667eea;outline-offset:2px}
#customColor{width:38px;height:34px;border:none;border-radius:8px;cursor:pointer;background:none}
.remove-bg{margin-left:8px;font-size:.9rem;display:flex;align-items:center;gap:6px;cursor:pointer}
.editor{display:grid;grid-template-columns:1fr 320px;gap:24px}
@media(max-width:768px){.editor{grid-template-columns:1fr}}
.cropper-area{background:#f3f4f6;border-radius:12px;min-height:400px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
#image{max-width:100%;display:none}
.placeholder{color:#9ca3af;font-size:1.1rem}
.preview-area{display:flex;flex-direction:column;align-items:center;gap:14px}
.preview-area h3{font-size:1rem;color:#4b5563}
.preview-box{border:3px dashed #d1d5db;border-radius:10px;padding:10px;background:#f9fafb}
#previewCanvas{width:175px;height:225px;display:block;background:#fff}
.primary{background:#667eea;color:#fff;border:none;padding:12px 22px;border-radius:10px;cursor:pointer;font-weight:600;width:100%;text-align:center;text-decoration:none;display:block;transition:.2s}
.primary:hover:not(:disabled){background:#5568d3;transform:translateY(-2px)}
.primary:disabled{opacity:.5;cursor:not-allowed}
.primary.outline{background:#fff;color:#667eea;border:2px solid #667eea}
#result{text-align:center}
#result h2{margin-bottom:16px;color:#10b981}
#resultImg{max-width:300px;border:4px solid #fff;box-shadow:0 8px 24px rgba(0,0,0,.2);border-radius:8px}
footer{text-align:center;color:#fff;opacity:.85;margin-top:20px}
