/* Aplikacja na telefon (PWA, 2.0.67): podpowiedź „Zainstaluj aplikację” (web/assets/js/pwa.js) i poprawki mobilne. */

.pwa-bar {
  /* 2.0.108 (audyt): pod wysuwanym menu (.side 80, zaciemnienie 79) i oknami (900) — nie zasłania otwartego menu */
  position: fixed; left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); z-index: 75;
  display: flex; align-items: center; gap: 12px; max-width: 560px; margin: 0 auto; padding: 10px 10px 10px 12px;
  background: var(--navy); color: #fff; border-radius: 14px; box-shadow: 0 10px 30px rgb(1 20 55 / .35);
  animation: pwaIn .25s ease-out;
}
.pwa-bar img { flex: 0 0 auto; border-radius: 8px; }
.pwa-bar-txt { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 13px; line-height: 1.35; }
.pwa-bar-txt strong { font-size: 14px; }
.pwa-bar-txt span { color: #C7D2FE; }
.pwa-bar .btn { flex: 0 0 auto; min-height: 40px; }
.pwa-bar-x {
  flex: 0 0 auto; width: 40px; height: 40px; display: grid; place-items: center; border: 0; border-radius: 50%;
  background: transparent; color: #fff; cursor: pointer;
}
.pwa-bar-x:hover { background: rgb(255 255 255 / .14); }
.pwa-bar button:focus-visible { outline: 3px solid var(--cyan); outline-offset: 2px; }
@keyframes pwaIn { from { transform: translateY(16px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (max-width: 420px) { .pwa-bar-txt span { display: none; } }
@media (prefers-reduced-motion: reduce) { .pwa-bar { animation: none; } }
@media print { .pwa-bar { display: none !important; } }

.pwa-kroki { margin: 12px 0; padding-left: 22px; display: grid; gap: 8px; line-height: 1.45; }

/* portal otwarty jako aplikacja (ikona na ekranie): bez paska podpowiedzi */
@media (display-mode: standalone) {
  .pwa-bar { display: none; }
}

/* ---------- poprawki mobilne (przegląd 375 px, 2.0.67) ---------- */
@media (max-width: 700px) {
  /* pusty koszyk: przyciski pod tekstem zamiast w jednym rzędzie (rozpychały stronę do ~780 px) */
  .empty-sm { flex-wrap: wrap; }
  .empty-sm > div { flex: 1 1 calc(100% - 40px); min-width: 0; }
  .empty-sm .btn { margin-left: 0; }
}
/* ekran dotykowy: małe steppery ilości (rekomendacje, listy) — palec trafia w +/− (było 26×30 px) */
@media (pointer: coarse) and (max-width: 700px) {
  .qty.sm { height: 38px; }
  .qty.sm button { width: 36px; }
}
