.pwa-get-app-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.45rem 1.1rem;border-radius:8px;border:1.5px solid rgba(13,148,136,.35);background:rgba(13,148,136,.08);color:var(--teal,#0d9488);font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .2s ease;white-space:nowrap}.pwa-get-app-btn:hover{background:rgba(13,148,136,.14);border-color:rgba(13,148,136,.55);transform:translateY(-1px)}html.dark .pwa-get-app-btn{color:#5eead4;border-color:rgba(45,212,191,.35);background:rgba(45,212,191,.08)}html.dark .pwa-get-app-btn:hover{background:rgba(45,212,191,.14);border-color:rgba(45,212,191,.55)}html.pwa-install-banner-visible{--pwa-install-banner-height:calc(2.375rem + env(safe-area-inset-top, 0px))}.pwa-install-top-banner{position:fixed;top:0;left:0;right:0;z-index:10035;display:flex;align-items:center;justify-content:center;gap:.35rem;width:100%;height:var(--pwa-install-banner-height);box-sizing:border-box;padding:env(safe-area-inset-top,0) max(1rem,env(safe-area-inset-right)) 0 max(1rem,env(safe-area-inset-left));cursor:pointer;font-family:inherit;font-size:.8125rem;font-weight:600;letter-spacing:.02em;color:#fafffe;background:linear-gradient(90deg,#0f766e,#0d9488 48%,#0f9488);border:none;border-bottom:1px solid hsla(0,0%,100%,.14);box-shadow:0 1px 0 rgba(15,23,42,.06);-webkit-tap-highlight-color:transparent;transition:filter .15s ease}.pwa-install-top-banner:active{filter:brightness(.94)}.pwa-install-top-banner-label{line-height:1}.pwa-install-top-banner-icon{flex-shrink:0;opacity:.95}html.dark .pwa-install-top-banner{background:linear-gradient(90deg,#0f172a,#134e4a 52%,#0d9488);border-bottom-color:rgba(45,212,191,.18)}@media (max-width:768px){html.pwa-install-banner-visible body{padding-top:var(--pwa-install-banner-height)}html.pwa-install-banner-visible .offline-banner{top:var(--pwa-install-banner-height)}}.pwa-modal-root{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}.pwa-modal-backdrop{position:absolute;inset:0;border:none;background:rgba(15,23,42,.62);backdrop-filter:blur(4px);cursor:pointer}.pwa-modal{position:relative;width:min(100%,420px);max-height:min(92vh,720px);overflow:auto;border-radius:20px;padding:1.75rem 1.5rem 1.5rem;background:linear-gradient(165deg,#fff,#f8fafc);box-shadow:0 24px 60px rgba(15,23,42,.22),0 0 0 1px rgba(13,148,136,.08);animation:pwa-modal-in .28s ease-out}html.dark .pwa-modal{background:linear-gradient(165deg,#1e293b,#0f172a);box-shadow:0 24px 60px rgba(0,0,0,.45),0 0 0 1px rgba(45,212,191,.12)}@keyframes pwa-modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.pwa-modal-close{position:absolute;top:.85rem;right:.85rem;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:999px;background:rgba(15,23,42,.06);color:var(--text-secondary,#64748b);cursor:pointer}html.dark .pwa-modal-close{background:hsla(0,0%,100%,.08);color:rgba(248,250,252,.75)}.pwa-modal-icon-wrap{display:flex;justify-content:center;margin-bottom:1rem}.pwa-modal-icon{border-radius:18px;box-shadow:0 10px 28px rgba(15,23,42,.18)}.pwa-modal-title{margin:0 0 .5rem;text-align:center;font-size:1.35rem;font-weight:700;color:var(--midnight,#0f172a);letter-spacing:-.02em}html.dark .pwa-modal-title{color:#f8fafc}.pwa-modal-desc{margin:0 0 1.25rem;text-align:center;font-size:.95rem;line-height:1.55;color:var(--text-secondary,#64748b)}html.dark .pwa-modal-desc{color:rgba(226,232,240,.82)}.pwa-modal-manual-steps{display:flex;flex-direction:column;gap:.65rem;margin-bottom:1.35rem;padding:.85rem 1rem;border-radius:12px;background:rgba(13,148,136,.06);border:1px solid rgba(13,148,136,.12)}html.dark .pwa-modal-benefits,html.dark .pwa-modal-manual-steps{background:rgba(45,212,191,.06);border-color:rgba(45,212,191,.14)}.pwa-modal-benefits{margin-bottom:1.35rem;padding:.85rem 1rem;border-radius:12px;background:rgba(13,148,136,.06);border:1px solid rgba(13,148,136,.12)}.pwa-modal-actions,.pwa-modal-benefits{display:flex;flex-direction:column;gap:.65rem}.pwa-modal-btn{width:100%;padding:.85rem 1rem;border-radius:10px;border:none;font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .2s ease,transform .2s ease}.pwa-modal-btn-primary{background:var(--teal,#0d9488);color:#fafffe}.pwa-modal-btn-primary:hover{background:var(--teal-dark,#0f766e)}.pwa-modal-btn-primary:disabled{opacity:.72;cursor:wait}.pwa-modal-btn-secondary{background:transparent;color:var(--text-secondary,#64748b);border:1.5px solid rgba(100,116,139,.28)}html.dark .pwa-modal-btn-secondary{color:rgba(226,232,240,.85);border-color:rgba(148,163,184,.35)}.pwa-modal-btn-secondary:hover{background:rgba(15,23,42,.04)}html.dark .pwa-modal-btn-secondary:hover{background:hsla(0,0%,100%,.05)}.pwa-modal-benefit,.pwa-modal-manual-step{display:flex;align-items:flex-start;gap:.65rem;font-size:.88rem;line-height:1.45;color:var(--text-primary,#334155)}html.dark .pwa-modal-benefit,html.dark .pwa-modal-manual-step{color:rgba(226,232,240,.92)}.pwa-modal-benefit-dot{width:.45rem;height:.45rem;margin-top:.45rem}.pwa-modal-benefit-dot,.pwa-modal-manual-step-num{border-radius:999px;background:var(--teal,#0d9488);flex-shrink:0}.pwa-modal-manual-step-num{display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;color:#fafffe;font-size:.75rem;font-weight:700}.pwa-modal-inline-icon{display:inline-block;vertical-align:-.15em;margin:0 .1rem}@media (max-width:480px){.pwa-modal{width:100%;border-radius:16px;padding:1.5rem 1.15rem 1.15rem}.pwa-modal-title{font-size:1.2rem}}.pwa-install-success{position:fixed;bottom:max(1.25rem,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:10060;display:flex;align-items:center;gap:.75rem;width:min(calc(100vw - 2rem),420px);padding:.85rem 1rem;border-radius:14px;background:linear-gradient(135deg,#0f766e,#0d9488);color:#fafffe;box-shadow:0 12px 40px rgba(15,23,42,.22);animation:pwa-success-in .32s ease-out}html.dark .pwa-install-success{background:linear-gradient(135deg,#134e4a,#0d9488);box-shadow:0 12px 40px rgba(0,0,0,.4)}.pwa-install-success-icon{flex-shrink:0;color:#ecfdf5}.pwa-install-success-text{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0;font-size:.85rem;line-height:1.35}.pwa-install-success-text strong{font-size:.92rem}.pwa-install-success-close{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:none;border-radius:999px;background:hsla(0,0%,100%,.16);color:#fafffe;cursor:pointer}@keyframes pwa-success-in{0%{opacity:0;transform:translateX(-50%) translateY(12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:10040;padding:max(.65rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) .65rem max(1rem,env(safe-area-inset-left));animation:offline-banner-in .25s ease-out}.offline-banner--offline{background:linear-gradient(180deg,#7f1d1d,#991b1b);color:#fef2f2}.offline-banner--online{background:linear-gradient(180deg,#065f46,#047857);color:#ecfdf5}.offline-banner-inner{max-width:1100px;margin:0 auto;display:flex;align-items:flex-start;gap:.65rem}.offline-banner-text{display:flex;flex-direction:column;gap:.15rem;font-size:.85rem;line-height:1.4}.offline-banner-text strong{font-size:.92rem}@keyframes offline-banner-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){.offline-banner-text span{font-size:.8rem}}