.ontriathlonapi-pwa-button{position:fixed;right:1rem;bottom:1rem;z-index:1040;border:0;border-radius:999px;background:#0d6efd;color:#fff;padding:.7rem 1rem;font-weight:700;box-shadow:0 .35rem 1.25rem rgba(0,0,0,.22)}
.ontriathlonapi-pwa-panel{position:fixed;right:1rem;bottom:4.75rem;z-index:1050;width:min(25rem,calc(100vw - 2rem));max-height:calc(100vh - 6rem);overflow:auto;background:#fff;color:#172033;border-radius:1rem;padding:1.25rem;box-shadow:0 .75rem 2.5rem rgba(0,0,0,.3)}
.ontriathlonapi-pwa-panel h2{font-size:1.25rem;margin:0 2rem .5rem 0}.ontriathlonapi-pwa-close{position:absolute;right:.75rem;top:.5rem;border:0;background:transparent;font-size:1.75rem}.ontriathlonapi-pwa-types{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin:1rem 0}.ontriathlonapi-pwa-types label,.ontriathlonapi-pwa-quiet label{display:flex;gap:.4rem;align-items:center}.ontriathlonapi-pwa-quiet{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.ontriathlonapi-pwa-actions{display:flex;gap:.5rem;flex-wrap:wrap}.ontriathlonapi-pwa-actions button{border:0;border-radius:.45rem;background:#0d6efd;color:#fff;padding:.55rem .8rem}.ontriathlonapi-pwa-actions .secondary{background:#6c757d}.ontriathlonapi-pwa-status{font-size:.875rem;margin:.75rem 0 0}
.ontriathlonapi-pwa-install{padding:.75rem;border-radius:.65rem;background:#eef5ff;margin:.75rem 0}.ontriathlonapi-pwa-install button{border:0;background:transparent;color:#0d6efd;font-weight:700;padding:0}
@media(max-width:480px){.ontriathlonapi-pwa-types{grid-template-columns:1fr}.ontriathlonapi-pwa-button{right:.65rem;bottom:.65rem}}
