/* Tableau équilibré pour une meilleure lisibilité */
.table-container {
    width: 100%;
    overflow-x: auto;
    margin: 20px 0;
}

.main-table {
    width: 100%;
    border-collapse: collapse;
    font-family: Arial, sans-serif;
    font-size: 16px; /* Police plus grosse pour les concepts */
    min-height: 600px; /* Hauteur réduite mais suffisante */
}

.main-table td {
    border: 1px solid #333;
    padding: 14px 10px; /* Juste milieu : entre 8px et 18px */
    text-align: center;
    vertical-align: middle;
    line-height: 1.3; /* Légèrement réduit */
}

.header-main {
    background: linear-gradient(135deg, #2d3748 0%, #4a5568 100%);
    color: white;
    padding: 16px 12px; /* Réduit légèrement */
    text-align: center;
    font-weight: 600;
    border: 1px solid #e2e8f0;
    font-size: 17px; /* Plus gros pour les headers */
}

.header-numbers {
    background: #667eea;
    color: white;
    padding: 14px 10px; /* Réduit légèrement */
    text-align: center;
    font-weight: 600;
    border: 1px solid #e2e8f0;
    font-size: 16px; /* Plus gros */
}

.category-left {
    background: #f8f9fa;
    padding: 18px 12px; /* Réduit légèrement */
    text-align: center;
    font-weight: normal;
    border: 1px solid #e2e8f0;
    vertical-align: middle;
    color: var(--text-dark);
    width: 130px; /* Juste milieu */
    min-width: 130px;
    font-size: 15px; /* Plus gros */
    line-height: 1.2;
}

.axe-label {
    background: #a020f0;
    color: white;
    padding: 16px 8px; /* Réduit légèrement */
    text-align: center;
    font-weight: 600;
    border: 1px solid #e2e8f0;
    font-size: 14px; /* Plus gros */
    width: 85px; /* Juste milieu */
    vertical-align: middle;
}

.subcategory-left {
    background: #e2e8f0;
    padding: 16px 10px; /* Réduit légèrement */
    text-align: center;
    font-weight: 600;
    border: 1px solid #cbd5e0;
    color: #4a5568;
    width: 190px; /* Juste milieu */
    vertical-align: middle;
    font-size: 15px; /* Plus gros */
    line-height: 1.2;
}

.term-cell {
    padding: 16px 12px; /* Juste milieu */
    text-align: center;
    border: 1px solid #e2e8f0;
    transition: all 0.3s ease;
    vertical-align: middle;
    width: 155px; /* Juste milieu */
    height: 65px; /* Hauteur réduite mais suffisante */
    min-height: 65px;
}

.term-cell a {
    color: white;
    text-decoration: none;
    font-weight: 600;
    display: block;
    padding: 10px 8px; /* Juste milieu */
    border-radius: 6px;
    transition: all 0.3s ease;
    font-size: 16px; /* Plus gros pour les concepts */
    line-height: 1.1;
    min-height: 40px; /* Réduit légèrement */
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-weight: 700; /* Plus gras pour les concepts */
}

.term-cell a:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

/* Couleurs thématiques inchangées */
.theme-orange {
    background: linear-gradient(135deg, #ffb833 0%, #ff9533 100%);
}

.theme-fushia {
    background: linear-gradient(135deg, #e91e63 0%, #c2185b 100%);
}

.theme-cyan {
    background: linear-gradient(135deg, #00bcd4 0%, #00acc1 100%);
}

/* Responsive pour maintenir la lisibilité sur mobile */
@media (max-width: 768px) {
    .main-table {
        font-size: 14px; /* Plus gros même sur mobile */
    }
    
    .main-table td {
        padding: 10px 6px;
    }
    
    .term-cell {
        height: 60px;
        min-height: 60px;
    }
    
    .term-cell a {
        padding: 6px 4px;
        min-height: 35px;
        font-size: 13px; /* Plus gros sur mobile aussi */
        font-weight: 700;
    }
}