:root{--v:#2a9d48;--vd:#1d7a37;--vc:#5DB86B;--am:#FFE87A;--bg:#f3f7f2;--card:#fff;--tx:#1d2b22;--mu:#5d6d62;--bd:#dce6d9;--na:#e07b1a;--ro:#cf3d3d;--az:#4f7391;--in:#fff;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#111a14;--card:#1a261e;--tx:#e8f1ea;--mu:#9db0a2;--bd:#2b3b30;--in:#14201a}}
:root[data-theme="dark"]{--bg:#111a14;--card:#1a261e;--tx:#e8f1ea;--mu:#9db0a2;--bd:#2b3b30;--in:#14201a}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--tx);font:400 15px/1.5 Montserrat,"Segoe UI",Arial,sans-serif}
.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
aside{background:var(--vd);color:#fff;padding:18px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}
.brand img{display:block;width:100%;max-width:190px;height:auto}
nav{display:flex;flex-direction:column;gap:4px}
nav button{all:unset;cursor:pointer;padding:10px 12px;border-radius:10px;font-weight:600;color:#fff}
nav button:hover{background:rgba(255,255,255,.14)}
nav button.on{background:var(--am);color:#244021}
.foot{margin-top:auto;display:flex;flex-direction:column;gap:8px;font-size:12px;opacity:.95}
.foot button{background:transparent;border:1px solid rgba(255,255,255,.55);color:#fff;border-radius:8px;padding:7px;font:inherit;cursor:pointer}
main{padding:20px 24px 40px;min-width:0}
h1{font-size:18px;margin:0 0 18px;font-weight:700}
h2{font-size:17px;margin:0 0 12px}h3{font-size:14px;margin:0 0 8px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.card,.box{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:14px}
.card b{display:block;font-size:28px;line-height:1.1;margin-top:4px}
.card span{color:var(--mu);font-size:13px}
.card.na{border-left:5px solid var(--na)}.card.az{border-left:5px solid var(--az)}.card.v{border-left:5px solid var(--v)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;align-items:start}
.bar{display:grid;grid-template-columns:150px 1fr 30px;gap:8px;align-items:center;margin:8px 0;font-size:13px}
.bar i{display:block;height:12px;border-radius:6px;background:var(--bd);overflow:hidden}.bar i s{display:block;height:100%;border-radius:6px}
.scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th,td{padding:8px;text-align:left;border-bottom:1px solid var(--bd);vertical-align:middle}
th{color:var(--mu);font-weight:600;white-space:nowrap}
input,select,textarea{font:inherit;color:var(--tx);background:var(--in);border:1px solid var(--bd);border-radius:8px;padding:8px 10px;width:100%;min-width:0}
td input,td select{padding:6px 8px;min-width:70px}
input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--vc);outline-offset:1px}
label{display:block;font-weight:600;font-size:13px;margin-bottom:4px}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;max-width:820px}
.btn{background:var(--v);color:#fff;border:0;border-radius:10px;padding:10px 16px;font:700 14px Montserrat,sans-serif;cursor:pointer}
.btn:hover{background:var(--vd)}.btn.sec{background:var(--am);color:#244021}.btn.gh{background:transparent;color:var(--tx);border:1px solid var(--bd)}
.btn.sm{padding:6px 10px;font-size:13px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0}
.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:700;color:#fff;white-space:nowrap}
.b-pendiente{background:var(--na)}.b-proceso{background:var(--az)}.b-cerrada{background:var(--v)}
.test{background:var(--am);color:#244021;margin-left:6px}
.prog{height:8px;border-radius:5px;background:var(--bd);min-width:70px;overflow:hidden}.prog s{display:block;height:100%;background:var(--v)}
.alert{border-left:5px solid var(--na);background:rgba(224,123,26,.12);padding:8px 12px;border-radius:8px;margin:6px 0;font-size:13.5px}
.alert.ok{border-color:var(--v);background:rgba(42,157,72,.12)}
.neg{color:var(--ro);font-weight:700}.pos{color:var(--na);font-weight:700}
iframe{width:100%;height:560px;border:1px solid var(--bd);border-radius:10px;background:#fff}
.hist{font-size:13px;color:var(--mu);margin:0;padding-left:18px}
#toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--vd);color:#fff;padding:12px 18px;border-radius:10px;font-weight:600;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw;z-index:9}
#toast.show{opacity:1}#toast.err{background:var(--ro)}
.mu{color:var(--mu)}
.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.col{background:rgba(42,157,72,.07);border:1px solid var(--bd);border-radius:12px;padding:12px}
.col h3{display:flex;align-items:center;gap:8px;margin:0}
.oc{background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:12px;margin-top:10px}
.oc.pendiente{border-left:5px solid var(--na)}.oc.proceso{border-left:5px solid var(--az)}.oc.cerrada{border-left:5px solid var(--v)}
.oc .btn{margin-top:10px}
.cities{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.cities .oc{margin-top:0}
@media(max-width:900px){.board{grid-template-columns:1fr}}
@media(max-width:820px){.app{grid-template-columns:1fr}aside{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}nav{flex-direction:row;flex-wrap:wrap}.foot{margin:0}.bar{grid-template-columns:110px 1fr 28px}main{padding:16px 12px 40px}}
@media(prefers-reduced-motion:reduce){#toast{transition:none}}

.topbar{position:relative;display:flex;align-items:center;height:92px;padding:0 20px;margin-bottom:18px;border-radius:14px;background:var(--v);overflow:hidden}
.topbar input{position:relative;z-index:2;width:min(46%,460px);border:0;border-radius:99px;padding:12px 20px;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.frutas{position:absolute;inset:0;pointer-events:none}
.fr{position:absolute;width:34px;height:34px;fill:none;stroke:var(--am);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;animation:flota 5s ease-in-out infinite;animation-delay:calc(var(--i)*-.8s)}
.fr:nth-child(even){animation-duration:6.5s;animation-direction:reverse}
@keyframes flota{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-9px) rotate(8deg)}}
@media(max-width:820px){.topbar input{width:100%}.fr{opacity:.45}}
@media(prefers-reduced-motion:reduce){.fr{animation:none}}

.reloj b{display:block;font-size:26px;font-weight:700;letter-spacing:.5px;line-height:1.2}
.reloj span{display:block;font-size:13px;opacity:.95;margin-top:2px}

/* Fondo con diseño de líneas en la barra superior y en el menú lateral */
.topbar{background:linear-gradient(rgba(26,150,60,.5),rgba(26,150,60,.5)),url(../img/fondo.png) center/cover no-repeat,var(--v)}
aside{background:linear-gradient(rgba(10,110,40,.6),rgba(10,110,40,.6)),url(../img/fondo.png) center/cover no-repeat,var(--vd)}

/* Selección de órdenes y consolidado por cliente */
.selbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:10px 14px;margin:0 0 14px}
.selc{display:flex;gap:6px;align-items:center;font-weight:600;font-size:12.5px;margin:0 0 8px;cursor:pointer}
.selc input{width:auto}
#rep{margin-bottom:14px}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* Sesión: carga inicial, usuario conectado y cuadro de contraseña */
.cargando .app{visibility:hidden}
.cargando::before{content:"Cargando...";position:fixed;inset:0;display:grid;place-items:center;font-weight:600;color:var(--vd);background:var(--bg);z-index:20}
.yo{display:flex;flex-direction:column;gap:2px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.28)}
.yo b{font-size:15px;line-height:1.25;overflow-wrap:anywhere}
.yo span{font-size:12px;opacity:.92}
.salir{align-self:flex-start;margin-top:8px;padding:6px 12px;border:1px solid rgba(255,255,255,.6);border-radius:8px;background:transparent;color:#fff;font:600 13px Montserrat,sans-serif;cursor:pointer}
.salir:hover{background:rgba(255,255,255,.16)}
.salir:focus-visible{outline:3px solid var(--am);outline-offset:2px}
dialog{border:1px solid var(--bd);border-radius:14px;background:var(--card);color:var(--tx);padding:20px;width:min(92vw,420px)}
dialog::backdrop{background:rgba(0,0,0,.45)}
.topbar input:disabled{opacity:.6;cursor:not-allowed}

/* Los elementos marcados como ocultos deben quedar ocultos aunque otro estilo cambie su visualización */
[hidden]{display:none!important}

/* Lista compacta de órdenes cargadas (número, cliente y fecha de carga) */
.lista{display:flex;flex-direction:column;border:1px solid var(--bd);border-radius:10px;overflow:hidden;background:var(--card)}
.lh,.lr{display:grid;grid-template-columns:34px minmax(110px,.9fr) minmax(140px,2fr) minmax(130px,1fr) auto;align-items:center;gap:10px;padding:8px 12px}
.lh{background:rgba(42,157,72,.1);font-size:12px;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:.03em}
.lr{border-top:1px solid var(--bd);font-size:14px}
.lr:hover{background:rgba(42,157,72,.05)}
.lr .ln{color:var(--tx)}
.lr .lcl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lc{display:flex;margin:0}.lc input{width:auto;margin:0}
.lr .btn{margin:0}
@media(max-width:640px){
 .lh{display:none}
 .lr{grid-template-columns:30px 1fr auto;grid-template-areas:"c n b" ". cl cl" ". f f";row-gap:2px}
 .lr .lc{grid-area:c}.lr .ln{grid-area:n}.lr .lcl{grid-area:cl;white-space:normal}.lr .lf{grid-area:f}.lr .btn{grid-area:b}
}
/* En consolidación y Consolidado: tarjetas con solo el número de orden */
.board.dos{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px}
@media(max-width:700px){.board.dos{grid-template-columns:1fr}}
button.tn{all:unset;box-sizing:border-box;cursor:pointer;display:block;width:100%;font-size:15px}
button.tn:focus-visible{outline:3px solid var(--g2,#1d7a37);outline-offset:2px}
button.oc.tn{padding:12px;margin-top:10px;background:var(--card);border:1px solid var(--bd);border-radius:10px}
button.oc.proceso.tn{border-left:5px solid var(--az)}
button.oc.tn:hover{box-shadow:0 2px 8px rgba(0,0,0,.1)}
.oc.tn2{display:flex;align-items:center;justify-content:space-between;gap:10px}
.oc.tn2 .tn{width:auto;flex:1}.oc.tn2 .btn{margin:0}

/* Eliminar archivo, confirmación en pantalla, consolidados por cliente y logos */
.btn.rojo{background:#fff;color:var(--ro);border:1px solid var(--ro)}
.btn.rojo:hover{background:var(--ro);color:#fff}
.btn svg{vertical-align:-2px;margin-right:2px}
.la{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.lr .la .btn{margin:0}
.conf{background:#fff4f2;border:1px solid var(--ro);border-left:6px solid var(--ro);border-radius:10px;padding:12px 14px;margin:0 0 14px;color:var(--tx)}
.conf-d{margin:6px 0 10px;font-size:14px;line-height:1.5}
.ok-banner{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;background:#e8f6ec;border:1px solid var(--v);border-left:6px solid var(--v);border-radius:10px;padding:12px 14px;margin:0 0 14px}
.ok-banner ul{margin:6px 0 0;padding-left:18px}
.sub{margin:-6px 0 10px;font-size:13px}
.gc{margin-top:10px}
.gh{display:flex;align-items:center;gap:12px}
.lg{max-height:38px;max-width:120px;object-fit:contain;background:#fff;border:1px solid var(--bd);border-radius:6px;padding:3px 6px}
.lg-n{display:inline-block;max-width:120px;padding:5px 9px;border:1px dashed var(--bd);border-radius:6px;font-weight:700;font-size:13px;color:var(--vd);background:#fff;text-align:center}
.gn{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}
.chip{all:unset;box-sizing:border-box;cursor:pointer;font-size:12px;padding:3px 8px;border:1px solid var(--bd);border-radius:999px;background:#fff}
.chip:hover{border-color:var(--v)}.chip:focus-visible{outline:3px solid var(--vd)}
.ga{display:flex;flex-wrap:wrap;gap:6px}.ga .btn{margin:0}
.sl{cursor:pointer;display:inline-flex;align-items:center}
@media(max-width:640px){.lr .la{grid-area:b;flex-direction:column;align-items:stretch}.lr{grid-template-columns:30px 1fr auto}}

/* ---- Consolidación simplificada, etiquetas por cliente e historial ---- */
.b-fallido{background:#c0392b}
.lr.sel{background:rgba(42,157,72,.12)}
.gcs{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;align-items:start}
.gcs .gc{margin-top:0}
.board.cuatro{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1200px){.board.cuatro{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.board.cuatro{grid-template-columns:1fr}}
.ecl{display:flex;align-items:center;gap:8px;margin:4px 0}
.ecl .lg{max-height:26px;max-width:90px}
table.th td,table.th th{vertical-align:middle}
table.th .lg{max-height:28px;max-width:90px}
tr.abierta>td{background:rgba(42,157,72,.06)}
tr.detalle>td{background:rgba(0,0,0,.02);padding:14px}
.hd{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.hd h4{margin:0 0 6px}
@media(max-width:800px){.hd{grid-template-columns:1fr}}
.pos{color:#1d7a35;font-weight:600}.neg{color:#b3261e;font-weight:600}

/* ======== Diseño unificado de todos los módulos ======== */
.ph{display:flex;justify-content:space-between;align-items:flex-start;gap:12px 20px;flex-wrap:wrap;margin:0 0 14px}
.ph h2{font-size:20px;margin:0 0 2px}
.ph p{margin:0;font-size:13.5px;max-width:78ch}
.ph .acc,.bh .acc{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.box{margin-bottom:14px}
.bh{display:flex;justify-content:space-between;align-items:center;gap:8px 16px;flex-wrap:wrap;margin:0 0 10px}
.bh h3{margin:0;font-size:15px}
.box>.sub{margin:-4px 0 10px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.fchip{font:600 13px Montserrat,sans-serif;color:var(--tx);background:var(--card);border:1px solid var(--bd);border-radius:999px;padding:6px 14px;cursor:pointer}
.fchip b{color:var(--mu);font-weight:700;margin-left:4px}
.fchip:hover{border-color:var(--v)}
.fchip.on{background:var(--v);border-color:var(--v);color:#fff}.fchip.on b{color:#fff}
.fchip:focus-visible{outline:3px solid var(--vc);outline-offset:2px}
table.tbl th{background:rgba(42,157,72,.1);font-size:12px;text-transform:uppercase;letter-spacing:.03em}
table.tbl tbody tr:hover>td{background:rgba(42,157,72,.05)}
table.tbl tr.sel>td{background:rgba(42,157,72,.12)}
table.tbl tr.detalle:hover>td{background:rgba(0,0,0,.02)}
th.num,td.num{text-align:right;white-space:nowrap}
td.act{text-align:right}td.act .btn{margin:2px 0 2px 4px}
th.ck,td.ck{width:36px}td.ck input,th.ck input{width:auto;margin:0}
td.nov{max-width:280px;font-size:13px}
.chip2{display:inline-block;font-size:12px;padding:2px 8px;border:1px solid var(--bd);border-radius:999px;background:var(--card);margin:1px 0}
.vacio{margin:6px 0}
.b-ama{background:#e0b400;color:#2d2500}.b-listo{background:#1b8a8a}.b-cargue{background:#7a5aa6}
.inl{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inl input{width:220px}
.form.f1{grid-template-columns:1fr;max-width:none}
#rep:empty,#conf:empty{display:none}
textarea{resize:vertical}
td.act .sl{margin:2px 0 2px 4px}
@media(max-width:820px){nav button{padding:8px 10px;font-size:13px}main{padding:14px 12px 32px}.ph h2{font-size:18px}.hd{grid-template-columns:1fr}td.act{text-align:left}}
td.ck input,th.ck input{min-width:0;padding:0;width:auto}
.filtros{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 10px}
.filtros input{max-width:340px}.filtros select{width:auto}

/* ===== Entrega 1: importados, configuración, documentos, devoluciones ===== */
.chk-list{list-style:none;margin:8px 0;padding:0;display:grid;gap:6px}
.chk-list label{display:flex;gap:8px;align-items:center;cursor:pointer}
.btn.imp{background:#fff;color:var(--az);border:1px solid var(--az)}
.btn.imp:hover{background:var(--az);color:#fff}
td.ck,th.ck{width:34px;text-align:center}
.tbl input[type=number],.tbl input:not([type]),.tbl input[type=text]{padding:5px 7px;border:1px solid var(--bd);border-radius:7px;background:var(--in);color:var(--tx);font:inherit;font-size:13.5px}
.tbl input:disabled{opacity:.7}
.docbox{border:1px dashed var(--bd);border-radius:12px;padding:12px;margin:10px 0}

/* ===== Dashboard (Entrega 3) ===== */
.dx-filtros{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:12px 14px;margin-bottom:14px}
.dx-per{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-bottom:10px}
.dx-pe{margin-left:auto;font-size:12.5px}
.dx-sels{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.dx-f{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--mu);min-width:140px}
.dx-f span{font-weight:600}.dx-f select,.dx-f input{margin:0;font-size:13.5px;padding:7px 9px}
.dx-umb{margin-left:auto;font-size:13px}.dx-umb summary{cursor:pointer;color:var(--mu);padding:6px 0}
.dx-umbc{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:8px;padding:10px;border:1px dashed var(--bd);border-radius:10px}.dx-umbc p{flex-basis:100%;margin:0;font-size:12px}
.dx-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:14px}
.dx-kpi{background:var(--card);border:1px solid var(--bd);border-top:4px solid var(--v);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}
.dx-kpi.on{border-color:var(--v);box-shadow:0 0 0 2px color-mix(in srgb,var(--v) 30%,transparent)}
.dx-kpi h3{margin:0;font-size:13px;font-weight:600;color:var(--mu)}
.dx-v{font-size:28px;font-weight:700;line-height:1.15;overflow-wrap:anywhere}.dx-v small{font-size:13px;font-weight:500;color:var(--mu)}
.dx-dt{font-size:12.5px}.dx-x{font-size:12.5px;color:var(--tx)}.dx-x.mal i{color:var(--ro)}.dx-x.ok i{color:var(--vd)}
.dx-sp{width:100%;max-width:140px;height:28px}
.dx-ver{margin-top:auto;align-self:flex-start;background:none;border:0;color:var(--tx);text-decoration:underline;cursor:pointer;font:inherit;font-size:12.5px;padding:4px 0}
.dx-d{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:1px 8px;border-radius:999px;border:1px solid var(--bd);white-space:nowrap}
.dx-d i{font-style:normal}.dx-d.ok{border-color:var(--v)}.dx-d.ok i{color:var(--vd)}.dx-d.mal{border-color:var(--ro)}.dx-d.mal i{color:var(--ro)}.dx-d.warn{border-color:var(--na)}.dx-d.warn i{color:var(--na)}
.dx-med{position:relative;height:10px;border-radius:5px;background:var(--bd);margin:6px 0 2px}.dx-med i{display:block;height:100%;border-radius:5px;background:var(--v)}
.dx-med s{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--tx);opacity:.6}
.dx-g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px;align-items:start}
#dx-sol{margin-bottom:14px}
.dx-panel{min-width:0;margin:0}.dx-g2>.dx-panel+.dx-panel{margin-top:0}
.dx-tv>.dx-panel,#dx-tv .dx-panel+.dx-panel{margin-top:0}
#dx-tv,#dx-pd{grid-template-columns:1fr}
.dx-ph{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.dx-ph h3{margin:0 0 2px;font-size:16px}.dx-ph p{margin:0;font-size:12.5px;max-width:80ch}
.dx-acc{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dx-panel h4{margin:14px 0 6px;font-size:13.5px}
.dx-flujo{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px}
.dx-et{display:flex;flex-direction:column;gap:2px;text-align:left;background:var(--in);border:1px solid var(--bd);border-radius:10px;padding:9px 10px;cursor:pointer;color:var(--tx);font:inherit}
.dx-et:hover,.dx-et.on{border-color:var(--v)}.dx-et span{font-size:12px;color:var(--mu)}.dx-et b{font-size:22px}.dx-et small{font-size:11px;color:var(--mu)}
.dx-al{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.dx-al li{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--bd);border-left-width:5px;border-radius:10px;font-size:13.5px}
.dx-al li>div{flex:1;min-width:0}.dx-al li.crit{border-left-color:var(--ro)}.dx-al li.warn{border-left-color:var(--na)}.dx-al li.info{border-left-color:var(--az)}
.dx-ai{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;font-weight:700;font-size:13px;flex:none;border:2px solid currentColor}
.dx-al .crit .dx-ai{color:var(--ro)}.dx-al .warn .dx-ai{color:var(--na)}.dx-al .info .dx-ai{color:var(--az)}.dx-an{font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;margin-right:4px}
.dx-vacio{padding:18px;text-align:center;border:1px dashed var(--bd);border-radius:10px}.dx-vacio p{margin:4px 0 0;font-size:13px}
.dx-tot{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:13px;color:var(--mu);margin:2px 0 10px}.dx-tot b{color:var(--tx);font-size:15px}
.dx-bar2{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;justify-content:space-between}
.dx-tabs{display:inline-flex;border:1px solid var(--bd);border-radius:8px;overflow:hidden}.dx-tabs button{background:var(--in);color:var(--tx);border:0;padding:5px 11px;font:inherit;font-size:12.5px;cursor:pointer;border-right:1px solid var(--bd)}.dx-tabs button:last-child{border-right:0}.dx-tabs button.on{background:var(--v);color:#fff;font-weight:600}
.dx-svg{width:100%;height:auto;display:block;max-height:300px}
.dx-gl{stroke:var(--bd);stroke-width:1}.dx-tk{fill:var(--mu);font-size:11px}
.dx-s1{fill:var(--az)}.dx-s2{fill:var(--v)}.dx-hit:hover,.dx-hit:focus{fill:var(--tx);fill-opacity:.06;outline:none}
polyline.dx-l1,circle.dx-l1{stroke:var(--v)}circle.dx-l1{fill:var(--v)}polyline.dx-l2,circle.dx-l2{stroke:var(--az)}circle.dx-l2{fill:var(--az)}.dx-pt{stroke-width:0}
.dx-ley{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;margin:6px 0 4px}.dx-ley span{display:inline-flex;align-items:center;gap:6px}
.dx-ley i{width:12px;height:12px;border-radius:3px;display:inline-block}.dx-ley i.dx-s1{background:var(--az)}.dx-ley i.dx-s2{background:var(--v)}
.dx-ley i.ln{height:0;width:20px;border-radius:0;border-top:2px solid}.dx-ley i.dx-l1{border-color:var(--v)}.dx-ley i.dx-l2{border-color:var(--az)}.dx-ley i.dash{border-top-style:dashed}
.dx-det{margin-top:10px;font-size:13px}.dx-det summary{cursor:pointer;color:var(--mu)}
.dx-vl{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}
.dx-vr{display:grid;grid-template-columns:minmax(150px,1.1fr) 2fr minmax(120px,.8fr);gap:6px 14px;align-items:center;padding:8px 10px;border:1px solid var(--bd);border-radius:10px}
.dx-vn{display:flex;flex-direction:column;gap:1px;font-size:13px;min-width:0}.dx-vn .mu{font-size:12px}
.dx-trk{position:relative;height:14px;background:var(--bd);border-radius:7px;overflow:hidden}.dx-trk i{display:block;height:100%;border-radius:0 7px 7px 0;background:var(--v)}
.dx-trk i.baja{background:var(--na)}.dx-trk i.excede{background:var(--ro)}.dx-trk i.normal{background:var(--az)}.dx-trk i.sin_cap{background:var(--mu)}
.dx-trk s{position:absolute;top:0;bottom:0;width:2px;background:var(--tx);opacity:.5}
.dx-vs{font-size:12px;margin-top:3px}.dx-pp{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.dx-pp b{font-size:18px}
.dx-chipst{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.dx-bh{display:flex;flex-direction:column;gap:6px}.dx-bhr{display:grid;grid-template-columns:minmax(80px,140px) 1fr auto;gap:8px;align-items:center;font-size:12.5px}
.dx-bn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-bhr i{display:block;height:14px;background:var(--bd);border-radius:7px;overflow:hidden}.dx-bhr s{display:block;height:100%;background:var(--v);border-radius:0 7px 7px 0}
.dx-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:6px}.dx-ph2{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.dx-ph2 h4{margin:14px 0 6px}
.dx-cmp{margin-top:14px;padding:10px 12px;border:1px solid var(--bd);border-radius:10px;font-size:13.5px;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.dx-dtools{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end;margin-bottom:10px}
.dx-th{background:none;border:0;font:inherit;font-weight:700;color:inherit;cursor:pointer;padding:0;white-space:nowrap}
.dx-rowl{cursor:pointer}.dx-rowl:hover,.dx-rowl:focus{background:color-mix(in srgb,var(--v) 10%,transparent);outline:none}
.dx-pag{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;font-size:13px}
#dxTip{position:fixed;display:none;z-index:99;max-width:320px;background:var(--tx);color:var(--bg);font-size:12.5px;line-height:1.35;padding:6px 9px;border-radius:7px;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.25)}
@media(max-width:1100px){.dx-g2{grid-template-columns:1fr}}
@media(max-width:700px){.dx-vr{grid-template-columns:1fr}.dx-pp{flex-direction:row;align-items:center;justify-content:space-between}.dx-pe{margin-left:0}.dx-umb{margin-left:0}}

.b-empacado{background:#2f8f5b}
[data-plm]:disabled{opacity:.45}

/* ===== Dashboard: tablero tipo mosaico ===== */
.dx-wrap{--dxw:#fff;background:linear-gradient(135deg,#eceff0 0%,#d3d8db 45%,#e8ebec 100%);border-radius:14px;padding:14px}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .dx-wrap{background:linear-gradient(135deg,#1b2a21,#25362b 50%,#1b2a21)}}
:root[data-theme="dark"] .dx-wrap{background:linear-gradient(135deg,#1b2a21,#25362b 50%,#1b2a21)}
.dxb{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}
.dxb-r1{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.dxb-r2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
.dxb-izq,.dxb-der{display:flex;flex-direction:column;gap:14px;min-width:0}
.dxb-par{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.dxb-t{color:#fff;border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-width:0;box-shadow:0 2px 6px rgba(0,0,0,.18);cursor:default}
.dxb-t[data-act]{cursor:pointer}.dxb-t[data-act]:hover{filter:brightness(1.06)}.dxb-t:focus-visible{outline:3px solid #fff;outline-offset:-5px}
.t-teal{background:#0f7f8a}.t-green{background:#1f8a3f}.t-blue{background:#23699c}.t-purple{background:#6b2f8f}.t-sea{background:#1d5f8c}.t-red{background:#b8312f}
.dxb-t h3{margin:0;font-size:17px;font-weight:700;color:#fff}
.dxb-v{font-size:34px;font-weight:700;line-height:1.1;overflow-wrap:anywhere}.dxb-v small{font-size:15px;font-weight:500;opacity:.9}.dxb-v.s{font-size:22px}
.dxb-lab{font-size:12px;opacity:.9}.dxb-sub{font-size:12.5px;opacity:.95}.dxb-sub .mu{color:#fff;opacity:.85}
.dxb-t .dx-d{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.55);color:#fff}.dxb-t .dx-d i{color:#fff!important}
.dxb-sts{display:flex;gap:6px 18px;flex-wrap:wrap;margin-top:auto}.dxb-sts.big{margin-top:6px;gap:10px 22px}
.dxb-st{background:none;border:0;color:#fff;text-align:left;font:inherit;padding:0;display:flex;flex-direction:column;cursor:inherit}
button.dxb-st{cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.dxb-st b{font-size:22px;line-height:1.15}.dxb-st span{font-size:12px;opacity:.92;max-width:22ch}
.dxb-bar{position:relative;height:8px;border-radius:4px;background:rgba(255,255,255,.3)}.dxb-bar i{display:block;height:100%;background:#fff;border-radius:4px}.dxb-bar s{position:absolute;top:-3px;bottom:-3px;width:2px;background:#fff}
.dxb-mini{width:100%;height:46px;display:block}.dxb-sin{font-size:12px;opacity:.9;padding:6px 0}
.dxb-row{display:flex;gap:14px;align-items:center;justify-content:space-between}.dxb-ic{font-size:44px;opacity:.9;line-height:1}
.dxb-veh{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0;font-size:12px}.dxb-veh>div{display:grid;grid-template-columns:62px 1fr 34px;gap:6px;align-items:center}
.dxb-veh span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dxb-veh i{display:block;height:8px;background:rgba(255,255,255,.3);border-radius:4px;overflow:hidden}.dxb-veh s{display:block;height:100%;background:#fff}
.dxb-al{font-size:12.5px;border-top:1px solid rgba(255,255,255,.35);padding-top:4px}
.dxb-link{color:#fff;font-size:12.5px;font-weight:600}
.dxb-c{background:var(--card);border-radius:14px;padding:14px;box-shadow:0 2px 6px rgba(0,0,0,.14);min-width:0}
.dxb-c h3{margin:0 0 8px;font-size:16px}
.dxb-flujo{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.dxb-et{position:relative;text-align:left;background:var(--in);border:2px solid var(--bd);border-radius:10px;padding:8px 10px;cursor:pointer;color:var(--tx);font:inherit;display:flex;flex-direction:column;min-height:78px}
.dxb-et:hover,.dxb-et.on{border-color:var(--v)}.dxb-et span{font-size:12.5px;font-weight:600;max-width:11ch}.dxb-et b{font-size:22px}.dxb-et small{font-size:11px;color:var(--mu)}.dxb-et i{position:absolute;right:8px;bottom:6px;font-style:normal;font-size:20px;opacity:.85}
.dxb-tb{width:100%;border-collapse:collapse;font-size:12.5px}.dxb-tb th{background:var(--bd);text-align:left;padding:5px 6px;font-size:11.5px}.dxb-tb td{padding:5px 6px;border-bottom:1px solid var(--bd);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dxb-tb .num{text-align:right}
.dxb-pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:600;border:1px solid var(--bd)}.dxb-pill.ok{background:#d9f0df;color:#14532d;border-color:#7cc58f}.dxb-pill.warn{background:#fdebc8;color:#6b4a00;border-color:#e3b24a}.dxb-pill.n{background:#e8ecea;color:#34423a}
.dxb-res{font-size:14px;line-height:1.5;margin:0}
@media(max-width:1100px){.dxb-r2{grid-template-columns:1fr}}
@media(max-width:640px){.dxb-par{grid-template-columns:1fr}}
.dxb-c{overflow-x:auto}.dxb-tb td{max-width:110px}.dxb-tb th{white-space:nowrap}
.dxb-der .dxb-par{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.dxb-r1{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.dxb-t.t-wide{grid-column:span 2}.dxb-lt{width:100%;height:auto;display:block}
@media(max-width:560px){.dxb-t.t-wide{grid-column:span 1}}

/* Tablas del consolidado: texto centrado, columnas y alturas uniformes, nombres largos legibles */
table.cen{table-layout:auto;width:100%}
table.cen th,table.cen td{text-align:center;vertical-align:middle;padding:8px 10px;overflow-wrap:anywhere;word-break:normal;line-height:1.35}
table.cen thead th{white-space:normal}
table.cen th[scope=row]{background:var(--verde,#2A9D48);color:#fff;width:22%}
table.cen tbody tr{min-height:40px}
@media print{table.cen{font-size:11px}table.cen tr{break-inside:avoid}}
.chip.on{background:var(--v);color:#fff;border-color:var(--v)}
.imp-t td,.imp-t th{padding:4px 8px}

/* Gráfico de devoluciones */
.dv-gr{margin:10px 0 14px}.dv-gr-f{display:grid;grid-template-columns:minmax(90px,200px) 1fr 90px;gap:10px;align-items:center;margin:5px 0;font-size:13px}
.dv-gr-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dv-gr-b{background:#eef2ef;border-radius:6px;height:16px;overflow:hidden}
.dv-gr-b i{display:block;height:100%;border-radius:0 6px 6px 0;background:#6d4aa8}.dv-gr-b i.dv-c1{background:#2a9d48}.dv-gr-n{font-variant-numeric:tabular-nums}.dv-gr-n small{color:#6b7280}
