/* ---------- Сканер ---------- */
.scanner {
  position: relative; overflow: hidden; aspect-ratio: 1; max-height: 52vh; margin: 0 auto var(--sp-3);
  border-radius: var(--r-lg); background: var(--pass-bg);
  display: none;
}
.scanner.is-on { display: block; }
.scanner__video { width: 100%; height: 100%; object-fit: cover; }
.scanner__frame {
  position: absolute; inset: 18%; border-radius: var(--r-md);
  box-shadow: 0 0 0 999px rgba(22, 20, 15, 0.45);
  border: 3px solid var(--signal);
}
.scanner__frame::after {
  content: ""; position: absolute; left: 6%; right: 6%; top: 0; height: 2px; background: var(--signal);
  animation: scanline 1.8s var(--ease-out) infinite alternate;
}
@keyframes scanline { to { transform: translateY(calc(var(--scan-h, 200px))); } }

.manual { display: grid; grid-template-columns: 1fr auto; gap: var(--sp-2); margin: var(--sp-3) 0; }

/* ---------- Вердикт ---------- */
.verdict {
  display: grid; grid-template-columns: 56px 1fr; gap: var(--sp-4); align-items: start;
  padding: var(--sp-5); border-radius: var(--r-lg); margin-top: var(--sp-3);
  animation: verdict-in var(--dur-3) var(--ease-out);
}
.verdict--go { background: var(--go); color: #fff; }
.verdict--stop { background: var(--stop); color: #fff; }
.verdict__icon { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, 0.18); }
.verdict__icon svg { width: 30px; height: 30px; stroke-width: 2.6; }
.verdict__title { font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 700; line-height: 1.05; }
.verdict__name { font-weight: 700; margin-top: var(--sp-2); }
.verdict__reason { font-size: var(--fs-sm); opacity: 0.9; margin-top: 2px; }
.verdict .link-btn { color: #fff; text-decoration: underline; margin-top: var(--sp-2); display: inline-block; }
@keyframes verdict-in { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: none; } }
