/* Cámara y controles compartidos entre Inicio, Biblioteca y Stock. */
.library-scanner-dialog { background: #fff; }
.library-scanner-dialog .ean-reader { position: relative; width: 100%; min-height: 0; border-radius: 12px; overflow: hidden; background: #10121a; }
.library-scanner-dialog .ean-reader video { display: block; position: static !important; width: 100% !important; height: auto !important; min-height: 220px; max-height: 55dvh; object-fit: cover !important; margin: 0; }
.library-scanner-dialog .ean-reader canvas { height: auto; }
.ean-reader #qr-shaded-region > div { background-color: white !important; }
.ean-reader.ean-detecting #qr-shaded-region > div { background-color: #facc15 !important; }
.ean-reader.ean-confirmed #qr-shaded-region > div { background-color: #23c55e !important; }
.ean-camera-controls { position: absolute; z-index: 3; inset: 12px; color: #fff; pointer-events: none; }
.ean-camera-controls .ean-camera-zoom { position: absolute; left: 0; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; align-items: center; gap: 4px; width: 48px; padding: 10px 2px; margin: 0 !important; font-size: .75rem; color: #fff; }
.ean-camera-zoom input[type="range"] { writing-mode: vertical-lr; direction: rtl; appearance: auto; width: 44px; height: 116px; min-height: 0; margin: 0; padding: 0; border: 0; background: transparent; accent-color: #fff; touch-action: none; }
.ean-camera-zoom-value { font-variant-numeric: tabular-nums; }
.ean-camera-light { position: absolute; right: 0; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 48px; height: 48px; padding: 12px; color: #fff; cursor: pointer; }
.ean-camera-controls .ean-camera-zoom, .ean-camera-light { border: 1px solid rgba(255,255,255,.35); border-radius: 28px; background: rgba(245,248,255,.16); box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 4px 16px rgba(0,0,0,.16); backdrop-filter: blur(18px) saturate(150%); -webkit-backdrop-filter: blur(18px) saturate(150%); pointer-events: auto; }
.ean-camera-controls svg { display: block; width: 22px; height: 22px; }
.ean-camera-zoom-icon { height: 22px; }
.ean-camera-light[aria-pressed="true"] { background: #facc15; color: #172033; }
.ean-camera-controls .ean-camera-manual { position: absolute; right: 0; top: calc(50% + 32px); display: grid; place-items: center; width: 48px; height: 48px; padding: 12px; color: white; cursor: pointer; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: rgba(245,248,255,.16); box-shadow: inset 0 1px 0 rgba(255,255,255,.25),0 4px 16px rgba(0,0,0,.16); backdrop-filter: blur(18px) saturate(150%); -webkit-backdrop-filter: blur(18px) saturate(150%); pointer-events: auto; }
.ean-camera-controls .ean-camera-manual-only { top: 50%; transform: translateY(-50%); }
.ean-camera-controls :focus-visible { outline: 3px solid #8372d8; outline-offset: 3px; }
.library-scanner-dialog .scanner-status { margin-top: 12px; color: #536174; line-height: 1.4; font-size: .95rem; }
.library-scanner-dialog [hidden] { display: none !important; }
.library-scanner-dialog button:disabled { opacity: .5; cursor: default; }
.library-scanner-dialog button:focus-visible { outline: 3px solid #8372d8; outline-offset: 3px; }
#contenedormax.library-dialog { inset: 0; width: min(480px, calc(100% - 24px)); height: fit-content; background: #fff; animation: none; }
#contenedormax.library-dialog[open] { display: block; }
#contenedormax.library-dialog:not([open]) { display: none; }
#contenedormax #conterdormaxc { position: static; width: auto; height: auto; margin: 0; padding: 12px 16px; border-radius: 10px; background: #e9e6f5; color: var(--color1); font-size: 1rem; }
#contenedormax #contenedor { position: relative; height: auto; }
#contenedormax #contenedor video { position: static; height: auto; }
#contenedormax #cartelScaner { position: static; width: 100%; height: auto; padding: 0; background: transparent; }
#contenedormax .cartelscaner-box { width: 100%; margin: 0; padding: 0; box-shadow: none; filter: none; border-radius: 0; }
#contenedormax .cartelscaner-box-info { align-items: stretch; }
#contenedormax .cartelscaner-box-titulo { text-align: left; }
#contenedormax #scanCopyStatus:empty { display: none; }
#verc { z-index: 4; }

.ean-camera-controls .ean-camera-zoom{touch-action:none;overscroll-behavior:none}
