@fleetbase/fleetops-engine 0.6.48 → 0.6.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/addon/components/customer/create-order-form.hbs +2 -2
  2. package/addon/components/customer/form.hbs +2 -2
  3. package/addon/components/customer/order-form.hbs +2 -2
  4. package/addon/components/customer/orders.hbs +2 -2
  5. package/addon/components/display-place.hbs +2 -2
  6. package/addon/components/driver/details.hbs +5 -1
  7. package/addon/components/driver/form.hbs +11 -1
  8. package/addon/components/fleet-listing-panel.hbs +2 -2
  9. package/addon/components/fleet-listing-panel.js +10 -0
  10. package/addon/components/map/google-live-map.js +18 -75
  11. package/addon/components/map/leaflet-live-map.hbs +187 -37
  12. package/addon/components/map/leaflet-live-map.js +184 -20
  13. package/addon/components/modals/order-change-destination.hbs +46 -0
  14. package/addon/components/modals/order-change-destination.js +106 -0
  15. package/addon/components/modals/stop-activity.hbs +28 -0
  16. package/addon/components/modals/stop-activity.js +52 -0
  17. package/addon/components/modals/update-order-activity.hbs +45 -3
  18. package/addon/components/modals/update-order-activity.js +143 -5
  19. package/addon/components/orchestrator/phase-builder.hbs +21 -0
  20. package/addon/components/orchestrator/phase-builder.js +13 -0
  21. package/addon/components/orchestrator/resource-panel.hbs +0 -10
  22. package/addon/components/orchestrator/resource-panel.js +2 -4
  23. package/addon/components/orchestrator-workbench.js +1 -0
  24. package/addon/components/order/activity-list.hbs +2 -2
  25. package/addon/components/order/activity-timeline.hbs +31 -29
  26. package/addon/components/order/details/activity.hbs +3 -3
  27. package/addon/components/order/details/activity.js +11 -0
  28. package/addon/components/order/details/documents.js +2 -0
  29. package/addon/components/order/details/purchase-rate.hbs +2 -2
  30. package/addon/components/order/details/route.hbs +11 -3
  31. package/addon/components/order/details/route.js +91 -14
  32. package/addon/components/order/details/tracking.hbs +101 -72
  33. package/addon/components/order/details/tracking.js +149 -2
  34. package/addon/components/order/form/details.hbs +3 -3
  35. package/addon/components/order/form/documents.js +11 -4
  36. package/addon/components/order/form/route.hbs +108 -104
  37. package/addon/components/order/form/route.js +37 -1
  38. package/addon/components/order/form/service-rate.hbs +2 -2
  39. package/addon/components/order/form.hbs +2 -2
  40. package/addon/components/order-config-manager/activity-flow.hbs +4 -1
  41. package/addon/components/order-config-manager/activity-flow.js +178 -12
  42. package/addon/components/place/address.js +1 -1
  43. package/addon/components/route-list.hbs +17 -17
  44. package/addon/components/route-list.js +42 -10
  45. package/addon/components/service-rate/details.hbs +41 -0
  46. package/addon/components/service-rate/form.hbs +118 -0
  47. package/addon/components/service-rate/form.js +55 -0
  48. package/addon/components/vehicle/form.js +1 -1
  49. package/addon/components/vehicle/pill.hbs +1 -1
  50. package/addon/components/widget/fleet-ops-key-metrics.hbs +19 -17
  51. package/addon/components/widget/fleet-ops-key-metrics.js +26 -0
  52. package/addon/components/widget/fuel-efficiency.hbs +26 -0
  53. package/addon/components/widget/fuel-efficiency.js +43 -0
  54. package/addon/components/widget/geofence-violations.hbs +44 -0
  55. package/addon/components/widget/geofence-violations.js +55 -0
  56. package/addon/components/widget/issues-insights.hbs +43 -0
  57. package/addon/components/widget/issues-insights.js +62 -0
  58. package/addon/components/widget/kpi-active-orders.hbs +10 -0
  59. package/addon/components/widget/kpi-active-orders.js +5 -0
  60. package/addon/components/widget/kpi-aov.hbs +10 -0
  61. package/addon/components/widget/kpi-aov.js +5 -0
  62. package/addon/components/widget/kpi-distance.hbs +10 -0
  63. package/addon/components/widget/kpi-distance.js +5 -0
  64. package/addon/components/widget/kpi-drivers-online.hbs +10 -0
  65. package/addon/components/widget/kpi-drivers-online.js +5 -0
  66. package/addon/components/widget/kpi-earnings.hbs +10 -0
  67. package/addon/components/widget/kpi-earnings.js +5 -0
  68. package/addon/components/widget/kpi-open-issues.hbs +11 -0
  69. package/addon/components/widget/kpi-open-issues.js +5 -0
  70. package/addon/components/widget/kpi-tile.hbs +59 -0
  71. package/addon/components/widget/kpi-tile.js +168 -0
  72. package/addon/components/widget/live-fleet.hbs +122 -0
  73. package/addon/components/widget/live-fleet.js +365 -0
  74. package/addon/components/widget/maintenance-overview.hbs +45 -0
  75. package/addon/components/widget/maintenance-overview.js +40 -0
  76. package/addon/components/widget/on-time-delivery.hbs +27 -0
  77. package/addon/components/widget/on-time-delivery.js +73 -0
  78. package/addon/components/widget/operations-pulse.hbs +51 -0
  79. package/addon/components/widget/operations-pulse.js +173 -0
  80. package/addon/components/widget/orders-by-status.hbs +26 -0
  81. package/addon/components/widget/orders-by-status.js +54 -0
  82. package/addon/components/widget/revenue-trend.hbs +34 -0
  83. package/addon/components/widget/revenue-trend.js +67 -0
  84. package/addon/components/widget/top-drivers.hbs +44 -0
  85. package/addon/components/widget/top-drivers.js +54 -0
  86. package/addon/controllers/management/vehicles/index/new.js +1 -1
  87. package/addon/controllers/operations/orders/index/details.js +4 -4
  88. package/addon/controllers/operations/orders/index.js +14 -0
  89. package/addon/controllers/settings/routing.js +26 -0
  90. package/addon/extension.js +172 -3
  91. package/addon/helpers/place-address-html.js +2 -2
  92. package/addon/routes/operations/service-rates/index.js +1 -1
  93. package/addon/services/geofence.js +163 -19
  94. package/addon/services/leaflet-contextmenu-manager.js +27 -0
  95. package/addon/services/map-adapter/google.js +13 -2
  96. package/addon/services/vehicle-actions.js +1 -1
  97. package/addon/styles/fleetops-engine.css +205 -88
  98. package/addon/templates/maintenance/equipment/index.hbs +1 -1
  99. package/addon/templates/maintenance/parts/index.hbs +1 -1
  100. package/addon/templates/maintenance/schedules/index.hbs +1 -1
  101. package/addon/templates/management/vehicles/index.hbs +1 -1
  102. package/addon/templates/settings/avatars.hbs +1 -1
  103. package/addon/templates/settings/custom-fields.hbs +1 -1
  104. package/addon/templates/settings/map.hbs +1 -1
  105. package/addon/templates/settings/navigator-app.hbs +1 -1
  106. package/addon/templates/settings/notifications.hbs +1 -1
  107. package/addon/templates/settings/orchestrator.hbs +1 -1
  108. package/addon/templates/settings/payments/index.hbs +1 -1
  109. package/addon/templates/settings/payments/onboard.hbs +1 -1
  110. package/addon/templates/settings/routing.hbs +22 -2
  111. package/addon/templates/settings/scheduling.hbs +1 -1
  112. package/addon/utils/fleet-ops-options.js +2 -1
  113. package/addon/utils/live-map-card-content.js +171 -0
  114. package/addon/utils/normalize-order-config-flow.js +41 -0
  115. package/addon/utils/place-address-html.js +3 -2
  116. package/addon/utils/route-visualization.js +54 -7
  117. package/app/components/modals/order-change-destination.js +1 -0
  118. package/app/components/modals/stop-activity.js +1 -0
  119. package/app/components/widget/fuel-efficiency.js +1 -0
  120. package/app/components/widget/geofence-violations.js +1 -0
  121. package/app/components/widget/issues-insights.js +1 -0
  122. package/app/components/widget/kpi-active-orders.js +1 -0
  123. package/app/components/widget/kpi-aov.js +1 -0
  124. package/app/components/widget/kpi-distance.js +1 -0
  125. package/app/components/widget/kpi-drivers-online.js +1 -0
  126. package/app/components/widget/kpi-earnings.js +1 -0
  127. package/app/components/widget/kpi-open-issues.js +1 -0
  128. package/app/components/widget/kpi-tile.js +1 -0
  129. package/app/components/widget/live-fleet.js +1 -0
  130. package/app/components/widget/maintenance-overview.js +1 -0
  131. package/app/components/widget/on-time-delivery.js +1 -0
  132. package/app/components/widget/operations-pulse.js +1 -0
  133. package/app/components/widget/orders-by-status.js +1 -0
  134. package/app/components/widget/revenue-trend.js +1 -0
  135. package/app/components/widget/top-drivers.js +1 -0
  136. package/app/utils/live-map-card-content.js +1 -0
  137. package/composer.json +1 -1
  138. package/extension.json +1 -1
  139. package/package.json +3 -3
  140. package/pnpm-workspace.yaml +1 -0
  141. package/server/config/telematics.php +111 -1
  142. package/server/migrations/2026_05_18_000001_add_license_expiry_to_drivers_table.php +25 -0
  143. package/server/migrations/2026_05_21_000001_add_geographic_rules_to_service_rate_fees_table.php +37 -0
  144. package/server/migrations/2026_05_25_000001_add_endpoint_tracking_refs_to_payloads_table.php +50 -0
  145. package/server/migrations/2026_05_27_000001_default_driver_vehicle_statuses_to_available.php +48 -0
  146. package/server/resources/views/labels/default.php +57 -49
  147. package/server/resources/views/labels/waypoint-label.php +27 -20
  148. package/server/seeders/Testing/Concerns/SeedsTestingData.php +183 -0
  149. package/server/seeders/Testing/ConnectivitySeeder.php +213 -0
  150. package/server/seeders/Testing/FleetSeeder.php +341 -0
  151. package/server/seeders/Testing/MaintenanceSeeder.php +238 -0
  152. package/server/seeders/Testing/NetworkSeeder.php +250 -0
  153. package/server/seeders/Testing/OrdersSeeder.php +198 -0
  154. package/server/seeders/Testing/TestingSeeder.php +40 -0
  155. package/server/seeders/{VroomOrchestrationSeeder.php → Testing/VroomOrchestrationSeeder.php} +29 -22
  156. package/server/src/Console/Commands/AuditCustomerUserConflicts.php +75 -0
  157. package/server/src/Console/Commands/ProcessOperationalAlerts.php +279 -0
  158. package/server/src/Exceptions/CustomerUserConflictException.php +13 -0
  159. package/server/src/Http/Controllers/Api/v1/ContactController.php +17 -2
  160. package/server/src/Http/Controllers/Api/v1/CustomerController.php +876 -0
  161. package/server/src/Http/Controllers/Api/v1/DriverController.php +1 -1
  162. package/server/src/Http/Controllers/Api/v1/OrderConfigController.php +54 -0
  163. package/server/src/Http/Controllers/Api/v1/OrderController.php +98 -70
  164. package/server/src/Http/Controllers/Api/v1/ServiceAreaController.php +2 -2
  165. package/server/src/Http/Controllers/Api/v1/VehicleController.php +20 -3
  166. package/server/src/Http/Controllers/Internal/v1/AnalyticsController.php +119 -0
  167. package/server/src/Http/Controllers/Internal/v1/ContactController.php +19 -0
  168. package/server/src/Http/Controllers/Internal/v1/LiveController.php +101 -66
  169. package/server/src/Http/Controllers/Internal/v1/MetricsController.php +82 -3
  170. package/server/src/Http/Controllers/Internal/v1/OrderController.php +441 -32
  171. package/server/src/Http/Controllers/Internal/v1/ServiceQuoteController.php +1 -1
  172. package/server/src/Http/Controllers/Internal/v1/SettingController.php +46 -1
  173. package/server/src/Http/Controllers/Internal/v1/VehicleController.php +54 -1
  174. package/server/src/Http/Middleware/AuthenticateCustomerToken.php +34 -0
  175. package/server/src/Http/Requests/CreateCustomerOrderRequest.php +63 -0
  176. package/server/src/Http/Requests/CreateCustomerRequest.php +48 -0
  177. package/server/src/Http/Requests/CreateDriverRequest.php +1 -1
  178. package/server/src/Http/Requests/CreateVehicleRequest.php +25 -1
  179. package/server/src/Http/Requests/Internal/CreateDriverRequest.php +1 -1
  180. package/server/src/Http/Requests/VerifyCreateCustomerRequest.php +29 -0
  181. package/server/src/Http/Resources/Internal/v1/OrderConfig.php +41 -0
  182. package/server/src/Http/Resources/v1/Customer.php +79 -0
  183. package/server/src/Http/Resources/v1/Driver.php +2 -0
  184. package/server/src/Http/Resources/v1/Fleet.php +4 -0
  185. package/server/src/Http/Resources/v1/Index/Driver.php +48 -0
  186. package/server/src/Http/Resources/v1/Index/Vehicle.php +74 -1
  187. package/server/src/Http/Resources/v1/OrderConfig.php +74 -0
  188. package/server/src/Http/Resources/v1/Payload.php +23 -20
  189. package/server/src/Http/Resources/v1/ServiceArea.php +33 -19
  190. package/server/src/Http/Resources/v1/ServiceRateFee.php +7 -0
  191. package/server/src/Listeners/HandleOrderDispatched.php +2 -2
  192. package/server/src/Models/Contact.php +92 -15
  193. package/server/src/Models/Customer.php +64 -0
  194. package/server/src/Models/Driver.php +14 -3
  195. package/server/src/Models/Entity.php +2 -2
  196. package/server/src/Models/Order.php +29 -4
  197. package/server/src/Models/OrderConfig.php +14 -11
  198. package/server/src/Models/Payload.php +17 -1
  199. package/server/src/Models/ServiceRate.php +273 -1
  200. package/server/src/Models/ServiceRateFee.php +39 -9
  201. package/server/src/Models/TrackingNumber.php +8 -2
  202. package/server/src/Models/Vehicle.php +18 -2
  203. package/server/src/Models/Waypoint.php +2 -2
  204. package/server/src/Notifications/LateDeparture.php +48 -0
  205. package/server/src/Notifications/ProlongedStoppage.php +48 -0
  206. package/server/src/Notifications/RouteDeviation.php +48 -0
  207. package/server/src/Observers/ContactObserver.php +2 -0
  208. package/server/src/Observers/ServiceRateObserver.php +6 -6
  209. package/server/src/Orchestration/Engines/VroomOrchestrationEngine.php +29 -2
  210. package/server/src/Providers/FleetOpsServiceProvider.php +6 -0
  211. package/server/src/Providers/NotificationServiceProvider.php +3 -0
  212. package/server/src/Support/Analytics/AbstractAnalytics.php +77 -0
  213. package/server/src/Support/Analytics/FuelEfficiency.php +83 -0
  214. package/server/src/Support/Analytics/GeofenceViolations.php +63 -0
  215. package/server/src/Support/Analytics/IssuesInsights.php +67 -0
  216. package/server/src/Support/Analytics/LiveFleet.php +127 -0
  217. package/server/src/Support/Analytics/MaintenanceOverview.php +70 -0
  218. package/server/src/Support/Analytics/OnTimeDelivery.php +75 -0
  219. package/server/src/Support/Analytics/OperationsPulse.php +86 -0
  220. package/server/src/Support/Analytics/OrdersByStatus.php +64 -0
  221. package/server/src/Support/Analytics/RevenueTrend.php +78 -0
  222. package/server/src/Support/Analytics/TopDrivers.php +92 -0
  223. package/server/src/Support/CustomerAuth.php +98 -0
  224. package/server/src/Support/LabelPdf.php +52 -0
  225. package/server/src/Support/Metrics/AbstractMetric.php +170 -0
  226. package/server/src/Support/Metrics/ActiveLiveOrdersMetric.php +28 -0
  227. package/server/src/Support/Metrics/AvgOrderValueMetric.php +53 -0
  228. package/server/src/Support/Metrics/DriversOnlineMetric.php +30 -0
  229. package/server/src/Support/Metrics/EarningsMetric.php +30 -0
  230. package/server/src/Support/Metrics/FuelCostsMetric.php +30 -0
  231. package/server/src/Support/Metrics/MoneyMetric.php +30 -0
  232. package/server/src/Support/Metrics/OpenIssuesMetric.php +35 -0
  233. package/server/src/Support/Metrics/OrdersCanceledMetric.php +35 -0
  234. package/server/src/Support/Metrics/OrdersCompletedMetric.php +35 -0
  235. package/server/src/Support/Metrics/OrdersInProgressMetric.php +51 -0
  236. package/server/src/Support/Metrics/OrdersScheduledMetric.php +37 -0
  237. package/server/src/Support/Metrics/Registry.php +46 -0
  238. package/server/src/Support/Metrics/ResolvedIssuesMetric.php +35 -0
  239. package/server/src/Support/Metrics/TotalCustomersMetric.php +29 -0
  240. package/server/src/Support/Metrics/TotalDistanceTraveledMetric.php +35 -0
  241. package/server/src/Support/Metrics/TotalDriversMetric.php +28 -0
  242. package/server/src/Support/Metrics/TotalTimeTraveledMetric.php +35 -0
  243. package/server/src/Support/Metrics.php +46 -249
  244. package/server/src/Support/ResolvesOrderServiceStops.php +512 -0
  245. package/server/src/Support/Telematics/Providers/AfaqyProvider.php +290 -0
  246. package/server/src/Support/Telematics/Providers/SafeeProvider.php +333 -0
  247. package/server/src/Tracking/TrackingContextBuilder.php +41 -38
  248. package/server/src/Tracking/TrackingIntelligenceService.php +109 -9
  249. package/server/src/Tracking/TrackingStop.php +13 -11
  250. package/server/src/routes.php +50 -0
  251. package/server/tests/AnalyticsRoutesTest.php +41 -0
  252. package/server/tests/CapacityAllocationEngineTest.php +10 -10
  253. package/server/tests/CustomerContactIdentitySafetyTest.php +54 -0
  254. package/server/tests/CustomerEndpointTest.php +199 -0
  255. package/server/tests/DriverVehicleStatusDefaultTest.php +39 -0
  256. package/server/tests/LabelPdfRenderingTest.php +23 -0
  257. package/server/tests/LiveControllerViewportTest.php +60 -0
  258. package/server/tests/MetricsRegistryTest.php +84 -0
  259. package/server/tests/OrchestrationPayloadBuilderTest.php +2 -2
  260. package/server/tests/OrderConfigEndpointTest.php +86 -0
  261. package/server/tests/OrderFileAttachmentTest.php +20 -0
  262. package/server/tests/ServiceAreaZoneApiShapeTest.php +34 -0
  263. package/server/tests/VehicleDriverAssignmentTest.php +18 -0
  264. package/server/tests/VroomOrchestrationEngineTest.php +91 -0
  265. package/translations/en-us.yaml +38 -0
  266. package/server/migrations/2026_05_13_000001_repair_customer_contact_user_types.php +0 -86
