*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}body{font-family:SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0a0a0b;color:#e4e4e7}.app{width:100%;height:100%;position:relative}.render-mode-toggle{position:absolute;top:20px;right:20px;z-index:100;display:flex;gap:4px;background:#18181bd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(63,63,70,.5);border-radius:10px;padding:4px}.render-mode-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:6px;color:#71717a;cursor:pointer;transition:all .15s ease}.render-mode-btn:hover{color:#a1a1aa;background:#ffffff0d}.render-mode-btn.active{background:#3b82f633;color:#60a5fa;box-shadow:0 0 0 1px #3b82f64d}.controls{position:absolute;top:20px;left:20px;z-index:100;background:#18181bd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(63,63,70,.5);border-radius:12px;padding:16px;min-width:240px;box-shadow:0 8px 32px #0006}.controls-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.controls h2{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#71717a;margin:0}.reset-button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;cursor:pointer;transition:all .15s ease}.reset-button:hover{background:#ef444433;border-color:#ef444480;transform:scale(1.05)}.control-group{margin-bottom:16px}.control-group:last-child{margin-bottom:0}.control-group label{display:block;font-size:12px;font-weight:500;color:#a1a1aa;margin-bottom:8px}.file-input-wrapper{position:relative}.file-input{display:none}.file-input-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 16px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.file-input-button:hover{background:linear-gradient(135deg,#60a5fa,#3b82f6);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.file-input-button:active{transform:translateY(0)}.fov-slider-container{display:flex;align-items:center;gap:12px}.fov-slider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:#27272a;border-radius:2px;outline:none}.fov-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:#3b82f6;border-radius:50%;cursor:pointer;transition:all .15s ease;box-shadow:0 2px 8px #3b82f666}.fov-slider::-webkit-slider-thumb:hover{background:#60a5fa;transform:scale(1.1)}.fov-value{font-size:13px;font-weight:600;color:#e4e4e7;min-width:36px;text-align:right;font-variant-numeric:tabular-nums}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0a0a0bf2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:200}.loading-content{display:flex;flex-direction:column;align-items:center;text-align:center}.loading-ring{position:relative;width:120px;height:120px;margin-bottom:24px}.loading-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.loading-ring-bg{fill:none;stroke:#27272a;stroke-width:6}.loading-ring-spinner{fill:none;stroke:#3b82f633;stroke-width:6;stroke-linecap:round;stroke-dasharray:60 204;animation:loading-spin 1.2s linear infinite;transform-origin:center}@keyframes loading-spin{0%{transform:rotate(-90deg)}to{transform:rotate(270deg)}}.loading-ring-progress{fill:none;stroke:#3b82f6;stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .3s ease-out}.loading-percentage{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:28px;font-weight:600;color:#e4e4e7;font-variant-numeric:tabular-nums}.loading-text{font-size:16px;font-weight:500;color:#e4e4e7;margin-bottom:6px}.loading-subtext{font-size:13px;color:#71717a}.viewer-container{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden}.viewer-canvas{width:100%;height:100%;touch-action:none}.viewer-canvas canvas{touch-action:none}.empty-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#71717a;pointer-events:auto}.empty-state-icon{font-size:72px;margin-bottom:20px;opacity:.6}.empty-state-text{font-size:20px;font-weight:600;color:#a1a1aa;margin-bottom:8px}.empty-state-hint{font-size:14px;color:#52525b;margin-bottom:24px}.empty-state-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 28px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:12px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 20px #3b82f64d}.empty-state-button:hover{background:linear-gradient(135deg,#60a5fa,#3b82f6);transform:translateY(-2px);box-shadow:0 8px 30px #3b82f666}.empty-state-button:active{transform:translateY(0);box-shadow:0 4px 15px #3b82f64d}.camera-hud-wrapper{position:fixed!important;bottom:20px!important;left:20px!important;top:auto!important;transform:none!important;pointer-events:none}.camera-hud{background:#18181be6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(63,63,70,.5);border-radius:10px;padding:12px 14px;font-family:SF Mono,Fira Code,Consolas,monospace;min-width:140px}.camera-mode-switch{display:flex;gap:4px;margin-bottom:12px;background:#0000004d;border-radius:8px;padding:4px}.mode-switch-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;background:transparent;border:none;border-radius:6px;color:#71717a;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:SF Pro Display,-apple-system,sans-serif}.mode-switch-btn:hover{color:#a1a1aa;background:#ffffff0d}.mode-switch-btn.active{background:#3b82f633;color:#60a5fa;box-shadow:0 0 0 1px #3b82f64d}.mode-switch-btn.active:last-child{background:#22c55e33;color:#4ade80;box-shadow:0 0 0 1px #22c55e4d}.shortcut-hint{font-size:9px;font-weight:600;color:inherit;opacity:.5;background:#ffffff1a;padding:2px 5px;border-radius:3px;margin-left:4px;font-family:SF Mono,monospace}.mode-switch-btn.active .shortcut-hint{opacity:.7}.hud-section-label{font-size:10px;font-weight:600;color:#52525b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-family:SF Pro Display,-apple-system,sans-serif}.transform-mode-switch{display:flex;gap:4px;margin-bottom:12px;background:#0000004d;border-radius:8px;padding:4px}.transform-mode-switch .mode-switch-btn.active{background:#a855f733;color:#c084fc;box-shadow:0 0 0 1px #a855f74d}.speed-indicator{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:#22c55e1a;border:1px solid rgba(34,197,94,.2);border-radius:6px;margin-bottom:10px}.speed-label{font-size:11px;color:#71717a;text-transform:uppercase;letter-spacing:.03em}.speed-value{font-size:13px;font-weight:600;color:#4ade80;font-variant-numeric:tabular-nums}.camera-hud-mode{display:flex;align-items:center;gap:8px;margin-bottom:10px}.mode-badge{font-size:10px;font-weight:700;letter-spacing:.05em;padding:3px 8px;border-radius:4px;font-family:SF Pro Display,-apple-system,sans-serif}.mode-badge.orbit{background:#3b82f633;color:#60a5fa;border:1px solid rgba(59,130,246,.3)}.mode-badge.fly{background:#22c55e33;color:#4ade80;border:1px solid rgba(34,197,94,.3)}.speed-badge{font-size:11px;font-weight:600;color:#a1a1aa;font-variant-numeric:tabular-nums}.transform-mode-indicator{margin-bottom:12px}.transform-badge{display:inline-flex;align-items:center;padding:4px 10px;background:#a855f733;color:#c084fc;border:1px solid rgba(168,85,247,.3);border-radius:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.camera-hud-values{display:flex;flex-direction:column;gap:4px}.hud-row{display:flex;align-items:center;gap:8px}.hud-label{font-size:11px;font-weight:600;color:#71717a;width:14px}.hud-value{font-size:12px;font-weight:500;color:#e4e4e7;font-variant-numeric:tabular-nums}.hud-divider{height:1px;background:#3f3f4680;margin:6px 0}.camera-hud-hint{margin-top:10px;padding-top:10px;border-top:1px solid rgba(63,63,70,.5);font-size:10px;color:#52525b;font-family:SF Pro Display,-apple-system,sans-serif;line-height:1.4}.capture-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.capture-button:hover:not(:disabled){background:linear-gradient(135deg,#34d399,#10b981);transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.capture-button:active:not(:disabled){transform:translateY(0)}.capture-button:disabled,.capture-button.locked{background:#27272a;color:#71717a;cursor:not-allowed}.capture-icon{font-size:16px}.capture-hint{margin-top:8px;font-size:11px;color:#52525b;text-align:center}.capture-hint kbd{display:inline-block;padding:2px 6px;background:#27272a;border-radius:4px;font-family:SF Mono,monospace;font-size:10px;color:#a1a1aa}.shutter-flash{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;z-index:1000;animation:shutterFlash .15s ease-out forwards;pointer-events:none}@keyframes shutterFlash{0%{opacity:.8}to{opacity:0}}.camera-locked-indicator{position:absolute;top:20px;left:50%;transform:translate(-50%);background:#f59e0b33;border:1px solid rgba(245,158,11,.4);color:#fbbf24;padding:8px 16px;border-radius:8px;font-size:12px;font-weight:500;z-index:150;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.viewer-canvas.camera-locked{cursor:not-allowed}.composition-panel{position:fixed;top:0;right:0;bottom:0;width:380px;min-width:320px;max-width:80vw;background:#18181bf2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid rgba(63,63,70,.5);z-index:150;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1),width .3s ease;display:flex;flex-direction:column;overflow:hidden}.composition-panel.open{transform:translate(0)}.composition-panel.resizing{transition:transform .3s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}.panel-resize-handle{position:absolute;left:0;top:0;bottom:0;width:6px;cursor:ew-resize;background:transparent;z-index:10;transition:background .15s ease}.panel-resize-handle:hover,.composition-panel.resizing .panel-resize-handle{background:#3b82f680}.panel-resize-handle:before{content:"";position:absolute;left:2px;top:50%;transform:translateY(-50%);width:2px;height:40px;background:#fff3;border-radius:1px;opacity:0;transition:opacity .15s ease}.panel-resize-handle:hover:before,.composition-panel.resizing .panel-resize-handle:before{opacity:1}.composition-panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid rgba(63,63,70,.5)}.composition-panel-header h2{font-size:16px;font-weight:600;color:#e4e4e7}.style-locked-badge{font-size:11px;color:#fbbf24;background:#f59e0b26;padding:4px 8px;border-radius:4px}.composition-panel-content{flex:1;overflow-y:auto;padding:20px}.panel-section{margin-bottom:24px}.panel-section:last-child{margin-bottom:0}.section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#71717a;margin-bottom:12px;display:flex;align-items:center;gap:6px}.section-icon{font-size:13px}.angles-section{border-left:3px solid rgba(59,130,246,.5);padding-left:12px}.angles-section .section-label{color:#60a5fa}.angles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,100px));gap:8px}.section-hint{margin-top:8px;font-size:11px;color:#52525b;text-align:center;line-height:1.4}.references-section{border-left:3px solid rgba(245,158,11,.5);padding-left:12px}.references-section .section-label{color:#fbbf24}.references-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,100px));gap:8px}.captured-views-grid,.images-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.images-hint{margin-top:8px;font-size:11px;color:#52525b;text-align:center}.reference-image-item{position:relative;aspect-ratio:16 / 9;border-radius:8px;overflow:hidden;background:#18181b;border:2px solid rgba(245,158,11,.3);transition:all .15s ease}.reference-image-item:hover{border-color:#f59e0b99}.reference-image-item img{width:100%;height:100%;object-fit:cover}.reference-image-badge{position:absolute;top:4px;left:4px;background:#f59e0be6;color:#000;font-size:9px;font-weight:700;padding:2px 5px;border-radius:3px;letter-spacing:.02em}.reference-image-item .captured-view-remove{opacity:0;transition:opacity .15s ease}.reference-image-item:hover .captured-view-remove{opacity:1}.captured-view{position:relative;aspect-ratio:16 / 9;border-radius:8px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:all .15s ease;background:#18181b;padding:0;font:inherit}.captured-view:hover{border-color:#3b82f680}.captured-view.selected{border-color:#3b82f6}.captured-view img{width:100%;height:100%;object-fit:cover}.captured-view-overlay{position:absolute;top:4px;left:4px;display:flex;align-items:center;gap:4px}.captured-view-number{background:#0009;color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px}.style-anchor-badge{background:#f59e0bcc;padding:2px 4px;border-radius:4px;font-size:10px}.captured-view-remove{position:absolute;top:4px;right:4px;width:20px;height:20px;background:#ef4444cc;border:none;border-radius:4px;color:#fff;font-size:14px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s ease}.captured-view:hover .captured-view-remove{opacity:1}.add-view-button{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:16 / 9;background:#3f3f464d;border:2px dashed rgba(63,63,70,.5);border-radius:8px;cursor:pointer;transition:all .15s ease}.add-view-button:hover:not(:disabled){background:#3f3f4680;border-color:#3f3f46cc}.add-view-button:disabled{opacity:.5;cursor:not-allowed}.add-view-icon{font-size:20px;color:#71717a}.add-view-text{font-size:10px;color:#71717a;margin-top:4px}.description-input{width:100%;padding:12px;background:#27272acc;border:1px solid rgba(63,63,70,.5);border-radius:8px;color:#e4e4e7;font-size:13px;font-family:inherit;resize:none;transition:border-color .15s ease}.description-input:focus{outline:none;border-color:#3b82f6}.description-input::placeholder{color:#52525b}.style-chips{margin-top:8px}.style-chips-label{font-size:11px;color:#71717a;margin-bottom:8px}.style-chips-list{display:flex;flex-wrap:wrap;gap:6px}.style-chip{padding:6px 12px;background:#27272acc;border:1px solid rgba(63,63,70,.5);border-radius:16px;color:#a1a1aa;font-size:12px;cursor:pointer;transition:all .15s ease}.style-chip:hover{background:#3f3f46cc;color:#e4e4e7}.style-chip.selected{background:#3b82f633;border-color:#3b82f680;color:#60a5fa}.generate-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 20px;background:linear-gradient(135deg,#8b5cf6,#7c3aed);border:none;border-radius:10px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.generate-button:hover:not(:disabled){background:linear-gradient(135deg,#a78bfa,#8b5cf6);transform:translateY(-2px);box-shadow:0 8px 20px #8b5cf666}.generate-button:active:not(:disabled){transform:translateY(0)}.generate-button:disabled{background:#27272a;color:#52525b;cursor:not-allowed}.generate-icon{font-size:16px}.generate-hint{margin-top:8px;font-size:11px;color:#52525b;text-align:center}.render-progress{text-align:center;padding:20px 0}.render-progress-visual{margin-bottom:20px}.progress-ring-container{position:relative;width:100px;height:100px;margin:0 auto 16px}.progress-ring{width:100%;height:100%;transform:rotate(-90deg)}.progress-ring-bg{fill:none;stroke:#27272a;stroke-width:6}.progress-ring-fill{fill:none;stroke:#8b5cf6;stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .3s ease}.progress-percentage{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:24px;font-weight:600;color:#e4e4e7;font-variant-numeric:tabular-nums}.progress-dots{display:flex;justify-content:center;gap:6px}.progress-dots .dot{width:6px;height:6px;background:#8b5cf6;border-radius:50%;animation:dotPulse 1s ease-in-out infinite}@keyframes dotPulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.render-progress-info{margin-bottom:16px}.progress-title{font-size:15px;font-weight:600;color:#e4e4e7;margin-bottom:4px}.progress-step{font-size:13px;color:#a1a1aa}.progress-bar-container{width:100%;height:4px;background:#27272a;border-radius:2px;overflow:hidden;margin-bottom:12px}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#8b5cf6,#a78bfa);border-radius:2px;transition:width .3s ease}.progress-hint{font-size:11px;color:#52525b}.render-result{animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.render-image-container{position:relative;border-radius:10px;overflow:hidden;margin-bottom:12px}.render-image{width:100%;display:block}.render-image-overlay{position:absolute;top:8px;right:8px;display:flex;gap:6px;opacity:0;transition:opacity .15s ease}.render-image-container:hover .render-image-overlay{opacity:1}.render-action-button{width:32px;height:32px;background:#0009;border:none;border-radius:6px;color:#fff;font-size:14px;cursor:pointer;transition:background .15s ease}.render-action-button:hover{background:#000c}.render-success{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;background:#22c55e26;border-radius:6px;margin-bottom:16px}.success-icon{color:#4ade80;font-size:14px}.success-text{font-size:13px;font-weight:500;color:#4ade80}.version-rail{margin-top:16px}.version-rail-label{font-size:11px;color:#71717a;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}.version-rail-hint{font-size:10px;color:#52525b;font-weight:400}.version-rail-items{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px}.version-item{position:relative;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:4px}.version-image-button{position:relative;width:60px;height:60px;border-radius:6px;overflow:hidden;border:2px solid transparent;cursor:pointer;transition:all .15s ease;background:none;padding:0}.version-image-button:hover{border-color:#3b82f680}.version-item.active .version-image-button{border-color:#3b82f6}.version-item.pinned .version-image-button{border-color:#10b981;box-shadow:0 0 8px #10b9814d}.version-image-button img{width:100%;height:100%;object-fit:cover}.version-number{position:absolute;bottom:2px;right:2px;font-size:9px;font-weight:600;color:#fff;background:#0009;padding:1px 4px;border-radius:3px}.pin-toggle-button{width:24px;height:24px;border-radius:4px;border:1px solid rgba(63,63,70,.5);background:#27272acc;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all .15s ease;opacity:.6}.pin-toggle-button:hover{opacity:1;border-color:#10b98180;background:#10b9811a}.pin-toggle-button.pinned{opacity:1;background:#10b98133;border-color:#10b981}.auto-pinned-hint{position:absolute;top:-6px;right:-6px;font-size:8px;font-weight:600;color:#10b981;background:#10b98133;padding:1px 4px;border-radius:3px;text-transform:uppercase}.refinement-section{border-left:3px solid rgba(139,92,246,.5);padding-left:12px}.refinement-section .section-label{color:#a78bfa}.add-refinement-reference{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:#f59e0b1a;border:1px dashed rgba(245,158,11,.4);border-radius:8px;color:#fbbf24;font-size:12px;cursor:pointer;transition:all .15s ease;margin-bottom:12px}.add-refinement-reference:hover{background:#f59e0b33;border-color:#f59e0b99}.refinement-textarea{width:100%;padding:12px;background:#27272acc;border:1px solid rgba(63,63,70,.5);border-radius:8px;color:#e4e4e7;font-size:13px;font-family:inherit;resize:none;transition:border-color .15s ease;margin-bottom:12px}.refinement-textarea:focus{outline:none;border-color:#8b5cf6}.refinement-textarea::placeholder{color:#52525b}.refine-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;background:linear-gradient(135deg,#8b5cf6,#7c3aed);border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;margin-top:12px}.refine-button:hover:not(:disabled){background:linear-gradient(135deg,#a78bfa,#8b5cf6);transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.refine-button:disabled{background:#27272a;color:#52525b;cursor:not-allowed}.refinement-input-wrapper{display:flex;gap:8px;margin-bottom:12px}.refinement-input{flex:1;padding:10px 12px;background:#27272acc;border:1px solid rgba(63,63,70,.5);border-radius:8px;color:#e4e4e7;font-size:13px;font-family:inherit}.refinement-input:focus{outline:none;border-color:#3b82f6}.refinement-input::placeholder{color:#52525b}.refinement-submit{width:40px;background:#3b82f6;border:none;border-radius:8px;color:#fff;font-size:16px;cursor:pointer;transition:background .15s ease}.refinement-submit:hover:not(:disabled){background:#60a5fa}.refinement-submit:disabled{background:#27272a;color:#52525b;cursor:not-allowed}.new-render-button{width:100%;padding:12px;background:#27272acc;border:1px solid rgba(63,63,70,.5);border-radius:8px;color:#a1a1aa;font-size:13px;cursor:pointer;transition:all .15s ease}.new-render-button:hover{background:#3f3f46cc;color:#e4e4e7}.action-buttons-section{display:flex;flex-direction:column;gap:8px}.secondary-action-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;background:#27272acc;border:1px solid rgba(63,63,70,.5);border-radius:8px;color:#a1a1aa;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.secondary-action-button:hover{background:#3f3f46cc;color:#e4e4e7;border-color:#52525bcc}.secondary-action-button.danger{border-color:#ef44444d}.secondary-action-button.danger:hover{background:#ef444426;border-color:#ef444480;color:#f87171}.error-message{display:flex;align-items:flex-start;gap:8px;padding:12px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;margin-bottom:12px}.error-icon{font-size:14px;flex-shrink:0}.error-message span:last-child{font-size:13px;color:#fca5a5;line-height:1.4}.retry-button{width:100%;padding:10px;background:#ef444433;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#fca5a5;font-size:13px;cursor:pointer;transition:all .15s ease}.retry-button:hover{background:#ef44444d}.reference-images{display:flex;flex-direction:column;gap:8px}.section-label-hint{font-weight:400;font-size:11px;color:#71717a;margin-left:8px}.reference-images-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;min-height:60px;padding:8px;background:#18181b80;border:1px dashed rgba(63,63,70,.5);border-radius:8px;transition:border-color .15s ease,background .15s ease}.reference-images-grid:hover{border-color:#3f3f46cc;background:#27272a4d}.reference-image{position:relative;aspect-ratio:1;border-radius:6px;overflow:hidden;background:#18181b}.reference-image img{width:100%;height:100%;object-fit:cover}.reference-image-remove{position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;background:#000000b3;border:none;color:#fff;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease,background .15s ease}.reference-image:hover .reference-image-remove{opacity:1}.reference-image-remove:hover{background:#ef4444cc}.reference-image-name{position:absolute;bottom:0;left:0;right:0;padding:4px 6px;background:linear-gradient(transparent,#000c);font-size:9px;color:#a1a1aa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.add-reference-button{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px;background:transparent;border:1px dashed rgba(63,63,70,.5);border-radius:6px;cursor:pointer;transition:all .15s ease}.add-reference-button:hover:not(:disabled){border-color:#3b82f680;background:#3b82f61a}.add-reference-button:disabled{opacity:.5;cursor:not-allowed}.add-reference-icon{font-size:16px}.add-reference-text{font-size:9px;color:#71717a;text-align:center}.reference-images-hint{font-size:11px;color:#52525b;line-height:1.4;text-align:center;padding:0 8px}.reference-image-button{width:100%;height:100%;padding:0;border:none;background:none;cursor:pointer}.reference-image-button img{width:100%;height:100%;object-fit:cover}.render-image-button{display:block;width:100%;padding:0;border:none;background:none;cursor:pointer;border-radius:10px;overflow:hidden}.render-image-button:hover{opacity:.95}.render-image-button .render-image{width:100%;display:block}.lightbox-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:40px;animation:lightboxFadeIn .2s ease-out}@keyframes lightboxFadeIn{0%{opacity:0}to{opacity:1}}.lightbox-content{position:relative;max-width:100%;max-height:100%;animation:lightboxZoomIn .2s ease-out}@keyframes lightboxZoomIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.lightbox-content img{max-width:100%;max-height:calc(100vh - 80px);border-radius:8px;box-shadow:0 20px 60px #00000080}.lightbox-close{position:absolute;top:-40px;right:0;width:32px;height:32px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.lightbox-close:hover{background:#fff3;transform:scale(1.1)}
