/* Aspecto común de la app (propuesta «Grafito Bolsas NT»).
   Se carga después del estilo de cada página y cambia colores, letra, cabecera y botones.
   Producción, almacén, envío e impresión siguen el diseño D (anillo de días, stock al lado de cada
   producto, avisos arriba), aprobado el 2026-10-15. */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,800&display=swap');

:root{
  --ff:'Plus Jakarta Sans';
  --bg:#f4f5f1;--sf:#ffffff;--s2:#f7f8f4;--bd:#e1e3dc;--bd2:#cfd3c8;
  --tx:#191b17;--mu:#666b62;--mu2:#999e94;
  --acc:#1b8a57;--acc-d:#16734a;--acc-l:#e6f5ec;
  --gray-bg:#f1f2ee;--gray-bd:#e1e3dc;
  --b-rojo:#ca4b48;--b-mostaza:#df9e2c;--b-oliva:#8eb53e;--b-verde:#2ebb77;--grafito:#1c1e1b;
  --radius:8px;
  --shadow:0 1px 2px rgba(25,27,23,.05),0 0 0 1px rgba(25,27,23,.02);
}
body{background:var(--bg);font-family:var(--ff),system-ui,sans-serif;-webkit-font-smoothing:antialiased}
input,select,textarea,button{font-family:var(--ff),system-ui,sans-serif}
::selection{background:#d5ecc0}

/* ── Menú fijo (lo monta menu.js; esto evita el salto al cargar) ── */
@media (min-width:1100px){
  html.bm-fijo body{padding-left:240px}
  html.bm-fijo body::before{content:"";position:fixed;left:0;top:0;bottom:0;width:240px;background:var(--grafito);z-index:39}
  html.bm-fijo .bm-btn{display:none!important}
}
/* En modo pruebas la franja roja de abajo no tapa el pie del menú ni el final de la página */
body:has(>div[style*="c62828"]) .bm-panel{bottom:18px}
body:has(>#aviso-pruebas){padding-bottom:18px}

/* ── Cabecera: clara, con el nombre de la sección y sus pestañas ── */
header{background:var(--bg)!important;border-bottom:1px solid var(--bd)!important;gap:14px!important}
@media (min-width:601px){header{height:60px!important;padding:0 24px!important}}
@media (max-width:600px){
  header{min-height:56px;padding:8px 12px!important;gap:8px!important}
  header .hdr-r{width:auto!important;flex:1;justify-content:flex-end}
  header .logo{font-size:17px!important}
  .toolbar{padding:8px 12px!important}
}
header .logo{color:var(--tx)!important;font-size:18px!important;font-weight:800!important;letter-spacing:-.02em;gap:10px!important}
header .logo-dot,#logo-letra{display:none!important}
#logo-txt{display:inline-block;text-transform:lowercase}
#logo-txt::first-letter{text-transform:uppercase}
#logo-txt+span{display:none!important}
header .back{color:var(--mu)!important;border-color:var(--bd)!important;background:var(--sf)}
header .back:hover{color:var(--tx)!important}
nav.tabs{flex:0 1 auto!important;background:#e7e9e2;padding:3px;border-radius:10px;gap:2px}
nav.tabs:empty{display:none}
nav.tabs button{color:#4d5249!important;font:600 12.5px var(--ff),sans-serif!important;padding:6px 13px!important;border-radius:8px!important}
nav.tabs button:hover{color:var(--tx)!important}
nav.tabs button.on{background:var(--sf)!important;color:var(--tx)!important;box-shadow:0 1px 2px rgba(0,0,0,.08)}

/* Cabecera del tablero y del almacén */
header .clock{background:transparent!important;color:var(--mu)!important;font-family:'Space Mono',monospace}
header .btn-ghost{background:var(--sf)!important;color:var(--tx)!important;border:1px solid var(--bd)!important}
#me-badge{background:var(--sf)!important;border:1px solid var(--bd)!important;color:var(--tx)!important;border-radius:999px!important;padding:4px 12px 4px 4px!important;font-size:12px!important;min-height:34px}
#me-badge:hover{border-color:var(--bd2)!important}
.btn-user-badge{background:var(--sf)!important;border:1px solid var(--bd)!important;color:var(--mu)!important;min-height:34px;min-width:34px;justify-content:center}
html.bm-fijo .btn-user-badge{display:none!important}

/* ── Contenido ── */
h1{font-size:22px!important;font-weight:800!important;letter-spacing:-.02em}
main{padding-top:24px!important}
.card{border-color:var(--bd)!important;border-radius:12px!important;box-shadow:var(--shadow)!important}
th{background:transparent!important;color:var(--mu)!important;font-size:11px!important;letter-spacing:.04em!important}
tbody tr:hover td{background:#fafbf8}
.badge{border-radius:6px!important}
input,select,textarea{border-color:var(--bd)!important;border-radius:8px!important}
input:focus,select:focus,textarea:focus{outline:2px solid var(--acc)!important;outline-offset:1px;border-color:var(--acc)!important;box-shadow:0 0 0 4px rgba(27,138,87,.14)}
input[type=checkbox],input[type=radio]{accent-color:var(--acc)}

/* Botones */
.btn{border-radius:8px!important}
.btn-p,.btn-primary{background:var(--acc)!important;border-color:var(--acc)!important;color:#fff!important;box-shadow:0 1px 3px rgba(27,138,87,.25)}
.btn-p:hover,.btn-primary:hover{background:var(--acc-d)!important;border-color:var(--acc-d)!important}
.btn-g{background:var(--acc)!important;border-color:var(--acc)!important}
/* Botones secundarios: blancos con borde fino en toda la app (el .btn-ghost de origen era para fondo oscuro
   y en fondo claro quedaba como texto gris sin borde) */
.btn-ghost{background:var(--sf);color:var(--tx);border:1px solid var(--bd)}
.btn-ghost:hover{background:var(--s2);color:var(--tx);border-color:var(--bd2)}
.btn-ghost:disabled{opacity:.5;cursor:default}
a.btn{text-decoration:none!important}
.btn{white-space:nowrap}

/* ── Tablero y almacén ── */
.toolbar{background:var(--bg)!important;border-bottom:1px solid var(--bd)!important;padding:10px 24px!important;gap:8px!important}
.filter-sel,.filter-inp{background:var(--sf)!important;border:1px solid var(--bd)!important;border-radius:8px!important;padding:7px 10px!important;font-size:12.5px!important}
.filter-sel:focus,.filter-inp:focus{border-color:var(--acc)!important;box-shadow:0 0 0 3px rgba(27,138,87,.14)!important}
.vtog{background:#e7e9e2!important;border:0!important;border-radius:10px!important;padding:3px!important;gap:2px!important}
.vtog-btn{border:0!important;color:#4d5249!important;font-weight:600!important;font-size:12.5px!important;padding:6px 12px!important;border-radius:8px!important}
.vtog-btn:hover{color:var(--tx)!important}
.vtog-btn.active{background:var(--sf)!important;color:var(--tx)!important;box-shadow:0 1px 2px rgba(0,0,0,.08)!important}
#board-area{background:var(--bg)!important}
.kb-col{background:#e9ebe4!important;border:0!important;box-shadow:none!important;border-radius:12px!important}
.kb-col-hdr{border-bottom:0!important}
.kb-col-count{background:#d9dcd2!important;color:#4d5249!important}
#stale-alert{background:#fdf6e7!important;border-bottom-color:#f1dcae!important;color:#8a5a00!important}

/* Cifras destacadas, con los colores de la marca en el borde */
.stat{position:relative;overflow:hidden}
.stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--b-verde)}
.stat:nth-child(4n+2)::before{background:var(--b-oliva)}.stat:nth-child(4n+3)::before{background:var(--b-mostaza)}.stat:nth-child(4n+4)::before{background:var(--b-rojo)}
.stat b{font-weight:800!important;letter-spacing:-.01em}
main a:not([class]){color:var(--acc)}

/* Modales */
.modal{border-radius:14px!important}
.m-hdr h3{font-weight:800;letter-spacing:-.01em}

/* ── Producción · diseño D: plazos, stock, cliente y comentarios a la vista ── */
:root{
  --st-new:#ca4b48;--st-newl:#fbecea;--st-dis:#6d5bd0;--st-disl:#efedfb;
  --st-conf:#b77a10;--st-confl:#fdf3e1;--st-prog:#2f6fb0;--st-progl:#e8f1fa;
  --redl:#fbecea;--musd:#9a6a10;--musl:#fdf3e1;
}
/* Contadores «qué toca hoy» */
.d-now{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 24px 0;flex-shrink:0;background:var(--bg)}
.d-now[style*="none"]{display:none!important}
.d-lane{display:flex;align-items:center;gap:12px;text-align:left;background:var(--sf);border:1px solid var(--bd);border-radius:12px;padding:9px 14px;cursor:pointer;font:inherit;color:var(--tx);transition:border-color .12s,box-shadow .12s}
.d-lane:hover:not([disabled]){border-color:var(--bd2);box-shadow:0 2px 8px rgba(25,27,23,.06)}
.d-lane[disabled]{cursor:default;opacity:.75}
.d-lane .n{font-size:24px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;min-width:34px}
.d-lane .t{display:block;font-weight:700;font-size:12.5px}
.d-lane .s{display:block;font-size:11px;color:var(--mu)}
.d-lane.r .n{color:var(--b-rojo)}.d-lane.m .n{color:var(--musd)}.d-lane.g .n{color:var(--st-prog)}
@media (max-width:700px){.d-now{grid-template-columns:1fr;padding:8px 8px 0}.d-lane{padding:7px 10px}.d-lane .n{font-size:19px}}

/* Columnas */
.kanban-wrap{padding:12px 24px 16px!important;gap:14px!important}
.kb-col{flex:0 0 288px!important;background:transparent!important}
.kb-col-hdr{padding:6px 4px 10px!important;gap:6px!important}
.kb-col-title{font-weight:800!important;font-size:12px!important;letter-spacing:.02em}
.kb-col-count{background:transparent!important;color:var(--mu)!important;font-family:var(--ff)!important;font-size:12px!important;padding:0!important}
.kb-col-add{background:none;border:0;color:var(--mu2);font-size:16px;cursor:pointer}
.kb-cards{padding:0 2px 10px!important;gap:8px!important}
.kb-add-btn{border-radius:10px!important}

/* Tarjeta */
.kb-card.d-card{display:grid!important;grid-template-columns:44px minmax(0,1fr);gap:4px 10px;align-items:start;padding:10px;border:1px solid var(--bd)!important;border-radius:12px!important;background:var(--sf);box-shadow:0 1px 2px rgba(25,27,23,.05)!important;font-family:var(--ff),system-ui,sans-serif;color:var(--tx);overflow:visible!important}
.kb-card.d-card:hover{border-color:var(--bd2)!important;box-shadow:0 4px 14px rgba(25,27,23,.09)!important}
.kb-card.d-card.urg{border-color:var(--b-rojo)!important;box-shadow:0 0 0 1px var(--b-rojo)!important}
.kb-card.d-card.unlinked{border-style:dashed!important;border-color:var(--b-mostaza)!important}
.kb-card.d-card.urg.unlinked{border-style:solid!important;border-color:var(--b-rojo)!important}
.d-ring{--p:0;--c:var(--st-prog);width:44px;height:44px;border-radius:50%;background:conic-gradient(var(--c) calc(var(--p)*1%),#eceee7 0);display:grid;place-items:center;grid-row:1/4}
.d-ring b{width:34px;height:34px;border-radius:50%;background:var(--sf);display:grid;place-items:center;align-content:center;font-size:11px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.d-ring b small{display:block;font-size:8px;font-weight:600;color:var(--mu);margin-top:1px}
.d-cli{font-weight:800;font-size:12.5px;line-height:1.25;letter-spacing:-.01em;word-break:break-word}
.d-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:10.5px;color:var(--mu)}
.d-meta .kb-ref{margin:0;font-size:9.5px}
.kb-card .kb-status-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;color:var(--sc);background:color-mix(in srgb,var(--sc) 12%,#fff)}
.kb-status-badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.d-desc{grid-column:2;font-size:10.5px;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-client{grid-column:2;display:flex;align-items:center;gap:6px;font-size:10.5px;flex-wrap:wrap;min-width:0}
.d-client .lk{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.d-client .lk.on{color:var(--acc)}.d-client .lk.off{color:var(--musd)}
.d-link{font:800 10px var(--ff),sans-serif;color:#fff;background:var(--b-mostaza);border:0;border-radius:999px;padding:2px 9px;cursor:pointer}
.d-res{display:inline-flex;align-items:center;gap:4px;font-weight:700;border-radius:999px;padding:1px 7px 1px 2px;background:var(--s2);color:var(--mu);white-space:nowrap}
.d-res.none{padding-left:7px;color:var(--mu2)}
.d-res.ok{background:var(--acc-l);color:var(--acc)}.d-res.warn{background:var(--musl);color:var(--musd)}
.d-res .lg{width:16px;height:16px;border-radius:4px;object-fit:contain;background:#fff}
.d-items{grid-column:1/3;display:flex;flex-direction:column;gap:3px;margin-top:4px}
.d-it{display:grid;grid-template-columns:26px 34px minmax(0,1fr) minmax(0,max-content);gap:6px;align-items:center;font-size:11px;background:var(--s2);border-radius:6px;padding:3px 6px;min-width:0}
/* Lo de la derecha de cada producto (stock, fabricación externa) nunca saca la línea de la tarjeta: se recorta con «…» */
.d-it>:last-child{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.d-it>:last-child>span,.d-it>span:last-child{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
/* Nada de la tarjeta se sale de ella, sea cual sea el ancho de la columna o la letra del equipo */
.kb-card.d-card>*{min-width:0;max-width:100%}
.d-mach,.d-cnt,.d-same,.d-warn{overflow:hidden}
.d-mach b{min-width:0;overflow:hidden;text-overflow:ellipsis}
.d-it b{text-align:right;font-variant-numeric:tabular-nums}
.d-it .th{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:5px;background:var(--sf)}
/* Sin foto del producto: un hueco discreto para que las filas sigan alineadas */
.d-it .th:empty::before,.td-pcard>.th:empty::before{content:'📦';font-size:12px;opacity:.3}
.td-pcard>.th:empty::before{font-size:32px}
/* Hora estimada de fin (la calcula Máquinas) */
.d-eta{grid-column:1/3;font-size:10.5px;font-weight:800;color:#1d4ed8;padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-eta span{font-weight:600;color:var(--mu)}.d-eta.q{color:var(--mu)}
.d-it .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-more{font-size:10px;color:var(--mu);padding:0 6px}
.zn{font-style:normal;font-size:9px;font-weight:700;color:var(--st-prog);background:var(--st-progl);border-radius:6px;padding:0 5px;margin-left:4px}
.d-s{font-size:9.5px;font-weight:800;padding:1px 6px;border-radius:999px;white-space:nowrap}
.d-s.ok{background:var(--acc-l);color:var(--acc)}.d-s.warn{background:var(--musl);color:var(--musd)}
.d-s.bad{background:var(--redl);color:var(--b-rojo)}.d-s.none{background:#eceee7;color:var(--mu)}
.d-mach{grid-column:1/3;display:flex;align-items:center;gap:6px;font-size:10.5px;border-radius:8px;padding:5px 8px;background:var(--sf);border:1px solid var(--bd);min-width:0}
.d-mach b{white-space:nowrap}.d-mach .sp{flex:1}.d-mach .avs{display:inline-flex}.d-mach .avs>span+span{margin-left:-6px}
.d-mach .pace{font-weight:800;white-space:nowrap}
.d-cnt{grid-column:1/3;display:flex;align-items:center;gap:8px;font-size:10.5px;padding:0 4px;white-space:nowrap}
.d-cnt>i{flex:1;height:5px;background:var(--bd);border-radius:4px;overflow:hidden;min-width:20px}.d-cnt>i>i{display:block;height:100%;background:var(--acc)}
.kb-card.d-card .kba.pl{background:var(--acc);border-color:var(--acc);color:#fff}
.pace.g{color:#15803d}.pace.o{color:#c2410c}.pace.r{color:var(--b-rojo)}
.d-mach.o{background:var(--musl);border-color:#f0dcb0}
.d-warn{grid-column:1/3;font-size:10px;font-weight:800;color:var(--b-rojo);background:var(--redl);border-radius:6px;padding:3px 7px}
.d-same{grid-column:1/3;display:flex;align-items:center;gap:6px;font-size:10.5px;background:#f3effd;color:#5b3fb5;border-radius:8px;padding:5px 8px}
.d-same .ag{margin-left:auto;font:800 10px var(--ff),sans-serif;background:#6d28d9;color:#fff;border:0;border-radius:999px;padding:2px 9px;cursor:pointer}
.d-foot{grid-column:1/3;display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:4px;font-size:10.5px;color:var(--mu)}
.d-foot .sp{flex:1}
.d-card .chip{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;white-space:nowrap}
.chip.ok{color:var(--acc);background:var(--acc-l)}.chip.bad{color:var(--b-rojo);background:var(--redl)}
.chip.st-prog{color:var(--st-prog);background:var(--st-progl)}
.chip.urg{background:var(--b-rojo);color:#fff}
.d-card .tag{font-size:10px;font-weight:600;color:var(--mu);white-space:nowrap}
.pr3,.pr2{font-size:10px;font-weight:800}.pr3{color:#ea580c}.pr2{color:#d97706}
.cmc{font-size:10px;font-weight:800;border-radius:6px;padding:1px 6px}
.cmc.of{background:var(--musl);color:var(--musd)}.cmc.pr{background:var(--st-progl);color:var(--st-prog)}
.cmc.of.new{background:var(--b-mostaza);color:#fff}.cmc.pr.new{background:var(--st-prog);color:#fff}
.kb-card.d-card .kb-acts{grid-column:1/3;display:flex;gap:5px;flex-wrap:wrap;margin:0;opacity:1;max-height:0;overflow:hidden;transition:max-height .15s,padding .15s;border-top:1px dashed transparent}
.kb-card.d-card:hover .kb-acts,.kb-card.d-card:focus-within .kb-acts{max-height:60px;padding-top:6px;border-top-color:var(--bd2)}
@media (hover:none){.kb-card.d-card .kb-acts{max-height:60px;padding-top:6px;border-top-color:var(--bd2)}}
.kb-card.d-card .kba{font:700 10.5px var(--ff),sans-serif;border:1px solid var(--bd);background:var(--sf);color:var(--tx);border-radius:7px;padding:3px 9px}
.kb-card.d-card .kba.ship{background:var(--acc);border-color:var(--acc);color:#fff}
.kb-card.d-card .kba.facturar{background:#f3effd;border-color:#ddd6fe;color:#6d28d9}

/* Tarea abierta: tres zonas */
#pl-detail .overlay:has(.td-d){padding:2vh 2vw}
.task-detail-modal.td-d{width:min(1500px,96vw)!important;max-width:none!important;height:94vh;max-height:94vh!important;flex-direction:column!important;border-radius:16px!important;overflow:hidden;background:var(--sf)}
.td-d .td-hdr{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 18px!important;border-bottom:1px solid var(--bd)!important;background:var(--bg)}
.td-d .td-hdr .sp{flex:1}
.td-d .td-close{width:34px;height:34px;border-radius:9px;border:1px solid var(--bd);background:var(--sf);cursor:pointer;font-size:15px;color:var(--tx)}
.td-d .td-hdr-t{min-width:0;max-width:440px}
.td-d .td-hdr-k{font-size:10.5px;color:var(--mu);font-weight:700;letter-spacing:.03em;text-transform:uppercase}
.td-d .td-title{font-size:17px;font-weight:800;letter-spacing:-.02em;cursor:pointer;line-height:1.25;border-radius:6px;padding:1px 3px;margin:0 -3px}
.td-d .td-title:hover{background:var(--s2)}
.td-d .td-title .ed{font-size:11px;color:var(--mu2)}
.td-d .cdd{min-width:150px}
.td-d .cdd-sel{background:var(--sf);border:1px solid var(--bd);border-radius:8px}
.td-d .cdd-sel.urg{color:var(--b-rojo);border-color:#efc4c3}
.td-d .td-asg{display:inline-flex;align-items:center;gap:6px;background:var(--sf);border:1px solid var(--bd);border-radius:999px;padding:3px 12px 3px 3px;font:600 12px var(--ff),sans-serif;cursor:pointer;color:var(--tx)}
.td-d .td-asg .mu{color:var(--mu);padding-left:8px}
.td-d .td-del{color:var(--b-rojo)!important}
.td-okbar{display:flex;gap:8px;flex-wrap:wrap;padding:8px 18px;border-bottom:1px solid var(--bd);background:var(--acc-l)}
.td-okbar>div{margin:0!important;padding:4px 10px!important;font-size:11.5px!important}
.td-grid{flex:1;min-height:0;display:grid!important;grid-template-columns:300px minmax(0,1fr) 260px;gap:0!important;padding:0!important;overflow:hidden!important}
.td-col{overflow-y:auto;min-height:0;padding:16px;display:flex;flex-direction:column;gap:16px}
.td-vis{background:#eceee7}
.td-off{background:var(--s2);border-left:1px solid var(--bd);gap:0}
.td-sec{display:flex;flex-direction:column;gap:6px;min-width:0}
.td-d .td-sec-title{display:flex;align-items:center;gap:8px;font-size:10.5px!important;font-weight:800!important;text-transform:uppercase;letter-spacing:.07em;color:var(--mu)!important;margin:0!important}
.td-d .td-sec-title .sp{flex:1}
.td-lnk{margin-left:auto;color:var(--acc);font-weight:700;text-transform:none;letter-spacing:0;cursor:pointer}
.td-empty{font-size:11.5px;color:var(--mu2)}
.td-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.td-blk{padding:12px 0;border-bottom:1px solid var(--bd);display:flex;flex-direction:column;gap:6px}
.td-blk small{color:var(--mu2);font-size:10.5px}
.td-blk .fi{width:100%;padding:8px 10px;border:1px solid var(--bd);border-radius:8px;font:13px var(--ff),sans-serif;background:var(--sf)}
.td-ld{border:0;color:var(--mu2);font-size:11px}
.td-rec{display:flex;gap:3px;min-width:0}
.td-rec .seg{min-width:72px;display:flex;flex-direction:column;gap:1px;padding:6px 8px;border-radius:7px;font-size:10.5px;font-weight:700;color:var(--sc);background:color-mix(in srgb,var(--sc) 12%,#fff);overflow:hidden}
.td-rec .seg span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.td-rec .seg small{font-weight:600;opacity:.85;font-size:9.5px}
.td-rec .seg.cur{outline:2px solid var(--sc)}
.td-plist{display:flex;flex-direction:column;gap:8px}
.td-d .td-hdr .cdd{width:auto;flex:0 0 auto}
/* Ficha de cada producto en la tarea abierta (opción B, 2026-10-20): foto grande y casillas que se tocan para cambiar */
.td-pcard{display:flex;gap:14px;border:1px solid var(--bd);border-radius:14px;padding:12px;background:var(--sf);min-width:0}
.td-pcard.done{background:var(--s2)}
.td-pcard>.th{width:96px;height:96px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--s2);border:1px solid var(--bd);border-radius:12px;overflow:hidden}
.td-pcard>.th img{border:0!important;border-radius:0!important}
.td-pmain{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px}
.td-ptop{display:flex;align-items:center;gap:10px;min-width:0}
.td-pnm{flex:1;min-width:0}
.td-pnm b{display:block;font-size:15px;font-weight:800;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.td-pnm small{display:block;font-size:11.5px;font-weight:600;color:var(--mu);margin-top:1px}
.td-pnm small.bad{color:#a83a37}
.td-ptop .x{background:none;border:0;color:var(--mu);cursor:pointer;font-size:18px;line-height:1;padding:2px 4px;border-radius:6px}
.td-ptop .x:hover{color:var(--b-rojo);background:var(--redl)}
.td-pctl{display:flex;align-items:center;gap:6px;flex-shrink:0}
.td-pctl .tm{font-size:12.5px;font-weight:700;color:var(--st-prog);white-space:nowrap;font-variant-numeric:tabular-nums}
.td-pctl .tm.ok{color:var(--acc-d)}
.td-pctl .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.td-pctl .dot.green{background:var(--b-verde)}.td-pctl .dot.orange{background:var(--b-mostaza)}.td-pctl .dot.red{background:var(--b-rojo)}
.td-pctl .b{border:0;border-radius:8px;padding:7px 13px;font:700 12.5px var(--ff),sans-serif;cursor:pointer;white-space:nowrap}
.td-pctl .b.pr{background:var(--acc);color:#fff}.td-pctl .b.pr:hover{background:var(--acc-d)}
.td-pctl .b.ok{background:var(--acc-l);color:var(--acc-d)}
.td-pctl .b.bl{background:var(--st-progl);color:var(--st-prog)}
.td-pctl .b.gh{background:none;color:var(--mu)}
.td-ptiles{display:flex;flex-wrap:wrap;gap:8px}
.td-tile{flex:1 1 120px;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;border:1px solid var(--bd);background:var(--sf);border-radius:10px;padding:8px 11px;min-height:60px;box-sizing:border-box;font-family:var(--ff),sans-serif;color:var(--tx)}
button.td-tile{cursor:pointer}
button.td-tile:hover{border-color:var(--bd2);background:var(--s2)}
.td-tile .k{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--mu)}
.td-tile .v{font-size:15px;font-weight:800;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.td-tile .s{font-size:11.5px;font-weight:600;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.td-tile.tipo .v{color:var(--st-prog)}
.td-tile.ok .v{color:var(--acc-d)}
.td-tile.warn{background:var(--musl);border-color:#f0dcb0}.td-tile.warn .v,.td-tile.warn .s{color:#7d560c}
.td-tile.bad{background:var(--redl);border-color:#efc4c3}.td-tile.bad .v,.td-tile.bad .s{color:#a83a37}
.td-tile.empty{border:1.5px dashed var(--b-mostaza);background:#fffaf0}.td-tile.empty .v{color:#7d560c}
@media (max-width:600px){
  .td-pcard{flex-wrap:wrap}
  .td-pcard>.th{width:64px;height:64px}
  .td-pcard>.th img{width:64px!important;height:64px!important}
  .td-ptop{flex-wrap:wrap}
  .td-pctl{order:3;width:100%}
  .td-tile{flex-basis:calc(50% - 4px)}
}
.td-surt{margin-top:6px;width:100%;background:var(--sf);border:1px dashed var(--bd2);border-radius:8px;padding:6px;font:600 11px var(--ff),sans-serif;color:var(--mu);cursor:pointer}
.td-ship{font-size:11.5px;background:var(--s2);border:1px solid var(--bd);border-radius:8px;padding:7px 9px}
.td-ship .mono{font-family:'Space Mono',monospace;color:var(--st-prog);font-size:11px}
.td-ship .nt{margin-top:4px;color:var(--mu)}
.td-client{background:var(--sf);border:1px solid var(--bd);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px}
.td-client.unl{border-style:dashed;border-color:var(--b-mostaza);background:var(--musl)}
.td-client.unl small{color:var(--musd)}
.td-cl-h{display:flex;align-items:center;gap:8px}
.td-cl-av{width:32px;height:32px;border-radius:50%;background:var(--acc);color:#fff;display:grid;place-items:center;font-weight:800;font-size:11px;flex-shrink:0}
.td-cl-n{flex:1;min-width:0}.td-cl-n b{display:block;font-size:12.5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.td-cl-n small{display:block;color:var(--mu);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.td-tog{display:flex;align-items:center;gap:8px;font:700 11.5px var(--ff),sans-serif;background:none;border:0;padding:0;cursor:pointer;color:var(--b-rojo)}
.td-tog.on{color:var(--acc)}
.td-tog .sw{width:30px;height:17px;border-radius:999px;background:#e7b7b6;position:relative;flex-shrink:0}
.td-tog .sw::after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;transition:left .15s}
.td-tog.on .sw{background:var(--acc)}.td-tog.on .sw::after{left:15px}
.td-same{display:flex;flex-direction:column;gap:2px}
.td-sl{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:6px;align-items:center;font-size:11px;padding:4px 6px;border-radius:6px;cursor:pointer}
.td-sl:hover{background:var(--sf)}
.td-sl .dot{width:7px;height:7px;border-radius:50%;background:currentColor}
.td-sl .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.td-sl small{color:var(--mu);font-size:10px}
.td-sl.more{color:var(--mu);cursor:default;display:block}
.td-grp{margin-top:6px;width:100%;justify-content:center;color:#6d28d9!important;border-color:#ddd6fe!important}
.td-tgt{font-size:11.5px}.td-tgt b.g{color:#15803d}.td-tgt b.o{color:#c2410c}.td-tgt b.r{color:var(--b-rojo)}
.td-off .chip{display:inline-flex;font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;text-transform:none;letter-spacing:0}
.td-d [data-tags-sec]{margin:0!important}
@media (max-width:1100px){
  .td-grid{display:block!important;overflow-y:auto!important}
  .td-col{overflow:visible;min-height:auto}
  .td-col+.td-col{border-top:1px solid var(--bd)}
  .td-off{border-left:0;border-top:1px solid var(--bd)}
  .td-two{grid-template-columns:1fr}
  .task-detail-modal.td-d{width:100vw!important;height:100%;max-height:100%!important;border-radius:0!important}
  #pl-detail .overlay:has(.td-d){padding:0}
}

/* ── Ventana de envío (diseño D) ───────────────────────── */
.modal.sh-d{max-width:620px!important;width:96vw;border-radius:16px!important}
.sh-d .sh-steps{display:flex;gap:6px;padding:10px 18px;border-bottom:1px solid var(--bd);background:var(--bg);font-size:11px;font-weight:700;color:var(--mu2)}
.sh-d .sh-steps span{flex:1;padding:5px 8px;border-radius:7px;background:var(--s2);text-align:center}
.sh-d .sh-steps .done{color:var(--acc);background:#e3f3ea}
.sh-d .sh-steps .on{color:#fff;background:var(--acc)}
.sh-d .sh-k{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--mu);margin-bottom:6px}
.sh-d .sh-top{display:grid;grid-template-columns:1fr 150px;gap:14px;margin-bottom:12px}
.sh-d .sh-t{font-size:14px;font-weight:800;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-d .sh-items{display:flex;flex-direction:column;gap:4px;max-height:150px;overflow:auto}
.sh-d .sh-it{display:flex;align-items:center;gap:8px;font-size:12px;border:1px solid var(--bd);border-radius:8px;padding:5px 9px;background:var(--sf)}
.sh-d .sh-it b{min-width:34px;text-align:right;font-variant-numeric:tabular-nums}
.sh-d .sh-it span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-d .sh-it.pend{border-style:dashed;background:#fdf3e1}
.sh-d .sh-it small{color:var(--b-mostaza,#9a6a10);font-size:10px}
.sh-d .sh-who{border:1px solid var(--bd);border-radius:10px;padding:10px;background:var(--bg);display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.sh-d .sh-who b{font-size:14px}
.sh-d .sh-warn{font-size:11px;color:var(--b-rojo);font-weight:600;margin-bottom:6px}
.sh-d .sh-fotos{margin-bottom:12px}
.sh-d .sh-same{font-size:12px;background:#fdf3e1;border:1px solid #f0dcb0;border-radius:9px;padding:8px 11px;margin-bottom:12px}
.sh-d .sh-prev{border:1px solid var(--bd);border-radius:9px;padding:8px 11px;margin-bottom:12px;background:var(--bg)}
.sh-d .sh-pr{display:flex;gap:10px;font-size:11px;padding:3px 0;border-top:1px solid var(--bd)}
.sh-d .sh-pr:first-of-type{border-top:0}
.sh-d .sh-pr span:first-child{flex:1}
.sh-d .sh-pr small{color:var(--mu2)}
.sh-d .sh-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.sh-d .sh-opt{display:flex;gap:10px;align-items:flex-start;text-align:left;border:1.5px solid var(--bd);border-radius:11px;padding:12px;background:var(--sf);cursor:pointer;font:inherit;color:var(--tx);transition:border-color .15s,box-shadow .15s}
.sh-d .sh-opt:hover{border-color:var(--acc);box-shadow:0 2px 10px rgba(0,0,0,.06)}
.sh-d .sh-opt .ic{font-size:20px;line-height:1}
.sh-d .sh-opt b{display:block;font-size:13px}
.sh-d .sh-opt small{display:block;font-size:11px;color:var(--mu);margin-top:2px}
.sh-d .sh-opt.final{border-color:var(--acc);background:#e9f6ef}
.sh-d .sh-opt.final b{color:var(--acc)}
.sh-d .sh-opt.pend b{color:#9a6a10}
@media(max-width:640px){.sh-d .sh-top,.sh-d .sh-opts{grid-template-columns:1fr}}

/* ── Almacén (diseño D): avisos primero ────────────────── */
.alm-alerts .d-now{padding:12px 20px 0}
.alm-alerts .alm-now:has(.d-lane:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}
.d-lane.b .n{color:#2f6fb0}
.d-lane.on{border-color:var(--musd,#c99a2e);box-shadow:0 0 0 2px rgba(201,154,46,.18)}
.alm-d .alm-hdr{background:var(--sf)}
.alm-d .alm-hdr>span:first-of-type{font-size:17px!important;font-weight:800!important;letter-spacing:-.02em}
.alm-d .alm-k{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--mu);margin:2px 0 8px}
.alm-d .alm-hdr select,.alm-d .alm-hdr input[type=search]{border-radius:9px!important;background:var(--sf)!important;font-family:var(--ff),sans-serif!important}
@media (max-width:900px){.alm-d .alm-body{flex-direction:column;overflow:auto!important}.alm-d .alm-side{width:auto!important;flex:0 0 auto!important}}

/* ── Resto de la app (ventas, compras, contactos, informes, empleados) con el lenguaje de D ── */
body:has(>main){
  --green:var(--acc);--green-bg:var(--acc-l);--green-bd:#bfe3cd;
  --red:var(--b-rojo);--red-bg:#fbecea;--red-bd:#efc4c3;
  --orange:#9a6a10;--orange-bg:#fdf3e1;--orange-bd:#f0dcb0;
  --purple:#6d5bd0;--purple-bg:#efedfb;--purple-bd:#d9d3f5;
  --acc-l:#e6f5ec;
}
/* Títulos de bloque: pequeños, en mayúsculas, como «Recorrido» o «Mismo cliente» */
main .sec{font-size:10.5px!important;font-weight:800!important;letter-spacing:.07em!important;color:var(--mu)!important;margin:22px 0 8px!important}
main th{font-size:10.5px!important;font-weight:800!important;letter-spacing:.07em!important;padding:10px 12px!important}
main td{padding:10px 12px}
main tr.click:hover td{background:#f3f7f1!important}
/* Estados como chips redondos con un punto, igual que en el tablero */
main .badge{border-radius:999px!important;font-weight:700!important;font-size:10.5px!important;padding:2px 9px 2px 8px!important;display:inline-flex!important;align-items:center;gap:5px}
main .badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}
main .b-borrador,main .b-pendiente{background:#f1f2ee!important;color:#5d6258!important;border-color:var(--bd)!important}
main .b-enviado,main .b-en_produccion,main .b-emitida{background:var(--st-progl)!important;color:var(--st-prog)!important;border-color:#c9dcef!important}
main .b-aceptado,main .b-entregado,main .b-servido,main .b-cobrada,main .b-pagada,main .b-ok{background:var(--acc-l)!important;color:var(--acc)!important;border-color:#bfe3cd!important}
main .b-rechazado,main .b-anulado,main .b-mal{background:var(--redl)!important;color:var(--b-rojo)!important;border-color:#efc4c3!important}
/* Cifras de arriba como los contadores «qué toca hoy»: número grande y de color */
main .stats{gap:10px}
main .stat{border-radius:12px!important;padding:12px 16px!important}
main .stat::before{display:none}
main .stat b{font-size:24px!important;letter-spacing:-.03em!important;font-variant-numeric:tabular-nums}
main .stat:nth-child(4n+1) b{color:var(--acc)}
main .stat:nth-child(4n+2) b{color:var(--st-prog)}
main .stat:nth-child(4n+3) b{color:var(--musd)}
main .stat:nth-child(4n+4) b{color:var(--tx)}
main .aviso{border-radius:10px!important}
main .ok-box{border-radius:10px!important}
main .empty{color:var(--mu2)!important}
main .doc-head .code{font-size:17px!important}
main .ship{border-radius:10px!important}
.toast{border-radius:10px!important;background:var(--grafito)!important}
.toast.err{background:var(--b-rojo)!important}

/* ── Móvil y tablet (pantalla táctil) ──
   16px en los campos: con menos, el iPhone y el iPad hacen zoom al tocar cada campo.
   Botones de 44px de alto como mínimo para el dedo. Sin el menú del sistema al mantener pulsado
   (la pulsación larga abre el menú de acciones de la app). */
@media (pointer:coarse){
  input,select,textarea,.filter-sel,.filter-inp,.fi{font-size:16px!important}
  .btn,.bm-btn,nav.tabs button,.vtog-btn{min-height:44px}
  .bm-btn{min-width:44px}
  .btn-s{min-height:36px;padding-left:12px;padding-right:12px}
  .kb-card,tr[data-doc],tr.click{-webkit-touch-callout:none}
}
/* Almacén entero en el móvil: todo en una columna que se desplaza, filtros a lo ancho y filas que bajan de línea */
@media (max-width:640px){
  .alm-d{overflow-y:auto!important;height:100%}
  .alm-d .alm-hdr{padding:12px 14px 10px!important}
  .alm-d .alm-hdr>div{margin-left:0!important;width:100%}
  .alm-d .alm-hdr #stock-search-inp{width:100%!important;flex:1 1 100%}
  .alm-d .alm-hdr select{flex:1 1 calc(50% - 8px);min-width:0}
  .alm-alerts .alm-now,.alm-alerts .alm-now:has(.d-lane:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .alm-alerts .d-now{padding:10px 14px 0}
  .alm-d .alm-body{flex:none!important;overflow:visible!important;padding:12px 14px 90px!important}
  .alm-d .alm-body>div{overflow:visible!important;flex:none!important;width:auto!important}
  .alm-d [data-ctx-art]{flex-wrap:wrap;row-gap:6px}
  .alm-d [data-ctx-art]>div:nth-child(1),.alm-d [data-ctx-art]>img+div{flex:1 1 calc(100% - 50px)!important}
  .alm-d [data-ctx-art]>div:last-child{min-width:0!important;margin-left:auto}
}

/* ── Recepción de pedidos a proveedor (Almacén › Recibir pedidos, ventana Recibir y lista de pedidos) ── */
.rc{padding:20px 24px 90px;height:100%;overflow-y:auto;background:var(--bg)}
.rc-hdr{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.rc-hdr h2{font-size:20px;font-weight:800;letter-spacing:-.02em;margin:0}
.rc-hdr .rc-k{display:block;font-size:10.5px;font-weight:800;color:var(--mu);text-transform:uppercase;letter-spacing:.07em}
.rc-hdr .sp{flex:1}
.rc-hdr a.rc-b{text-decoration:none}
.rc .rc-sec{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--mu);margin:4px 0 8px}
.rc-grid .rc-po{margin-bottom:0}
.rc-now{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}
.rc-now .d-lane{cursor:default}
.rc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.rc-card{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow);text-align:left;font:inherit;color:inherit;width:100%}
.rc-card:hover{border-color:var(--bd2);box-shadow:0 2px 10px rgba(25,27,23,.07)}
.rc-card .rc-t{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rc-card .rc-prov{font-size:15.5px;font-weight:800;letter-spacing:-.01em;flex:1;min-width:0}
.rc-card .rc-sub{font-size:12px;color:var(--mu)}
.rc-card .rc-lns{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--bd);padding-top:7px}
.rc-card .rc-ln{display:flex;gap:8px;font-size:12px;color:var(--mu)}.rc-card .rc-ln b{color:var(--tx);font-weight:700;min-width:44px;text-align:right;font-variant-numeric:tabular-nums}
.rc-card .rc-ln span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-bar{height:6px;background:var(--bd);border-radius:3px;overflow:hidden}.rc-bar i{display:block;height:100%;background:var(--acc)}
.rc-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.rc-go{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;border:none;border-radius:10px;background:var(--acc);color:#fff;font:800 15px var(--ff),sans-serif;cursor:pointer;box-shadow:0 1px 3px rgba(27,138,87,.25)}
.rc-go:hover{background:var(--acc-d)}
.rc-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;white-space:nowrap;background:var(--gray-bg);color:var(--mu)}
.rc-chip.az{background:#e3edf8;color:#1d4f91}.rc-chip.am{background:#fbf2e0;color:#8a6310}.rc-chip.ve{background:var(--acc-l);color:var(--acc-d)}.rc-chip.ro{background:#fbeceb;color:#a8322f}
.rc-empty{text-align:center;color:var(--mu);padding:56px 20px;background:var(--sf);border:1px dashed var(--bd2);border-radius:14px}
.rc-empty b{display:block;font-size:15px;color:var(--tx);margin:8px 0 4px}
.rc-foot{margin-top:16px;text-align:center}
/* Ventana (Recibir, Pedidos a proveedor) */
.rc-ov{position:fixed;inset:0;background:rgba(20,22,18,.5);display:flex;align-items:center;justify-content:center;padding:16px}
.rc-dlg{background:var(--sf);border-radius:16px;width:100%;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 20px 50px rgba(0,0,0,.3);overflow:hidden;font-family:var(--ff),sans-serif;color:var(--tx)}
.rc-dh{padding:16px 20px 12px;border-bottom:1px solid var(--bd);display:flex;align-items:flex-start;gap:10px}
.rc-dh .rc-dt{flex:1;min-width:0}.rc-dh .rc-dt b{display:block;font-size:17px;font-weight:800;letter-spacing:-.01em}
.rc-dh .rc-dt small{display:block;font-size:12px;color:var(--mu);margin-top:3px;line-height:1.45}
.rc-x{border:none;background:none;font-size:22px;line-height:1;cursor:pointer;color:var(--mu);width:36px;height:36px;border-radius:8px;flex-shrink:0}
.rc-x:hover{background:var(--s2);color:var(--tx)}
.rc-db{padding:14px 20px;overflow-y:auto;flex:1}
.rc-df{display:flex;gap:8px;align-items:center;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--bd);flex-wrap:wrap}
.rc-df .sp{flex:1;font-size:12px;color:var(--mu)}
.rc-tools{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.rc-tools input{flex:1;min-width:150px;padding:10px 12px;border:1px solid var(--bd);border-radius:8px;font-size:14px;background:var(--sf)}
.rc-seg{display:inline-flex;background:#e7e9e2;padding:3px;border-radius:10px;gap:2px}
.rc-seg button{border:none;background:none;font:600 12px var(--ff),sans-serif;padding:6px 12px;border-radius:8px;cursor:pointer;color:#4d5249}
.rc-seg button:hover{background:var(--sf);color:var(--tx)}
.rc-b{border:1px solid var(--bd);background:var(--sf);color:var(--tx);border-radius:8px;padding:9px 14px;font:600 13px var(--ff),sans-serif;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.rc-b:hover{border-color:var(--bd2)}.rc-b.p{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:800}.rc-b.p:hover{background:var(--acc-d)}
.rc-b.r{color:#a8322f;border-color:#f3c9c4}.rc-b.s{padding:6px 10px;font-size:12px}
.rc-row{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--bd)}
.rc-row:last-child{border-bottom:none}
.rc-ck{width:30px;height:30px;border-radius:50%;border:2px solid var(--bd2);background:var(--sf);cursor:pointer;flex-shrink:0;display:grid;place-items:center;color:#fff;font-size:15px;font-weight:800;padding:0}
.rc-row.ok .rc-ck{background:var(--acc);border-color:var(--acc)}
.rc-row .nm{flex:1;min-width:0}.rc-row .nm b{display:block;font-weight:700;font-size:13.5px;word-break:break-word}
.rc-row .nm small{display:block;font-size:11.5px;color:var(--mu);margin-top:1px}
.rc-row:not(.ok) .nm b{color:var(--mu)}
.rc-row.hit{animation:rcHit .9s ease}
@keyframes rcHit{0%{background:var(--acc-l)}100%{background:transparent}}
.rc-qty{display:flex;align-items:center;border:1px solid var(--bd);border-radius:9px;overflow:hidden;flex-shrink:0;background:var(--sf)}
.rc-qty button{border:none;background:var(--s2);width:34px;height:36px;font-size:17px;font-weight:700;cursor:pointer;color:var(--tx)}
.rc-qty button:hover{background:var(--bd)}
.rc-qty input{width:54px;border:none!important;border-radius:0!important;text-align:center;font-weight:800;font-size:14px;padding:0;height:36px;-moz-appearance:textfield;box-shadow:none!important;outline:none!important}
.rc-qty input::-webkit-outer-spin-button,.rc-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.rc-po{border:1px solid var(--bd);border-radius:12px;padding:12px 14px;margin-bottom:8px;background:var(--sf)}
.rc-po .rc-t{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rc-po .rc-prov{font-weight:800;font-size:14px}
.rc-po .rc-sub{margin-left:auto;font-size:11.5px;color:var(--mu)}
@media (max-width:640px){
  .rc{padding:14px 14px 90px}
  .rc-now{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.rc-now .d-lane{padding:8px 10px;gap:8px;flex-direction:column;align-items:flex-start}
  .rc-now .d-lane .n{font-size:20px}.rc-now .d-lane .s{display:none}
  .rc-grid{grid-template-columns:1fr}
  .rc-ov{padding:0;align-items:flex-end}
  .rc-dlg{border-radius:16px 16px 0 0;max-height:96vh}
  .rc-df .rc-b{flex:1;justify-content:center}.rc-df .sp{flex:1 1 100%;order:-1}
  .rc-ck{width:34px;height:34px}
  .rc-qty button{width:40px;height:40px}.rc-qty input{height:40px}
}
body:has(>div[style*="c62828"]) .rc-ov{padding-bottom:30px}
@media (max-width:640px){body:has(>div[style*="c62828"]) .rc-ov{padding-bottom:40px}}

/* ── Producción › Nueva tarea ───────────────────────────────────────────── */
.modal.nw-dlg{max-width:min(600px,96vw)!important;border-radius:16px!important;overflow:hidden;border:0;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.nw-dlg .nw-k,.ip-dlg .nw-k{display:block;font-size:10.5px;font-weight:800;color:var(--b-oliva);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}
.nw-body{padding:16px 20px!important;gap:18px!important;background:var(--sf)}
.nw-sec{display:flex;flex-direction:column;gap:8px}
.nw-sh{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.nw-st{flex:1;font-size:11px;font-weight:800;color:var(--mu);text-transform:uppercase;letter-spacing:.07em}
.nw-st em{font-style:normal;font-weight:600;text-transform:none;letter-spacing:0;color:var(--mu2)}
.nw-n{font-size:11.5px;color:var(--mu2);font-weight:600}
.nw-seg button.on{background:var(--sf);color:var(--tx);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.nw-dlg .fi{background:var(--sf)!important;border:1px solid var(--bd)!important;border-radius:9px!important}
.nw-dlg .nw-in{padding:11px 13px!important;font-size:14px!important}
.nw-search{display:flex;flex-direction:column;gap:4px}
.nw-res{background:var(--sf);border:1px solid var(--bd);border-radius:10px;max-height:190px;overflow-y:auto;box-shadow:0 6px 18px rgba(25,27,23,.08)}
.nw-res:empty{display:none}
.nw-res > button:last-child{border-bottom:0!important}
.nw-res > button:hover{background:var(--acc-l)!important}
.nw-link{align-self:flex-start;border:0;background:none;color:var(--acc);font:700 12.5px var(--ff),sans-serif;padding:4px 2px;cursor:pointer}
.nw-link:hover{text-decoration:underline}
.nw-pick{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:var(--s2);border:1px solid var(--bd);border-radius:10px;padding:8px 10px}
.nw-pick.ok{background:var(--acc-l);border-color:#bfe3cf}
.nw-pt{flex:1;min-width:0}
.nw-pt b{display:block;font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nw-pt small{display:block;font-size:11.5px;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nw-av{width:32px;height:32px;border-radius:50%;background:var(--acc);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px;flex-shrink:0}
.nw-img{width:38px;height:38px;border-radius:8px;object-fit:cover;flex-shrink:0;background:#eceee7;display:grid;place-items:center;font-size:17px}
.nw-q{border:0;background:none;color:var(--mu);width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:14px;flex-shrink:0}
.nw-q:hover{background:var(--sf);color:var(--b-rojo)}
.nw-lines{display:flex;flex-direction:column;gap:10px}
.nw-line{background:var(--s2);border:1px solid var(--bd);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px}
.nw-lh{display:flex;align-items:flex-start;gap:10px}
.nw-lh > .nw-search{flex:1;min-width:0}
.nw-num{width:24px;height:24px;border-radius:50%;background:var(--grafito);color:#fff;display:grid;place-items:center;font-size:11.5px;font-weight:800;flex-shrink:0;margin-top:9px}
.nw-lh .nw-pick + .nw-del,.nw-lh .nw-search + .nw-del{margin-top:4px}
.nw-grid{display:grid;grid-template-columns:110px 110px minmax(0,1fr);gap:10px;padding-left:34px}
.nw-grid.sin-dis{grid-template-columns:110px minmax(0,1fr)}
.nw-f{display:flex;flex-direction:column;gap:4px;min-width:0}
.nw-f span{font-size:10.5px;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:.06em}
.nw-f .fi{padding:8px 10px!important;font-size:13.5px!important;font-weight:700}
.nw-add{border:1.5px dashed var(--bd2);background:transparent;color:var(--mu);border-radius:10px;padding:10px;font:700 13px var(--ff),sans-serif;cursor:pointer}
.nw-add:hover{border-color:var(--acc);color:var(--acc);background:var(--acc-l)}
.rc-b.nw-ok{background:var(--acc);border-color:var(--acc);color:#fff;box-shadow:0 1px 3px rgba(27,138,87,.25);padding:9px 18px}
.rc-b.nw-ok:hover{background:var(--acc-d);border-color:var(--acc-d)}
.rc-b.nw-ok:disabled{opacity:.6;cursor:default}
@media (max-width:600px){
  #nw-ov{align-items:flex-end!important;padding:0!important}
  .modal.nw-dlg{max-width:none!important;width:100%;max-height:94vh!important;border-radius:16px 16px 0 0!important}
  .nw-body{padding:14px 16px!important}
  .nw-grid,.nw-grid.sin-dis{grid-template-columns:1fr 1fr;padding-left:0}
  .nw-grid .nw-col{grid-column:1/-1}
  .nw-dlg .fi,.nw-dlg .nw-in{font-size:16px!important}
  .nw-dlg .rc-df .rc-b{flex:1;justify-content:center;min-height:44px}
  .nw-dlg .rc-df .sp{display:none}
}

/* ── Historial de tareas y Auditoría de cambios (historial.js) ──
   Páginas a pantalla completa por encima del tablero, con la misma cabecera, filtros y fichas que Recepción. */
.hz-page{position:fixed;inset:0;z-index:700;background:var(--bg);overflow-y:auto;color:var(--tx);font-family:var(--ff),system-ui,sans-serif;-webkit-overflow-scrolling:touch}
@media (min-width:1100px){html.bm-fijo .hz-page{left:240px}}
.hz-in{max-width:1120px;margin:0 auto;padding:18px 24px 64px}
.hz-top{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.hz-back{border:1px solid var(--bd);background:var(--sf);color:var(--mu);font:700 13px var(--ff),sans-serif;border-radius:8px;padding:8px 12px;cursor:pointer;flex-shrink:0;min-height:38px}
.hz-back:hover{color:var(--tx);border-color:var(--bd2)}
.hz-tt{flex:1;min-width:0}
.hz-k{display:block;font-size:10.5px;font-weight:800;color:var(--mu);text-transform:uppercase;letter-spacing:.07em}
.hz-tt h2{font-size:22px;font-weight:800;letter-spacing:-.02em;margin:1px 0 0}
.hz-tt small{display:block;font-size:12.5px;color:var(--mu);margin-top:3px;line-height:1.45}
.hz-acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.hz-acts .btn,.hz-ov .rc-df .btn-ghost,.hz-more .btn{border:1px solid var(--bd)!important;background:var(--sf)!important;color:var(--tx)!important;font-weight:700}
.hz-acts .btn:hover,.hz-ov .rc-df .btn-ghost:hover,.hz-more .btn:hover{border-color:var(--bd2)!important}
.hz-menu{display:none}
@media (max-width:1099px){.hz-menu{display:block}}
html:not(.bm-fijo) .hz-menu{display:block}
.hz-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.hz-q{flex:1;min-width:200px;padding:9px 12px;border:1px solid var(--bd);border-radius:8px;font-size:14px;background:var(--sf);color:var(--tx)}
.hz-sel{max-width:220px;cursor:pointer}
.hz-seg button.on{background:var(--sf);color:var(--tx);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.hz-date{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--mu)}
.hz-date input{padding:6px 8px;border:1px solid var(--bd);border-radius:8px;background:var(--sf);font-size:13px}
.hz-pill{display:inline-flex;align-items:center;gap:6px;background:var(--acc-l);color:var(--acc-d);border-radius:999px;padding:4px 6px 4px 12px;font-size:12px}
.hz-pill button{border:0;background:rgba(27,138,87,.14);color:var(--acc-d);width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:14px;line-height:1}
.hz-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:6px 0 18px}
.hz-kpi{position:relative;background:var(--sf);border:1px solid var(--bd);border-radius:12px;padding:12px 16px 12px 18px;box-shadow:var(--shadow);overflow:hidden;min-width:0}
.hz-kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--b-verde)}
.hz-kpi:nth-child(2)::before{background:var(--b-oliva)}.hz-kpi:nth-child(3)::before{background:var(--b-mostaza)}.hz-kpi:nth-child(4)::before{background:var(--b-rojo)}
.hz-kpi b{display:block;font-size:24px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hz-kpi span{display:block;font-size:12px;font-weight:700;color:var(--mu)}
.hz-kpi small{display:block;font-size:11px;color:var(--mu2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hz-day{position:sticky;top:0;z-index:2;padding:12px 0 6px;background:linear-gradient(var(--bg) 70%,transparent)}
.hz-day span{font-size:11px;font-weight:800;color:var(--mu);text-transform:uppercase;letter-spacing:.07em}
.hz-more{text-align:center;padding:16px}
.hz-av{width:30px;height:30px;border-radius:50%;color:#fff;display:inline-grid;place-items:center;font-size:11px;font-weight:800;flex-shrink:0;position:relative;overflow:hidden}
.hz-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hz-av.sm{width:22px;height:22px;font-size:9px}

/* Auditoría: una línea por cambio */
.hz-tl{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:4px 16px;box-shadow:var(--shadow)}
.hz-tl .hz-day{background:var(--sf);margin:0 -16px;padding:12px 16px 6px;border-top:1px solid var(--bd)}
.hz-tl .hz-day:first-child{border-top:0}
.hz-ev{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--bd)}
.hz-day + .hz-ev{border-top:0}
.hz-time{font:600 11.5px 'Space Mono',ui-monospace,monospace;color:var(--mu);width:42px;flex-shrink:0;padding-top:7px}
.hz-evb{flex:1;min-width:0}
.hz-l1{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-height:30px}
.hz-who{font-size:13.5px;font-weight:800}
.hz-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;background:var(--gray-bg);color:var(--mu);white-space:nowrap}
.hz-chip.t-estado,.hz-chip.t-produccion{background:var(--st-progl);color:var(--st-prog)}
.hz-chip.t-productos,.hz-chip.t-stock{background:var(--musl);color:var(--musd)}
.hz-chip.t-cliente,.hz-chip.t-boceto{background:#efeaf8;color:#5b4a9e}
.hz-chip.t-creada,.hz-chip.t-envio{background:var(--acc-l);color:var(--acc-d)}
.hz-chip.t-borrada{background:var(--redl);color:#a8322f}
.hz-chip.t-comentario{background:#eef3e3;color:#55712a}
.hz-obj{border:0;background:none;padding:0;font:700 13px var(--ff),sans-serif;color:var(--tx);cursor:pointer;text-align:left;text-decoration:underline;text-decoration-color:var(--bd2);text-underline-offset:3px;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.hz-obj:hover{color:var(--acc);text-decoration-color:var(--acc)}
.hz-obj.plain{text-decoration:none;cursor:default}.hz-obj.plain:hover{color:var(--tx)}
a.hz-obj{display:inline}
.hz-area{font-size:11px;color:var(--mu2);font-weight:600}
.hz-when{font-size:11px;color:var(--mu2);margin-left:auto}
.hz-chs{display:flex;flex-direction:column;gap:3px;margin-top:3px}
.hz-ch{font-size:12.5px;line-height:1.45;color:var(--tx);word-break:break-word}
.hz-ch .k{color:var(--mu);font-weight:600;margin-right:6px}
.hz-ch .k::after{content:":"}
.hz-ch s{color:var(--mu);text-decoration-color:rgba(202,75,72,.6)}
.hz-ch i{font-style:normal;color:var(--mu2);margin:0 6px}
.hz-ch b{font-weight:700}
.hz-ch b.hz-new::before{content:"+ ";color:var(--acc)}
.hz-ch em{font-style:normal;color:var(--mu2);font-size:11.5px}
.hz-ch .hz-priv{color:var(--mu)}
.hz-ch.more{color:var(--mu2);font-size:11.5px}
.hz-det{font-size:12px;color:var(--mu);margin-top:3px;word-break:break-word}
.hz-mini{display:flex;flex-direction:column;gap:8px}
.hz-mi{display:flex;gap:8px;align-items:flex-start}
.hz-mib{flex:1;min-width:0}
.hz-mi .hz-l1{min-height:22px;gap:6px}
.hz-mi .hz-l1 b{font-size:12.5px}
.hz-mi .hz-ch{font-size:12px}
button.td-lnk{border:0;background:none;padding:0;font:inherit;font-size:11px}

/* Historial: una ficha por tarea terminada */
.hz-hl{display:flex;flex-direction:column;gap:6px}
.hz-h{display:flex;align-items:center;gap:12px;background:var(--sf);border:1px solid var(--bd);border-radius:12px;padding:10px 14px 10px 0;cursor:pointer;box-shadow:var(--shadow);overflow:hidden;outline-offset:2px}
.hz-h:hover{border-color:var(--bd2);box-shadow:0 2px 10px rgba(25,27,23,.07)}
.hz-h:focus-visible{outline:2px solid var(--acc)}
.hz-hbar{align-self:stretch;width:4px;margin:-10px 0;background:var(--bd2);flex-shrink:0}
.hz-hbar.ve{background:var(--acc)}.hz-hbar.am{background:var(--b-mostaza)}.hz-hbar.az{background:var(--st-prog)}
.hz-hm{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.hz-ht{font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hz-hc{font-size:12px;font-weight:700;color:var(--acc-d);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hz-hmeta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:1px}
.hz-u{font-size:11.5px;color:var(--mu)}
.hz-mono{font:500 11px 'Space Mono',ui-monospace,monospace;color:var(--mu)}
.hz-hr{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0;text-align:right}
.hz-dur{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.hz-op{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700}
.hz-op em{color:var(--mu2);font-style:normal}
.hz-hr small{font-size:11px;color:var(--mu2)}
.hz-grp{background:var(--s2);border:1px solid var(--bd);border-radius:14px;padding:12px;margin-bottom:14px}
.hz-gh{display:flex;align-items:center;gap:10px;margin:0 2px 10px}
.hz-gh b{display:block;font-size:14.5px;font-weight:800}
.hz-gh small{display:block;font-size:12px;color:var(--mu)}

/* Ficha de una tarea del historial */
.rc-ov.hz-ov{z-index:900}
.hz-dlg{max-width:640px}
.hz-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}
.hz-grid > div{background:var(--s2);border:1px solid var(--bd);border-radius:10px;padding:8px 12px;min-width:0}
.hz-grid span{display:block;font-size:10.5px;font-weight:800;color:var(--mu);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}
.hz-grid b{display:block;font-size:13px;font-weight:700;word-break:break-word}
.hz-grid b small{display:block;font-weight:600;color:var(--mu);font-size:12px}
.hz-blk{border-top:1px solid var(--bd);padding-top:10px;margin-top:12px}
.hz-bt{font-size:10.5px;font-weight:800;color:var(--mu);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px}
.hz-pr{display:flex;gap:8px;align-items:baseline;font-size:13px;padding:3px 0}
.hz-pr b{min-width:44px;text-align:right;font-variant-numeric:tabular-nums}
.hz-pr span{flex:1;min-width:0}
.hz-pr em{font-style:normal;font-size:11px;color:var(--mu);background:var(--gray-bg);border-radius:6px;padding:1px 6px}
.hz-shift{border-left:3px solid var(--bd2);padding:4px 10px;margin-bottom:6px;display:flex;flex-direction:column;gap:1px;font-size:12.5px}
.hz-shift.on{border-left-color:var(--st-prog)}
.hz-shift small{font-size:11.5px;color:var(--mu)}
.hz-rec{display:flex;flex-wrap:wrap;gap:6px}
.hz-rs{border-left:3px solid var(--sc,#9ca3af);background:var(--s2);border-radius:0 8px 8px 0;padding:4px 10px}
.hz-rs b{display:block;font-size:12px}.hz-rs small{font-size:11px;color:var(--mu)}
.hz-cm{border-left:3px solid var(--bd);padding:4px 10px;margin-bottom:6px}
.hz-cm b{font-size:12px}.hz-cm small{font-size:11px;color:var(--mu2);margin-left:6px}
.hz-cm p,.hz-p{margin:2px 0 0;font-size:12.5px;white-space:pre-wrap;word-break:break-word}
.hz-mock{display:block;margin:0 0 4px}
.hz-mock img{max-width:100%;max-height:220px;border-radius:10px;border:1px solid var(--bd);display:block}

@media (max-width:760px){
  .hz-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:600px){
  .hz-in{padding:12px 16px 56px}
  .hz-top{flex-wrap:wrap;gap:8px}
  .hz-back span{display:none}
  .hz-tt{order:2;flex-basis:100%}
  .hz-acts{margin-left:auto}
  .hz-tt h2{font-size:19px}
  .hz-bar{gap:6px}
  .hz-q{min-width:0;flex-basis:100%;font-size:16px}
  .hz-sel{flex:1 1 calc(50% - 3px);min-width:0;max-width:none;font-size:14px!important}
  .hz-seg{max-width:100%;overflow-x:auto;scrollbar-width:none}
  .hz-seg button{white-space:nowrap;padding:8px 11px}
  .hz-kpi b{font-size:20px}
  .hz-tl{padding:2px 12px;border-radius:12px}
  .hz-tl .hz-day{margin:0 -12px;padding:10px 12px 6px}
  .hz-time{width:auto;padding-top:0;order:0;font-size:11px}
  .hz-ev{flex-wrap:wrap;gap:6px 8px}
  .hz-ev > .hz-av{display:none}
  .hz-evb{flex-basis:100%}
  .hz-h{flex-wrap:wrap;padding:10px 12px 10px 0;gap:8px}
  .hz-hr{flex-direction:row;align-items:center;gap:10px;flex-basis:100%;justify-content:flex-start;padding-left:16px}
  .hz-grid{grid-template-columns:1fr}
}
/* Iniciar / reanudar producción y añadir máquina (misma ventana que «Nueva tarea») */
.ip-dlg{max-width:min(600px,96vw)}
.ip-body{display:flex;flex-direction:column;gap:18px}
.ip-dlg .fi{width:100%;box-sizing:border-box;background:var(--sf);border:1px solid var(--bd);border-radius:9px;padding:10px 12px;font:600 14px var(--ff),sans-serif;color:var(--tx)}
.ip-maqs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;min-width:0}
.ip-body > *{min-width:0}
.ip-maq{position:relative;display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1.5px solid var(--bd);border-radius:12px;background:var(--sf);cursor:pointer;user-select:none;transition:border-color .12s,background .12s}
.ip-maq:hover{border-color:var(--bd2)}
.ip-maq input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}
.ip-maq.on{border-color:var(--acc);background:var(--acc-l)}
.ip-mn{display:flex;align-items:center;gap:6px}.ip-mn b{flex:1;min-width:0;font-size:13.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ip-mn i{font-style:normal;font-weight:800;color:var(--acc);opacity:0}.ip-maq.on .ip-mn i{opacity:1}
.ip-mm{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:11px;color:var(--mu)}
.ip-mm em{font-style:normal;font-weight:700;color:var(--b-oliva);background:#f1f6e6;border-radius:5px;padding:0 6px}
.ip-busy{color:#8a6310;background:#fbf2e0;border-radius:5px;padding:0 6px}
.ip-upl{display:none;align-items:center;gap:8px;margin-top:4px}
.ip-maq.on .ip-upl{display:flex}
.ip-upl input{width:64px;padding:7px 8px;border:1px solid var(--bd2);border-radius:8px;font:800 15px var(--ff),sans-serif;text-align:center;background:var(--sf);color:var(--tx)}
.ip-upl small{font-size:11.5px;color:var(--mu);line-height:1.2}
.ip-ops{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.ip-op{--c:var(--acc);display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;border:1.5px solid var(--bd);border-radius:12px;background:var(--sf);cursor:pointer;font:700 12px var(--ff),sans-serif;color:var(--tx)}
.ip-op:hover{border-color:var(--bd2)}
.ip-op .op-av{width:40px;height:40px;border-radius:50%;background:var(--c);color:#fff;display:grid;place-items:center;font-size:15px;font-weight:800;opacity:.35;transition:opacity .12s}
.ip-op.op-sel{border-color:var(--c);background:color-mix(in srgb,var(--c) 10%,var(--sf))}
.ip-op.op-sel .op-av{opacity:1}
.ip-verrow{display:flex;flex-wrap:wrap;gap:8px}
.ip-verrow select{flex:1 1 180px;width:auto}
.ip-tg{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1.5px solid var(--bd);border-radius:10px;background:var(--sf);font:700 13px var(--ff),sans-serif;color:var(--tx);cursor:pointer}
.ip-tg i{width:16px;height:16px;border-radius:5px;border:1.5px solid var(--bd2);display:grid;place-items:center;font-style:normal;font-size:11px}
.ip-tg.on{border-color:var(--acc);background:var(--acc-l)}.ip-tg.on i{background:var(--acc);border-color:var(--acc);color:#fff}.ip-tg.on i::after{content:'✓'}
.ip-aviso{font-size:12.5px;font-weight:700;color:#8a6310;background:#fbf2e0;border-radius:10px;padding:9px 12px}
.ip-flash{animation:ipFlash 1.8s ease-out}
@keyframes ipFlash{0%,40%{box-shadow:0 0 0 3px var(--acc);border-radius:10px}100%{box-shadow:0 0 0 0 transparent}}
@media (max-width:640px){.ip-maqs{grid-template-columns:repeat(2,minmax(0,1fr))}.ip-ops{grid-template-columns:repeat(3,minmax(0,1fr))}.ip-dlg .rc-df .rc-b{flex:1;justify-content:center;min-height:44px}.ip-dlg .rc-df .sp{display:none}}

/* ── Almacén › Qué pedir: una cesta por proveedor (opción A, 2026-10-20) ── */
.rc-now.qp-now{grid-template-columns:repeat(4,minmax(0,1fr))}
.qp-now .d-lane{cursor:pointer}
.qp-aviso{background:var(--sf);border:1px dashed var(--bd2);border-radius:10px;padding:10px 14px;font-size:12.5px;color:var(--mu);margin-bottom:12px}
.qp-lnk{background:none;border:0;padding:0;font:700 inherit var(--ff),sans-serif;font-size:inherit;color:var(--acc-d);text-decoration:underline;cursor:pointer}
.qp-cestas{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,540px),1fr));gap:16px;align-items:start}
.qp-cesta{background:var(--sf);border:1px solid var(--bd);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.qp-cesta.sin{border-style:dashed;box-shadow:none}
.qp-ch{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--bd)}
.qp-ch h3{margin:0;font-size:17px;font-weight:800;letter-spacing:-.01em}
.qp-ch .sp{flex:1}
.qp-ch .rc-b.p{min-height:40px}
.qp-ch .rc-b:disabled{opacity:.5;cursor:default}
.qp-sub{font-size:12px;color:var(--mu)}
.qp-tot{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.qp-ln{display:grid;grid-template-columns:20px minmax(0,1fr) 96px 88px 32px;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid #eef0ea}
.qp-ln:last-of-type{border-bottom:0}
.qp-ln:hover{background:#fafbf8}
.qp-ln.off .qp-info,.qp-ln.off .qp-imp,.qp-ln.off .qp-q{opacity:.5}
.qp input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--acc);cursor:pointer}
.qp-nm{font-size:13.5px;font-weight:700;line-height:1.3}
.qp-chips{display:flex;flex-wrap:wrap;gap:4px;margin:5px 0 3px}
.qp-chips:empty{display:none}
.qp-chip{font:800 10.5px var(--ff),sans-serif;padding:2px 8px;border-radius:999px;border:0;background:var(--gray-bg);color:#4d5249}
.qp-chip.t{background:#fbe9e8;color:#a33a37;cursor:pointer}
.qp-chip.m{background:#fdf3e1;color:#7d560c}
.qp-chip.r{background:#e8f0f9;color:#1d4f91}
.qp-dato{font-size:11.5px;color:var(--mu);margin-top:2px;font-variant-numeric:tabular-nums}
.qp-av{font-size:11.5px;font-weight:700;color:#a33a37;margin-top:4px}
.qp-av.b{color:var(--acc-d)}
.qp-tks{margin-top:6px;padding:6px 10px;background:var(--s2);border:1px solid var(--bd);border-radius:8px}
.qp-tks div{display:flex;gap:8px;font-size:11.5px;padding:2px 0}
.qp-q{width:100%;box-sizing:border-box;font:800 15px var(--ff),sans-serif;text-align:right;padding:8px 10px;border:1px solid var(--bd2);border-radius:8px;background:var(--sf);color:var(--tx);font-variant-numeric:tabular-nums}
.qp-q:focus{outline:2px solid var(--acc);outline-offset:0;border-color:var(--acc)}
.qp-imp{font-size:13px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.qp-mas{width:32px;height:32px;border:1px solid transparent;background:none;border-radius:8px;cursor:pointer;font-size:18px;line-height:1;color:var(--mu)}
.qp-mas:hover{border-color:var(--bd);background:var(--sf);color:var(--tx)}
.qp-pie{padding:10px 16px;font-size:11.5px;color:var(--mu);background:var(--s2);border-top:1px solid var(--bd)}
.qp-ojo{margin-top:24px}
.qp-dias{width:56px;padding:3px 6px;border:1px solid var(--bd2);border-radius:6px;font:700 12px var(--ff),sans-serif;text-align:center}
.qp-ojo-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:10px}
.qp-oj{background:var(--sf);border:1px solid var(--bd);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
@media (max-width:700px){
  .rc-now.qp-now{grid-template-columns:repeat(2,minmax(0,1fr))}
  .qp-ln{grid-template-columns:20px minmax(0,1fr) 32px;row-gap:8px;padding:12px}
  .qp-ln .qp-info{grid-column:2;grid-row:1}
  .qp-ln .qp-mas{grid-column:3;grid-row:1;align-self:start}
  .qp-ln .qp-q{grid-column:2;grid-row:2;width:120px}
  .qp-ln .qp-imp{grid-column:2/4;grid-row:2;justify-self:end}
  .qp-ch .rc-b.p{flex:1 1 100%;justify-content:center;min-height:44px}
}

/* Pedidos a proveedor: estado del envío leído de la API de Makito y Cifra */
.rc-env{font-size:11.5px;color:var(--mu);margin-top:5px;line-height:1.45}
.rc-env b{color:var(--tx);font-weight:700}
.rc-env.enviado b{color:#1d4f91}.rc-env.entregado b{color:var(--acc-d)}.rc-env.cancelado b{color:#a8322f}
.rc-env a{color:#1d4f91;font-weight:700}
/* Pedido a proveedor (nuevo / editar): diseño A «hoja de pedido» */
.po-dlg{max-width:860px}
.po-dlg [hidden]{display:none!important}
.po-dlg .rc-dh{align-items:center}
.po-dlg .rc-k{display:block;font-size:10.5px;font-weight:800;color:var(--mu);text-transform:uppercase;letter-spacing:.07em}
.po-dlg .rc-dt .rc-k{margin-bottom:2px}
.po-num{display:flex;flex-direction:column;gap:3px}
.po-num input,.po-eta input{width:130px;box-sizing:border-box;padding:8px 10px;border:1px solid var(--bd);border-radius:8px;font:13px var(--ff),sans-serif;background:var(--sf);color:var(--tx)}
.po-eta{display:flex;flex-direction:column;gap:3px}.po-eta input{width:150px}
.po-provs{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.po-provs .sp{flex:1}
.po-pv{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border-radius:10px;border:1px solid var(--bd);background:var(--sf);font:700 13px var(--ff),sans-serif;color:var(--tx);cursor:pointer}
.po-pv small{font-size:10.5px;font-weight:700;color:var(--mu)}
.po-pv:hover{border-color:var(--bd2)}
.po-pv.on{border-color:#8eb53e;background:#f1f6e6;box-shadow:inset 0 0 0 1px #8eb53e}
.po-nota{font-size:11.5px;color:var(--mu);line-height:1.4;max-width:260px}
.po-buscar{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.po-bq{flex:1;min-width:200px;position:relative}
.po-bq input{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--bd);border-radius:9px;font:14px var(--ff),sans-serif;background:var(--sf);color:var(--tx)}
.po-res{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--sf);border:1px solid var(--bd2);border-radius:10px;box-shadow:0 8px 28px rgba(25,27,23,.16);max-height:260px;overflow:auto;z-index:3;padding:4px}
.po-res button{display:block;width:100%;text-align:left;border:none;background:none;padding:8px 10px;border-radius:7px;cursor:pointer;font:13px var(--ff),sans-serif;color:var(--tx)}
.po-res button:hover{background:var(--s2)}
.po-res b{display:block;font-weight:700}.po-res small{font-size:11.5px;color:var(--mu)}.po-res em{font-style:normal;color:#1d4f91;font-weight:700}
.po-tabla{--po-cols:minmax(0,1fr) 60px 74px 160px 128px 30px}
.po-tabla.sin-api{--po-cols:minmax(0,1fr) 60px 74px 128px 30px}
.po-th,.po-tr{display:grid;grid-template-columns:var(--po-cols);gap:10px;align-items:center}
.po-th{padding:0 6px 6px;font-size:10.5px;font-weight:800;color:var(--mu);text-transform:uppercase;letter-spacing:.05em}
.po-tr{padding:10px 6px;border-top:1px solid var(--bd);font-size:13px;border-radius:8px}
.po-tr:hover{background:#f7f8f4}
.po-tabla .n{text-align:right;font-weight:700}
.po-tabla .n.ro{color:#a8322f}.po-tabla .n.az{color:#1d4f91}.po-tabla .n.mu{color:var(--mu2)}
.po-nm{min-width:0}.po-nm b{display:block;font-weight:700;font-size:13.5px;word-break:break-word}
.po-nm small{display:block;font-size:11.5px;color:var(--mu);margin-top:2px}
.po-nm em{font-style:normal;color:#1d4f91;font-weight:700}.po-nm i{font-style:normal;color:var(--acc-d);font-weight:700}
.po-stk .rc-chip{white-space:normal}
.po-x{width:30px;height:30px;border:none;background:none;color:var(--mu);font-size:18px;border-radius:7px;cursor:pointer}
.po-x:hover{background:#fbeceb;color:#a8322f}
.po-vacio{text-align:center;padding:26px 10px;color:var(--mu);font-size:13px;border:1px dashed var(--bd2);border-radius:12px}
.po-vacio b{display:block;color:var(--tx);font-size:14px;margin-bottom:3px}
.po-dlg .rc-df{background:#fafbf8}
.po-dlg .rc-df .sp{line-height:1.45;color:#4d5249}.po-dlg .rc-df .sp b{color:var(--tx)}
@media (max-width:640px){
  .po-num input{width:100px}
  .po-th{display:none}
  .po-tr,.po-tabla.sin-api .po-tr{grid-template-columns:repeat(2,minmax(0,1fr)) auto;row-gap:6px}
  .po-tr .po-nm{grid-column:1/-1}
  .po-tabla .n{text-align:left;font-size:12px}
  .po-tabla .n::before{content:attr(data-k) ' ';color:var(--mu);font-weight:600}
  .po-tr .po-stk{grid-column:1/-1}
  .po-tr .rc-qty{grid-column:1/3;justify-self:start}
}
/* Recepción de pedidos: pestañas «Por recibir» / «Histórico» */
.rc-seg.rc-tabs{margin-left:6px}
.rc-seg button.on{background:var(--sf);color:var(--tx);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.rc-tabs button{min-height:36px;font-size:12.5px;font-weight:700}
@media (max-width:640px){.rc-seg.rc-tabs{margin-left:0;order:5;flex:1 1 100%}.rc-tabs button{flex:1}}

/* Botón flotante «Nueva tarea» (Producción móvil y Todoist Bolsasnt).
   El + es un SVG: un carácter de texto queda algo por debajo del centro por la métrica de la fuente. */
.fab-nueva{position:fixed;right:20px;bottom:calc(24px + env(safe-area-inset-bottom));width:56px;height:56px;padding:0;border-radius:50%;border:0;background:var(--acc);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 20px rgba(27,138,87,.4);z-index:30;-webkit-tap-highlight-color:transparent;transition:background .12s,transform .12s}
.fab-nueva svg{width:26px;height:26px;display:block;flex:none}
.fab-nueva:hover{background:var(--acc-d)}
.fab-nueva:active{transform:scale(.94)}
.fab-nueva:focus-visible{outline:3px solid var(--acc-l);outline-offset:2px}
.fab-nueva[hidden]{display:none}
