/* Pages publiques du site (index_*.php, 2026-10-22) et accueil public (index.php, pour l'en-tête commun) : ce que le thème ne
   donne pas. Chargée après theme.css par public_debut() de static/php/public_fonctions.php et par index.php, à la version
   PUBLIC_V : la changer à chaque modification. */

/* En-tête commun (public_entete(), 2026-10-23) : sous la ligne du logo et des liens de connexion, la ligne de menu des
   rubriques publiques, dans un cadre (demande d'Adrien : la barre blanche et arrondie des cartes du thème, son ombre
   légère) ; chaque rubrique est une pastille, celle de la page sur le bleu clair du thème (--falcon-soft-primary), les
   autres grisées au survol ; sur un téléphone, les pastilles passent à la ligne. Variables de Falcon 3.13 :
   --falcon-gray-*, --falcon-card-bg et --falcon-soft-primary changent la nuit. */
.public_menu {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    margin-top: 1rem;
    padding: .35rem;
    background: var(--falcon-card-bg);
    border: 1px solid var(--falcon-border-color);
    border-radius: .75rem;
    box-shadow: var(--falcon-box-shadow-sm);
}

.public_menu a {
    display: inline-flex;
    align-items: center;
    padding: .45rem .9rem;
    border-radius: .5rem;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color .15s ease, color .15s ease;
}

.public_menu a:hover,
.public_menu a:focus {
    color: var(--falcon-primary) !important;
    background: var(--falcon-gray-100);
}

.public_menu a[aria-current="page"] {
    color: var(--falcon-primary) !important;
    background: var(--falcon-soft-primary);
}

/* Une rubrique réduite à son icône, tout à droite du menu (les jeux) */
.public_menu .public_menu_icone {
    margin-left: auto;
    padding: .45rem .75rem;
    font-size: 1.15em;
}

/* Jeux publics (index_jeux.php) : sous le jeu, la place des statistiques des membres ne reçoit que l'appel à s'inscrire, à la
   fin d'une partie (posé par le script) : vide, elle ne se voit pas */
.mdj_stats:empty {
    display: none;
}

/* Jeux publics : l'étiquette « Jeu difficile » / « Jeu facile » à bonne distance du titre (demande d'Adrien du 2026-10-23) ;
   les cartes du catalogue sont celles de jeux.php (mot_du_jour.css), dont la flèche attend Font Awesome : un chevron à sa place */
.public_jeux_titre .jeux_tag,
.public_jeux .jeux_carte_nom .jeux_tag {
    margin-left: .75rem;
}

.public_jeux .jeux_catalogue {
    padding-top: 0;
}

.public_jeux .jeux_carte_fleche .fa-chevron-right::before {
    content: "\203A";
    font-size: 1.5rem;
    line-height: 1;
}

/* Jeux publics (index_jeux.php) : la touche « Effacer » du mot du jour attend Font Awesome, que ces pages ne chargent pas */
.mdj .fa-delete-left::before {
    content: "\232B";
    font-family: inherit;
    font-style: normal;
}

/* Barre de recherche d'une liste (public_recherche()) : la boîte du thème (.search-box), centrée, sur toute la largeur d'un
   téléphone, avec le contour et le halo de focus des champs du thème (.search-box les retire) */
