/* Inventario Jakin · piel "liquid glass" tomada de Makutsin (violeta, vidrio, naranja de marca) */
:root{
  --ink:#1e1233; --muted:#6d4fa8; --soft:#8b7bb5; --line:rgba(124,58,237,.16);
  --glass:rgba(255,255,255,.58); --glass-hi:rgba(255,255,255,.95); --glass-lo:rgba(124,58,237,.10);
  --blob1:#c084fc; --blob2:#f0abfc; --bg:#f3ecff; --brand:#ea580c; --brand-ink:#ffffff;
  --shadow:0 24px 60px -28px rgba(90,40,160,.38); --blend:multiply; --blob-op:.38;
  --field:rgba(255,255,255,.75); --row:rgba(124,58,237,.045);
  --c-caducado:#2b2140; --c-rojo:#dc2626; --c-naranja:#ea580c; --c-amarillo:#f5c518; --c-verde:#16a34a; --c-sin:#8b82a8;
  --ok:#15803d; --mal:#dc2626; --aviso:#b45309;
  --fuente:"Segoe UI Variable","SF Pro Text","Inter","Segoe UI",system-ui,sans-serif;
  --mono:ui-monospace,"JetBrains Mono","Cascadia Mono",Consolas,monospace;
  color-scheme:light;
}
:root[data-tema="dark"]{
  --ink:#f7f2ff; --muted:#b9a7dc; --soft:#9a88c4; --line:rgba(255,255,255,.12);
  --glass:rgba(255,255,255,.06); --glass-hi:rgba(255,255,255,.26); --glass-lo:rgba(0,0,0,.35);
  --blob1:#7c3aed; --blob2:#c026d3; --bg:#120a1f; --shadow:0 30px 70px -30px rgba(0,0,0,.8); --blend:screen; --blob-op:.5;
  --field:rgba(255,255,255,.07); --row:rgba(255,255,255,.04);
  --c-caducado:#000000; --ok:#4ade80; --mal:#f87171; --aviso:#fbbf24;
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-tema="light"]){
    --ink:#f7f2ff; --muted:#b9a7dc; --soft:#9a88c4; --line:rgba(255,255,255,.12);
    --glass:rgba(255,255,255,.06); --glass-hi:rgba(255,255,255,.26); --glass-lo:rgba(0,0,0,.35);
    --blob1:#7c3aed; --blob2:#c026d3; --bg:#120a1f; --shadow:0 30px 70px -30px rgba(0,0,0,.8); --blend:screen; --blob-op:.5;
    --field:rgba(255,255,255,.07); --row:rgba(255,255,255,.04);
    --c-caducado:#000000; --ok:#4ade80; --mal:#f87171; --aviso:#fbbf24;
    color-scheme:dark;
  }
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{font:16px/1.55 var(--fuente);color:var(--ink);background:var(--bg);position:relative;overflow-x:hidden}
body::before,body::after{content:"";position:fixed;border-radius:50%;filter:blur(70px);mix-blend-mode:var(--blend);opacity:var(--blob-op);pointer-events:none;z-index:0}
body::before{width:70vw;height:70vw;top:-30vh;left:-22vw;background:radial-gradient(circle,var(--blob1) 0%,transparent 65%)}
body::after{width:62vw;height:62vw;bottom:-32vh;right:-18vw;background:radial-gradient(circle,var(--blob2) 0%,transparent 65%)}
a{color:var(--brand);text-decoration:none} a:hover{text-decoration:underline}
h1,h2,h3{margin:0;line-height:1.2;letter-spacing:-.01em} h1{font-size:1.9rem;font-weight:700} h2{font-size:1.25rem;font-weight:650} h3{font-size:1.05rem;font-weight:650}
p{margin:0} .muted{color:var(--muted)} .soft{color:var(--soft)} .mono{font-family:var(--mono)} .num{font-variant-numeric:tabular-nums}
.sr{position:absolute;left:-9999px}

