:root{--designer-panel:#121212;--designer-soft:#1a1a1a}.designer-page{min-height:100vh;background:#090909}.designer-header{height:76px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(9,9,9,.95)}.designer-header .brand img{width:168px;filter:brightness(0) invert(1)}.back-link{font-size:13px;color:#9b9791}.back-link:hover{color:var(--paper)}.designer-shell{padding:62px 4vw 90px}.designer-intro{max-width:900px;margin-bottom:38px}.designer-intro h1{font-size:clamp(42px,5vw,74px);letter-spacing:-.055em;line-height:1;margin-bottom:18px}.designer-intro>p:last-child{max-width:680px;color:#aaa6a0;line-height:1.65}.designer-app{display:grid;grid-template-columns:260px minmax(430px,1fr) 260px;gap:18px;align-items:start}.designer-controls,.order-panel{background:var(--designer-panel);border:1px solid var(--line);padding:22px}.control-block{padding:0 0 22px;margin-bottom:22px;border-bottom:1px solid var(--line)}.control-block:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.step-tag{display:block;color:#ef566e;text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:800;margin-bottom:13px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:6px}.segmented button,.small-action{border:1px solid #323232;color:#aaa;background:#191919;padding:11px 10px;font:600 12px Inter;cursor:pointer;transition:.2s}.segmented button.active,.segmented button:hover,.small-action:hover{border-color:var(--red);color:white;background:#250d11}.swatches{display:flex;gap:10px}.swatches button{width:28px;height:28px;border-radius:50%;border:2px solid transparent;outline:1px solid #333;cursor:pointer;background:var(--swatch)}.swatches button:nth-child(1){background:#111}.swatches button:nth-child(2){background:#f2f0eb}.swatches button:nth-child(3){background:#777b80}.swatches button:nth-child(4){background:#15243d}.swatches button:nth-child(5){background:#a90f25}.swatches button.active{border-color:#090909;outline:2px solid var(--red)}.upload-zone{display:grid;place-items:center;text-align:center;min-height:105px;border:1px dashed #4b4845;background:#171717;cursor:pointer;padding:16px}.upload-zone:hover{border-color:var(--red)}.upload-zone strong{font:700 14px Sora}.upload-zone span{font-size:10px;color:#77736e;margin-top:5px}.bg-tools{grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.bg-tools:not([hidden]){display:grid}.small-action.muted{color:#777}.small-action.full{width:100%;margin-top:11px}.file-status,.help{font-size:10px;color:#77736e;line-height:1.5;margin:10px 0 0}.design-tools label{display:flex;justify-content:space-between;font-size:11px;color:#aaa;margin-bottom:9px}.design-tools input[type=range]{width:100%;accent-color:var(--red)}.designer-preview-column{min-width:0}.preview-toolbar{height:44px;display:flex;justify-content:space-between;align-items:center;padding:0 15px;background:#151515;border:1px solid var(--line);font-size:10px;text-transform:uppercase;letter-spacing:.1em}.preview-toolbar span:last-child{color:#706d68}.mockup-stage{position:relative;aspect-ratio:1/1;background:radial-gradient(circle at center,#272727,#111 66%,#0b0b0b);border:1px solid var(--line);border-top:0;overflow:hidden;touch-action:none}.mockup-stage:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:28px 28px}.garment-image,.garment-tint{position:absolute;inset:5%;width:90%;height:90%;object-fit:contain}.garment-image{z-index:2;mix-blend-mode:luminosity;opacity:.68;pointer-events:none}.garment-tint{z-index:1;background:var(--garment-color);-webkit-mask:url('assets/mockup-polera-frente.png') center/contain no-repeat;mask:url('assets/mockup-polera-frente.png') center/contain no-repeat;filter:brightness(.86)}.print-zone{position:absolute;z-index:4;inset:5%;width:90%;height:90%;-webkit-mask:url('assets/mockup-polera-frente.png') center/contain no-repeat;mask:url('assets/mockup-polera-frente.png') center/contain no-repeat}.customer-design{position:absolute;left:50%;top:42%;width:28%;height:auto;transform:translate(-50%,-50%);cursor:grab;user-select:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.24))}.customer-design:active{cursor:grabbing}.preview-note{font-size:10px;color:#706d68;line-height:1.5}.order-panel{display:grid;gap:15px}.order-panel label{display:grid;gap:7px;color:#a7a39d;font-size:11px}.order-panel input{width:100%;background:#191919;border:1px solid #333;color:white;padding:12px;font:500 13px Inter;outline:none}.order-panel input:focus{border-color:var(--red)}.full-button{width:100%;border:0;cursor:pointer}.full-button:disabled{opacity:.35;cursor:not-allowed;transform:none}.order-note{font-size:10px;line-height:1.5;color:#77736e;margin:0}.designer-page .btn-ghost{background:#171717;color:white}.designer-page .btn-primary{border:0}
.side-selector button{position:relative}.side-selector button.has-design:after{content:"✓";position:absolute;right:7px;top:6px;width:15px;height:15px;display:grid;place-items:center;border-radius:50%;background:var(--red);color:white;font-size:9px}.side-selector button.has-design{padding-right:27px}
@media(max-width:1080px){.designer-app{grid-template-columns:230px 1fr}.order-panel{grid-column:1/-1;grid-template-columns:repeat(4,1fr);align-items:end}.order-panel .step-tag,.order-note{grid-column:1/-1}.full-button{min-height:44px}}
@media(max-width:760px){.designer-shell{padding:42px 18px 70px}.designer-header{padding:0 18px}.designer-app{grid-template-columns:1fr}.designer-preview-column{grid-row:1}.designer-controls{grid-row:2}.order-panel{grid-column:auto;grid-template-columns:1fr}.order-panel .step-tag,.order-note{grid-column:auto}.mockup-stage{max-height:78vh}.designer-intro{margin-bottom:26px}.designer-intro h1{font-size:43px}.back-link{font-size:11px}}

.designer-header .brand img{filter:none}

/* Guided PRO workflow */
.flow-steps{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.flow-steps span{display:flex;align-items:center;gap:9px;padding:10px 14px;border:1px solid #2f2f2f;background:#111;color:#aaa6a0;font-size:13px}.flow-steps b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--red);color:#fff;font:800 11px Sora}.source-selector button{min-height:48px;line-height:1.25}.custom-garment-tools{margin-top:14px;padding-top:14px;border-top:1px solid #292929}.garment-upload-zone{min-height:120px;border-color:rgba(242,13,47,.52);background:linear-gradient(145deg,#1d1113,#171717)}.garment-upload-zone strong:before{content:"＋";display:block;margin-bottom:7px;color:var(--red);font:800 24px Sora}.garment-rotate-tools{grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.garment-rotate-tools:not([hidden]){display:grid}.garment-rotate-tools .small-action{min-height:42px}.help,.file-status,.preview-note,.order-note{font-size:12px}.design-tools label,.order-panel label{font-size:13px}.small-action{font-size:13px}.side-selector button.has-garment{box-shadow:inset 0 -2px #5b5b5b}.mockup-stage.custom-garment-mode .garment-image{mix-blend-mode:normal;opacity:1;filter:drop-shadow(0 18px 22px rgba(0,0,0,.42))}.mockup-stage.needs-garment .garment-image{opacity:.16}.mockup-stage.needs-garment:after{content:"Sube la foto de esta vista para diseñar sobre tu propia prenda";position:absolute;z-index:6;left:50%;top:50%;width:min(76%,390px);transform:translate(-50%,-50%);padding:18px;border:1px dashed rgba(242,13,47,.7);background:rgba(9,9,9,.9);color:#f7f4ee;text-align:center;font:700 14px/1.5 Sora;pointer-events:none}.color-block[hidden],.custom-garment-tools[hidden],.garment-rotate-tools[hidden]{display:none}

@media(max-width:760px){.designer-intro{margin-bottom:22px}.designer-intro>p:last-child{font-size:15px}.flow-steps{display:grid;grid-template-columns:1fr;margin-top:20px}.flow-steps span{min-height:44px}.designer-app{display:flex;flex-direction:column;gap:12px}.designer-controls{display:contents}.designer-controls .control-block{width:100%;margin:0;padding:18px;background:var(--designer-panel);border:1px solid var(--line)}.garment-source-block{order:1}.upload-block{order:2}.designer-preview-column{order:3;width:100%}.garment-type-block{order:4}.view-block{order:5}.color-block{order:6}.design-tools{order:7}.order-panel{order:8;width:100%}.upload-zone{min-height:112px}.mockup-stage{max-height:none}.preview-toolbar{font-size:9px}.step-tag{font-size:11px}.back-link{white-space:nowrap}}

/* La prenda propia usa toda la fotografía como área libre de diseño. */
.mockup-stage.custom-garment-mode .print-zone{-webkit-mask:none;mask:none}

/* Flujo progresivo del configurador */
.catalog-garment-tools{margin-top:16px;padding-top:16px;border-top:1px solid #292929}.catalog-garment-tools[hidden]{display:none}.sub-label{display:block;margin-bottom:9px;color:#aaa;font-size:13px;font-weight:600}.garment-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.garment-upload-grid .garment-upload-zone{min-width:0;padding:14px 8px}.garment-upload-grid .garment-upload-zone.optional{border-color:#45413e;background:#171717}.garment-upload-zone small{display:block;margin-top:10px;color:#ef566e;font-size:10px;line-height:1.35}.swatches{flex-wrap:wrap;gap:12px}.swatches button{width:32px;height:32px;background:var(--swatch)}.preview-size-tools{margin-top:18px;padding:20px;background:var(--designer-panel);border:1px solid var(--line)}.preview-size-tools label{font-size:14px}.preview-size-tools input[type=range]{height:28px}
@media(min-width:1081px){.designer-app{grid-template-columns:340px minmax(430px,1fr) 260px}}
@media(max-width:760px){.garment-source-block{order:1}.color-block{order:2}.view-block{order:3}.upload-block{order:4}.designer-preview-column{order:5;display:flex;flex-direction:column}.order-panel{order:6}.garment-upload-grid{grid-template-columns:1fr 1fr}.designer-preview-column .preview-toolbar{order:1}.designer-preview-column .mockup-stage{order:2}.designer-preview-column .preview-note{order:3}.designer-preview-column .preview-size-tools{order:4;width:100%;margin-top:0}}

/* Múltiples estampados por cada vista */
.customer-design{touch-action:none}.customer-design.active{outline:2px dashed #fff;outline-offset:5px;filter:drop-shadow(0 3px 5px rgba(0,0,0,.5))}.design-list{display:grid;gap:6px;margin-top:10px}.design-list:empty{display:none}.design-list button{min-width:0;padding:9px 10px;border:1px solid #303030;background:#171717;color:#888;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:600 11px Inter;cursor:pointer}.design-list button.active{border-color:var(--red);background:#250d11;color:#fff}.preview-size-tools .small-action.muted{margin-top:7px}

/* Texto personalizable */
.field-label{display:block;margin:12px 0 6px;color:#aaa;font-size:12px}.text-control{width:100%;height:42px;padding:0 11px;border:1px solid #343434;background:#191919;color:#fff;font:500 13px Inter;outline:none}.text-control:focus{border-color:var(--red)}select.text-control{cursor:pointer}.text-add-row{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:end;margin-top:11px}.text-add-row label{display:grid;gap:5px;color:#aaa;font-size:11px}.text-add-row input[type=color]{width:48px;height:42px;padding:3px;border:1px solid #343434;background:#191919;cursor:pointer}.text-add-row .small-action{height:42px}.text-tools{margin-top:13px;padding-top:13px;border-top:1px solid #303030}.text-tools[hidden]{display:none}.text-tools label{display:flex;justify-content:space-between;margin-bottom:7px;color:#aaa;font-size:12px}.text-tools input[type=range]{width:100%;accent-color:var(--red)}.customer-text{position:absolute;z-index:2;transform:translate(-50%,-50%);white-space:nowrap;font-weight:700;line-height:1;cursor:grab;user-select:none;touch-action:none;text-shadow:0 2px 3px rgba(0,0,0,.35)}.customer-text.active{outline:2px dashed #fff;outline-offset:6px}.customer-text:active{cursor:grabbing}
@media(max-width:760px){.text-block{order:5}.designer-preview-column{order:6}.order-panel{order:7}}

/* Control de precisión exclusivo para celulares */
.mobile-nudge{display:none}.nudge-pad{width:174px;margin:0 auto;display:grid;grid-template-columns:54px 54px 54px;grid-template-rows:54px 54px 54px;gap:6px;grid-template-areas:". up ." "left center right" ". down ."}.nudge-pad button{border:1px solid #454545;border-radius:12px;background:#1b1b1b;color:#fff;font:700 25px Inter;touch-action:manipulation}.nudge-pad button:active{background:var(--red);border-color:var(--red);transform:scale(.95)}.nudge-up{grid-area:up}.nudge-left{grid-area:left}.nudge-right{grid-area:right}.nudge-down{grid-area:down}.nudge-center{grid-area:center;display:grid;place-items:center;color:var(--red);font-size:12px}.mobile-nudge-label{display:block;margin-bottom:12px;text-align:center;color:#aaa;font-size:13px;font-weight:600}
@media(max-width:760px){.mobile-nudge{display:block;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid #303030}}

/* Tamaño del elemento seleccionado en computadores */
.desktop-resize-controls{position:absolute;z-index:9;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:8px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(9,9,9,.94);box-shadow:0 12px 30px rgba(0,0,0,.42);backdrop-filter:blur(10px)}.desktop-resize-controls[hidden]{display:none}.desktop-resize-controls button{width:42px;height:42px;border:1px solid #3b3b3b;border-radius:50%;background:#1b1b1b;color:#fff;font:800 24px/1 Inter;cursor:pointer;touch-action:manipulation;transition:background .18s,border-color .18s,transform .18s}.desktop-resize-controls button:hover{background:var(--red);border-color:var(--red);transform:scale(1.04)}.desktop-resize-controls button:active{transform:scale(.95)}.desktop-resize-controls span{display:grid;min-width:70px;text-align:center}.desktop-resize-controls small{color:#8e8a84;font:700 9px/1.2 Inter;text-transform:uppercase;letter-spacing:.09em}.desktop-resize-controls strong{margin-top:3px;color:#fff;font:800 14px/1 Sora}
@media(max-width:760px){.desktop-resize-controls{bottom:10px;gap:7px;padding:7px}.desktop-resize-controls button{width:46px;height:46px}.desktop-resize-controls span{min-width:64px}.desktop-resize-controls small{font-size:8px}.desktop-resize-controls strong{font-size:15px}}
