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{--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(84px + env(safe-area-inset-bottom, 0px))!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:88px;height:88px;background:linear-gradient(135deg,#2d6a4f,#52b788);border-radius:22px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 32px rgba(82,183,136,.35);animation:splash-pop .55s cubic-bezier(.34,1.56,.64,1) both}.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;background:#1a2820;border-top:1px solid #2a4035;display:flex;align-items:flex-start;padding-top:10px;padding-bottom:max(env(safe-area-inset-bottom,0px),16px);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.app-bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:4px 0;min-height:56px;border:none;background:transparent;cursor:pointer;text-decoration:none;color:#4a7c59;transition:color .15s ease;-webkit-tap-highlight-color:transparent;user-select:none}.app-bottom-nav-item:active{transform:scale(.93);transition:transform .1s ease}.app-bottom-nav-item.active{color:#52b788}.app-bottom-nav-label{font-size:10px;font-weight:600;letter-spacing:.01em;line-height:1}.app-bottom-nav-item.add-btn{flex:0 0 64px;margin:-14px 4px 0}.app-bottom-nav-item.add-btn .add-circle{width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,#2d6a4f,#52b788);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 18px rgba(45,106,79,.55);transition:box-shadow .2s ease,transform .15s ease}.app-bottom-nav-item.add-btn:active .add-circle{transform:scale(.92);box-shadow:0 2px 8px rgba(45,106,79,.3)}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-tile-pane{filter:invert(100%) hue-rotate(180deg) brightness(90%) contrast(85%) saturate(.75)}body.app-mode .leaflet-marker-pane>*,body.app-mode .leaflet-overlay-pane>svg,body.app-mode .leaflet-popup-pane{filter:invert(100%) hue-rotate(180deg)}body.app-mode .leaflet-container{background:#1a2820!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}