/* swayproduct.info – EAN-Suche & Scanner */
.spi-ean-search .spi-ean-submit,
.spi-ean-search .spi-ean-scan { display: inline-flex; align-items: center; justify-content: center; min-width: 3.5rem; }
.spi-ean-search .spi-ean-scan[hidden] { display: none; }
.spi-ean-status { min-height: 1.5em; color: #fff; text-align: left; }
.spi-ean-status[data-state="error"] { color: #ffd2d2; }

.spi-scanner-modal .modal-content { background: #111; color: #fff; }
.spi-scanner-modal .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
.spi-scanner-modal .btn-outline-dark { color: #fff; border-color: rgba(255, 255, 255, .5); }
.spi-scanner-viewport { position: relative; width: 100%; aspect-ratio: 4 / 3; background: #000; overflow: hidden; }
@media (max-width: 575.98px) { .spi-scanner-viewport { aspect-ratio: auto; height: 70vh; } }
.spi-scanner-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.spi-scanner-frame { position: absolute; left: 10%; right: 10%; top: 32%; bottom: 32%; border: 2px solid rgba(255, 255, 255, .9); border-radius: 12px; box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .45); }
.spi-scanner-line { position: absolute; left: 6%; right: 6%; top: 50%; height: 2px; background: #ff3b3b; box-shadow: 0 0 8px #ff3b3b; animation: spi-scan 1.8s ease-in-out infinite alternate; }
@keyframes spi-scan { from { transform: translateY(-40px); } to { transform: translateY(40px); } }
@media (prefers-reduced-motion: reduce) { .spi-scanner-line { animation: none; } }
.spi-scanner-status[data-state="error"] { color: #ffb4b4; }
.spi-scanner-debug { position: absolute; left: 8px; top: 8px; margin: 0; padding: 6px 8px; font: 11px/1.4 monospace; color: #0f0; background: rgba(0, 0, 0, .7); border-radius: 4px; z-index: 5; white-space: pre; }
