/* ==========================================================================
   uniman-accueil.css — tableaux de bord par rôle (page d'accueil du Bureau).
   Créée vide par UI-1, remplie par UI-4.
   Tokens de uniman.css uniquement (garde : aucune couleur hors token).
   ========================================================================== */

.um-accueil { display: grid; gap: var(--um-space-5); }

/* En-tête : « Bonjour, Nom », rôle · établissement (l'année est dans la barre du haut, UI-FIX1). */
.um-accueil-entete { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--um-space-3); }
.um-accueil-entete-texte { display: grid; gap: var(--um-space-1); }

/* Rangée d'indicateurs (au plus quatre, barre d'accent or de .card-kpi). */
.um-accueil-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--um-space-4); }
.um-accueil-kpi { color: var(--um-text-primary); text-decoration: none; }
a.um-accueil-kpi:hover { border-color: var(--um-primary-hover); }
.um-accueil-kpi .card-kpi-label { display: inline-flex; align-items: center; gap: 6px; }
.um-accueil-kpi .card-kpi-value { font-variant-numeric: tabular-nums; }
.um-accueil-squelette { height: 104px; }
.um-accueil-squelette--liste { height: 220px; }

/* Deux colonnes : « À faire » (large) et « Accès rapides ». */
.um-accueil-colonnes { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--um-space-4); align-items: start; }
@media (max-width: 960px) {
    .um-accueil-colonnes { grid-template-columns: minmax(0, 1fr); }
}
.um-accueil-carte-entete { display: flex; align-items: center; justify-content: space-between; gap: var(--um-space-2); margin-bottom: var(--um-space-3); }
.um-accueil-rien { margin: 0; }

.um-accueil-liste { list-style: none; margin: 0; padding: 0; display: grid; }
.um-accueil-item + .um-accueil-item { border-top: 1px solid var(--um-border); }
.um-accueil-item-lien {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: var(--um-space-3);
    padding: var(--um-space-3) var(--um-space-2);
    color: var(--um-text-primary);
    text-decoration: none;
    border-radius: var(--um-radius-md);
}
a.um-accueil-item-lien:hover { background: var(--um-primary-soft); }
.um-accueil-item-icone { display: inline-flex; color: var(--um-primary); }
.um-accueil-item-titre { font-weight: 500; }
.um-accueil-item .um-badge-pill { font-variant-numeric: tabular-nums; }
.um-accueil-item.is-vide .um-accueil-item-titre,
.um-accueil-item.is-vide .um-accueil-item-icone { color: var(--um-text-secondary); }
.um-accueil-item-vide { grid-column: 3 / 5; font-size: var(--um-font-size-small); color: var(--um-text-secondary); }

/* Accès rapides : les modules du rôle (catalogue de navigation). */
.um-accueil-tuiles-rapides { display: grid; gap: var(--um-space-2); margin-top: var(--um-space-3); }
.um-accueil-tuile {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--um-space-3);
    padding: var(--um-space-2) var(--um-space-3);
    border: 1px solid var(--um-border);
    border-radius: var(--um-radius-md);
    color: var(--um-text-primary);
    text-decoration: none;
    font-weight: 600;
}
.um-accueil-tuile:hover { border-color: var(--um-primary); background: var(--um-primary-soft); }
.um-accueil-tuile-icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--um-radius-md);
    background: var(--um-primary-soft);
    color: var(--um-primary);
}

/* Erreur : « Tableau de bord indisponible — Réessayer ». */
.um-accueil-erreur { display: flex; flex-wrap: wrap; align-items: center; gap: var(--um-space-3); color: var(--um-text-secondary); }
