:root { --bg:#111; --panel:#1b1b1b; --line:#333; --fg:#eaeaea; --muted:#8a8a8a; --accent:#4aa3ff; }
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; background: var(--bg); color: var(--fg);
  font-family: "Segoe UI", system-ui, Arial, sans-serif; }

#app { display: flex; height: 100vh; }
#map { flex: 1 1 auto; height: 100%; }
#panel { width: 360px; flex: 0 0 360px; background: var(--panel); border-left: 1px solid var(--line);
  display: flex; flex-direction: column; overflow: hidden; }

#panel header { padding: 14px 16px; border-bottom: 1px solid var(--line); }
#panel .title { font-weight: 700; letter-spacing: 2px; color: var(--accent); }
#panel-body { overflow-y: auto; padding: 8px 0; flex: 1 1 auto; }

.muted { color: var(--muted); font-size: 13px; }
.pad { padding: 12px 16px; }
.section-title { padding: 10px 16px 4px; font-size: 12px; text-transform: uppercase;
  letter-spacing: 1px; color: var(--muted); }

.ride { padding: 10px 16px; border-bottom: 1px solid #262626; cursor: pointer; }
.ride:hover { background: #242424; }
.ride.active { background: #2a3a4a; }
.ride .row1 { display: flex; justify-content: space-between; align-items: baseline; }
.ride .date { font-weight: 600; }
.ride .meta { color: var(--muted); font-size: 12px; }
.badge { font-size: 11px; color: #ff5252; border: 1px solid #5a2a2a; border-radius: 4px;
  padding: 0 5px; margin-left: 6px; }

.detail { padding: 12px 16px; }
.detail h3 { margin: 0 0 8px; font-size: 15px; }
.detail table { width: 100%; border-collapse: collapse; font-size: 13px; }
.detail td { padding: 3px 0; }
.detail td:last-child { text-align: right; color: var(--fg); }
.detail td:first-child { color: var(--muted); }
.detail .vids a { display: flex; align-items: center; gap: 8px; color: var(--accent);
  text-decoration: none; padding: 6px 0; }
.detail .vids img { width: 64px; height: 48px; object-fit: cover; border-radius: 3px; }
.back { color: var(--accent); cursor: pointer; font-size: 13px; display: inline-block; margin-bottom: 8px; }
/* Scope to the sidebar chart only — a bare `canvas` rule also hits Leaflet's
   heat/overlay canvas and paints an opaque background over the map tiles. */
#panel canvas { background: #161616; border-radius: 6px; margin-top: 8px; }
