/* Rutas de producción (portal de clientes, Sprint 1). Usa los tokens de styles.css. */
.pr-modal{max-width:940px;padding:20px 22px;}
.pr-cargando{padding:30px;text-align:center;color:var(--text-muted);}
.pr-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;}
.pr-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600;}
.modal h2.pr-titulo{margin:2px 0 2px;font-size:18px;text-transform:none;letter-spacing:0;color:var(--navy);}
.pr-sub{font-size:13px;color:var(--text-muted);}
.pr-x{border:none;background:none;font-size:18px;color:var(--text-muted);cursor:pointer;width:36px;height:36px;border-radius:8px;flex:none;}
.pr-x:hover{background:var(--bg);color:var(--text);}
.pr-progreso{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-size:12.5px;color:var(--text-muted);}
.pr-progreso .pr-barra{flex:1;}
.pr-tabs{margin-bottom:14px;}
.pr-tabs .tab{padding:7px 12px;font-size:11.5px;}
.pr-muted{font-size:12.5px;color:var(--text-muted);margin:6px 0;}
.pr-vacio{padding:26px 16px;text-align:center;border:1.5px dashed var(--border);border-radius:10px;font-size:13.5px;}
.pr-vacio.chico{padding:16px;color:var(--text-muted);}
.pr-vacio p{margin:0 0 10px;}

/* barra segmentada */
.pr-barra{display:flex;gap:2px;min-width:60px;}
.pr-seg{flex:1;height:7px;border-radius:2px;background:var(--border);}
.pr-seg.listo{background:var(--cyan);}
.pr-seg.en_curso{background:var(--navy);}
.pr-seg.espera_cliente{background:var(--warning);}

/* resumen en la tabla PROPEND */
.rutaResumen{margin-top:5px;}
.rutaResumen .pr-barra{max-width:150px;}
.pr-resumen-txt{font-size:10.5px;color:var(--text-muted);margin-top:3px;line-height:1.3;}
.pr-resumen-txt b{color:var(--text);}
.pr-sin-ruta{font-size:10.5px;color:var(--text-muted);font-style:italic;}

