/* ─── Lucide icon sizing for academy (replaces FontAwesome utilities) ─── */
svg.lucide {
    width: 1.1em;
    height: 1.1em;
    vertical-align: -0.15em;
    flex-shrink: 0;
}
.fa-lg { font-size: 1.25em; }
.fa-2x { font-size: 2em; }
.fa-3x { font-size: 3em; }
.fa-4x { font-size: 4em; }
.fa-5x { font-size: 5em; }
.lucide-spin {
    animation: lucide-spin 1s linear infinite;
}
@keyframes lucide-spin {
    to { transform: rotate(360deg); }
}

/* ─── Responsive tables: stack into cards on mobile ─── */
.table-container {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
@media (max-width: 768px) {
    table.table.stackable thead {
        display: none;
    }
    table.table.stackable,
    table.table.stackable tbody,
    table.table.stackable tr,
    table.table.stackable td {
        display: block;
        width: 100%;
    }
    table.table.stackable tr {
        background: #FFFFFF;
        border: 1px solid #E5E7EB;
        border-radius: 12px;
        margin-bottom: 0.75rem;
        padding: 0.35rem 0.9rem;
        box-shadow: 0 1px 3px rgba(15,23,42,0.06);
    }
    table.table.stackable td {
        border-bottom: 1px solid #F1F5F9;
        padding: 0.55rem 0;
        font-size: 0.85rem;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        text-align: right;
    }
    table.table.stackable td:last-child {
        border-bottom: none;
    }
    table.table.stackable td::before {
        content: attr(data-label);
        font-size: 0.68rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        color: #6B7280;
        text-align: left;
        flex-shrink: 0;
        max-width: 40%;
    }
    table.table.stackable td[data-label=""]::before,
    table.table.stackable td:not([data-label])::before {
        content: none;
    }
    table.table.stackable td:not([data-label]) {
        justify-content: flex-start;
    }
}
