.gps-page,.gps-page *{box-sizing:border-box}
.gps-kpi-action{appearance:none;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer}
.gps-kpi-action:hover{border-color:#397cff;transform:translateY(-1px)}
.gps-kpi-action small{display:block;margin-top:4px;color:var(--muted,#91a1ba);font-size:11px}
.gps-layout{grid-template-areas:"fleet map";transition:grid-template-columns .22s ease,gap .22s ease}
.gps-list{grid-area:fleet;min-width:0;transition:opacity .16s ease,transform .22s ease}
.gps-map-card{grid-area:map;min-width:0}
.gps-layout.gps-list-collapsed{grid-template-columns:0 minmax(0,1fr);gap:0}
.gps-layout.gps-list-collapsed .gps-list{opacity:0;transform:translateX(-18px);pointer-events:none;border-width:0}
.gps-list-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.gps-mobile-close,.gps-mobile-list-button,.gps-fleet-scrim{display:none}
.gps-map-actions{align-items:center}
.gps-fleet-view-button{border-color:rgba(57,124,255,.48)!important;background:rgba(57,124,255,.12)!important;color:#77a8ff!important}
.gps-route-box:not(.is-open) .gps-route-fields{display:none}
.gps-route-box:not(.is-open){padding:0;border:0}
.gps-route-box.is-open{animation:gps-route-open .18s ease}
@keyframes gps-route-open{from{opacity:.25;transform:translateY(-5px)}to{opacity:1;transform:none}}

@media(max-width:900px){
  .gps-page{position:relative;max-width:100%;overflow:hidden}
  .gps-layout,.gps-layout.gps-list-collapsed{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"map";gap:0;min-height:0}
  .gps-list,.gps-layout.gps-list-collapsed .gps-list{position:fixed;z-index:2202;left:14px;right:14px;bottom:88px;display:flex;flex-direction:column;max-height:min(68vh,620px);opacity:0;transform:translateY(calc(100% + 110px));pointer-events:none;border-width:1px;border-radius:20px;box-shadow:0 -22px 60px rgba(2,10,24,.5);transition:transform .24s ease,opacity .18s ease}
  .gps-mobile-list-open .gps-list{opacity:1;transform:translateY(0);pointer-events:auto}
  .gps-vehicles{overflow-y:auto;overscroll-behavior:contain;padding-bottom:18px}
  .gps-fleet-scrim{position:fixed;z-index:2201;inset:0;appearance:none;border:0;background:rgba(2,8,18,.58);opacity:0;pointer-events:none;transition:opacity .18s ease}
  .gps-mobile-list-open .gps-fleet-scrim{display:block;opacity:1;pointer-events:auto}
  .gps-mobile-close{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border:1px solid var(--line,#263852);border-radius:11px;background:transparent;color:inherit;font-size:26px;line-height:1}
  .gps-mobile-list-button{display:inline-flex!important}
  .gps-hero [data-gps-toggle-list]{display:none}
  .gps-map-card{width:100%;overflow:hidden}
  .gps-map-head{width:100%}
  .gps-map-toolbar,.gps-map-actions{width:100%;min-width:0}
  .gps-map-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .gps-map-actions .soft-button,.gps-map-actions .gps-layer-switch{width:100%;min-width:0}
  .gps-map-actions .soft-button{display:flex;align-items:center;justify-content:center;white-space:nowrap;padding-inline:10px}
  .gps-layer-switch{grid-column:span 2;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))}
  .gps-fleet-view-button{grid-column:span 2}
  .gps-external-link{font-size:12px}
  .gps-route-box.is-open{padding:12px}
  .gps-route-fields{grid-template-columns:1fr!important}
  .gps-route-fields label,.gps-route-fields input,.gps-route-fields button{width:100%;min-width:0}
  .gps-map-stage,.gps-leaflet-map,.gps-no-location{width:100%!important;min-width:0!important;min-height:50vh!important;height:50vh!important;max-height:580px}
}

@media(max-width:620px){
  .gps-hero{gap:12px}
  .gps-hero p{display:none}
  .gps-hero-actions{width:100%}
  .gps-connection{padding:8px 10px;font-size:12px}
  .gps-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;overflow:visible}
  .gps-kpi{min-width:0;padding:9px 7px!important;border-radius:13px!important}
  .gps-kpi span{font-size:9px;line-height:1.25;min-height:23px}
  .gps-kpi strong{font-size:19px!important}
  .gps-kpi small{display:none}
  .gps-map-head{padding:12px!important}
  .gps-map-head h3{font-size:19px}
  .gps-osm-badge{display:none}
  .gps-map-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gps-meta{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .gps-meta div{min-width:0;padding:11px!important}
  .gps-meta strong{font-size:12px!important}
  .gps-list{left:8px;right:8px;bottom:82px}
}
