/* PWA install dialog, banner and offline pill. Works with the site tokens (--bg-2/--text) and the dashboard tokens (--card/--text). */
.pwa-dlg{border:0;padding:0;border-radius:28px;width:min(440px,calc(100vw - 32px));background:var(--card,var(--bg-2,#fff));color:var(--text,#1e2029);
  box-shadow:0 30px 80px rgba(0,0,0,.35)}
.pwa-dlg::backdrop{background:rgba(10,12,18,.55)}
.pwa-dlg-in{padding:26px}
.pwa-dlg-h{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.pwa-dlg-h img{border-radius:12px}
.pwa-dlg-h b{font-size:1.15rem}
.pwa-steps{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:12px}
.pwa-steps li{display:flex;gap:12px;align-items:flex-start;line-height:1.7}
.pwa-steps i{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#f0b90b;color:#181a20;font-weight:700;font-size:.9rem;font-style:normal}
.pwa-btn{display:inline-flex;align-items:center;justify-content:center;background:#f0b90b;color:#181a20;border:0;border-radius:999px;padding:12px 22px;font-family:inherit;font-weight:700;font-size:1rem;cursor:pointer;white-space:nowrap}
.pwa-dlg .pwa-btn{width:100%}
.pwa-banner{position:fixed;inset-inline:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:70;display:flex;align-items:center;gap:12px;
  background:var(--card,var(--bg-2,#fff));color:var(--text,#1e2029);border-radius:22px;padding:12px 14px;box-shadow:0 18px 50px rgba(0,0,0,.28);
  max-width:520px;margin-inline:auto;animation:pwaUp .35s ease}
.pwa-banner img{border-radius:12px;flex:none}
.pwa-banner div{flex:1;min-width:0;display:flex;flex-direction:column}
.pwa-banner b{font-size:.98rem}.pwa-banner small{opacity:.7;font-size:.8rem;line-height:1.5}
.pwa-x{background:none;border:0;color:inherit;opacity:.6;font-size:1.5rem;line-height:1;cursor:pointer;padding:4px 6px}
@keyframes pwaUp{from{transform:translateY(30px);opacity:0}}
.pwa-off{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);z-index:80;background:#d93636;color:#fff;
  padding:6px 16px;border-radius:999px;font-size:.85rem;font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.25)}
/* the dashboard has its own bottom bar on phones: lift the banner above it */
@media (max-width:640px){.has-tabbar .pwa-banner{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}
@media (prefers-reduced-motion:reduce){.pwa-banner{animation:none}}