/* avance */
.pr-fase{margin-bottom:14px;}
.pr-fase-h{display:flex;justify-content:space-between;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--navy);padding-bottom:6px;border-bottom:2px solid var(--border);margin-bottom:4px;}
.pr-fase-h span{font-weight:500;color:var(--text-muted);text-transform:none;letter-spacing:0;}
.pr-proc{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 2px;border-bottom:1px solid var(--border);}
.pr-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--border);background:#fff;}
.pr-proc.listo .pr-dot{background:var(--cyan);border-color:var(--cyan);}
.pr-proc.en_curso .pr-dot{background:var(--navy);border-color:var(--navy);}
.pr-proc.espera_cliente .pr-dot{background:var(--warning);border-color:var(--warning);}
.pr-proc-info{min-width:0;}
.pr-proc-nombre{font-size:13.5px;font-weight:600;color:var(--text);}
.pr-proc.pendiente .pr-proc-nombre{font-weight:500;}
.pr-proc-meta{font-size:11.5px;color:var(--text-muted);}
.pr-tag{display:inline-block;font-size:10px;font-weight:600;padding:1px 6px;border-radius:999px;background:var(--bg);color:var(--text-muted);margin-left:4px;vertical-align:middle;}
.pr-tag.cli{background:var(--warning-bg);color:var(--warning);}
.pr-seg-btns{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;}
.pr-estado-btn{border:none;background:#fff;padding:7px 10px;font-size:12px;font-weight:600;color:var(--text-muted);cursor:pointer;border-left:1px solid var(--border);min-height:34px;}
.pr-estado-btn:first-child{border-left:none;}
.pr-estado-btn:hover{background:var(--bg);}
.pr-estado-btn.on.pendiente{background:var(--bg);color:var(--text);}
.pr-estado-btn.on.en_curso{background:var(--navy);color:#fff;}
.pr-estado-btn.on.espera_cliente{background:var(--warning);color:#fff;}
.pr-estado-btn.on.listo{background:var(--cyan);color:var(--navy);}
.pr-estado-btn:disabled{opacity:.6;cursor:wait;}
.pr-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--bg);color:var(--text-muted);white-space:nowrap;}
.pr-badge.en_curso{background:var(--navy);color:#fff;}
.pr-badge.listo{background:#DDF5FB;color:var(--cyan-dark);}
.pr-badge.espera_cliente{background:var(--warning-bg);color:var(--warning);}

/* editor */
.pr-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;}
.pr-col{display:flex;flex-direction:column;gap:12px;min-width:0;}
.pr-bloque{border:1px solid var(--border);border-radius:10px;padding:12px 14px;}
.pr-bloque-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--navy);margin-bottom:8px;}
.pr-bloque-h .pr-muted{margin:0;text-transform:none;letter-spacing:0;font-weight:500;}
.pr-link{border:none;background:none;color:var(--cyan-dark);font-size:12px;font-weight:600;cursor:pointer;text-transform:none;letter-spacing:0;padding:0;}
.pr-chips{display:flex;flex-wrap:wrap;gap:5px;}
.pr-chip,.pr-chip-btn{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:999px;padding:5px 10px;font-size:12px;cursor:pointer;}
.pr-chip:hover,.pr-chip-btn:hover{border-color:var(--cyan);}
.pr-chip.in{background:#DDF5FB;border-color:var(--cyan);font-weight:600;}
.pr-chip.in::before{content:"✓ ";}
.pr-chip-btn{font-weight:600;}
.pr-cat-fase{margin-bottom:8px;}
.pr-cat-fase > span{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:4px;}
.pr-custom{display:flex;gap:6px;flex-wrap:wrap;}
.pr-custom input,.pr-custom select{flex:1 1 150px;min-width:0;padding:8px 10px;border:1px solid var(--border);border-radius:7px;font-size:16px;font-family:inherit;color:var(--text);background:#fff;}
.pr-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;max-height:380px;overflow-y:auto;}
.pr-lista li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--bg);font-size:13px;}
.pr-lista small{display:block;color:var(--text-muted);font-size:11px;}
.pr-num{font-family:ui-monospace,monospace;font-size:11px;color:var(--text-muted);text-align:center;}
.pr-acts{display:flex;gap:1px;}
.pr-ico{border:none;background:transparent;width:30px;height:30px;border-radius:6px;cursor:pointer;color:var(--text-muted);font-size:13px;}
.pr-ico:hover{background:#fff;color:var(--text);}
.pr-ico.off{opacity:.8;}
.pr-fases-prev{display:flex;gap:3px;margin-top:10px;}
.pr-fases-prev div{flex:1;min-width:0;text-align:center;font-size:10px;color:var(--text-muted);line-height:1.25;}
.pr-fases-prev i{display:block;height:6px;border-radius:2px;background:var(--border);margin-bottom:3px;}
.pr-fases-prev .has i{background:var(--cyan);}
.pr-check{display:flex;align-items:center;gap:8px;font-size:13px;margin:6px 0;cursor:pointer;}
.pr-check input{width:auto;}

/* bitácora */
.pr-bitacora{list-style:none;margin:0;padding:0;}
.pr-bitacora li{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;padding:7px 0;border-bottom:1px solid var(--border);font-size:13px;}
.pr-bitacora span{color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums;}
.pr-bitacora small{display:block;color:var(--text-muted);font-size:11px;}

/* catálogo */
.pr-tabla-wrap{overflow-x:auto;margin-top:12px;}
.pr-tabla{min-width:860px;font-size:12.5px;}
.pr-tabla th:nth-child(1){width:26%;}.pr-tabla th:nth-child(2){width:17%;}.pr-tabla th:nth-child(3){width:22%;}
.pr-tabla th{font-size:10.5px;}
.pr-tabla td{padding:5px 6px;vertical-align:middle;}
.pr-tabla td.c{text-align:center;}
.pr-tabla input:not([type=checkbox]),.pr-tabla select{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-size:16px;font-family:inherit;color:var(--text);background:#fff;}
.pr-tabla input[type=number]{max-width:70px;}
.pr-tabla input[type=checkbox]{width:18px;height:18px;}
.pr-tabla tr.inactivo td{opacity:.55;}
.pr-tabla .btn{padding:6px 10px;font-size:12px;}
.pr-tabla .btn:disabled{opacity:.35;cursor:default;}

@media (max-width:760px){
  .pr-modal{padding:16px 14px;}
  .pr-editor{grid-template-columns:minmax(0,1fr);}
  .pr-proc{grid-template-columns:12px minmax(0,1fr);}
  .pr-proc .pr-seg-btns,.pr-proc .pr-badge{grid-column:2;justify-self:start;}
  .pr-estado-btn{padding:9px 12px;font-size:12.5px;}
  .pr-bitacora li{grid-template-columns:minmax(0,1fr);gap:2px;}
}

/* Botón "Ruta" bajo el número de orden: visible sin desplazar la tabla ni expandir la tarjeta en celular */
.btn-ruta{margin-top:5px;border:1px solid var(--cyan);background:#fff;color:var(--cyan-dark);border-radius:6px;padding:3px 8px;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;}
.btn-ruta:hover{background:var(--cyan);color:var(--navy);}

/* ---------- Fotos ---------- */
.pr-subir{margin-bottom:12px;}
.pr-file-btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;white-space:nowrap;}
.pr-file-btn.subiendo{opacity:.7;pointer-events:none;}
.pr-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
.pr-foto{margin:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fff;position:relative;}
.pr-foto.interna{border-style:dashed;}
.pr-foto.interna .pr-foto-img{opacity:.6;}
.pr-foto-img{display:block;width:100%;aspect-ratio:4/3;border:none;padding:0;background:var(--bg);cursor:zoom-in;}
.pr-foto-img img{width:100%;height:100%;object-fit:cover;display:block;}
.pr-foto-img span{color:var(--text-muted);}
.pr-foto figcaption{padding:6px 8px;font-size:12px;line-height:1.3;}
.pr-foto figcaption small{display:block;color:var(--text-muted);font-size:10.5px;}
.pr-foto-acts{position:absolute;top:4px;right:4px;display:flex;gap:2px;background:rgba(255,255,255,.92);border-radius:8px;}
.pr-visor{flex-direction:column;cursor:zoom-out;}
.pr-visor img{max-width:100%;max-height:85vh;border-radius:8px;}
.pr-visor .pr-x{position:absolute;top:16px;right:16px;background:#fff;}

/* ---------- Vista Taller ---------- */
.tl-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px;}
.tl-h{margin:0;font-size:18px;color:var(--navy);}
.tl-refrescar{background:var(--card) !important;color:var(--text) !important;border:1px solid var(--border) !important;}
.tl-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px;}
.tl-kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0;}
.tl-kpi b{font-size:22px;color:var(--navy);font-variant-numeric:tabular-nums;line-height:1.1;}
.tl-kpi b small{font-size:13px;color:var(--text-muted);font-weight:500;}
.tl-kpi span{font-size:11.5px;color:var(--text-muted);line-height:1.3;}
.tl-kpi.mal{border-color:#f3c9c9;background:var(--danger-bg);}
.tl-kpi.mal b{color:var(--danger);}
.tl-kpi.aviso{border-color:#f5d9a8;background:var(--warning-bg);}
.tl-kpi.aviso b{color:var(--warning);}
.tl-barras{display:flex;align-items:flex-end;gap:2px;height:30px;}
.tl-barras i{flex:1;background:var(--cyan);border-radius:2px 2px 0 0;min-height:2px;}
.tl-barras i.cero{background:var(--border);}
.tl-filtros{margin-bottom:10px;}
.tl-sec{margin-bottom:18px;}
.tl-sec h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--navy);display:flex;gap:6px;align-items:center;}
.tl-sec h4 span{background:var(--navy);color:#fff;border-radius:999px;padding:1px 8px;font-size:11px;letter-spacing:0;}
.tl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;}
.tl-card{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:5px;min-width:0;}
.tl-card.en_curso{border-left-color:var(--navy);}
.tl-card.espera_cliente{border-left-color:var(--warning);}
.tl-card.atrasado{border-left-color:var(--danger);}
.tl-card.sinruta{border-left-style:dashed;}
.tl-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;}
.tl-orden{font-size:12px;font-weight:700;color:var(--text-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tl-chip{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--bg);color:var(--text-muted);white-space:nowrap;}
.tl-chip.mal{background:var(--danger-bg);color:var(--danger);}
.tl-proc{font-size:17px;font-weight:700;color:var(--text);line-height:1.2;}
.tl-proy{font-size:12px;color:var(--text-muted);}
.tl-meta{font-size:12px;color:var(--text);}
.tl-meta.mal{color:var(--danger);font-weight:700;}
.tl-card .pr-barra{margin:4px 0 2px;}
.tl-btns{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px;align-items:center;}
.tl-btn{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:8px;padding:10px 14px;font-size:13.5px;font-weight:700;cursor:pointer;min-height:44px;}
.tl-btn.primario{background:var(--navy);color:#fff;border-color:var(--navy);}
.tl-btn.link{border:none;background:none;color:var(--cyan-dark);padding:10px 6px;margin-left:auto;}
.tl-btn:disabled{opacity:.6;cursor:wait;}
@media (max-width:900px){ .tl-kpis{grid-template-columns:repeat(2,minmax(0,1fr));} .tl-spark{grid-column:1 / -1;} }
@media (max-width:640px){ .tl-grid{grid-template-columns:minmax(0,1fr);} .tl-btn{flex:1;} .tl-btn.link{flex:0;} }

/* ---------- Portal de clientes (administración) ---------- */
.pa-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.pa-buscar{padding:9px 12px;border:1px solid var(--border);border-radius:8px;font-size:16px;min-width:0;width:260px;max-width:100%;background:#fff;}
.pa-aviso{background:var(--warning-bg);color:#7A4A00;border:1px solid #f5d9a8;border-radius:10px;padding:10px 12px;font-size:12.5px;margin-bottom:12px;}
.pa-aviso code{font-size:11.5px;background:rgba(255,255,255,.6);padding:1px 4px;border-radius:4px;}
.pa-ok{font-size:13px;color:var(--success);background:var(--success-bg);padding:8px 10px;border-radius:8px;}
.pa-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:12px;}
@media (max-width:560px){.pa-lista{grid-template-columns:minmax(0,1fr);}}
.pa-cliente{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:10px;min-width:0;}
.pa-c-head{display:flex;justify-content:space-between;gap:12px;align-items:center;}
.pa-c-nombre{font-weight:700;font-size:16px;color:var(--navy);}
.pa-logo{width:120px;height:52px;border:1px solid var(--border);border-radius:8px;display:grid;place-items:center;background:#fff;flex:none;padding:6px;}
.pa-logo.oscuro{background:var(--navy);border-color:var(--navy);}
.pa-logo img{max-width:106px;max-height:38px;object-fit:contain;display:block;}
.pa-logo span{font-size:11px;color:var(--text-muted);}
.pa-logo.oscuro span{color:#AEC3DE;}
.pa-logo-ctl{display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.pa-mini{font-size:12px;font-weight:700;color:var(--cyan-dark);cursor:pointer;border:1px solid var(--cyan);border-radius:6px;padding:4px 10px;}
.pa-mini-check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);cursor:pointer;}
.pa-mini-check input{width:auto;}
.pa-tabla-wrap{overflow-x:auto;}
.pa-tabla{font-size:12.5px;}
.pa-tabla td{vertical-align:middle;padding:7px 8px;}
.pa-tabla tr.inactivo td{opacity:.55;}
.pa-acts{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;}
.pa-btn{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:6px;padding:5px 9px;font-size:11.5px;font-weight:600;cursor:pointer;white-space:nowrap;}
.pa-btn:hover{border-color:var(--cyan);}
.pa-btn.peligro{color:var(--danger);}
.pa-nuevo{display:flex;gap:6px;flex-wrap:wrap;align-items:center;border-top:1px dashed var(--border);padding-top:10px;}
.pa-nuevo input:not([type=checkbox]){flex:1 1 150px;min-width:0;padding:8px 10px;border:1px solid var(--border);border-radius:7px;font-size:16px;background:#fff;color:var(--text);}
.pa-nuevo .btn{padding:9px 14px;}

/* Respuestas de clientes en el Taller */
.tl-resp{display:flex;flex-direction:column;gap:6px;}
.tl-resp-item{display:flex;justify-content:space-between;gap:10px;align-items:center;background:var(--card);border:1px solid var(--border);border-left:4px solid var(--success);border-radius:10px;padding:10px 12px;font-size:13px;}
.tl-resp-item.cambios{border-left-color:var(--warning);background:var(--warning-bg);}
.tl-resp-item > div{min-width:0;}

/* ---------- Boleta Activa: procesos del catálogo (misma estética que el catálogo de producción) ---------- */
.bp-wrap{border:1px solid var(--border);border-radius:12px;padding:12px 14px;background:#fff;}
.bp-cab{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12.5px;color:var(--text-muted);margin-bottom:6px;}
.bp-cab b{color:var(--navy);}
.bp-fase{margin-top:8px;}
.bp-fase-h{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px;}
.bp-chips{display:flex;flex-wrap:wrap;gap:6px;}
.bp-chip{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:999px;padding:6px 13px;font-size:13px;cursor:pointer;line-height:1.2;transition:background .12s,border-color .12s,color .12s;}
.bp-chip:hover{border-color:var(--cyan);}
.bp-chip.in{background:#DDF5FB;border-color:var(--cyan);font-weight:600;color:var(--navy);}
.bp-chip.in::before{content:"✓ ";}
.bp-link{border:none;background:none;color:var(--cyan-dark,#0091AD);font-weight:600;font-size:12px;cursor:pointer;padding:2px 0;}
.bp-nuevo{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border);}
.bp-nuevo-fila{display:flex;gap:8px;flex-wrap:wrap;}
.bp-nuevo-fila input{flex:1 1 180px;min-width:0;}
.bp-nuevo-fila select{flex:0 1 200px;}
.bp-muted{font-size:11.5px;color:var(--text-muted);margin:8px 0 0;}

/* ---------- Trazabilidad de la ruta ---------- */
.pr-cambio-ruta{border:1px solid var(--border);border-left:3px solid var(--cyan);border-radius:10px;padding:8px 12px;margin-bottom:12px;font-size:12.5px;background:#F8FBFD;}
.pr-cambio-h{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:3px;}
.pr-bit-filtro{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.pr-chip-btn.on{background:var(--navy);border-color:var(--navy);color:#fff;}
.pr-ev-tag{font-style:normal;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:1px 7px;border-radius:999px;margin-right:4px;background:var(--bg);color:var(--text-muted);}
.pr-ev-tag.ruta{background:#E0F4FA;color:#0B6E86;}
.pr-ev-tag.estado{background:#EEF0F6;color:var(--navy);}
.pr-ev-tag.cliente{background:var(--warning-bg);color:var(--warning);}
.pr-bitacora li.ev-ruta{background:#F8FBFD;}

/* ---------- Historial con tiempos ---------- */
.propendHistorial{display:block;margin-top:3px;border:1px solid var(--border);background:#fff;color:var(--cyan-dark,#0091AD);border-radius:999px;font-size:10.5px;font-weight:600;padding:1px 8px;cursor:pointer;}
.propendHistorial:hover{border-color:var(--cyan);}
.hi-modal{max-width:920px;}
.hi-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px;}
.hi-kpi{border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:#fff;}
.hi-kpi span{display:block;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);}
.hi-kpi b{display:block;font-size:19px;color:var(--navy);margin:3px 0 1px;}
.hi-kpi small{font-size:11px;color:var(--text-muted);}
.hi-kpi.mal b{color:var(--danger);}
.hi-kpi.bien b{color:var(--success);}
.hi-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.hi-hitos{list-style:none;margin:0;padding:0;}
.hi-hitos li{display:flex;gap:10px;position:relative;padding:0 0 10px;}
.hi-hitos li:not(:last-child)::before{content:'';position:absolute;left:5px;top:12px;bottom:0;width:2px;background:var(--border);}
.hi-hitos i{flex:0 0 12px;height:12px;border-radius:50%;border:2px solid var(--border);background:#fff;margin-top:2px;z-index:1;}
.hi-hitos li.ok i{background:var(--cyan);border-color:var(--cyan);}
.hi-hitos b{display:block;font-size:12.5px;font-weight:600;color:var(--text);}
.hi-hitos li:not(.ok) b{color:var(--text-muted);font-weight:500;}
.hi-hitos small{font-size:11.5px;color:var(--text-muted);}
.hi-mini{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;border-top:1px solid var(--border);padding-top:8px;margin-top:4px;}
.hi-mini span{display:block;font-size:11px;color:var(--text-muted);}
.hi-mini b{font-size:13px;color:var(--navy);}
.hi-fase{display:grid;grid-template-columns:150px 1fr 48px;align-items:center;gap:10px;padding:5px 0;}
.hi-fase-n{font-size:12.5px;color:var(--text);line-height:1.2;}
.hi-fase-n small{display:block;font-size:10.5px;color:var(--text-muted);}
.hi-barra{height:8px;border-radius:999px;background:var(--bg);overflow:hidden;}
.hi-barra i{display:block;height:100%;background:var(--navy);border-radius:999px;min-width:2px;}
.hi-fase b{font-size:12.5px;color:var(--navy);text-align:right;}
.hi-tabla-wrap{overflow-x:auto;}
.hi-tabla{width:100%;border-collapse:collapse;font-size:12.5px;}
.hi-tabla th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--border);}
.hi-tabla td{padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap;}
.hi-tabla td:first-child{white-space:normal;}
.hi-tabla td.mal{color:var(--danger);font-weight:600;}
.hi-tabla td.bien{color:var(--success);font-weight:600;}
.hi-tabla tr.pendiente td{color:var(--text-muted);}
@media (max-width:720px){ .hi-kpis{grid-template-columns:1fr 1fr;} .hi-grid{grid-template-columns:1fr;} .hi-fase{grid-template-columns:110px 1fr 40px;} }

/* ---------- Producción: sub-pestañas y tablero por departamento ---------- */
.prod-subtabs{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--border);border-radius:999px;background:#fff;margin:0 0 14px;}
.prod-subtab{border:none;background:none;border-radius:999px;padding:6px 16px;font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer;}
.prod-subtab.on{background:var(--navy);color:#fff;}
.prod-proximamente h3{margin:0 0 6px;color:var(--navy);}
.prod-proximamente p{margin:0;color:var(--text-muted);font-size:13px;}

.pc-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px;align-items:flex-start;scroll-snap-type:x proximity;}
.pc-col{flex:0 0 268px;background:var(--bg);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;max-height:calc(100vh - 230px);scroll-snap-align:start;}
.pc-col.vacia{flex-basis:190px;}
.pc-col-h{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--navy);}
.pc-col-h b{background:var(--navy);color:#fff;border-radius:999px;padding:1px 8px;font-size:11px;letter-spacing:0;}
.pc-col.aviso .pc-col-h b{background:var(--warning);}
.pc-col.fin .pc-col-h b{background:var(--cyan);color:var(--navy);}
.pc-col-body{padding:8px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;}
.pc-vacio{font-size:12px;color:var(--text-muted);text-align:center;padding:14px 4px;}
.pc-card{background:var(--card,#fff);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:10px;padding:10px 11px;display:flex;flex-direction:column;gap:4px;min-width:0;}
.pc-card.en_curso{border-left-color:var(--navy);}
.pc-card.espera_cliente{border-left-color:var(--warning);}
.pc-card.listo{border-left-color:var(--cyan);}
.pc-card.sinruta{border-left-color:var(--warning);border-style:dashed;border-left-style:solid;}
.pc-card.atrasado{border-left-color:var(--danger);}
.pc-proy{font-size:12px;color:var(--text-muted);line-height:1.3;}
.pc-proc{font-size:14px;font-weight:700;color:var(--text);line-height:1.25;}
.pc-meta{font-size:11.5px;color:var(--text-muted);}
.pc-meta.mal{color:var(--danger);font-weight:600;}
.pc-est{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:1px 6px;border-radius:999px;margin-right:2px;background:var(--bg);color:var(--text-muted);}
.pc-est.en_curso{background:var(--navy);color:#fff;}
.pc-est.espera_cliente{background:var(--warning-bg);color:var(--warning);}
.pc-tambien{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:2px;padding:6px 7px;border-radius:7px;background:#eef3f8;border:1px solid #d6e1ec;}
.pc-tambien > span{width:100%;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--navy);}
.pc-tambien b{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:var(--navy);background:#fff;border:1px solid #d6e1ec;border-left:3px solid var(--pc);border-radius:6px;padding:2px 7px;}
.pc-tambien b .pc-dot{background:var(--pc);margin:0;}
.pc-quieta{font-size:11px;color:var(--warning);font-weight:600;}
.pc-card .tl-btns{margin-top:3px;}
.pc-card .tl-top{gap:6px;}
@media (max-width:640px){ .pc-col{flex-basis:84vw;max-height:none;} .pc-col.vacia{flex-basis:60vw;} }

/* ---------- Compras de la orden (ruta → Compras) ---------- */
.co-fila{display:grid;grid-template-columns:1fr 140px 170px;gap:10px;}
.co-fila .field,.co-form .field{margin-bottom:8px;}
.co-lista{list-style:none;margin:0;padding:0;}
.co-lista li{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);}
.co-lista li.comprado .co-info b{text-decoration:line-through;color:var(--text-muted);}
.co-check{margin:0;padding-top:2px;cursor:pointer;}
.co-check input{width:18px;height:18px;accent-color:var(--navy);}
.co-info{flex:1;min-width:0;font-size:13px;}
.co-info small{display:block;font-size:11.5px;color:var(--text-muted);margin-top:2px;}
.co-fecha-chip{font-size:11.5px;font-weight:600;padding:2px 9px;border-radius:999px;background:var(--bg);color:var(--navy);white-space:nowrap;}
.co-fecha-chip.mal{background:var(--danger-bg,#FDECEC);color:var(--danger);}
.co-lista li.vencida{background:#FFF8F8;}
@media (max-width:640px){ .co-fila{grid-template-columns:1fr 1fr;} .co-fila .field:first-child{grid-column:1/-1;} }

/* ---------- Logística: calendario mensual ---------- */
.lg-nav{display:flex;align-items:center;gap:8px;}
.lg-nav b{min-width:150px;text-align:center;color:var(--navy);font-size:15px;}
.lg-nav .btn{padding:6px 10px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:#fff;color:var(--navy);min-width:34px;}
.lg-nav .btn svg.ico{width:18px;height:18px;}
.lg-kpis{grid-template-columns:repeat(4,1fr);}
.lg-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff;}
.lg-dow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:8px;border-bottom:1px solid var(--border);background:var(--bg);text-align:center;}
.lg-dia{min-height:108px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:6px;display:flex;flex-direction:column;gap:4px;min-width:0;}
.lg-dia:nth-child(7n){border-right:none;}
.lg-dia.fuera{background:#FAFBFC;}
.lg-dia.pasado .lg-num{color:#B5BDC9;}
.lg-num{font-size:12px;font-weight:600;color:var(--text-muted);}
.lg-dia.es-hoy{background:#F2FAFD;}
.lg-dia.es-hoy .lg-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--navy);color:#fff;}
.lg-chip{display:flex;align-items:center;gap:5px;width:100%;border:1px solid var(--border);border-left:3px solid var(--navy);background:#fff;border-radius:7px;padding:3px 6px;font-size:11.5px;cursor:pointer;text-align:left;min-width:0;}
.lg-chip:hover{border-color:var(--cyan);}
.lg-chip-n{font-weight:700;color:var(--navy);flex:0 0 auto;}
.lg-chip-c{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);}
.lg-chip-k{flex:0 0 auto;font-size:10px;font-weight:700;background:var(--navy);color:#fff;border-radius:999px;padding:0 6px;}
.lg-chip.hoy{border-left-color:var(--warning);}
.lg-chip.hoy .lg-chip-k{background:var(--warning);}
.lg-chip.vencido{border-left-color:var(--danger);background:#FFF6F6;}
.lg-chip.vencido .lg-chip-k{background:var(--danger);}
.lg-chip.hecho{border-left-color:var(--cyan);opacity:.75;}
.lg-chip.hecho .lg-chip-k{background:var(--cyan);color:var(--navy);}
.lg-leyenda{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--text-muted);margin-top:10px;}
.lg-leyenda span::before{content:'';display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px;background:var(--navy);}
.lg-leyenda .hoy::before{background:var(--warning);}
.lg-leyenda .vencido::before{background:var(--danger);}
.lg-leyenda .hecho::before{background:var(--cyan);}
.lg-venc-lista{display:flex;flex-direction:column;gap:6px;}
.lg-venc{text-align:left;border:1px solid var(--border);border-left:3px solid var(--danger);background:#FFF6F6;border-radius:8px;padding:7px 10px;font-size:12.5px;cursor:pointer;}
.lg-venc b{color:var(--danger);margin-right:6px;}
.lg-modal{max-width:520px;}
.lg-modal-fecha{font-size:13px;padding:8px 12px;border-radius:10px;background:var(--bg);margin-bottom:8px;}
.lg-modal-fecha.mal{background:#FFF0F0;color:var(--danger);}
@media (max-width:720px){
  .lg-kpis{grid-template-columns:1fr 1fr;}
  .lg-dia{min-height:70px;padding:3px;}
  .lg-dow{padding:6px 2px;font-size:10px;}
  .lg-chip{padding:2px 3px;gap:2px;flex-wrap:wrap;}
  .lg-chip-c{display:none;}
  .lg-chip-n{font-size:10.5px;}
  .lg-nav b{min-width:0;font-size:14px;}
}

/* ---------- Familias de compra (color por familia) ---------- */
.fam-chips{display:flex;flex-wrap:wrap;gap:6px;}
.fam-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:#fff;color:var(--text);border-radius:999px;padding:6px 12px;font-size:12.5px;cursor:pointer;line-height:1.2;}
.fam-chip i{width:9px;height:9px;border-radius:50%;background:var(--fam);flex:0 0 auto;}
.fam-chip:hover{border-color:var(--fam,var(--cyan));}
.fam-chip.on{background:var(--fam);border-color:var(--fam);color:#fff;font-weight:600;}
.fam-chip.on i{background:#fff;}
.fam-chip.nueva{border-style:dashed;color:var(--cyan-dark,#0091AD);font-weight:600;}
.fam-nueva{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding:10px;border:1px dashed var(--border);border-radius:10px;}
.fam-nueva input{flex:1 1 180px;min-width:0;}
.fam-swatches{display:flex;gap:5px;flex-wrap:wrap;}
.fam-sw{width:22px;height:22px;border-radius:50%;border:2px solid #fff;background:var(--fam);box-shadow:0 0 0 1px var(--border);cursor:pointer;padding:0;}
.fam-sw.on{box-shadow:0 0 0 2px var(--navy);}
.fam-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:2px 9px 2px 7px;border-radius:999px;color:var(--fam);background:color-mix(in srgb,var(--fam) 12%,#fff);border:1px solid color-mix(in srgb,var(--fam) 35%,#fff);vertical-align:1px;}
.fam-badge i{width:7px;height:7px;border-radius:50%;background:var(--fam);}
.co-lista li.comprado .fam-badge{opacity:.6;}
.lg-chip-fams{display:inline-flex;gap:2px;flex:0 0 auto;}
.lg-chip-fams i{width:7px;height:7px;border-radius:50%;background:var(--fam);}
@media (max-width:720px){ .lg-chip-fams{display:none;} }

/* ---------- Taller: departamento desplegado por proceso ---------- */
.pc-col-toggle{width:100%;background:none;border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;font-family:inherit;}
.pc-col-toggle span{flex:1;}
.pc-col-toggle em{display:inline-flex;color:var(--text-muted);font-style:normal;}
.pc-col-toggle em svg.ico{width:16px;height:16px;}
.pc-col-toggle:hover{background:#fff;}
.pc-col-toggle:hover em{color:var(--navy);}
.pc-grupo{flex:0 0 auto;display:flex;flex-direction:column;border:2px solid var(--navy);border-radius:14px;background:#F6F8FB;scroll-snap-align:start;max-width:none;}
.pc-grupo-h{display:flex;align-items:center;gap:8px;background:var(--navy);color:#fff;border:none;border-radius:11px 11px 0 0;padding:9px 12px;cursor:pointer;font-family:inherit;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;text-align:left;}
.pc-grupo-h em{display:inline-flex;font-style:normal;}
.pc-grupo-h em svg.ico{width:16px;height:16px;}
.pc-grupo-h small{font-weight:500;text-transform:none;letter-spacing:0;opacity:.75;font-size:12px;flex:1;}
.pc-grupo-h b{background:#fff;color:var(--navy);border-radius:999px;padding:1px 8px;font-size:11px;letter-spacing:0;}
.pc-grupo-cols{display:flex;gap:10px;padding:10px;align-items:flex-start;}
.pc-sub{flex:0 0 250px;background:#fff;}
.pc-sub .pc-col-h{color:var(--text);}
.pc-grupo-vacio{min-width:220px;}
@media (max-width:640px){ .pc-sub{flex-basis:78vw;} }

/* ---------- Color por proceso ---------- */
.pc-sub{border-color:var(--pc);overflow:hidden;}
.pc-sub-h{background:var(--pc);color:var(--pc-txt);border-bottom:none;}
.pc-sub-h b{background:var(--pc-txt);color:var(--pc);}
.pc-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--pc);margin-right:6px;vertical-align:1px;flex:0 0 auto;box-shadow:0 0 0 1px rgba(11,31,58,.12);}
.pr-chip .pc-dot,.bp-chip .pc-dot{width:8px;height:8px;margin-right:5px;}
.bp-chip.in::before,.pr-chip.in::before{content:"✓ ";}
input.pc-color{width:34px;height:28px;padding:1px;border:1px solid var(--border);border-radius:6px;background:#fff;cursor:pointer;}
.pc-sub .pc-col-h.pc-sub-h{color:var(--pc-txt);}
.pr-tabla input.pc-color,.pr-custom input.pc-color{width:36px;min-width:36px;flex:0 0 36px;height:30px;padding:1px;}

/* ---------- Staff ---------- */
.st-filtros{margin-bottom:12px;}
.st-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px;}
.st-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;}
.st-card.libre{background:#FAFBFC;}
.st-card-h{display:flex;align-items:flex-start;gap:10px;}
.st-nombre{flex:1;min-width:0;}
.st-nombre b{font-size:15px;color:var(--navy);}
.st-av{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--av);color:var(--av-txt);font-size:11px;font-weight:700;flex:0 0 auto;box-shadow:inset 0 0 0 2px rgba(255,255,255,.35);}
.st-av.grande{width:40px;height:40px;font-size:14px;}
.st-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;}
.st-tag{display:inline-flex;align-items:center;font-size:11px;padding:2px 8px;border-radius:999px;background:var(--bg);color:var(--text);border:1px solid var(--border);}
.st-tag .pc-dot{width:7px;height:7px;margin-right:4px;}
.st-tag.din{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:700;}
.st-tag.rol{color:var(--text-muted);}
.st-asig{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;}
.st-asig button{width:100%;display:flex;align-items:flex-start;gap:6px;text-align:left;border:1px solid var(--border);background:#fff;border-radius:8px;padding:6px 8px;cursor:pointer;font-family:inherit;}
.st-asig button:hover{border-color:var(--cyan);}
.st-asig .pc-dot{margin-top:5px;}
.st-asig b{display:block;font-size:12.5px;color:var(--text);}
.st-asig small{display:block;font-size:11px;color:var(--text-muted);}
.st-libre{font-size:12px;color:var(--success,#16A34A);font-weight:600;}
.st-nota{font-size:11.5px;color:var(--text-muted);border-top:1px dashed var(--border);padding-top:6px;}
.st-bajas{margin-top:14px;font-size:12.5px;color:var(--text-muted);}
.st-bajas summary{cursor:pointer;font-weight:600;}
.st-bajas-lista{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px;}
.st-modal{max-width:560px;}
.st-din{display:flex;align-items:flex-start;gap:8px;margin:2px 0 12px;font-size:13px;text-transform:none;color:var(--text);cursor:pointer;}
.st-din input{width:auto;margin-top:2px;}
.st-area-fase{margin-bottom:8px;}
.st-area-fase > span{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:4px;}
.st-rol-input{width:120px !important;padding:4px 10px !important;border-radius:999px !important;font-size:12px !important;}
/* Taller: personas asignadas a cada proceso */
.pc-gente{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:2px;}
.pc-persona{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;background:#E8EEF7;color:var(--navy);}
.pc-persona.din{background:var(--navy);color:#fff;}
.pc-asignar{border:1px dashed var(--border);background:none;border-radius:999px;font-size:11px;font-weight:600;color:var(--cyan-dark,#0091AD);padding:2px 9px;cursor:pointer;}
.pc-asignar:hover{border-color:var(--cyan);}

/* ---------- Staff: fotos de retrato ---------- */
.st-av{background-color:var(--av);background-size:cover;background-position:center;}
.st-av.con-foto{color:transparent;box-shadow:0 0 0 2px var(--av);}
.st-av.xl{width:84px;height:84px;font-size:26px;}
.st-foto-edit{display:flex;align-items:center;gap:16px;margin:4px 0 14px;}
.st-foto-btns{display:flex;flex-direction:column;align-items:flex-start;gap:4px;}
.st-foto-btn{cursor:pointer;}
.st-foto-btn.subiendo{opacity:.6;pointer-events:none;}
.pc-cara{display:inline-block;width:18px;height:18px;border-radius:50%;background:#CBD5E1 center/cover no-repeat;margin:-1px 5px -1px -6px;flex:0 0 auto;}
.pc-cara.con-foto{box-shadow:0 0 0 1.5px #fff;}
.pc-persona{padding-left:9px;}

/* Tarjetas del Taller: número de orden y cliente más visibles */
.pc-card .tl-orden{font-size:15.5px;font-weight:800;color:var(--navy);line-height:1.2;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.pc-card .tl-top .tl-chip{flex-shrink:0;}
/* Ruta: arrastrar y soltar */
.pr-lista-ayuda{margin:0 0 6px;font-size:11.5px;}
.pr-lista li{grid-template-columns:26px 22px minmax(0,1fr) auto;cursor:grab;user-select:none;-webkit-user-select:none;transition:box-shadow .12s, background .12s;}
.pr-lista li:hover{border-color:#b9c7d6;}
.pr-grip{border:none;background:transparent;width:26px;height:30px;border-radius:6px;cursor:grab;color:var(--text-muted);display:flex;align-items:center;justify-content:center;touch-action:none;padding:0;}
.pr-grip:hover,.pr-grip:focus-visible{background:#fff;color:var(--navy);}
.pr-lista.ordenando, .pr-lista.ordenando li{cursor:grabbing;}
.pr-lista li.arrastrando{background:#fff;border-color:var(--cyan);box-shadow:0 6px 18px rgba(13,31,58,.18);position:relative;z-index:2;}

/* Logística: edición y notas extra por compra */
.lg-lista li{padding:11px 0;}
.lg-item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
.lg-nota-prod{font-size:12.5px;margin-top:3px;}
.lg-nota-prod span{font-weight:700;color:var(--navy);}
.lg-notas{margin-top:6px;display:flex;flex-direction:column;gap:5px;}
.lg-nota{background:#FFF9E8;border:1px solid #F1E2B3;border-radius:7px;padding:6px 9px;font-size:12.5px;}
.lg-nota > div{display:flex;align-items:center;gap:6px;font-size:11.5px;}
.lg-nota p{margin:2px 0 0;white-space:pre-wrap;color:var(--text);}
.lg-nota-x{margin-left:auto;border:none;background:none;cursor:pointer;color:var(--text-muted);width:22px;height:22px;border-radius:5px;display:flex;align-items:center;justify-content:center;padding:0;}
.lg-nota-x:hover{background:#fff;color:var(--danger);}
.lg-nota-x svg{width:13px;height:13px;}
.lg-link{align-self:flex-start;border:none;background:none;padding:2px 0;font-size:12.5px;font-weight:700;color:var(--cyan-dark,#0a7fa0);cursor:pointer;}
.lg-link:hover{text-decoration:underline;}
.lg-nota-form textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:7px;font:inherit;font-size:16px;resize:vertical;}
.lg-nota-form > div,.lg-edit-acc{display:flex;justify-content:flex-end;gap:6px;margin-top:6px;}
.lg-edit{display:flex;flex-direction:column;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:10px;}
.lg-edit label{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);}
.lg-edit input{padding:7px 9px;border:1px solid var(--border);border-radius:7px;font:inherit;font-size:16px;text-transform:none;letter-spacing:0;font-weight:400;color:var(--text);background:#fff;}
.lg-edit-fila{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.lg-edit-fila label:first-child{grid-column:1/-1;}
.lg-edit input{min-width:0;width:100%;box-sizing:border-box;}
.lg-edit .fam-chips{display:flex;flex-wrap:wrap;gap:5px;}
.co-lista li.comprado .lg-nota b{text-decoration:none;color:var(--text);}

/* ================= Producción → Impresión ================= */
#impresionProduccion .btn-ghost,.imp-modal .btn-ghost,.imp-form-modal .btn-ghost{background:#fff;color:var(--navy);border:1px solid var(--border);}
#impresionProduccion .btn-ghost:hover,.imp-modal .btn-ghost:hover,.imp-form-modal .btn-ghost:hover{background:var(--bg);}
#impresionProduccion .btn,.imp-modal .btn,.imp-form-modal .btn{display:inline-flex;align-items:center;gap:6px;}
#impresionProduccion .btn svg.ico,.imp-modal .btn svg.ico,.imp-form-modal .btn svg.ico{width:16px;height:16px;}
.imp-head{flex-wrap:wrap;}
.imp-head-acc{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.imp-seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff;}
.imp-seg button{border:none;background:none;padding:8px 14px;font:600 12.5px 'Bricolage Grotesque',sans-serif;color:var(--text-muted);cursor:pointer;min-height:36px;}
.imp-seg button.on{background:var(--navy);color:#fff;}
.imp-causas{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--text-muted);margin:-4px 0 12px;}
.imp-causas em{font-style:normal;background:var(--danger-bg);color:var(--danger);border-radius:999px;padding:2px 10px;}

/* tablero */
.imp-board{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:10px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x proximity;}
.imp-col{background:#E9EEF4;border-radius:12px;padding:8px;min-height:180px;scroll-snap-align:start;display:flex;flex-direction:column;}
.imp-col header{padding:4px 6px 8px;}
.imp-col h4{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--navy);display:flex;gap:6px;align-items:center;}
.imp-col h4 span{background:var(--navy);color:#fff;border-radius:999px;padding:1px 8px;font-size:11px;letter-spacing:0;}
.imp-col header small{font-size:11px;color:var(--text-muted);}
.imp-col.col-reimpresion{background:#F8E7E7;}
.imp-col.col-reimpresion h4 span{background:var(--danger);}
.imp-col.col-impresa{background:#E3F3EA;}
.imp-col.col-impresa h4 span{background:var(--success);}
.imp-col-lista{display:flex;flex-direction:column;gap:8px;}
.imp-col-vacia{font-size:12px;color:var(--text-muted);text-align:center;padding:18px 6px;border:1.5px dashed #cdd6e2;border-radius:10px;}
.imp-card{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;text-align:left;background:#fff;border:1px solid var(--border);border-left:4px solid var(--border);border-radius:10px;padding:8px;cursor:pointer;font:inherit;color:inherit;width:100%;transition:box-shadow .15s,transform .15s;}
.imp-card:hover{box-shadow:0 4px 14px rgba(11,31,58,.12);transform:translateY(-1px);}
.imp-card:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;}
.imp-card.prio-1{border-left-color:var(--danger);}
.imp-card.prio-2{border-left-color:var(--warning);}
.imp-card.vencida{background:#FFF7F7;}
.imp-thumb{width:64px;height:64px;border-radius:8px;background:var(--bg);display:flex;align-items:center;justify-content:center;color:#9AA7BA;overflow:hidden;}
.imp-thumb svg.ico{width:24px;height:24px;}
.imp-thumb img,.imp-mini img{width:100%;height:100%;object-fit:cover;display:block;}
.imp-arte-img img{width:100%;height:100%;object-fit:contain;display:block;}
.imp-card-body{min-width:0;display:flex;flex-direction:column;gap:2px;}
.imp-card-top{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:11px;}
.imp-num{font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums;}
.imp-op{color:var(--text-muted);font-weight:600;}
.imp-prio{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-radius:5px;padding:1px 6px;}
.imp-prio.p1{background:var(--danger);color:#fff;}
.imp-prio.p2{background:var(--warning-bg);color:#9A4F00;}
.imp-cli{font:700 15px/1.2 'Bricolage Grotesque',sans-serif;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.imp-proy{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.imp-meta{font-size:11.5px;color:var(--text-muted);}
.imp-fecha.vencida{color:var(--danger);font-weight:700;}
.imp-fecha.hoy{color:#9A4F00;font-weight:700;}
.imp-barra{display:flex;gap:2px;height:6px;margin:4px 0 2px;}
.imp-barra span{border-radius:2px;}
.imp-barra .impreso{background:var(--success);}
.imp-barra .en_curso{background:var(--navy);}
.imp-barra .reimpresion{background:var(--danger);}
.imp-barra .pendiente{background:var(--border);}
.imp-chips{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px;}
.imp-chip{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 8px;background:var(--bg);color:var(--text-muted);}
.imp-chip svg.ico{width:11px;height:11px;}
.imp-chip.aviso{background:var(--warning-bg);color:#9A4F00;}
.imp-chip.mal{background:var(--danger-bg);color:var(--danger);}
.imp-chip.suave{font-weight:500;}

.imp-estado{display:inline-block;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-radius:5px;padding:2px 7px;background:var(--bg);color:var(--text-muted);vertical-align:1px;}
.imp-estado.en_cola{background:#E6F6FA;color:#0A6F86;}
.imp-estado.en_curso{background:var(--navy);color:#fff;}
.imp-estado.reimpresion{background:var(--danger);color:#fff;}
.imp-estado.impresa{background:var(--success-bg);color:var(--success);}
.imp-estado.cerrada{background:var(--success);color:#fff;}
.imp-estado.anulada{background:#E5E7EB;color:#4B5563;text-decoration:line-through;}

.imp-buscar{display:flex;gap:8px;margin-bottom:12px;}
.imp-buscar input{flex:1;padding:9px 12px;border:1px solid var(--border);border-radius:8px;}
.imp-hist tr{cursor:pointer;}
.imp-hist tr:hover td{background:#F8FBFD;}
.imp-hist small{color:var(--text-muted);}

/* detalle */
.imp-modal{max-width:1000px;padding:20px 22px;}
.imp-head-btns{display:flex;gap:6px;align-items:center;}
.imp-head-btns .btn{padding:7px 12px;}
.imp-cta{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:var(--bg);border-radius:10px;padding:10px 14px;font-size:13.5px;margin-bottom:14px;}
.imp-cta.aviso{background:var(--warning-bg);}
.imp-cta.ok{background:var(--success-bg);color:#0F5F2E;}
.imp-cta.mal{background:#F3F4F6;}
.imp-cta .btn[disabled]{opacity:.45;cursor:not-allowed;}
.imp-datos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 16px;margin-bottom:12px;}
.imp-datos > div{display:flex;flex-direction:column;gap:2px;min-width:0;}
.imp-datos span{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700;display:flex;align-items:center;gap:5px;}
.imp-datos b{font-size:14px;color:var(--text);}
.imp-datos .vencida b{color:var(--danger);}
.imp-datos .hoy b{color:#9A4F00;}
.imp-datos-ancho{grid-column:1/-1;}
.imp-ubic{display:flex;align-items:center;gap:4px;word-break:break-all;font-weight:500;font-family:ui-monospace,Menlo,monospace;font-size:12.5px !important;}
.imp-ico-ini{display:inline-block;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:10px solid #7CB518;margin-right:4px;vertical-align:-1px;}
.imp-ico-ent{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--danger);box-shadow:inset 0 0 0 3px var(--danger),inset 0 0 0 5px #fff;margin-right:4px;vertical-align:-1px;}
.imp-verif{display:flex;flex-wrap:wrap;gap:6px 18px;padding:10px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:12px;font-size:13px;}
.imp-verif label{display:flex;align-items:center;gap:6px;cursor:pointer;min-height:32px;}
.imp-verif input{width:18px;height:18px;accent-color:var(--navy);}
.imp-items-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:14px 0 8px;flex-wrap:wrap;}
.imp-items-head h3,.imp-sub{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--navy);}
.imp-items-head h3 span{font-weight:500;color:var(--text-muted);text-transform:none;letter-spacing:0;margin-left:4px;}
.imp-sub{margin:18px 0 8px;}
.imp-bulk{display:flex;gap:6px;}
.imp-bulk .btn{padding:6px 11px;font-size:12px;}
.imp-items{display:flex;flex-direction:column;gap:6px;}
.imp-item{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:10px;align-items:start;border:1px solid var(--border);border-left:4px solid var(--border);border-radius:10px;padding:10px;background:#fff;}
.imp-item.est-en_curso{border-left-color:var(--navy);}
.imp-item.est-impreso{border-left-color:var(--success);background:#FBFEFC;}
.imp-item.est-reimpresion{border-left-color:var(--danger);background:#FFF8F8;}
.imp-item-n{font-weight:800;color:var(--text-muted);font-variant-numeric:tabular-nums;padding-top:1px;}
.imp-item-tit{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:14px;}
.imp-item-estado{font-style:normal;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-radius:5px;padding:2px 7px;background:var(--bg);color:var(--text-muted);}
.imp-item-estado.en_curso{background:var(--navy);color:#fff;}
.imp-item-estado.impreso{background:var(--success-bg);color:var(--success);}
.imp-item-estado.reimpresion{background:var(--danger);color:#fff;}
.imp-item-spec{display:flex;flex-wrap:wrap;gap:4px 18px;margin:6px 0 2px;font-size:12.5px;}
.imp-item-spec div{display:flex;gap:5px;}
.imp-item-spec .ancho{flex-basis:100%;}
.imp-item-spec dt{color:var(--text-muted);}
.imp-item-spec dd{margin:0;font-weight:600;}
.imp-item-artes{display:flex;gap:4px;margin:6px 0 2px;}
.imp-mini{width:40px;height:40px;border-radius:6px;border:1px solid var(--border);background:var(--bg);display:flex;align-items:center;justify-content:center;color:#9AA7BA;cursor:pointer;overflow:hidden;padding:0;}
.imp-item-acc{display:flex;flex-direction:column;gap:4px;align-items:stretch;min-width:118px;}
.imp-btn-est{border:1px solid var(--border);background:#fff;color:var(--navy);border-radius:8px;padding:7px 10px;font:700 12px 'Bricolage Grotesque',sans-serif;cursor:pointer;min-height:34px;}
.imp-btn-est:hover{background:var(--bg);}
.imp-btn-est.ok{background:var(--success);border-color:var(--success);color:#fff;}
.imp-btn-est.mal{color:var(--danger);border-color:#f3c9c9;}
.imp-btn-est.suave{border-color:transparent;color:var(--text-muted);font-weight:600;font-size:11.5px;min-height:28px;padding:4px 8px;}
.imp-btn-est:disabled{opacity:.5;cursor:wait;}
.imp-firmas{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;}
.imp-firma{border:1px dashed #cdd6e2;border-radius:10px;padding:9px 11px;display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-height:74px;}
.imp-firma > span{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700;}
.imp-firma.ok{border-style:solid;border-color:#BFE6CD;background:#F4FBF6;}
.imp-firma.ok b{display:flex;align-items:center;gap:5px;color:#0F5F2E;font-size:13px;}
.imp-firma.ok b svg.ico{width:15px;height:15px;}
.imp-firma small{font-size:11px;color:var(--text-muted);}
.imp-firma .btn{padding:5px 12px;font-size:12px;}

/* artes */
.imp-subir{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.imp-subir .field{margin:0;min-width:200px;}
.imp-lbl{display:block;font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.03em;}
.imp-subir select{padding:8px 10px;border:1px solid var(--border);border-radius:7px;width:100%;}
.imp-subir .pr-muted{flex-basis:100%;margin:0;}
.imp-file-btn{cursor:pointer;}
.imp-galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;}
.imp-arte{margin:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fff;display:flex;flex-direction:column;}
.imp-arte-img{aspect-ratio:4/3;border:none;background:var(--bg);display:flex;align-items:center;justify-content:center;color:#9AA7BA;cursor:zoom-in;padding:0;overflow:hidden;}
.imp-arte-img svg.ico{width:30px;height:30px;}
.imp-arte figcaption{padding:7px 9px;display:flex;flex-direction:column;gap:2px;font-size:12px;}
.imp-arte figcaption b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.imp-arte figcaption small{color:var(--text-muted);font-size:11px;}
.imp-retirados{margin-top:14px;font-size:12.5px;}
.imp-retirados summary{cursor:pointer;color:var(--text-muted);font-weight:600;}
.imp-retirados ul{margin:6px 0 0;padding-left:18px;}
.imp-retirados small{display:block;color:var(--text-muted);}
.imp-lightbox{flex-direction:column;}
.imp-lightbox figure{margin:0;max-width:92vw;max-height:86vh;display:flex;flex-direction:column;align-items:center;gap:8px;}
.imp-lightbox img{max-width:92vw;max-height:80vh;object-fit:contain;border-radius:8px;background:#fff;}
.imp-lightbox figcaption{color:#fff;font-size:13px;}
.imp-lightbox .pr-x{position:fixed;top:14px;right:14px;color:#fff;background:rgba(0,0,0,.35);}

/* calidad */
.imp-qc{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.imp-qc-fila{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);font-size:13.5px;}
.imp-qc-fila:last-child{border-bottom:none;}
.imp-qc-fila.ok{background:#F4FBF6;}
.imp-qc-fila.mal{background:#FFF5F5;}
.imp-qc-btns{display:flex;gap:4px;flex:none;}
.imp-qc-btns button{border:1px solid var(--border);background:#fff;border-radius:7px;padding:6px 12px;font:600 12px 'Inter',sans-serif;cursor:pointer;min-height:34px;color:var(--text-muted);}
.imp-qc-btns button:first-child.on{background:var(--success);border-color:var(--success);color:#fff;}
.imp-qc-btns button:last-child.on{background:var(--danger);border-color:var(--danger);color:#fff;}
.imp-qc-btns button:disabled{cursor:default;opacity:.7;}
.imp-acciones{display:flex;flex-direction:column;gap:8px;}
.imp-accion{border:1px solid var(--border);border-radius:10px;padding:10px 12px;}
.imp-accion-top{display:flex;gap:6px;align-items:center;}
.imp-accion-top .pr-ico{margin-left:auto;}
.imp-accion dl{display:grid;grid-template-columns:2fr 2fr 1fr;gap:8px;margin:6px 0 4px;font-size:13px;}
.imp-accion dt{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700;}
.imp-accion dd{margin:0;}
.imp-accion.editando{display:flex;flex-direction:column;gap:8px;}
.imp-accion.editando label,.imp-accion-form label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;}
.imp-accion input,.imp-accion-form input,.imp-accion-form select,.imp-accion-form textarea{padding:8px 10px;border:1px solid var(--border);border-radius:7px;font:inherit;font-size:16px;text-transform:none;letter-spacing:0;color:var(--text);}
.imp-nueva-accion{margin-top:10px;}
.imp-nueva-accion summary{cursor:pointer;font-weight:700;color:var(--cyan-dark);font-size:13px;padding:4px 0;}
.imp-accion-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px;}
.imp-accion-form .ancho{grid-column:1/-1;}
.imp-form-fin{display:flex;justify-content:flex-end;}
.imp-nota{margin-bottom:12px;}

/* formulario */
.imp-form-modal{max-width:1120px;padding:20px 22px;}
.imp-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 12px;}
.imp-form-grid .field{margin-bottom:10px;}
.imp-f-op,.imp-f-ancho{grid-column:span 2;}
.imp-f-full{grid-column:1/-1;}
.imp-ayuda{display:block;font-size:11px;color:var(--text-muted);margin-top:3px;}
.imp-items-ed{display:flex;flex-direction:column;gap:8px;}
.imp-fila{display:grid;grid-template-columns:24px minmax(150px,2fr) 104px minmax(170px,1.6fr) 62px 76px 76px 64px;
  grid-template-areas:"n item prio mat cant x y acc" ". acab dets dets dets exc exc ." ". inst inst inst inst inst inst .";
  gap:8px;align-items:start;border:1px solid var(--border);border-radius:10px;padding:10px;background:#fff;}
.imp-fila.bloqueada{background:var(--bg);}
.imp-fila label,.imp-fila .imp-c-mat{margin:0;min-width:0;}
.imp-fila label > span,.imp-c-dets legend{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700;margin-bottom:3px;padding:0;}
.imp-fila input:not([type=checkbox]),.imp-fila select{width:100%;padding:7px 8px;border:1px solid var(--border);border-radius:7px;font-size:16px;font-family:'Inter',sans-serif;background:#fff;color:var(--text);}
.imp-fila input:disabled,.imp-fila select:disabled{background:var(--bg);color:var(--text-muted);}
.imp-fila .imp-n{grid-area:n;font-weight:800;color:var(--text-muted);padding-top:24px;}
.imp-c-item{grid-area:item;} .imp-c-prio{grid-area:prio;} .imp-c-mat{grid-area:mat;display:flex;flex-direction:column;gap:5px;}
.imp-c-cant{grid-area:cant;} .imp-c-x{grid-area:x;} .imp-c-y{grid-area:y;}
.imp-c-acab{grid-area:acab;} .imp-c-dets{grid-area:dets;} .imp-c-exc{grid-area:exc;} .imp-c-det{grid-area:inst;}
.imp-c-acc{grid-area:acc;display:flex;gap:2px;justify-content:flex-end;padding-top:20px;}
.imp-c-acc .pr-ico:disabled{opacity:.3;cursor:default;}
.imp-c-dets{border:none;margin:0;padding:0;min-width:0;display:flex;flex-wrap:wrap;gap:5px;}
.imp-c-dets legend{float:left;width:100%;}
.imp-chk{display:inline-flex;cursor:pointer;}
.imp-chk input{position:absolute;opacity:0;width:1px;height:1px;}
.imp-fila .imp-chk > span{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid var(--border);border-radius:999px;font-size:13px;font-weight:600;color:var(--text-muted);background:#fff;text-transform:none;letter-spacing:0;margin:0;}
.imp-fila .imp-chk input:checked + span{background:var(--navy);border-color:var(--navy);color:#fff;}
.imp-fila .imp-chk input:focus-visible + span{outline:2px solid var(--cyan);outline-offset:2px;}
.imp-c-dets:disabled .imp-chk{cursor:default;opacity:.7;}
.imp-tag{display:inline-block;font-size:11px;font-weight:700;background:#E6F6FA;color:#0A6F86;border-radius:999px;padding:1px 8px;margin-right:4px;}
.imp-subir-nuevo{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--border);}
.imp-subir-nuevo .pr-muted{margin:0;}
.imp-reimp{max-width:460px;}
.imp-print-opc{display:flex;flex-direction:column;gap:8px;margin:6px 0 2px;}
.imp-print-opc .btn{justify-content:center;min-height:42px;}

@media (max-width:1000px){
  .imp-fila{grid-template-columns:repeat(6,minmax(0,1fr));
    grid-template-areas:"n n n acc acc acc" "item item item item item item" "prio prio prio cant cant cant" "mat mat mat mat mat mat" "x x y y exc exc" "acab acab acab acab acab acab" "dets dets dets dets dets dets" "inst inst inst inst inst inst";}
  .imp-fila .imp-n{padding-top:6px;} .imp-c-acc{padding-top:0;}
  .imp-datos{grid-template-columns:1fr 1fr;}
}
@media (max-width:760px){
  .imp-board{grid-template-columns:repeat(5,82vw);}
  .imp-form-grid{grid-template-columns:1fr 1fr;}
  .imp-f-op,.imp-f-ancho{grid-column:1/-1;}
  .imp-item{grid-template-columns:22px minmax(0,1fr);}
  .imp-item-acc{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;min-width:0;}
  .imp-item-acc .imp-btn-est{flex:1 1 30%;min-height:40px;}
  .imp-accion dl{grid-template-columns:1fr;}
  .imp-accion-form{grid-template-columns:1fr;}
  .imp-qc-fila{flex-direction:column;align-items:stretch;}
  .imp-qc-btns button{flex:1;}
  .imp-head-btns .btn{padding:6px 9px;}
  .imp-modal,.imp-form-modal{padding:16px 14px;}
  .imp-head-acc{width:100%;}
  .imp-head-acc .btn-primary{margin-left:auto;}
}
@media (max-width:640px){
  .tl-head{flex-wrap:wrap;align-items:flex-start;}
  .tl-head > .btn, .tl-head > div > .btn{white-space:nowrap;}
}

/* Producción → Completadas */
.cp-kpis{grid-template-columns:repeat(4,minmax(0,1fr));}
.cp-filtros{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px;}
.cp-filtros input{flex:1;min-width:200px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;}
.cp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;}
.cp-card.por-facturar{border-left-color:var(--warning);}
.cp-card.facturada{border-left-color:var(--success);}
.tl-chip.ok{background:var(--success-bg);color:var(--success);}
.tl-chip.aviso{background:var(--warning-bg);color:#9A4F00;}
.cp-tarde{color:var(--danger);font-weight:700;}
.cp-ok{color:var(--success);font-weight:700;}
.tl-btn.tl-entregar{background:var(--success);border-color:var(--success);}
@media (max-width:900px){ .cp-kpis{grid-template-columns:repeat(2,minmax(0,1fr));} }

/* ================= Producción → Diseño ================= */
#disenoProduccion .btn-ghost,.dis-form-modal .btn-ghost{background:#fff;color:var(--navy);border:1px solid var(--border);}
#disenoProduccion .btn,.dis-form-modal .btn{display:inline-flex;align-items:center;gap:6px;}
#disenoProduccion .btn svg.ico,.dis-form-modal .btn svg.ico{width:16px;height:16px;}
.dis-filtro{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;font:inherit;font-size:16px;min-height:38px;max-width:220px;}
.dis-board{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:10px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x proximity;}
.dis-col.col-entregado{background:#E3F3EA;}
.dis-col.col-entregado h4 span{background:var(--success);}
.dis-col.col-en_curso h4 span{background:var(--cyan-dark);}
.dis-card{background:#fff;border:1px solid var(--border);border-left:4px solid var(--border);border-radius:10px;padding:9px 10px;cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:box-shadow .15s,transform .15s;}
.dis-card:hover{box-shadow:0 4px 14px rgba(11,31,58,.12);transform:translateY(-1px);}
.dis-card:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;}
.dis-card.urgente{border-left-color:var(--danger);}
.dis-card.alta{border-left-color:var(--warning);}
.dis-card.vencida{background:#FFF7F7;}
.col-entregado .dis-card{opacity:.92;}
.dis-desc{font-size:12.5px;color:var(--text);line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line;}
.imp-chip.info{background:#E6F6FA;color:#0A6F86;}
.dis-pie{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap;}
.dis-accs{display:flex;gap:5px;margin-left:auto;}
.dis-acc{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);background:#fff;color:var(--navy);border-radius:7px;padding:5px 10px;min-height:32px;font:600 12px 'Bricolage Grotesque',sans-serif;cursor:pointer;}
.dis-acc svg.ico{width:14px;height:14px;}
.dis-acc.primario{background:var(--navy);border-color:var(--navy);color:#fff;}
.dis-acc.ok{background:var(--success);border-color:var(--success);color:#fff;}
.dis-acc:disabled{opacity:.5;cursor:wait;}
.dis-form-modal{max-width:760px;}
.dis-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 12px;}
.dis-form-grid .field{margin-bottom:10px;}
.dis-ancho{grid-column:1/-1;}
.dis-form-grid textarea{width:100%;resize:vertical;}
.dis-etqs{border:none;padding:0;margin:0 0 10px;display:flex;flex-wrap:wrap;gap:6px;}
.dis-etqs legend{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;padding:0;}
.dis-etqs .imp-chk > span{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid var(--border);border-radius:999px;font-size:13px;font-weight:600;color:var(--text-muted);background:#fff;text-transform:none;letter-spacing:0;}
.dis-etqs .imp-chk input:checked + span{background:var(--navy);border-color:var(--navy);color:#fff;}
.dis-etqs .imp-chk input[value="Urgente"]:checked + span{background:var(--danger);border-color:var(--danger);}
.dis-etqs .imp-chk input:focus-visible + span{outline:2px solid var(--cyan);outline-offset:2px;}
.dis-bitacora{margin:4px 0 10px;font-size:12.5px;}
.dis-bitacora summary{cursor:pointer;font-weight:700;color:var(--navy);}
.dis-bitacora ul{list-style:none;margin:8px 0;padding:0;max-height:180px;overflow:auto;display:flex;flex-direction:column;gap:4px;}
.dis-bitacora small{color:var(--text-muted);}
@media (max-width:768px){
  .dis-board{grid-template-columns:repeat(3,minmax(82vw,1fr));}
  .dis-form-grid{grid-template-columns:1fr;}
  .dis-filtro{max-width:none;flex:1;}
}

/* ================= Producción → Diseño · tablero tipo Planner ================= */
#disenoProduccion .btn-ghost,.pl-modal .btn-ghost,.pl-etq-modal .btn-ghost{background:#fff;color:var(--navy);border:1px solid var(--border);}
#disenoProduccion .btn,.pl-modal .btn,.pl-etq-modal .btn{display:inline-flex;align-items:center;gap:6px;}
#disenoProduccion .btn svg.ico,.pl-modal .btn svg.ico,.pl-etq-modal .btn svg.ico{width:16px;height:16px;}
.pl-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.pl-head-acc{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.pl-buscar,.pl-filtro{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;font:inherit;font-size:16px;min-height:38px;}
.pl-buscar{width:220px;}
.pl-board{display:flex;gap:14px;overflow-x:auto;align-items:flex-start;padding:4px 2px 16px;scroll-snap-type:x proximity;min-height:60vh;}
.pl-col{flex:0 0 288px;display:flex;flex-direction:column;gap:8px;scroll-snap-align:start;}
.pl-col.nueva{flex-basis:220px;}
.pl-col-head{display:flex;align-items:center;gap:6px;padding:2px 4px;}
.pl-col-head h4{margin:0;font:700 15px/1.2 'Bricolage Grotesque',sans-serif;color:var(--navy);cursor:pointer;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pl-cuenta{font-size:11px;font-weight:700;color:var(--text-muted);background:#E3E9F1;border-radius:999px;padding:1px 8px;}
.pl-mas{border:none;background:none;font-size:18px;line-height:1;color:var(--text-muted);cursor:pointer;width:30px;height:30px;border-radius:6px;}
.pl-mas:hover{background:#E3E9F1;color:var(--navy);}
.pl-agregar{display:flex;align-items:center;gap:6px;width:100%;border:1px solid var(--border);background:#fff;border-radius:8px;padding:9px 10px;font:600 13px 'Inter',sans-serif;color:var(--navy);cursor:pointer;text-align:left;}
.pl-agregar:hover{border-color:var(--cyan);}
.pl-agregar svg.ico{width:15px;height:15px;}
.pl-nuevo-dep{width:100%;justify-content:center;}
.pl-lista{display:flex;flex-direction:column;gap:8px;min-height:24px;}
.pl-card{background:#fff;border:1px solid var(--border);border-radius:9px;box-shadow:0 1px 2px rgba(11,31,58,.06);cursor:pointer;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s;}
.pl-card:hover{box-shadow:0 4px 14px rgba(11,31,58,.13);}
.pl-card:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;}
.pl-card.arrastrando{opacity:.35;}
.pl-card.vencida{border-color:#f3c9c9;}
.pl-card.completada .pl-titulo span{color:var(--text-muted);text-decoration:line-through;}
.pl-marca{height:6px;border-radius:4px;background:var(--cyan);margin:-1px 0;}
.pl-portada{height:118px;background:var(--bg) center/cover no-repeat;}
.pl-portada:not(.lista){background-image:linear-gradient(90deg,#eef2f7,#f6f8fb,#eef2f7);}
.pl-chips{display:flex;flex-wrap:wrap;gap:4px;padding:9px 10px 0;}
.pl-chip{display:inline-block;color:#fff;font-size:11px;font-weight:700;border-radius:4px;padding:2px 7px;line-height:1.35;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pl-titulo{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;font-size:13.5px;font-weight:600;color:var(--text);line-height:1.35;}
.pl-titulo span{min-width:0;word-break:break-word;}
.pl-prio{display:inline-flex;align-items:center;justify-content:center;font-weight:900;margin-right:4px;}
.pl-prio.urgente,.pl-prio.importante{color:var(--danger);}
.pl-prio.baja{color:var(--cyan-dark);}
.pl-circ{flex:none;width:20px;height:20px;border-radius:50%;border:1.6px solid #8A96A8;background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;color:#fff;margin-top:1px;}
.pl-circ:hover{border-color:var(--success);}
.pl-circ.hecho{background:var(--success);border-color:var(--success);}
.pl-circ svg.ico{width:13px;height:13px;stroke-width:3;}
.pl-circ.chico{width:17px;height:17px;}
.pl-circ.chico svg.ico{width:11px;height:11px;}
.pl-circ.grande{width:26px;height:26px;margin-top:6px;}
.pl-circ.vacio{cursor:default;opacity:.5;}
.pl-chk-card{list-style:none;margin:-2px 0 6px;padding:0 10px 0 38px;display:flex;flex-direction:column;gap:5px;font-size:12px;}
.pl-chk-card li{display:flex;gap:7px;align-items:flex-start;}
.tachado{text-decoration:line-through;color:var(--text-muted);}
.pl-pie{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:6px 10px 9px;border-top:1px solid #EEF2F7;font-size:11.5px;color:var(--text-muted);}
.pl-ic{display:inline-flex;align-items:center;gap:3px;}
.pl-ic svg.ico{width:13px;height:13px;}
.pl-ic.ok{color:var(--success);}
.pl-medio{width:12px;height:12px;border-radius:50%;border:1.6px solid var(--cyan-dark);background:linear-gradient(90deg,var(--cyan-dark) 50%,transparent 50%);}
.pl-fecha{display:inline-flex;align-items:center;gap:4px;border-radius:5px;padding:1px 6px;}
.pl-fecha svg.ico{width:12px;height:12px;}
.pl-fecha.vencida{background:var(--danger);color:#fff;font-weight:700;}
.pl-fecha.hoy{background:var(--warning-bg);color:#9A4F00;font-weight:700;}
.pl-completadas{display:flex;align-items:center;gap:6px;width:100%;border:none;background:#E9EEF4;border-radius:8px;padding:8px 10px;font:600 12.5px 'Inter',sans-serif;color:var(--navy);cursor:pointer;}
.pl-completadas b{margin-left:auto;}
.pl-flecha{display:inline-block;transition:transform .15s;font-size:16px;line-height:1;}
.pl-flecha.abierta{transform:rotate(90deg);}
.pl-rapido{background:#fff;border:1px solid var(--cyan);border-radius:9px;padding:8px;display:flex;flex-direction:column;gap:6px;}
.pl-rapido input,.pl-rapido select{width:100%;padding:7px 9px;border:1px solid var(--border);border-radius:7px;font:inherit;font-size:16px;min-width:0;}
.pl-rapido-fila{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.pl-rapido-acc{display:flex;justify-content:flex-end;gap:6px;}
.pl-menu{position:absolute;z-index:96;background:#fff;border:1px solid var(--border);border-radius:9px;box-shadow:0 10px 30px rgba(11,31,58,.18);padding:5px;display:flex;flex-direction:column;min-width:200px;}
.pl-menu button{border:none;background:none;text-align:left;padding:9px 11px;border-radius:6px;font:inherit;font-size:13.5px;cursor:pointer;color:var(--text);}
.pl-menu button:hover:not(:disabled){background:var(--bg);}
.pl-menu button:disabled{opacity:.4;cursor:default;}
.pl-menu .peligro{color:var(--danger);}
/* detalle */
.pl-modal{max-width:1080px;width:100%;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:0;padding:0;overflow:hidden;}
.pl-modal-main{padding:18px 20px;overflow-y:auto;max-height:88vh;}
.pl-modal-top{display:flex;gap:10px;align-items:flex-start;}
.pl-modal-titulo{flex:1;font:700 21px/1.25 'Bricolage Grotesque',sans-serif;color:var(--navy);border:1px solid transparent;border-radius:7px;padding:4px 6px;min-width:0;}
.pl-modal-titulo:hover,.pl-modal-titulo:focus{border-color:var(--border);outline:none;}
.pl-meta-linea{font-size:11.5px;color:var(--text-muted);margin:2px 0 10px 42px;}
.pl-etqs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;}
.pl-etq-chk{display:inline-flex;cursor:pointer;}
.pl-etq-chk input{position:absolute;opacity:0;width:1px;height:1px;}
.pl-etq-chk span{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:6px;border:1.5px solid var(--c);color:var(--c);font-size:12.5px;font-weight:700;background:#fff;}
.pl-etq-chk input:checked + span{background:var(--c);color:#fff;}
.pl-etq-chk input:focus-visible + span{outline:2px solid var(--cyan);outline-offset:2px;}
.pl-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;}
.pl-grid .field{margin-bottom:10px;}
.pl-grid select,.pl-grid input,.pl-grid textarea{width:100%;}
.pl-ancho{grid-column:1/-1;}
.pl-sec{border-top:1px solid var(--border);padding-top:12px;margin-top:6px;margin-bottom:10px;}
.pl-sec-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap;}
.pl-sec-head h4{margin:0;font-size:14px;color:var(--navy);}
.pl-sec-head h4 span{color:var(--text-muted);font-weight:500;}
.pl-mostrar{display:inline-flex;gap:6px;align-items:center;font-size:12.5px;color:var(--text-muted);cursor:pointer;}
.pl-mostrar input{width:auto;}
.pl-chk{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;}
.pl-chk li,.pl-chk-nuevo{display:flex;gap:8px;align-items:center;}
.pl-chk input,.pl-chk-nuevo input{flex:1;border:1px solid transparent;border-radius:6px;padding:6px 8px;font:inherit;font-size:16px;min-width:0;}
.pl-chk input:hover,.pl-chk input:focus,.pl-chk-nuevo input{border-color:var(--border);outline:none;}
.pl-adjuntos{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;}
.pl-adj{border:1px solid var(--border);border-radius:9px;padding:6px;display:flex;flex-direction:column;gap:3px;font-size:12px;}
.pl-adj.portada{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan) inset;}
.pl-adj small{color:var(--text-muted);}
.pl-adj-ver{border:none;background:none;padding:0;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:4px;font:inherit;color:inherit;}
.pl-adj-mini{display:block;height:84px;border-radius:6px;background:var(--bg) center/cover no-repeat;}
.pl-adj-ico{display:flex;height:84px;border-radius:6px;background:var(--bg);align-items:center;justify-content:center;color:#9AA7BA;}
.pl-adj-ico svg.ico{width:28px;height:28px;}
.pl-adj-nom{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pl-adj-acc{display:flex;gap:8px;flex-wrap:wrap;}
.pl-adj-acc button{border:none;background:none;padding:0;color:var(--cyan-dark);font:600 11.5px 'Inter',sans-serif;cursor:pointer;}
.pl-adj-acc .peligro{color:var(--danger);}
.pl-subir{cursor:pointer;}
.pl-subir.cargando{opacity:.6;pointer-events:none;}
.pl-chat{background:#F6F8FB;border-left:1px solid var(--border);display:flex;flex-direction:column;max-height:88vh;padding:18px 14px 14px;}
.pl-chat h4{margin:0 0 10px;font-size:14px;color:var(--navy);}
.pl-chat-lista{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;min-height:120px;}
.pl-chat-vacio{margin:auto;text-align:center;}
.pl-msg{background:#fff;border:1px solid var(--border);border-radius:10px;padding:7px 9px;font-size:12.5px;max-width:92%;}
.pl-msg.mio{align-self:flex-end;background:#E6F6FA;border-color:#bfe6f0;}
.pl-msg small{color:var(--text-muted);font-size:10.5px;}
.pl-msg p{margin:3px 0 0;white-space:pre-wrap;word-break:break-word;}
.pl-chat-form{display:flex;flex-direction:column;gap:6px;margin-top:10px;}
.pl-chat-form textarea{width:100%;resize:vertical;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:16px;}
.pl-chat-form .btn{align-self:flex-end;}
.pl-etq-modal{max-width:620px;}
.pl-etq-lista{display:flex;flex-direction:column;gap:8px;margin:10px 0;}
.pl-etq-fila{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.pl-etq-fila input{flex:1 1 160px;padding:7px 9px;border:1px solid var(--border);border-radius:7px;font:inherit;font-size:16px;}
.pl-colores{display:flex;gap:4px;flex-wrap:wrap;}
.pl-color{width:22px;height:22px;border-radius:5px;border:2px solid transparent;cursor:pointer;padding:0;}
.pl-color.on{border-color:var(--navy);box-shadow:0 0 0 2px #fff inset;}
.pl-etq-nueva{display:flex;gap:8px;}
.pl-etq-nueva input{flex:1;padding:8px 10px;border:1px solid var(--border);border-radius:7px;font:inherit;font-size:16px;}
@media (max-width:900px){
  .pl-modal{grid-template-columns:1fr;max-height:92vh;overflow-y:auto;}
  .pl-modal-main,.pl-chat{max-height:none;overflow:visible;}
  .pl-chat{border-left:none;border-top:1px solid var(--border);}
}
@media (max-width:640px){
  .pl-col{flex-basis:84vw;}
  .pl-grid{grid-template-columns:1fr;}
  .pl-buscar{width:100%;}
  .pl-head-acc{width:100%;}
  .pl-filtro{flex:1;}
}

/* Staff → ficha: órdenes en las que trabaja y tareas individuales */
.st-ficha{border-top:1px solid var(--border);margin-top:8px;padding-top:8px;display:flex;flex-direction:column;gap:6px;}
.st-ficha-h{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;}
.st-ficha-h b{color:var(--navy);text-transform:uppercase;letter-spacing:.03em;font-size:11px;}
.st-num{background:var(--navy);color:#fff;border-radius:999px;padding:0 7px;font-size:10.5px;margin-left:3px;}
.st-vacio{font-size:12px;}
.st-ords{display:flex;flex-wrap:wrap;gap:5px;}
.st-ord{display:inline-flex;align-items:center;background:#E6F6FA;border:1px solid #bfe6f0;border-radius:999px;font-size:11.5px;overflow:hidden;}
.st-ord button{border:none;background:none;cursor:pointer;font:inherit;color:#0A6F86;padding:3px 4px 3px 9px;font-weight:600;}
.st-ord .st-x{padding:3px 8px 3px 4px;}
.st-x{border:none;background:none;cursor:pointer;color:var(--text-muted);font-size:15px;line-height:1;padding:2px 6px;}
.st-x:hover{color:var(--danger);}
.st-tareas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;}
.st-tareas li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:center;font-size:12.5px;}
.st-tareas li.st-vacio{display:block;}
.st-tareas label{display:flex;gap:6px;align-items:flex-start;cursor:pointer;min-width:0;}
.st-tareas label input{width:auto;margin-top:2px;}
.st-tareas label span{word-break:break-word;}
.st-tareas small{color:var(--text-muted);font-size:11px;white-space:nowrap;}
.st-tareas li.hecha label span{text-decoration:line-through;color:var(--text-muted);}
.st-tareas li.vencida small{color:var(--danger);font-weight:700;}
.st-tarea-form{display:grid;grid-template-columns:minmax(0,1fr) 140px auto;gap:6px;}
.st-tarea-form input{padding:7px 9px;border:1px solid var(--border);border-radius:7px;font:inherit;font-size:16px;min-width:0;}
.st-ord-buscar{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font:inherit;font-size:16px;margin:6px 0;}
.st-ord-sel{font-size:12px;color:var(--text-muted);margin-bottom:6px;}
.st-ord-lista{max-height:50vh;overflow-y:auto;display:flex;flex-direction:column;gap:4px;border:1px solid var(--border);border-radius:9px;padding:6px;}
.st-ord-op{display:flex;gap:9px;align-items:flex-start;padding:7px 8px;border-radius:7px;cursor:pointer;}
.st-ord-op:hover{background:var(--bg);}
.st-ord-op input{width:auto;margin-top:3px;}
.st-ord-op span{display:flex;flex-direction:column;font-size:13px;}
.st-ord-op small{color:var(--text-muted);font-size:11.5px;}
@media (max-width:640px){ .st-tarea-form{grid-template-columns:1fr 1fr;} .st-tarea-form input[type=text]{grid-column:1/-1;} }
.st-ficha-h .pr-link{white-space:nowrap;}
/* Staff → tarjeta de tarea */
.st-tareas li{grid-template-columns:auto minmax(0,1fr) auto;}
.st-tarea-abrir{border:none;background:none;padding:2px 0;text-align:left;cursor:pointer;font:inherit;color:inherit;display:flex;flex-direction:column;min-width:0;border-radius:5px;}
.st-tarea-abrir:hover span{color:var(--cyan-dark);text-decoration:underline;}
.st-tarea-abrir span{font-size:12.5px;word-break:break-word;}
.st-tarea-abrir small{white-space:normal !important;}
.st-tareas li.hecha .st-tarea-abrir span{text-decoration:line-through;color:var(--text-muted);}
.st-tareas li.vencida .st-tarea-abrir small{color:var(--danger);font-weight:700;}
.st-barra{height:6px;background:#E3E9F1;border-radius:4px;overflow:hidden;margin:0 0 8px;}
.st-barra span{display:block;height:100%;background:var(--success);}
.st-tarjeta .pl-grid .field small{display:block;margin-top:3px;}
