:root{font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;color:#e0e0e0;background-color:#0a0a0c}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;overflow:hidden;width:100vw;height:100vh;background-color:#0d0d12}#login-screen{width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse at 60% 40%,#1a0a2e,#0a0a0c 70%);animation:bgPulse 8s ease-in-out infinite alternate}@keyframes bgPulse{0%{background-position:0% 50%}to{background-position:100% 50%}}.login-card{text-align:center;padding:48px 52px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:28px;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);box-shadow:0 32px 64px #00000080,inset 0 1px #ffffff12;max-width:380px;width:90%;animation:fadeUp .6s cubic-bezier(.16,1,.3,1) forwards}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-logo{font-size:56px;margin-bottom:16px;display:block;filter:drop-shadow(0 0 20px rgba(180,120,255,.5))}.login-title{font-size:28px;font-weight:700;letter-spacing:-.5px;color:#fff;margin:0 0 8px}.login-subtitle{font-size:14px;color:#ffffff73;margin:0 0 32px}#google-signin-btn{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;background:#fff;color:#111;border:none;border-radius:12px;font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 4px 20px #0000004d;transition:transform .15s ease,box-shadow .15s ease;width:100%;justify-content:center}#google-signin-btn:hover{transform:translateY(-1px);box-shadow:0 8px 28px #0006}#google-signin-btn:active{transform:translateY(0)}#google-signin-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-note{margin-top:16px;font-size:12px;color:#ff6b6b}#app{width:100%;height:100%;position:relative}.map-viewport{width:100%;height:100%;overflow:auto;background:#0d0d12;position:relative}.map-container{background-size:cover;background-position:center;background-repeat:no-repeat;position:relative;box-shadow:0 0 100px #00000080;animation:fadeIn .4s ease forwards}.navigation-bar{position:absolute;top:20px;left:20px;right:20px;z-index:100;display:flex;align-items:center;gap:10px;background:#0f0f1499;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:8px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.09);box-shadow:0 8px 32px #0006}.back-button{background:#ffffff14;border:1px solid rgba(255,255,255,.1);color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;padding:5px 12px;border-radius:8px;transition:background .2s;flex-shrink:0}.back-button:hover{background:#ffffff26}.current-path{color:#ffffff80;font-size:13px;flex:1}.user-info{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}.user-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.2)}.user-name{font-size:13px;color:#ffffffb3;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signout-button{background:transparent;border:1px solid rgba(255,255,255,.15);color:#ffffff80;font-size:12px;font-family:inherit;cursor:pointer;padding:4px 10px;border-radius:7px;transition:all .2s}.signout-button:hover{border-color:#ffffff4d;color:#fff}.node-marker{position:absolute;transform:translate(-50%,-50%);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;z-index:10}.node-marker img{width:48px;height:48px;border-radius:50%;box-shadow:0 4px 16px #0006,0 0 0 2px #ffffff1a;background:#1e1e2899;object-fit:cover}.node-marker:hover img,.node-marker:hover:before{transform:scale(1.18);filter:drop-shadow(0 0 12px rgba(180,120,255,.6))}.node-marker img,.node-marker:before{transition:transform .2s cubic-bezier(.175,.885,.32,1.275),filter .2s}.node-label{display:inline-block;font-size:14px;font-weight:600;color:#fff;text-transform:capitalize;background:#000000b3;padding:4px 10px;border-radius:6px;letter-spacing:.3px;white-space:nowrap;pointer-events:none;border:1px solid transparent;transition:background .2s,border .2s}.node-marker--fallback img{display:none}.node-marker--fallback:before{content:attr(data-label);width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#7c3aed,#2563eb);display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 4px 16px #0006;color:#fff}.detail-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000073;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:50;display:flex;justify-content:center;align-items:center;animation:fadeIn .35s ease forwards}.detail-content{background:#16161ef5;width:80%;max-width:780px;max-height:78vh;padding:44px 48px;border-radius:24px;border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 60px #0009;overflow-y:auto;position:relative;animation:scaleIn .35s cubic-bezier(.16,1,.3,1) forwards}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.close-btn{position:absolute;top:18px;right:18px;background:#ffffff12;border:1px solid rgba(255,255,255,.1);color:#ffffff80;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:14px;display:flex;justify-content:center;align-items:center;transition:all .2s;font-family:inherit}.close-btn:hover{background:#ffffff24;color:#fff}.edit-details-btn{position:absolute;top:18px;right:60px;background:#ffffff12;border:1px solid rgba(255,255,255,.1);color:#ffffff80;font-size:11px;font-weight:600;padding:6px 12px;border-radius:8px;cursor:pointer;transition:all .2s;font-family:inherit}.edit-details-btn:hover{background:#ffffff24;color:#fff}.save-details-btn,.cancel-details-btn{margin-top:20px;margin-right:10px;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s}.save-details-btn{background:#7c3aed;color:#fff;border:none}.save-details-btn:hover{background:#6d28d9}.cancel-details-btn{background:#ffffff1a;color:#ffffffb3;border:1px solid rgba(255,255,255,.1)}.cancel-details-btn:hover{background:#ffffff26;color:#fff}.details-editor{width:100%;min-height:400px;background:#0003;border:1px solid rgba(255,255,255,.1);border-radius:12px;color:#fff;padding:16px;font-family:JetBrains Mono,Fira Code,monospace;font-size:14px;line-height:1.6;resize:vertical;margin-top:10px}.details-editor:focus{outline:none;border-color:#7c3aed80;box-shadow:0 0 0 2px #7c3aed33}.markdown-body h1{font-size:22px;font-weight:700;color:#fff;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:12px;margin:0 0 20px}.markdown-body h2{font-size:17px;font-weight:600;color:#ffffffd9;margin-top:24px}.markdown-body p{color:#fff9;line-height:1.7;margin:0 0 12px}.markdown-body ul{padding-left:20px;color:#ffffff8c}.markdown-body li{margin-bottom:8px;line-height:1.6}.edit-button,.save-button{background:#b478ff26;border:1px solid rgba(180,120,255,.3);color:#b478ff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;padding:5px 14px;border-radius:8px;transition:all .2s;flex-shrink:0}.edit-button:hover{background:#b478ff40;border-color:#b478ff80}.save-button{background:#7c3aed;color:#fff;border-color:transparent}.save-button:hover{background:#6d28d9;box-shadow:0 0 15px #7c3aed66}.edit-mode .node-marker{cursor:move;z-index:1000}.edit-mode .node-label{pointer-events:auto;cursor:text;border:1px dashed rgba(255,255,255,.5);background:#000c;min-width:60px;outline:none}.edit-mode .node-label:focus{border:1px solid #b478ff;background:#000;box-shadow:0 0 10px #b478ff66}.edit-mode-indicator{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#b478ff;font-weight:700;margin-right:8px;animation:blink 2s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}.edit-mode .node-marker:hover .icon-upload-overlay{opacity:1}.icon-upload-overlay{position:absolute;top:0;right:0;width:24px;height:24px;background:#7c3aed;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;cursor:pointer;opacity:0;transition:opacity .2s,transform .2s;border:2px solid #0d0d12;box-shadow:0 2px 8px #0006;z-index:1001}.icon-upload-overlay:hover{transform:scale(1.1);background:#6d28d9}
