.upload-wizard-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1.5rem}.upload-wizard__overlay{position:absolute;inset:0;background-color:#000000bf;cursor:pointer;backdrop-filter:blur(4px)}.light .upload-wizard__overlay{background-color:#00000080}.upload-wizard__modal{position:relative;width:100%;max-width:820px;max-height:90vh;background-color:var(--bg-primary);border-radius:16px;box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #ffffff0d;display:flex;flex-direction:column;overflow:hidden;animation:wizard-slide-in .3s ease-out}@keyframes wizard-slide-in{0%{opacity:0;transform:translateY(-20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.upload-wizard__header{display:grid;grid-template-columns:1fr auto;align-items:start;gap:.25rem;padding:1.25rem 2rem;border-bottom:1px solid var(--border);flex-shrink:0}.upload-wizard__header h2,.upload-wizard__title{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.upload-wizard__subtitle{grid-column:1;margin:0;font-size:.8125rem;color:var(--text-muted);line-height:1.4}.upload-wizard__close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:transparent;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:background-color .2s ease,color .2s ease}.upload-wizard__close:hover{background-color:var(--bg-secondary);color:var(--text-primary)}.upload-wizard__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.upload-wizard__close svg{width:20px;height:20px}.upload-wizard__progress{display:flex;align-items:center;justify-content:center;padding:1.5rem 2rem;background-color:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;gap:0}.progress-step{display:flex;align-items:center;gap:.625rem;position:relative}.progress-step+.progress-step:before{content:"";display:block;width:40px;height:2px;background-color:var(--border);margin:0 .75rem;flex-shrink:0;transition:background-color .2s ease}.progress-step__number{display:flex;align-items:center;justify-content:center;width:36px;height:36px;font-size:.9375rem;font-weight:600;color:var(--text-muted);background-color:var(--bg-tertiary);border:2px solid var(--border);border-radius:50%;flex-shrink:0;transition:all .2s ease;position:relative}.progress-step__label{font-size:.875rem;font-weight:500;color:var(--text-muted);white-space:nowrap;transition:color .2s ease}.progress-step--active .progress-step__number{color:var(--bg-primary);background-color:var(--accent);border-color:var(--accent)}.progress-step--active .progress-step__label{color:var(--text-primary);font-weight:600}.progress-step--completed .progress-step__number{background-color:var(--success);border-color:var(--success);font-size:0;color:transparent}.progress-step--completed .progress-step__number:after{content:"";display:block;width:16px;height:16px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center}.progress-step--completed .progress-step__label{color:var(--success);font-weight:500}.progress-step--completed+.progress-step:before{background-color:var(--success)}.progress-step--completed+.progress-step--active:before{background-color:var(--success)}.progress-step--clickable{cursor:pointer}.progress-step--clickable:hover .progress-step__number{transform:scale(1.1);box-shadow:0 0 0 3px #22c55e4d}.progress-step--clickable:hover .progress-step__label{text-decoration:underline}@media(max-width:560px){.progress-step__label{display:none}.progress-step+.progress-step:before{width:28px}.upload-wizard__progress{padding:1.25rem 1.5rem}}.upload-wizard__content{flex:1;overflow-y:auto;padding:2rem}.wizard-step{animation:step-fade-in .3s ease-out}@keyframes step-fade-in{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.wizard-step__intro{margin:0 0 1.5rem;font-size:.9375rem;color:var(--text-secondary);line-height:1.6}.wizard-step__intro .text-muted{color:var(--text-muted);font-size:.8125rem}.wizard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem 1rem;color:var(--text-secondary)}.wizard-loading .spinner,.wizard-loading__spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:wizard-spin .8s linear infinite}@keyframes wizard-spin{to{transform:rotate(360deg)}}.wizard-loading__text{font-size:.9375rem;color:var(--text-secondary)}.wizard-empty{text-align:center;padding:2.5rem 1.5rem;color:var(--text-secondary);background-color:var(--bg-secondary);border-radius:12px;border:2px dashed var(--border)}.wizard-empty p{margin:0 0 .5rem}.wizard-empty p:last-child{margin-bottom:0}.wizard-empty .text-muted{color:var(--text-muted);font-size:.875rem}.wizard-success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 1.5rem}.wizard-success__icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;margin-bottom:1.5rem;background-color:rgba(var(--success-rgb, 34, 197, 94),.15);border-radius:50%;color:var(--success)}.wizard-success__icon svg{width:36px;height:36px}.wizard-success__title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0 0 .75rem}.wizard-success__message{font-size:1rem;color:var(--text-secondary);margin:0;max-width:400px;line-height:1.6}.wizard-success__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem;justify-content:center}.wizard-mode-toggle{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:2rem}.wizard-mode-toggle__btn{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1.25rem 1.5rem;font-size:.9375rem;font-weight:600;color:var(--text-secondary);background-color:var(--bg-secondary);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s ease}.wizard-mode-toggle__btn:hover{color:var(--text-primary);border-color:var(--text-muted);background-color:var(--bg-tertiary)}.wizard-mode-toggle__btn--active{color:var(--accent);border-color:var(--accent);background-color:rgba(var(--accent-rgb),.08)}.wizard-mode-toggle__btn--active:hover{color:var(--accent);border-color:var(--accent);background-color:rgba(var(--accent-rgb),.12)}.wizard-mode-toggle__btn svg{width:20px;height:20px;flex-shrink:0}.wizard-builds{display:flex;flex-direction:column;gap:.625rem;max-height:320px;overflow-y:auto;padding-right:.5rem;margin-right:-.5rem}.wizard-builds::-webkit-scrollbar{width:6px}.wizard-builds::-webkit-scrollbar-track{background:transparent}.wizard-builds::-webkit-scrollbar-thumb{background-color:var(--border);border-radius:3px}.wizard-build-option{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:1.25rem;padding:1rem 1.25rem;background-color:var(--bg-secondary);border:2px solid var(--border);border-radius:10px;cursor:pointer;transition:all .15s ease;width:100%;text-align:left}.wizard-build-option:hover{border-color:var(--accent);background-color:var(--bg-tertiary)}.wizard-build-option--selected{border-color:var(--accent);background-color:rgba(var(--accent-rgb),.08)}.wizard-build-option__info{min-width:0;overflow:hidden}.wizard-build-option__name{display:block;font-size:.9375rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wizard-build-option__specs{display:block;font-size:.8125rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wizard-build-option__price{font-size:1rem;font-weight:700;color:var(--accent);white-space:nowrap;font-family:Monaco,Consolas,monospace}.wizard-build-option__check{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background-color:var(--bg-tertiary);border:2px solid var(--border);border-radius:50%;flex-shrink:0;transition:all .15s ease;color:transparent}.wizard-build-option--selected .wizard-build-option__check{background-color:var(--accent);border-color:var(--accent);color:#fff}.wizard-build-name{margin-bottom:1.5rem}.wizard-create-mode .form-label{display:block;margin-bottom:.5rem;font-size:.875rem;font-weight:600;color:var(--text-primary)}.wizard-components{display:flex;flex-direction:column;gap:.875rem}.wizard-component-add{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1rem 1.25rem}.wizard-component-add__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.wizard-component-add__label{font-size:.875rem;font-weight:600;color:var(--text-primary)}.wizard-component-add__required{color:var(--error);margin-left:.125rem}.wizard-component-add__search{position:relative}.wizard-component-add__search .form-input,.wizard-component-add__search .form-input--sm{width:100%;min-height:44px;padding:.625rem 1rem;font-size:.9375rem;color:var(--text-primary);background-color:var(--bg-primary);border:1px solid var(--border);border-radius:8px;transition:border-color .2s ease,box-shadow .2s ease}.wizard-component-add__search .form-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15)}.wizard-search-results{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100;max-height:280px;overflow-y:auto;background-color:var(--bg-primary);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0003}.wizard-search-result{display:flex;align-items:center;gap:.875rem;width:100%;padding:.75rem 1rem;background:transparent;border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;transition:background-color .15s ease}.wizard-search-result:last-child{border-bottom:none}.wizard-search-result:hover{background-color:var(--bg-secondary)}.wizard-search-result__img{width:44px;height:44px;object-fit:contain;background-color:var(--bg-secondary);border-radius:6px;flex-shrink:0}.wizard-search-result__name{flex:1;min-width:0;font-size:.875rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wizard-search-result__price{font-size:.875rem;font-weight:600;color:var(--accent);white-space:nowrap}.wizard-search-loading{position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.wizard-search-loading .spinner--sm{width:18px;height:18px;border-width:2px}.wizard-component-add__selected{display:flex;align-items:center;gap:.875rem;padding:.75rem;background-color:var(--bg-tertiary);border-radius:8px}.wizard-component-add__img{width:44px;height:44px;object-fit:contain;background-color:var(--bg-secondary);border-radius:6px;flex-shrink:0}.wizard-component-add__name{flex:1;min-width:0;font-size:.875rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wizard-component-add__price{font-size:.9375rem;font-weight:600;color:var(--accent);white-space:nowrap}.wizard-component-add__remove{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:all .2s ease}.wizard-component-add__remove:hover{background-color:rgba(var(--error-rgb, 239, 68, 68),.15);color:var(--error)}.wizard-component-add__remove svg{width:18px;height:18px}.wizard-build-total{display:flex;align-items:center;justify-content:space-between;padding:1.25rem;margin-top:1.25rem;background-color:var(--bg-tertiary);border-radius:10px;border:1px solid var(--border)}.wizard-build-total__label{font-size:1rem;font-weight:500;color:var(--text-secondary)}.wizard-build-total__price{font-size:1.25rem;font-weight:700;color:var(--accent)}.wizard-create-hint{display:flex;align-items:center;gap:.625rem;margin-top:1.25rem;padding:1rem 1.25rem;font-size:.875rem;color:var(--text-secondary);background-color:rgba(var(--warning-rgb, 234, 179, 8),.1);border-radius:8px;border-left:4px solid var(--warning)}.wizard-create-hint svg{width:18px;height:18px;color:var(--warning);flex-shrink:0}.photo-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1.5rem;background-color:var(--bg-secondary);border:2px dashed var(--border);border-radius:12px;cursor:pointer;transition:all .2s ease}.photo-dropzone:hover{border-color:var(--accent);background-color:rgba(var(--accent-rgb),.05)}.photo-dropzone--active{border-color:var(--accent);background-color:rgba(var(--accent-rgb),.1);border-style:solid}.photo-dropzone--has-photos{padding:1.5rem}.photo-dropzone__input{display:none}.photo-dropzone__label{display:flex;flex-direction:column;align-items:center;gap:1rem;cursor:pointer;text-align:center}.photo-dropzone__label svg{width:48px;height:48px;color:var(--text-muted);opacity:.6}.photo-dropzone__label span{font-size:.9375rem;color:var(--text-secondary)}.photo-dropzone__label strong{color:var(--accent)}.photo-previews{margin-top:1.5rem}.photo-reorder-hint{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;padding:.75rem 1rem;font-size:.8125rem;color:var(--text-secondary);background-color:var(--bg-secondary);border-radius:8px;border-left:3px solid var(--accent)}.photo-reorder-hint svg{flex-shrink:0;color:var(--accent)}.photo-previews__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.photo-preview{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background-color:var(--bg-tertiary);border:2px solid transparent;transition:border-color .2s ease,transform .2s ease,opacity .2s ease;cursor:grab}.photo-preview:active{cursor:grabbing}.photo-preview--primary{border-color:var(--accent)}.photo-preview--dragging{opacity:.5;transform:scale(.95)}.photo-preview--drag-over{border-color:var(--accent);transform:scale(1.02);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.2)}.photo-preview__drag-handle{position:absolute;bottom:.5rem;right:.5rem;display:flex;align-items:center;justify-content:center;width:28px;height:28px;background-color:#0009;border-radius:6px;color:#ffffffb3;opacity:0;transition:opacity .2s ease;pointer-events:none}.photo-preview:hover .photo-preview__drag-handle{opacity:1}@media(hover:none){.photo-preview__drag-handle{opacity:1}}.photo-preview>img{width:100%;height:100%;object-fit:cover;display:block}.photo-preview__actions{position:absolute;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:flex-end;gap:.5rem;padding:.625rem;background:linear-gradient(180deg,rgba(0,0,0,.7) 0%,transparent 100%);opacity:0;transition:opacity .2s ease}.photo-preview:hover .photo-preview__actions{opacity:1}@media(hover:none){.photo-preview__actions{opacity:1}}.photo-preview__action{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background-color:#0009;border:none;border-radius:6px;color:#fff;cursor:pointer;transition:background-color .2s ease}.photo-preview__action:hover{background-color:#000c}.photo-preview__action--delete:hover{background-color:var(--error)}.photo-preview__action svg{width:16px;height:16px}.photo-preview__badge{position:absolute;bottom:.625rem;left:.625rem;padding:.3125rem .75rem;font-size:.6875rem;font-weight:700;color:#fff;background-color:var(--accent);border-radius:4px;text-transform:uppercase;letter-spacing:.04em}.photo-count{display:flex;align-items:center;justify-content:center;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border);font-size:.875rem;color:var(--text-secondary)}.form-group{margin-bottom:1.5rem}.form-group:last-child{margin-bottom:0}.form-label{display:block;margin-bottom:.5rem;font-size:.875rem;font-weight:600;color:var(--text-primary)}.form-input,.form-textarea{width:100%;min-height:48px;padding:.75rem 1rem;font-size:1rem;color:var(--text-primary);background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;transition:border-color .2s ease,box-shadow .2s ease}.form-input:hover,.form-textarea:hover{border-color:var(--accent)}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-textarea{min-height:140px;resize:vertical}.form-hint{display:flex;justify-content:flex-end;margin-top:.5rem;font-size:.8125rem;color:var(--text-muted)}.form-hint--error{color:var(--error)}.wizard-preview{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;overflow:hidden}.wizard-preview__photo{position:relative;width:100%;aspect-ratio:16 / 10;background-color:var(--bg-tertiary);overflow:hidden}.wizard-preview__photo img{width:100%;height:100%;object-fit:cover;display:block}.wizard-preview__info{padding:1.5rem}.wizard-preview__title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem}.wizard-preview__description{font-size:.9375rem;color:var(--text-secondary);margin:0 0 1.25rem;line-height:1.6}.wizard-preview__specs{display:flex;flex-direction:column;gap:.625rem;margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border)}.wizard-preview__spec{display:flex;align-items:center;gap:.625rem;font-size:.875rem}.wizard-preview__spec-label{color:var(--text-muted);min-width:50px}.wizard-preview__spec span:last-child{color:var(--text-primary);font-weight:500}.wizard-preview__price{display:flex;align-items:center;justify-content:space-between;gap:1rem}.wizard-preview__price-label{font-size:.9375rem;color:var(--text-secondary)}.wizard-preview__price-value{font-size:1.5rem;font-weight:700;color:var(--accent)}.wizard-preview__photos-count{margin-top:1rem;font-size:.875rem;color:var(--text-secondary)}.wizard-notice{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;margin-top:1.5rem;background-color:rgba(var(--info-rgb, 59, 130, 246),.1);border:1px solid rgba(var(--info-rgb, 59, 130, 246),.2);border-radius:10px}.wizard-notice svg{width:20px;height:20px;color:var(--info);flex-shrink:0;margin-top:.125rem}.wizard-notice span{font-size:.875rem;color:var(--text-secondary);line-height:1.5}.wizard-error{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;background-color:rgba(var(--error-rgb, 239, 68, 68),.1);border:1px solid rgba(var(--error-rgb, 239, 68, 68),.2);border-radius:10px;margin-bottom:1.25rem}.wizard-error svg{width:20px;height:20px;color:var(--error);flex-shrink:0;margin-top:.125rem}.wizard-error span{font-size:.875rem;color:var(--error);line-height:1.5}.upload-wizard__footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 2rem;background-color:var(--bg-secondary);border-top:1px solid var(--border);flex-shrink:0}.upload-wizard__footer-spacer{flex:1}.upload-wizard__footer .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:600;text-decoration:none;border:none;border-radius:10px;cursor:pointer;transition:all .2s ease}.upload-wizard__footer .btn--secondary{background-color:transparent;color:var(--text-secondary);border:1px solid var(--border)}.upload-wizard__footer .btn--secondary:hover{background-color:var(--bg-tertiary);color:var(--text-primary);border-color:var(--text-muted)}.upload-wizard__footer .btn--primary{background-color:var(--accent);color:#fff}.upload-wizard__footer .btn--primary:hover{background-color:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--accent-rgb),.3)}.upload-wizard__footer .btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.upload-wizard__footer .btn:disabled:hover{transform:none;box-shadow:none}.upload-wizard__footer .btn svg{width:18px;height:18px}.upload-wizard__settings-note{padding:.625rem 2rem;border-top:1px solid var(--border);flex-shrink:0}.upload-wizard__settings-note p{margin:0;font-size:.75rem;color:var(--text-muted);text-align:center}.upload-wizard__settings-note a{color:var(--accent);text-decoration:none}.upload-wizard__settings-note a:hover{text-decoration:underline}@media(max-width:768px){.upload-wizard-modal{padding:1rem}.upload-wizard__modal{max-width:100%}.upload-wizard__header{padding:1.25rem 1.5rem}.upload-wizard__content{padding:1.5rem}.upload-wizard__footer{padding:1.25rem 1.5rem}}@media(max-width:640px){.upload-wizard-modal{padding:0}.upload-wizard__modal{max-width:100%;max-height:100%;height:100%;border-radius:0}.upload-wizard__header,.upload-wizard__progress{padding:1rem 1.25rem}.upload-wizard__content{flex:1;overflow-y:auto;padding:1.5rem 1.25rem}.upload-wizard__footer{padding:1rem 1.25rem}.upload-wizard__footer .btn{flex:1;min-width:0}.photo-previews__grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.photo-reorder-hint{font-size:.75rem;padding:.625rem .875rem}.wizard-mode-toggle{grid-template-columns:1fr;gap:.5rem}.wizard-build-option{grid-template-columns:1fr auto;gap:1rem}.wizard-build-option__check{display:none}}@media(max-width:400px){.upload-wizard__header{padding:.875rem 1rem}.upload-wizard__header h2{font-size:1.125rem}.upload-wizard__progress{padding:.875rem 1rem}.upload-wizard__content{padding:1.25rem 1rem}.upload-wizard__footer{flex-direction:column;padding:1rem;gap:.75rem}.upload-wizard__footer .btn{width:100%;justify-content:center}.wizard-build-option{padding:.875rem 1rem;gap:.75rem}.wizard-build-option__name{font-size:.875rem}.wizard-build-option__specs{font-size:.75rem}.wizard-build-option__price{font-size:.875rem}.photo-preview__action{width:36px;height:36px}.progress-step__number{width:32px;height:32px;font-size:.875rem}.progress-step+.progress-step:before{width:20px}}@media(prefers-reduced-motion:reduce){.upload-wizard__modal,.wizard-step,.wizard-loading .spinner,.wizard-loading__spinner{animation:none}}