.pwa-install{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:20px;background:var(--card);border:1px solid var(--border);border-radius:12px;color:var(--foreground);margin-bottom:16px}.pwa-install h2{font-size:16px;font-weight:700;margin:0 0 6px}.pwa-install p{font-size:14px;line-height:1.6;color:var(--muted-foreground);margin:0;max-width:65ch}.pwa-install-actions{flex:0 1 360px;min-width:0;display:grid;gap:12px}.pwa-install button{justify-self:start;min-height:44px;padding:10px 16px;color:white;border:0;border-radius:8px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.pwa-install button,.pwa-install button:hover{background:var(--primary)}.pwa-install button:disabled{opacity:.65;cursor:wait}.pwa-install summary{min-height:44px;align-content:center;font-size:14px;color:var(--primary);cursor:pointer}.pwa-install details p{margin-top:8px}.pwa-install :is(button,summary):focus-visible{outline:3px solid var(--primary);outline-offset:3px}@media(max-width:640px){.pwa-install{display:block}.pwa-install-actions{margin-top:12px}.pwa-install button{width:100%}}.pwa-invite{position:fixed;z-index:45;inset-inline:12px;bottom:calc(84px + env(safe-area-inset-bottom,0px));margin-inline:auto;max-width:440px;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:12px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--card);color:var(--foreground)}.pwa-invite>img{border-radius:8px;background:#fff}.pwa-invite-copy{min-width:0}.pwa-invite-copy p{margin:0;font-size:14px;line-height:1.45;color:var(--muted-foreground)}.pwa-invite-copy .pwa-invite-title{font-size:16px;font-weight:600;color:var(--foreground);margin-bottom:4px}.pwa-invite-actions{grid-column:1/-1;display:grid;gap:8px}.pwa-invite-actions>button{width:100%;min-height:44px}.pwa-invite-actions>span{font-size:12px;line-height:1.4;color:var(--muted-foreground)}.pwa-invite button:focus-visible{outline:2px solid var(--ring);outline-offset:2px}@media(min-width:1025px),(pointer:fine){.pwa-invite{display:none}}