/* CBET PoE Mobile Scanner V62 — mobile-first controls without changing role permissions. */
.scanner-mobile-source {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .45rem;
  margin: .8rem 0;
  padding: .75rem;
  border: 1px solid #b8d5e5;
  border-radius: 14px;
  background: #f4faff;
}
.scanner-mobile-source input[type="file"] { display: none !important; }
.scanner-mobile-source .scanner-gallery-button { min-height: 48px; width: 100%; font-weight: 800; }
.scanner-mobile-source small { color: #52677a; line-height: 1.4; }

@media (max-width: 760px) {
  .scanner-backdrop { padding: 0 !important; align-items: stretch !important; }
  .scanner-modal.scanner-modal-wide {
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    border-radius: 0 !important;
    overflow-x: hidden !important;
  }
  .scanner-modal .modal-header {
    position: sticky;
    top: 0;
    z-index: 20;
    background: #fff;
    padding: .75rem .85rem;
    border-bottom: 1px solid #d7e5ef;
  }
  .scanner-modal .modal-header strong { font-size: 1.05rem; }
  .scanner-modal .modal-header small { display: block; font-size: .78rem; line-height: 1.3; }
  .scanner-layout.scanner-layout-wide { display: block !important; padding: .7rem !important; }
  .scanner-camera-panel, .scanner-pages-panel { min-width: 0 !important; width: 100% !important; }
  .scanner-toolbar.scanner-toolbar-grid { grid-template-columns: 1fr !important; gap: .55rem !important; }
  .scanner-device-label, .scanner-device-label select { width: 100% !important; min-width: 0 !important; }
  .scanner-device-label select, .scanner-toolbar button { min-height: 46px; font-size: 16px; }
  .scanner-video-wrap.scanner-a4-video-wrap { min-height: 0 !important; height: min(55dvh, 520px) !important; border-radius: 14px; overflow: hidden; }
  .scanner-video { width: 100% !important; height: 100% !important; object-fit: cover !important; }
  .scanner-frame-guide { font-size: .74rem !important; text-align: center; }
  .scanner-options.scanner-options-grid { grid-template-columns: 1fr !important; gap: .55rem !important; }
  .scanner-options label { min-height: 44px; display: flex; align-items: center; gap: .55rem; }
  .scanner-options input[type="checkbox"] { width: 22px; height: 22px; flex: 0 0 auto; }
  .scanner-actions.scanner-actions-strong {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: .55rem !important;
    position: sticky;
    bottom: 0;
    z-index: 15;
    padding: .65rem 0 calc(.65rem + env(safe-area-inset-bottom));
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(8px);
  }
  .scanner-actions.scanner-actions-strong button { min-height: 50px; margin: 0 !important; white-space: normal; }
  .scanner-pages-panel { margin-top: .9rem; padding-top: .8rem; border-top: 2px solid #d5e7f2; }
  .scanner-help-card { font-size: .82rem; line-height: 1.4; }
  .scanner-page-list { display: grid !important; grid-template-columns: 1fr !important; gap: .8rem !important; }
  .scanner-page-card { padding: .65rem !important; border-radius: 14px !important; }
  .scanner-page-card img { width: 100% !important; max-height: 48dvh !important; object-fit: contain !important; background: #edf4f8; }
  .scanner-page-footer { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: .45rem !important; }
  .scanner-page-footer button { min-height: 44px; margin: 0 !important; font-size: .84rem; }
  .id-crop-editor-card { width: 100vw !important; height: 100dvh !important; max-height: 100dvh !important; border-radius: 0 !important; overflow: auto; }
  .id-crop-stage { touch-action: none; width: 100% !important; }
  .id-crop-handle { width: 34px !important; height: 34px !important; }
  .id-crop-edge-handle { width: 38px !important; height: 38px !important; }
  .evidence-modal, .evidence-modal-v33 { width: min(100vw, 100%) !important; max-height: 100dvh !important; margin: 0 !important; border-radius: 0 !important; }
  .linked-evidence-source-actions, .scanner-upload-row { display: grid !important; grid-template-columns: 1fr !important; gap: .55rem !important; }
  .linked-evidence-source-actions button, .linked-evidence-file-button, .scanner-upload-row button { width: 100% !important; min-height: 48px; }
}

@media (max-width: 390px) {
  .scanner-actions.scanner-actions-strong,
  .scanner-page-footer { grid-template-columns: 1fr !important; }
}
