:root{--font-sans:'Inter',-apple-system,sans-serif;--font-mono:'JetBrains Mono',monospace;--radius:12px;--transition:0.2s ease}
[data-theme="dark"]{--bg:#0F0F1A;--bg-card:rgba(26,26,46,0.95);--bg-input:rgba(236,72,153,0.05);--border:rgba(236,72,153,0.12);--text:#E8E4F0;--text2:#A0A0C0;--text3:#6060A0;--primary:#EC4899;--gradient:linear-gradient(135deg,#EC4899,#8B5CF6)}
*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);min-height:100vh}
.app{max-width:700px;margin:0 auto}.header{padding:16px 24px;border-bottom:1px solid var(--border)}
.header h1{font-size:1rem;font-weight:700;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.btn{font-family:var(--font-sans);font-size:.82rem;font-weight:500;padding:8px 16px;border-radius:8px;border:none;cursor:pointer;transition:all var(--transition)}
.btn-primary{background:var(--gradient);color:#fff}.btn-primary:hover{transform:translateY(-1px)}
.btn-sm{font-size:.72rem;padding:6px 10px}
.main{padding:24px;display:flex;flex-direction:column;gap:16px}
.upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:40px;text-align:center;color:var(--text2);font-size:.85rem;transition:all var(--transition);cursor:pointer}
.upload-zone.dragover{border-color:var(--primary);background:var(--bg-input)}
.file-label{color:var(--primary);cursor:pointer;font-weight:600}
.presets h3{font-size:.85rem;font-weight:600;margin-bottom:10px}
.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:16px}
.preset{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:10px;cursor:pointer;text-align:center;transition:all var(--transition)}
.preset:hover{border-color:var(--primary);background:var(--bg-input)}
.preset .p-name{font-size:.78rem;font-weight:600;margin-bottom:2px}.preset .p-size{font-size:.72rem;font-family:var(--font-mono);color:var(--text3)}
.custom h4{font-size:.78rem;font-weight:600;margin-bottom:6px;color:var(--text2)}
.row{display:flex;gap:8px;align-items:center}
.row input[type="number"]{width:80px;padding:6px;background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:.82rem;font-family:var(--font-mono);outline:none}
.row span{color:var(--text3)}
