#gps-map{position:relative;isolation:isolate;z-index:0;height:clamp(230px,38dvh,390px);min-height:230px;border-radius:14px;overflow:hidden;background:#e7eee7;margin:10px 0}.gps-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.gps-controls label{display:flex;flex-direction:column;gap:5px}.gps-controls input,.gps-controls select{min-height:40px}.gps-events{display:grid;gap:8px;list-style:none;padding:0}.gps-events li{padding:10px;border:1px solid #ddd;border-radius:8px}.gps-events button{width:100%;text-align:left}.gps-note{font-size:.9rem;opacity:.8}
@media(max-width:600px){#gps-map{height:40dvh;min-height:220px;margin:8px 0}}


/* Reuse the same title-to-content rhythm as the other application pages. */
.page:has(#gps-map) .page-title-row{margin-block:0 0.875rem}
.page:has(#gps-map) .gps-controls{margin-block:0;align-items:end}
.page:has(#gps-map) .gps-controls label{margin-block:0 0.375rem}

/* Only reserve the actual persistent footer, rather than adding a second
   oversized scroll spacer below the GPS page. */
body:has(#gps-map){padding-bottom:calc(var(--orgasav-measured-footer-height, 7rem) + env(safe-area-inset-bottom))!important}
.page:has(#gps-map){padding-bottom:0.75rem}