@@ -1,3 +1,4 @@
1
+ /* stylelint-disable alpha-value-notation -- FleetOps lazy engine production CSS is minified by legacy clean-css, which corrupts comma-form rgba() percent alpha values. */
1
2
  .scheduler-left-sidebar {
2
3
  border-right: 1px rgb(229 231 235 / 100%) solid;
3
4
  height: 100vh;
@@ -344,6 +345,51 @@ body.fleetbase-console .next-content-overlay > .next-content-overlay-panel-conta
344
345
  gap: 0.5rem;
345
346
  }
346
347
 
348
+ .fleetops-order-form-waypoint {
349
+ position: relative;
350
+ }
351
+
352
+ .fleetops-order-form-waypoint--required {
353
+ border-color: #f97316 !important;
354
+ padding-top: 1.25rem;
355
+ box-shadow:
356
+ 0 1px 3px 0 rgb(249 115 22 / 15%),
357
+ 0 0 0 1px rgb(249 115 22 / 10%);
358
+ }
359
+
360
+ .fleetops-order-form-waypoint__required-tab {
361
+ position: absolute;
362
+ top: -1px;
363
+ right: -1px;
364
+ border-top-right-radius: 0.375rem;
365
+ border-bottom-left-radius: 0.375rem;
366
+ background-color: #f97316;
367
+ color: #fff7ed;
368
+ padding: 0.15rem 0.5rem;
369
+ font-size: 0.62rem;
370
+ font-weight: 700;
371
+ line-height: 1.2;
372
+ text-transform: uppercase;
373
+ letter-spacing: 0.02em;
374
+ }
375
+
376
+ .fleetops-order-form-waypoint__marker {
377
+ display: flex;
378
+ flex-direction: row;
379
+ align-items: center;
380
+ gap: 0.6rem;
381
+ min-width: 3.25rem;
382
+ padding-top: 0.15rem;
383
+ }
384
+
385
+ .fleetops-order-form-waypoint__badge {
386
+ min-width: 1.65rem;
387
+ width: 1.65rem;
388
+ height: 1.65rem;
389
+ font-size: 0.75rem;
390
+ flex-shrink: 0;
391
+ }
392
+
347
393
  .fleetops-route-editor-empty-state {
348
394
  border: 1px dashed rgb(75 85 99 / 75%);
349
395
  border-radius: 0.5rem;
@@ -425,7 +471,7 @@ body[data-theme='light'] .fleetops-pill-tabs > nav > a.ui-tab.active {
425
471
 
426
472
  body[data-theme='light'] .flow-activity {
427
473
  stroke: #e5e7eb;
428
- fill: rgba(249, 250, 251, 50%);
474
+ fill: rgba(249, 250, 251, 0.5);
429
475
  }
430
476
 
431
477
  body[data-theme='light'] .flow-activity:hover,
@@ -463,7 +509,52 @@ body[data-theme='light'] .flow-activity-status-pill text {
463
509
  .activity-flow-graph-container {
464
510
  position: relative;
465
511
  width: 100%;
466
- height: 100%;
512
+ height: calc(100vh - 16rem);
513
+ min-height: 24rem;
514
+ overflow: auto hidden;
515
+ scrollbar-width: none;
516
+ }
517
+
518
+ .activity-flow-graph-container > .joint-js-paper {
519
+ min-width: 100%;
520
+ max-width: none;
521
+ overflow: visible;
522
+ }
523
+
524
+ .activity-flow-graph-container::-webkit-scrollbar {
525
+ display: none;
526
+ }
527
+
528
+ .activity-flow-horizontal-scrollbar {
529
+ position: fixed;
530
+ bottom: 0;
531
+ z-index: 100;
532
+ height: 12px;
533
+ overflow: auto hidden;
534
+ background-color: transparent;
535
+ scrollbar-color: #6b7280 transparent;
536
+ scrollbar-width: thin;
537
+ }
538
+
539
+ .activity-flow-horizontal-scrollbar.is-hidden {
540
+ display: none;
541
+ }
542
+
543
+ .activity-flow-horizontal-scrollbar-content {
544
+ height: 1px;
545
+ }
546
+
547
+ .activity-flow-horizontal-scrollbar::-webkit-scrollbar {
548
+ height: 8px;
549
+ }
550
+
551
+ .activity-flow-horizontal-scrollbar::-webkit-scrollbar-thumb {
552
+ background-color: #6b7280;
553
+ border-radius: 9999px;
554
+ }
555
+
556
+ .activity-flow-horizontal-scrollbar::-webkit-scrollbar-track {
557
+ background-color: transparent;
467
558
  }
468
559
 
469
560
  .activity-flow-zoom-controls {
@@ -856,7 +947,7 @@ body[data-theme='dark'] .order-progress-bar > .order-progress-bar-marker-wrapper
856
947
  }
857
948
 
858
949
  .order-progress-bar.has-progress > .order-progress-bar-wrapper > .order-progress-bar-track {
859
- border-top: 4px dashed rgba(209, 213, 219, 50%);
950
+ border-top: 4px dashed rgba(209, 213, 219, 0.5);
860
951
  }
861
952
 
862
953
  .order-progress-bar > .order-progress-bar-wrapper > .order-progress-bar-track {
@@ -1872,21 +1963,21 @@ main.console-fleet-ops-operations-orders-index-index section.next-view-section >
1872
1963
  .positions-replay-component .metric-card {
1873
1964
  padding: 0.75rem;
1874
1965
  border-radius: 0.5rem;
1875
- background-color: rgba(0, 0, 0, 2%);
1966
+ background-color: rgba(0, 0, 0, 0.02);
1876
1967
  transition: all 0.2s ease-in-out;
1877
1968
  }
1878
1969
 
1879
1970
  .positions-replay-component .metric-card:hover {
1880
- background-color: rgba(0, 0, 0, 4%);
1881
- box-shadow: 0 4px 6px rgba(0, 0, 0, 10%);
1971
+ background-color: rgba(0, 0, 0, 0.04);
1972
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
1882
1973
  }
1883
1974
 
1884
1975
  body[data-theme='dark'] .positions-replay-component .metric-card {
1885
- background-color: rgba(255, 255, 255, 5%);
1976
+ background-color: rgba(255, 255, 255, 0.05);
1886
1977
  }
1887
1978
 
1888
1979
  body[data-theme='dark'] .positions-replay-component .metric-card:hover {
1889
- background-color: rgba(255, 255, 255, 8%);
1980
+ background-color: rgba(255, 255, 255, 0.08);
1890
1981
  }
1891
1982
 
1892
1983
  .positions-replay-component .metric-label {
@@ -2221,7 +2312,7 @@ body[data-theme='dark'] #fleet-ops-fleet-schedule-container .fc-timeline-slot.fc
2221
2312
  font-weight: 500;
2222
2313
  padding: 0.1rem 0.35rem;
2223
2314
  cursor: pointer;
2224
- box-shadow: 0 1px 2px rgba(0, 0, 0, 8%);
2315
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
2225
2316
  }
2226
2317
 
2227
2318
  #fleet-ops-fleet-schedule-container .fc-event:hover {
@@ -2390,7 +2481,7 @@ body[data-theme='dark'] #fleet-ops-scheduler-timeline .ec-day {
2390
2481
  font-weight: 500;
2391
2482
  padding: 0.25rem 0.5rem;
2392
2483
  cursor: pointer;
2393
- box-shadow: 0 1px 2px rgba(0, 0, 0, 8%);
2484
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
2394
2485
  border: none;
2395
2486
  min-height: 3.25rem;
2396
2487
  overflow: hidden;
@@ -2412,11 +2503,11 @@ body[data-theme='dark'] #fleet-ops-scheduler-timeline .ec-day {
2412
2503
 
2413
2504
  /* Drag-over hover state */
2414
2505
  #fleet-ops-scheduler-timeline[data-dragging-over='true'] .ec-main {
2415
- background-color: rgba(99, 102, 241, 4%);
2506
+ background-color: rgba(99, 102, 241, 0.04);
2416
2507
  }
2417
2508
 
2418
2509
  body[data-theme='dark'] #fleet-ops-scheduler-timeline[data-dragging-over='true'] .ec-main {
2419
- background-color: rgba(129, 140, 248, 6%);
2510
+ background-color: rgba(129, 140, 248, 0.06);
2420
2511
  }
2421
2512
 
2422
2513
  /* Per-column drop cursor indicator */
@@ -2429,13 +2520,13 @@ body[data-theme='dark'] #fleet-ops-scheduler-timeline[data-dragging-over='true']
2429
2520
  pointer-events: none;
2430
2521
  z-index: 10;
2431
2522
  border-radius: 1px;
2432
- box-shadow: 0 0 6px rgba(99, 102, 241, 70%);
2523
+ box-shadow: 0 0 6px rgba(99, 102, 241, 0.7);
2433
2524
  transition: left 0.04s linear;
2434
2525
  }
2435
2526
 
2436
2527
  body[data-theme='dark'] #fleet-ops-scheduler-timeline .ec-drop-cursor {
2437
2528
  background-color: #818cf8;
2438
- box-shadow: 0 0 6px rgba(129, 140, 248, 70%);
2529
+ box-shadow: 0 0 6px rgba(129, 140, 248, 0.7);
2439
2530
  }
