/* ============================================================================
   MOD-278 · DUPLICAR PRODUCTO — el modal
   ----------------------------------------------------------------------------
   Todo acotado a `#pxdup-velo`, que cuelga de <body> porque un modal no puede
   quedar recortado por el `overflow` de la ficha.

   Los colores se toman de las variables del detalle de PRODEX cuando existen, y
   sólo si no, de un valor propio: así el modal sigue al tema sin declarar una
   paleta paralela que luego se desincronice.
   ========================================================================== */
#pxdup-velo{
    position:fixed; inset:0; z-index:100600;
    background:rgba(10,12,18,.55);
    display:flex; align-items:center; justify-content:center; padding:20px;
}
#pxdup-velo *{box-sizing:border-box}
#pxdup-velo button, #pxdup-velo input{font:inherit}

#pxdup-velo .pxdup{
    width:min(520px,100%); max-height:88vh; overflow:auto;
    background:var(--pdx-surface, #fff);
    color:var(--pdx-text, #15171c);
    border:1px solid var(--pdx-border, #e1e3e8);
    border-radius:14px;
    box-shadow:0 22px 60px rgba(0,0,0,.30);
    text-transform:none; letter-spacing:0;
}
#pxdup-velo header{
    display:flex; align-items:center; justify-content:space-between;
    padding:15px 18px; border-bottom:1px solid var(--pdx-border-subtle, #eceef2);
}
#pxdup-velo header b{font-size:15px; font-weight:650}
#pxdup-velo header button{background:none; border:0; color:var(--pdx-text-muted, #8a90a0); font-size:15px; cursor:pointer}
#pxdup-velo header button:hover{color:var(--pdx-text, #15171c)}
#pxdup-velo .pxdup-cuerpo{padding:18px}
#pxdup-velo .pxdup-de{margin:0 0 16px; font-size:13px; color:var(--pdx-text-muted, #6a7080)}
#pxdup-velo .pxdup-de b{color:var(--pdx-accent, #0d9488)}

#pxdup-velo .pxdup-campo{margin-bottom:16px}
#pxdup-velo .pxdup-campo > span{
    display:block; margin-bottom:7px;
    font-size:10px; font-weight:600; letter-spacing:.08em;
    color:var(--pdx-text-muted, #8a90a0);
}
#pxdup-velo input[type="text"], #pxdup-velo input:not([type]){
    width:100%; padding:9px 11px; font-size:13.5px;
    background:var(--pdx-surface-2, #f7f8fa);
    color:var(--pdx-text, #15171c);
    border:1px solid var(--pdx-border, #e1e3e8); border-radius:9px;
}
#pxdup-velo input:focus{border-color:var(--pdx-accent, #0d9488); outline:none}
#pxdup-velo input:disabled{opacity:.5; cursor:not-allowed}

#pxdup-velo .pxdup-op{
    display:flex; gap:10px; align-items:flex-start;
    padding:11px 12px; margin-bottom:8px; cursor:pointer;
    border:1px solid var(--pdx-border, #e1e3e8); border-radius:10px;
}
#pxdup-velo .pxdup-op:has(input:checked){border-color:var(--pdx-accent, #0d9488)}
#pxdup-velo .pxdup-op > input{margin-top:2px; flex:0 0 auto}
#pxdup-velo .pxdup-op > span{flex:1; min-width:0}
#pxdup-velo .pxdup-op b{display:block; font-size:13px; font-weight:550}
#pxdup-velo .pxdup-op small{
    display:block; margin-top:2px; font-size:12px;
    color:var(--pdx-text-muted, #8a90a0);
    font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}
#pxdup-velo .pxdup-op input[type="text"], #pxdup-velo .pxdup-op input:not([type]){margin-top:6px}

#pxdup-velo .pxdup-aviso{margin-top:6px; font-size:12px; min-height:16px}
#pxdup-velo .pxdup-aviso.mal{color:var(--pdx-danger, #dc2626)}
#pxdup-velo .pxdup-aviso.bien{color:var(--pdx-text-muted, #6a7080)}

#pxdup-velo .pxdup-lista{
    margin:0; padding:13px 15px 13px 30px;
    background:var(--pdx-surface-2, #f7f8fa);
    border-radius:10px; font-size:12.5px; line-height:1.6;
    color:var(--pdx-text-muted, #6a7080);
}
#pxdup-velo .pxdup-lista li{margin-bottom:3px}
#pxdup-velo .pxdup-lista b{color:var(--pdx-text, #15171c)}

#pxdup-velo footer{
    display:flex; justify-content:flex-end; gap:9px;
    padding:14px 18px; border-top:1px solid var(--pdx-border-subtle, #eceef2);
}
#pxdup-velo .pxdup-b{
    padding:8px 16px; border-radius:9px; font-size:13px; cursor:pointer;
    background:var(--pdx-surface-2, #f7f8fa);
    color:var(--pdx-text, #15171c);
    border:1px solid var(--pdx-border, #e1e3e8);
}
#pxdup-velo .pxdup-b:hover:not(:disabled){border-color:var(--pdx-border-strong, #cccfd7)}
#pxdup-velo .pxdup-pri{
    background:var(--pdx-accent, #0d9488);
    border-color:var(--pdx-accent, #0d9488);
    color:#fff; font-weight:600;
}
#pxdup-velo .pxdup-pri:hover:not(:disabled){filter:brightness(1.08)}
#pxdup-velo .pxdup-b:disabled{opacity:.45; cursor:not-allowed}
