@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Sora:wght@600;700;800;900&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}*{-webkit-tap-highlight-color:transparent}html,body,#root{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,select,[contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}:root{--maroon:#8b0d3d;--maroon-deep:#6e0a30;--maroon-darkest:#48061f;--maroon-bright:#a5124a;--maroon-rose:#b01650;--maroon-ink:#6b0b2c;--maroon-tint:#fae8ef;--maroon-wash:#fdf0f5;--indigo:var(--maroon);--violet-light:var(--maroon-tint);--rose:#e11d48;--rose-light:#fff1f4;--emerald:#10b981;--emerald-light:#d1fae5;--sos:#c8102e;--sos-deep:#a30e2b;--sos-dark:#6e0a1e;--sos-light:#fceef1;--grad-sos:linear-gradient(135deg, #d81b3c 0%, #a30e2b 100%);--gold:#d4af37;--gold-soft:#d4af3773;--blue:var(--maroon);--blue-light:var(--maroon-tint);--red:#e11d48;--red-light:#fff1f4;--bg:#fff8f0;--bg2:#f8f0f3;--surface3:#f8f0f3;--border:#ece0e5;--border2:#dcc9d2;--text:#2a0a18;--text2:#4a1226;--muted:#7d5a67;--muted2:#836370;--muted3:#c7b3bc;--muted-soft:#8a5c6b;--grad-hero:linear-gradient(145deg, var(--maroon) 0%, var(--maroon-deep) 55%, var(--maroon-darkest) 100%);--grad-card:linear-gradient(160deg, #fff 0%, #fffcf8 100%);--grad-gold:linear-gradient(90deg, #e6c866 0%, #d4af37 50%, #b8912a 100%);--grad-maroon:linear-gradient(135deg, var(--maroon) 0%, var(--maroon-deep) 100%);--grad-emerald:linear-gradient(135deg, #059669 0%, #047857 100%);--grad-message:linear-gradient(135deg, var(--maroon) 0%, var(--maroon-bright) 100%);--shadow-xs:0 1px 2px #3a22140d, 0 2px 6px #3a22140d;--shadow-sm:0 1px 2px #3a22140f, 0 4px 10px #3a221412, 0 10px 24px #3a22140d;--shadow:0 1px 2px #3a221412, 0 6px 16px #3a221417, 0 18px 40px #3a221414;--shadow-md:0 2px 4px #3a221414, 0 10px 24px #3a22141c, 0 26px 56px #3a22141a;--shadow-xl:0 4px 10px #1e0e081f, 0 24px 56px #1e0e0833, 0 56px 120px #1e0e0838;--inset-top:inset 0 1px 0 #ffffffeb;--radius-sm:12px;--radius:16px;--radius-lg:22px;--radius-xl:28px;--radius-2xl:36px;--ease:cubic-bezier(.22, 1, .36, 1)}body{color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(at 30% 20%,#3a0619 0%,#0e0308 55%,#060104 100%) fixed;min-height:100vh;font-family:Inter,sans-serif}.app-shell{background:var(--bg);flex-direction:column;max-width:430px;height:100vh;margin:0 auto;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 1px #d4af371f,0 40px 130px #14040aa6,0 0 80px #8b0d3d14}html.native-map-open,html.native-map-open body,html.native-map-open #root,html.native-map-open .app-shell{box-shadow:none!important;background:0 0!important}.splash{letter-spacing:.3px;height:100vh;color:var(--maroon);background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:18px;font-size:.95rem;font-weight:600;display:flex;position:relative;overflow:hidden}.splash:before{content:"";width:110px;height:110px;animation:seal-breathe 2.6s var(--ease) infinite;background:url(/assets/famora-logo-Dqd1N8Wv.jpg) 50%/cover no-repeat;border-radius:22px;box-shadow:0 12px 32px #4a082038}@keyframes seal-breathe{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-5px)scale(1.04)}}.auth-page,.onboard-page,.add-member-page{background:var(--grad-hero);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.auth-page:before,.onboard-page:before{content:"";pointer-events:none;width:500px;height:500px;animation:drift 18s var(--ease) infinite alternate;background:radial-gradient(circle,#c0185a38 0%,#0000 70%);border-radius:50%;position:absolute;top:-160px;right:-130px}.auth-page:after{content:"";pointer-events:none;width:380px;height:380px;animation:drift 22s var(--ease) infinite alternate-reverse;background:radial-gradient(circle,#d4af371f 0%,#0000 70%);border-radius:50%;position:absolute;bottom:-120px;left:-80px}@keyframes drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(30px,28px)scale(1.1)}}.auth-card,.onboard-card,.add-member-card{-webkit-backdrop-filter:blur(40px)saturate(1.2);border-radius:var(--radius-2xl);z-index:1;width:100%;max-width:400px;box-shadow:var(--shadow-xl), 0 0 0 1px #ffffffb3, inset 0 1px 0 #fff, inset 0 0 0 1px #d4af372e;background:#fffffffa;padding:48px 38px;position:relative}.auth-card:before,.onboard-card:before{content:"";background:var(--grad-gold);opacity:.9;border-radius:2px;height:2.5px;position:absolute;top:0;left:18%;right:18%}.onboard-card{padding:40px 34px}.add-member-card{max-height:92vh;padding:36px 32px;overflow-y:auto}.add-member-card::-webkit-scrollbar{width:0}.auth-logo{background:var(--maroon-wash);width:84px;height:84px;color:var(--maroon);border:1.5px solid #f0d8e2;border-radius:24px;justify-content:center;align-items:center;margin:0 auto 20px;line-height:1;display:flex;position:relative}.auth-logo.auth-logo-brand{background:0 0;border:none;width:auto;height:auto}.auth-title{text-align:center;letter-spacing:-.8px;background:var(--grad-maroon);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:6px;font-family:Sora,sans-serif;font-size:30px;font-weight:900;line-height:1.3}.auth-subtitle,.auth-sub{text-align:center;color:var(--muted);margin-bottom:32px;font-size:14px;font-weight:500;line-height:1.5}.form-group{margin-bottom:16px}.form-group label{color:var(--muted);letter-spacing:.2px;margin-bottom:6px;font-size:12px;font-weight:600;line-height:1.5;display:block}.input-group{margin-bottom:16px}.input-label{color:var(--muted);letter-spacing:.2px;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.input{border:1.5px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);background:var(--surface3);transition:all .22s var(--ease);outline:none;padding:14px 18px;font-family:inherit;font-size:15px}.input:focus{border-color:var(--indigo);box-shadow:0 0 0 4px #8b0d3d1a, var(--shadow-sm);background:#fff;transform:translateY(-1px)}.input::placeholder{color:var(--muted2);font-weight:400}.btn{border-radius:var(--radius);cursor:pointer;width:100%;transition:all .22s var(--ease);letter-spacing:.3px;isolation:isolate;border:none;padding:16px;font-family:inherit;font-size:15px;font-weight:700;line-height:1.5;position:relative;overflow:hidden}.btn:active{transform:scale(.975)}.btn:disabled{opacity:.48;cursor:not-allowed;transform:none}.btn-primary{background:var(--grad-maroon);color:#fff;box-shadow:inset 0 1.5px #ffffff38,inset 0 0 0 1px #d4af372e}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:inset 0 1.5px #ffffff40,inset 0 0 0 1px #d4af3738}.btn-primary:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff26,#0000);width:60%;height:100%;transition:none;position:absolute;top:0;left:-80%;transform:skew(-20deg)}.btn-primary:hover:not(:disabled):after{animation:shimmer-sweep .9s var(--ease) forwards}@keyframes shimmer-sweep{0%{left:-80%}to{left:140%}}.btn-danger{color:#fff;background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:inset 0 1px #fff3,0 6px 22px #dc262666}.btn-outline{border:1.5px solid var(--border2);color:var(--text2);background:#8b0d3d08}.btn-outline:hover:not(:disabled){border-color:var(--indigo);color:var(--indigo);background:var(--violet-light);transform:translateY(-1px)}.auth-link{text-align:center;color:var(--muted);margin-top:22px;font-size:14px;font-weight:500}.auth-link a{color:var(--indigo);font-weight:700;text-decoration:none;transition:opacity .15s}.auth-link a:hover{opacity:.75}.error-msg{background:var(--rose-light);color:var(--rose);border-radius:var(--radius-sm);animation:errShake .35s var(--ease);border:1px solid #f43f5e33;align-items:center;gap:10px;margin-bottom:16px;padding:13px 16px;font-size:13px;font-weight:600;display:flex}.error-msg:before{content:"⚠️";flex-shrink:0;font-size:16px}@keyframes errShake{0%{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}to{transform:translate(0)}}.top-bar{background:var(--grad-hero);box-sizing:border-box;flex-shrink:0;justify-content:space-between;align-items:center;min-height:60px;padding:0 20px;display:flex;position:relative;overflow:hidden}.top-bar:before{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff12 0%,#0000 70%);border-radius:50%;width:260px;height:260px;position:absolute;top:-110px;right:-60px}.top-bar:after{content:"";background:var(--grad-gold);opacity:.75;pointer-events:none;height:1.5px;position:absolute;bottom:0;left:0;right:0}.top-bar-title{color:#fff;letter-spacing:-.3px;z-index:1;font-family:Sora,sans-serif;font-size:18px;font-weight:800;position:relative}.top-bar-sub{color:#ffffff8c;z-index:1;margin-top:2px;font-size:11.5px;font-weight:500;position:relative}.icon-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:38px;height:38px;transition:all .22s var(--ease);z-index:1;background:#ffffff1a;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;font-size:16px;display:flex;position:relative}.icon-btn:hover{border-color:var(--gold-soft);background:#ffffff2e;transform:translateY(-1px)}.page-content,.page{flex:1;padding:18px 16px;overflow-y:auto}.page-content::-webkit-scrollbar{width:0}.page::-webkit-scrollbar{width:0}.page-title{color:var(--text);letter-spacing:-.5px;margin-bottom:16px;padding:4px 2px 0;font-family:Sora,sans-serif;font-size:22px;font-weight:800}.bottom-nav{-webkit-backdrop-filter:blur(28px)saturate(1.6);padding:10px 8px calc(env(safe-area-inset-bottom,10px) + 6px);box-shadow:0 -12px 40px #14040a17, 0 -1px 0 var(--border);background:#ffffffeb;border-top:1px solid #8b0d3d0f;flex-shrink:0;display:flex;position:relative}.bottom-nav:before{content:"";background:var(--grad-gold);opacity:.5;height:1px;position:absolute;top:0;left:10%;right:10%}.nav-item{cursor:pointer;color:var(--muted);transition:all .22s var(--ease);letter-spacing:.1px;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:4px 2px;font-family:inherit;font-size:11px;font-weight:600;text-decoration:none;display:flex}.nav-item.active{color:var(--indigo)}.nav-item.active .nav-icon-wrap{background:#8b0d3d17;border-radius:16px;box-shadow:inset 0 0 0 1px #d4af3759,0 4px 16px #8b0d3d33}.nav-icon-wrap{transition:all .22s var(--ease);border-radius:16px;padding:6px 18px}.nav-item.active .nav-icon{transform:translateY(-1px)}.nav-icon{transition:transform .22s var(--ease);font-size:22px;line-height:1;display:block}.member-card{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:var(--grad-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffffe6;cursor:pointer;transition:all .24s var(--ease);border:1.5px solid var(--maroon);align-items:center;gap:14px;margin-bottom:10px;padding:15px 16px;display:flex;position:relative;overflow:hidden}.member-card:after{content:"";opacity:0;transition:opacity .22s var(--ease);pointer-events:none;background:linear-gradient(135deg,#8b0d3d08 0%,#0000 60%);position:absolute;inset:0}.member-card:hover{box-shadow:var(--shadow-md);border-color:var(--maroon);transform:translateY(-3px)}.member-card:hover:after{opacity:1}.member-card:active{box-shadow:var(--shadow-sm);transform:scale(.985)}.member-card.is-online{border-color:var(--maroon);box-shadow:0 1px 2px #3a22140f, 0 6px 16px #3a22141a, 0 20px 44px #3a221417, var(--inset-top);background:linear-gradient(162deg,#fff 0%,#fffdf8 100%)}.member-card.is-online:hover{border-color:var(--maroon);box-shadow:0 2px 4px #3a221414, 0 12px 26px #3a221421, 0 30px 62px #3a22141c, var(--inset-top)}.member-card.is-offline{box-shadow:var(--shadow-xs), inset 0 1px 0 #ffffffb3;background:linear-gradient(162deg,#fffcf9 0%,#f9f3f0 100%)}.member-card.is-offline:hover{box-shadow:var(--shadow-sm), var(--inset-top);transform:translateY(-2px)}.avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-family:Sora,sans-serif;font-size:21px;font-weight:800;display:flex;position:relative;box-shadow:inset 0 2px 4px #ffffff59,inset 0 -3px 6px #00000024,0 6px 20px #00000038}.member-info{z-index:2;flex:1;min-width:0;position:relative}.member-name{letter-spacing:-.2px;font-size:15px;font-weight:700;color:var(--text)!important}.member-meta{white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:12px;font-weight:600;overflow:hidden;color:var(--muted)!important}.status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.status-online{background:#10b981!important;box-shadow:0 0 0 3px #10b98138,0 0 10px #10b9818c!important}.status-offline{background:var(--border2)}.section-title{color:var(--muted);letter-spacing:.3px;margin:4px 0 12px;font-size:12px;font-weight:700}.settings-card{background:var(--grad-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffffe6;border:1.5px solid var(--maroon);transition:box-shadow .22s var(--ease), transform .22s var(--ease);margin-bottom:12px;padding:18px 20px}.settings-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.overlay{-webkit-backdrop-filter:blur(12px);z-index:100;background:#14040aa6;justify-content:center;align-items:flex-end;animation:.22s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.popup{width:100%;max-width:430px;animation:slideUp .32s var(--ease);-webkit-overflow-scrolling:touch;background:#fff;border-radius:38px 38px 0 0;max-height:88vh;padding:6px 22px 44px;position:relative;overflow-y:auto;box-shadow:0 -16px 64px #14040a47,inset 0 1.5px #fff}.popup:before{content:"";background:var(--grad-gold);opacity:.85;border-radius:2px;height:2px;position:absolute;top:0;left:28%;right:28%}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.popup-handle{background:var(--border2);border-radius:2px;width:44px;height:4px;margin:14px auto 24px}.popup-header{border-bottom:1px solid var(--border);align-items:center;gap:16px;margin-bottom:24px;padding-bottom:20px;display:flex}.popup-name{color:var(--text);letter-spacing:-.4px;font-family:Sora,sans-serif;font-size:19px;font-weight:800}.popup-meta{color:var(--muted);margin-top:4px;font-size:13px;font-weight:500}.popup-actions{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.action-btn{cursor:pointer;transition:all .2s var(--ease);letter-spacing:.2px;border:1.5px solid #fff9;border-radius:20px;flex-direction:column;align-items:center;gap:10px;padding:18px 8px;font-family:inherit;font-size:12px;font-weight:700;display:flex}.action-btn:hover{box-shadow:var(--shadow-sm);transform:translateY(-3px)}.action-btn:active{transform:scale(.93)}.action-btn .action-icon{font-size:28px}.action-btn.location{background:var(--maroon-tint);color:var(--maroon);box-shadow:0 4px 16px #8b0d3d1a}.action-btn.message{color:#047857;background:#ecfdf5;box-shadow:0 4px 16px #065f461a}.action-btn.sos{background:var(--sos-light);color:var(--sos-deep);box-shadow:0 4px 16px #c8102e24}.map-page{flex-direction:column;flex:1;display:flex;overflow:hidden}.leaflet-container{width:100%!important;height:100%!important}.map-member-info{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--border);background:#fffffff5;flex-shrink:0;align-items:center;gap:12px;padding:14px 20px;display:flex;box-shadow:0 -8px 28px #14040a12}.map-member-name{color:var(--text);font-size:15px;font-weight:700}.map-member-time{color:var(--muted);margin-top:2px;font-size:12px}.alert-card{background:var(--grad-card);border-radius:var(--radius-lg);border-left:3.5px solid var(--sos);box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffffe6;transition:all .22s var(--ease);margin-bottom:12px;padding:18px}.alert-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.alert-card.resolved{border-left-color:var(--emerald);opacity:.6}.alert-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.alert-name{color:var(--text);font-size:14px;font-weight:700}.badge{letter-spacing:.2px;border-radius:20px;padding:5px 12px;font-size:11px;font-weight:700}.badge-active{background:var(--sos-light);color:var(--sos-deep);box-shadow:inset 0 0 0 1px #c8102e38}.badge-resolved{background:var(--emerald-light);color:#047857;box-shadow:inset 0 0 0 1px #10b98133}.alert-message{color:var(--text2);margin-bottom:8px;font-size:14px;font-weight:600}.alert-meta{color:var(--muted);font-size:12px;font-weight:500;line-height:1.9}.resolve-btn{background:var(--grad-maroon);color:#fff;cursor:pointer;width:100%;transition:all .22s var(--ease);border:none;border-radius:12px;margin-top:14px;padding:11px 16px;font-family:inherit;font-size:13px;font-weight:700;box-shadow:inset 0 1px #fff3,0 4px 16px #8b0d3d4d}.resolve-btn:hover{transform:translateY(-1px);box-shadow:0 6px 22px #8b0d3d6b}.empty-state{text-align:center;color:var(--muted);padding:60px 20px}.empty-emoji{filter:drop-shadow(0 8px 20px #8b0d3d29);animation:seal-breathe 3.4s var(--ease) infinite;margin-bottom:18px;font-size:62px}.empty-art{filter:drop-shadow(0 8px 20px #8b0d3d29);animation:seal-breathe 3.4s var(--ease) infinite;margin:0 auto 18px;display:block}.empty-text{color:var(--text2);letter-spacing:-.3px;margin-bottom:8px;font-size:17px;font-weight:800}.empty-sub{font-size:13.5px;font-weight:500;line-height:1.55}.skeleton{background:linear-gradient(90deg,#f0e4e9 25%,#faf3f6 50%,#f0e4e9 75%) 0 0/200% 100%;border-radius:8px;animation:1.5s ease-in-out infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{border-radius:var(--radius-lg);border:1.5px solid var(--border);box-shadow:var(--shadow-xs);background:#fff;align-items:center;gap:14px;margin-bottom:10px;padding:14px 16px;display:flex}.skeleton-avatar{border-radius:50%;flex-shrink:0;width:52px;height:52px}.skeleton-line{border-radius:6px;height:12px;margin-bottom:8px}.skeleton-msg{background:#fff;border-radius:18px;margin-bottom:10px;padding:12px 16px}.invite-card{background:var(--grad-hero);border-radius:var(--radius-xl);text-align:center;cursor:pointer;transition:all .26s var(--ease);margin-bottom:20px;padding:26px;position:relative;overflow:hidden;box-shadow:inset 0 1.5px #ffffff38,inset 0 0 0 1px #d4af3740,0 16px 48px #8b0d3d6b}.invite-card:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px #d4af3761,0 22px 60px #8b0d3d85}.invite-card:before{content:"";background:radial-gradient(circle,#ffffff1a 0%,#0000 70%);border-radius:50%;width:200px;height:200px;position:absolute;top:-80px;right:-70px}.invite-card:after{content:"";background:radial-gradient(circle,#d4af3714 0%,#0000 70%);border-radius:50%;width:140px;height:140px;position:absolute;bottom:-50px;left:-40px}.invite-label{color:#ffffffad;letter-spacing:2.6px;text-transform:uppercase;z-index:1;margin-bottom:12px;font-size:10.5px;font-weight:800;position:relative}.invite-code{color:#fff;letter-spacing:14px;text-shadow:0 2px 16px #00000038;z-index:1;margin-bottom:8px;font-family:Sora,sans-serif;font-size:38px;font-weight:900;position:relative}.invite-hint{color:#ffffff94;z-index:1;font-size:12px;font-weight:500;position:relative}.message-bubble-own{background:var(--grad-message);color:#fff;border-radius:22px 22px 4px;padding:11px 16px;font-size:14px;line-height:1.46;box-shadow:inset 0 1px #ffffff2e,inset 0 0 0 1px #d4af371f,0 4px 18px #8b0d3d4d}.message-bubble-other{color:var(--text);box-shadow:var(--shadow-xs);border:1.5px solid var(--border);background:#fff;border-radius:22px 22px 22px 4px;padding:11px 16px;font-size:14px;line-height:1.46}.toggle{background:var(--border2);cursor:pointer;width:48px;height:27px;transition:all .26s var(--ease);border:none;border-radius:14px;position:relative;box-shadow:inset 0 1px 3px #0000001a}.toggle.on{background:var(--grad-emerald);box-shadow:0 2px 10px #10b98161}.toggle:after{content:"";width:21px;height:21px;transition:transform .26s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #0000002e}.toggle.on:after{transform:translate(21px)}.join-request-card{border-radius:var(--radius-lg);background:#fffdf4;border:1.5px solid #d4af3766;margin-bottom:12px;padding:16px;box-shadow:0 4px 18px #c8962e1f,inset 0 1px #fffc}@keyframes sos-pulse{0%{box-shadow:0 0 #c8102e80}70%{box-shadow:0 0 0 18px #c8102e00}to{box-shadow:0 0 #c8102e00}}.sos-live-dot{background:var(--sos);border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:1.6s ease-out infinite sos-live-ring}@keyframes sos-live-ring{0%{box-shadow:0 0 #c8102e8c}80%{box-shadow:0 0 0 6px #c8102e00}to{box-shadow:0 0 #c8102e00}}@keyframes sos-screen-blink{0%,to{background:#c8102e00}50%{background:#c8102e33}}.sos-blink-overlay{z-index:700;pointer-events:all;background:#c8102e1a;justify-content:center;align-items:flex-end;animation:.8s ease-in-out infinite sos-screen-blink;display:flex;position:fixed;inset:0}.sos-alert-banner{background:linear-gradient(160deg, var(--sos) 0%, var(--sos-dark) 100%);text-align:center;width:100%;max-width:430px;animation:slideUp .36s var(--ease);border-radius:32px 32px 0 0;padding:28px 28px 46px;box-shadow:inset 0 1.5px #ffffff40,0 -12px 50px #c8102e80}.sos-alert-icon{margin-bottom:12px;font-size:56px;animation:.6s ease-in-out infinite alternate sos-pulse-icon}@keyframes sos-pulse-icon{0%{transform:scale(1)}to{transform:scale(1.16)}}.sos-alert-title{color:#fff;letter-spacing:-.5px;margin-bottom:8px;font-family:Sora,sans-serif;font-size:22px;font-weight:900}.sos-alert-sub{color:#ffffffd9;margin-bottom:24px;font-size:14px;font-weight:500;line-height:1.4}.sos-alert-dismiss{color:#fff;cursor:pointer;width:100%;transition:all .2s var(--ease);letter-spacing:.2px;background:#ffffff2e;border:2px solid #fff6;border-radius:16px;padding:14px 32px;font-family:inherit;font-size:15px;font-weight:800}.sos-alert-dismiss:hover{background:#ffffff47}.sos-blink-overlay.resolved{background:#12925b1a;animation:none}.sos-blink-overlay.resolved .sos-alert-banner{background:linear-gradient(160deg,#12925b 0%,#0e7a4c 100%);box-shadow:inset 0 1.5px #ffffff40}.sos-blink-overlay.resolved .sos-alert-icon{animation:none}.call-ring-overlay{z-index:700;pointer-events:all;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.call-ring-banner{background:linear-gradient(160deg, var(--maroon-bright) 0%, var(--maroon-deep) 100%);text-align:center;width:100%;max-width:430px;animation:slideUp .36s var(--ease);border-radius:32px 32px 0 0;padding:28px 28px 40px;box-shadow:inset 0 1.5px #ffffff40,0 -12px 50px #720d3580}.call-ring-icon{margin-bottom:12px;font-size:52px;animation:1s ease-in-out infinite call-ring-pulse}.call-ring-avatar{color:#fff;background:#ffffff29;border:3px solid #ffffff59;border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;margin:0 auto 12px;font-family:Sora,sans-serif;font-size:38px;font-weight:900;animation:1s ease-in-out infinite call-ring-pulse;display:flex;overflow:hidden}.call-ring-avatar-img{object-fit:cover;width:100%;height:100%}@keyframes call-ring-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.call-ring-title{color:#fff;letter-spacing:-.5px;margin-bottom:6px;font-family:Sora,sans-serif;font-size:22px;font-weight:900}.call-ring-sub{color:#ffffffd9;margin-bottom:26px;font-size:14px;font-weight:500}.call-ring-actions{gap:14px;display:flex}.call-ring-btn{cursor:pointer;letter-spacing:.2px;transition:all .2s var(--ease);border-radius:16px;flex:1;padding:15px 0;font-family:inherit;font-size:15px;font-weight:800}.call-ring-decline{color:#fff;background:#ffffff24;border:2px solid #ffffff59}.call-ring-decline:hover{background:#ffffff3d}.call-ring-accept{color:var(--maroon-deep);background:#fff;border:2px solid #fff}.call-ring-accept:hover{background:#ffffffe6}*{scrollbar-width:none}::-webkit-scrollbar{display:none}.native-alarm-bar{z-index:800;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top,0px));background:linear-gradient(135deg,#c8102e,#a30e2b);border-bottom:1.5px solid #ffffff59;justify-content:space-between;align-items:center;gap:12px;animation:1.1s ease-in-out infinite nativeAlarmPulse;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 4px 24px #c8102e8c}.native-alarm-text{color:#fff;letter-spacing:.2px;font-size:15px;font-weight:700}.native-alarm-btn{color:var(--sos-deep);cursor:pointer;background:#fff;border:none;border-radius:10px;flex-shrink:0;padding:10px 18px;font-size:15px;font-weight:800;box-shadow:0 2px 8px #00000038}.native-alarm-btn:active{background:#f2f2f2;transform:scale(.96)}@keyframes nativeAlarmPulse{0%,to{background:linear-gradient(135deg,#c8102e,#a30e2b)}50%{background:linear-gradient(135deg,#d81b3c,#c8102e)}}.native-alarm-bar.ping{background:linear-gradient(135deg, var(--maroon), var(--maroon-deep));border-bottom-color:#d4af3766;animation-name:nativeAlarmPulsePing;box-shadow:0 4px 24px #8b0d3d8c}.native-alarm-bar.ping .native-alarm-btn{color:var(--maroon)}@keyframes nativeAlarmPulsePing{0%,to{background:linear-gradient(135deg, var(--maroon), var(--maroon-deep))}50%{background:linear-gradient(135deg, var(--maroon-bright), var(--maroon))}}.nav-badge{color:#fff;text-align:center;pointer-events:none;border:1.5px solid var(--bg);background:linear-gradient(135deg,#e11d48,#be123c);border-radius:9px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:800;line-height:18px;position:absolute;top:-4px;right:-6px;box-shadow:0 2px 6px #e11d4873}.nearby-radar-overlay{z-index:450;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.nearby-radar-ring{border:2px solid #8b93a6;border-radius:50%;width:34px;height:34px;animation:2.4s ease-out infinite nearby-radar-pulse;position:absolute}.nearby-radar-ring.r2{animation-delay:.8s}.nearby-radar-ring.r3{animation-delay:1.6s}@keyframes nearby-radar-pulse{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(7)}}.nearby-radar-center{background:#8b93a6;border:2px solid #fff;border-radius:50%;width:9px;height:9px;position:absolute}.helper-found-marker{width:100%;height:100%;position:relative}.helper-found-ring{border:2px solid #10b981;border-radius:50%;animation:2s ease-out infinite helper-found-pulse;position:absolute;inset:-6px}@keyframes helper-found-pulse{0%{opacity:.7;transform:scale(.7)}to{opacity:0;transform:scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.bottom-nav a,.bottom-nav a *{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}@keyframes batteryCharge{0%{width:var(--bat-w,2px)}70%{width:16px}to{opacity:.35;width:16px}}.battery-fill-charging{animation:1.8s ease-in-out infinite batteryCharge}@media (prefers-reduced-motion:reduce){.battery-fill-charging{animation:none}}.composer-field::placeholder{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.timeline-range{appearance:none;cursor:pointer;touch-action:none;background:0 0}.timeline-range:focus{outline:none}.timeline-range::-webkit-slider-runnable-track{background:0 0;height:34px}.timeline-range::-webkit-slider-thumb{-webkit-appearance:none;box-sizing:border-box;background:var(--maroon);border:3px solid #fff8f0;border-radius:50%;width:22px;height:22px;margin-top:6px;box-shadow:0 1px 4px #0000004d}.timeline-range:focus-visible::-webkit-slider-thumb{border-color:#f8e6ed}.timeline-range::-moz-range-track{background:0 0;height:34px}.timeline-range::-moz-range-thumb{box-sizing:border-box;background:var(--maroon);border:3px solid #fff8f0;border-radius:50%;width:22px;height:22px;box-shadow:0 1px 4px #0000004d}.radar-ripple{pointer-events:none;border:1.5px solid #ffffffd9;border-radius:50%;animation:2.4s ease-out infinite radar-ripple;position:absolute;inset:-1px}.radar-ripple-2{animation-delay:1.2s}@keyframes radar-ripple{0%{opacity:0;transform:scale(1.7)}30%{opacity:.85}to{opacity:0;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.radar-ripple{opacity:0;animation:none}}.invite-scene{background:linear-gradient(#2a0412 0%,#48061f 48%,#6e0a30 100%);border-radius:22px;margin-bottom:12px;padding:14px 14px 0;position:relative;overflow:hidden}.invite-scene-title{letter-spacing:.2px;color:#fff8f0;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:800;line-height:1.25;overflow:hidden}.invite-scene-art{width:calc(100% + 28px);margin:4px -14px 0;display:block}.invite-svg{width:100%;height:auto;display:block}.invite-scene-note{color:#fff8f0e6;text-align:center;background:#2a0412;margin:0 -14px;padding:12px 20px 17px;font-size:12px;font-weight:600;line-height:1.5}.invite-scene-note div{text-wrap:balance}.invite-ground{background:#2a0412;grid-template-columns:1fr calc(11.765% + 3.2942px) 1fr;align-items:stretch;margin:-1px -14px 0;padding:8px 14px 0;display:grid}.inv-spacer{align-self:stretch}.inv-act{cursor:pointer;letter-spacing:.2px;text-align:center;-webkit-tap-highlight-color:transparent;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:100%;height:68px;padding:8px 10px;font-family:inherit;font-size:13px;line-height:1.2;transition:transform .12s ease-out,filter .12s ease-out;display:flex}.inv-act:active{filter:brightness(.96);transform:scale(.97)}.inv-act:focus-visible{outline-offset:2px;outline:2px solid #fff8f0}.inv-act svg{flex-shrink:0}.inv-act-share{color:var(--maroon-darkest);background:linear-gradient(#e8cf85 0%,#ddbb5a 100%);border:1px solid #a6832a8c;font-weight:800;box-shadow:inset 0 1px #fff4cdcc,0 2px 5px #00000047}.inv-act-copy{color:var(--maroon);background:#f7ece1;border:1px solid #d4af3799;font-weight:700;box-shadow:0 2px 5px #00000038}.inv-act-copy.is-copied{color:var(--maroon-darkest);background:linear-gradient(#e8cf85 0%,#ddbb5a 100%);border-color:#a6832a8c}@media (prefers-reduced-motion:reduce){.inv-act{transition:none}}.inv-pane{fill:#3b0a1c;animation:.55s forwards inv-light;animation-delay:calc(var(--i) * .15s + .3s)}.inv-char{opacity:0;animation:.4s forwards inv-char-in;animation-delay:calc(var(--i) * .15s + .42s)}.invite-scene.is-open .inv-char{animation:.5s both inv-hop;animation-delay:calc(var(--i) * 60ms);opacity:1}.inv-gwin{fill:#3b0a1c;transition:fill .6s .25s}.inv-door{transform-box:fill-box;transform-origin:0;transition:transform .9s cubic-bezier(.5,0,.2,1)}.inv-fam{opacity:0;transition:opacity .5s .4s}.invite-scene.is-open .inv-door{transform:scaleX(.13)}.invite-scene.is-open .inv-fam{opacity:1}.invite-scene.is-open .inv-gwin{fill:#d4af37}.invite-scene.is-open .inv-heart{animation-duration:.9s}.inv-heart{transform-box:fill-box;transform-origin:50% 55%;animation:2.4s ease-in-out infinite inv-beat}.inv-lamp{animation:2.8s ease-in-out infinite alternate inv-flicker}.inv-lamp.l2{animation-delay:1.1s}.inv-key{transform-box:view-box;transform-origin:28px 0;animation:3.4s ease-in-out infinite alternate inv-swing}.inv-smoke{fill:none;stroke:#fff8f0;stroke-width:1.6px;opacity:0;animation:3.8s ease-out infinite inv-rise}.inv-smoke.s2{animation-delay:1.25s}.inv-smoke.s3{animation-delay:2.5s}.inv-star{fill:#d4af37;animation:2.8s ease-in-out infinite inv-twinkle}.inv-star.k2{animation-delay:.9s}.inv-star.k3{animation-delay:1.8s}.inv-tree{transform-box:fill-box;transform-origin:50% 100%;animation:4.6s ease-in-out infinite alternate inv-sway}@keyframes inv-light{to{fill:#d4af37}}@keyframes inv-char-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@keyframes inv-hop{0%,to{transform:none}45%{transform:translateY(-3px)}}@keyframes inv-beat{0%,to{transform:scale(1)}14%{transform:scale(1.18)}28%{transform:scale(1)}42%{transform:scale(1.12)}56%{transform:scale(1)}}@keyframes inv-flicker{0%{opacity:.7}to{opacity:1}}@keyframes inv-swing{0%{transform:rotate(-9deg)}to{transform:rotate(9deg)}}@keyframes inv-sway{0%{transform:rotate(-2deg)}to{transform:rotate(2deg)}}@keyframes inv-rise{0%{opacity:0;transform:translate(0)scale(.7)}20%{opacity:.6}to{opacity:0;transform:translate(9px,-26px)scale(1.5)}}@keyframes inv-twinkle{0%,to{opacity:.25}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.inv-heart,.inv-lamp,.inv-key,.inv-smoke,.inv-star,.inv-tree{animation:none}.inv-smoke{opacity:0}.inv-pane{fill:#d4af37;animation:none}.inv-char,.invite-scene.is-open .inv-char{opacity:1;animation:none}.inv-door,.inv-fam,.inv-gwin{transition:none}}@keyframes member-card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.member-card-in{animation:.18s ease-out member-card-in}@media (prefers-reduced-motion:reduce){.member-card-in{animation:none}}.weather-swipe::-webkit-scrollbar{display:none}.leaflet-popup-content-wrapper{border:1.5px solid var(--maroon);border-radius:18px;box-shadow:0 10px 30px #4a082038,0 2px 6px #4a08201a}.leaflet-popup-tip{border-right:1.5px solid var(--maroon);border-bottom:1.5px solid var(--maroon);box-shadow:3px 3px 8px #4a08201a}.leaflet-container a.leaflet-popup-close-button{box-sizing:border-box;width:28px;height:28px;color:var(--maroon);text-align:center;background:0 0;border:none;padding:0;font:400 24px/26px Inter,sans-serif;top:6px;right:8px}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:active{color:var(--maroon-deep,var(--maroon));background:0 0}