2440
2531
 
2441
2532
  /* Full-height timeline */
@@ -2726,7 +2817,7 @@ body[data-theme='dark'] .order-pool-card.selected,
2726
2817
  }
2727
2818
 
2728
2819
  .vehicle-drop-zone.drag-over {
2729
- background: rgba(59, 130, 246, 10%);
2820
+ background: rgba(59, 130, 246, 0.1);
2730
2821
  outline: 1px dashed #3b82f6;
2731
2822
  border-radius: 4px;
2732
2823
  }
@@ -2832,7 +2923,7 @@ body[data-theme='dark'] .import-dropzone.dragging,
2832
2923
  border-radius: 50%;
2833
2924
  background: #3b82f6;
2834
2925
  border: 2px solid #fff;
2835
- box-shadow: 0 1px 3px rgba(0, 0, 0, 50%);
2926
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
2836
2927
  transition: transform 0.1s;
2837
2928
  }
2838
2929
 
@@ -2848,7 +2939,7 @@ body[data-theme='dark'] .import-dropzone.dragging,
2848
2939
  height: 16px;
2849
2940
  border-radius: 50%;
2850
2941
  border: 2px solid #fff;
2851
- box-shadow: 0 1px 3px rgba(0, 0, 0, 50%);
2942
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
2852
2943
  background: #ef4444; /* default: offline */
