:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.signup-modal{width:100%;max-width:450px;background-color:#0a0a0af2;border-radius:8px;box-shadow:0 12px 40px #0fc3;overflow:hidden;border:1px solid rgba(0,255,204,.4);animation:modalSlideIn .3s ease-out;position:relative;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-50px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{padding:20px;text-align:center;border-bottom:1px solid rgba(0,255,204,.3);background-color:#0009;position:relative;display:flex;justify-content:space-between;align-items:center}.modal-header h2{color:#0fc;font-family:Courier New,Courier,monospace;margin:0;font-size:1.4rem;letter-spacing:1px;flex:1;text-align:center}.close-button{background:none;border:none;color:#0fc;font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease;position:relative;overflow:hidden}.close-button:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#00ffcc1a;border-radius:4px;transform:scale(0);transition:transform .2s ease}.close-button:hover:before{transform:scale(1)}.close-button:hover{color:#fff;text-shadow:0 0 8px rgba(0,255,204,.8)}.signup-form{padding:30px}.name-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:20px}@media (max-width: 480px){.name-fields{grid-template-columns:1fr;gap:20px}}.signup-form .input-group{margin-bottom:20px}.signup-form .input-group label{display:block;color:#0fc;font-size:.9rem;margin-bottom:8px;font-family:Courier New,Courier,monospace;letter-spacing:.5px}.signup-form .input-wrapper{position:relative}.signup-form .input-wrapper input{width:100%;padding:12px 16px;background-color:#0009;border:1px solid rgba(0,255,204,.3);border-radius:4px;color:#fff;font-family:Courier New,Courier,monospace;font-size:.9rem;transition:all .3s ease;box-sizing:border-box}.signup-form .input-wrapper input:focus{outline:none;border-color:#0fc;box-shadow:0 0 0 2px #0fc3}.signup-form .input-wrapper input::placeholder{color:#00ffcc80}.signup-form .input-border{position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#00ffcc,transparent);transform:scaleX(0);transition:transform .3s ease}.signup-form .input-wrapper input:focus+.input-border{transform:scaleX(1)}.signup-form .error-message{background-color:#ff00001a;border:1px solid rgba(255,0,0,.3);color:#ff6b6b;padding:12px;border-radius:4px;margin-bottom:20px;font-size:.85rem;font-family:Courier New,Courier,monospace}.signup-button{width:100%;padding:14px;background:linear-gradient(135deg,#00ffcc1a,#00ffcc0d);border:1px solid rgba(0,255,204,.4);color:#0fc;font-family:Courier New,Courier,monospace;font-size:.9rem;font-weight:700;letter-spacing:1px;cursor:pointer;border-radius:4px;transition:all .3s ease;position:relative;overflow:hidden;text-transform:uppercase}.signup-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(0,255,204,.2),transparent);transition:left .5s ease}.signup-button:hover:before{left:100%}.signup-button:hover{background:linear-gradient(135deg,#0fc3,#00ffcc1a);border-color:#0fc;box-shadow:0 0 20px #00ffcc4d;color:#fff}.signup-button:disabled{opacity:.6;cursor:not-allowed}.signup-button .button-spinner{width:20px;height:20px;border:2px solid transparent;border-top:2px solid #00ffcc;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto}.modal-footer{padding:20px 30px 30px;text-align:center;border-top:1px solid rgba(0,255,204,.2);background-color:#0006}.modal-footer p{color:#ffffffb3;margin:0 0 15px;font-size:.9rem;font-family:Courier New,Courier,monospace}.switch-button{background:none;border:1px solid rgba(0,255,204,.4);color:#0fc;padding:8px 20px;font-family:Courier New,Courier,monospace;font-size:.8rem;letter-spacing:1px;cursor:pointer;border-radius:4px;transition:all .3s ease;text-transform:uppercase}.switch-button:hover{background-color:#00ffcc1a;border-color:#0fc;color:#fff;box-shadow:0 0 10px #00ffcc4d}.verification-message{padding:40px 30px;text-align:center}.success-icon{width:60px;height:60px;background:linear-gradient(135deg,#0fc,#0c9);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;color:#000;margin:0 auto 20px;animation:successPulse 2s infinite}@keyframes successPulse{0%,to{transform:scale(1);box-shadow:0 0 #00ffccb3}50%{transform:scale(1.05);box-shadow:0 0 0 10px #0fc0}}.verification-message h3{color:#0fc;font-family:Courier New,Courier,monospace;font-size:1.3rem;margin:0 0 20px;letter-spacing:1px}.verification-message p{color:#fffc;font-family:Courier New,Courier,monospace;font-size:.9rem;line-height:1.5;margin:0 0 15px}.email-highlight{color:#0fc!important;font-weight:700;font-size:1rem!important;background:#00ffcc1a;padding:8px 12px;border-radius:4px;border:1px solid rgba(0,255,204,.3);margin:15px 0!important}.note{color:#ff6b6b!important;font-style:italic;font-size:.85rem!important;background:#ff6b6b1a;padding:10px;border-radius:4px;border-left:3px solid #ff6b6b}.verification-button{background:linear-gradient(135deg,#0fc3,#00ffcc1a);border:1px solid rgba(0,255,204,.4);color:#0fc;padding:12px 24px;font-family:Courier New,Courier,monospace;font-size:.9rem;font-weight:700;letter-spacing:1px;cursor:pointer;border-radius:4px;transition:all .3s ease;text-transform:uppercase;margin-top:20px}.verification-button:hover{background:linear-gradient(135deg,#00ffcc4d,#0fc3);border-color:#0fc;color:#fff;box-shadow:0 0 15px #0fc6}.resend-option{margin:20px 0;padding:15px;background:#00ffcc0d;border:1px solid rgba(0,255,204,.2);border-radius:4px;text-align:center}.resend-option p{color:#fffc;margin:0 0 10px;font-size:.85rem;font-family:Courier New,Courier,monospace}.resend-button{background:linear-gradient(135deg,#ffc1071a,#ffc1070d);border:1px solid rgba(255,193,7,.4);color:#ffc107;padding:10px 16px;font-family:Courier New,Courier,monospace;font-size:.8rem;font-weight:700;letter-spacing:1px;cursor:pointer;border-radius:4px;transition:all .3s ease;text-transform:uppercase;width:100%}.resend-button:hover{background:linear-gradient(135deg,#ffc10733,#ffc1071a);border-color:#ffc107;color:#fff;box-shadow:0 0 10px #ffc1074d}.resend-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 480px){.signup-modal{margin:20px;max-width:none}.signup-form{padding:20px}.modal-footer{padding:15px 20px 20px}.verification-message{padding:30px 20px}.success-icon{width:50px;height:50px;font-size:25px}.verification-message h3{font-size:1.1rem}}html,body{margin:0;padding:0;height:100%;width:100%;overflow:hidden;background-color:#0a0a0a;font-family:Courier New,Courier,monospace;color:#fff;position:relative;perspective:1000px}body:before{content:"";position:fixed;top:-100%;left:-100%;right:-100%;bottom:-100%;background:linear-gradient(90deg,rgba(0,255,204,.07) 1px,transparent 1px),linear-gradient(rgba(0,255,204,.07) 1px,transparent 1px);background-size:40px 40px;transform:perspective(500px) rotateX(45deg) scale(2);animation:gridMove 20s linear infinite;z-index:-2}body:after{content:"";position:fixed;top:-100%;left:-100%;right:-100%;bottom:-100%;background:linear-gradient(90deg,rgba(0,255,204,.03) 1px,transparent 1px),linear-gradient(rgba(0,255,204,.03) 1px,transparent 1px);background-size:20px 20px;transform:perspective(500px) rotateX(45deg) scale(2.5);animation:gridMove 15s linear infinite reverse;z-index:-2;opacity:.5}.horizontal-grid{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg,transparent 0%,transparent 49%,rgba(0,255,204,.05) 49.5%,transparent 50%);background-size:100% 40px;animation:horizMove 10s linear infinite;z-index:-1;pointer-events:none}@keyframes horizMove{0%{background-position:0 0}to{background-position:0 40px}}.glow-orb{position:fixed;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(0,255,204,.15) 0%,transparent 70%);filter:blur(20px);z-index:-1;opacity:.6;animation:pulsate 8s infinite alternate;pointer-events:none}.glow-orb:nth-child(1){top:-150px;left:-150px;animation-delay:0s}.glow-orb:nth-child(2){bottom:-100px;right:-100px;width:400px;height:400px;animation-delay:2s}@keyframes pulsate{0%{opacity:.3;transform:scale(1)}to{opacity:.7;transform:scale(1.2)}}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;position:relative;z-index:1}.login-card{width:100%;max-width:420px;background-color:#0a0a0acc;border-radius:8px;box-shadow:0 8px 32px #00ffcc26;overflow:hidden;border:1px solid rgba(0,255,204,.3);animation:cardGlow 4s infinite alternate;position:relative;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}@keyframes cardGlow{0%{box-shadow:0 8px 32px #00ffcc26}to{box-shadow:0 8px 32px #0fc6}}.login-header{padding:20px;text-align:center;border-bottom:1px solid rgba(0,255,204,.2);background-color:#0006;position:relative;overflow:hidden}.login-header:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background-color:#00ffcc80;box-shadow:0 0 8px 2px #00ffcc4d;animation:scanline 2s linear infinite}@keyframes scanline{0%{transform:translateY(-20px)}to{transform:translateY(70px)}}.login-logo{width:180px;height:auto;margin-bottom:15px}.login-header h2{color:#0fc;font-family:Courier New,Courier,monospace;margin:0;font-size:1.5rem;letter-spacing:1px;text-transform:uppercase;font-weight:400}.login-form{padding:30px 25px}.input-group{margin-bottom:25px}.input-group label{display:block;color:#0fc;margin-bottom:8px;font-size:14px;font-family:Courier New,Courier,monospace;letter-spacing:1px}.input-wrapper{position:relative}.input-wrapper input{width:100%;padding:12px 15px;background-color:#00000080;border:none;border-radius:4px;color:#fff;font-family:Courier New,Courier,monospace;font-size:16px;transition:all .3s;box-sizing:border-box}.input-wrapper input:focus{outline:none;box-shadow:0 0 0 2px #00ffcc4d}.input-wrapper input::placeholder{color:#555}.input-border{position:absolute;bottom:0;left:0;height:2px;width:0;background-color:#0fc;transition:width .3s}.input-wrapper input:focus+.input-border{width:100%}.error-message{background-color:#ff00001a;border-left:3px solid #ff3333;color:#f66;padding:10px;margin-bottom:20px;font-family:Courier New,Courier,monospace;font-size:14px}.login-button{width:100%;padding:14px;background-color:#0fc3;color:#0fc;border:1px solid #00ffcc;border-radius:4px;font-family:Courier New,Courier,monospace;font-size:16px;cursor:pointer;transition:all .3s;letter-spacing:2px;position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center;height:50px}.login-button:hover{background-color:#00ffcc4d}.login-button:disabled{opacity:.7;cursor:not-allowed}.login-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(0,255,204,.2),transparent);transition:left .5s}.login-button:hover:before{left:100%}.button-spinner{width:20px;height:20px;border:2px solid transparent;border-top-color:#0fc;border-radius:50%;animation:spin 1s linear infinite}.login-footer{display:flex;align-items:center;justify-content:center;padding:15px;background-color:#0006;border-top:1px solid rgba(0,255,204,.2);color:#0fcc;font-family:Courier New,Courier,monospace;font-size:12px}.status-indicator{width:10px;height:10px;background-color:#0fc;border-radius:50%;margin-right:10px;animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 #00ffccb3}70%{box-shadow:0 0 0 6px #0fc0}to{box-shadow:0 0 #0fc0}}.signup-section{padding:20px 25px;text-align:center;border-top:1px solid rgba(0,255,204,.1);background-color:#0003}.signup-section p{color:#ffffffb3;margin:0 0 15px;font-size:14px;font-family:Courier New,Courier,monospace}.signup-link{background:none;border:1px solid rgba(0,255,204,.4);color:#0fc;padding:10px 20px;font-family:Courier New,Courier,monospace;font-size:12px;letter-spacing:1px;cursor:pointer;border-radius:4px;transition:all .3s ease;text-transform:uppercase}.signup-link:hover{background-color:#00ffcc1a;border-color:#0fc;color:#fff;box-shadow:0 0 10px #00ffcc4d}body,html{margin:0;padding:0;height:100%;font-family:Courier New,Courier,monospace;background-color:#0d0d0d;color:#0fc;display:flex;flex-direction:column;overflow:hidden}#map{flex:1;width:100%;height:100%;border:0px;position:relative;z-index:1;margin-top:60px}svg{width:100%;height:100%}.app-header{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:10px 220px 10px 30px;background-color:#000c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-bottom:1px solid #00ffcc;z-index:1000;height:60px}.header-left,.header-right,.header-center{display:flex;align-items:center;flex-direction:row}.header-left{flex:1;justify-content:flex-start}.header-center{flex:3;justify-content:center;gap:20px}.header-right{flex:1;justify-content:flex-end;display:flex;align-items:center}.logo img{width:120px;height:auto;margin:0}.user-info{display:flex;align-items:center;gap:12px;margin-left:15px;padding-left:15px;border-left:1px solid rgba(0,255,204,.3)}.user-details{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.user-name{font-size:14px;color:#0fc;font-weight:700;font-family:Courier New,Courier,monospace;white-space:nowrap}.user-email{font-size:12px;color:#0ac;font-family:Courier New,Courier,monospace;opacity:.8;white-space:nowrap}.logout-button{padding:6px 12px;font-size:12px;background-color:#f003;color:#f66;border:1px solid #ff6666;border-radius:4px;cursor:pointer;transition:all .3s ease;font-family:Courier New,Courier,monospace;white-space:nowrap}.logout-button:hover{background-color:#ff00004d;color:#f88;border-color:#f88}.logout-button:active{transform:scale(.95)}#user-ip-info{font-size:14px;color:#0fc;font-family:Courier New,Courier,monospace;background-color:#00000080;padding:5px 10px;border-radius:5px;text-align:right;white-space:nowrap;max-width:180px}#search-form{width:50%;max-width:600px;display:flex;align-items:center;margin:0}#search-form label{margin-bottom:5px;color:#0fc;font-size:14px}.search-container{display:flex;align-items:center;flex-wrap:nowrap;gap:5px;width:100%}#search-bar{flex:1;min-width:200px;padding:8px;font-size:14px;border:1px solid #00ffcc;border-radius:5px;background-color:#00000080;color:#0fc;outline:none;text-align:center;font-family:Courier New,Courier,monospace}#search-bar::placeholder{color:#0fc;opacity:.5}#search-form button[type=submit]{padding:7px;font-size:16px;background-color:#0fc3;color:#0fc;border:1px solid #00ffcc;border-radius:5px;cursor:pointer;transition:background-color .3s;font-family:Courier New,Courier,monospace}#search-form button[type=submit]:hover{background-color:#00ffcc4d}.view-results-button{background-color:#10b981;color:#000;border:none;padding:10px 16px;border-radius:5px;cursor:pointer;font-size:14px;transition:background-color .2s;white-space:nowrap;font-family:Courier New,Courier,monospace}.view-results-button:hover{background-color:#076244}.service-status-button{padding:8px 12px;border-radius:4px;border:none;font-size:14px;cursor:pointer;transition:all .3s ease;background-color:#3a3a3a;color:#000;font-family:Courier New,Courier,monospace;display:flex;align-items:center;justify-content:center;min-width:180px;position:relative;box-shadow:0 2px 4px #0003}.service-status-button:hover{background-color:#4a4a4a}.service-status-button:disabled{cursor:not-allowed;opacity:.7}.service-status-button.running{background-color:#10b981;color:#000}.service-status-button.error{background-color:#ef4444;color:#fff}.status-error{margin-top:5px;font-size:12px;color:#ef4444;max-width:180px;word-wrap:break-word;background-color:#000000b3;padding:5px;border-radius:4px}.service-status-button:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;background-color:#6b7280}.service-status-button.running:before{background-color:#10b981;box-shadow:0 0 8px #10b981}.service-status-button.error:before{background-color:#ef4444;box-shadow:0 0 8px #ef4444}.table-container-wrapper{width:100%;position:absolute;bottom:0;left:0;z-index:10}.table-container-wrapper.collapsed{background:transparent;border:none}.table-container-wrapper .table-header{display:flex;justify-content:space-between;align-items:center;background-color:#1a1a1a;padding:12px 16px;border-top-left-radius:6px;border-top-right-radius:6px;border:1px solid #333}.table-container-wrapper .table-content{max-height:40vh;overflow-y:auto;background-color:#1a1a1a;border:1px solid #333;border-top:none}.table-container-wrapper.collapsed .table-header{border-radius:6px}.table-container-wrapper table{width:100%;border-collapse:collapse}.table-container-wrapper th{position:sticky;top:0;background-color:#333;padding:10px;text-align:left;color:#ddd}.table-container-wrapper td{padding:8px 10px;border-top:1px solid #333}.table-header h3{margin:0;color:#0fc;font-size:1.2rem}.collapse-button{background-color:#333;color:#fff;border:none;width:28px;height:28px;border-radius:4px;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.collapse-button:hover{background-color:#444}.spinner{width:40px;height:40px;margin-bottom:15px;border:3px solid rgba(0,255,204,.3);border-radius:50%;border-top-color:#0fc;animation:spin 1s linear infinite;box-shadow:0 0 10px #00ffcc80}.loading-popup{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000e6;display:flex;justify-content:center;align-items:center;z-index:9999}.loading-content{display:flex;flex-direction:column;align-items:center;padding:2rem;color:#0fc;text-align:center;font-family:Courier New,Courier,monospace;background-color:#000000b3;border:1px solid #00ffcc;border-radius:8px;box-shadow:0 0 20px #00ffcc4d}.loading-content p{margin-top:10px;font-size:16px;letter-spacing:1px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000bf;display:flex;justify-content:center;align-items:center;z-index:9999}.modal-content{background-color:#1a1a1a;border-radius:8px;width:90%;max-width:700px;max-height:80vh;box-shadow:0 4px 20px #00000080;border:1px solid #333;color:#fff;animation:modalFadeIn .3s ease-out;display:flex;flex-direction:column;overflow:hidden}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #333;flex-shrink:0}.modal-header h3{margin:0;font-size:1.3rem;color:#0fc}.modal-close{background:none;border:none;color:#999;font-size:1.5rem;cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:#0fc}.modal-body{padding:20px;overflow-y:auto;flex-grow:1}.modal-footer{padding:15px 20px;border-top:1px solid #333;display:flex;justify-content:flex-end;gap:10px;flex-shrink:0;background-color:#1a1a1a}.modal-button{background-color:#333;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;transition:background-color .2s}.modal-button:hover{background-color:#444}.latency-result-item{display:flex;justify-content:space-between;margin-bottom:12px}.latency-result-item h3{width:100%;margin-top:0;margin-bottom:10px;color:#0fc;text-align:center}.result-label{font-weight:400;color:#ccc}.result-value{font-weight:700}.result-value.highlight{color:#0fc;font-size:1.1em}.latency-divider{height:1px;background-color:#333;margin:20px 0}.latency-status{display:flex;align-items:center;margin-top:20px;padding-top:15px;border-top:1px solid #333}.status-indicator{width:12px;height:12px;border-radius:50%;margin-right:10px}.status-indicator.success{background-color:#4caf50}.status-indicator.failure{background-color:#f44336}.refresh-button,.modal-button{background-color:#0fc3;border:1px solid #00ffcc;color:#0fc;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s ease}.refresh-button:hover,.modal-button:hover{background-color:#0fc6}.refresh-button:before{content:"↻";margin-right:6px;font-size:14px}.clearip-button,.modal-button{background-color:#0fc3;border:1px solid #00ffcc;color:#0fc;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s ease}.clearip-button:hover,.modal-button:hover{background-color:#0fc6}.clearip-button:before{content:"↻";margin-right:6px;font-size:14px}.tooltip{position:absolute;text-align:center;width:auto;height:auto;padding:5px;font:12px Courier New,Courier,monospace;background:#000000b3;color:#fff;border:1px solid rgba(0,255,204,.3);border-radius:8px;pointer-events:none;z-index:1000}.pulse{animation:pulse 2s infinite}.breath{animation:breath 2s infinite}@keyframes pulse{0%{r:10;opacity:1}50%{r:15;opacity:.5}to{r:10;opacity:1}}@keyframes breath{0%{r:5;opacity:1}50%{r:7;opacity:.5}to{r:5;opacity:1}}.loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;background-color:#0d0d0d;color:#0fc;font-family:Courier New,Courier,monospace}.loading-container .spinner{width:40px;height:40px;margin-bottom:15px;border:3px solid rgba(0,255,204,.3);border-radius:50%;border-top-color:#0fc;animation:spin 1s linear infinite;box-shadow:0 0 10px #00ffcc80}.loading-container p{font-size:16px;letter-spacing:1px}.session-timer{position:static;display:flex;align-items:center;background-color:#000000b3;height:auto;min-height:24px;padding:5px 15px;width:auto;margin-left:50px;border-radius:4px;color:#0fc;font-family:Courier New,Courier,monospace;font-size:12px;border:1px solid rgba(0,255,204,.3);transition:all .3s}.session-timer.warning{color:#ff6b6b;border-color:#ff6b6b80;animation:pulse-warning 1s infinite alternate}@keyframes pulse-warning{0%{background-color:#000000b3}to{background-color:#f003}}.timer-icon{width:14px;height:14px;border:1px solid currentColor;border-radius:50%;margin-right:8px;position:relative;display:inline-block;flex-shrink:0}.timer-icon:before{content:"";position:absolute;top:50%;left:50%;height:5px;width:1px;background-color:currentColor;transform:translate(-50%,-100%);transform-origin:bottom center;animation:rotate 15s linear infinite}@keyframes rotate{0%{transform:translate(-50%,-100%) rotate(0)}to{transform:translate(-50%,-100%) rotate(360deg)}}.zoom-controls{position:absolute;bottom:400px;right:20px;display:flex;flex-direction:column;gap:10px;z-index:100}.zoom-button{width:40px;height:40px;border-radius:50%;background-color:#000000b3;border:1px solid #00ffcc;color:#0fc;font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;box-shadow:0 2px 5px #0000004d,0 0 #0fc0}.zoom-button:hover{background-color:#0fc3;transform:scale(1.05);box-shadow:0 4px 8px #0000004d,0 0 12px #00ffcc4d}.zoom-button:active{transform:scale(.95)}.zoom-reset{font-size:18px}#map{cursor:grab}#map:active{cursor:grabbing}#map svg{width:100%;height:100%}.cyberpunk-loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0a0a0a;z-index:9999;display:flex;justify-content:center;align-items:center;overflow:hidden;perspective:1000px}.loading-grid{position:absolute;top:-100%;left:-100%;right:-100%;bottom:-100%;background:linear-gradient(90deg,rgba(0,255,204,.07) 1px,transparent 1px),linear-gradient(rgba(0,255,204,.07) 1px,transparent 1px);background-size:40px 40px;transform:perspective(500px) rotateX(45deg) scale(2);animation:gridMove 20s linear infinite;z-index:0}@keyframes gridMove{0%{transform:perspective(500px) rotateX(45deg) translateY(0) scale(2)}to{transform:perspective(500px) rotateX(45deg) translateY(40px) scale(2)}}.loading-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:100%;max-width:500px}.hex-container{position:relative;width:150px;height:150px;margin-bottom:40px}.hex-border{position:absolute;top:0;left:0;width:100%;height:100%;background-color:transparent;border:4px solid #00ffcc;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);opacity:.4;animation:hexRotate 3s linear infinite,hexPulse 2s ease-in-out infinite}@keyframes hexRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes hexPulse{0%{opacity:.2;transform:scale(.8)}50%{opacity:.6;transform:scale(1.2)}to{opacity:.2;transform:scale(.8)}}.spinner{position:absolute;top:25px;left:25px;width:100px;height:100px;border:4px solid transparent;border-top-color:#0fc;border-radius:50%;animation:spin 1s linear infinite;box-shadow:0 0 15px #00ffcc80}.spinner:before,.spinner:after{content:"";position:absolute;border:4px solid transparent;border-radius:50%}.spinner:before{top:5px;left:5px;right:5px;bottom:5px;border-top-color:#0fc;animation:spin 2s linear infinite}.spinner:after{top:15px;left:15px;right:15px;bottom:15px;border-top-color:#0fc;animation:spin 3s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{display:flex;flex-direction:column;align-items:center;width:100%}.glitch-text{position:relative;font-family:Courier New,monospace;font-size:24px;font-weight:700;text-transform:uppercase;color:#0fc;letter-spacing:2px;margin-bottom:20px;animation:glitchText 2s infinite}.glitch-text:before,.glitch-text:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%}.glitch-text:before{left:2px;text-shadow:-1px 0 #ff00de;clip:rect(44px,450px,56px,0);animation:glitch-anim-1 5s infinite linear alternate-reverse}.glitch-text:after{left:-2px;text-shadow:-1px 0 #00b3ff;clip:rect(44px,450px,46px,0);animation:glitch-anim-2 5s infinite linear alternate-reverse}@keyframes glitchText{0%,80%,to{text-shadow:0 0 5px #00ffcc,0 0 10px #00ffcc}20%,60%{text-shadow:0 0 5px #ff00de,0 0 10px #ff00de,0 0 15px #ff00de}40%{text-shadow:0 0 5px #00b3ff,0 0 10px #00b3ff,0 0 15px #00b3ff}}@keyframes glitch-anim-1{0%{clip:rect(12px,9999px,52px,0)}5%{clip:rect(65px,9999px,98px,0)}10%{clip:rect(82px,9999px,43px,0)}15%{clip:rect(32px,9999px,54px,0)}20%{clip:rect(31px,9999px,9px,0)}25%{clip:rect(94px,9999px,58px,0)}30%{clip:rect(23px,9999px,35px,0)}35%{clip:rect(69px,9999px,80px,0)}40%{clip:rect(88px,9999px,71px,0)}45%{clip:rect(25px,9999px,56px,0)}50%{clip:rect(23px,9999px,98px,0)}55%{clip:rect(13px,9999px,55px,0)}60%{clip:rect(76px,9999px,98px,0)}65%{clip:rect(43px,9999px,12px,0)}70%{clip:rect(67px,9999px,78px,0)}75%{clip:rect(32px,9999px,15px,0)}80%{clip:rect(39px,9999px,5px,0)}85%{clip:rect(45px,9999px,35px,0)}90%{clip:rect(9px,9999px,87px,0)}95%{clip:rect(25px,9999px,33px,0)}to{clip:rect(54px,9999px,36px,0)}}@keyframes glitch-anim-2{0%{clip:rect(87px,9999px,29px,0)}5%{clip:rect(28px,9999px,64px,0)}10%{clip:rect(50px,9999px,16px,0)}15%{clip:rect(43px,9999px,98px,0)}20%{clip:rect(46px,9999px,23px,0)}25%{clip:rect(36px,9999px,67px,0)}30%{clip:rect(72px,9999px,85px,0)}35%{clip:rect(35px,9999px,68px,0)}40%{clip:rect(65px,9999px,21px,0)}45%{clip:rect(58px,9999px,73px,0)}50%{clip:rect(82px,9999px,52px,0)}55%{clip:rect(31px,9999px,87px,0)}60%{clip:rect(13px,9999px,56px,0)}65%{clip:rect(82px,9999px,15px,0)}70%{clip:rect(43px,9999px,59px,0)}75%{clip:rect(71px,9999px,26px,0)}80%{clip:rect(38px,9999px,56px,0)}85%{clip:rect(54px,9999px,70px,0)}90%{clip:rect(35px,9999px,21px,0)}95%{clip:rect(92px,9999px,48px,0)}to{clip:rect(30px,9999px,94px,0)}}.percentage{display:flex;align-items:baseline;margin-bottom:10px;font-family:Courier New,monospace}.percentage-number{font-size:48px;font-weight:700;color:#0fc;position:relative}.percentage-number:after{content:none}@keyframes countUp{0%{counter-reset:percent 0}to{counter-reset:percent 100}}.percentage-symbol{font-size:24px;margin-left:2px;color:#0fc}.loading-bar{width:100%;height:4px;background-color:#00ffcc1a;border-radius:2px;margin-bottom:16px;position:relative;overflow:hidden}.loading-bar-progress{position:absolute;top:0;left:0;height:100%;width:0%;background-color:#0fc;box-shadow:0 0 10px #00ffcc80;transition:width .3s ease-out}.status-text{font-family:Courier New,monospace;font-size:14px;color:#0fcc;letter-spacing:1px;text-align:center;position:relative;animation:statusText 6s linear infinite}@keyframes statusText{0%,to{opacity:1}20%{opacity:1}23%{opacity:0}26%{opacity:1}50%{opacity:1}52%{opacity:0}54%{opacity:1}56%{opacity:0}58%{opacity:1}}.ip-history-section{margin-top:10px}.history-table-container{max-height:200px;overflow-y:auto;margin-top:10px}.history-table{width:100%;border-collapse:collapse;font-size:14px}.history-table th,.history-table td{padding:8px 10px;text-align:left;border-bottom:1px solid rgba(0,255,204,.3)}.history-table th{background-color:#0006;color:#0fc;font-weight:500;position:sticky;top:0;z-index:1}.history-table tr:hover{background-color:#00ffcc1a}.positive{color:#4caf50}.negative{color:#f44336}.recheck-button{background-color:#0fc3;border:1px solid #00ffcc;color:#0fc;padding:3px 8px;border-radius:3px;cursor:pointer;font-size:12px;transition:all .2s ease}.recheck-button:hover{background-color:#0fc6}.history-table-container::-webkit-scrollbar{width:6px}.history-table-container::-webkit-scrollbar-track{background:#0000004d}.history-table-container::-webkit-scrollbar-thumb{background-color:#00ffcc80;border-radius:3px}.history-table tr.pending-entry{background-color:#00ffcc0d}.history-table tr.pending-entry td{color:#fff9;font-style:italic}.service-unavailable-message{text-align:center;padding:30px 20px;background-color:#f443361a;border-radius:8px;margin:20px 0}.error-icon{font-size:32px;margin-bottom:15px}.service-unavailable-message h3{color:#ef4444;margin-bottom:15px;font-size:1.5rem}.service-unavailable-message p{color:#fffc;margin-bottom:10px;font-size:14px}.error-details{display:block;background-color:#0000004d;padding:10px;border-radius:4px;margin-top:10px;font-family:monospace;color:#fcc;word-break:break-word;font-size:12px}
