/* ==========================================================================
   Base de connaissances : liste publique des documents
   ========================================================================== */

.documents-publics {
    margin-top: 3rem;
    padding-top: 2.5rem;
    border-top: 1px solid var(--couleur-bordure);
}

.documents-publics__entete {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-bottom: 1.25rem;
}

.documents-publics__entete h2 {
    margin: 0;
    font-size: 1.5rem;
}

/* Champ de recherche : l'icône est posée dans le champ */
.documents-publics__recherche {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1 1 18rem;
    max-width: 26rem;
}

.documents-publics__recherche > i {
    position: absolute;
    left: 0.95rem;
    color: var(--couleur-texte-doux);
    font-size: 0.875rem;
    pointer-events: none;
}

.documents-publics__recherche input[type="search"] {
    flex: 1;
    min-width: 0;
    padding: 0.6rem 0.9rem 0.6rem 2.4rem;
    border: 1px solid var(--couleur-bordure);
    border-radius: var(--rayon-pilule);
    background: var(--champ-bg);
    color: var(--couleur-texte);
    font: inherit;
    font-size: 0.9375rem;
}

.documents-publics__recherche input[type="search"]:focus {
    outline: none;
    border-color: var(--couleur-primaire);
    background: var(--champ-bg-focus);
}

/* Filtres par catégorie */
.documents-publics__filtres {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.75rem;
}

.documents-publics__filtre {
    padding: 0.4rem 0.95rem;
    border: 1px solid var(--couleur-bordure);
    border-radius: var(--rayon-pilule);
    color: var(--couleur-texte-doux);
    font-size: 0.875rem;
    text-decoration: none;
    transition: color var(--transition-rapide), border-color var(--transition-rapide), background var(--transition-rapide);
}

.documents-publics__filtre:hover {
    border-color: var(--couleur-primaire-clair);
    color: var(--couleur-lien);
}

.documents-publics__filtre.actif {
    border-color: var(--couleur-primaire);
    background: var(--couleur-primaire);
    color: #fff;
}

/* Grille de cartes */
.documents-publics__grille {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
    gap: 1.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.document-carte {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1.25rem;
    border: 1px solid var(--couleur-bordure);
    border-radius: var(--rayon-l);
    background: var(--surface-bg);
    box-shadow: var(--ombre-legere);
    transition: transform var(--transition-rapide), box-shadow var(--transition-rapide);
}

.document-carte:hover {
    transform: translateY(-2px);
    box-shadow: var(--ombre-douce);
}

.document-carte__haut {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.document-carte__icone {
    display: inline-grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--rayon-s);
    background: color-mix(in srgb, var(--couleur-primaire) 12%, transparent);
    color: var(--couleur-primaire);
}

.document-carte__categorie {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--couleur-accent);
}

.document-carte__acces {
    margin-left: auto;
    padding: 0.15rem 0.55rem;
    border-radius: var(--rayon-pilule);
    background: color-mix(in srgb, var(--couleur-accent-clair) 45%, transparent);
    color: var(--couleur-texte);
    font-size: 0.75rem;
}

.document-carte__acces--interne {
    background: color-mix(in srgb, var(--couleur-texte) 10%, transparent);
}

.document-carte__titre {
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.4;
}

.document-carte__resume {
    margin: 0;
    color: var(--couleur-texte-doux);
    font-size: 0.9375rem;
    line-height: 1.6;
}

.document-carte__pied {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: auto;
    padding-top: 0.75rem;
    border-top: 1px solid var(--couleur-bordure);
}

.document-carte__meta {
    color: var(--couleur-texte-doux);
    font-size: 0.8125rem;
}

.documents-publics__vide {
    padding: 2rem;
    border: 1px dashed var(--couleur-bordure);
    border-radius: var(--rayon-l);
    color: var(--couleur-texte-doux);
    text-align: center;
}

.documents-publics__vide i {
    margin-right: 0.4rem;
}

.documents-publics__recherche .bouton {
    flex-shrink: 0;
}

@media (max-width: 640px) {
    .documents-publics__recherche {
        flex-basis: 100%;
        max-width: none;
    }

    .documents-publics__recherche input[type="search"] {
        width: 100%;
    }
}
