/* SVG Background Pattern Generator — Styles */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --primary:#EC4899;--primary-hover:#F472B6;--primary-glow:rgba(236,72,153,0.2);
  --accent:#8B5CF6;--accent-hover:#A78BFA;
  --bg:#12080F;--bg-surface:#1C0F1A;--bg-elevated:#2A1625;
  --border:rgba(236,72,153,0.12);--border-focus:rgba(236,72,153,0.4);
  --text:#F5E6F0;--text-muted:#A78B9E;--text-dim:#5A3D52;
  --radius:12px;--radius-sm:8px;--transition:200ms ease;
  --sans:'Inter',system-ui,sans-serif;
}
html{font-size:16px;-webkit-font-smoothing:antialiased}
body{font-family:var(--sans);background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column;line-height:1.5}

.header{background:var(--bg-surface);border-bottom:1px solid var(--border);padding:0.75rem 1.5rem}
.header-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}
.logo{font-size:1.1rem;font-weight:700;background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.header-actions{display:flex;gap:0.5rem}
.accent-btn{font-family:var(--sans);font-size:0.82rem;font-weight:600;padding:0.5rem 1rem;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;cursor:pointer;transition:all var(--transition)}
.accent-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px var(--primary-glow)}
.secondary-btn{font-family:var(--sans);font-size:0.82rem;font-weight:500;padding:0.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition)}
.secondary-btn:hover{border-color:var(--primary);color:var(--primary)}

.main{flex:1;display:flex;gap:1rem;padding:1rem;max-width:1400px;margin:0 auto;width:100%}

.sidebar{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:0.75rem;overflow-y:auto;max-height:calc(100vh - 80px)}
.control-group{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:0.875rem}
.control-label{font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-muted);margin-bottom:0.5rem;display:flex;justify-content:space-between;align-items:center}
.control-label span{color:var(--primary);font-family:monospace}

.pattern-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.35rem}
.pattern-btn{font-size:0.7rem;font-weight:500;padding:0.4rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-dim);cursor:pointer;transition:all var(--transition);text-align:center;line-height:1.3}
.pattern-btn:hover{border-color:var(--primary);color:var(--text)}
.pattern-btn.active{background:var(--primary-glow);border-color:var(--primary);color:var(--primary)}

.color-row{display:flex;flex-direction:column;gap:0.5rem}
.color-field{display:flex;align-items:center;justify-content:space-between}
.color-field span{font-size:0.78rem;color:var(--text-muted)}
.color-field input[type="color"]{width:32px;height:32px;border:1px solid var(--border);border-radius:6px;background:var(--bg);cursor:pointer;padding:2px}

.slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:var(--bg-elevated);outline:none;margin-top:0.25rem}
.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--primary);cursor:pointer;border:2px solid var(--bg);box-shadow:0 0 6px var(--primary-glow)}

.canvas-area{flex:1;display:flex;align-items:center;justify-content:center;min-height:400px}
.preview{width:100%;height:100%;min-height:400px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;background:var(--bg-surface)}

.toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(20px);background:var(--bg-elevated);color:var(--text);padding:0.6rem 1.25rem;border-radius:var(--radius);border:1px solid var(--border);font-size:0.82rem;font-weight:500;box-shadow:0 8px 32px rgba(0,0,0,0.5);opacity:0;pointer-events:none;transition:all 300ms ease;z-index:999}
.toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}

.hidden{display:none!important}
@media(max-width:768px){.main{flex-direction:column} .sidebar{width:100%;max-height:auto;flex-direction:row;flex-wrap:wrap} .control-group{flex:1;min-width:240px} .canvas-area{min-height:300px}}