.public_recherche {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.public_recherche .search-input {
    border: 1px solid var(--falcon-input-border-color);
    box-shadow: var(--falcon-box-shadow-inset);
}

.public_recherche .search-input:focus {
    border-color: var(--falcon-input-focus-border-color);
    box-shadow: var(--falcon-box-shadow-inset), 0 0 0 .25rem rgba(44, 123, 229, .25);
}

.public_recherche .search-box-icon {
    width: 1em;
    height: 1em;
}

/* Attendus d'apprentissage d'une situation : une ligne par attendu, ses domaines en petit à la suite */
.public_attendus li {
    padding: .3rem 0;
    border-top: 1px solid var(--falcon-gray-200);
}

.public_domaines {
    margin-left: .35rem;
    color: var(--falcon-gray-600);
    font-size: .85em;
}

/* Titre d'une matière dans la liste des items, avec son icône (matieres.icone) : l'allure des cartes de
   revisions_matieres.php (.matiere_lien, .matiere_icone : icône de 36 px, qui penche au survol) */
.public_matiere_nom {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-width: 0;
    line-height: 1.3;
}

.public_matiere_icone {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    object-fit: contain;
    transition: transform .2s;
}

.public_matiere_nom:hover .public_matiere_icone {
    transform: rotate(-10deg);
}

.public_matiere_titre {
    overflow-wrap: anywhere;
}

/* Icône en SVG en ligne (public_icone()) : la taille et la couleur du texte */
.public_icone {
    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: -.125em;
}

/* Bouton « S'inscrire » : une pilule au dégradé du titre de l'accueil, qui se soulève au survol */
.btn-inscription {
    color: #fff;
    background-image: linear-gradient(to right, #7585db, #d85c94);
    border: 0;
    border-radius: 2rem;
    padding: .5rem 1.25rem;
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    box-shadow: 0 .25rem .75rem rgba(117, 133, 219, .35);
    transition: transform .15s ease, box-shadow .15s ease;
}

.btn-inscription:hover,
.btn-inscription:focus {
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 .5rem 1rem rgba(117, 133, 219, .45);
}

.btn-inscription:active {
    color: #fff;
    transform: translateY(0);
}

.public_texte h2 {
    font-size: 1.25rem;
    font-weight: 600;
    margin: 1.75rem 0 .75rem;
}

.public_texte h2:first-child {
    margin-top: 0;
}

/* Guides (index_guides.php, 2026-10-23) : le texte d'un guide, son sommaire, l'encadré « À retenir », les sources, la liste */
.public_texte h3 {
    font-size: 1.05rem;
    font-weight: 600;
    margin: 1.25rem 0 .5rem;
}

.public_texte ul,
.public_texte ol {
    padding-left: 1.4rem;
}

.public_texte li {
    margin-bottom: .3rem;
}

.public_texte li > ul,
.public_texte li > ol {
    margin-top: .3rem;
}

.public_sommaire {
    padding: .9rem 1.1rem;
    border: 1px solid var(--falcon-gray-200);
    border-radius: .75rem;
    background: var(--falcon-gray-100);
}

.public_sommaire ol {
    margin-bottom: 0;
    padding-left: 1.3rem;
}

.public_sommaire li {
    margin-bottom: .15rem;
}

.public_retenir {
    border-left: 4px solid var(--falcon-primary);
}

.public_retenir ul {
    margin-bottom: 0;
}

.public_sources ul {
    margin-bottom: 0;
    padding-left: 1.2rem;
}

.public_guides_liste .card {
    height: 100%;
}

.public_guides_liste .card-body > a {
    color: inherit;
}

.public_guides_liste .card:hover .public_guide_titre {
    color: var(--falcon-primary);
}

.public_guide_meta {
    font-size: .8125rem;
    color: var(--falcon-gray-600);
}

/* Index des matières : des pastilles sur plusieurs lignes */
.public_matieres_index a {
    display: inline-block;
    margin: 0 .35rem .4rem 0;
}

/* Liste des items d'une matière : sur deux colonnes, trois sur un écran large ; un item ne se coupe pas entre deux */
.public_items {
    columns: 2;
    column-gap: 2rem;
}

@media (min-width: 992px) {
    .public_items {
        columns: 3;
    }
}

@media (max-width: 575.98px) {
    .public_items {
        columns: 1;
    }
}

.public_items li {
    break-inside: avoid;
    padding: .2rem 0;
}

.public_items a {
    display: flex;
    gap: .6rem;
    align-items: baseline;
    color: inherit;
    text-decoration: none;
}

.public_items a:hover .public_titre,
.public_items a:focus .public_titre {
    color: var(--falcon-primary);
    text-decoration: underline;
}

/* Numéro d'un item : la pastille bleue des badges de l'accueil public */
.public_numero {
    flex: 0 0 auto;
    display: inline-block;
    min-width: 2.6em;
    padding: 0 .4em;
    text-align: center;
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: .75rem;
    line-height: 1.7;
    color: #fff;
    background: #789ECF;
    border-radius: 4px;
}

/* Le numéro dans le titre de la page d'un item ou d'une situation : un peu plus grand (demande d'Adrien, 2026-10-22) */
.public_numero_grand {
    font-size: 1.45rem;
    padding: 0 .5em;
    vertical-align: middle;
}

/* Rang d'une connaissance : A, un rond noir ; B, un carré bleu aux coins arrondis (comme la bibliothèque d'entraînement) */
.public_rang {
    display: inline-flex;
    width: 1.6em;
    height: 1.6em;
    align-items: center;
    justify-content: center;
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: .8em;
    color: #fff;
    vertical-align: middle;
}

.public_rang_A {
    background: #000;
    border-radius: 50%;
}

.public_rang_B {
    background: #2c7be5;
    border-radius: .3em;
}

.public_rangs td,
.public_rangs th {
    vertical-align: top;
}

.public_rangs .public_rubrique {
    width: 1%;
    min-width: 9rem;
    color: var(--falcon-gray-700);
}

/* Items voisins : un titre long est coupé par des points de suspension */
.public_voisins a {
    max-width: 48%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
