:root{--azul-900:#1e3a8a;--azul-600:#2563eb;--azul-700:#1d4ed8;--texto:#0f172a;--texto-suave:#64748b;--borde:#e2e8f0;--fondo:#f1f5f9;--verde-fondo:#dcfce7;--verde-texto:#15803d;--amarillo-fondo:#fef3c7;--amarillo-texto:#a16207;--rojo-fondo:#fee2e2;--rojo-texto:#b91c1c}*,:before,:after{box-sizing:border-box}body{background:var(--fondo);min-height:100vh;color:var(--texto);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}button,input{font:inherit}.navbar{background-color:var(--azul-900);align-items:center;gap:20px;padding:.85rem 1.5rem;display:flex;box-shadow:0 4px 6px -1px #0000001a}.nav-brand{color:#fff;align-items:center;gap:9px;margin-right:auto;font-size:14px;font-weight:700;text-decoration:none;display:flex}.nav-session{color:#fff;align-items:center;gap:16px;font-size:13px;display:flex}.nav-session small{color:#bfdbfe;text-transform:capitalize;margin-left:6px}.nav-logout,.password-toggle,.btn-icono{color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.nav-logout{border-radius:5px;width:36px;height:36px}.nav-logout:hover{background:#ffffff24}.auth-shell{background:#fff;grid-template-columns:minmax(320px,.9fr) minmax(440px,1.1fr);min-height:calc(100vh - 58px);display:grid}.auth-aside{color:#fff;background-color:#071b9b;flex-direction:column;justify-content:space-between;min-height:620px;padding:38px clamp(30px,6vw,84px);display:flex}.auth-brand{align-items:center;gap:10px;font-size:12px;font-weight:700;display:flex}.auth-aside-copy{max-width:430px;padding:72px 0}.auth-kicker,.auth-aside-index{color:#478b79;margin:0;font-size:11px;font-weight:700}.auth-aside .auth-kicker,.auth-aside-index{color:#c0ded2}.auth-aside-copy h1{margin:18px 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(40px,4vw,62px);font-weight:400;line-height:1.08}.auth-aside-copy>p:last-child{color:#d6e5df;max-width:340px;font-size:15px;line-height:1.7}.auth-panel{place-items:center;padding:54px 30px;display:grid}.auth-form-wrap{width:min(100%,420px)}.auth-form-wrap h2{color:#172c2a;margin:12px 0 7px;font-family:Georgia,Times New Roman,serif;font-size:34px;font-weight:400}.auth-subtitle,.auth-footnote{color:#71807d;font-size:13px}.auth-form{flex-direction:column;margin-top:24px;display:flex}.auth-form label{color:#283936;margin:13px 0 7px;font-size:12px;font-weight:700}.auth-form>input,.password-field input{color:#20312e;background:#fff;border:1px solid #d4dfdb;border-radius:4px;outline:none;width:100%;min-height:44px;padding:0 12px;font-size:13px}.auth-form>input:focus,.password-field input:focus{border-color:#247360;box-shadow:0 0 0 3px #2473601f}.password-field{position:relative}.password-field input{padding-right:44px}.password-toggle{color:#687975;width:44px;height:44px;position:absolute;top:0;right:0}.auth-submit{color:#fff;cursor:pointer;background:#174b43;border:0;border-radius:4px;justify-content:center;align-items:center;gap:10px;min-height:46px;margin-top:24px;font-size:13px;font-weight:700;display:flex}.auth-submit:hover:not(:disabled){background:#206454}.auth-submit:disabled{cursor:wait;opacity:.7}.auth-error{color:#a33030;align-items:center;gap:8px;margin:14px 0 0;font-size:12px;display:flex}.auth-footnote{margin-top:18px;font-size:11px;line-height:1.5}.pagina{max-width:1200px;margin:0 auto;padding:28px 24px 56px}.pagina--estrecha{max-width:520px}.pagina-cabecera{margin-bottom:20px}.pagina-kicker{color:var(--texto-suave);letter-spacing:.06em;margin:0;font-size:11px;font-weight:700}.pagina-cabecera h1{color:var(--azul-900);margin:4px 0 0;font-size:26px}.tarjeta{border:1px solid var(--borde);background:#fff;border-radius:12px;flex-direction:column;gap:14px;padding:22px;display:flex;box-shadow:0 4px 12px #0f172a0d}.tabs{border-bottom:1px solid var(--borde);gap:4px;margin-bottom:20px;display:flex;overflow-x:auto}.tab{color:var(--texto-suave);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:11px 16px;display:flex}.tab:hover{color:var(--texto)}.tab.is-active{border-bottom-color:var(--azul-600);color:var(--azul-900);font-weight:700}.barra-herramientas{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.barra-titulo{margin:0 auto 0 0;font-weight:600}.buscador{border:1px solid var(--borde);max-width:380px;color:var(--texto-suave);background:#fff;border-radius:8px;flex:260px;align-items:center;gap:8px;margin-right:auto;padding:0 12px;display:flex}.buscador input{background:0 0;border:0;outline:none;flex:1;min-height:38px}.en-vivo{color:var(--texto-suave);align-items:center;gap:7px;font-size:12px;display:inline-flex}.en-vivo-punto{background:#22c55e;border-radius:50%;width:8px;height:8px;animation:2s infinite pulso}.en-vivo--error{color:var(--rojo-texto)}.en-vivo--error .en-vivo-punto{background:var(--rojo-texto);animation:none}@keyframes pulso{0%,to{opacity:1}50%{opacity:.35}}.resumen{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.resumen-tarjeta{border:1px solid var(--borde);border-left:4px solid var(--azul-600);text-align:left;cursor:pointer;background:#fff;border-radius:10px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.resumen-tarjeta span{color:var(--texto-suave);font-size:12px}.resumen-tarjeta strong{font-size:24px}.resumen-tarjeta.is-active{box-shadow:0 0 0 2px var(--azul-600)}.resumen-tarjeta--optimo{border-left-color:#22c55e}.resumen-tarjeta--bajo{border-left-color:#eab308}.resumen-tarjeta--agotado{border-left-color:#ef4444}.tabla-scroll{border:1px solid var(--borde);background:#fff;border-radius:12px;overflow-x:auto}.tabla{border-collapse:collapse;width:100%}.tabla th{border-bottom:1px solid var(--borde);color:#475569;text-align:left;white-space:nowrap;background:#f8fafc;padding:12px 14px;font-size:12px;font-weight:600}.tabla td{border-bottom:1px solid var(--borde);vertical-align:middle;padding:12px 14px}.tabla tbody tr:last-child td{border-bottom:0}.tabla tbody tr:hover td{background:#f8fafc}.num{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right!important}.mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace}.fuerte{font-weight:700}.tenue{color:var(--texto-suave)}.centrado{text-align:center}.texto-rojo{color:var(--rojo-texto)}.vacio{color:var(--texto-suave);text-align:center;padding:40px 16px!important}.badge{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-block}.badge--optimo{color:var(--verde-texto);background:var(--verde-fondo)}.badge--bajo{color:var(--amarillo-texto);background:var(--amarillo-fondo)}.badge--agotado{color:var(--rojo-texto);background:var(--rojo-fondo)}.badge--rol-gerencia{color:#3730a3;background:#e0e7ff}.badge--rol-operario{color:#334155;background:#e2e8f0}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 16px;font-weight:600;transition:background-color .2s;display:inline-flex}.btn:disabled{cursor:not-allowed;opacity:.55}.btn--primario{color:#fff;background:var(--azul-600)}.btn--primario:hover:not(:disabled){background:var(--azul-700)}.btn--secundario{color:#334155;background:#fff;border-color:#cbd5e1}.btn--secundario:hover:not(:disabled){background:#f8fafc}.btn--bloque{width:100%}.btn-icono{width:34px;height:34px;color:var(--texto-suave);border-radius:6px}.btn-icono:hover{color:var(--azul-600);background:#eff6ff}.formulario{flex-direction:column;display:flex}.formulario label,.formulario-etiqueta{color:#334155;margin:12px 0 6px;font-size:12px;font-weight:700}.formulario>input,.formulario .password-field input{background:#fff;border:1px solid #cbd5e1;border-radius:8px;outline:none;width:100%;min-height:42px;padding:0 12px}.formulario>input:focus,.formulario .password-field input:focus,.ingreso-manual input:focus{border-color:var(--azul-600);box-shadow:0 0 0 3px #2563eb26}.formulario .input-grande{text-align:center;min-height:54px;font-size:20px}.formulario>.btn{margin-top:14px}.formulario-acciones{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.selector-rol{grid-template-columns:1fr 1fr;gap:8px;display:grid}.selector-rol label{color:#475569;cursor:pointer;border:1px solid #cbd5e1;border-radius:8px;place-items:center;min-height:40px;margin:0;font-weight:500;display:grid}.selector-rol label.is-active{border-color:var(--azul-600);color:var(--azul-900);background:#eff6ff;font-weight:700}.selector-rol input{opacity:0;pointer-events:none;position:absolute}.alerta{border-radius:8px;align-items:flex-start;gap:8px;margin:12px 0 0;padding:10px 12px;font-size:13px;line-height:1.4;display:flex}.alerta svg{flex-shrink:0;margin-top:1px}.alerta--error{color:var(--rojo-texto);background:var(--rojo-fondo)}.alerta--exito{color:var(--verde-texto);background:var(--verde-fondo)}.modal-fondo{z-index:50;background:#0f172a80;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:100%;max-height:calc(100vh - 40px);overflow-y:auto;box-shadow:0 20px 40px #0f172a40}.modal-cabecera{border-bottom:1px solid var(--borde);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-cabecera h3{margin:0;font-size:16px}.modal-cuerpo{padding:8px 20px 20px}.etiqueta-contenedor{flex-direction:column;align-items:center;gap:14px;margin:14px 0;display:flex}.etiqueta{text-align:center;background:#fff;border:2px dashed #94a3b8;border-radius:10px;width:300px;padding:18px}.etiqueta-marca{letter-spacing:.12em;margin:0;font-size:11px;font-weight:800}.etiqueta-qr{width:200px;height:200px;margin:8px auto;display:block}.etiqueta-sku{margin:0 0 10px;font-family:ui-monospace,Consolas,monospace;font-size:20px;font-weight:800}.etiqueta-datos{text-align:left;gap:3px;margin:0;font-size:12px;display:grid}.etiqueta-datos div{justify-content:space-between;gap:10px;display:flex}.etiqueta-datos dt{color:#475569}.etiqueta-datos dd{margin:0;font-weight:600}.escaner-video{background:#0f172a;border-radius:10px;min-height:240px;overflow:hidden}.escaner-video video{display:block;width:100%!important}.escaner-error{color:var(--rojo-texto);text-align:center;flex-direction:column;align-items:center;gap:8px;margin:10px 0 0;font-size:13px;display:flex}.escaner-error p{margin:0}.ingreso-manual{color:var(--texto-suave);align-items:center;gap:8px;display:flex}.ingreso-manual input{border:1px solid #cbd5e1;border-radius:8px;outline:none;flex:1;min-width:0;min-height:40px;padding:0 12px}.ficha-cabecera{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ficha-cabecera p,.ficha-cabecera h2{margin:0}.ficha-cabecera h2{font-size:24px}.ficha-datos{background:#f8fafc;border-radius:10px;grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:14px;display:grid}.ficha-datos dt{color:var(--texto-suave);font-size:12px}.ficha-datos dd{margin:2px 0 0;font-size:15px}.tarjeta--exito,.tarjeta--aviso{text-align:center;align-items:center}.tarjeta--exito>svg{color:#22c55e}.tarjeta--aviso>svg{color:var(--rojo-texto)}.tarjeta--exito h2,.tarjeta--exito p,.tarjeta--aviso h2,.tarjeta--aviso p{margin:0}.saldo-grande{color:var(--azul-900);font-size:40px;font-weight:800;margin-top:8px!important}@media (width<=760px){.navbar{gap:8px;padding:10px 14px}.nav-brand{font-size:12px}.nav-session{gap:8px}.nav-session>span{display:none}.auth-shell{grid-template-columns:1fr}.auth-aside{min-height:210px;padding:24px}.auth-aside-copy{padding:40px 0 14px}.auth-aside-copy h1{margin:10px 0;font-size:36px}.auth-aside-copy>p:last-child,.auth-aside-index{display:none}.auth-panel{padding:36px 22px 48px}.pagina{padding:20px 14px 40px}.resumen{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{body *{visibility:hidden}.zona-impresion,.zona-impresion *{visibility:visible}.zona-impresion{border-style:solid;position:fixed;top:0;left:0}}.barra-herramientas--fin{justify-content:flex-end}.selector{border:1px solid var(--borde);min-height:38px;color:var(--texto);font:inherit;background:#fff;border-radius:8px;padding:0 10px}.selector:focus{border-color:var(--azul-600);outline:none;box-shadow:0 0 0 3px #2563eb26}.selector-etiqueta{color:var(--texto-suave);align-items:center;gap:8px;font-size:12px;font-weight:700;display:inline-flex}.tabla td.acciones{justify-content:flex-end;gap:4px;display:flex}.btn--compacto{padding:4px 10px;font-size:12px}.kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.kpi{border:1px solid var(--borde);border-left:4px solid var(--azul-600);background:#fff;border-radius:10px;flex-direction:column;gap:4px;padding:16px 18px;display:flex}.kpi--estrella{border-left-color:#16a34a}.kpi--estancada{border-left-color:#a8a7a1}.kpi-titulo{color:var(--texto-suave);align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.kpi-valor{color:var(--texto);font-size:24px}.graficos{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.grafico{border:1px solid var(--borde);background:#fff;border-radius:12px;padding:16px 18px}.grafico h3,.seccion-titulo{color:var(--texto);margin:0 0 12px;font-size:14px}.grafico-tooltip{border:1px solid var(--borde);background:#fff;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;font-size:12px;display:flex;box-shadow:0 4px 12px #0f172a14}.grafico-dona{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:12px;display:grid}.leyenda{flex-direction:column;gap:8px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.leyenda li{grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.leyenda-muestra{border-radius:3px;width:10px;height:10px}.leyenda-nombre{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.leyenda-valor{color:var(--texto-suave);font-variant-numeric:tabular-nums}@media (width<=860px){.kpis,.graficos,.grafico-dona{grid-template-columns:1fr}}.cuenta-protegida{color:var(--texto-suave);cursor:help;align-items:center;gap:5px;font-size:12px;font-weight:600;display:inline-flex}.buscador-grupo{flex:380px;gap:8px;min-width:0;max-width:540px;margin-right:auto;display:flex}.buscador-grupo .buscador{min-width:0;max-width:none;margin-right:0}.resumen-telas{flex-direction:column;gap:12px;margin-bottom:18px;display:flex}.resumen-telas>p{margin:0}.resumen-tela{border:1px solid var(--borde);border-left:4px solid var(--azul-600);background:#fff;border-radius:12px;padding:16px 18px}.resumen-tela-cabecera{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:8px 16px;display:flex}.resumen-tela-cabecera .pagina-kicker{align-items:center;gap:5px;display:inline-flex}.resumen-tela-cabecera h3{color:var(--azul-900);margin:2px 0 0;font-size:20px}.resumen-tela-total{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.resumen-tela-total strong{font-variant-numeric:tabular-nums;font-size:26px}.resumen-tela-subtitulo{color:#475569;margin:14px 0 8px;font-size:12px;font-weight:700}.resumen-colores{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.resumen-color{border:1px solid var(--borde);background:#f8fafc;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:10px 12px;display:grid}.resumen-color .num{grid-area:1/2/span 2;align-self:center;font-size:16px}.tarjeta{min-width:0}.escaner,.escaner-video{width:100%;max-width:100%}.escaner-video>div{width:100%!important}.escaner-video video{max-width:100%;height:auto!important}.escaner-video canvas,.escaner-video img,.etiqueta{max-width:100%}@media (width<=640px){input,select{font-size:16px}.pagina-cabecera h1{font-size:22px}.tarjeta{padding:16px}.ficha-cabecera h2{font-size:20px}.saldo-grande{font-size:34px}.barra-herramientas .buscador-grupo{flex-basis:100%;max-width:none}.barra-herramientas>.selector,.barra-herramientas>.btn{flex:140px}.barra-titulo{flex-basis:100%}.resumen-tela{padding:14px}.resumen-tela-total{text-align:left;align-items:flex-start}.resumen-colores{grid-template-columns:1fr}.modal-fondo{padding:10px}.modal{max-height:calc(100vh - 20px)}.modal-cuerpo{padding:8px 16px 16px}.formulario-acciones{flex-wrap:wrap}.formulario-acciones .btn{flex:auto}.tabla--tarjetas thead{display:none}.tabla--tarjetas,.tabla--tarjetas tbody,.tabla--tarjetas tr{width:100%;display:block}.tabla--tarjetas tr{border-bottom:1px solid var(--borde);padding:10px 14px}.tabla--tarjetas tbody tr:last-child{border-bottom:0}.tabla--tarjetas tbody tr:hover td{background:0 0}.tabla--tarjetas td{text-align:right;overflow-wrap:anywhere;border:0;padding:5px 0;display:flow-root}.tabla--tarjetas td[data-label]:before{content:attr(data-label);float:left;color:var(--texto-suave);margin-right:12px;font-size:12px;font-weight:600;line-height:20px}.tabla--tarjetas td.acciones{justify-content:flex-end;padding-top:8px;display:flex}.tabla--tarjetas td.acciones .btn-icono{width:40px;height:40px}.tabla--tarjetas td.vacio{text-align:center}}.acciones-fila{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.btn--peligro{color:#fff;background:var(--rojo-texto)}.btn--peligro:hover:not(:disabled){background:#991b1b}.historial-dia{margin-top:18px}.historial-dia-cabecera{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.historial-dia-cabecera h3{align-items:center;gap:6px;margin:0;display:inline-flex}.historial-dia-totales{margin:0 0 10px}
