:root{--texto:#1e293b;--texto-suave:#64748b;--fondo:#fff;--superficie:#f8fafc;--borde:#e2e8f0;--acento:#1d4ed8;--acento-texto:#fff;--alerta:#b91c1c;--alerta-fondo:#fef2f2;--ok:#15803d;color:var(--texto);background:var(--fondo);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font:17px/1.45 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--texto:#e2e8f0;--texto-suave:#94a3b8;--fondo:#0f172a;--superficie:#1e293b;--borde:#334155;--acento:#3b82f6;--acento-texto:#fff;--alerta:#f87171;--alerta-fondo:#38151a;--ok:#4ade80}}*{box-sizing:border-box}body{margin:0}h1,h2,h3{color:var(--texto);margin:0;line-height:1.2}h1{font-size:1.3rem}h2{font-size:1.2rem}h3{margin-top:1.5rem;font-size:1rem}p{margin:0}code{background:var(--superficie);border-radius:4px;padding:.1em .35em;font-family:ui-monospace,Consolas,monospace;font-size:.9em}input,select,textarea{font:inherit;color:var(--texto);background:var(--fondo);border:1px solid var(--borde);border-radius:8px;width:100%;min-width:0;padding:.7rem}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--acento);outline-offset:2px}.app,.login{flex-direction:column;gap:1rem;max-width:560px;margin:0 auto;padding:1rem 1rem 3rem;display:flex}@media (width>=700px){.app{max-width:780px;padding:1.25rem 1.5rem 3rem}}@media (width>=900px){.app{gap:1.5rem;max-width:1100px;padding:1.5rem 2rem 4rem}}.app>section{flex-direction:column;gap:1rem;display:flex}.columnas{grid-template-columns:1fr;align-items:start;gap:1rem;display:grid}@media (width>=900px){.columnas{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem}}.panel{flex-direction:column;gap:1rem;min-width:0;display:flex}.panel h3{margin-top:0}.app>header{border-bottom:1px solid var(--borde);justify-content:space-between;align-items:center;gap:1rem;padding-bottom:.75rem;display:flex}.titulo{color:var(--texto);font-size:1.1rem;font-weight:600;text-decoration:none}.app>header nav{gap:.5rem;display:flex}.mapa{background:var(--superficie);border:1px solid var(--borde);touch-action:none;border-radius:10px;width:100%;max-height:65vh}.grilla{color:var(--borde)}.sitio,.bloque{cursor:pointer}.sitio.destacado rect,.bloque.destacado polygon{stroke:var(--texto);stroke-width:.08px}.mapa.editando .sitio{cursor:grab}.etiqueta-codigo{fill:#fff;text-anchor:middle;pointer-events:none;font-size:.6px;font-weight:700}.etiqueta-codigo.iso{font-size:.7px}.etiqueta-conteo{fill:#fff;fill-opacity:.85;text-anchor:middle;pointer-events:none;font-size:.45px}.punto-bajo{fill:#fbbf24;stroke:#78350f;stroke-width:.05px;pointer-events:none}.leyenda{color:var(--texto-suave);flex-wrap:wrap;gap:.75rem;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex}.leyenda li{align-items:center;gap:.35rem;display:flex}.punto{border-radius:3px;width:.75rem;height:.75rem;display:inline-block}.aviso-mapa{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.control-tamano{color:var(--texto-suave);flex:none;align-items:center;gap:.25rem;font-size:.75rem;display:inline-flex}.control-tamano b{text-align:center;min-width:1.2rem;color:var(--texto)}.control-tamano .boton{min-width:32px;min-height:32px;padding:0}.tamanos .ubicaciones li{flex-wrap:wrap}.ubicaciones{flex-direction:column;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.ubicaciones li{border:1px solid var(--borde);border-radius:8px;align-items:center;gap:.5rem;padding:.5rem;display:flex}.ubicaciones li a{min-width:0;color:var(--texto);flex:1;align-items:center;gap:.5rem;text-decoration:none;display:flex}.ubicaciones li a span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ubicaciones li .boton{flex:none;min-height:38px;padding:.35rem .6rem;font-size:.85rem}.boton{min-height:48px;font:inherit;text-align:center;color:var(--texto);background:var(--fondo);border:1px solid var(--borde);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:.7rem 1rem;font-weight:500;text-decoration:none;display:inline-flex}.boton.principal{background:var(--acento);border-color:var(--acento);color:var(--acento-texto)}.boton.sutil{background:var(--superficie)}.boton.peligro{color:var(--alerta);border-color:var(--alerta);background:0 0}.boton:disabled{opacity:.55;cursor:not-allowed}.acciones{flex-wrap:wrap;gap:.5rem;display:flex}.acciones>*{flex:8rem}.fila{align-items:flex-end;gap:.5rem;display:flex}.fila>*{flex:1}.ayuda{color:var(--texto-suave);font-size:.9rem}.error{color:var(--alerta);background:var(--alerta-fondo);border-radius:8px;padding:.6rem;font-size:.9rem}.aviso{color:var(--alerta);font-size:.9rem;font-weight:500}.formato{color:var(--texto-suave);font-size:.8rem;font-weight:400}.notas{color:var(--texto-suave);background:var(--superficie);border-radius:8px;padding:.75rem;font-size:.9rem}.login{margin-top:15vh}.login form,.formulario{flex-direction:column;gap:.85rem;display:flex}label{color:var(--texto-suave);flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:500;display:flex}.interruptor{flex-direction:row;align-items:center;gap:.5rem;font-weight:400}.campo-con-ojo{display:block;position:relative}.campo-con-ojo input{padding-right:3rem}.ojo{width:2.5rem;height:2.5rem;color:var(--texto-suave);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.ojo:hover{color:var(--texto)}.interruptor input{width:auto;min-width:24px;min-height:24px}.buscador{font-size:1.05rem}.barra{flex-direction:column;gap:.75rem;display:flex}@media (width>=700px){.barra{flex-direction:row;align-items:center}.barra .buscador{flex:1}.barra .acciones,.barra .acciones>*{flex:none}}@media (width>=900px){.formulario{max-width:620px}}.productos{grid-template-columns:1fr;gap:.5rem;margin:0;padding:0;list-style:none;display:grid}@media (width>=700px){.productos{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}.productos a{border:1px solid var(--borde);height:100%;color:var(--texto);border-radius:10px;grid-template-columns:1fr auto;grid-template-areas:"nombre cantidad""meta cantidad";align-items:center;gap:.15rem .75rem;padding:.85rem;text-decoration:none;display:grid}.productos .nombre{grid-area:nombre;font-weight:500}.productos .meta{color:var(--texto-suave);grid-area:meta;font-size:.8rem}.productos .cantidad{font-variant-numeric:tabular-nums;white-space:nowrap;grid-area:cantidad;font-weight:600}.cantidad.baja,.destacado.bajo{color:var(--alerta)}.video{aspect-ratio:3/4;object-fit:cover;background:#000;border-radius:10px;width:100%;max-height:60vh}.contador{font-weight:600}.lecturas,.historial{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.lecturas li{border:1px solid var(--borde);border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem;display:flex}.ficha{background:var(--superficie);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.75rem;margin:0;padding:.9rem;display:grid}.ficha dt{text-transform:uppercase;letter-spacing:.03em;color:var(--texto-suave);font-size:.75rem}.ficha dd{margin:.15rem 0 0;font-weight:500}.ficha .destacado{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:700}.movimiento{border:1px solid var(--borde);border-radius:10px;flex-direction:column;gap:.6rem;padding:.9rem;display:flex}.historial li{border-bottom:1px solid var(--borde);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem;font-size:.9rem;display:flex}.tipo{background:var(--superficie);border-radius:999px;padding:.15rem .45rem;font-size:.75rem;font-weight:600}.tipo.entrada{color:var(--ok)}.tipo.salida{color:var(--alerta)}.historial .nota{color:var(--texto-suave);flex-basis:100%;font-size:.8rem}.etiqueta-contenedor{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.etiqueta{color:#000;border:1px solid var(--borde);background:#fff;border-radius:8px;align-items:center;gap:1rem;padding:.9rem;display:flex}.etiqueta-texto{flex-direction:column;gap:.2rem;font-size:.85rem;display:flex}.etiqueta-texto code{color:#000;background:0 0;padding:0}@media print{.no-imprimir,.app>header,.ficha,.movimiento,.historial,h2,h3{display:none!important}.etiqueta{border:none;padding:0}}
