.gps-panel{min-width:0}.gps-warning{border-left:4px solid var(--primary-500);padding:10px 12px;background:var(--surface-2);line-height:1.5}.gps-controls{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.gps-controls button{min-height:44px;min-width:56px}.gps-controls button:disabled{opacity:.5;cursor:not-allowed}.gps-controls button:focus-visible,.gps-panel summary:focus-visible{outline:3px solid var(--primary-500);outline-offset:3px}.gps-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}.gps-metrics>div{min-width:0;padding:10px 6px;background:var(--surface-2);border-radius:12px}.gps-metrics dt{font-size:.8rem;overflow-wrap:anywhere}.gps-metrics dd{margin:8px 0 0;font-variant-numeric:tabular-nums}.gps-metrics output{display:block;font-size:clamp(1.15rem,5vw,2rem);font-weight:750}.gps-metrics small{font-size:.75rem;display:block}.gps-history{padding-left:24px}.gps-history li{margin:12px 0;padding:6px 0;overflow-wrap:anywhere}.gps-history p{margin:5px 0}.gps-panel summary{min-height:44px;cursor:pointer}.gps-panel #gpsstatus{min-height:2.8em;line-height:1.4}.gps-panel .muted{line-height:1.5}

/* GPS2: offline diagrams, totals, goals and split tables. */
.gps-summary,.gps-goal{margin-block:1rem;padding-block:.75rem;border-top:1px solid var(--line,#8885)}
.gps-goal form{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end}.gps-goal label{display:grid;gap:.25rem;flex:1 1 8rem;min-width:0}
.gps-goal input,.gps-goal select{min-height:44px;max-width:100%;width:100%;box-sizing:border-box;background:var(--card,transparent);color:inherit;border:1px solid var(--line,#8888);border-radius:.5rem;padding:.5rem}
.gps-goal progress{width:100%;height:1rem;accent-color:var(--accent,#35ac75)}.gps-goal-met{font-weight:700}
.gps-route-choice{display:flex;align-items:center;gap:.5rem;min-height:44px}.gps-route-choice input{width:1.25rem;height:1.25rem}
.gps-route{display:block;width:100%;height:auto;max-height:240px;border:1px solid var(--line,#8888);border-radius:.75rem;background:var(--card,transparent)}
.gps-route path{stroke:var(--accent,#36a9d5);stroke-width:2.5;fill:none;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.gps-route-start{fill:#19a76f;stroke:currentColor}.gps-route-end{fill:#ed655a;stroke:currentColor}.gps-route text{fill:currentColor;font-size:10px}
.gps-splits{border-collapse:collapse;width:100%;font-size:.9rem}.gps-splits th,.gps-splits td{padding:.45rem .25rem;text-align:left;border-bottom:1px solid var(--line,#8885);overflow-wrap:anywhere}.gps-history details{padding-block:.5rem}.gps-history summary{min-height:44px;cursor:pointer}.gps-goal :focus-visible{outline:2px solid currentColor;outline-offset:3px}
