/**
 * ANNUAIRE - Bloc contacts utiles
 * Affichage des contacts groupés par catégorie
 * @version 1.2
 */

/* ============================================
   CONTAINER PRINCIPAL
   ============================================ */
.annuaire-block {
    background: var(--annuaire-bg, var(--panel));
    border-radius: var(--radius, 18px);
    padding: 20px;
    box-shadow: var(--shadow);
    overflow: hidden;
}

/* Header du bloc */
.annuaire-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--annuaire-border, var(--border));
}

.annuaire-header-icon {
    font-size: 1.5rem;
}

.annuaire-header-title {
    font-size: var(--fs-md, 18px);
    font-weight: 600;
    color: var(--annuaire-title, var(--text));
    margin: 0;
}

.annuaire-header-count {
    margin-left: auto;
    background: var(--annuaire-count-bg, var(--badge-bg, #eef7ff));
    color: var(--annuaire-count-text, var(--badge-text, #0b3a66));
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
}

/* ============================================
   CATÉGORIES
   ============================================ */
.annuaire-categories {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.annuaire-category {
    background: var(--annuaire-cat-bg, var(--panel-2, #f8fafc));
    border-radius: 12px;
    overflow: hidden;
}

.annuaire-category-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: var(--annuaire-cat-header-bg, transparent);
    border-left: 4px solid var(--category-color, var(--accent));
}

.annuaire-category-icon {
    font-size: 1.1rem;
    color: var(--category-color, var(--accent));
}

.annuaire-category-label {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--annuaire-cat-label, var(--text));
    flex: 1;
}

.annuaire-category-badge {
    background: var(--category-color, var(--accent));
    color: white;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 600;
}

/* ============================================
   LISTE DES CONTACTS - GRILLE MIXTE
   ============================================ */
.annuaire-contacts {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    background: var(--annuaire-separator, var(--border-light, #e8eef6));
}

/* ============================================
   CONTACT - MODE NORMAL
   ============================================ */
.annuaire-contact {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 16px;
    background: var(--annuaire-contact-bg, var(--panel, white));
    grid-column: span 2; /* Prend toute la largeur */
}

/* Ligne header : Nom + Téléphones */
.annuaire-row-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.annuaire-contact-name {
    font-size: 1rem;
    font-weight: 600;
    color: var(--annuaire-contact-name, var(--text));
    margin: 0;
}

/* Téléphones alignés à droite */
.annuaire-phones {
    display: flex;
    gap: 16px;
    flex-shrink: 0;
}

.annuaire-phone {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--annuaire-phone, var(--success, #22c55e));
    text-decoration: none;
}

/* Lignes génériques */
.annuaire-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9rem;
    color: var(--annuaire-contact-text, var(--muted));
}

.annuaire-row .icon {
    font-size: 0.85rem;
    width: 18px;
    text-align: center;
    flex-shrink: 0;
}

/* Ligne adresse */
.annuaire-row-address {
    color: var(--annuaire-contact-text, var(--muted));
}

/* Ligne liens (email + site) */
.annuaire-row-links {
    gap: 20px;
}

.annuaire-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--annuaire-link, var(--accent));
    text-decoration: none;
    font-size: 0.9rem;
}

/* ============================================
   CONTACT - MODE COMPACT
   ============================================ */
.annuaire-contact.compact {
    grid-column: span 1; /* Demi largeur */
    padding: 10px 14px;
    gap: 2px;
}

.annuaire-contact.compact .annuaire-row-header {
    flex-wrap: wrap; /* Permet au téléphone de passer à la ligne si nom trop long */
    gap: 4px 16px;
}

.annuaire-contact.compact .annuaire-contact-name {
    font-size: 0.95rem;
}

.annuaire-contact.compact .annuaire-phones {
    gap: 12px;
}

.annuaire-contact.compact .annuaire-phone {
    font-size: 1rem;
}

.annuaire-contact.compact .annuaire-row {
    font-size: 0.85rem;
}

.annuaire-contact.compact .annuaire-link {
    font-size: 0.85rem;
}

/* ============================================
   ÉTAT VIDE
   ============================================ */
.annuaire-empty {
    text-align: center;
    padding: 40px 20px;
    color: var(--annuaire-empty, var(--muted));
}

.annuaire-empty-icon {
    font-size: 3rem;
    opacity: 0.3;
    margin-bottom: 12px;
}

.annuaire-empty-text {
    font-size: 1rem;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 768px) {
    .annuaire-block {
        padding: 16px;
    }

    .annuaire-contacts {
        grid-template-columns: 1fr;
    }

    .annuaire-contact,
    .annuaire-contact.compact {
        grid-column: span 1;
    }

    .annuaire-row-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }

    .annuaire-phones {
        flex-wrap: wrap;
    }

    .annuaire-header {
        flex-wrap: wrap;
    }

    .annuaire-header-count {
        margin-left: 0;
        margin-top: 8px;
    }
}
