/* estilos/ec-presupuestador.css (14/10/2026, k1016; 15/10, k1022: lo que pidio el usuario): el presupuestador unico de la ficha (js/ec-presupuestador.js).
   Un panel a la derecha de 1.140 px (las tallas caben sin barra lateral); por debajo de 820 px, a pantalla completa.
   Si se cambia, su ?v= en detalles-presupuesto-rapido.asp.
   15/10/2026 (k1030): los botones con ".pz-raiz" delante (".pz-raiz button { color: inherit }" les ganaba y el texto
   salia oscuro sobre el azul marino); la lista de impresion flotante; la vista previa del diseno; WhatsApp | Email. */
html.pz-abierto, html.pz-abierto body { overflow: hidden; }
.pz-raiz { position: fixed; inset: 0; z-index: 100000; font-family: inherit; color: #0f1b2d; }
.pz-raiz[hidden] { display: none !important; }
.pz-fondo { position: absolute; inset: 0; background: rgba(15, 27, 45, .55); }
.pz-panel { position: absolute; top: 0; right: 0; bottom: 0; width: 1140px; max-width: 100vw; background: #fff; display: flex; flex-direction: column; box-shadow: -18px 0 48px rgba(15, 27, 45, .3); }
.pz-raiz *, .pz-raiz *:before, .pz-raiz *:after { box-sizing: border-box; }
.pz-raiz button, .pz-raiz input, .pz-raiz select { font: inherit; color: inherit; }
.pz-raiz input[type=number] { -moz-appearance: textfield; }
.pz-raiz input[type=number]::-webkit-inner-spin-button { opacity: .35; }

/* cabecera */
.pz-cab { display: flex; align-items: center; gap: 12px; padding: 10px 22px; border-bottom: 1px solid #e2e8f0; }
.pz-cab-foto { width: 40px; height: 48px; object-fit: contain; border-radius: 8px; border: 1px solid #e2e8f0; flex: none; background: #fff; }
.pz-cab-tx { flex: 1; min-width: 0; }
.pz-cab-tit { font-size: 18px; font-weight: 800; line-height: 1.2; color: #002147; }
.pz-cab-sub { font-size: 12.5px; color: #475569; margin-top: 2px; }
.pz-modo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding: 4px; border-radius: 11px; background: #eef2f6; width: 330px; flex: none; }
.pz-modo button { min-height: 40px; border: 0; border-radius: 8px; background: transparent; color: #334155; font-weight: 600; font-size: 13.5px; cursor: pointer; padding: 0 8px; }
.pz-modo button.on { background: #002147; color: #fff; font-weight: 700; }
/* (k1100) el modo es el paso 1: dentro de su seccion */
.pz-sec-modo .pz-modo { width: min(460px, 100%); margin-top: 2px; }
.pz-raiz .pz-x { display: inline-flex; align-items: center; justify-content: center; gap: 7px; flex: none; height: 40px; padding: 0 15px 0 12px; border: 1.5px solid #cbd5e1; border-radius: 10px; background: #fff; color: #0f172a; font-size: 13.5px; font-weight: 700; line-height: 1; cursor: pointer; }
.pz-x svg { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; }
.pz-raiz .pz-x:hover, .pz-raiz .pz-x:focus-visible { background: #0f172a; border-color: #0f172a; color: #fff; }
.pz-raiz .pz-x-s { width: 38px; height: 38px; padding: 0; }
.pz-sep { color: #94a3b8; margin: 0 2px; }

/* cuerpo */
.pz-cuerpo { flex: 1; overflow-y: auto; padding: 14px 22px 20px; display: flex; flex-direction: column; gap: 18px; -webkit-overflow-scrolling: touch; }
.pz-sec { display: flex; flex-direction: column; gap: 9px; }
.pz-sec-cab { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: #f1f5f9; border: 1px solid #dbe3ec; border-radius: 8px; padding: 6px 12px; min-height: 44px; }
.pz-h { margin: 0; display: flex; align-items: center; font-size: 14px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #002147; }
.pz-num { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 24px; height: 24px; margin-right: 9px; border-radius: 50%; background: #0f172a; color: #fff; font-size: 13px; font-weight: 800; letter-spacing: 0; }
.pz-nota { font-size: 12.5px; color: #475569; }
.pz-mt { margin-top: 4px; }
.pz-esp { flex: 1; }
.pz-r { text-align: right; justify-self: end; }
.pz-verde { color: #1d7a45; font-weight: 700; }
.pz-rojo { color: #b42318; }
.pz-ambar { color: #b45309; }
.pz-vacio { font-size: 13.5px; color: #475569; }
.pz-vacio-c { padding: 14px; border-radius: 12px; background: #f8fafc; border: 1px dashed #cbd5e1; text-align: center; }
.pz-error { padding: 9px 12px; border-radius: 9px; background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; font-size: 13.5px; }
.pz-raiz .pz-link { border: 0; background: none; color: #005a9c; font-weight: 700; font-size: 13px; cursor: pointer; padding: 6px; }
.pz-busca { display: flex; align-items: center; gap: 6px; height: 36px; padding: 0 10px; border: 1px solid #cbd5e1; border-radius: 9px; background: #fff; }
.pz-busca svg { width: 15px; height: 15px; fill: none; stroke: #64748b; stroke-width: 2.2; stroke-linecap: round; }
.pz-busca input { border: 0; outline: 0; width: 140px; font-size: 13.5px; background: transparent; }
.pz-raiz .pz-chip { height: 36px; padding: 0 12px; border-radius: 18px; border: 1px solid #cbd5e1; background: #fff; color: #334155; font-size: 13px; font-weight: 600; cursor: pointer; }
.pz-raiz .pz-chip.on { background: #002147; border-color: #002147; color: #fff; font-weight: 700; }
.pz-filtros { display: inline-flex; border: 1px solid #cbd5e1; border-radius: 8px; overflow: hidden; background: #fff; }
.pz-raiz .pz-filtro { height: 32px; padding: 0 14px; border: 0; border-left: 1px solid #cbd5e1; background: #fff; color: #334155; font-size: 13px; font-weight: 600; cursor: pointer; }
.pz-filtro:first-child { border-left: 0; }
.pz-raiz .pz-filtro:hover { background: #f2f6fb; }
.pz-raiz .pz-filtro.on { background: #002147; color: #fff; font-weight: 700; }

/* colores */
.pz-cols { display: grid; grid-template-columns: repeat(16, minmax(0, 1fr)); gap: 6px; }
.pz-mu { display: flex; flex-direction: column; gap: 3px; min-width: 0; padding: 3px 3px 4px; border-radius: 9px; border: 2px solid #e2e8f0; background: #fff; cursor: pointer; }
.pz-mu-f { position: relative; display: block; width: 100%; aspect-ratio: 1; max-width: 100%; }
.pz-mu-f img, .pz-mu-f .pz-hex { width: 100%; height: 100%; object-fit: cover; border-radius: 6px; display: block; }
.pz-mu-n { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.3em; font-size: 10.5px; line-height: 1.15; color: #475569; text-align: center; word-break: break-word; overflow-wrap: anywhere; }
.pz-mu.on .pz-mu-n { color: #002147; font-weight: 700; }
.pz-mu.on { border-color: #002147; background: #f2f6fb; }
.pz-mu-ok { position: absolute; top: 3px; right: 3px; width: 18px; height: 18px; border-radius: 9px; background: #002147; box-shadow: 0 0 0 2px #fff; }
.pz-mu-ok:after { content: ""; position: absolute; left: 6px; top: 3px; width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.pz-hex { display: inline-block; background: #e2e8f0; }
.pz-colnom { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 13px; line-height: 1.2; }
.pz-colnom img, .pz-colnom .pz-hex { width: 30px; height: 30px; object-fit: cover; border-radius: 6px; flex: none; }

/* cantidades: sin tallas */
.pz-todos { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 9px 12px; border-radius: 10px; background: #f8fafc; border: 1px solid #e2e8f0; font-size: 13.5px; }
.pz-todos label { display: flex; align-items: center; gap: 6px; }
.pz-todos input { width: 72px; height: 36px; border: 1px solid #cbd5e1; border-radius: 8px; padding: 0 8px; font-weight: 600; }
.pz-raiz .pz-b2 { height: 38px; padding: 0 14px; border-radius: 9px; border: 1px solid #002147; background: #fff; color: #002147; font-weight: 700; cursor: pointer; }
.pz-raiz .pz-b2:hover { background: #f2f6fb; }
.pz-ap { border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden; }
.pz-ap-f { display: grid; grid-template-columns: minmax(0, 1fr) repeat(3, 130px) 70px 40px; align-items: center; gap: 0 8px; padding: 6px 12px; border-top: 1px solid #eef2f6; }
.pz-ap-f:first-child { border-top: 0; }
.pz-ap-cab { background: #f8fafc; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #475569; padding: 8px 12px; }
.pz-campo { display: flex; flex-direction: column; gap: 2px; }
.pz-campo i { display: none; font-style: normal; font-size: 11.5px; font-weight: 600; color: #475569; }
.pz-campo input { width: 100%; max-width: 110px; height: 38px; border: 1px solid #cbd5e1; border-radius: 8px; padding: 0 8px; font-size: 15px; font-weight: 600; }
.pz-campo.pz-no { color: #94a3b8; }
.pz-tot { font-weight: 800; font-variant-numeric: tabular-nums; }
.pz-raiz .pz-quita { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; border-radius: 8px; border: 1.5px solid #e4b3bc; background: #fff6f7; color: #8b1a2b; cursor: pointer; }
.pz-quita svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2.8; stroke-linecap: round; }
.pz-raiz .pz-quita:hover, .pz-raiz .pz-quita:focus-visible { background: #8b1a2b; border-color: #8b1a2b; color: #fff; }

/* cantidades: la tabla de tallas */
.pz-tb { border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden; }
.pz-tb-f { display: grid; align-items: start; border-top: 1px solid #eef2f6; padding: 0 6px 0 10px; }
.pz-tb-f > span { padding: 7px 2px; min-width: 0; }
.pz-tb-f > .pz-colnom { padding: 8px 4px 8px 0; align-self: center; }
.pz-tb-g { background: #f8fafc; border-top: 0; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #475569; }
.pz-tb-g > span { text-align: center; padding: 6px 2px; }
.pz-g-NI { box-shadow: inset 0 -2px 0 #f59e0b; } .pz-g-AD { box-shadow: inset 0 -2px 0 #005a9c; } .pz-g-GR { box-shadow: inset 0 -2px 0 #7c3aed; }
.pz-tb-c { background: #f8fafc; font-size: 12.5px; font-weight: 700; text-align: center; }
.pz-tb-c .pz-l, .pz-tb-t .pz-l { text-align: left; font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: #475569; }
.pz-tb-t { background: #f8fafc; font-size: 12.5px; font-weight: 700; text-align: center; font-variant-numeric: tabular-nums; }
.pz-c { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.pz-c input { width: 100%; max-width: 50px; height: 34px; border: 1px solid #cbd5e1; border-radius: 7px; padding: 0 2px; text-align: center; font-size: 14px; font-weight: 600; }
.pz-c input:focus, .pz-campo input:focus, .pz-todos input:focus { outline: 2px solid #005a9c; outline-offset: 0; border-color: #005a9c; }
.pz-c.pz-no { color: #cbd5e1; height: 34px; justify-content: center; }
.pz-tb-f > .pz-tot { padding-top: 15px; }
.pz-tb-f > .pz-quita { margin-top: 8px; }
.pz-st { font-style: normal; font-size: 10px; font-weight: 600; line-height: 1.15; text-align: center; white-space: nowrap; }
.pz-st-ok { color: #2f6b4f; } .pz-st-poco { color: #b45309; font-weight: 700; } .pz-st-no { color: #b42318; font-weight: 700; white-space: normal; }
.pz-st-con { color: #64748b; } .pz-st-carga { color: #94a3b8; }
.pz-ley { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; font-size: 12.5px; color: #475569; }
.pz-ley span[class^="pz-st"] { font-size: 12.5px; font-weight: 800; }
/* (k1051) la leyenda del stock, debajo de la tabla de tallas */
.pz-ley-st { display: block; margin: 6px 2px 0; font-size: 11px; line-height: 1.45; color: #64748b; }
.pz-ley-st[hidden] { display: none; }
.pz-ley-st b { color: #334155; font-weight: 700; }
.pz-ley-st .pz-st { font-size: 11px; display: inline; }

/* personalizacion */
.pz-imps { border: 1px solid #e2e8f0; border-radius: 12px; }
.pz-imps > .pz-imp:first-child { border-radius: 11px 11px 0 0; }
.pz-imp { display: grid; grid-template-columns: 34px 172px minmax(0, 1fr) 160px 104px 100px 36px; align-items: start; gap: 0 8px; padding: 8px 10px; border-top: 1px solid #eef2f6; }
.pz-imp:first-child { border-top: 0; }
.pz-imp-cab { background: #f8fafc; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #475569; }
.pz-imp-n { padding-top: 10px; font-weight: 800; color: #475569; }
.pz-imp-loc, .pz-imp-tec, .pz-imp-file { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.pz-imp select, .pz-imp input[type=text] { height: 38px; width: 100%; border: 1px solid #cbd5e1; border-radius: 8px; padding: 0 8px; font-size: 13.5px; background: #fff; }
.pz-imp-loc select { font-weight: 700; }
.pz-imp-pu, .pz-imp-sub { padding-top: 10px; font-variant-numeric: tabular-nums; font-size: 13.5px; }
.pz-imp .pz-quita { margin-top: 3px; }
.pz-falta { font-size: 11.5px; font-weight: 700; color: #b42318; }
.pz-tb-tag { align-self: flex-start; font-size: 11.5px; font-weight: 700; color: #7c2d12; background: #ffedd5; border-radius: 6px; padding: 2px 8px; }
.pz-sube { display: inline-flex; align-self: flex-start; align-items: center; gap: 7px; max-width: 100%; height: 36px; padding: 0 12px; border: 1px dashed #94a3b8; border-radius: 8px; cursor: pointer; font-size: 13px; font-weight: 600; color: #005a9c; overflow: hidden; }
.pz-sube span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pz-sube svg { width: 16px; height: 16px; flex: none; fill: none; stroke: #005a9c; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pz-sube:hover { background: #f2f6fb; }
.pz-sube-g { max-width: 360px; height: 44px; }
.pz-sube-on { cursor: wait; color: #475569; border-style: solid; }
.pz-adj { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pz-adj-f { position: relative; flex: none; width: 44px; height: 44px; border-radius: 8px; border: 1px solid #cbd5e1; background: #fff repeating-conic-gradient(#f1f5f9 0 25%, #fff 0 50%) 0 0 / 10px 10px; display: flex; align-items: center; justify-content: center; }
.pz-adj-f > img { width: 100%; height: 100%; object-fit: contain; border-radius: 7px; display: block; }
.pz-adj-doc { background: #eef2f6; }
.pz-adj-doc b { font-size: 10.5px; font-weight: 800; letter-spacing: .04em; color: #334155; }
.pz-adj-zoom { display: none; position: absolute; z-index: 12; right: calc(100% + 10px); top: 50%; transform: translateY(-50%); width: 190px; height: 190px; padding: 6px; border-radius: 12px; border: 1px solid #cbd5e1; background: #fff repeating-conic-gradient(#f1f5f9 0 25%, #fff 0 50%) 0 0 / 14px 14px; box-shadow: 0 14px 34px rgba(15, 27, 45, .25); }
.pz-adj-zoom img { width: 100%; height: 100%; object-fit: contain; display: block; }
.pz-adj-f:hover .pz-adj-zoom { display: block; }
.pz-adj-t { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pz-adj-n { font-size: 12.5px; font-weight: 600; color: #0f172a; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pz-adj-a { display: flex; gap: 10px; }
.pz-raiz .pz-adj-l { border: 0; background: none; padding: 0; font-size: 12px; font-weight: 700; color: #005a9c; cursor: pointer; }
.pz-raiz .pz-adj-l:hover { text-decoration: underline; }
.pz-raiz .pz-adj-q { color: #8b1a2b; }
.pz-adj-g { max-width: 420px; }
.pz-fila { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pz-raiz .pz-b-imp { display: inline-flex; align-items: center; gap: 7px; height: 42px; padding: 0 18px; border: 2px solid #002147; border-radius: 9px; background: #e8f0fa; color: #002147; font-size: 14px; font-weight: 800; cursor: pointer; }
.pz-b-imp span { font-size: 19px; line-height: 1; }
.pz-raiz .pz-b-imp:hover { background: #d6e4f5; }
.pz-tec { position: relative; }
.pz-tec-btn { display: flex; align-items: center; gap: 8px; width: 100%; height: 40px; padding: 0 12px; border: 1.5px solid #cbd5e1; border-radius: 9px; background: #fff; text-align: left; font-size: 13.5px; font-weight: 600; cursor: pointer; }
.pz-tec-btn:hover { border-color: #94a3b8; }
.pz-tec-btn .pz-tec-nom { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
.pz-tec-t { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pz-tec-car { width: 8px; height: 8px; flex: none; border: solid #475569; border-width: 0 2px 2px 0; transform: rotate(45deg) translateY(-2px); transition: transform .15s; }
.pz-tec.abierto .pz-tec-car { transform: rotate(-135deg) translateY(-2px); }
.pz-tec.abierto .pz-tec-btn { border-color: #005a9c; box-shadow: 0 0 0 3px rgba(0, 90, 156, .15); }
.pz-tec-med { flex: none; font-style: normal; font-size: 11.5px; font-weight: 600; color: #475569; background: #f1f5f9; border-radius: 6px; padding: 2px 7px; white-space: nowrap; }
/* flotante (js: colocaTec, que le pone su sitio, su ancho y su alto): no la corta el pie */
.pz-tec-lista { position: fixed; z-index: 30; left: 0; width: 560px; max-height: 420px; overflow-y: auto; overscroll-behavior: contain; padding: 0 0 6px; background: #fff; border: 1px solid #cbd5e1; border-radius: 12px; box-shadow: 0 18px 44px rgba(15, 27, 45, .3); }
.pz-tec-info { position: sticky; top: 0; z-index: 2; padding: 9px 14px; background: #f8fafc; border-bottom: 1px solid #e2e8f0; font-size: 12.5px; color: #475569; }
.pz-tec-info b { color: #0f172a; }
.pz-tec-g { padding: 10px 14px 4px; font-size: 10.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: #64748b; }
.pz-tec-op { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto 104px; align-items: center; gap: 10px; width: 100%; padding: 8px 14px; border: 0; background: none; text-align: left; font-size: 13.5px; cursor: pointer; }
.pz-tec-op:hover, .pz-tec-op:focus { background: #f1f5f9; outline: 0; }
.pz-tec-op.on { background: #e8f0fa; font-weight: 700; }
.pz-tec-ck { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid #cbd5e1; background: #fff; }
.pz-tec-op.on .pz-tec-ck { border-color: #002147; background: #002147; box-shadow: inset 0 0 0 3px #fff; }
.pz-tec-op .pz-tec-nom { min-width: 0; }
.pz-tec-mc { justify-self: end; }
.pz-tec-pr { justify-self: end; font-weight: 700; color: #002147; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pz-tp-con { color: #b45309; font-weight: 600; }
.pz-tec-mejor { font-style: normal; margin-left: 6px; padding: 1px 6px; border-radius: 6px; background: #dcfce7; color: #166534; font-size: 10.5px; font-weight: 700; white-space: nowrap; }
.pz-tec-av { margin: 8px 8px 4px; padding: 7px 10px; border-radius: 8px; background: #fff7ed; color: #9a3412; font-size: 12.5px; }

/* extras, entrega y plazo */
/* (k1034) a lo ancho, sin hueco a la derecha: cada caja llena su parte de la fila (Entrega, la mas ancha) y sus
   opciones van una al lado de otra; en el movil, una debajo de otra */
.pz-ext { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.pz-ext > .pz-caja { flex: 1 1 280px; flex-direction: row; flex-wrap: wrap; align-content: flex-start; gap: 6px 24px; }
.pz-ext > .pz-caja-a { flex: 2.2 1 520px; }
.pz-ext .pz-caja-t, .pz-ext .pz-caja > .pz-nota { flex: 1 1 100%; }
.pz-ext .pz-ra, .pz-ext .pz-ck { flex: 1 1 210px; }
.pz-caja { display: flex; flex-direction: column; gap: 6px; padding: 11px 13px; border: 1px solid #e2e8f0; border-radius: 12px; }
.pz-caja-t { font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #475569; }
.pz-ck, .pz-ra { display: flex; align-items: flex-start; gap: 9px; font-size: 14px; cursor: pointer; line-height: 1.35; padding: 3px 0; }
.pz-ck input, .pz-ra input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: #002147; flex: none; }
.pz-ra small { font-size: 12px; color: #475569; }

/* el pie: desglose, total y botones */
.pz-pie { border-top: 1px solid #e2e8f0; background: #f8fafc; padding: 10px 22px 12px; display: flex; flex-direction: column; gap: 6px; }
.pz-aviso { padding: 6px 10px; border-radius: 8px; background: #fff7ed; color: #9a3412; font-size: 13px; }
.pz-pie-f { display: flex; align-items: center; gap: 16px; }
.pz-tot-b { flex: 1; display: flex; flex-direction: column; align-items: flex-start; border: 0; background: none; padding: 0; text-align: left; cursor: default; }
.pz-tot-card { flex: 1 1 300px; max-width: 440px; padding: 8px 16px 9px; background: #fff; border: 1px solid #cbd5e1; border-left: 5px solid #002147; border-radius: 12px; box-shadow: 0 6px 18px rgba(15, 27, 45, .12); }
.pz-tot-b small { font-size: 12px; color: #475569; }
.pz-total { font-size: 30px; font-weight: 800; color: #002147; font-variant-numeric: tabular-nums; line-height: 1.1; }
.pz-bts { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; justify-content: flex-end; margin-left: auto; }
.pz-raiz .pz-b1 { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 50px; padding: 0 26px; border-radius: 10px; border: 0; background: #002147; color: #fff; font-weight: 800; font-size: 15px; letter-spacing: .04em; cursor: pointer; box-shadow: 0 4px 14px rgba(0, 33, 71, .28); }
.pz-b1 svg { width: 20px; height: 20px; flex: none; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pz-raiz .pz-b1:hover { background: #003a78; }
.pz-raiz .pz-b1:disabled { opacity: .75; cursor: wait; }
.pz-envia { display: inline-flex; height: 50px; border: 1.5px solid #cbd5e1; border-radius: 10px; background: #fff; }
.pz-raiz .pz-bwa, .pz-raiz .pz-bml { display: inline-flex; align-items: center; gap: 8px; height: 100%; padding: 0 16px; border: 0; background: none; color: #0f172a; font-weight: 700; font-size: 14px; cursor: pointer; }
.pz-raiz .pz-bwa { border-radius: 9px 0 0 9px; }
.pz-raiz .pz-bml { border-left: 1.5px solid #cbd5e1; border-radius: 0 9px 9px 0; }
.pz-bwa svg, .pz-bml svg { width: 20px; height: 20px; flex: none; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pz-bwa svg { stroke: #128c4a; }
.pz-bml svg { stroke: #002147; }
.pz-raiz .pz-bwa:hover { background: #f0fdf4; color: #0f7a3d; }
.pz-raiz .pz-bml:hover { background: #f2f6fb; color: #002147; }
/* lo que hace cada boton, al pasar por encima (data-tip) */
.pz-raiz [data-tip] { position: relative; }
.pz-raiz [data-tip]:hover:after, .pz-raiz [data-tip]:focus-visible:after { content: attr(data-tip); position: absolute; z-index: 40; right: 0; bottom: calc(100% + 11px); width: max-content; max-width: 280px; padding: 7px 11px; border-radius: 8px; background: #0f172a; color: #fff; font-size: 12.5px; font-weight: 600; line-height: 1.35; letter-spacing: 0; text-transform: none; text-align: left; white-space: normal; box-shadow: 0 8px 22px rgba(15, 23, 42, .28); pointer-events: none; }
.pz-raiz [data-tip]:hover:before, .pz-raiz [data-tip]:focus-visible:before { content: ""; position: absolute; z-index: 40; right: 18px; bottom: calc(100% + 5px); border: 6px solid transparent; border-top-color: #0f172a; border-bottom: 0; pointer-events: none; }
@media (hover: none) { .pz-raiz [data-tip]:hover:after, .pz-raiz [data-tip]:hover:before { display: none; } }
/* la ventana de "Enviar por email" (dentro del panel) */
.pz-mwrap { position: absolute; inset: 0; z-index: 20; display: flex; align-items: center; justify-content: center; padding: 16px; }
.pz-modal-f { position: absolute; inset: 0; background: rgba(15, 27, 45, .45); }
.pz-modal { position: relative; width: 460px; max-width: 100%; max-height: 100%; overflow-y: auto; background: #fff; border-radius: 14px; box-shadow: 0 20px 50px rgba(15, 27, 45, .35); }
.pz-modal-cab { display: flex; align-items: center; gap: 10px; padding: 14px 16px 10px 20px; border-bottom: 1px solid #e2e8f0; }
.pz-modal-cab h3 { flex: 1; margin: 0; font-size: 17px; font-weight: 800; color: #002147; }
.pz-modal-c { display: flex; flex-direction: column; gap: 12px; padding: 14px 20px; }
.pz-modal-c p { margin: 0; }
.pz-mf { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 700; color: #334155; }
.pz-mf small { font-weight: 400; color: #64748b; }
.pz-mf input { height: 44px; padding: 0 12px; border: 1px solid #cbd5e1; border-radius: 9px; font-size: 15px; font-weight: 400; }
.pz-mf input:focus { outline: 2px solid #005a9c; border-color: #005a9c; }
.pz-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pz-modal-p { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 20px 16px; border-top: 1px solid #e2e8f0; }
.pz-raiz .pz-modal-p .pz-b1 { height: 44px; font-size: 14px; box-shadow: none; }
.pz-raiz .pz-modal-p .pz-b2 { height: 44px; }
.pz-ok-t { font-size: 15px; color: #1d7a45; }
.pz-modal a { color: #005a9c; }

/* el boton de la ficha */
.pz-entrada { display: flex; gap: 8px; margin-top: 10px; margin-bottom: 14px; padding-left: 10px; }
.pz-btn-calc { flex: 0 1 auto; max-width: 100%; min-height: 44px; padding: 0 22px; border: 0; border-radius: 9px; background: #002147; color: #fff; font-weight: 800; font-size: 14px; letter-spacing: .05em; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 9px; }
.pz-btn-calc:hover { background: #003a78; }
.pz-btn-calc svg { width: 18px; height: 18px; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* en el movil (y en tabletas estrechas): a pantalla completa */
@media (max-width: 819px) {
  .pz-panel { width: 100vw; }
  .pz-fondo { display: none; }
  .pz-cab { flex-wrap: wrap; padding: 8px 12px; gap: 8px; }
  .pz-cab-sub { font-size: 11.5px; }
  .pz-raiz .pz-x { width: 40px; padding: 0; }
  .pz-x span { display: none; }
  .pz-cab-tit { font-size: 16px; }
  .pz-modo { order: 5; width: 100%; }
  .pz-cuerpo { padding: 12px 12px 16px; gap: 16px; }
  .pz-busca { flex: 1 1 100%; height: 40px; }
  .pz-busca input { flex: 1; width: auto; font-size: 15px; }
  .pz-cols { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
  .pz-filtros { order: 4; width: 100%; }
  .pz-filtro { flex: 1; padding: 0 6px; height: 36px; }
  .pz-tec-op { grid-template-columns: 16px minmax(0, 1fr) auto; row-gap: 3px; }
  .pz-tec-op .pz-tec-mc { grid-column: 2; grid-row: 2; justify-self: start; }
  .pz-tec-op .pz-tec-pr { grid-column: 3; grid-row: 1 / span 2; }
  .pz-tec-btn .pz-tec-med { display: none; }
  .pz-tarj { border: 1px solid #e2e8f0; border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; }
  .pz-tarj-cab { display: flex; align-items: center; gap: 9px; }
  .pz-tarj-cab img, .pz-tarj-cab .pz-hex { width: 32px; height: 32px; border-radius: 6px; object-fit: cover; }
  .pz-tarj-cab b { flex: 1; font-size: 14px; }
  .pz-g-tit { font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; box-shadow: none !important; }
  .pz-g-tit.pz-g-NI { color: #9a3412; } .pz-g-tit.pz-g-AD { color: #005a9c; } .pz-g-tit.pz-g-GR { color: #6d28d9; }
  .pz-rej { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
  .pz-rej .pz-c i { font-style: normal; font-size: 12px; font-weight: 700; }
  .pz-rej .pz-c input { max-width: none; height: 42px; font-size: 16px; }
  .pz-ap { border: 0; display: flex; flex-direction: column; gap: 8px; }
  .pz-ap-f.pz-tarj { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 10px 12px; border: 1px solid #e2e8f0; }
  .pz-ap-f.pz-tarj .pz-colnom { grid-column: 1 / -1; font-size: 14px; }
  .pz-ap-f.pz-tarj .pz-tot { display: none; }
  .pz-ap-f.pz-tarj .pz-quita { position: absolute; }
  .pz-ap-f.pz-tarj { position: relative; }
  .pz-ap-f.pz-tarj .pz-quita { top: 6px; right: 6px; }
  .pz-campo i { display: block; }
  .pz-campo input { max-width: none; height: 42px; font-size: 16px; }
  .pz-imps { border: 0; display: flex; flex-direction: column; gap: 8px; }
  .pz-imp.pz-tarj { display: flex; position: relative; align-items: stretch; }
  .pz-imp.pz-tarj .pz-imp-loc select { width: auto; max-width: 100%; align-self: flex-start; }
  .pz-imp.pz-tarj .pz-imp-n { padding-top: 0; }
  .pz-imp.pz-tarj .pz-quita { position: absolute; top: 6px; right: 6px; }
  .pz-imp select, .pz-imp input[type=text] { height: 44px; font-size: 15px; }
  .pz-imp-pu, .pz-imp-sub { padding-top: 0; text-align: left; justify-self: start; }
  .pz-imp-pu:before { content: "Precio/ud.: "; color: #475569; }
  .pz-imp-sub:before { content: "Subtotal: "; color: #475569; font-weight: 400; }
  .pz-ext > .pz-caja, .pz-ext > .pz-caja-a { flex: 1 1 100%; }
  .pz-pie { padding: 8px 12px 12px; }
  .pz-pie-f { flex-wrap: wrap; gap: 8px; }
  .pz-total { font-size: 25px; }
  .pz-tot-card { flex: 1 1 100%; max-width: none; }
  .pz-bts { width: 100%; flex-direction: column; align-items: stretch; }
  .pz-bts { margin-left: 0; }
  .pz-raiz .pz-b1 { width: 100%; padding: 0 10px; }
  .pz-envia { width: 100%; height: 46px; }
  .pz-raiz .pz-bwa, .pz-raiz .pz-bml { flex: 1; justify-content: center; padding: 0 8px; }
  .pz-entrada { padding-left: 0; }
  .pz-sec-cab { padding: 6px 10px; }
}
/* 17/10/2026 (k1080): el pedido minimo y los multiplos, en su etiqueta (el usuario: "para que destaque un poco mas") */
.pz-mn { display: inline-flex; align-items: center; gap: 5px; margin-left: 8px; padding: 2px 10px; border-radius: 999px; background: #fff7ed; border: 1px solid #fdba74; color: #9a3412; font-size: 12px; font-weight: 700; line-height: 1.5; white-space: nowrap; vertical-align: middle; }
.pz-mn b { font-weight: 800; color: #7c2d12; }
.pz-mn .pz-sep { color: #fb923c; margin: 0 1px; }
@media (max-width: 600px) { .pz-mn { display: flex; width: fit-content; margin: 5px 0 0; white-space: normal; } }
/* (k1120) un diseno claro, sobre fondo oscuro */
.pz-adj-f.pz-osc, .pz-adj-f.pz-osc .pz-adj-zoom { background: #334155; }
/* (k1124) "Disenar online" junto a "Calcular presupuesto" (el disenador libre) */
.pz-btn-dis { flex: 0 1 auto; min-height: 44px; padding: 0 18px; border: 1.5px solid #005a9c; border-radius: 9px; background: #fff; color: #005a9c !important; font-weight: 800; font-size: 14px; letter-spacing: .05em; display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none !important; }
.pz-btn-dis:hover { background: #eaf2fb; }
.pz-btn-dis svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pz-btn-dis[hidden] { display: none !important; }
@media (max-width: 520px) { .pz-entrada { flex-wrap: wrap; } .pz-btn-calc, .pz-btn-dis { flex: 1 1 100%; } }

/* (k1146b) al lado de DISENAR ONLINE: que tambien se puede disenar en el presupuesto final */
.pz-dis-nota { align-self: center; flex: 0 1 210px; font-size: 12.5px; line-height: 1.35; color: #64748b; }
.pz-dis-nota[hidden] { display: none !important; }
@media (max-width: 520px) { .pz-dis-nota { flex: 1 1 100%; text-align: center; } }

/* (k1146b) la ubicacion repetida, en rojo */
.pz-imp-loc select.pz-dup { border-color: #dc2626 !important; background: #fef2f2 !important; color: #991b1b !important; }

/* (k1185) la impresion, solo con el color y la cantidad (o las tallas): sus botones, apagados hasta entonces */
.pz-raiz .pz-b-imp:disabled, .pz-raiz .pz-b-imp:disabled:hover { opacity: .5; background: #f1f5f9; border-color: #94a3b8; color: #475569; cursor: not-allowed; }
.pz-raiz .pz-tec-btn:disabled { background: #f8fafc; border-color: #e2e8f0; color: #94a3b8; cursor: not-allowed; }
.pz-raiz .pz-tec-btn:disabled .pz-tec-med { opacity: .6; }
.pz-raiz .pz-imp-bloq { color: #9a3412; font-weight: 600; }
.pz-raiz .pz-imp-bloq[hidden] { display: none; }

/* (k1185c) LA LISTA DE LA IMPRESION, MAS CLARA (el usuario: "mucho mas bonito, mejor disenado y destacados los grupos"): su
   cabecera, cada grupo con su color, su icono, cuantas tiene y desde cuanto (fijo arriba al bajar) y las opciones con los
   nombres como se leen. Los botones, con ".pz-raiz" delante (k1030) */
.pz-tec-lista { width: 600px; padding: 0 0 8px; border-color: #d5dee8; border-radius: 14px; box-shadow: 0 24px 60px rgba(15, 27, 45, .28), 0 2px 6px rgba(15, 27, 45, .08); }
.pz-tec-cab { position: sticky; top: 0; z-index: 3; display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; padding: 12px 16px 11px; background: #fff; border-bottom: 1px solid #e2e8f0; font-size: 12.5px; color: #475569; }
.pz-tec-cab > b { font-size: 14.5px; font-weight: 800; color: #0f172a; }
.pz-tec-cab span b { color: #0f172a; }
.pz-tec-cab .pz-tec-av { margin: 0; padding: 3px 9px; }
.pz-tec-g { position: sticky; top: var(--pz-ih, 0px); z-index: 2; display: flex; align-items: center; gap: 10px; margin: 0; padding: 9px 16px 9px 13px; background: var(--gb, #eef5fc); border-left: 3px solid var(--gc, #005a9c); border-bottom: 1px solid rgba(15, 23, 42, .06); font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: #0f172a; }
.pz-tec-op + .pz-tec-g { margin-top: 6px; }
.pz-tec-gi, .pz-tec-bi { flex: none; display: grid; place-items: center; border-radius: 8px; background: var(--gc, #005a9c); color: #fff; }
.pz-tec-gi { width: 26px; height: 26px; box-shadow: 0 2px 6px rgba(15, 23, 42, .15); }
.pz-tec-bi { width: 24px; height: 24px; border-radius: 7px; }
.pz-tec-gi svg, .pz-tec-bi svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pz-tec-gn { flex: 1; min-width: 0; }
.pz-tec-gd { flex: none; font-size: 11.5px; font-weight: 600; letter-spacing: 0; text-transform: none; color: #475569; }
.pz-tec-gd b { color: var(--gc, #005a9c); font-weight: 800; }
.pz-raiz .pz-tec-op { grid-template-columns: 18px minmax(0, 1fr) auto 112px; gap: 12px; padding: 10px 16px; border-left: 3px solid transparent; border-top: 1px solid #f1f5f9; font-size: 13.5px; color: #1e293b; transition: background .1s; }
.pz-raiz .pz-tec-g + .pz-tec-op { border-top: 0; }
.pz-raiz .pz-tec-op:hover, .pz-raiz .pz-tec-op:focus { background: #f6f9fc; outline: 0; }
.pz-raiz .pz-tec-op:focus-visible { box-shadow: inset 0 0 0 2px rgba(0, 90, 156, .35); }
.pz-raiz .pz-tec-op.on { background: #edf4fb; border-left-color: var(--gc, #005a9c); font-weight: 700; color: #0f172a; }
.pz-tec-ck { width: 18px; height: 18px; box-sizing: border-box; }
.pz-tec-op.on .pz-tec-ck { border-color: var(--gc, #002147); background: var(--gc, #002147) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-4.9' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 10px 10px no-repeat; box-shadow: none; }
.pz-tec-pr { font-size: 13.5px; font-weight: 800; }
.pz-tec-mejor { margin-left: 8px; padding: 2px 8px; border-radius: 999px; background: #16a34a; color: #fff; font-size: 9.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; vertical-align: 1px; }
.pz-tec-btn .pz-tec-t { font-weight: 700; color: #0f172a; }
.pz-raiz .pz-tec-btn:disabled .pz-tec-t { color: #94a3b8; }
.pz-raiz .pz-tec-btn:disabled .pz-tec-bi { opacity: .45; }
@media (max-width: 819px) {
  .pz-tec-lista { width: auto; }
  .pz-tec-g { flex-wrap: wrap; row-gap: 2px; }
  .pz-tec-gd { flex: 1 1 100%; padding-left: 36px; }
  .pz-raiz .pz-tec-op { grid-template-columns: 18px minmax(0, 1fr) auto; row-gap: 3px; }
}
/* (k1191) LA LISTA AL BAJAR (el usuario: "cuando vas bajando el scroll no se visualiza bien"): cada grupo en su caja (su
   cabecera se va con el, sin quedarse debajo la del anterior) y cada fila se para entera debajo de su cabecera (--pz-ih y
   --pz-gh, los mide colocaTec de js/ec-presupuestador.js) */
.pz-tec-lista { scroll-snap-type: y mandatory; scroll-padding-top: calc(var(--pz-ih, 0px) + var(--pz-gh, 0px)); }
.pz-tec-gr + .pz-tec-gr { margin-top: 6px; }
.pz-tec-op { scroll-snap-align: start; }
/* (k1665) el dia concreto del plazo (Normal / Urgente), como en Mi presupuesto */
.pz-dia { display: inline-block; margin-top: 2px; font-size: 12.5px; font-weight: 800; color: #005a9c; }
