:root{--bg:#f2f5f9;--card:#fff;--text:#142038;--muted:#5f6b80;--line:#e1e6ee;--brand:#2c4370;--brand-d:#1f3157;--brand-soft:#e6ecf6;--on-brand:#fff;--accent:#46c0ec;--link:#1d6fae;--on-accent:#10213d;--side:#2c4370;--side-2:#3a5384;--side-text:#d2dcee;--bad:#b3261e;--bad-soft:#fdecea;--ok:#1a7f4b;--ok-soft:#dcfce7;--warn:#b45309;--warn-soft:#fef3c7}
:root[data-theme=dark]{--bg:#0b1220;--card:#121b2e;--text:#e6ecf7;--muted:#93a1ba;--line:#22304a;--brand:#8db3f0;--brand-d:#a9c6f5;--brand-soft:#1a2a4a;--on-brand:#0b1220;--link:#7cc8ef;--on-accent:#0b1a30;--side:#0f1a30;--side-2:#1d2d4d;--side-text:#c3cee3;--bad:#ff8a80;--bad-soft:#3a1a1a;--ok:#5fd39a;--ok-soft:#10301d;--warn:#fbbf24;--warn-soft:#3a2c0a;color-scheme:dark}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b1220;--card:#121b2e;--text:#e6ecf7;--muted:#93a1ba;--line:#22304a;--brand:#8db3f0;--brand-d:#a9c6f5;--brand-soft:#1a2a4a;--on-brand:#0b1220;--link:#7cc8ef;--on-accent:#0b1a30;--side:#0f1a30;--side-2:#1d2d4d;--side-text:#c3cee3;--bad:#ff8a80;--bad-soft:#3a1a1a;--ok:#5fd39a;--ok-soft:#10301d;--warn:#fbbf24;--warn-soft:#3a2c0a}}
a{color:var(--link)}a:visited{color:var(--link)}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.cab{display:flex;align-items:center;gap:8px;padding:0 16px;height:58px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
.cab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--accent)}
.cab .logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}
.cab .logo img{height:30px;background:#fff;border-radius:4px}
.cab .logo span{font-size:13px;font-weight:600;color:var(--muted);border-left:1px solid var(--line);padding-left:10px}
.cab .sp{flex:1}
.userbox{display:flex;align-items:center;gap:8px}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--brand);color:var(--on-brand);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex:none}
.uname{font-size:14px;line-height:1.2}.uname small{display:block;font-size:12px;color:var(--muted)}
.iconbtn,button.iconbtn{background:transparent;color:var(--muted);border:0;border-radius:9px;width:38px;height:38px;padding:0;margin:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none}
.iconbtn:hover,button.iconbtn:hover{background:var(--bg);color:var(--text)}
.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.layout{display:flex;align-items:flex-start}
.side{width:236px;flex:none;position:sticky;top:58px;height:calc(100vh - 58px);overflow:auto;background:var(--side);padding:14px 10px}
.side nav a.item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--side-text);text-decoration:none;margin-bottom:3px;white-space:nowrap;position:relative}
.side nav a.item:hover{background:color-mix(in srgb,var(--side-2) 60%,transparent);color:#fff}
.side nav a.item.on{background:var(--side-2);color:#fff;font-weight:600}
.side nav a.item.on::before{content:"";position:absolute;left:-10px;top:6px;bottom:6px;width:4px;border-radius:0 3px 3px 0;background:var(--accent)}
.side nav a.item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.side .cuenta:not(:empty){margin-left:auto}
@media(max-width:860px){.layout{flex-direction:column}.side{width:100%;height:auto;position:static;padding:8px;overflow-x:auto}.side nav{display:flex;gap:4px}.side nav a.item{margin:0}.side nav a.item.on::before{display:none}.uname{display:none}}
.caja{max-width:420px;margin:8vh auto;padding:0 16px}
.tarjeta{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:0 4px 18px rgba(20,32,56,.06)}
.tarjeta img.logo{height:44px;background:#fff;border-radius:6px;margin-bottom:12px}
h1{font-size:22px;margin:0 0 4px}.muted{color:var(--muted);font-size:14px;margin:0 0 16px}
label{display:block;font-size:13px;font-weight:600;margin:14px 0 4px}
input{width:100%;padding:10px 12px;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px}
input:focus{outline:2px solid var(--accent);outline-offset:1px}
button{margin-top:18px;width:100%;padding:11px;font:inherit;font-weight:600;color:var(--on-brand);background:var(--brand);border:0;border-radius:10px;cursor:pointer}
button:hover{background:var(--brand-d)}button:disabled{opacity:.6;cursor:wait}
button.sec{width:auto;margin:0;padding:6px 12px;background:transparent;color:var(--brand);border:1px solid var(--line);font-weight:500}
.error{margin-top:14px;padding:10px 12px;color:var(--bad);background:var(--bad-soft);border-radius:10px;font-size:14px}
.ayuda{font-size:13px;color:var(--muted);margin-top:14px}
.contenido{flex:1;min-width:0;max-width:1180px;margin:22px auto;padding:0 24px}
.bar{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.cuenta:not(:empty){background:var(--bad);color:#fff;border-radius:10px;padding:0 7px;margin-left:4px;font-size:12px}
.tit{white-space:nowrap}.cab{flex-wrap:wrap}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:16px}
.kpi{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.kpi>div{min-width:0;flex:1}.kpi b{display:block;font-size:24px;line-height:1.15;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.kpi div span{display:block;color:var(--muted);font-size:13px}
.kpi .ico{width:36px;height:36px;border-radius:8px;background:var(--brand-soft);color:var(--text);display:flex;align-items:center;justify-content:center;flex:none}
.kpi.mal .ico{background:var(--bad-soft);color:var(--bad)}.kpi.mal b{color:var(--bad)}.kpi.bien .ico{background:var(--ok-soft);color:var(--ok)}
.tarjeta{margin-bottom:16px}.tarjeta h2{margin:0 0 10px;font-size:18px}
.cab-prod{display:grid;grid-template-columns:240px 1fr;gap:20px;align-items:start}
.foto{min-height:200px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center;background:var(--bg)}
.img.grande{width:100%;max-height:240px;object-fit:contain}.img.mini{width:56px;height:44px;object-fit:contain;border:1px solid var(--line);border-radius:6px;background:#fff}
.campos label:first-child{margin-top:0}.lista{margin-top:6px;border:1px solid var(--line);border-radius:10px;background:var(--card);max-height:280px;overflow:auto;padding:4px}
.op{display:block;width:100%;margin:0;padding:8px 10px;text-align:left;background:transparent;color:var(--text);font-weight:400;border-radius:8px}.op:hover,.op.act{background:var(--bg)}
.sin{color:var(--bad);font-weight:600}.ok{color:var(--ok);font-weight:600}
.tabla{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{white-space:nowrap}.n{text-align:right;white-space:nowrap}
tr.mal td{background:var(--bad-soft)}input.cant{width:80px;padding:6px 8px}
button.peq{width:auto;margin:0;padding:6px 10px;font-size:13px}
.alerta{margin:12px 0;padding:12px 14px;border-radius:10px;background:var(--bad-soft)}.alerta ul{margin:6px 0 0 18px;padding:0}
.fila{display:flex;gap:12px;flex-wrap:wrap}.fila>div{flex:1;min-width:200px}textarea{width:100%;padding:10px 12px;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--brand-d);color:#fff;padding:10px 16px;border-radius:10px;z-index:20}
@media(max-width:760px){.cab-prod{grid-template-columns:1fr}.cab .quien{display:none}}
.insignia{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-size:13px;font-weight:600;white-space:nowrap}
.insignia.etapa-ok{color:var(--ok);border-color:var(--ok)}.insignia.etapa-aviso{color:var(--warn);border-color:var(--warn)}.insignia.etapa-mal{color:var(--bad);border-color:var(--bad)}
.peq-enlace{white-space:nowrap}.paginas{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
.tiempo{list-style:none;margin:10px 0 0;padding:0}.tiempo li{position:relative;display:flex;gap:12px;padding:0 0 18px 0;color:var(--muted)}
.tiempo li:not(:last-child)::before{content:"";position:absolute;left:8px;top:18px;bottom:0;width:2px;background:var(--line)}
.tiempo li.hecho:not(:last-child)::before{background:var(--ok)}
.tiempo .punto{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--line);background:var(--card);margin-top:2px}
.tiempo li.hecho{color:var(--text)}.tiempo li.hecho .punto{background:var(--ok);border-color:var(--ok)}
.tiempo li.actual .punto{box-shadow:0 0 0 4px rgba(70,192,236,.35)}.tiempo li.actual .txt{font-weight:700}
.tiempo small{display:block;color:var(--muted);font-weight:400}
.boton-enlace{padding:9px 16px;border-radius:10px;background:var(--brand);color:var(--on-brand);text-decoration:none;font-weight:600}.boton-enlace:hover{background:var(--brand-d)}
.barra{display:grid;grid-template-columns:130px 1fr 130px;gap:10px;align-items:center;margin:8px 0;font-size:14px}.barra .pista{height:12px;background:var(--bg);border-radius:6px;overflow:hidden;border:1px solid var(--line)}
.barra .relleno{display:block;height:100%}.barra .relleno.ok{background:var(--ok)}.barra .relleno.mal{background:var(--bad)}.barra .v{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:560px){.barra{grid-template-columns:90px 1fr 100px;font-size:13px}}
.sec-enlace{color:var(--brand);text-decoration:none;font-size:14px;white-space:nowrap}.sec-enlace:hover{text-decoration:underline}

/* Ficha de existencia: barras por almacén */
.inv-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.inv-cod{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-weight:600;font-size:22px;letter-spacing:-.01em}
.inv-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.inv-chips span{font-size:12px;padding:2px 8px;border-radius:6px;background:var(--bg);color:var(--muted)}
.inv-precio{text-align:right;display:flex;flex-direction:column}
.inv-precio b{font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}
.inv-precio .muted{font-size:12px;margin:0}
.inv-filas{border-top:1px solid var(--line)}
.inv-fila{display:grid;grid-template-columns:minmax(110px,170px) 1fr 44px 84px auto;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.inv-alm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inv-barra{height:8px;border-radius:4px;background:var(--bg)}
.inv-barra i{display:block;height:8px;border-radius:4px;background:var(--accent)}
.inv-barra i.poco{background:var(--warn,#b45309)}
.inv-n{text-align:right;font-variant-numeric:tabular-nums}
.inv-fila input{width:84px}
@media(max-width:640px){.inv-fila{grid-template-columns:1fr 44px;row-gap:6px}.inv-barra{grid-column:1/-1;order:3}.inv-fila input,.inv-fila button{grid-row:auto}}

/* Inicio del portal */
.ini-h{font-size:24px;margin:0}
.ini-busca{display:flex;gap:10px;align-items:center;padding:8px 10px 8px 14px;margin-bottom:16px;box-shadow:none}.ini-busca .ic{color:var(--muted)}.ini-busca button{width:auto;margin:0;padding:9px 18px}
.ini-busca input{flex:1;min-width:0;width:auto;border:0;background:transparent;font-size:16px;box-shadow:none;padding:8px 4px}
.ini-busca input:focus{outline:none}.ini-busca input::placeholder{color:var(--muted)}
.ini-busca:focus-within{border-color:var(--brand)}
.kpi span{display:block;font-size:13px;color:var(--muted)}
.kpi .inv-barra{margin:8px 0 6px}
.ini-cols{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;align-items:start;margin-top:16px}
.ini-cols h2{margin:0 0 10px;font-size:17px}
.ini-fila{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--text)}
.ini-fila:first-of-type{border-top:0}
a.ini-fila:hover b,a.ini-fila:hover .ini-cod{color:var(--brand)}
.ini-nuevo{align-items:flex-start}.ini-txt{display:flex;flex-direction:column;min-width:0}.ini-sub{display:block;font-size:13px;margin:0}
.ini-cod{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-weight:600}
.ini-nom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--muted)}.ini-nuevo>span:last-child{font-size:13px;white-space:nowrap}
.ok{color:var(--ok)}
@media(max-width:860px){.ini-cols{grid-template-columns:1fr}}

/* Catálogo y formulario centrado */
.tarjeta.centrada{max-width:460px;margin:8vh auto 16px}
.cat-busca{margin-bottom:8px}
.cat-busca input{font-size:17px;padding:12px 4px}
#lista.lista{margin:0 0 16px;box-shadow:0 8px 24px rgba(20,32,56,.12)}
.op{display:grid;grid-template-columns:minmax(120px,170px) 1fr auto;gap:12px;align-items:center;text-align:left}
.op-cod{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-weight:600}
.op-nom{min-width:0}.op-nom small{display:block;font-size:12px;color:var(--muted)}
.op-pill{font-size:12px;padding:2px 10px;border-radius:999px;white-space:nowrap;background:var(--ok-soft);color:var(--ok);font-weight:500}
.op-pill.sin{background:var(--bad-soft);color:var(--bad)}
.cat-ficha{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:start}
.cat-ficha .foto{position:relative;min-height:130px;height:130px;color:var(--muted)}
.cat-ficha .foto .img.grande{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:contain;background:#fff}
.inv-desc{color:var(--muted);margin-top:2px}
@media(max-width:640px){.cat-ficha{grid-template-columns:1fr}.op{grid-template-columns:1fr auto}.op-cod{grid-column:1/-1}}
.totales{margin:14px 0 0 auto;max-width:320px;display:flex;flex-direction:column;gap:6px}.totales>div{display:flex;justify-content:space-between;gap:16px;color:var(--muted)}.totales b{color:var(--text);font-variant-numeric:tabular-nums}.totales .gran{border-top:1px solid var(--line);padding-top:8px;color:var(--text);font-size:18px}.totales .gran b{font-size:22px}

.inv-no{font-size:12px;color:var(--muted);grid-column:span 1;white-space:nowrap}.inv-fila button.sec{white-space:nowrap}
@media(max-width:900px){.inv-fila:has(.inv-no){grid-template-columns:1fr 44px}.inv-fila .inv-no{grid-column:1/-1}}

/* Existencia por almacén (versión final): columna de acciones de ancho fijo para que todas las barras midan igual */
.inv-fila{grid-template-columns:minmax(110px,170px) minmax(80px,1fr) 44px 232px;gap:16px;padding:10px 4px;border-radius:8px}
.inv-fila:hover{background:var(--bg)}
.inv-barra{height:10px;border-radius:5px;background:color-mix(in srgb,var(--line) 70%,transparent);overflow:hidden}
.inv-barra i{height:10px;border-radius:5px;background:var(--accent);transition:width .25s}
.inv-barra i.alta{background:var(--ok)}
.inv-barra i.poco{background:var(--warn)}
.inv-fila.otro .inv-alm,.inv-fila.otro .inv-n{color:var(--muted)}
.inv-fila.otro .inv-barra i{background:var(--muted);opacity:.45}
.inv-n{font-size:16px}
.inv-acc{display:flex;gap:8px;justify-content:flex-end;align-items:center}
.inv-acc input{width:84px;padding:6px 8px}
.inv-acc button{margin:0;white-space:nowrap}
.inv-acc button.sec{background:transparent;color:var(--brand);border:1px solid var(--line);font-weight:500}
.inv-acc button.sec:hover{background:var(--bg)}
@media(max-width:900px){.inv-fila{grid-template-columns:1fr 44px;row-gap:8px}.inv-barra{grid-column:1/-1;order:3}.inv-acc{grid-column:1/-1;order:4;justify-content:flex-start}}
/* Pestañas de compra, carrito en el encabezado y menú lateral colapsable (igual que el portal interno) */
.tabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 18px;padding:4px;background:var(--card);border:1px solid var(--line);border-radius:12px;width:fit-content;max-width:100%;overflow-x:auto}
.tabs a{display:flex;align-items:center;gap:7px;padding:8px 14px;border-radius:9px;color:var(--muted);text-decoration:none;font-weight:500;white-space:nowrap}
.tabs a:hover{color:var(--text);background:var(--bg)}
.tabs a.on{background:var(--brand);color:var(--on-brand)}
.tabs a.on .ic{color:var(--accent)}
.tabs .cuenta:not(:empty){margin-left:2px}
.cartbtn{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:99px;border:1px solid var(--line);color:var(--text);text-decoration:none;font-weight:600;font-size:14px;margin-right:6px}
.cartbtn:hover,.cartbtn.on{background:var(--bg);border-color:var(--brand)}
.cartbtn .cartn:not(:empty){background:var(--bad);color:#fff;border-radius:10px;padding:0 7px;font-size:12px;line-height:18px}
.cartbtn .cartt:not(:empty){font-variant-numeric:tabular-nums}
.side{transition:width .18s}
body.min .side{width:68px}
body.min .side .lbl{display:none}
body.min .side nav a.item{justify-content:center;padding:11px 0}
@media(max-width:860px){#menu{display:none}body.min .side{width:100%}body.min .side .lbl{display:inline}body.min .side nav a.item{justify-content:flex-start;padding:10px 12px}.cartbtn .cartt{display:none}}
/* Ingreso: panel de marca + formulario */
.ingreso{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh}
.ing-marca{background:var(--side);color:#d2dcee;padding:48px 44px;display:flex;flex-direction:column;justify-content:center;gap:40px;min-width:0;overflow:hidden}
.ing-marca>svg{width:100%;max-width:420px;height:auto;flex:none}
.ing-marca h2{font-size:28px;line-height:1.2;margin:0 0 18px;color:#fff;font-weight:600}
.ing-marca ul{list-style:none;margin:0;padding:0}
.ing-marca li{display:flex;gap:12px;align-items:flex-start;margin:0 0 12px;font-size:16px;max-width:420px}
.ing-marca li .ic{color:var(--accent);margin-top:2px;width:20px;height:20px;flex:none}.ing-marca li{line-height:1.4}
.ing-form{display:flex;align-items:center;justify-content:center;padding:32px 24px}
.ing-caja{width:100%;max-width:380px}
.ing-caja img.logo{height:44px;background:#fff;border-radius:6px;margin-bottom:18px}
.ing-caja h1{font-size:26px}
@media(max-width:860px){.ingreso{grid-template-columns:1fr}.ing-marca{display:none}}
.aviso-saldo{margin:12px 0;padding:14px 16px;border-radius:10px;background:var(--warn-soft);color:var(--text)}.aviso-saldo b{color:var(--warn)}.aviso-saldo ul{margin:6px 0 0 18px;padding:0}.aviso-saldo p{margin:8px 0 6px}

/* Carrito en dos columnas */
.carro{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:16px;align-items:start}
.carro-resumen{position:sticky;top:78px;margin-bottom:0}
.carro-resumen h2{margin:0 0 8px}
.carro-resumen .totales{margin:0 0 4px;max-width:none}
.carro-resumen label{margin-top:12px}
.carro-fila{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}
.carro-fila:first-child{border-top:0;padding-top:0}
.carro-fila.mal{background:var(--bad-soft);border-radius:8px;padding-left:8px;padding-right:8px}
.carro-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px;font-size:13px}
.chip{display:inline-block;font-size:12px;padding:1px 9px;border-radius:6px;background:var(--bg);color:var(--muted)}
.carro-der{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.carro-imp{font-size:17px;font-variant-numeric:tabular-nums}
.carro-quita{font-size:12px;padding:2px 8px;border:0;background:transparent;color:var(--muted);text-decoration:underline}
.q{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card)}
.q .qb{width:32px;height:34px;margin:0;padding:0;border-radius:0;background:transparent;color:var(--text);font-size:18px;font-weight:500}
.q .qb:hover{background:var(--bg)}
.q input{width:56px;border:0;border-radius:0;text-align:center;padding:6px 2px;background:transparent;-moz-appearance:textfield}
.q input::-webkit-outer-spin-button,.q input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
@media(max-width:900px){.carro{grid-template-columns:1fr}.carro-resumen{position:static}}
/* Mis pedidos y estado de cuenta */
.ped-lista{padding:6px 20px}
.ped-fila{display:grid;grid-template-columns:minmax(0,1.6fr) auto minmax(80px,auto) minmax(110px,auto);gap:16px;align-items:center;padding:14px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--text)}
.ped-fila:first-child{border-top:0}
.ped-fila:hover .ini-cod{color:var(--brand)}
.ped-id{display:flex;flex-direction:column;min-width:0}
.ped-total{text-align:right;font-variant-numeric:tabular-nums;font-size:16px}
.ped-fac{font-size:13px}
.ant-fila{display:grid;grid-template-columns:130px minmax(0,1fr) 130px;gap:14px;align-items:center;margin:10px 0}
.ant-fila b{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}
.inv-barra i.mal{background:var(--bad)}
@media(max-width:700px){.ped-fila{grid-template-columns:1fr auto}.ped-fac{display:none}.ant-fila{grid-template-columns:90px 1fr 100px;font-size:13px}}
/* Llegó esta semana: fichas con foto */
.ini-nuevos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:14px}
.ini-prod{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--text);font-size:13px;min-width:0}
.ini-prod>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ini-prod:hover b{color:var(--brand)}
.ini-foto{position:relative;display:flex;align-items:center;justify-content:center;height:92px;margin-bottom:6px;border-radius:10px;background:var(--brand-soft);color:var(--muted);overflow:hidden}
.ini-foto .img.ini-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;border:0;border-radius:0}
.ini-alta{color:var(--ok);font-size:12px}
/* Seguimiento: En ruta e inconveniente en la entrega */
.insignia.etapa-ruta{color:var(--link);border-color:var(--link)}
.tiempo li.alerta-paso{color:var(--text)}.tiempo li.alerta-paso .punto{background:var(--bad);border-color:var(--bad)}.tiempo li.alerta-paso small{color:var(--bad)}
.aviso-ruta{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--text);border-color:var(--link)}
.aviso-ruta>span{display:flex;flex-direction:column}.aviso-ruta .ic{color:var(--link);width:24px;height:24px}
.aviso-ruta.mal{border-color:var(--bad)}.aviso-ruta.mal .ic{color:var(--bad)}
/* Imagen ampliada */
img[data-sinimg]{cursor:zoom-in}
.lightbox{position:fixed;inset:0;background:rgba(10,18,32,.78);display:flex;align-items:center;justify-content:center;z-index:200;cursor:zoom-out;padding:24px}
.lightbox img{max-width:min(94vw,960px);max-height:88vh;width:auto;height:auto;background:#fff;border-radius:12px;object-fit:contain;cursor:zoom-out;min-width:min(60vw,320px)}
.lightbox .lb-x{position:absolute;top:16px;right:16px;width:40px;height:40px;margin:0;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:#142038;font-size:18px;cursor:pointer}
/* Foto del artículo en el carrito: recuadro fijo con icono si no hay imagen */
.carro-fila{grid-template-columns:64px minmax(0,1fr) auto}
.carro-foto{position:relative;display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:10px;background:var(--brand-soft);color:var(--muted);overflow:hidden;flex:none}
.carro-foto .img,.carro-foto .cz-img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:contain;background:#fff;border:0;border-radius:0}
@media(max-width:560px){.carro-fila{grid-template-columns:52px minmax(0,1fr)}.carro-foto{width:52px;height:52px}.carro-der{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}}
/* ===== Capa de diseño 2026-10 (inspirada en godly.design): editorial claro + oscuro de alto contraste =====
   Para volver al diseño anterior: borrar desde este comentario hasta el final (o restaurar respaldos\antes-rediseno-godly-*). */
:root{--bg:#f6f5f1;--card:#fff;--text:#16161a;--muted:#6b6a64;--line:#e4e2da;--brand:#16161a;--brand-d:#2e2e35;--brand-soft:#ecebe5;--on-brand:#fff;--side:#f6f5f1;--side-2:#e9e7df;--side-text:#55544e;--ok-soft:#e3efd9;--warn-soft:#faeeda;--bad-soft:#fbe9e6}
:root[data-theme=dark]{--bg:#0e0e10;--card:#17171a;--text:#f2f2f0;--muted:#8b8b90;--line:#26262a;--brand:#f2f2f0;--brand-d:#ffffff;--brand-soft:#202024;--on-brand:#0e0e10;--side:#0e0e10;--side-2:#1d1d21;--side-text:#9a9a9f;--ok-soft:#13301f;--warn-soft:#33250d;--bad-soft:#3a1a1a}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e0e10;--card:#17171a;--text:#f2f2f0;--muted:#8b8b90;--line:#26262a;--brand:#f2f2f0;--brand-d:#ffffff;--brand-soft:#202024;--on-brand:#0e0e10;--side:#0e0e10;--side-2:#1d1d21;--side-text:#9a9a9f;--ok-soft:#13301f;--warn-soft:#33250d;--bad-soft:#3a1a1a}}
body{letter-spacing:-.005em;-webkit-font-smoothing:antialiased}
.cab{background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.cab::after{display:none}
.cab .logo span{border-left-color:var(--line)}
.side{background:var(--bg);border-right:1px solid var(--line)}
.side nav a.item{border-radius:12px;font-weight:500}
.side nav a.item:hover{background:var(--side-2);color:var(--text)}
.side nav a.item.on{background:var(--side-2);color:var(--text);font-weight:600}
.side nav a.item.on::before{left:-10px;background:var(--text)}
h1,.ini-h{font-size:clamp(28px,3.4vw,40px);line-height:1.1;letter-spacing:-.03em;font-weight:600;margin:0}
.bar{margin-bottom:22px}
.bar .muted{font-size:15px}
.tarjeta,.kpi{border-radius:16px;box-shadow:none}
.tarjeta h2{font-size:17px;letter-spacing:-.01em}
.tabs{background:transparent;border:0;padding:0;gap:8px;margin-bottom:22px}
.tabs a{border:1px solid var(--line);border-radius:999px;padding:7px 16px;font-size:14px;background:transparent;transition:background .15s,border-color .15s,color .15s}
.tabs a:hover{border-color:var(--text);background:transparent}
.tabs a.on{background:var(--text);color:var(--bg);border-color:var(--text)}
.tabs a.on .ic{color:inherit}
.cartbtn{border-radius:999px}
button,.boton-enlace{border-radius:999px;transition:background .15s,transform .1s}
button:active{transform:scale(.98)}
button.sec{border-radius:999px}
.q .qb{border-radius:0}
.iconbtn,button.iconbtn{border-radius:12px}
input,textarea{border-radius:12px}
input:focus,textarea:focus{outline:2px solid var(--text);outline-offset:1px}
.ini-busca{border-radius:999px;padding:6px 8px 6px 20px;margin-bottom:22px;background:var(--card)}
.ini-busca input{font-size:17px;padding:12px 4px}
.ini-busca:focus-within{border-color:var(--text)}
.cat-busca{border-radius:999px}
.kbd{flex:none;font:12px/1 ui-monospace,"Cascadia Mono",Consolas,monospace;color:var(--muted);border:1px solid var(--line);border-radius:7px;padding:5px 8px;margin-right:6px;white-space:nowrap}
@media(max-width:640px){.kbd{display:none}}
.kpi b{font-size:28px;letter-spacing:-.02em}
.kpi .ico{border-radius:12px}
.insignia{background:transparent}
.inv-barra i{background:var(--text)}
.inv-barra i.alta{background:var(--ok)}
.inv-barra i.poco{background:var(--warn)}
.inv-cod{font-size:26px}
.inv-precio b{font-size:30px;letter-spacing:-.02em}
.op{border-radius:12px}
.ini-nuevos{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}
.ini-prod{border-radius:14px;transition:transform .18s}
.ini-prod:hover{transform:translateY(-3px)}
.ini-foto{height:124px;border-radius:14px;border:1px solid var(--line);background:var(--brand-soft)}
.ini-foto .img.ini-img{transition:transform .25s}
.ini-prod:hover .ini-foto .img.ini-img{transform:scale(1.06)}
.cat-ficha .foto{border-radius:16px}
.carro-foto{border-radius:14px}
a.ini-fila,.ped-fila{transition:background .15s}
.ped-lista{padding:6px 22px}
.toast{background:var(--text);color:var(--bg);border-radius:999px;padding:11px 20px}
.ing-marca{background:#0e0e10;color:#cfcfd4}
.ing-form button{border-radius:999px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.ini-prod:hover{transform:none}}
/* Detalle de factura */
.fact-datos{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:14px 0 0}
.fact-datos span{display:block;font-size:13px}.fact-datos b{display:block;font-weight:600;overflow-wrap:anywhere}
.fact-acciones{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}
.fact-acciones .peq{margin:0}
.boton-enlace.off{background:var(--bg);color:var(--muted);border:1px dashed var(--line);cursor:default}

/* Mis pedidos: pestañas por estatus y enlaces uniformes */
.ped-fila,.ped-fila:visited,a.ini-fila,a.ini-fila:visited,.ini-prod,.ini-prod:visited{color:var(--text)}
.ped-fila .ini-cod,a.ini-fila .ini-cod{color:var(--text)}
.ped-n{font-size:12px;opacity:.65;font-variant-numeric:tabular-nums}
.ped-fac{font-size:12px;padding:2px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap;justify-self:start}
.ped-fac.facturado{background:var(--ok-soft);border-color:transparent;color:var(--ok)}
.ped-fac:empty{display:none}
/* ---- Portal de proveedores ---- */
.subir-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin: 12px 0; }
.subir-grid label { display: block; font-weight: 600; margin-bottom: 4px; }
.subir-grid input[type=file] { width: 100%; }
.msgs { display: grid; gap: 8px; margin: 10px 0; }
.msg { padding: 8px 12px; border-radius: 10px; background: var(--fondo-2, rgba(127,127,127,.12)); }
.msg.compras { border-left: 3px solid #46c0ec; }
.msg small { display: block; opacity: .7; }
.resultado { margin: 10px 0; padding: 12px 14px; border-radius: 10px; }
.resultado.ok { background: rgba(60,160,90,.14); }
.resultado.rev { background: rgba(230,160,40,.16); }