* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: Arial, sans-serif; overflow: hidden; } .container { display: flex; height: 100vh; } .toolbar { width: 250px; background: #2c3e50; color: white; padding: 20px; overflow-y: auto; z-index: 1000; } .tool-section { margin-bottom: 30px; } .tool-section h3 { margin-bottom: 10px; font-size: 14px; color: #ecf0f1; } .tool-btn, .action-btn { display: block; width: 100%; padding: 10px; margin-bottom: 5px; background: #34495e; color: white; border: 2px solid transparent; cursor: pointer; border-radius: 4px; font-size: 14px; } .tool-btn:hover, .action-btn:hover { background: #3d566e; } .tool-btn.active { background: #3498db; border-color: #2980b9; } .action-btn { background: #e74c3c; } .action-btn:hover { background: #c0392b; } .color-palette { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; } .color-btn { width: 100%; height: 40px; border: 3px solid transparent; border-radius: 4px; cursor: pointer; } .color-btn.active { border-color: white; box-shadow: 0 0 10px rgba(255, 255, 255, 0.5); } .map-container { flex: 1; position: relative; } #map { width: 100%; height: 100%; } .ruler-display { position: absolute; top: 10px; right: 10px; background: rgba(0, 0, 0, 0.8); color: white; padding: 10px 15px; border-radius: 4px; font-size: 14px; display: none; z-index: 1000; pointer-events: none; } .stats-display { position: absolute; top: 10px; right: 10px; background: rgba(0, 0, 0, 0.8); color: white; padding: 10px 15px; border-radius: 4px; font-size: 14px; z-index: 1000; pointer-events: none; } .sum-display { position: absolute; top: 10px; left: 10px; background: rgba(0, 0, 0, 0.8); color: white; padding: 10px 15px; border-radius: 4px; font-size: 14px; z-index: 1000; pointer-events: none; display: none; } #nodeCount { font-size: 12px; } .node-count-item { display: flex; align-items: center; margin-bottom: 5px; } .node-count-color { width: 20px; height: 20px; border-radius: 50%; margin-right: 8px; border: 2px solid white; } .node-count-text { color: #ecf0f1; } .leaflet-popup-content { margin: 8px; font-size: 13px; } .distance-label { background: white; padding: 4px 8px; border: 2px solid #3498db; border-radius: 3px; font-weight: bold; font-size: 12px; white-space: nowrap; } .node-marker { z-index: 1000 !important; } /* Sidebar toggle button */ .sidebar-toggle { display: none; position: fixed; top: 15px; left: 15px; z-index: 2000; background: #2c3e50; color: white; border: none; padding: 12px; font-size: 18px; border-radius: 5px; cursor: pointer; box-shadow: 0 2px 10px rgba(0,0,0,0.3); } .sidebar-toggle:hover { background: #34495e; } /* Mobile styles */ @media (max-width: 768px) { .sidebar-toggle { display: block; } .toolbar { position: fixed; left: -250px; top: 0; height: 100vh; transition: left 0.3s ease; z-index: 1500; box-shadow: 2px 0 10px rgba(0,0,0,0.3); } .toolbar.open { left: 0; } .map-container { width: 100%; } /* Adjust sum display position on mobile to avoid toggle button */ .sum-display { top: 70px; left: 10px; } /* Overlay when sidebar is open */ .sidebar-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 1400; } .sidebar-overlay.show { display: block; } }