2853
2944
  }
2854
2945
 
@@ -2875,7 +2966,7 @@ body[data-theme='dark'] .import-dropzone.dragging,
2875
2966
  * Minimal padding, small font, semi-transparent dark background.
2876
2967
  */
2877
2968
  .fleetops-waypoint-tooltip {
2878
- background: rgba(15, 23, 42, 88%) !important;
2969
+ background: rgba(15, 23, 42, 0.88) !important;
2879
2970
  border: none !important;
2880
2971
  border-radius: 4px !important;
2881
2972
  color: #f8fafc !important;
@@ -2883,11 +2974,11 @@ body[data-theme='dark'] .import-dropzone.dragging,
2883
2974
  font-weight: 600 !important;
2884
2975
  padding: 3px 7px !important;
2885
2976
  white-space: nowrap;
2886
- box-shadow: 0 2px 6px rgba(0, 0, 0, 35%) !important;
2977
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35) !important;
2887
2978
  }
2888
2979
 
2889
2980
  .fleetops-waypoint-tooltip::before {
2890
- border-top-color: rgba(15, 23, 42, 88%) !important;
2981
+ border-top-color: rgba(15, 23, 42, 0.88) !important;
2891
2982
  }
2892
2983
 
2893
2984
  /* ============================================================
@@ -2899,7 +2990,7 @@ body[data-theme='dark'] .import-dropzone.dragging,
2899
2990
  */
