@import url(https://unpkg.com/leaflet@1.9.4/dist/leaflet.css);:root{--bg-base:#0f1117;--bg-surface:#1a1d28;--bg-elevated:#222636;--bg-input:#161922;--glass-bg:#ffffff0d;--glass-bg-hover:#ffffff14;--glass-border:#ffffff14;--glass-border-hover:#ffffff24;--glass-blur:blur(16px);--text-primary:#e8eaed;--text-secondary:#9aa0b0;--text-tertiary:#636a7e;--text-inverse:#0f1117;--accent-primary:#7c6bf0;--accent-primary-hover:#6b5ad4;--accent-secondary:#5a9bf6;--accent-gradient:linear-gradient(135deg,#7c6bf0,#5a9bf6);--accent-glow:#7c6bf040;--accent-glow-subtle:#7c6bf01a;--color-error:#f87171;--color-error-bg:#f871711a;--color-error-border:#f8717140;--color-success:#34d399;--color-success-bg:#34d3991a;--color-success-border:#34d39940;--color-favorite:#f87171;--color-favorite-inactive:var(--text-tertiary);--border-subtle:#ffffff0f;--border-default:#ffffff1a;--border-focus:var(--accent-primary);--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--shadow-glow:0 0 20px #7c6bf026;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-pill:50px;--transition-fast:0.15s ease;--transition-base:0.25s ease;--transition-slow:0.4s ease;--navbar-height:50px;--navbar-height-tablet:45px;--navbar-height-mobile:40px}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0f1117;background-color:var(--bg-base);color:#e8eaed;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#636a7e;background:var(--text-tertiary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9aa0b0;background:var(--text-secondary)}*{scrollbar-color:#636a7e #0000;scrollbar-color:var(--text-tertiary) #0000;scrollbar-width:thin}h1{color:#e8eaed;color:var(--text-primary);font-size:1.8rem;margin:16px 0;text-align:center}.app-layout{bottom:0;display:flex;left:0;overflow:hidden;position:fixed;right:0;top:50px;top:var(--navbar-height)}@media (max-width:768px){.app-layout{top:45px;top:var(--navbar-height-tablet)}}@media (max-width:480px){.app-layout{top:40px;top:var(--navbar-height-mobile)}}.map-wrapper{flex:1 1;overflow:hidden;position:relative}.map-container{height:100%!important;margin-top:0;width:100%!important}.leaflet-marker-icon{filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}form{display:flex;flex-direction:column;gap:10px;width:220px}form input,form textarea{background-color:#161922;background-color:var(--bg-input);border:1px solid #ffffff1a;border:1px solid var(--border-default);border-radius:6px;border-radius:var(--radius-sm);color:#e8eaed;color:var(--text-primary);font-family:inherit;font-size:.9rem;padding:8px;resize:vertical}form input:focus,form textarea:focus{border-color:#7c6bf0;border-color:var(--accent-primary);box-shadow:0 0 0 3px #7c6bf01a;box-shadow:0 0 0 3px var(--accent-glow-subtle);outline:none}form button{background:#7c6bf0;background:var(--accent-primary);border:none;border-radius:6px;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-family:inherit;font-weight:700;padding:8px;transition:opacity .15s ease;transition:opacity var(--transition-fast)}form button:hover{opacity:.9}@media (max-width:480px){form{width:180px}h1{font-size:1.4rem;padding:0 12px}}.custom-popup{min-width:180px}.custom-popup,.custom-popup-2{margin:0;max-width:90vw;overflow-wrap:break-word;padding:0;white-space:pre-wrap;width:auto!important}.custom-popup-2{min-width:350px}@media (max-width:480px){.custom-popup-2{min-width:min(280px,90vw)}}@media (max-width:768px){.popup-body{-webkit-overflow-scrolling:touch;max-height:min(250px,50vh);overflow-y:auto}}@media (max-width:480px){.popup-body{max-height:min(200px,45vh)}}.leaflet-popup-content-wrapper{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#1a1d28!important;background:var(--bg-surface)!important;border:1px solid #ffffff14!important;border:1px solid var(--glass-border)!important;border-radius:14px!important;border-radius:var(--radius-lg)!important;box-shadow:0 8px 24px #00000080!important;box-shadow:var(--shadow-lg)!important}.leaflet-popup-content,.leaflet-popup-content-wrapper{color:#e8eaed!important;color:var(--text-primary)!important}.leaflet-popup-content{font-family:Inter,sans-serif!important;margin:0!important}.leaflet-popup-tip{background:#1a1d28!important;background:var(--bg-surface)!important;border:1px solid #ffffff14!important;border:1px solid var(--glass-border)!important;box-shadow:none!important}.leaflet-popup-close-button{color:#9aa0b0!important;color:var(--text-secondary)!important;font-size:20px!important;height:28px!important;line-height:28px!important;width:28px!important}.leaflet-control-zoom a,.leaflet-popup-close-button:hover{color:#e8eaed!important;color:var(--text-primary)!important}.leaflet-control-zoom a{background-color:#1a1d28!important;background-color:var(--bg-surface)!important;border-color:#ffffff0f!important;border-color:var(--border-subtle)!important}.leaflet-control-zoom a:hover{background-color:#222636!important;background-color:var(--bg-elevated)!important}.leaflet-control-attribution{background:#0f1117b3!important;color:#636a7e!important;color:var(--text-tertiary)!important;font-size:10px!important}.leaflet-control-attribution a{color:#9aa0b0!important;color:var(--text-secondary)!important}.popup-body{max-height:min(300px,60vh);overflow-y:auto;padding:14px 16px}.popup-date{color:#9aa0b0;color:var(--text-secondary);display:block;font-size:.85rem;font-weight:500;margin-bottom:4px}.popup-title{color:#e8eaed;color:var(--text-primary);display:block;font-size:1.1rem;font-weight:600;margin-bottom:8px}.popup-description{color:#9aa0b0;color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin-bottom:12px}.popup-favorite-btn{background-color:initial;border:1px solid #ffffff1a;border:1px solid var(--border-default);border-radius:6px;border-radius:var(--radius-sm);cursor:pointer;font-size:.85rem;margin-bottom:12px;padding:6px 12px;transition:all .15s ease;transition:all var(--transition-fast)}.popup-favorite-btn.is-favorite{border-color:#f871714d;color:#f87171;color:var(--color-favorite)}.popup-favorite-btn:not(.is-favorite){color:#9aa0b0;color:var(--text-secondary)}.popup-favorite-btn:hover{background:#ffffff0d;background:var(--glass-bg)}.popup-comments-section{border-top:1px solid #ffffff0f;border-top:1px solid var(--border-subtle);margin-top:12px;padding-top:10px}.popup-comments-title{color:#e8eaed;color:var(--text-primary);font-size:.9rem;font-weight:600;margin-bottom:6px}.popup-comments-loading{align-items:center;color:#636a7e;color:var(--text-tertiary);display:flex;font-size:.85rem;gap:8px;margin-top:5px}.popup-comments-loading:before{animation:comments-spin .6s linear infinite;border:2px solid #ffffff1a;border-top-color:#7c6bf0;border:2px solid var(--border-default);border-radius:50%;border-top-color:var(--accent-primary);content:"";display:inline-block;flex-shrink:0;height:14px;width:14px}@keyframes comments-spin{to{transform:rotate(1turn)}}.popup-comment{color:#9aa0b0;color:var(--text-secondary);font-size:.85rem;margin-bottom:6px;padding:4px 0}.popup-comment strong{color:#e8eaed;color:var(--text-primary);font-weight:500}.comment-row{align-items:flex-start;display:flex;gap:6px;justify-content:space-between}.comment-text{flex:1 1;min-width:0;word-break:break-word}.comment-actions{display:flex;flex-shrink:0;gap:2px}.comment-icon-btn{background:none;border:none;border-radius:6px;border-radius:var(--radius-sm);cursor:pointer;font-size:.75rem;line-height:1;opacity:.6;padding:2px 4px;transition:opacity .15s ease;transition:opacity var(--transition-fast)}.comment-icon-btn:hover{opacity:1}.comment-edit-form{flex-direction:column}.comment-edit-actions,.comment-edit-form{display:flex;gap:6px}.comment-action-btn{border:none;border-radius:6px;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;font-size:.78rem;font-weight:500;padding:4px 10px;transition:opacity .15s ease;transition:opacity var(--transition-fast)}.comment-save-btn{background:#7c6bf0;background:var(--accent-primary);color:#fff}.comment-save-btn:hover{opacity:.9}.comment-cancel-btn{background:#ffffff0d;background:var(--glass-bg);border:1px solid #ffffff1a;border:1px solid var(--border-default);color:#9aa0b0;color:var(--text-secondary)}.comment-cancel-btn:hover{background:#ffffff14;background:var(--glass-bg-hover);color:#e8eaed;color:var(--text-primary)}.popup-toggle-btn{background:none;border:none;color:#7c6bf0;color:var(--accent-primary);cursor:pointer;font-family:inherit;font-size:.85rem;margin-top:2px;padding:2px 0;transition:color .15s ease;transition:color var(--transition-fast)}.popup-toggle-btn:hover{color:#5a9bf6;color:var(--accent-secondary)}.popup-comment-input{background:#161922;background:var(--bg-input);border:1px solid #ffffff1a;border:1px solid var(--border-default);border-radius:6px;border-radius:var(--radius-sm);color:#e8eaed;color:var(--text-primary);font-family:inherit;font-size:.85rem;margin-top:8px;padding:8px 10px;resize:none;transition:border-color .15s ease;transition:border-color var(--transition-fast);width:100%}.popup-comment-input:focus{border-color:#7c6bf0;border-color:var(--accent-primary);box-shadow:0 0 0 3px #7c6bf01a;box-shadow:0 0 0 3px var(--accent-glow-subtle);outline:none}.popup-comment-input::placeholder{color:#636a7e;color:var(--text-tertiary)}.popup-send-btn{background:#7c6bf0;background:var(--accent-primary);border:none;border-radius:6px;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:500;margin-top:6px;padding:6px 14px;transition:opacity .15s ease;transition:opacity var(--transition-fast)}.popup-send-btn:hover:not(:disabled){opacity:.9}.popup-send-btn:disabled{cursor:not-allowed;opacity:.5}.popup-edit-section{border-top:1px solid #ffffff0f;border-top:1px solid var(--border-subtle);display:flex;gap:8px;justify-content:flex-end;margin-top:12px;padding-top:10px}.popup-edit-btn{background:#ffffff0d;background:var(--glass-bg);border:1px solid #ffffff14;border:1px solid var(--glass-border);border-radius:6px;border-radius:var(--radius-sm);color:#9aa0b0;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;padding:6px 12px;transition:all .15s ease;transition:all var(--transition-fast)}.popup-edit-btn:hover{background:#ffffff14;background:var(--glass-bg-hover);border-color:#ffffff24;border-color:var(--glass-border-hover);color:#e8eaed;color:var(--text-primary)}.popup-delete-btn{background:#f871711a;background:var(--color-error-bg);border:1px solid #f8717140;border:1px solid var(--color-error-border);border-radius:6px;border-radius:var(--radius-sm);color:#f87171;color:var(--color-error);cursor:pointer;font-family:inherit;font-size:.85rem;font-weight:600;padding:6px 12px;transition:all .15s ease;transition:all var(--transition-fast)}.popup-delete-btn:hover{background:#f8717133;border-color:#f87171;border-color:var(--color-error)}.memory-form{background:#1a1d28;background:var(--bg-surface);border:1px solid #ffffff14;border:1px solid var(--glass-border);border-radius:14px;border-radius:var(--radius-lg);display:flex;flex-direction:column;font-family:Inter,sans-serif;gap:16px;padding:20px;width:320px}.place-name-info{background:#ffffff0d;background:var(--glass-bg);border:1px solid #ffffff0f;border:1px solid var(--border-subtle);border-radius:6px;border-radius:var(--radius-sm);color:#5a9bf6;color:var(--accent-secondary);font-size:.85rem;font-weight:500;padding:8px 10px;text-align:center}.field-group{display:flex;flex-direction:column}.field-label{color:#9aa0b0;color:var(--text-secondary);font-size:.85rem;font-weight:500;margin-bottom:6px}.field-input{background:#161922;background:var(--bg-input);border:1px solid #ffffff1a;border:1px solid var(--border-default);border-radius:10px;border-radius:var(--radius-md);color:#e8eaed;color:var(--text-primary);color-scheme:dark;font-family:inherit;font-size:.95rem;padding:10px 12px;transition:border-color .15s ease,box-shadow .15s ease;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.field-input:focus{border-color:#7c6bf0;border-color:var(--accent-primary);box-shadow:0 0 0 3px #7c6bf01a;box-shadow:0 0 0 3px var(--accent-glow-subtle);outline:none}.field-input::placeholder{color:#636a7e;color:var(--text-tertiary)}.field-input-error{border-color:#f87171!important;border-color:var(--color-error)!important;box-shadow:0 0 0 3px #f871711a!important;box-shadow:0 0 0 3px var(--color-error-bg)!important}.field-error{color:#f87171;color:var(--color-error);font-size:.8rem;margin-top:4px}.field-textarea{background:#161922;background:var(--bg-input);border:1px solid #ffffff1a;border:1px solid var(--border-default);border-radius:10px;border-radius:var(--radius-md);color:#e8eaed;color:var(--text-primary);font-family:inherit;font-size:.95rem;max-height:240px;min-height:120px;overflow-y:auto;padding:10px 12px;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.field-textarea:focus{border-color:#7c6bf0;border-color:var(--accent-primary);box-shadow:0 0 0 3px #7c6bf01a;box-shadow:0 0 0 3px var(--accent-glow-subtle);outline:none}.field-textarea::placeholder{color:#636a7e;color:var(--text-tertiary)}.button-container{display:flex;gap:10px;margin-top:4px}.btn-primary{background:#7c6bf0;background:var(--accent-primary);border:none;border-radius:10px;border-radius:var(--radius-md);color:#fff;cursor:pointer;flex:1 1;font-family:inherit;font-size:.95rem;font-weight:600;padding:12px;transition:opacity .15s ease,transform .15s ease;transition:opacity var(--transition-fast),transform var(--transition-fast)}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.btn-secondary{background:#ffffff0d;background:var(--glass-bg);border:1px solid #ffffff1a;border:1px solid var(--border-default);border-radius:10px;border-radius:var(--radius-md);color:#9aa0b0;color:var(--text-secondary);cursor:pointer;flex:1 1;font-family:inherit;font-size:.95rem;font-weight:600;padding:12px;transition:all .15s ease;transition:all var(--transition-fast)}.btn-secondary:hover{background:#ffffff14;background:var(--glass-bg-hover);border-color:#ffffff24;border-color:var(--glass-border-hover);color:#e8eaed;color:var(--text-primary)}.spiral-transition-container{height:100vh;position:relative;width:100%}.page-content{height:100%;transition:opacity .1s ease;width:100%}.page-content.visible{opacity:1}.page-content.hidden{opacity:0}.spiral-overlay{align-items:center;background:#0000;display:flex;height:100vh;justify-content:center;left:0;pointer-events:none;position:fixed;top:0;width:100vw;z-index:9999}.spiral-svg{height:100%;max-height:none;max-width:none;width:100%}.spiral-path{fill:none;stroke:#1a1d28;stroke-linecap:round;stroke-linejoin:round;transform-origin:center}.spiral-overlay.closing .spiral-path{animation:spiralGrow .6s cubic-bezier(.25,.46,.45,.94) forwards;animation-delay:var(--delay)}.spiral-overlay.opening .spiral-path{animation:spiralShrink .6s cubic-bezier(.25,.46,.45,.94) forwards;animation-delay:var(--reverse-delay)}@keyframes spiralGrow{0%{stroke-dasharray:0 10000;stroke-width:2;opacity:0}10%{opacity:1}to{stroke-dasharray:10000 0;stroke-width:80;opacity:.98}}@keyframes spiralShrink{0%{stroke-dasharray:10000 0;stroke-width:80;opacity:.98}90%{opacity:1}to{stroke-dasharray:0 10000;stroke-width:2;opacity:0}}.spiral-path-1{stroke:#1a1d28}.spiral-path-2{stroke:#222636}.spiral-path-3{stroke:#0f1117}.spiral-path-4{stroke:#282d3e}.spiral-path-5{stroke:#1a1d28}.spiral-path-6{stroke:#222636}@media (max-width:768px){@keyframes spiralGrow{to{stroke-width:60}}@keyframes spiralShrink{0%{stroke-width:60}}}@media (max-width:480px){@keyframes spiralGrow{to{stroke-width:50}}@keyframes spiralShrink{0%{stroke-width:50}}}.auth-container{align-items:center;background:var(--bg-base);background-image:radial-gradient(ellipse at 20% 50%,#7c6bf014 0,#0000 50%),radial-gradient(ellipse at 80% 20%,#5a9bf60f 0,#0000 50%),radial-gradient(ellipse at 50% 80%,#7c6bf00d 0,#0000 40%);display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:20px;position:relative}.auth-spiral{opacity:.04;pointer-events:none;position:absolute;z-index:0}.auth-spiral--1{animation:spiralFloat1 20s ease-in-out infinite;height:500px;left:-8%;top:-10%;width:500px}.auth-spiral--2{animation:spiralFloat2 25s ease-in-out infinite;bottom:-12%;height:400px;right:-6%;width:400px}.auth-spiral--3{animation:spiralFloat3 18s ease-in-out infinite;height:300px;right:-5%;top:15%;width:300px}.auth-spiral--4{animation:spiralFloat4 22s ease-in-out infinite;bottom:5%;height:250px;left:5%;width:250px}.auth-spiral--5{animation:spiralFloat5 28s ease-in-out infinite;height:180px;right:15%;top:55%;width:180px}@keyframes spiralFloat1{0%,to{opacity:.04;transform:rotate(0deg) scale(1)}25%{opacity:.06;transform:rotate(45deg) scale(1.08)}50%{opacity:.03;transform:rotate(90deg) scale(1)}75%{opacity:.05;transform:rotate(135deg) scale(1.05)}}@keyframes spiralFloat2{0%,to{opacity:.03;transform:rotate(0deg) scale(1) translate(0)}33%{opacity:.05;transform:rotate(-60deg) scale(1.1) translate(-20px,15px)}66%{opacity:.04;transform:rotate(-120deg) scale(.95) translate(10px,-10px)}}@keyframes spiralFloat3{0%,to{opacity:.03;transform:rotate(0deg) scale(1) translate(0)}50%{opacity:.06;transform:rotate(70deg) scale(1.12) translate(-15px,20px)}}@keyframes spiralFloat4{0%,to{opacity:.04;transform:rotate(0deg) scale(1)}35%{opacity:.02;transform:rotate(-50deg) scale(.9)}70%{opacity:.06;transform:rotate(-100deg) scale(1.1)}}@keyframes spiralFloat5{0%,to{opacity:.025;transform:rotate(0deg) scale(1) translate(0)}40%{opacity:.05;transform:rotate(90deg) scale(1.15) translate(10px,-15px)}80%{opacity:.035;transform:rotate(180deg) scale(.9) translate(-10px,10px)}}.auth-card{align-items:center;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background:#ffffff0f;border:1px solid #ffffff1a;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),inset 0 1px 0 #ffffff0d;display:flex;flex-direction:column;max-width:380px;padding:2.5rem;position:relative;width:100%;z-index:1}.auth-card h2{color:var(--text-primary);font-size:1.8rem;font-weight:700;margin-bottom:1.5rem;text-align:center}.auth-form{display:flex;flex-direction:column;width:100%}.form-group{margin-bottom:1rem}.form-group label{color:var(--text-secondary);display:block;font-size:.9rem;font-weight:500;margin-bottom:.5rem}.form-group input{background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);box-sizing:border-box;color:var(--text-primary);font-family:inherit;font-size:1rem;padding:.75rem 1rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.form-group input::placeholder{color:var(--text-tertiary)}.form-group input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow-subtle),var(--shadow-glow);outline:none}.form-group input:disabled{background-color:var(--bg-elevated);cursor:not-allowed;opacity:.6}.auth-button{background:var(--accent-primary);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-family:inherit;font-size:1rem;font-weight:600;margin-top:1rem;padding:.75rem;transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast);width:100%}.auth-button:hover:not(:disabled){box-shadow:0 5px 20px var(--accent-glow);opacity:.95;transform:translateY(-2px)}.auth-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.error-message{background-color:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-md);color:var(--color-error)}.error-message,.success-message{box-sizing:border-box;font-size:.9rem;margin-bottom:1rem;padding:.75rem;text-align:center;width:100%}.success-message{background-color:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:var(--radius-md);color:var(--color-success)}.auth-links{border-top:1px solid var(--border-subtle);margin-top:1.5rem;padding-top:1rem;text-align:center;width:100%}.auth-links p{color:var(--text-tertiary);font-size:.9rem;margin:0}.auth-links a{color:var(--accent-primary);font-weight:500;text-decoration:none;transition:color var(--transition-fast)}.auth-links a:hover{color:var(--accent-secondary);text-decoration:underline}@media (max-width:480px){.auth-container{padding:10px}.auth-card{padding:1.5rem 1.25rem}.auth-card h2{font-size:1.5rem}}
/*# sourceMappingURL=main.49aa95b4.css.map*/