/* Shared PrintVibe workspace; colors inherit each Obektuv storefront. */
.upload-v2{color-scheme:dark}
.upload-v2 .review-dialog .review-heading{align-items:flex-start;gap:12px}
.upload-v2 #reviewClose{flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:8px;align-self:flex-start;font-size:23px}
.upload-v2 [hidden],.upload-v2 .pv-filter-hidden{display:none!important}
.upload-v2 #uploadLoader,.upload-v2 #uploadErrorsBox,.upload-v2 #selectedCount{display:none!important}
.redesign.upload-v2 .upload-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}
.upload-v2 .upload-main{min-width:0}
.redesign.upload-v2 .upload-sidebar{position:sticky;top:18px;padding:24px;margin:0;max-height:calc(100vh - 36px);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--accent-line) transparent}
.redesign.upload-v2 .print-settings{display:flex;flex-direction:column;gap:18px;border:0;padding:0;margin:0 0 28px;background:none}
.redesign.upload-v2 .print-settings h3{font-size:25px}
.redesign.upload-v2 .print-settings>.muted{margin:-10px 0 0;font-size:14px}
.redesign.upload-v2 .print-settings .product-segments{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.redesign.upload-v2 .product-segments button{padding:13px 8px;gap:8px;justify-content:center;border-width:1px;text-align:center}
.redesign.upload-v2 .product-segments button.active{padding:13px 8px}
.upload-v2 .product-segments button small{display:none}
.upload-v2 .product-segments button>img{width:24px;height:24px}
.redesign.upload-v2 .product-segments button strong{font-size:14px}
.redesign.upload-v2 .print-settings select{min-height:48px;font-size:16px}
.redesign.upload-v2 #orderSummary{border-top:1px solid var(--line);padding-top:24px}
.upload-v2 #pvCopiesPanel{border-top:1px solid var(--line);padding-top:20px}
.upload-v2 #pvCopiesPanel>label{font-size:16px;font-weight:700;display:block;margin-bottom:12px}
.pv-copies-row{display:flex;gap:12px;align-items:center}
.redesign.upload-v2 .pv-copies-row .copy-counter{flex:1;min-width:0;height:48px;display:flex}
.redesign.upload-v2 .pv-copies-row .copy-counter input{width:100%;min-width:25px}
.redesign.upload-v2 .pv-copies-row .copy-counter button{flex:0 0 38px;height:46px;font-size:22px}
.redesign.upload-v2 .pv-copies-row>.btn{min-height:48px;padding:12px 18px;font-size:15px;flex-shrink:0}
.upload-v2 #pvCopiesHint{font-size:13px;color:var(--muted);margin:10px 0 0}
.redesign.upload-v2 #dropZone{padding:30px 22px;border:1px dashed var(--accent);background:var(--accent-soft);border-radius:20px;min-height:230px}
.upload-v2 .upload-content{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}
.upload-v2 .pv-upload-icon{width:48px;height:48px;opacity:.9}
.redesign.upload-v2 .upload-content p{font-size:26px;font-weight:700;margin:0}
.redesign.upload-v2 .upload-content span{font-size:14px;color:var(--muted);line-height:1.6}
.upload-v2 .upload-content .btn{margin-top:5px;min-width:190px}
.pv-progress{border:1px solid var(--accent-line);border-radius:16px;background:var(--surface);padding:20px;margin-top:20px}
.pv-progress>div:first-child{display:flex;align-items:center;gap:14px}
.pv-progress strong{font-size:17px}.pv-progress p{color:var(--muted);font-size:14px;line-height:1.6;margin:5px 0}
.pv-progress b{margin-left:auto;color:var(--accent);font-size:22px}.pv-progress>p{margin:12px 0 0}
.pv-spinner{width:24px;height:24px;flex:0 0 24px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:pv-spin 1s linear infinite}
.pv-progress.is-complete .pv-spinner{animation:none;border-color:var(--accent);background:var(--accent-soft)}
.pv-progress.has-errors{border-color:#f58d8055}
.pv-track{height:5px;background:#ffffff10;border-radius:10px;overflow:hidden;margin-top:16px}
.pv-track i{display:block;height:100%;background:var(--accent);border-radius:inherit;transition:width .25s ease}
.pv-gallery-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:24px 0 18px}
.pv-gallery-summary>span{font-size:14px;color:var(--muted);padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.pv-gallery-summary strong{font-size:21px;color:var(--text);margin-right:6px}
.pv-gallery-summary>button{background:#d8a75d15;color:#efc78b;border:1px solid #d8a75d40;border-radius:10px;padding:12px;font:inherit;font-size:14px;cursor:pointer}
.pv-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.pv-filters button{display:flex;gap:8px;align-items:center;padding:10px 12px;min-height:42px;border:1px solid var(--line);border-radius:10px;color:var(--muted);background:transparent;font:inherit;font-size:14px;cursor:pointer}
.pv-filters button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}
.pv-filters button span{font-size:12px;min-width:18px;opacity:.8}
.redesign.upload-v2 .bulk-toolbar{background:transparent;border:0;padding:0;margin:0 0 18px;justify-content:flex-start;flex-wrap:wrap;gap:10px}
.upload-v2 #bulkDelete{margin-left:auto;color:#ffb7ac}
.redesign.upload-v2 .photo-grid,.pv-queue-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pv-queue-grid:not(:empty){margin-bottom:16px}
.redesign.upload-v2 .photo-card:not(.canvas-editor-card){position:relative;padding:12px;border:1px solid var(--line);background:var(--surface);border-radius:16px;transition:border-color .2s,box-shadow .2s;gap:12px}
.redesign.upload-v2 .photo-card:has([data-select-photo]:checked){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.upload-v2 .photo-card:not(.canvas-editor-card) .photo-selection{position:absolute;top:21px;left:21px;z-index:4;margin:0;padding:0;width:28px;height:28px}
.upload-v2 .photo-selection input{width:24px;height:24px;margin:0;accent-color:var(--accent);cursor:pointer;box-shadow:0 1px 8px #0008}
.pv-photo-stage{display:flex;align-items:center;justify-content:center;height:235px;padding:14px;background:#0003;border-radius:10px;order:0}
.redesign.upload-v2 .pv-photo-stage .photo-preview-frame{width:min(100%,calc(207px * var(--ratio)));height:auto;aspect-ratio:var(--ratio);border:0;border-radius:2px;max-height:none;box-shadow:0 7px 16px #0005}
.redesign.upload-v2 .photo-card:not(.canvas-editor-card) .photo-filename{font-size:13px;line-height:1.5;margin:0;order:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.redesign.upload-v2 .photo-card:not(.canvas-editor-card) .photo-controls{order:3;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.redesign.upload-v2 .photo-controls label{min-width:0}
.redesign.upload-v2 .photo-controls select{width:100%;font-size:14px;min-height:44px}
.redesign.upload-v2 .photo-card:not(.canvas-editor-card) .copy-counter{height:44px;max-width:150px;display:flex}
.redesign.upload-v2 .photo-card:not(.canvas-editor-card) .copy-counter input{width:100%;min-width:24px;padding:3px;font-size:16px!important}
.redesign.upload-v2 .photo-card:not(.canvas-editor-card) .copy-counter button{width:32px;flex-shrink:0}
.redesign.upload-v2 .photo-card:not(.canvas-editor-card) .photo-delete{align-self:end;justify-self:end;width:44px;height:44px;min-height:44px;padding:10px;border-radius:10px;background:transparent}
.upload-v2 .photo-delete img{width:22px;height:22px}
.pv-quality-note{order:2;color:#efc78b;font-size:13px;margin:0}
.pv-queue-card{padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:16px;min-width:0}
.pv-queue-card.is-error{border-color:#f58d8055}.pv-queue-visual{height:235px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px;background:var(--accent-soft);border-radius:10px;gap:14px}
.pv-queue-visual img{width:40px;height:40px;opacity:.7}.pv-queue-visual strong{font-size:14px;text-align:center;line-height:1.6}.pv-queue-visual .pv-track{width:100%;margin:0}
.pv-queue-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:14px}
.pv-queue-error{font-size:13px;color:#ffb7ac;line-height:1.6;overflow-wrap:anywhere}
.pv-queue-actions{display:flex;gap:8px;flex-wrap:wrap}.redesign.upload-v2 .pv-queue-actions .btn{font-size:13px;min-height:42px;padding:9px 12px}
.pv-empty{text-align:center;padding:35px 20px;color:var(--muted);border:1px solid var(--line);border-radius:16px}.pv-empty img{width:42px;opacity:.65}.pv-empty h3{font-size:20px;color:var(--text)}.pv-empty p{font-size:15px}
.upload-v2 .pv-review-name{display:block;max-width:100%;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:8px 0;color:var(--text)}
.redesign.upload-v2 .pv-small-dialog{max-width:530px}.pv-small-dialog>p{font-size:17px;line-height:1.7}.pv-apply-error{color:#ffb7ac}
.redesign.upload-v2 #photoGrid.has-canvas>.photo-card:not(.canvas-editor-card){width:calc((100% - 32px)/3)}
.upload-v2 #pvMobileStatus{grid-column:1/-1;color:var(--muted);font-size:12px}
@keyframes pv-spin{to{transform:rotate(360deg)}}
@media(max-width:1200px){.redesign.upload-v2 .upload-layout{grid-template-columns:minmax(0,1fr) 310px;gap:20px}.redesign.upload-v2 .upload-sidebar{padding:20px}.redesign.upload-v2 .photo-grid,.pv-queue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.redesign.upload-v2 #photoGrid.has-canvas>.photo-card:not(.canvas-editor-card){width:calc((100% - 16px)/2)}}
@media(max-width:900px){.redesign.upload-v2 .upload-layout{display:flex;flex-direction:column}.redesign.upload-v2 .upload-sidebar{position:static;max-height:none;overflow:visible;width:100%;order:-1}.redesign.upload-v2 .upload-main{width:100%}.redesign.upload-v2 .print-settings{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:0}.upload-v2 .print-settings h3,.upload-v2 .print-settings>.muted,.upload-v2 .settings-help,.upload-v2 #pvCopiesPanel{grid-column:1/-1}.redesign.upload-v2 .upload-sidebar #orderSummary{margin-top:20px}.redesign.upload-v2 .upload-sidebar .side-note{display:none}.redesign.upload-v2 .pv-copies-row .copy-counter{max-width:170px}.redesign.upload-v2 .photo-grid,.pv-queue-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.redesign.upload-v2 #photoGrid.has-canvas>.photo-card:not(.canvas-editor-card){width:calc((100% - 32px)/3)}}
@media(max-width:600px){.redesign.upload-v2 .upload-sidebar{padding:20px;margin:0}.redesign.upload-v2 .print-settings{gap:15px}.redesign.upload-v2 .print-settings h3{font-size:23px}.redesign.upload-v2 .print-settings .product-segments{grid-template-columns:1fr 1fr}.redesign.upload-v2 .upload-sidebar #placeOrderBtn,.redesign.upload-v2 .upload-sidebar #cancelOrderBtn{display:none}.redesign.upload-v2 .summary-list{font-size:14px}.redesign.upload-v2 #dropZone{padding:25px 16px}.redesign.upload-v2 .upload-content p{font-size:23px}.redesign.upload-v2 .upload-content span{font-size:13px}.redesign.upload-v2 .photo-grid,.pv-queue-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.redesign.upload-v2 #photoGrid.has-canvas>.photo-card:not(.canvas-editor-card){width:calc((100% - 10px)/2)}.redesign.upload-v2 .photo-card:not(.canvas-editor-card){padding:9px;gap:10px}.pv-photo-stage,.pv-queue-visual{height:180px;padding:10px}.redesign.upload-v2 .pv-photo-stage .photo-preview-frame{width:min(100%,calc(160px * var(--ratio)))}.upload-v2 .photo-card:not(.canvas-editor-card) .photo-selection{top:16px;left:16px}.redesign.upload-v2 .photo-card:not(.canvas-editor-card) .photo-controls{grid-template-columns:minmax(0,1fr)}.redesign.upload-v2 .photo-card:not(.canvas-editor-card) .photo-delete{position:absolute;bottom:9px;right:9px;width:36px;padding:7px}.redesign.upload-v2 .photo-card:not(.canvas-editor-card) .photo-controls label:has(.copy-counter){padding-right:37px}.redesign.upload-v2 .photo-card:not(.canvas-editor-card) .copy-counter button{width:25px}.redesign.upload-v2 .photo-card:not(.canvas-editor-card) .copy-counter{min-width:0}.pv-filters{gap:7px}.pv-filters button{padding:9px 10px;font-size:13px}.pv-gallery-summary{gap:8px}.pv-gallery-summary>span{padding:9px 10px;font-size:12px}.pv-gallery-summary strong{font-size:19px}.pv-progress{padding:16px}.pv-progress strong{font-size:15px}.pv-progress p{font-size:12px}.pv-spinner{display:none}.pv-progress b{font-size:19px}.redesign.upload-v2[data-view=upload] .mobile-upload-actions{display:grid;grid-template-columns:1fr 1fr}.redesign.upload-v2[data-view=upload] #chatFab{bottom:112px!important}.redesign.upload-v2 .crop-explanation{padding:20px}.redesign.upload-v2 .canvas-editor-card{width:100%}.redesign.upload-v2 .review-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.pv-queue-card{padding:9px}.pv-queue-visual strong{font-size:12px}.pv-queue-actions{flex-direction:column}}
@media(prefers-reduced-motion:reduce){.pv-spinner{animation:none}.pv-track i{transition:none}}

.upload-v2 .upload-sidebar::-webkit-scrollbar{width:5px}.upload-v2 .upload-sidebar::-webkit-scrollbar-track{background:transparent}.upload-v2 .upload-sidebar::-webkit-scrollbar-thumb{background:var(--accent-line);border-radius:8px}

.upload-page-jumps{display:none}
.redesign[data-view=upload] .upload-page-jumps{position:fixed;left:18px;bottom:22px;z-index:39;display:flex;gap:6px;padding:6px;border:1px solid var(--accent-line);border-radius:16px;background:var(--surface);box-shadow:0 6px 24px #0005}
.redesign .upload-page-jumps #scrollToSummaryBtn,.redesign .upload-page-jumps #scrollToBottomBtn{display:flex!important;position:static!important;inset:auto!important;width:44px;height:44px;min-height:44px;margin:0;padding:0;align-items:center;justify-content:center;border:0;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:27px;line-height:1;opacity:1!important;visibility:visible!important;transform:none!important;pointer-events:auto!important;cursor:pointer;transition:background .18s,color .18s}
.redesign .upload-page-jumps button:hover,.redesign .upload-page-jumps button:focus-visible{background:var(--accent)!important;color:var(--page)!important;outline:2px solid var(--accent);outline-offset:2px}
.canvas-saving .canvas-preview-frame{pointer-events:none}
.canvas-save-state{font-size:14px;color:var(--accent);margin:0}
@media(max-width:760px){.redesign[data-view=upload] .upload-page-jumps{bottom:108px;left:12px;padding:4px;gap:4px}}
@media(prefers-reduced-motion:reduce){.redesign .upload-page-jumps button{transition:none!important}}
