﻿/* ── Table wrapper ────────────────────────────── */
.race-table-wrapper {
    width: 100%;
    background: #fff;
    border-radius: 0 0 8px 8px;
    overflow-x: auto;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
    padding-bottom: 60px;
}

/* ── Table ────────────────────────────────────── */
.race-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.race-table-header th {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 7px 6px;
    border-bottom: 2px solid #42a5f5;
    vertical-align: middle;
}

/* ── Column widths ────────────────────────────── */
.col-lane     { width: 32px; text-align: center; }
.col-crew     { width: 70px; }
.col-progress { width: auto; }
.col-place    { width: 32px; text-align: center; }

/* ── Sort button ──────────────────────────────── */
.sort-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 2px;
    border-radius: 4px;
    opacity: 0.5;
    transition: opacity 0.15s ease;
}

.sort-btn:hover,
.sort-btn-active {
    opacity: 1;
}

/* ── Rows ─────────────────────────────────────── */
.boat-row {
    border-bottom: 1px solid #e0e0e0;
    transition: background-color 0.15s ease;
}

.boat-row td {
    padding-top: 1px;
    padding-bottom: 1px;
}

    .boat-row:last-child  { border-bottom: none; }
    .boat-row:hover       { background-color: #e3f2fd !important; }

.row-gold   { background-color: #fffde7; }
.row-silver { background-color: #f5f5f5; }
.row-bronze { background-color: #fbe9e7; }

/* ── Lane bubble ──────────────────────────────── */
.td-lane {
    padding: 2px 0;
    text-align: center;
    vertical-align: middle;
}

.td-lane-clickable { cursor: pointer; }

    .td-lane-clickable:hover .lane-bubble {
        filter: brightness(1.15);
        box-shadow: 0 3px 10px rgba(0,0,0,0.45);
    }

.lane-bubble {
    width: 32px;
    height: 32px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 14px;
    margin: 0 auto;
    box-shadow: 0 2px 5px rgba(0,0,0,0.28);
    transition: filter 0.15s ease, box-shadow 0.15s ease;
}

/* ── Crew name ────────────────────────────────── */
.td-crew { padding: 2px; vertical-align: middle; }

.crew-name {
    font-size: 0.8rem;
    font-weight: 600;
    color: #212121;
    word-break: break-word;
    line-height: 1.0;
}

/* ── Waiting spinner ──────────────────────────── */
.race-waiting {
    display: flex;
    align-items: center;
    padding: 16px;
    color: #757575;
}
.td-canvas {
    height: 50px;
    padding: 2px 0;
}

.canvas-wrapper {
    width: 100%;
    height: 46px;
    overflow: hidden;
}