/* AppBraga v1.58.351 — uniformização Impressoras, desempenho visual e mobile */
:root { --ab-vh: 1vh; --ab-vw: 1vw; }
html { text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
body { min-height: calc(var(--ab-vh, 1vh) * 100); }
img { content-visibility: auto; }
.ab-data-refreshing { cursor: progress; }

/* Área Impressoras: largura, espaçamento e linguagem visual consistentes */
body.ab-printer-area-page main,
body.ab-printer-area-page > section:not(.ab-page-boot-overlay):not([class*="hero"]),
body.ab-printer-area-page .page-shell,
body.ab-printer-area-page .app-shell {
  max-width: 1480px;
  margin-inline: auto;
}
body.ab-printer-area-page [class*="hero-card"] {
  min-height: 132px;
  border-radius: 24px;
}
body.ab-printer-area-page [class$="-kpis"],
body.ab-printer-area-page [class*=" kpis"],
body.ab-printer-area-page .kpi-grid {
  gap: 14px;
}
body.ab-printer-area-page button,
body.ab-printer-area-page .btn,
body.ab-printer-area-page [role="button"] {
  min-height: 42px;
}
body.ab-printer-area-page input,
body.ab-printer-area-page select,
body.ab-printer-area-page textarea {
  min-height: 42px;
}

/* Evita trabalho de pintura fora do ecrã em listas grandes. */
tbody tr, .printer-card, .stock-card, .history-card, .mnt-card,
[class*="list-item"], [class*="table-row"] {
  content-visibility: auto;
  contain-intrinsic-size: 1px 64px;
}

/* Mobile global */
@media (max-width: 760px) {
  html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
  body { padding-bottom: max(12px, env(safe-area-inset-bottom)); }
  body.ab-printer-area-page [class*="hero-card"] {
    min-height: auto;
    border-radius: 18px;
    padding: 16px !important;
  }
  body.ab-printer-area-page [class$="-kpis"],
  body.ab-printer-area-page .kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body.ab-printer-area-page button,
  body.ab-printer-area-page .btn,
  body.ab-printer-area-page [role="button"] {
    min-height: 46px;
    touch-action: manipulation;
  }
  body.ab-printer-area-page input,
  body.ab-printer-area-page select,
  body.ab-printer-area-page textarea {
    font-size: 16px !important;
  }
  .stock-qr-modal-card { width: min(94vw, 680px) !important; max-height: calc(var(--ab-vh, 1vh) * 92); overflow: auto; }
  #stockQrPreviewFrame, #stockQrReader, #stockQrReader video, #stockQrReader canvas {
    height: min(58vw, 360px) !important;
    min-height: min(58vw, 360px) !important;
  }
}

@media (max-width: 430px) {
  body.ab-printer-area-page [class$="-kpis"],
  body.ab-printer-area-page .kpi-grid { grid-template-columns: 1fr !important; }
  .stock-qr-actions { grid-template-columns: 1fr !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
