* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); height: 100vh; overflow: hidden; } .header { background: #FFD200; backdrop-filter: blur(10px); padding: 15px 30px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); display: flex; justify-content: space-between; align-items: center; z-index: 1000; position: relative; } .logo { font-size: 24px; font-weight: bold; color: #333; background: linear-gradient(45deg, #667eea, #764ba2); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; justify-content: flex-start; /* aligns everything to the left */ } .controls { display: flex; gap: 15px; align-items: center; } .control-group { display: flex; flex-direction: column; gap: 5px; } .control-group label { font-size: 12px; color: #666; font-weight: 500; } .search-box, .layer-select { padding: 8px 12px; border: 2px solid #e0e0e0; border-radius: 8px; font-size: 14px; transition: all 0.3s ease; background: white; min-width: 150px; } .search-box:focus, .layer-select:focus { outline: none; border-color: #667eea; box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1); } .search-btn { background: linear-gradient(45deg, #667eea, #764ba2); color: white; border: none; padding: 8px 16px; border-radius: 8px; cursor: pointer; font-weight: 500; transition: all 0.3s ease; margin-top: 20px; } .search-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3); } .search-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; } .map-container { position: relative; height: calc(100vh - 80px); overflow: hidden; } .map-panel { position: absolute; top: 0; bottom: 0; overflow: hidden; width: 100%; transition: clip-path 0.3s ease; } .left-panel { left: 0; z-index: 1; clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%); } .right-panel { right: 0; z-index: 2; clip-path: polygon(50% 0, 100% 0, 100% 100%, 50% 100%); } .map { width: 100%; height: 100%; } .panel-label { position: absolute; top: 15px; left: 15px; background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(10px); padding: 8px 16px; border-radius: 20px; font-weight: 600; color: #333; z-index: 1000; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); } .slider-container { position: absolute; top: 0; bottom: 0; width: 4px; background: linear-gradient(to bottom, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.6)); z-index: 1002; cursor: ew-resize; transition: all 0.3s ease; left: 50%; transform: translateX(-50%); } .slider-container:hover { width: 6px; background: linear-gradient(to bottom, rgba(102, 126, 234, 0.8), rgba(102, 126, 234, 0.6)); } .slider-container.dragging { width: 6px; background: linear-gradient(to bottom, rgba(102, 126, 234, 0.9), rgba(102, 126, 234, 0.7)); } .slider-handle { position: absolute; top: 50%; left: 50%; width: 36px; height: 36px; background: linear-gradient(45deg, #667eea, #764ba2); border: 2px solid white; border-radius: 50%; transform: translate(-50%, -50%); cursor: ew-resize; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); transition: all 0.3s ease; color: white; } .slider-handle:hover { transform: translate(-50%, -50%) scale(1.1); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3); } .slider-handle.dragging { transform: translate(-50%, -50%) scale(1.1); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3); } .slider-handle::before { content: '⟷'; font-size: 14px; font-weight: bold; } .coordinates { position: absolute; bottom: 15px; right: 15px; background: rgba(0, 0, 0, 0.8); color: white; padding: 8px 12px; border-radius: 6px; font-size: 12px; font-family: 'Courier New', monospace; z-index: 1000; backdrop-filter: blur(10px); } .sync-toggle { position: absolute; top: 15px; right: 15px; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); border: 2px solid #e0e0e0; padding: 12px; border-radius: 50%; cursor: pointer; z-index: 1001; transition: all 0.3s ease; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); } .sync-toggle:hover { transform: scale(1.05); box-shadow: 0 6px 25px rgba(0, 0, 0, 0.15); } .sync-toggle.active { background: linear-gradient(45deg, #667eea, #764ba2); color: white; border-color: #667eea; } .loading-indicator { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(255, 255, 255, 0.9); padding: 20px; border-radius: 10px; z-index: 2000; display: none; } .logo { display: flex; align-items: left; gap: 12px; font-size: 24px; font-weight: bold; } .error-message { position: fixed; top: 100px; left: 50%; transform: translateX(-50%); background: #ff4444; color: white; padding: 15px 25px; border-radius: 8px; z-index: 3000; display: none; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); } @media (max-width: 768px) { .header { flex-direction: column; gap: 15px; padding: 10px 15px; } .controls { flex-direction: column; gap: 10px; width: 100%; } .control-group { width: 100%; } .search-box, .layer-select { width: 100%; min-width: unset; } .slider-container { width: 6px; } .slider-handle { width: 32px; height: 32px; } .map-container { height: calc(100vh - 140px); } }