/* Overview viewport layout. No browser zoom or GPS data transformations. */
.gpsApp .railTrackerPage .railTrackerShell { min-width:0!important; }
.gpsApp .railTrackerPage .railTrackerSide,
.gpsApp .railTrackerPage .railTrackerMapArea { min-width:0!important; }
.gpsApp .railTrackerPage .railTrackerMapHeader { flex-wrap:wrap!important; gap:8px!important; }
.gpsApp .railTrackerPage .railTrackerMapHeader > div { min-width:0!important; }
.gpsApp .railTrackerPage .railTrackerActions { display:flex!important; flex-wrap:wrap!important; gap:6px!important; overflow:visible!important; }
.gpsApp .railTrackerPage .railTrackerAction { padding:8px 10px!important; font-size:12px!important; line-height:1.25!important; white-space:normal!important; }
.gpsApp .railTrackerPage .railTrackerMapHeader h2 { font-size:clamp(19px,1.4vw,25px)!important; line-height:1.15!important; }
.gpsApp .railTrackerPage .railTrackerMapHeader p { font-size:12px!important; line-height:1.35!important; }
.gpsApp .railTrackerPage .railTrackerStateRows b,
.gpsApp .railTrackerPage .railTrackerStatePlaceCard b { overflow-wrap:anywhere!important; }
.gpsApp .railTrackerPage .railopsLiveMapSearch { flex-direction:row!important; }
.gpsApp .railTrackerPage .railopsLiveMapSearch input { width:100%!important; padding:8px 0!important; }
.gpsApp .railTrackerPage .railTrackerLeftDetail { max-height:none!important; overflow:visible!important; }
.gpsApp .railTrackerPage .railTrackerStateRows { gap:6px!important; }
.gpsApp .railTrackerPage .railTrackerStateRows > div { padding:7px 8px!important; min-width:0!important; min-height:0!important; }
.gpsApp .railTrackerPage .railTrackerStateRows span { font-size:11px!important; line-height:1.3!important; }
.gpsApp .railTrackerPage .railTrackerStateRows b { font-size:12px!important; line-height:1.35!important; }
.gpsApp .railTrackerPage .railTrackerStateHead h3 { font-size:16px!important; }
.gpsApp .railTrackerPage .railTrackerStateLocoNumber { font-size:18px!important; padding:8px!important; }
.gpsApp .railTrackerPage .railTrackerLoco { gap:7px!important; padding:9px!important; margin:8px 0!important; }
.gpsApp .railTrackerPage .railTrackerLocoText span { font-size:12px!important; line-height:1.3!important; }
.gpsApp .railTrackerPage .railTrackerLocoText small { font-size:11px!important; line-height:1.3!important; }
.gpsApp .railTrackerPage .railTrackerSideHead { padding-bottom:8px!important; }
.gpsApp .railTrackerPage .railTrackerLeftDetail { margin-top:8px!important; padding:10px 0 0!important; }
.gpsApp .railTrackerPage .railTrackerLeftEvents { padding:9px!important; }
.gpsApp .railTrackerPage .railTrackerLeftEvent b { font-size:12px!important; }
.gpsApp .railTrackerPage .railopsOperationalAlerts { flex-wrap:wrap!important; font-size:12px!important; margin:6px 0!important; }
.gpsApp .railTrackerPage .railopsOperationalAlerts span { overflow-wrap:anywhere; }
.gpsApp .railTrackerPage .railTrackerRouteBadge { max-width:calc(100% - 24px)!important; overflow-wrap:anywhere!important; }
.gpsApp .railTrackerPage .railopsGpsFixNote { grid-column:1/-1; }
.gpsApp .railTrackerPage .railopsGpsFixNote small { display:block; font-size:11px; line-height:1.35; margin-top:4px; }
.gpsApp .railTrackerPage .railopsGpsSummary { flex:0 0 auto; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin-top:7px; }
.gpsApp .railTrackerPage .railopsGpsSummary > div { min-width:0; padding:5px 7px; border:1px solid var(--ro-line,#dbe4f0); border-radius:8px; background:rgba(127,150,170,.06); }
.gpsApp .railTrackerPage .railopsGpsSummary span { display:block; font-size:10px; line-height:1.2; color:var(--ro-muted,#64748b); }
.gpsApp .railTrackerPage .railopsGpsSummary b { display:block; font-size:12px; line-height:1.35; overflow-wrap:anywhere; }

@media(min-width:901px) {
  body:has(.railTrackerPage) { overflow:hidden; }
  .gpsApp:has(.railTrackerPage) { height:100vh!important; height:100dvh!important; min-height:0!important; overflow:hidden!important; }
  .gpsApp:has(.railTrackerPage) > .gpsSidebar { height:100%!important; min-height:0!important; overflow-y:auto!important; padding:12px!important; }
  .gpsApp:has(.railTrackerPage) > .gpsSidebar.open { width:clamp(190px,13vw,230px)!important; flex-shrink:0!important; }
  .gpsApp:has(.railTrackerPage) .gpsSidebar .gpsNavBtn { min-height:36px!important; padding:8px!important; font-size:12px!important; }
  .gpsApp:has(.railTrackerPage) > .gpsMain { display:flex!important; flex-direction:column!important; flex:1!important; min-height:0!important; padding:12px!important; overflow:hidden!important; }
  .gpsApp:has(.railTrackerPage) .gpsTopbar { flex:0 0 auto!important; min-height:52px!important; padding:9px 12px!important; margin:0 0 10px!important; gap:10px!important; }
  .gpsApp:has(.railTrackerPage) .gpsTopbar h2 { font-size:22px!important; }
  .gpsApp:has(.railTrackerPage) .gpsTopbarActions { min-width:0; flex-wrap:wrap; justify-content:flex-end; }
  .gpsApp:has(.railTrackerPage) .tenantSwitchWrap select { max-width:260px; }
  .gpsApp:has(.railTrackerPage) .railTrackerPage { flex:1 1 0!important; min-height:0!important; overflow:hidden!important; }
  .gpsApp .railTrackerPage .railTrackerShell { height:100%!important; min-height:0!important; max-height:100%!important; grid-template-columns:clamp(290px,24vw,360px) minmax(0,1fr)!important; gap:10px!important; align-items:stretch!important; }
  .gpsApp .railTrackerPage .railTrackerSide { width:auto!important; min-width:0!important; height:100%!important; max-height:100%!important; overflow-y:auto!important; overflow-x:hidden!important; padding:10px!important; scrollbar-gutter:stable; overscroll-behavior:contain; }
  .gpsApp .railTrackerPage .railTrackerMapArea { display:flex!important; flex-direction:column!important; height:100%!important; max-height:100%!important; min-height:0!important; padding:10px!important; overflow:hidden!important; }
  .gpsApp .railTrackerPage .railTrackerMapHeader { flex:0 0 auto!important; padding:0 0 8px!important; flex-direction:row!important; align-items:center!important; }
  .gpsApp .railTrackerPage .railTrackerActions { justify-content:flex-start!important; }
  .gpsApp .railTrackerPage .railTrackerMapBox { flex:1 1 0!important; height:auto!important; min-height:0!important; max-height:none!important; margin-top:8px!important; }
  .gpsApp .railTrackerPage .railTrackerMapBox .dashboardMapReal,
  .gpsApp .railTrackerPage .railTrackerMapBox .dashboardLeafletMap,
  .gpsApp .railTrackerPage .railTrackerMapBox .leaflet-container { height:100%!important; min-height:0!important; max-height:none!important; }
  .gpsApp .railTrackerPage .railopsLiveMapFilters { padding:8px 0!important; gap:7px!important; }
  .gpsApp .railTrackerPage .railopsLiveMapFilterButtons { grid-template-columns:repeat(3,minmax(0,1fr))!important; }
  .gpsApp .railTrackerPage .railopsLiveMapFilterButtons button { min-height:32px!important; padding:5px!important; font-size:11px!important; }
}
@media(min-width:901px) and (max-width:1450px) {
  .gpsApp .railTrackerPage .railTrackerShell { grid-template-columns:290px minmax(0,1fr)!important; }
  .gpsApp .railTrackerPage .railTrackerActions { flex-basis:100%; }
}
@media(max-width:900px) {
  .gpsApp .railTrackerPage .railopsGpsSummary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gpsApp .railTrackerPage .railTrackerSide { overflow:visible!important; }
  .gpsApp .railTrackerPage .railTrackerLeftDetail { position:static!important; box-shadow:none!important; }
  .gpsApp .railTrackerPage .railTrackerActions { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; }
}
/* GPS/GVK pages remain scrollable; wide tables scroll inside their own panel. */
.gpsApp .gvkPage,.gpsApp .gpsTrackingPage,.gpsApp .gvkPanel,.gpsApp .gvkDiagnosticPanel { min-width:0; max-width:100%; }
.gpsApp .gvkPage .gvkPanelHeader { flex-wrap:wrap; }
.gpsApp .gvkPage .gvkTableWrap,.gpsApp .gvkPage .gvkOutboxTableWrap { max-width:100%; overflow-x:auto; }
.gpsApp .gvkPage .gvkMetrics { grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr)); }
.gpsApp .gpsAdminPage { min-width:0; max-width:100%; }
.gpsApp .gpsAdminPage .gpsPanel { min-width:0; max-width:100%; overflow-x:auto; }
.gpsApp .gpsAdminPage .gvkPanelHeader { flex-wrap:wrap; }
.gpsApp .gpsAdminPage .gvkPayloadGrid > *, .gpsApp .gpsAdminPage .gvkGrid > * { min-width:0; overflow-wrap:anywhere; }
.gpsApp .gpsMain:has(.gpsAdminPage), .gpsApp .gpsMain:has(.gpsTrackingPage) { padding:clamp(10px,1.2vw,18px)!important; }
.gpsApp .gpsTopbarActions .tenantCompanyBadge { max-width:clamp(160px,30vw,420px); white-space:normal!important; overflow-wrap:anywhere; }
