:root{--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px)}.pwa-safe-top{padding-top:var(--sat)}.pwa-safe-bottom{padding-bottom:var(--sab)}.pwa-safe-x{padding-inline-start:var(--sal);padding-inline-end:var(--sar)}.pwa-safe-all{padding-top:var(--sat);padding-bottom:var(--sab);padding-inline-start:var(--sal);padding-inline-end:var(--sar)}.pwa-standalone .app-screen{padding-top:var(--sat);padding-bottom:var(--sab)}.pwa-standalone body{overscroll-behavior-y:none}.pwa-ios{-webkit-overflow-scrolling:touch}.pwa-ios.pwa-standalone{--header-safe-pad:max(var(--sat),16px)}@supports (-webkit-touch-callout:none){.pwa-standalone .app-screen{min-height:100vh;min-height:-webkit-fill-available}}.pwa-android{-webkit-tap-highlight-color:transparent}[role=button],a,button{-webkit-tap-highlight-color:rgba(15,107,88,.1);touch-action:manipulation}.pwa-standalone{-webkit-user-select:none;-moz-user-select:none;user-select:none}.pwa-standalone [contenteditable],.pwa-standalone h1,.pwa-standalone h2,.pwa-standalone h3,.pwa-standalone h4,.pwa-standalone h5,.pwa-standalone h6,.pwa-standalone input,.pwa-standalone p,.pwa-standalone textarea{-webkit-user-select:text;-moz-user-select:text;user-select:text}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}.pwa-pull-indicator{position:fixed;top:var(--sat);insetInline:0;height:50px;display:flex;align-items:center;justify-content:center;background:var(--emerald-soft);color:var(--emerald);font-size:12px;font-weight:800;z-index:998;transform:translateY(-100%);transition:transform .3s ease}.pwa-pull-indicator.visible{transform:translateY(0)}@media (prefers-reduced-motion:reduce){.animate-pulse,.animate-spin{animation:none!important}}.pwa-standalone .scr-header-v2{padding-top:max(var(--sat),12px)}.bottom-nav{padding-bottom:max(var(--sab),8px)}.fab-floating{bottom:max(calc(70px + var(--sab)),80px)}.pwa-splash{position:fixed;inset:0;background:var(--emerald);color:var(--paper-3);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:99998;animation:pwa-splash-fade .3s ease}@keyframes pwa-splash-fade{0%{opacity:0}to{opacity:1}}.pwa-splash-logo{width:100px;height:100px;background:#fff;border-radius:24px;display:flex;align-items:center;justify-content:center;font-size:56px;margin-bottom:24px;animation:pwa-splash-pulse 1.5s ease-in-out infinite}@keyframes pwa-splash-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@media (hover:none){[role=button]:active,a:active,button:active{transform:scale(.97);transition:transform .1s ease}}.pwa-standalone .scrollable-area::-webkit-scrollbar{display:none}.pwa-standalone .scrollable-area{-ms-overflow-style:none;scrollbar-width:none}.pwa-standalone :focus-visible{outline:2px solid var(--emerald);outline-offset:2px;border-radius:4px}.status-bar-overlay{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}:focus{outline:none}:focus-visible{outline:2px solid var(--emerald);outline-offset:2px;border-radius:4px}[role=button]:focus-visible,a:focus-visible,button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--paper-3),0 0 0 5px var(--emerald)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--emerald);box-shadow:0 0 0 3px rgba(15,107,88,.15)}.skip-link{position:absolute;top:-100px;insetInlineStart:12px;background:var(--emerald);color:var(--paper-3);padding:10px 16px;border-radius:8px;font-weight:800;text-decoration:none;z-index:99999;transition:top .2s ease}.skip-link:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[role=tab]:focus-visible{outline:2px solid var(--emerald);outline-offset:2px}[role=dialog] :focus-visible{outline:2px solid var(--emerald);outline-offset:2px}@media (prefers-contrast:more){:root{--line:#888;--ink-3:#555}a,button,input,select,textarea{border-width:2px!important}}@media (pointer:coarse){[role=button],a,button{min-height:44px;min-width:44px}}[dir=rtl] .skip-link{insetInlineStart:12px}