:root{--primary: #2563eb;--primary-hover: #1d4ed8;--secondary: #64748b;--bg-sidebar: #ffffff;--bg-app: #f8fafc;--text-main: #0f172a;--text-muted: #64748b;--danger: #ef4444;--success: #22c55e;--border: #e2e8f0;--shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1)}*,*:before,*:after{box-sizing:border-box}html,body,#root,.App{height:100vh;width:100vw;margin:0;padding:0;overflow:hidden;font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-app);color:var(--text-main)}.App{display:flex;flex-direction:column}.app-header{background-color:#fff;border-bottom:1px solid var(--border);padding:.75rem 1.5rem;z-index:2000;box-shadow:0 1px 2px #0000000d}.main-content{display:flex;flex:1;overflow:hidden}.sidebar{width:450px;min-width:300px;max-width:800px;background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;box-shadow:var(--shadow);z-index:1001;resize:horizontal;overflow:hidden}.sidebar-header{padding:1.5rem;border-bottom:1px solid var(--border)}.sidebar-content{flex:1;overflow-y:auto;padding:1.5rem}.input-group{margin-bottom:1rem}.input-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem;color:var(--secondary)}.input-group input{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:.375rem;font-size:1rem;transition:border-color .2s}.input-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:.375rem;font-weight:500;cursor:pointer;transition:all .2s;border:none;gap:.5rem;width:100%}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.btn-success{background-color:var(--success);color:#fff}.card{background:#fff;border:1px solid var(--border);border-radius:.5rem;padding:1rem;margin-bottom:1rem;transition:transform .2s}.card-hit{border-left:4px solid var(--danger);background:#fef2f2}.card-ok{border-left:4px solid var(--success);background:#f0fdf4}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}}.leaflet-container.crosshair-cursor-override,.leaflet-container.crosshair-cursor-override .leaflet-interactive{cursor:crosshair!important}body.bplan-active .map-compass-overlay,body.bplan-active .map-legend-overlay{display:none!important}.leaflet-draw-actions a{font-size:14px!important;padding:8px 12px!important;line-height:1.5!important}.leaflet-draw-toolbar a{background-image:url(https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/images/spritesheet.svg)!important}.leaflet-retina .leaflet-draw-toolbar a{background-image:url(https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/images/spritesheet-2x.png)!important}#ag-buffer-btn{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><text x="50%" y="54%" dominant-baseline="middle" text-anchor="middle" font-size="16">🚧</text></svg>')!important;background-size:24px 24px!important;background-position:center!important;background-repeat:no-repeat!important;display:block;background-color:#fff;border-bottom:1px solid #ccc!important}#ag-buffer-btn.active{background-color:#fde047!important}#ag-exclusion-poly-btn{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><text x="50%" y="54%" dominant-baseline="middle" text-anchor="middle" font-size="16">🚫</text></svg>')!important;background-size:24px 24px!important;background-position:center!important;background-repeat:no-repeat!important;display:block;background-color:#fff;border-bottom:none!important}#ag-exclusion-poly-btn.active{background-color:#fca5a5!important}#ag-bess-poly-btn{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><text x="50%" y="54%" dominant-baseline="middle" text-anchor="middle" font-size="16">🔋</text></svg>')!important;background-size:24px 24px!important;background-position:center!important;background-repeat:no-repeat!important;display:block;background-color:#fff;border-bottom:1px solid #ccc!important}#ag-bess-poly-btn.active{background-color:#86efac!important}#ag-identify-btn{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23333333" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="7"></circle><line x1="21" y1="21" x2="16" y2="16"></line></svg>')!important;background-size:16px 16px!important;background-position:center!important;background-repeat:no-repeat!important;display:block;background-color:#fff;border-bottom:none!important}#ag-identify-btn.active{background-color:#93c5fd!important}.leaflet-container.buffer-drawing-mode,.leaflet-container.ag-native-drawing-mode{cursor:crosshair!important}.leaflet-container.ag-native-drawing-mode .leaflet-aiBlock1-pane,.leaflet-container.ag-native-drawing-mode .leaflet-aiBlock1-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-aiBlock1-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-aiBlock1-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-aiBlock1Pane-pane,.leaflet-container.ag-native-drawing-mode .leaflet-aiBlock1Pane-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-aiBlock1Pane-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-aiBlock1Pane-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-aiBufferBlock2-pane,.leaflet-container.ag-native-drawing-mode .leaflet-aiBufferBlock2-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-aiBufferBlock2-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-aiBufferBlock2-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-aiRouteBlock2-pane,.leaflet-container.ag-native-drawing-mode .leaflet-aiRouteBlock2-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-aiRouteBlock2-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-aiRouteBlock2-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-constraintsLayer-pane,.leaflet-container.ag-native-drawing-mode .leaflet-constraintsLayer-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-constraintsLayer-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-constraintsLayer-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-constraintsLayerPane-pane,.leaflet-container.ag-native-drawing-mode .leaflet-constraintsLayerPane-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-constraintsLayerPane-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-constraintsLayerPane-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-layoutLayer-pane,.leaflet-container.ag-native-drawing-mode .leaflet-layoutLayer-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-layoutLayer-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-layoutLayer-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-layoutLayerPane-pane,.leaflet-container.ag-native-drawing-mode .leaflet-layoutLayerPane-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-layoutLayerPane-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-layoutLayerPane-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-shadow-pane-pane,.leaflet-container.ag-native-drawing-mode .leaflet-shadow-pane-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-shadow-pane-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-shadow-pane-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-glare-pane-pane,.leaflet-container.ag-native-drawing-mode .leaflet-glare-pane-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-glare-pane-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-glare-pane-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-op-pane-pane,.leaflet-container.ag-native-drawing-mode .leaflet-op-pane-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-op-pane-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-op-pane-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-cabins-pane,.leaflet-container.ag-native-drawing-mode .leaflet-cabins-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-cabins-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-cabins-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-cabinsPane-pane,.leaflet-container.ag-native-drawing-mode .leaflet-cabinsPane-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-cabinsPane-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-cabinsPane-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-gsePoints-pane,.leaflet-container.ag-native-drawing-mode .leaflet-gsePoints-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-gsePoints-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-gsePoints-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-gsePointsPane-pane,.leaflet-container.ag-native-drawing-mode .leaflet-gsePointsPane-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-gsePointsPane-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-gsePointsPane-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-catasto-pane,.leaflet-container.ag-native-drawing-mode .leaflet-catasto-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-catasto-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-catasto-pane .leaflet-interactive,.leaflet-container.ag-native-drawing-mode .leaflet-catastoPane-pane,.leaflet-container.ag-native-drawing-mode .leaflet-catastoPane-pane canvas,.leaflet-container.ag-native-drawing-mode .leaflet-catastoPane-pane svg,.leaflet-container.ag-native-drawing-mode .leaflet-catastoPane-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-aiBlock1-pane,.leaflet-container.buffer-drawing-mode .leaflet-aiBlock1-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-aiBlock1-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-aiBlock1-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-aiBlock1Pane-pane,.leaflet-container.buffer-drawing-mode .leaflet-aiBlock1Pane-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-aiBlock1Pane-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-aiBlock1Pane-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-aiBufferBlock2-pane,.leaflet-container.buffer-drawing-mode .leaflet-aiBufferBlock2-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-aiBufferBlock2-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-aiBufferBlock2-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-aiRouteBlock2-pane,.leaflet-container.buffer-drawing-mode .leaflet-aiRouteBlock2-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-aiRouteBlock2-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-aiRouteBlock2-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-constraintsLayer-pane,.leaflet-container.buffer-drawing-mode .leaflet-constraintsLayer-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-constraintsLayer-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-constraintsLayer-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-constraintsLayerPane-pane,.leaflet-container.buffer-drawing-mode .leaflet-constraintsLayerPane-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-constraintsLayerPane-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-constraintsLayerPane-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-layoutLayer-pane,.leaflet-container.buffer-drawing-mode .leaflet-layoutLayer-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-layoutLayer-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-layoutLayer-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-layoutLayerPane-pane,.leaflet-container.buffer-drawing-mode .leaflet-layoutLayerPane-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-layoutLayerPane-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-layoutLayerPane-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-shadow-pane-pane,.leaflet-container.buffer-drawing-mode .leaflet-shadow-pane-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-shadow-pane-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-shadow-pane-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-glare-pane-pane,.leaflet-container.buffer-drawing-mode .leaflet-glare-pane-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-glare-pane-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-glare-pane-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-op-pane-pane,.leaflet-container.buffer-drawing-mode .leaflet-op-pane-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-op-pane-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-op-pane-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-cabins-pane,.leaflet-container.buffer-drawing-mode .leaflet-cabins-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-cabins-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-cabins-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-cabinsPane-pane,.leaflet-container.buffer-drawing-mode .leaflet-cabinsPane-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-cabinsPane-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-cabinsPane-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-gsePoints-pane,.leaflet-container.buffer-drawing-mode .leaflet-gsePoints-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-gsePoints-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-gsePoints-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-gsePointsPane-pane,.leaflet-container.buffer-drawing-mode .leaflet-gsePointsPane-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-gsePointsPane-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-gsePointsPane-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-catasto-pane,.leaflet-container.buffer-drawing-mode .leaflet-catasto-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-catasto-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-catasto-pane .leaflet-interactive,.leaflet-container.buffer-drawing-mode .leaflet-catastoPane-pane,.leaflet-container.buffer-drawing-mode .leaflet-catastoPane-pane canvas,.leaflet-container.buffer-drawing-mode .leaflet-catastoPane-pane svg,.leaflet-container.buffer-drawing-mode .leaflet-catastoPane-pane .leaflet-interactive{pointer-events:none!important}.force-scrollbar::-webkit-scrollbar{width:18px;background:#2a2a2a;border-left:1px solid #444}.force-scrollbar::-webkit-scrollbar-thumb{background:#888;border-radius:8px;border:4px solid #2a2a2a}.force-scrollbar::-webkit-scrollbar-thumb:hover{background:#aaa}@media(max-width:768px){.main-content{flex-direction:row}.sidebar{border-right:none;border-top:none}.leaflet-draw-toolbar{transform:scale(1.1)!important;transform-origin:top right!important;margin-right:8px!important;margin-top:8px!important}.leaflet-draw-actions{transform:scale(.9)!important;left:-5px!important}.custom-tools-ag>div:last-child{height:15px!important}.map-compass-overlay{bottom:80px!important;left:12px!important;transform:scale(.85)!important;transform-origin:bottom left!important}.sidebar-toggle-btn-floating{bottom:12px!important;left:12px!important;padding:10px 20px!important;font-size:.9rem!important;box-shadow:0 4px 15px #2563eb4d!important}}.leaflet-tooltip.buffer-label{font-size:9px!important;padding:2px 5px!important;font-weight:500!important;background:#ffffff40!important;border:1px solid rgba(0,0,0,.1)!important;box-shadow:none!important;color:#1e293bcc!important;-webkit-backdrop-filter:blur(2px)!important;backdrop-filter:blur(2px)!important;text-shadow:none!important;border-radius:4px!important}.leaflet-tooltip.buffer-label:before,.leaflet-tooltip.buffer-label:after{display:none!important}.custom-lightning-marker{background:transparent!important;border:none!important}
