.pwa-install-open { overflow: hidden; }
.tpm-install[hidden] { display: none !important; }
.tpm-install { position: fixed; inset: 0; z-index: 2147482000; display: grid; place-items: center; padding: 24px; opacity: 0; pointer-events: none; transition: opacity .28s ease; }
.tpm-install.is-visible { opacity: 1; pointer-events: auto; }
.tpm-install__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(4, 14, 25, .67); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); cursor: default; }
.tpm-install__card { position: relative; display: grid; grid-template-columns: 118px minmax(0, 1fr); gap: 28px; width: min(650px, 100%); padding: 34px; overflow: hidden; border: 1px solid rgba(255,255,255,.55); border-radius: 26px; background: rgba(255,255,255,.96); box-shadow: 0 32px 90px rgba(4,14,25,.28); transform: translateY(20px) scale(.98); transition: transform .35s cubic-bezier(.2,.8,.2,1); }
.tpm-install.is-visible .tpm-install__card { transform: translateY(0) scale(1); }
.tpm-install__card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px; background: #ed1b3a; }
.tpm-install__icon { align-self: start; width: 118px; aspect-ratio: 1; overflow: hidden; border-radius: 25px; box-shadow: 0 18px 38px rgba(8,26,44,.2); }
.tpm-install__icon img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tpm-install__close { position: absolute; top: 13px; right: 15px; display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: #edf1f5; color: #354355; font-size: 27px; line-height: 1; cursor: pointer; transition: color .2s ease, background .2s ease, transform .2s ease; }
.tpm-install__close:hover { color: #fff; background: #ed1b3a; transform: rotate(5deg); }
.tpm-install__content { min-width: 0; padding-right: 15px; }
.tpm-install__eyebrow { display: block; margin: 2px 0 9px; color: #ed1b3a; font: 800 11px/1.2 'DM Sans', Arial, sans-serif; letter-spacing: .16em; }
.tpm-install h2 { margin: 0 0 10px; color: #081a2c; font: 700 clamp(31px, 4vw, 43px)/.98 'Source Serif 4', Georgia, serif; letter-spacing: -.035em; }
.tpm-install p { margin: 0; color: #637185; font: 500 15px/1.55 'DM Sans', Arial, sans-serif; }
.tpm-install .tpm-install__ios { margin-top: 11px; padding: 10px 12px; border-left: 3px solid #ed1b3a; background: #f5f7f9; color: #263649; font-size: 14px; }
.tpm-install__actions { display: flex; align-items: center; gap: 13px; margin-top: 22px; }
.tpm-install__primary, .tpm-install__secondary { border: 0; font: 800 13px/1 'DM Sans', Arial, sans-serif; cursor: pointer; }
.tpm-install__primary { display: inline-flex; align-items: center; gap: 13px; padding: 15px 20px; border-radius: 999px; background: #ed1b3a; color: #fff; box-shadow: 0 12px 25px rgba(237,27,58,.22); transition: background .2s ease, transform .2s ease; }
.tpm-install__primary:hover { background: #081a2c; transform: translateY(-2px); }
.tpm-install__secondary { padding: 10px 5px; background: transparent; color: #526175; transition: color .2s ease; }
.tpm-install__secondary:hover { color: #ed1b3a; }
@media (max-width: 620px) {
    .tpm-install { align-items: end; padding: 12px; }
    .tpm-install__card { grid-template-columns: 76px minmax(0, 1fr); gap: 17px; padding: 25px 20px 27px; border-radius: 24px; }
    .tpm-install__icon { width: 76px; border-radius: 18px; }
    .tpm-install__content { padding-right: 0; }
    .tpm-install__eyebrow { padding-right: 35px; }
    .tpm-install h2 { font-size: 31px; }
    .tpm-install p { grid-column: 1 / -1; font-size: 14px; }
    .tpm-install__actions { flex-wrap: wrap; }
}
@media (max-width: 420px) {
    .tpm-install__card { display: block; }
    .tpm-install__icon { width: 68px; margin-bottom: 18px; }
    .tpm-install h2 { max-width: 300px; }
}
@media (prefers-reduced-motion: reduce) {
    .tpm-install, .tpm-install__card, .tpm-install__close, .tpm-install__primary { transition: none !important; }
}
.tpm-push-toggle { position: fixed; right: 24px; bottom: 92px; z-index: 9999; display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 0 16px; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; background: #081a2c; color: #fff; box-shadow: 0 14px 34px rgba(8,26,44,.22); font: 800 12px/1 'DM Sans',Arial,sans-serif; cursor: pointer; transition: transform .2s ease, background .2s ease; }
.tpm-push-toggle:hover { background: #ed1b3a; transform: translateY(-2px); }
.tpm-push-toggle[data-state="enabled"] { background: #14794f; }
.tpm-push-toggle[data-state="denied"], .tpm-push-toggle[data-state="error"] { background: #8b2535; }
.tpm-push-toggle:disabled { opacity: .72; cursor: wait; }
.tpm-push-toggle i { font-size: 16px; }
@media (max-width: 767px) { .tpm-push-toggle { right: 13px; bottom: 78px; min-width: 44px; padding: 0 13px; } .tpm-push-toggle span { display: none; } }
