.canvas-wrap[data-v-e2450c27]{width:100%;height:100%;background:linear-gradient(var(--border) 1px,transparent 1px) 0 0 / 24px 24px,linear-gradient(90deg,var(--border) 1px,transparent 1px) 0 0 / 24px 24px,var(--bg);background-blend-mode:normal;border-radius:8px;overflow:hidden}svg[data-v-e2450c27]{width:100%;height:100%;display:block}.feat[data-v-e2450c27]{cursor:pointer;vector-effect:non-scaling-stroke;transition:fill-opacity .1s}.feat.outline[data-v-e2450c27]{fill:var(--outline);fill-opacity:.06;stroke:var(--outline)}.feat.aperture[data-v-e2450c27]{fill:var(--aperture);fill-opacity:.35;stroke:var(--aperture)}.feat.ignored[data-v-e2450c27]{fill:var(--ignored);fill-opacity:.08;stroke:var(--ignored);stroke-dasharray:4 3}.feat[data-v-e2450c27]:hover{fill-opacity:.55}.feat.outline[data-v-e2450c27]:hover{fill-opacity:.18}.feat.selected[data-v-e2450c27]{stroke:#fff}.viewer[data-v-5d3089e0]{width:100%;height:100%;border-radius:8px;overflow:hidden;background:var(--bg);position:relative}.nogl[data-v-5d3089e0]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:.82rem;padding:1rem}.app[data-v-08ce06b9]{display:flex;flex-direction:column;height:100%}header[data-v-08ce06b9]{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:var(--panel)}.brand[data-v-08ce06b9]{display:flex;align-items:center;gap:.75rem}.logo[data-v-08ce06b9]{font-size:1.6rem;color:var(--accent)}h1[data-v-08ce06b9]{font-size:1.15rem;margin:0}h2[data-v-08ce06b9]{font-size:.95rem;margin:0}.upload[data-v-08ce06b9]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem}.dropzone[data-v-08ce06b9]{width:min(560px,90vw);padding:3rem 2rem;border:2px dashed var(--border);border-radius:14px;background:var(--panel);text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.dropzone[data-v-08ce06b9]:hover,.dropzone.over[data-v-08ce06b9]{border-color:var(--accent);background:var(--panel-2)}.dz-icon[data-v-08ce06b9]{font-size:2.5rem;color:var(--accent)}.dz-inner p[data-v-08ce06b9]{margin:.5rem 0}.sample-row[data-v-08ce06b9]{margin:0}.editor[data-v-08ce06b9]{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1rem;min-height:0}.panel[data-v-08ce06b9]{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1rem;display:flex;flex-direction:column;min-height:0}.panel-head[data-v-08ce06b9]{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.75rem}.canvas-holder[data-v-08ce06b9]{flex:1;min-height:0;position:relative}.empty[data-v-08ce06b9]{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted)}.legend[data-v-08ce06b9]{display:flex;gap:1rem;margin:.6rem 0;flex-wrap:wrap}.legend i.sw[data-v-08ce06b9]{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:4px;vertical-align:-1px;border:1px solid}.sw.outline[data-v-08ce06b9]{background:#4c8dff26;border-color:var(--outline)}.sw.aperture[data-v-08ce06b9]{background:#38d39f66;border-color:var(--aperture)}.sw.ignored[data-v-08ce06b9]{background:transparent;border-color:var(--ignored);border-style:dashed}.feature-tools[data-v-08ce06b9]{border-top:1px solid var(--border);padding-top:.6rem}.sel-info[data-v-08ce06b9]{margin-bottom:.5rem}.sel-info .outline[data-v-08ce06b9]{color:var(--outline)}.sel-info .aperture[data-v-08ce06b9]{color:var(--aperture)}.btn-row[data-v-08ce06b9]{display:flex;gap:.5rem}.btn-row button[data-v-08ce06b9]{flex:1}.layer-row[data-v-08ce06b9]{margin-top:.5rem}.config[data-v-08ce06b9]{display:flex;flex-direction:column;gap:.6rem}.config.grid2[data-v-08ce06b9]{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.4rem}.field[data-v-08ce06b9]{display:flex;flex-direction:column;gap:.25rem}.field span[data-v-08ce06b9]{font-size:.82rem;color:var(--muted)}.field em[data-v-08ce06b9]{font-style:normal;opacity:.6}.adv-toggle[data-v-08ce06b9]{align-self:flex-start;padding:.2rem 0;border:none;background:none;color:var(--accent)}.summary[data-v-08ce06b9]{margin:.75rem 0;line-height:1.5}.gen[data-v-08ce06b9]{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem}.warn[data-v-08ce06b9]{color:var(--danger);margin:.4rem 0 0}.preview[data-v-08ce06b9]{flex:1;min-height:220px;margin:.75rem 0;position:relative;border:1px solid var(--border);border-radius:8px;overflow:hidden}.preview-hint[data-v-08ce06b9]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.export[data-v-08ce06b9]{display:flex;flex-direction:column;gap:.5rem}.warnings[data-v-08ce06b9]{margin-top:.75rem}.warnings ul[data-v-08ce06b9]{margin:.4rem 0 0;padding-left:1.1rem}.spinner[data-v-08ce06b9]{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin-08ce06b9 .7s linear infinite}@keyframes spin-08ce06b9{to{transform:rotate(360deg)}}@media(max-width:900px){.editor[data-v-08ce06b9]{grid-template-columns:1fr}}:root{--bg: #0f1115;--panel: #181b22;--panel-2: #1f232c;--border: #2b303b;--text: #e6e9ef;--muted: #9aa3b2;--accent: #4c8dff;--accent-2: #38d39f;--danger: #ff5c6c;--outline: #4c8dff;--aperture: #38d39f;--ignored: #5b6472;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text)}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:.5rem .85rem;border-radius:7px;transition:background .15s,border-color .15s}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.1)}button.ghost{background:transparent}input[type=number],select{font:inherit;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.4rem .5rem;width:100%}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:.82rem}
