body { margin: 0; padding: 0; }
        #map { position: absolute; top: 0; bottom: 0; width: 75%; }
        .controls {
            position: absolute;
            top: 10px;
            left: 10px;
            z-index: 1;
            background: white;
            padding: 10px;
            border-radius: 5px;
            box-shadow: 0 0 10px rgba(0,0,0,0.2);
        }
        .map-style-switcher {
            position: absolute;
            top: 10px;
            right: calc(25% + 10px);
            z-index: 1;
            background: white;
            padding: 10px;
            border-radius: 5px;
            box-shadow: 0 0 10px rgba(0,0,0,0.2);
        }
        select {
            padding: 5px;
            margin-right: 5px;
        }
        .mapboxgl-popup {
            max-width: 400px;
            font: 12px/20px 'Helvetica Neue', Arial, Helvetica, sans-serif;
        }
        .sidebar {
            position: absolute;
            top: 0;
            right: 0;
            width: 25%;
            height: 100%;
            background: white;
            box-shadow: -2px 0 5px rgba(0,0,0,0.1);
            overflow-y: auto;
            padding: 10px;
            box-sizing: border-box;
        }
        .sidebar-title {
            font-weight: bold;
            margin-bottom: 10px;
            text-align: center;
            padding-bottom: 5px;
            border-bottom: 1px solid #eee;
        }
        .route-item {
            padding: 8px;
            margin: 5px 0;
            border-radius: 3px;
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .route-item:hover {
            background-color: #f5f5f5;
        }
        .route-color {
            width: 20px;
            height: 20px;
            border-radius: 3px;
            margin-right: 10px;
            display: inline-block;
        }
        .route-name {
            flex-grow: 1;
        }
        .route-remove {
            color: #999;
            cursor: pointer;
            padding: 0 5px;
        }
        .route-remove:hover {
            color: #ff0000;
        }