2900
2991
  .fleetops-waypoint-popup-wrapper .leaflet-popup-content-wrapper {
2901
2992
  border-radius: 6px !important;
2902
- box-shadow: 0 4px 16px rgba(0, 0, 0, 20%) !important;
2993
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2) !important;
2903
2994
  padding: 0 !important;
2904
2995
  overflow: hidden;
2905
2996
  }
@@ -2986,10 +3077,10 @@ body[data-theme='dark'] .import-dropzone.dragging,
2986
3077
  }
2987
3078
 
2988
3079
  .fleetops-route-tooltip-wrapper .leaflet-tooltip {
2989
- background: rgba(15, 23, 42, 92%) !important;
3080
+ background: rgba(15, 23, 42, 0.92) !important;
2990
3081
  border: none !important;
2991
3082
  border-radius: 5px !important;
2992
- box-shadow: 0 3px 10px rgba(0, 0, 0, 30%) !important;
3083
+ box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3) !important;
2993
3084
  padding: 6px 10px !important;
2994
3085
  color: #f1f5f9 !important;
2995
3086
  font-size: 11px !important;
@@ -2997,7 +3088,7 @@ body[data-theme='dark'] .import-dropzone.dragging,
2997
3088
  }
2998
3089
 
2999
3090
  .fleetops-route-tooltip-wrapper .leaflet-tooltip::before {
3000
- border-top-color: rgba(15, 23, 42, 92%) !important;
3091
+ border-top-color: rgba(15, 23, 42, 0.92) !important;
3001
3092
  }
3002
3093
 
3003
3094
  .fleetops-route-tooltip {
@@ -3188,7 +3279,7 @@ body[data-theme='dark'] #fleet-ops-orchestrator-plan-timeline .ec-day {
3188
3279
  font-weight: 500;
3189
3280
  padding: 0.25rem 0.5rem;
3190
3281
  cursor: default;
3191
- box-shadow: 0 1px 2px rgba(0, 0, 0, 8%);
3282
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
3192
3283
  border: none;
3193
3284
  min-height: 3.25rem;
3194
3285
  overflow: hidden;
@@ -3393,21 +3484,21 @@ body[data-theme='dark'] .import-mapping-row,
3393
3484
  }
