@keyframes spin{to{transform:rotate(360deg)}}:root{--spacing-sm:0.5rem;--spacing-md:0.5rem}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;width:100%;overflow:hidden}button{box-shadow:3px 3px 0 rgba(0,0,0,.25)}.container{display:flex;height:100vh;width:100vw}#sidebar{height:100%;background:#f8f9fa;border-right:1px solid #dee2e6;overflow-y:auto;padding:var(--spacing-md)}#sidebar h2{font-size:1.25rem;margin-bottom:var(--spacing-md);margin-top:var(--spacing-md);color:#333;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}#sidebar h2:first-child{margin-top:0}#waypoints-container,.driver-config,.truck-config,.waypoints-config{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.driver-config label,.truck-config label,.waypoints-config label{display:flex;flex-direction:row;align-items:center;gap:var(--spacing-sm);font-size:.875rem;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:#333;white-space:nowrap}.truck-config input,.truck-config select{flex:1;min-width:0;padding:var(--spacing-sm);border:1px solid #ced4da;font-size:.875rem;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}.truck-config input:focus,.truck-config select:focus,.waypoint-input:focus{outline:0;border-color:#80bdff}.driver-config input,.waypoints-config input{background:#f8f9fa;color:#6c757d}.waypoint{display:flex;gap:var(--spacing-sm)}.driver-config input,.waypoint-input,.waypoints-config input{flex:1;min-width:0;padding:var(--spacing-sm);border:1px solid #ced4da;font-size:.875rem;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}.delete-waypoint{width:2rem;padding:0;background:0 0;color:#343a40;border:1px solid #343a40;cursor:pointer;font-size:1.25rem;line-height:1}.delete-waypoint:hover{background:#343a40;color:#fff}.sidebar-buttons{display:flex;gap:var(--spacing-sm)}#add-waypoint{flex:1;background:#007bff}#add-waypoint:hover{background:#0056b3}#add-waypoint,#clear-waypoints,#compute-route{padding:var(--spacing-sm) var(--spacing-md);color:#fff;border:0;cursor:pointer;font-size:.875rem;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}#clear-waypoints{background:#6c757d}#clear-waypoints:hover{background:#5a6268}#compute-route{width:100%;margin-top:var(--spacing-md);background:#28a745}#compute-route:hover:not(:disabled){background:#218838}#compute-route:disabled{opacity:.5;cursor:not-allowed}#compute-route.computing{opacity:1}.spinner{display:inline-block;width:.875rem;height:.875rem;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle;margin-right:.25rem}#compute-error{margin-top:var(--spacing-sm);padding:var(--spacing-sm);background:#f8d7da;border-left:3px solid #dc3545;color:#721c24;font-size:.75rem;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;display:none}#compute-error:not(:empty){display:block}#route-results-label,.route-candidate{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}#route-results-label{margin-top:var(--spacing-md);font-size:.75rem;color:#6c757d}#route-results{margin-top:var(--spacing-sm)}.route-candidate{padding:var(--spacing-sm);margin-bottom:var(--spacing-sm);border:1px solid #ced4da;cursor:pointer;font-size:.875rem;background:#fff}.route-candidate:hover{background:#f8f9fa}.route-candidate.selected{background:#e7f3ff;border-color:#007bff}.autocomplete-dropdown{position:absolute;background:#fff;border:1px solid #ced4da;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:1000;max-height:200px;overflow-y:auto}.autocomplete-item,.route-disclaimer,.route-summary{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}.autocomplete-item{padding:var(--spacing-sm);cursor:pointer;font-size:.875rem}#resize-handle,.autocomplete-item:hover{background:#f8f9fa}#resize-handle{width:4px;height:100%;border-left:1px solid #adb5bd;cursor:col-resize;user-select:none}#resize-handle:hover{background:#e9ecef;border-left-color:#6c757d}#map{flex:1;height:100%;position:relative}#route-detail{width:300px;height:100%;background:#f8f9fa;border-left:1px solid #dee2e6;overflow-y:auto;padding:var(--spacing-md)}#route-detail.hidden{display:none}.route-disclaimer,.route-summary{margin-bottom:var(--spacing-md)}.route-disclaimer{padding:var(--spacing-sm);background:#fff3cd;border-left:3px solid #ffc107;font-size:.75rem;color:#856404}.route-summary{width:100%;background:#fff;border:1px solid #dee2e6;border-collapse:collapse;font-size:.875rem}.route-summary td{padding:var(--spacing-sm);border-bottom:1px solid #dee2e6}.route-summary td:first-child{color:#6c757d}.route-summary td:last-child{text-align:right;font-weight:700}.route-summary-total td{border-top:2px solid #333;border-bottom:none;font-weight:700;color:#333}.route-step{margin-bottom:var(--spacing-md);padding:var(--spacing-sm);background:#fff;border-left:3px solid #007bff}.route-step.departure{border-left-color:#28a745}.route-step.destination{border-left-color:#dc3545}.route-step-detail,.route-step-header{margin-bottom:var(--spacing-sm);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}.route-step-header{font-weight:700;font-size:.875rem}.route-step-detail{font-size:.75rem;color:#6c757d}.route-activity{margin-top:var(--spacing-sm);padding:var(--spacing-sm);background:#e9ecef;font-size:.75rem}.route-activity.charging{background:#fff3cd}.route-activity.driverBreak{background:#d1ecf1}.route-activity+.route-step-detail{margin-top:var(--spacing-md)}#fit-map,.route-activity,.route-drive{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}.route-drive{margin:var(--spacing-sm)0;padding:var(--spacing-sm);background:#f8f9fa;border-left:2px dashed #6c757d;font-size:.75rem;color:#6c757d}#fit-map{position:absolute;bottom:3em;right:2em;padding:var(--spacing-sm) var(--spacing-md);background:#007bff;color:#fff;border:2px solid #fff;cursor:pointer;font-size:.875rem;font-weight:700;z-index:1000}#fit-map:hover:not(:disabled){background:#0056b3}#fit-map:disabled{opacity:.5;cursor:not-allowed}.waypoint-marker{background:0 0;border:0}.waypoint-marker-number{width:31px;height:31px;background:#f31;color:#fff;border:2px solid #fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;box-shadow:3px 3px 0 rgba(0,0,0,.25)}.charger-marker{background:0 0;border:0}.charger-marker-icon{width:25px;height:25px;background:#007bff;color:#fff;border:2px solid #fff;display:flex;align-items:center;justify-content:center;font-size:14px;box-shadow:3px 3px 0 rgba(0,0,0,.25)}.route-charger-marker{background:0 0;border:0}.route-charger-icon{width:25px;height:25px;background:#ff8c00;color:#fff;border:2px solid #fff;display:flex;align-items:center;justify-content:center;font-size:14px;box-shadow:3px 3px 0 rgba(0,0,0,.25)}