feat(series): run each round from the series page

Step 3 becomes a rounds table: pick drivers inline (copy from the
previous round, add a late entry), set qualifying rounds/finals/max
cars per heat per round, see the status, and create qualifying and
finals from there. Qualifying heats are now split evenly so nobody
drives alone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
larssand
2026-10-11 18:55:36 +02:00
parent 581ec2c781
commit b5707f92d1
17 changed files with 447 additions and 39 deletions

View File

@@ -4602,3 +4602,22 @@ tr.is-removed td.lap-actions {
/* Training stats: race laps (shown under "Races" / "All") carry their origin */
.training-race-origin { color: var(--muted); font-size: 0.72rem; }
/* Series hub: rounds table */
.series-create { display: grid; grid-template-columns: minmax(200px, 2fr) repeat(3, minmax(90px, 1fr)) minmax(160px, 2fr) auto; gap: 12px; align-items: end; }
.series-create label { display: grid; gap: 4px; }
.series-create textarea { font-family: inherit; }
.series-rounds-table { width: 100%; border-collapse: collapse; }
.series-rounds-table th, .series-rounds-table td { padding: 8px 10px; text-align: left; vertical-align: middle; border-bottom: 1px solid var(--line); }
.series-rounds-table th { font-size: 0.78rem; color: var(--muted); white-space: nowrap; }
.series-round-actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.series-round-number { width: 64px; }
.series-rounds-table tr.is-expanded td { border-bottom-color: transparent; }
.series-round-detail td { background: color-mix(in srgb, var(--accent) 4%, transparent); }
.series-round-participants { display: grid; gap: 10px; padding: 6px 2px; }
.series-add-driver { display: flex; gap: 8px; flex-wrap: wrap; }
.series-add-driver input { max-width: 220px; }
.series-add-existing { display: grid; gap: 4px; margin-top: 14px; max-width: 520px; }
.series-status-done { border-color: var(--success, #2e9d5b); }
.series-status-qual_running, .series-status-finals { border-color: var(--accent); }
@media (max-width: 900px) { .series-create { grid-template-columns: 1fr 1fr; } }