html[data-app-loading] body{opacity:0!important;pointer-events:none}html[data-app-ready] body{opacity:1;transition:opacity .25s ease}body.app-mode,html[data-app-loading],html[data-app-ready]{overflow:hidden;height:100%;width:100%}body.app-mode{position:fixed;top:0;left:0}body.app-mode iframe,body.app-mode img,body.app-mode video{max-width:100%;height:auto}body.app-mode{--background:#0f1a13;--foreground:#e2f0e8;--card:#1a2820;--card-foreground:#e2f0e8;--border:#2a4035;--muted:#1e2f25;--muted-foreground:#74c69d;--primary:#52b788;--primary-foreground:#fff;background-color:#0f1a13;color:#e2f0e8;color-scheme:dark}body.app-mode nav{display:none!important}body.app-mode main.main-pt-safe{padding-top:env(safe-area-inset-top,0)!important;padding-bottom:calc(max(89px, 5.5625rem) + env(safe-area-inset-bottom, 0px))!important;overflow:hidden;height:100dvh;display:flex;flex-direction:column}body.app-mode main.main-pt-safe .app-page-scroll{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}body.app-mode .h-map-safe{height:calc(100dvh - env(safe-area-inset-top, 0px) - max(89px, 5.5625rem) - env(safe-area-inset-bottom, 0px))!important}body.app-mode .leaflet-container{width:100%!important;height:100%!important}.app-splash{position:fixed;inset:0;z-index:9999;background:#0f1a13;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;transition:opacity .45s ease}.app-splash.hiding{opacity:0;pointer-events:none}.app-splash-logo{width:96px;height:96px;border-radius:22px;overflow:hidden;box-shadow:0 8px 32px rgba(82,183,136,.35);animation:splash-pop .55s cubic-bezier(.34,1.56,.64,1) both}.app-splash-logo img{width:100%;height:100%;object-fit:cover}.app-splash-title{font-size:1.6rem;font-weight:800;color:#52b788;letter-spacing:-.5px;animation:splash-fadein .5s ease .2s both}.app-splash-subtitle{font-size:.8rem;color:#4a7c59;letter-spacing:.08em;text-transform:uppercase;animation:splash-fadein .5s ease .35s both}@keyframes splash-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}@keyframes splash-fadein{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app-login-gate{position:fixed;inset:0;z-index:9998;background:#0f1a13;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top, 0px) + 24px) 24px calc(env(safe-area-inset-bottom, 0px) + 24px);overflow-y:auto}.app-bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:200;padding-top:max(28px,1.75rem);padding-bottom:max(env(safe-area-inset-bottom,0px),max(14px,.875rem));background:transparent;display:flex;align-items:flex-end;pointer-events:none}.app-bottom-nav-bg{position:absolute;inset:0;background:#192519;border-top:1px solid rgba(82,183,136,.12);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);pointer-events:auto}.app-bottom-nav-wave{position:absolute;top:-1px;left:0;right:0;height:32px;pointer-events:none;overflow:visible}.app-bottom-nav-wave path{fill:#192519;transition:d .35s cubic-bezier(.34,1.1,.64,1)}.app-bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;padding-bottom:max(4px,.25rem);min-height:max(58px,3.625rem);border:none;background:transparent;cursor:pointer;text-decoration:none;color:#4a7c59;transition:color .25s ease;-webkit-tap-highlight-color:transparent;user-select:none;position:relative;pointer-events:auto}.app-bottom-nav-item:active{transform:scale(.92);transition:transform .1s ease}.app-bottom-nav-item.active{color:#52b788}.app-bottom-nav-item .bubble-icon-wrap{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:transparent;transition:transform .4s cubic-bezier(.34,1.3,.64,1),background .25s ease,box-shadow .25s ease}.app-bottom-nav-item.active .bubble-icon-wrap{background:#52b788;color:#0f1a13!important;transform:translateY(-20px);box-shadow:0 8px 24px rgba(82,183,136,.5),0 2px 8px rgba(0,0,0,.3)}.app-bottom-nav-item.active .bubble-icon-wrap svg{color:#0f1a13}.app-bottom-nav-item.active .app-bottom-nav-label{margin-top:-12px;color:#52b788;font-weight:700}.app-bottom-nav-label{font-size:clamp(9px,.625rem,12px);font-weight:600;letter-spacing:.01em;line-height:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:margin-top .4s cubic-bezier(.34,1.3,.64,1),color .25s ease}.app-bottom-nav-item.add-tab .bubble-icon-wrap{background:rgba(82,183,136,.14);color:#74c69d;border:1px solid rgba(82,183,136,.22)}.app-bottom-nav-item.add-tab:active .bubble-icon-wrap{background:rgba(82,183,136,.26);transform:scale(.9)}body.app-mode .bg-white{background-color:var(--card)!important;color:var(--card-foreground)!important}body.app-mode .bg-gray-100,body.app-mode .bg-gray-200,body.app-mode .bg-gray-50{background-color:var(--background)!important}body.app-mode .border-gray-100,body.app-mode .border-gray-200{border-color:var(--border)!important}body.app-mode .text-black,body.app-mode .text-gray-800,body.app-mode .text-gray-900{color:var(--foreground)!important}body.app-mode .text-gray-400,body.app-mode .text-gray-500,body.app-mode .text-gray-600{color:var(--muted-foreground)!important}body.app-mode .leaflet-container{background:#e8f0e8!important}body.app-mode .card-hover{box-shadow:0 2px 12px rgba(0,0,0,.45)}body.app-mode .card-hover:active{transform:scale(.985);box-shadow:0 1px 6px rgba(0,0,0,.3);transition:transform .12s ease,box-shadow .12s ease}body.app-mode button.rounded-full.border{background-color:var(--card)!important;border-color:var(--border)!important;color:var(--muted-foreground)!important}body.app-mode .columns-2{column-gap:8px}body.app-mode .columns-2>*{margin-bottom:8px}body.app-mode .upload-hint-web{display:none!important}body.app-mode .upload-hint-app{display:block!important}.upload-hint-app{display:none}