/**
 * BALAM AI - Organism Component Styles
 * ═══════════════════════════════════════════════════════════════════════
 *
 * Styles for organism-level components (stats-grid, data-table, card-grid).
 * BEM naming: .balam-{component}__{element}--{modifier}
 */

/* ═══════════════════════════════════════════════════════════════════════
   STATS GRID
   ═══════════════════════════════════════════════════════════════════════ */

.balam-stats-grid {
    /* Layout handled by Bootstrap row/col classes in template */
}

/* ═══════════════════════════════════════════════════════════════════════
   DATA TABLE
   ═══════════════════════════════════════════════════════════════════════ */

.balam-data-table {
    width: 100%;
}

.balam-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--balam-text-sm);
}

.balam-table thead {
    background: var(--balam-table-header-bg);
}

.balam-table thead th {
    padding: var(--balam-space-3) var(--balam-space-4);
    font-weight: var(--balam-font-semibold);
    color: var(--balam-text-secondary);
    text-align: left;
    white-space: nowrap;
    border-bottom: 1px solid var(--balam-table-border);
    font-size: var(--balam-text-xs);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.balam-table tbody td {
    padding: var(--balam-space-3) var(--balam-space-4);
    border-bottom: 1px solid var(--balam-border-light);
    color: var(--balam-text-primary);
    vertical-align: middle;
}

.balam-table tbody tr:last-child td {
    border-bottom: none;
}

.balam-table.table-hover tbody tr:hover {
    background: var(--balam-nav-item-hover);
}

.balam-table.table-striped tbody tr:nth-child(odd) {
    background: var(--balam-table-stripe-bg);
}

/* ═══════════════════════════════════════════════════════════════════════
   CARD GRID
   ═══════════════════════════════════════════════════════════════════════ */

.balam-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(var(--balam-card-min-width, 280px), 1fr));
    gap: var(--balam-card-gap, var(--balam-space-4));
}

.balam-card-grid__item {
    /* Item fills grid cell naturally */
    display: flex;
    flex-direction: column;
}

/* Mobile: horizontal scroll-snap carousel for card grids */
@media (max-width: 575.98px) {
    .balam-card-grid--snap {
        grid-template-columns: repeat(auto-fill, minmax(85vw, 1fr));
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        padding-bottom: var(--balam-space-2);
    }

    .balam-card-grid--snap .balam-card-grid__item {
        scroll-snap-align: start;
        min-width: calc(85vw);
    }
}
