*{margin:0;padding:0;box-sizing:border-box;font-family:Segoe UI,Roboto,Arial,sans-serif}html,body{width:100%;height:100%;overflow:hidden}canvas,img{image-rendering:crisp-edges;image-rendering:-webkit-crisp-edges;image-rendering:pixelated}#app{display:flex;flex-direction:column;width:100vw;height:100vh;overflow:hidden}#topbar{position:fixed;top:0;left:0;width:100%;height:60px;background-color:#d32f2f;background:linear-gradient(to right,#d32f2f,#b71c1c);display:flex;align-items:center;justify-content:space-between;padding:0 20px;z-index:1000;box-shadow:0 2px 8px #00000040}#mapPointer{position:fixed;top:50%;left:50%;width:20px;height:20px;transform:translate(-50%,-50%);pointer-events:none;z-index:110}#mapPointer img{width:100%;height:100%;opacity:.9;filter:drop-shadow(0px 2px 4px rgba(0,0,0,.4))}#menuContainer{display:flex;align-items:center;position:relative}#menuToggle{background:#fff3;border:none;color:#fff;font-size:18px;width:42px;height:42px;border-radius:4px 0 0 4px;cursor:pointer;transition:all .25s ease;display:flex;align-items:center;justify-content:center}#menuToggle:hover{background:#ffffff4d}#menuToggle:active{transform:scale(.95)}#home-button{background:#fff3;border:none;color:#fff;font-size:18px;width:42px;height:42px;border-radius:0 4px 4px 0;cursor:pointer;transition:all .25s ease;display:flex;align-items:center;justify-content:center}#home-button:hover{background:#ffffff4d}#home-button:active{transform:scale(.95)}#menuDropdown{display:none;position:absolute;top:46px;left:0;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;width:450px;z-index:150;overflow:hidden;opacity:0;transform:translateY(-8px);transition:opacity .3s ease,transform .3s ease;border:1px solid #e0e0e0}#menuContainer.active #menuDropdown{display:block;opacity:1;transform:translateY(0)}.layer-manager-header{background:linear-gradient(135deg,#1976d2,#1565c0);color:#fff;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000001a}.header-content{display:flex;align-items:center;gap:12px}.header-icon{font-size:20px;color:#bbdefb}.header-title{font-size:18px;font-weight:600;letter-spacing:.5px}.global-controls{display:flex;gap:8px}.control-btn{background:#ffffff26;border:none;color:#fff;width:36px;height:36px;border-radius:8px;cursor:pointer;transition:all .25s ease;display:flex;align-items:center;justify-content:center;font-size:14px}.control-btn:hover{background:#ffffff40;transform:translateY(-1px)}.control-btn:active{transform:translateY(0)}.toggle-list{padding:16px;max-height:500px;overflow-y:auto;background:#fafafa}.toggle-list::-webkit-scrollbar{width:6px}.toggle-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.toggle-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.toggle-list::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.toggle-item{background:#fff;border-radius:12px;margin-bottom:12px;box-shadow:0 2px 8px #0000000f;border:2px solid transparent;transition:all .3s ease;cursor:grab;position:relative;overflow:hidden}.toggle-item:last-child{margin-bottom:0}.toggle-item:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a;border-color:#e3f2fd}.toggle-item.dragging{opacity:.8;transform:scale(1.02) rotate(2deg);box-shadow:0 8px 24px #0003;cursor:grabbing;z-index:1000}.toggle-item.drag-over{border-color:#4caf50;background:#f1f8e9}.item-content{display:flex;align-items:center;padding:16px;gap:16px;position:relative}.drag-section{display:flex;align-items:center;gap:12px;min-width:80px}.drag-handle{color:#9e9e9e;font-size:16px;cursor:grab;padding:8px;border-radius:6px;transition:all .25s ease}.drag-handle:hover{color:#1976d2;background:#e3f2fd}.priority-badge{background:linear-gradient(135deg,#1976d2,#1565c0);color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;box-shadow:0 2px 6px #1976d24d}.checkbox-section{display:flex;align-items:center}.custom-checkbox{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:center}.custom-checkbox input[type=checkbox]{opacity:0;position:absolute;width:0;height:0}.checkmark{width:24px;height:24px;border:2px solid #ddd;border-radius:6px;background:#fff;position:relative;transition:all .25s ease;display:flex;align-items:center;justify-content:center}.custom-checkbox input[type=checkbox]:checked+.checkmark{background:linear-gradient(135deg,#4caf50,#45a049);border-color:#4caf50}.custom-checkbox input[type=checkbox]:checked+.checkmark:after{content:"✓";color:#fff;font-size:16px;font-weight:700}.custom-checkbox:hover .checkmark{border-color:#1976d2;transform:scale(1.05)}.label-section{flex:1;min-width:0}.layer-info{display:flex;flex-direction:column;gap:4px}.layer-name{font-size:16px;font-weight:600;color:#212121;letter-spacing:.3px}.layer-description{font-size:13px;color:#757575;font-weight:400}.controls-section{display:flex;flex-direction:column;gap:4px}.move-btn{background:#f5f5f5;border:none;color:#666;width:32px;height:28px;border-radius:6px;cursor:pointer;transition:all .25s ease;display:flex;align-items:center;justify-content:center;font-size:12px}.move-btn:hover{background:#1976d2;color:#fff;transform:scale(1.05)}.move-btn:disabled{opacity:.3;cursor:not-allowed;transform:none}.move-btn:disabled:hover{background:#f5f5f5;color:#666}.layer-manager-footer{background:#f8f9fa;padding:12px 20px;border-top:1px solid #e9ecef}.footer-info{display:flex;align-items:center;gap:8px;font-size:13px;color:#6c757d}.footer-info i{color:#007bff}#location-info{text-align:center;color:#fff;position:absolute;left:50%;transform:translate(-50%)}.location-title{display:block;font-weight:600;font-size:15px;text-transform:uppercase;letter-spacing:.5px;text-shadow:0 1px 2px rgba(0,0,0,.2)}.location-road{display:block;font-size:14px;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.2)}#map{position:absolute;top:60px;left:0;width:100vw;height:calc(100vh - 60px);z-index:50}#searchMapGroup{display:flex;align-items:center;margin-left:auto}#searchContainer{position:relative;width:400px;margin-right:10px}#searchBox{width:100%;display:flex;background:#fff;border-radius:4px;overflow:hidden}#searchModeToggle{background:#f5f5f5;border:none;padding:0;width:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-right:1px solid #e0e0e0;color:#555;transition:all .2s ease}#searchModeToggle:hover{background:#e9e9e9}#searchModeToggle i{font-size:14px}#searchInput{flex:1;padding:8px 12px;border:none;font-size:14px;outline:none;width:100%}#searchResults{position:absolute;top:100%;left:0;right:0;max-height:300px;overflow-y:auto;display:none;background:#fff;margin-top:5px;border-radius:4px;box-shadow:0 4px 10px #0003;z-index:150}#searchModeOptions{position:absolute;top:100%;left:0;background:#fff;box-shadow:0 4px 10px #0003;border-radius:4px;width:180px;display:none;z-index:151;margin-top:5px}.search-mode-option{padding:10px 12px;cursor:pointer;transition:background .2s ease;display:flex;align-items:center}.search-mode-option:hover{background:#f5f5f5}.search-mode-option i{margin-right:10px;width:16px;text-align:center;color:#555}.search-mode-option.active{background:#e3f2fd;font-weight:500}#mapLayerDropdown{position:relative;display:inline-block}#mapLayerButton{background:#fff3;border:none;width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:4px;cursor:pointer;transition:all .25s ease;padding:0}#mapLayerButton:hover{background:#ffffff4d}#currentLayerIcon{width:26px;height:26px;border-radius:3px}#mapLayerOptions{display:none;position:absolute;top:46px;right:0;background:#fff;border-radius:4px;box-shadow:0 4px 12px #0003;width:220px;z-index:101;padding:8px;opacity:0;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease}#mapLayerDropdown.active #mapLayerOptions{display:block;opacity:1;transform:translateY(0)}.map-option{display:flex;align-items:center;padding:10px 12px;font-size:14px;font-weight:500;color:#424242;cursor:pointer;transition:background .2s ease;border-radius:4px;margin-bottom:2px}.map-option:last-child{margin-bottom:0}.map-option:hover{background:#0000000a}.map-option img{width:22px;height:22px;margin-right:12px;border-radius:3px}.search-result-item{padding:10px 12px;border-top:1px solid #eee;cursor:pointer;transition:background .2s ease;display:flex;align-items:center}.search-result-item:hover{background:#f5f5f5}.search-result-item i{margin-right:10px;color:#757575;font-size:14px;width:16px;text-align:center}.search-result-name{font-weight:500;font-size:14px;color:#333;margin-bottom:3px}.search-result-address{font-size:12px;color:#757575}.popup-container{background:#263238;color:#fff;border-radius:4px;padding:12px;width:250px;box-shadow:0 4px 12px #0000004d;position:relative;border-left:4px solid #d32f2f}.popup-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:8px;margin-bottom:8px}.popup-header h3{font-size:14px;margin:0;font-weight:600}.popup-close{background:none;border:none;color:#ffffffb3;font-size:16px;cursor:pointer;transition:color .2s ease}.popup-close:hover{color:#ff5252}.popup-body ul{list-style:none;padding:0;margin:8px 0 0}.popup-mission-item{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.1)}.popup-mission-item:last-child{border-bottom:none}.popup-mission-number{font-weight:600;font-size:13px}.popup-btn{background:#2196f3;color:#fff;border:none;padding:4px 8px;font-size:12px;cursor:pointer;border-radius:3px;transition:background .2s ease}.popup-btn:hover{background:#1976d2}#streetview-control{position:fixed;bottom:90px;right:20px;z-index:1000}#streetview-btn{width:56px;height:56px;border-radius:50%;background-color:#fff;border:none;box-shadow:0 2px 10px #0000004d;cursor:pointer;display:flex;justify-content:center;align-items:center;font-size:22px;color:#555;transition:all .3s ease}#streetview-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0006}#streetview-btn:active{transform:translateY(1px)}#streetview-btn.active{background-color:#4285f4;color:#fff}#route-calculator{position:fixed;bottom:155px;right:20px;z-index:1000}#route-calculator-btn{width:56px;height:56px;border-radius:50%;background-color:#fff;border:none;box-shadow:0 2px 10px #0000004d;cursor:pointer;display:flex;justify-content:center;align-items:center;font-size:22px;color:#555;transition:all .3s ease}#route-calculator-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0006}#route-calculator-btn:active{transform:translateY(1px)}#route-calculator-btn.active{background-color:#1976d2;color:#fff}#coordinate-picker{position:fixed;bottom:20px;right:20px;z-index:1000}#coordinate-picker-btn{width:56px;height:56px;border-radius:50%;background-color:#fff;border:none;box-shadow:0 2px 10px #0000004d;cursor:pointer;display:flex;justify-content:center;align-items:center;font-size:22px;color:#555;transition:all .3s ease}#coordinate-picker-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0006}#coordinate-picker-btn:active{transform:translateY(1px)}#coordinate-picker-btn.active{background-color:#d32f2f;color:#fff}.route-point-marker{width:20px;height:20px;border-radius:50%;border:3px solid white;box-shadow:0 2px 6px #0006;pointer-events:none}.route-point-marker.start{background-color:#4caf50}.route-point-marker.end{background-color:#2196f3}.distance-label{background-color:#ffffffe6;border-radius:4px;padding:5px 10px;font-family:Arial,sans-serif;font-size:14px;font-weight:700;color:#d32f2f;box-shadow:0 2px 5px #0000004d;white-space:nowrap;border:1px solid rgba(0,0,0,.1);pointer-events:none}#path-finder{position:fixed;bottom:155px;right:85px;z-index:1000}#path-finder-btn{width:56px;height:56px;border-radius:50%;background-color:#fff;border:none;cursor:pointer;box-shadow:0 2px 6px #0000004d;font-size:20px;color:#333;display:flex;align-items:center;justify-content:center;transition:all .2s ease}#path-finder-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0006}#path-finder-btn:active{transform:translateY(1px)}#path-finder-btn.active{background-color:#1976d2;color:#fff}.path-point-marker{width:24px;height:24px;border-radius:50%;border:3px solid white;box-shadow:0 3px 8px #0006;pointer-events:none}.path-point-marker.start{background-color:#4caf50}.path-point-marker.end{background-color:#f44336}.path-info-label{background-color:#1976d2f2;border-radius:8px;padding:8px 14px;font-family:Arial,sans-serif;box-shadow:0 3px 10px #00000059;white-space:nowrap;border:2px solid rgba(255,255,255,.3);pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:2px}.path-info-distance{font-size:15px;font-weight:700;color:#fff}.path-info-duration{font-size:13px;color:#ffffffe6}.path-export-container{position:relative;display:flex;flex-direction:column;align-items:center}.path-export-btn{width:40px;height:40px;border-radius:50%;background-color:#4caf50;border:2px solid white;color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 8px #0000004d;transition:all .2s ease}.path-export-btn:hover{background-color:#43a047;transform:scale(1.1)}.path-export-btn:active{transform:scale(.95)}.path-export-dropdown{display:none;position:absolute;top:45px;left:50%;transform:translate(-50%);background-color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000040;overflow:hidden;z-index:1000;min-width:100px}.path-export-dropdown.show{display:block;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(-5px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.export-option{display:flex;align-items:center;gap:8px;width:100%;padding:10px 16px;border:none;background:none;cursor:pointer;font-size:14px;color:#333;transition:background-color .15s ease}.export-option:hover{background-color:#f0f0f0}.export-option:first-child{border-bottom:1px solid #eee}.export-option i{color:#666;width:16px;text-align:center}.nearest-vehicles-section{margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,0,0,.1)}.find-nearest-btn{width:100%;padding:10px 15px;background-color:#6c5ce7;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease}.find-nearest-btn:hover{background-color:#5b4cdb;transform:translateY(-1px)}.find-nearest-btn i{font-size:16px}.vehicles-container{display:none;margin-top:10px;max-height:200px;overflow-y:auto}.vehicles-container::-webkit-scrollbar{width:6px}.vehicles-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.vehicles-container::-webkit-scrollbar-thumb{background:#888;border-radius:3px}.vehicles-container::-webkit-scrollbar-thumb:hover{background:#555}.vehicles-list{display:flex;flex-direction:column;gap:8px;padding-right:5px}.vehicle-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background-color:#f8f9fa;border-radius:6px;border-left:4px solid #28a745;transition:all .2s ease}.vehicle-item:hover{background-color:#e9ecef}.vehicle-item.busy{border-left-color:#fd7e14;opacity:.85}.vehicle-item.available{border-left-color:#28a745}.vehicle-info{display:flex;flex-direction:column;gap:2px}.vehicle-code{font-weight:600;font-size:14px;color:#333}.vehicle-status{font-size:11px;color:#666;text-transform:uppercase;letter-spacing:.5px}.vehicle-distance{font-size:13px;font-weight:600;color:#0d6efd;padding:4px 8px;background-color:#0d6efd1a;border-radius:4px}.calc-route-btn{width:36px;height:36px;border:none;border-radius:50%;background-color:#1976d2;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.calc-route-btn:hover{background-color:#1565c0;transform:scale(1.1)}.calc-route-btn i{font-size:14px}.no-vehicles{text-align:center;padding:15px;color:#666;font-style:italic}.clustering-toggle{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.clustering-checkbox{flex-shrink:0}.clustering-label{font-size:13px;color:#333;display:flex;align-items:center;gap:6px}.clustering-label i{color:#39c}.heatmap-toggle{display:flex;align-items:center;gap:10px;margin-top:10px}.heatmap-checkbox{flex-shrink:0}.heatmap-label{font-size:13px;color:#333;display:flex;align-items:center;gap:6px}.heatmap-label i{color:#ff6b35}.vehicle-eta-label{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:6px 12px;box-shadow:0 3px 10px #0000004d;border:2px solid white;white-space:nowrap;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:2px;animation:etaPulse 2s infinite}@keyframes etaPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.eta-time{font-size:14px;font-weight:700;color:#fff}.eta-time.arrived{color:#4ade80;animation:none}.eta-distance{font-size:11px;color:#ffffffd9}#isochrone{position:fixed;bottom:155px;right:150px;z-index:1000}#isochrone-btn{width:56px;height:56px;border-radius:50%;background-color:#9c27b0;color:#fff;border:none;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px #00000040;transition:all .3s ease}#isochrone-btn:hover{background-color:#7b1fa2;transform:scale(1.08)}#isochrone-btn.active{background-color:#6a1b9a;box-shadow:0 0 0 4px #9c27b066}.isochrone-time-selector{position:fixed;bottom:220px;right:20px;background:#fff;border-radius:12px;padding:15px;box-shadow:0 4px 20px #0003;z-index:1001;min-width:200px;animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.isochrone-selector-title{font-size:14px;font-weight:600;color:#333;margin-bottom:12px;display:flex;align-items:center;gap:8px}.isochrone-selector-title i{color:#9c27b0}.isochrone-time-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.isochrone-time-buttons .time-btn{padding:10px;border:2px solid #e0e0e0;background:#fff;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.isochrone-time-buttons .time-btn:hover{border-color:#9c27b0;background:#fce4ec}.isochrone-time-buttons .time-btn.active{border-color:#9c27b0;background:#9c27b0;color:#fff}.isochrone-hint{margin-top:12px;font-size:12px;color:#666;text-align:center}.isochrone-context-menu{position:fixed;background:#fff;border-radius:8px;box-shadow:0 4px 15px #0003;z-index:10000;min-width:180px;overflow:hidden;animation:contextMenuFadeIn .15s ease}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.isochrone-context-menu .context-menu-item,.geofence-context-menu .context-menu-item{padding:10px 14px;cursor:pointer;display:flex;align-items:center;gap:10px;font-size:13px;color:#333;transition:background .15s ease}.isochrone-context-menu .context-menu-item:hover,.geofence-context-menu .context-menu-item:hover{background:#f5f5f5}.isochrone-context-menu .context-menu-item.delete,.geofence-context-menu .context-menu-item.delete{color:#e53935}.isochrone-context-menu .context-menu-item.delete:hover,.geofence-context-menu .context-menu-item.delete:hover{background:#ffebee}.isochrone-context-menu .context-menu-item.delete-all,.geofence-context-menu .context-menu-item.delete-all{color:#e53935;border-top:1px solid #eee}.isochrone-context-menu .context-menu-item i,.geofence-context-menu .context-menu-item i{width:16px;text-align:center}#geofence{position:fixed;bottom:155px;right:215px;z-index:1000}#geofence-btn{width:56px;height:56px;border-radius:50%;background-color:#ff9800;color:#fff;border:none;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px #00000040;transition:all .3s ease}#geofence-btn:hover{background-color:#f57c00;transform:scale(1.08)}#geofence-btn.active{background-color:#e65100;box-shadow:0 0 0 4px #ff980066;animation:pulseGeofence 1.5s infinite}@keyframes pulseGeofence{0%,to{box-shadow:0 0 0 4px #ff980066}50%{box-shadow:0 0 0 8px #ff980033}}.geofence-toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%) translateY(20px);padding:14px 24px;border-radius:10px;font-size:14px;font-weight:500;color:#fff;box-shadow:0 4px 15px #0000004d;z-index:10000;opacity:0;transition:all .3s ease;display:flex;align-items:center;gap:10px}.geofence-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.geofence-toast.info{background:linear-gradient(135deg,#2196f3,#1976d2)}.geofence-toast.success{background:linear-gradient(135deg,#4caf50,#388e3c)}.geofence-toast.warning{background:linear-gradient(135deg,#ff9800,#f57c00)}.geofence-toast.error{background:linear-gradient(135deg,#f44336,#d32f2f)}.geofence-toast i{font-size:18px}.geofence-context-menu{position:fixed;background:#fff;border-radius:8px;box-shadow:0 4px 15px #0003;z-index:10000;min-width:200px;overflow:hidden;animation:contextMenuFadeIn .15s ease}.geofence-context-menu .context-menu-header{padding:10px 14px;background:#f5f5f5;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.geofence-context-menu .context-menu-header strong{font-size:13px;color:#333}.geofence-context-menu .vehicle-count{font-size:11px;background:#ff9800;color:#fff;padding:2px 6px;border-radius:10px}.geofence-context-menu .context-menu-divider{height:1px;background:#eee;margin:4px 0}.geofence-context-menu .context-menu-item.toggle{color:#1976d2}.geofence-context-menu .context-menu-item.toggle:hover{background:#e3f2fd}.cluster-marker{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background-color:#3399cce6;border:3px solid white;box-shadow:0 3px 10px #0000004d;color:#fff;font-weight:700;font-size:14px}.cluster-marker.large{width:50px;height:50px;font-size:16px}.cluster-marker.small{width:30px;height:30px;font-size:12px}.cluster-marker:hover{transform:scale(1.1);cursor:pointer}.tooltip{position:absolute;right:70px;background-color:#212121e6;color:#fff;padding:5px 10px;border-radius:4px;font-size:13px;pointer-events:none;opacity:0;transform:translate(10px);transition:all .2s ease;white-space:nowrap}.action-button-container{position:relative}.action-button-container:hover .tooltip{opacity:1;transform:translate(0)}.split-view-container{position:fixed;inset:60px 0 0;display:flex;flex-direction:column;z-index:50;background-color:#000;font-size:0}.streetview-container,.map-container-split{width:100%;height:50%;position:relative;overflow:hidden;border:none;margin:0;padding:0;font-size:0;display:block;line-height:0}.map-container-split>*,.streetview-container>*{margin:0;padding:0;border:none}.map-container-split #app{height:100%;width:100%;position:relative;margin:0;padding:0;overflow:hidden}.map-container-split .ol-viewport{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;overflow:hidden}.map-container-split #mapPointer,.map-container-split #mapPointerClone{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;width:20px!important;height:20px!important;z-index:110;margin:0!important;padding:0!important}.map-container-split #mapPointer img,.map-container-split #mapPointerClone img{width:100%!important;height:100%!important;margin:0!important;padding:0!important}.streetview-container iframe{display:block;position:absolute;top:0;left:0;width:100%;height:100%;border:0;margin:0;padding:0}.split-view-container:empty,.streetview-container:empty,.map-container-split:empty{display:none}.streetview-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#000000b3;color:#fff;padding:10px 15px;border-radius:4px;font-size:14px;z-index:10}.streetview-close{position:absolute;top:10px;right:10px;width:36px;height:36px;background-color:#0009;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;border:none;cursor:pointer;z-index:60;font-size:18px}.streetview-close:hover{background-color:#000c}.panel{position:absolute;top:60px;left:10px;width:300px;max-height:80vh;background-color:#fff;border-radius:10px;box-shadow:0 2px 10px #0003;z-index:1000;display:none;flex-direction:column;overflow:hidden}.panel.active{display:flex}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;background-color:#0065a4;color:#fff}.panel-header h3{margin:0;font-size:16px;font-weight:600}.panel-close{background:none;border:none;color:#fff;font-size:22px;cursor:pointer}.panel-controls{display:flex;justify-content:space-between;padding:10px;border-bottom:1px solid #eee}.panel-btn{background-color:#f0f0f0;border:1px solid #ddd;border-radius:4px;padding:6px 12px;font-size:12px;cursor:pointer;transition:background-color .2s}.panel-btn:hover{background-color:#e0e0e0}.panel-search{padding:10px;border-bottom:1px solid #eee}.panel-search input{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px;font-size:14px}.panel-list{flex-grow:1;overflow-y:auto;padding:5px 0}.comune-option{display:flex;align-items:center;padding:8px 15px;cursor:pointer;transition:background-color .2s}.comune-option:hover{background-color:#f5f5f5}.comune-option input{margin-right:10px}.loading{padding:15px;text-align:center;color:#777;font-style:italic}@media (max-width: 768px){#topbar{padding:0 10px}#searchMapGroup{max-width:300px}#searchContainer{width:240px}.location-title{font-size:14px}.location-road{font-size:12px}#streetview-btn,#route-calculator-btn,#path-finder-btn,#coordinate-picker-btn{width:48px;height:48px;font-size:18px}#streetview-control{bottom:80px}#route-calculator{bottom:140px}#path-finder{bottom:140px;right:75px}#coordinate-picker{bottom:20px}#menuDropdown{width:380px;max-width:calc(100vw - 40px)}.toggle-list{max-height:400px}.item-content{padding:12px;gap:12px}.layer-name{font-size:15px}.layer-description{font-size:12px}.priority-badge{width:28px;height:28px;font-size:13px}.move-btn{width:28px;height:24px}}#shared-views-container{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}#shared-views-btn.active{animation:pulse .3s ease}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}#left-layer-select,#right-layer-select{transition:all .2s ease}#left-layer-select:hover,#right-layer-select:hover{border-color:#4caf50!important;box-shadow:0 0 0 2px #4caf5033}#left-layer-select:focus,#right-layer-select:focus{outline:none;border-color:#2196f3!important;box-shadow:0 0 0 3px #2196f34d}#shared-views-container>div:first-child{border-right:2px solid #333;position:relative}#shared-views-container>div:first-child:after{content:"";position:absolute;right:-10px;top:50%;transform:translateY(-50%);width:20px;height:60px;background:linear-gradient(to bottom,transparent,#333,transparent);opacity:.3;animation:slideUpDown 3s ease-in-out infinite}@keyframes slideUpDown{0%,to{transform:translateY(-50%)}50%{transform:translateY(-30%)}}#shared-views-container>div>div:first-child{transition:all .3s ease;cursor:default}#shared-views-container>div>div:first-child:hover{background:#fff!important;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d!important}.shared-view-active-indicator{position:absolute;top:5px;right:5px;width:10px;height:10px;background:#4caf50;border-radius:50%;animation:blink 2s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@media (max-width: 768px){#shared-views-container{flex-direction:column!important}#shared-views-container>div:first-child{border-right:none!important;border-bottom:2px solid #333;flex:1!important;min-height:50%}#shared-views-container>div:first-child:after{display:none}#shared-views-container>div:last-child{flex:1!important;min-height:50%}#left-layer-select,#right-layer-select{min-width:120px!important;font-size:12px!important}}@media (prefers-color-scheme: dark){#shared-views-container{background:#1a1a1a}#shared-views-container>div>div:first-child{background:#282828f2!important;color:#fff}#left-layer-select,#right-layer-select{background:#2a2a2a;color:#fff;border-color:#444}}.shared-views-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#fffffff2;padding:10px 15px;border-radius:25px;box-shadow:0 2px 10px #0003;display:flex;gap:10px;z-index:250}.shared-views-controls button{background:#f0f0f0;border:none;padding:8px 12px;border-radius:20px;cursor:pointer;font-size:13px;transition:all .2s ease}.shared-views-controls button:hover{background:#4caf50;color:#fff;transform:translateY(-2px);box-shadow:0 2px 5px #0003}.sync-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:400}.sync-indicator:before,.sync-indicator:after{content:"🔗";position:absolute;font-size:24px;animation:syncRotate 3s linear infinite}.sync-indicator:after{animation-direction:reverse}@keyframes syncRotate{0%{transform:rotate(0) translate(30px) rotate(0)}to{transform:rotate(360deg) translate(30px) rotate(-360deg)}}#shared-views-control{position:fixed;bottom:220px;right:20px;z-index:1000}#shared-views-btn{width:56px;height:56px;border-radius:50%;background-color:#fff;border:none;box-shadow:0 2px 10px #0000004d;cursor:pointer;display:flex;justify-content:center;align-items:center;font-size:22px;color:#555;transition:all .3s ease}#shared-views-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0006}#shared-views-btn:active{transform:translateY(1px)}#shared-views-btn.active{background-color:#4caf50;color:#fff}.custom-maps-section{padding:16px 20px;border-top:1px solid #e9ecef;background:#f8f9fa}.custom-maps-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.custom-maps-section .section-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#333}.custom-maps-section .section-title i{color:#ff5722}.section-buttons{display:flex;gap:8px}.add-btn{width:32px;height:32px;border-radius:50%;border:none;background:linear-gradient(135deg,#ff5722,#e64a19);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .25s ease;box-shadow:0 2px 6px #ff57224d}.add-btn:hover{transform:scale(1.1);box-shadow:0 4px 12px #ff572266}#importKMZBtn{background:linear-gradient(135deg,#2196f3,#1976d2);box-shadow:0 2px 6px #2196f34d}#importKMZBtn:hover{box-shadow:0 4px 12px #2196f366}.stroke-input-group{display:flex;align-items:center;gap:10px}.stroke-input-group input[type=range]{flex:1;height:6px;border-radius:3px;background:#e0e0e0;cursor:pointer;-webkit-appearance:none;appearance:none}.stroke-input-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#2196f3;cursor:pointer;box-shadow:0 2px 6px #0003}.stroke-input-group input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#2196f3;cursor:pointer;border:none}.import-info{display:flex;align-items:center;gap:8px;padding:12px;background:#e3f2fd;border-radius:8px;color:#1565c0;font-size:13px;margin-top:8px}.import-info i{font-size:16px}.feature-popup{position:fixed;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000040;z-index:1500;min-width:250px;max-width:350px;overflow:hidden;animation:popupFadeIn .2s ease}.feature-popup.hidden{display:none}@keyframes popupFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.feature-popup-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(135deg,#607d8b,#455a64);color:#fff}#featurePopupTitle{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:250px}.feature-popup-close{width:28px;height:28px;border:none;border-radius:50%;background:#fff3;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .2s ease;flex-shrink:0;margin-left:10px}.feature-popup-close:hover{background:#ffffff4d}.feature-popup-content{padding:16px;font-size:13px;color:#333;max-height:200px;overflow-y:auto}.feature-popup-row{display:flex;margin-bottom:10px;align-items:flex-start}.feature-popup-row:last-child{margin-bottom:0}.feature-popup-label{font-weight:600;color:#666;min-width:80px;flex-shrink:0}.feature-popup-value{color:#333;word-break:break-word}.feature-popup-color{display:inline-block;width:20px;height:20px;border-radius:4px;vertical-align:middle;margin-right:8px;box-shadow:inset 0 0 0 1px #0000001a}.feature-popup-description{margin-top:12px;padding-top:12px;border-top:1px solid #eee;color:#555;line-height:1.5}.custom-maps-list{max-height:200px;overflow-y:auto}.custom-maps-list::-webkit-scrollbar{width:6px}.custom-maps-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.custom-maps-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.no-maps,.no-pois{text-align:center;color:#999;font-size:13px;font-style:italic;padding:12px}.poi-list{max-height:200px;overflow-y:auto}.poi-list::-webkit-scrollbar{width:6px}.poi-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.poi-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.poi-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border-radius:8px;margin-bottom:8px;box-shadow:0 1px 3px #00000014;transition:all .2s ease}.poi-item:last-child{margin-bottom:0}.poi-item:hover{box-shadow:0 2px 8px #0000001f;transform:translateY(-1px)}.poi-icon{width:28px;height:28px;border-radius:6px;background:#f5f5f5;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.poi-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.poi-name{font-size:13px;font-weight:500;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.poi-desc{font-size:11px;color:#999;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.poi-actions{display:flex;gap:4px;flex-shrink:0}.poi-actions button{width:26px;height:26px;border:none;border-radius:6px;background:#f5f5f5;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;transition:all .2s ease}.poi-actions .poi-locate-btn:hover{background:#4caf50;color:#fff}.poi-actions .poi-edit-btn:hover{background:#2196f3;color:#fff}.poi-actions .poi-delete-btn:hover{background:#f44336;color:#fff}.custom-map-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border-radius:8px;margin-bottom:8px;box-shadow:0 1px 3px #00000014;transition:all .2s ease}.custom-map-item:last-child{margin-bottom:0}.custom-map-item:hover{box-shadow:0 2px 8px #0000001f;transform:translateY(-1px)}.custom-map-checkbox{flex-shrink:0}.custom-map-color{width:16px;height:16px;border-radius:4px;flex-shrink:0;box-shadow:inset 0 0 0 1px #0000001a}.custom-map-name{flex:1;font-size:13px;font-weight:500;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.custom-map-actions{display:flex;gap:4px;flex-shrink:0}.custom-map-actions button{width:28px;height:28px;border:none;border-radius:6px;background:#f5f5f5;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .2s ease}.custom-map-actions .edit-map-btn:hover{background:#2196f3;color:#fff}.custom-map-actions .delete-map-btn:hover{background:#f44336;color:#fff}.poi-actions-section{padding:16px 20px;border-top:1px solid #e9ecef;background:#f8f9fa}.poi-actions-section .section-header{margin-bottom:12px}.poi-actions-section .section-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#333}.poi-actions-section .section-title i{color:#0065a4}.poi-actions-buttons{display:flex;gap:10px}.poi-actions-buttons .action-btn{flex:1;padding:10px 14px;border:none;border-radius:8px;background:#fff;color:#333;font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease;box-shadow:0 1px 3px #00000014}.poi-actions-buttons .action-btn:hover{background:#0065a4;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #0065a44d}.poi-actions-buttons .action-btn.active{background:#0065a4;color:#fff}.poi-actions-buttons .action-btn i{font-size:14px}.drawing-toolbar{position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;z-index:1000;min-width:400px;overflow:hidden;animation:slideUp .3s ease}.drawing-toolbar.hidden{display:none}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.toolbar-header{display:flex;align-items:center;gap:10px;padding:14px 20px;background:linear-gradient(135deg,#ff5722,#e64a19);color:#fff}.toolbar-header i{font-size:18px}.toolbar-title{font-size:15px;font-weight:600}.toolbar-content{display:flex;align-items:center;gap:20px;padding:16px 20px}.toolbar-group{display:flex;flex-direction:column;gap:8px}.group-label{font-size:11px;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.5px}.tool-buttons{display:flex;gap:8px}.tool-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 14px;border:2px solid #e0e0e0;border-radius:10px;background:#fff;color:#666;cursor:pointer;transition:all .2s ease;min-width:70px}.tool-btn i{font-size:18px}.tool-btn span{font-size:11px;font-weight:500}.tool-btn:hover{border-color:#ff5722;color:#ff5722;background:#fff3e0}.tool-btn.active{border-color:#ff5722;background:#ff5722;color:#fff}.color-group{align-items:center}.color-group input[type=color]{width:50px;height:40px;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;padding:2px}.color-group input[type=color]:hover{border-color:#ff5722}.stroke-group{align-items:center}.stroke-control{display:flex;align-items:center;gap:10px}.stroke-control input[type=range]{width:80px;height:6px;border-radius:3px;background:#e0e0e0;cursor:pointer;-webkit-appearance:none;appearance:none}.stroke-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#ff5722;cursor:pointer;box-shadow:0 2px 6px #0003;transition:all .2s ease}.stroke-control input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 3px 8px #ff572266}.stroke-control input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#ff5722;cursor:pointer;border:none;box-shadow:0 2px 6px #0003}.stroke-value{font-size:12px;font-weight:600;color:#666;min-width:30px;text-align:center;background:#f5f5f5;padding:4px 8px;border-radius:4px}.toolbar-footer{padding:12px 20px;background:#f8f9fa;border-top:1px solid #e9ecef;display:flex;justify-content:flex-end}.close-toolbar-btn{padding:8px 16px;border:none;border-radius:8px;background:#f44336;color:#fff;font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease}.close-toolbar-btn:hover{background:#d32f2f;transform:translateY(-1px)}.modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;display:flex;align-items:center;justify-content:center;animation:modalFadeIn .2s ease}.modal.hidden{display:none}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000080;backdrop-filter:blur(2px)}.modal-content{position:relative;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;min-width:380px;max-width:90%;animation:modalSlideIn .3s ease}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e9ecef}.modal-header h3{margin:0;font-size:18px;font-weight:600;color:#333;display:flex;align-items:center;gap:10px}.modal-header h3 i{color:#ff5722}.modal-close{width:36px;height:36px;border:none;border-radius:50%;background:#f5f5f5;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .2s ease}.modal-close:hover{background:#f44336;color:#fff}.modal-body{padding:24px}.form-group{margin-bottom:20px}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:13px;font-weight:600;color:#555;margin-bottom:8px}.form-group input[type=text],.form-group input[type=email],.form-group textarea,.form-group select{width:100%;padding:12px 14px;border:2px solid #e0e0e0;border-radius:10px;font-size:14px;color:#333;transition:all .2s ease;background:#fff}.form-group input[type=text]:focus,.form-group input[type=email]:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#ff5722;box-shadow:0 0 0 3px #ff57221a}.form-group input[type=color]{width:100%;height:44px;border:2px solid #e0e0e0;border-radius:10px;cursor:pointer;padding:4px}.form-group input[type=color]:hover{border-color:#ff5722}.form-group textarea{resize:vertical;min-height:80px}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;background:#f8f9fa;border-top:1px solid #e9ecef;border-radius:0 0 16px 16px}.btn{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,#ff5722,#e64a19);color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ff572266}.btn-secondary{background:#f5f5f5;color:#666}.btn-secondary:hover{background:#e0e0e0}.btn-danger{background:#f44336;color:#fff}.btn-danger:hover{background:#d32f2f}.btn-danger.hidden{display:none}.custom-maps-toast,.poi-toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%) translateY(20px);padding:14px 24px;border-radius:10px;font-size:14px;font-weight:500;color:#fff;box-shadow:0 4px 15px #0000004d;z-index:10001;opacity:0;transition:all .3s ease;display:flex;align-items:center;gap:10px}.custom-maps-toast.show,.poi-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.custom-maps-toast.info,.poi-toast.info{background:linear-gradient(135deg,#2196f3,#1976d2)}.custom-maps-toast.success,.poi-toast.success{background:linear-gradient(135deg,#4caf50,#388e3c)}.custom-maps-toast.warning,.poi-toast.warning{background:linear-gradient(135deg,#ff9800,#f57c00)}.custom-maps-toast.error,.poi-toast.error{background:linear-gradient(135deg,#f44336,#d32f2f)}#editor-btn{background:#fff3;border:none;color:#fff;font-size:18px;width:42px;height:42px;border-radius:4px;cursor:pointer;transition:all .25s ease;display:flex;align-items:center;justify-content:center;margin-left:8px}#editor-btn:hover{background:#ffffff4d}#editor-btn:active{transform:scale(.95)}#editor-btn.active{background:#fff6;box-shadow:inset 0 0 0 2px #ffffff80}.editor-panel{position:fixed;top:70px;right:20px;width:340px;max-height:calc(100vh - 100px);background:#fff;border-radius:12px;box-shadow:0 4px 20px #0003;z-index:1001;overflow:hidden;animation:editorSlideIn .3s ease}.editor-panel.hidden{display:none}@keyframes editorSlideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.editor-panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#607d8b,#455a64);color:#fff;font-size:16px;font-weight:600}.editor-panel-header i{margin-right:8px}.close-panel-btn{width:32px;height:32px;border:none;border-radius:50%;background:#fff3;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s ease}.close-panel-btn:hover{background:#ffffff4d;transform:scale(1.1)}.editor-panel-content{padding:16px;max-height:calc(100vh - 180px);overflow-y:auto}.editor-panel-content::-webkit-scrollbar{width:6px}.editor-panel-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.editor-panel-content::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.editor-section{background:#f8f9fa;border-radius:10px;padding:16px;margin-bottom:16px}.editor-section:last-child{margin-bottom:0}.editor-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.editor-section .section-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#333}.editor-section .section-title i{color:#607d8b}.custom-map-item.selected{border:2px solid #FF5722;background:#fff3e0}.custom-map-item.selected .custom-map-name{color:#e64a19;font-weight:600}.custom-map-name{cursor:pointer;transition:color .2s ease}.custom-map-name:hover{color:#ff5722}@media (max-width: 768px){.drawing-toolbar{min-width:auto;width:calc(100% - 40px);left:20px;right:20px;transform:none}.toolbar-content{flex-direction:column;align-items:stretch;gap:16px}.tool-buttons{justify-content:center}.tool-btn{min-width:60px;padding:8px 10px}.modal-content{min-width:auto;width:calc(100% - 40px);margin:20px}.form-row{flex-direction:column;gap:0}.poi-actions-buttons{flex-direction:column}.custom-maps-list,.poi-list{max-height:150px}.stroke-control{flex-direction:column;gap:6px}.stroke-control input[type=range]{width:100%}.color-group,.stroke-group{flex-direction:row;justify-content:center;gap:12px}#editor-btn{width:36px;height:36px;font-size:16px;margin-left:4px}.editor-panel{width:calc(100% - 30px);right:15px;max-height:calc(100vh - 120px)}#vehicles-locator-btn{width:36px;height:36px;font-size:16px;margin-left:4px}.vehicles-locator-panel{width:calc(100% - 30px);left:15px;max-height:calc(100vh - 120px)}}#vehicles-locator-btn{background:#fff3;border:none;color:#fff;font-size:18px;width:42px;height:42px;border-radius:4px;cursor:pointer;transition:all .25s ease;display:flex;align-items:center;justify-content:center;margin-left:8px}#vehicles-locator-btn:hover{background:#ffffff4d}#vehicles-locator-btn:active{transform:scale(.95)}#vehicles-locator-btn.active{background:#fff6;box-shadow:inset 0 0 0 2px #ffffff80}.vehicles-locator-panel{position:fixed;top:70px;left:20px;width:340px;max-height:calc(100vh - 100px);background:#fff;border-radius:12px;box-shadow:0 4px 20px #0003;z-index:1001;overflow:hidden;display:flex;flex-direction:column;animation:vehiclesLocatorSlideIn .3s ease}.vehicles-locator-panel.hidden{display:none}@keyframes vehiclesLocatorSlideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.vehicles-locator-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#6c5ce7,#a29bfe);color:#fff;font-size:16px;font-weight:600}.vehicles-locator-header .header-content{display:flex;align-items:center;gap:10px}.vehicles-locator-header .header-content i{font-size:20px}.vehicles-filter-bar{display:flex;padding:12px 16px;gap:8px;background:#f8f9fa;border-bottom:1px solid #e9ecef}.vehicles-filter-bar .filter-btn{flex:1;padding:8px 12px;border:2px solid #e0e0e0;background:#fff;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:4px}.vehicles-filter-bar .filter-btn:hover{border-color:#6c5ce7;background:#f5f3ff}.vehicles-filter-bar .filter-btn.active{border-color:#6c5ce7;background:#6c5ce7;color:#fff}.vehicles-filter-bar .filter-btn.active .filter-count{background:#ffffff4d;color:#fff}.filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:20px;padding:0 6px;border-radius:10px;font-size:11px;font-weight:600;background:#e0e0e0;color:#666}.filter-count.mission{background:#9c27b026;color:#9c27b0}.filter-count.available{background:#4caf5026;color:#4caf50}.vehicles-search-bar{display:flex;align-items:center;padding:12px 16px;gap:10px;border-bottom:1px solid #e9ecef}.vehicles-search-bar i{color:#999;font-size:14px}.vehicles-search-bar input{flex:1;border:none;outline:none;font-size:14px;background:transparent}.vehicles-search-bar input::placeholder{color:#bbb}.vehicles-locator-list{flex:1;overflow-y:auto;padding:12px;max-height:calc(100vh - 340px)}.vehicles-locator-list::-webkit-scrollbar{width:6px}.vehicles-locator-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.vehicles-locator-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.vehicles-locator-list::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.vehicle-locator-item{display:flex;align-items:center;padding:12px;background:#f8f9fa;border-radius:10px;margin-bottom:8px;cursor:pointer;transition:all .2s ease;border-left:4px solid #9e9e9e}.vehicle-locator-item:last-child{margin-bottom:0}.vehicle-locator-item:hover{background:#e9ecef;transform:translate(4px)}.vehicle-locator-item.mission{border-left-color:#9c27b0}.vehicle-locator-item.available{border-left-color:#4caf50}.vehicle-locator-item .vehicle-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;margin-right:12px}.vehicle-locator-item .vehicle-icon img{width:32px;height:auto}.vehicle-locator-item .vehicle-details{flex:1;min-width:0}.vehicle-locator-item .vehicle-code{font-size:15px;font-weight:600;color:#333;margin-bottom:2px}.vehicle-locator-item .vehicle-status{font-size:12px;color:#666}.vehicle-locator-item .vehicle-status.mission{color:#9c27b0}.vehicle-locator-item .vehicle-status.available{color:#4caf50}.vehicle-locator-item .locate-btn{width:36px;height:36px;border:none;border-radius:50%;background:#6c5ce7;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.vehicle-locator-item .locate-btn:hover{background:#5b4cdb;transform:scale(1.1)}.vehicle-locator-item .locate-btn i{font-size:14px}.no-vehicles-message{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#999;text-align:center;gap:12px}.no-vehicles-message i{font-size:32px;color:#ccc}.no-vehicles-message span{font-size:14px}.vehicles-locator-footer{padding:12px 16px;background:#f8f9fa;border-top:1px solid #e9ecef;font-size:12px;color:#666;text-align:center}:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}