3394
3485
 
3395
3486
  .import-mapping-row:hover {
3396
- background: rgba(0, 0, 0, 2%); /* light mode hover */
3487
+ background: rgba(0, 0, 0, 0.02); /* light mode hover */
3397
3488
  }
3398
3489
 
3399
3490
  body[data-theme='dark'] .import-mapping-row:hover,
3400
3491
  .dark .import-mapping-row:hover {
3401
- background: rgba(255, 255, 255, 2%);
3492
+ background: rgba(255, 255, 255, 0.02);
3402
3493
  }
3403
3494
 
3404
3495
  /* Highlight rows that have a mapping applied */
3405
3496
  .import-mapping-row--mapped {
3406
- background: rgba(16, 185, 129, 5%);
3497
+ background: rgba(16, 185, 129, 0.05);
3407
3498
  }
3408
3499
 
3409
3500
  .import-mapping-row--mapped:hover {
3410
- background: rgba(16, 185, 129, 9%);
3501
+ background: rgba(16, 185, 129, 0.09);
3411
3502
  }
3412
3503
 
3413
3504
  /* Column sizing helpers */
@@ -3618,15 +3709,15 @@ body[data-theme='light'] .import-preview-table td {
3618
3709
  }
3619
3710
 
3620
3711
  .import-preview-table tbody tr:hover td {
3621
- background: rgba(255, 255, 255, 2%);
3712
+ background: rgba(255, 255, 255, 0.02);
3622
3713
  }
3623
3714
 
3624
3715
  body[data-theme='light'] .import-preview-table tbody tr:hover td {
3625
- background: rgba(0, 0, 0, 2%);
3716
+ background: rgba(0, 0, 0, 0.02);
3626
3717
  }
3627
3718
 
3628
3719
  .import-preview-row--error td {
3629
- background: rgba(239, 68, 68, 6%) !important;
3720
+ background: rgba(239, 68, 68, 0.06) !important;
3630
3721
  }
3631
3722
 
3632
3723
  /* Address cell — allow wrapping for long addresses */
@@ -3650,17 +3741,17 @@ body[data-theme='light'] .import-preview-table tbody tr:hover td {
3650
3741
  }
3651
3742
 
3652
3743
  .import-preview-badge--blue {
3653
- background: rgba(59, 130, 246, 15%);
3744
+ background: rgba(59, 130, 246, 0.15);
3654
3745
  color: #60a5fa;
3655
3746
  }
3656
3747
 
3657
3748
  .import-preview-badge--gray {
3658
- background: rgba(107, 114, 128, 15%);
3749
+ background: rgba(107, 114, 128, 0.15);
3659
3750
  color: #9ca3af;
3660
3751
  }
3661
3752
 
3662
3753
  .import-preview-badge--green {
3663
- background: rgba(16, 185, 129, 15%);
3754
+ background: rgba(16, 185, 129, 0.15);
3664
3755
  color: #34d399;
3665
3756
  }
3666
3757
 
@@ -3746,7 +3837,7 @@ body[data-theme='light'] .import-preview-table tbody tr:hover td {
3746
3837
  border-top: 1px solid #1f2937;
3747
3838
  font-size: 0.72rem;
3748
3839
  color: #fbbf24;
3749
- background: rgba(251, 191, 36, 6%);
3840
+ background: rgba(251, 191, 36, 0.06);
3750
3841
  }
3751
3842
 
