/* w.491 · ".shell button" (padding:0; font:inherit) gana por especificidad a una sola clase:
   los selectores de botones llevan ".shell " delante para que se apliquen. */
/* ════════════════════════════════════════════════════════════════════════
   sodms_bandeja.css · Bandeja de oportunidades del Mapa comercial (#sodms/mapa)
   w.491 · chunk SQL 552 (sodms_mapa_bandeja) · SPEC:
   material/design/mapa_comercial_ad/SPEC.md
   Scope: todo bajo prefijo .sodmapa- (fuera de eso, reusa .bsm/.al/.badge/.fg
   /.mov/.modal/.mtit/.mac/.g3/.sc del core, sin redefinirlos). Mobile-first,
   breakpoint 768px (convención del portal).
   ════════════════════════════════════════════════════════════════════════ */

/* ---------- barra de control (Asesor · Buscar · Más filtros) ---------- */
.sodmapa-ctl{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:10px;background:var(--sur);border:1px solid var(--bdr);border-radius:12px;
  padding:8px;margin-bottom:10px;
}
.sodmapa-ctl-l{display:flex;gap:8px;align-items:center;flex-wrap:wrap;flex:1;min-width:0}
.sodmapa-ctl-l select{height:36px;border:1px solid var(--bdr);border-radius:var(--rsm);
  background:var(--sur);padding:0 10px;font-size:12.5px;font-weight:600;color:var(--tx);max-width:100%}
.sodmapa-ctl-r{font-size:11.5px;color:var(--tx3);font-weight:600;padding-right:4px}
.sodmapa-ctl-r b{color:var(--tx2)}
.sodmapa-search{display:flex;align-items:center;gap:6px;height:36px;border:1px solid var(--bdr);
  border-radius:var(--rsm);padding:0 10px;background:var(--sur);min-width:200px;flex:0 1 260px}
.sodmapa-search svg{width:14px;height:14px;color:var(--tx3);flex:none}
.sodmapa-search input{border:0;outline:0;font-size:12.5px;font-weight:600;width:100%;
  background:transparent;color:var(--tx)}
.sodmapa-count{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 5px;
  border-radius:999px;background:var(--ac);color:#fff;font-size:10px;font-weight:800;margin-left:4px}

/* ---------- panel plegado "Más filtros" ---------- */
.sodmapa-mas{background:var(--sur);border:1px solid var(--bdr);border-radius:12px;padding:12px;margin-bottom:10px}
.sodmapa-mas-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.sodmapa-mas-grid label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;color:var(--tx3)}
.sodmapa-mas-grid select,.sodmapa-mas-grid input[type=date]{height:36px;border:1px solid var(--bdr);
  border-radius:var(--rsm);background:var(--sur);padding:0 9px;font-size:12.5px;font-weight:600;
  color:var(--tx);max-width:100%}
.sodmapa-chk{display:inline-flex !important;flex-direction:row !important;align-items:center;gap:7px;
  font-size:12px;color:var(--tx2);cursor:pointer;align-self:end;height:36px}
.sodmapa-chk input{width:15px;height:15px;accent-color:var(--ac)}
.sodmapa-chk.sodmapa-chk-sm{height:auto;font-size:11.5px;margin-left:auto;white-space:nowrap}
.sodmapa-mas-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}
.sodmapa-hint{font-size:11px;color:var(--tx3);font-weight:600}

/* ---------- layout bandeja + mapa ---------- */
.sodmapa-layout{display:grid;grid-template-columns:420px minmax(0,1fr);gap:12px;align-items:start}
.sodmapa-tray{background:var(--sur);border:1px solid var(--bdr);border-radius:14px;
  display:flex;flex-direction:column;height:calc(100vh - 300px);min-height:520px;overflow:hidden}
.sodmapa-tray-head{padding:10px 10px 0}
.sodmapa-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:var(--sur2);
  border-radius:12px;padding:4px}
.shell .sodmapa-tab{border:0;background:transparent;border-radius:9px;padding:8px 6px 7px;cursor:pointer;
  text-align:left;color:var(--tx2);display:flex;flex-direction:column;gap:1px;min-width:0}
