@media (max-width: 960px) {
  .work-grid { grid-template-columns: minmax(0, 1fr); }
  .results-card { min-height: 300px; }
  .results-list { max-height: none; }
}

@media (max-width: 600px) {
  .topbar { height: 66px; padding: 0 18px; }
  .brand { font-size: 1.08rem; }
  .brand img { width: 38px; height: 38px; }
  .camera-badge { font-size: .72rem; }
  .app-shell { padding: 36px 14px 44px; }
  .intro { margin-bottom: 26px; }
  .intro h1 { font-size: clamp(2rem, 9vw, 2.65rem); }
  .intro-copy { font-size: .98rem; }
  .mode-tabs { width: 100%; }
  .mode-tab { flex: 1; justify-content: center; padding: 11px 8px; font-size: .84rem; }
  .scan-card, .results-card { padding: 19px 16px; border-radius: 15px; }
  .panel-heading { gap: 8px; }
  .privacy-pill { font-size: .68rem; }
  .camera-stage { min-height: 255px; }
  .camera-options { grid-template-columns: auto minmax(0, 1fr); }
  #torchButton { grid-column: 1 / -1; }
  .camera-buttons .button { flex: 1 1 42%; }
  .button-row .button { min-height: 46px; }
  .drop-zone { min-height: 245px; padding: 24px 14px; }
  .batch-buttons .button { flex: 1 1 42%; }
  .results-header { align-items: flex-start; flex-direction: column; }
  .result-actions { flex-wrap: wrap; }
  .footer { padding: 18px; gap: 8px; flex-direction: column; align-items: flex-start; }
  .cookie-notice { right: 12px; bottom: 12px; width: calc(100vw - 24px); padding: 17px; gap: 12px; align-items: stretch; flex-direction: column; }
  .cookie-notice > .button { width: 100%; }
}

@media (max-width: 360px) {
  .camera-badge { padding: 6px 8px; }
  .button-row { gap: 8px; }
  .camera-buttons .button { flex: 1 1 100%; }
  .mode-tab { font-size: .78rem; }
}
