*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#1a1a1a;color:#fff;overflow:hidden}.session-modal{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#1a1a1a;display:flex;justify-content:center;align-items:center;z-index:10000}.session-modal.hidden{display:none}.session-content{display:flex;flex-direction:column;align-items:center;gap:40px}.session-logo{height:120px;width:auto;max-width:400px;object-fit:contain}.session-form{display:flex;flex-direction:column;align-items:center;gap:20px}.session-form label{font-size:18px;font-weight:500;color:#ccc}.session-form input{background:#2a2a2a;color:#fff;border:2px solid #4a4a4a;padding:12px 20px;border-radius:6px;font-size:16px;width:300px;outline:none;transition:border-color .2s}.session-form input:focus{border-color:#5a9fd4}.session-form button{background:#5a9fd4;color:#fff;border:none;padding:12px 40px;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s}.session-form button:hover{background:#4a8fc4}.session-form button:active{background:#3a7fb4}#app{width:100vw;height:100vh;display:flex;flex-direction:column}#controls{background:#2a2a2a;padding:12px 20px;display:flex;align-items:center;gap:15px;border-bottom:2px solid #3a3a3a;box-shadow:0 2px 8px #0000004d;z-index:100}#logo{height:36px;width:auto;max-width:180px;object-fit:contain;margin-right:15px}#mapSelector,#sublevelSelector{background:#1a1a1a;color:#fff;border:1px solid #4a4a4a;padding:8px 12px;border-radius:4px;font-size:14px;cursor:pointer;outline:none;transition:border-color .2s,opacity .2s}#mapSelector:hover,#sublevelSelector:hover{border-color:#5a9fd4}#mapSelector:focus,#sublevelSelector:focus{border-color:#5a9fd4}#sublevelSelector.hidden{display:none}#resetZoom,#toggleCalibration{background:#5a9fd4;color:#fff;border:none;padding:8px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:background-color .2s}#resetZoom:hover,#toggleCalibration:hover{background:#4a8fc4}#resetZoom:active,#toggleCalibration:active{background:#3a7fb4}#zoomLevel{margin-left:auto;font-size:14px;color:#aaa;font-weight:500}#calibrationPanel{position:absolute;top:60px;right:20px;width:350px;max-height:calc(100vh - 100px);overflow-y:auto;background:#2a2a2a;border:2px solid #3a3a3a;border-radius:8px;padding:20px;box-shadow:0 4px 16px #00000080;z-index:90;transition:opacity .2s,transform .2s}#calibrationPanel.hidden{opacity:0;pointer-events:none;transform:translate(20px)}#calibrationPanel h3{margin-bottom:20px;font-size:18px;color:#5a9fd4;border-bottom:1px solid #3a3a3a;padding-bottom:10px}#calibrationPanel h4{margin-bottom:10px;font-size:14px;color:#ccc}.calibration-section{margin-bottom:25px}.input-group{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.input-group label{display:flex;align-items:center;gap:10px;font-size:13px}.input-group input[type=number]{flex:1;background:#1a1a1a;color:#fff;border:1px solid #4a4a4a;padding:6px 10px;border-radius:4px;font-size:13px}.slider-group{margin-bottom:15px}.slider-group label{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:13px;color:#ccc}.slider-group label input[type=number]{background:#1a1a1a;color:#5a9fd4;border:1px solid #4a4a4a;padding:4px 8px;border-radius:4px;font-size:13px;font-weight:600;outline:none}.slider-group label input[type=number]:focus{border-color:#5a9fd4}.slider-group span{color:#5a9fd4;font-weight:600}.slider-group input[type=range]{width:100%;height:6px;background:#1a1a1a;border-radius:3px;outline:none;-webkit-appearance:none}.slider-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:#5a9fd4;border-radius:50%;cursor:pointer;transition:background .2s}.slider-group input[type=range]::-webkit-slider-thumb:hover{background:#4a8fc4}.slider-group input[type=range]::-moz-range-thumb{width:16px;height:16px;background:#5a9fd4;border-radius:50%;cursor:pointer;border:none;transition:background .2s}.slider-group input[type=range]::-moz-range-thumb:hover{background:#4a8fc4}#calibrationPanel button{background:#3a3a3a;color:#fff;border:1px solid #4a4a4a;padding:8px 12px;border-radius:4px;font-size:13px;cursor:pointer;margin-right:8px;margin-top:8px;transition:background-color .2s}#calibrationPanel button:hover{background:#4a4a4a}#calibrationPanel button:active{background:#2a2a2a}#calibrationValues{background:#1a1a1a;padding:12px;border-radius:4px;font-size:12px;color:#aaa;font-family:Courier New,monospace;overflow-x:auto}#radar{flex:1;background:#0a0a0a;cursor:grab;display:block}#radar:active{cursor:grabbing}.loading-overlay{position:absolute;top:60px;left:0;right:0;bottom:0;background:#000000d9;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.loading-overlay.hidden{display:none}.loading-content{display:flex;flex-direction:column;align-items:center;gap:24px}.spinner{width:60px;height:60px;border:4px solid rgba(255,255,255,.1);border-top:4px solid #5aa0d4;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.status-text{font-size:20px;font-weight:500;color:#fff;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.5)}@media (max-width: 768px){#controls{padding:8px 12px;gap:8px;flex-wrap:wrap}#logo{height:28px;margin-right:8px}#mapSelector,#sublevelSelector{font-size:12px;padding:6px 10px}#resetZoom,#toggleCalibration{font-size:12px;padding:6px 12px}#zoomLevel{font-size:12px;width:100%;text-align:center;margin-left:0}#calibrationPanel{top:auto;bottom:0;left:0;right:0;width:100%;max-height:50vh;border-radius:12px 12px 0 0;border:none;border-top:2px solid #3a3a3a}#calibrationPanel.hidden{transform:translateY(100%)}.session-logo{height:80px;max-width:90vw}.session-form input{width:80vw;max-width:300px}.loading-overlay{top:0}}@media (max-width: 480px){#controls{padding:6px 8px;gap:6px}#logo{height:24px}#mapSelector,#sublevelSelector{font-size:11px;padding:5px 8px}#resetZoom,#toggleCalibration{font-size:11px;padding:5px 10px}#zoomLevel{font-size:11px}}body{overscroll-behavior:none;touch-action:none;-webkit-overflow-scrolling:touch}#radar{touch-action:none;-webkit-user-select:none;user-select:none}
