.scan-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(18rem, 2fr); gap: 1.5rem; align-items: start; }
.scan-layout .task { border-radius: 12px; }
.scan-layout button, #workspace input, #workspace select, #retry, #logout, #refresh, .workspace-nav a { min-height: 48px; }
#scan-form button { margin-top: 1.25rem; }
.camera-actions { margin-bottom: 1rem; }
#camera-preview { margin-block: 1rem; background: #162d36; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 6px; }
#camera { display: block; width: 100%; height: 100%; object-fit: contain; }
#camera-status { font-weight: 600; }
.scan-results { margin-top: 2.5rem; scroll-margin-top: 1rem; }
.scan-row { padding: 1.25rem 0; border-top: 1px solid var(--line); overflow-wrap: anywhere; }
.scan-row h3 { margin: 0 0 .5rem; font-size: 1.125rem; }
.scan-row p { margin-bottom: .5rem; }
.scan-row a { display: inline-flex; align-items: center; min-height: 48px; }
.scan-row button, #more-results, #more-positions { min-height: 48px; }
.scan-type { font-weight: 600; color: var(--muted); }
#result-summary { overflow-wrap: anywhere; }
@media (max-width: 800px) { .scan-layout { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) {
  .intro { margin-bottom: 1rem; }
  .workspace-nav { gap: .25rem 1rem; margin-bottom: .75rem; }
  .toolbar { padding-block: .75rem; margin-bottom: 1.25rem; gap: .75rem; }
  .toolbar label { margin-top: 0; }
  .camera-actions { align-items: stretch; }
  #scan-form button { width: 100%; }
}
