/* ── Data tables ── */
.data-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.85rem;
}

.data-table thead th {
    text-align: left;
    padding: 0.65rem 0.75rem;
    color: var(--text-muted);
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    border-bottom: 1px solid var(--border-strong);
    position: sticky;
    top: 0;
    background: var(--bg-card);
}

.data-table tbody tr {
    transition: background var(--duration) var(--ease);
}

.data-table tbody tr:not(:last-child) td {
    border-bottom: 1px solid var(--border);
}

.data-table tbody tr:hover {
    background: var(--bg-glass-hover);
}

.data-table td {
    padding: 0.6rem 0.75rem;
    vertical-align: middle;
}

.data-table.compact td {
    padding: 0.4rem 0.6rem;
    font-size: 0.82rem;
}

.data-table.compact thead th {
    padding: 0.45rem 0.6rem;
    font-size: 0.6rem;
}

/* ── Position cell ── */
.pos {
    font-weight: 800;
    width: 2rem;
    text-align: center;
    font-family: var(--font-mono);
    font-size: 0.85rem;
}

.pos-1 { color: var(--yellow); }
.pos-2 { color: var(--silver); }
.pos-3 { color: var(--bronze); }

/* ── Cell types ── */
.points {
    font-weight: 700;
    font-family: var(--font-mono);
    color: var(--text-primary);
}

.time {
    font-family: var(--font-mono);
    font-size: 0.82rem;
    color: var(--text-secondary);
}

.team-name {
    color: var(--text-secondary);
    font-size: 0.82rem;
}

.driver-name {
    font-weight: 600;
}

.driver-code {
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: 0.75rem;
    margin-left: 0.4rem;
}

/* ── Row states ── */
.row-highlight {
    background: rgba(225, 6, 0, 0.06) !important;
    border-left: 2px solid var(--red);
}

.row-completed {
    opacity: 0.6;
}

/* ── Race date in schedule ── */
td.race-date {
    font-family: var(--font-mono);
    color: var(--text-secondary);
    font-size: 0.82rem;
}

/* ── Driver first name (inline, hidden on small) ── */
.driver-first {
    font-weight: 400;
    color: var(--text-secondary);
}

/* ── Hide desktop-only elements ── */
.hide-desktop {
    display: none;
}

/* ── Mobile table adjustments ── */
@media (max-width: 768px) {
    .data-table {
        font-size: 0.82rem;
    }

    .data-table td {
        padding: 0.5rem 0.5rem;
    }

    .data-table thead th {
        padding: 0.5rem 0.5rem;
        font-size: 0.6rem;
    }

    .data-table.compact td {
        padding: 0.35rem 0.4rem;
        font-size: 0.78rem;
    }

    .data-table.compact thead th {
        padding: 0.35rem 0.4rem;
        font-size: 0.55rem;
    }

    .pos {
        width: 1.5rem;
        font-size: 0.8rem;
    }

    .time {
        font-size: 0.75rem;
    }

    .hide-desktop {
        display: inline;
    }
}

@media (max-width: 480px) {
    .data-table {
        font-size: 0.78rem;
    }

    .data-table td {
        padding: 0.4rem 0.35rem;
    }

    .data-table thead th {
        padding: 0.4rem 0.35rem;
        font-size: 0.55rem;
    }

    .pos {
        width: 1.25rem;
        font-size: 0.75rem;
    }

    .points {
        font-size: 0.78rem;
    }
}