3752
3843
  .fleetops-google-contextmenu {
@@ -3754,7 +3845,7 @@ body[data-theme='light'] .import-preview-table tbody tr:hover td {
3754
3845
  background: #1f2937;
3755
3846
  color: #f9fafb;
3756
3847
  border-radius: 0.375rem;
3757
- box-shadow: 0 10px 30px rgba(15, 23, 42, 28%);
3848
+ box-shadow: 0 10px 30px rgba(15, 23, 42, 0.28);
3758
3849
  border: 0;
3759
3850
  padding: 0;
3760
3851
  overflow: hidden;
@@ -3808,7 +3899,7 @@ body[data-theme='light'] .import-preview-table tbody tr:hover td {
3808
3899
  padding: 0.313rem;
3809
3900
  border-radius: 9999px;
3810
3901
  background: #fff;
3811
- box-shadow: 0 10px 30px rgba(15, 23, 42, 18%);
3902
+ box-shadow: 0 10px 30px rgba(15, 23, 42, 0.18);
3812
3903
  border: 0;
3813
3904
  pointer-events: auto;
3814
3905
  }
@@ -3899,7 +3990,7 @@ body[data-theme='light'] .import-preview-table tbody tr:hover td {
3899
3990
  body[data-theme='light'] .fleetops-google-contextmenu {
3900
3991
  background: #fff;
3901
3992
  color: #111827;
3902
- box-shadow: 0 10px 30px rgba(15, 23, 42, 18%);
3993
+ box-shadow: 0 10px 30px rgba(15, 23, 42, 0.18);
3903
3994
  }
3904
3995
 
3905
3996
  body[data-theme='light'] .fleetops-google-contextmenu > .fleetops-google-contextmenu-separator {
@@ -3945,7 +4036,7 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
3945
4036
  max-width: 180px;
3946
4037
  padding: 2px 8px;
3947
4038
  border-radius: 9999px;
3948
- background: rgba(17, 24, 39, 88%);
4039
+ background: rgba(17, 24, 39, 0.88);
3949
4040
  color: #f9fafb;
3950
4041
  font-size: 11px;
3951
4042
  font-weight: 600;
@@ -3953,22 +4044,22 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
3953
4044
  white-space: nowrap;
3954
4045
  text-overflow: ellipsis;
3955
4046
  overflow: hidden;
3956
- box-shadow: 0 6px 16px rgba(15, 23, 42, 22%);
4047
+ box-shadow: 0 6px 16px rgba(15, 23, 42, 0.22);
3957
4048
  }
3958
4049
 
3959
4050
  .fleetops-google-hover-tooltip {
3960
4051
  position: absolute;
3961
4052
  z-index: 99999;
3962
4053
  display: none;
3963
- max-width: 240px;
4054
+ max-width: none;
3964
4055
  padding: 0.45rem 0.65rem;
3965
4056
  border-radius: 0.625rem;
3966
- background: rgba(17, 24, 39, 94%);
4057
+ background: rgba(17, 24, 39, 0.94);
3967
4058
  color: #f9fafb;
3968
4059
  font-size: 0.75rem;
3969
4060
  line-height: 1.25;
3970
4061
  pointer-events: none;
3971
- box-shadow: 0 10px 30px rgba(15, 23, 42, 22%);
4062
+ box-shadow: 0 10px 30px rgba(15, 23, 42, 0.22);
3972
4063
  transform: translateY(-50%);
3973
4064
  }
3974
4065
 
@@ -3988,8 +4079,8 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
3988
4079
  height: 8px;
3989
4080
  border-radius: 9999px;
3990
4081
  background: #3b82f6;
3991
- border: 1px solid rgba(255, 255, 255, 95%);
3992
- box-shadow: 0 0 0 1px rgba(59, 130, 246, 25%);
4082
+ border: 1px solid rgba(255, 255, 255, 0.95);
4083
+ box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.25);
3993
4084
  }
3994
4085
 
3995
4086
  .fleetops-google-popover {
@@ -3999,7 +4090,7 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
3999
4090
  border-radius: 1rem;
4000
4091
  background: #111827;
4001
4092
  color: #f9fafb;
4002
- box-shadow: 0 16px 40px rgba(15, 23, 42, 28%);
4093
+ box-shadow: 0 16px 40px rgba(15, 23, 42, 0.28);
4003
4094
  }
4004
4095
 
4005
4096
  .fleetops-google-popover--compact {
@@ -4065,6 +4156,28 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4065
4156
  background: #111827 !important;
4066
4157
  }
4067
4158
 
4159
+ .fleetops-google-popover__close {
4160
+ position: absolute;
4161
+ top: 0.25rem;
4162
+ right: 0.35rem;
4163
+ z-index: 1;
4164
+ width: 1rem;
4165
+ height: 1rem;
4166
+ border: 0;
4167
+ border-radius: 9999px;
4168
+ background: rgba(31, 41, 55, 0.8);
4169
+ color: #d1d5db;
4170
+ font-size: 0.8rem;
4171
+ line-height: 1rem;
4172
+ text-align: center;
4173
+ cursor: pointer;
4174
+ }
4175
+
4176
+ .fleetops-google-popover__close:hover {
4177
+ background: rgba(55, 65, 81, 0.95);
4178
+ color: #fff;
4179
+ }
4180
+
4068
4181
  /* Tracking intelligence panel */
4069
4182
  .tracking-intelligence {
4070
4183
  display: flex;
@@ -4112,48 +4225,48 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4112
4225
 
4113
4226
  .tracking-intelligence-pill--good {
4114
4227
  color: #16a34a;
4115
- background: rgba(34, 197, 94, 10%);
4116
- border-color: rgba(34, 197, 94, 24%);
4228
+ background: rgba(34, 197, 94, 0.1);
4229
+ border-color: rgba(34, 197, 94, 0.24);
4117
4230
  }
4118
4231
 
4119
4232
  .tracking-intelligence-pill--warn {
4120
4233
  color: #d97706;
4121
- background: rgba(245, 158, 11, 12%);
4122
- border-color: rgba(245, 158, 11, 28%);
4234
+ background: rgba(245, 158, 11, 0.12);
4235
+ border-color: rgba(245, 158, 11, 0.28);
4123
4236
  }
4124
4237
 
4125
4238
  .tracking-intelligence-pill--bad {
4126
4239
  color: #dc2626;
4127
- background: rgba(239, 68, 68, 11%);
4128
- border-color: rgba(239, 68, 68, 28%);
4240
+ background: rgba(239, 68, 68, 0.11);
4241
+ border-color: rgba(239, 68, 68, 0.28);
4129
4242
  }
4130
4243
 
4131
4244
  .tracking-intelligence-pill--muted {
4132
4245
  color: #6b7280;
4133
- background: rgba(107, 114, 128, 10%);
4134
- border-color: rgba(107, 114, 128, 22%);
4246
+ background: rgba(107, 114, 128, 0.1);
4247
+ border-color: rgba(107, 114, 128, 0.22);
4135
4248
  }
4136
4249
 
4137
4250
  [data-theme='dark'] .tracking-intelligence-pill--good {
4138
4251
  color: #5bc796;
4139
- background: rgba(91, 199, 150, 12%);
4252
+ background: rgba(91, 199, 150, 0.12);
4140
4253
  }
4141
4254
 
4142
4255
  [data-theme='dark'] .tracking-intelligence-pill--warn {
4143
4256
  color: #e5a14b;
4144
- background: rgba(229, 161, 75, 12%);
4145
- border-color: rgba(229, 161, 75, 32%);
4257
+ background: rgba(229, 161, 75, 0.12);
4258
+ border-color: rgba(229, 161, 75, 0.32);
4146
4259
  }
4147
4260
 
4148
4261
  [data-theme='dark'] .tracking-intelligence-pill--bad {
4149
4262
  color: #e26b6b;
4150
- background: rgba(226, 107, 107, 13%);
4151
- border-color: rgba(226, 107, 107, 32%);
4263
+ background: rgba(226, 107, 107, 0.13);
4264
+ border-color: rgba(226, 107, 107, 0.32);
4152
4265
  }
4153
4266
 
4154
4267
  [data-theme='dark'] .tracking-intelligence-pill--muted {
4155
4268
  color: #7c8896;
4156
- background: rgba(255, 255, 255, 4%);
4269
+ background: rgba(255, 255, 255, 0.04);
4157
4270
  border-color: #232c38;
4158
4271
  }
4159
4272
 
@@ -4163,16 +4276,16 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4163
4276
  gap: 0.625rem;
4164
4277
  align-items: flex-start;
4165
4278
  padding: 0.625rem 0.7rem;
4166
- border: 1px solid rgba(245, 158, 11, 28%);
4279
+ border: 1px solid rgba(245, 158, 11, 0.28);
4167
4280
  border-radius: 0.5rem;
4168
- background: rgba(245, 158, 11, 10%);
4281
+ background: rgba(245, 158, 11, 0.1);
4169
4282
  color: #92400e;
4170
4283
  font-size: 0.75rem;
4171
4284
  }
4172
4285
 
4173
4286
  .tracking-intelligence-alert--critical {
4174
- border-color: rgba(239, 68, 68, 28%);
4175
- background: rgba(239, 68, 68, 10%);
4287
+ border-color: rgba(239, 68, 68, 0.28);
4288
+ background: rgba(239, 68, 68, 0.1);
4176
4289
  color: #991b1b;
4177
4290
  }
4178
4291
 
@@ -4183,7 +4296,7 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4183
4296
  align-items: center;
4184
4297
  justify-content: center;
4185
4298
  border-radius: 0.3125rem;
4186
- background: rgba(0, 0, 0, 10%);
4299
+ background: rgba(0, 0, 0, 0.1);
4187
4300
  }
4188
4301
 
