:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;--bg-dark: #1a1a1a;--bg-panel: #242424;--bg-input: #333333;--text-primary: #ffffff;--text-secondary: #a1a1aa;--accent: #646cff;--accent-hover: #747bff;--border: #3f3f46;background-color:var(--bg-dark);color:var(--text-primary)}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}#root{width:100%;height:100vh;display:flex;overflow:hidden}.app-container{display:flex;width:100%;height:100%}.sidebar{width:320px;background-color:var(--bg-panel);border-right:1px solid var(--border);padding:2rem;display:flex;flex-direction:column;gap:2rem;overflow-y:auto;box-shadow:4px 0 24px #0003;z-index:10}.canvas-area{flex:1;background-color:var(--bg-dark);background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:20px 20px;display:flex;align-items:center;justify-content:center;padding:2rem;overflow:hidden}.canvas-wrapper{box-shadow:0 0 50px #00000080;border:1px solid var(--border);max-width:100%;max-height:100%;aspect-ratio:auto}canvas{display:block;max-width:100%;max-height:100%}h1{font-size:1.5rem;font-weight:700;margin:0;background:linear-gradient(to right,#fff,#a1a1aa);-webkit-background-clip:text;-webkit-text-fill-color:transparent}h2{font-size:.875rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin-bottom:1rem}.control-group{display:flex;flex-direction:column;gap:1rem}.control-item{display:flex;flex-direction:column;gap:.5rem}label{font-size:.875rem;color:var(--text-secondary);display:flex;justify-content:space-between}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--bg-input);cursor:pointer;transition:border-color .25s,background-color .25s;color:#fff;display:flex;align-items:center;justify-content:center;gap:.5rem}button:hover{background-color:var(--accent);border-color:var(--accent)}button.primary{background-color:var(--accent)}button.primary:hover{background-color:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed;background-color:var(--bg-input);border-color:transparent}input[type=range]{width:100%;height:6px;background:var(--bg-input);border-radius:3px;outline:none;-webkit-appearance:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:var(--accent);border-radius:50%;cursor:pointer;border:2px solid var(--bg-panel)}.upload-group{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.file-input-wrapper{position:relative;overflow:hidden}.file-input-wrapper input[type=file]{position:absolute;top:0;left:0;width:100%;height:100%;font-size:100px;text-align:right;filter:alpha(opacity=0);opacity:0;outline:none;background:#fff;cursor:inherit;display:block}.switch-wrapper{display:flex;align-items:center;justify-content:space-between}.switch{position:relative;display:inline-block;width:48px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:var(--bg-input);transition:.4s;border-radius:24px}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.slider{background-color:var(--accent)}input:focus+.slider{box-shadow:0 0 1px var(--accent)}input:checked+.slider:before{transform:translate(24px)}.svg-modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.svg-modal{background:var(--bg-panel);border-radius:12px;border:1px solid var(--border);max-width:95vw;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.svg-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border)}.svg-modal-header h3{margin:0;font-size:1.1rem;font-weight:600}.svg-modal-close{background:none;border:none;font-size:1.5rem;padding:.25rem .5rem;line-height:1;color:var(--text-secondary);cursor:pointer}.svg-modal-close:hover{color:var(--text-primary);background:none}.svg-modal-content{flex:1;overflow:auto;padding:1.5rem;background:#fff}.svg-preview{display:flex;justify-content:center;min-width:max-content}.svg-preview svg{max-width:100%;height:auto}.svg-modal-footer{display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem;border-top:1px solid var(--border)}.svg-modal-footer button{padding:.5rem 1rem}