.sodmapa-tab-n{font-size:19px;font-weight:800;line-height:1.1;color:var(--tx)}
.sodmapa-tab-l{display:block;font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shell .sodmapa-tab[aria-selected="true"]{background:var(--sur);box-shadow:0 1px 2px rgba(16,24,40,.14)}
.shell .sodmapa-tab[aria-selected="true"]::after{content:"";display:block;height:3px;border-radius:2px;
  margin-top:5px;background:var(--ac)}
.shell .sodmapa-tab:not([aria-selected="true"])::after{content:"";display:block;height:3px;margin-top:5px}

.shell .sodmapa-fixentry{margin-top:8px;width:100%;display:flex;align-items:center;gap:10px;
  border:1px dashed var(--er);background:var(--er-bg);color:var(--er);border-radius:10px;
  padding:8px 10px;font-size:12px;font-weight:800;cursor:pointer;text-align:left}
.sodmapa-fix-tx{flex:1;min-width:0}
.shell .sodmapa-fixentry small{display:block;font-weight:600;color:var(--tx3);margin-top:1px}
.shell .sodmapa-fixentry[aria-pressed="true"]{background:var(--tx);color:#fff;border-style:solid}
.shell .sodmapa-fixentry[aria-pressed="true"] small{color:#C9D2DB}

.sodmapa-tray-sub{padding:10px 14px 6px;font-size:11.5px;color:var(--tx3);font-weight:600;
  border-bottom:1px solid var(--bdr)}
.sodmapa-tray-sub b{color:var(--tx2)}
.sodmapa-selbar{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--tx);
  color:#fff;font-size:12px;font-weight:800}
.sodmapa-selbar span{flex:1;min-width:0}
.sodmapa-sel-btn{border-color:rgba(255,255,255,.3) !important;background:transparent !important;color:#fff !important}
.sodmapa-sel-btn-dark{background:#fff !important;color:var(--tx) !important;border-color:#fff !important}

.sodmapa-list{list-style:none;margin:0;padding:6px;overflow:auto;flex:1}
.sodmapa-item{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;padding:10px 8px;
  border-radius:10px;border:1px solid transparent;cursor:pointer}
.sodmapa-item + .sodmapa-item{border-top:1px solid var(--bdr)}
.sodmapa-item:hover,.sodmapa-item.hl{background:var(--hov);border-color:var(--bdr)}
.sodmapa-item.hl + .sodmapa-item,.sodmapa-item:hover + .sodmapa-item{border-top-color:transparent}
.sodmapa-item input[type=checkbox]{width:15px;height:15px;margin:2px 0 0;accent-color:var(--ac)}
.sodmapa-item-rk{font-size:10.5px;color:var(--tx3);font-weight:800}
.sodmapa-item-h{display:flex;align-items:baseline;gap:6px;min-width:0}
.sodmapa-item-nm{font-weight:800;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sodmapa-item-cd{font-size:11px;color:var(--tx3);font-weight:700;white-space:nowrap}
.sodmapa-item-why{display:flex;gap:7px;align-items:flex-start;margin-top:4px;font-size:12px;
  font-weight:700;color:var(--tx)}
.sodmapa-dot{width:9px;height:9px;border-radius:50%;flex:none;margin-top:4px}
.sodmapa-item-fechas{display:flex;flex-direction:column;gap:1px;margin-top:4px;font-size:11.5px;
  color:var(--tx2);font-weight:600}
.sodmapa-item-meta{display:flex;flex-wrap:wrap;gap:3px 10px;margin-top:5px;font-size:11.5px;
  color:var(--tx3);font-weight:600}
.sodmapa-item-meta b{color:var(--tx2);font-weight:800}
.sodmapa-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.sodmapa-item-acts{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.sodmapa-item-acts .bsm{height:30px;font-size:12px;padding:0 10px}
.sodmapa-more{padding:8px 12px 12px;border-top:1px solid var(--bdr);font-size:11.5px;color:var(--tx3);
  font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:8px}
.sodmapa-empty{padding:28px 18px;text-align:center;color:var(--tx3);font-size:12.5px;font-weight:600;
  list-style:none}
.sodmapa-empty b{display:block;color:var(--tx);font-size:13.5px;margin-bottom:4px}

/* ---------- mapa ---------- */
.sodmapa-mapcol{background:var(--sur);border:1px solid var(--bdr);border-radius:14px;overflow:hidden;
  display:flex;flex-direction:column;height:calc(100vh - 300px);min-height:520px}
.sodmapa-map-top{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid var(--bdr);
  font-size:12px;font-weight:700;color:var(--tx2)}
.sodmapa-map-scope{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sodmapa-map-back{display:none}
#sodmapa-mapa{flex:1;min-height:280px}
.sodmapa-legend{border-top:1px solid var(--bdr);font-size:11.5px}
.sodmapa-legend summary{padding:8px 12px;cursor:pointer;font-weight:800;color:var(--tx2)}

.shell .sodmapa-fab-map{display:none}

/* ---------- tablet ---------- */
@media (max-width:1100px){
  .sodmapa-layout{grid-template-columns:360px minmax(0,1fr)}
  .sodmapa-mas-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---------- celular: la bandeja primero, el mapa a demanda (768px, convención del portal) ---------- */
@media (max-width:768px){
  .sodmapa-ctl-l{gap:6px}
  .sodmapa-ctl-l select{flex:1 1 100%}
  .sodmapa-search{flex:1 1 auto;min-width:0}
  .sodmapa-ctl-r{width:100%;order:9}
  .sodmapa-mas-grid{grid-template-columns:1fr}
  .sodmapa-layout{display:block}
  .sodmapa-tray{height:auto;min-height:0;overflow:visible}
  .sodmapa-list{overflow:visible}
  .sodmapa-tab-n{font-size:17px}
  .sodmapa-tab-l{font-size:10.5px;white-space:normal;line-height:1.15}
  .sodmapa-item-acts .bsm{height:36px;flex:1 1 auto;justify-content:center}

  .sodmapa-mapcol{display:none}
  body.sodmapa-map-open .sodmapa-mapcol{display:flex;position:fixed;inset:0;z-index:1500;
    border-radius:0;height:auto;min-height:0;border:0}
  body.sodmapa-map-open .sodmapa-map-back{display:inline-flex}
  .sodmapa-map-top{flex-wrap:wrap;gap:6px 10px}
  .sodmapa-map-scope{order:3;flex:1 1 100%;white-space:normal;font-size:11.5px;color:var(--tx3)}
  body.sodmapa-map-open .sodmapa-fab-map{display:none}
  .shell .sodmapa-fab-map{display:inline-flex;position:fixed;left:50%;transform:translateX(-50%);bottom:16px;
    z-index:1400;align-items:center;gap:8px;height:46px;padding:0 18px;border-radius:999px;border:0;
    background:var(--tx);color:#fff;font-size:13.5px;font-weight:800;box-shadow:0 8px 24px rgba(15,30,45,.2);
    cursor:pointer;white-space:nowrap}
}

/* ════════════════════════════════════════════════════════════════════════
   #sodms/transferencias (chunk SQL 587, propuesta de UI vector_openai
   20261003). Fuera del prefijo .sodmapa- del resto del archivo; vive acá
   porque es el CSS "sodms" ya enlazado desde index.html (silo web-builder no
   toca index.html para sumar un <link> nuevo). Scope: .sodtr-*.
   ════════════════════════════════════════════════════════════════════════ */
.shell .sodtr-tap44{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.shell #sodtr-tabs .tab-btn,
.shell .sodtr-tab{min-height:44px}
.sodtr-tl{font-size:11px}
@media(max-width:480px){
  .shell #sodtr-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .shell #sodtr-tabs .tab-btn{flex:0 0 auto}
}

/* ════════════════════════════════════════════════════════════════════════
   #sodms/cobro-ruta y #sodms/cartera (chunks SQL 588/589, diseño vector_openai
   20261003 ui-cxc-v2). Mismo motivo que .sodtr-* arriba: el silo web-builder
   no toca index.html para sumar un <link> nuevo. Scope: .sodcxc-*.
   ════════════════════════════════════════════════════════════════════════ */
.shell .sodcxc-tap44{min-height:44px}
.shell #sodcar-tabs .tab-btn{min-height:44px}
@media(max-width:480px){
  .shell #sodcar-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .shell #sodcar-tabs .tab-btn{flex:0 0 auto}
}

/* ════════════════════════════════════════════════════════════════════════
   DMS de bodega (chunks SQL 610-613) · #sodms/bodegas, #sodms/bodega/<id>,
   #sodms/serie, recepción, asignación, conteo, devolución y acuse con bodega
   (js/sodms.js, prefijo _sodbg). Scope: .sodbg-*. Mobile first: el bodeguero y
   el vendedor lo usan en el celular, así que todo botón táctil mide 44px.
   ════════════════════════════════════════════════════════════════════════ */
.sodbg-tap{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.sodbg-big{width:100%;min-height:52px;font-size:15px;display:flex;align-items:center;justify-content:center;gap:8px}
.sodbg-ph-acc{display:flex;gap:8px;flex-wrap:wrap}
.sodbg-fbar{align-items:center}
.sodbg-volver{margin:0 0 10px;font-size:13px}
.sodbg-volver a{color:var(--tx2);text-decoration:none;font-weight:600}
.sodbg-kpis{margin-bottom:16px}
.sodbg-hint{font-size:11.5px;color:var(--tx3);margin:6px 0 10px;line-height:1.45}
.sodbg-info{font-size:12px;color:var(--tx2);margin:0 0 8px}
.sodbg-msg{font-size:12px;margin:8px 0 0;min-height:0;line-height:1.4}
.sodbg-msg.ok{color:var(--ok);font-weight:600}
.sodbg-msg.warn{color:var(--wn);font-weight:600}
.sodbg-sub{font-size:12.5px;color:var(--tx2)}
.sodbg-sec{font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--tx3);margin:16px 0 8px}
.sodbg-row{display:flex;gap:8px;align-items:flex-end}
.sodbg-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sodbg-chk{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--tx);margin:6px 0 10px;cursor:pointer}
.sodbg-link{background:none;border:0;padding:6px 0;font-size:12.5px;font-weight:600;color:var(--in,#2563eb);cursor:pointer;min-height:32px}
.sodbg-link.er{color:var(--er)}
.sodbg-vacio{font-size:12.5px;color:var(--tx3);text-align:center;padding:14px 8px;border:1px dashed var(--bdr);border-radius:10px;margin-top:10px}
.sodbg-res{border:1px solid var(--bdr);border-radius:10px;padding:4px 12px;margin-top:10px}
.sodbg-res-fila{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--bdr);font-size:13px}
.sodbg-res-fila:last-child{border-bottom:0}

/* Modales de captura */
.sodbg-mov{align-items:center}
.sodbg-modal{max-height:92vh}
.sodbg-mcab{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px}
.sodbg-cerrar{flex-shrink:0;width:44px;height:44px;border-radius:50%;border:1px solid var(--bdr);background:var(--sur);color:var(--tx2);font-size:15px;cursor:pointer}
.sodbg-mac{position:sticky;bottom:-26px;flex-wrap:wrap;background:var(--sur);padding:12px 0 2px;margin-top:14px;border-top:1px solid var(--bdr);z-index:2}
.sodbg-mac .bsm{min-height:46px}
.sodbg-mac .er-msg{flex:1 1 100%;margin:0 0 4px}

/* Componente de carga */
.sodbg-cg{margin-top:2px}
.sodbg-modos{display:flex;gap:6px;margin:0 0 10px;flex-wrap:wrap}
.sodbg-modo{flex:1 1 auto;min-height:44px;padding:8px 12px;border-radius:10px;border:1px solid var(--bdr2,var(--bdr));background:var(--sur);color:var(--tx);font-size:12.5px;font-weight:600;cursor:pointer}
.sodbg-modo.on{background:var(--grad);border-color:transparent;color:#fff}
.sodbg-modo:disabled{opacity:.45;cursor:not-allowed}
.sodbg-panel{margin-bottom:4px}
.sodbg-lst-tit{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--tx3);margin:14px 0 6px}
.sodbg-lst{border:1px solid var(--bdr);border-radius:12px;padding:10px 12px;margin-bottom:8px;background:var(--sur)}
.sodbg-lst-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.sodbg-lst-nom{font-weight:700;font-size:13.5px;color:var(--tx);word-break:break-word}
.sodbg-lst-sku{font-size:11px;color:var(--tx3)}
.sodbg-lst-n{font-size:22px;font-weight:800;line-height:1;color:var(--tx);flex-shrink:0}
.sodbg-lst-n.er{color:var(--er)}
.sodbg-lst-dif{font-size:11.5px;font-weight:600;margin-top:6px}
.sodbg-lst-dif.ok{color:var(--ok)}
.sodbg-lst-dif.er{color:var(--er)}
.sodbg-lst-pie{margin-top:4px;text-align:right}
.sodbg-lst-tot{font-size:13px;color:var(--tx);padding:8px 2px;text-align:right}
.sodbg-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sodbg-chip{display:inline-flex;align-items:center;gap:4px;background:var(--hov);border:1px solid var(--bdr);border-radius:999px;padding:3px 10px;font-size:11.5px;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--tx)}
.sodbg-chip.rg{display:flex;justify-content:space-between;margin-top:8px;border-radius:10px;font-family:inherit;font-weight:600}
.sodbg-chip.fa{background:var(--er-bg);border-color:var(--er);color:var(--er)}
.sodbg-chip.so{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}
.sodbg-x{width:30px;height:30px;border-radius:50%;border:0;background:transparent;color:inherit;font-size:13px;cursor:pointer;opacity:.7}
.sodbg-chip .sodbg-x{margin-right:-8px}
.sodbg-x:hover{opacity:1;background:rgba(0,0,0,.06)}

/* Bodegas: lista y detalle */
.sodbg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.sodbg-grid-p{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-bottom:6px}
.sodbg-bcard{cursor:pointer;padding:14px 16px}
.sodbg-bcard.off{opacity:.6}
.sodbg-bcard-cab{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.sodbg-bcard-nom{font-weight:700;font-size:15px;color:var(--tx);word-break:break-word}
.sodbg-bcard-n{font-size:30px;font-weight:800;line-height:1;margin:12px 0 8px;color:var(--tx)}
.sodbg-bcard-n span{font-size:11px;font-weight:600;color:var(--tx3);margin-left:6px}
.sodbg-bcard-pie{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.sodbg-bcard-resp{font-size:12px;color:var(--tx2)}
.sodbg-sinresp{color:var(--wn);font-weight:700}
.sodbg-edit{width:40px;height:40px;border:1px solid var(--bdr);border-radius:10px;background:var(--sur);cursor:pointer;flex-shrink:0}
.sodbg-det-cab{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px}
.sodbg-det-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--tx3);margin-top:4px}
.sodbg-det-resp{font-size:12.5px;color:var(--tx2);margin-top:6px}
.sodbg-det-n{text-align:right;flex-shrink:0}
.sodbg-det-n b{display:block;font-size:30px;font-weight:800;line-height:1;color:var(--tx)}
.sodbg-det-n span{font-size:11px;color:var(--tx3)}
.sodbg-acciones{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 4px}
.sodbg-tabs{margin-top:14px}
.sodbg-pcard{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px}
.sodbg-pcard-n{font-size:26px;font-weight:800;color:var(--tx);flex-shrink:0}
.sodbg-pcard-n.er{color:var(--er)}
.sodbg-rcard,.sodbg-ccard{padding:12px 14px;margin-bottom:10px}
.sodbg-rcard-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.sodbg-serlista{max-height:340px;overflow-y:auto;border:1px solid var(--bdr);border-radius:10px;margin:8px 0}
.sodbg-ser-fila{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--bdr);text-decoration:none;color:var(--tx);min-height:44px}
.sodbg-ser-fila:last-child{border-bottom:0}
a.sodbg-ser-fila:hover{background:var(--hov)}
.sodbg-ser-n{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;font-weight:600}
.sodbg-resp-fila{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--bdr);font-size:13px}

/* Trazar serie */
.sodbg-buscar{margin-bottom:16px}
.sodbg-ser-cab{display:flex;gap:14px;align-items:flex-start}
.sodbg-ser-ico{font-size:40px;line-height:1}
.sodbg-ser-num{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:20px;font-weight:800;color:var(--tx);word-break:break-all}
.sodbg-ser-donde{font-size:14px;color:var(--tx)}
.sodbg-tl{position:relative;margin:6px 0 14px 14px;padding-left:22px;border-left:2px solid var(--bdr)}
.sodbg-tl-item{position:relative;padding:0 0 18px}
.sodbg-tl-ico{position:absolute;left:-41px;top:-2px;width:36px;height:36px;border-radius:50%;background:var(--sur);border:2px solid var(--bdr);display:flex;align-items:center;justify-content:center;font-size:16px}
.sodbg-tl-tit{font-weight:700;font-size:13.5px;color:var(--tx)}
.sodbg-tl-sub{font-size:12px;color:var(--tx2);margin-top:2px}
.sodbg-tl-fecha{font-size:11px;color:var(--tx3);margin-top:3px}

/* Escáner web en ráfaga (sobre el visor .sodmi-scanweb-ov) */
.sodbg-scan-top{position:absolute;top:max(18px,env(safe-area-inset-top,0px));left:0;right:0;text-align:center;padding:0 16px;pointer-events:none}
.sodbg-scan-cnt{display:inline-block;background:rgba(0,0,0,.65);color:#fff;font-weight:800;font-size:18px;padding:6px 16px;border-radius:999px}
.sodbg-scan-msg{margin-top:8px;color:#fff;font-size:13px;font-weight:600;text-shadow:0 1px 6px rgba(0,0,0,.9);word-break:break-all}
.sodbg-scan-msg.ok{color:#7CFFB2}
.sodbg-scan-msg.warn{color:#FFD27A}

@media(max-width:600px){
  .sodbg-mov{padding:0;align-items:flex-end}
  .sodbg-modal{max-width:none !important;width:100%;max-height:96vh;border-radius:18px 18px 0 0;padding:18px 16px}
  .sodbg-mac{bottom:-18px;padding-bottom:18px}
  .sodbg-mac .bsm{flex:1 1 40%;justify-content:center}
  .sodbg-row2{grid-template-columns:1fr}
  .sodbg-grid,.sodbg-grid-p{grid-template-columns:1fr}
  .sodbg-acciones .bsm{flex:1 1 45%}
  .sodbg-ph-acc{width:100%}
  .sodbg-ph-acc .bsm{flex:1 1 auto}
  .sodbg-det-cab{align-items:flex-start}
  .shell .sodbg-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .shell .sodbg-tabs .tab-btn{flex:0 0 auto;min-height:44px}
  .sodbg-tl{margin-left:12px}
}

/* ════════════════════════════════════════════════════════════════════════
   Cierre de ruta (615) y Tablero de inventario (616) · js/sodms.js
   Prefijos .sodrc-* (cierre) y .sodti-* (tablero). Mobile first.
   ════════════════════════════════════════════════════════════════════════ */
.sodbg-lst-dif.wn{color:var(--wn)}
.sodrc-t-er{color:var(--er)}
.sodrc-t-wn{color:var(--wn)}
.sodrc-t-ok{color:var(--ok)}

/* Detalle y resumen */
.sodrc-det-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}
.sodrc-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}
.sodrc-mini>div{background:var(--hov);border-radius:10px;padding:8px 10px;min-width:0}
.sodrc-mini span{display:block;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--tx3)}
.sodrc-mini b{display:block;font-size:15px;font-weight:800;color:var(--tx);margin-top:2px;word-break:break-word}
.sodrc-mini .er b{color:var(--er)}
.sodrc-mini .wn b{color:var(--wn)}
.sodrc-mini .ok b{color:var(--ok)}
.sodrc-flujo{font-size:11px;color:var(--tx3);margin-top:4px}
.sodrc-sin{margin-top:8px}
.sodrc-sin summary{font-size:12.5px;font-weight:600;color:var(--tx2);cursor:pointer;padding:8px 0;min-height:36px}
.sodrc-det .sodbg-chip.so,.sodrc-p .sodbg-chip.so{background:var(--wn-bg);border-color:var(--wn);color:var(--wn)}

/* Flujo del vendedor */
.sodrc-elegir{margin-bottom:12px;padding:12px 14px}
.sodrc-hero{margin-bottom:14px;padding:14px 16px}
.sodrc-p{border:1px solid var(--bdr);border-left:4px solid var(--bdr2,var(--bdr));border-radius:12px;padding:10px 12px;margin-bottom:8px;background:var(--sur)}
.sodrc-p.ok{border-left-color:var(--ok)}
.sodrc-p.er{border-left-color:var(--er)}
.sodrc-p.wn{border-left-color:var(--wn)}
.sodrc-p.pend{border-left-style:dashed;background:var(--hov)}
.sodrc-p-n{text-align:right;flex-shrink:0;white-space:nowrap}
.sodrc-p-n b{font-size:22px;font-weight:800;color:var(--tx)}
.sodrc-p-n span{font-size:12px;color:var(--tx3)}
.sodrc-p-st{font-size:12px;font-weight:700;margin-top:6px}
.sodrc-p-st.ok{color:var(--ok)}
.sodrc-p-st.er{color:var(--er)}
.sodrc-p-st.wn{color:var(--wn)}
.sodrc-p-st.pend{color:var(--tx3)}
.sodrc-tot{font-size:13px;padding:10px 12px;border-radius:10px;margin-top:4px}
.sodrc-tot.er{background:var(--er-bg);color:var(--er)}
.sodrc-tot.ok{background:var(--ok-bg);color:var(--ok)}
.sodrc-dinero{padding:14px 16px}
.sodrc-debes{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.sodrc-debes span{font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--tx3)}
.sodrc-debes b{font-size:26px;font-weight:800;color:var(--tx)}
.sodrc-dindif{font-size:13px;padding:10px 12px;border-radius:10px;margin-top:4px}
.sodrc-dindif.ok{background:var(--ok-bg);color:var(--ok)}
.sodrc-dindif.er{background:var(--er-bg);color:var(--er)}
.sodrc-dindif.wn{background:var(--wn-bg);color:var(--wn)}
.sodrc-bar{position:sticky;bottom:0;z-index:3;background:var(--sur);border-top:1px solid var(--bdr);padding:10px 0 calc(8px + env(safe-area-inset-bottom,0px));margin-top:16px}
.sodrc-bar-res{font-size:12px;font-weight:700;margin-bottom:8px;text-align:center}

/* Bandeja */
.sodrc-cc{cursor:pointer;padding:12px 14px;margin-bottom:10px}
.sodrc-cc-m{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.sodrc-cc-m>div{min-width:0}
.sodrc-cc-m span{display:block;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--tx3)}
.sodrc-cc-m b{display:block;font-size:13px;font-weight:700;color:var(--tx);margin-top:2px;word-break:break-word}
.sodrc-cc-m .er b{color:var(--er)}
.sodrc-cc-m .wn b{color:var(--wn)}
.sodrc-cc-m .ok b{color:var(--ok)}

/* Tablero de inventario */
.sodti-acc{align-items:center}
.sodti-acc input[type=date]{min-height:40px;padding:6px 10px;border:1px solid var(--bdr);border-radius:10px;background:var(--sur);color:var(--tx);font-size:13px}
.sodti-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}
.sodti-kpi{display:block;text-decoration:none;color:inherit;background:var(--sur);border:1px solid var(--bdr);border-radius:var(--r,14px);padding:16px 18px;box-shadow:var(--sh-sm);position:relative;overflow:hidden;transition:transform .15s,box-shadow .15s}
.sodti-kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ok)}
.sodti-kpi.wn::before{background:var(--wn)}
.sodti-kpi.er::before{background:var(--er)}
.sodti-kpi:hover{transform:translateY(-2px);box-shadow:var(--sh-md)}
.sodti-kpi-top{display:flex;align-items:center;gap:8px}
.sodti-kpi-ico{font-size:18px}
.sodti-kpi-lbl{font-size:10.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--tx3);flex:1;min-width:0}
.sodti-dot{width:10px;height:10px;border-radius:50%;background:var(--ok);flex-shrink:0;box-shadow:0 0 0 3px var(--ok-bg)}
.sodti-dot.wn{background:var(--wn);box-shadow:0 0 0 3px var(--wn-bg)}
.sodti-dot.er{background:var(--er);box-shadow:0 0 0 3px var(--er-bg)}
.sodti-kpi-big{font-size:clamp(22px,5.4vw,32px);font-weight:800;line-height:1.1;color:var(--tx);margin:10px 0 6px;letter-spacing:-.5px;word-break:break-word}
.sodti-kpi-big small{font-size:.5em;font-weight:700;color:var(--tx3);letter-spacing:0}
.sodti-kpi-sub{font-size:12px;color:var(--tx2);line-height:1.4}
.sodti-kpi.er .sodti-kpi-sub b{color:var(--er)}
.sodti-kpi.wn .sodti-kpi-sub b{color:var(--wn)}
.sodti-atencion{margin-bottom:14px;padding:14px 16px;border-left:4px solid var(--wn)}
.sodti-atencion.ok{border-left-color:var(--ok);background:var(--ok-bg)}
.sodti-aten-lista{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.sodti-aten{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;text-decoration:none;font-size:13px;color:var(--tx);min-height:44px;background:var(--wn-bg)}
.sodti-aten.er{background:var(--er-bg)}
.sodti-aten-ico{font-size:17px;flex-shrink:0}
.sodti-aten-t{flex:1;min-width:0;line-height:1.35}
.sodti-aten-go{font-size:20px;color:var(--tx3);flex-shrink:0}
.sodti-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.sodti-sec{padding:16px 18px}
.sodti-sec-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}
.sodti-sec-tit{font-size:15px;font-weight:800;color:var(--tx)}
.sodti-fila{display:block;text-decoration:none;color:inherit;padding:10px 0;border-bottom:1px solid var(--bdr)}
.sodti-fila:last-child{border-bottom:0}
.sodti-fila.clic,a.sodti-fila{cursor:pointer}
a.sodti-fila:hover,.sodti-fila.clic:hover{background:var(--hov);margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:8px}
.sodti-fila-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13.5px}
.sodti-fila-n{min-width:0;font-weight:700;color:var(--tx);word-break:break-word}
.sodti-fila-top b{flex-shrink:0;font-size:14px;color:var(--tx)}
.sodti-bar{height:6px;background:var(--hov);border-radius:999px;margin:7px 0 5px;overflow:hidden}
.sodti-bar i{display:block;height:100%;border-radius:999px;background:var(--grad)}
.sodti-bar i.wn{background:var(--wn)}
.sodti-bar i.er{background:var(--er)}
.sodti-stack{display:flex;height:14px;border-radius:999px;overflow:hidden;background:var(--hov);gap:2px}
.sodti-stack i{display:block;height:100%}
.sodti-stack i.ok,.sodti-leyenda i.ok{background:var(--ok)}
.sodti-stack i.wn,.sodti-leyenda i.wn{background:var(--wn)}
.sodti-stack i.er,.sodti-leyenda i.er{background:var(--er)}
.sodti-stack i.gr,.sodti-leyenda i.gr{background:var(--tx3)}
.sodti-leyenda{display:flex;flex-wrap:wrap;gap:6px 14px;margin:10px 0 6px;font-size:12px;color:var(--tx2)}
.sodti-leyenda span{display:inline-flex;align-items:center;gap:5px}
.sodti-leyenda i{width:9px;height:9px;border-radius:50%;display:inline-block}
.sodti-rank{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--er-bg);color:var(--er);font-size:11px;font-weight:800;margin-right:8px}

@media(max-width:900px){
  .sodti-grid{grid-template-columns:1fr}
}
@media(max-width:768px){
  .sodti-kpis{grid-template-columns:1fr 1fr;gap:10px}
  .sodti-kpi{padding:14px}
  .sodti-acc{width:100%}
  .sodti-acc input[type=date]{flex:1 1 auto}
}
@media(max-width:540px){
  .sodrc-mini{grid-template-columns:1fr 1fr}
  .sodrc-cc-m{grid-template-columns:1fr 1fr}
  .sodti-sec{padding:14px}
}

/* 44px táctiles (375px): Buscar, Actualizar, cerrar y el buscador de bodegas */
.sodbg-ph-acc .bsm,.sodbg-buscar .bsm,.sodbg-cerrar,.sodbg-edit{min-height:44px}
.sodbg-fbar .finput input,#sodbg-q,#sodbg-s-q{min-height:44px}
#sodbg-s-err{margin:-6px 0 12px}

/* Ronda de calidad: enlaces táctiles y negativos explícitos */
@media(max-width:600px){ .sodbg-link{min-height:44px;display:inline-flex;align-items:center} }
.sodrc-mini small.er{display:block;color:var(--er);font-size:10px;font-weight:700}


/* ── Fase B (628/627): cierre v2, cuentas de colaboradores, caja ───────────
   Prefijo .sodtt-*. Mobile first (360 a 412 px). */
.sodtt-in{width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--bdr2,var(--bdr));border-radius:10px;background:var(--sur);color:var(--tx);font-size:15px;text-align:right;box-sizing:border-box}
.sodtt-den{display:grid;grid-template-columns:64px 1fr 96px;gap:8px;align-items:center;margin:6px 0}
.sodtt-den b{font-size:14px;color:var(--tx)}
.sodtt-den-sub{font-size:12.5px;color:var(--tx2);text-align:right}
.sodtt-dep{border:1px solid var(--bdr);border-radius:12px;padding:12px;margin-top:10px;background:var(--sur)}
.sodtt-dep-cab{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.sodtt-dep-ro{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--bdr);font-size:13px}
.sodtt-dep-ro:last-child{border-bottom:0}
.sodtt-chk{display:flex;gap:4px;font-size:12.5px;color:var(--tx2);min-height:44px;align-items:center}
.sodtt-chk input{width:20px;height:20px;flex-shrink:0;margin:12px;cursor:pointer}
.sodtt-chk label{flex:1;min-height:44px;display:flex;align-items:center;cursor:pointer}
.shell .sodbg-tabs .tab-btn{min-height:44px}
.sodtt-nota{font-size:12px;line-height:1.45;color:var(--tx2);background:var(--hov);border-radius:10px;padding:8px 10px;margin-top:10px}
.sodtt-plan{padding:12px 14px;margin-bottom:10px}
.sodtt-cuotas{margin-top:8px}
.sodtt-cuota{display:grid;grid-template-columns:1fr auto auto;gap:4px 10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--bdr);font-size:12.5px}
.sodtt-cuota:last-child{border-bottom:0}
.sodtt-cuota .sodbg-link{grid-column:1 / -1;justify-self:start}
.sodtt-mov{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--bdr)}
.sodtt-mov-l{min-width:0;flex:1}
.sodtt-mov-r{text-align:right;flex-shrink:0;font-size:13px}
.sodtt-tramos{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}
.sodtt-tramos>div{background:var(--hov);border-radius:8px;padding:6px 8px;min-width:0}
.sodtt-tramos span{display:block;font-size:10px;font-weight:700;color:var(--tx3)}
.sodtt-tramos b{display:block;font-size:11.5px;font-weight:700;color:var(--tx);word-break:break-word}
.sodtt-tramos .wn b{color:var(--wn)}
.sodtt-tramos .er b{color:var(--er)}
.sodtt-etq{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sodtt-pend,.sodtt-caja{padding:12px 14px;margin-bottom:10px}
@media (max-width:540px){
  .sodtt-tramos{grid-template-columns:1fr 1fr}
  .sodtt-den{grid-template-columns:56px 1fr 88px}
}

/* W3/W7: alto táctil del acuse y color de deuda (.sodrc-debes b pisaba .sodrc-t-*) */
.sodbg-acciones .bsm.sodbg-tap{min-height:44px}
.sodrc-debes b.sodrc-t-er{color:var(--er)}
.sodrc-debes b.sodrc-t-ok{color:var(--ok)}
.sodrc-debes b.sodrc-t-wn{color:var(--wn)}
