:root{color:#0f172a;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#475569;--border-primary:#dbe5ec;--border-secondary:#cbd5e1;--surface-page:radial-gradient(circle at 8% 10%, #d1fae5 0%, transparent 32%), radial-gradient(circle at 92% 90%, #bfdbfe 0%, transparent 30%), #f7fbff;--surface-panel:#fff;--surface-subtle:#f8fbff;--surface-secondary:#f1f5f9;--surface-hover:#e2e8f0;--surface-canvas:#eef5fb;--surface-input:#fff;--border-color:#e2e8f0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Space Grotesk,Segoe UI,sans-serif;line-height:1.4}[data-theme=dark]{color:#e2e8f0;--text-primary:#e2e8f0;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--border-primary:#334155;--border-secondary:#475569;--surface-page:radial-gradient(circle at 10% 10%, #0f766e33 0%, transparent 32%), radial-gradient(circle at 90% 90%, #2563eb38 0%, transparent 34%), #020617;--surface-panel:#0f172a;--surface-subtle:#111827;--surface-secondary:#1e293b;--surface-hover:#334155;--surface-canvas:#0b1220;--surface-input:#1e293b;--border-color:#334155}*{box-sizing:border-box}body{background:var(--surface-page);min-height:100vh;color:var(--text-primary);margin:0}#root{max-width:1440px;margin:0 auto;padding:20px}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size:12px;--rc-drag-handle-mobile-size:24px;--rc-drag-handle-bg-colour:#0003;--rc-drag-bar-size:6px;--rc-border-color:#ffffffb3;--rc-focus-color:#08f}.ReactCrop{cursor:crosshair;max-width:100%;display:inline-block;position:relative}.ReactCrop *,.ReactCrop :before,.ReactCrop :after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{max-height:inherit;overflow:hidden}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{max-width:100%;max-height:inherit;display:block}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px);position:absolute;inset:0}.ReactCrop__crop-selection{cursor:move;position:absolute;top:0;left:0;transform:translate(0)}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";border:1px solid var(--rc-border-color);opacity:.3;position:absolute;inset:-1px}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed #fff}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){color:#fff;background-image:linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:10px 1px,10px 1px,1px 10px,1px 10px;animation:1s linear infinite marching-ants}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";background-color:#fff6;display:block;position:absolute}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6667%}.ReactCrop__drag-handle{width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color);position:absolute}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{cursor:nw-resize;top:0;left:0;transform:translate(-50%,-50%)}.ReactCrop .ord-n{cursor:n-resize;top:0;left:50%;transform:translate(-50%,-50%)}.ReactCrop .ord-ne{cursor:ne-resize;top:0;right:0;transform:translate(50%,-50%)}.ReactCrop .ord-e{cursor:e-resize;top:50%;right:0;transform:translate(50%,-50%)}.ReactCrop .ord-se{cursor:se-resize;bottom:0;right:0;transform:translate(50%,50%)}.ReactCrop .ord-s{cursor:s-resize;bottom:0;left:50%;transform:translate(-50%,50%)}.ReactCrop .ord-sw{cursor:sw-resize;bottom:0;left:0;transform:translate(-50%,50%)}.ReactCrop .ord-w{cursor:w-resize;top:50%;left:0;transform:translate(-50%,-50%)}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{width:100%;height:var(--rc-drag-bar-size);top:0;left:0;transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{width:var(--rc-drag-bar-size);height:100%;top:0;right:0;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{width:100%;height:var(--rc-drag-bar-size);bottom:0;left:0;transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{width:var(--rc-drag-bar-size);height:100%;top:0;left:0;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}.app{gap:16px;display:grid;position:relative}.devel-chip{z-index:50;color:#fff;letter-spacing:.06em;text-transform:uppercase;pointer-events:none;background:#0f766eeb;border:1px solid #0f172a24;border-radius:999px;justify-content:center;align-items:center;min-height:22px;padding:0 8px;font-size:.65rem;font-weight:700;display:inline-flex;position:fixed;bottom:12px;right:12px;box-shadow:0 10px 30px #0f172a2e}[data-theme=dark] .devel-chip{background:#0d9488e6;border-color:#94a3b82e;box-shadow:0 12px 32px #02061773}.app.is-fullscreen{max-height:100vh;padding-bottom:24px;overflow-y:auto}.app-header{border:1px solid var(--border-primary);background:var(--surface-panel);border-radius:12px;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.app-header-brand{align-items:center;gap:10px;display:flex}.app-header-logo{flex-shrink:0;align-items:center;display:flex}.app-header-name{color:var(--text-primary);letter-spacing:-.01em;font-size:1.15rem;font-weight:700}.app-header-controls{align-items:center;gap:10px;display:flex}.fullscreen-toggle{display:inline-flex}.icon-button{background:var(--surface-subtle);width:24px;height:24px;color:var(--text-primary);border:1px solid var(--border-primary);justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:hover:not(:disabled){background:var(--surface-input)}.header-login-btn{color:#fff;white-space:nowrap;cursor:pointer;background:#0f766e;border:none;border-radius:8px;justify-content:center;align-items:center;height:30px;padding:0 14px;font-size:.85rem;font-weight:600;line-height:1;transition:background .15s;display:inline-flex}.header-login-btn:hover{background:#0d5f59}.theme-select-shell{min-width:112px;display:inline-flex;position:relative}.theme-select-shell:before{content:"▾";color:var(--text-secondary);pointer-events:none;font-size:.8rem;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.theme-select-shell:after{content:attr(data-label);color:var(--text-primary);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;position:absolute;top:50%;left:10px;right:26px;overflow:hidden;transform:translateY(-50%)}.theme-select{appearance:none;border:1px solid var(--border-primary);background:var(--surface-subtle);color:#0000;cursor:pointer;border-radius:8px;width:100%;padding:6px 28px 6px 10px;font-size:.9rem}.theme-select option{color:#0f172a}.toolbar{border:1px solid var(--border-primary);background:var(--surface-subtle);border-radius:12px;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:12px;display:flex}.toolbar-group{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar-actions{margin-left:auto}.toolbar-start-over-button{text-align:left;justify-content:flex-start;align-items:center;gap:6px;display:inline-flex}.toolbar-mobile-menu{margin-left:auto;display:none;position:relative}.toolbar-menu-button{flex-shrink:0}.toolbar-menu-panel{z-index:20;border:1px solid var(--border-primary);background:var(--surface-panel);border-radius:12px;gap:8px;min-width:180px;padding:10px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 30px #0f172a24}.toolbar-menu-panel button{text-align:left;width:100%}.download-control{align-items:stretch;display:inline-flex}.download-control-select{border:1px solid var(--border-secondary);background:var(--surface-input);color:var(--text-primary);cursor:pointer;border-right:none;border-radius:8px 0 0 8px;padding:8px 0;font-size:.8rem}.download-control-button{white-space:nowrap;border-radius:0 8px 8px 0}.download-control-select:disabled{opacity:.5;cursor:not-allowed}.toolbar-menu-download{width:100%}.toolbar-menu-download .download-control{width:100%;display:flex}.toolbar-menu-download .download-control-button{text-align:left;flex:1}.file-input{border:1px solid var(--border-secondary);background:var(--surface-input);color:var(--text-primary);border-radius:8px;align-items:center;gap:8px;padding:6px 10px;display:inline-flex}.file-input input{max-width:220px}.image-name{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.95rem;display:flex}.image-metadata{color:var(--text-secondary);font-size:.85rem}.image-info{display:inline-flex;position:relative}.image-info-button{border-radius:50%;width:24px;height:24px}.image-info-tooltip{border:1px solid var(--border-primary);background:var(--surface-panel);min-width:180px;color:var(--text-primary);white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:30;border-radius:8px;gap:2px;padding:8px 10px;font-size:.8rem;transition:opacity .15s,visibility .15s,transform .15s;display:grid;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(2px);box-shadow:0 14px 30px #0f172a24}.image-info:hover .image-info-tooltip,.image-info:focus-within .image-info-tooltip,.image-info.is-open .image-info-tooltip{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%)translateY(0)}.marker-toggle{border-top:1px solid var(--border-primary);width:100%;padding-top:10px}.checkbox-label{color:var(--text-secondary);cursor:pointer;user-select:none;align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.checkbox-label input[type=checkbox]{accent-color:#0f766e;cursor:pointer;width:16px;height:16px}button{color:#fff;cursor:pointer;background:#0f766e;border:none;border-radius:8px;padding:8px 12px}button:disabled{opacity:.5;cursor:not-allowed}.btn-apply{background:#7c3aed}.btn-apply:hover:not(:disabled){background:#6d28d9}.btn-clone{background:#2563eb;width:100%;margin-top:4px}.btn-clone:hover:not(:disabled){background:#1d4ed8}.btn-delete{background:#dc2626;margin-top:4px}.btn-delete:hover:not(:disabled){background:#b91c1c}.btn-remove-background{background:#0f766e;width:100%;margin-top:4px}.btn-remove-background:hover:not(:disabled){background:#0d5f59}.btn-replace-background{background:#1d4ed8}.btn-replace-background:hover:not(:disabled){background:#1a44c0}.replace-bg-panel{border:1px solid var(--border-primary);background:var(--surface-subtle);color:var(--text-primary);border-radius:8px;margin-top:8px;padding:10px}.replace-bg-tabs{gap:4px;margin-bottom:10px;display:flex}.replace-bg-tab{border:1px solid var(--border-primary);background:var(--surface-input);color:var(--text-muted);cursor:pointer;border-radius:5px;flex:1;padding:5px 0;font-size:.8rem;transition:background .15s,color .15s}.replace-bg-tab:hover:not(:disabled){background:var(--surface-canvas);color:var(--text-primary)}.replace-bg-tab.active{color:#fff;background:#1d4ed8;border-color:#1d4ed8}.replace-bg-body{margin-bottom:10px}.replace-bg-field{flex-direction:column;gap:6px;display:flex}.replace-bg-label{color:var(--text-muted);font-size:.8rem}.replace-bg-color-input{border:1px solid var(--border-primary);background:var(--surface-input);cursor:pointer;border-radius:4px;width:48px;height:32px;padding:2px}.replace-bg-color-value{color:var(--text-muted);font-family:monospace;font-size:.75rem}.replace-bg-upload-btn{align-self:flex-start}.replace-bg-filename{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.replace-bg-textarea{resize:vertical;border:1px solid var(--border-primary);background:var(--surface-input);width:100%;min-height:60px;color:var(--text-primary);box-sizing:border-box;border-radius:5px;padding:6px 8px;font-family:inherit;font-size:.82rem}.replace-bg-textarea::placeholder{color:var(--text-muted)}.replace-bg-textarea:focus{outline-offset:-1px;outline:2px solid #1d4ed8}.replace-bg-actions{justify-content:flex-end;gap:6px;display:flex}.btn-replace-bg-apply{background:#1d4ed8}.btn-replace-bg-apply:hover:not(:disabled){background:#1a44c0}.btn-spinner{vertical-align:-2px;border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:14px;height:14px;margin-right:6px;animation:.7s linear infinite btn-spin;display:inline-block}.resize-panel{border:1px solid var(--border-primary);background:var(--surface-subtle);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:8px;flex-direction:column;gap:10px;margin-top:4px;padding:10px;display:flex}.resize-fields{flex-wrap:wrap;gap:12px;display:flex}.resize-field{flex-direction:column;flex:140px;gap:6px;min-width:140px;display:flex}.resize-label{color:var(--text-muted);font-size:.8rem}.resize-input-row{align-items:center;gap:6px;display:flex}.resize-input{border:1px solid var(--border-primary);background:var(--surface-input);width:100%;min-width:0;color:var(--text-primary);font-variant-numeric:tabular-nums;box-sizing:border-box;border-radius:5px;flex:1;padding:5px 8px;font-size:.85rem}.resize-input:focus{outline-offset:-1px;outline:2px solid #0f766e}.resize-stepper{border:1px solid var(--border-primary);background:var(--surface-input);width:32px;height:32px;color:var(--text-primary);cursor:pointer;touch-action:none;user-select:none;border-radius:5px;flex:none;padding:0;font-size:1rem;line-height:1}.resize-stepper:hover:not(:disabled){background:var(--surface-canvas)}.resize-stepper:active:not(:disabled){color:#fff;background:#0f766e}.resize-stepper:disabled{opacity:.5;cursor:default}.resize-lock{color:var(--text-secondary);cursor:pointer;user-select:none;align-items:center;gap:8px;font-size:.82rem;display:flex}.resize-lock input{accent-color:#0f766e;width:16px;height:16px;margin:0}.resize-preview{color:var(--text-secondary);background:var(--surface-canvas);border:1px solid var(--border-primary);border-radius:6px;flex-wrap:wrap;gap:8px 16px;padding:8px 10px;font-size:.8rem;display:flex}.resize-preview strong{color:var(--text-primary);font-weight:600}.resize-actions{justify-content:flex-end;gap:6px;display:flex}.btn-resize-apply{background:#0f766e}.btn-resize-apply:hover:not(:disabled){background:#115e59}@keyframes btn-spin{to{transform:rotate(360deg)}}.add-object-row{gap:6px;margin-bottom:8px;display:flex}.add-object-row input{flex:1;min-width:0}.add-object-row button{white-space:nowrap}.change-add{background:#16a34a}.btn-draw-zone{white-space:nowrap}.btn-draw-zone.active{color:#fff;background:#2563eb}.canvas-frame.drawing-mode{cursor:crosshair}.drawing-rect{pointer-events:none;z-index:10;background:#2563eb26;border:2px dashed #2563eb;position:absolute}.focus-region-overlay{pointer-events:none;z-index:8;width:100%;height:100%;position:absolute;inset:0}.focus-region-overlay.drawing{z-index:10}.focus-region-polygon{fill:#f59e0b33;stroke:#f59e0b;stroke-width:.004px;stroke-dasharray:.02 .012}.object-polygon-overlay{pointer-events:none;z-index:6;width:100%;height:100%;position:absolute;inset:0}.object-polygon{fill:#0f766e38;stroke:#0f766e;stroke-width:.004px}.object-polygon.selected{fill:#14b8a642;stroke:#14b8a6;stroke-width:.003px}.focus-region-polyline{fill:none;stroke:#f59e0b;stroke-width:.004px}.focus-region-label{color:#fff;white-space:nowrap;background:#78350f;border-radius:6px;padding:3px 6px;font-size:.72rem;position:absolute;transform:translateY(-100%)}.drawing-banner{color:#fff;z-index:11;white-space:nowrap;background:#000000bf;border-radius:6px;align-items:center;gap:8px;padding:6px 14px;font-size:.85rem;display:flex;position:absolute;top:8px;left:50%;transform:translate(-50%)}.btn-cancel-draw{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff80;border-radius:4px;padding:2px 8px;font-size:.8rem}.btn-analyze{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;width:100%;margin-top:12px;padding:10px 16px;font-size:.95rem}.btn-analyze:hover:not(:disabled){background:#1d4ed8}.btn-analyze:disabled{opacity:.6;cursor:not-allowed}.btn-analyze-ghost{color:#2563eb;cursor:pointer;background:0 0;border:1px solid #2563eb59;border-radius:6px;width:100%;margin-top:8px;padding:10px 16px;font-size:.95rem}.btn-analyze-ghost:hover:not(:disabled){background:#2563eb14}.btn-analyze-ghost:disabled{opacity:.6;cursor:not-allowed}.analyze-invite{text-align:center;padding:16px}.analyze-invite p{color:var(--text-muted,#475569);margin:0 0 16px;font-size:.95rem;line-height:1.5}.error{color:#9f1239;background:#fff1f2;border:1px solid #fecdd3;border-radius:10px;padding:10px}.workspace{grid-template-columns:1fr 320px;gap:16px;min-height:60vh;display:grid;position:relative}.workspace:has(.panel.collapsed),.workspace.no-image{grid-template-columns:1fr}.canvas-root{border:1px solid var(--border-primary);background:var(--surface-canvas);border-radius:12px;padding:10px}.canvas-root.has-image{justify-content:center;display:flex}.canvas-root.no-image{min-height:540px}.canvas-empty{min-height:520px;color:var(--text-muted);place-items:center;display:grid}.canvas-dropzone{cursor:pointer;border:2px dashed #334155;border-radius:10px;transition:border-color .2s,background .2s}.canvas-dropzone.drag-over{background:#60a5fa14;border-color:#60a5fa}.dropzone-content{color:#64748b;flex-direction:column;align-items:center;gap:12px;display:flex}.dropzone-content svg{opacity:.5}.drag-over .dropzone-content svg{opacity:.8;color:#60a5fa}.dropzone-content p{margin:0;font-size:1.1rem;font-weight:500}.dropzone-hint{opacity:.6;font-size:.85rem}.canvas-frame{touch-action:none;background:#0b1120;width:100%;position:relative}.canvas-image{user-select:none;-webkit-user-drag:none;width:100%;height:auto;display:block}.canvas-removal-preview{pointer-events:none;background-color:#fff;background-image:linear-gradient(45deg,#d1d5db 25%,#0000 25%),linear-gradient(-45deg,#d1d5db 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#d1d5db 75%),linear-gradient(-45deg,#0000 75%,#d1d5db 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;display:block;position:absolute;inset:0}.canvas-removal-preview-image{user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.canvas-removal-preview{isolation:isolate;z-index:2;position:relative}.vignette-overlay{pointer-events:none;z-index:1;position:absolute;inset:0}.image-color-layer{isolation:isolate;z-index:0;position:relative}.colorize-overlay{pointer-events:none;position:absolute;inset:0}.bokeh-overlay-canvas{pointer-events:none;z-index:4;width:100%;height:100%;position:absolute;inset:0}.foreground-occlusion-layer{pointer-events:none;z-index:5;position:absolute;inset:0}.foreground-occlusion-image{user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.canvas-extend-hint-layer{pointer-events:none;z-index:18;position:absolute;inset:0}.canvas-extend-hint-edge{opacity:.95;background:linear-gradient(90deg,#c084fc,#60a5fa);animation:1.8s ease-in-out infinite extend-hint-pulse;position:absolute;box-shadow:0 0 0 1px #c4b5fd59,0 0 14px #a855f773}.canvas-extend-hint-edge.is-up,.canvas-extend-hint-edge.is-down{height:3px;left:0;right:0}.canvas-extend-hint-edge.is-left,.canvas-extend-hint-edge.is-right{width:3px;top:0;bottom:0}.canvas-extend-hint-edge.is-up{top:0}.canvas-extend-hint-edge.is-down{bottom:0}.canvas-extend-hint-edge.is-left{left:0}.canvas-extend-hint-edge.is-right{right:0}@keyframes extend-hint-pulse{0%,to{opacity:.5;transform:scale(.99)}50%{opacity:1;transform:scale(1)}}.object-edit-groups{flex-direction:column;align-items:stretch;gap:8px;display:flex}.magic-loader-overlay{backdrop-filter:blur(8px);z-index:20;background:linear-gradient(135deg,#020617c7,#0f172a73);place-items:center;display:grid;position:absolute;inset:0}.magic-loader-card{background:#080f23b3;border:1px solid #ffffff29;border-radius:24px;place-items:center;gap:10px;padding:24px 28px;display:grid;box-shadow:0 18px 50px #0f172a4d}.magic-loader-label{color:#f8fafc;letter-spacing:.04em;text-transform:uppercase;font-size:.92rem;font-weight:600}.dropzone-generation-prompt{color:#e2e8f0f2;text-align:center;word-break:break-word;max-width:min(560px,70vw);font-size:.9rem;line-height:1.4}.object-adjustment-overlay{pointer-events:none;isolation:isolate;z-index:5;position:absolute;overflow:hidden}.object-adjustment-image{user-select:none;pointer-events:none;transform-origin:50%;max-width:none;position:absolute}.object-box{cursor:default;z-index:6;background:0 0;border:2px solid #0000;animation:.16s ease-out fade-in;position:absolute}.object-refine-spinner{pointer-events:none;border:2.5px solid #0f766e40;border-top-color:#0f766e;border-radius:50%;width:22px;height:22px;margin:-11px 0 0 -11px;animation:.7s linear infinite btn-spin;position:absolute;top:50%;left:50%}.object-box:not(.selected):not(.show-all):hover,.object-box.hovered:not(.selected):not(.show-all){cursor:pointer;background:#94a3b814;border-color:#94a3b88c}.object-box.show-all{background:#ef444426;border-color:#ef4444}.object-box.selected{cursor:move;border-color:#0f766e}.object-box.background-object{cursor:default;z-index:0;background:0 0;border:2px dashed #0000}.object-box.background-object.selected{cursor:default;background:0 0;border:2px dashed #0f766e}.background-label{top:4px;left:4px}.object-box.show-all.selected{background:#0f766e26;border-color:#0f766e}.object-label{color:#fff;white-space:normal;box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word;pointer-events:none;background:#0f172a;border-radius:6px;max-width:100%;padding:3px 6px;font-size:.72rem;line-height:1.15;display:none;position:absolute;top:-24px;left:0;overflow:hidden}.object-box.selected .object-label,.object-box.show-all .object-label,.object-box:not(.selected):not(.show-all):hover .object-label,.object-box.hovered:not(.selected):not(.show-all) .object-label{line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.object-box.label-above .object-label{top:auto;bottom:calc(100% + 4px)}.object-box.label-below .object-label{top:calc(100% + 4px)}.handle{background:#f8fafc;border:1px solid #0f766e;border-radius:999px;width:12px;height:12px;position:absolute}.handle-nw{cursor:nwse-resize;top:-6px;left:-6px}.handle-ne{cursor:nesw-resize;top:-6px;right:-6px}.handle-sw{cursor:nesw-resize;bottom:-6px;left:-6px}.handle-se{cursor:nwse-resize;bottom:-6px;right:-6px}.text-element-box{outline-offset:2px;outline:2px solid #0000;padding:2px 4px;animation:.16s ease-out fade-in}.text-element-box.text-depth-behind{z-index:2}.text-element-box.text-depth-front{z-index:9}.text-element-box:hover{outline-color:#94a3b88c}.text-element-box.selected{outline-color:#0f766e}.text-tool-editor{flex-wrap:wrap}.text-tool-input-label,.text-tool-color-label,.text-tool-font-label{flex-direction:column;gap:4px;display:flex}.text-tool-input{resize:vertical;min-width:200px;font:inherit;border:1px solid var(--border-primary);background:var(--surface-panel);color:inherit;border-radius:8px;padding:6px 8px}.text-tool-depth-toggle{gap:6px;display:flex}.text-tool-depth-btn{align-items:center;gap:6px;display:inline-flex}.text-tool-depth-hint{color:var(--text-secondary);margin:0;font-size:12px}.panel{border:1px solid var(--border-primary);background:var(--surface-panel);border-radius:12px;align-content:start;gap:10px;padding:14px;display:grid;position:relative}.panel-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.panel-header h2{margin:0}.panel-header-actions{align-items:center;gap:8px;display:inline-flex;position:relative}.panel-menu-wrap{position:relative}.panel-menu-button,.panel-toggle{border:1px solid var(--border-secondary);background:var(--surface-input);color:var(--text-primary);cursor:pointer;border-radius:8px}.panel-menu-button{justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:1.25rem;line-height:1;display:inline-flex}.panel-menu-button:hover,.panel-toggle:hover{border-color:var(--border-primary)}.panel-menu-panel{border:1px solid var(--border-primary);background:var(--surface-panel);z-index:30;border-radius:10px;gap:4px;min-width:160px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 30px #0f172a24}.panel-menu-panel button{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:8px 10px}.panel-menu-panel button:hover:not(:disabled){background:var(--surface-muted)}.panel-menu-panel button:disabled{opacity:.5;cursor:not-allowed}.object-selector{gap:6px;display:grid;position:relative}.object-selector select{box-sizing:border-box;border:1px solid var(--border-secondary);background:var(--surface-input);width:100%;color:var(--text-primary);border-radius:8px;padding:8px}.object-selector-trigger{box-sizing:border-box;border:1px solid var(--border-secondary);background:var(--surface-input);width:100%;color:var(--text-primary);text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px;font-size:.9rem;display:inline-flex}.object-selector-trigger:hover{border-color:var(--border-primary)}.object-selector-trigger-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.object-selector-trigger-chevron{opacity:.7;flex-shrink:0;font-size:.7rem}.object-selector-menu{z-index:30;border:1px solid var(--border-primary);background:var(--surface-panel);border-radius:10px;gap:2px;max-height:220px;margin:0;padding:4px;list-style:none;display:grid;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 14px 30px #0f172a24}.object-selector-option{cursor:pointer;color:var(--text-primary);border-radius:6px;padding:7px 8px;font-size:.88rem}.object-selector-option:hover{background:var(--surface-subtle)}.object-selector-option.is-selected{color:#0f766e;background:#0f766e2e;font-weight:600}.object-selector-empty{color:var(--text-muted);padding:7px 8px;font-size:.85rem}.object-selector-hint{color:var(--text-muted);margin:0;font-size:.78rem;line-height:1.4}.object-preview{justify-content:center;align-items:center;padding:8px 0 4px;display:flex}.object-preview-canvas{border:1px solid var(--border-secondary);border-radius:6px;max-width:100%;display:block}.panel-toggle{border:1px solid var(--border-secondary);background:var(--surface-input);width:28px;height:28px;color:var(--text-primary);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:background-color .16s,border-color .16s;display:inline-flex}.panel-toggle:hover{border-color:var(--border-primary);background:var(--surface-panel)}.panel-toggle-chevron{font-size:.85rem;line-height:1}.panel-back-btn{border:1px solid var(--border-color,#e2e8f0);width:26px;height:26px;color:var(--text-secondary,#64748b);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-right:6px;font-size:.9rem;transition:background .15s,color .15s;display:inline-flex}.panel-back-btn:hover{background:var(--surface-secondary,#f1f5f9);color:var(--text-primary,#111)}.panel.collapsed{z-index:20;box-shadow:none;background:0 0;border:none;align-self:auto;gap:0;width:auto;padding:0;position:absolute;top:12px;right:12px}.panel.collapsed .panel-header{justify-content:flex-end;width:auto;padding:0}.panel.collapsed h2{display:none}.panel.collapsed .panel-toggle{background:var(--surface-panel);border:1px solid var(--border-primary);width:32px;height:32px;box-shadow:0 4px 12px #0f172a26}.mobile-inspector{display:none}.panel-content{gap:10px;display:grid}.field{gap:6px;min-width:0;display:grid}.field label{color:var(--text-secondary);font-size:.82rem}.field input{box-sizing:border-box;border:1px solid var(--border-secondary);background:var(--surface-input);width:100%;min-width:0;max-width:100%;color:var(--text-primary);border-radius:8px;padding:8px}.field input[type=number]{font-variant-numeric:tabular-nums}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}@media (width<=960px){.workspace{grid-template-columns:1fr}.canvas-root.no-image{min-height:420px}}.canvas-column{flex-direction:column;gap:12px;min-width:0;display:flex}.inspector-shortcut{border:1px dashed var(--border-primary);background:var(--surface-subtle);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:12px 14px;display:flex}.inspector-shortcut-text{color:var(--text-muted);margin:0;font-size:.8rem;line-height:1.45}.inspector-shortcut-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:8px;padding:9px 18px;font-size:.9rem;font-weight:600}.inspector-shortcut-btn:hover{background:#1d4ed8}.pending-changes{border:1px solid var(--border-primary);background:var(--surface-subtle);border-radius:12px;padding:12px}.pending-changes-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.pending-changes-header h3{color:var(--text-primary);margin:0;font-size:.95rem}.pending-changes-actions{gap:8px;display:flex}.pending-changes-scope-note{color:var(--text-muted);margin:0 0 10px;font-size:.82rem}.pending-changes-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.pending-change-item{background:var(--surface-panel);border:1px solid var(--border-secondary);border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:.88rem;display:flex}.pending-change-item.is-selectable{cursor:pointer;transition:background-color .16s,border-color .16s}.pending-change-item.is-selectable:hover{background:var(--surface-subtle);border-color:var(--border-primary)}.pending-change-item.is-selected{background:#0f766e2e;border-color:#0f766e66}.pending-change-item.is-selected .change-description{color:#0f766e;font-weight:600}.change-badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.change-remove{color:#dc2626;background:#fee2e2}.change-replace{color:#b45309;background:#fef3c7}.change-modify{color:#2563eb;background:#dbeafe}.change-description{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.btn-dismiss-change{color:#94a3b8;background:0 0;border-radius:4px;padding:2px 6px;font-size:.8rem;line-height:1}.btn-dismiss-change:hover{color:#dc2626;background:#fee2e2}.pending-changes-empty{opacity:.6}.pending-changes-placeholder{color:var(--text-muted);text-align:center;margin:0;padding:4px 0;font-size:.85rem}.pending-changes-disclaimer{color:var(--text-muted);border-top:1px solid var(--border-secondary);margin:10px 0 0;padding:6px 8px;font-size:.8rem}.history-strip{border:1px solid var(--border-primary);background:linear-gradient(135deg,#0f766e14,#0ea5e91a);border-radius:12px;gap:12px;padding:14px;display:grid}.history-strip.collapsed{padding:8px 14px}.history-strip-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.history-toggle{color:var(--text-primary);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:0;display:inline-flex}.history-toggle:hover{color:#0f766e}.history-toggle-icon{font-size:.7rem;transition:transform .15s}.history-toggle h2{margin:0;font-size:1rem}.history-strip-list{gap:10px;padding-bottom:4px;display:flex;overflow-x:auto}.history-card{border:1px solid var(--border-primary);background:var(--surface-panel);min-width:140px;max-width:160px;color:var(--text-primary);text-align:left;border-radius:10px;gap:4px;padding:0 0 10px;display:grid;overflow:hidden}.history-card:hover{border-color:#0f766e;box-shadow:0 0 0 1px #0f766e26}.history-card-thumb{object-fit:cover;width:100%;height:100px;display:block}.history-card-source{text-transform:uppercase;letter-spacing:.04em;color:#0f766e;padding:0 10px;font-size:.72rem;font-weight:700;display:block}.history-card-time{color:var(--text-secondary);padding:0 10px;font-size:.78rem;display:block}.history-card-caption{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;padding:0 10px;font-size:.85rem;display:block;overflow:hidden}.preview-dialog-backdrop{z-index:1000;backdrop-filter:blur(4px);background:#000000b3;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.preview-dialog{background:var(--surface-panel);border-radius:16px;gap:12px;max-width:90vw;max-height:90vh;animation:.2s fade-in;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 60px #0000004d}.preview-dialog-nav{color:#fff;z-index:2;backdrop-filter:blur(6px);background:#0f172ab3;border:1px solid #ffffff2e;border-radius:999px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.8rem;line-height:1;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.preview-dialog-nav:hover:not(:disabled){background:#0f172ae6}.preview-dialog-nav:disabled{opacity:.35}.preview-dialog-nav-prev{left:10px}.preview-dialog-nav-next{right:10px}.preview-dialog-close{color:#fff;z-index:1;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.2rem;display:inline-flex;position:absolute;top:8px;right:8px}.preview-dialog-close:hover{background:#000000bf}.preview-dialog-image{object-fit:contain;max-width:90vw;max-height:70vh;display:block}.preview-dialog-footer{justify-content:space-between;align-items:center;gap:12px;padding:10px 16px 14px;display:flex}.preview-dialog-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.preview-dialog-edit{appearance:none;color:#fff;cursor:pointer;background:#0f766e;border:1px solid #0f766e66;border-radius:8px;padding:8px 14px;font-size:.9rem;font-weight:600;transition:background .15s,transform .15s}.preview-dialog-edit:hover{background:#115e59}.preview-dialog-edit:active{transform:translateY(1px)}.preview-dialog-meta{gap:2px;min-width:0;display:grid}.preview-dialog-source{text-transform:uppercase;letter-spacing:.04em;color:#0f766e;font-size:.72rem;font-weight:700}.preview-dialog-prompt{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;overflow:hidden}.preview-dialog-download{background:#0f766e;flex-shrink:0;font-weight:600}.preview-dialog-download:hover{background:#115e59}.preview-dialog-footer .download-control{flex-shrink:0}.preview-dialog-footer .download-control-button{font-weight:600}@keyframes fade-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.prompt-input-shell{gap:8px;display:grid}.prompt-bar{border:1px solid var(--border-primary);background:var(--surface-subtle);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.prompt-ad-slot{border:1px dashed var(--border-secondary);background:var(--surface-subtle);min-height:72px;color:var(--text-muted);text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:12px;display:flex}.prompt-ad-slot-label{color:var(--text-primary);font-size:.95rem;font-weight:700}.prompt-ad-slot-subtext{color:var(--text-muted);margin-top:2px;font-size:.82rem}.prompt-bar-input{border:1px solid var(--border-secondary);background:var(--surface-input);min-width:0;color:var(--text-primary);box-sizing:border-box;resize:none;border-radius:8px;flex:1;padding:8px 12px;font-size:.95rem;line-height:1.35;overflow-y:hidden}.prompt-bar-input::placeholder{color:var(--text-muted)}.prompt-bar-input:focus{outline-offset:1px;outline:2px solid #0f766e}.prompt-bar-input:disabled{opacity:.6}.prompt-bar-btn{white-space:nowrap;background:#7c3aed;flex-shrink:0}.prompt-bar-btn:hover:not(:disabled){background:#6d28d9}.prompt-bar-primary-actions{align-self:center;align-items:center;gap:10px;margin-left:auto;display:inline-flex}.prompt-bar-size-field{align-items:center;gap:8px;display:inline-flex}.prompt-bar-size-label{color:var(--text-secondary);letter-spacing:.03em;text-transform:uppercase;font-size:.52rem;font-weight:700}.prompt-bar-size-select{border:1px solid var(--border-secondary);background:var(--surface-input);min-width:32px;color:var(--text-primary);border-radius:8px;padding:2px 4px;font-size:.85rem;font-weight:600}.prompt-bar-size-select:focus{outline-offset:1px;outline:2px solid #0f766e}.prompt-bar-size-select:disabled{opacity:.6}.prompt-bar-region-btn{white-space:nowrap;background:#0f766e;flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.prompt-bar-region-btn-icon{flex-shrink:0}.prompt-bar-region-btn:hover:not(:disabled){background:#115e59}.prompt-bar-region-btn.active{background:#2563eb}.prompt-bar-clear-region-btn{white-space:nowrap;background:#b45309;flex-shrink:0}.prompt-bar-clear-region-btn:hover:not(:disabled){background:#92400e}.app.is-mobile .app-header{padding:10px 12px}.app.is-mobile .app-header-name{font-size:1rem}.app.is-mobile .fullscreen-toggle{display:none}.app.is-mobile .theme-select-shell{min-width:56px}.app.is-mobile .theme-select-shell:after{content:attr(data-icon);text-align:center;right:24px}.app.is-mobile .marker-toggle{border-top:none;padding-top:0}.app.is-mobile .prompt-bar{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.app.is-mobile .prompt-bar-input{grid-column:1/-1;width:100%}.app.is-mobile .prompt-bar-primary-actions{grid-column:1/2;justify-content:flex-start;align-items:center;gap:10px;width:auto;margin-left:0;display:flex}.app.is-mobile .prompt-bar-size-field,.app.is-mobile .prompt-bar-region-btn,.app.is-mobile .prompt-bar-clear-region-btn{justify-self:start}.app.is-mobile .prompt-bar-btn{width:auto}.app.is-mobile .prompt-bar-region-btn{grid-column:2/3;justify-content:flex-start;align-self:center;min-width:0;padding-inline:12px}.app.is-mobile .prompt-bar-region-btn-label{display:none}.edit-toolbar{border:1px solid var(--border-primary);background:var(--surface-subtle);border-radius:10px;flex-direction:column;align-items:stretch;gap:0;display:flex;overflow:hidden}.edit-toolbar-top-row{flex-wrap:wrap;align-items:flex-start;gap:16px;padding:8px 12px;display:flex}.edit-toolbar-group{align-items:center;gap:8px;display:flex}.edit-toolbar-panel{flex-direction:column;align-items:stretch;gap:8px;min-width:0;display:flex}.edit-toolbar-secondary{border-top:1px solid var(--border-primary);background:var(--surface-secondary);padding:10px 12px;position:relative}.toolbar-group-tabs,.toolbar-action-row,.toolbar-slider-row{flex-wrap:wrap}.toolbar-group-tabs{margin-bottom:2px;padding-bottom:10px;position:relative}.toolbar-group-tabs.has-active-option:after{content:"";background:#10b981;height:1px;position:absolute;bottom:0;left:0;right:0}.toolbar-group-tabs.is-magic-active:after{background:#a855f7}.toolbar-slider-row{width:100%}.edit-toolbar-label{color:var(--text-secondary);font-size:.82rem;font-weight:500}.zoom-control{cursor:default;align-items:center;gap:8px;display:flex}.zoom-control input[type=range]{accent-color:#0f766e;width:100px}.zoom-value{font-variant-numeric:tabular-nums;color:var(--text-muted);min-width:32px;font-size:.82rem}.slider-control{cursor:default;align-items:center;gap:8px;display:flex}.toolbar-slider-row .slider-control{flex:280px}.slider-control .edit-toolbar-label{text-align:right;width:72px}.slider-control input[type=range]{accent-color:#7c3aed;cursor:pointer;width:90px;height:20px}.toolbar-slider-row .slider-control input[type=range]{flex:auto;width:auto;min-width:0}.slider-value{font-variant-numeric:tabular-nums;color:var(--text-muted);text-align:right;min-width:44px;font-size:.8rem}.color-adjust-group{flex-wrap:wrap;gap:12px}.color-wheel-row{align-items:center;gap:10px;display:flex}.color-wheel{cursor:pointer;touch-action:none;background:radial-gradient(circle,#fff 0%,#fff0 70%),conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);border-radius:50%;flex-shrink:0;position:relative}.color-wheel-knob{pointer-events:none;background:#fff;border:2px solid #1e293b;border-radius:50%;width:14px;height:14px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 3px #0006}.btn-reset-color{opacity:.75;padding:3px 8px;font-size:.8rem}.btn-reset-color:hover:not(:disabled){opacity:1}.btn-edit-tool{background:#334155;padding:5px 10px;font-size:.85rem}.btn-toolbar-icon{flex-shrink:0}.btn-edit-tool:hover:not(:disabled){background:#1e293b}.btn-toolbar-group,.btn-toolbar-action{min-height:32px}.btn-toolbar-group{position:relative}.btn-toolbar-group[aria-pressed=true],.btn-toolbar-action[aria-pressed=true]{background:#0f766e}.btn-toolbar-group[aria-pressed=true]:after{content:"";pointer-events:none;z-index:2;background:#10b981;border-radius:999px;width:1px;height:9px;position:absolute;top:calc(100% + 1px);left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #10b9811f}.btn-toolbar-group-magic{background:#5b21b6}.btn-toolbar-group-magic:hover:not(:disabled){background:#4c1d95}.btn-toolbar-group-magic[aria-pressed=true],.btn-magic-action,.btn-magic-apply,.btn-magic-direction[aria-pressed=true]{background:#7c3aed}.btn-toolbar-group-magic[aria-pressed=true]:hover:not(:disabled),.btn-magic-action:hover:not(:disabled),.btn-magic-apply:hover:not(:disabled),.btn-magic-direction[aria-pressed=true]:hover:not(:disabled){background:#6d28d9}.btn-toolbar-group-magic[aria-pressed=true]:after{background:#a855f7;box-shadow:0 0 0 1px #a855f72e}.btn-toolbar-group[aria-pressed=true]:hover:not(:disabled),.btn-toolbar-action[aria-pressed=true]:hover:not(:disabled){background:#115e59}.btn-auto-enhance{background:#7c3aed}.btn-auto-enhance:hover:not(:disabled){background:#6d28d9}.magic-extend-row{align-items:center;gap:10px;display:flex}.magic-direction-group{border:1px solid var(--border-primary);background:#5b21b624;border-radius:999px;align-items:center;gap:6px;padding:4px;display:inline-flex}.btn-magic-direction{border-radius:999px;justify-content:center;align-items:center;min-width:34px;padding-inline:0;display:inline-flex}.magic-amount-field{align-items:center;gap:8px;display:inline-flex}.magic-amount-select{border:1px solid var(--border-primary);background:var(--surface-input);min-height:32px;color:var(--text-primary);border-radius:999px;padding:0 12px}.btn-magic-apply{margin-left:auto}.app.is-mobile .edit-toolbar{align-items:stretch}.app.is-mobile .edit-toolbar-top-row{gap:10px}.app.is-mobile .edit-toolbar-panel{min-width:0}.app.is-mobile .toolbar-group-tabs,.app.is-mobile .toolbar-action-row{gap:6px}.app.is-mobile .magic-extend-row{align-items:stretch}.app.is-mobile .magic-direction-group,.app.is-mobile .magic-amount-field{justify-content:space-between;width:100%}.app.is-mobile .magic-amount-select,.app.is-mobile .btn-magic-apply{width:100%}.app.is-mobile .btn-magic-apply{margin-left:0}.app.is-mobile .toolbar-slider-row .slider-control{flex-basis:100%;width:100%}.app.is-mobile .toolbar-slider-row .slider-control .edit-toolbar-label{width:auto;min-width:72px}.btn-crop-apply{background:#059669}.btn-crop-apply:hover:not(:disabled){background:#047857}.undo-redo-pill{border:1px solid var(--border-primary);border-radius:8px;align-items:stretch;display:inline-flex;overflow:hidden}.btn-undo-redo{background:var(--surface-input);width:32px;height:30px;color:var(--text-secondary);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-undo-redo+.btn-undo-redo{border-left:1px solid var(--border-primary)}.btn-undo-redo:hover:not(:disabled){background:var(--surface-canvas)}.btn-undo-redo:disabled{opacity:.4;cursor:not-allowed}.btn-zoom-reset{background:var(--surface-input);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-zoom-reset:hover:not(:disabled){background:var(--surface-canvas)}.btn-zoom-reset:disabled{opacity:.4;cursor:not-allowed}.crop-overlay{z-index:100;background:#000000bf;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex;position:fixed;inset:0}.crop-actions{z-index:101;gap:10px;display:flex}.crop-overlay .ReactCrop{max-width:90vw;max-height:85vh}.crop-image{object-fit:contain;max-width:90vw;max-height:85vh;display:block}.canvas-zoom-wrapper{width:100%;max-height:80vh;margin-inline:auto}.app.is-mobile .canvas-zoom-wrapper{max-height:70vh}[data-theme=dark] .object-label{color:#e2e8f0;background:#020617}[data-theme=dark] .pending-change-item{background:#0b1220}.app.is-mobile .mobile-inspector{z-index:50;pointer-events:none;flex-direction:column-reverse;align-items:flex-end;display:flex;position:fixed;bottom:12px;right:12px}.app.is-mobile .mobile-inspector-toggle{border:1px solid var(--border-primary);background:var(--surface-panel);width:auto;max-width:min(100vw - 24px,280px);color:var(--text-primary);pointer-events:auto;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex;box-shadow:0 10px 24px #0f172a24}.app.is-mobile .mobile-inspector-panel{box-sizing:border-box;border:1px solid var(--border-primary);background:var(--surface-panel);opacity:0;pointer-events:auto;border-radius:14px;width:min(100vw - 24px,320px);max-height:0;margin-bottom:8px;padding:0 14px;transition:max-height .22s,padding .22s,opacity .22s;overflow:hidden;box-shadow:0 12px 30px #0f172a2e}.app.is-mobile .mobile-inspector.open .mobile-inspector-panel{opacity:1;max-height:calc(100dvh - 84px);padding:14px;overflow:auto}.app.is-mobile .mobile-inspector-panel .panel-content{gap:10px;display:grid}.app.is-mobile .mobile-inspector-panel p{color:var(--text-secondary);margin:0}.app.is-mobile .mobile-inspector-chevron{font-size:.9rem}.app.is-mobile .app-footer{padding-bottom:calc(80px + env(safe-area-inset-bottom))}.app.is-mobile .workspace.no-image{padding-top:0}.app.is-mobile .canvas-column{min-width:0}.app.is-mobile .panel{background:0 0;border:none;padding:0}.app.is-mobile .panel-header{display:none}.auth-modal-backdrop{z-index:1000;backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;animation:.15s auth-fade-in;display:flex;position:fixed;inset:0}@keyframes auth-fade-in{0%{opacity:0}to{opacity:1}}.auth-modal-card{background:var(--surface-panel,#fff);border-radius:12px;width:calc(100% - 32px);max-width:420px;max-height:calc(100vh - 48px);padding:24px;animation:.2s auth-slide-up;position:relative;overflow-y:auto;box-shadow:0 16px 48px #0000002e}@keyframes auth-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.auth-modal-close{background:var(--surface-secondary,#f0f0f0);cursor:pointer;width:32px;height:32px;color:var(--text-secondary,#666);z-index:1;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:16px;transition:background .15s,color .15s;display:flex;position:absolute;top:12px;right:12px}.auth-modal-close:hover{background:var(--surface-hover,#e0e0e0);color:var(--text-primary,#111)}.quota-warning-banner{color:#8a5a00;background:#fff7e6;border:1px solid #f0c36d;border-radius:10px;align-items:center;gap:8px;max-width:1200px;margin:6px auto 0;padding:6px 10px;font-size:13px;display:flex}.quota-warning-icon{font-size:16px;line-height:1}.quota-warning-text strong{font-weight:700}[data-theme=dark] .quota-warning-banner{color:#f5d78e;background:#3a2d12;border-color:#8a6d2b}.start-over-modal-backdrop{z-index:1001;backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;animation:.15s auth-fade-in;display:flex;position:fixed;inset:0}.start-over-modal{background:var(--surface-panel,#fff);border-radius:12px;width:calc(100% - 32px);max-width:400px;padding:24px;animation:.2s auth-slide-up;box-shadow:0 16px 48px #0000002e}.start-over-modal h2{margin:0 0 8px;font-size:1.15rem}.start-over-modal p{color:var(--text-secondary,#666);margin:0 0 20px;line-height:1.5}.start-over-modal-actions{justify-content:flex-end;gap:10px;display:flex}.btn-start-over-cancel{background:var(--surface-secondary,#f0f0f0);color:var(--text-primary,#111);cursor:pointer;border:none;border-radius:8px;padding:8px 14px}.btn-start-over-cancel:hover{background:var(--surface-hover,#e0e0e0)}.btn-start-over-confirm{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:8px;padding:8px 14px}.btn-start-over-confirm:hover{background:#b91c1c}.model-download-banner{z-index:100;background:var(--surface-panel,#fff);border:1px solid var(--border-primary,#e0e0e0);pointer-events:none;border-radius:12px;flex-direction:column;gap:8px;min-width:340px;max-width:90vw;padding:16px 20px;animation:.3s banner-slide-up;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000029}@keyframes banner-slide-up{0%{opacity:0;transform:translate(-50%)translateY(16px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.model-download-banner-item{flex-direction:column;gap:6px;display:flex}.model-download-banner-item.error{color:#dc2626}.model-download-label{color:var(--text-primary,#111);font-size:.85rem;font-weight:600}.model-download-bar-track{background:var(--surface-secondary,#f0f0f0);border-radius:3px;width:100%;height:6px;overflow:hidden}.model-download-bar-fill{background:linear-gradient(90deg,#8b5cf6,#22d3ee);border-radius:3px;height:100%;transition:width .3s}.model-download-size{color:var(--text-secondary,#666);font-size:.75rem}.detection-mode-toggle{background:var(--surface-secondary,#f0f0f0);border-radius:8px;gap:4px;margin-bottom:10px;padding:3px;display:flex}.detection-mode-btn{cursor:pointer;color:var(--text-secondary,#666);background:0 0;border:none;border-radius:6px;flex:1;padding:6px 10px;font-size:.78rem;font-weight:500;transition:background .15s,color .15s}.detection-mode-btn.active{background:var(--surface-panel,#fff);color:var(--text-primary,#111);box-shadow:0 1px 3px #00000014}.detection-mode-btn:hover:not(.active){color:var(--text-primary,#111)}.chip-experimental{color:#fff;text-transform:uppercase;letter-spacing:.04em;vertical-align:middle;background:#f59e0b;border-radius:999px;margin-left:4px;padding:1px 6px;font-size:.6rem;font-weight:700;line-height:1.4;display:inline-block}.detection-progress{color:#8b5cf6;margin:6px 0 0;font-size:.75rem;font-style:italic}.advanced-section{border:1px solid var(--border-color,#e2e8f0);background:var(--surface-secondary,#f8fafc);border-radius:8px;margin:12px 0}.advanced-section-summary{color:var(--text-secondary,#64748b);cursor:pointer;user-select:none;padding:8px 12px;font-size:.8rem;font-weight:600;list-style:none}.advanced-section-summary::-webkit-details-marker{display:none}.advanced-section-summary:before{content:"▸";margin-right:6px;font-size:.7rem;transition:transform .15s;display:inline-block}.advanced-section[open]>.advanced-section-summary:before{transform:rotate(90deg)}.advanced-section-body{padding:0 12px 12px}.param-row{margin-bottom:10px}.param-row label{color:var(--text-secondary,#64748b);text-align:left;margin-bottom:3px;font-size:.72rem;font-weight:600;display:block}.param-help-icon{background:var(--text-secondary,#94a3b8);color:#fff;cursor:help;vertical-align:middle;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;margin-left:3px;font-size:.6rem;font-weight:700;line-height:1;display:inline-flex}.param-row select,.param-row input[type=number]{border:1px solid var(--border-color,#e2e8f0);background:var(--surface-panel,#fff);width:100%;color:var(--text-primary,#111);border-radius:6px;padding:5px 8px;font-size:.78rem}.param-range-row{align-items:center;gap:8px;display:flex}.model-classes{color:var(--text-secondary,#64748b);margin-bottom:10px;font-size:.72rem;line-height:1.5}.model-classes-label{margin-bottom:2px;font-weight:600;display:block}.model-classes-list{word-break:break-word;display:block}.param-range-row input[type=range]{accent-color:#8b5cf6;flex:1}.param-value{color:var(--text-primary,#111);text-align:right;min-width:32px;font-size:.75rem;font-weight:600}.btn-reset-params{border:1px solid var(--border-color,#e2e8f0);background:var(--surface-panel,#fff);width:100%;color:var(--text-secondary,#64748b);cursor:pointer;border-radius:6px;margin-top:8px;padding:5px 0;font-size:.72rem;font-weight:500;transition:background .15s,color .15s;display:block}.btn-reset-params:hover{color:#b91c1c;background:#fee2e2;border-color:#fecaca}[data-theme=dark] .btn-reset-params:hover{color:#fca5a5;background:#f8717126;border-color:#f8717159}.object-mask-overlay{opacity:.5;image-rendering:auto;border-radius:2px}.subscribe-modal-backdrop{z-index:200;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.subscribe-modal-card{background:var(--surface-panel,#fff);border:1px solid var(--border-primary,#e0e0e0);width:100%;max-width:560px;max-height:calc(100vh - 32px);color:var(--text-primary,#111);text-align:center;border-radius:16px;flex-direction:column;padding:20px 20px 24px;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000040}.subscribe-modal-header{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.subscribe-modal-body{min-height:0;overflow-y:auto}.subscribe-modal-close{color:var(--text-secondary,#64748b);cursor:pointer;background:0 0;border:none;padding:4px;font-size:1.1rem;line-height:1}.subscribe-modal-title{margin:0;font-size:1.5rem;font-weight:700}.subscribe-modal-price{color:#8b5cf6;margin:0 0 16px;font-size:1.9rem;font-weight:800}.subscribe-modal-price-period{color:var(--text-secondary,#64748b);font-size:.95rem;font-weight:500}.subscribe-modal-benefits{color:var(--text-secondary,#475569);flex-direction:column;gap:8px;margin:0 0 20px;padding:0;list-style:none;display:flex}.subscribe-modal-benefits li:before{content:"✓";color:#16a34a;margin-right:8px;font-weight:700}.subscribe-modal-note{color:var(--text-secondary,#64748b);margin:0 0 16px;font-size:.85rem}.subscribe-modal-error{color:#dc2626;margin:0 0 16px;font-size:.85rem}.subscribe-modal-btn{color:#fff;cursor:pointer;background:linear-gradient(90deg,#8b5cf6,#22d3ee);border:none;border-radius:10px;width:100%;padding:12px 14px;font-size:1rem;font-weight:700}.subscribe-modal-btn:disabled{opacity:.6;cursor:not-allowed}.prompt-bar-size-select option{color:var(--text-primary)}.app-footer{color:var(--text-secondary,#64748b);justify-content:space-between;align-items:center;gap:12px;padding:12px 4px 4px;font-size:.82rem;display:flex}.app-footer-note{opacity:.8}.app-footer-feedback{border:1px solid var(--border-primary,#e0e0e0);background:var(--surface-subtle,#f8fafc);color:var(--text-primary,#111);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:600;transition:background .15s,border-color .15s}.app-footer-feedback:hover{background:var(--surface-panel,#fff);border-color:#0f766e}.feedback-drawer-backdrop{z-index:1100;backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:flex-end;animation:.15s feedback-fade-in;display:flex;position:fixed;inset:0}.feedback-drawer{width:100%;max-width:560px;max-height:calc(100vh - 24px);padding:20px 20px calc(16px + env(safe-area-inset-bottom));background:var(--surface-panel,#fff);border:1px solid var(--border-primary,#e0e0e0);color:var(--text-primary,#111);border-bottom:none;border-radius:16px 16px 0 0;animation:.25s feedback-slide-up;overflow-y:auto;box-shadow:0 -12px 40px #00000040}.feedback-drawer h2{margin:0 0 14px;font-size:1.25rem;font-weight:700}.feedback-drawer-answers{gap:12px;margin-bottom:14px;display:flex}.feedback-answer-button{border:1px solid var(--border-primary,#e0e0e0);background:var(--surface-subtle,#f8fafc);color:var(--text-primary,#111);cursor:pointer;border-radius:10px;flex:1;padding:12px 14px;font-size:1rem;font-weight:600;transition:background .15s,border-color .15s}.feedback-answer-button:hover:not(:disabled){border-color:#0f766e}.feedback-answer-button.is-selected{color:#0f766e;background:#0f766e1f;border-color:#0f766e}.feedback-answer-button:disabled{opacity:.6;cursor:not-allowed}.feedback-drawer-comment{resize:vertical;border:1px solid var(--border-primary,#e0e0e0);background:var(--surface-canvas,#fff);width:100%;min-height:72px;color:var(--text-primary,#111);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:.9rem}.feedback-drawer-comment:focus{outline-offset:0;outline:2px solid #0f766e66}.feedback-drawer-error{color:#dc2626;margin:12px 0 0;font-size:.85rem}.feedback-drawer-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.feedback-drawer-close{border:1px solid var(--border-primary,#e0e0e0);color:var(--text-secondary,#64748b);cursor:pointer;background:0 0;border-radius:10px;padding:10px 14px;font-size:.9rem}.feedback-drawer-close:disabled{opacity:.6;cursor:not-allowed}.feedback-drawer-submit{color:#fff;cursor:pointer;background:#0f766e;border:none;border-radius:10px;padding:10px 16px;font-size:.9rem;font-weight:700}.feedback-drawer-submit:disabled{opacity:.6;cursor:not-allowed}@keyframes feedback-fade-in{0%{opacity:0}to{opacity:1}}@keyframes feedback-slide-up{0%{transform:translateY(24px)}to{transform:translateY(0)}}@media (width<=600px){.app-footer{flex-direction:column;align-items:flex-start}}