4189
4302
  .tracking-intelligence-alert__title {
@@ -4198,14 +4311,14 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4198
4311
  }
4199
4312
 
4200
4313
  [data-theme='dark'] .tracking-intelligence-alert {
4201
- border-color: rgba(229, 161, 75, 32%);
4202
- background: rgba(229, 161, 75, 12%);
4314
+ border-color: rgba(229, 161, 75, 0.32);
4315
+ background: rgba(229, 161, 75, 0.12);
4203
4316
  color: #e5a14b;
4204
4317
  }
4205
4318
 
4206
4319
  [data-theme='dark'] .tracking-intelligence-alert--critical {
4207
- border-color: rgba(226, 107, 107, 32%);
4208
- background: rgba(226, 107, 107, 13%);
4320
+ border-color: rgba(226, 107, 107, 0.32);
4321
+ background: rgba(226, 107, 107, 0.13);
4209
4322
  color: #e26b6b;
4210
4323
  }
4211
4324
 
@@ -4218,14 +4331,14 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4218
4331
  }
4219
4332
 
4220
4333
  .tracking-intelligence-alert--critical .tracking-intelligence-alert__cta {
4221
- border-color: rgba(239, 68, 68, 30%);
4222
- background: rgba(239, 68, 68, 8%);
4334
+ border-color: rgba(239, 68, 68, 0.3);
4335
+ background: rgba(239, 68, 68, 0.08);
4223
4336
  color: #b91c1c;
4224
4337
  }
4225
4338
 
4226
4339
  [data-theme='dark'] .tracking-intelligence-alert--critical .tracking-intelligence-alert__cta {
4227
- border-color: rgba(226, 107, 107, 32%);
4228
- background: rgba(226, 107, 107, 10%);
4340
+ border-color: rgba(226, 107, 107, 0.32);
4341
+ background: rgba(226, 107, 107, 0.1);
4229
4342
  color: #e26b6b;
4230
4343
  }
4231
4344
 
@@ -4244,7 +4357,7 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4244
4357
  border: 1px solid #e5e7eb;
4245
4358
  border-radius: 0.5rem;
4246
4359
  background: #f9fafb;
4247
- box-shadow: 0 1px 2px rgba(15, 23, 42, 8%);
4360
+ box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
4248
4361
  }
4249
4362
 
4250
4363
  [data-theme='dark'] .tracking-intelligence-cell,
@@ -4255,7 +4368,7 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4255
4368
  [data-theme='dark'] .tracking-stop-progress {
4256
4369
  border-color: #374151;
4257
4370
  background: #1f2937;
4258
- box-shadow: 0 8px 20px rgba(0, 0, 0, 18%);
4371
+ box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
4259
4372
  }
4260
4373
 
4261
4374
  .tracking-intelligence-cell {
@@ -4264,13 +4377,13 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4264
4377
  }
4265
4378
 
4266
4379
  .tracking-intelligence-cell--accent {
4267
- border-color: rgba(245, 158, 11, 32%);
4268
- background: linear-gradient(180deg, rgba(245, 158, 11, 8%), transparent), #f9fafb;
4380
+ border-color: rgba(245, 158, 11, 0.32);
4381
+ background: linear-gradient(180deg, rgba(245, 158, 11, 0.08), transparent), #f9fafb;
4269
4382
  }
4270
4383
 
4271
4384
  [data-theme='dark'] .tracking-intelligence-cell--accent {
4272
- border-color: rgba(229, 161, 75, 32%);
4273
- background: linear-gradient(180deg, rgba(229, 161, 75, 8%), transparent), #1f2937;
4385
+ border-color: rgba(229, 161, 75, 0.32);
4386
+ background: linear-gradient(180deg, rgba(229, 161, 75, 0.08), transparent), #1f2937;
4274
4387
  }
4275
4388
 
4276
4389
  .tracking-intelligence-cell__label {
@@ -4346,7 +4459,7 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4346
4459
  .tracking-intelligence-tag {
4347
4460
  padding: 0.0625rem 0.3rem;
4348
4461
  border-radius: 0.2rem;
4349
- background: rgba(245, 158, 11, 12%);
4462
+ background: rgba(245, 158, 11, 0.12);
4350
4463
  color: #d97706;
4351
4464
  font-size: 0.55rem;
4352
4465
  font-weight: 800;
@@ -4595,9 +4708,9 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4595
4708
 
4596
4709
  .tracking-intelligence-diagnostics__warnings span {
4597
4710
  padding: 0.125rem 0.375rem;
4598
- border: 1px solid rgba(245, 158, 11, 25%);
4711
+ border: 1px solid rgba(245, 158, 11, 0.25);
4599
4712
  border-radius: 0.25rem;
4600
- background: rgba(245, 158, 11, 10%);
4713
+ background: rgba(245, 158, 11, 0.1);
4601
4714
  color: #b45309;
4602
4715
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
4603
4716
  font-size: 0.62rem;
@@ -4696,7 +4809,7 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4696
4809
  border-color: #f59e0b;
4697
4810
  background: #f59e0b;
4698
4811
  color: #1f1300;
4699
- box-shadow: 0 0 0 3px rgba(245, 158, 11, 14%);
4812
+ box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.14);
4700
4813
  }
4701
4814
 
4702
4815
  .tracking-stop-progress__dot--active::before,
@@ -4759,9 +4872,9 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4759
4872
  display: inline-flex;
4760
4873
  align-items: center;
4761
4874
  gap: 0.35rem;
4762
- border: 1px solid rgba(245, 158, 11, 32%);
4875
+ border: 1px solid rgba(245, 158, 11, 0.32);
4763
4876
  border-radius: 0.375rem;
4764
- background: rgba(245, 158, 11, 8%);
4877
+ background: rgba(245, 158, 11, 0.08);
4765
4878
  color: #b45309;
4766
4879
  font-size: 0.7rem;
4767
4880
  font-weight: 700;
@@ -4778,8 +4891,8 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4778
4891
 
4779
4892
  [data-theme='dark'] .tracking-intelligence-alert__cta,
4780
4893
  [data-theme='dark'] .tracking-intelligence-footer__button {
4781
- border-color: rgba(229, 161, 75, 32%);
4782
- background: rgba(229, 161, 75, 10%);
4894
+ border-color: rgba(229, 161, 75, 0.32);
4895
+ background: rgba(229, 161, 75, 0.1);
4783
4896
  color: #e5a14b;
4784
4897
  }
4785
4898
 
@@ -4797,3 +4910,7 @@ body[data-theme='dark'] .next-google-container-map .fleetops-google-draw-actions
4797
4910
  flex-direction: column;
4798
4911
  padding: 0.75rem;
4799
4912
  }
4913
+
4914
+ .overflow-y-scroll-i {
4915
+ overflow-y: scroll !important;
4916
+ }