.scan-demo {
  position: relative;
  min-width: 0;
  min-height: 430px;
  margin: 18px -10px 28px;
}

.scan-demo canvas {
  display: block;
  width: 100%;
  height: 330px;
  pointer-events: none;
}

.scan-demo .scan-demo-controls {
  display: flex;
  justify-content: center;
  gap: 7px;
  max-width: 370px;
  margin: 6px auto 0;
  padding: 0 5px;
}

.scan-demo .scan-demo-controls button {
  flex: 1 1 0;
  min-width: 0;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid #a8dcb52e;
  border-radius: 5px;
  background: #a8dcb506;
  color: #a8b9ae;
  font: 12px/1.4 var(--mono, monospace);
  transition: color .2s, background .2s, border-color .2s, box-shadow .2s;
}

.scan-demo .scan-demo-controls button[aria-pressed="true"] {
  border-color: #a8dcb58c;
  background: #a8dcb51b;
  color: #d9f0df;
  box-shadow: inset 0 0 16px #a8dcb508, 0 0 18px #a8dcb507;
}

.scan-demo .scan-demo-controls button:focus-visible {
  outline: 2px solid #a8dcb5;
  outline-offset: 3px;
}

.scan-demo .scan-demo-description {
  min-height: 38px;
  max-width: 350px;
  margin: 12px auto 0;
  padding: 0 8px;
  color: #b8cbbd;
  font: 12px/1.6 "Helvetica Neue", Helvetica, Arial, sans-serif;
  text-align: center;
  text-wrap: pretty;
}

@media (hover: hover) {
  .scan-demo .scan-demo-controls button:hover {
    border-color: #a8dcb578;
    background: #a8dcb518;
    color: #e6f2e9;
  }
}

@media (max-width: 360px) {
  .scan-demo .scan-demo-controls { gap: 5px; }
  .scan-demo .scan-demo-controls button { padding-inline: 5px; font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  .scan-demo .scan-demo-controls button { transition: none; }
}

@media print {
  .scan-demo { display: none; }
}
