:root{
  --bg:#f3f5f9; --panel:#fff; --ink:#1f2937; --muted:#6b7280; --line:#e5e7eb;
  --blue:#1d5bd8; --green:#16a34a; --orange:#f59e0b; --red:#dc2626; --purple:#9333ea;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
h1{font-size:20px;margin:0}
h2{font-size:16px;margin:26px 0 8px;border-bottom:2px solid var(--line);padding-bottom:6px}
code{background:#eef2f7;padding:1px 5px;border-radius:4px;font-size:.92em}
.muted{color:var(--muted)}
.small{font-size:12px}
.hidden{display:none !important}

.topbar{background:linear-gradient(135deg,#1d5bd8 0%,#2a6ce8 60%,#1d5bd8 100%);color:#fff;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:14px}
.brand-logo{width:40px;height:40px;border-radius:10px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;color:#fff;flex:none}
.brand h1{font-size:21px;font-weight:700}
.brand-sub{margin:2px 0 0;font-size:12px;color:#fff;opacity:.75}
.subtitle{margin:4px 0 0;font-size:13px;color:#dbeafe}
.btn-ppt{background:#fff;color:#1d5bd8;border:none;border-radius:8px;padding:10px 18px;font-weight:700;font-size:13px;cursor:pointer;white-space:nowrap;box-shadow:0 2px 6px rgba(0,20,60,.18)}
.btn-ppt:hover{background:#eef3ff}
.btn-ppt:disabled{opacity:.6;cursor:wait}
.ppt-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:2000;display:flex;align-items:center;justify-content:center}
.ppt-box{background:#fff;border-radius:14px;padding:26px 34px;text-align:center;font-size:14px;color:#1f2937;box-shadow:0 12px 40px rgba(0,0,0,.3)}
.spinner{width:34px;height:34px;border:4px solid #dbeafe;border-top-color:#1d5bd8;border-radius:50%;margin:0 auto 14px;animation:spin 0.8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* tabs integradas al header azul: la activa "se funde" con el fondo de la página */
.tabs{display:flex;gap:4px;background:linear-gradient(135deg,#1d5bd8,#2a6ce8);padding:6px 24px 0;flex-wrap:wrap;position:sticky;top:0;z-index:5;align-items:flex-end;border-bottom:none}
.tab-btn{background:transparent;border:none;padding:11px 16px 13px;cursor:pointer;font-size:13.5px;color:rgba(255,255,255,.88);font-weight:500;border-radius:10px 10px 0 0}
.tab-btn:hover{background:rgba(255,255,255,.12);color:#fff}
.tab-btn.active{background:var(--bg);color:#1d5bd8;font-weight:700}

main{max-width:1560px;margin:0 auto;padding:20px 24px 60px} /* ancho para que las tablas de OC entren sin scroll horizontal */
.tab-grp{display:flex;align-items:center;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:rgba(255,255,255,.55);padding:0 6px 12px 10px;border-left:1px solid rgba(255,255,255,.25);margin-left:4px;align-self:flex-end}
.tab-grp:first-child{border-left:none;margin-left:0;padding-left:6px}
.tab-panel{display:none;animation:fade .2s}
.tab-panel.active{display:block}
.tab-orient{background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3;border-radius:9px;padding:8px 12px;font-size:12.5px;line-height:1.45;margin:0 0 14px}
.tab-orient b{color:#312e81}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:6px 0 4px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.card-num{font-size:24px;font-weight:700}
.card-lbl{font-size:12px;color:var(--muted);margin-top:2px}
.card-good{border-color:#bbf7d0;background:#f0fdf4}
.card-warn{border-color:#fde68a;background:#fffbeb}
.card-bad{border-color:#fecaca;background:#fef2f2}

table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:13px}
th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line)}
th{background:#f8fafc;font-weight:600;font-size:12px;color:#374151;white-space:nowrap}
tbody tr:hover{background:#f9fbff}
tfoot td{background:#f8fafc;font-weight:600}
.row-warn{background:#fffbeb}
.row-bad{background:#fef2f2}
.scroll{max-height:520px;overflow:auto;border-radius:8px}

.chip{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;background:#eef2f7;color:#374151;white-space:nowrap}
.chip-blue{background:#dbeafe;color:#1e40af}
.chip-green{background:#dcfce7;color:#166534}
.chip-orange{background:#fef3c7;color:#92400e}
.chip-red{background:#fee2e2;color:#991b1b}
.chip-dark{background:#374151;color:#fff}

.controls{display:flex;gap:16px;align-items:end;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:10px 0}
.controls label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:4px}
.controls .chk{flex-direction:row;align-items:center;gap:6px;color:var(--ink)}
.controls input,.controls select{padding:7px 9px;border:1px solid var(--line);border-radius:7px;font-size:13px;background:#fff}
.controls input[type=number]{width:110px}
button{padding:8px 14px;border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer;font-size:13px}
button:hover{background:#f3f4f6}
.btn-primary{background:var(--blue);color:#fff;border-color:var(--blue);font-weight:600}
.btn-primary:hover{background:#1a51c2}

.chart-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px;margin:12px 0}
.chart-box canvas{width:100%;height:300px;display:block}
.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:820px){.chart-grid{grid-template-columns:1fr}}

textarea#datos-json{width:100%;height:540px;font:12px/1.5 ui-monospace,Consolas,monospace;border:1px solid var(--line);border-radius:8px;padding:12px;background:#0f172a;color:#e2e8f0}
.ok-msg{color:var(--green);font-weight:600}
.err-msg{color:var(--red);font-weight:600}

.diagram{background:#0f172a;color:#a7f3d0;padding:16px;border-radius:10px;overflow:auto;font:12px/1.35 ui-monospace,Consolas,monospace}
.formulas td{font-size:13px}
.formulas td:first-child{color:var(--muted);width:42%}

/* ---- banner de carga de datos reales ---- */
.data-banner{position:fixed;right:16px;bottom:16px;z-index:1500;background:#1e293b;color:#fff;padding:10px 16px;border-radius:10px;font-size:13px;box-shadow:0 6px 24px rgba(0,0,0,.25);display:flex;align-items:center;gap:10px;transition:opacity .4s,transform .4s;max-width:520px}
.banner-x{flex:none;border:none;background:transparent;color:#fff;cursor:pointer;font-size:14px;line-height:1;opacity:.65;padding:2px 4px;align-self:flex-start}
.banner-x:hover{opacity:1}
.cfg-save{margin-top:12px;display:flex;align-items:center;gap:10px;flex-basis:100%}
.btn-save{background:#166534;color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer}
.btn-save:hover{background:#14532d}
.btn-save:disabled{opacity:.6;cursor:default}
.textra-cell{white-space:nowrap;font-size:12px;color:#475569}
.textra-pct{width:52px;padding:2px 5px;font-size:12px;border:1px solid var(--line);border-radius:5px}
.textra-out{margin-top:3px;font-size:11px}
.tbultos-cell{white-space:nowrap;font-size:12px;color:#166534}
.tbultos{width:56px;padding:2px 5px;font-size:12px;font-weight:600;border:1px solid #86efac;border-radius:5px;background:#f0fdf4}
.textra-ok{color:#166534;font-weight:600}
.textra-no{color:#b91c1c}
/* ---- orden de compra editable (cantidad nominal + costo + desc% + IVA) ---- */
.oc-cell{white-space:nowrap;font-size:12px;color:#475569;display:inline-flex;align-items:center;gap:4px}
.oc-qty{width:54px;padding:3px 5px;font-size:12.5px;border:1px solid var(--line);border-radius:5px}
.oc-costo{width:84px;padding:3px 5px;font-size:12.5px;border:1px solid var(--line);border-radius:5px}
.oc-desc{width:48px;padding:3px 5px;font-size:12.5px;border:1px solid var(--line);border-radius:5px}
.oc-imp{width:64px;padding:3px 5px;font-size:12.5px;border:1px solid var(--line);border-radius:5px}
.oc-tot-sub td{background:#fbfcfe;font-weight:500;color:#475569}
.oc-neto,.oc-final{white-space:nowrap}
.oc-costo.oc-edited,.oc-qty.oc-edited{border-color:#86efac;background:#f0fdf4;font-weight:600;color:#166534} /* editado: distinto del default (costo actual / cantidad sugerida) */
.oc-table td,.oc-table th{padding:6px 8px} /* compacto: que las 12 columnas entren sin scroll horizontal */
.oc-tot-lbl{text-align:right}
.oc-bar{margin:0 8px 8px;padding:7px 10px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:7px;font-size:12.5px;color:#1e40af;display:inline-flex;align-items:center;gap:8px}
.oc-bar input[type=date]{padding:3px 6px;border:1px solid #bfdbfe;border-radius:5px;font-size:12.5px;color:#1e3a8a}
/* (sin overflow en .ord-group: rompería el header pegajoso contra el scroll de la página) */
.oc-cargar{background:#166534;color:#fff;border:none;border-radius:6px;padding:5px 12px;font-size:12.5px;font-weight:600;cursor:pointer;margin-left:8px}
.oc-cargar:hover{background:#14532d}
.cd-del,.td-del-grupo{background:#fee2e2;color:#991b1b;border:none;border-radius:6px;padding:5px 10px;font-size:12px;font-weight:600;cursor:pointer;margin-left:8px}
.cd-del:hover,.td-del-grupo:hover{background:#fecaca}
/* transferencia directa: buscador de artículos con sugerencias + botón sacar */
.td-buscar-w{position:relative}
.td-buscar-w input{min-width:280px}
.td-sug{position:absolute;top:100%;left:0;right:0;z-index:50;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);max-height:300px;overflow:auto;margin-top:4px}
.td-sug-item{padding:7px 10px;font-size:13px;cursor:pointer;border-bottom:1px solid #f1f5f9}
.td-sug-item:last-child{border-bottom:none}
.td-sug-item:hover{background:#eff6ff}
.td-sug-prov{background:#f8fafc;border-bottom:1px solid var(--line)}
/* filtro de proveedor dentro de un grupo de transferencias */
.ord-grp-prov-w{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.ord-grp-prov{width:220px;padding:6px 9px;border:1px solid var(--line);border-radius:7px;font-size:13px}
.ord-grp-oferta-lbl{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#166534;font-weight:600;cursor:pointer;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:7px;padding:6px 10px;user-select:none}
.ord-grp-oferta-lbl input{cursor:pointer}
/* "solo decisión": filas con ⚠️ (JBJ no alcanza para las dos sucursales) */
.ord-grp-dec-lbl{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#92400e;font-weight:600;cursor:pointer;background:#fffbeb;border:1px solid #fde68a;border-radius:7px;padding:6px 10px;user-select:none}
.ord-grp-dec-lbl input{cursor:pointer}
/* seguimiento: switch de vistas + % alineado a la derecha del renglón */
.seg-switch{display:inline-flex;gap:6px}
.seg-pct{margin-left:auto}
.seg-pct .chip{font-size:12.5px;padding:3px 12px;font-weight:700}
.seg-det{margin:10px 0;padding:10px 14px;border:1px solid #bfdbfe;border-radius:9px;background:#eff6ff;font-size:13px}
.seg-det table{margin-top:8px;background:#fff}
.td-del{border:none;background:#fee2e2;color:#991b1b;border-radius:6px;width:24px;height:24px;padding:0;font-size:12px;font-weight:700;cursor:pointer;line-height:1}
.td-del:hover{background:#fecaca}
/* ---- login BizOne ---- */
.login-overlay{position:fixed;inset:0;background:rgba(15,23,42,.75);backdrop-filter:blur(3px);z-index:5000;display:flex;align-items:center;justify-content:center;padding:20px}
.login-overlay.hidden{display:none}
.login-box{background:#fff;border-radius:14px;padding:26px 30px;width:340px;max-width:100%;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.login-box h3{margin:0 0 4px}
.login-box label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted);margin:12px 0}
.login-box input{padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:14px}
.login-box .btn-primary{width:100%;margin-top:6px;padding:10px}
.login-err{color:#b91c1c;font-weight:600}
.user-chip{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.15);color:#fff;border-radius:999px;padding:7px 14px;font-size:13px;white-space:nowrap}
.user-chip a{color:#bfdbfe;font-size:12px;cursor:pointer;text-decoration:underline}
/* popup de la orden de compra (vista previa) */
.oc-modal{max-width:880px}
.oc-res{margin:8px 0}
.oc-res td,.oc-res th{padding:6px 10px}
.oc-res td:nth-last-child(-n+2),.oc-res th:nth-last-child(-n+2){text-align:right} /* Neto y Final a la derecha */
.ocp-ab,.ocp-cond,.ocp-obs-w{margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#f9fafb}
.ocp-ab label{margin-left:10px;font-size:13px;color:#475569}
.ocp-ab input,.ocp-pago input{width:64px;padding:3px 6px;font-size:12.5px;border:1px solid var(--line);border-radius:5px}
.ocp-pago{display:flex;align-items:center;gap:12px;margin-top:8px;flex-wrap:wrap}
.ocp-pago select{padding:5px 8px;border:1px solid var(--line);border-radius:7px;font-size:13px;background:#fff;min-width:200px}
.ocp-importe{min-width:110px;font-weight:600;color:#1f2937}
.ocp-del{border:none;background:#fee2e2;color:#991b1b;border-radius:6px;width:24px;height:24px;padding:0;font-size:12px;font-weight:700;cursor:pointer;line-height:1}
.ocp-del:hover{background:#fecaca}
.ocp-lbl{font-size:12.5px;color:#475569;display:inline-flex;align-items:center;gap:4px}
.ocp-obs-w textarea{width:100%;margin-top:6px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;font-size:13px;font-family:inherit;resize:vertical;box-sizing:border-box}
.ocp-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.ocp-tots{margin:8px 0 4px auto;padding:9px 14px;background:#f8fafc;border:1px solid var(--line);border-radius:8px;font-size:13.5px;color:#334155;width:280px;max-width:100%}
.ocp-tot-row{display:flex;justify-content:space-between;gap:16px;padding:2px 0}
.ocp-tot-final-row{border-top:1px solid var(--line);margin-top:4px;padding-top:6px}
.ocp-tots .ocp-tot-final{font-size:15px;color:#166534}
.ocp-pagos-nota{margin-top:6px}
/* ---- popup confirmar nota de pedido: desplegable con el detalle línea por línea ---- */
.npc-det{margin:4px 0 10px}
.npc-det summary{cursor:pointer;color:#1d5bd8;font-size:13px}
.npc-det summary:hover{text-decoration:underline}
.npc-det-tbl{max-height:38vh;overflow:auto;margin-top:8px;border:1px solid var(--line);border-radius:7px}
.npc-det-tbl table{width:100%;border-collapse:collapse;font-size:12.5px}
.npc-det-tbl td,.npc-det-tbl th{padding:5px 9px;text-align:left;border-bottom:1px solid #f1f5f9}
.npc-det-tbl thead th{background:#f8fafc;position:sticky;top:0}
.npc-det-tbl tbody tr:nth-child(even){background:#f8fafc}
.ord-group table{width:100%;border-collapse:collapse}
.ord-group td,.ord-group th{padding:6px 9px;text-align:left;vertical-align:middle}
/* ---- tablas de órdenes: zebra + números a la derecha. El scroll es el de la PÁGINA
   (solo horizontal propio si la tabla no entra a lo ancho). ---- */
.tbl-scroll{overflow-x:auto}
.ord-group thead th{background:#f8fafc}
.ord-group td{border-bottom:1px solid #f1f5f9} /* bordes más suaves que el resto de la app */
.ord-group tbody tr:nth-child(even){background:#f8fafc}
.ord-group tbody tr:hover{background:#eef4ff}
.ord-group tfoot td{background:#f8fafc}
/* plata alineada a la derecha (celdas calculadas y totales) */
.oc-neto,.oc-final,.oc-tot-neto,.oc-tot-final,.oc-tot-iva,.oc-tot-imp{text-align:right !important}
th.th-num{text-align:right !important}
/* las CELDAS numéricas usan la misma clase: sin esto el número queda a la
   izquierda con el título a la derecha y la columna se ve corrida */
td.th-num{text-align:right}
.topbar-btns{display:flex;gap:8px;flex-wrap:wrap}
.ord-id{background:#eef2f7;padding:1px 6px;border-radius:5px;color:#475569;font-size:11.5px;margin-right:4px;cursor:pointer}
.ord-id:hover{background:#dbeafe;color:#1e3a8a}
.ord-pend{font-size:13px}
.ord-bulk{margin:0 8px 8px;padding:6px 9px;background:#f1f5f9;border-radius:7px;font-size:12.5px;color:#475569;display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.ord-bulk-pct{width:52px;padding:2px 5px;font-size:12.5px;border:1px solid var(--line);border-radius:5px}
.ord-bulk-btn{background:#166534;color:#fff;border:none;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer}
.ord-bulk-btn:hover{background:#14532d}
.ord-grp-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px}
.ord-grp-controls .ord-grp-filter{margin:0}
.ord-grp-fam-lbl{font-size:12.5px;color:#475569;display:inline-flex;align-items:center;gap:5px}
.ord-grp-fam{padding:4px 7px;border:1px solid var(--line);border-radius:7px;font-size:12.5px;background:#fff}
.ord-oferta>td{background:#f0fdf4}
.ord-oferta:hover>td{background:#dcfce7}
.ord-oferta-badge{display:inline-block;background:#dcfce7;color:#166534;border-radius:6px;padding:1px 6px;font-size:11.5px;font-weight:700;white-space:nowrap}
.ord-prio-ic{cursor:pointer;font-size:13px;margin-left:2px;user-select:none}
.ord-prio-ic:hover{filter:brightness(1.1)}
.pp-tabs{display:flex;gap:6px;margin:10px 0 4px;border-bottom:1px solid var(--line)}
.pp-tab{background:none;border:none;border-bottom:2px solid transparent;padding:7px 12px;font-size:13px;color:var(--muted);cursor:pointer;margin-bottom:-1px}
.pp-tab:hover{color:var(--ink)}
.pp-tab-on{color:#166534;border-bottom-color:#166534;font-weight:600}
.prio-check{display:inline-block;width:14px;color:#166534;font-weight:700}
.prio-tbl{width:100%;border-collapse:collapse;margin:6px 0}
.prio-tbl th,.prio-tbl td{padding:7px 10px;text-align:left;border-bottom:1px solid var(--line);font-size:13px}
.prio-tbl th{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}
.prio-tbl td:not(:first-child),.prio-tbl th:not(:first-child){text-align:right}
.prio-opt{cursor:pointer;transition:background .12s}
.prio-opt:hover{background:#fffbeb}
.prio-opt.prio-cur{background:#f0fdf4}
/* solapa "Cambiar proveedor" del popup de producto */
.pp-prov-opt{cursor:pointer;transition:background .12s}
.pp-prov-opt:hover{background:#fffbeb}
.pp-prov-opt.prio-cur{background:#f0fdf4}
.pp-prov-opt.prio-pending{background:#eff6ff;box-shadow:inset 3px 0 0 #1d5bd8}
.pp-prov-nuevo{margin:10px 0 4px;padding:10px 12px;border:1px dashed var(--line);border-radius:8px}
.pp-prov-nuevo select{max-width:340px;margin:6px 8px 0 0;padding:7px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:13px;color:var(--ink);cursor:pointer;outline:none;transition:border-color .15s,box-shadow .15s}
.pp-prov-nuevo select:hover{border-color:#94a3b8}
.pp-prov-nuevo select:focus{border-color:#166534;box-shadow:0 0 0 3px rgba(22,101,52,.12)}
.pp-prov-confirmar{background:#166534;color:#fff;border:none;border-radius:7px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer}
.pp-prov-confirmar:hover{background:#14532d}
.pp-prov-confirmar:disabled{opacity:.5;cursor:default}
/* ---- solapa Padrón (nativa) ---- */
.pad-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-top:8px}
.pad-hint{grid-column:1/-1}
.pad-card{display:flex;flex-direction:column;gap:8px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;cursor:pointer;font:inherit;color:inherit;transition:box-shadow .12s,border-color .12s}
.pad-card:hover{border-color:#94a3b8;box-shadow:0 4px 14px rgba(15,23,42,.08)}
.pad-card.pad-ya{background:#f8fffb}
.pad-top{display:flex;align-items:center;gap:10px}
.pad-avatar{width:38px;height:38px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px}
.pad-name{display:flex;flex-direction:column;min-width:0}
.pad-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pad-chip{margin-left:auto;flex-shrink:0}
.pad-acts{display:flex;flex-direction:column;gap:3px}
.pad-act{display:flex;align-items:center;gap:7px;font-size:12.5px}
.pad-tag{font-style:normal;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 7px;border-radius:6px}
.pad-tag.oc{background:#eff6ff;color:#1a51c2}
.pad-tag.venta{background:#f0fdf4;color:#166534}
.pad-dt.fresh{color:#166534}
.pad-dt.warn{color:#b45309}
.pad-dt.stale{color:#94a3b8}
.pad-box{max-width:640px}
.pad-badge{background:#f0fdf4;color:#166534;font-weight:600;font-size:13px;padding:8px 12px;border-radius:8px;margin:8px 0}
.pad-campos{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:10px 0}
.pad-campo{display:flex;flex-direction:column;gap:2px}
.pad-campo>span:first-child{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}
.pad-campo-act{grid-column:1/-1;gap:4px}
.pad-lead{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:8px 12px;margin:6px 0 4px;color:#92400e}
.pad-sub{margin:14px 0 4px;font-size:14px}
.pad-deps{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.pad-dep{border:1px solid var(--line);border-radius:9px;padding:9px 12px}
.pad-dep.on{border-color:#86efac;background:#f8fffb}
.pad-dep-head{display:flex;align-items:center;gap:8px;cursor:pointer}
.pad-dep-body{margin:8px 0 2px 24px;display:flex;flex-direction:column;gap:6px}
.pad-min-fields{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.pad-min-fields input{padding:6px 9px;border:1px solid var(--line);border-radius:7px;font-size:13px}
.pad-min-fields input[type="number"]{width:190px}
.pad-min-fields input[type="text"]{flex:1;min-width:180px}
.pad-days{display:flex;flex-wrap:wrap;gap:6px}
.pad-day{border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:12.5px;cursor:pointer;user-select:none;background:#fff}
.pad-day input{display:none}
.pad-day.on{background:#166534;border-color:#166534;color:#fff;font-weight:600}
.pad-frec{margin:12px 0 4px}
.pad-frec input{width:90px;padding:6px 9px;border:1px solid var(--line);border-radius:7px;font-size:13px;margin-left:6px}
.pad-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.pad-actions-right{display:flex;align-items:center;gap:8px}
.pad-guardar{padding:7px 14px;border-radius:7px;border:1px solid var(--blue);cursor:pointer}
.pad-guardar:disabled{opacity:.6;cursor:default}
/* solapa "Rentabilidad" del popup: métrica | valor | explicación */
.rent-tbl{width:100%;border-collapse:collapse;margin:6px 0}
.rent-tbl td{padding:7px 10px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:top;text-align:left}
.rent-tbl td:nth-child(2){white-space:nowrap;text-align:right}
.prio-badge{display:inline-block;background:#166534;color:#fff;border-radius:5px;padding:0 6px;font-size:10px;font-weight:700;vertical-align:middle}
.prio-badge.gen{background:#e2e8f0;color:#475569}
.np-th,.np-td{width:30px;text-align:center}
.np-check{cursor:pointer;width:15px;height:15px}
.np-bar{margin:0 8px 10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.np-crear{background:#7c3aed;color:#fff;border:none;border-radius:7px;padding:7px 13px;font-size:12.5px;font-weight:600;cursor:pointer}
.np-crear:hover{background:#6d28d9}
.np-crear:disabled{opacity:.6;cursor:default}
.prio-opt.prio-pending{background:#eff6ff;box-shadow:inset 3px 0 0 #1d5bd8}
.prio-save-bar{display:flex;align-items:center;gap:10px;margin-top:8px}
.prio-guardar{background:#166534;color:#fff;border:none;border-radius:7px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer}
.prio-guardar:hover{background:#14532d}
.prio-guardar:disabled{opacity:.5;cursor:default}
.pp-oferta{margin:8px 0;padding:9px 12px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:9px;color:#166534;font-size:13.5px}
.pp-oferta .small{margin-top:4px;color:#15803d}
.pp-alerta{margin:8px 0;padding:8px 12px;background:#ecfeff;border:1px solid #a5f3fc;border-radius:9px;color:#0e7490;font-size:13px}
.modal-box .controls{align-items:center}
.controls label.pp-umode-lbl{display:inline-flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;font-size:12.5px;color:#475569;margin:0 0 0 auto;background:#f1f5f9;border:1px solid var(--line);border-radius:999px;padding:6px 14px;white-space:nowrap;min-width:165px}
.pp-switch{position:relative;display:inline-block;width:40px;height:21px}
.pp-switch input{opacity:0;width:0;height:0}
.pp-switch .sl{position:absolute;cursor:pointer;inset:0;background:#cbd5e1;border-radius:21px;transition:.18s}
.pp-switch .sl::before{content:"";position:absolute;height:15px;width:15px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.18s}
.pp-switch input:checked+.sl{background:#166534}
.pp-switch input:checked+.sl::before{transform:translateX(19px)}
.data-banner.ok{background:#166534}
.data-banner.warn{background:#92400e}
.data-banner.hide{opacity:0;transform:translateY(8px);pointer-events:none}
.db-spin{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;display:inline-block;animation:spin .8s linear infinite}
/* spinner inline para fondos claros (ej. "calculando transferencias…") */
.ord-loading{display:flex;align-items:center;gap:10px;color:#64748b;padding:18px 4px;font-size:14px}
.ord-loading .sp{width:16px;height:16px;border:2px solid rgba(100,116,139,.25);border-top-color:#1d5bd8;border-radius:50%;display:inline-block;animation:spin .8s linear infinite}

/* ---- editor de configuración ---- */
.mini{padding:3px 9px;font-size:12px}
.cfg-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.cfg-fld{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.cfg-fld > span{min-height:30px}
.cfg-fld input{padding:7px 9px;border:1px solid var(--line);border-radius:7px;font-size:13px}
.cfg-fld select{padding:8px 12px;border:1px solid var(--line);border-radius:10px;font-size:13px;background:#fff;color:var(--ink);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2012%208'%3E%3Cpath%20fill='%2364748b'%20d='M1%201l5%205%205-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:11px;padding-right:30px;transition:border-color .15s,box-shadow .15s}
.cfg-fld select:hover{border-color:#94a3b8}
.cfg-fld select:focus{outline:none;border-color:#166534;box-shadow:0 0 0 3px rgba(22,101,52,.12)}
.cfg-chk input[type=checkbox]{width:18px;height:18px;align-self:flex-start;padding:0;cursor:pointer}
/* subpaneles Compras / Transferencias dentro de Parámetros globales */
.cfg-sub{grid-column:1/-1;border:1px solid var(--line);border-radius:9px;padding:12px 14px;background:#f9fafb;margin-top:2px}
.cfg-sub-h{font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:10px;letter-spacing:.01em}
.cfg-sub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.cfg-save{grid-column:1/-1}
.etbl-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.etbl{border:0;border-radius:0}
.etbl th{position:sticky;top:0}
.etbl td{padding:5px 8px}
.etbl input,.etbl select{padding:5px 7px;border:1px solid var(--line);border-radius:6px;font-size:13px;background:#fff}
.etbl input[type=number]{width:96px}
.etbl input[type=text]{min-width:130px}
.etbl-id{font:600 12px ui-monospace,Consolas,monospace;color:#64748b}
.etbl-ro{font-size:13px;color:#374151}
.etbl-na{font-size:13px;color:#cbd5e1;font-style:italic}
.etbl-del{border:none;background:#fee2e2;color:#b91c1c;border-radius:6px;padding:3px 8px;font-weight:700;cursor:pointer}
.etbl-del:hover{background:#fecaca}
.etbl-add{margin:0;background:#eff6ff;border:1px dashed #93c5fd;color:#1a51c2;border-radius:8px;cursor:pointer;padding:5px 10px}
.etbl-add:hover{background:#dbeafe}
/* ---- toolbar + paginado del editor ---- */
.etbl-toolbar{display:flex;align-items:center;gap:10px;padding:8px;border-bottom:1px solid var(--line)}
.etbl-filter{flex:1;max-width:340px;padding:6px 9px;border:1px solid var(--line);border-radius:7px;font-size:13px;background:#fff}
.etbl-count{font-size:12px;white-space:nowrap}
.etbl-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px}
.etbl-pager{display:flex;align-items:center;gap:6px;font-size:12px}
.etbl-prev,.etbl-next,.pg-prev,.pg-next{padding:3px 10px;font-size:13px;line-height:1.2;cursor:pointer}
.etbl-prev[disabled],.etbl-next[disabled],.pg-prev[disabled],.pg-next[disabled]{opacity:.4;cursor:default}
.etbl-size{padding:5px 7px;border:1px solid var(--line);border-radius:7px;font-size:12px;background:#fff}
/* ---- paginado de tablas read-only (Planificación) ---- */
.paged-bar{display:flex;align-items:center;gap:8px;justify-content:flex-end;padding:6px 2px;font-size:12px;color:var(--muted)}
/* ---- órdenes sugeridas agrupadas por proveedor ---- */
.ord-group{border:1px solid var(--line);border-radius:10px;margin:12px 0;background:var(--panel);overflow:hidden;box-shadow:0 1px 3px rgba(15,23,42,.06)}
.ord-group>summary{cursor:pointer;padding:11px 14px;font-size:14px;list-style:none;user-select:none;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ord-group>summary:hover{background:#f8fafc}
.ord-group>summary::-webkit-details-marker{display:none}
.ord-group>summary::before{content:"▸";color:#94a3b8;display:inline-block;transition:transform .15s ease;font-size:12px}
.ord-group[open]>summary::before{transform:rotate(90deg)}
.ord-group[open]>summary{border-bottom:1px solid var(--line);background:#fbfcfe}
.ord-group table{border:0;border-radius:0}
/* sub-solapa (proveedor) anidada dentro del destino: acento a la izquierda + aire */
.ord-group .ord-sub{margin:10px 14px;border:1px solid #e8edf3;border-left:3px solid #bfdbfe;border-radius:8px;box-shadow:none}
.ord-group .ord-sub>summary{font-size:13.5px;padding:9px 12px}
.ord-group .ord-sub[open]{border-left-color:#1d5bd8}
.ord-sec{font-size:14px;margin:16px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--line)}
.ord-prod{color:#1a51c2;text-decoration:underline dotted;cursor:pointer}
.ord-prod:hover{color:#1e3a8a}
.ord-grp-filter{margin:8px;padding:6px 9px;border:1px solid var(--line);border-radius:7px;font-size:13px;width:calc(100% - 16px);max-width:340px}
/* ---- modal / popup de producto ---- */
.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px}
.modal-overlay.hidden{display:none}
body.modal-open{overflow:hidden} /* popup abierto: la página de atrás no scrollea */
.modal-box{background:#fff;border-radius:12px;padding:18px 20px;max-width:700px;width:100%;max-height:85vh;overflow:auto;position:relative;box-shadow:0 12px 40px rgba(0,0,0,.3)}
.modal-box h3{margin:0 0 6px;padding-right:30px}
.modal-close{position:absolute;top:10px;right:10px;border:none;background:#f1f5f9;border-radius:8px;width:28px;height:28px;cursor:pointer;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;font-size:13px;color:#475569}
.modal-close:hover{background:#e2e8f0}
.pp-id{font-size:12px;color:#64748b;margin:0 0 6px;display:flex;align-items:center;gap:8px}
.pp-id code{background:#eef2f7;padding:2px 8px;border-radius:5px;color:#334155;font-size:12.5px}
.pp-copy{cursor:pointer;border:1px solid #dbeafe}
.pp-copy:hover{background:#dbeafe;color:#1e3a8a}

/* ---- grilla de productos (small multiples) ---- */
.spark-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.spark-card{background:var(--panel);border:1px solid var(--line);border-left-width:4px;border-radius:10px;padding:8px 10px}
.spark-card.good{border-left-color:var(--green)}
.spark-card.warn{border-left-color:var(--orange)}
.spark-card.bad{border-left-color:var(--red)}
.spark-head{display:flex;justify-content:space-between;align-items:center;font-size:13px}
.spark-fill{font-weight:700}
.spark-card.good .spark-fill{color:var(--green)}
.spark-card.warn .spark-fill{color:var(--orange)}
.spark-card.bad .spark-fill{color:var(--red)}
.spark-card canvas{width:100%;height:72px;display:block;margin:4px 0}
.spark-sub{font-size:11px;color:var(--muted)}

/* ---- recuadro explicativo ---- */
.callout{background:#eff6ff;border:1px solid #bfdbfe;border-left:4px solid var(--blue);border-radius:10px;padding:12px 16px;margin:8px 0;font-size:13px;line-height:1.55}
.callout h4{margin:0 0 6px;font-size:14px;color:#1e3a8a}
.callout p{margin:6px 0}
.callout ul{margin:6px 0;padding-left:20px}
.callout li{margin:3px 0}
.callout .formula{background:#dbeafe;border-radius:6px;padding:2px 6px;font-family:ui-monospace,Consolas,monospace}
.callout.warn{background:#fffbeb;border-color:#fde68a;border-left-color:var(--orange)}
.callout.warn h4{color:#92400e}

/* ---- ayuda / tooltips ---- */
.hint-i{display:inline-block;flex:0 0 auto;box-sizing:border-box;width:15px;height:15px;min-width:15px;max-width:15px;
  min-height:15px;max-height:15px;border-radius:50%;background:#94a3b8;color:#fff;text-align:center;
  font:italic 700 10px/15px Georgia,serif;cursor:help;vertical-align:middle;margin-left:3px;padding:0}
.hint-i:hover{background:#1d5bd8}
.tip{position:absolute;z-index:1000;max-width:300px;background:#0f172a;color:#e7edf5;padding:9px 11px;border-radius:8px;
  font-size:12px;line-height:1.45;box-shadow:0 8px 24px rgba(0,0,0,.28);pointer-events:none}
[data-help]{cursor:help}
.card[data-help]{cursor:help}

/* ---- escenarios ---- */
.esc-list{margin:6px 0 0;padding-left:18px;font-size:13px}
.esc-list li{margin-bottom:4px}
.esc-best{background:#f0fdf4}

/* ---- oferta bomba ---- */
.promo-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:14px 0}
.promo-card h3{margin:0 0 8px;font-size:15px}
.promo-card h4{margin:16px 0 6px;font-size:13px;color:var(--muted)}
.promo-rec{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:10px 12px;font-size:13px}

/* ---- flujo / animación ---- */
.row{display:inline-flex;align-items:center;gap:8px}
.flow-stage{background:#f8fafc;border:1px solid var(--line);border-radius:12px;margin:10px 0}
.flow-stage canvas{width:100%;height:480px;display:block}
.fl-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:#374151;margin:4px 2px}
.fl-leg{display:inline-flex;align-items:center;gap:6px}
.fl-leg i{width:12px;height:12px;border-radius:50%;display:inline-block}
.fl-timeline{align-items:center}
.flow-log{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:13px;max-height:220px;overflow:auto}
.flow-log .fl-day{font-weight:700;margin-bottom:4px;color:#1e3a8a}
.fl-ev{display:inline-block;min-width:78px;font-weight:600;font-size:11px;padding:1px 6px;border-radius:6px;margin-right:6px}
.fl-central{background:#dcfce7;color:#166534}
.fl-directa{background:#fef3c7;color:#92400e}
.fl-transferencia{background:#dbeafe;color:#1e40af}
.fl-arrive{background:#ede9fe;color:#5b21b6}
.fl-qnote{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:8px;padding:8px 11px;font-size:12.5px;line-height:1.5;margin:4px 2px}
.fl-qhead{margin-bottom:6px}
.fl-qchips{display:flex;flex-wrap:wrap;gap:6px}
.fl-qp{display:inline-flex;align-items:center;gap:5px;max-width:240px;background:#fff;border:1px solid #fecaca;color:#b91c1c;border-radius:999px;padding:3px 10px;cursor:pointer;text-decoration:none;font-size:12px}
.fl-qp>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fl-qp>b{flex:none;color:#7f1d1d}
.fl-qp:hover{background:#fee2e2;border-color:#f87171}
.fl-qmore{align-self:center;color:#7f1d1d;font-size:12px;font-weight:600}
.fl-qtot{color:#7f1d1d;font-weight:600;white-space:nowrap}
.fl-line{padding:3px 0;border-top:1px dashed #eef2f7}
.fl-line:first-of-type{border-top:0}
.fl-sub{color:var(--muted);font-size:11px}

/* ---- Lupita "¿por qué?" + panel de explicación de cada decisión ---- */
.fl-why,.exp-toggle{display:inline-block;margin-left:6px}
.fl-why>summary,.exp-toggle>summary{cursor:pointer;list-style:none;display:inline-block;
  font-size:11px;font-weight:600;color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;
  border-radius:6px;padding:0 6px;user-select:none}
.fl-why>summary::-webkit-details-marker,.exp-toggle>summary::-webkit-details-marker{display:none}
.fl-why[open]>summary,.exp-toggle[open]>summary{background:#dbeafe}
.exp-body{margin:6px 0 4px;padding:10px 12px;background:#f8fafc;border:1px solid var(--line);
  border-radius:10px;font-size:12.5px;color:#334155;max-width:560px;line-height:1.45}
.exp-title{font-weight:700;color:#0f172a;margin-bottom:2px}
.exp-sum{margin:0 0 6px;color:#475569}
.exp-h{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#64748b;margin:6px 0 2px}
.exp-fac{margin:0;padding-left:18px}
.exp-fac li{margin:2px 0}
.exp-alt{border-collapse:collapse;width:100%;margin:3px 0 2px;font-size:12px}
.exp-alt th,.exp-alt td{border:1px solid #e2e8f0;padding:3px 6px;text-align:left;vertical-align:top}
.exp-alt th{background:#f1f5f9;font-size:11px;color:#475569}
.exp-pick{background:#ecfdf5}
.exp-pick .exp-flag{color:#15803d;font-weight:700;white-space:nowrap}
.exp-skip{color:#64748b}
.exp-skip .exp-flag{color:#94a3b8}
.exp-note{font-size:11px;color:#64748b;margin-top:1px}
.exp-rule{margin:6px 0 0;font-size:11.5px;color:#475569;font-style:italic}
.exp-plain,.exp-desglose{margin:0 0 6px;padding:7px 9px;background:#eff6ff;border-left:3px solid #1d5bd8;border-radius:6px;color:#1e3a8a;font-size:13px}
.exp-bulto{margin:0 0 6px;padding:6px 9px;background:#fef3c7;border-left:3px solid #d97706;border-radius:6px;color:#92400e;font-size:12.5px}
.exp-tech{margin:4px 0}
.exp-tech>summary{cursor:pointer;font-size:11.5px;color:#1d5bd8;font-weight:600;user-select:none}
.exp-tech[open]>summary{margin-bottom:4px}
.exp-gloss{margin:8px 0 0;padding-top:6px;border-top:1px dashed var(--line);font-size:11px;color:#64748b;line-height:1.5}

.infl-note{background:#fffbeb;border:1px solid #fde68a;color:#92400e;border-radius:8px;padding:6px 10px;font-size:12.5px;margin:6px 0}
.prio-top{background:#ecfdf5}
.prio-top td:first-child{color:#15803d;font-weight:700}

.footer{text-align:center;color:var(--muted);font-size:12px;padding:20px}

/* ============ BOTONES UNIFICADOS: 3 estilos fijos ============
   primario (azul)  = calcular / cargar vistas: Recalcular, Cargar, Agregar
   éxito (verde)    = escribir / confirmar: Guardar, Crear notas, Cargar OC, Confirmar, Aplicar
   peligro (rojo)   = quitar / vaciar
   (este bloque va al final a propósito: pisa los estilos viejos dispersos) */
.btn-primary,.btn-save,.np-crear,.oc-cargar,.ord-bulk-btn,.pp-prov-confirmar,.prio-guardar,.cd-del,.td-del-grupo{border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;line-height:1.2}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:#1a51c2}
.btn-save,.np-crear,.oc-cargar,.ord-bulk-btn,.pp-prov-confirmar,.prio-guardar{background:#166534;color:#fff}
.btn-save:hover,.np-crear:hover,.oc-cargar:hover,.ord-bulk-btn:hover,.pp-prov-confirmar:hover,.prio-guardar:hover{background:#14532d}
.cd-del,.td-del-grupo{background:#fee2e2;color:#991b1b}
.cd-del:hover,.td-del-grupo:hover{background:#fecaca}
.btn-primary:disabled,.btn-save:disabled,.np-crear:disabled,.oc-cargar:disabled,.ord-bulk-btn:disabled,.pp-prov-confirmar:disabled,.prio-guardar:disabled{opacity:.5;cursor:default}

/* ============ DISEÑO SEGUIMIENTO (handoff 2026-07-10) ============ */
/* chip de usuario del header */
.user-chip{background:rgba(255,255,255,.14);padding:5px 14px 5px 6px;gap:8px}
.user-avatar{width:26px;height:26px;border-radius:50%;background:#fff;color:#1d5bd8;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex:none}
/* título de página con barra azul */
#tab-seguim>h2{border-bottom:none;display:flex;align-items:center;gap:10px;font-size:20px;letter-spacing:-.2px;padding-bottom:0}
#tab-seguim>h2::before{content:"";width:6px;height:26px;border-radius:3px;background:#1d5bd8;flex:none}
/* barra de filtros */
#tab-seguim .controls{border-radius:14px;padding:18px 22px;gap:22px;border-color:#e4e9f2;box-shadow:0 1px 3px rgba(20,40,90,.05)}
#tab-seguim .controls>label{font-size:11px;font-weight:700;text-transform:uppercase;color:#7c8698;letter-spacing:.6px;gap:8px}
#tab-seguim .controls input,#tab-seguim .controls select{border-color:#d8dfeb;border-radius:10px;padding:9px 12px;font-size:13px}
/* toggle segmentado */
.seg-switch{background:#eef1f7;border-radius:10px;padding:4px;gap:0}
.seg-switch button{border:none;background:transparent;color:#4a5568;font-weight:600;font-size:13px;border-radius:8px;padding:8px 16px;box-shadow:none}
.seg-switch button:hover{background:#e2e8f2}
.seg-switch button.btn-primary{background:#1d5bd8;color:#fff;font-weight:700;box-shadow:0 2px 5px rgba(29,91,216,.3)}
.seg-switch button.btn-primary:hover{background:#1d5bd8}
/* KPIs */
#seg-cards{gap:14px;margin-bottom:22px}
#seg-cards .card{border-radius:14px;padding:18px 20px;border-color:#e4e9f2;box-shadow:0 1px 3px rgba(20,40,90,.05)}
#seg-cards .card-num{font-size:30px;font-weight:800;letter-spacing:-.8px;color:#1a2333}
#seg-cards .card-lbl{font-size:12.5px;color:#66707f;margin-top:8px}
#seg-cards .card-bad{background:#fdf2ef;border-color:#f5d9d1}
#seg-cards .card-bad .card-num{color:#c2492f}
#seg-cards .card-good{background:#e7f4ec;border-color:#bfe4cd}
#seg-cards .card-good .card-num{color:#1f7a44}
#seg-cards .card-warn .card-num{color:#96690f}
/* gráfico */
#seg-chart-box{border-radius:14px;padding:22px 24px;margin-bottom:8px;border-color:#e4e9f2;box-shadow:0 1px 3px rgba(20,40,90,.05)}
/* acordeón de notas / remitos */
.seg-nota{border-radius:14px;border-color:#e4e9f2;margin:10px 0;box-shadow:0 1px 3px rgba(20,40,90,.05)}
.seg-nota[open]{border-color:#c9d7f5}
.seg-nota>summary{padding:15px 20px;gap:14px}
.seg-nota>summary:hover{background:#f8fafd}
.seg-nota[open]>summary{background:#fff;border-bottom:1px solid #edf0f6}
.seg-nota>summary::before{content:"▶";width:22px;height:22px;background:#eef1f7;border-radius:6px;color:#66707f;font-size:10px;display:inline-flex;align-items:center;justify-content:center;transition:transform .18s ease;flex:none}
.seg-nota[open]>summary::before{transform:rotate(90deg)}
.seg-nota>summary b{font-size:15px}
.seg-meta{font-size:13px;color:#8b94a5}
.seg-nums{font-size:13px;color:#4a5568;white-space:nowrap}
.seg-bar{flex:1;min-width:90px;height:7px;border-radius:999px;background:#eef1f7;overflow:hidden}
.seg-bar-fill{display:block;height:100%;border-radius:999px}
.seg-pcttxt{font-size:13px;font-weight:700;min-width:52px;text-align:right}
/* chips de estado por color */
.chip.st-desp{background:#e7f4ec;color:#1f7a44}
.chip.st-pend{background:#fdf3e0;color:#96690f}
.chip.st-cump{background:#e8effc;color:#1d5bd8}
.chip.st-pick{background:#f0eafa;color:#6b3fb5}
/* tabla del detalle expandido */
#seg-lista table{border-collapse:separate;border-spacing:0 6px;background:transparent;border:0}
#seg-lista thead th{background:transparent;font-size:11px;font-weight:700;text-transform:uppercase;color:#7c8698;letter-spacing:.6px;border-bottom:none;box-shadow:none;position:static}
#seg-lista tbody td{background:#f8fafd;border-bottom:none;padding:11px 12px;font-size:13px}
#seg-lista tbody td:first-child{border-radius:10px 0 0 10px}
#seg-lista tbody td:last-child{border-radius:0 10px 10px 0;text-align:right}
#seg-lista tbody tr:nth-child(even){background:transparent}
#seg-lista tbody tr:hover td{background:#eef4ff}
#seg-lista .ord-id{font-family:ui-monospace,Consolas,monospace;font-size:12px;background:#eef1f7;border-radius:6px}
#seg-lista .tbl-scroll{padding:6px 14px 12px}
/* paginación del detalle de notas/remitos */
.seg-pager{display:flex;align-items:center;justify-content:center;gap:8px;margin:16px 0 6px;flex-wrap:wrap}
/* paginador estándar de todas las listas: « ‹ Anterior · Página [n] de N · Siguiente › » */
.seg-pager .pg-btn{background:#fff;border:1px solid #d8dfeb;color:#4a5568;border-radius:10px;padding:8px 14px;font-size:12.5px;font-weight:600;cursor:pointer;line-height:1.1}
.seg-pager .pg-btn:hover:not(:disabled){background:#f8fafd;border-color:#c9d7f5;color:#1d5bd8}
.seg-pager .pg-btn:disabled{opacity:.4;cursor:default;background:#fff;border-color:#e4e9f2;color:#94a3b8}
.seg-pager .pg-ext{padding:8px 12px;font-size:15px;line-height:.9}
.pg-ir{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:#4a5568;margin:0 4px}
.pg-ir .pg-num{width:56px;text-align:center;padding:8px 6px;border:1px solid #d8dfeb;border-radius:10px;font-size:13px;font-weight:700;color:#1a2333;background:#fff}
.pg-ir .pg-num:focus{outline:none;border-color:#1d5bd8;box-shadow:0 0 0 3px rgba(29,91,216,.12)}
.pg-ir .pg-num::-webkit-outer-spin-button,.pg-ir .pg-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.pg-ir .pg-num{-moz-appearance:textfield}
.pg-res{margin-left:6px}
/* "Ingresos sin implantar": por dónde se fue la mercadería que no vendió en el salón */
.ing-destino{white-space:normal;line-height:1.9}
.ing-chip{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap;cursor:default}
.ing-chip-canal{background:#eef4ff;color:#1d5bd8;border:1px solid #d6e2fb}
.ing-chip-transf{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}
.ing-chip-otras{background:#fdf2ef;color:#b4402a;border:1px solid #f5d9d1}
/* ---- Compras STARPAN ---- */
.sp-aviso{background:#fff8e6;border:1px solid #f5e3b3;color:#7a5c12;border-radius:10px;padding:9px 14px;margin:8px 0;font-size:12.5px}
.sp-acciones{display:flex;align-items:center;gap:10px;padding:10px 14px 4px;flex-wrap:wrap}
/* la cantidad de STARPAN va en el formato de compras (.oc-cell input): solo se le
   da un poco más de ancho, porque son cajas y el número puede tener varios dígitos */
.sp-cajas{width:72px;text-align:center;font-weight:700}
/* botón de exportar de los tableros de Rotación (va en la fila de filtros) */
#tab-rotacion .controls .rot-export,#tab-abc .controls .abc-export{padding:9px 16px;font-size:12.5px;font-weight:700;border-radius:10px;white-space:nowrap}
#tab-abc .abc-buscar{align-items:end}
#tab-abc .abc-buscar .abc-export{margin-left:auto}
.rot-exp-msg{font-size:12px;font-weight:600;align-self:end;padding-bottom:9px}
.seg-pag-btn{background:#fff;border:1px solid #d8dfeb;color:#4a5568;border-radius:10px;padding:8px 14px;font-size:12.5px;font-weight:600;cursor:pointer}
.seg-pag-btn:hover{background:#f8fafd;border-color:#c9d7f5;color:#1d5bd8}
.seg-pag-btn:disabled{opacity:.45;cursor:default;background:#fff;border-color:#d8dfeb;color:#4a5568}
/* tooltip breve del gráfico (sigue al mouse) */
.seg-tip{position:fixed;z-index:6000;background:#1a2333;color:#fff;padding:7px 12px;border-radius:8px;font-size:12.5px;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.3);white-space:nowrap}
.seg-tip b{color:#fff}
/* detalle del día clickeado en el gráfico */
.seg-det{border-radius:14px}
.seg-det table{border-collapse:separate;border-spacing:0 6px;background:transparent;border:0}
.seg-det thead th{background:transparent;font-size:11px;font-weight:700;text-transform:uppercase;color:#7c8698;border-bottom:none}
.seg-det tbody td{background:#fff;border-bottom:none;padding:9px 12px}
.seg-det tbody td:first-child{border-radius:8px 0 0 8px}
.seg-det tbody td:last-child{border-radius:0 8px 8px 0}

/* ============ LAYOUT: menú vertical a la izquierda + rutas ============ */
.layout{display:flex;min-height:100vh;width:100%}
.sidebar{width:236px;flex:none;background:linear-gradient(180deg,#1d5bd8 0%,#2a6ce8 55%,#1a51c2 100%);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:10}
.sb-brand{display:flex;align-items:center;gap:10px;padding:16px 12px 12px;position:relative}
.sb-brand .brand-logo{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex:none}
.sb-brand-txt{font-size:13.5px;font-weight:700;line-height:1.2;letter-spacing:-.2px}
#sb-toggle{position:absolute;right:-1px;top:20px;width:22px;height:30px;border:none;border-radius:8px 0 0 8px;background:rgba(255,255,255,.16);color:#fff;font-size:12px;cursor:pointer;padding:0;line-height:1}
#sb-toggle:hover{background:rgba(255,255,255,.3)}
.sb-nav{flex:1;display:flex;flex-direction:column;gap:2px;padding:4px 10px 10px}
.sb-nav .tab-grp{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:rgba(255,255,255,.55);padding:12px 8px 4px;border:none;margin:0;align-self:auto;display:block}
.sb-nav .tab-btn{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;color:rgba(255,255,255,.88);font-size:13.5px;font-weight:500;text-decoration:none;background:transparent;border:none;cursor:pointer;text-align:left;white-space:nowrap}
.sb-nav .tab-btn:hover{background:rgba(255,255,255,.12);color:#fff}
.sb-nav .tab-btn.active{background:#fff;color:#1d5bd8;font-weight:700;box-shadow:0 2px 6px rgba(10,25,60,.18)}
.sb-txt{overflow:hidden;text-overflow:ellipsis}
.sb-svg{display:none;align-items:center;justify-content:center;flex:none;line-height:0} /* íconos: solo en el menú colapsado */
.sb-foot{padding:10px;display:flex;flex-direction:column;gap:8px;border-top:1px solid rgba(255,255,255,.18)}
.sb-foot .btn-ppt{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.sb-foot .user-chip{justify-content:flex-start}
.content{flex:1;min-width:0}
/* menú colapsado (solo íconos) — se recuerda por computadora */
body.sb-mini .sidebar{width:62px}
body.sb-mini .sb-brand{flex-direction:column;justify-content:center;gap:8px;padding:14px 6px 10px}
/* menú colapsado: el toggle va centrado DEBAJO del logo, no encima (chocaban) */
body.sb-mini #sb-toggle{position:static;margin:0 auto;width:30px;height:24px;border-radius:8px}
body.sb-mini .sb-brand-txt,body.sb-mini .sb-nav .tab-grp,body.sb-mini .sb-txt{display:none}
body.sb-mini .sb-nav{padding:4px 8px 10px}
body.sb-mini .sb-nav .tab-btn{justify-content:center;padding:10px 0}
body.sb-mini .sb-svg{display:flex}
body.sb-mini .sb-foot .btn-ppt{padding-left:0;padding-right:0}
body.sb-mini .sb-foot .user-chip{justify-content:center;padding:5px 6px}
body.sb-mini .sb-foot .user-chip b,body.sb-mini .sb-foot .user-chip a{display:none}

/* ============ ANÁLISIS: hub de dashboards (cards) ============ */
#tab-analisis>h2{border-bottom:none;display:flex;align-items:center;gap:10px;font-size:20px;letter-spacing:-.2px;padding-bottom:0}
#tab-analisis>h2::before{content:"";width:6px;height:26px;border-radius:3px;background:#1d5bd8;flex:none}
#tab-analisis>p.muted{font-size:13.5px;color:#66707f}
.an-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:14px}
.an-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:8px;background:#fff;border:1px solid #e4e9f2;border-radius:14px;box-shadow:0 1px 3px rgba(20,40,90,.05);padding:22px 20px;text-decoration:none;color:#1a2333;transition:box-shadow .15s,transform .15s,border-color .15s}
.an-card:hover{border-color:#c9d7f5;box-shadow:0 6px 18px rgba(20,40,90,.10);transform:translateY(-2px)}
.an-card-emoji{font-size:34px;line-height:1;width:64px;height:64px;border-radius:16px;background:#eef3fb;display:flex;align-items:center;justify-content:center}
.an-card-tit{font-size:16px;font-weight:700}
.an-card-desc{font-size:12.5px;color:#66707f;line-height:1.45;max-width:260px}
.an-volver-w{margin:0 0 2px}
.an-volver{font-size:13px;color:#66707f;text-decoration:none;font-weight:600}
.an-volver:hover{color:#1d5bd8}

/* ============ DASHBOARD ROTACIÓN ============ */
#tab-rotacion>h2{border-bottom:none;display:flex;align-items:center;gap:10px;font-size:20px;letter-spacing:-.2px;padding-bottom:0}
#tab-rotacion>h2::before{content:"";width:6px;height:26px;border-radius:3px;background:#1d5bd8;flex:none}
.rot-h3{font-size:16px;margin:22px 0 6px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#tab-rotacion .controls{border-radius:14px;padding:16px 20px;gap:20px;border-color:#e4e9f2;box-shadow:0 1px 3px rgba(20,40,90,.05)}
#tab-rotacion .controls>label{font-size:11px;font-weight:700;text-transform:uppercase;color:#7c8698;letter-spacing:.6px;gap:8px}
#tab-rotacion .controls input,#tab-rotacion .controls select{border-color:#d8dfeb;border-radius:10px;padding:9px 12px;font-size:13px}
#rot-cards{gap:14px;margin:12px 0 14px}
#rot-cards .card,#rot-cards2 .card{border-radius:14px;padding:16px 18px;border-color:#e4e9f2;box-shadow:0 1px 3px rgba(20,40,90,.05)}
#rot-cards .card-num,#rot-cards2 .card-num{font-size:26px;font-weight:800;letter-spacing:-.6px;color:#1a2333}
#rot-cards .card-lbl,#rot-cards2 .card-lbl{font-size:12.5px;color:#66707f;margin-top:6px}
#rot-cards2{gap:14px;margin:12px 0 4px}
#rot-cards2 .card-bad{background:#fdf2ef;border-color:#f5d9d1}
#rot-cards2 .card-bad .card-num{color:#c2492f}
#rot-cards2 .card-good{background:#e7f4ec;border-color:#bfe4cd}
#rot-cards2 .card-good .card-num{color:#1f7a44}
#rot-chart-box{border-radius:14px;padding:20px 22px;margin-bottom:8px;border-color:#e4e9f2;box-shadow:0 1px 3px rgba(20,40,90,.05)}
.rot-lista table{border-collapse:separate;border-spacing:0 6px;background:transparent;border:0}
.rot-lista thead th{background:transparent;font-size:11px;font-weight:700;text-transform:uppercase;color:#7c8698;letter-spacing:.5px;border-bottom:none}
.rot-lista tbody td{background:#f8fafd;border-bottom:none;padding:9px 11px;font-size:13px}
.rot-lista tbody td:first-child{border-radius:10px 0 0 10px}
.rot-lista tbody td:last-child{border-radius:0 10px 10px 0}
.rot-lista tbody tr:hover td{background:#eef3fb}
.rot-lista .ord-id{font-family:ui-monospace,Consolas,monospace;font-size:12px;background:#eef1f7;border-radius:6px;color:#4a5568;padding:2px 7px;cursor:pointer}
/* encabezados ordenables (tabla días de inventario): click ordena, hover explica */
.rot-lista .th-sort{cursor:pointer;user-select:none;white-space:nowrap}
.rot-lista .th-sort:hover{color:#1d5bd8}
.rot-lista .th-help{text-decoration:underline dotted;text-underline-offset:3px}
/* celda de stock clickeable -> popup de desglose (físico − comprometido) */
.rot-lista .rot-stock-click{cursor:pointer}
.rot-lista .rot-stock-click b{border-bottom:1px dotted #94a3b8}
.rot-lista .rot-stock-click:hover b{color:#1d5bd8;border-bottom-color:#1d5bd8}
.rot-stock-box{max-width:560px}
/* ===== ABC de ventas ===== */
.abc-bg-a{background:#1f8a4c}.abc-bg-b{background:#d98324}.abc-bg-c{background:#8d99ab}
.abc-resumen{display:flex;gap:8px;align-items:center;margin-left:auto}
/* barras apiladas: participación de cada clase en la venta y en el articulado */
.abc-barras{display:flex;flex-direction:column;gap:7px;margin:14px 0 16px}
.abc-barra-fila{display:flex;align-items:center;gap:12px}
.abc-barra-lbl{width:86px;text-align:right;font-size:11px;font-weight:700;color:#7c8698;text-transform:uppercase;letter-spacing:.5px;cursor:default}
.abc-barra{flex:1;display:flex;height:28px;border-radius:9px;overflow:hidden}
.abc-seg{display:flex;align-items:center;justify-content:center;color:#fff;font-size:11.5px;font-weight:700;white-space:nowrap;overflow:hidden;min-width:0}
.abc-seg + .abc-seg{border-left:2px solid #fff}
/* selector A/B/C */
.abc-selector{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 16px}
.abc-tab{flex:1;min-width:220px;display:flex;align-items:center;gap:13px;padding:13px 16px;border:1px solid #dde3ec;border-radius:14px;background:#fff;cursor:pointer;text-align:left;font:inherit;transition:border-color .12s, box-shadow .12s}
.abc-tab:hover{border-color:#b9c6dd}
.abc-tab-a{--abc:#1f8a4c}.abc-tab-b{--abc:#d98324}.abc-tab-c{--abc:#8d99ab}
.abc-tab.abc-on{border-color:var(--abc);box-shadow:0 0 0 2px var(--abc) inset;background:#fbfdff}
.abc-letra{width:46px;height:46px;border-radius:13px;background:var(--abc);color:#fff;font-size:23px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.abc-info{display:flex;flex-direction:column;gap:2px;line-height:1.3}
.abc-info > b{font-size:16.5px}
/* mini barra de participación dentro de la tabla */
.abc-pct{position:relative;min-width:130px}
.abc-pct .abc-pct-bar{position:absolute;left:8px;top:50%;transform:translateY(-50%);height:15px;border-radius:5px;opacity:.16;pointer-events:none}
.abc-pct b{position:relative}
/* encabezados ordenables */
.rot-lista .abc-th{cursor:pointer;user-select:none;white-space:nowrap}
.rot-lista .abc-th:hover{color:#1d5bd8}
/* buscador + badge de coincidencias por clase */
.abc-buscar{margin:0 0 14px;align-items:center;gap:12px}
.abc-tab{position:relative}
.abc-match{position:absolute;top:8px;right:10px;font-size:10.5px;font-weight:700;color:#1f8a4c;background:#e7f6ee;border-radius:20px;padding:2px 8px}
.abc-match-0{color:#94a3b8;background:#f1f5f9}
.rot-desglose{width:100%;margin-top:10px}
.rot-desglose td,.rot-desglose th{padding:7px 10px}
.rot-desglose tfoot td{border-top:2px solid #e2e8f0}
/* solapas internas del dashboard (Índice / Días de inventario / Sin rotación) */
.rot-vtabs{margin:6px 0 16px}
/* selector de FAMILIA de cada vista (compras y cada sucursal, independientes) */
.fam-vista{font-weight:700;color:#1d5bd8;border-color:#cfe0ff !important;background:#f7faff !important}
.ord-grp-vacio{margin:10px 16px 14px}
/* solapas de la tabla de merma + buscador de esa tabla, en la misma línea */
.merma-tabs-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.merma-buscar{position:relative;display:inline-flex;align-items:center;margin:0}
.merma-buscar-ic{position:absolute;left:12px;display:inline-flex;color:#98a2b3;pointer-events:none;transition:color .15s}
.merma-buscar input{min-width:268px;padding:9px 34px 9px 36px;border:1px solid #d8dfeb;border-radius:999px;font-size:13px;background:#fff;color:#1f2937;transition:border-color .15s,box-shadow .15s}
.merma-buscar input::placeholder{color:#98a2b3}
.merma-buscar input:hover{border-color:#c7d2e4}
.merma-buscar input:focus{outline:none;border-color:#1d5bd8;box-shadow:0 0 0 3px rgba(29,91,216,.13)}
.merma-buscar:focus-within .merma-buscar-ic,.merma-buscar.on .merma-buscar-ic{color:#1d5bd8}
.merma-buscar.on input{border-color:#1d5bd8;background:#f7faff}
.merma-q-clear{position:absolute;right:6px;border:none;background:transparent;color:#98a2b3;font-size:17px;line-height:1;padding:2px 7px;border-radius:999px;cursor:pointer;box-shadow:none}
.merma-q-clear:hover{background:#eef1f7;color:#4a5568}
/* los controles del dashboard de merma, con el mismo aire que rotación y seguimiento */
#tab-merma .controls input,#tab-merma .controls select{border-color:#d8dfeb;border-radius:10px;padding:9px 12px;font-size:13px}
.rot-vtabs .seg-switch{display:inline-flex}

/* ============ CONFIG: modo de carga de transferencias ============ */
#tab-config>h2{border-bottom:none;display:flex;align-items:center;gap:10px;font-size:20px;letter-spacing:-.2px;padding-bottom:0}
#tab-config>h2::before{content:"";width:6px;height:26px;border-radius:3px;background:#1d5bd8;flex:none}
.cfg-block{background:#fff;border:1px solid #e4e9f2;border-radius:14px;box-shadow:0 1px 3px rgba(20,40,90,.05);padding:20px 22px;margin:12px 0;max-width:720px}
.cfg-block h3{margin:0 0 6px;font-size:15px}
.cfg-block>p.muted{font-size:13.5px;color:#66707f;margin:0 0 14px}
.cfg-block>p.muted b{color:#1a2333}
.cfg-radio{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid #d8dfeb;border-radius:12px;margin-bottom:10px;cursor:pointer;transition:background .12s,border-color .12s}
.cfg-radio:hover{background:#f8fafd}
.cfg-radio input{margin-top:2px;width:17px;height:17px;accent-color:#1d5bd8;cursor:pointer;flex:none}
.cfg-radio span{display:flex;flex-direction:column;gap:3px}
.cfg-radio b{font-size:14px;color:#1a2333}
.cfg-radio .muted{font-size:12.5px}
.cfg-radio-on{border-color:#1d5bd8;background:#eef3fb;box-shadow:inset 3px 0 0 #1d5bd8}
.cfg-modo-msg{margin-top:6px;min-height:16px;font-weight:600}
.cfg-aviso-modo{background:#fdf7ea;border:1px solid #f0e0b8;border-radius:12px;color:#6b5518;padding:10px 14px;font-size:13px;margin:0 0 12px}
.cfg-aviso-modo b{color:#6b5518}
/* popup de comentario del modo ventas */
.nv-box{max-width:480px}
.nv-box .nv-com{width:100%;margin:8px 0 12px;padding:9px 11px;border:1px solid #d8dfeb;border-radius:10px;font-size:13px;font-family:inherit;resize:vertical;box-sizing:border-box}
.nv-cancelar{background:#fff;border:1px solid #d8dfeb;color:#4a5568;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer}
.nv-cancelar:hover{background:#f8fafd}

/* ============ DISEÑO TRANSFERENCIAS (handoff 2026-07-10) ============ */
/* títulos de sección con barra vertical (azul = sugeridas, verde = directa) */
#tab-transf>h2{border-bottom:none;display:flex;align-items:center;gap:10px;font-size:20px;letter-spacing:-.2px;padding-bottom:0}
#tab-transf>h2::before{content:"";width:6px;height:26px;border-radius:3px;background:#1d5bd8;flex:none}
#tab-transf>h2.h2-verde::before{background:#1f8a4c}
#tab-transf>p.muted{font-size:13.5px;color:#66707f}
#tab-transf>p.muted b{color:#1a2333}
/* cards de parámetros / filtros */
#tab-transf .controls{border-radius:14px;padding:18px 22px;gap:22px;border-color:#e4e9f2;box-shadow:0 1px 3px rgba(20,40,90,.05)}
#tab-transf .controls>label{font-size:11px;font-weight:700;text-transform:uppercase;color:#7c8698;letter-spacing:.6px;gap:8px}
#tab-transf .controls input,#tab-transf .controls select{border-color:#d8dfeb;border-radius:10px;padding:9px 12px;font-size:13px}
#tab-transf .controls .btn-primary{border-radius:10px;box-shadow:0 2px 6px rgba(29,91,216,.3)}
#tab-transf #td-buscar{min-width:320px}
/* acordeón de grupos: card 14px + chevron en cuadrado + chip contador */
#tab-transf .ord-group{border-radius:14px;border-color:#e4e9f2;margin:12px 0;box-shadow:0 1px 3px rgba(20,40,90,.05)}
#tab-transf .ord-group[open]{border-color:#c9d7f5}
#tab-transf .ord-group>summary{padding:15px 20px;gap:12px}
#tab-transf .ord-group>summary:hover{background:#f8fafd}
#tab-transf .ord-group[open]>summary{background:#fff;border-bottom:1px solid #edf0f6}
#tab-transf .ord-group>summary::before{content:"▶";width:22px;height:22px;background:#eef1f7;border-radius:6px;color:#66707f;font-size:10px;display:inline-flex;align-items:center;justify-content:center;transition:transform .18s ease;flex:none}
#tab-transf .ord-group[open]>summary::before{transform:rotate(90deg)}
#tab-transf .ord-group>summary b{font-size:15px}
.ord-chip{background:#e8effc;color:#1d5bd8;border-radius:999px;padding:3px 11px;font-size:12px;font-weight:700;white-space:nowrap}
/* filtros dentro del grupo expandido */
#tab-transf .ord-grp-controls{margin:14px 16px 6px;gap:10px}
#tab-transf .ord-grp-controls select,#tab-transf .ord-grp-controls input[type=text]{border:1px solid #d8dfeb;border-radius:10px;padding:9px 12px;font-size:13px;background:#fff}
#tab-transf .ord-grp-prov{min-width:190px}
#tab-transf .ord-grp-filter{min-width:220px}
/* chip-checkbox "Solo ofertas" con punto verde */
#tab-transf .ord-grp-oferta-lbl{background:#fff;border:1px solid #d8dfeb;border-radius:999px;padding:8px 14px;color:#4a5568;font-size:13px;font-weight:600;gap:8px}
#tab-transf .ord-grp-oferta-lbl:hover{background:#f8fafd}
#tab-transf .ord-grp-oferta-lbl input{accent-color:#1f8a4c}
.of-dot{width:8px;height:8px;border-radius:50%;background:#2e9e5b;flex:none;display:inline-block}
/* mismo chip-checkbox para "Solo decisión" (⚠️) */
#tab-transf .ord-grp-dec-lbl{background:#fff;border:1px solid #d8dfeb;border-radius:999px;padding:8px 14px;color:#4a5568;font-size:13px;font-weight:600;gap:8px}
#tab-transf .ord-grp-dec-lbl:hover{background:#fffdf5}
#tab-transf .ord-grp-dec-lbl input{accent-color:#d97706}
/* barra "aplicar a todos" (verde suave) + botón crear notas en la misma fila */
#tab-transf .ord-bulk{background:#f4f9f5;border:1px solid #d5e8da;border-radius:10px;color:#2d5738;font-size:13px;padding:8px 12px;margin:8px 0 8px 16px}
#tab-transf .ord-bulk-pct{border:1px solid #d8dfeb;border-radius:8px;padding:6px 8px;width:56px}
#tab-transf .ord-bulk-btn{background:#1f8a4c;border-radius:8px;padding:8px 14px;font-size:12.5px;font-weight:700}
#tab-transf .ord-bulk-btn:hover{background:#1a7440}
#tab-transf .np-bar{display:inline-flex;margin:8px 16px;vertical-align:middle}
#tab-transf .np-crear{background:#14532d;border-radius:10px;padding:9px 16px;font-size:13px;font-weight:700;box-shadow:0 2px 6px rgba(20,83,45,.25)}
#tab-transf .np-crear:hover{background:#0f4425}
#tab-transf .td-cat-cerrar{background:#fff;border:1px solid #d8dfeb;color:#4a5568;border-radius:8px;padding:8px 14px;font-size:12.5px;font-weight:600;cursor:pointer}
#tab-transf .td-cat-cerrar:hover{background:#f8fafd}
/* tablas con filas redondeadas (como Seguimiento) */
#tab-transf .tbl-scroll{padding:2px 16px 14px}
#tab-transf .ord-group table{border-collapse:separate;border-spacing:0 6px;background:transparent;border:0}
#tab-transf .ord-group thead th{background:transparent;font-size:11px;font-weight:700;text-transform:uppercase;color:#7c8698;letter-spacing:.6px;border-bottom:none}
#tab-transf .ord-group tbody td{background:#f8fafd;border-bottom:none;padding:10px 12px;font-size:13px}
#tab-transf .ord-group tbody td:first-child{border-radius:10px 0 0 10px}
#tab-transf .ord-group tbody td:last-child{border-radius:0 10px 10px 0}
#tab-transf .ord-group tbody tr:nth-child(even){background:transparent}
#tab-transf .ord-group tbody tr:hover td{background:#eef3fb}
#tab-transf .ord-group tbody tr.ord-oferta td{background:#eefaf2}
#tab-transf .ord-group tbody tr.ord-oferta:hover td{background:#ddf3e6}
#tab-transf .ord-id{font-family:ui-monospace,Consolas,monospace;font-size:12px;background:#eef1f7;border-radius:6px;color:#4a5568;padding:3px 8px}
#tab-transf .ord-prod{color:#1d5bd8;text-decoration:none;font-weight:500}
#tab-transf .ord-prod:hover{color:#1547ab;text-decoration:underline}
#tab-transf .oc-cell input,#tab-transf .textra-pct{border:1px solid #d8dfeb;border-radius:8px;padding:5px 7px}
/* lupita "¿por qué?" como botón cuadrado */
#tab-transf .exp-toggle>summary{width:30px;height:30px;border-radius:8px;background:#fff;border:1px solid #d8dfeb;display:inline-flex;align-items:center;justify-content:center;font-size:13px;padding:0}
#tab-transf .exp-toggle>summary:hover{background:#eef3fb}

/* ---- solapa Mix de productos: padrón por proveedor con tildes por sucursal ---- */
#tab-mix>h2{border-bottom:none;display:flex;align-items:center;gap:10px;font-size:20px;letter-spacing:-.2px;padding-bottom:0}
#tab-mix>h2::before{content:"";width:6px;height:26px;border-radius:3px;background:#1d5bd8;flex:none}
#tab-mix>p.muted{font-size:13.5px;color:#66707f}
#tab-mix>p.muted b{color:#1a2333}
#tab-mix .controls{border-radius:14px;padding:18px 22px;gap:22px;border-color:#e4e9f2;box-shadow:0 1px 3px rgba(20,40,90,.05)}
#tab-mix .controls>label{font-size:11px;font-weight:700;text-transform:uppercase;color:#7c8698;letter-spacing:.6px;gap:8px}
#tab-mix .controls input,#tab-mix .controls select{border-color:#d8dfeb;border-radius:10px;padding:9px 12px;font-size:13px;max-width:340px}
.mix-card{background:#fff;border:1px solid #e4e9f2;border-radius:14px;box-shadow:0 1px 3px rgba(20,40,90,.05);margin:12px 0;overflow:hidden}
.mix-head{padding:15px 20px;border-bottom:1px solid #edf0f6;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.mix-head b{font-size:15px}
#tab-mix .tbl-scroll{padding:2px 16px 14px}
#tab-mix .mix-card table{border-collapse:separate;border-spacing:0 6px;background:transparent;border:0}
#tab-mix .mix-card thead th{background:transparent;font-size:11px;font-weight:700;text-transform:uppercase;color:#7c8698;letter-spacing:.6px;border-bottom:none}
#tab-mix .mix-card tbody td{background:#f8fafd;border-bottom:none;padding:9px 12px;font-size:13px}
#tab-mix .mix-card tbody td:first-child{border-radius:10px 0 0 10px}
#tab-mix .mix-card tbody td:last-child{border-radius:0 10px 10px 0}
#tab-mix .mix-card tbody tr:hover td{background:#eef3fb}
#tab-mix .mix-col,#tab-mix .mix-cell{text-align:center;width:120px}
.mix-col-lbl{display:inline-flex;align-items:center;gap:6px;cursor:pointer;text-transform:uppercase;white-space:nowrap}
#tab-mix .mix-chk,#tab-mix .mix-all{width:16px;height:16px;accent-color:#1d5bd8;cursor:pointer}
#tab-mix .ord-id{font-family:ui-monospace,Consolas,monospace;font-size:12px;background:#eef1f7;border-radius:6px;color:#4a5568;padding:3px 8px;cursor:pointer}

/* ---- modal de producto (rediseño) ---- */
.modal-overlay{background:rgba(15,25,50,.45);backdrop-filter:blur(3px)}
/* más ancho que el handoff (760px): nuestra tabla tiene 6 columnas (Última transferencia).
   TODOS los popups scrollean verticalmente como un todo (barra a la derecha). */
.modal-box{border-radius:18px;max-width:880px;padding:18px 24px;box-shadow:0 20px 60px rgba(10,25,60,.3);max-height:94vh;overflow-y:auto;overflow-x:hidden}
.modal-box h3{font-size:16.5px}
.modal-box h3{font-size:18px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.modal-close{width:34px;height:34px;border-radius:50%;background:#eef1f7;font-size:15px;top:14px;right:14px}
.modal-close:hover{background:#e2e7f0}
.pp-idbadge{font-family:ui-monospace,Consolas,monospace;font-size:12px;background:#eef1f7;border-radius:6px;color:#4a5568;padding:3px 8px;cursor:pointer;font-weight:600}
.pp-idbadge::before{content:"ID "}
.pp-idbadge:hover{background:#dbeafe;color:#1e3a8a}
.pp-chips{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 8px}
.pp-chip{background:#f4f6fb;border:1px solid #e4e9f2;border-radius:999px;padding:5px 12px;font-size:12.5px;color:#66707f}
.pp-chip b{color:#1a2333}
/* banner ámbar "sugerida sin cargar" */
.pp-alerta{background:#fdf7ea;border:1px solid #f0e0b8;border-radius:12px;color:#6b5518;display:flex;gap:10px;align-items:flex-start;padding:8px 12px;font-size:13px}
.pp-alerta b{color:#6b5518}
.pp-alerta-ic{width:26px;height:26px;border-radius:7px;background:#f5e6c4;display:inline-flex;align-items:center;justify-content:center;flex:none}
/* solapas subrayadas del modal (azul) */
.pp-tabs{gap:18px;margin:10px 0 6px;border-bottom:1px solid #e4e9f2}
.pp-tab{padding:8px 2px;font-size:13.5px;color:#8b94a5;font-weight:600;border-bottom:2.5px solid transparent;margin-bottom:-1px}
.pp-tab:hover{color:#1d5bd8}
.pp-tab-on,.pp-tab.pp-tab-on{color:#1d5bd8;border-bottom-color:#1d5bd8;font-weight:700}
/* controles del modal: label uppercase + toggle segmentado Unidades/Bultos */
.modal-box .controls{border:none;box-shadow:none;background:transparent;padding:0;margin:0 0 2px}
.modal-box .controls>label{font-size:11px;font-weight:700;text-transform:uppercase;color:#7c8698;letter-spacing:.6px;gap:8px}
.modal-box .controls select{border:1px solid #d8dfeb;border-radius:10px;padding:9px 12px;font-size:13px;min-width:200px}
.pp-seg{background:#eef1f7;border-radius:10px;padding:4px;display:inline-flex;margin-left:auto;align-self:flex-end}
.pp-useg{border:none;background:transparent;color:#4a5568;font-weight:600;font-size:13px;border-radius:8px;padding:7px 16px;cursor:pointer}
.pp-useg:hover{background:#e2e8f2}
.pp-useg.on,.pp-useg.on:hover{background:#fff;color:#1a2333;font-weight:700;box-shadow:0 1px 3px rgba(20,40,90,.12)}
/* tablas del modal con filas redondeadas */
.pp-panel table{border-collapse:separate;border-spacing:0 6px;background:transparent;border:0}
.pp-panel table thead th{background:transparent;font-size:11px;font-weight:700;text-transform:uppercase;color:#7c8698;letter-spacing:.6px;border-bottom:none}
.pp-panel table{border-spacing:0 4px}
.pp-panel table tbody td{background:#f8fafd;border-bottom:none;padding:6px 12px;font-size:13px}
.pp-panel>table th:nth-child(2){min-width:170px} /* que "comprometido → disponible" no se parta en 3 renglones */
.pp-panel table tbody td:first-child{border-radius:12px 0 0 12px}
.pp-panel table tbody td:last-child{border-radius:0 12px 12px 0}
.pp-panel>table td:nth-child(n+4){white-space:nowrap} /* fechas (últ. compra/transferencia/venta) en un renglón; los encabezados sí pueden partirse */
.pp-panel .pp-note{background:#f4f6fb;border-radius:10px;padding:7px 11px;color:#66707f;font-size:11px;line-height:1.4;margin:6px 0 0}
/* cambiar proveedor: fila actual destacada + badge habitual + botón deshabilitado */
.prio-check{display:inline-flex;width:20px;height:20px;border-radius:50%;color:#fff;font-size:11px;align-items:center;justify-content:center;margin-right:8px;vertical-align:middle;flex:none}
.prio-cur .prio-check{background:#1f8a4c}
.pp-panel .prio-cur td{background:#f0f8f2;border-top:1.5px solid #bfdcc7;border-bottom:1.5px solid #bfdcc7}
.pp-panel .prio-cur td:first-child{border-left:1.5px solid #bfdcc7}
.pp-panel .prio-cur td:last-child{border-right:1.5px solid #bfdcc7}
.pp-panel .pp-prov-opt:not(.prio-cur):hover td,.pp-panel .prio-opt:not(.prio-cur):hover td{background:#eef3fb}
.pp-panel .prio-pending td{background:#e8effc}
.pp-panel .prio-pending td:first-child{box-shadow:inset 3px 0 0 #1d5bd8}
.chip-hab{background:#fdf3e0;color:#96690f;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:700;white-space:nowrap}
.pp-prov-confirmar,.prio-guardar{background:#1f8a4c;border-radius:10px;padding:9px 16px;font-weight:700}
.pp-prov-confirmar:hover,.prio-guardar:hover{background:#1a7440}
.pp-prov-confirmar:disabled,.prio-guardar:disabled{background:#dbe6de;color:#7d9486;opacity:1;cursor:not-allowed}
.pp-prov-confirmar:disabled:hover,.prio-guardar:disabled:hover{background:#dbe6de}
/* ============ DISEÑO COMPRAS (handoff 2026-07-13) ============ */
/* títulos con barra vertical (azul = sugeridas, verde = compra directa) + meta al lado */
#tab-plan>h2{border-bottom:none;display:flex;align-items:center;gap:10px;font-size:20px;letter-spacing:-.2px;padding-bottom:0}
#tab-plan>h2::before{content:"";width:6px;height:26px;border-radius:3px;background:#1d5bd8;flex:none}
#tab-plan>h2.h2-verde::before{background:#1f8a4c}
#plan-ord-resumen{font-size:13.5px;color:#8b94a5;font-weight:400;letter-spacing:0}
#tab-plan>p.muted{font-size:13.5px;color:#66707f}
#tab-plan>p.muted b{color:#1a2333}
/* cards de parámetros / filtros / alta de compra directa */
#tab-plan .controls{border-radius:14px;padding:18px 22px;gap:22px;border-color:#e4e9f2;box-shadow:0 1px 3px rgba(20,40,90,.05)}
#tab-plan .controls>label{font-size:11px;font-weight:700;text-transform:uppercase;color:#7c8698;letter-spacing:.6px;gap:8px}
#tab-plan .controls input,#tab-plan .controls select{border-color:#d8dfeb;border-radius:10px;padding:9px 12px;font-size:13px}
#tab-plan .controls .btn-primary{border-radius:10px;box-shadow:0 2px 6px rgba(29,91,216,.3)}
/* acordeón por destino: card 14px + chevron en cuadrado + chip con el total */
#tab-plan .ord-group{border-radius:14px;border-color:#e4e9f2;margin:12px 0;box-shadow:0 1px 3px rgba(20,40,90,.05)}
#tab-plan .ord-group[open]{border-color:#c9d7f5}
#tab-plan .ord-group>summary{padding:15px 20px;gap:12px}
#tab-plan .ord-group>summary:hover{background:#f8fafd}
#tab-plan .ord-group[open]>summary{background:#fff;border-bottom:1px solid #edf0f6}
#tab-plan .ord-group>summary::before{content:"▶";width:22px;height:22px;background:#eef1f7;border-radius:6px;color:#66707f;font-size:10px;display:inline-flex;align-items:center;justify-content:center;transition:transform .18s ease;flex:none}
#tab-plan .ord-group[open]>summary::before{transform:rotate(90deg)}
#tab-plan .ord-group>summary b{font-size:15px}
#tab-plan .ord-grp-controls{margin:12px 16px 4px;gap:10px}
#tab-plan .ord-grp-controls input[type=text]{border:1px solid #d8dfeb;border-radius:10px;padding:9px 12px;font-size:13px;background:#fff;min-width:300px}
/* sub-solapa por proveedor: fila gris redondeada; abierta = card con acento azul */
#tab-plan .ord-group .ord-sub{margin:8px 16px;border:1px solid transparent;border-radius:10px;box-shadow:none;background:transparent}
#tab-plan .ord-group .ord-sub>summary{background:#f8fafd;border-radius:10px;padding:10px 14px;font-size:13.5px}
#tab-plan .ord-group .ord-sub>summary:hover{background:#eef3fb}
#tab-plan .ord-group .ord-sub>summary::before{width:20px;height:20px;font-size:9px;background:#eef1f7}
#tab-plan .ord-group .ord-sub[open]{border-color:#e4e9f2;border-left:3px solid #1d5bd8;border-radius:12px;background:#fff}
#tab-plan .ord-group .ord-sub[open]>summary{background:#fff;border-radius:12px 12px 0 0;border-bottom:1px solid #edf0f6}
#tab-plan .ord-group .ord-sub>summary b{font-size:13.5px}
.ord-sub-tot{margin-left:auto;font-weight:700;color:#4a5568;font-size:13px;white-space:nowrap}
/* toolbar del proveedor: chip de entrega + botón verde + quitar rojo suave */
#tab-plan .oc-bar{background:transparent;border:none;padding:10px 16px 2px;margin:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#4a5568;font-size:12.5px}
.oc-fecha-chip{display:inline-flex;align-items:center;gap:8px;background:#f4f6fb;border:1px solid #e4e9f2;border-radius:10px;padding:7px 12px;font-size:12.5px;color:#4a5568;white-space:nowrap}
.oc-fecha-chip input[type=date]{border:1px solid #d8dfeb;border-radius:8px;padding:4px 8px;font-size:12.5px;color:#1a2333;background:#fff}
#tab-plan .oc-cargar{background:#14532d;border-radius:10px;padding:9px 16px;font-size:13px;font-weight:700;box-shadow:0 2px 6px rgba(20,83,45,.25);margin-left:0}
#tab-plan .oc-cargar:hover{background:#0f4425}
#tab-plan .cd-del{background:#fdf2ef;color:#c2492f;border:1px solid #f5d9d1;border-radius:10px;padding:8px 14px;font-size:12.5px;font-weight:700;margin-left:0}
#tab-plan .cd-del:hover{background:#fbe4de}
/* tablas con filas redondeadas, compactas: las 12 columnas siguen entrando sin scroll horizontal */
#tab-plan .tbl-scroll{padding:2px 14px 12px}
#tab-plan .ord-group table{border-collapse:separate;border-spacing:0 5px;background:transparent;border:0}
#tab-plan .ord-group thead th{background:transparent;font-size:11px;font-weight:700;text-transform:uppercase;color:#7c8698;letter-spacing:.4px;border-bottom:none;padding:4px 8px}
#tab-plan .ord-group tbody td{background:#f8fafd;border-bottom:none;padding:6px 8px;font-size:13px}
#tab-plan .ord-group tbody td:first-child{border-radius:10px 0 0 10px}
#tab-plan .ord-group tbody td:last-child{border-radius:0 10px 10px 0}
#tab-plan .ord-group tbody tr:nth-child(even){background:transparent}
#tab-plan .ord-group tbody tr:hover td{background:#eef3fb}
#tab-plan .ord-group tfoot td{background:#f4f6fb;border-bottom:none;padding:7px 8px}
#tab-plan .ord-group tfoot td:first-child{border-radius:10px 0 0 10px}
#tab-plan .ord-group tfoot td:last-child{border-radius:0 10px 10px 0}
#tab-plan .ord-id{font-family:ui-monospace,Consolas,monospace;font-size:11.5px;background:#eef1f7;border-radius:6px;color:#4a5568;padding:2px 7px}
#tab-plan .ord-prod{color:#1d5bd8;text-decoration:none;font-weight:500}
#tab-plan .ord-prod:hover{color:#1547ab;text-decoration:underline}
#tab-plan .oc-cell input{border:1px solid #d8dfeb;border-radius:8px}
/* editado ≠ default: el verde le gana al borde nuevo (acá y en transferencias) */
#tab-plan .oc-cell input.oc-edited,#tab-transf .oc-cell input.oc-edited{border-color:#86efac;background:#f0fdf4;color:#166534;font-weight:600}
/* filas "nuevo / sin stock": sin venta en 90 días y sin stock en el período (cantidad manual) */
#tab-plan .ord-group tbody tr.ord-nuevo td{background:#fdf2ef}
#tab-plan .ord-group tbody tr.ord-nuevo:hover td{background:#fbe4de}
.chip-nuevo{display:inline-block;background:#c2492f;color:#fff;border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;vertical-align:middle}
.chip-nuevo.chip-sinstock{background:#fdf2ef;color:#c2492f;border:1px solid #f5d9d1}
/* transferencia que manda el mínimo de 1 bulto por sucursal (no la demanda) */
.chip-min-bulto{display:inline-block;background:#eef4ff;color:#1d5bd8;border:1px solid #cfe0ff;border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:700;white-space:nowrap;vertical-align:middle;cursor:help}
/* Ofertas que se listan aunque la sucursal no las necesite por demanda */
.chip-solo-oferta{display:inline-block;background:#eaf7ee;color:#1d7a45;border:1px solid #c9e7d5;border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:700;white-space:nowrap;vertical-align:middle;cursor:help}
.ord-sinstock{display:inline-block;color:#a35b12;background:#fdf1e3;border:1px solid #f0d9b5;border-radius:8px;padding:2px 8px;font-size:11.5px;font-weight:600;cursor:help}
.nuevos-toggle{background:#fff;border:1px solid #f5d9d1;color:#c2492f;border-radius:10px;padding:8px 14px;font-size:12.5px;font-weight:700;cursor:pointer}
.nuevos-toggle:hover{background:#fdf2ef}
/* fila unificada: dentro de la 🔍, cabecera de cada parte (reposición JBJ / para transferir) */
.exp-parte{margin:10px 0 2px;font-size:12.5px;color:#1a2333}
.exp-toggle .exp-parte:first-of-type{margin-top:6px}
#tab-plan .exp-toggle>summary{width:30px;height:30px;border-radius:8px;background:#fff;border:1px solid #d8dfeb;display:inline-flex;align-items:center;justify-content:center;font-size:13px;padding:0}
#tab-plan .exp-toggle>summary:hover{background:#eef3fb}
/* ---- modal "Orden de compra" ---- */
.oc-modal h3{font-size:18px}
.ocp-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:6px 0 10px}
.oc-res{border-collapse:separate;border-spacing:0 6px;background:transparent;border:0}
.oc-res thead th{background:transparent;font-size:11px;font-weight:700;text-transform:uppercase;color:#7c8698;letter-spacing:.6px;border-bottom:none}
.oc-res tbody td{background:#f8fafd;border-bottom:none;padding:9px 12px;font-size:13px}
.oc-res tbody td:first-child{border-radius:12px 0 0 12px}
.oc-res tbody td:last-child{border-radius:0 12px 12px 0}
.oc-modal .ord-id{font-family:ui-monospace,Consolas,monospace;font-size:12px;background:#eef1f7;border-radius:6px;color:#4a5568;padding:3px 8px}
.ocp-tots{background:#f4f6fb;border:1px solid #e4e9f2;border-radius:12px;padding:10px 16px}
.ocp-tot-final-row{border-top:1px solid #e4e9f2}
.ocp-tots .ocp-tot-final{color:#1d5bd8;font-size:15px}
.ocp-ab,.ocp-cond,.ocp-obs-w{background:#fff;border:1px solid #e4e9f2;border-radius:12px;padding:12px 14px}
.ocp-ab input,.ocp-pago input{border:1px solid #d8dfeb;border-radius:8px;padding:5px 8px}
.ocp-pago select{border:1px solid #d8dfeb;border-radius:10px;padding:7px 10px}
.ocp-del{background:#fdf2ef;color:#c2492f;border:1px solid #f5d9d1;border-radius:8px}
.ocp-del:hover{background:#fbe4de}
.ocp-obs-w textarea{border:1px solid #d8dfeb;border-radius:12px;min-height:84px}
.ocp-pagos-nota .textra-ok{display:inline-block;background:#e7f4ec;color:#1f7a44;border-radius:999px;padding:3px 12px;font-size:12.5px;font-weight:700}
.oc-modal .ocp-cargar{background:#14532d;border-radius:10px;padding:9px 18px;font-weight:700;box-shadow:0 2px 6px rgba(20,83,45,.25)}
.oc-modal .ocp-cargar:hover{background:#0f4425}

/* pantallas bajas (notebook con escala de Windows): el popup se compacta más para entrar sin scroll */
@media (max-height: 720px) {
  .modal-overlay{padding:10px}
  .modal-box{padding:14px 20px;max-height:96vh}
  .modal-box h3{font-size:16px;margin:0 0 4px;padding-right:40px}
  .modal-close{width:28px;height:28px;font-size:13px;top:10px;right:10px}
  .pp-chips{margin:2px 0 6px;gap:6px}
  .pp-chip{padding:3px 10px;font-size:12px}
  .pp-alerta{padding:6px 10px;font-size:12.5px}
  .pp-alerta-ic{width:22px;height:22px}
  .pp-tabs{margin:8px 0 4px}
  .pp-tab{padding:6px 2px;font-size:13px}
  .modal-box .controls{padding:0;margin:0}
  .modal-box .controls select{padding:6px 10px}
  .pp-useg{padding:5px 14px;font-size:12.5px}
  .pp-panel table tbody td{padding:5px 10px;font-size:12.5px}
  .pp-panel table thead th{font-size:10.5px}
  .pp-panel .pp-note{padding:6px 10px;font-size:11px;margin:6px 0 0}
}

/* ---- ADMINISTRACIÓN: permisos por usuario ---- */
.adm-barra{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 14px}
.adm-buscar input{min-width:340px}
.adm-filtro-on{background:#eef4ff;color:#1d5bd8;border:1px solid #cfe0ff;border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:600}
.adm-filtro-on a{color:#1d5bd8;margin-left:6px;text-decoration:none;font-weight:700}
/* estado vacío: sin búsqueda no se lista a nadie */
.adm-vacio{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;padding:44px 20px;border:1px dashed #d8dfeb;border-radius:14px;background:#fbfcfe;margin:6px 0 16px}
.adm-vacio-ic{color:#b6c2d6}
.adm-vacio b{font-size:15px}
.adm-vacio .muted{max-width:520px;font-size:13px;line-height:1.5}
.adm-ver-cargados{color:#1d5bd8;font-weight:600;cursor:pointer;text-decoration:none;font-size:13px;margin-top:4px}
.adm-ver-cargados:hover{text-decoration:underline}
.adm-sin{padding:22px 4px}
/* resultado de la búsqueda: una fila por usuario, clickeable */
.adm-lista{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.adm-fila{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:11px;padding:10px 14px;cursor:pointer;box-shadow:none;font:inherit;color:inherit}
.adm-fila:hover{border-color:#1d5bd8;background:#f8fafd}
.adm-fila.adm-sel{border-color:#1d5bd8;background:#eef4ff;box-shadow:0 0 0 3px rgba(29,91,216,.10)}
.adm-ava{flex:none;width:32px;height:32px;border-radius:50%;background:#1d5bd8;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.adm-ava-lg{width:40px;height:40px;font-size:16px}
.adm-fila-txt{display:flex;flex-direction:column;gap:1px;min-width:150px}
.adm-fila-chips{margin-left:auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:60%}
.adm-fila-ir{color:#b6c2d6;font-size:16px;flex:none}
.adm-chip{display:inline-block;background:#eef1f7;color:#4a5568;border-radius:999px;padding:2px 10px;font-size:11.5px;font-weight:600;white-space:nowrap}
.adm-chip-admin{background:#eef4ff;color:#1d5bd8;border:1px solid #cfe0ff}
.adm-chip-def{background:#fffbeb;color:#92400e;border:1px solid #fde68a;font-weight:500}
/* panel de edición */
.adm-panel{border:1px solid #cfe0ff;background:#f7faff;border-radius:14px;padding:16px 18px;margin:0 0 16px;box-shadow:0 2px 10px rgba(29,91,216,.06)}
.adm-panel-head{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.adm-panel-tit{display:flex;flex-direction:column;gap:1px;font-size:15px}
.adm-cerrar{margin-left:auto;background:transparent;border:none;color:#98a2b3;font-size:16px;cursor:pointer;box-shadow:none;padding:2px 9px;border-radius:999px}
.adm-cerrar:hover{background:#e2e8f2;color:#4a5568}
.adm-hint{font-size:12.5px;color:#4a5568;margin:6px 0 12px}
.adm-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px}
.adm-tab{display:flex;align-items:flex-start;gap:10px;background:#fff;border:1px solid #d8dfeb;border-radius:11px;padding:11px 13px;cursor:pointer;font-size:13px;transition:border-color .12s,background .12s,box-shadow .12s}
.adm-tab:hover{border-color:#9db8e8}
.adm-tab.on{border-color:#1d5bd8;background:#eef4ff;box-shadow:0 0 0 2px rgba(29,91,216,.10)}
.adm-tab input{margin-top:3px;cursor:pointer;accent-color:#1d5bd8;flex:none}
.adm-tab-ic{font-size:16px;line-height:1.2;flex:none}
.adm-tab-txt{display:flex;flex-direction:column;gap:2px}
.adm-tab-txt .muted{line-height:1.4}
/* Cards de Análisis repartibles sueltas: sangradas bajo "Análisis (completo)",
   ocupando el ancho completo de la grilla de solapas */
.adm-subtabs{grid-column:1 / -1;margin:0 0 4px 30px;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:6px}
.adm-subtab{padding:5px 10px;font-size:12.5px;background:#fbfcfe}
/* Restricción de familias en Análisis (panel del usuario) */
.adm-fams{margin-top:12px;border:1px solid #e6ecf5;border-radius:10px;padding:10px 12px;background:#fbfcfe}
.adm-fam-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:4px}
.adm-fam-it{display:flex;align-items:center;gap:7px;font-size:12.5px;padding:4px 8px;border-radius:7px;cursor:pointer}
.adm-fam-it:hover{background:#eef4ff}
.adm-fam-it.on{background:#eaf0fb;font-weight:700}
.adm-tab-admin{margin-top:10px;background:#fffdf5;border-color:#fde68a}
.adm-tab-admin:hover{border-color:#f6c453}
.adm-tab-admin.on{background:#fffbeb;border-color:#d97706;box-shadow:0 0 0 2px rgba(217,119,6,.12)}
.adm-tab-admin input{accent-color:#d97706}
.adm-nota{font-size:12px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:9px;padding:9px 12px;margin:10px 0 0;line-height:1.5}
.adm-save{margin-top:14px;display:flex;align-items:center;gap:10px}
/* aviso de cambios del mix que no se pudieron guardar (sesión vencida, red, etc.) */
.mix-pend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fef2f2;border:1px solid #fecaca;border-left:4px solid #dc2626;border-radius:10px;padding:12px 16px;margin:10px 0;font-size:13px;color:#7f1d1d}
.mix-pend b{font-size:13.5px}
.mix-pend a{color:#b91c1c;font-weight:700}
.mix-pend-retry{background:#dc2626;color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:12.5px;font-weight:700;cursor:pointer;margin-left:auto}
.mix-pend-retry:hover{background:#b91c1c}
/* el paginador del mix es el estándar (.seg-pager), solo se le da aire adentro de la tarjeta */
.mix-card .seg-pager{margin:10px 0 4px}
/* filtro de días sin venta (rotación): el número y la palabra "días" van dentro
   de la misma caja, así el campo queda de la misma altura que los otros filtros */
.rot-vent-box{display:inline-flex;align-items:center;align-self:flex-start;background:#fff;border:1px solid #d8dfeb;border-radius:10px;padding-right:12px}
.rot-vent-box:focus-within{border-color:#1d5bd8;box-shadow:0 0 0 3px rgba(29,91,216,.12)}
#tab-rotacion .controls .rot-vent-box input.rot-dias{width:44px;border:none;background:transparent;box-shadow:none;padding:9px 4px 9px 12px;text-align:center;font-size:14px;font-weight:700;color:#1a2333}
.rot-vent-box input.rot-dias:focus{outline:none}
.rot-vent-box input.rot-dias::-webkit-outer-spin-button,.rot-vent-box input.rot-dias::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.rot-vent-box input.rot-dias{-moz-appearance:textfield}
.rot-vent-sufijo{font-size:11px;font-weight:700;color:#7c8698;letter-spacing:.6px;text-transform:uppercase}

/* ---- Informe de facturas directas (Análisis) ----
   Cada fila del listado se despliega y muestra el detalle de artículos abajo,
   así que la fila tiene que verse clickeable y el detalle bien pegado a ella. */
.fd-tabla tbody tr.fd-fila{cursor:pointer}
.fd-tabla tbody tr.fd-fila:hover{background:#f4f7fc}
.fd-pop-box{max-width:900px}
.fd-pop-datos{display:flex;flex-wrap:wrap;gap:6px 22px;margin:2px 0 14px;font-size:12.5px;color:#374151}
.fd-pop-datos b{color:#7c8698;font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;margin-right:5px}
.fd-pop-imp{font-weight:700}
.fd-pop-imp.fd-neg{color:#c2492f}
.fd-det-tabla{width:100%;border-collapse:collapse;font-size:12.5px}
.fd-det-tabla th{text-align:left;font-weight:700;color:#475569;padding:5px 8px;border-bottom:1px solid #e3e9f2}
.fd-det-tabla td{padding:5px 8px;border-bottom:1px solid #edf1f7}
.fd-det-tabla tfoot td{border-bottom:none;padding-top:8px}

/* Administración → Mails enviados */
.ml-tabla{width:100%;border-collapse:collapse;font-size:13px}
.ml-tabla th{text-align:left;font-weight:700;color:#475569;padding:7px 9px;border-bottom:1px solid #e3e9f2;white-space:nowrap}
.ml-tabla td{padding:7px 9px;border-bottom:1px solid #edf1f7;vertical-align:top}
.ml-tabla tbody tr{cursor:pointer}
.ml-tabla tbody tr:hover{background:#f4f7fc}
.ml-para{max-width:320px;color:#5b6473;font-size:12px;word-break:break-word}
.ml-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:700;white-space:nowrap;background:#eef2f7;color:#475569}
.ml-badge.ml-t-prov{background:#e7f4ec;color:#1d7a45}
.ml-badge.ml-t-alerta{background:#fdf1e3;color:#a35b12}
.ml-badge.ml-t-error{background:#fdeaea;color:#b3261e}
.ml-oc{display:inline-block;margin-right:8px;font-size:12px;color:#374151;white-space:nowrap}
.ml-cuerpo{white-space:pre-wrap;font-family:inherit;font-size:13px;line-height:1.5;background:#f7f9fc;border:1px solid #e6ecf5;border-radius:8px;padding:10px 12px;margin:0 0 14px}
.ml-oc-blk{margin-top:16px}
.ml-oc-blk h4{margin:0 0 4px;font-size:13.5px;color:#243244}
.ml-badge.ml-t-int{background:#eaf0fb;color:#1d5bd8}
/* Quién recibe cada mail (los tres flujos), arriba de la lista de enviados */
.ml-cfg{border:1px solid #e6ecf5;border-radius:12px;padding:4px 16px 14px;background:#fbfcfe;margin-bottom:22px}
.ml-cfg h3{margin:14px 0 10px;font-size:14px;color:#243244}
.ml-cfg-fila{display:grid;grid-template-columns:minmax(180px,260px) 1fr;gap:10px 18px;padding:10px 0;border-top:1px solid #eef2f7;align-items:start}
.ml-cfg-fila:first-of-type{border-top:none}
.ml-cfg-tit{display:flex;flex-direction:column;gap:2px;font-size:13px;color:#243244}
.ml-cfg-edit{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}
.ml-cfg-inp{flex:1 1 320px;min-width:240px;padding:7px 9px;border:1px solid #d8dfeb;border-radius:8px;font-size:12.5px;font-family:inherit;resize:vertical}
.ml-cfg-inp:focus{border-color:#1d5bd8;outline:none}
@media (max-width:720px){.ml-cfg-fila{grid-template-columns:1fr}}
/* Auditoría */
.au-tabla .au-fecha{white-space:nowrap}
.au-tabla .au-detalle{max-width:560px;word-break:break-word;color:#374151;font-size:12.5px}
.au-tabla tbody tr{cursor:default}
.btn-mini{border:1px solid #d8dfeb;background:#fff;color:#1d5bd8;border-radius:7px;padding:3px 10px;font-size:12px;font-weight:700;cursor:pointer}
.btn-mini:hover{background:#eef4ff;border-color:#b9c6da}

/* Stocks negativos */
.sn-tabla td{vertical-align:top}
.sn-neg b{color:#c2492f}

/* Filtro de vendedores con tildes (estilo Excel): un botón que dice a quién
   estás mirando y un panel flotante con la lista. */
.fd-multi-w{position:relative}
.fd-multi-btn{min-width:150px;max-width:230px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 10px;border:1px solid #d8dfeb;border-radius:8px;background:#fff;font-size:13px;color:#374151;cursor:pointer}
.fd-multi-btn:hover{border-color:#b9c6da}
.fd-multi-btn.fd-multi-on{border-color:#1d5bd8;background:#eef4ff;color:#1d5bd8;font-weight:700}
.fd-multi-pop{position:absolute;z-index:40;top:100%;left:0;margin-top:4px;width:265px;background:#fff;border:1px solid #d8dfeb;border-radius:10px;box-shadow:0 10px 28px rgba(20,32,54,.16);padding:6px}
.controls label.fd-multi-todos{border-bottom:1px solid #eef1f6;margin-bottom:4px;padding-bottom:7px;border-radius:0}
.fd-multi-lista{max-height:210px;overflow-y:auto}
.fd-multi-pie{display:flex;justify-content:flex-end;border-top:1px solid #eef1f6;margin-top:5px;padding-top:7px}
.fd-multi-ok{padding:5px 16px;font-size:12.5px}
.fd-multi-ok:disabled{opacity:.45;cursor:not-allowed}
/* la tilde va al lado del nombre: .controls label impone flex-direction column
   a todos los label de la barra de filtros y le gana en especificidad */
.controls label.fd-multi-it{display:flex;flex-direction:row;align-items:center;gap:8px;padding:5px 7px;border-radius:6px;font-size:12.5px;color:#374151;cursor:pointer}
.controls label.fd-multi-it input{flex:0 0 auto;margin:0}
.fd-multi-it:hover{background:#f4f7fc}
.fd-tabla th.th-sort{cursor:pointer;white-space:nowrap}
.fd-tabla th.th-sort:hover{color:#1d5bd8}
.fd-multi-ancho{width:330px}
.fd-multi-q{width:100%;margin-bottom:6px;padding:6px 8px;border:1px solid #d8dfeb;border-radius:7px;font-size:12.5px}
.fd-multi-q:focus{outline:none;border-color:#1d5bd8;box-shadow:0 0 0 3px rgba(29,91,216,.12)}
.fd-multi-vacio{padding:8px 6px;margin:0}
/* Oferta que todavía no arrancó: se muestra igual porque hay que pedirla ahora
   para tenerla cuando empiece, pero en azul para no confundirla con una vigente. */
.ord-oferta-badge.ord-oferta-prox{background:#e8effc;color:#1d5bd8;border-color:#c7d8f7}
/* Encabezados clickeables de la tabla de transferencias */
.ord-group th.th-sort{cursor:pointer;user-select:none;white-space:nowrap}
.ord-group th.th-sort:hover{color:#1d5bd8}
/* Popup del producto en STARPAN: el desglose de dónde sale la cantidad a pedir */
.sp-prod-box{max-width:620px}
.sp-prod-tabla tfoot td{border-top:1px solid #e3e9f2;padding-top:8px;font-weight:600}
.sp-orden a.sp-prod{color:#1d5bd8;cursor:pointer;text-decoration:none}
.sp-orden a.sp-prod:hover{text-decoration:underline}
/* Tabla de stock por sucursal del popup de STARPAN (mismo aire que el de compras) */
.sp-prod-box .pp-tabla{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}
.sp-prod-box .pp-tabla th{text-align:left;font-weight:700;color:#475569;padding:6px 8px;border-bottom:1px solid #e3e9f2}
.sp-prod-box .pp-tabla td{padding:7px 8px;border-bottom:1px solid #edf1f7}
/* Resumen para el proveedor: es lo que se le pasa a STAR PAN, va destacado */
.sp-resumen>summary{background:#f0f7f2}
.sp-resumen{border-color:#cfe3d6}
.sp-prod-box .pp-tabla th:nth-child(n+2),.sp-prod-box .pp-tabla td:nth-child(n+2){white-space:nowrap}
.sp-prod-box .sp-prod-tabla{margin-top:14px}
/* Barra del estado de sincronización de pedidos (STARPAN) */
.sp-sync{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0 4px}
/* Popup de configuración: stock mínimo por producto + % de bandeja */
.sp-cfg-box{max-width:980px}
.sp-cfg-tabla .sp-pct-inp{width:56px;padding:4px 6px;border:1px solid #d8dfeb;border-radius:7px;font-size:12.5px;text-align:right}
.sp-cfg-tabla .sp-pct-inp:focus{border-color:#1d5bd8;outline:none}
.sp-cfg-tabla{margin-top:12px}
.sp-cfg-tabla .sp-min-inp{width:80px;padding:4px 6px;border:1px solid #d8dfeb;border-radius:7px;font-size:12.5px;text-align:right}
.sp-cfg-tabla .sp-min-inp:focus{border-color:#1d5bd8;outline:none}
/* Rotación: el botón de actualizar propio, al lado del título */
.rot-h2{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rot-h2 button{font-size:13px;padding:6px 12px}
/* STARPAN apagado: el cartel que reemplaza toda la sección */
.sp-suspendido{border:1px solid #f0d9b5;background:#fdf6ea;border-radius:12px;padding:14px 16px;color:#7a5312;font-size:13px;line-height:1.55;margin:10px 0}
/* Compra directa STARPAN: el camino MANUAL, que es la excepción (el pedido se
   manda solo a la noche). Va cerrado y discreto, pero a mano. */
.sp-manual{margin:14px 0 10px;border:1px solid #e3e9f2;border-radius:12px;padding:8px 14px;background:#fff}
.sp-manual>summary{cursor:pointer;font-size:13.5px;color:#243244;padding:4px 0}
.sp-manual>summary:hover{color:#1d5bd8}
.sp-manual[open]>summary{border-bottom:1px solid #eef2f7;margin-bottom:8px}
/* Herramientas de prueba de STARPAN (se pueden sacar cuando el circuito esté fino) */
.sp-pruebas{margin:6px 0 10px;border:1px dashed #d8dfeb;border-radius:10px;padding:6px 12px;background:#fbfcfe}
.sp-pruebas>summary{cursor:pointer;font-size:12.5px;color:#7c8698;font-weight:600}
