.install-card{--sf-text:#f4f6fb;--sf-muted:#b6bfce;--sf-accent:oklch(50.54% .1905 27.52);--sf-accent-hover:oklch(44.37% .1613 26.9);position:fixed;z-index:60;right:1.25rem;bottom:1.25rem;width:min(23.75rem,calc(100vw - 2rem));padding:1.125rem;border:1px solid #465169;border-radius:1rem;background:linear-gradient(180deg,#1f2738,#171d2a);box-shadow:0 1.125rem 3.125rem rgba(0,0,0,.55);color:var(--sf-text);animation:install-in .28s ease-out}@keyframes install-in{0%{opacity:0;transform:translateY(.875rem)}to{opacity:1;transform:none}}.install-card .install-x{position:absolute;top:.5rem;right:.5rem;display:grid;place-items:center;width:2.125rem;height:2.125rem;border:0;border-radius:50%;background:transparent;color:var(--sf-muted);cursor:pointer}.install-card .install-x:hover{background:#283249;color:var(--sf-text)}.install-card .install-head{display:flex;gap:.875rem;align-items:flex-start;padding-right:1.5rem}.install-card .install-icon{flex:none;width:3.25rem;height:3.25rem;border-radius:.8125rem;box-shadow:0 0 0 1px #30394c}.install-card .install-head h2{margin:.125rem 0 .25rem;font-size:1.0625rem;line-height:1.2}.install-card .install-head p{margin:0;font-size:.8125rem;line-height:1.45;color:var(--sf-muted)}.install-card .install-steps{display:grid;gap:.625rem;margin:1rem 0 0;padding:0;list-style:none}.install-card .install-steps li{display:flex;align-items:center;gap:.75rem;font-size:.8125rem;line-height:1.35;color:var(--sf-muted)}.install-card .install-steps li strong{color:var(--sf-text)}.install-card .install-steps li span{flex:none;display:grid;place-items:center;width:2.125rem;height:2.125rem;border-radius:.625rem;background:#283249;color:var(--sf-text);font-size:1.0625rem}.install-card .install-actions{display:flex;gap:.625rem;justify-content:flex-end;margin-top:1rem}.install-card .install-go,.install-card .install-later{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.625rem 1.125rem;border-radius:.625rem;font:inherit;font-size:.875rem;font-weight:700;cursor:pointer}.install-card .install-later{border:0;background:transparent;color:var(--sf-muted)}.install-card .install-later:hover{color:var(--sf-text)}.install-card .install-go{border:0;background:var(--sf-accent);color:#fff}.install-card .install-go:hover{background:var(--sf-accent-hover)}@media (max-width:760px){.install-card{left:1rem;right:1rem;width:auto;bottom:calc(4.5rem + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.install-card{animation:none}}.push-invite{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;margin-top:.75rem;padding:.75rem .875rem;border:1px solid #465169;border-radius:.75rem;background:linear-gradient(180deg,#1f2738,#1b2231)}.push-invite>svg{font-size:1.25rem;color:var(--sf-historic,#46d39a)}.push-invite p{display:grid;gap:.125rem;margin:0;font-size:.8125rem;line-height:1.35}.push-invite p strong{font-size:.875rem}.push-invite p span{color:var(--sf-muted)}.push-invite button{min-height:2.5rem;padding:.5rem 1rem;border:0;border-radius:.5625rem;background:var(--sf-accent);color:#fff;font:inherit;font-size:.8125rem;font-weight:700;cursor:pointer}.push-invite button:hover:not(:disabled){background:var(--sf-accent-hover)}.push-invite button:disabled{opacity:.6}.push-invite small{grid-column:1/-1;color:#ff9a9f;font-size:.75rem}.push-invite.quiet{grid-template-columns:auto 1fr;border-style:dashed;background:transparent}.push-invite.quiet>svg{color:var(--sf-muted)}@media (max-width:520px){.push-invite{grid-template-columns:auto 1fr}.push-invite button{grid-column:1/-1;width:100%}}.push-card .push-on{display:flex;align-items:center;gap:.5rem;margin:0 0 .25rem;color:var(--sf-historic,#46d39a);font-weight:700;font-size:.875rem}.push-card .push-actions{display:flex;flex-wrap:wrap;gap:.625rem;margin-top:.375rem}.maintenance-banner{position:fixed;z-index:80;left:.75rem;bottom:5.25rem;display:flex;align-items:center;gap:.75rem;max-width:calc(100vw - 1.5rem);padding:.625rem .875rem;border-radius:.625rem;background:#302712;border:1px solid #6b5420;color:#f2c15b;font-size:.8125rem;font-weight:600;box-shadow:0 .5rem 1.5rem rgb(0 0 0/.4)}.maintenance-banner a{color:#fff;text-decoration:underline;white-space:nowrap}@media (min-width:901px){.maintenance-banner{bottom:1rem}}