.app{position:relative;z-index:1;display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}
.lado{position:sticky;top:0;height:100vh;padding:20px 14px;display:flex;flex-direction:column;gap:16px}
.marca{display:flex;align-items:center;gap:10px;padding:4px 10px;font-weight:700;font-size:1.1rem}
.marca b{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,var(--brand),#f97316);color:#fff;box-shadow:0 8px 20px -8px var(--brand)}
.marca small{display:block;font-weight:500;font-size:.72rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
nav.menu{display:flex;flex-direction:column;gap:3px}
nav.menu a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:12px;color:var(--ink);font-weight:550}
nav.menu a:hover{background:var(--glass);text-decoration:none}
nav.menu a.on{background:var(--glass);box-shadow:inset 0 1px 0 var(--glass-hi),0 0 0 1px var(--line)}
nav.menu a .ico{width:20px;text-align:center;opacity:.85}
.pie-lado{margin-top:auto;display:flex;flex-direction:column;gap:10px;font-size:.9rem}
.insignia{display:inline-flex;min-width:22px;height:22px;padding:0 7px;align-items:center;justify-content:center;border-radius:99px;background:var(--brand);color:#fff;font-size:.75rem;font-weight:700}

main{padding:28px clamp(16px,3vw,40px) 60px;display:flex;flex-direction:column;gap:22px;max-width:1280px;width:100%}
.cab{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.cab p{color:var(--muted);margin-top:4px}

.glass{background:var(--glass);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border:1px solid var(--line);
  border-radius:20px;box-shadow:inset 0 1px 0 var(--glass-hi),inset 0 -1px 0 var(--glass-lo),var(--shadow);padding:20px;position:relative}
.glass.flat{padding:0;overflow:hidden}
.rejilla{display:grid;gap:16px} .r2{grid-template-columns:repeat(2,minmax(0,1fr))} .r3{grid-template-columns:repeat(3,minmax(0,1fr))} .r4{grid-template-columns:repeat(4,minmax(0,1fr))}
.fila{display:flex;gap:12px;align-items:center;flex-wrap:wrap} .espacio{justify-content:space-between}
.pila{display:flex;flex-direction:column;gap:12px}

.cifra{display:flex;flex-direction:column;gap:2px;padding:18px 20px;border-radius:20px;color:#fff;position:relative;overflow:hidden;text-decoration:none!important}
.cifra .n{font-size:2.6rem;font-weight:750;line-height:1;letter-spacing:-.02em} .cifra .t{font-weight:600;opacity:.95} .cifra .s{font-size:.85rem;opacity:.8}
.cifra.caducado{background:linear-gradient(135deg,#2b2140,#0f0a1c)} .cifra.rojo{background:linear-gradient(135deg,#ef4444,#b91c1c)}
.cifra.naranja{background:linear-gradient(135deg,#fb923c,#ea580c)} .cifra.amarillo{background:linear-gradient(135deg,#fcd34d,#d9a400);color:#2a1d00}
.cifra.violeta{background:linear-gradient(135deg,#8b5cf6,#6d28d9)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:13px;border:1px solid var(--line);background:var(--glass);
  color:var(--ink);font:inherit;font-weight:620;cursor:pointer;min-height:44px;box-shadow:inset 0 1px 0 var(--glass-hi)}
.btn:hover{text-decoration:none;filter:brightness(1.03)} .btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.btn.primario{background:linear-gradient(135deg,var(--brand),#f97316);color:#fff;border-color:transparent;box-shadow:0 12px 28px -12px var(--brand)}
.btn.peligro{color:var(--mal)} .btn.chico{padding:6px 12px;min-height:34px;font-size:.9rem} .btn[disabled]{opacity:.5;cursor:not-allowed}
input,select,textarea{font:inherit;color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-height:44px;width:100%}
input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:0;accent-color:var(--brand)}
input[type=file]{padding:8px}
label.campo{display:flex;flex-direction:column;gap:5px;font-size:.88rem;font-weight:600;color:var(--muted)}
.escaner{font-size:1.25rem;padding:14px 16px;border:2px solid var(--brand);background:var(--field)}

.pastilla{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:99px;font-size:.8rem;font-weight:700;color:#fff;white-space:nowrap}
.pastilla.caducado{background:var(--c-caducado);box-shadow:0 0 0 1px rgba(255,255,255,.18)} .pastilla.rojo{background:var(--c-rojo)} .pastilla.naranja{background:var(--c-naranja)}
.pastilla.amarillo{background:var(--c-amarillo);color:#2a1d00} .pastilla.verde{background:var(--c-verde)} .pastilla.sin_fecha{background:var(--c-sin)}
.pastilla.ACEPTADO{background:var(--c-verde)} .pastilla.CONDICIONADO{background:var(--c-amarillo);color:#2a1d00} .pastilla.RECHAZADO{background:var(--c-rojo)}
.etq{display:inline-block;padding:2px 9px;border-radius:99px;background:var(--glass-lo);color:var(--muted);font-size:.78rem;font-weight:650}

table{width:100%;border-collapse:collapse} th{font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);text-align:left;padding:10px 14px;font-weight:700;white-space:nowrap}
td{padding:11px 14px;border-top:1px solid var(--line);vertical-align:middle} tbody tr:nth-child(even){background:var(--row)} tbody tr:hover{background:var(--glass-lo)}
td.der,th.der{text-align:right} td.cen,th.cen{text-align:center}
.envol{overflow-x:auto}
.miniatura{width:46px;height:46px;border-radius:12px;object-fit:cover;background:var(--glass-lo);flex:none;box-shadow:0 0 0 1px var(--line)}
.miniatura.g{width:150px;height:150px;border-radius:20px} .miniatura.m{width:72px;height:72px}
.prod{display:flex;align-items:center;gap:12px;min-width:0}  .prod small{color:var(--muted);display:block}

.aviso{padding:12px 16px;border-radius:14px;border:1px solid var(--line);background:var(--glass);display:flex;gap:10px;align-items:flex-start}
.aviso.mal{border-color:rgba(220,38,38,.45);background:rgba(220,38,38,.09)} .aviso.ok{border-color:rgba(22,163,74,.4);background:rgba(22,163,74,.09)} .aviso.ojo{border-color:rgba(245,158,11,.5);background:rgba(245,158,11,.1)}
.vacio{padding:36px 20px;text-align:center;color:var(--muted)}
.tabs{display:flex;gap:6px;flex-wrap:wrap} .tabs a{padding:7px 14px;border-radius:99px;border:1px solid var(--line);color:var(--ink);font-weight:600;font-size:.92rem;background:var(--glass)}
.tabs a.on{background:var(--brand);color:#fff;border-color:transparent;text-decoration:none}
details.insp{border:1px solid var(--line);border-radius:14px;padding:10px 14px;background:var(--glass-lo)} details.insp summary{cursor:pointer;font-weight:600}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:6px 18px;margin-top:10px} .checks label{display:flex;gap:9px;align-items:flex-start;font-size:.9rem}
.visor{width:100%;height:78vh;border:1px solid var(--line);border-radius:16px;background:#fff}
.lote-fila{display:grid;grid-template-columns:1.3fr 1fr .7fr;gap:10px}
.confianza{font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:99px;background:rgba(245,158,11,.18);color:var(--aviso)} .confianza.texto,.confianza.xml{background:rgba(22,163,74,.15);color:var(--ok)}
.barra{height:8px;border-radius:99px;background:var(--glass-lo);overflow:hidden} .barra i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),#f97316)}

@media (max-width:1000px){.r4{grid-template-columns:repeat(2,minmax(0,1fr))} .r3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){
  .app{grid-template-columns:1fr} .lado{position:relative;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px}
  nav.menu{flex-direction:row;overflow-x:auto;flex:1 1 100%;order:3} nav.menu a{white-space:nowrap}
  .pie-lado{margin:0;flex-direction:row;align-items:center;margin-left:auto} .r2,.r3,.r4{grid-template-columns:1fr} h1{font-size:1.5rem}
  .lote-fila{grid-template-columns:1fr 1fr}
}
@media print{body::before,body::after,.lado{display:none}.app{display:block}}
@media (prefers-reduced-motion:no-preference){.glass,.btn,.cifra{transition:transform .15s ease,box-shadow .15s ease} a.cifra:hover{transform:translateY(-2px)}}

.prod .nombre{color:var(--ink);font-weight:620;line-height:1.25} .prod .nombre:hover{color:var(--brand);text-decoration:none}
.cab form.buscar{display:flex;gap:10px;flex-wrap:nowrap;flex:1;max-width:520px} .cab form.buscar input{flex:1;min-width:0}

/* inicio más limpio */
.acciones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.accion{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:18px;color:var(--ink);text-decoration:none!important}
.accion:hover{background:var(--glass-hi);transform:translateY(-1px)}
.accion .icono{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--brand),#f97316);color:#fff;font-size:1.3rem;flex:none;box-shadow:0 10px 22px -10px var(--brand)}
.accion b{display:block;font-size:1.02rem} .accion small{display:block;color:var(--muted)}
.dato{display:flex;flex-direction:column;gap:2px;padding:18px 22px 18px 26px;text-decoration:none!important;color:var(--ink);overflow:hidden}
.dato i{position:absolute;left:0;top:18px;bottom:18px;width:5px;border-radius:0 6px 6px 0}
.dato small{color:var(--muted);font-weight:600} .dato b{font-size:2.6rem;line-height:1.05;letter-spacing:-.02em} .dato span{color:var(--muted);font-size:.9rem}
.dato:hover{background:var(--glass-hi)}
.lista{display:flex;flex-direction:column;gap:4px;padding:18px 14px 12px}
.lista>.fila{padding:0 8px 8px}
.renglon{display:flex;align-items:center;gap:14px;padding:10px 8px;border-radius:14px;color:var(--ink);text-decoration:none!important}
.renglon:hover{background:var(--glass-lo)}
.renglon .txt{display:flex;flex-direction:column;min-width:0;flex:1} .renglon .txt b{font-weight:620;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.renglon small{color:var(--muted);font-size:.82rem} .renglon .der{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none}
.renglon .miniatura{width:54px;height:54px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:99px;background:var(--glass);border:1px solid var(--line);color:var(--ink);font-weight:600;font-size:.9rem;text-decoration:none!important}
.chip[hidden]{display:none}
@media (max-width:820px){.acciones{grid-template-columns:1fr}}

/* menú por secciones, entrada con PIN, mapa de anaqueles */
nav.menu .seccion{font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--soft);padding:12px 12px 4px}
main.solo{display:grid;place-items:center;min-height:100vh;position:relative;z-index:1;padding:24px;max-width:none}
.entrada{width:min(520px,100%);display:flex;flex-direction:column;gap:18px;padding:30px}
.persona{position:relative;display:block}
.persona input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}
.persona span{display:grid;place-items:center;min-height:54px;padding:8px;border-radius:14px;border:1px solid var(--line);background:var(--glass);font-weight:650;text-align:center}
.persona input:checked + span{background:linear-gradient(135deg,var(--brand),#f97316);color:#fff;border-color:transparent;box-shadow:0 10px 22px -10px var(--brand)}
.persona input:focus-visible + span{outline:2px solid var(--brand);outline-offset:2px}
.leyenda{display:flex;gap:16px;flex-wrap:wrap;font-size:.85rem;color:var(--muted)} .leyenda i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-1px}
.anaqueles{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:12px}
.anaquel{display:flex;flex-direction:column;justify-content:space-between;gap:6px;min-height:84px;padding:12px 14px;border-radius:16px;color:#fff;text-decoration:none!important;position:relative;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.anaquel b{font-size:1.15rem;line-height:1.15} .anaquel small{opacity:.9;font-size:.78rem}
.anaquel.caducado{background:linear-gradient(135deg,#3a2d58,#0f0a1c)} .anaquel.rojo{background:linear-gradient(135deg,#ef4444,#b91c1c)}
.anaquel.naranja{background:linear-gradient(135deg,#fb923c,#ea580c)} .anaquel.amarillo{background:linear-gradient(135deg,#fcd34d,#d9a400);color:#2a1d00}
.anaquel.verde{background:linear-gradient(135deg,#34d399,#15803d)} .anaquel.sin_fecha{background:linear-gradient(135deg,#a8a0c4,#7a6fa0)}
.anaquel.vacio{background:var(--glass-lo);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
.anaquel.luz{outline:3px solid var(--brand);outline-offset:3px;transform:scale(1.04);z-index:2;box-shadow:0 0 0 6px rgba(234,88,12,.25)}
.anaquel.dim{opacity:.28} .anaquel:hover{transform:translateY(-2px)}

[hidden]{display:none!important}
.cab form.buscar{min-width:280px}

/* tablero */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.kpi{display:flex;flex-direction:column;gap:2px;padding:18px 20px;border-radius:20px;color:#fff;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.kpi::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.16)}
.kpi small{font-weight:600;opacity:.92} .kpi b{font-size:2.5rem;line-height:1.05;letter-spacing:-.02em;font-weight:750} .kpi span{font-size:.84rem;opacity:.85}
.kpi.k1{background:linear-gradient(135deg,#8b5cf6,#6d28d9)} .kpi.k2{background:linear-gradient(135deg,#475569,#1e293b)}
.kpi.k3{background:linear-gradient(135deg,#f472b6,#be185d)} .kpi.k4{background:linear-gradient(135deg,#fb923c,#ea580c)}
.graficas .glass{display:flex;flex-direction:column;gap:12px}
.dona-caja{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.dona{width:150px;height:150px;flex:none} .dona circle{transition:stroke-dasharray .6s ease}
.dona-n{font:700 7px var(--fuente);fill:var(--ink)} .dona-t{font:500 2.6px var(--fuente);fill:var(--muted)}
.leyenda-v{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:.88rem;flex:1;min-width:130px}
.leyenda-v li{display:flex;align-items:center;gap:8px} .leyenda-v i{width:11px;height:11px;border-radius:4px;flex:none} .leyenda-v b{margin-left:auto}
.barras{display:flex;align-items:flex-end;gap:10px;height:190px}
.bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;min-width:0}
.bar .col{flex:1;width:100%;display:flex;align-items:flex-end;background:var(--glass-lo);border-radius:10px;overflow:hidden}
.bar .col i{display:block;width:100%;border-radius:10px;background:linear-gradient(180deg,#f97316,var(--brand));transform-origin:bottom;animation:crece .8s ease both}
.bar:last-child .col i{background:linear-gradient(180deg,#a78bfa,#6d28d9)}
.bar .v{font-size:.78rem;font-weight:700} .bar small{color:var(--muted);font-size:.74rem}
@keyframes crece{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.top{display:flex;flex-direction:column;gap:10px}
.top-fila{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none!important}
.top-n{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:var(--glass-lo);font-weight:700;font-size:.82rem;flex:none}
.top-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px} .top-t b{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1000px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.kpis{grid-template-columns:1fr 1fr}}
@media (prefers-reduced-motion:reduce){.bar .col i{animation:none}}

/* inicio simplificado */
.sup{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}
.sup>.glass{display:flex;flex-direction:column;gap:10px}
.aten{display:flex;align-items:center;gap:14px;padding:12px 10px;border-radius:14px;color:var(--ink);text-decoration:none!important}
.aten:hover{background:var(--glass-lo)}
.aten .pto{width:12px;height:12px;border-radius:50%;flex:none;box-shadow:0 0 0 4px var(--glass-lo)}
.aten span{flex:1;display:flex;flex-direction:column;min-width:0} .aten b{font-weight:650} .aten small{color:var(--muted)}
.aten em{font-style:normal;font-weight:650;color:var(--brand);white-space:nowrap}
.acciones .accion{padding:20px}
details.mas{margin-top:6px} details.mas>summary{cursor:pointer;list-style:none;padding:10px 12px;border-radius:12px;color:var(--muted);font-weight:600;font-size:.9rem}
details.mas>summary::-webkit-details-marker{display:none} details.mas>summary:hover{background:var(--glass)}
details.mas[open]>summary{color:var(--ink)}
@media (max-width:1000px){.sup{grid-template-columns:1fr}}

/* Botón de archivo con el mismo estilo que los demás botones */
input[type=file]::file-selector-button{font:inherit;font-weight:700;margin-right:12px;padding:9px 16px;border:0;border-radius:12px;background:linear-gradient(135deg,#ea580c,#fb7a1f);color:#fff;cursor:pointer}
input[type=file]{font-size:.95rem;padding:8px}

/* Lotes bajo cada producto en Existencias */
.lotes-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.lote-chip{display:inline-flex;flex-direction:column;gap:1px;padding:5px 10px;border-radius:10px;border:1px solid var(--line);background:var(--glass-lo);color:var(--ink);text-decoration:none;font-size:.78rem;line-height:1.25;border-left:4px solid var(--c-sin)}
.lote-chip b{font-family:ui-monospace,Consolas,monospace;font-size:.82rem}
.lote-chip span{color:var(--muted)}
.lote-chip em{font-style:normal;color:var(--c-rojo);font-weight:700}
.lote-chip.caducado{border-left-color:var(--c-caducado)}.lote-chip.rojo{border-left-color:var(--c-rojo)}.lote-chip.naranja{border-left-color:var(--c-naranja)}
.lote-chip.amarillo{border-left-color:var(--c-amarillo)}.lote-chip.verde{border-left-color:var(--c-verde)}
.lote-chip.coincide{outline:2px solid var(--brand);background:rgba(234,88,12,.12)}

/* Plano 3D */
.plano3d{position:relative;height:min(68vh,640px);min-height:420px;overflow:hidden;padding:0;margin-top:12px}
#escena{position:absolute;inset:0}
#escena canvas{width:100%;height:100%;display:block;touch-action:none}
.detalle3d{position:absolute;top:12px;right:12px;bottom:12px;width:min(360px,86%);overflow:auto;padding:16px;border-radius:18px;background:var(--glass-hi);border:1px solid var(--line);backdrop-filter:blur(14px);box-shadow:0 12px 40px rgba(60,20,120,.25)}
.detalle3d h2{margin:0 24px 2px 0;font-size:1.05rem}
.detalle3d .cerrar3d{position:absolute;top:8px;right:10px;border:0;background:transparent;font-size:1.5rem;cursor:pointer;color:var(--muted)}
.prod3d{border-top:1px solid var(--line);padding:10px 0}
.prod3d small{display:block;color:var(--muted)}
.prod3d.luz{background:rgba(234,88,12,.10);margin:0 -8px;padding:10px 8px;border-radius:10px}
.ayuda3d{position:absolute;left:14px;bottom:10px;font-size:.78rem;color:var(--muted);pointer-events:none}
