.gps-dashboard{position:relative;--gps-bg:#06111e;--gps-panel:#091a2b;--gps-panel-2:#0b2135;--gps-line:rgba(126, 173, 206, .16);--gps-muted:#7f9aae;--gps-text:#e4f0f6;color:var(--gps-text);min-width:760px;background:var(--gps-bg);border:1px solid rgba(54,114,154,.3);border-radius:17px;padding:21px;overflow:hidden;box-shadow:inset 0 1px #ffffff09,0 18px 44px #00000038}.gps-dashboard button,.gps-dashboard input{font:inherit}.gps-reveal{opacity:0;transform:translateY(12px);animation:gps-reveal .64s cubic-bezier(.21,.78,.28,1) var(--delay, 0ms) forwards}.gps-dashboard.is-ready .gps-reveal{animation-play-state:running}@keyframes gps-reveal{to{opacity:1;transform:translateY(0)}}.gps-dashboard-header{position:relative;z-index:20;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:2px 1px 19px;border-bottom:1px solid var(--gps-line)}.gps-kicker,.gps-panel-heading span,.gps-map-footer,.gps-fleet-heading span,.gps-chart-label,.gps-kpi-copy p,.gps-kpi-copy>span{color:var(--gps-muted)}.gps-kicker{display:flex;align-items:center;gap:8px;font-size:9px;font-weight:700;letter-spacing:.16em;margin-bottom:8px}.gps-live-dot,.gps-pulse-dot{display:inline-block;width:7px;height:7px;background:#18ce76;border-radius:50%;box-shadow:0 0 0 4px #18ce761a,0 0 12px #18ce76b3}.gps-kicker .gps-live-dot{width:6px;height:6px}.gps-dashboard-header h3{color:#f0f7fb;font-size:clamp(20px,2.4vw,28px);line-height:1.1;letter-spacing:-.025em;margin:0}.gps-dashboard-header p{color:#7893a5;font-size:12px;margin:7px 0 0}.gps-history-copy{display:flex;align-items:center;gap:6px;color:#69b6e5!important;font-size:10px!important}.gps-history-copy svg{flex:0 0 auto;color:#4caaff}.gps-header-actions{position:relative;z-index:100;display:flex;align-items:center;gap:8px;padding-top:2px}.gps-header-actions button,.gps-filter-wrap button{border:1px solid rgba(60,119,157,.32);color:#b6cfdd;background:#0a2237d1;border-radius:8px;height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;transition:border .2s,background .2s,color .2s,transform .2s}.gps-header-actions button:hover,.gps-filter-wrap button:hover,.gps-filter-wrap button.is-active{border-color:#399effa8;background:#0d2e49;color:#e8f7ff}.gps-header-actions button:active{transform:translateY(1px)}.gps-date-button{min-width:170px;padding:0 10px;font-size:11px;white-space:nowrap}.gps-date-button.is-active{border-color:#399effa8;background:#0d2e49;color:#e8f7ff}.gps-filter-button{position:relative;padding:0 10px;font-size:11px}.gps-live-button{padding:0 11px;font-size:11px}.gps-live-button.is-live{color:#62e8a8!important;border-color:#18ce7659!important}.gps-icon-button{width:32px;padding:0;position:relative;background:0 0!important;border-color:transparent!important}.gps-icon-button:hover{background:#ffffff0f!important;border-color:#ffffff1f!important}.gps-icon-button span{position:absolute;top:6px;right:6px;width:5px;height:5px;background:#fb4251;border-radius:50%;box-shadow:0 0 0 2px #06111e}.gps-filter-badge{width:16px;height:16px;border-radius:50%;display:inline-grid;place-items:center;background:#237fe8;color:#fff;font-size:9px}.gps-date-wrap{position:relative;z-index:110}.gps-date-popover{position:absolute;z-index:120;top:calc(100% + 9px);right:0;width:278px;padding:13px;border:1px solid rgba(64,135,182,.5);border-radius:11px;color:#b8d0db;background:#0a2236;box-shadow:0 18px 36px #0000006b;isolation:isolate;animation:gps-pop .18s ease both}.gps-date-popover-title{display:flex;align-items:center;justify-content:space-between;color:#e6f5fa;font-size:11px;font-weight:600}.gps-date-popover-title>span{display:flex;align-items:center;gap:7px}.gps-date-popover-title svg{color:#56b5ff}.gps-date-popover-title button{width:23px!important;height:23px!important;padding:0!important;border:0!important;color:#7494a4!important;background:0 0!important}.gps-date-popover>p{margin:8px 0 13px;color:#86a4b2;font-size:10px;line-height:1.45}.gps-date-field{display:block}.gps-date-field>span{display:block;margin-bottom:6px;color:#6e92a5;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.gps-date-field input{width:100%;height:33px;padding:0 9px;border:1px solid rgba(62,131,174,.36);border-radius:7px;outline:0;color:#d9edf4;background:#071827;font-size:11px;color-scheme:dark}.gps-date-field input:focus{border-color:#3d9dff;box-shadow:0 0 0 2px #3d9dff1a}.gps-date-shortcuts{display:flex;gap:6px;margin-top:10px}.gps-date-shortcuts button{flex:1;height:27px!important;padding:0 6px!important;border:1px solid rgba(64,135,182,.28)!important;border-radius:6px!important;color:#8eb6c8!important;background:#082035cc!important;font-size:9px!important}.gps-date-shortcuts button:hover{border-color:#328ee8!important;color:#e8f7ff!important}.gps-date-popover-foot{display:flex;gap:6px;margin-top:11px;padding-top:10px;border-top:1px solid rgba(103,150,174,.13);color:#6891a1;font-size:9px;line-height:1.35}.gps-date-popover-foot svg{flex:0 0 auto;color:#5eb5e9}.gps-filter-wrap{position:relative;z-index:30}.gps-filter-popover{position:absolute;z-index:50;right:0;top:calc(100% + 8px);width:185px;padding:9px;background:#0a2236;border:1px solid rgba(64,135,182,.42);border-radius:10px;box-shadow:0 16px 32px #00000057;animation:gps-pop .18s ease both}@keyframes gps-pop{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.gps-popover-title{color:#6e91a7;text-transform:uppercase;letter-spacing:.12em;font-size:8px;padding:5px 7px 7px}.gps-filter-popover button{width:100%;height:29px;border:0;background:0 0;color:#a6c0ce;justify-content:space-between;padding:0 8px;font-size:11px}.gps-filter-popover button:hover,.gps-filter-popover button.is-selected{background:#2b8ce829;color:#e9f7ff}.gps-filter-popover button span{color:#5c89a4;font-size:10px}.gps-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;padding:16px 0}.gps-kpi-card{min-height:85px;position:relative;display:flex;align-items:flex-start;gap:10px;padding:13px 11px;background:linear-gradient(140deg,#0c2a43eb,#071b2dcc);border:1px solid rgba(54,124,169,.24);border-radius:11px;overflow:hidden}.gps-kpi-card:after{content:"";position:absolute;width:68px;height:68px;right:-33px;bottom:-40px;border-radius:50%;background:var(--kpi-color);opacity:.12;filter:blur(10px)}.gps-kpi-card.green{--kpi-color:#18ce76}.gps-kpi-card.blue{--kpi-color:#3d9dff}.gps-kpi-card.cyan{--kpi-color:#17cce2}.gps-kpi-card.red{--kpi-color:#fb4251}.gps-kpi-icon{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:50%;color:var(--kpi-color);background:color-mix(in srgb,var(--kpi-color) 15%,transparent);border:1px solid color-mix(in srgb,var(--kpi-color) 25%,transparent)}.gps-kpi-copy{flex:1 1 auto;min-width:0;padding-top:16px}.gps-kpi-value{overflow:hidden;color:#f1f7fb;font-size:clamp(17px,2vw,24px);font-weight:650;letter-spacing:-.03em;line-height:1;text-overflow:ellipsis;white-space:nowrap}.gps-kpi-copy p{margin:7px 0 0;font-size:10px;line-height:1.2;white-space:normal;overflow-wrap:anywhere}.gps-kpi-copy>span{display:block;margin-top:3px;font-size:9px}.gps-kpi-trend{position:absolute;z-index:1;right:9px;top:10px;display:flex;align-items:center;gap:1px;padding-left:3px;border-radius:4px;background:#071b2de6;color:#5ce4a0;font-size:8px;white-space:nowrap}.red .gps-kpi-trend{color:#ff8790}.gps-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:10px}.gps-map-card,.gps-fleet-card,.gps-chart-card{background:linear-gradient(145deg,#0a2034f2,#061727f5);border:1px solid var(--gps-line);border-radius:12px;box-shadow:inset 0 1px #ffffff06}.gps-map-card{padding:12px 12px 9px;min-width:0}.gps-panel-heading,.gps-fleet-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.gps-panel-heading{padding:1px 2px 11px}.gps-panel-heading p,.gps-fleet-heading p{margin:0;color:#d9eaf2;font-size:12px;font-weight:600}.gps-panel-heading span,.gps-fleet-heading span{display:flex;align-items:center;gap:5px;margin-top:4px;font-size:9px}.gps-map-legend{display:flex;align-items:center;gap:10px;white-space:nowrap}.gps-map-legend span{color:#7c9aab;font-size:9px;margin:0}.gps-legend-line{display:inline-block;width:15px;border-top:2px solid #28c7e8;vertical-align:middle;margin-right:4px}.gps-legend-dot{display:inline-block;width:6px;height:6px;border-radius:50%;vertical-align:middle;margin-right:4px}.gps-legend-dot.green{background:#21d889;box-shadow:0 0 7px #21d889cc}.gps-map-stage{position:relative;min-height:355px;overflow:hidden;border-radius:8px;background:#071421;border:1px solid rgba(101,157,189,.16)}.gps-real-map-stage:before{content:"";position:absolute;z-index:300;inset:0;pointer-events:none;opacity:1;background:radial-gradient(circle at 50% 45%,rgba(24,91,130,.12),transparent 48%),linear-gradient(135deg,#071b2de6,#04111dfa);transition:opacity .48s ease}.gps-real-map-stage.is-map-ready:before{opacity:0}.gps-real-map-canvas{position:absolute;inset:0;z-index:0}.gps-real-map-canvas .leaflet-container{width:100%;height:100%;min-height:355px;color:#c8e1eb;background:#071421;font-family:inherit}.gps-real-map-canvas .leaflet-tile-pane{opacity:0;transition:opacity .52s ease}.gps-real-map-stage.is-map-ready .leaflet-tile-pane{opacity:1}.gps-real-map-canvas .leaflet-tile{opacity:1;filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9) saturate(.6)}.gps-map-loading{position:absolute;z-index:350;top:50%;left:50%;display:flex;align-items:center;gap:9px;min-width:202px;padding:10px 12px;transform:translate(-50%,-50%);border:1px solid rgba(85,164,205,.2);border-radius:9px;color:#b8d5e2;background:#051626c7;box-shadow:0 12px 26px #0000003d;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;animation:gps-map-loading-in .28s ease both}.gps-map-loading-icon{display:grid;place-items:center;width:29px;height:29px;flex:0 0 29px;border:1px solid rgba(70,174,224,.36);border-radius:50%;color:#56c8f3;background:#2799ce1f;animation:gps-map-loading-pulse 1.35s ease-in-out infinite}.gps-map-loading>span:nth-child(2){display:grid;gap:3px}.gps-map-loading strong{color:#d8edf5;font-size:10px;font-weight:600}.gps-map-loading small{color:#7396a8;font-size:8px}.gps-map-loading i{width:24px;height:2px;margin-left:auto;overflow:hidden;border-radius:2px;background:#51b8e829}.gps-map-loading i:after{content:"";display:block;width:10px;height:100%;border-radius:inherit;background:#56c8f3;box-shadow:0 0 8px #56c8f3;animation:gps-map-loading-bar 1.1s ease-in-out infinite}@keyframes gps-map-loading-in{0%{opacity:0;transform:translate(-50%,-46%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes gps-map-loading-pulse{0%,to{box-shadow:0 0#56c8f314}50%{box-shadow:0 0 0 6px #56c8f314}}@keyframes gps-map-loading-bar{0%{transform:translate(-12px)}to{transform:translate(26px)}}.gps-real-map-canvas .leaflet-control-zoom{margin:10px;border:1px solid rgba(113,175,206,.3);border-radius:7px;overflow:hidden;box-shadow:0 8px 18px #00000040}.gps-real-map-canvas .leaflet-control-zoom a{width:27px;height:27px;line-height:25px;color:#b9d8e5;background:#051626e6;border-color:#71afce38}.gps-real-map-canvas .leaflet-control-zoom a:hover{color:#fff;background:#12324b}.gps-real-map-canvas .leaflet-control-attribution{padding:2px 5px;color:#c2d7e1;background:#04111dc7;font-size:10px}.gps-real-map-canvas .leaflet-control-attribution a{color:#9edcf4;text-decoration:underline;text-underline-offset:2px}.gps-real-map-canvas .leaflet-control-scale-line{padding:2px 5px 1px;color:#a7c3ce;border-color:#a7c3ce;background:#04111dad;font-size:8px}.gps-route-base{stroke-linecap:round;stroke-linejoin:round}.gps-real-trail{stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px currentColor)}.gps-real-marker{width:40px!important;height:44px!important;border:0!important;background:0 0!important}.gps-real-marker-badge{position:absolute;top:0;left:50%;display:grid;place-items:center;width:31px;height:16px;transform:translate(-50%);border:1px solid color-mix(in srgb,var(--marker-color) 82%,white);border-radius:8px;color:#e3f5ff;background:color-mix(in srgb,var(--marker-color) 68%,#071421);box-shadow:0 3px 11px #00000059;font-size:8px;font-weight:700}.gps-real-marker-dot{position:absolute;top:25px;left:50%;width:14px;height:14px;transform:translate(-50%);border:3px solid #081522;border-radius:50%;background:var(--marker-color);box-shadow:0 0 0 1px var(--marker-color),0 0 12px color-mix(in srgb,var(--marker-color) 65%,transparent)}.gps-real-marker-dot:before{content:"";position:absolute;inset:-8px;border:1px solid var(--marker-color);border-radius:50%;opacity:.2}.gps-real-marker.is-selected .gps-real-marker-dot:before{animation:gps-real-marker-pulse 1.8s ease-in-out infinite}@keyframes gps-real-marker-pulse{0%,to{transform:scale(.8);opacity:.16}50%{transform:scale(1.45);opacity:.42}}.gps-real-map-label{position:absolute;z-index:500;top:10px;left:10px;display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid rgba(118,177,204,.24);border-radius:6px;color:#bcd6e1;background:#051523d1;box-shadow:0 6px 14px #0003;font-size:9px;pointer-events:none}.gps-real-popup-shell .leaflet-popup-content-wrapper{padding:0;border:1px solid rgba(79,160,214,.52);border-radius:9px;color:#dcecf2;background:#04101df7;box-shadow:0 14px 28px #0000006b}.gps-real-popup-shell .leaflet-popup-content{min-width:185px;margin:11px}.gps-real-popup-shell .leaflet-popup-tip{background:#071829}.gps-real-popup-shell .leaflet-popup-close-button{top:6px!important;right:7px!important;color:#7899aa!important}.gps-real-popup{font-size:10px}.gps-real-popup-topline{display:flex;align-items:center;justify-content:space-between;gap:9px;padding-right:13px}.gps-real-popup-topline strong{color:#f0f8fb;font-size:11px}.gps-real-popup-status{display:inline-flex;align-items:center;gap:4px;color:#63e4a4;font-size:8px}.gps-real-popup-status i{width:5px;height:5px;border-radius:50%}.gps-real-popup p{margin:7px 0;color:#88a5b2;font-size:9px}.gps-real-popup-metrics{display:flex;gap:12px;padding:7px 0;border-top:1px solid rgba(129,171,194,.15);border-bottom:1px solid rgba(129,171,194,.15);color:#c0d9e2;font-size:9px}.gps-real-popup small{display:block;margin-top:7px;color:#668796;font-size:8px}.gps-map-svg{display:block;width:100%;height:100%;min-height:355px}.gps-route{stroke-dashoffset:0}.gps-route.is-live{animation:gps-route-flow 4.8s linear infinite}@keyframes gps-route-flow{to{stroke-dashoffset:-90}}.gps-map-marker{cursor:pointer;outline:0;transition:transform .2s}.gps-map-marker:hover .gps-marker-ring,.gps-map-marker:focus .gps-marker-ring{stroke-width:3.4}.gps-map-marker.is-selected .gps-marker-halo{animation:gps-marker-pulse 1.8s ease-in-out infinite}@keyframes gps-marker-pulse{0%,to{r:17;opacity:.16}50%{r:24;opacity:.28}}.gps-map-tooltip{position:absolute;z-index:5;width:166px;transform:translate(-50%,calc(-100% - 15px));padding:10px;border-radius:9px;background:#04101df5;border:1px solid rgba(79,160,214,.48);box-shadow:0 14px 28px #0000005c,0 0 22px #1490cf1a;animation:gps-tooltip-in .2s ease both;pointer-events:auto}.gps-map-tooltip.is-below{transform:translate(-50%,14px);animation-name:gps-tooltip-in-below}@keyframes gps-tooltip-in{0%{opacity:0;transform:translate(-50%,calc(-100% - 9px)) scale(.96)}to{opacity:1;transform:translate(-50%,calc(-100% - 15px)) scale(1)}}@keyframes gps-tooltip-in-below{0%{opacity:0;transform:translate(-50%,8px) scale(.96)}to{opacity:1;transform:translate(-50%,14px) scale(1)}}.gps-tooltip-topline{display:flex;align-items:center;justify-content:space-between}.gps-tooltip-topline button{display:grid;place-items:center;padding:0;border:0;background:0 0;color:#6d8da0;cursor:pointer}.gps-tooltip-unit{color:#e9f7ff!important;display:flex!important;align-items:center;gap:5px;font-size:11px!important;font-weight:600;margin:0!important}.gps-map-tooltip p{color:#7f9eaf;margin:7px 0 8px;font-size:9px}.gps-tooltip-metrics{display:flex;gap:11px;color:#b4cfdb;font-size:9px}.gps-tooltip-metrics span{display:flex;align-items:center;gap:4px}.gps-tooltip-status{display:flex;align-items:center;gap:5px;margin-top:10px;padding-top:8px;border-top:1px solid rgba(129,171,194,.15);color:#63e4a4;font-size:9px}.gps-tooltip-status>span{width:5px;height:5px;border-radius:50%}.gps-tooltip-status em{margin-left:auto;color:#638293;font-size:8px;font-style:normal}.gps-map-controls{position:absolute;z-index:600;right:10px;top:10px;display:flex;flex-direction:column;gap:5px}.gps-map-controls button{width:28px;height:28px;display:grid;place-items:center;border:1px solid rgba(113,175,206,.25);border-radius:6px;color:#99c1d0;background:#051626cc;cursor:pointer;transition:color .2s,background .2s}.gps-map-controls button:hover,.gps-map-controls button.is-active{color:#6ceab0;background:#0c2e42}.gps-map-scale{position:absolute;left:11px;bottom:9px;display:flex;align-items:center;gap:5px;color:#7194a5;font-size:8px}.gps-map-scale span{display:inline-block;width:22px;border-top:2px solid #8cb3c1}.gps-map-footer{display:flex;justify-content:space-between;gap:10px;padding:8px 1px 0;font-size:8px}.gps-map-footer>span:first-child{display:flex;align-items:center;gap:6px}.gps-map-footer .gps-live-dot{width:5px;height:5px}.gps-fleet-card{position:relative;display:flex;flex-direction:column;min-height:425px;padding:12px 11px 10px}.gps-fleet-heading{padding:1px 2px 11px}.gps-fleet-heading .gps-icon-button{width:25px;height:25px;color:#7898a9}.gps-search-box{height:32px;display:flex;align-items:center;gap:7px;padding:0 9px;border:1px solid rgba(61,126,164,.3);border-radius:7px;color:#67879a;background:#071827}.gps-search-box:focus-within{border-color:#328ee8;box-shadow:0 0 0 2px #328ee81a}.gps-search-box input{width:100%;min-width:0;outline:0;border:0;background:0 0;color:#d8e9f0;font-size:10px}.gps-search-box input::-moz-placeholder{color:#5c7b8d}.gps-search-box input::placeholder{color:#5c7b8d}.gps-search-box button{display:grid;place-items:center;border:0;background:0 0;color:#7093a4;padding:0;cursor:pointer}.gps-fleet-filter-line{display:flex;align-items:center;justify-content:space-between;padding:13px 2px 8px;color:#abc2cd;font-size:9px;border-bottom:1px solid rgba(103,150,174,.12)}.gps-fleet-filter-line svg{color:#61899d}.gps-fleet-list{overflow:auto;flex:1;padding:3px 0}.gps-fleet-row{width:100%;display:flex;align-items:center;gap:7px;padding:8px 2px;color:#a8c1cc;background:0 0;border:0;border-bottom:1px solid rgba(113,158,180,.08);text-align:left;cursor:pointer;transition:background .18s,color .18s}.gps-fleet-row:hover,.gps-fleet-row.is-selected{background:#2c87d71f;color:#e6f4fa}.gps-unit-number{display:grid;place-items:center;flex:0 0 23px;height:23px;color:#70b9ff;background:#187ce82e;border-radius:4px;font-size:9px;font-weight:700}.gps-fleet-info{min-width:0;flex:1}.gps-fleet-info strong{display:block;overflow:hidden;color:inherit;font-size:10px;font-weight:550;text-overflow:ellipsis;white-space:nowrap}.gps-fleet-info small{display:flex;align-items:center;gap:5px;margin-top:3px;color:#56db9a;font-size:8px}.gps-fleet-info small i{display:inline-block;width:5px;height:5px;border-radius:50%}.gps-fleet-speed{white-space:nowrap;color:#c1d6df;font-size:10px}.gps-fleet-speed em{color:#607e8d;font-size:8px;font-style:normal}.gps-row-more{flex:0 0 auto;color:#527487}.gps-empty-state{min-height:120px;display:grid;place-items:center;align-content:center;gap:7px;color:#648597;font-size:10px;text-align:center}.gps-empty-state p{margin:0}.gps-all-units{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;padding:8px 0 3px;color:#59aaff;border:0;border-top:1px solid rgba(103,150,174,.12);background:0 0;font-size:9px;cursor:pointer}.gps-all-units:hover{color:#b5dfff}.gps-fleet-selection{display:flex;align-items:center;gap:7px;margin-top:7px;padding:7px 8px;border:1px solid rgba(28,206,119,.2);border-radius:6px;background:#16975b12;font-size:8px}.gps-fleet-selection>span{display:flex;align-items:center;gap:4px;color:#55dc9c}.gps-fleet-selection .gps-pulse-dot{width:5px;height:5px;box-shadow:none}.gps-fleet-selection strong{margin-left:auto;color:#dcecf1;font-size:9px}.gps-fleet-selection small{color:#71909d;font-size:8px}.gps-chart-grid{display:grid;grid-template-columns:1.2fr 1.05fr 1fr 1fr;gap:10px;padding-top:10px}.gps-chart-card{min-height:193px;padding:13px;overflow:hidden}.gps-chart-header{display:flex;justify-content:space-between;align-items:flex-start;gap:9px}.gps-chart-label{margin:0 0 7px;font-size:9px}.gps-chart-header strong{color:#ecf6fa;font-size:20px;letter-spacing:-.025em;line-height:1}.gps-chart-trend{margin-left:6px;color:#38d68d;font-size:8px}.gps-chart-action{color:#66899d}.gps-segmented{display:flex;padding:2px;border:1px solid rgba(61,126,164,.23);border-radius:5px;background:#04101c5c}.gps-segmented button{border:0;border-radius:3px;padding:3px 5px;color:#69899a;background:0 0;font-size:8px;cursor:pointer}.gps-segmented button.is-active{color:#d8f0fb;background:#3990e152}.gps-chart-canvas{position:relative;margin-top:9px}.gps-line-canvas svg{display:block;width:100%;height:112px;overflow:visible}.gps-chart-line{stroke-dasharray:600;stroke-dashoffset:600;animation:gps-draw-line 1.45s .52s cubic-bezier(.45,.05,.2,1) forwards}.gps-chart-area{opacity:0;animation:gps-area-in .7s .72s ease forwards}@keyframes gps-draw-line{to{stroke-dashoffset:0}}@keyframes gps-area-in{to{opacity:1}}.gps-chart-point{opacity:0;animation:gps-point-in .22s ease forwards}.gps-chart-point:nth-of-type(1){animation-delay:.72s}.gps-chart-point:nth-of-type(2){animation-delay:.77s}.gps-chart-point:nth-of-type(3){animation-delay:.82s}.gps-chart-point:nth-of-type(4){animation-delay:.87s}.gps-chart-point:nth-of-type(5){animation-delay:.92s}.gps-chart-point:nth-of-type(6){animation-delay:.97s}.gps-chart-point:nth-of-type(7){animation-delay:1.02s}.gps-chart-point:nth-of-type(8){animation-delay:1.07s}@keyframes gps-point-in{to{opacity:1}}.gps-chart-point:hover{r:6;cursor:crosshair}.gps-axis-labels{display:flex;justify-content:space-between;color:#658596;font-size:8px}.gps-line-canvas .gps-axis-labels{padding:0 1px;margin-top:-2px}.gps-bars-chart{display:flex;height:123px;margin-top:10px}.gps-bars-y{display:flex;flex-direction:column;justify-content:space-between;padding:0 7px 7px 0;color:#658596;font-size:8px}.gps-bars{position:relative;display:flex;flex:1;align-items:flex-end;justify-content:space-between;gap:3px;padding:5px 0 7px;border-bottom:1px solid rgba(102,151,175,.18);background:repeating-linear-gradient(to bottom,transparent 0,transparent 38px,rgba(102,151,175,.1) 39px,transparent 40px)}.gps-bar{flex:1;min-width:2px;max-width:8px;height:var(--height);transform-origin:bottom;transform:scaleY(0);border-radius:2px 2px 0 0;background:linear-gradient(to top,#1469e8,#56b4ff);box-shadow:0 0 7px #2587f540;animation:gps-bar-in .72s var(--bar-delay) cubic-bezier(.25,.78,.3,1) forwards}@keyframes gps-bar-in{to{transform:scaleY(1)}}.gps-bars-axis{margin:2px 1px 0 33px}.gps-donut-wrap{position:relative;width:116px;height:116px;margin:5px auto 0}.gps-donut-wrap svg{width:100%;height:100%;transform:rotate(0)}.gps-donut-progress{transition:stroke-dashoffset 1.3s cubic-bezier(.21,.78,.28,1)}.gps-donut-value{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column}.gps-donut-value strong{color:#e8f8f1;font-size:20px;line-height:1}.gps-donut-value span{margin-top:4px;color:#6c8e9e;font-size:8px}.gps-compliance-caption{display:flex;align-items:center;justify-content:center;gap:5px;color:#78a095;font-size:8px;white-space:nowrap}.gps-dot.green{display:inline-block;width:6px;height:6px;border-radius:50%;background:#18ce76}.gps-link-button{border:0;color:#449eff;background:0 0;padding:1px 0;font-size:9px;cursor:pointer}.gps-link-button:hover{color:#b1dcff}.gps-alert-chart-list{margin-top:17px}.gps-alert-chart-row{display:flex;align-items:center;gap:7px;margin-top:9px}.gps-alert-icon{display:grid;place-items:center;width:20px;height:20px;border-radius:5px}.gps-alert-name{overflow:hidden;flex:1;color:#94aebb;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.gps-alert-count{color:#ccdce3;font-size:10px}.gps-alert-summary{display:flex;align-items:center;gap:6px;margin-top:14px;padding-top:9px;border-top:1px solid rgba(105,153,174,.13);color:#dca767;font-size:8px}.gps-alert-summary .gps-pulse-dot{width:5px;height:5px;background:#f4a43a;box-shadow:0 0 0 3px #f4a43a1a,0 0 8px #f4a43a99}@media (max-width:1100px){.gps-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gps-main-grid{grid-template-columns:minmax(0,1fr) 255px}.gps-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:840px){.gps-dashboard-header{flex-direction:column}.gps-header-actions{width:100%;flex-wrap:wrap}.gps-main-grid{grid-template-columns:1fr}.gps-fleet-card{min-height:360px}}@media (max-width:560px){.gps-dashboard{width:100%;min-width:0;padding:14px}.gps-kpi-grid,.gps-chart-grid{grid-template-columns:1fr}.gps-kpi-card{min-height:78px}.gps-map-legend{display:none}}@media (prefers-reduced-motion:reduce){.gps-dashboard *,.gps-dashboard :before,.gps-dashboard :after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.gps-video-intro{position:absolute;z-index:80;top:0;right:0;left:0;width:100%;height:min(100vh,100%);overflow:hidden;border-radius:inherit;background:#06111e;isolation:isolate}.gps-video-intro video{display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:center top;object-position:center top;background:#06111e}.gps-video-intro-media{position:absolute;z-index:2;top:0;right:0;left:0;aspect-ratio:16/9;overflow:hidden;background:#06111e}.gps-video-intro-media:after{position:absolute;inset:0;content:"";background:linear-gradient(180deg,#030a1205 48%,#030a1294);pointer-events:none}.gps-video-intro-media video{height:100%;-o-object-fit:cover;object-fit:cover}.gps-video-intro-shade{position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,#030a1214 10%,#030a1229 42%,#030a12e6);pointer-events:none}.gps-video-intro-copy{position:absolute;z-index:2;right:15px;bottom:47px;left:15px}.gps-video-intro-copy p{display:flex;align-items:center;gap:6px;color:#7fc6ff;font-size:8px;letter-spacing:.14em;text-transform:uppercase}.gps-video-intro-copy p span{width:6px;height:6px;border-radius:50%;background:#3d9dff;box-shadow:0 0 10px #3d9dffe6}.gps-video-intro-copy h4{margin-top:5px;color:#f2faff;font-size:21px;font-weight:500;letter-spacing:-.04em}.gps-video-intro-copy>span{display:block;margin-top:4px;color:#ffffff94;font-size:8px}.gps-video-intro-skip,.gps-video-intro-sound{position:absolute;z-index:3;display:flex;align-items:center;gap:4px;padding:6px 8px;border:1px solid rgba(255,255,255,.25);border-radius:7px;color:#ffffffc2;background:#030a1285;font-size:8px;cursor:pointer;transition:background .2s,border-color .2s}.gps-video-intro-skip{top:12px;right:12px}.gps-video-intro-sound{top:12px;left:12px;border-color:#7fc6ff6b;color:#a9d5ff}.gps-video-intro-skip:hover,.gps-video-intro-sound:hover{border-color:#7fc6ffc7;background:#0c3252c7}.gps-video-intro-particles{position:absolute;z-index:3;top:50%;left:50%;width:0;height:0;pointer-events:none}.gps-video-intro-particles i{position:absolute;display:block;width:3px;height:14px;border-radius:99px;background:#3d9dff;box-shadow:0 0 9px #3d9dffe6;opacity:0;transform:translate(0) rotate(var(--r))}.gps-video-intro.is-leaving{animation:gps-intro-panel-exit .76s cubic-bezier(.2,.8,.2,1) both}.gps-video-intro.is-leaving video{animation:gps-intro-video-exit .7s ease-in both}.gps-video-intro.is-leaving .gps-video-intro-shade{animation:gps-intro-shade-exit .7s ease-in both}.gps-video-intro.is-leaving .gps-video-intro-copy{animation:gps-intro-copy-exit .42s ease-in both}.gps-video-intro.is-leaving .gps-video-intro-skip,.gps-video-intro.is-leaving .gps-video-intro-sound{opacity:0}.gps-video-intro.is-leaving .gps-video-intro-particles i{animation:gps-intro-particle-exit .7s cubic-bezier(.2,.8,.2,1) both}.gps-video-intro.is-leaving .gps-video-intro-particles i:nth-child(2n){animation-delay:35ms}.gps-video-intro.is-leaving .gps-video-intro-particles i:nth-child(3n){animation-delay:70ms}@keyframes gps-intro-panel-exit{0%{opacity:1;transform:scale(1)}70%{opacity:1;transform:scale(1.015)}to{opacity:0;transform:scale(1.035)}}@keyframes gps-intro-video-exit{0%{opacity:1;transform:scale(1);filter:blur(0)}to{opacity:0;transform:scale(1.13);filter:blur(6px)}}@keyframes gps-intro-shade-exit{0%{opacity:1}to{opacity:0}}@keyframes gps-intro-copy-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@keyframes gps-intro-particle-exit{0%{opacity:.95;transform:translate(0) rotate(var(--r)) scale(1)}to{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--r)) scale(.45)}}