*{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #f8fafc;--color-surface: #ffffff;--color-border: #e2e8f0;--color-text: #1e293b;--color-text-secondary: #64748b;--color-accent: #1e5a8a;--color-accent-hover: #164569;--color-accent-light: #e0f2fe;--color-solar: #f59e0b;--radius-md: 12px;--radius-lg: 16px}body{font-family:Lato,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;color:var(--color-text);background:var(--color-bg);min-height:100vh}.app{max-width:1200px;margin:0 auto;padding:32px 24px}.selection-zone{display:flex;flex-direction:column;align-items:center;padding-top:16px}.selection-zone.hidden{display:none}.selection-hint{font-size:15px;color:var(--color-text-secondary);text-align:center;margin-bottom:16px}.preview-container{position:relative;width:100%;max-width:1000px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);box-shadow:0 4px 20px #0000001f}.preview-container #previewImage{width:100%;height:auto;display:block}.svg-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:crosshair}.svg-overlay .corner-handle{cursor:grab;transition:r .15s ease,fill .15s ease}.svg-overlay .corner-handle:hover{r:10;fill:#c00}.svg-overlay .corner-handle:active{cursor:grabbing}.selection-toolbar{display:flex;justify-content:center;gap:12px;margin-top:20px;width:100%;max-width:1000px}.toolbar-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:background .2s,border-color .2s,transform .1s}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn:active:not(:disabled){transform:scale(.98)}.toolbar-btn.clear-btn{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.toolbar-btn.clear-btn:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5}.toolbar-btn.generate-btn{background:var(--color-accent);color:#fff;border:none;padding:12px 28px}.toolbar-btn.generate-btn:hover:not(:disabled){background:var(--color-accent-hover)}.toolbar-btn.generate-btn svg{animation:spin 2s linear infinite;animation-play-state:paused}.toolbar-btn.generate-btn:hover:not(:disabled) svg{animation-play-state:running}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.toolbar-btn.upload-btn{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.toolbar-btn.upload-btn:hover{border-color:var(--color-accent);background:var(--color-accent-light)}.gallery{display:flex;flex-direction:column;gap:20px;max-width:700px;margin:0 auto}.gallery:empty{display:none}.gallery-item{position:relative;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);box-shadow:0 2px 12px #0000001a}.gallery-item img{width:100%;height:auto;display:block}.gallery-item .download-btn{position:absolute;bottom:12px;right:12px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#fffffff2;border-radius:50%;color:var(--color-text);text-decoration:none;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s,background .2s;box-shadow:0 2px 8px #00000026}.gallery-item:hover .download-btn{opacity:1;transform:translateY(0)}.gallery-item .download-btn:hover{background:var(--color-accent);color:#fff}.gallery-item.loading{aspect-ratio:4 / 3;background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.error-message{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px 40px;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:0 8px 32px #0000001f;text-align:center;z-index:200}.error-message svg{color:#d97706}.error-message p{font-size:15px;color:var(--color-text);max-width:280px;line-height:1.5}.error-message .error-dismiss{padding:10px 24px;background:var(--color-accent);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.error-message .error-dismiss:hover{background:var(--color-accent-hover)}@media (max-width: 640px){.app{padding:20px 16px}.gallery{gap:16px}.selection-toolbar{flex-wrap:wrap}}.progress-indicator{position:fixed;bottom:24px;right:24px;display:none;flex-direction:column;gap:8px;padding:16px 20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 16px #0000001a;z-index:100;min-width:200px}.progress-indicator.visible{display:flex}.progress-text{font-size:13px;font-weight:500;color:var(--color-text)}.progress-bar{width:100%;height:6px;background:var(--color-bg);border-radius:3px;overflow:hidden}.progress-fill{height:100%;width:0%;background:var(--color-accent);border-radius:3px;transition:width .3s ease-out}.debug-preview{display:none;position:fixed;bottom:24px;left:24px;max-width:300px;background:var(--color-surface);border:2px solid #374151;border-radius:var(--radius-md);box-shadow:0 4px 16px #00000026;z-index:150;overflow:hidden;transition:border-color .2s ease}.debug-preview.visible{display:block}.debug-preview.preview-sent{border-color:#ff6b6b}.debug-preview.preview-generated{border-color:#4ecdc4}.debug-preview.preview-mask{border-color:#a855f7}.debug-preview.preview-smoothed_mask{border-color:#f59e0b}.debug-preview-header{padding:8px 12px;background:#374151}.debug-preview-header select{width:100%;background:transparent;border:none;color:#fff;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;outline:none}.debug-preview-header select option{background:#374151;color:#fff}.debug-preview img{width:100%;height:auto;display:block}.debug-preview img:not([src]),.debug-preview img[src=""]{display:none}.panel-overlay{position:absolute;pointer-events:none;overflow:hidden;border-radius:4px}.panel-overlay.shimmer{background:linear-gradient(90deg,#ffffff1a,#ffffff4d,#ffffff1a);background-size:200% 100%;animation:overlay-shimmer 1.5s infinite;border:2px solid rgba(255,255,255,.5)}@keyframes overlay-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.panel-overlay img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease-in-out}.panel-overlay.fade-in img{opacity:1}.download-overlay-btn{position:absolute;bottom:16px;right:16px;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;background:#fffffff2;border:none;border-radius:var(--radius-md);color:var(--color-text);font-size:14px;font-weight:500;cursor:pointer;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s,background .2s;box-shadow:0 4px 12px #00000026;z-index:10;pointer-events:auto}.panel-overlay.fade-in~.download-overlay-btn,.preview-container:has(.panel-overlay.fade-in) .download-overlay-btn{opacity:1;transform:translateY(0);pointer-events:auto}.download-overlay-btn:hover{background:var(--color-accent);color:#fff}.onboarding-cursor{position:absolute;width:35px;transform-origin:top left;height:35px;pointer-events:none;z-index:50;opacity:0;margin-left:-5px;margin-top:-3px;transition:left .6s cubic-bezier(.4,0,.2,1),top .6s cubic-bezier(.4,0,.2,1),opacity .3s ease;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.onboarding-cursor.visible{opacity:1}.onboarding-cursor.clicking{animation:cursor-click .25s ease-out}@keyframes cursor-click{0%{transform:scale(1)}50%{transform:scale(.85)}to{transform:scale(1)}}.version-selector{position:absolute;display:flex;align-items:center;gap:12px;padding:8px 12px;background:#fffffff2;border-radius:24px;box-shadow:0 4px 16px #00000026;z-index:20;opacity:0;transform:translate(-50%) translateY(8px);transition:opacity .3s ease,transform .3s ease}.version-selector.visible{opacity:1;transform:translate(-50%) translateY(0)}.version-buttons{display:flex;gap:4px}.version-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:2px solid var(--color-border);background:var(--color-surface);border-radius:50%;font-size:13px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:border-color .2s,background .2s,color .2s,transform .1s}.version-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.version-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.version-btn:active{transform:scale(.95)}.version-confirm-btn{padding:8px 16px;background:var(--color-accent);color:#fff;border:none;border-radius:16px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s,transform .1s}.version-confirm-btn:hover{background:var(--color-accent-hover)}.version-confirm-btn:active{transform:scale(.98)}
