/* GT-1: extend the existing service/KPI tokens; both Day and Night use the same markup. */
#gps-tracker-page { display:none; flex:1; min-height:0; flex-direction:column; overflow:auto; }
#gps-tracker-page .vdb-tab { background:none; font-family:inherit; border-top:0; border-left:0; border-right:0; }
.gps-provider { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.gps-provider .btn { height:34px; }
.gps-provider-note { margin-left:auto; font-size:12px; }
.gps-add { margin-left:auto; align-self:flex-end; display:flex; gap:8px; }
.gps-car { display:inline-flex; align-items:center; gap:8px; }
.gps-car small { display:block; color:var(--text-muted); font-size:11px; }
.gps-reference { font-family:var(--font-mono,monospace); font-size:12px; }
.gps-actions { white-space:nowrap; }
.gps-retired { color:var(--text-muted); background:var(--bg); }
.gps-link-body { padding:24px; }
.gps-link-shell { width:640px; max-height:none; box-shadow:none; border:1px solid var(--border); }
.gps-hint { color:var(--text-muted); font-size:11px; margin-top:4px; }
.gps-form-error { color:var(--rf-red); font-size:12px; }
.gps-form-error:empty { display:none; }
#gps-modal-overlay { align-items:center; justify-content:center; backdrop-filter:blur(3px); background:var(--rf-dim); }
#gps-modal-overlay.open { display:flex; }
#gps-modal-overlay .svc-modal-shell { max-width:calc(100vw - 32px); }
.gps-renew-vehicle { display:flex; gap:12px; align-items:center; }
.gps-history { font-size:12px; }
#gps-modal-overlay .gps-retire { margin-right:auto; color:var(--rf-red); }
#gps-dashboard-card .rf-lnk { background:none; border:0; padding:0; cursor:pointer; font:inherit; color:inherit; }
#gps-dashboard-card .rf-sline { white-space:normal; overflow:visible; }
#gps-dashboard-card:focus-visible { outline:2px solid var(--orange); }
@media(max-width:700px) { .gps-provider-note { margin-left:0; } .gps-link-shell { width:100%; } .gps-renew-vehicle { flex-wrap:wrap; } }

#gps-dashboard-card .rf-lnk { color:var(--rf-link); }

/* GT-3 (Release H): one card per car, Cards / List switch, device fields. Same tokens in Day and Night. */
.gps-view-switch { display:inline-flex; gap:4px; }
.gps-view-switch .btn { height:34px; }
.gps-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(440px,1fr)); align-items:start; gap:12px; padding:0 0 12px; }
.gps-card { display:flex; flex-direction:column; gap:8px; padding:14px 16px; border:1px solid var(--border); border-radius:var(--radius,12px); background:var(--rf-panel,#fff); }
.gps-card-hd { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.gps-lines { display:flex; flex-direction:column; gap:4px; }
.gps-line { display:grid; grid-template-columns:96px minmax(0,1fr) auto auto; align-items:center; gap:10px; font-size:13px; padding:4px 6px; border-radius:6px; }
.gps-line-label { color:var(--text-muted); font-size:11px; font-weight:600; }
.gps-line-main { min-width:0; overflow-wrap:anywhere; }
.gps-line-main small, .gps-line-sub { color:var(--text-muted); font-size:11px; }
.gps-line-exp { white-space:nowrap; font-size:12px; }
.gps-line-act { white-space:nowrap; }
.gps-line-info .gps-line-main, .gps-line-empty .gps-line-main { grid-column:2 / -1; }
.gps-line-empty .gps-line-main { color:var(--text-muted); }
.gps-line-match { background:color-mix(in srgb, var(--rf-accent,#F5C518) 16%, transparent); }
.gps-line-retired, .gps-card-retired .gps-line { color:var(--text-muted); }
.gps-card-retired { opacity:.85; }
.gps-card-ft { display:flex; justify-content:flex-end; gap:8px; }
.gps-add-for { background:none; border:0; padding:0; cursor:pointer; font:inherit; color:var(--rf-link,inherit); font-weight:600; }
.gps-cards-empty { padding:16px 0; color:var(--text-muted); }
.gps-empty-cars { padding:10px 0; font-size:13px; color:var(--text-muted); }
.gps-empty-cars > .rf-lnk { background:none; border:0; padding:0; cursor:pointer; font:inherit; color:var(--rf-link,inherit); font-weight:600; }
.gps-empty-list { display:flex; flex-direction:column; gap:6px; margin-top:8px; }
.gps-empty-car { display:flex; align-items:center; gap:10px; }
.gps-device-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.gps-device-note { color:var(--rf-red); font-size:12px; }
.gps-device-note:empty { display:none; }
@media(max-width:700px) { .gps-cards { grid-template-columns:1fr; } .gps-line { grid-template-columns:80px minmax(0,1fr); } .gps-line-exp, .gps-line-act { grid-column:2; } .gps-line-exp { white-space:normal; } .gps-device-grid { grid-template-columns:1fr; } }

/* Release J (owner, 12 Oct 2026; seen in production at laptop width): two cards side by side are narrower than
   one line needs, so the reference column was squeezed to a few letters ("NL-TRK-24211" on three lines). On a card
   narrower than 600px the expiry and the Renew / Edit buttons now sit under the reference, as on a phone. */
.gps-card { container-type:inline-size; }
@container (max-width:600px) { .gps-line { grid-template-columns:96px minmax(0,1fr); } .gps-line-exp, .gps-line-act { grid-column:2; } .gps-line-exp { white-space:normal; } }
