/* Cotizador del taller (herramientas.js) */
.ct-tabs{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 0 20px;border-bottom:1px solid var(--linea)}   /* sin segundo renglón a 390 (auditoría 2, F11) */
.ct-tabs::-webkit-scrollbar{display:none}
.ct-tabs button{background:none;border:0;border-bottom:3px solid transparent;color:var(--gris);font:600 var(--t-4) var(--f);padding:12px 16px;cursor:pointer;white-space:nowrap;flex:none}
.ct-tabs button.on{color:var(--tinta);border-bottom-color:var(--menta)}
.ct-invita{max-width:640px}
.ct-form .caja{margin-bottom:16px}
.ct-form .paso{margin:0 0 8px}
.ct-n{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--menta-osc);color:var(--menta);font:800 var(--t-4) var(--num)}
.ct-check{display:flex;gap:12px;align-items:flex-start;font-weight:500;font-size:var(--t-3);color:var(--texto2);margin:12px 0 0}
.ct-check input{width:18px;height:18px;flex:none;margin-top:2px;accent-color:var(--menta)}
.ct-guardar-cli{align-self:end}
.ct-archivo{cursor:pointer;margin:12px 8px 0 0!important}
.ct-rep-btns{display:flex;flex-wrap:wrap}
.ct-rep{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 0;font-size:var(--t-3)}
.ct-liga-btn{background:none;border:0;color:var(--menta);font:600 var(--t-3) var(--f);text-decoration:underline;cursor:pointer;padding:0}
.ct-cod-alta{display:flex;gap:12px;align-items:center;max-width:420px}
.ct-cod-alta input{text-transform:uppercase;font-weight:700;letter-spacing:.04em}
.ct-cod-alta .btn{flex:none;white-space:nowrap}
.ct-cod{--edo:var(--ambar);background-image:radial-gradient(circle,var(--edo) 0 5px,transparent 5.5px);background-repeat:no-repeat;background-position:right 12px top 12px;background-size:12px 12px;border:1px solid var(--linea2);border-radius:var(--radio-2);padding:12px 16px;margin:12px 0 0;background:var(--sup2)}
.ct-cod.s-rojo{--edo:var(--rojo)}.ct-cod.s-verde{--edo:var(--menta)}
.ct-cod-arriba{display:flex;gap:12px;align-items:baseline}
.ct-cod-c{font:700 var(--t-5) var(--num);letter-spacing:.03em}
.ct-cod-t{flex:1;font-weight:600}
.ct-cod textarea{min-height:84px;margin:8px 0 0;font-size:var(--t-4)}
.ct-sem{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 0}
.ct-sem .chip{border:0;cursor:pointer;font-family:var(--f)}
.ct-x{background:none;border:0;color:var(--gris);font-size:var(--t-4);cursor:pointer;padding:4px 8px;line-height:1}
.ct-x:hover{color:var(--tinta)}
.ct-part{display:grid;grid-template-columns:1fr 64px 110px 104px 28px;gap:8px;align-items:center;margin:8px 0 0}
.ct-part input{padding:12px;font-size:var(--t-4)}
.ct-part-enc{color:var(--gris);font-size:var(--t-2);font-weight:600;margin-top:12px}
.ct-imp{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.ct-totales{margin:16px 0 0;max-width:340px;margin-left:auto}
.ct-totales div{display:flex;justify-content:space-between;padding:4px 0;color:var(--texto2)}
.ct-totales .ct-total{border-top:1px solid var(--linea2);padding-top:8px;font-size:var(--t-6);color:var(--tinta)}
.ct-acciones{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 0}
.ct-acciones .btn{width:auto;margin:0}
.ct-lista-arriba{display:flex;gap:12px;align-items:center;margin:0 0 16px}
.ct-lista-arriba .btn{flex:none;white-space:nowrap}
.ct-acc{white-space:nowrap}.ct-acc .btn{margin:0 0 0 8px}
/* filtros con número arriba de «Mis cotizaciones» (Rodrigo, 4 nov): una fila que se desliza en el celular */
.ct-filtro{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;margin:0 0 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ct-filtro::-webkit-scrollbar{display:none}
.ct-filtro button{flex:none;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:var(--radio-pildora,999px);background:var(--sup);border:1px solid var(--linea2);color:var(--texto);font:600 var(--t-3)/1 var(--f);cursor:pointer}
.ct-filtro b{font:700 var(--t-3)/1 var(--num,var(--f));color:var(--tinta)}
.ct-filtro .alerta b{color:var(--rojo)}
.ct-filtro button.on{background:var(--menta);border-color:var(--menta);color:var(--sobre-menta)}
.ct-filtro button.on b{color:var(--sobre-menta)}
.ct-estado{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ct-estado .chip{white-space:nowrap}
.ct-logo-fila{display:flex;gap:20px;align-items:center;margin:0 0 8px}
.ct-logo{width:120px;height:120px;flex:none;border-radius:var(--radio-2);border:1px dashed var(--linea2);display:grid;place-items:center;background:#fff;overflow:hidden;color:#6B7480;font-size:var(--t-3)}
.ct-logo img{max-width:100%;max-height:100%;object-fit:contain}
@media (max-width:640px){
  .ct-part{grid-template-columns:70px 1fr auto 44px;border-top:1px solid var(--linea);padding-top:12px}
  .ct-part [data-pc]{grid-column:1/-1}
  .ct-part-enc{display:none}
  .ct-acciones .btn{flex:1 1 100%}
  .ct-logo-fila{flex-direction:column;align-items:flex-start}
  .ct-lista-arriba{flex-direction:column;align-items:stretch}
}

/* plantilla: asistente de 3 pasos + vista previa en vivo */
.ct-plant{max-width:640px}.ct-plant-final{max-width:900px}
.ct-pl-paso{margin-top:20px}
.ct-pl-tit{font:600 var(--t-6)/1.15 var(--num);letter-spacing:.01em;margin:0 0 4px;color:var(--tinta)}
.ct-pl-paso>.hint:first-of-type{margin:0 0 16px}
.ct-plant-prev{margin-top:20px;padding:24px 0 4px;position:relative}
.ct-pasos em{font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-sello-op{margin-top:20px!important;padding:12px 16px;border:1px solid var(--linea2);border-radius:var(--radio-2)}
.ct-sello-op small{display:block;color:var(--gris);font-size:var(--t-3);margin-top:4px}
/* la nota del sello sí se parte: la regla de pulido.css deja en una línea los <small> de .ct-check y a 390 la página medía 660 px */
html .ct-check.ct-sello-op small{white-space:normal}
.ct-sello-op>span{min-width:0}
.ct-pasos{display:flex;gap:8px;list-style:none;margin:0 0 8px;padding:0}
.ct-pasos li{flex:1}
.ct-pasos button{width:100%;display:flex;align-items:center;gap:8px;background:none;border:0;border-bottom:3px solid var(--linea2);color:var(--gris);font:600 var(--t-3) var(--f);padding:8px 2px;cursor:pointer;text-align:left}
.ct-pasos span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--sup2);font:800 var(--t-3) var(--num);flex:none}
.ct-pasos .on button{color:var(--tinta);border-bottom-color:var(--menta)}.ct-pasos .on span{background:var(--menta);color:var(--sobre-menta)}
.ct-pasos .ya button{color:var(--texto2);border-bottom-color:rgba(var(--menta-rgb),.4)}.ct-pasos .ya span{background:var(--menta-osc);color:var(--menta)}
.ct-plant-nav{display:flex;justify-content:space-between;align-items:center;margin:20px 0 0}
.ct-colores{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ct-colores button{display:flex;align-items:center;gap:8px;background:rgba(var(--tinta-rgb),.04);border:1px solid var(--linea2);border-radius:var(--radio-2);color:var(--texto);font:600 var(--t-3) var(--f);padding:12px;cursor:pointer}
.ct-colores i{width:20px;height:20px;border-radius:50%;background:var(--c);border:2px solid rgba(var(--tinta-rgb),.7);flex:none}
.ct-colores .on{border-color:var(--menta);box-shadow:0 0 0 2px var(--menta-osc)}
.ct-check input[type=radio]{accent-color:var(--menta)}
.ct-hoja{--acento:#14181F;background:#fff;color:#14181F;border-radius:var(--radio-2);padding:24px;font:var(--t-3)/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;box-shadow: var(--sombra-3);position:relative}
.ct-hoja-marca{position:absolute;top:-11px;left:18px;background:var(--menta);color:var(--sobre-menta);font:800 var(--t-1) var(--f);letter-spacing:.04em;text-transform:uppercase;padding:4px 12px;border-radius:var(--radio-3)}
.ct-hoja header{display:flex;gap:16px;align-items:center;border-bottom:3px solid var(--acento);padding-bottom:12px}
.ct-hoja header img{max-width:90px;max-height:60px;object-fit:contain}
.ct-hoja-sinlogo{width:70px;height:50px;border:1px dashed #C5CCD6;border-radius:var(--radio-1);display:grid;place-items:center;color:#8A94A3;font-size:var(--t-1);flex:none}
.ct-hoja-nom{font-size:var(--t-4);display:block;color:var(--acento)}
.ct-hoja header p{margin:0;color:#5B6573;font-size:var(--t-2)}
.ct-hoja-folio{margin-left:auto;text-align:right;font-size:var(--t-1);color:#5B6573}
.ct-hoja-folio b{display:block;font-size:var(--t-3);color:var(--acento)}.ct-hoja-folio span{display:block}
.ct-hoja h4{font-size:var(--t-1);text-transform:uppercase;letter-spacing:.06em;color:var(--acento);margin:16px 0 8px}
.ct-hoja-datos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;font-size:var(--t-3)}
.ct-hoja-datos span{display:block;color:#5B6573;font-size:var(--t-1)}
.ct-hoja-cod{--edo:#1B55AD;background-image:radial-gradient(circle,var(--edo) 0 5px,transparent 5.5px);background-repeat:no-repeat;background-position:right 12px top 12px;background-size:12px 12px;border:1px solid #E3E7ED;border-radius:var(--radio-1);padding:8px 12px;margin:0 0 8px}
.ct-hoja-cod.rojo{--edo:#D93025}
.ct-hoja-cod i{font:700 var(--t-2) ui-monospace,Menlo,monospace;margin-right:8px;font-style:normal}
.ct-hoja-cod em{font-style:normal;font-size:var(--t-1);font-weight:700;padding:1px 8px;border-radius:var(--radio-3);margin-left:8px;background:#FEF3E0;color:#C77700}
.ct-hoja-cod em.rojo{background:#FCE8E6;color:#D93025}
.ct-hoja-cod p{margin:4px 0 0;color:#333;font-size:var(--t-2)}
.ct-hoja table{width:100%;min-width:0;border-collapse:collapse;font-size:var(--t-2)}
.ct-hoja th{text-align:left;font-size:var(--t-1);color:#5B6573;text-transform:uppercase;border-bottom:1px solid #E3E7ED;padding:4px 4px}
.ct-hoja td{border-bottom:1px solid #E3E7ED;padding:8px 4px}.ct-hoja td:last-child,.ct-hoja th:last-child{text-align:right;white-space:nowrap}
.ct-hoja-tot{margin:8px 0 0 auto;max-width:220px;font-size:var(--t-2)}
.ct-hoja-tot div{display:flex;justify-content:space-between;padding:2px 0}
.ct-hoja-tot .g{border-top:2px solid var(--acento);margin-top:4px;padding-top:8px;font-size:var(--t-4);font-weight:800;color:var(--acento)}
.ct-hoja-pie{color:#5B6573;font-size:var(--t-1);margin:12px 0 0;white-space:pre-wrap}
@media (max-width:640px){.ct-colores{grid-template-columns:repeat(2,1fr)}.ct-hoja{padding:16px}.ct-hoja header{flex-wrap:wrap}.ct-hoja-folio{margin-left:0;text-align:left}.ct-pasos button{font-size:var(--t-2);flex-direction:column;align-items:flex-start;gap:4px}.ct-pasos{gap:4px}.ct-plant-final .caja{padding-left:12px;padding-right:12px}.ct-plant-final .ct-plant-prev .cq{border-radius:var(--radio-2)}}
/* paso «Herramienta y fotos» */
.ct-herr-ops{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 8px}.ct-herr-ops .chip{cursor:pointer;border:0;min-height:44px;display:inline-flex;align-items:center;padding:0 14px}   /* 44 px de toque (auditoría 2, F5) */
.ct-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin:8px 0 12px}
.ct-fotos figure{position:relative;margin:0;border-radius:var(--radio-2);overflow:hidden;background:#10161E;border:1px solid rgba(var(--tinta-rgb),.12)}
.ct-fotos img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.ct-fotos input{width:100%;border:0;border-top:1px solid rgba(var(--tinta-rgb),.1);border-radius:0;background:transparent;font-size:var(--t-2);padding:8px 8px;margin:0}
.ct-fotos .ct-x{position:absolute;top:6px;right:6px;background:rgba(0,0,0,.6);border-radius:50%;width:26px;height:26px}
.ct-plant-prev .cq{font-size:var(--t-3)}
/* Licencias sin foto: caja de licencia con el logo de la marca y el modelo */
.lic-caja{flex:none;width:88px;height:88px;border-radius:var(--radio-2);background:linear-gradient(150deg,#f4f5f7,#dfe2e7);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px;text-align:center;color:#14181F;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.lic-caja img{max-width:64px;max-height:20px;object-fit:contain}.lic-caja b{font:800 var(--t-2)/1 Archivo,sans-serif}
.lic-caja span{font:800 var(--t-1)/1.1 'Barlow Condensed',Archivo,sans-serif;text-transform:uppercase;background:#1A56DB;color:#fff;border-radius:var(--radio-1);padding:4px 4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lic-caja small{font:600 var(--t-1)/1 Archivo,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#5B6573}
/* lista de servicios y precios (la misma de la Agenda) */
.ct-tab{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}
.ct-tab-t{font-size:var(--t-3);color:var(--gris);margin-right:2px}
.ct-tab .chip{cursor:pointer;border:0;font-family:var(--f);font-size:var(--t-3);padding:8px 12px}
.ct-tab .ct-tab-cat{background:none;border:1px dashed var(--linea2);color:var(--menta)}.ct-tab .chip b{font-family:var(--num);font-weight:600;margin-left:4px}
.ct-franjas{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ct-franjas button{display:flex;flex-direction:column;gap:8px;background:rgba(var(--tinta-rgb),.04);border:1px solid var(--linea2);border-radius:var(--radio-2);color:var(--texto);font:600 var(--t-2)/1.2 var(--f);padding:8px 8px 8px;cursor:pointer;text-align:center}
.ct-franjas .cqf{display:block;height:38px;border-radius:var(--radio-1)}
.ct-franjas .on{border-color:var(--menta);box-shadow:0 0 0 2px var(--menta-osc)}
@media (max-width:640px){.ct-franjas{grid-template-columns:repeat(2,1fr)}}
/* selector de sucursal (taller-contexto.js): solo con dos o más */
.taller-suc{display:flex;align-items:center;gap:12px;margin:0 0 16px;font-size:var(--t-3);color:var(--gris)}
.taller-suc select{flex:1;max-width:320px;margin:0}
/* fase 2: la orden de la cotización, la aprobación del cliente y la línea de la firma (herramientas.js) */
.ct-orden{display:flex;flex-direction:column;gap:10px}
.ct-orden .hint:empty{display:none}
.ct-orden-t{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.ct-orden-t b{font:800 var(--t-4)/1.2 var(--num,var(--f));color:var(--tinta,var(--texto))}
.ct-orden-t span{color:var(--gris);font-size:var(--t-3)}
.ct-orden-acc{display:flex;flex-wrap:wrap;gap:8px}
.ct-orden-acc .btn{width:auto;margin:0}
.ct-orden-lista{display:grid;gap:6px}
.ct-orden-op{display:flex;gap:12px;align-items:baseline;width:100%;padding:12px;border:1px solid var(--linea2,var(--linea));border-radius:var(--radio-2,12px);background:var(--sup);color:var(--texto);font:inherit;text-align:left;cursor:pointer;min-width:0}
.ct-orden-op b{flex:none;font:800 var(--t-3)/1.2 var(--num,var(--f))}
.ct-orden-op span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--texto2,var(--texto));font-size:var(--t-3)}
.ct-orden-op:disabled{opacity:.6}
.ct-aprob{border-color:var(--menta)}
.ct-aprob-t{display:block;font-size:var(--t-5);color:var(--tinta,var(--texto))}
.ct-aprob-l{list-style:none;margin:10px 0 0;padding:0}
.ct-aprob-l li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:9px 0;border-top:1px solid var(--linea)}
.ct-aprob-l li:first-child{border-top:0}
.ct-aprob-l span{min-width:0;overflow-wrap:anywhere}
.ct-aprob-l b{font-variant-numeric:tabular-nums;text-align:right}
.ct-aprob-l em{grid-column:1/-1;font-style:normal;font-size:var(--t-2);font-weight:700;color:var(--menta)}
.ct-aprob-l li.no span,.ct-aprob-l li.no b{color:var(--gris)}
.ct-aprob-l li.no b{text-decoration:line-through}
.ct-aprob-l li.no em{color:var(--gris)}
.ct-aprob-tot{display:flex;justify-content:space-between;gap:12px;padding:10px 0 12px;border-top:2px solid var(--menta);font-weight:800}
.ct-aprob-tot b{font-variant-numeric:tabular-nums}
.ct-aprob .btn{width:auto;margin:0}
.ct-bloq > .caja[inert]{opacity:.62}
.ct-firma-fijo{margin:6px 0 8px;padding:10px 12px;border:1px solid var(--linea2,var(--linea));background:var(--sup2,var(--sup));border-radius:8px;color:var(--texto2,var(--texto));font-size:var(--t-3);line-height:1.45}
.ct-firma-n{margin-top:4px}
/* lote 3 (auditoría del 3 nov, mov. 8 y 9): invitación a la plantilla, bloques plegados y «Enviar por WhatsApp» fijo en celular */
.ct-invita-pl{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ct-invita-pl p{margin:2px 0 0}.ct-invita-pl .btn{width:auto;margin:0;flex:none}
.ct-pliega>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0}
html .ct-form details.ct-pliega:not([open]) > summary.paso{margin:0}   /* pulido.css le da margen al título de toda caja con campos, aunque estén plegados */
.ct-pliega>summary::-webkit-details-marker{display:none}
.ct-pliega>summary::after{content:'+';font:600 var(--t-5) var(--f);color:var(--gris)}
.ct-pliega[open]>summary{margin:0 0 8px}.ct-pliega[open]>summary::after{content:'−'}
.ct-wa-barra{margin:0 0 10px}.ct-wa-barra .btn{width:100%;margin:0}
@media (max-width:899px){.ct-wa-barra.fijo{position:sticky;bottom:calc(var(--ct-wa-abajo,0px) + 8px);z-index:5;padding:8px 0 0;background:linear-gradient(to top,var(--fondo,#fff) 72%,transparent)}}
/* auditoría 2: «Quitar concepto» de 44 px (F5) y el lugar de «Ligada a OS-…» guardado desde el primer pintado al abrir una cotización de una orden (F9) */
.ct-part .ct-x{min-width:44px;min-height:44px}
#ctOrdenSlot.reserva:empty{min-height:96px;margin:0 0 16px}
/* «Ver como la ve tu cliente»: hoja a pantalla completa dentro del portal */
.ct-vista{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--fondo,#fff);display:flex;flex-direction:column}
.ct-vista:not([open]){display:none}
.ct-vista::backdrop{background:rgba(0,0,0,.5)}
.ct-vista-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(env(safe-area-inset-top) + 8px) 12px 8px 16px;border-bottom:1px solid var(--linea2,#e3e6ea);background:var(--panel,#fff);color:var(--texto,#0B0F14)}
.ct-vista-cab b{font:700 16px/1.2 Archivo,sans-serif}
.ct-vista-x{width:44px;height:44px;border:0;border-radius:50%;background:var(--sup,#f2f3f5);color:var(--texto,#0B0F14);font-size:18px;cursor:pointer}
.ct-vista iframe{flex:1;width:100%;border:0;background:#fff}

/* Con factura / Sin factura en cada cotización (Rodrigo, 5 nov) */
.ct-factura{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ct-factura button{display:grid;gap:2px;place-items:center;min-height:56px;padding:8px;border-radius:12px;border:1px solid var(--linea2);background:var(--fondo);color:var(--texto);font:700 var(--t-3,15px)/1.15 var(--f);cursor:pointer}
.ct-factura button small{font-weight:500;color:var(--gris);font-size:var(--t-2,13px)}
.ct-factura button[aria-checked="true"]{border:2px solid var(--tinta);background:var(--sup)}
