
:root{
  --pwa-accent:#2563eb;
  --pwa-accent-strong:#1d4ed8;
  --pwa-navy:#0f172a;
  --pwa-slate:#475569;
  --pwa-shell-bg:rgba(15,23,42,.96);
}
.pwa-install-banner{
  position:fixed;right:20px;bottom:20px;z-index:1080;max-width:380px;width:calc(100% - 32px);
  background:linear-gradient(135deg,rgba(2,8,23,.97),rgba(15,23,42,.96));color:#f8fafc;border:1px solid rgba(148,163,184,.18);
  border-radius:28px;box-shadow:0 26px 60px rgba(2,6,23,.34);padding:1.1rem 1.1rem 1rem;display:none;backdrop-filter:blur(12px)
}
.pwa-install-banner.is-visible{display:block}
.pwa-install-banner__head{display:flex;justify-content:space-between;gap:.85rem;align-items:flex-start}
.pwa-install-banner__eyebrow{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .7rem;border-radius:999px;background:rgba(37,99,235,.18);color:#bfdbfe;font-size:.78rem;font-weight:800;margin-bottom:.7rem}
.pwa-install-banner__title{font-size:1.15rem;font-weight:900;line-height:1.1;margin:0 0 .4rem}
.pwa-install-banner__text{font-size:.94rem;line-height:1.55;color:#dbe5f5;margin:0}
.pwa-install-banner__actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.95rem}
.pwa-install-banner__shortcuts{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.85rem}
.pwa-install-shortcut{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .7rem;border-radius:999px;background:rgba(148,163,184,.12);color:#e2e8f0;font-size:.8rem;font-weight:700;text-decoration:none}
.pwa-install-btn{appearance:none;border:none;border-radius:999px;padding:.82rem 1.05rem;font-weight:800;line-height:1;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;transition:transform .18s ease,opacity .18s ease,background .18s ease,box-shadow .18s ease}
.pwa-install-btn:hover{transform:translateY(-1px)}
.pwa-install-btn--primary{background:linear-gradient(135deg,var(--pwa-accent),#3b82f6);color:#fff;box-shadow:0 14px 28px rgba(37,99,235,.3)}
.pwa-install-btn--secondary{background:#fff;color:var(--pwa-navy)}
.pwa-install-btn--ghost{background:rgba(148,163,184,.14);color:#e2e8f0}
.pwa-install-banner__dismiss{border:none;background:rgba(148,163,184,.14);color:#e2e8f0;border-radius:999px;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.pwa-install-guide{position:fixed;inset:0;z-index:1090;display:none;background:rgba(2,6,23,.7);padding:16px;align-items:center;justify-content:center}
.pwa-install-guide.is-visible{display:flex}
.pwa-install-guide__card{width:min(100%,620px);background:#fff;color:var(--pwa-navy);border-radius:32px;padding:1.45rem 1.45rem 1.2rem;box-shadow:0 28px 70px rgba(2,6,23,.28)}
.pwa-install-guide__eyebrow{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .8rem;border-radius:999px;background:#dbeafe;color:var(--pwa-accent-strong);font-weight:800;font-size:.82rem}
.pwa-install-guide__title{font-size:1.55rem;line-height:1.12;margin:.85rem 0 .55rem;font-weight:900}
.pwa-install-guide__text{color:var(--pwa-slate);margin:0 0 .95rem;line-height:1.55}
.pwa-install-guide__steps{margin:0;padding-left:1.1rem;color:var(--pwa-navy);display:grid;gap:.55rem}
.pwa-install-guide__actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.15rem}
.pwa-install-inline{background:linear-gradient(135deg,#0b1730 0%,#143b91 52%,#2563eb 100%);border-radius:34px;color:#fff;padding:1.6rem 1.6rem 1.35rem;box-shadow:0 24px 48px rgba(15,23,42,.16);border:1px solid rgba(113,145,228,.24)}
.pwa-install-inline__wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:1.1rem;align-items:stretch}
.pwa-install-inline__kicker{display:inline-flex;align-items:center;gap:.4rem;padding:.38rem .8rem;border-radius:999px;background:rgba(255,255,255,.14);font-size:.82rem;font-weight:800;margin-bottom:.95rem}
.pwa-install-inline h2{font-size:clamp(1.8rem,2.8vw,2.65rem);line-height:1.03;margin:0 0 .8rem;font-weight:900;color:#fff;max-width:12ch}
.pwa-install-inline p{font-size:1rem;line-height:1.7;color:rgba(255,255,255,.9);max-width:64ch;margin:0}
.pwa-install-inline__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}
.pwa-install-inline__chips{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}
.pwa-install-inline__chip{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .8rem;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14);font-size:.84rem;font-weight:700;color:#fff}
.pwa-install-inline__panel{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:24px;padding:1rem 1rem .9rem;display:grid;gap:.85rem}
.pwa-install-inline__card{background:rgba(15,23,42,.2);border-radius:18px;padding:.9rem .95rem}
.pwa-install-inline__card strong{display:block;font-size:1rem;margin-bottom:.25rem}
.pwa-install-inline__card span{display:block;font-size:.92rem;line-height:1.5;color:rgba(255,255,255,.82)}
.pwa-install-inline__note{font-size:.86rem;line-height:1.45;color:rgba(255,255,255,.74);margin:0}
.pwa-install-inline__shortcut-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.pwa-install-inline__shortcut{display:flex;flex-direction:column;gap:.3rem;padding:.9rem;border-radius:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);text-decoration:none;color:#fff}
.pwa-install-inline__shortcut strong{font-size:.98rem}
.pwa-install-inline__shortcut span{font-size:.85rem;color:rgba(255,255,255,.78);line-height:1.45}
@media (max-width:991.98px){
  .pwa-install-inline__wrap{grid-template-columns:1fr}
  .pwa-install-banner{right:16px;left:16px;bottom:16px;width:auto;max-width:none}
}
@media (max-width:575.98px){
  .pwa-install-guide__card{padding:1.1rem 1rem;border-radius:26px}
  .pwa-install-inline{padding:1.1rem;border-radius:26px}
  .pwa-install-inline__shortcut-grid{grid-template-columns:1fr}
  .pwa-install-banner{padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom, 0px))}
}

.pwa-install-banner--logged{max-width:360px;right:18px;bottom:18px}
@media (max-width:991.98px){.pwa-install-banner--logged{left:16px;right:16px;bottom:16px;max-width:none}}
