
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@300;400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{
  --bg-sidebar:#2c3e50;--bg-sidebar-h:#34495e;--bg-sidebar-a:#1a252f;--acc:#3498db;
  --bg-top:#2c3e50;--bg-main:#f0f2f5;--bg-panel:#fff;--bg-alt:#f7f8fa;
  --bg-in:#fff;--bg-thead:#e4e8ed;--bg-rh:#edf2f8;--bg-rs:#d6e8fb;
  --bdr:#d0d5dd;--bdrl:#e4e8ed;--bdri:#b8bec8;
  --tp:#1a2332;--ts:#4a5568;--tm:#8796aa;--tsb:#cdd8e3;--tsbm:#7a90a4;
  --blue:#2563eb;--bludk:#1d4ed8;--bluelt:#dbeafe;
  --grn:#16a34a;--grnlt:#dcfce7;--amb:#d97706;--amblt:#fef3c7;
  --red:#dc2626;--redlt:#fee2e2;--vio:#7c3aed;--violt:#ede9fe;
  --sw:212px;--r:4px;
  --sh:0 1px 4px rgba(0,0,0,.09);--shmd:0 4px 16px rgba(0,0,0,.14);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Noto Sans',sans-serif;font-size:12px;background:var(--bg-main);color:var(--tp);height:100vh;overflow:hidden;display:flex;flex-direction:column}
/* TOPBAR */
.topbar{height:40px;background:var(--bg-top);display:flex;align-items:center;padding:0 12px;gap:3px;flex-shrink:0;box-shadow:0 2px 4px rgba(0,0,0,.2);z-index:200}
.tplogo{font-weight:700;font-size:13px;color:#fff;padding-right:14px;border-right:1px solid rgba(255,255,255,.15);margin-right:6px;white-space:nowrap}
.tplogo span{color:var(--acc)}
.mp{padding:3px 10px;font-size:11px;color:rgba(255,255,255,.6);cursor:pointer;border-radius:3px;transition:.15s;white-space:nowrap}
.mp:hover{background:rgba(255,255,255,.1);color:#fff}
.sp{flex:1}
.tpright{display:flex;align-items:center;gap:10px}
.tpclock{font-family:'IBM Plex Mono',monospace;font-size:10px;color:rgba(255,255,255,.5)}
.tpuser{display:flex;align-items:center;gap:7px;font-size:11px;color:rgba(255,255,255,.7)}
.av{width:26px;height:26px;border-radius:50%;background:var(--acc);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff}
/* TOOLBAR */
.toolbar{height:38px;background:#fff;border-bottom:2px solid var(--bdr);display:flex;align-items:center;padding:0 10px;gap:3px;flex-shrink:0;overflow-x:auto}
.toolbar::-webkit-scrollbar{height:0}
.tbb{display:flex;align-items:center;gap:4px;padding:4px 9px;border:1px solid var(--bdr);border-radius:var(--r);background:var(--bg-alt);color:var(--ts);font-size:11px;font-weight:500;cursor:pointer;transition:.15s;white-space:nowrap;font-family:inherit}
.tbb:hover{background:var(--bluelt);border-color:var(--blue);color:var(--bludk)}
.tbb.tbg{background:var(--grnlt);border-color:var(--grn);color:var(--grn)}
.tbb.tbg:hover{background:var(--grn);color:#fff}
.tsep{width:1px;height:22px;background:var(--bdr);margin:0 3px;flex-shrink:0}
/* LAYOUT */
.app-body{display:flex;flex:1;overflow:hidden}
/* SIDEBAR */
.sidebar{width:var(--sw);background:var(--bg-sidebar);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto}
.sidebar::-webkit-scrollbar{width:4px}
.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:4px}
.sbg{border-bottom:1px solid rgba(255,255,255,.06)}
.sbgh{display:flex;align-items:center;justify-content:space-between;padding:8px 12px 7px;cursor:pointer;user-select:none;transition:.15s}
.sbgh:hover{background:rgba(255,255,255,.05)}
.sbgl{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;color:rgba(255,255,255,.85);text-transform:uppercase;letter-spacing:.3px}
.sbgico{font-size:12px;opacity:.7}
.sbch{font-size:9px;color:var(--tsbm);transition:transform .2s}
.sbg.open .sbch{transform:rotate(180deg)}
.sbitems{display:none}
.sbg.open .sbitems{display:block}
.sbitem{display:flex;align-items:center;gap:7px;padding:7px 12px 7px 26px;cursor:pointer;color:var(--tsb);font-size:11.5px;transition:.15s;border-left:3px solid transparent}
.sbitem:hover{background:var(--bg-sidebar-h);color:#fff}
.sbitem.active{background:var(--bg-sidebar-a);color:#fff;border-left-color:var(--acc)}
.sbii{font-size:12px;opacity:.65;flex-shrink:0}
.sbitem.active .sbii{opacity:1}
.sb-badge{margin-left:auto;background:var(--red);color:#fff;font-size:9px;font-weight:700;padding:1px 5px;border-radius:10px;min-width:16px;text-align:center}
/* MAIN */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.view{display:none;flex-direction:column;flex:1;overflow:hidden}
.view.active{display:flex}
/* PAGE HDR */
.phdr{background:var(--bg-panel);border-bottom:1px solid var(--bdr);padding:8px 16px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;box-shadow:var(--sh)}
.phbread{font-size:10px;color:var(--tm);margin-bottom:2px}
.phbread span{color:var(--blue)}
.ptitle{font-size:15px;font-weight:700;color:var(--tp)}
/* PANEL */
.panel{background:var(--bg-panel);border:1px solid var(--bdr);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.panhdr{background:var(--bg-alt);border-bottom:1px solid var(--bdr);padding:7px 12px;display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:700;color:var(--ts);text-transform:uppercase;letter-spacing:.8px}
.phb{width:3px;height:13px;border-radius:2px;background:var(--blue);flex-shrink:0}
.phb.a{background:var(--amb)}.phb.g{background:var(--grn)}.phb.r{background:var(--red)}
.panbody{padding:12px}
/* BADGE */
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700}
.bdot{width:5px;height:5px;border-radius:50%;background:currentColor}
.bopen{background:var(--amblt);color:var(--amb);border:1px solid #fbbf24}
.brecv{background:var(--bluelt);color:var(--blue);border:1px solid #93c5fd}
.bubic{background:var(--violt);color:var(--vio);border:1px solid #c4b5fd}
.bdone{background:var(--grnlt);color:var(--grn);border:1px solid #4ade80}
.bpick{background:var(--amblt);color:var(--amb);border:1px solid #fbbf24}
.bpack{background:var(--bluelt);color:var(--blue);border:1px solid #93c5fd}
.bship{background:var(--grnlt);color:var(--grn);border:1px solid #4ade80}
.bcanc{background:var(--redlt);color:var(--red);border:1px solid #fca5a5}
/* SEARCHBAR */
.sbar{display:flex;gap:8px;padding:8px 14px;background:var(--bg-panel);border-bottom:1px solid var(--bdr);flex-shrink:0;align-items:center}
.sin{background:var(--bg-in);border:1px solid var(--bdri);border-radius:var(--r);padding:5px 10px;font-size:12px;font-family:'Noto Sans',sans-serif;color:var(--tp);outline:none;transition:.15s;width:220px}
.sin:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(37,99,235,.1)}
.fsel{background:var(--bg-in);border:1px solid var(--bdri);border-radius:var(--r);padding:5px 8px;font-size:11px;font-family:inherit;color:var(--ts);outline:none;cursor:pointer}
.scnt{font-size:11px;color:var(--tm);margin-left:auto}
/* TABLE */
.ta{flex:1;overflow-y:auto;padding:12px 14px}
.ta::-webkit-scrollbar{width:6px}
.ta::-webkit-scrollbar-thumb{background:var(--bdr);border-radius:3px}
.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse}
thead th{background:var(--bg-thead);border-bottom:2px solid var(--bdr);border-right:1px solid var(--bdrl);padding:7px 8px;text-align:left;white-space:nowrap;font-size:10px;font-weight:700;color:var(--tm);text-transform:uppercase;letter-spacing:.6px;position:sticky;top:0;z-index:2}
thead th:last-child{border-right:none}
tbody tr{border-bottom:1px solid var(--bdrl);cursor:pointer;transition:background .1s}
tbody tr:hover{background:var(--bg-rh)}
tbody tr.sel{background:var(--bg-rs)}
td{padding:6px 8px;font-size:12px;color:var(--tp);white-space:nowrap;border-right:1px solid var(--bdrl)}
td:last-child{border-right:none}
td.mono{font-family:'IBM Plex Mono',monospace;font-size:11px}
td.mut{color:var(--tm)}
td.grn{color:var(--grn);font-weight:600}
td.amb{color:var(--amb);font-weight:600}
td.redd{color:var(--red);font-weight:600}
td.blu{color:var(--blue);font-weight:600}
.erow td{text-align:center;color:var(--tm);padding:24px;font-style:italic}
/* KPI */
.kgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:12px 14px}
.kcard{background:var(--bg-panel);border:1px solid var(--bdr);border-radius:var(--r);padding:12px 14px;box-shadow:var(--sh)}
.klbl{font-size:10px;font-weight:700;color:var(--tm);text-transform:uppercase;letter-spacing:.7px;margin-bottom:6px}
.kval{font-size:22px;font-weight:700;font-family:'IBM Plex Mono',monospace}
.ksub{font-size:10px;color:var(--tm);margin-top:3px}
.kcard.bl{border-top:3px solid var(--blue)}.kcard.bl .kval{color:var(--blue)}
.kcard.gr{border-top:3px solid var(--grn)}.kcard.gr .kval{color:var(--grn)}
.kcard.am{border-top:3px solid var(--amb)}.kcard.am .kval{color:var(--amb)}
.kcard.rd{border-top:3px solid var(--red)}.kcard.rd .kval{color:var(--red)}
/* FORM */
.frow{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.frow:last-child{margin-bottom:0}
.field{display:flex;flex-direction:column;gap:3px;flex:1;min-width:110px}
.field.w2{flex:2}.field.w3{flex:3}
.flbl{font-size:10px;font-weight:700;color:var(--tm);text-transform:uppercase;letter-spacing:.6px}
.fin{background:var(--bg-in);border:1px solid var(--bdri);border-radius:var(--r);padding:5px 8px;font-size:12px;font-family:inherit;color:var(--tp);outline:none;transition:.15s;width:100%}
.fin:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(37,99,235,.1)}
.fin[readonly]{background:var(--bg-alt);color:var(--ts)}
select.fin{cursor:pointer}
textarea.fin{resize:vertical;min-height:40px}
/* BTN */
.btn{padding:5px 14px;border-radius:var(--r);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:.15s;border:1px solid;white-space:nowrap}
.btp{background:var(--blue);border-color:var(--bludk);color:#fff}.btp:hover{background:var(--bludk)}
.bts{background:var(--grn);border-color:#15803d;color:#fff}.bts:hover{background:#15803d}
.bta{background:var(--amb);border-color:#b45309;color:#fff}.bta:hover{background:#b45309}
.btg{background:#fff;border-color:var(--bdr);color:var(--ts)}.btg:hover{border-color:var(--blue);color:var(--blue)}
.btd{background:#fff;border-color:#fca5a5;color:var(--red)}.btd:hover{background:var(--redlt)}
.btsm{padding:3px 9px;font-size:11px}
/* BOTTOM BAR */
.bbar{background:var(--bg-panel);border-top:2px solid var(--bdr);padding:6px 14px;display:flex;align-items:center;gap:7px;flex-shrink:0}
.bbsp{flex:1}
/* STATUS */
.stbar{background:var(--bg-top);padding:3px 12px;display:flex;align-items:center;gap:18px;height:22px;flex-shrink:0}
.sbs{display:flex;align-items:center;gap:5px;font-size:10px;color:rgba(255,255,255,.55);font-family:'IBM Plex Mono',monospace}
.sbonl{width:5px;height:5px;border-radius:50%;background:#22c55e;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.sbr{margin-left:auto;color:var(--acc);font-size:10px;font-family:'IBM Plex Mono',monospace}
/* MODAL */
.mov{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1000;display:none;align-items:center;justify-content:center;backdrop-filter:blur(2px)}
.mov.open{display:flex}
.modal{background:var(--bg-panel);border-radius:6px;box-shadow:0 8px 32px rgba(0,0,0,.2);display:flex;flex-direction:column;max-height:90vh;overflow:hidden;animation:mop .18s ease}
@keyframes mop{from{opacity:0;transform:translateY(-14px) scale(.97)}to{opacity:1;transform:none}}
.mlg{width:920px;max-width:96vw}
.mmd{width:660px;max-width:96vw}
.msm{width:440px;max-width:96vw}
.mhdr{background:var(--bg-top);padding:10px 16px;display:flex;align-items:center;gap:10px;flex-shrink:0}
.mtit{font-size:13px;font-weight:700;color:#fff;flex:1}
.mcls{background:none;border:none;color:rgba(255,255,255,.6);font-size:18px;cursor:pointer;line-height:1;padding:0 4px}
.mcls:hover{color:#fff}
.mbody{overflow-y:auto;flex:1}
.mbody::-webkit-scrollbar{width:6px}
.mbody::-webkit-scrollbar-thumb{background:var(--bdr);border-radius:3px}
.msec{padding:14px 16px;border-bottom:1px solid var(--bdr)}
.msec:last-child{border-bottom:none}
.mfoot{background:var(--bg-alt);border-top:1px solid var(--bdr);padding:10px 16px;display:flex;align-items:center;gap:8px;flex-shrink:0}
.mfsp{flex:1}
/* LINES TABLE */
.ltbl{width:100%;border-collapse:collapse}
.ltbl thead th{background:var(--bg-thead);border-bottom:2px solid var(--bdr);padding:6px 8px;font-size:10px;font-weight:700;color:var(--tm);text-align:left;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}
.ltbl tbody tr{border-bottom:1px solid var(--bdrl)}
.ltbl tbody tr:hover{background:var(--bg-rh)}
.ltbl td{padding:3px 4px}
.lin{width:100%;background:var(--bg-in);border:1px solid var(--bdrl);border-radius:3px;padding:4px 6px;font-size:11px;font-family:inherit;color:var(--tp);outline:none}
.lin:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(37,99,235,.1)}
select.lin{cursor:pointer}
.delbtn{background:none;border:none;color:var(--red);font-size:15px;cursor:pointer;padding:0 4px;opacity:.6}
.delbtn:hover{opacity:1}
/* TOTALS */
.tots{display:flex;justify-content:flex-end;background:var(--bg-alt);border-top:2px solid var(--bdr)}
.tcel{padding:8px 14px;border-left:1px solid var(--bdr);text-align:right;min-width:120px}
.tcel:first-child{border-left:none}
.tlbl{font-size:10px;color:var(--tm);text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px}
.tval{font-size:13px;font-weight:700;font-family:'IBM Plex Mono',monospace}
.tval.big{font-size:15px;color:var(--blue)}.tval.rr{color:var(--red)}
/* STOCK BAR */
.mbar{height:6px;border-radius:3px;background:var(--bdrl);overflow:hidden;margin-top:3px;min-width:80px}
.mbfill{height:100%;border-radius:3px}
/* STEPS */
.steps{display:flex;align-items:center;padding:8px 16px;background:var(--bg-alt);border-bottom:1px solid var(--bdr);flex-shrink:0;gap:0}
.step{display:flex;align-items:center;gap:5px;padding:3px 8px;border-radius:3px;font-size:11px;font-weight:600;color:var(--tm)}
.step.done{color:var(--grn)}.step.cur{color:var(--blue);background:var(--bluelt)}
.stepn{width:18px;height:18px;border-radius:50%;border:2px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}
.step.done .stepn{background:var(--grn);border-color:var(--grn);color:#fff}
.stepar{color:var(--bdr);font-size:12px;margin:0 2px}
/* TOAST */
.tarea{position:fixed;bottom:28px;right:16px;z-index:9800!important;display:flex;flex-direction:column;gap:10px;pointer-events:none}
.toast{background:var(--card,#fff);color:var(--tp,#1a2332);padding:12px 16px 12px 14px;border-radius:10px;font-size:13px;font-weight:500;box-shadow:0 12px 32px rgba(0,0,0,.16),0 2px 8px rgba(0,0,0,.08);display:flex;align-items:flex-start;gap:12px;opacity:0;transform:translateX(30px) scale(.96);transition:.35s cubic-bezier(.16,1,.3,1);min-width:280px;max-width:380px;border-left:4px solid var(--blue)}
.toast.show{opacity:1;transform:none}
.toast .ticon{width:30px;height:30px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:#fff;box-shadow:0 3px 8px rgba(0,0,0,.2)}
.toast .tbody{flex:1;min-width:0}
.toast .ttitle{font-weight:800;font-size:12.5px;margin-bottom:2px;letter-spacing:.2px}
.toast .tmsg{font-size:12px;color:var(--tm,#667085);line-height:1.45;word-wrap:break-word}
.toast.ok{border-left-color:var(--grn)}
.toast.ok .ticon{background:var(--grn)}
.toast.ok .ttitle{color:var(--grn)}
.toast.err{border-left-color:var(--red)}
.toast.err .ticon{background:var(--red)}
.toast.err .ttitle{color:var(--red)}
.toast.warn{border-left-color:var(--amb)}
.toast.warn .ticon{background:var(--amb)}
.toast.warn .ttitle{color:var(--amb)}
.toast.info{border-left-color:var(--blue)}
.toast.info .ticon{background:var(--blue)}
.toast.info .ttitle{color:var(--blue)}
/* LOADING */
.loading{display:flex;align-items:center;justify-content:center;padding:32px;color:var(--tm);gap:10px;font-size:13px}
.spinner{width:18px;height:18px;border:2px solid var(--bdrl);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-thumb{background:var(--bdr);border-radius:3px}

  #wms-login-screen input::placeholder{color:rgba(255,255,255,.25);}
  #lg-btn:active{transform:scale(.98)!important;}
  .cnt-card{background:var(--bg-panel);border:1px solid var(--bdr);border-radius:10px;overflow:hidden;cursor:pointer;transition:.15s;}
  .cnt-card:hover{border-color:var(--acc);box-shadow:0 4px 16px rgba(52,152,219,.12);}


/* ═══════════════════════════════════════════════════════════════
   ADMIN CONSOLE — Usuarios / Roles / Licencias / Auditoría
   Corrección: solo una tab-pane visible por vez
   ═══════════════════════════════════════════════════════════════ */
#vw-usuarios{overflow:hidden;display:none;flex-direction:column;background:var(--bg)}
#vw-usuarios.active{display:flex}
#vw-usuarios .tab-pane{display:none!important;min-height:0}
#vw-usuarios .tab-pane.active{display:block!important;flex:1;overflow:auto}
#vw-usuarios .usr-admin-nav{display:flex;gap:6px;padding:10px 16px;background:var(--card);border-bottom:1px solid var(--bdrl);flex-shrink:0}
#vw-usuarios .usr-admin-nav .tab{border:1px solid transparent;border-radius:8px;padding:8px 13px;font-size:11px;font-weight:700;color:var(--tm);cursor:pointer;transition:.15s;background:transparent}
#vw-usuarios .usr-admin-nav .tab:hover{background:var(--bg-alt);color:var(--tp)}
#vw-usuarios .usr-admin-nav .tab.active{background:var(--bluelt);color:var(--blue);border-color:rgba(37,99,235,.22);box-shadow:0 1px 3px rgba(0,0,0,.05)}
#vw-usuarios .usr-workspace{padding:14px 16px 18px}
#vw-usuarios .usr-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
#vw-usuarios .usr-section-title{font-size:15px;font-weight:800;color:var(--tp)}
#vw-usuarios .usr-section-desc{font-size:11px;color:var(--tm);margin-top:2px}
#vw-usuarios .usr-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--card);border:1px solid var(--bdrl);border-radius:9px;padding:9px;margin-bottom:12px}
#vw-usuarios .usr-license-strip{background:var(--card);border:1px solid var(--bdrl);border-radius:10px;padding:10px 13px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
#vw-usuarios .usr-kpis{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:9px;margin-bottom:12px}
#vw-usuarios .usr-kpi{background:var(--card);border:1px solid var(--bdrl);border-radius:10px;padding:12px 13px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
#vw-usuarios .usr-kpi-value{font-size:24px;font-weight:900;line-height:1;margin-top:6px}
#vw-usuarios .usr-kpi-label{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--tm)}
#vw-usuarios .usr-kpi-sub{font-size:9px;color:var(--tm);margin-top:5px}
#vw-usuarios #licencias-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:10px}
#vw-usuarios #usr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:10px}
@media(max-width:900px){#vw-usuarios .usr-kpis{grid-template-columns:repeat(2,1fr)}#vw-usuarios .usr-admin-nav{overflow-x:auto}#vw-usuarios #licencias-grid{grid-template-columns:1fr}}


/* ===== V4.4: API / SESIÓN / NAVEGACIÓN ===== */
#vw-api .tab-pane{display:none!important;min-height:0}
#vw-api .tab-pane.active{display:block!important;flex:1;overflow:auto}
#vw-api #api-panels{min-height:0}
#vw-api .api-kpis{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;padding:0 14px 12px}
#vw-api .api-kpi{background:var(--card);border:1px solid var(--bdrl);border-radius:11px;padding:12px 14px;display:flex;align-items:center;gap:12px;min-height:72px}
#vw-api .api-kpi-ico{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;background:var(--bg-alt);flex-shrink:0}
#vw-api .api-kpi-v{font-size:22px;font-weight:900;line-height:1}
#vw-api .api-kpi-l{font-size:10px;color:var(--tm);margin-top:4px;text-transform:uppercase;letter-spacing:.35px}
#vw-api .api-empty{border:1px dashed var(--bdrl);border-radius:10px;padding:34px;text-align:center;color:var(--tm);background:var(--card)}
#vw-api .api-section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
#vw-api .api-section-title{font-size:14px;font-weight:800;color:var(--tp)}
#vw-api .api-section-sub{font-size:10px;color:var(--tm);margin-top:2px}
.tpuser{cursor:pointer}
.tpuser:hover{background:rgba(255,255,255,.08)}
.tpuser-info{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}
.tpuser-name{font-size:11px;font-weight:700;color:#fff;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tpuser-role{font-size:8px;color:rgba(255,255,255,.55);max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.toolbar .tbb.active{background:var(--bluelt);color:var(--blue);border-color:#93c5fd;font-weight:800}
@media(max-width:900px){
  #vw-api .api-kpis{grid-template-columns:repeat(2,1fr)}
}


/* ===== V5.0.25 · CONTEXTO DE ALMACÉN / SESIÓN ===== */
.wms-warehouse-context{
  height:30px;display:flex;align-items:center;gap:5px;padding:0 8px;
  border:1px solid rgba(255,255,255,.16);border-radius:7px;
  background:rgba(255,255,255,.07);color:#fff;font-size:9px;font-weight:750;
  max-width:205px
}
.wms-warehouse-context select{
  border:0;background:transparent;color:#fff;outline:none;font:inherit;
  max-width:155px;cursor:pointer
}
.wms-warehouse-context select option{color:#1f2937;background:#fff}
.wms-logout-btn{
  width:30px;height:30px;border:1px solid rgba(248,113,113,.35);border-radius:7px;
  background:rgba(239,68,68,.10);color:#fecaca;cursor:pointer;font-size:14px;
  display:flex;align-items:center;justify-content:center;transition:.15s
}
.wms-logout-btn:hover{background:#dc2626;border-color:#dc2626;color:#fff}
#um-almacenes-list label:hover{background:var(--bg-alt)}

/* ===== V4.5: NAVEGACIÓN PROFESIONAL UNIFICADA ===== */
.topbar{
  height:48px;
  padding:0 10px;
  gap:8px;
  background:var(--bg-top);
  box-shadow:0 2px 6px rgba(0,0,0,.22);
  overflow:hidden;
}
.tplogo{
  font-size:13px;
  padding-right:12px;
  margin-right:2px;
  flex-shrink:0;
}
.topnav{
  display:flex;
  align-items:center;
  gap:4px;
  flex:1;
  min-width:0;
  overflow-x:auto;
  scrollbar-width:none;
}
.topnav::-webkit-scrollbar{display:none}
.topnav .tbb{
  height:30px;
  padding:4px 9px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:7px;
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.82);
  font-size:10px;
  font-weight:650;
  box-shadow:none;
}
.topnav .tbb:hover{
  background:rgba(255,255,255,.14);
  color:#fff;
  border-color:rgba(255,255,255,.25);
}
.topnav .tbb.active{
  background:#fff;
  color:var(--blue);
  border-color:#fff;
  font-weight:850;
}
.topnav .tbb.tbg{
  background:rgba(34,197,94,.16);
  border-color:rgba(34,197,94,.5);
  color:#bdf7ce;
}
.topnav .tbb.tbg:hover{
  background:var(--grn);
  border-color:var(--grn);
  color:#fff;
}
.topnav-sep{
  width:1px;
  height:20px;
  background:rgba(255,255,255,.15);
  margin:0 2px;
  flex-shrink:0;
}
.toolbar{display:none!important}
.mp{display:none!important}
.tpright{flex-shrink:0;margin-left:2px}
.tpclock{font-size:9px}
.tpuser{padding:4px 6px;border-radius:7px}
.tpuser-name{max-width:135px}
.tpuser-role{max-width:135px}
@media(max-width:1100px){
  .topnav .tbb{padding:4px 7px}
  .topnav .tbb .qtxt{display:none}
  .topnav .tbb{font-size:13px}
}


/* ===== V4.6: KPI EJECUTIVO ENTRADAS / SALIDAS ===== */
.rpt-view{background:var(--bg)}
.rpt-shell{flex:1;overflow:auto;padding:12px 14px 20px}
.rpt-filterbar{display:flex;gap:8px;align-items:end;flex-wrap:wrap;background:var(--card);border:1px solid var(--bdrl);border-radius:10px;padding:10px;margin-bottom:10px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.rpt-filterbar .field{min-width:135px}
.rpt-filterbar .field.center{min-width:220px;flex:1}
.rpt-kpis{display:grid;grid-template-columns:repeat(6,minmax(125px,1fr));gap:8px;margin-bottom:10px}
.rpt-kpi{background:var(--card);border:1px solid var(--bdrl);border-radius:11px;padding:12px;position:relative;overflow:hidden;min-height:104px;box-shadow:0 1px 3px rgba(0,0,0,.035)}
.rpt-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--kpi-color,var(--blue))}
.rpt-kpi-ico{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--kpi-bg,var(--bluelt));margin-bottom:8px}
.rpt-kpi-lbl{font-size:8.5px;text-transform:uppercase;letter-spacing:.55px;font-weight:800;color:var(--tm)}
.rpt-kpi-val{font-size:22px;font-weight:900;line-height:1.15;color:var(--tp);margin-top:2px}
.rpt-kpi-sub{font-size:9px;color:var(--tm);margin-top:3px}
.rpt-grid-2{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.85fr);gap:10px;margin-bottom:10px}
.rpt-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px}
.rpt-card{background:var(--card);border:1px solid var(--bdrl);border-radius:11px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.035)}
.rpt-card-h{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--bdrl);background:linear-gradient(180deg,var(--card),var(--bg-alt))}
.rpt-card-title{font-size:11px;font-weight:900;color:var(--tp);text-transform:uppercase;letter-spacing:.4px}
.rpt-card-sub{font-size:9px;color:var(--tm);margin-top:2px}
.rpt-card-b{padding:12px}
.rpt-status-row{display:grid;grid-template-columns:118px 1fr 50px;gap:8px;align-items:center;margin-bottom:9px}
.rpt-status-name{font-size:10px;color:var(--ts);font-weight:700}
.rpt-status-track{height:9px;border-radius:7px;background:var(--bg-alt);overflow:hidden;border:1px solid var(--bdrl)}
.rpt-status-fill{height:100%;border-radius:7px;min-width:2px}
.rpt-status-n{font-size:10px;font-weight:900;text-align:right}
.rpt-trend{height:185px;display:flex;gap:5px;align-items:flex-end;padding:8px 2px 0;border-bottom:1px solid var(--bdrl)}
.rpt-trend-col{flex:1;min-width:10px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}
.rpt-trend-bar{width:74%;max-width:28px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--blue),#60a5fa);min-height:2px;position:relative}
.rpt-trend-bar.gr{background:linear-gradient(180deg,var(--grn),#4ade80)}
.rpt-trend-val{font-size:8px;font-weight:800;color:var(--ts)}
.rpt-trend-label{font-size:7px;color:var(--tm);white-space:nowrap;transform:rotate(-35deg);transform-origin:center;height:28px;padding-top:5px}
.rpt-rank{display:flex;flex-direction:column;gap:9px}
.rpt-rank-row{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center}
.rpt-rank-pos{width:24px;height:24px;border-radius:8px;background:var(--bg-alt);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:900;color:var(--ts)}
.rpt-rank-name{font-size:10px;font-weight:700;color:var(--tp);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rpt-rank-bar{height:5px;background:var(--bg-alt);border-radius:5px;margin-top:3px;overflow:hidden}
.rpt-rank-bar>span{display:block;height:100%;background:var(--blue);border-radius:5px}
.rpt-rank-val{font-size:10px;font-weight:900;color:var(--ts);white-space:nowrap}
.rpt-insights{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.rpt-insight{background:var(--card);border:1px solid var(--bdrl);border-radius:9px;padding:10px 11px;display:flex;gap:8px;align-items:flex-start}
.rpt-insight-ico{font-size:16px}
.rpt-insight-t{font-size:10px;font-weight:800;color:var(--tp);line-height:1.35}
.rpt-insight-s{font-size:9px;color:var(--tm);margin-top:2px;line-height:1.35}
.rpt-table-wrap{overflow:auto;max-height:410px}
.rpt-table{width:100%;border-collapse:collapse;min-width:1050px}
.rpt-table th{position:sticky;top:0;z-index:2;background:#e9eef4;color:#75869d;font-size:8px;text-transform:uppercase;letter-spacing:.45px;padding:8px;text-align:left;border-bottom:1px solid #cbd5e1}
.rpt-table td{font-size:10px;padding:8px;border-bottom:1px solid var(--bdrl);vertical-align:middle}
.rpt-table tbody tr:hover{background:var(--bg-alt)}
.rpt-pct{display:inline-flex;align-items:center;gap:5px}
.rpt-pct-bar{width:48px;height:5px;border-radius:5px;background:var(--bg-alt);overflow:hidden}
.rpt-pct-bar span{display:block;height:100%;border-radius:5px}
.rpt-alert{font-size:9px;font-weight:800;padding:2px 6px;border-radius:10px;white-space:nowrap}
.rpt-alert.ok{background:rgba(34,197,94,.12);color:var(--grn)}
.rpt-alert.warn{background:rgba(245,158,11,.12);color:var(--amb)}
.rpt-alert.bad{background:rgba(239,68,68,.12);color:var(--red)}
.rpt-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.rpt-mini-box{background:var(--bg-alt);border:1px solid var(--bdrl);border-radius:8px;padding:8px;text-align:center}
.rpt-mini-v{font-size:17px;font-weight:900}
.rpt-mini-l{font-size:7.5px;text-transform:uppercase;color:var(--tm);margin-top:2px}
.rpt-empty{text-align:center;padding:28px;color:var(--tm)}
@media(max-width:1200px){.rpt-kpis{grid-template-columns:repeat(3,1fr)}.rpt-grid-2{grid-template-columns:1fr}.rpt-insights{grid-template-columns:1fr}}
@media(max-width:760px){.rpt-kpis{grid-template-columns:repeat(2,1fr)}.rpt-grid-3{grid-template-columns:1fr}.rpt-mini{grid-template-columns:repeat(2,1fr)}}
@media print{
  body.rpt-print .topbar,body.rpt-print .sidebar{display:none!important}
  body.rpt-print .appbody{display:block!important}
  body.rpt-print .main{margin:0!important;width:100%!important}
  body.rpt-print .view{display:none!important}
  body.rpt-print #vw-reportes.active,
  body.rpt-print #vw-kpi-entradas.active{display:block!important;position:static!important}
  body.rpt-print .rpt-shell{overflow:visible!important;padding:0}
  body.rpt-print .rpt-filterbar,
  body.rpt-print .rpt-no-print{display:none!important}
  body.rpt-print .rpt-table-wrap{max-height:none!important;overflow:visible!important}
}


/* ===== V4.7: TORRE DE CONTROL OPERACIONAL ===== */
.ct-shell{flex:1;overflow:auto;padding:12px 14px 22px;background:var(--bg)}
.ct-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;background:linear-gradient(135deg,#17324d,#244d70);border-radius:12px;padding:16px 18px;margin-bottom:10px;color:#fff;box-shadow:0 5px 16px rgba(15,35,55,.18)}
.ct-hero-title{font-size:18px;font-weight:900;letter-spacing:.2px}
.ct-hero-sub{font-size:10px;color:rgba(255,255,255,.68);margin-top:3px}
.ct-health{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:9px 12px;min-width:190px}
.ct-health-dot{width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 5px rgba(255,255,255,.08)}
.ct-health-lbl{font-size:8px;text-transform:uppercase;letter-spacing:.7px;color:rgba(255,255,255,.62)}
.ct-health-val{font-size:13px;font-weight:900;margin-top:2px}
.ct-filter{display:flex;gap:8px;align-items:end;flex-wrap:wrap;background:var(--card);border:1px solid var(--bdrl);border-radius:10px;padding:9px 10px;margin-bottom:10px}
.ct-filter .field{min-width:130px}
.ct-filter .wide{min-width:230px;flex:1}
.ct-kpis{display:grid;grid-template-columns:repeat(8,minmax(105px,1fr));gap:7px;margin-bottom:10px}
.ct-kpi{background:var(--card);border:1px solid var(--bdrl);border-radius:10px;padding:10px 10px 9px;min-height:94px;position:relative;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.035)}
.ct-kpi:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--ct-c,var(--blue))}
.ct-kpi-ico{font-size:17px;margin-bottom:6px}
.ct-kpi-l{font-size:7.5px;font-weight:900;color:var(--tm);text-transform:uppercase;letter-spacing:.55px}
.ct-kpi-v{font-size:20px;font-weight:950;color:var(--tp);margin-top:2px;line-height:1.1}
.ct-kpi-s{font-size:8px;color:var(--tm);margin-top:3px;line-height:1.25}
.ct-domain-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
.ct-domain{background:var(--card);border:1px solid var(--bdrl);border-radius:11px;padding:11px 12px;box-shadow:0 1px 3px rgba(0,0,0,.035)}
.ct-domain-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px}
.ct-domain-name{font-size:11px;font-weight:900;color:var(--tp)}
.ct-state{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.4px;padding:3px 7px;border-radius:20px}
.ct-state.ok{background:#dcfce7;color:#15803d}
.ct-state.warn{background:#fef3c7;color:#b45309}
.ct-state.bad{background:#fee2e2;color:#b91c1c}
.ct-domain-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.ct-dm{background:var(--bg-alt);border-radius:7px;padding:7px;text-align:center}
.ct-dm-v{font-size:14px;font-weight:900;color:var(--tp)}
.ct-dm-l{font-size:7px;text-transform:uppercase;color:var(--tm);margin-top:2px}
.ct-grid-main{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.75fr);gap:9px;margin-bottom:10px}
.ct-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:10px}
.ct-card{background:var(--card);border:1px solid var(--bdrl);border-radius:11px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.035)}
.ct-card-h{padding:10px 12px;border-bottom:1px solid var(--bdrl);display:flex;justify-content:space-between;align-items:center;gap:8px;background:linear-gradient(180deg,var(--card),var(--bg-alt))}
.ct-card-title{font-size:10.5px;font-weight:900;color:var(--tp);text-transform:uppercase;letter-spacing:.45px}
.ct-card-sub{font-size:8.5px;color:var(--tm);margin-top:2px}
.ct-card-b{padding:11px 12px}
.ct-flow{display:grid;grid-template-columns:repeat(6,minmax(70px,1fr));gap:5px}
.ct-step{background:var(--bg-alt);border:1px solid var(--bdrl);border-radius:8px;padding:8px;text-align:center;position:relative}
.ct-step:not(:last-child):after{content:"›";position:absolute;right:-7px;top:50%;transform:translateY(-50%);z-index:2;color:var(--tm);font-size:14px;font-weight:900}
.ct-step-v{font-size:17px;font-weight:950;color:var(--tp)}
.ct-step-l{font-size:7px;text-transform:uppercase;color:var(--tm);margin-top:2px;line-height:1.2}
.ct-dual-trend{height:205px;display:flex;gap:5px;align-items:flex-end;padding:8px 3px 0}
.ct-day{flex:1;min-width:12px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.ct-bars{height:145px;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:2px}
.ct-bar{width:34%;max-width:12px;min-width:3px;border-radius:4px 4px 1px 1px;min-height:2px}
.ct-bar.in{background:#22c55e}
.ct-bar.out{background:#3b82f6}
.ct-day-l{font-size:6.5px;color:var(--tm);transform:rotate(-40deg);height:30px;padding-top:6px;white-space:nowrap}
.ct-legend{display:flex;gap:12px;align-items:center;font-size:8px;color:var(--tm)}
.ct-leg-dot{width:7px;height:7px;border-radius:2px;display:inline-block;margin-right:4px}
.ct-alert-list{display:flex;flex-direction:column}
.ct-alert-row{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--bdrl)}
.ct-alert-row:last-child{border-bottom:none}
.ct-alert-ico{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;background:var(--bg-alt);font-size:12px}
.ct-alert-t{font-size:9.5px;font-weight:800;color:var(--tp)}
.ct-alert-s{font-size:8px;color:var(--tm);margin-top:2px}
.ct-alert-v{font-size:9px;font-weight:900;white-space:nowrap}
.ct-risk-table{width:100%;border-collapse:collapse}
.ct-risk-table th{font-size:7px;color:var(--tm);text-transform:uppercase;text-align:left;padding:6px;border-bottom:1px solid var(--bdrl)}
.ct-risk-table td{font-size:9px;padding:7px 6px;border-bottom:1px solid var(--bdrl)}
.ct-risk-table tr:last-child td{border-bottom:none}
.ct-activity{display:flex;flex-direction:column}
.ct-act{display:grid;grid-template-columns:78px 72px 1fr auto;gap:7px;padding:6px 0;border-bottom:1px solid var(--bdrl);align-items:center}
.ct-act:last-child{border-bottom:none}
.ct-act-time{font-size:8px;color:var(--tm)}
.ct-act-type{font-size:8px;font-weight:900}
.ct-act-desc{font-size:8.5px;color:var(--ts);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-act-q{font-size:9px;font-weight:900}
.ct-empty{text-align:center;color:var(--tm);padding:20px;font-size:9px}
.ct-exec{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}
.ct-exec-item{background:var(--card);border:1px solid var(--bdrl);border-radius:9px;padding:10px 11px;display:flex;gap:8px;align-items:flex-start}
.ct-exec-ico{font-size:15px}
.ct-exec-t{font-size:9.5px;font-weight:850;color:var(--tp);line-height:1.35}
.ct-exec-s{font-size:8px;color:var(--tm);margin-top:2px;line-height:1.35}
@media(max-width:1350px){.ct-kpis{grid-template-columns:repeat(4,1fr)}.ct-domain-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.ct-grid-main,.ct-grid-2{grid-template-columns:1fr}.ct-kpis{grid-template-columns:repeat(2,1fr)}.ct-domain-grid,.ct-exec{grid-template-columns:1fr}.ct-flow{grid-template-columns:repeat(3,1fr)}}
@media print{
  body.ct-print .topbar,body.ct-print .sidebar,.ct-no-print{display:none!important}
  body.ct-print .appbody{display:block!important}
  body.ct-print .main{width:100%!important}
  body.ct-print .view{display:none!important}
  body.ct-print #vw-control-tower.active{display:block!important}
  body.ct-print .ct-shell{overflow:visible!important;padding:0}
}


/* ===== V4.8: INICIO / OPERATIONS COMMAND CENTER ===== */
.home-view{background:#f3f6f9}
.home-shell{flex:1;overflow:auto;padding:12px 14px 24px}
.home-hero{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;
  background:linear-gradient(120deg,#152d43 0%,#1e4564 55%,#24607f 100%);
  border-radius:14px;padding:18px 20px;margin-bottom:10px;color:#fff;
  box-shadow:0 8px 22px rgba(17,39,59,.18);position:relative;overflow:hidden
}
.home-hero:after{
  content:"";position:absolute;width:340px;height:340px;border-radius:50%;
  right:-120px;top:-175px;background:radial-gradient(circle,rgba(96,165,250,.22),transparent 68%);
  pointer-events:none
}
.home-eyebrow{font-size:8px;text-transform:uppercase;letter-spacing:1.3px;font-weight:850;color:#9fd4f5}
.home-title{font-size:21px;font-weight:950;letter-spacing:-.35px;margin-top:3px}
.home-sub{font-size:10px;color:rgba(255,255,255,.67);margin-top:4px;line-height:1.45}
.home-context{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}
.home-chip{
  display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.08);border-radius:18px;padding:4px 8px;font-size:8.5px;color:#e8f4fb
}
.home-health{
  width:235px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);
  border-radius:12px;padding:11px 12px;position:relative;z-index:1
}
.home-health-top{display:flex;justify-content:space-between;gap:10px;align-items:center}
.home-health-l{font-size:7.5px;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.75px;font-weight:850}
.home-health-v{font-size:13px;font-weight:950;margin-top:2px}
.home-health-dot{width:11px;height:11px;border-radius:50%;box-shadow:0 0 0 5px rgba(255,255,255,.07)}
.home-health-time{font-size:8px;color:rgba(255,255,255,.55);margin-top:8px;padding-top:7px;border-top:1px solid rgba(255,255,255,.1)}
.home-hero-actions{display:flex;gap:6px;margin-top:9px}
.home-hero-btn{
  border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.09);color:#fff;
  border-radius:7px;padding:5px 8px;font-size:8.5px;font-weight:800;cursor:pointer
}
.home-hero-btn:hover{background:rgba(255,255,255,.16)}
.home-kpis{display:grid;grid-template-columns:repeat(8,minmax(105px,1fr));gap:7px;margin-bottom:10px}
.home-kpi{
  background:#fff;border:1px solid #d9e1e8;border-radius:11px;padding:11px;
  min-height:100px;box-shadow:0 1px 4px rgba(15,23,42,.035);position:relative;overflow:hidden
}
.home-kpi:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--hc,#2563eb)}
.home-kpi-top{display:flex;justify-content:space-between;align-items:center;gap:6px}
.home-kpi-ico{
  width:31px;height:31px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:14px;background:var(--hb,#dbeafe)
}
.home-kpi-tag{font-size:7px;font-weight:900;text-transform:uppercase;color:#94a3b8;letter-spacing:.5px}
.home-kpi-v{font-size:20px;font-weight:950;color:#1f2937;margin-top:8px;line-height:1}
.home-kpi-l{font-size:8px;color:#7b8da4;margin-top:4px;line-height:1.25}
.home-grid-main{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.75fr);gap:9px;margin-bottom:10px}
.home-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:10px}
.home-card{background:#fff;border:1px solid #d9e1e8;border-radius:11px;overflow:hidden;box-shadow:0 1px 4px rgba(15,23,42,.035)}
.home-card-h{
  display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 11px;
  border-bottom:1px solid #dfe5eb;background:linear-gradient(180deg,#fff,#f8fafc)
}
.home-card-title{font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.45px;color:#27384a}
.home-card-sub{font-size:8px;color:#8595a9;margin-top:2px}
.home-card-b{padding:10px 11px}
.home-flow-wrap{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.home-flow-title{font-size:8px;text-transform:uppercase;font-weight:900;letter-spacing:.5px;color:#73859b;margin-bottom:6px}
.home-flow{display:grid;grid-template-columns:repeat(6,minmax(52px,1fr));gap:4px}
.home-step{
  background:#f7f9fb;border:1px solid #e0e6ec;border-radius:8px;padding:7px 5px;text-align:center;position:relative
}
.home-step:not(:last-child):after{
  content:"›";position:absolute;right:-5px;top:50%;transform:translateY(-50%);z-index:2;
  color:#9aa8b8;font-size:12px;font-weight:900
}
.home-step-v{font-size:15px;font-weight:950;color:#26384b}
.home-step-l{font-size:6.5px;color:#8797aa;text-transform:uppercase;margin-top:2px;line-height:1.15}
.home-alerts{display:flex;flex-direction:column}
.home-alert{
  display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;
  padding:7px 0;border-bottom:1px solid #edf0f3;cursor:pointer
}
.home-alert:last-child{border-bottom:none}
.home-alert:hover{background:#fafbfd}
.home-alert-ico{width:28px;height:28px;border-radius:8px;background:#f3f6f9;display:flex;align-items:center;justify-content:center;font-size:13px}
.home-alert-t{font-size:9.5px;font-weight:850;color:#26384b}
.home-alert-s{font-size:8px;color:#8898aa;margin-top:2px}
.home-alert-v{font-size:8.5px;font-weight:950;white-space:nowrap}
.home-pulse{height:160px;display:flex;align-items:flex-end;gap:5px;padding-top:5px}
.home-pulse-day{height:100%;flex:1;min-width:10px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.home-pulse-bars{height:120px;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:2px}
.home-pulse-bar{width:34%;min-width:3px;max-width:10px;border-radius:4px 4px 1px 1px;min-height:2px}
.home-pulse-bar.in{background:#22c55e}
.home-pulse-bar.out{background:#3b82f6}
.home-pulse-label{font-size:6px;color:#93a2b3;height:27px;transform:rotate(-38deg);padding-top:5px;white-space:nowrap}
.home-legend{display:flex;gap:10px;font-size:8px;color:#8595a9}
.home-dot{width:7px;height:7px;border-radius:2px;display:inline-block;margin-right:3px}
.home-table{width:100%;border-collapse:collapse}
.home-table th{
  font-size:7px;text-transform:uppercase;letter-spacing:.45px;color:#8091a6;text-align:left;
  padding:7px;background:#f5f7fa;border-bottom:1px solid #dce3e9
}
.home-table td{font-size:9px;padding:7px;border-bottom:1px solid #edf0f3}
.home-table tr:last-child td{border-bottom:none}
.home-table tbody tr:hover{background:#fafbfd}
.home-risk{display:grid;grid-template-columns:82px 1fr 50px 50px;gap:7px;padding:7px 0;border-bottom:1px solid #edf0f3;align-items:center}
.home-risk:last-child{border-bottom:none}
.home-risk-code{font-size:8.5px;font-weight:950;color:#2563eb}
.home-risk-desc{font-size:8.5px;color:#34485d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-risk-n{font-size:9px;font-weight:900;text-align:right}
.home-activity{display:grid;grid-template-columns:68px 68px 1fr auto;gap:7px;padding:6px 0;border-bottom:1px solid #edf0f3;align-items:center}
.home-activity:last-child{border-bottom:none}
.home-act-time{font-size:7.5px;color:#91a0b0}
.home-act-type{font-size:8px;font-weight:900;color:#52667c}
.home-act-desc{font-size:8.5px;color:#34485d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-act-q{font-size:9px;font-weight:950;color:#26384b}
.home-empty{text-align:center;padding:22px;color:#93a2b3;font-size:9px}
.home-link{
  border:1px solid #d6dee6;background:#fff;color:#52667c;border-radius:6px;padding:4px 7px;
  font-size:8px;font-weight:800;cursor:pointer
}
.home-link:hover{background:#f7f9fb;color:#2563eb}
@media(max-width:1350px){
  .home-kpis{grid-template-columns:repeat(4,1fr)}
  .home-flow-wrap{grid-template-columns:1fr}
}
@media(max-width:950px){
  .home-grid-main,.home-grid-2{grid-template-columns:1fr}
  .home-kpis{grid-template-columns:repeat(2,1fr)}
  .home-hero{grid-template-columns:1fr}
  .home-health{width:auto}
}



/* ===== V4.1.3: BUSCADOR RÁPIDO DE AJUSTES POR UBICACIÓN ===== */
.ajubi-search-grid{display:grid;grid-template-columns:minmax(210px,.9fr) minmax(320px,1.6fr);gap:10px;align-items:start}
.ajubi-combo{position:relative;min-width:0}
.ajubi-combo .fin{padding-right:34px}
.ajubi-combo-ico{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--tm);pointer-events:none}
.ajubi-drop{display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:1600;background:#fff;border:1px solid var(--bdr);border-radius:8px;box-shadow:0 12px 28px rgba(15,23,42,.18);max-height:290px;overflow:auto;padding:5px}
.ajubi-drop.open{display:block}
.ajubi-drop::-webkit-scrollbar{width:6px}.ajubi-drop::-webkit-scrollbar-thumb{background:var(--bdr);border-radius:4px}
.ajubi-drop-head{padding:6px 8px 5px;font-size:8.5px;font-weight:900;text-transform:uppercase;letter-spacing:.55px;color:var(--tm);border-bottom:1px solid var(--bdrl);margin-bottom:3px}
.ajubi-opt{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:6px;cursor:pointer;border:1px solid transparent;min-width:0}
.ajubi-opt:hover,.ajubi-opt.focus{background:var(--bluelt);border-color:#bfdbfe}
.ajubi-opt-main{flex:1;min-width:0}
.ajubi-opt-code{font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:800;color:var(--blue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ajubi-opt-desc{font-size:10px;color:var(--ts);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.ajubi-opt-badge{flex-shrink:0;display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border-radius:12px;font-size:8px;font-weight:900;white-space:nowrap}
.ajubi-opt-badge.linked{background:var(--grnlt);color:var(--grn);border:1px solid #86efac}
.ajubi-opt-badge.new{background:var(--amblt);color:#9a6700;border:1px solid #f5cf77}
.ajubi-opt-badge.loc{background:var(--bluelt);color:var(--blue);border:1px solid #bfdbfe}
.ajubi-empty{padding:18px 10px;text-align:center;color:var(--tm);font-size:10px}
.ajubi-help{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:6px;font-size:9px;color:var(--tm)}
.ajubi-legend{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:10px;font-weight:800}
.ajubi-legend.linked{background:var(--grnlt);color:var(--grn)}
.ajubi-legend.new{background:var(--amblt);color:#9a6700}
.ajubi-location-summary{margin-top:8px;padding:7px 9px;border-radius:7px;background:#f8fafc;border:1px solid var(--bdrl);font-size:9.5px;color:var(--ts);line-height:1.4}
@media(max-width:720px){.ajubi-search-grid{grid-template-columns:1fr}}



/* ===== V4.2: PRIORIDAD OPERATIVA DE PEDIDOS DE SALIDA ===== */
.sal-priority-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:14px;font-size:9px;font-weight:900;letter-spacing:.35px;white-space:nowrap;border:1px solid transparent}
.sal-priority-badge.p0{background:#f3f4f6;color:#6b7280;border-color:#d1d5db}
.sal-priority-badge.p1{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}
.sal-priority-badge.p2{background:#fef3c7;color:#b45309;border-color:#fbbf24}
.sal-priority-badge.p3{background:#fee2e2;color:#b91c1c;border-color:#fca5a5;box-shadow:0 0 0 1px rgba(220,38,38,.05)}
#tb-s tr.sal-row-pri-1 td:first-child{box-shadow:inset 4px 0 #3b82f6}
#tb-s tr.sal-row-pri-2 td:first-child{box-shadow:inset 4px 0 #f59e0b}
#tb-s tr.sal-row-pri-3{background:linear-gradient(90deg,rgba(254,226,226,.6),transparent 55%)}
#tb-s tr.sal-row-pri-3 td:first-child{box-shadow:inset 4px 0 #dc2626}
.sal-priority-help{background:linear-gradient(135deg,#f8fafc,#eef5ff);border:1px solid #cbd5e1;border-radius:9px;padding:10px 12px;font-size:10px;color:var(--ts);line-height:1.5}
.sal-priority-levels{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
.sal-priority-level{border:1px solid var(--bdrl);border-radius:8px;background:var(--bg-alt);padding:7px 8px;text-align:center;font-size:9px;color:var(--tm)}
.sal-priority-level b{display:block;font-size:10px;color:var(--tp);margin-bottom:2px}
@media(max-width:700px){.sal-priority-levels{grid-template-columns:repeat(2,1fr)}}
.sal-priority-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:2px}
.sal-priority-choice{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:82px;padding:10px 8px;border:1px solid var(--bdr);border-radius:10px;background:#fff;color:var(--ts);font-family:inherit;cursor:pointer;transition:.16s;box-shadow:0 1px 2px rgba(15,23,42,.03)}
.sal-priority-choice:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(15,23,42,.08)}
.sal-priority-choice .pci{font-size:20px;line-height:1}
.sal-priority-choice .pct{font-size:11px;font-weight:900;letter-spacing:.15px}
.sal-priority-choice .pcs{font-size:8.5px;color:var(--tm);text-align:center;line-height:1.25}
.sal-priority-choice.p0:hover,.sal-priority-choice.p0.selected{border-color:#9ca3af;background:#f3f4f6;color:#4b5563}
.sal-priority-choice.p1:hover,.sal-priority-choice.p1.selected{border-color:#60a5fa;background:#eff6ff;color:#1d4ed8}
.sal-priority-choice.p2:hover,.sal-priority-choice.p2.selected{border-color:#f59e0b;background:#fffbeb;color:#b45309}
.sal-priority-choice.p3:hover,.sal-priority-choice.p3.selected{border-color:#f87171;background:#fef2f2;color:#b91c1c}
.sal-priority-choice.selected{box-shadow:0 0 0 2px currentColor inset,0 5px 14px rgba(15,23,42,.08)}
.sal-priority-choice.selected:after{content:'✓';position:absolute;right:7px;top:6px;width:18px;height:18px;border-radius:50%;background:#fff;color:inherit;border:1px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900}
@media(max-width:700px){.sal-priority-choices{grid-template-columns:repeat(2,1fr)}}


/* ===== V5.0.22 · BÚSQUEDA UNIFICADA TIPO SET ===== */
#fpp-bom .tw{overflow:visible}
#fpp-bom table{table-layout:auto}
#mov-ne .tw,#mov-ns .tw{overflow:auto}
#mov-ne .msec,#mov-ns .msec{overflow:visible}

/* ===== V5.0.21 · BUSCADOR BOM / PRODUCTO PADRE ===== */
#fpp-bom .msec{overflow:visible}
#fp-bom-sugerencias{z-index:3100;max-height:250px;overflow:auto}

/* ===== V5.0.20 · BUSCADOR DE ARTÍCULO EN REUBICACIÓN ===== */
#mov-reubicacion .msec{overflow:visible}
#mov-reubicacion .mbody{overflow:visible}
#reub-articulo-sugerencias{z-index:2900}

 /* ===== V5.0.19 · BUSCADOR ESCRIBIBLE DE ARTÍCULOS EN PEDIDOS ===== */
.wms-art-suggest{
  position:absolute;left:0;right:0;top:calc(100% + 3px);z-index:2600;
  max-height:245px;overflow:auto;background:#fff;border:1px solid #b8c4d1;
  border-radius:6px;box-shadow:0 10px 24px rgba(15,23,42,.16);min-width:330px;
}
.wms-art-suggest-item{display:grid;grid-template-columns:92px minmax(170px,1fr) auto;gap:8px;align-items:center;padding:7px 9px;border-bottom:1px solid #edf1f5;cursor:pointer;background:#fff}
.wms-art-suggest-item:last-child{border-bottom:none}
.wms-art-suggest-item:hover,.wms-art-suggest-item.activo{background:#eff6ff}
.wms-art-suggest-code{font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:850;color:var(--blue)}
.wms-art-suggest-desc{font-size:10.5px;color:var(--tp);white-space:normal;line-height:1.3}
.wms-art-suggest-meta{font-size:8.5px;color:var(--tm);white-space:nowrap;text-align:right}
.wms-art-suggest-empty{padding:12px;text-align:center;font-size:10px;color:var(--tm)}
#mov-ne .tw,#mov-ns .tw{overflow:visible}
#mov-ne .msec,#mov-ns .msec{overflow:visible}
