.auth-page{align-items:center;display:flex;height:100%;justify-content:center;overflow:hidden;padding:24px;position:relative}.auth-bg{inset:0;pointer-events:none;position:absolute}.auth-glow{border-radius:50%;filter:blur(80px);opacity:.2;position:absolute}.auth-glow-1{background:var(--accent);height:400px;left:-100px;top:-100px;width:400px}.auth-glow-2{background:#7c3aed;bottom:-80px;height:300px;right:-80px;width:300px}.auth-grid{background-image:linear-gradient(#ffffff08 1px,#0000 0),linear-gradient(90deg,#ffffff08 1px,#0000 0);background-size:40px 40px;inset:0;position:absolute}.auth-card{animation:fadeUp .5s ease both;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow),0 0 60px #00d4ff0f;max-width:400px;padding:40px 36px;position:relative;width:100%}.auth-logo{align-items:center;display:flex;gap:12px;margin-bottom:28px}.auth-logo-text{font-size:22px}.auth-logo-text,.auth-title{color:var(--text);font-family:var(--font-display);font-weight:700;letter-spacing:-.5px}.auth-title{font-size:26px;margin-bottom:6px}.auth-subtitle{color:var(--text-muted);font-size:14px;line-height:1.5;margin-bottom:32px}.auth-form{gap:16px}.auth-form,.field{display:flex;flex-direction:column}.field{gap:6px}.field label{color:var(--text-muted);font-size:13px;font-weight:500;letter-spacing:.3px}.field input{-webkit-appearance:none;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:15px;outline:none;padding:12px 14px;transition:border-color var(--transition),box-shadow var(--transition)}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.field input::placeholder{color:#4a5568}.auth-error{animation:fadeUp .3s ease;background:#ef44441a;border:1px solid #ef44444d;color:#fca5a5;font-size:13px;padding:10px 14px}.auth-error,.btn-primary{border-radius:var(--radius-sm)}.btn-primary{align-items:center;background:var(--accent);color:#000;display:flex;font-family:var(--font-display);font-size:15px;font-weight:600;justify-content:center;letter-spacing:.2px;margin-top:4px;min-height:46px;padding:13px;transition:transform var(--transition),filter var(--transition),box-shadow var(--transition)}.btn-primary:hover:not(:disabled){box-shadow:0 4px 16px var(--accent-glow);filter:brightness(1.1);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.spinner{animation:spin .6s linear infinite;border:2px solid #0003;border-radius:50%;border-top-color:#000;height:18px;width:18px}@keyframes spin{to{transform:rotate(1turn)}}.auth-switch{color:var(--text-muted);font-size:14px;margin-top:24px;text-align:center}.auth-switch-btn{color:var(--accent);font-weight:500;margin-left:6px;text-decoration:none;transition:opacity var(--transition)}.auth-switch-btn:hover{opacity:.8}.map-wrapper{position:relative}.map-container,.map-wrapper{height:100%;width:100%}.sharing-toggle{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:24px;bottom:100px;box-shadow:var(--shadow);display:flex;font-family:var(--font-display);font-size:13px;font-weight:600;gap:7px;padding:10px 16px;position:absolute;right:12px;transition:all var(--transition);z-index:1000}.sharing-on{background:#00d4ff26;border:1px solid var(--accent);color:var(--accent)}.sharing-on:hover{background:#00d4ff40}.sharing-off{background:#ef444426;border:1px solid var(--danger);color:var(--danger)}.sharing-off:hover{background:#ef444440}.alerts-container{display:flex;flex-direction:column;gap:8px;left:50%;pointer-events:none;position:absolute;top:72px;transform:translateX(-50%);width:min(340px,calc(100vw - 24px));z-index:1001}.alerts-container>*{pointer-events:all}.user-marker-wrap{position:relative}.user-dot{align-items:center;border:2px solid #ffffff4d;border-radius:50%;box-shadow:0 2px 12px #0006;color:#000;cursor:pointer;display:flex;font-family:var(--font-display);font-size:14px;font-weight:700;height:40px;justify-content:center;transition:transform .15s ease;width:40px}.user-dot:hover{transform:scale(1.1)}.user-dot.online{background:var(--accent)}.user-dot.offline{background:#4a5568;color:#a0aec0}.self-dot{align-items:center;background:var(--accent);border:3px solid #ffffffe6;border-radius:50%;box-shadow:0 0 0 6px var(--accent-glow),var(--shadow);display:flex;height:44px;justify-content:center;width:44px}.self-pulse{animation:pulse-ring 2s ease-out infinite;border:2px solid var(--accent);border-radius:50%;inset:-8px;position:absolute}.online-dot{background:var(--online);border:2px solid var(--bg);border-radius:50%;height:10px;position:absolute;right:-2px;top:-2px;width:10px}.proximity-alert{align-items:center;animation:bounce-in .4s ease;background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow),0 0 20px var(--accent-glow);display:flex;gap:10px;padding:12px 14px}.pa-icon{flex-shrink:0;font-size:22px}.pa-body{color:var(--text);display:flex;flex:1 1;flex-direction:column;font-size:13px;gap:6px;line-height:1.4}.pa-body strong,.pa-chat-btn{color:var(--accent);font-weight:600}.pa-chat-btn{align-self:flex-start;background:var(--accent-dim);border:1px solid var(--accent);border-radius:20px;cursor:pointer;font-family:var(--font-display);font-size:12px;padding:4px 12px;transition:all var(--transition)}.pa-chat-btn:hover{background:var(--accent);color:#000}.pa-close{align-items:center;color:var(--text-muted);display:flex;flex-shrink:0;padding:4px;transition:color var(--transition)}.pa-close:hover{color:var(--text)}.chat-window{animation:slide-in .3s ease;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;bottom:0;box-shadow:var(--shadow),0 -4px 40px #0000004d;display:flex;flex-direction:column;height:min(520px,80vh);position:absolute;right:0;width:min(380px,100vw);z-index:2000}@media (max-width:480px){.chat-window{border-radius:var(--radius) var(--radius) 0 0;height:70vh;width:100vw}}.chat-header{background:var(--surface-2);border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;flex-shrink:0;justify-content:space-between;padding:14px 16px}.chat-header,.chat-header-info{align-items:center;display:flex}.chat-header-info{gap:12px}.chat-avatar{align-items:center;background:var(--accent);border-radius:50%;color:#000;display:flex;flex-shrink:0;font-weight:700;height:38px;justify-content:center;width:38px}.chat-avatar,.chat-partner-name{font-family:var(--font-display);font-size:15px}.chat-partner-name{color:var(--text);font-weight:600}.chat-status{color:var(--online);font-size:12px;margin-top:1px}.chat-close{align-items:center;border-radius:var(--radius-sm);color:var(--text-muted);display:flex;padding:6px;transition:all var(--transition)}.chat-close:hover{background:var(--border);color:var(--text)}.chat-messages{display:flex;flex:1 1;flex-direction:column;gap:8px;overflow-y:auto;padding:16px}.chat-loading{align-items:center;display:flex;height:100%;justify-content:center}.spinner-sm{animation:spin .6s linear infinite;border:2px solid var(--border);border-radius:50%;border-top-color:var(--accent);height:24px;width:24px}.chat-empty{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;gap:12px;height:100%;justify-content:center}.chat-empty-icon{font-size:36px;opacity:.6}.chat-empty p{font-size:14px}.msg-row{align-items:flex-end;display:flex;gap:8px}.msg-row.mine{flex-direction:row-reverse}.msg-avatar-sm{align-items:center;background:var(--surface-2);border:1px solid var(--accent);border-radius:50%;color:var(--accent);display:flex;flex-shrink:0;font-size:11px;font-weight:700;height:28px;justify-content:center;width:28px}.msg-bubble{animation:fadeUp .2s ease;border-radius:16px;display:flex;flex-direction:column;gap:3px;max-width:72%;padding:10px 13px}.msg-bubble.mine{background:var(--accent);border-bottom-right-radius:4px}.msg-bubble.theirs{background:var(--surface-2);border:1px solid var(--border);border-bottom-left-radius:4px}.msg-text{font-size:14px;line-height:1.45;word-break:break-word}.msg-bubble.mine .msg-text{color:#000}.msg-bubble.theirs .msg-text{color:var(--text)}.msg-time{align-self:flex-end;font-size:10px;opacity:.6}.msg-bubble.mine .msg-time{color:#000000b3}.typing-indicator{align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:16px;border-bottom-left-radius:4px;display:flex;gap:4px;padding:12px 14px}.typing-indicator span{animation:bounce 1.2s ease-in-out infinite;background:var(--text-muted);border-radius:50%;height:6px;width:6px}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}.chat-input-bar{background:var(--surface);border-top:1px solid var(--border);display:flex;flex-shrink:0;gap:8px;padding:12px 14px}.chat-input{background:var(--bg);border:1px solid var(--border);border-radius:24px;color:var(--text);flex:1 1;font-size:14px;outline:none;padding:10px 16px;transition:border-color var(--transition)}.chat-input:focus{border-color:var(--accent)}.chat-input::placeholder{color:#4a5568}.chat-send{align-items:center;background:var(--accent);border-radius:50%;color:#000;display:flex;flex-shrink:0;height:40px;justify-content:center;transition:all var(--transition);width:40px}.chat-send:hover:not(:disabled){box-shadow:0 0 12px var(--accent-glow);transform:scale(1.05)}.chat-send:disabled{cursor:not-allowed;opacity:.4}.topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0f1ed9;border-bottom:1px solid var(--border);height:56px;justify-content:space-between;left:0;padding:0 16px;position:absolute;right:0;top:0;z-index:1000}.topbar,.topbar-brand{align-items:center;display:flex}.topbar-brand{gap:10px}.topbar-title{color:var(--text);font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-.3px}.topbar-actions{gap:8px}.topbar-actions,.topbar-btn{align-items:center;display:flex}.topbar-btn{border-radius:var(--radius-sm);color:var(--text-muted);height:36px;justify-content:center;transition:all var(--transition);width:36px}.topbar-btn:hover{background:var(--surface);color:var(--text)}.topbar-logout:hover{color:var(--danger)}.topbar-user{gap:8px}.topbar-avatar,.topbar-user{align-items:center;display:flex}.topbar-avatar{background:var(--accent);border-radius:50%;color:#000;font-family:var(--font-display);font-size:13px;font-weight:700;height:32px;justify-content:center;width:32px}.topbar-name{color:var(--text);font-size:14px;font-weight:500;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:400px){.topbar-name{display:none}}:root{--bg:#0a0f1e;--surface:#111827;--surface-2:#1a2236;--border:#ffffff14;--accent:#00d4ff;--accent-dim:#00d4ff26;--accent-glow:#00d4ff4d;--online:#22c55e;--warning:#f59e0b;--danger:#ef4444;--text:#f0f2f8;--text-muted:#8892a4;--radius:14px;--radius-sm:8px;--font-display:"Space Grotesk",sans-serif;--font-body:"DM Sans",sans-serif;--transition:0.2s ease;--shadow:0 4px 24px #0006;--shadow-glow:0 0 20px #00d4ff26}*,:after,:before{box-sizing:border-box;margin:0;padding:0}#root,body,html{height:100%;overflow:hidden;width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0f1e;background:var(--bg);color:#f0f2f8;color:var(--text);font-family:DM Sans,sans-serif;font-family:var(--font-body)}button{background:none;border:none;cursor:pointer}button,input,textarea{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#ffffff14;background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#8892a4;background:var(--text-muted)}.leaflet-container{background:#0d1117!important;font-family:DM Sans,sans-serif!important;font-family:var(--font-body)!important}.leaflet-tile{filter:brightness(.65) saturate(1.3) hue-rotate(180deg) invert(1)!important}.leaflet-control-attribution{background:#0a0f1ecc!important;color:#8892a4!important;color:var(--text-muted)!important;font-size:10px!important}.leaflet-control-attribution a{color:#00d4ff!important;color:var(--accent)!important}.leaflet-control-zoom{border:1px solid #ffffff14!important;border:1px solid var(--border)!important;border-radius:8px!important;border-radius:var(--radius-sm)!important;overflow:hidden}.leaflet-control-zoom a{background:#111827!important;background:var(--surface)!important;border-color:#ffffff14!important;border-color:var(--border)!important;color:#f0f2f8!important;color:var(--text)!important;transition:background .2s ease!important;transition:background var(--transition)!important}.leaflet-control-zoom a:hover{background:#1a2236!important;background:var(--surface-2)!important}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse-ring{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(2.5)}}@keyframes slide-in{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes bounce-in{0%{opacity:0;transform:scale(.7)}60%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.app{height:100%;overflow:hidden;position:relative;width:100%}.app-map{inset:0;position:absolute;top:56px}.loading-screen{background:var(--bg);flex-direction:column;gap:32px;height:100%;justify-content:center}.loading-logo,.loading-screen{align-items:center;display:flex}.loading-logo{animation:fadeIn .6s ease;gap:14px}.loading-logo span{color:var(--text);font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.5px}.loading-spinner{animation:spin .7s linear infinite;border:2px solid var(--border);border-radius:50%;border-top-color:var(--accent);height:32px;width:32px}
/*# sourceMappingURL=main.61de4422.css.map*/