/* Vue « sans carte » (trackview.js) : thèmes clair / sombre par variables. */
:root,.tv-dark{
  --tv-bg:#0c1220; --tv-grid:rgba(138,151,181,.10); --tv-band:#3a4560; --tv-edge:#56637f;
  --tv-line:#c9d3ea; --tv-fin:#ffffff; --tv-fin2:#111111; --tv-sec:#38d6c8; --tv-ink:#c9d3ea;
}
.tv-light{
  --tv-bg:#eef0f3; --tv-grid:rgba(40,50,70,.08); --tv-band:#b9bec8; --tv-edge:#9ea4b0;
  --tv-line:#4a5468; --tv-fin:#111111; --tv-fin2:#ffffff; --tv-sec:#0f8f86; --tv-ink:#2c3446;
}

/* --- fond Leaflet sans tuiles --- */
#map.tv-nomap,.leaflet-container.tv-nomap{
  background-color:var(--tv-bg);
  background-image:linear-gradient(var(--tv-grid) 1px,transparent 1px),linear-gradient(90deg,var(--tv-grid) 1px,transparent 1px);
  background-size:40px 40px;
}
.tv-nomap path.tv-l-edge{stroke:var(--tv-edge);stroke-opacity:1}
.tv-nomap path.tv-l-band{stroke:var(--tv-band);stroke-opacity:1}
/* tours (couleurs vives) lisibles aussi sur fond clair */
.tv-nomap.tv-light .leaflet-overlay-pane svg{filter:drop-shadow(0 0 1px rgba(0,0,0,.65))}
.tv-ctl{display:flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:min(92vw,420px);
  padding:4px 6px;background:var(--panel,#171e2e);color:var(--ink,#e6ecfa);font-size:12px}
.tv-ctl .tv-ctl-b{padding:2px 8px;font-size:12px;line-height:1.5}
.tv-ctl .tv-ctl-b.on{background:var(--accent2,#3d9bff);color:#021226;border-color:var(--accent2,#3d9bff)}
.tv-leg{color:var(--mut,#8a97b5);font-variant-numeric:tabular-nums}
.tv-grad{display:inline-block;width:46px;height:8px;border-radius:4px;vertical-align:middle;
  background:linear-gradient(90deg,hsl(240,85%,50%),hsl(180,85%,50%),hsl(120,85%,50%),hsl(60,85%,50%),hsl(0,85%,50%))}
.tv-north{font-weight:700;color:var(--mut,#8a97b5)}
.tv-nomap .leaflet-control-scale-line{background:rgba(127,127,127,.18);color:var(--tv-ink);border-color:var(--tv-ink)}

/* --- rendu SVG autonome --- */
.tv-svg{display:block;width:100%;height:100%}
.tv-svg .tv-band{fill:none;stroke:var(--tv-band);stroke-width:9;stroke-linejoin:round;stroke-linecap:round}
.tv-svg .tv-line{fill:none;stroke:var(--tv-line);stroke-width:1.4;stroke-linejoin:round}
.tv-svg .tv-finish-bg{stroke:var(--tv-fin2);stroke-width:5}
.tv-svg .tv-finish{stroke:var(--tv-fin);stroke-width:5;stroke-dasharray:2.5 2.5}
.tv-svg .tv-finpt{fill:var(--tv-fin);stroke:var(--tv-fin2);stroke-width:1.5}
.tv-svg .tv-sector{stroke:var(--tv-sec);stroke-width:2.5;stroke-linecap:round}
.tv-svg .tv-split{fill:var(--tv-sec)}
.tv-svg .tv-dir path{fill:var(--accent,#f4a93c)}
.tv-svg .tv-scale path{fill:none;stroke:var(--tv-ink);stroke-width:1}
.tv-svg .tv-scale text{fill:var(--tv-ink);font-size:10px;dominant-baseline:middle}
.tv-svg-mini .tv-band{stroke-width:4}
.tv-svg-mini .tv-line{stroke-width:.8}
.tv-svg-mini .tv-finish,.tv-svg-mini .tv-finish-bg{stroke-width:3}

/* aperçu dans la carte « Circuit » */
.tv-card{margin:0 0 8px}
.tv-cardsvg{height:170px;border-radius:8px;background:var(--tv-bg);border:1px solid var(--line,#2b3550);overflow:hidden}
.tv-cardsvg.tv-wait{opacity:.5}
.tv-card figcaption{margin-top:4px;font-size:12px;color:var(--mut,#8a97b5)}

/* miniatures dans la liste des circuits */
.tv-mini{display:inline-block;width:48px;height:30px;margin-right:8px;vertical-align:middle;border-radius:4px;
  background:var(--tv-bg);overflow:hidden}
.tv-mini:not(.ok){opacity:.35}
